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 PDF

Info

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
Application number
JP2017219439A
Other languages
Japanese (ja)
Other versions
JP2019092045A (en
Inventor
忠 岡部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tokyo Metropolitan Industrial Technology Research Instititute (TIRI)
Original Assignee
Tokyo Metropolitan Industrial Technology Research Instititute (TIRI)
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tokyo Metropolitan Industrial Technology Research Instititute (TIRI) filed Critical Tokyo Metropolitan Industrial Technology Research Instititute (TIRI)
Priority to JP2017219439A priority Critical patent/JP7296609B2/en
Publication of JP2019092045A publication Critical patent/JP2019092045A/en
Application granted granted Critical
Publication of JP7296609B2 publication Critical patent/JP7296609B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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.

特開2003-323117号公報Japanese Patent Application Laid-Open No. 2003-323117

しかしながら、ルックアップテーブルを用いる記述方式のみによってテーブル参照処理の回路設計がされたデジタル処理装置には、性能面において改善の余地がある。 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.

図1は、第1実施形態に係るデジタル処理装置の構成を示す図である。FIG. 1 is a diagram showing the configuration of a digital processing device according to the first embodiment. 図2は、図1の線形処理部の詳細構成を示す図である。FIG. 2 is a diagram showing the detailed configuration of the linear processing unit in FIG. 図3は、第1実施形態に係るデジタル処理装置の変形例を示すである。FIG. 3 shows a modification of the digital processing device according to the first embodiment. 図4は、第2実施形態に係るデジタル処理装置の構成を示す図である。FIG. 4 is a diagram showing the configuration of a digital processing device according to the second embodiment. 図5は、図4の配列変換回路の配列変換処理を説明するための図である。FIG. 5 is a diagram for explaining array conversion processing of the array conversion circuit in FIG. 図6は、第2実施形態に係るデジタル処理装置の変形例を示す図である。FIG. 6 is a diagram showing a modification of the digital processing device according to the second embodiment.

以下、添付図面を参照しながら本発明の実施形態の詳細を説明する。図面の説明において、同一又は同等の要素には同一符号が用いられ、重複する説明は省略される。 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 digital processing device 1 shown in FIG. 1 is a device for performing cryptographic processing conforming to the BORON standard. The digital processing device 1 is made using programmable logic devices. FPGAs and PLDs (Programmable Logic Devices), for example, are used as programmable logic devices.

デジタル処理装置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 digital processing device 1 includes an encrypted data generator 2 , a processor 3 and a linear processor 4 . The digital processing device 1 digitally processes input data having a first bit number (64 bits in FIG. 1) by means of an encrypted data generating unit 2, a processing unit 3, and a linear processing unit 4, thereby converting the first bit number into Output the output data that has Although FIG. 1 shows one encrypted data generator 2, one processor 3, and one linear processor 4, the digital processing device 1 includes the encrypted data generator 2, processor 3, and linear processor 4. A plurality of circuit units 10 are provided with the processing unit 4 as one circuit unit 10 . The plurality of circuit units 10 are connected in series, and in two circuit units 10 adjacent to each other, data Dout output from the preceding circuit unit 10 is input to the subsequent circuit unit 10 as data Din. be. Each bit included in the data Din is assigned a bit number in ascending order from LSB (Least Significant Bit) to MSB (Most Significant Bit). In this embodiment, the bit number of the LSB is 0 and the bit number of the MSB is 63rd. The same applies to data Dout and data D1, D2, D3, and D4, which will be described later.

暗号データ生成部2は、暗号鍵データに基づきデータDinを論理演算する回路である。具体的には、暗号データ生成部2は、データDinと暗号鍵データとのXOR(排他的論理和)を演算する。データDinは、第1ビット数を有するデータである。暗号鍵データは、予め不図示のメモリに記憶されており、メモリから暗号データ生成部2に入力される。暗号鍵データは、不図示の暗号鍵生成回路によって逐次生成され、暗号鍵生成回路から暗号データ生成部2に入力されてもよい。暗号鍵データは、第1ビット数を有する。暗号データ生成部2は、演算結果をデータD1(第1データ)として処理部3に出力する。データD1は、第1ビット数を有するデータである。 The encrypted data generator 2 is a circuit that logically operates data Din based on the encrypted key data. Specifically, the encrypted data generator 2 calculates XOR (exclusive OR) of the data Din and the encrypted key data. Data Din is data having a first number of bits. The cipher key data is stored in advance in a memory (not shown), and is input to the cipher data generator 2 from the memory. The encryption key data may be sequentially generated by an encryption key generation circuit (not shown) and input to the encryption data generation unit 2 from the encryption key generation circuit. The encryption key data has a first number of bits. The encrypted data generation unit 2 outputs the calculation result to the processing unit 3 as data D1 (first data). Data D1 is data having a first number of bits.

処理部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 processing unit 3 is a circuit that converts data D1 into data D2 (second data). Data D2 is data having the first number of bits. Specifically, the processing unit 3 generates the data D2 by performing nonlinear conversion processing on the data D1. The processor 3 outputs data D2 to the linear processor 4 . The processing unit 3 includes a plurality of conversion circuits 31 (a plurality of first conversion circuits) and a plurality of conversion circuits 32 (a plurality of second conversion circuits). A plurality of conversion circuits 31 and a plurality of conversion circuits 32 are arranged in parallel, and data d1 (first partial data) is input to each conversion circuit 31 and each conversion circuit 32 . Data d1 is part of data D1 and has a second number of bits (4 bits in FIG. 1). Data d1 is data obtained by dividing all the data from LSB to MSB of data D1 in units of the second number of bits in order of bit numbers. In FIG. 1, data D1 is composed of 16 data d1. Each of the plurality of conversion circuits 31 and each of the plurality of conversion circuits 32 converts input data d1, whereby the processing unit 3 converts the data D1 into data D2.

変換回路31は、ルックアップテーブルを用いる記述方式(ルックアップテーブル記述方式)に基づいて作成された回路である。変換回路32は、ブール代数を用いる記述方式(ブール代数記述方式)に基づいて作成された回路である。変換回路31及び変換回路32は、互いに等価な機能を有する。 The conversion circuit 31 is a circuit created based on a description method using a lookup table (lookup table description method). The conversion circuit 32 is a circuit created based on a description system using Boolean algebra (Boolean algebra description system). The conversion circuit 31 and the conversion circuit 32 have functions equivalent to each other.

変換回路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)とも称される。 Conversion circuits 31 and 32 are circuits for converting data d1. Specifically, conversion circuits 31 and 32 convert data d1 into data d2 (second partial data). Data d2 is part of data D2 and has a second number of bits. Data d2 is data obtained by dividing all the data from LSB to MSB of data D2 in units of the second number of bits in the order of bit numbers. In FIG. 1, data D2 is composed of 16 data d2. The conversion circuits 31 and 32 are logical operation circuits that implement table lookup circuits based on a truth table or the like defining the relationship between the data d1 and the data d2. The conversion circuits 31 and 32 are also called 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 processing unit 3, N of the plurality of conversion circuits 31 are converted for each data having a third bit number (16 bits in FIG. 1) which is N times the second bit number (N is an integer of 2 or more) of the data D1. N conversion circuits 32 out of the conversion circuits 31 or the plurality of conversion circuits 32 are assigned. Note that N=4 in this embodiment. Specifically, in the processing unit 3, the conversion circuit 32 is assigned to each of the four data d1 from the LSB to the 15th bit of the data D1. Conversion circuits 31 are assigned to the four data d1 from the 16th to 31st bits of the data D1. Conversion circuits 32 are assigned to the four data d1 from the 32nd to 47th bits of the data D1. Conversion circuits 31 are assigned to four pieces of data d1 from the 48th bit to the MSB of data D1.

