JP7296609B2 - DIGITAL PROCESSING DEVICE, METHOD AND PROGRAM FOR MANUFACTURING DIGITAL PROCESSING DEVICE - Google Patents
DIGITAL PROCESSING DEVICE, METHOD AND PROGRAM FOR MANUFACTURING DIGITAL PROCESSING DEVICE Download PDFInfo
- Publication number
- JP7296609B2 JP7296609B2 JP2017219439A JP2017219439A JP7296609B2 JP 7296609 B2 JP7296609 B2 JP 7296609B2 JP 2017219439 A JP2017219439 A JP 2017219439A JP 2017219439 A JP2017219439 A JP 2017219439A JP 7296609 B2 JP7296609 B2 JP 7296609B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- conversion circuits
- processing unit
- circuit
- circuits
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Logic Circuits (AREA)
Description
本発明は、デジタル処理装置、デジタル処理装置の製造方法及びプログラムに関する。 The present invention relates to a digital processing device, a method of manufacturing a digital processing device, and a program.
ASIC(Application Specific Integrated Circuit)及びFPGA(Field Programmable Gate Array)といったLSI(Large Scale Integrated Circuit)を使った製品が、テーブル参照処理を必要とするデジタル処理装置に用いられることが知られている。このようなデジタル処理装置として、例えば、フィルタ係数をテーブルから参照しフィルタ処理を行う信号処理装置及びテーブル参照処理によって非線形変換処理を行うセキュリティ(暗号処理)装置が挙げられる。FPGA等のプログラマブル論理デバイスでは、ハードマクロ及びソフトマクロが用いられる。ソフトマクロでは、ハードウェア記述言語(HDL;Hardware Description Language)を用いてテーブル参照処理の回路設計が行われる(例えば、特許文献1参照)。 It is known that products using LSIs (Large Scale Integrated Circuits) such as ASICs (Application Specific Integrated Circuits) and FPGAs (Field Programmable Gate Arrays) are used in digital processing devices that require table lookup processing. Examples of such a digital processing device include a signal processing device that performs filter processing by referring to a table of filter coefficients, and a security (encryption processing) device that performs nonlinear conversion processing by table reference processing. Hard macros and soft macros are used in programmable logic devices such as FPGAs. In the soft macro, circuit design for table reference processing is performed using a hardware description language (HDL) (see, for example, Patent Document 1).
ハードウェア記述言語を用いた記述方式には、ルックアップテーブル(LUT;Look-Up-Table)を用いる記述方式、ブール代数(Boolean algebra)を用いる記述方式及び有限体理論における拡大体を用いる記述方式がある。ブール代数を用いる記述方式では、一意にブール代数で記述する必要があり、その煩雑さからブール代数を用いる記述方式が使用される機会はあまり多くない。有限体理論における拡大体を用いる記述方式では、性能面の大きな向上が見込めるが、理論の難しさのために実用性に乏しい。このような状況において、簡便性の観点からルックアップテーブルを用いる記述方式が頻繁に使用される。 Description methods using a hardware description language include a description method using a look-up table (LUT), a description method using Boolean algebra, and a description method using an extension field in finite field theory. There is In the description method using Boolean algebra, it is necessary to describe uniquely in Boolean algebra, and due to its complexity, the description method using Boolean algebra is rarely used. A description method using extension fields in finite field theory can be expected to greatly improve performance, but it is not practical due to the difficulty of theory. In such a situation, a description method using a lookup table is frequently used from the viewpoint of simplicity.
しかしながら、ルックアップテーブルを用いる記述方式のみによってテーブル参照処理の回路設計がされたデジタル処理装置には、性能面において改善の余地がある。 However, there is room for improvement in terms of performance in a digital processing device in which circuit design for table lookup processing is performed only by a description method using a lookup table.
本発明は、性能を向上させることが可能なデジタル処理装置、デジタル処理装置の製造方法及びプログラムを提供する。 The present invention provides a digital processing device capable of improving performance, a method for manufacturing the digital processing device, and a program.
本発明の一側面に係るデジタル処理装置は、プログラマブル論理デバイスを用いて作成されたデジタル処理装置であって、第1ビット数を有する第1データを、第1ビット数を有する第2データに変換する処理部と、第2データの線形処理を行う線形処理部と、を備える。処理部は、ルックアップテーブル記述方式に基づいて作成された複数の第1変換回路と、ブール代数記述方式に基づいて作成された複数の第2変換回路とを有し、複数の第1変換回路のそれぞれ及び複数の第2変換回路のそれぞれは、第1データのうちの第2ビット数を有する第1部分データを、第2データのうちの第2ビット数を有する第2部分データに変換する。線形処理部は、第2ビット数のN倍(Nは2以上の整数)である第3ビット数を有する単位データを処理単位として線形処理を行う単位処理回路を有し、処理部では、処理単位ごとに、複数の第1変換回路のうちのN個の第1変換回路又は複数の第2変換回路のうちのN個の第2変換回路が割り当てられる。 A digital processing device according to one aspect of the present invention is a digital processing device created using a programmable logic device, and converts first data having a first number of bits into second data having a first number of bits. and a linear processing unit that performs linear processing on the second data. The processing unit has a plurality of first conversion circuits created based on a lookup table description method and a plurality of second conversion circuits created based on a Boolean algebra description method, and a plurality of first conversion circuits and each of the plurality of second conversion circuits converts first partial data having a second number of bits of the first data into second partial data having a second number of bits of the second data . The linear processing unit has a unit processing circuit that performs linear processing on unit data having a third bit number that is N times the second bit number (N is an integer of 2 or more). For each unit, N first conversion circuits out of the plurality of first conversion circuits or N second conversion circuits out of the plurality of second conversion circuits are assigned.
このデジタル処理装置では、処理単位ごとにN個の第1変換回路又はN個の第2変換回路が割り当てられる。そのため、処理部では、異なる記述方式に基づいて作成された変換回路が混在するとともに、線形処理部が有する単位処理回路の処理単位ごとに同じ記述方式に基づいて作成されたN個の変換回路が割り当てられる。プログラマブル論理デバイスに作成される種々の回路は、ランダムに分散して配置されることを基本とするが、同じ記述方式に基づいた回路はまとまって配置される傾向がある。このため、処理単位ごとに同じ記述方式に基づいて作成されたN個の変換回路を割り当てることで、N個の変換回路がまとまって配置される可能性が高まる。その結果、プログラマブル論理デバイスに作成される回路の実装面積を小さくでき、又はその回路の処理速度を速めることができるので、デジタル処理装置の性能を向上させることが可能となる。 In this digital processing device, N first conversion circuits or N second conversion circuits are assigned to each processing unit. Therefore, in the processing unit, conversion circuits created based on different description methods coexist, and N conversion circuits created based on the same description method are used for each processing unit of the unit processing circuit of the linear processing unit. assigned. Various circuits created in a programmable logic device are basically randomly distributed and arranged, but circuits based on the same description method tend to be arranged together. Therefore, by allocating N conversion circuits created based on the same description method for each processing unit, the possibility that N conversion circuits are arranged together increases. As a result, the mounting area of the circuit created in the programmable logic device can be reduced, or the processing speed of the circuit can be increased, so that the performance of the digital processing device can be improved.
単位処理回路は、単位データに含まれるN個の第2部分データの並び順を変更してもよい。単位処理回路が処理するN個の第2部分データを供給するN個の変換回路は、まとまって配置される傾向があるので、N個の変換回路から単位処理回路までの配線の配線長の合計が小さくなる可能性が高まる。これにより、プログラマブル論理デバイスに作成される回路の実装面積が低減され、処理速度が速くなる可能性が高まる。 The unit processing circuit may change the arrangement order of the N pieces of second partial data included in the unit data. Since the N conversion circuits that supply the N second partial data processed by the unit processing circuits tend to be arranged together, the total wiring length of the wiring from the N conversion circuits to the unit processing circuits is is likely to become smaller. This reduces the mounting area of the circuit created in the programmable logic device and increases the possibility of increasing the processing speed.
単位処理回路は、単位データを所定ビット数シフトしてもよい。単位処理回路が処理する単位データを供給するN個の変換回路は、まとまって配置される傾向があるので、N個の変換回路から単位処理回路までの配線の配線長の合計が小さくなる可能性が高まる。これにより、プログラマブル論理デバイスに作成される回路の実装面積が低減され、処理速度が速くなる可能性が高まる。 The unit processing circuit may shift the unit data by a predetermined number of bits. Since the N conversion circuits that supply unit data to be processed by the unit processing circuits tend to be arranged together, the total wiring length from the N conversion circuits to the unit processing circuits may be reduced. increases. This reduces the mounting area of the circuit created in the programmable logic device and increases the possibility of increasing the processing speed.
本発明の一側面に係るデジタル処理装置は、プログラマブル論理デバイスを用いて作成されたデジタル処理装置であって、所定のデータの線形処理を行い、第1ビット数を有する第1データを出力する線形処理部と、第1データを、第1ビット数を有する第2データに変換する処理部と、を備える。処理部は、ルックアップテーブル記述方式に基づいて作成された複数の第1変換回路と、ブール代数記述方式に基づいて作成された複数の第2変換回路とを有し、複数の第1変換回路のそれぞれ及び複数の第2変換回路のそれぞれは、第1データのうちの第2ビット数を有する第1部分データを、第2データのうちの第2ビット数を有する第2部分データに変換する。線形処理部は、第2ビット数のN倍(Nは2以上の整数)である第3ビット数を有する単位データを処理単位として線形処理を行う単位処理回路を有し、処理部では、処理単位ごとに、複数の第1変換回路のうちのN個の第1変換回路又は複数の第2変換回路のうちのN個の第2変換回路が割り当てられる。 A digital processing device according to one aspect of the present invention is a digital processing device created using a programmable logic device, which performs linear processing of predetermined data and outputs first data having a first number of bits. A processing unit and a processing unit that converts first data into second data having a first number of bits. The processing unit has a plurality of first conversion circuits created based on a lookup table description method and a plurality of second conversion circuits created based on a Boolean algebra description method, and a plurality of first conversion circuits and each of the plurality of second conversion circuits converts first partial data having a second number of bits of the first data into second partial data having a second number of bits of the second data . The linear processing unit has a unit processing circuit that performs linear processing on unit data having a third bit number that is N times the second bit number (N is an integer of 2 or more). For each unit, N first conversion circuits out of the plurality of first conversion circuits or N second conversion circuits out of the plurality of second conversion circuits are assigned.
このデジタル処理装置では、処理単位ごとにN個の第1変換回路又はN個の第2変換回路が割り当てられる。そのため、上述のデジタル処理装置と同様に、デジタル処理装置の性能を向上させることが可能となる。 In this digital processing device, N first conversion circuits or N second conversion circuits are assigned to each processing unit. Therefore, it is possible to improve the performance of the digital processing device as in the case of the digital processing device described above.
単位処理回路は、単位データと、第3ビット数を有するデータとの排他的論理和を演算してもよい。単位処理回路の処理結果に基づくデータが供給されるN個の変換回路は、まとまって配置される傾向があるので、単位処理回路からN個の変換回路までの配線の配線長の合計が小さくなる可能性が高まる。これにより、プログラマブル論理デバイスに作成される回路の実装面積が低減され、処理速度が速くなる可能性が高まる。 The unit processing circuit may perform an exclusive OR operation between the unit data and the data having the third number of bits. Since the N conversion circuits supplied with data based on the processing results of the unit processing circuits tend to be arranged together, the total wiring length from the unit processing circuit to the N conversion circuits is reduced. more likely. This reduces the mounting area of the circuit created in the programmable logic device and increases the possibility of increasing the processing speed.
複数の第1変換回路のそれぞれ及び複数の第2変換回路のそれぞれは、非線形変換処理を行ってもよい。この場合、デジタル処理装置の出力データから、デジタル処理装置の入力データを推測され難くすることが可能となる。 Each of the plurality of first conversion circuits and each of the plurality of second conversion circuits may perform nonlinear conversion processing. In this case, it is possible to make it difficult to guess the input data of the digital processing device from the output data of the digital processing device.
本発明の別の側面に係るデジタル処理装置の製造方法は、複数の第1変換回路及び複数の第2変換回路を有し、第1ビット数を有する第1データを、第1ビット数を有する第2データに変換する処理部と、第2データの線形処理を行う線形処理部と、を備えるデジタル処理装置の製造方法であって、プログラマブル論理デバイスに応じて、処理部及び線形処理部の回路機能を記述する記述工程と、回路機能に基づき、プログラマブル論理デバイスにおいて処理部及び線形処理部を作成する作成工程と、を備える。複数の第1変換回路のそれぞれ及び複数の第2変換回路のそれぞれは、第1データのうちの第2ビット数を有する第1部分データを、第2データのうちの第2ビット数を有する第2部分データに変換し、線形処理部は、第2ビット数のN倍(Nは2以上の整数)である第3ビット数を有する単位データを処理単位として線形処理を行う単位処理回路を有する。処理部では、処理単位ごとに、複数の第1変換回路のうちのN個の第1変換回路又は複数の第2変換回路のうちのN個の第2変換回路が割り当てられ、記述工程では、ルックアップテーブル記述方式によって複数の第1変換回路の回路機能が記述され、ブール代数記述方式によって複数の第2変換回路の回路機能が記述される。 A method of manufacturing a digital processing device according to another aspect of the present invention includes a plurality of first conversion circuits and a plurality of second conversion circuits, and converts first data having a first number of bits to A method of manufacturing a digital processing device comprising a processing unit that converts to second data and a linear processing unit that performs linear processing on the second data, the circuits of the processing unit and the linear processing unit according to the programmable logic device A description step of describing the function and a creation step of creating the processing units and the linear processing units in the programmable logic device based on the circuit functions. Each of the plurality of first conversion circuits and each of the plurality of second conversion circuits converts the first partial data having the second number of bits of the first data to the second data having the second number of bits of the second data. The linear processing unit has a unit processing circuit that performs linear processing on unit data having a third bit number that is N times the second bit number (N is an integer equal to or greater than 2) as a processing unit. . In the processing unit, N first conversion circuits out of the plurality of first conversion circuits or N second conversion circuits out of the plurality of second conversion circuits are assigned for each processing unit, and in the description step, The lookup table description system describes the circuit functions of the plurality of first conversion circuits, and the Boolean algebra description system describes the circuit functions of the plurality of second conversion circuits.
このデジタル処理装置の製造方法では、ルックアップテーブル記述方式によって複数の第1変換回路の回路機能が記述され、ブール代数記述方式によって複数の第2変換回路の回路機能が記述される。さらに処理部では、処理単位ごとにN個の第1変換回路又はN個の第2変換回路が割り当てられる。そのため、上述のデジタル処理装置と同様に、デジタル処理装置の性能を向上させることが可能となる。 In this digital processing device manufacturing method, the circuit functions of the plurality of first conversion circuits are described by the lookup table description method, and the circuit functions of the plurality of second conversion circuits are described by the Boolean algebra description method. Furthermore, in the processing unit, N first conversion circuits or N second conversion circuits are assigned to each processing unit. Therefore, it is possible to improve the performance of the digital processing device as in the case of the digital processing device described above.
本発明の別の側面に係るデジタル処理装置の製造方法は、所定のデータの線形処理を行い、第1ビット数を有する第1データを出力する線形処理部と、複数の第1変換回路及び複数の第2変換回路を有し、第1データを、第1ビット数を有する第2データに変換する処理部と、を備えるデジタル処理装置の製造方法であって、プログラマブル論理デバイスに応じて、処理部及び線形処理部の回路機能を記述する記述工程と、回路機能に基づき、プログラマブル論理デバイスにおいて処理部及び線形処理部を作成する作成工程と、を備える。複数の第1変換回路のそれぞれ及び複数の第2変換回路のそれぞれは、第1データのうちの第2ビット数を有する第1部分データを、第2データのうちの第2ビット数を有する第2部分データに変換し、線形処理部は、第2ビット数のN倍(Nは2以上の整数)である第3ビット数を有する単位データを処理単位として線形処理を行う単位処理回路を有する。処理部では、処理単位ごとに、複数の第1変換回路のうちのN個の第1変換回路又は複数の第2変換回路のうちのN個の第2変換回路が割り当てられ、記述工程では、ルックアップテーブル記述方式によって複数の第1変換回路の回路機能が記述され、ブール代数記述方式によって複数の第2変換回路の回路機能が記述される。 A method of manufacturing a digital processing device according to another aspect of the present invention includes a linear processing unit that performs linear processing on predetermined data and outputs first data having a first number of bits; and a processing unit that converts first data into second data having a first number of bits, the method for manufacturing a digital processing device according to a programmable logic device. a description step of describing the circuit functions of the units and the linear processing units; and a creation step of creating the processing units and the linear processing units in the programmable logic device based on the circuit functions. Each of the plurality of first conversion circuits and each of the plurality of second conversion circuits converts the first partial data having the second number of bits of the first data to the second data having the second number of bits of the second data. The linear processing unit has a unit processing circuit that performs linear processing on unit data having a third bit number that is N times the second bit number (N is an integer equal to or greater than 2) as a processing unit. . In the processing unit, N first conversion circuits out of the plurality of first conversion circuits or N second conversion circuits out of the plurality of second conversion circuits are assigned for each processing unit, and in the description step, The lookup table description system describes the circuit functions of the plurality of first conversion circuits, and the Boolean algebra description system describes the circuit functions of the plurality of second conversion circuits.
このデジタル処理装置の製造方法では、ルックアップテーブル記述方式によって複数の第1変換回路の回路機能が記述され、ブール代数記述方式によって複数の第2変換回路の回路機能が記述される。さらに処理部では、処理単位ごとにN個の第1変換回路又はN個の第2変換回路が割り当てられる。そのため、上述のデジタル処理装置と同様に、デジタル処理装置の性能を向上させることが可能となる。 In this digital processing device manufacturing method, the circuit functions of the plurality of first conversion circuits are described by the lookup table description method, and the circuit functions of the plurality of second conversion circuits are described by the Boolean algebra description method. Furthermore, in the processing unit, N first conversion circuits or N second conversion circuits are assigned to each processing unit. Therefore, it is possible to improve the performance of the digital processing device as in the case of the digital processing device described above.
本発明のさらに別の側面に係るプログラムは、複数の第1変換回路及び複数の第2変換回路を有し、第1ビット数を有する第1データを、第1ビット数を有する第2データに変換する処理部と、第2データの線形処理を行う線形処理部と、を備えるデジタル処理装置としてプログラマブル論理デバイスを機能させるためのプログラムであって、プログラマブル論理デバイスに複数の第1変換回路を作成するための第1部分と、プログラマブル論理デバイスに複数の第2変換回路を作成するための第2部分と、を備える。第1部分は、ルックアップテーブル記述方式を用いて記述され、第2部分は、ブール代数記述方式を用いて記述され、複数の第1変換回路のそれぞれ及び複数の第2変換回路のそれぞれは、第1データのうちの第2ビット数を有する第1部分データを、第2データのうちの第2ビット数を有する第2部分データに変換する。線形処理部は、第2ビット数のN倍(Nは2以上の整数)である第3ビット数を有する単位データを処理単位として線形処理を行う単位処理回路を有し、処理部では、処理単位ごとに、複数の第1変換回路のうちのN個の第1変換回路又は複数の第2変換回路のうちのN個の第2変換回路が割り当てられる。 A program according to still another aspect of the present invention has a plurality of first conversion circuits and a plurality of second conversion circuits, and converts first data having a first number of bits to second data having a first number of bits. A program for causing a programmable logic device to function as a digital processing device comprising a processing unit for conversion and a linear processing unit for linearly processing second data, wherein a plurality of first conversion circuits are created in the programmable logic device. and a second portion for creating a plurality of second conversion circuits in the programmable logic device. The first part is described using a lookup table description method, the second part is described using a Boolean algebra description method, and each of the plurality of first conversion circuits and each of the plurality of second conversion circuits are: First partial data having a second number of bits of the first data is converted into second partial data having a second number of bits of the second data. The linear processing unit has a unit processing circuit that performs linear processing on unit data having a third bit number that is N times the second bit number (N is an integer of 2 or more). For each unit, N first conversion circuits out of the plurality of first conversion circuits or N second conversion circuits out of the plurality of second conversion circuits are assigned.
このプログラムでは、第1部分は、ルックアップテーブル記述方式を用いて記述され、第2部分は、ブール代数記述方式を用いて記述される。さらに処理部では、処理単位ごとにN個の第1変換回路又はN個の第2変換回路が割り当てられる。そのため、上述のデジタル処理装置と同様に、デジタル処理装置の性能を向上させることが可能となる。 In this program, the first part is described using the lookup table description method, and the second part is described using the Boolean algebra description method. Furthermore, in the processing unit, N first conversion circuits or N second conversion circuits are assigned to each processing unit. Therefore, it is possible to improve the performance of the digital processing device as in the case of the digital processing device described above.
本発明のさらに別の側面に係るプログラムは、所定のデータの線形処理を行い、第1ビット数を有する第1データを出力する線形処理部と、複数の第1変換回路及び複数の第2変換回路を有し、第1データを、第1ビット数を有する第2データに変換する処理部と、を備えるデジタル処理装置としてプログラマブル論理デバイスを機能させるためのプログラムであって、プログラマブル論理デバイスに複数の第1変換回路を作成するための第1部分と、プログラマブル論理デバイスに複数の第2変換回路を作成するための第2部分と、を備える。第1部分は、ルックアップテーブル記述方式を用いて記述され、第2部分は、ブール代数記述方式を用いて記述され、複数の第1変換回路のそれぞれ及び複数の第2変換回路のそれぞれは、第1データのうちの第2ビット数を有する第1部分データを、第2データのうちの第2ビット数を有する第2部分データに変換する。線形処理部は、第2ビット数のN倍(Nは2以上の整数)である第3ビット数を有する単位データを処理単位として線形処理を行う単位処理回路を有し、処理部では、処理単位ごとに、複数の第1変換回路のうちのN個の第1変換回路又は複数の第2変換回路のうちのN個の第2変換回路が割り当てられる。 According to yet another aspect of the present invention, there is provided a program comprising: a linear processing unit that performs linear processing on predetermined data and outputs first data having a first number of bits; a plurality of first conversion circuits; a plurality of second conversion circuits; A program for causing a programmable logic device to function as a digital processing device, the program for causing a programmable logic device to function as a digital processing device, the program comprising: and a second portion for creating a plurality of second translation circuits in the programmable logic device. The first part is described using a lookup table description method, the second part is described using a Boolean algebra description method, and each of the plurality of first conversion circuits and each of the plurality of second conversion circuits are: First partial data having a second number of bits of the first data is converted into second partial data having a second number of bits of the second data. The linear processing unit has a unit processing circuit that performs linear processing on unit data having a third bit number that is N times the second bit number (N is an integer of 2 or more). For each unit, N first conversion circuits out of the plurality of first conversion circuits or N second conversion circuits out of the plurality of second conversion circuits are assigned.
このプログラムでは、第1部分は、ルックアップテーブル記述方式を用いて記述され、第2部分は、ブール代数記述方式を用いて記述される。さらに処理部では、処理単位ごとにN個の第1変換回路又はN個の第2変換回路が割り当てられる。そのため、上述のデジタル処理装置と同様に、デジタル処理装置の性能を向上させることが可能となる。 In this program, the first part is described using the lookup table description method, and the second part is described using the Boolean algebra description method. Furthermore, in the processing unit, N first conversion circuits or N second conversion circuits are assigned to each processing unit. Therefore, it is possible to improve the performance of the digital processing device as in the case of the digital processing device described above.
本発明によれば、デジタル処理装置の性能を向上させることが可能となる。 According to the present invention, it is possible to improve the performance of a digital processing device.
以下、添付図面を参照しながら本発明の実施形態の詳細を説明する。図面の説明において、同一又は同等の要素には同一符号が用いられ、重複する説明は省略される。 Hereinafter, details of embodiments of the present invention will be described with reference to the accompanying drawings. In the description of the drawings, the same reference numerals are used for the same or equivalent elements, and overlapping descriptions are omitted.
図1は、第1実施形態に係るデジタル処理装置の構成を示す図である。図2は、図1の線形処理部の詳細構成を示す図である。図1に示されるデジタル処理装置1は、BORON規格に準拠した暗号処理を行うための装置である。デジタル処理装置1は、プログラマブル論理デバイスを用いて作成される。プラグラマブル論理デバイスとしては、例えば、FPGA及びPLD(Programmable Logic Device)が用いられる。
FIG. 1 is a diagram showing the configuration of a digital processing device according to the first embodiment. FIG. 2 is a diagram showing the detailed configuration of the linear processing unit in FIG. A
デジタル処理装置1は、暗号データ生成部2、処理部3、及び線形処理部4を備える。デジタル処理装置1は、暗号データ生成部2、処理部3、及び線形処理部4によって、第1ビット数(図1では64ビット)を有する入力データをデジタル処理することで、第1ビット数を有する出力データを出力する。なお図1では、暗号データ生成部2、処理部3、及び線形処理部4は、それぞれ1つずつ示されているが、デジタル処理装置1は、暗号データ生成部2、処理部3、及び線形処理部4を1つの回路部10として、複数の回路部10を備えている。複数の回路部10は、直列に接続されており、互いに隣り合う2つの回路部10,10では、前段の回路部10から出力されたデータDoutが、後段の回路部10にデータDinとして入力される。なお、データDinに含まれる各ビットには、LSB(Least Significant Bit;最下位ビット)からMSB(Most Significant Bit;最上位ビット)まで昇順でビット番号が割り当てられている。本実施形態では、LSBのビット番号は0番で、MSBのビット番号は63番である。データDout、及び後述のデータD1,D2,D3,D4についても同様である。
The
暗号データ生成部2は、暗号鍵データに基づきデータDinを論理演算する回路である。具体的には、暗号データ生成部2は、データDinと暗号鍵データとのXOR(排他的論理和)を演算する。データDinは、第1ビット数を有するデータである。暗号鍵データは、予め不図示のメモリに記憶されており、メモリから暗号データ生成部2に入力される。暗号鍵データは、不図示の暗号鍵生成回路によって逐次生成され、暗号鍵生成回路から暗号データ生成部2に入力されてもよい。暗号鍵データは、第1ビット数を有する。暗号データ生成部2は、演算結果をデータD1(第1データ)として処理部3に出力する。データD1は、第1ビット数を有するデータである。
The
処理部3は、データD1をデータD2(第2データ)に変換する回路である。データD2は、第1ビット数を有するデータである。具体的には、処理部3は、データD1の非線形変換処理を行うことでデータD2を生成する。処理部3は、データD2を線形処理部4に出力する。処理部3は、複数の変換回路31(複数の第1変換回路)及び複数の変換回路32(複数の第2変換回路)を有する。複数の変換回路31及び複数の変換回路32は、並列に配置されており、各変換回路31及び各変換回路32には、データd1(第1部分データ)が入力される。データd1は、データD1のうちの一部のデータであり、第2ビット数(図1では4ビット)を有する。データd1は、データD1のLSBからMSBまでの全てのデータを、ビット番号順に第2ビット数単位で分割したデータである。図1では、16個のデータd1によって、データD1が構成される。複数の変換回路31のそれぞれ及び複数の変換回路32のそれぞれが、それぞれに入力されるデータd1を変換処理することで、処理部3はデータD1をデータD2に変換する。
The
変換回路31は、ルックアップテーブルを用いる記述方式(ルックアップテーブル記述方式)に基づいて作成された回路である。変換回路32は、ブール代数を用いる記述方式(ブール代数記述方式)に基づいて作成された回路である。変換回路31及び変換回路32は、互いに等価な機能を有する。
The
変換回路31,32は、データd1を変換処理する回路である。具体的には、変換回路31,32は、データd1をデータd2(第2部分データ)に変換する。データd2は、データD2のうちの一部のデータであり、第2ビット数を有する。データd2は、データD2のLSBからMSBまでの全てのデータを、ビット番号順に第2ビット数単位で分割したデータである。図1では、16個のデータd2によって、データD2が構成される。変換回路31,32は、データd1とデータd2との関係を定めた真理値表等に基づいたテーブル参照回路を実現する論理演算回路である。変換回路31,32は、S-BOX(substitution box)とも称される。
処理部3では、データD1のうちの第2ビット数のN倍(Nは2以上の整数)の第3ビット数(図1では16ビット)のデータごとに複数の変換回路31のうちのN個の変換回路31又は複数の変換回路32のうちのN個の変換回路32が割り当てられる。なお本実施形態では、N=4である。具体的には、処理部3では、データD1のうちのLSBから15番目のビットまでの4個のデータd1に対して、それぞれ変換回路32が割り当てられる。データD1のうち16番目から31番目のビットまでの4個のデータd1に対して、それぞれ変換回路31が割り当てられる。データD1のうちの32番目から47番目のビットまでの4個のデータd1に対して、それぞれ変換回路32が割り当てられる。データD1のうちの48番目のビットからMSBまでの4個のデータd1に対して、それぞれ変換回路31が割り当てられる。
In the
線形処理部4は、データD2を線形処理する回路である。線形処理部4は、データD2を線形処理することで、データDoutを生成する。データDoutは、第1ビット数を有するデータである。線形処理部4は、データDoutを回路部10からの出力データとして出力する。線形処理部4は、シャッフル回路41、シフト回路42、及びXOR実行回路43を有する。
The
シャッフル回路41は、データD2に対してシャッフル処理を施す回路である。シャッフル処理とは、データD2に含まれる並列に配置された複数のデータd2の並び順を変更する処理である。シャッフル回路41は、データD2のシャッフル処理を行うことでデータD3を生成する。シャッフル回路41は、データD3をシフト回路42に出力する。データD3は第1ビット数を有するデータである。シャッフル回路41は、図2に示されるように、複数(ここでは、4つ)のシャッフル回路41a~41d(単位処理回路)を有する。シャッフル回路41a~41dのそれぞれは、第3ビット数を有する単位データを処理単位として、シャッフル処理(線形処理)を行う回路である。シャッフル回路41a~41dのそれぞれは、単位データに含まれるN個(ここでは、N=4)のデータd2の並び順を変更する。シャッフル回路41a~41dは並列に配置され、シャッフル回路41a~41dのそれぞれは、4個の変換回路31及び4個の変換回路32のいずれかに割り当てられる。
The
具体的には、シャッフル回路41aは、4個の変換回路32に割り当てられており、データD2のうちのLSBから15番目のビットまでの4つのデータd2を単位データとしてシャッフル処理を行う。シャッフル回路41aは、シャッフル処理結果をデータd3aとして後述のシフト回路42aに出力する。シャッフル回路41aは、データD2のうちのLSBから3番目のビットまでのデータd2を、データd3aにおける8番目から11番目のビット位置に配置し、データD2のうちの4番目から7番目のビットまでのデータd2を、データd3aにおける12番目から15番目のビット位置に配置する。シャッフル回路41aは、データD2のうちの8番目から11番目のビットまでのデータd2を、データd3aにおけるLSBから3番目のビット位置に配置し、データD2のうちの12番目から15番目のビットまでのデータd2を、データd3aにおける4番目から7番目のビット位置に配置する。
Specifically, the
シャッフル回路41bは、4個の変換回路31に割り当てられており、データD2のうちの16番目から31番目のビットまでの4つのデータd2を単位データとしてシャッフル処理を行う。シャッフル回路41bは、シャッフル処理結果をデータd3bとして後述のシフト回路42bに出力する。シャッフル回路41cは、4個の変換回路32に割り当てられており、データD2のうちの32番目から47番目のビットまでの4つのデータd2を単位データとしてシャッフル処理を行う。シャッフル回路41cは、シャッフル処理結果をデータd3cとして後述のシフト回路42cに出力する。シャッフル回路41dは、4個の変換回路31に割り当てられており、データD2のうちの48番目のビットからMSBまでの4つのデータd2を単位データとしてシャッフル処理を行う。シャッフル回路41dは、シャッフル処理結果をデータd3dとして後述のシフト回路42dに出力する。
The
なお、データd3a~d3dは、データD3のうちの一部のデータであり、第3ビット数を有する。データd3a~d3dは、データD3のLSBからMSBまでの全てのデータを、ビット番号順に第3ビット数単位で分割したデータである。図2では、データd3a~d3dによって、データD3が構成される。シャッフル回路41b~41dは、シャッフル処理を施す複数(ここでは、4つ)のデータd2が異なる点を除きシャッフル回路41aと同様に複数のデータd2の並び順を変更するので、詳細な説明を省略する。なお、図2に示されるシャッフル回路41a~41dでは、4ビットのデータが1本の線にまとめられて示されている。
The data d3a to d3d are part of the data D3 and have the third bit number. Data d3a to d3d are data obtained by dividing all the data from LSB to MSB of data D3 in the order of the bit numbers in units of the third number of bits. In FIG. 2, data D3 is composed of data d3a to d3d. The
シフト回路42は、データD3に対してシフト処理を施す回路である。シフト処理とは、データD3に含まれるデータd3a~d3dのそれぞれを所定のビット数シフトする処理である。シフト回路42は、データD3のシフト処理を行うことでデータD4を生成する。シフト回路42は、データD4をXOR実行回路43に出力する。データD4は第1ビット数を有するデータである。シフト回路42は、複数(ここでは、4つ)のシフト回路42a~42d(単位処理回路)を有する。シフト回路42a~42dは、並列に配置され、データd3a~d3dにそれぞれ割り当てられる。シフト回路42a~42dのそれぞれは、第3ビット数を有する単位データを処理単位として、左シフト処理(線形処理)を行う。
The
具体的には、シフト回路42aは、データd3aを単位データとして、データd3aを1ビットシフト(左シフト)する。左シフトとは、シフトさせる対象のデータに含まれる全てのビットを、所定のビット数上位にサイクリックにずらす処理である。シフト回路42aは、シフト処理結果をデータd4aとして後述のXOR演算回路43a,43cに出力する。シフト回路42aのシフト処理では、例えば、データd3aのうちのLSBに位置するビットは、データd4aにおける1番目のビット位置にシフトされ、データd3aのうちの1番目のビットは、データd4aにおける2番目のビット位置にシフトされ、データd3aのうちの15番目のビットは、データd4aにおけるLSBのビット位置にシフトされる。
Specifically, the
シフト回路42bは、データd3bを単位データとして、データd3bを4ビット左シフトする。シフト回路42bは、シフト処理結果をデータd4bとして後述のXOR演算回路43bに出力する。シフト回路42cは、データd3cを単位データとして、データd3cを7ビット左シフトする。シフト回路42cは、シフト処理結果をデータd4cとして後述のXOR演算回路43cに出力する。シフト回路42dは、データd3dを単位データとして、データd3dを9ビット左シフトする。シフト回路42dは、シフト処理結果をデータd4dとして後述のXOR演算回路43b,43dに出力する。なお、データd4a~d4dは、データD4のうちの一部のデータであり、第3ビット数を有する。データd4a~d4dは、データD4のLSBからMSBまでの全てのデータを、ビット番号順に第3ビット数単位で分割したデータである。図2では、データd4a~d4dによって、データD4が構成される。なお、図2では、16ビットのデータが1本の線にまとめられて、データd3a~d3d及びデータd4a~d4dが示されている。
The
XOR実行回路43は、データD4に対してXOR演算処理を施す回路である。XOR実行回路43は、データD4のXOR演算処理を行うことでデータDoutを生成する。XOR実行回路43は、データDoutを回路部10からの出力データとして出力する。XOR実行回路43は、複数(ここでは、4つ)のXOR演算回路43a~43dを有する。XOR演算回路43a~43dは、並列に配置され、データd4a~d4dのそれぞれに割り当てられる。XOR演算回路43a~43dのそれぞれは、データd4a~d4dに対してXOR演算処理(線形処理)を行う。
The
具体的には、XOR演算回路43cは、データd4aとデータd4cとのXORを演算する。XOR演算回路43cは、演算結果をデータDoutのうちの32番目から47番目のビットまでのデータとして出力するとともに、演算結果をXOR演算回路43dに出力する。XOR演算回路43bは、データd4bとデータd4dとのXORを演算する。XOR演算回路43bは、演算結果をデータDoutのうちの16番目から31番目のビットまでのデータとして出力するとともに、演算結果をXOR演算回路43aに出力する。XOR演算回路43aは、データd4aとXOR演算回路43bの演算結果とのXORを演算する。XOR演算回路43aは、演算結果をデータDoutのうちのLSBから15番目のビットまでのデータとして出力する。XOR演算回路43dは、データd4dとXOR演算回路43cの演算結果とのXORを演算する。XOR演算回路43dは、演算結果をデータDoutのうちの48番目のビットからMSBまでのデータとして出力する。
Specifically, the
図3は、第1実施形態に係るデジタル処理装置の変形例を示す図である。図3に示されるデジタル処理装置1Aは、処理部3での複数の変換回路31及び複数の変換回路32の割り当て方において図1に示されるデジタル処理装置1と相違する。具体的には、デジタル処理装置1Aでは、データD1のうちのLSBから15番目のビットまでの4個のデータd1に対して、それぞれ変換回路31が割り当てられる。データD1のうち16番目から31番目のビットまでの4個のデータd1に対して、それぞれ変換回路32が割り当てられる。データD1のうちの32番目から47番目のビットまでの4個のデータd1に対して、それぞれ変換回路31が割り当てられる。データD1のうちの48番目のビットからMSBまでの4個のデータd1に対して、それぞれ変換回路32が割り当てられる。
FIG. 3 is a diagram showing a modification of the digital processing device according to the first embodiment. A
次に、デジタル処理装置1の製造方法を説明する。ここでは、プログラマブル論理デバイスとしてFPGAを用いる場合について説明する。デジタル処理装置1が備える回路部10は、FPGAを用いて作成される。デジタル処理装置1の製造では、まず、回路部10の回路機能をハードウェア記述言語で記述したプログラムが、回路設計者等のユーザによって作成される。そして、専用ツール等によって、プログラムに基づきFPGAに回路部10の回路機能が書き込まれることで、FPGA上に回路部10が作成される。なお、回路機能が書き込まれていないFPGAは、予め製作されている。デジタル処理装置1の製造方法は、記述工程と作成工程とを備える。
Next, a method for manufacturing the
記述工程は、FPGAに応じてデジタル処理装置1が備える回路部10の機能を記述する工程である。具体的には、暗号データ生成部2、処理部3及び線形処理部4のそれぞれの回路機能が、FPGAに応じたハードウェア記述言語によって記述される。回路機能を記述したプログラムは、FPGAに複数の変換回路31を作成するための第1部分と、FPGAに複数の変換回路32を作成するための第2部分とを備える。変換回路31及び変換回路32の回路機能は、真理値表等に基づき入力値に対して一意に出力値が定まるように記述される。
The description step is a step of describing the functions of the
複数の変換回路31の回路機能は、ルックアップテーブル記述方式によって記述される。つまり、プログラムの第1部分は、ルックアップテーブル記述方式を用いて記述される。具体的には、4ビットのデータd1の値(入力値)及びデータd2の値(出力値)が16進数で表され、全ての16進数の入力値0~F(2進数では0000~1111)に対して、それぞれに16進数の出力値0~Fを一意に対応付けるように、各変換回路31の回路機能が記述される。各変換回路31の回路機能は、例えば、入力値が2(2進数では0010)に対して出力値としてB(2進数では1011)を対応付け、入力値が3(2進数では0011)に対して出力値として1(2進数では0001)を対応付けるように記述される。なお、入力値及び出力値を10進数で表すことで、入力値及び出力値が一意に対応付けられてもよい。
Circuit functions of the plurality of
複数の変換回路32の回路機能は、ブール代数記述方式によって記述される。つまり、プログラムの第2部分は、ブール代数記述方式を用いて記述される。具体的には、データd2の各ビットを、データd1の複数のビットを含むブール代数(論理演算式)で表すように各変換回路32の回路機能が記述される。データd1を2進数表記で(x3,x2,x1,x0)とし、データd2を2進数表記で(y3,y2,y1,y0)とすると、データd2のy0は、例えば、下記式(1)のようにブール代数によって記述される。ここで、!はxn(nは0~3)の否定(NOT)を表し、&は論理積(AND)演算を表し、|は論理和(OR)演算を表す。同様にして、出力値の他のビットであるy1,y2,及びy3も、データd1の各ビット(x0,x1,x2,x3)から一意に定まるブール代数によって記述される。
y0=(!x3&!x2&x1)|(!x2&x1&x0)|(!x3&x2&!x1)|(x2&!x1&x0)|(x3&!x2&!x1&!x0)|(x3&x2&x1&!x0)…(1)
Circuit functions of the plurality of
y0=(!x3&!x2&x1)|(!x2&x1&x0)|(!x3&x2&!x1)|(x2&!x1&x0)|(x3&!x2&!x1&!x0)|(x3&x2&x1&!x0)...(1)
変換回路31及び変換回路32の回路機能は、データd1の値が同じであれば、同じデータd2の値を出力するように記述される。複数の変換回路31及び複数の変換回路32の回路機能の記述が含まれるプログラムは、ソースファイルとも称される。回路機能が記述されたプログラムは、例えば、フレキシブルディスク、CD-ROM(Compact Disc-Read only memory)、DVD(Digital Versatile Disc)もしくはROM等の記憶媒体または半導体メモリに格納されて提供される。また、上述のプログラムは、搬送波に重畳されたコンピュータデータ信号としてネットワークを介して提供されてもよい。
The circuit functions of the
続いて、上述のプログラムに記述した回路機能に基づき、FPGAにおいて回路部10が作成される(作成工程)。作成工程では、例えば、専用ツールによって、上述のプログラムが、ハードウェア記述言語を中間言語に翻訳したネットリストに変換される。そして、ネットリストからFPGAに書き込むための書き込み用データ(オブジェクトファイル)が作成される。そして、書き込みツールによって、書き込み用データをFPGAに書き込むことで(コンフィギュレーション)、FPGAにおいて処理部3及び線形処理部4を含む回路部10が作成される。なお、デジタル処理装置1Aも、デジタル処理装置1と同様に製造される。
Subsequently, the
次に、第1実施形態に係るデジタル処理装置1,1Aの効果の検証結果を説明する。表1及び表2は、FPGAとしてXilinx社のsp6(製品名)を用いた場合の検証結果である。第1検証例は、図1に示されるデジタル処理装置1での検証結果である。第2検証例は、図2に示されるデジタル処理装置1Aでの検証結果である。第1比較例は、処理部3が有する変換回路を全てルックアップテーブル記述方式に基づいて作成した場合の比較結果であり、第2比較例は、処理部3が有する変換回路を全てブール代数記述方式に基づいて作成した場合の比較結果である。第1検証例、第2検証例、第1比較例及び第2比較例におけるデジタル処理装置のそれぞれは、24個の回路部を備える。表1には、デジタル処理装置の入力データ及び出力データの各ビットを、FPGA上の特定の入出力端子に割り当てない場合(IO-Floated)での検証結果が示されている。また、表2には、デジタル処理装置の入力データ及び出力データの各ビットを、FPGA上の特定の入出力端子に割り当てた場合(IO-Stuck)での検証結果が示されている。回路合成の最適化オプションとして、IO-Floatedの場合には動作速度を最重視するオプションを、IO-Stuckの場合には動作速度を重視するが実装面積とのバランスも考慮するオプションを選択して、検証を行った。
表1の評価項目に関し、「LUTs」は、第1検証例、第2検証例、第1比較例及び第2比較例の回路構成を実現するために、FPGAの論理ブロックを構成するルックアップテーブルの使用個数を示し、その単位は個である。「実装面積」は、FPGAに作成された回路の実装面積、ここでは、FPGAの所定数のルックアップテーブル及びフリップフロップで構成されるスライスの使用個数を示し、その単位はスライス数である。「動作速度」は、デジタル処理装置が動作可能な最大の周波数であり、その単位はメガヘルツ(MHz)である。「消費電力」は、動作速度10MHzでのFPGA上に作成された回路で消費される電力を示し、その単位はミリワット(mW)である。 Regarding the evaluation items in Table 1, "LUTs" are lookup tables that configure the logic blocks of the FPGA in order to realize the circuit configurations of the first verification example, the second verification example, the first comparative example, and the second comparative example. is used, and the unit is pcs. The "mounting area" indicates the mounting area of the circuit created in the FPGA, here, the number of used slices composed of a predetermined number of lookup tables and flip-flops of the FPGA, and the unit is the number of slices. "Operating speed" is the maximum frequency at which a digital processing device can operate, and is measured in megahertz (MHz). "Power consumption" indicates the power consumed by the circuit created on the FPGA at an operating speed of 10 MHz, and its unit is milliwatts (mW).
表1及び表2に示されるように、第1検証例、第2検証例、第1比較例、及び第2比較例において、FPGA上で使用されたルックアップテーブルの個数は同じであった。IO-Floatedの場合、第1検証例の検証結果では、実装面積が第1比較例及び第2比較例と比べて小さくなり、第2検証例の検証結果では、動作速度が第1比較例及び第2比較例と比べて速くなった。一方、IO-Stuckの場合、第1検証例の検証結果では、実装面積が第1比較例及び第2比較例と比べ小さくなり、さらに動作速度が第1比較例及び第2比較例と比べて速くなった。また、第2検証例の検証結果では、実装面積が第1比較例及び第2比較例と比べて小さくなり、さらに動作速度が第1比較例及び第2比較例と比べて速くなった。 As shown in Tables 1 and 2, the number of lookup tables used on the FPGA was the same in the first verification example, the second verification example, the first comparative example, and the second comparative example. In the case of IO-Floated, the verification result of the first verification example shows that the mounting area is smaller than those of the first and second comparative examples, and the verification result of the second verification example shows that the operation speed is lower than that of the first and second comparative examples. It became faster than the second comparative example. On the other hand, in the case of IO-Stuck, the verification result of the first verification example shows that the mounting area is smaller than that of the first and second comparative examples, and the operating speed is lower than that of the first and second comparative examples. faster. Further, in the verification result of the second verification example, the mounting area was smaller than those of the first and second comparative examples, and the operating speed was faster than those of the first and second comparative examples.
IO-Floatedの場合、第1検証例及び第2検証例の検証結果では、第1比較例及び第2比較例のうちの消費電力が大きい比較例と比べて、消費電力が小さくなった。一方、IO-Stuckの場合、第1検証例の検証結果では、第1比較例及び第2比較例のうちの消費電力が大きい比較例と比べて、消費電力が小さくなった。第2検証例の検証結果では、第1比較例及び第2比較例と比べて、消費電力が小さくなった。以上のことから、第1検証例及び第2検証例では、第1比較例及び第2比較例と比べて、消費電力の大幅な増加をもたらすことなく、性能が向上したことがわかる。 In the case of IO-Floated, the verification results of the first verification example and the second verification example show that the power consumption is smaller than that of the first comparative example and the second comparative example, which consumes more power. On the other hand, in the case of the IO-Stuck, the verification result of the first verification example showed that the power consumption was smaller than that of the first comparative example and the second comparative example, which consumed a large amount of power. In the verification result of the second verification example, the power consumption was smaller than those of the first and second comparative examples. From the above, it can be seen that in the first verification example and the second verification example, the performance was improved without causing a large increase in power consumption as compared with the first comparative example and the second comparative example.
このようなデジタル処理装置1,1Aでは、シャッフル回路41a~41d(単位処理回路)のそれぞれ及びシフト回路42a~42d(単位処理回路)のそれぞれは、第2ビット数(4ビット)の4倍である第3ビット数(16ビット)を有する単位データを処理単位として線形処理を行う。また処理部3では、処理単位ごとに4個の変換回路31又は4個の変換回路32が割り当てられる。処理部3では、異なる記述方式に基づいて作成された変換回路31,32が混在するとともに、処理単位ごとに同じ記述方式に基づいて作成された4個の変換回路31,32が割り当てられる。FPGA(プログラマブル論理デバイス)に作成される種々の回路は、ランダムに分散して配置されることを基本とするが、同じ記述方式に基づいた回路はまとまって配置される傾向がある。このため、処理単位ごとに同じ記述方式に基づいて作成された4個の変換回路31,32を割り当てることで、4個の変換回路31,32がまとまって配置される可能性が高まる。その結果、FPGAに作成される回路の実装面積を小さくでき、又はその回路の処理速度を速めることができるので、デジタル処理装置の性能を向上させることが可能となる。
In such a
シャッフル回路41a~41d(単位処理回路)は、単位データに含まれる4個のデータd2(第2部分データ)の並び順を変更する。シャッフル回路41aが処理する4個のデータd2を供給する4個の変換回路32が、分散して配置されている場合、4個の変換回路32からシャッフル回路41aまでの配線の配線長の合計が大きくなる可能性がある。これに対して、シャッフル回路41aが処理する4個のデータd2を供給する4個の変換回路32は、まとまって配置される傾向があるので、上記配線長の合計が小さくなる可能性が高まる。これにより、FPGAに作成される回路の実装面積が低減され、処理速度が速くなる可能性が高まる。シャッフル回路41b~41dについても同様である。
The
シフト回路42a~42d(単位処理回路)は、データd3a~d3d(単位データ)を所定ビット数シフトする。シフト回路42aが処理するデータd3aをシャッフル回路41aを介して供給する4個の変換回路32が、分散して配置されている場合、4個の変換回路32からシャッフル回路41aを介してシフト回路42aまでの配線の配線長の合計が大きくなる可能性がある。これに対して、上記4個の変換回路32は、まとまって配置される傾向があるので、上記配線長の合計が小さくなる可能性が高まる。これにより、FPGAに作成される回路の実装面積が低減され、処理速度が速くなる可能性が高まる。シフト回路42b~42dについても同様である。
The
複数の変換回路31(第1変換回路)のそれぞれ及び複数の変換回路32(第2変換回路)のそれぞれは、非線形変換処理を行う。そのため、デジタル処理装置1,1Aの出力データから、デジタル処理装置1,1Aの入力データを推測され難くすることが可能となる。
Each of the plurality of conversion circuits 31 (first conversion circuit) and each of the plurality of conversion circuits 32 (second conversion circuit) perform nonlinear conversion processing. Therefore, it is possible to make it difficult to guess the input data of the
図4は、第2実施形態に係るデジタル処理装置の構成を示す図である。図5は、図4の配列処理回路の配列変換処理を説明するための図である。図4に示されるデジタル処理装置5は、PRINTcipher規格に準拠した暗号処理を行うための装置である。デジタル処理装置5は、第1実施形態に係るデジタル処理装置1と比較して、入力データ及び出力データの第1ビット数が48ビットである点、並びに処理部3及び線形処理部4に代えて、処理部7及び線形処理部6を備える点において、主に相違する。
FIG. 4 is a diagram showing the configuration of a digital processing device according to the second embodiment. FIG. 5 is a diagram for explaining the array conversion processing of the array processing circuit of FIG. The digital processing device 5 shown in FIG. 4 is a device for performing cryptographic processing conforming to the PRINTcipher standard. The digital processing device 5 differs from the
デジタル処理装置5では、暗号データ生成部2は、データDinと暗号鍵データとのXORを演算し、演算結果をデータD1として線形処理部6に出力する。データDin及びD1は第1ビット数を有する。なお、本実施形態では、データDinにおけるMSBのビット番号は47番である。データD1、及び後述のデータD5,D6,D7,Doutについても同様である。線形処理部6は、データD1を線形処理し、線形処理結果をデータD7(第1データ)として処理部7に出力する。データD7は第1ビット数を有するデータである。線形処理部6は、配列変換回路61、XOR実行回路62、及び置換回路63を有する。
In the digital processing device 5, the encrypted
配列変換回路61は、データD1に対して配列変換処理(線形処理)を施す回路である。配列変換処理とは、データD1に含まれる複数のビットの配列を変更する処理である。配列変換回路61は、データD1の配列変換処理を行うことでデータD5を生成する。配列変換回路61は、データD5をXOR実行回路62に出力する。データD5は第1ビット数を有するデータである。
The
図5に示されるように、配列変換回路61は、データD1におけるビット番号mが0番目から15番目までの各ビットを、データD5において(3×m)番目のビット位置に配置する。配列変換回路61は、データD1におけるビット番号mが16番目から31番目の各ビットを、データD5において{3×(m-16)+1}番目のビット位置に配置する。配列変換回路61は、データD1におけるビット番号mが32番目から47番目までの各ビットを、データD5において{3×(m-32)+2}番目のビット位置に配置する。
As shown in FIG. 5, the
XOR実行回路62は、データD5に対してXOR演算処理を施す回路である。XOR実行回路62は、データD5のXOR演算処理を行うことでデータD6を生成する。XOR実行回路62は、データD6を置換回路63に出力する。データD6は、第1ビット数を有するデータである。XOR実行回路62は、XOR演算回路62aを有する。XOR演算回路62aは、データD5のうちのLSBから5番目のビットまでのデータd51に割り当てられる。XOR演算回路62aは、データd51に対してXOR演算処理(線形処理)を行う。XOR演算回路62aは、演算結果をデータd61として置換回路63に出力する。XOR実行回路62は、データD5のうちの6番目のビットからMSBまでのデータd52を、値を変更することなくデータd62として置換回路63に出力する。
The
なお、データd51はデータD5の一部のデータであり、第3ビット数(ここでは、6ビット)を有する。データd52はデータD5の一部のデータである。データd51及びデータd52によって、データD5が構成される。データd61はデータD6の一部のデータであり、第3ビット数を有する。データd62はデータD6の一部のデータである。データd61及びデータd62によって、データD6が構成される。データd52及びデータd62は、同じビット数(ここでは、42ビット)を有する。 Data d51 is a part of data D5 and has a third number of bits (here, 6 bits). Data d52 is a part of data D5. Data D5 is composed of data d51 and data d52. Data d61 is part of data D6 and has a third bit number. Data d62 is a part of data D6. Data D6 is composed of data d61 and data d62. Data d52 and data d62 have the same number of bits (here, 42 bits).
XOR演算回路62a(単位処理回路)は、データd51とラウンド定数データとのXORを演算する。XOR演算回路62aは、第2ビット数のN倍(Nは2以上の整数)である第3ビット数を有するデータd51を単位データとしてXOR演算処理(線形処理)を行う。なお本実施形態では、N=2である。ラウンド定数データは、予め不図示のメモリに記憶されており、メモリからXOR演算回路62aに入力される。ラウンド定数データは、不図示のラウンド定数生成回路によって逐次生成され、ラウンド定数生成回路からXOR演算回路62aに入力されてもよい。ラウンド定数データは、第3ビット数を有する。ラウンド定数データは、デジタル処理装置5が備える複数の回路部10のそれぞれで異なる値を有していてもよい。
The
置換回路63は、データD6に対して、置換処理を施す回路である。置換処理とは、データD6のうちの第2ビット数(ここでは、3ビット)を有するデータに含まれる各ビットのビット位置を、相互に入れ替える処理である。置換回路63は、データD6の置換処理を行うことでデータD7を生成する。置換回路63は、データD7を処理部7に出力する。データD7は、第1ビット数を有するデータである。置換回路63は、複数(ここでは、16個)の個別置換回路64を有する。複数の個別置換回路64は、並列に配置され、複数の個別置換回路64のそれぞれは、データD6における第2ビット数を有するデータごとに、LSBから順に割り当てられる。個別置換回路64は、データD6のうちの第2ビット数を有するデータに対して、置換処理(線形処理)を施す。
The
具体的には、個別置換回路64は、2ビットのラウンド鍵に応じて、個別置換回路64に入力されるデータの各ビットのビット位置を相互に入れ替える。ラウンド鍵は、予め不図示のメモリに記憶されており、メモリから各個別置換回路64に入力される。ラウンド鍵は、不図示のラウンド鍵生成回路によって逐次生成され、ラウンド鍵生成回路から各個別置換回路64に入力されてもよい。ラウンド鍵は、デジタル処理装置5が備える複数の回路部10のそれぞれで異なる値を有していてもよい。個別置換回路64は、ラウンド鍵の値に応じて、各ビットのビット位置の入れ替え方を異ならせる。例えば、2ビットのラウンド鍵の値が(0,1)の場合、個別置換回路64は、個別置換回路64に入力される3ビットのデータ(p2,p1,p0)を、各ビットのビット位置を入れ替えたデータ(p1,p2,p0)に置換する。ラウンド鍵の値が(1,0)の場合、個別置換回路64は、データ(p2,p1,p0)をデータ(p2,p0,p1)に置換する。
Specifically, the
各個別置換回路64は置換処理を行うことでデータd7(第1部分データ)を生成する。各個別置換回路64は、データd7を変換回路31又は変換回路32に出力する。なお、データd7は、データD7のうちの一部のデータであり、第2ビット数を有する。複数のデータd7は、データD7のLSBからMSBまでの全てのデータを、ビット番号順に第2ビット数単位で分割したデータである。図4では、16個のデータd7によって、データD7が構成される。
Each
処理部7は、データD7をデータDout(第2データ)に変換する回路である。データDoutは第1ビット数を有するデータである。具体的には、処理部7は、データD7の非線形変換処理を行うことでデータDoutを生成する。処理部7は、データDoutを回路部10からの出力データとして出力する。処理部7では、複数の変換回路31(複数の第1変換回路)及び複数の変換回路32(複数の第2変換回路)が並列に配置される。各変換回路31及び各変換回路32には、データd7が入力される。複数の変換回路31のそれぞれ及び複数の変換回路32のそれぞれが、それぞれに入力されるデータd7を変換処理することで、処理部7はデータD7をデータDoutに変換する。
The
各変換回路31及び各変換回路32は、データd7の変換処理を行うことで、データdout(第2部分データ)を生成する。データdoutは第2ビット数を有する。なお、データdoutは、データDoutのうちの一部のデータである。複数のデータdoutは、データDoutのLSBからMSBまでの全てのデータを、ビット番号順に第2ビット数単位で分割したデータである。図4では、16個のデータdoutによって、データDoutが構成される。
Each
処理部7では、データD7における第2ビット数のN倍(ここでは、N=2)の第3ビット数のデータごとに複数の変換回路31のうちのN個(ここでは、N=2)の変換回路31又は複数の変換回路32のうちのN個(ここでは、N=2)の変換回路32が割り当てられる。具体的には、処理部7では、データD7のうちのLSBから5番目のビットまでの2個のデータd7に対して、それぞれ変換回路31が割り当てられる。データD7のうちの6番目から11番目のビットまでの2個のデータd7に対して、それぞれ変換回路31が割り当てられる。データD7のうちの12番目から17番目のビットまでの2個のデータd7に対して、それぞれ変換回路31が割り当てられる。データD7のうちの18番目から23番目のビットまでの2個のデータd7に対して、それぞれ変換回路31が割り当てられる。
In the
処理部7では、データD7のうちの24番目から29番目のビットまでの2個のデータd7に対して、それぞれ変換回路32が割り当てられる。データD7のうちの30番目のビットから35番目のビットまでの2個のデータd7に対して、それぞれ変換回路32が割り当てられる。データD7のうちの36番目から41番目のビットまでの2個のデータd7に対して、それぞれ変換回路32が割り当てられる。データD7のうちの42番目のビットからMSBまでの2個のデータd7に対して、それぞれ変換回路32が割り当てられる。
In the
図6は、第2実施形態に係るデジタル処理装置の変形例を示す図である。図6で示されるデジタル処理装置5Aは、処理部7での複数の変換回路31及び複数の変換回路32の割り当て方において図4に示されるデジタル処理装置5と相違する。具体的には、デジタル処理装置5Aでは、データD7のうちのLSBから5番目のビットまでの2個のデータd7に対して、それぞれ変換回路31が割り当てられる。データD7のうちの6番目から11番目のビットまでの2個のデータd7に対して、それぞれ変換回路32が割り当てられる。データD7のうちの12番目から17番目のビットまでの2個のデータd7に対して、それぞれ変換回路31が割り当てられる。データD7のうちの18番目から23番目のビットまでの2個のデータd7に対して、それぞれ変換回路32が割り当てられる。
FIG. 6 is a diagram showing a modification of the digital processing device according to the second embodiment. A
デジタル処理装置5Aでは、データD7のうちの24番目から29番目のビットまでの2個のデータd7に対して、それぞれ変換回路31が割り当てられる。データD7のうちの30番目から35番目のビットまでの2個のデータd7に対して、それぞれ変換回路32が割り当てられる。データD7のうちの36番目から41番目のビットまでの2個のデータd7に対して、それぞれ変換回路31が割り当てられる。データD7のうちの42番目のビットからMSBまでの2個のデータd7に対して、それぞれ変換回路32が割り当てられる。
In the
第2実施形態に係るデジタル処理装置5,5Aは、第1実施形態に係るデジタル処理装置1,1Aと同様に、FPGAを用いて製造される。デジタル処理装置5,5Aの製造では、第1実施形態に係るデジタル処理装置1,1Aの製造と同様に、線形処理部6及び処理部7を含む回路部10の回路機能をハードウェア記述言語で記述したプログラムが作成される。
The
次に、第2実施形態に係るデジタル処理装置5,5Aの効果の検証結果を説明する。表3及び表4は、FPGAとしてXilinx社のsp6(製品名)を用いた場合の検証結果である。第3検証例は、図4に示されるデジタル処理装置5での検証結果である。第4検証例は、図6に示されるデジタル処理装置5Aでの検証結果である。第3比較例は、処理部7が備える変換回路を全てルックアップテーブル記述方式に基づいて作成した場合の比較結果であり、第4比較例は、処理部7が備える変換回路を全てブール代数記述方式に基づいて作成した場合の比較結果である。第3検証例、第4検証例、第3比較例及び第4比較例におけるデジタル処理装置のそれぞれは、48個の回路部を備える。表3にはIO-Floatedの場合での検証結果が示され、表4にはIO-Stuckの場合での検証結果が示されている。回路合成の最適化オプションとしてIO-Floated及びIO-Stuckのいずれの場合も動作速度を重視するが実装面積とのバランスも考慮するオプションを選択して、検証を行った。
表3及び表4に示されるように、第3検証例、第4検証例、第3比較例、及び第4比較例において、FPGA上で使用されたルックアップテーブルの個数は同じであった。IO-Floatedの場合、第3検証例の検証結果では、実装面積が第3比較例及び第4比較例と比べて小さくなり、さらに動作速度が第3比較例及び第4比較例と比べて速くなった。第4検証例の検証結果では、実装面積が第3比較例及び第4比較例と比べて小さくなり、さらに動作速度が第3比較例及び第4比較例と比べて速くなった。一方、IO-Stuckの場合、第3検証例の検証結果では、実装面積が第3比較例及び第4比較例と比べ小さくなり、さらに動作速度が第3比較例及び第4比較例と比べて速くなった。また、第4検証例の検証結果では、動作速度が第3比較例及び第4比較例と比べて速くなった。 As shown in Tables 3 and 4, the number of lookup tables used on the FPGA was the same in the third verification example, the fourth verification example, the third comparative example, and the fourth comparative example. In the case of IO-Floated, the verification result of the third verification example shows that the mounting area is smaller than that of the third and fourth comparative examples, and the operation speed is faster than that of the third and fourth comparative examples. became. In the verification result of the fourth verification example, the mounting area was smaller than those of the third and fourth comparative examples, and the operating speed was faster than those of the third and fourth comparative examples. On the other hand, in the case of IO-Stuck, the verification result of the third verification example shows that the mounting area is smaller than that of the third and fourth comparative examples, and the operating speed is lower than that of the third and fourth comparative examples. faster. Also, in the verification result of the fourth verification example, the operating speed was faster than those of the third and fourth comparative examples.
IO-Floatedの場合、第3検証例の検証結果では、第3比較例及び第4比較例のうちの消費電力が大きい比較例と比べて、消費電力が小さくなった。第4検証例の検証結果では、第3比較例及び第4比較例と比べて、消費電力が小さくなった。一方、IO-Stuckの場合、第3検証例及び第4検証例の検証結果では、第3比較例及び第4比較例と比べて、消費電力が小さくなった。以上のことから、第3検証例及び第4検証例では、第3比較例及び第4比較例と比べて、消費電力の大幅な増加をもたらすことなく、性能が向上したことがわかる。 In the case of IO-Floated, the verification result of the third verification example shows that the power consumption is smaller than that of the third comparative example and the fourth comparative example, which consumes a large amount of power. In the verification result of the fourth verification example, the power consumption was smaller than those of the third and fourth comparative examples. On the other hand, in the case of the IO-Stuck, the verification results of the third verification example and the fourth verification example showed that the power consumption was smaller than that of the third comparative example and the fourth comparative example. From the above, it can be seen that in the third verification example and the fourth verification example, the performance was improved without causing a large increase in power consumption as compared with the third comparative example and the fourth comparative example.
このようなデジタル処理装置5,5Aでは、XOR演算回路62a(単位処理回路)は、第2ビット数(3ビット)の2倍である第3ビット数(6ビット)を有する単位データを処理単位として線形処理を行う。また、処理部7では、XOR演算回路62a(単位処理回路)における処理単位ごとに2個の変換回路31(第1変換回路)又は2個の変換回路32(第2変換回路)が割り当てられる。処理部7では、異なる記述方式に基づいて作成された変換回路31,32が混在するとともに、処理単位ごとに同じ記述方式に基づいて作成された2個の変換回路31,32が割り当てられる。FPGA(プログラマブル論理デバイス)に作成される種々の回路は、ランダムに分散して配置されることを基本とするが、同じ記述方式に基づいた回路はまとまって配置される傾向がある。このため、処理単位ごとに同じ記述方式に基づいて作成された2個の変換回路31,32を割り当てることで、2個の変換回路31,32がまとまって配置される可能性が高まる。その結果、FPGAに作成される回路の実装面積を小さくでき、又はその回路の処理速度を速めることができるので、デジタル処理装置の性能を向上させることが可能となる。
In such a
XOR演算回路62a(単位処理回路)は、単位データと、第3ビット数を有するデータ(ラウンド鍵)とのXORを演算する。XOR演算回路62aの処理結果に基づくデータが、処理単位ごとに割り当てられた2個の変換回路31に入力される。これらの2個の変換回路31が、分散して配置されている場合、XOR演算回路62aから置換回路63を介して2個の変換回路31までの配線の配線長の合計が大きくなる可能性がある。これに対して、上記2個の変換回路31は、まとまって配置される傾向があるので、上記配線長の合計が小さくなる可能性が高まる。これにより、FPGAに作成される回路の実装面積が低減され、処理速度が速くなる可能性が高まる。
The XOR
なお、本発明に係るデジタル処理装置、デジタル処理装置の製造方法及びプログラムは上記実施形態に限定されない。 Note that the digital processing device, the method for manufacturing the digital processing device, and the program according to the present invention are not limited to the above embodiments.
上記第1実施形態及び第2実施形態では、処理部3,7では、合計で同じ個数の変換回路31及び変換回路32が割り当てられているが、これに限られない。処理部3,7に複数の変換回路31及び複数の変換回路32が含まれていれば、変換回路31の個数と変換回路32の個数とは同じでなくてもよい。
In the first embodiment and the second embodiment, the same total number of
処理部3,7は非線形変換処理を行っているが、これに限られない。処理部3はデータD1の線形変換処理を行ってもよく、処理部7はデータD7の線形変換処理を行ってもよい。
Although the
シャッフル回路41a~41d等の単位処理回路は、第2ビット数のN倍(Nは2以上の整数)である第3ビット数を有する単位データを処理単位として線形処理を行っていればよく、処理部3,7では、処理単位ごとにN個の変換回路31又はN個の変換回路32が割り当てられていればよい。
The unit processing circuits such as the
デジタル処理装置1,1A,5,5Aは、暗号処理を行うための装置であるが、これに限られない。デジタル処理装置1,1A,5,5Aは、フィルタ係数をテーブル参照回路によって読み取る信号処理装置であってもよい。その他、デジタル処理装置1,1A,5,5Aは、入力データの値を、入力データの値と異なる値を有する出力データに変換するテーブル参照処理を行う回路を備える装置であればよい。
The
1,5…デジタル処理装置、3,7…処理部、4,6…線形処理部、31…変換回路、32…変換回路。 1, 5... Digital processing unit, 3, 7... Processing unit, 4, 6... Linear processing unit, 31... Conversion circuit, 32... Conversion circuit.
Claims (10)
第1ビット数を有する第1データを、前記第1ビット数を有する第2データに変換する処理部と、
前記第2データの線形処理を行う線形処理部と、
を備え、
前記処理部は、ルックアップテーブルを用いて回路機能を記述したプログラムに基づいて作成された複数の第1変換回路と、ブール代数を用いて回路機能を記述したプログラムに基づいて作成された複数の第2変換回路とを有し、
前記処理部では、前記複数の第1変換回路の少なくとも一部と、前記複数の第2変換回路の少なくとも一部とのそれぞれが、プログラマブル論理デバイスに作成される種々の回路は、異なる記述方式を混在させた場合に、同じ記述方式に基づいた回路はまとまって配置される傾向があるという性質により、前記プログラマブル論理デバイス上でまとまって配置されており、
前記複数の第1変換回路のそれぞれ及び前記複数の第2変換回路のそれぞれは、前記第1データのうちの第2ビット数を有する第1部分データを、前記第2データのうちの前記第2ビット数を有する第2部分データに変換し、
前記線形処理部は、前記第2ビット数のN倍(Nは2以上の整数)である第3ビット数を有する単位データを処理単位として線形処理を行う単位処理回路を有し、
前記処理部では、前記処理単位ごとに、前記複数の第1変換回路のうちのN個の第1変換回路又は前記複数の第2変換回路のうちのN個の第2変換回路が割り当てられる、
デジタル処理装置。 A digital processing device that is created using a programmable logic device and performs data conversion of input data,
a processing unit that converts first data having a first number of bits into second data having the first number of bits;
a linear processing unit that performs linear processing on the second data;
with
The processing unit includes a plurality of first conversion circuits created based on a program describing circuit functions using a lookup table, and a plurality of first conversion circuits created based on a program describing circuit functions using Boolean algebra. a second conversion circuit;
In the processing unit, at least a portion of the plurality of first conversion circuits and at least a portion of the plurality of second conversion circuits each use a different description method for various circuits created in a programmable logic device. are arranged together on the programmable logic device due to the property that circuits based on the same description method tend to be arranged together when they are mixed ,
Each of the plurality of first conversion circuits and each of the plurality of second conversion circuits converts first partial data having a second number of bits of the first data to the second data of the second data. convert to second partial data having a number of bits;
The linear processing unit has a unit processing circuit that performs linear processing on unit data having a third bit number that is N times the second bit number (N is an integer of 2 or more) as a processing unit,
In the processing unit, N first conversion circuits out of the plurality of first conversion circuits or N second conversion circuits out of the plurality of second conversion circuits are allocated for each processing unit,
Digital processing equipment.
請求項1に記載のデジタル処理装置。 wherein the unit processing circuit changes the arrangement order of the N pieces of the second partial data included in the unit data;
2. Digital processing apparatus according to claim 1.
請求項1に記載のデジタル処理装置。 The unit processing circuit shifts the unit data by a predetermined number of bits.
2. Digital processing apparatus according to claim 1.
所定のデータの線形処理を行い、第1ビット数を有する第1データを出力する線形処理部と、
前記第1データを、前記第1ビット数を有する第2データに変換する処理部と、
を備え、
前記処理部は、ルックアップテーブルを用いて回路機能を記述したプログラムに基づいて作成された複数の第1変換回路と、ブール代数を用いて回路機能を記述したプログラムに基づいて作成された複数の第2変換回路とを有し、
前記処理部では、前記複数の第1変換回路の少なくとも一部と、前記複数の第2変換回路の少なくとも一部とのそれぞれが、プログラマブル論理デバイスに作成される種々の回路は、異なる記述方式を混在させた場合に、同じ記述方式に基づいた回路はまとまって配置される傾向があるという性質により、前記プログラマブル論理デバイス上でまとまって配置されており、
前記複数の第1変換回路のそれぞれ及び前記複数の第2変換回路のそれぞれは、前記第1データのうちの第2ビット数を有する第1部分データを、前記第2データのうちの前記第2ビット数を有する第2部分データに変換し、
前記線形処理部は、前記第2ビット数のN倍(Nは2以上の整数)である第3ビット数を有する単位データを処理単位として線形処理を行う単位処理回路を有し、
前記処理部では、前記処理単位ごとに、前記複数の第1変換回路のうちのN個の第1変換回路又は前記複数の第2変換回路のうちのN個の第2変換回路が割り当てられる、
デジタル処理装置。 A digital processing device that is created using a programmable logic device and performs data conversion of input data,
a linear processing unit that performs linear processing on predetermined data and outputs first data having a first number of bits;
a processing unit that converts the first data into second data having the first number of bits;
with
The processing unit includes a plurality of first conversion circuits created based on a program describing circuit functions using a lookup table, and a plurality of first conversion circuits created based on a program describing circuit functions using Boolean algebra. a second conversion circuit;
In the processing unit, at least a portion of the plurality of first conversion circuits and at least a portion of the plurality of second conversion circuits each use a different description method for various circuits created in a programmable logic device. are arranged together on the programmable logic device due to the property that circuits based on the same description method tend to be arranged together when they are mixed ,
Each of the plurality of first conversion circuits and each of the plurality of second conversion circuits converts first partial data having a second number of bits of the first data to the second data of the second data. convert to second partial data having a number of bits;
The linear processing unit has a unit processing circuit that performs linear processing on unit data having a third bit number that is N times the second bit number (N is an integer of 2 or more) as a processing unit,
In the processing unit, N first conversion circuits out of the plurality of first conversion circuits or N second conversion circuits out of the plurality of second conversion circuits are allocated for each processing unit,
Digital processing equipment.
請求項4に記載のデジタル処理装置。 wherein the unit processing circuit calculates an exclusive OR of the unit data and the data having the third number of bits;
5. Digital processing apparatus according to claim 4.
請求項1から請求項5のいずれか一項に記載のデジタル処理装置。 Each of the plurality of first conversion circuits and each of the plurality of second conversion circuits perform nonlinear conversion processing;
6. A digital processing apparatus according to any one of claims 1-5.
プログラマブル論理デバイスに応じて、前記処理部及び前記線形処理部の回路機能をプログラムによって記述する記述工程と、
前記回路機能に基づき、前記プログラマブル論理デバイスにおいて前記処理部及び前記線形処理部を作成する作成工程と、
を備え、
前記デジタル処理装置は、入力データのデータ変換を行う装置であり、
前記複数の第1変換回路のそれぞれ及び前記複数の第2変換回路のそれぞれは、前記第1データのうちの第2ビット数を有する第1部分データを、前記第2データのうちの前記第2ビット数を有する第2部分データに変換し、
前記線形処理部は、前記第2ビット数のN倍(Nは2以上の整数)である第3ビット数を有する単位データを処理単位として線形処理を行う単位処理回路を有し、
前記処理部では、前記処理単位ごとに、前記複数の第1変換回路のうちのN個の第1変換回路又は前記複数の第2変換回路のうちのN個の第2変換回路が割り当てられ、
前記処理部では、前記複数の第1変換回路の少なくとも一部と、前記複数の第2変換回路の少なくとも一部とのそれぞれが、プログラマブル論理デバイスに作成される種々の回路は、異なる記述方式を混在させた場合に、同じ記述方式に基づいた回路はまとまって配置される傾向があるという性質により、前記プログラマブル論理デバイス上でまとまって配置されており、
前記記述工程では、ルックアップテーブルを用いて回路機能を記述したプログラムによって前記複数の第1変換回路の回路機能が記述され、ブール代数を用いて回路機能を記述したプログラムによって前記複数の第2変換回路の回路機能が記述される、
デジタル処理装置の製造方法。 a processing unit that has a plurality of first conversion circuits and a plurality of second conversion circuits and converts first data having a first number of bits into second data having the first number of bits; A method for manufacturing a digital processing device comprising a linear processing unit that performs linear processing,
a description step of describing circuit functions of the processing unit and the linear processing unit by a program according to a programmable logic device;
a creation step of creating the processing unit and the linear processing unit in the programmable logic device based on the circuit function;
with
The digital processing device is a device that performs data conversion of input data,
Each of the plurality of first conversion circuits and each of the plurality of second conversion circuits converts first partial data having a second number of bits of the first data to the second data of the second data. convert to second partial data having a number of bits;
The linear processing unit has a unit processing circuit that performs linear processing on unit data having a third bit number that is N times the second bit number (N is an integer of 2 or more) as a processing unit,
In the processing unit, N first conversion circuits out of the plurality of first conversion circuits or N second conversion circuits out of the plurality of second conversion circuits are allocated for each processing unit;
In the processing unit, at least a portion of the plurality of first conversion circuits and at least a portion of the plurality of second conversion circuits each use a different description method for various circuits created in a programmable logic device. are arranged together on the programmable logic device due to the property that circuits based on the same description method tend to be arranged together when they are mixed ,
In the description step, the circuit functions of the plurality of first conversion circuits are described by a program describing circuit functions using a lookup table, and the plurality of second conversion circuits are described by a program describing the circuit functions using Boolean algebra. the circuit function of the circuit is described,
A method of manufacturing a digital processing device.
プログラマブル論理デバイスに応じて、前記処理部及び前記線形処理部の回路機能をプログラムによって記述する記述工程と、
前記回路機能に基づき、前記プログラマブル論理デバイスにおいて前記処理部及び前記線形処理部を作成する作成工程と、
を備え、
前記デジタル処理装置は、入力データのデータ変換を行う装置であり、
前記複数の第1変換回路のそれぞれ及び前記複数の第2変換回路のそれぞれは、前記第1データのうちの第2ビット数を有する第1部分データを、前記第2データのうちの前記第2ビット数を有する第2部分データに変換し、
前記線形処理部は、前記第2ビット数のN倍(Nは2以上の整数)である第3ビット数を有する単位データを処理単位として線形処理を行う単位処理回路を有し、
前記処理部では、前記処理単位ごとに、前記複数の第1変換回路のうちのN個の第1変換回路又は前記複数の第2変換回路のうちのN個の第2変換回路が割り当てられ、
前記処理部では、前記複数の第1変換回路の少なくとも一部と、前記複数の第2変換回路の少なくとも一部とのそれぞれが、プログラマブル論理デバイスに作成される種々の回路は、異なる記述方式を混在させた場合に、同じ記述方式に基づいた回路はまとまって配置される傾向があるという性質により、前記プログラマブル論理デバイス上でまとまって配置されており、
前記記述工程では、ルックアップテーブルを用いて回路機能を記述したプログラムによって前記複数の第1変換回路の回路機能が記述され、ブール代数を用いて回路機能を記述したプログラムによって前記複数の第2変換回路の回路機能が記述される、
デジタル処理装置の製造方法。 a linear processing unit that performs linear processing on predetermined data and outputs first data having a first number of bits; a plurality of first conversion circuits; and a plurality of second conversion circuits; A method of manufacturing a digital processing device comprising: a processing unit that converts to second data having a first number of bits,
a description step of describing circuit functions of the processing unit and the linear processing unit by a program according to a programmable logic device;
a creation step of creating the processing unit and the linear processing unit in the programmable logic device based on the circuit function;
with
The digital processing device is a device that performs data conversion of input data,
Each of the plurality of first conversion circuits and each of the plurality of second conversion circuits converts first partial data having a second number of bits of the first data to the second data of the second data. convert to second partial data having a number of bits;
The linear processing unit has a unit processing circuit that performs linear processing on unit data having a third bit number that is N times the second bit number (N is an integer of 2 or more) as a processing unit,
In the processing unit, N first conversion circuits out of the plurality of first conversion circuits or N second conversion circuits out of the plurality of second conversion circuits are allocated for each processing unit;
In the processing unit, at least a portion of the plurality of first conversion circuits and at least a portion of the plurality of second conversion circuits each use a different description method for various circuits created in a programmable logic device. are arranged together on the programmable logic device due to the property that circuits based on the same description method tend to be arranged together when they are mixed ,
In the description step, the circuit functions of the plurality of first conversion circuits are described by a program describing circuit functions using a lookup table, and the plurality of second conversion circuits are described by a program describing the circuit functions using Boolean algebra. the circuit function of the circuit is described,
A method of manufacturing a digital processing device.
前記プログラマブル論理デバイスに前記複数の第1変換回路を作成するための第1部分と、
前記プログラマブル論理デバイスに前記複数の第2変換回路を作成するための第2部分と、
を備え、
前記第1部分では、ルックアップテーブルを用いて前記複数の第1変換回路の回路機能が記述され、
前記第2部分では、ブール代数を用いて前記複数の第2変換回路の回路機能が記述され、
前記デジタル処理装置は、入力データのデータ変換を行う装置であり、
前記複数の第1変換回路のそれぞれ及び前記複数の第2変換回路のそれぞれは、前記第1データのうちの第2ビット数を有する第1部分データを、前記第2データのうちの前記第2ビット数を有する第2部分データに変換し、
前記線形処理部は、前記第2ビット数のN倍(Nは2以上の整数)である第3ビット数を有する単位データを処理単位として線形処理を行う単位処理回路を有し、
前記処理部では、前記処理単位ごとに、前記複数の第1変換回路のうちのN個の第1変換回路又は前記複数の第2変換回路のうちのN個の第2変換回路が割り当てられ、
前記処理部では、前記複数の第1変換回路の少なくとも一部と、前記複数の第2変換回路の少なくとも一部とのそれぞれが、プログラマブル論理デバイスに作成される種々の回路は、異なる記述方式を混在させた場合に、同じ記述方式に基づいた回路はまとまって配置される傾向があるという性質により、前記プログラマブル論理デバイス上でまとまって配置されている、
プログラム。 a processing unit that has a plurality of first conversion circuits and a plurality of second conversion circuits and converts first data having a first number of bits into second data having the first number of bits; A program for causing a programmable logic device to function as a digital processing device comprising a linear processing unit that performs linear processing,
a first portion for creating the plurality of first conversion circuits in the programmable logic device;
a second portion for creating the plurality of second translation circuits in the programmable logic device;
with
the first part describes circuit functions of the plurality of first conversion circuits using a lookup table;
wherein the second part describes circuit functions of the plurality of second transform circuits using Boolean algebra;
The digital processing device is a device that performs data conversion of input data,
Each of the plurality of first conversion circuits and each of the plurality of second conversion circuits converts first partial data having a second number of bits of the first data to the second data of the second data. convert to second partial data having a number of bits;
The linear processing unit has a unit processing circuit that performs linear processing on unit data having a third bit number that is N times the second bit number (N is an integer of 2 or more) as a processing unit,
In the processing unit, N first conversion circuits out of the plurality of first conversion circuits or N second conversion circuits out of the plurality of second conversion circuits are allocated for each processing unit;
In the processing unit, at least a portion of the plurality of first conversion circuits and at least a portion of the plurality of second conversion circuits each use a different description method for various circuits created in a programmable logic device. are arranged together on the programmable logic device due to the property that circuits based on the same description method tend to be arranged together when mixed;
program.
前記プログラマブル論理デバイスに前記複数の第1変換回路を作成するための第1部分と、
前記プログラマブル論理デバイスに前記複数の第2変換回路を作成するための第2部分と、
を備え、
前記第1部分では、ルックアップテーブルを用いて前記複数の第1変換回路の回路機能が記述され、
前記第2部分では、ブール代数を用いて前記複数の第2変換回路の回路機能が記述され、
前記デジタル処理装置は、入力データのデータ変換を行う装置であり、
前記複数の第1変換回路のそれぞれ及び前記複数の第2変換回路のそれぞれは、前記第1データのうちの第2ビット数を有する第1部分データを、前記第2データのうちの前記第2ビット数を有する第2部分データに変換し、
前記線形処理部は、前記第2ビット数のN倍(Nは2以上の整数)である第3ビット数を有する単位データを処理単位として線形処理を行う単位処理回路を有し、
前記処理部では、前記処理単位ごとに、前記複数の第1変換回路のうちのN個の第1変換回路又は前記複数の第2変換回路のうちのN個の第2変換回路が割り当てられ、
前記処理部では、前記複数の第1変換回路の少なくとも一部と、前記複数の第2変換回路の少なくとも一部とのそれぞれが、プログラマブル論理デバイスに作成される種々の回路は、異なる記述方式を混在させた場合に、同じ記述方式に基づいた回路はまとまって配置される傾向があるという性質により、前記プログラマブル論理デバイス上でまとまって配置されている、
プログラム。 a linear processing unit that performs linear processing on predetermined data and outputs first data having a first number of bits; a plurality of first conversion circuits; and a plurality of second conversion circuits; A program for causing a programmable logic device to function as a digital processing device, comprising a processing unit that converts to second data having a first bit number,
a first portion for creating the plurality of first conversion circuits in the programmable logic device;
a second portion for creating the plurality of second translation circuits in the programmable logic device;
with
the first part describes circuit functions of the plurality of first conversion circuits using a lookup table;
wherein the second part describes circuit functions of the plurality of second transform circuits using Boolean algebra;
The digital processing device is a device that performs data conversion of input data,
Each of the plurality of first conversion circuits and each of the plurality of second conversion circuits converts first partial data having a second number of bits of the first data to the second data of the second data. convert to second partial data having a number of bits;
The linear processing unit has a unit processing circuit that performs linear processing on unit data having a third bit number that is N times the second bit number (N is an integer of 2 or more) as a processing unit,
In the processing unit, N first conversion circuits out of the plurality of first conversion circuits or N second conversion circuits out of the plurality of second conversion circuits are allocated for each processing unit;
In the processing unit, at least a portion of the plurality of first conversion circuits and at least a portion of the plurality of second conversion circuits each use a different description method for various circuits created in a programmable logic device. are arranged together on the programmable logic device due to the property that circuits based on the same description method tend to be arranged together when mixed;
program.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017219439A JP7296609B2 (en) | 2017-11-14 | 2017-11-14 | DIGITAL PROCESSING DEVICE, METHOD AND PROGRAM FOR MANUFACTURING DIGITAL PROCESSING DEVICE |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017219439A JP7296609B2 (en) | 2017-11-14 | 2017-11-14 | DIGITAL PROCESSING DEVICE, METHOD AND PROGRAM FOR MANUFACTURING DIGITAL PROCESSING DEVICE |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019092045A JP2019092045A (en) | 2019-06-13 |
JP7296609B2 true JP7296609B2 (en) | 2023-06-23 |
Family
ID=66836703
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017219439A Active JP7296609B2 (en) | 2017-11-14 | 2017-11-14 | DIGITAL PROCESSING DEVICE, METHOD AND PROGRAM FOR MANUFACTURING DIGITAL PROCESSING DEVICE |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7296609B2 (en) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002023622A (en) | 2000-07-12 | 2002-01-23 | Toshiba Corp | Ciphering device, deciphering device, device and method for generating extended key, and recording medium |
US20040228482A1 (en) | 2003-04-04 | 2004-11-18 | Stmicroelectronics S.R.L. | Method of implementing one-to-one binary function and relative hardware device, especially for a Rijndael S-box |
JP2008514975A (en) | 2004-09-24 | 2008-05-08 | シナプティック ラボラトリーズ リミテッド | s box |
JP2008153806A (en) | 2006-12-15 | 2008-07-03 | Sony Corp | Operation processor, operation processing control method, and computer program |
JP2012109854A (en) | 2010-11-18 | 2012-06-07 | Panasonic Corp | Programmable logic device |
JP2014041389A (en) | 2013-12-02 | 2014-03-06 | Sony Corp | Data conversion device, data conversion method and computer program |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0661349A (en) * | 1992-08-06 | 1994-03-04 | Nec Ic Microcomput Syst Ltd | Grouping of element using circuit diagram |
-
2017
- 2017-11-14 JP JP2017219439A patent/JP7296609B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002023622A (en) | 2000-07-12 | 2002-01-23 | Toshiba Corp | Ciphering device, deciphering device, device and method for generating extended key, and recording medium |
US20040228482A1 (en) | 2003-04-04 | 2004-11-18 | Stmicroelectronics S.R.L. | Method of implementing one-to-one binary function and relative hardware device, especially for a Rijndael S-box |
JP2008514975A (en) | 2004-09-24 | 2008-05-08 | シナプティック ラボラトリーズ リミテッド | s box |
JP2008153806A (en) | 2006-12-15 | 2008-07-03 | Sony Corp | Operation processor, operation processing control method, and computer program |
JP2012109854A (en) | 2010-11-18 | 2012-06-07 | Panasonic Corp | Programmable logic device |
JP2014041389A (en) | 2013-12-02 | 2014-03-06 | Sony Corp | Data conversion device, data conversion method and computer program |
Non-Patent Citations (1)
Title |
---|
木村 真也 Shinya Kimura,HDL記述による設計法をマスタする 実験で学ぶロジック回路設計,トランジスタ技術 第44巻 第5号 ,日本,CQ出版株式会社,第44巻 |
Also Published As
Publication number | Publication date |
---|---|
JP2019092045A (en) | 2019-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2633923C (en) | Mixed radix number generator with chosen statistical artifacts | |
CA2723319C (en) | A closed galois field cryptographic system | |
US7970809B2 (en) | Mixed radix conversion with a priori defined statistical artifacts | |
JP4866389B2 (en) | Closed Galois field combination | |
CA2631924C (en) | Extending a repetition period of a random sequence | |
WO2001067425A1 (en) | Block encryption device using auxiliary conversion | |
WO2009100299A1 (en) | Random number generation using range transformation | |
Gupta et al. | Hardware efficient pseudo-random number generator using chen chaotic system on FPGA | |
JP7296609B2 (en) | DIGITAL PROCESSING DEVICE, METHOD AND PROGRAM FOR MANUFACTURING DIGITAL PROCESSING DEVICE | |
JP2950485B2 (en) | Stream cipher processor | |
JP5188414B2 (en) | Information processing apparatus, information processing method, and program | |
JP4417389B2 (en) | Random number generator and method using digital logic | |
KR100735953B1 (en) | Device and method for generating a sequence of numbers | |
JP4709685B2 (en) | Pseudorandom number generation device, pseudorandom number generation method, pseudorandom number generation program, encryption device, and decryption device | |
Bhaskar et al. | A survey on implementation of random number generator in FPGA | |
KR102197744B1 (en) | True random number generator based on cellular automata with random transition rules | |
Granado et al. | IDEA and AES, two cryptographic algorithms implemented using partial and dynamic reconfiguration | |
Sekhar et al. | An Efficient Pseudo Random Number Generator for Cryptographic Applications | |
SUBRAHMANYAM et al. | Realization of Montgomery Multiplier for Power-Delay Critical Applications | |
JP6851085B2 (en) | Random number generator, random number generation method and computer program | |
REDDY et al. | Implementation of High Performance Montgomery Multiplier | |
Krulikovskyi et al. | Ukrainian National Encryption Standards for FPGA Based Embedded Systems | |
REDDY et al. | A Novel PCA Technique and Modular Reduction Scheme for Montgomery Multiplication Over GF (2 M) Based on Irreducible Pentanomials | |
JP3592242B2 (en) | Binary-decimal conversion circuit and method | |
Wang | Some Well-Known Generators |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200915 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20211130 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220705 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220901 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20230104 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230404 |
|
C60 | Trial request (containing other claim documents, opposition documents) |
Free format text: JAPANESE INTERMEDIATE CODE: C60 Effective date: 20230404 |
|
C11 | Written invitation by the commissioner to file amendments |
Free format text: JAPANESE INTERMEDIATE CODE: C11 Effective date: 20230418 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230411 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20230428 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20230530 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230606 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7296609 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |