[go: up one dir, main page]

JP2019092045A - Digital processing device, manufacturing method of digital processing device, and program - Google Patents

Digital processing device, manufacturing method of digital processing device, and program Download PDF

Info

Publication number
JP2019092045A
JP2019092045A JP2017219439A JP2017219439A JP2019092045A JP 2019092045 A JP2019092045 A JP 2019092045A JP 2017219439 A JP2017219439 A JP 2017219439A JP 2017219439 A JP2017219439 A JP 2017219439A JP 2019092045 A JP2019092045 A JP 2019092045A
Authority
JP
Japan
Prior art keywords
data
conversion circuits
circuit
processing unit
unit
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.)
Granted
Application number
JP2017219439A
Other languages
Japanese (ja)
Other versions
JP7296609B2 (en
Inventor
忠 岡部
Tadashi Okabe
忠 岡部
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)

Abstract

【課題】デジタル処理装置の性能を向上させる。【解決手段】デジタル処理装置1は、プログラマブル論理デバイスを用いて作成され、第1ビット数を有するデータD1を、第1ビット数を有するデータD2に変換する処理部3と、データD2の線形処理を行う線形処理部4と、を備える。処理部3は、ルックアップテーブル記述方式に基づいて作成された複数の変換回路31と、ブール代数記述方式に基づいて作成された複数の変換回路32とを有する。処理部3では、単位処理回路の処理単位ごとに、複数の変換回路31のうちのN個の変換回路31又は複数の変換回路32のうちのN個の変換回路32が割り当てられる。【選択図】図1PROBLEM TO BE SOLVED: To improve the performance of a digital processing device. A digital processing device (1), which is created using a programmable logic device, converts a data (D1) having a first bit number into a data (D2) having a first bit number, and a linear processing of the data (D2). And a linear processing unit 4 for performing. The processing unit 3 has a plurality of conversion circuits 31 created based on the look-up table description system and a plurality of conversion circuits 32 created based on the Boolean algebra description system. In the processing unit 3, N conversion circuits 31 of the plurality of conversion circuits 31 or N conversion circuits 32 of the plurality of conversion circuits 32 are allocated for each processing unit of the unit processing circuit. [Selection diagram] Figure 1

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 a product using a large scale integrated circuit (LSI) such as an application specific integrated circuit (ASIC) and a field programmable gate array (FPGA) is used for a digital processing device which requires table reference processing. As such digital processing devices, for example, there are a signal processing device that performs filter processing by referring to filter coefficients from a table, and a security (encryption processing) device that performs non-linear conversion processing by table reference processing. In programmable logic devices such as FPGAs, hard macros and soft macros are used. In the soft macro, the circuit design of the table reference process is performed using a hardware description language (HDL) (see, for example, Patent Document 1).

ハードウェア記述言語を用いた記述方式には、ルックアップテーブル(LUT;Look-Up-Table)を用いる記述方式、ブール代数(Boolean algebra)を用いる記述方式及び有限体理論における拡大体を用いる記述方式がある。ブール代数を用いる記述方式では、一意にブール代数で記述する必要があり、その煩雑さからブール代数を用いる記述方式が使用される機会はあまり多くない。有限体理論における拡大体を用いる記述方式では、性能面の大きな向上が見込めるが、理論の難しさのために実用性に乏しい。このような状況において、簡便性の観点からルックアップテーブルを用いる記述方式が頻繁に使用される。   The description method using hardware description language includes a description method using look-up table (LUT; Look-Up-Table), a description method using Boolean algebra and an extension method 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, there is not much opportunity for the description method using Boolean algebra to be used. In the description method using the extension field in finite field theory, a large improvement in performance can be expected, but the practicality is poor because of the difficulty of the theory. Under such circumstances, a description method using a look-up table is frequently used from the viewpoint of simplicity.

特開2003−323117号公報JP 2003-323117 A

しかしながら、ルックアップテーブルを用いる記述方式のみによってテーブル参照処理の回路設計がされたデジタル処理装置には、性能面において改善の余地がある。   However, there is room for improvement in the performance of a digital processing apparatus in which the table reference processing circuit is designed only by the description method using a look-up table.

本発明は、性能を向上させることが可能なデジタル処理装置、デジタル処理装置の製造方法及びプログラムを提供する。   The present invention provides a digital processing device capable of improving performance, a method of manufacturing a 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, which converts first data having a first number of bits into second data having a first number of bits. Processing unit, and a linear processing unit that performs linear processing of the second data. The processing unit includes a plurality of first conversion circuits created based on the look-up table description method and a plurality of second conversion circuits created based on the Boolean algebra description method, and the plurality of first conversion circuits And each of the plurality of second conversion circuits convert the first partial data having the second bit number of the first data into second partial data having the second bit number of the second data. . The linear processing unit has a unit processing circuit that performs linear processing using unit data having a third bit number that is N times the second bit number (N is an integer of 2 or more), and the processing unit performs processing For each unit, N first conversion circuits among the plurality of first conversion circuits or N second conversion circuits among the plurality of second conversion circuits are allocated.

このデジタル処理装置では、処理単位ごとに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, there are mixed conversion circuits created based on different description methods, and N conversion circuits created based on the same description method for each processing unit of the unit processing circuit included in the linear processing unit. Assigned. The various circuits created in the programmable logic device are based on being distributed at random and distributed, but circuits based on the same description system 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 collectively arranged is increased. 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 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 circuit tend to be arranged collectively, the total of the wiring lengths of the wirings from the N conversion circuits to the unit processing circuit Is likely to become smaller. This reduces the footprint of the circuit created in the programmable logic device and increases the likelihood of faster processing speeds.

単位処理回路は、単位データを所定ビット数シフトしてもよい。単位処理回路が処理する単位データを供給するN個の変換回路は、まとまって配置される傾向があるので、N個の変換回路から単位処理回路までの配線の配線長の合計が小さくなる可能性が高まる。これにより、プログラマブル論理デバイスに作成される回路の実装面積が低減され、処理速度が速くなる可能性が高まる。   The unit processing circuit may shift unit data by a predetermined number of bits. Since the N conversion circuits that supply unit data processed by the unit processing circuit tend to be arranged collectively, there is a possibility that the total of the wiring lengths of the wirings from the N conversion circuits to the unit processing circuit may be reduced. Increase. This reduces the footprint of the circuit created in the programmable logic device and increases the likelihood of faster processing speeds.

本発明の一側面に係るデジタル処理装置は、プログラマブル論理デバイスを用いて作成されたデジタル処理装置であって、所定のデータの線形処理を行い、第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 linearly processes predetermined data and outputs first data having a first number of bits. And a processing unit configured to convert the first data into second data having a first number of bits. The processing unit includes a plurality of first conversion circuits created based on the look-up table description method and a plurality of second conversion circuits created based on the Boolean algebra description method, and the plurality of first conversion circuits And each of the plurality of second conversion circuits convert the first partial data having the second bit number of the first data into second partial data having the second bit number of the second data. . The linear processing unit has a unit processing circuit that performs linear processing using unit data having a third bit number that is N times the second bit number (N is an integer of 2 or more), and the processing unit performs processing For each unit, N first conversion circuits among the plurality of first conversion circuits or N second conversion circuits among the plurality of second conversion circuits are allocated.