線形処理部4は、データD2を線形処理する回路である。線形処理部4は、データD2を線形処理することで、データDoutを生成する。データDoutは、第1ビット数を有するデータである。線形処理部4は、データDoutを回路部10からの出力データとして出力する。線形処理部4は、シャッフル回路41、シフト回路42、及びXOR実行回路43を有する。 The linear processor 4 is a circuit that linearly processes the data D2. The linear processor 4 linearly processes the data D2 to generate the data Dout. Data Dout is data having a first number of bits. The linear processing section 4 outputs the data Dout as output data from the circuit section 10 . The linear processing unit 4 has a shuffle circuit 41 , a shift circuit 42 and an XOR execution circuit 43 .

シャッフル回路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 shuffle circuit 41 is a circuit that shuffles the data D2. The shuffle process is a process of changing the arrangement order of a plurality of data d2 arranged in parallel and included in the data D2. The shuffle circuit 41 shuffles data D2 to generate data D3. Shuffle circuit 41 outputs data D3 to shift circuit 42 . Data D3 is data having the first number of bits. The shuffle circuit 41 has a plurality (here, four) of shuffle circuits 41a to 41d (unit processing circuits), as shown in FIG. Each of the shuffle circuits 41a to 41d is a circuit that performs shuffle processing (linear processing) using unit data having the third bit number as a processing unit. Each of the shuffle circuits 41a to 41d changes the arrangement order of the N (here, N=4) data d2 included in the unit data. The shuffle circuits 41a-41d are arranged in parallel, and each of the shuffle circuits 41a-41d is assigned to one of the four conversion circuits 31 and the four conversion circuits 32. FIG.

具体的には、シャッフル回路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 shuffle circuit 41a is assigned to four conversion circuits 32, and shuffles four data d2 from the LSB to the 15th bit of the data D2 as unit data. The shuffle circuit 41a outputs the shuffle processing result as data d3a to the shift circuit 42a, which will be described later. The shuffle circuit 41a arranges the data d2 from the LSB to the 3rd bit of the data D2 in the 8th to 11th bit positions of the data d3a, and arranges the 4th to 7th bits of the data D2. are placed in the 12th to 15th bit positions in the data d3a. The shuffle circuit 41a arranges the data d2 of the 8th to 11th bits of the data D2 to the 3rd bit position from the LSB in the data d3a, and arranges the 12th to 15th bits of the data D2. are placed in the fourth to seventh bit positions in the data d3a.

シャッフル回路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 shuffle circuit 41b is assigned to the four conversion circuits 31, and shuffles the four data d2 from the 16th to 31st bits of the data D2 as unit data. The shuffle circuit 41b outputs the shuffle processing result as data d3b to the shift circuit 42b, which will be described later. The shuffle circuit 41c is assigned to the four conversion circuits 32, and shuffles the four data d2 from the 32nd to 47th bits of the data D2 as unit data. The shuffle circuit 41c outputs the shuffle processing result as data d3c to the shift circuit 42c, which will be described later. The shuffle circuit 41d is assigned to the four conversion circuits 31, and shuffles the four data d2 from the 48th bit to the MSB of the data D2 as unit data. The shuffle circuit 41d outputs the shuffle processing result as data d3d to the shift circuit 42d, which will be described later.