このデジタル処理装置では、処理単位ごとに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 becomes possible to improve the performance of the digital processing device as in the above-mentioned digital processing device.

単位処理回路は、単位データと、第3ビット数を有するデータとの排他的論理和を演算してもよい。単位処理回路の処理結果に基づくデータが供給されるN個の変換回路は、まとまって配置される傾向があるので、単位処理回路からN個の変換回路までの配線の配線長の合計が小さくなる可能性が高まる。これにより、プログラマブル論理デバイスに作成される回路の実装面積が低減され、処理速度が速くなる可能性が高まる。   The unit processing circuit may calculate an exclusive OR of unit data and data having the third bit number. Since the N conversion circuits to which data based on the processing result of the unit processing circuit are supplied tend to be arranged collectively, the total of the wiring lengths of the wirings from the unit processing circuit to the N conversion circuits is reduced. The possibilities increase. This reduces the footprint of the circuit created in the programmable logic device and increases the likelihood of faster processing speeds.

複数の第1変換回路のそれぞれ及び複数の第2変換回路のそれぞれは、非線形変換処理を行ってもよい。この場合、デジタル処理装置の出力データから、デジタル処理装置の入力データを推測され難くすることが可能となる。   Each of the plurality of first conversion circuits and each of the plurality of second conversion circuits may perform non-linear conversion processing. In this case, it is possible to make it difficult to deduce 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 has first data having a first number of bits and a first number of bits. A method of manufacturing a digital processing device, comprising: a processing unit for converting data into second data; and a linear processing unit for performing linear processing of second data, the circuit of the processing unit and the linear processing unit according to a programmable logic device And a creation step of creating a processing unit and a linear processing unit in the programmable logic device based on the description step of describing the function and the circuit function. Each of the plurality of first conversion circuits and each of the plurality of second conversion circuits includes first partial data having a second number of bits of the first data and 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 with 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) converted into two-part data. . In the processing unit, N first conversion circuits among the plurality of first conversion circuits or N second conversion circuits among the plurality of second conversion circuits are assigned to each processing unit, and in the description process, The circuit functions of the plurality of first conversion circuits are described by the look-up table description method, and the circuit functions of the plurality of second conversion circuits are described by the Boolean algebra description method.

このデジタル処理装置の製造方法では、ルックアップテーブル記述方式によって複数の第1変換回路の回路機能が記述され、ブール代数記述方式によって複数の第2変換回路の回路機能が記述される。さらに処理部では、処理単位ごとにN個の第1変換回路又はN個の第2変換回路が割り当てられる。そのため、上述のデジタル処理装置と同様に、デジタル処理装置の性能を向上させることが可能となる。   In this method of manufacturing a digital processing device, the circuit functions of the plurality of first conversion circuits are described by the look-up 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 becomes possible to improve the performance of the digital processing device as in the above-mentioned 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変換回路の回路機能が記述される。   A manufacturing method of a digital processing device according to another aspect of the present invention performs linear processing of predetermined data, and outputs a first data having a first number of bits, a plurality of first conversion circuits, and a plurality of first conversion circuits. And a processing unit for converting the first data into the second data having the first number of bits, the processing unit corresponding to the programmable logic device. And a creating step of creating the processing unit and the linear processing unit in the programmable logic device based on the circuit function. Each of the plurality of first conversion circuits and each of the plurality of second conversion circuits includes first partial data having a second number of bits of the first data and 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 with 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) converted into two-part data. . In the processing unit, N first conversion circuits among the plurality of first conversion circuits or N second conversion circuits among the plurality of second conversion circuits are assigned to each processing unit, and in the description process, The circuit functions of the plurality of first conversion circuits are described by the look-up table description method, and the circuit functions of the plurality of second conversion circuits are described by the Boolean algebra description method.

このデジタル処理装置の製造方法では、ルックアップテーブル記述方式によって複数の第1変換回路の回路機能が記述され、ブール代数記述方式によって複数の第2変換回路の回路機能が記述される。さらに処理部では、処理単位ごとにN個の第1変換回路又はN個の第2変換回路が割り当てられる。そのため、上述のデジタル処理装置と同様に、デジタル処理装置の性能を向上させることが可能となる。   In this method of manufacturing a digital processing device, the circuit functions of the plurality of first conversion circuits are described by the look-up 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 becomes possible to improve the performance of the digital processing device as in the above-mentioned digital processing device.

本発明のさらに別の側面に係るプログラムは、複数の第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 includes a plurality of first conversion circuits and a plurality of second conversion circuits, and transmits 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 including a processing unit that performs conversion and a linear processing unit that performs linear processing of second data, and creating a plurality of first conversion circuits in the programmable logic device And a second part for creating a plurality of second conversion circuits in the programmable logic device. The first part is described using a look-up 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 is 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 using unit data having a third bit number that is N times the second bit number (N is an integer of 2 or more), and the processing unit performs processing For each unit, N first conversion circuits among the plurality of first conversion circuits or N second conversion circuits among the plurality of second conversion circuits are allocated.

このプログラムでは、第1部分は、ルックアップテーブル記述方式を用いて記述され、第2部分は、ブール代数記述方式を用いて記述される。さらに処理部では、処理単位ごとにN個の第1変換回路又はN個の第2変換回路が割り当てられる。そのため、上述のデジタル処理装置と同様に、デジタル処理装置の性能を向上させることが可能となる。   In this program, the first part is described using the look-up 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 becomes possible to improve the performance of the digital processing device as in the above-mentioned digital processing device.

本発明のさらに別の側面に係るプログラムは、所定のデータの線形処理を行い、第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変換回路が割り当てられる。   A program according to still another aspect of the present invention performs linear processing of predetermined data and outputs a first data having a first number of bits, a plurality of first conversion circuits, and a plurality of second conversions. A program for causing a programmable logic device to function as a digital processing device, comprising: a processing unit having a circuit and converting first data into second data having a first number of bits, wherein the plurality of programmable logic devices And a second part for producing a plurality of second conversion circuits in the programmable logic device. The first part is described using a look-up 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 is 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 using unit data having a third bit number that is N times the second bit number (N is an integer of 2 or more), and the processing unit performs processing For each unit, N first conversion circuits among the plurality of first conversion circuits or N second conversion circuits among the plurality of second conversion circuits are allocated.

このプログラムでは、第1部分は、ルックアップテーブル記述方式を用いて記述され、第2部分は、ブール代数記述方式を用いて記述される。さらに処理部では、処理単位ごとにN個の第1変換回路又はN個の第2変換回路が割り当てられる。そのため、上述のデジタル処理装置と同様に、デジタル処理装置の性能を向上させることが可能となる。   In this program, the first part is described using the look-up 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 becomes possible to improve the performance of the digital processing device as in the above-mentioned digital processing device.

本発明によれば、デジタル処理装置の性能を向上させることが可能となる。   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 a detailed configuration of the linear processing unit of 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 the array conversion process of the array conversion circuit of FIG. 図6は、第2実施形態に係るデジタル処理装置の変形例を示す図である。FIG. 6 is a view showing a modification of the digital processing device according to the second embodiment.