なお、データ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 shuffle circuits 41b to 41d change the arrangement order of the plurality of data d2 in the same manner as the shuffle circuit 41a, except that the plurality of (here, four) data d2 to be shuffled are different, so detailed description is omitted. do. In addition, in the shuffle circuits 41a to 41d shown in FIG. 2, 4-bit data are displayed together in one line.

シフト回路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 shift circuit 42 is a circuit that shifts the data D3. Shift processing is processing for shifting each of data d3a to d3d included in data D3 by a predetermined number of bits. The shift circuit 42 shifts the data D3 to generate the data D4. Shift circuit 42 outputs data D4 to XOR execution circuit 43 . Data D4 is data having the first number of bits. The shift circuit 42 has a plurality (here, four) of shift circuits 42a to 42d (unit processing circuits). Shift circuits 42a-42d are arranged in parallel and assigned to data d3a-d3d, respectively. Each of the shift circuits 42a to 42d performs left shift processing (linear processing) using unit data having the third bit number as a processing unit.

具体的には、シフト回路42aは、データd3aを単位データとして、データd3aを1ビットシフト(左シフト)する。左シフトとは、シフトさせる対象のデータに含まれる全てのビットを、所定のビット数上位にサイクリックにずらす処理である。シフト回路42aは、シフト処理結果をデータd4aとして後述のXOR演算回路43a,43cに出力する。シフト回路42aのシフト処理では、例えば、データd3aのうちのLSBに位置するビットは、データd4aにおける1番目のビット位置にシフトされ、データd3aのうちの1番目のビットは、データd4aにおける2番目のビット位置にシフトされ、データd3aのうちの15番目のビットは、データd4aにおけるLSBのビット位置にシフトされる。 Specifically, the shift circuit 42a shifts the data d3a by 1 bit (left shift) using the data d3a as unit data. The left shift is a process of cyclically shifting all bits included in data to be shifted upward by a predetermined number of bits. The shift circuit 42a outputs the shift processing result as data d4a to the XOR operation circuits 43a and 43c, which will be described later. In the shift processing of the shift circuit 42a, for example, the bit located at the LSB in the data d3a is shifted to the first bit position in the data d4a, and the first bit in the data d3a is shifted to the second bit in the data d4a. and the 15th bit of data d3a is shifted to the LSB bit position of data d4a.

シフト回路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 shift circuit 42b shifts the data d3b to the left by 4 bits using the data d3b as unit data. The shift circuit 42b outputs the shift processing result as data d4b to the XOR operation circuit 43b, which will be described later. The shift circuit 42c shifts the data d3c to the left by 7 bits using the data d3c as unit data. The shift circuit 42c outputs the shift processing result as data d4c to the XOR operation circuit 43c, which will be described later. The shift circuit 42d shifts the data d3d to the left by 9 bits using the data d3d as unit data. The shift circuit 42d outputs the shift processing result as data d4d to the XOR operation circuits 43b and 43d, which will be described later. Data d4a to d4d are part of data D4 and have a third bit number. Data d4a to d4d are data obtained by dividing all the data from LSB to MSB of data D4 in the order of the bit numbers in units of the third number of bits. In FIG. 2, data D4 is composed of data d4a to d4d. In FIG. 2, data d3a to d3d and data d4a to d4d are shown by grouping 16-bit data into one line.

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 execution circuit 43 is a circuit that performs XOR operation processing on the data D4. The XOR execution circuit 43 generates data Dout by XORing data D4. The XOR execution circuit 43 outputs the data Dout as output data from the circuit section 10 . The XOR execution circuit 43 has a plurality (here, four) of XOR operation circuits 43a to 43d. The XOR operation circuits 43a-43d are arranged in parallel and assigned to data d4a-d4d, respectively. Each of the XOR operation circuits 43a-43d performs XOR operation processing (linear processing) on the data d4a-d4d.

具体的には、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 XOR operation circuit 43c XORs the data d4a and the data d4c. The XOR operation circuit 43c outputs the operation result as data of the 32nd to 47th bits of the data Dout, and also outputs the operation result to the XOR operation circuit 43d. The XOR operation circuit 43b XORs the data d4b and the data d4d. The XOR operation circuit 43b outputs the operation result as data of the 16th to 31st bits of the data Dout, and also outputs the operation result to the XOR operation circuit 43a. The XOR operation circuit 43a XORs the data d4a and the operation result of the XOR operation circuit 43b. The XOR operation circuit 43a outputs the operation result as data from the LSB to the 15th bit of the data Dout. The XOR operation circuit 43d XORs the data d4d and the operation result of the XOR operation circuit 43c. The XOR operation circuit 43d outputs the operation result as data from the 48th bit to the MSB of the data Dout.

図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 digital processing device 1A shown in FIG. 3 differs from the digital processing device 1 shown in FIG. Specifically, in the digital processing device 1A, the conversion circuits 31 are assigned to the four data d1 from the LSB to the 15th bit of the data D1. Conversion circuits 32 are assigned to the four data d1 from the 16th to 31st bits of the data D1. Conversion circuits 31 are assigned to the four data d1 from the 32nd to 47th bits of the data D1. Conversion circuits 32 are assigned to the four data d1 from the 48th bit to the MSB of the data D1.