以下、添付図面を参照しながら本発明の実施形態の詳細を説明する。図面の説明において、同一又は同等の要素には同一符号が用いられ、重複する説明は省略される。   The details of the embodiments of the present invention will be described below with reference to the attached drawings. In the description of the drawings, the same reference numerals are used for the same or equivalent elements, and the overlapping description is 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 a detailed configuration of the linear processing unit of FIG. The 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 created using a programmable logic device. As a programmable logic device, for example, an FPGA and a PLD (Programmable Logic Device) are used.

デジタル処理装置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 generation unit 2, a processing unit 3, and a linear processing unit 4. The digital processing device 1 digitally processes input data having a first bit number (64 bits in FIG. 1) by the encryption data generation unit 2, the processing unit 3, and the linear processing unit 4 to obtain the first bit number. Output the output data that it has. In FIG. 1, one encryption data generation unit 2, one processing unit 3, and one linear processing unit 4 are shown, but the digital processing device 1 includes an encryption data generation unit 2, a processing unit 3, and a linear unit. 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 the two circuit units 10 and 10 adjacent to each other, data Dout output from the circuit unit 10 at the previous stage is input as data Din to the circuit unit 10 at the subsequent stage. Ru. Note that bit numbers are assigned in ascending order from LSB (Least Significant Bit; least significant bit) to MSB (Most Significant Bit; most significant bit) to each bit included in the data Din. In the present embodiment, the bit number of the LSB is 0, and the bit number of the MSB is 63. The same applies to data Dout and data D1, D2, D3, and D4 described later.

暗号データ生成部2は、暗号鍵データに基づきデータDinを論理演算する回路である。具体的には、暗号データ生成部2は、データDinと暗号鍵データとのXOR(排他的論理和)を演算する。データDinは、第1ビット数を有するデータである。暗号鍵データは、予め不図示のメモリに記憶されており、メモリから暗号データ生成部2に入力される。暗号鍵データは、不図示の暗号鍵生成回路によって逐次生成され、暗号鍵生成回路から暗号データ生成部2に入力されてもよい。暗号鍵データは、第1ビット数を有する。暗号データ生成部2は、演算結果をデータD1(第1データ)として処理部3に出力する。データD1は、第1ビット数を有するデータである。   The cryptographic data generation unit 2 is a circuit that logically operates the data Din based on the cryptographic key data. Specifically, the cryptographic data generation unit 2 calculates XOR (exclusive OR) of the data Din and the encryption key data. Data Din is data having a first number of bits. The encryption key data is stored in advance in a memory (not shown), and is input to the encryption data generation unit 2 from the memory. The encryption key data may be sequentially generated by an encryption key generation circuit (not shown), and may be input to the encryption data generation unit 2 from the encryption key generation circuit. The encryption key data has a first bit number. The cryptographic 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 the data D1 into data D2 (second data). Data D2 is data having a first bit number. Specifically, the processing unit 3 generates data D2 by performing non-linear conversion processing of the data D1. The processing unit 3 outputs the data D2 to the linear processing unit 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). The plurality of conversion circuits 31 and the 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 a part of data D1 and has a second bit number (4 bits in FIG. 1). The data d1 is data obtained by dividing all the data from the LSB to the MSB of the data D1 in the order of bit numbers in units of the second number of bits. In FIG. 1, the data D1 is configured by the sixteen data d1. Each of the plurality of conversion circuits 31 and each of the plurality of conversion circuits 32 performs conversion processing on the data d1 input thereto, and 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 (look-up table description method) using a look-up table. The conversion circuit 32 is a circuit created based on a description method 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)とも称される。   The conversion circuits 31 and 32 are circuits for converting the data d1. Specifically, conversion circuits 31 and 32 convert data d1 into data d2 (second partial data). Data d2 is a part of data D2 and has a second bit number. Data d2 is data obtained by dividing all the data from the LSB to the MSB of the data D2 in the order of bit numbers in units of the second number of bits. In FIG. 1, the data D2 is configured by the sixteen data d2. The conversion circuits 31 and 32 are logical operation circuits that implement a table reference circuit based on a truth table or the like that defines the relationship between the data d1 and the data d2. The conversion circuits 31 and 32 are also referred to as 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 is selected for each data of the third bit number (16 bits in FIG. 1) that is N times (N is an integer of 2 or more) the second bit number of the data D1. N conversion circuits 32 among the conversion circuits 31 or the plurality of conversion circuits 32 are assigned. In the present embodiment, N = 4. Specifically, in the processing unit 3, the conversion circuit 32 is allocated to each of the four data d1 from the LSB to the fifteenth bit of the data D1. The conversion circuit 31 is assigned to four data d1 of 16th to 31st bits of the data D1. The conversion circuit 32 is assigned to four data d1 from the 32nd to 47th bits of the data D1. The conversion circuit 31 is assigned to four data d1 from the 48th bit to the MSB of the data D1.

線形処理部4は、データD2を線形処理する回路である。線形処理部4は、データD2を線形処理することで、データDoutを生成する。データDoutは、第1ビット数を有するデータである。線形処理部4は、データDoutを回路部10からの出力データとして出力する。線形処理部4は、シャッフル回路41、シフト回路42、及びXOR実行回路43を有する。   The linear processing unit 4 is a circuit that linearly processes the data D2. The linear processing unit 4 generates data Dout by linearly processing the data D2. The data Dout is data having a first bit number. The linear processing unit 4 outputs the data Dout as output data from the circuit unit 10. The linear processing unit 4 includes 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 performs shuffle processing on the data D2. The shuffle process is a process of changing the arrangement order of the plurality of data d2 arranged in parallel included in the data D2. The shuffle circuit 41 shuffles the data D2 to generate data D3. The shuffle circuit 41 outputs the data D3 to the shift circuit 42. Data D3 is data having a first bit number. As shown in FIG. 2, the shuffle circuit 41 has a plurality of (here, four) shuffle circuits 41 a to 41 d (unit processing circuits). Each of the shuffle circuits 41a to 41d is a circuit that performs shuffle processing (linear processing) with unit data having the third bit number as a processing unit. Each of the shuffle circuits 41a to 41d changes the arrangement order of N (here, N = 4) data d2 included in unit data. The shuffle circuits 41a to 41d are arranged in parallel, and each of the shuffle circuits 41a to 41d is assigned to one of the four conversion circuits 31 and the four conversion circuits 32.