次に、デジタル処理装置1の製造方法を説明する。ここでは、プログラマブル論理デバイスとしてFPGAを用いる場合について説明する。デジタル処理装置1が備える回路部10は、FPGAを用いて作成される。デジタル処理装置1の製造では、まず、回路部10の回路機能をハードウェア記述言語で記述したプログラムが、回路設計者等のユーザによって作成される。そして、専用ツール等によって、プログラムに基づきFPGAに回路部10の回路機能が書き込まれることで、FPGA上に回路部10が作成される。なお、回路機能が書き込まれていないFPGAは、予め製作されている。デジタル処理装置1の製造方法は、記述工程と作成工程とを備える。 Next, a method for manufacturing the digital processing device 1 will be described. Here, the case of using an FPGA as a programmable logic device will be described. A circuit unit 10 included in the digital processing device 1 is created using an FPGA. In manufacturing the digital processing device 1, first, a user such as a circuit designer creates a program in which the circuit functions of the circuit section 10 are described in a hardware description language. Then, the circuit section 10 is created on the FPGA by writing the circuit functions of the circuit section 10 to the FPGA based on a program using a dedicated tool or the like. Note that FPGAs in which circuit functions are not written are manufactured in advance. The manufacturing method of the digital processing device 1 includes a description process and a creation process.

記述工程は、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 circuit section 10 included in the digital processing device 1 according to the FPGA. Specifically, the circuit functions of the encrypted data generation unit 2, the processing unit 3, and the linear processing unit 4 are described in a hardware description language compatible with FPGA. A program describing circuit functions includes a first part for creating a plurality of conversion circuits 31 in FPGA and a second part for creating a plurality of conversion circuits 32 in FPGA. The circuit functions of the conversion circuit 31 and the conversion circuit 32 are described so that an output value is uniquely determined for an input value based on a truth table or the like.

複数の変換回路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 conversion circuits 31 are described by a lookup table description method. That is, the first part of the program is described using the lookup table description method. Specifically, the value of 4-bit data d1 (input value) and the value of data d2 (output value) are expressed in hexadecimal, and all hexadecimal input values 0 to F (0000 to 1111 in binary) , the circuit function of each conversion circuit 31 is described so as to uniquely associate hexadecimal output values 0 to F with each. For example, the circuit function of each conversion circuit 31 is such that an input value of 2 (0010 in binary) is associated with an output value of B (1011 in binary), and an input value of 3 (0011 in binary) is associated with is described so as to correspond to 1 (0001 in binary) as an output value. Note that the input value and the output value may be uniquely associated by expressing the input value and the output value in decimal numbers.

複数の変換回路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 conversion circuits 32 are described by a Boolean algebra description method. That is, the second part of the program is described using the Boolean algebra description method. Specifically, the circuit function of each conversion circuit 32 is described so that each bit of data d2 is represented by a Boolean algebra (logic operation expression) including a plurality of bits of data d1. Let data d1 be (x3, x2, x1, x0) in binary notation and data d2 be (y3, y2, y1, y0) in binary notation. is described by Boolean algebra as here,! represents negation (NOT) of xn (where n is 0 to 3), & represents a logical product (AND) operation, and | represents a logical sum (OR) operation. Similarly, the other bits y1, y2, and y3 of the output value are also described by Boolean algebra uniquely determined from each bit (x0, x1, x2, x3) of data d1.
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 conversion circuit 31 and the conversion circuit 32 are described to output the same value of data d2 if the value of data d1 is the same. A program containing descriptions of circuit functions of the plurality of conversion circuits 31 and the plurality of conversion circuits 32 is also called a source file. A program describing circuit functions is stored in a storage medium such as a flexible disk, a CD-ROM (Compact Disc-Read only memory), a DVD (Digital Versatile Disc) or a ROM, or a semiconductor memory. Also, the above program may be provided via a network as a computer data signal superimposed on a carrier wave.

続いて、上述のプログラムに記述した回路機能に基づき、FPGAにおいて回路部10が作成される(作成工程)。作成工程では、例えば、専用ツールによって、上述のプログラムが、ハードウェア記述言語を中間言語に翻訳したネットリストに変換される。そして、ネットリストからFPGAに書き込むための書き込み用データ(オブジェクトファイル)が作成される。そして、書き込みツールによって、書き込み用データをFPGAに書き込むことで(コンフィギュレーション)、FPGAにおいて処理部3及び線形処理部4を含む回路部10が作成される。なお、デジタル処理装置1Aも、デジタル処理装置1と同様に製造される。 Subsequently, the circuit section 10 is created in the FPGA based on the circuit functions described in the above program (creation step). In the creation process, for example, a dedicated tool converts the above-described program into a netlist obtained by translating the hardware description language into an intermediate language. Then, write data (object file) for writing to the FPGA is created from the netlist. Then, by writing data for writing into the FPGA using a writing tool (configuration), the circuit section 10 including the processing section 3 and the linear processing section 4 is created in the FPGA. The digital processing device 1A is also manufactured in the same manner as the digital processing device 1. FIG.

次に、第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の場合には動作速度を重視するが実装面積とのバランスも考慮するオプションを選択して、検証を行った。

Figure 0007296609000001

Figure 0007296609000002
Next, verification results of the effects of the digital processing apparatuses 1 and 1A according to the first embodiment will be described. Tables 1 and 2 show the verification results when sp6 (product name) manufactured by Xilinx was used as the FPGA. The first verification example is the verification result of the digital processing device 1 shown in FIG. The second verification example is the verification result of the digital processing device 1A shown in FIG. The first comparative example is a comparison result when all the conversion circuits of the processing unit 3 are created based on the lookup table description method. It is a comparison result when created based on the method. Each of the digital processing devices in the first verification example, the second verification example, the first comparative example, and the second comparative example includes 24 circuit units. Table 1 shows the verification results when each bit of the input data and output data of the digital processing device is not assigned to a specific input/output terminal on the FPGA (IO-Floated). Also, Table 2 shows the verification results when each bit of the input data and output data of the digital processing device is assigned to a specific input/output terminal on the FPGA (IO-Stuck). As an optimization option for circuit synthesis, in the case of IO-Floated, select the option that emphasizes operation speed, and in the case of IO-Stuck, select the option that emphasizes operation speed but also considers the balance with the mounting area. , verified.
Figure 0007296609000001