具体的には、シャッフル回路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 the four conversion circuits 32, and performs shuffle processing with the four data d2 from the LSB to the fifteenth bit of the data D2 as unit data. The shuffle circuit 41a outputs the shuffle processing result as data d3a to a shift circuit 42a described later. The shuffle circuit 41a places the data d2 from the LSB to the third bit of the data D2 at the eighth to eleventh bit positions in the data d3a, and the fourth to seventh bits of the data D2 Data d2 are arranged at the 12th to 15th bit positions in the data d3a. Shuffle circuit 41a places data d2 from the eighth to eleventh bits of data D2 at the third bit position from the LSB in data d3a to the twelfth to fifteenth bits of data D2 Data d2 are arranged at the fourth to seventh bit positions in 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 performs shuffle processing using 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 a shift circuit 42b described later. The shuffle circuit 41c is assigned to the four conversion circuits 32, and performs shuffle processing using 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 a shift circuit 42c described later. The shuffle circuit 41d is assigned to the four conversion circuits 31, and performs shuffle processing using 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 a shift circuit 42d 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本の線にまとめられて示されている。   Data d3a to d3d are part of data D3 and have a third bit number. Data d3a to d3d are data obtained by dividing all the data from the LSB to the MSB of the data D3 in the unit of the third bit number in the order of bit numbers. In FIG. 2, data D3 is configured by the 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 (in this case, four) pieces of data d2 to be shuffled are different. Do. In the shuffle circuits 41a to 41d shown in FIG. 2, 4-bit data are shown as 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 performs shift processing on the data D3. The shift process is a process of shifting each of the data d3a to d3d included in the data D3 by a predetermined number of bits. The shift circuit 42 shifts the data D3 to generate data D4. The shift circuit 42 outputs the data D4 to the XOR execution circuit 43. Data D4 is data having a first bit number. The shift circuit 42 has a plurality of (here, four) shift circuits 42 a to 42 d (unit processing circuits). The shift circuits 42a to 42d are arranged in parallel and assigned to data d3a to d3d, respectively. Each of the shift circuits 42a to 42d performs left shift processing (linear processing) with 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 (shifts left) using the data d3a as unit data. The left shift is a process of cyclically shifting all the bits contained in the data to be shifted to a predetermined number of bits higher. The shift circuit 42a outputs the shift processing result as data d4a to XOR operation circuits 43a and 43c described later. In the shift process of shift circuit 42a, for example, the bit located in the LSB of data d3a is shifted to the first bit position in data d4a, and the first bit in data d3a is the second in data d4a , And the fifteenth bit of the data d3a is shifted to the bit position of the LSB in the 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 42 b outputs the shift processing result as data d 4 b to an XOR operation circuit 43 b described later. The shift circuit 42 c shifts the data d 3 c to the left by 7 bits, using the data d 3 c as unit data. The shift circuit 42c outputs the shift processing result as data d4c to an XOR operation circuit 43c 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 XOR operation circuits 43b and 43d described later. Data d4a to d4d are part of data D4 and have a third bit number. The data d4a to d4d are data obtained by dividing all the data from the LSB to the MSB of the data D4 in the order of bit numbers in units of the third bit number. In FIG. 2, data D4 is configured by the data d4a to d4d. Note that FIG. 2 shows data d3a to d3d and data d4a to d4d, in which 16 bits of data are grouped 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 an XOR operation process on the data D4. The XOR execution circuit 43 generates data Dout by performing an XOR operation process on the data D4. The XOR execution circuit 43 outputs the data Dout as output data from the circuit unit 10. The XOR execution circuit 43 has a plurality of (here, four) XOR operation circuits 43a to 43d. The XOR operation circuits 43a to 43d are arranged in parallel and assigned to the data d4a to d4d, respectively. Each of the XOR operation circuits 43a to 43d performs an XOR operation process (linear process) on the data d4a to 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 performs an XOR operation of 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 outputs the operation result to the XOR operation circuit 43d. The XOR operation circuit 43b performs an XOR operation on the data d4b and the data d4d. The XOR operation circuit 43b outputs the operation result as data from the 16th to 31st bits of the data Dout, and outputs the operation result to the XOR operation circuit 43a. The XOR operation circuit 43a performs an XOR operation on 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 fifteenth bit of the data Dout. The XOR operation circuit 43d performs an XOR operation on 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 view showing a modification of the digital processing device according to the first embodiment. The digital processing device 1A shown in FIG. 3 differs from the digital processing device 1 shown in FIG. 1 in the assignment of the plurality of conversion circuits 31 and the plurality of conversion circuits 32 in the processing unit 3. Specifically, in the digital processing device 1A, the conversion circuit 31 is allocated to each of the four data d1 from the LSB to the fifteenth bit of the data D1. The conversion circuit 32 is assigned to four data d1 of 16th to 31st bits of the data D1. The conversion circuit 31 is assigned to four data d1 from the 32nd to 47th bits of the data D1. Conversion circuit 32 is assigned to each of four data d1 from the 48th bit to the MSB of data D1.

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

記述工程は、FPGAに応じてデジタル処理装置1が備える回路部10の機能を記述する工程である。具体的には、暗号データ生成部2、処理部3及び線形処理部4のそれぞれの回路機能が、FPGAに応じたハードウェア記述言語によって記述される。回路機能を記述したプログラムは、FPGAに複数の変換回路31を作成するための第1部分と、FPGAに複数の変換回路32を作成するための第2部分とを備える。変換回路31及び変換回路32の回路機能は、真理値表等に基づき入力値に対して一意に出力値が定まるように記述される。   The description process is a process of describing the function of the circuit unit 10 provided in the digital processing device 1 according to the FPGA. Specifically, the circuit functions of the cryptographic data generation unit 2, the processing unit 3 and the linear processing unit 4 are described in a hardware description language corresponding to the FPGA. The program describing the circuit function includes a first part for creating a plurality of conversion circuits 31 in the FPGA and a second part for creating a plurality of conversion circuits 32 in the FPGA. The circuit functions of the conversion circuit 31 and the conversion circuit 32 are described so that the output value is uniquely determined for the input value based on the 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進数で表すことで、入力値及び出力値が一意に対応付けられてもよい。   The circuit functions of the plurality of conversion circuits 31 are described by a look-up table description method. That is, the first part of the program is described using the look-up table description method. Specifically, the 4-bit data d1 value (input value) and the data d2 value (output value) are expressed in hexadecimal numbers, and all hexadecimal input values 0 to F (in binary numbers 0000 to 1111) The circuit functions of the conversion circuits 31 are described so as to uniquely associate hexadecimal output values 0 to F with each other. The circuit function of each conversion circuit 31 associates, for example, B (1011 in binary number) as an output value with an input value of 2 (0010 in binary number), for an input value of 3 (binary number 0011) It is described that 1 (binary number 0001) is associated as an output value. Note that the input value and the output value may be uniquely associated by representing the input value and the output value in decimal.

複数の変換回路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)
The circuit functions of the plurality of conversion circuits 32 are described by the Boolean algebra description system. That is, the second part of the program is described using the Boolean algebraic description system. Specifically, the circuit function of each conversion circuit 32 is described so that each bit of data d2 is represented by a Boolean algebra (logical operation expression) including a plurality of bits of data d1. Assuming that the data d1 is (x3, x2, x1, x0) in binary notation, and the data d2 is (y3, y2, y1, y0) in binary notation, y0 of the data d2 is, for example, the following formula (1) Described by Boolean algebra like. here,! Denotes the negation (NOT) of xn (n is 0 to 3), & denotes the logical product (AND) operation, and | denotes the 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 the 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 so as to output the same value of the data d2 if the values of the data d1 are the same. A program including descriptions of circuit functions of the plurality of conversion circuits 31 and the plurality of conversion circuits 32 is also referred to as a source file. The program in which the circuit function is described is provided by being stored in a storage medium such as a flexible disk, a compact disc-read only memory (CD-ROM), a digital versatile disc (DVD) or a ROM, or a semiconductor memory. Also, the program described above 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 unit 10 is created in the FPGA based on the circuit function described in the above program (creation step). In the creating step, for example, the above-mentioned program is converted into a net list obtained by translating the hardware description language into an intermediate language by a dedicated tool. Then, write data (object file) for writing to the FPGA is created from the netlist. Then, the write data is written to the FPGA by the write tool (configuration), whereby the circuit unit 10 including the processing unit 3 and the linear processing unit 4 in the FPGA is created. The digital processing device 1A is also manufactured in the same manner as the digital processing device 1.