Figure 0007296609000002

表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 digital processing device 1, 1A, each of the shuffle circuits 41a to 41d (unit processing circuits) and each of the shift circuits 42a to 42d (unit processing circuits) is four times the second number of bits (4 bits). Linear processing is performed using unit data having a certain third bit number (16 bits) as a processing unit. In the processing unit 3, four conversion circuits 31 or four conversion circuits 32 are assigned for each processing unit. In the processing unit 3, conversion circuits 31 and 32 created based on different description methods are mixed, and four conversion circuits 31 and 32 created based on the same description method are assigned to each processing unit. Various circuits created in FPGAs (programmable logic devices) are basically randomly distributed and arranged, but circuits based on the same description method tend to be arranged together. Therefore, by allocating the four conversion circuits 31 and 32 created based on the same description method for each processing unit, the possibility that the four conversion circuits 31 and 32 are arranged together increases. As a result, the mounting area of the circuit created in the FPGA 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.

シャッフル回路41a~41d(単位処理回路)は、単位データに含まれる4個のデータd2(第2部分データ)の並び順を変更する。シャッフル回路41aが処理する4個のデータd2を供給する4個の変換回路32が、分散して配置されている場合、4個の変換回路32からシャッフル回路41aまでの配線の配線長の合計が大きくなる可能性がある。これに対して、シャッフル回路41aが処理する4個のデータd2を供給する4個の変換回路32は、まとまって配置される傾向があるので、上記配線長の合計が小さくなる可能性が高まる。これにより、FPGAに作成される回路の実装面積が低減され、処理速度が速くなる可能性が高まる。シャッフル回路41b~41dについても同様である。 The shuffle circuits 41a to 41d (unit processing circuits) change the arrangement order of the four data d2 (second partial data) included in the unit data. When the four conversion circuits 32 that supply the four pieces of data d2 processed by the shuffle circuit 41a are arranged in a distributed manner, the total wiring length from the four conversion circuits 32 to the shuffle circuit 41a is It can grow. On the other hand, since the four conversion circuits 32 that supply the four data d2 processed by the shuffle circuit 41a tend to be arranged together, the total wiring length is more likely to be reduced. As a result, the mounting area of the circuit created in the FPGA can be reduced, increasing the possibility of increasing the processing speed. The same applies to the shuffle circuits 41b-41d.

シフト回路42a~42d(単位処理回路)は、データd3a~d3d(単位データ)を所定ビット数シフトする。シフト回路42aが処理するデータd3aをシャッフル回路41aを介して供給する4個の変換回路32が、分散して配置されている場合、4個の変換回路32からシャッフル回路41aを介してシフト回路42aまでの配線の配線長の合計が大きくなる可能性がある。これに対して、上記4個の変換回路32は、まとまって配置される傾向があるので、上記配線長の合計が小さくなる可能性が高まる。これにより、FPGAに作成される回路の実装面積が低減され、処理速度が速くなる可能性が高まる。シフト回路42b~42dについても同様である。 The shift circuits 42a-42d (unit processing circuits) shift the data d3a-d3d (unit data) by a predetermined number of bits. When the four conversion circuits 32 that supply the data d3a to be processed by the shift circuit 42a through the shuffle circuit 41a are arranged in a distributed manner, the data d3a from the four conversion circuits 32 are transmitted through the shuffle circuit 41a to the shift circuit 42a. There is a possibility that the total wiring length of the wiring up to is large. On the other hand, since the four conversion circuits 32 tend to be arranged together, the total wiring length is more likely to be reduced. As a result, the mounting area of the circuit created in the FPGA can be reduced, increasing the possibility of increasing the processing speed. The same applies to the shift circuits 42b-42d.

複数の変換回路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 digital processing devices 1 and 1A from the output data of the digital processing devices 1 and 1A.

図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 digital processing device 1 according to the first embodiment in that the first bit numbers of the input data and the output data are 48 bits, and instead of the processing unit 3 and the linear processing unit 4, , the processing unit 7 and the linear processing unit 6 are provided.

デジタル処理装置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 data generation unit 2 XORs the data Din and the encryption key data, and outputs the operation result to the linear processing unit 6 as data D1. Data Din and D1 have a first number of bits. In this embodiment, the bit number of MSB in data Din is 47th. The same applies to data D1 and data D5, D6, D7, and Dout, which will be described later. The linear processing unit 6 linearly processes the data D1 and outputs the linear processing result to the processing unit 7 as data D7 (first data). Data D7 is data having the first number of bits. The linear processing unit 6 has an array conversion circuit 61 , an XOR execution circuit 62 and a permutation circuit 63 .

配列変換回路61は、データD1に対して配列変換処理(線形処理)を施す回路である。配列変換処理とは、データD1に含まれる複数のビットの配列を変更する処理である。配列変換回路61は、データD1の配列変換処理を行うことでデータD5を生成する。配列変換回路61は、データD5をXOR実行回路62に出力する。データD5は第1ビット数を有するデータである。 The array conversion circuit 61 is a circuit that performs array conversion processing (linear processing) on the data D1. Array conversion processing is processing for changing the array of a plurality of bits included in data D1. The array conversion circuit 61 generates data D5 by performing array conversion processing on the data D1. Array conversion circuit 61 outputs data D5 to XOR execution circuit 62 . Data D5 is data having the first number of bits.

図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 array conversion circuit 61 arranges each bit from the 0th bit to the 15th bit number m in the data D1 at the (3×m)th bit position in the data D5. The array conversion circuit 61 arranges each bit of bit number m from 16th to 31st in data D1 to the {3×(m−16)+1}th bit position in data D5. The array conversion circuit 61 arranges each bit from the 32nd to 47th bit numbers m in the data D1 at the {3×(m−32)+2}th bit position in the data D5.

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 XOR execution circuit 62 is a circuit that performs XOR operation processing on the data D5. The XOR execution circuit 62 generates data D6 by XORing data D5. XOR execution circuit 62 outputs data D6 to replacement circuit 63 . Data D6 is data having the first number of bits. The XOR execution circuit 62 has an XOR operation circuit 62a. The XOR operation circuit 62a is assigned to the data d51 from the LSB to the fifth bit of the data D5. The XOR operation circuit 62a performs XOR operation processing (linear processing) on the data d51. The XOR operation circuit 62a outputs the operation result to the replacement circuit 63 as data d61. The XOR execution circuit 62 outputs the data d52 from the 6th bit to the MSB of the data D5 as the data d62 to the replacement circuit 63 without changing the value.

なお、データ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 XOR operation circuit 62a (unit processing circuit) XORs the data d51 and the round constant data. The XOR operation circuit 62a performs XOR operation processing (linear processing) using data d51 having a third bit number that is N times the second bit number (N is an integer equal to or greater than 2) as unit data. Note that N=2 in this embodiment. The round constant data is stored in advance in a memory (not shown), and is input from the memory to the XOR operation circuit 62a. The round constant data may be sequentially generated by a round constant generation circuit (not shown) and input from the round constant generation circuit to the XOR operation circuit 62a. Round constant data has a third bit number. The round constant data may have different values for each of the plurality of circuit units 10 included in the digital processing device 5 .

置換回路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 replacement circuit 63 is a circuit that performs replacement processing on the data D6. The replacement process is a process of replacing the bit position of each bit included in the data having the second number of bits (here, 3 bits) in the data D6. The replacement circuit 63 replaces the data D6 to generate the data D7. The replacement circuit 63 outputs the data D7 to the processing section 7. FIG. Data D7 is data having the first number of bits. The replacement circuit 63 has a plurality of (here, 16) individual replacement circuits 64 . The plurality of individual replacement circuits 64 are arranged in parallel, and each of the plurality of individual replacement circuits 64 is assigned to each data having the second bit number in data D6 in order from the LSB. The individual replacement circuit 64 performs replacement processing (linear processing) on the data having the second number of bits in the data D6.

具体的には、個別置換回路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 individual replacement circuit 64 replaces the bit position of each bit of the data input to the individual replacement circuit 64 according to the 2-bit round key. The round key is stored in advance in a memory (not shown) and is input to each individual permutation circuit 64 from the memory. The round key may be sequentially generated by a round key generation circuit (not shown) and input to each individual permutation circuit 64 from the round key generation circuit. The round key may have a different value for each of the multiple circuit units 10 included in the digital processing device 5 . The individual permutation circuit 64 changes how to permute the bit position of each bit according to the value of the round key. For example, if the value of the 2-bit round key is (0, 1), the individual permutation circuit 64 replaces the 3-bit data (p2, p1, p0) input to the individual permutation circuit 64 with the bit position of each bit. are replaced with the data (p1, p2, p0) that have been exchanged. When the value of the round key is (1, 0), the individual replacement circuit 64 replaces data (p2, p1, p0) with data (p2, p0, p1).

各個別置換回路64は置換処理を行うことでデータd7(第1部分データ)を生成する。各個別置換回路64は、データd7を変換回路31又は変換回路32に出力する。なお、データd7は、データD7のうちの一部のデータであり、第2ビット数を有する。複数のデータd7は、データD7のLSBからMSBまでの全てのデータを、ビット番号順に第2ビット数単位で分割したデータである。図4では、16個のデータd7によって、データD7が構成される。 Each individual replacement circuit 64 performs replacement processing to generate data d7 (first partial data). Each individual replacement circuit 64 outputs the data d7 to the conversion circuit 31 or the conversion circuit 32 . Note that the data d7 is part of the data D7 and has the second number of bits. A plurality of data d7 is data obtained by dividing all data from LSB to MSB of data D7 in units of the second number of bits in order of bit numbers. In FIG. 4, data D7 is composed of 16 data d7.

処理部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 processing unit 7 is a circuit that converts data D7 into data Dout (second data). Data Dout is data having a first number of bits. Specifically, the processing unit 7 generates the data Dout by performing nonlinear conversion processing on the data D7. The processing unit 7 outputs the data Dout as output data from the circuit unit 10 . In the processing unit 7, a plurality of conversion circuits 31 (a plurality of first conversion circuits) and a plurality of conversion circuits 32 (a plurality of second conversion circuits) are arranged in parallel. Data d7 is input to each conversion circuit 31 and each conversion circuit 32 . Each of the plurality of conversion circuits 31 and each of the plurality of conversion circuits 32 converts the data d7 input thereto, whereby the processing unit 7 converts the data D7 into the data Dout.