次に、第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 2019092045

Figure 2019092045
Next, verification results of the effects of the digital processing devices 1 and 1A according to the first embodiment will be described. Tables 1 and 2 show the verification results when using Xilinx sp6 (product name) as the FPGA. The first verification example is the verification result in the digital processing device 1 shown in FIG. The second verification example is the verification result in the digital processing device 1A shown in FIG. The first comparative example is a comparison result when all conversion circuits included in the processing unit 3 are created based on the lookup table description method, and the second comparative example is all Boolean conversion description included in the conversion circuits included in the processing unit 3 It is a comparison result at the time of creating based on a system. 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 in the case where each bit of input data and output data of the digital processing device is not assigned to a specific input / output terminal on the FPGA (IO-Floated). Further, Table 2 shows verification results in the case where each bit of 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, select an option that places emphasis on the operating speed in the case of IO-Floated, and an option that places importance on the operating speed but gives a balance with the mounting area in the case of IO-Stuck. , Verified.
Figure 2019092045

Figure 2019092045

表1の評価項目に関し、「LUTs」は、第1検証例、第2検証例、第1比較例及び第2比較例の回路構成を実現するために、FPGAの論理ブロックを構成するルックアップテーブルの使用個数を示し、その単位は個である。「実装面積」は、FPGAに作成された回路の実装面積、ここでは、FPGAの所定数のルックアップテーブル及びフリップフロップで構成されるスライスの使用個数を示し、その単位はスライス数である。「動作速度」は、デジタル処理装置が動作可能な最大の周波数であり、その単位はメガヘルツ(MHz)である。「消費電力」は、動作速度10MHzでのFPGA上に作成された回路で消費される電力を示し、その単位はミリワット(mW)である。   With regard to the evaluation items in Table 1, “LUTs” is a look-up table that configures the logic block 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. Indicates the number of units used and the unit is one. “Mounting area” indicates the mounting area of the circuit created in the FPGA, in this case, the number of used slices of the 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 its unit is megahertz (MHz). “Power consumption” indicates power consumed by a circuit created on an FPGA at an operating speed of 10 MHz, and its unit is milliwatt (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, in the first verification example, the second verification example, the first comparative example, and the second comparative example, the number of look-up tables used on the FPGA was the same. In the case of IO-Floated, in the verification result of the first verification example, the mounting area is smaller than in the first comparative example and the second comparative example, and in the verification result of the second verification example, the operation speed is the first comparative example and It is faster than the second comparative example. On the other hand, in the case of the IO-Stuck, in the verification result of the first verification example, the mounting area becomes smaller compared to the first comparative example and the second comparative example, and the operation speed is further compared to the first comparative example and the second comparative example. It became faster. Further, in the verification result of the second verification example, the mounting area is smaller than that of the first comparative example and the second comparative example, and the operation speed is faster than that of the first comparative example and the second comparative example.

IO−Floatedの場合、第1検証例及び第2検証例の検証結果では、第1比較例及び第2比較例のうちの消費電力が大きい比較例と比べて、消費電力が小さくなった。一方、IO−Stuckの場合、第1検証例の検証結果では、第1比較例及び第2比較例のうちの消費電力が大きい比較例と比べて、消費電力が小さくなった。第2検証例の検証結果では、第1比較例及び第2比較例と比べて、消費電力が小さくなった。以上のことから、第1検証例及び第2検証例では、第1比較例及び第2比較例と比べて、消費電力の大幅な増加をもたらすことなく、性能が向上したことがわかる。   In the case of IO-Floated, in the verification results of the first verification example and the second verification example, the power consumption is smaller than that of the comparative example of the first comparative example and the second comparative example where the power consumption is large. On the other hand, in the case of the IO-Stuck, in the verification result of the first verification example, the power consumption is smaller than that of the comparative example in which the power consumption is large among the first comparative example and the second comparative example. In the verification results of the second verification example, the power consumption is smaller than in the first comparative example and the second comparative example. From the above, it can be seen that in the first verification example and the second verification example, the performance is improved without causing a significant 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 digital processing devices 1 and 1A, each of the shuffle circuits 41a to 41d (unit processing circuits) and each of the shift circuits 42a to 42d (unit processing circuits) are four times the second bit number (4 bits). Linear processing is performed with unit data having a certain third bit number (16 bits) as a processing unit. Further, in the processing unit 3, four conversion circuits 31 or four conversion circuits 32 are allocated to each processing unit. The processing unit 3 mixes the conversion circuits 31 and 32 created based on different description methods, and assigns four conversion circuits 31 and 32 created based on the same description method for each processing unit. Although various circuits created in an FPGA (programmable logic device) are based on being distributed at random and distributed, circuits based on the same description system tend to be placed together. Therefore, by allocating 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 collectively arranged is increased. 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 supplying the four data d2 processed by the shuffle circuit 41a are arranged in a distributed manner, the total wiring length of the lines from the four conversion circuits 32 to the shuffle circuit 41a is It can be large. On the other hand, since the four conversion circuits 32 for supplying the four data d2 processed by the shuffle circuit 41a tend to be arranged collectively, there is a high possibility that the total of the wiring lengths becomes small. This reduces the mounting area of the circuit created in the FPGA and increases the possibility of increasing the processing speed. The same applies to the shuffle circuits 41b to 41d.

シフト回路42a〜42d(単位処理回路)は、データd3a〜d3d(単位データ)を所定ビット数シフトする。シフト回路42aが処理するデータd3aをシャッフル回路41aを介して供給する4個の変換回路32が、分散して配置されている場合、4個の変換回路32からシャッフル回路41aを介してシフト回路42aまでの配線の配線長の合計が大きくなる可能性がある。これに対して、上記4個の変換回路32は、まとまって配置される傾向があるので、上記配線長の合計が小さくなる可能性が高まる。これにより、FPGAに作成される回路の実装面積が低減され、処理速度が速くなる可能性が高まる。シフト回路42b〜42dについても同様である。   The shift circuits 42a to 42d (unit processing circuits) shift the data d3a to d3d (unit data) by a predetermined number of bits. When the four conversion circuits 32 supplying data d3a processed by the shift circuit 42a via the shuffle circuit 41a are distributed, the four conversion circuits 32 via the shuffle circuit 41a shift circuit 42a. The total of the wire lengths of the wires up to the point may be large. On the other hand, since the four conversion circuits 32 tend to be arranged collectively, the possibility that the total of the wiring lengths becomes small increases. This reduces the mounting area of the circuit created in the FPGA and increases the possibility of increasing the processing speed. The same applies to the shift circuits 42b to 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 non-linear conversion processing. Therefore, it is possible to make it difficult to deduce 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 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 is different from the digital processing device 1 according to the first embodiment in that the first bit number of input data and output data is 48 bits, and in place of the processing unit 3 and the linear processing unit 4 , And in that 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 encryption data generation unit 2 performs an XOR operation on 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 bit number. In the present embodiment, the bit number of the MSB in the data Din is the 47th. The same applies to data D1 and data D5, D6, D7, and Dout 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 a first number of bits. The linear processing unit 6 includes an array conversion circuit 61, an XOR execution circuit 62, and a replacement 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. The array conversion process is a process of changing the array of a plurality of bits included in the data D1. The array conversion circuit 61 generates data D5 by performing an array conversion process of the data D1. The array conversion circuit 61 outputs the data D5 to the XOR execution circuit 62. Data D5 is data having a first bit number.

図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 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 having the bit number m of the data D1 from the 16th to the 31st at the {3 × (m−16) +1} th bit position in the data D5. The array conversion circuit 61 arranges each bit of the bit number m of the data D1 from the 32nd to the 47th 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 an XOR operation process on the data D5. The XOR execution circuit 62 generates data D6 by performing an XOR operation process on the data D5. The XOR execution circuit 62 outputs the data D6 to the substitution circuit 63. Data D6 is data having a first number of bits. The XOR execution circuit 62 includes an XOR operation circuit 62a. The XOR operation circuit 62a is assigned to data d51 from the LSB to the fifth bit of the data D5. The XOR operation circuit 62a performs an XOR operation process (linear process) on the data d51. The XOR operation circuit 62a outputs the operation result as data d61 to the replacement circuit 63. The XOR execution circuit 62 outputs the data d52 from the sixth bit of the data D5 to the MSB 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 bit number (here, 6 bits). Data d52 is a part of data D5. The data D5 is composed of the data d51 and the data d52. Data d61 is a part of data D6 and has a third bit number. Data d62 is part of data D6. The data d6 is composed of the data d61 and the 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) performs an XOR operation of the data d51 and the round constant data. The XOR operation circuit 62a performs XOR operation processing (linear processing) with data d51 having a third bit number which is N times (N is an integer of 2 or more) the second bit number as unit data. In the present embodiment, N = 2. 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 may be 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 in 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 a replacement process on the data D6. The replacement process is a process of mutually replacing the bit position of each bit included in data having the second bit number (here, 3 bits) of the data D6. The substitution circuit 63 generates data D7 by performing substitution processing on data D6. Replacement circuit 63 outputs data D7 to processing unit 7. Data D7 is data having a first bit number. The substitution circuit 63 has a plurality of (in this case, sixteen) individual substitution circuits 64. The plurality of individual replacement circuits 64 are arranged in parallel, and each of the plurality of individual replacement circuits 64 is sequentially assigned from the LSB for each data having the second bit number in the data D6. The individual replacement circuit 64 performs a replacement process (linear process) on the data having the second bit number of 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 interchanges the bit positions of the bits of the data input to the individual replacement circuit 64 in accordance with the 2-bit round key. The round key is stored in advance in a memory (not shown), and is input to each individual replacement circuit 64 from the memory. The round keys may be sequentially generated by a round key generation circuit (not shown), and may be input from the round key generation circuit to each individual replacement circuit 64. The round key may have different values in each of the plurality of circuit units 10 included in the digital processing device 5. The individual substitution circuit 64 changes the bit positions of each bit differently depending on the value of the round key. For example, when the value of the 2-bit round key is (0, 1), the individual replacement circuit 64 converts 3-bit data (p2, p1, p0) input to the individual replacement circuit 64 into bit positions of each bit. Are replaced with the replaced data (p1, p2, p0). When the value of the round key is (1, 0), the individual replacement circuit 64 replaces the data (p2, p1, p0) with the 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 substitution circuit 64 generates data d7 (first partial data) by performing substitution processing. Each individual replacement circuit 64 outputs the data d7 to the conversion circuit 31 or the conversion circuit 32. Data d7 is part of data D7 and has a second bit number. The plurality of data d7 is data obtained by dividing all the data from the LSB to the MSB of the data D7 in the order of bit numbers in units of the second number of bits. In FIG. 4, the data D <b> 7 is configured by the sixteen data d <b> 7.