各変換回路31及び各変換回路32は、データd7の変換処理を行うことで、データdout(第2部分データ)を生成する。データdoutは第2ビット数を有する。なお、データdoutは、データDoutのうちの一部のデータである。複数のデータdoutは、データDoutのLSBからMSBまでの全てのデータを、ビット番号順に第2ビット数単位で分割したデータである。図4では、16個のデータdoutによって、データDoutが構成される。 Each conversion circuit 31 and each conversion circuit 32 generate data dout (second partial data) by performing conversion processing on data d7. Data dout has a second number of bits. The data dout is part of the data Dout. A plurality of data douts are data obtained by dividing all data from LSB to MSB of data Dout in units of the second number of bits in order of bit numbers. In FIG. 4, the data Dout is composed of 16 data douts.

処理部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 processing unit 7, N (here, N=2) conversion circuits 31 out of the plurality of conversion circuits 31 for each data of a third bit number that is N times (here, N=2) the second bit number in the data D7 , or N (here, N=2) conversion circuits 32 out of the plurality of conversion circuits 32 are assigned. Specifically, in the processing unit 7, the conversion circuit 31 is assigned to each of the two data d7 from the LSB to the fifth bit of the data D7. A conversion circuit 31 is assigned to each of the two data d7 from the 6th to 11th bits of the data D7. A conversion circuit 31 is assigned to each of the two data d7 from the 12th to 17th bits of the data D7. Conversion circuits 31 are assigned to two pieces of data d7 from the 18th to 23rd bits of the data D7.

処理部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 processing unit 7, the conversion circuit 32 is assigned to each of the two data d7 from the 24th to 29th bits of the data D7. Conversion circuits 32 are assigned to two pieces of data d7 from the 30th bit to the 35th bit of data D7. Conversion circuits 32 are assigned to two pieces of data d7 from the 36th to 41st bits of data D7. Conversion circuits 32 are assigned to two pieces of data d7 from the 42nd bit to the MSB of data D7.

図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 digital processing device 5A shown in FIG. 6 differs from the digital processing device 5 shown in FIG. Specifically, in the digital processing device 5A, the conversion circuit 31 is assigned to each of the two data d7 from the LSB to the fifth bit of the data D7. A conversion circuit 32 is assigned to each of the two data d7 from the 6th to 11th bits of the data D7. A conversion circuit 31 is assigned to each of the two data d7 from the 12th to 17th bits of the data D7. Conversion circuits 32 are assigned to two data d7 from the 18th to 23rd bits of the data D7.

デジタル処理装置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 digital processing device 5A, conversion circuits 31 are assigned to two data d7 from the 24th to 29th bits of the data D7. Conversion circuits 32 are assigned to two pieces of data d7 from the 30th to 35th bits of data D7. Conversion circuits 31 are assigned to two pieces of data d7 from the 36th to 41st bits of data D7. Conversion circuits 32 are assigned to two pieces of data d7 from the 42nd bit to the MSB of data D7.

第2実施形態に係るデジタル処理装置5,5Aは、第1実施形態に係るデジタル処理装置1,1Aと同様に、FPGAを用いて製造される。デジタル処理装置5,5Aの製造では、第1実施形態に係るデジタル処理装置1,1Aの製造と同様に、線形処理部6及び処理部7を含む回路部10の回路機能をハードウェア記述言語で記述したプログラムが作成される。 The digital processing devices 5 and 5A according to the second embodiment are manufactured using FPGAs, like the digital processing devices 1 and 1A according to the first embodiment. In the manufacture of the digital processing devices 5 and 5A, similarly to the manufacture of the digital processing devices 1 and 1A according to the first embodiment, the circuit functions of the circuit section 10 including the linear processing section 6 and the processing section 7 are described in a hardware description language. A written program is created.

次に、第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のいずれの場合も動作速度を重視するが実装面積とのバランスも考慮するオプションを選択して、検証を行った。

Figure 0007296609000003

Figure 0007296609000004
Next, verification results of the effects of the digital processing devices 5 and 5A according to the second embodiment will be described. Tables 3 and 4 show the verification results when sp6 (product name) manufactured by Xilinx was used as the FPGA. The third verification example is the verification result in the digital processing device 5 shown in FIG. The fourth verification example is the verification result of the digital processing device 5A shown in FIG. The third comparative example is a comparison result when all the conversion circuits provided in the processing unit 7 are created based on the lookup table description method. It is a comparison result when created based on the method. Each of the digital processing devices in the third verification example, the fourth verification example, the third comparative example, and the fourth comparative example includes 48 circuit units. Table 3 shows the verification results for the IO-Floated case, and Table 4 shows the verification results for the IO-Stuck case. For both IO-Floated and IO-Stuck as optimization options for circuit synthesis, an option that emphasizes operation speed but also considers the balance with mounting area was selected and verified.
Figure 0007296609000003

Figure 0007296609000004

表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 digital processing device 5, 5A, the XOR operation circuit 62a (unit processing circuit) converts unit data having a third bit number (6 bits) which is twice the second bit number (3 bits) into a processing unit. Perform linear processing as In the processing unit 7, two conversion circuits 31 (first conversion circuits) or two conversion circuits 32 (second conversion circuits) are assigned for each processing unit in the XOR operation circuit 62a (unit processing circuit). In the processing unit 7, conversion circuits 31 and 32 created based on different description methods are mixed, and two conversion circuits 31 and 32 created based on the same description method are assigned to each processing unit. Various circuits created in FPGAs (programmable logic devices) are basically randomly distributed and arranged, but circuits based on the same description method tend to be arranged together. Therefore, by allocating two conversion circuits 31 and 32 created based on the same description method for each processing unit, the possibility that the two conversion circuits 31 and 32 are arranged together increases. As a result, the mounting area of the circuit created in the FPGA 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.