処理部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 the data D7 into data Dout (second data). Data Dout is data having a first number of bits. Specifically, the processing unit 7 generates data Dout by performing non-linear conversion processing of 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 performs conversion processing on the data d7 input thereto, and the processing unit 7 converts the data D7 into 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 convert data d7 to generate data dout (second partial data). The data dout has a second bit number. The data dout is part of data Dout. The plurality of data dout are data obtained by dividing all the data from the LSB to the MSB of the data Dout in the order of bit numbers in units of the second number of bits. In FIG. 4, the data Dout is composed of 16 pieces of data dout.

処理部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 of the plurality of conversion circuits 31 (here, N = 2) for each data of the third bit number N times (here, N = 2) the second bit number in the data D 7 Of the plurality of conversion circuits 32 (here, N = 2) among the plurality of conversion circuits 32 are allocated. Specifically, in the processing unit 7, the conversion circuit 31 is allocated to two data d7 from the LSB to the fifth bit of the data D7. The conversion circuit 31 is assigned to each of the two data d7 from the sixth to the eleventh bits of the data D7. The conversion circuit 31 is assigned to two data d7 of the 12th to 17th bits of the data D7. The conversion circuit 31 is assigned to two data d7 from the eighteenth to twenty-third 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. The conversion circuit 32 is assigned to two pieces of data d7 from the 30th bit to the 35th bit of the data D7. The conversion circuit 32 is assigned to two data d7 from the 36th to the 41st bit of the data D7. Conversion circuit 32 is assigned to two data d7 from the 42nd bit of data D7 to the MSB.

図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 view showing a modification of the digital processing device according to the second embodiment. The digital processing device 5A shown in FIG. 6 is different from the digital processing device 5 shown in FIG. 4 in the assignment of the plurality of conversion circuits 31 and the plurality of conversion circuits 32 in the processing unit 7. 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. The conversion circuit 32 is assigned to two data d7 of the sixth to eleventh bits of the data D7. The conversion circuit 31 is assigned to two data d7 of the 12th to 17th bits of the data D7. The conversion circuit 32 is assigned to two data d7 of 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, the conversion circuit 31 is allocated to the two data d7 from the 24th to the 29th bit of the data D7. The conversion circuit 32 is assigned to two pieces of data d7 from the 30th to 35th bits of the data D7. The conversion circuit 31 is assigned to two pieces of data d7 from the 36th to 41st bits of the data D7. Conversion circuit 32 is assigned to two data d7 from the 42nd bit of data D7 to the MSB.

第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 an FPGA in the same manner as the digital processing devices 1 and 1A according to the first embodiment. In the manufacture of the digital processing devices 5 and 5A, the circuit functions of the circuit unit 10 including the linear processing unit 6 and the processing unit 7 in the hardware description language, as in the manufacture of the digital processing devices 1 and 1A according to the first embodiment. The described 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 2019092045

Figure 2019092045
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 verification results when using Xilinx sp6 (product name) as an FPGA. The third verification example is the verification result in the digital processing device 5 shown in FIG. The fourth verification example is a verification result in the digital processing device 5A shown in FIG. The third comparative example is a comparison result when all conversion circuits included in the processing unit 7 are created based on the lookup table description method, and the fourth comparative example is all Boolean conversion description included in the conversion circuits included in the processing unit 7 It is a comparison result at the time of creating based on a system. 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 in the case of IO-Floated, and Table 4 shows the verification results in the case of IO-Stuck. As an optimization option of the circuit synthesis, verification was performed by selecting an option in which the operating speed is emphasized in both of IO-Floated and IO-Stuck but the balance with the mounting area is also taken into consideration.
Figure 2019092045

Figure 2019092045

表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, in the third verification example, the fourth verification example, the third comparative example, and the fourth comparative example, the number of look-up tables used on the FPGA was the same. In the case of IO-Floated, in the verification result of the third verification example, the mounting area is smaller than in the third comparative example and the fourth comparative example, and the operation speed is faster than in the third comparative example and the fourth comparative example. became. According to the verification result of the fourth verification example, the mounting area is smaller than that of the third comparative example and the fourth comparative example, and the operation speed is faster than that of the third comparative example and the fourth comparative example. On the other hand, in the case of the IO-Stuck, in the verification result of the third verification example, the mounting area becomes smaller compared to the third comparative example and the fourth comparative example, and the operation speed is further compared to the third comparative example and the fourth comparative example. It became faster. Further, in the verification result of the fourth verification example, the operation speed is faster than that of the third comparative example and the fourth comparative example.

IO−Floatedの場合、第3検証例の検証結果では、第3比較例及び第4比較例のうちの消費電力が大きい比較例と比べて、消費電力が小さくなった。第4検証例の検証結果では、第3比較例及び第4比較例と比べて、消費電力が小さくなった。一方、IO−Stuckの場合、第3検証例及び第4検証例の検証結果では、第3比較例及び第4比較例と比べて、消費電力が小さくなった。以上のことから、第3検証例及び第4検証例では、第3比較例及び第4比較例と比べて、消費電力の大幅な増加をもたらすことなく、性能が向上したことがわかる。   In the case of IO-Floated, in the verification result of the third verification example, the power consumption is smaller than that of the comparative example in which the power consumption is large among the third comparative example and the fourth comparative example. In the verification result of the fourth verification example, the power consumption is smaller than in the third comparative example and the fourth comparative example. On the other hand, in the case of the IO-Stuck, in the verification results of the third verification example and the fourth verification example, the power consumption is smaller than in 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 is improved without causing a significant 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 digital processing devices 5 and 5A, the XOR operation circuit 62a (unit processing circuit) processes unit data having a third bit number (6 bits) which is twice the second bit number (3 bits). Perform linear processing as Further, in the processing unit 7, two conversion circuits 31 (first conversion circuits) or two conversion circuits 32 (second conversion circuits) are allocated to each processing unit in the XOR operation circuit 62a (unit processing circuit). The processing unit 7 mixes the conversion circuits 31 and 32 created based on different description methods, and assigns two conversion circuits 31 and 32 created based on the same description method for each processing unit. Although various circuits created in an FPGA (programmable logic device) are based on being distributed at random and distributed, circuits based on the same description system tend to be placed together. For this reason, by allocating two conversion circuits 31 and 32 created based on the same description method for each processing unit, the possibility that two conversion circuits 31 and 32 are collectively arranged is increased. 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 operation circuit 62a (unit processing circuit) performs an XOR operation on unit data and data having a third bit number (round key). Data based on the processing result of the XOR operation circuit 62a is input to two conversion circuits 31 allocated for each processing unit. When these two conversion circuits 31 are arranged in a distributed manner, the total of the wiring lengths of the wirings from the XOR operation circuit 62a to the two conversion circuits 31 via the replacement circuit 63 may be large. is there. On the other hand, since the two conversion circuits 31 tend to be arranged collectively, the possibility that the total of the wiring lengths becomes small increases. This reduces the mounting area of the circuit created in the FPGA and increases the possibility of increasing the processing speed.

なお、本発明に係るデジタル処理装置、デジタル処理装置の製造方法及びプログラムは上記実施形態に限定されない。   Note that the digital processing device, the method of manufacturing the digital processing device, and the program according to the present invention are not limited to the above embodiment.

上記第1実施形態及び第2実施形態では、処理部3,7では、合計で同じ個数の変換回路31及び変換回路32が割り当てられているが、これに限られない。処理部3,7に複数の変換回路31及び複数の変換回路32が含まれていれば、変換回路31の個数と変換回路32の個数とは同じでなくてもよい。   In the first and second embodiments, in the processing units 3 and 7, the same number of conversion circuits 31 and conversion circuits 32 in total are allocated, 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 non-linear conversion processing, the present invention is not limited to this. The processing unit 3 may perform linear conversion processing of the data D1, and the processing unit 7 may perform linear conversion processing of 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 only need to perform linear processing with unit data having a third bit number which is N times (N is an integer of 2 or more) the second bit number. In the processing units 3 and 7, N conversion circuits 31 or N conversion circuits 32 may be allocated to each processing unit.