XOR演算回路62a(単位処理回路)は、単位データと、第3ビット数を有するデータ(ラウンド鍵)とのXORを演算する。XOR演算回路62aの処理結果に基づくデータが、処理単位ごとに割り当てられた2個の変換回路31に入力される。これらの2個の変換回路31が、分散して配置されている場合、XOR演算回路62aから置換回路63を介して2個の変換回路31までの配線の配線長の合計が大きくなる可能性がある。これに対して、上記2個の変換回路31は、まとまって配置される傾向があるので、上記配線長の合計が小さくなる可能性が高まる。これにより、FPGAに作成される回路の実装面積が低減され、処理速度が速くなる可能性が高まる。 The XOR arithmetic circuit 62a (unit processing circuit) XORs the unit data and the data having the third bit number (round key). Data based on the processing result of the XOR operation circuit 62a is input to two conversion circuits 31 assigned for each processing unit. When these two conversion circuits 31 are arranged in a distributed manner, there is a possibility that the total wiring length of the wiring from the XOR operation circuit 62a to the two conversion circuits 31 via the replacement circuit 63 becomes large. be. On the other hand, since the two conversion circuits 31 tend to be arranged together, the total wiring length is more likely to be reduced. As a result, the mounting area of the circuit created in the FPGA can be reduced, increasing the possibility of increasing the processing speed.

なお、本発明に係るデジタル処理装置、デジタル処理装置の製造方法及びプログラムは上記実施形態に限定されない。 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 conversion circuits 31 and conversion circuits 32 are assigned to the processing units 3 and 7, but the present invention is not limited to this. If the processing units 3 and 7 include a plurality of conversion circuits 31 and a plurality of conversion circuits 32, the number of conversion circuits 31 and the number of conversion circuits 32 may not be the same.

処理部3,7は非線形変換処理を行っているが、これに限られない。処理部3はデータD1の線形変換処理を行ってもよく、処理部7はデータD7の線形変換処理を行ってもよい。 Although the processing units 3 and 7 perform nonlinear conversion processing, the present invention is not limited to this. The processing unit 3 may perform linear conversion processing on the data D1, and the processing unit 7 may perform linear conversion processing on the data D7.

シャッフル回路41a~41d等の単位処理回路は、第2ビット数のN倍(Nは2以上の整数)である第3ビット数を有する単位データを処理単位として線形処理を行っていればよく、処理部3,7では、処理単位ごとにN個の変換回路31又はN個の変換回路32が割り当てられていればよい。 The unit processing circuits such as the shuffle circuits 41a to 41d may perform linear processing with 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 units 3 and 7, N conversion circuits 31 or N conversion circuits 32 may be assigned to each processing unit.

デジタル処理装置1,1A,5,5Aは、暗号処理を行うための装置であるが、これに限られない。デジタル処理装置1,1A,5,5Aは、フィルタ係数をテーブル参照回路によって読み取る信号処理装置であってもよい。その他、デジタル処理装置1,1A,5,5Aは、入力データの値を、入力データの値と異なる値を有する出力データに変換するテーブル参照処理を行う回路を備える装置であればよい。 The digital processing devices 1, 1A, 5, and 5A are devices for performing cryptographic processing, but are not limited to this. The digital processors 1, 1A, 5, 5A may be signal processors that read the filter coefficients using a table lookup circuit. In addition, the digital processing devices 1, 1A, 5, and 5A may be devices provided with a circuit that performs table lookup processing for converting the value of input data into output data having a value different from the value of the input data.

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.
前記単位処理回路は、前記単位データに含まれるN個の前記第2部分データの並び順を変更する、
請求項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.
前記単位処理回路は、前記単位データと、前記第3ビット数を有するデータとの排他的論理和を演算する、
請求項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変換回路のそれぞれ及び前記複数の第2変換回路のそれぞれは、非線形変換処理を行う、
請求項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ビット数を有する第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変換回路の少なくとも一部とのそれぞれが、プログラマブル論理デバイスに作成される種々の回路は、異なる記述方式を混在させた場合に、同じ記述方式に基づいた回路はまとまって配置される傾向があるという性質により、前記プログラマブル論理デバイス上でまとまって配置されており、
前記記述工程では、ルックアップテーブルを用いて回路機能を記述したプログラムによって前記複数の第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ビット数を有する第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変換回路の少なくとも一部とのそれぞれが、プログラマブル論理デバイスに作成される種々の回路は、異なる記述方式を混在させた場合に、同じ記述方式に基づいた回路はまとまって配置される傾向があるという性質により、前記プログラマブル論理デバイス上でまとまって配置されており、
前記記述工程では、ルックアップテーブルを用いて回路機能を記述したプログラムによって前記複数の第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変換回路及び複数の第2変換回路を有し、第1ビット数を有する第1データを、前記第1ビット数を有する第2データに変換する処理部と、前記第2データの線形処理を行う線形処理部と、を備えるデジタル処理装置としてプログラマブル論理デバイスを機能させるためのプログラムであって、
前記プログラマブル論理デバイスに前記複数の第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データを出力する線形処理部と、複数の第1変換回路及び複数の第2変換回路を有し、前記第1データを、前記第1ビット数を有する第2データに変換する処理部と、を備えるデジタル処理装置としてプログラマブル論理デバイスを機能させるためのプログラムであって、
前記プログラマブル論理デバイスに前記複数の第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.
JP2017219439A 2017-11-14 2017-11-14 DIGITAL PROCESSING DEVICE, METHOD AND PROGRAM FOR MANUFACTURING DIGITAL PROCESSING DEVICE Active JP7296609B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (6)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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