デジタル処理装置1,1A,5,5Aは、暗号処理を行うための装置であるが、これに限られない。デジタル処理装置1,1A,5,5Aは、フィルタ係数をテーブル参照回路によって読み取る信号処理装置であってもよい。その他、デジタル処理装置1,1A,5,5Aは、入力データの値を、入力データの値と異なる値を有する出力データに変換するテーブル参照処理を行う回路を備える装置であればよい。   The digital processing devices 1, 1A, 5, 5A are devices for performing cryptographic processing, but are not limited thereto. The digital processors 1, 1A, 5, 5A may be signal processors that read the filter coefficients by means of 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 reference 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 device 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データのうちの前記第2ビット数を有する第2部分データに変換し、
前記線形処理部は、前記第2ビット数のN倍(Nは2以上の整数)である第3ビット数を有する単位データを処理単位として線形処理を行う単位処理回路を有し、
前記処理部では、前記処理単位ごとに、前記複数の第1変換回路のうちのN個の第1変換回路又は前記複数の第2変換回路のうちのN個の第2変換回路が割り当てられる、
デジタル処理装置。
A digital processing device created using a programmable logic device, comprising:
A processing unit for converting 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 of the second data;
Equipped with
The processing unit includes 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,
Each of the plurality of first conversion circuits and each of the plurality of second conversion circuits includes first partial data having a second number of bits of the first data and the second partial data of the second data. Convert to second partial data with bit number,
The linear processing unit has a unit processing circuit that performs 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).
In the processing unit, N first conversion circuits among the plurality of first conversion circuits or N second conversion circuits among the plurality of second conversion circuits are allocated to each of the processing units,
Digital processing unit.
前記単位処理回路は、前記単位データに含まれるN個の前記第2部分データの並び順を変更する、
請求項1に記載のデジタル処理装置。
The unit processing circuit changes the arrangement order of the N pieces of second partial data included in the unit data.
A digital processing device according to claim 1.
前記単位処理回路は、前記単位データを所定ビット数シフトする、
請求項1に記載のデジタル処理装置。
The unit processing circuit shifts the unit data by a predetermined number of bits.
A digital processing device according to claim 1.
プログラマブル論理デバイスを用いて作成されたデジタル処理装置であって、
所定のデータの線形処理を行い、第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 created using a programmable logic device, comprising:
A linear processing unit which performs linear processing of predetermined data and outputs first data having a first number of bits;
A processing unit for converting the first data into second data having the first number of bits;
Equipped with
The processing unit includes 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,
Each of the plurality of first conversion circuits and each of the plurality of second conversion circuits includes first partial data having a second number of bits of the first data and the second partial data of the second data. Convert to second partial data with bit number,
The linear processing unit has a unit processing circuit that performs 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).
In the processing unit, N first conversion circuits among the plurality of first conversion circuits or N second conversion circuits among the plurality of second conversion circuits are allocated to each of the processing units,
Digital processing unit.
前記単位処理回路は、前記単位データと、前記第3ビット数を有するデータとの排他的論理和を演算する、
請求項4に記載のデジタル処理装置。
The unit processing circuit calculates an exclusive OR of the unit data and the data having the third bit number.
The digital processing device 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 performs non-linear conversion processing.
The digital processing device according to any one of claims 1 to 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変換回路の回路機能が記述される、
デジタル処理装置の製造方法。
A processing unit which 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; And a linear processing unit for performing linear processing.
A description step of describing circuit functions of the processing unit and the linear processing unit according to a programmable logic device;
A creating step of creating the processing unit and the linear processing unit in the programmable logic device based on the circuit function;
Equipped with
Each of the plurality of first conversion circuits and each of the plurality of second conversion circuits includes first partial data having a second number of bits of the first data and the second partial data of the second data. Convert to second partial data with bit number,
The linear processing unit has a unit processing circuit that performs 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).
In the processing unit, N first conversion circuits among the plurality of first conversion circuits or N second conversion circuits among the plurality of second conversion circuits are allocated to each of the processing units,
In the description step, circuit functions of the plurality of first conversion circuits are described by a look-up table description method, and circuit functions of the plurality of second conversion circuits are described by a Boolean algebra description method.
Method of manufacturing 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変換回路の回路機能が記述される、
デジタル処理装置の製造方法。
A linear processing unit that performs linear processing of 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 processing unit for converting data into second data having a first number of bits;
A description step of describing circuit functions of the processing unit and the linear processing unit according to a programmable logic device;
A creating step of creating the processing unit and the linear processing unit in the programmable logic device based on the circuit function;
Equipped with
Each of the plurality of first conversion circuits and each of the plurality of second conversion circuits includes first partial data having a second number of bits of the first data and the second partial data of the second data. Convert to second partial data with bit number,
The linear processing unit has a unit processing circuit that performs 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).
In the processing unit, N first conversion circuits among the plurality of first conversion circuits or N second conversion circuits among the plurality of second conversion circuits are allocated to each of the processing units,
In the description step, circuit functions of the plurality of first conversion circuits are described by a look-up table description method, and circuit functions of the plurality of second conversion circuits are described by a Boolean algebra description method.
Method of manufacturing digital processing device.
複数の第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 processing unit which 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 including 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 conversion circuits in the programmable logic device;
Equipped with
The first part is described using a look-up table description method,
The second part is described using a Boolean algebra description system,
Each of the plurality of first conversion circuits and each of the plurality of second conversion circuits includes first partial data having a second number of bits of the first data and the second partial data of the second data. Convert to second partial data with bit number,
The linear processing unit has a unit processing circuit that performs 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).
In the processing unit, N first conversion circuits among the plurality of first conversion circuits or N second conversion circuits among the plurality of second conversion circuits are allocated to each of the processing units,
program.
所定のデータの線形処理を行い、第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変換回路が割り当てられる、
プログラム。
A linear processing unit that performs linear processing of 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 data into second data having a first number of bits,
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 conversion circuits in the programmable logic device;
Equipped with
The first part is described using a look-up table description method,
The second part is described using a Boolean algebra description system,
Each of the plurality of first conversion circuits and each of the plurality of second conversion circuits includes first partial data having a second number of bits of the first data and the second partial data of the second data. Convert to second partial data with bit number,
The linear processing unit has a unit processing circuit that performs 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).
In the processing unit, N first conversion circuits among the plurality of first conversion circuits or N second conversion circuits among the plurality of second conversion circuits are allocated to each of the processing units,
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 true JP2019092045A (en) 2019-06-13
JP7296609B2 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 (7)

* 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
JP2002023622A (en) * 2000-07-12 2002-01-23 Toshiba Corp Encryption device, decryption device, extended key generation device, extended key generation method, 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 Arithmetic processing device, arithmetic 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

Patent Citations (7)

* 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
JP2002023622A (en) * 2000-07-12 2002-01-23 Toshiba Corp Encryption device, decryption device, extended key generation device, extended key generation method, 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 Arithmetic processing device, arithmetic 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号, vol. 第44巻, JPN6022027083, JP, ISSN: 0004955245 *

Also Published As

Publication number Publication date
JP7296609B2 (en) 2023-06-23

Similar Documents

Publication Publication Date Title
CA2633923C (en) Mixed radix number generator with chosen statistical artifacts
Farashahi et al. FPGA based fast and high-throughput 2-slow retiming 128-bit AES encryption algorithm
JP2009003925A (en) Extension of repetition period of random sequence
CN1291744A (en) Extended secret key generator, encryption/decryption element, extended secret key producing method and storage medium
JP2013534336A (en) Bit sequence generator
CN1516385A (en) Data flow generating program and storage medium enciphered data item flow signal and recording carrier
US7801307B2 (en) Method of symmetric key data encryption
Al-Shatari et al. An efficient implementation of LED block cipher on FPGA
JPWO2006098015A1 (en) Data conversion apparatus and data conversion method
JP2019092045A (en) Digital processing device, manufacturing method of digital processing device, and program
JP2017058501A (en) Hash function calculation device and method
JP2950485B2 (en) Stream cipher processor
JP7570899B2 (en) Multi-bit Gray code generator
Barrera et al. A fast implementation of the rijndael substitution box for cryptographic aes
Bhaskar et al. A survey on implementation of random number generator in FPGA
CN115037485B (en) Method, device and equipment for realizing lightweight authentication encryption algorithm
US20030068038A1 (en) Method and apparatus for encrypting data
Ma et al. A pseudo-random sequence generation scheme based on RNS and permutation polynomials
TWI662471B (en) Multi-bit true random number generation device and generation method thereof
JP3917357B2 (en) Non-linear conversion method, computer-readable recording medium storing program, and non-linear conversion device
JPH11237973A (en) Multiplier
Dubrova A method for generating full cycles by a composition of NLFSRs
JP6162429B2 (en) Hierarchical arithmetic circuit
CN116225371B (en) Random permutation generator and distributed particle filtering method and accelerator based on it
JP4595055B2 (en) Galois field α multiplication circuit and arithmetic circuit

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