JP5037876B2 - Encryption processing apparatus and decryption processing apparatus - Google Patents

Encryption processing apparatus and decryption processing apparatus Download PDF

Info

Publication number
JP5037876B2
JP5037876B2 JP2006223158A JP2006223158A JP5037876B2 JP 5037876 B2 JP5037876 B2 JP 5037876B2 JP 2006223158 A JP2006223158 A JP 2006223158A JP 2006223158 A JP2006223158 A JP 2006223158A JP 5037876 B2 JP5037876 B2 JP 5037876B2
Authority
JP
Japan
Prior art keywords
processing
block data
substitution
sub
performs
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.)
Expired - Fee Related
Application number
JP2006223158A
Other languages
Japanese (ja)
Other versions
JP2008046466A (en
Inventor
大輔 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2006223158A priority Critical patent/JP5037876B2/en
Publication of JP2008046466A publication Critical patent/JP2008046466A/en
Application granted granted Critical
Publication of JP5037876B2 publication Critical patent/JP5037876B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、暗号アルゴリズムを処理する回路に係り、小規模の回路面積で、高速な処理を実現する暗号処理装置及び復号処理装置を提供するための回路構成および処理方式に関するものである。   The present invention relates to a circuit for processing an encryption algorithm, and relates to a circuit configuration and a processing method for providing an encryption processing device and a decryption processing device that realize high-speed processing with a small circuit area.

一般に、電子商取引やネットワーク通信等では安全性を確保するために暗号化通信が行われる。
例えば、携帯電話システムでは携帯端末と基地局間で認証処理及び暗号化通信が行われている。
また、VPN(Virtual Private Network)のようなネットワーク間で安全性を確保するためのシステムにおいても、システムを構成するルータ等の装置内において、暗号化処理が行われる。
前記で例として挙げた装置では、通常暗号処理専用の演算回路を装置内に組み込むことにより、処理性能とコストの問題を解決する。
例えば、AES(Advanced Encryption Standard)暗号(FIPS−197)の処理回路として、特開2004−233427号公報では、1個のS−boxテーブル(換字テーブル)で演算を行うアーキテクチャが開示されている。
また、特開2003−288009号公報や特開平5−249891号公報ではDES(Data Encryption Standard)暗号(FIPS46−3)の段関数毎にラッチを挿入しパイプライン動作をさせることにより高速処理を行うアーキテクチャが開示されている。
特開2004−233427号公報 特開2003−288009号公報 特開平5−249891号公報
Generally, in electronic commerce, network communication, etc., encrypted communication is performed to ensure safety.
For example, in a mobile phone system, authentication processing and encrypted communication are performed between a mobile terminal and a base station.
Also, in a system such as a VPN (Virtual Private Network) for ensuring safety between networks, encryption processing is performed in a device such as a router constituting the system.
In the apparatus mentioned as an example above, the processing performance and cost problems are solved by incorporating an arithmetic circuit exclusively for cryptographic processing into the apparatus.
For example, as a processing circuit for AES (Advanced Encryption Standard) encryption (FIPS-197), Japanese Patent Application Laid-Open No. 2004-233427 discloses an architecture that performs an operation with one S-box table (substitution table).
In Japanese Patent Application Laid-Open No. 2003-288209 and Japanese Patent Application Laid-Open No. 5-249891, high-speed processing is performed by inserting a latch for each stage function of the DES (Data Encryption Standard) cipher (FIPS46-3) and performing a pipeline operation. An architecture is disclosed.
JP 2004-233427 A JP 2003-288209 A JP-A-5-249891

以下、従来技術における課題について説明する。
例えば、特開2004−233427号公報では、1サイクルで処理可能な換字処理が、特開2004−184567号公報に開示されている暗号アルゴリズムにおける段関数を実装する一般的なアーキテクチャと比較すると、処理可能なバイト数が少なく、暗号アルゴリズム全体を処理するために必要なサイクル数が増加する。
また、特開2004−233427号公報及び特開2004−184567号公報のアーキテクチャはすくなくとも、換字処理分の回路遅延を必要とする。このため、動作周波数はどちらのアーキテクチャでも差異は小さく、所要サイクル数の少ない特開2004−184567号公報がより高速に動作するといえる。
一方で、段関数をすべて実装する特開2004−184567号公報は特開2004−233427号公報より多くの回路面積を必要とする。
また、特開2003−288009号公報や特開平5−249891号公報等の段関数毎にラッチを挿入しパイプライン動作をさせるアーキテクチャは、高速動作が可能であるが、非常に多くの回路面積を必要とする。
さらに、高速動作を行う条件として、複数ブロックの入力データを並列処理することを前提としており、複数ブロックのデータが連続して入力されないようなシステムでは、並列処理が行えず高速化の効果が得られない。
Hereinafter, problems in the prior art will be described.
For example, in Japanese Patent Laid-Open No. 2004-233427, substitution processing that can be processed in one cycle is compared with a general architecture that implements a stage function in a cryptographic algorithm disclosed in Japanese Patent Laid-Open No. 2004-184567. Fewer bytes are possible, increasing the number of cycles required to process the entire cryptographic algorithm.
In addition, the architectures of Japanese Patent Application Laid-Open Nos. 2004-233427 and 2004-184567 require at least a circuit delay for substitution processing. For this reason, it can be said that the operating frequency is small in either architecture, and that Japanese Patent Laid-Open No. 2004-184567 with a small number of required cycles operates at a higher speed.
On the other hand, Japanese Patent Application Laid-Open No. 2004-184567 that implements all the stage functions requires a larger circuit area than Japanese Patent Application Laid-Open No. 2004-233427.
In addition, an architecture that inserts a latch for each stage function such as Japanese Patent Application Laid-Open No. 2003-28809 and Japanese Patent Application Laid-Open No. 5-249891 can operate at high speed, but it has a very large circuit area. I need.
Furthermore, it is assumed that multiple blocks of input data are processed in parallel as a condition for high-speed operation. In a system where multiple blocks of data are not input continuously, parallel processing cannot be performed and the speed-up effect is obtained. I can't.

本発明は以上のような技術的課題を鑑みてなされたものであり、その主な目的は、小規模な回路構成で、複数ブロックのデータが連続して入力されないようなシステムにおいても高速動作が可能な暗号処理回路及び復号処理回路を提供することにある。   The present invention has been made in view of the technical problems as described above. The main object of the present invention is to achieve high-speed operation even in a system in which a plurality of blocks of data are not continuously input with a small circuit configuration. An object is to provide a possible encryption processing circuit and decryption processing circuit.

本発明に係る暗号処理装置は、
複数のサブブロックデータで構成されるブロックデータに対して複数の内部工程を実施して換字処理を行う換字処理部と複数の内部工程を実施して転置処理を行う転置処理部とが含まれる暗号処理装置であって、
前記換字処理部及び前記転置処理部のうちの少なくともいずれかが、サブブロックデータ単位のパイプライン処理を行って複数の内部工程を実施し、同一のブロックデータに含まれる複数のサブブロックデータに対して並列処理を行うことを特徴とする。
The cryptographic processing apparatus according to the present invention includes:
A cipher including a substitution processing unit for performing substitution processing by performing a plurality of internal processes on block data composed of a plurality of sub-block data, and a transposition processing unit for performing transposition processing by performing a plurality of internal processes A processing device comprising:
At least one of the substitution processing unit and the transposition processing unit performs pipeline processing in units of sub-block data to perform a plurality of internal processes, and a plurality of sub-block data included in the same block data And performing parallel processing.

本発明に係る復号処理装置は、
複数のサブブロックデータで構成されるブロックデータに対して複数の内部工程を実施して換字処理を行う換字処理部と複数の内部工程を実施して転置処理を行う転置処理部とが含まれる復号処理装置であって、
前記換字処理部及び前記転置処理部のうちの少なくともいずれかが、サブブロックデータ単位のパイプライン処理を行って複数の内部工程を実施し、同一のブロックデータに含まれる複数のサブブロックデータに対して並列処理を行うことを特徴とする。
The decryption processing device according to the present invention comprises:
Decoding includes a substitution processing unit that performs substitution processing by performing a plurality of internal processes on block data composed of a plurality of sub-block data, and a transposition processing unit that performs transposition processing by performing a plurality of internal processes A processing device comprising:
At least one of the substitution processing unit and the transposition processing unit performs pipeline processing in units of sub-block data to perform a plurality of internal processes, and a plurality of sub-block data included in the same block data And performing parallel processing.

本発明によれば、換字処理及び転置処理の少なくともいずれかにおいて、サブブロックデータ単位のパイプライン処理を行い、同一のブロックデータに含まれる複数のサブブロックデータに対して並列処理を行うことができるため、小規模な回路構成で、複数のブロックデータが連続して入力されないようなシステムにおいても高速動作が可能である。   According to the present invention, pipeline processing in units of sub-block data can be performed in at least one of substitution processing and transposition processing, and parallel processing can be performed on a plurality of sub-block data included in the same block data. Therefore, high-speed operation is possible even in a system in which a plurality of block data are not continuously input with a small circuit configuration.

実施の形態1.
以下、本実施の形態を図面を参照しながら説明する。
図1は、AES暗号の処理を例とした暗号処理回路(暗号処理装置)の基本構成図である。
なお、図1では、暗号処理回路を示すが、同様の構成にて復号処理回路も実現可能である。また、図2及び図3についても、暗号処理回路の内部構成として説明しているが、復号処理回路の内部構成としても適用可能である。
図1において、暗号処理回路(100)は外部入力として入力データと鍵データのポートを持ち、外部出力として出力データのポートを持つ。
Embodiment 1 FIG.
Hereinafter, the present embodiment will be described with reference to the drawings.
FIG. 1 is a basic configuration diagram of an encryption processing circuit (encryption processing apparatus) taking AES encryption processing as an example.
Although FIG. 1 shows an encryption processing circuit, a decryption processing circuit can be realized with the same configuration. 2 and 3 have been described as the internal configuration of the encryption processing circuit, but can also be applied as the internal configuration of the decryption processing circuit.
In FIG. 1, the cryptographic processing circuit (100) has a port for input data and key data as external inputs, and a port for output data as external outputs.

また、暗号処理回路(100)は、ランダマイズ部処理回路(101)と拡大鍵生成部処理回路(102)で構成される。
拡大鍵生成部処理回路(102)は、ランダマイズ部処理回路(101)に対して換字処理入力と拡大鍵を入力し、ランダマイズ部処理回路(101)の出力である換字処理結果を受け取る。
なお、ランダマイズ部処理回路(101)は、ランダマイズ処理部の例であり、拡大鍵生成部処理回路(102)は、拡大鍵生成処理部の例である。
The cryptographic processing circuit (100) includes a randomizing unit processing circuit (101) and an extended key generation unit processing circuit (102).
The extended key generation unit processing circuit (102) inputs the substitution processing input and the expansion key to the randomization unit processing circuit (101), and receives the substitution processing result that is the output of the randomization unit processing circuit (101).
The randomization unit processing circuit (101) is an example of a randomization processing unit, and the extended key generation unit processing circuit (102) is an example of an extended key generation processing unit.

図2に、ランダマイズ部処理回路(101)の内部構成を示す。
セレクタ1(201)は、入力データと鍵加算回路(212)の出力を選択する。
データレジスタ(202)は、セレクタ1(201)からの出力である32ビットごとのワードデータを格納し、128ビットのブロックデータを出力する。
セレクタ2(203)は、データレジスタ(202)の出力をワードデータ毎に選択する。
セレクタ3(204)は、セレクタ2(203)の出力であるワードデータをバイトデータ毎に選択する。
セレクタ4(205)は、セレクタ3(204)の出力と拡大鍵生成部処理回路(102)から入力される換字処理入力を選択する。
換字処理回路(206)は、AES暗号のSubByte処理を行う。換字処理回路(206)は、換字処理部の例である。換字処理回路(206)には、内部工程を時分割処理するためのパイプラインレジスタ(207)が含まれている。図2の例では、4段のパイプラインレジスタが含まれている。
中間レジスタ(208)は、換字処理回路(206)の出力であるバイトデータをワードデータ毎に格納する。
転置処理回路(209)は、換字処理回路(206)及びAES暗号におけるMixColumns及びInvMixColumns処理を行う。転置処理回路(209)は、転置処理部の例である。転置処理回路(209)には、内部工程を時分割処理するためのパイプラインレジスタ(207)が含まれている。図2の例では、2段のパイプラインレジスタ(207)が含まれている。
セレクタ5(210)は、中間レジスタ(208)の出力及びセレクタ2(203)の出力を選択する。
セレクタ6(211)は、転置処理回路(209)及びセレクタ5(210)の出力を選択する。
鍵加算回路(212)は、セレクタ6(211)の出力と拡大鍵にAES暗号におけるAddRoundKey処理を行う。
FIG. 2 shows an internal configuration of the randomizing unit processing circuit (101).
The selector 1 (201) selects the input data and the output of the key addition circuit (212).
The data register (202) stores word data for every 32 bits, which is an output from the selector 1 (201), and outputs 128-bit block data.
The selector 2 (203) selects the output of the data register (202) for each word data.
The selector 3 (204) selects the word data that is the output of the selector 2 (203) for each byte data.
The selector 4 (205) selects the substitution processing input input from the output of the selector 3 (204) and the extended key generation unit processing circuit (102).
The substitution processing circuit (206) performs AES encryption SubByte processing. The substitution processing circuit (206) is an example of a substitution processing unit. The substitution processing circuit (206) includes a pipeline register (207) for time-sharing internal processes. In the example of FIG. 2, a four-stage pipeline register is included.
The intermediate register (208) stores byte data, which is an output of the substitution processing circuit (206), for each word data.
The transposition processing circuit (209) performs MixColumns and InvMixColumns processing in the substitution processing circuit (206) and the AES cipher. The transposition processing circuit (209) is an example of a transposition processing unit. The transposition processing circuit (209) includes a pipeline register (207) for time-sharing internal processes. In the example of FIG. 2, a two-stage pipeline register (207) is included.
The selector 5 (210) selects the output of the intermediate register (208) and the output of the selector 2 (203).
The selector 6 (211) selects the outputs of the transposition processing circuit (209) and the selector 5 (210).
The key addition circuit (212) performs AddRoundKey processing in AES encryption on the output of the selector 6 (211) and the expanded key.

図3に、拡大鍵生成部処理回路(102)の内部構成を示す。
セレクタ1(301)は、鍵データとセレクタ2(305)の出力を選択する。
鍵レジスタ(302)は、セレクタ1(301)からの出力である32ビットごとのワードデータを格納し、128ビットの鍵データを出力する。
拡大鍵生成回路(303)は、鍵レジスタ(302)の出力とランダマイズ部処理回路(101)からの換字処理出力および拡大鍵レジスタ(304)の出力により所定の拡大鍵生成処理を行う。
拡大鍵レジスタ(304)は、拡大鍵生成回路(303)により生成された128ビットの拡大鍵ブロックデータを格納する。
セレクタ2(305)は、拡大鍵レジスタ(304)の出力から必要なワードデータを選択する。
転置処理回路(306)は、AES暗号におけるInvMixColumns処理を行う。転置処理回路(306)は、転置処理部の例である。転置処理回路(306)には、内部工程を時分割処理するためのパイプラインレジスタ(207)が含まれている。図3の例では、2段のパイプラインレジスタ(207)が含まれている。
セレクタ3(307)は、転置処理回路の出力とセレクタ2の出力を選択する。
FIG. 3 shows an internal configuration of the extended key generation unit processing circuit (102).
The selector 1 (301) selects the key data and the output of the selector 2 (305).
The key register (302) stores word data for every 32 bits, which is an output from the selector 1 (301), and outputs 128-bit key data.
The extended key generation circuit (303) performs a predetermined extended key generation process based on the output of the key register (302), the substitution processing output from the randomizing unit processing circuit (101), and the output of the extended key register (304).
The extended key register (304) stores 128-bit extended key block data generated by the extended key generation circuit (303).
The selector 2 (305) selects necessary word data from the output of the extended key register (304).
The transposition processing circuit (306) performs InvMixColumns processing in AES encryption. The transposition processing circuit (306) is an example of a transposition processing unit. The transposition processing circuit (306) includes a pipeline register (207) for time-sharing internal processes. In the example of FIG. 3, a two-stage pipeline register (207) is included.
The selector 3 (307) selects the output of the transposition processing circuit and the output of the selector 2.

本実施の形態では、AES暗号を処理する暗号処理回路(100)を例としている。
図7に、AES暗号アルゴリズムの概要を示す。
AES暗号アルゴリズムでは、ランダマイズ部処理回路(101)において、拡大鍵生成部処理回路(102)で生成された拡大鍵を用いて、128ビットのブロックデータに対する暗号化処理が行われる。
まず、平文ブロックデータをサブブロックデータ単位に区切りながら入力し、サブブロックデータと拡大鍵とのEXOR演算により初期化処理を行う。サブブロックデータとは、ワードデータ又はバイトデータである。対象となる処理により、ワードデータに区切られる場合とバイトデータに区切られる場合がある。
その後、ランダマイズ部処理回路(101)では、初期化処理後のブロックデータをサブブロックデータ単位に区切るとともに、サブブロックデータに対してSubByte処理(換字処理)、ShiftRows処理、MixColumns処理(転置処理)及び拡大鍵生成部処理回路(102)からの拡大鍵を用いるAddRoundKey処理を行い、これを暗号化処理の1ラウンドとし、これをnラウンド繰り返し、最終的に128ビットの暗号文が作成され、出力される。
そして、これらの処理のうち、SubByte処理(換字処理)及びMixColumns処理(転置処理)における計算量が他の処理に比べて多大であり、これらSubByte処理(換字処理)及びMixColumns処理(転置処理)に対する回路遅延が問題となる。
本実施の形態では、換字処理と転置処理を含む処理を行うランダマイズ部処理回路(101)において、換字処理及び転置処理を行う回路にパイプラインレジスタを含み、サブブロックデータ単位のパイプライン処理により換字処理及び転置処理内の複数の内部工程を実施し、同一のブロックデータに含まれる複数のサブブロックデータに対する並列処理を行って高速化を図る。
また、複数のバイトデータで構成される128ビットの拡大鍵ブロックデータに対して転置処理を含む処理を行う拡大鍵生成部処理回路(102)において、転置処理を行う回路にパイプラインレジスタを含み、サブブロックデータ単位のパイプライン処理により転置処理内の複数の内部工程を実施し、同一のブロックデータに含まれる複数のサブブロックデータに対する並列処理を行って高速化を図る。
In this embodiment, the cryptographic processing circuit (100) that processes the AES encryption is taken as an example.
FIG. 7 shows an outline of the AES encryption algorithm.
In the AES encryption algorithm, the randomizing unit processing circuit (101) performs encryption processing on 128-bit block data using the expanded key generated by the expanded key generation unit processing circuit (102).
First, plaintext block data is input while being divided into subblock data units, and an initialization process is performed by an EXOR operation of the subblock data and the expanded key. The sub-block data is word data or byte data. Depending on the target processing, it may be divided into word data or byte data.
Thereafter, in the randomizing unit processing circuit (101), the block data after the initialization processing is divided into sub-block data units, and the sub-byte data is subjected to SubByte processing (substitution processing), ShiftRows processing, MixColumns processing (transposition processing), and AddRoundKey processing using the extended key from the extended key generation unit processing circuit (102) is performed, and this is set as one round of encryption processing. This is repeated n rounds, and finally 128-bit ciphertext is created and output. The
Of these processes, the amount of calculation in the SubByte process (substitution process) and the MixColumns process (transposition process) is larger than that of the other processes, and the SubByte process (substitution process) and the MixColumns process (transposition process). Circuit delay becomes a problem.
In this embodiment, in the randomizing unit processing circuit (101) that performs processing including substitution processing and transposition processing, the circuit that performs substitution processing and transposition processing includes a pipeline register, and substitution processing is performed by pipeline processing in units of sub-block data. A plurality of internal processes in the processing and the transposition processing are performed, and parallel processing is performed on a plurality of sub-block data included in the same block data, thereby increasing the speed.
Further, in the extended key generation unit processing circuit (102) that performs processing including transposition processing on 128-bit extended key block data composed of a plurality of byte data, the circuit that performs the transposition processing includes a pipeline register, A plurality of internal processes in the transposition process are performed by pipeline processing in units of sub-block data, and parallel processing is performed on a plurality of sub-block data included in the same block data to increase the speed.

次に動作について説明する。
図4及び図5は暗号処理装置(100)の処理フローを示す図である。
図4及び図5では、換字処理回路(206)に4段のパイプラインレジスタ(207)、転置処理回路(209)に2段のパイプラインレジスタ(207)を実装した場合の例で説明する。
図4では、暗号処理回路(100)における0サイクルから32サイクル目までを説明し、図5では、暗号処理回路(100)における184サイクルから212サイクル目までを説明している。
Next, the operation will be described.
4 and 5 are diagrams showing a processing flow of the cryptographic processing apparatus (100).
4 and 5, an example in which a 4-stage pipeline register (207) is mounted on the substitution processing circuit (206) and a 2-stage pipeline register (207) is mounted on the transposition processing circuit (209) will be described.
4 illustrates the 0th cycle to the 32nd cycle in the cryptographic processing circuit (100), and FIG. 5 illustrates the 184th cycle to the 212th cycle in the cryptographic processing circuit (100).

まず、0サイクル目から3サイクル目は、暗号処理回路(100)の入力ポートからの入力データ(平文データ)をワードデータ毎にランダマイズ部処理回路(101)のセレクタ1(201)経由でデータレジスタ(202)に格納する。
次に、AES暗号における初期化処理として、4サイクル目から7サイクル目において、データレジスタ(202)に格納された128ビットの平文ブロックデータがワードデータに分割されて、セレクタ2(203)、セレクタ5(210)及びセレクタ6(211)を経由して、鍵加算回路(212)でワードデータ毎にAddRoundKey処理が行われる。また、AddRoundKey処理されたデータはセレクタ1(201)経由でデータレジスタ(202)に暗号文ブロックデータとして格納される。
同時に、4サイクル目から7サイクル目において、拡大鍵生成部処理回路(102)からの換字処理入力に対して、セレクタ4(205)経由で換字処理回路(206)にて(拡大鍵の生成用の)換字処理を4バイト分行う。
First, in the 0th cycle to the 3rd cycle, the input data (plain text data) from the input port of the cryptographic processing circuit (100) is sent to the data register via the selector 1 (201) of the randomizing unit processing circuit (101) for each word data. (202).
Next, as initialization processing in the AES cipher, in the 4th to 7th cycles, the 128-bit plaintext block data stored in the data register (202) is divided into word data, and the selector 2 (203), the selector AddRoundKey processing is performed for each word data in the key addition circuit (212) via 5 (210) and selector 6 (211). Further, the data subjected to AddRoundKey processing is stored as ciphertext block data in the data register (202) via the selector 1 (201).
At the same time, in the 4th to 7th cycles, the substitution processing input from the expanded key generation unit processing circuit (102) is sent to the substitution processing circuit (206) via the selector 4 (205) (for expanded key generation). (4) Perform substitution processing for 4 bytes.

続けて、8サイクル目から23サイクル目までデータレジスタ(202)に格納された128ビットの暗号文ブロックデータが、セレクタ2(203)、セレクタ3(204)及びセレクタ4(205)を経由し、換字処理回路(206)において、バイトデータ単位で換字処理(SubByte処理)が行われる。前述したように、この換字処理回路(206)では、パイプラインレジスタ(207)を用いてパイプライン処理がなされる。
また、8サイクル目から11サイクル目では、4サイクル目から7サイクル目に行われた換字処理に対する処理結果を換字処理回路(206)から拡大鍵生成部処理回路(102)に対して出力し、拡大鍵生成部処理回路(102)の拡大鍵生成回路(303)においてバイトデータごとにKeyExpansion処理を行う。
続けて12サイクル目から14サイクル目で残りの3ワード分のKeyExpansion処理を拡大鍵生成部処理回路(102)の拡大鍵生成回路(303)で行う。1ワード目から3ワード目に対するKeyExpansion処理がそれぞれ1サイクルで完了するのは、0ワード目のKeyExpansion処理の出力に対してEXOR演算をするだけで済むからである。
なお、図4及び図5には示していないが、拡大鍵生成回路(303)におけるKeyExpansion処理の後、128ビットの拡大鍵ブロックデータは、拡大鍵レジスタ(304)及びセレクタ2(305)を経由して、転置処理回路(306)において、ワードデータごとにMixColumns処理(転置処理)が行われ、セレクタ3(307)を経由して、32ビットの拡大鍵がランダマイズ部処理回路(101)の鍵加算回路(212)に供給される。転置処理回路(306)では、パイプラインレジスタ(207)を用いてパイプライン処理がなされる。
Subsequently, the 128-bit ciphertext block data stored in the data register (202) from the 8th cycle to the 23rd cycle passes through the selector 2 (203), the selector 3 (204), and the selector 4 (205). In the substitution processing circuit (206), substitution processing (SubByte processing) is performed in units of byte data. As described above, in the substitution processing circuit (206), pipeline processing is performed using the pipeline register (207).
In the eighth to eleventh cycles, the processing result for the substitution processing performed in the fourth to seventh cycles is output from the substitution processing circuit (206) to the extended key generation unit processing circuit (102). In the extended key generation circuit (303) of the extended key generation unit processing circuit (102), KeyExpansion processing is performed for each byte data.
Subsequently, in the 12th to 14th cycles, the key expansion process for the remaining 3 words is performed by the extended key generation circuit (303) of the extended key generation unit processing circuit (102). The reason why the KeyExpansion process for the first word to the third word is completed in one cycle is that it is only necessary to perform an EXOR operation on the output of the KeyExpansion process for the 0th word.
Although not shown in FIGS. 4 and 5, after the key expansion process in the extended key generation circuit (303), the 128-bit extended key block data passes through the extended key register (304) and the selector 2 (305). Then, in the transposition processing circuit (306), the MixColumns processing (transposition processing) is performed for each word data, and the 32-bit extended key is passed through the selector 3 (307) to the key of the randomizing unit processing circuit (101). It is supplied to the addition circuit (212). In the transposition processing circuit (306), pipeline processing is performed using the pipeline register (207).

また、16サイクル目、20サイクル目、24サイクル目、28サイクル目では換字処理回路(206)の出力を格納した中間レジスタ(208)のデータに対して転置処理回路(209)でMixColumns処理を行う。
前述したように、この転置処理回路(209)では、パイプラインレジスタ(207)を用いてパイプライン処理がなされる。
そして、MixColumns処理の2サイクル後にそれぞれの結果に対して鍵加算回路(212)においてAddRoundKey処理を行う。
以降、24サイクル目以降は1ラウンドと同様に2ラウンド目以降の処理を行う。
Further, in the 16th cycle, the 20th cycle, the 24th cycle, and the 28th cycle, the MixColumn processing is performed by the transposition processing circuit (209) on the data of the intermediate register (208) storing the output of the substitution processing circuit (206). .
As described above, in the transposition processing circuit (209), pipeline processing is performed using the pipeline register (207).
Then, an AddRoundKey process is performed in the key addition circuit (212) for each result after two cycles of the MixColumns process.
Thereafter, in the 24th and subsequent cycles, the processing in the second and subsequent rounds is performed in the same manner as in the first round.

次に前記の動作に関する説明におけるデータレジスタの更新方法について説明する。
入力データd0_0、d0_1、d0_2、・・・・・、d0_f(各1バイト、計128ビット(16バイト))につき、0サイクル目から3サイクル目で4バイト毎({d0_0、d0_1、d0_2、d0_3}、{d0_4、d0_5、d0_6、d0_7}、{d0_8、d0_9、d0_a、d0_b}、{d0_c、d0_d、d0_e、d0_f})にデータレジスタ(202)に対するデータ格納処理が行われる。
以降、AESアルゴリズムにおけるNラウンド後の処理結果を、
dN_0、dN_1、dN_2、・・・・・、dN_f
と表記する。
このとき、出力データは、
d11_0、d11_1、d11_2、・・・・・、d11_f(各1バイト、計128ビット(16バイト))
となる。
Next, a method for updating the data register in the description related to the above operation will be described.
Input data d0_0, d0_1, d0_2,..., D0_f (1 byte each, total 128 bits (16 bytes)), every 4 bytes from the 0th cycle to the 3rd cycle ({d0_0, d0_1, d0_2, d0_3) }, {D0_4, d0_5, d0_6, d0_7}, {d0_8, d0_9, d0_a, d0_b}, {d0_c, d0_d, d0_e, d0_f}) are subjected to data storage processing.
Hereinafter, the processing result after N rounds in the AES algorithm is
dN_0, dN_1, dN_2, ..., dN_f
Is written.
At this time, the output data is
d11_0, d11_1, d11_2,..., d11_f (each 1 byte, total 128 bits (16 bytes))
It becomes.

4サイクル目から7サイクル目にセレクタ2(203)でデータレジスタ(202)から{d0_0、d0_1、d0_2、d0_3}の計4バイトを取り出し、セレクタ5(210)、セレクタ6(211)を経由して鍵加算回路(212)で拡大鍵と排他的論理和処理をし{d1_0、d1_1、d1_2、d1_3}を算出する。
同様に、{d0_4、d0_5、d0_6、d0_7}・・・・に対しても処理を行う(計4サイクル)。
1ラウンド目のSubByte処理はセレクタ2(203)、セレクタ3(204)経由でd1_0をデータレジスタ(202)から換字処理回路(206)へ入力する。続けて次サイクルで連続してd1_5、d1_a、d1_fを換字処理回路(206)へ毎サイクル入力する。
さらに以降続けて、d1_4、d1_9、d1_e、d1_3
d1_8、d1_d、d1_2、d1_7
d1_c、d1_1、d1_6、d1_b
の順に換字処理回路へ入力する。
このように、SubByte処理に対する入力順序を入れ替えることで、ShiftRows処理が行われる。
ここで、換字処理回路のパイプラインレジスタを4段とすると、4サイクル後に換字処理回路はSubByte処理結果を出力する。
以降この処理結果をS(d1_0)のように記述する。
1ラウンド目のMixColumns処理に対して、S(d1_0)は中間レジスタの最上位バイトに格納する。以降、S(d1_5)、S(d1_a)、S(d1_f)は順次下位バイトへ格納する。つまりS(d1_0)の格納から3サイクル後の中間レジスタの値は、S(d1_0)|S(d1_5)|S(d1_a)|S(d1_f)の計4バイトとなる。
この4バイト値に対して転置処理回路(209)でMixColums処理を行い、続けて2サイクル後に鍵加算回路(212)でAddRoundKey処理(鍵加算処理)を行う。
この結果はd2_0、d2_1、d2_2、d2_3とし、d1_0、d1_5、d1_a、d1_fが格納されていたレジスタ位置にd2_0、d2_1、d2_2、d2_3を再格納する。
以降、S(d1_4)、S(d1_9)、S(d1_e)、S(d1_3)
S(d1_8)、S(d1_d)、S(d1_2)、S(d1_7)
S(d1_c)、S(d1_1)、S(d1_6)、S(d1_b)
に対しても同様の処理を行う。
From the 4th cycle to the 7th cycle, the selector 2 (203) fetches a total of 4 bytes {d0_0, d0_1, d0_2, d0_3} from the data register (202), and passes through the selector 5 (210) and selector 6 (211). The key addition circuit (212) performs exclusive OR processing with the extended key to calculate {d1_0, d1_1, d1_2, d1_3}.
Similarly, processing is also performed for {d0_4, d0_5, d0_6, d0_7},... (Total 4 cycles).
In the SubByte processing of the first round, d1_0 is input from the data register (202) to the substitution processing circuit (206) via the selector 2 (203) and the selector 3 (204). Subsequently, d1_5, d1_a, and d1_f are input to the substitution processing circuit (206) every cycle continuously in the next cycle.
Further subsequently, d1_4, d1_9, d1_e, d1_3
d1_8, d1_d, d1_2, d1_7
d1_c, d1_1, d1_6, d1_b
Are input to the substitution processing circuit.
In this way, the ShiftRows process is performed by changing the input order for the SubByte process.
Here, assuming that the pipeline register of the substitution processing circuit has four stages, the substitution processing circuit outputs a SubByte processing result after four cycles.
Hereinafter, the processing result is described as S (d1_0).
For the first round of MixColumns, S (d1_0) is stored in the most significant byte of the intermediate register. Thereafter, S (d1_5), S (d1_a), and S (d1_f) are sequentially stored in the lower byte. That is, the value of the intermediate register after three cycles from the storage of S (d1_0) is 4 bytes in total, S (d1_0) | S (d1_5) | S (d1_a) | S (d1_f).
The transposition processing circuit (209) performs MixColumns processing on the 4-byte value, and then, after two cycles, the key rounding circuit (212) performs AddRoundKey processing (key addition processing).
The results are d2_0, d2_1, d2_2, and d2_3, and d2_0, d2_1, d2_2, and d2_3 are re-stored in the register positions where d1_0, d1_5, d1_a, and d1_f are stored.
Thereafter, S (d1_4), S (d1_9), S (d1_e), S (d1_3)
S (d1_8), S (d1_d), S (d1_2), S (d1_7)
S (d1_c), S (d1_1), S (d1_6), S (d1_b)
The same processing is performed for.

2〜9ラウンド以降のSubByte処理およびMixColumns処理も1ラウンド目と同様に行う。
10ラウンド目のSubByte処理も1ラウンド目と同様に行う。
10ラウンド目の中間レジスタS(d10_0)|S(d10_5)|S(d10_a)|S(d10_f)はセレクタ5(210)、セレクタ6(211)経由でMixColumns処理をパスし、AddRoundKey処理(鍵加算処理)を行ってデータレジスタ(202)に再格納する。
そして、最終的に、209サイクル目から212サイクル目にかけて、データレジスタ(202)に格納された暗号文ブロックデータが、セレクタ2(203)を経由して、ワードデータごとに出力される。
SubByte processing and MixColumns processing after the second to ninth rounds are also performed in the same manner as the first round.
The 10th round SubByte processing is also performed in the same manner as the 1st round.
The intermediate register S (d10_0) | S (d10_5) | S (d10_a) | S (d10_f) in the tenth round passes the MixColumns process via the selector 5 (210) and the selector 6 (211), and the AddRoundKey process (key addition) Process) and re-store in the data register (202).
Finally, from the 209th cycle to the 212th cycle, the ciphertext block data stored in the data register (202) is output for each word data via the selector 2 (203).

本実施の形態は、従来技術と異なり、アルゴリズムで規定される段関数の回路パスを複数のパイプラインレジスタで分割している。このためレジスタ間の回路遅延が従来技術よりも小さくなるので、より高速な動作周波数で処理することができる。
図2の場合、最も回路遅延が大きいと予想されるデータレジスタ(202)と中間レジスタ(208)間の回路がパイプラインレジスタ(207)により5分割されるため、特開2004−233427号公報に記載の従来技術より5倍程度の動作周波数の向上が見込める。
なお、上記の5分割とは、(1)データレジスタ(202)から1段目のパイプラインレジスタ、(2)1段目のパイプラインレジスタから2段目のパイプラインレジスタ、(3)2段目のパイプラインレジスタから3段目のパイプラインレジスタ、(4)3段目のパイプラインレジスタから4段目のパイプラインレジスタ、(5)4段目のパイプラインレジスタから中間レジスタ(208)の5分割を意味する。
In the present embodiment, unlike the prior art, the stage function circuit path defined by the algorithm is divided by a plurality of pipeline registers. For this reason, the circuit delay between the registers is smaller than that in the prior art, so that processing can be performed at a higher operating frequency.
In the case of FIG. 2, the circuit between the data register (202) and the intermediate register (208), which is expected to have the largest circuit delay, is divided into five by the pipeline register (207). The operating frequency can be improved by about 5 times compared to the conventional technology described.
Note that the above five divisions are (1) the first-stage pipeline register from the data register (202), (2) the second-stage pipeline register from the first-stage pipeline register, and (3) two-stage pipeline register. The pipeline register of the third stage from the pipeline register of the fourth stage, (4) the pipeline register of the fourth stage from the pipeline register of the third stage, and (5) the intermediate register (208) from the pipeline register of the fourth stage. It means 5 divisions.

また、換字処理回路(206)や転置処理回路(209)にパイプラインレジスタ(207)を用いない場合と比較して、増加するサイクル数は換字処理回路(206)のレイテンシ分の4サイクルのみであり、全体のサイクル数の割合から考えると2%程度である。以上から、暗号処理全体の処理性能は向上する。
回路規模については、従来技術の特開2004−233427号公報に比べて、パイプラインレジスタ分の増加程度であり、段関数をすべて実装する特開2003−288009号公報や特開平5−249891号公報に開示されている実装と比較して小規模に実装することができる。
Further, compared to the case where the pipeline register (207) is not used in the substitution processing circuit (206) or the transposition processing circuit (209), the number of cycles to be increased is only four cycles corresponding to the latency of the substitution processing circuit (206). Yes, considering the ratio of the total number of cycles, it is about 2%. From the above, the processing performance of the entire cryptographic processing is improved.
The circuit scale is about the increase of the pipeline register as compared with the prior art Japanese Patent Application Laid-Open No. 2004-233427, and Japanese Patent Application Laid-Open No. 2003-28809 and Japanese Patent Application Laid-Open No. 5-249891 that implement all the stage functions. It can be implemented on a small scale as compared with the implementation disclosed in.

また、本実施の形態における処理はすべて1つのブロックデータ内における時分割処理であり、複数のブロックデータの入力に対して並列処理を行うものではない。よって、連続してデータが入力されないようなシステムであっても、処理性能は向上する。
つまり、特開2003−288009号公報及び特開平5−249891号公報の技術では、複数のブロックデータを対象としたパイプライン処理を行っているため、複数のブロックデータが連続して入力されなければ、パイプラインによる並列処理の実効性がない。本実施の形態では、換字処理及び転置処理において、一つのブロックデータに対して複数のサブブロックデータ単位でパイプラインによる並列処理を行っているため、複数のブロックデータが連続して入力されない場合でも、処理性能が向上する。
In addition, all the processes in the present embodiment are time-sharing processes in one block data, and do not perform parallel processes on a plurality of block data inputs. Therefore, even in a system in which data is not continuously input, processing performance is improved.
That is, in the techniques of Japanese Patent Application Laid-Open Nos. 2003-288209 and 5-249891, pipeline processing is performed on a plurality of block data, and therefore, a plurality of block data must be input continuously. The parallel processing by the pipeline is not effective. In the present embodiment, in substitution processing and transposition processing, parallel processing is performed by pipeline for a plurality of sub-block data units for one block data, so even when a plurality of block data are not continuously input. , Processing performance is improved.

最後に、前述の暗号処理回路(100)を用いたデバイスとしてセキュリティチップ500の構成例を図6に示す。
セキュリティチップは携帯電話、ICカード、ICカードリーダライタ等の小型端末やネットワークルータなどの通信機器において組み込まれることが想定される。
図6のCPU(Central Processing Unit)(501)は暗号処理回路(100)に対する入出力の制御やメモリ、外部インターフェースとの制御を行うプログラムを実行するプロセッサである。
メモリ(502)はCPUの作業領域として利用されるRAM(Random Access Memory)や各種プログラムは設定パラメータ等を格納するROM(Read Only Memory)からなる。
外部インターフェース(503)はシリアル通信やLAN(Local Area Network)等の各種インターフェースであり、セキュリティチップに対して、暗号処理回路(100)で処理するデータの入出力を行う。
Finally, FIG. 6 shows a configuration example of the security chip 500 as a device using the above-described cryptographic processing circuit (100).
The security chip is assumed to be incorporated in communication devices such as small terminals such as mobile phones, IC cards, IC card readers / writers, and network routers.
A CPU (Central Processing Unit) (501) in FIG. 6 is a processor that executes a program for controlling input / output with respect to the cryptographic processing circuit (100) and control with a memory and an external interface.
A memory (502) includes a RAM (Random Access Memory) used as a work area of the CPU, and various programs include a ROM (Read Only Memory) that stores setting parameters and the like.
The external interface (503) is various interfaces such as serial communication and LAN (Local Area Network), and inputs / outputs data processed by the cryptographic processing circuit (100) to / from the security chip.

本実施の形態では、複数のバイトデータで構成される平文ブロックあるいは暗号文ブロックに対して、換字処理と転置処理を含む暗号方式を処理する回路において、換字処理と転置処理を行う回路にパイプラインレジスタを含み、同一ブロックの前記平文及び暗号文を時分割で並列処理することを特徴とする暗号処理回路について説明した。   In this embodiment, in a circuit that processes an encryption method including substitution processing and transposition processing on a plaintext block or ciphertext block composed of a plurality of byte data, a pipeline is connected to a circuit that performs substitution processing and transposition processing. An encryption processing circuit including a register and processing the plaintext and ciphertext in the same block in parallel in a time-sharing manner has been described.

また、前記暗号処理回路において、前記パイプラインレジスタを含む換字処理回路及び転置処理回路は、同一ブロックの複数のバイトデータに対して時分割処理を行うことを説明した。   In the encryption processing circuit, the substitution processing circuit and the transposition processing circuit including the pipeline register perform time division processing on a plurality of byte data of the same block.

また、前記暗号処理回路において、前記パイプラインレジスタを含む換字処理回路は、同一ブロックの処理で用いる鍵情報あるいは鍵情報を元に作られた情報に対して時分割処理を行うことを説明した。   In the cryptographic processing circuit, the substitution processing circuit including the pipeline register performs time-sharing processing on key information used in processing of the same block or information created based on the key information.

なお、本実施の形態では、暗号処理回路について説明したが、図1〜図3に示す構成及び、図4及び図5に示す動作は復号処理回路(復号処理装置)に適応可能である。
すなわち、複数のサブブロックデータで構成されるブロックデータに対して複数の内部工程を実施して換字処理を行う換字処理部と複数の内部工程を実施して転置処理を行う転置処理部とが含まれる復号処理装置であって、前記換字処理部及び前記転置処理部のうちの少なくともいずれかが、サブブロックデータ単位のパイプライン処理を行って複数の内部工程を実施し、同一のブロックデータに含まれる複数のサブブロックデータに対して並列処理を行う復号処理装置を実現可能である。
そして、前記復号処理装置は、暗号文ブロックデータに対して複数の内部工程を実施して換字処理を行う換字処理部と複数の内部工程を実施して転置処理を行う転置処理部とが含まれるランダマイズ処理部を有し、前記ランダマイズ処理部内において、前記換字処理部及び前記転置処理部のうちの少なくともいずれかが、サブブロックデータ単位のパイプライン処理を行って複数の内部工程を実施し、同一の暗号文ブロックデータに含まれる複数のサブブロックデータに対して並列処理を行うことが可能である。
また、前記復号処理装置は、鍵ブロックデータに対して複数の内部工程を実施して転置処理を行う転置処理部が含まれる拡大鍵生成処理部を有し、前記拡大鍵生成処理部内において、前記転置処理部が、サブブロックデータ単位のパイプライン処理を行って複数の内部工程を実施し、同一の鍵ブロックデータに含まれる複数のサブブロックデータに対して並列処理を行うことが可能である。
In this embodiment, the encryption processing circuit has been described. However, the configuration illustrated in FIGS. 1 to 3 and the operation illustrated in FIGS. 4 and 5 can be applied to a decryption processing circuit (decryption processing device).
That is, a substitution processing unit that performs substitution processing by performing a plurality of internal processes on block data composed of a plurality of sub-block data, and a transposition processing unit that performs transposition processing by performing a plurality of internal processes are included. And at least one of the substitution processing unit and the transposition processing unit performs pipeline processing in units of sub-block data and performs a plurality of internal processes, and is included in the same block data It is possible to realize a decoding processing device that performs parallel processing on a plurality of sub-block data.
The decryption processing apparatus includes a substitution processing unit that performs a plurality of internal processes on the ciphertext block data to perform a substitution process, and a transposition processing unit that performs a plurality of internal processes and performs a transposition process. A randomization processing unit, and in the randomization processing unit, at least one of the substitution processing unit and the transposition processing unit performs pipeline processing in units of sub-block data, and performs a plurality of internal processes. It is possible to perform parallel processing on a plurality of sub-block data included in the ciphertext block data.
In addition, the decryption processing device includes an extended key generation processing unit including a transposition processing unit that performs a transposition process by performing a plurality of internal processes on the key block data, and in the extended key generation processing unit, The transposition processing unit can perform a plurality of internal processes by performing pipeline processing in units of sub-block data, and can perform parallel processing on a plurality of sub-block data included in the same key block data.

また、図6のセキュリティチップ500に、暗号処理回路(100)の代わりに復号処理回路を搭載することも可能である。
また、図6のセキュリティチップ500に、暗号処理回路、復号処理回路の両者を搭載することも可能である。
Further, a decryption processing circuit can be mounted on the security chip 500 of FIG. 6 instead of the encryption processing circuit (100).
In addition, both the encryption processing circuit and the decryption processing circuit can be mounted on the security chip 500 in FIG.

また、以上の説明では、ランダマイズ部処理回路(101)の換字処理回路(206)及び転置処理回路(209)の双方にパイプラインレジスタ(207)を含むこととしたが、換字処理回路(206)及び転置処理回路(209)のどちらか一方のみがパイプラインレジスタ(207)を含む構成としてもよい。   In the above description, both the substitution processing circuit (206) and the transposition processing circuit (209) of the randomizing unit processing circuit (101) include the pipeline register (207), but the substitution processing circuit (206). Only one of the transposition processing circuit (209) may include the pipeline register (207).

また、以上の説明では、ランダマイズ部処理回路(101)及び拡大鍵生成部処理回路(102)の双方でパイプラインレジスタ(207)によるパイプライン処理を行うこととしたが、ランダマイズ部処理回路(101)及び拡大鍵生成部処理回路(102)のどちらか一方のみがパイプラインレジスタ(207)を含む構成としてもよい。   In the above description, the pipeline processing by the pipeline register (207) is performed in both the randomization unit processing circuit (101) and the extended key generation unit processing circuit (102). However, the randomization unit processing circuit (101) ) And the extended key generation unit processing circuit (102) may include the pipeline register (207).

また、以上の説明では、AES暗号を例として説明したが、これに限らず、複数のサブブロックデータから構成されるブロックデータを対象とし、サブブロックデータ単位の並列処理が可能な暗号アルゴリズムであれば、本実施の形態に係る暗号処理回路及び復号処理回路は適用可能である。   In the above description, the AES cipher has been described as an example. However, the present invention is not limited to this, and any encryption algorithm that can process block data composed of a plurality of sub-block data and can perform parallel processing in units of sub-block data. For example, the encryption processing circuit and the decryption processing circuit according to the present embodiment are applicable.

本実施の形態では、暗号処理又は復号処理は、ランダマイズ部処理回路、拡大鍵生成部処理回路というハードウェアにより実現することとしたが、ソフトウェア処理により実現するようにしてもよい。   In the present embodiment, the encryption process or the decryption process is realized by hardware such as a randomization unit processing circuit and an extended key generation unit processing circuit, but may be realized by software processing.

実施の形態1に係る暗号処理回路の構成例を示す図。FIG. 3 illustrates a configuration example of a cryptographic processing circuit according to the first embodiment. 実施の形態1に係るランダマイズ部処理回路の構成例を示す図。FIG. 3 is a diagram illustrating a configuration example of a randomization unit processing circuit according to the first embodiment. 実施の形態1に係る拡大鍵生成部処理回路の構成例を示す図。FIG. 3 is a diagram illustrating a configuration example of an extended key generation unit processing circuit according to the first embodiment. 実施の形態1に係る暗号処理の各サイクルにおける動作例を示す図。FIG. 6 is a diagram illustrating an operation example in each cycle of cryptographic processing according to the first embodiment. 実施の形態1に係る暗号処理の各サイクルにおける動作例を示す図。FIG. 6 is a diagram illustrating an operation example in each cycle of cryptographic processing according to the first embodiment. 実施の形態1に係る暗号処理回路を用いたセキュリティチップの例を示す図。FIG. 3 is a diagram showing an example of a security chip using the cryptographic processing circuit according to the first embodiment. AES暗号アルゴリズムの概要を示す図。The figure which shows the outline | summary of an AES encryption algorithm.

符号の説明Explanation of symbols

100 暗号処理回路、101 ランダマイズ部処理回路、102 拡大鍵生成部処理回路、201 セレクタ1、202 データレジスタ、203 セレクタ2、204 セレクタ3、205 セレクタ4、206 換字処理回路、207 パイプラインレジスタ、208 中間レジスタ、209 転置処理回路、210 セレクタ5、211 セレクタ6、212 鍵加算回路、301 セレクタ1、302 鍵レジスタ、303 拡大鍵生成回路、304 拡大鍵レジスタ、305 セレクタ2、306 転置処理回路、307 セレクタ3、500 セキュリティチップ、501 CPU、502 メモリ、503 外部インターフェース。   DESCRIPTION OF SYMBOLS 100 Encryption processing circuit, 101 Randomization part processing circuit, 102 Extended key generation part processing circuit, 201 Selector 1, 202 Data register, 203 Selector 2, 204 Selector 3, 205 Selector 4, 206 Substitution processing circuit, 207 Pipeline register, 208 Intermediate register, 209 transposition processing circuit, 210 selector 5, 211 selector 6, 212 key addition circuit, 301 selector 1, 302 key register, 303 expanded key generation circuit, 304 expanded key register, 305 selector 2, 306 transposition processing circuit, 307 Selector 3, 500 Security chip, 501 CPU, 502 memory, 503 External interface.

Claims (10)

複数のサブブロックデータで構成されるブロックデータに対して複数段階の内部工程を実施して換字処理を行う換字処理部と複数段階の内部工程を実施して転置処理を行う転置処理部とが含まれる暗号処理装置であって、
前記換字処理部及び前記転置処理部のうちの少なくともいずれかが、同一のブロックデータに含まれるサブブロックデータ単位のパイプライン処理を行って複数段階の内部工程を実施し、同一のブロックデータに含まれる複数のサブブロックデータに対して複数段階の内部工程の並列処理を行うことを特徴とする暗号処理装置。
Includes a substitution processing unit that performs substitution processing by performing a plurality of stages of internal processes on block data composed of a plurality of sub-block data, and a transposition processing section that performs substitution processing by performing a plurality of stages of internal processes. A cryptographic processing device,
The substitution processing unit and at least one of the transposition processing section performs pipeline processing of the sub-block data units included in the same block data conduct internal processes of a plurality of stages, contained in the same block data A cryptographic processing apparatus that performs parallel processing of a plurality of internal processes on a plurality of sub-block data.
前記暗号処理装置は、The cryptographic processing device includes:
前記換字処理及び前記転置処理が含まれる暗号化処理を同一のブロックデータに対して所定ラウンド繰り返す暗号処理装置であり、An encryption processing device that repeats a predetermined round of encryption processing including the substitution processing and the transposition processing on the same block data;
暗号化処理の各ラウンドにおいて、前記換字処理部及び前記転置処理部のうちの少なくともいずれかが、同一のブロックデータに含まれるサブブロックデータ単位のパイプライン処理を行って複数段階の内部工程を実施し、同一のブロックデータに含まれる複数のサブブロックデータに対して複数段階の内部工程の並列処理を行うことを特徴とする請求項1に記載の暗号処理装置。In each round of encryption processing, at least one of the substitution processing unit and the transposition processing unit performs pipeline processing in units of sub-block data included in the same block data and performs a plurality of internal processes. The cryptographic processing apparatus according to claim 1, wherein parallel processing of a plurality of internal processes is performed on a plurality of sub-block data included in the same block data.
前記暗号処理装置は、
平文ブロックデータ又は暗号文ブロックデータに対して複数段階の内部工程を実施して換字処理を行う換字処理部と複数段階の内部工程を実施して転置処理を行う転置処理部とが含まれるランダマイズ処理部を有し、
前記ランダマイズ処理部内において、前記換字処理部及び前記転置処理部のうちの少なくともいずれかが、同一の平文ブロックデータ又は暗号文ブロックデータに含まれるサブブロックデータ単位のパイプライン処理を行って複数段階の内部工程を実施し、同一の平文ブロックデータ又は暗号文ブロックデータに含まれる複数のサブブロックデータに対して複数段階の内部工程の並列処理を行うことを特徴とする請求項1に記載の暗号処理装置。
The cryptographic processing device includes:
Randomizing process includes a permutation unit for performing permutation to carry out internal process of the substitution processing unit and a plurality performing a substitution process to carry out internal processes of a plurality of stages with respect to the plaintext block data or ciphertext block data Part
In the randomization processing unit, at least one of the substitution processing unit and the transposition processing unit performs pipeline processing in units of sub-block data included in the same plaintext block data or ciphertext block data, and performs a plurality of stages . 2. The cryptographic process according to claim 1, wherein an internal process is performed , and parallel processing of a plurality of internal processes is performed on a plurality of sub-block data included in the same plaintext block data or ciphertext block data. apparatus.
前記換字処理部は、
128ビットの平文ブロックデータ又は暗号文ブロックデータに対して、8ビットのサブブロックデータ単位のパイプライン処理を行って複数段階の内部工程を実施し、
前記転置処理部は、
128ビットの平文ブロックデータ又は暗号文ブロックデータに対して、32ビットのサブブロックデータ単位のパイプライン処理を行って複数段階の内部工程を実施することを特徴とする請求項に記載の暗号処理装置。
The substitution processing unit
Against 128-bit plaintext block data or ciphertext block data, conduct internal processes of a plurality of stages by performing pipeline processing of 8-bit sub-block data units,
The transposition processing unit is
Against 128-bit plaintext block data or ciphertext block data, the cryptographic processing according to claim 3, characterized in that to carry out the internal processes of the plurality of stages by performing pipeline processing of the 32-bit sub-block data units apparatus.
前記暗号処理装置は、
鍵ブロックデータに対して複数段階の内部工程を実施して転置処理を行う転置処理部が含まれる拡大鍵生成処理部を有し、
前記拡大鍵生成処理部内において、前記転置処理部が、同一の鍵ブロックデータに含まれるサブブロックデータ単位のパイプライン処理を行って複数段階の内部工程を実施し、同一の鍵ブロックデータに含まれる複数のサブブロックデータに対して複数段階の内部工程の並列処理を行うことを特徴とする請求項1に記載の暗号処理装置。
The cryptographic processing device includes:
Has expanded key generation processing unit included permutation unit for performing permutation to carry out internal process of plural steps to the key block data,
Within the expanded key generation processing unit, wherein the permutation unit performs pipeline processing of the sub-block data units included in the same key block data conduct internal processes of a plurality of stages, it is included in the same key block data The cryptographic processing apparatus according to claim 1, wherein parallel processing of a plurality of internal processes is performed on a plurality of sub-block data.
前記転置処理部は、
128ビットの鍵ブロックデータに対して、32ビットのサブブロックデータ単位のパイプライン処理を行って複数段階の内部工程を実施することを特徴とする請求項に記載の暗号処理装置。
The transposition processing unit is
Against 128-bit key block data, the cryptographic processing apparatus according to claim 5, characterized in that to carry out the internal processes of the plurality of stages by performing pipeline processing of the 32-bit sub-block data units.
複数のサブブロックデータで構成されるブロックデータに対して複数段階の内部工程を実施して換字処理を行う換字処理部と複数段階の内部工程を実施して転置処理を行う転置処理部とが含まれる復号処理装置であって、
前記換字処理部及び前記転置処理部のうちの少なくともいずれかが、同一のブロックデータに含まれるサブブロックデータ単位のパイプライン処理を行って複数段階の内部工程を実施し、同一のブロックデータに含まれる複数のサブブロックデータに対して複数段階の内部工程の並列処理を行うことを特徴とする復号処理装置。
Includes a substitution processing unit that performs substitution processing by performing a plurality of stages of internal processes on block data composed of a plurality of sub-block data, and a transposition processing section that performs substitution processing by performing a plurality of stages of internal processes. A decryption processing device comprising:
The substitution processing unit and at least one of the transposition processing section performs pipeline processing of the sub-block data units included in the same block data conduct internal processes of a plurality of stages, contained in the same block data A decoding processing device that performs parallel processing of a plurality of stages of internal processes on a plurality of sub-block data.
前記復号処理装置は、The decryption processing device comprises:
前記換字処理及び前記転置処理が含まれる復号処理を同一のブロックデータに対して所定ラウンド繰り返す復号処理装置であり、A decoding processing device that repeats a predetermined round of decoding processing including the substitution processing and the transposition processing on the same block data;
復号処理の各ラウンドにおいて、前記換字処理部及び前記転置処理部のうちの少なくともいずれかが、同一のブロックデータに含まれるサブブロックデータ単位のパイプライン処理を行って複数段階の内部工程を実施し、同一のブロックデータに含まれる複数のサブブロックデータに対して複数段階の内部工程の並列処理を行うことを特徴とする請求項7に記載の復号処理装置。In each round of decoding processing, at least one of the substitution processing unit and the transposition processing unit performs pipeline processing in units of sub-block data included in the same block data and performs a plurality of internal processes. The decoding processing apparatus according to claim 7, wherein parallel processing of a plurality of internal processes is performed on a plurality of sub-block data included in the same block data.
前記復号処理装置は、
暗号文ブロックデータに対して複数段階の内部工程を実施して換字処理を行う換字処理部と複数段階の内部工程を実施して転置処理を行う転置処理部とが含まれるランダマイズ処理部を有し、
前記ランダマイズ処理部内において、前記換字処理部及び前記転置処理部のうちの少なくともいずれかが、同一の暗号文ブロックデータに含まれるサブブロックデータ単位のパイプライン処理を行って複数段階の内部工程を実施し、同一の暗号文ブロックデータに含まれる複数のサブブロックデータに対して複数段階の内部工程の並列処理を行うことを特徴とする請求項に記載の復号処理装置。
The decryption processing device comprises:
A randomization processing unit that includes a substitution processing unit that performs a plurality of stages of internal processes on ciphertext block data and performs a substitution process, and a transposition processing unit that performs a plurality of stages of internal processes and performs transposition processing. ,
Within the randomizing processing unit, the substitution processing unit and at least one of the transposition processing section performs internal processes of a plurality of stages by performing pipeline processing of block data units included in the same ciphertext block data The decryption processing apparatus according to claim 7 , wherein parallel processing of a plurality of stages of internal processes is performed on a plurality of sub-block data included in the same ciphertext block data.
前記復号処理装置は、
鍵ブロックデータに対して複数段階の内部工程を実施して転置処理を行う転置処理部が含まれる拡大鍵生成処理部を有し、
前記拡大鍵生成処理部内において、前記転置処理部が、同一の鍵ブロックデータに含まれるサブブロックデータ単位のパイプライン処理を行って複数段階の内部工程を実施し、同一の鍵ブロックデータに含まれる複数のサブブロックデータに対して複数段階の内部工程の並列処理を行うことを特徴とする請求項に記載の復号処理装置。
The decryption processing device comprises:
Has expanded key generation processing unit included permutation unit for performing permutation to carry out internal process of plural steps to the key block data,
Within the expanded key generation processing unit, wherein the permutation unit performs pipeline processing of the sub-block data units included in the same key block data conduct internal processes of a plurality of stages, it is included in the same key block data The decoding processing apparatus according to claim 7 , wherein parallel processing of a plurality of stages of internal processes is performed on a plurality of sub-block data.
JP2006223158A 2006-08-18 2006-08-18 Encryption processing apparatus and decryption processing apparatus Expired - Fee Related JP5037876B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006223158A JP5037876B2 (en) 2006-08-18 2006-08-18 Encryption processing apparatus and decryption processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006223158A JP5037876B2 (en) 2006-08-18 2006-08-18 Encryption processing apparatus and decryption processing apparatus

Publications (2)

Publication Number Publication Date
JP2008046466A JP2008046466A (en) 2008-02-28
JP5037876B2 true JP5037876B2 (en) 2012-10-03

Family

ID=39180249

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006223158A Expired - Fee Related JP5037876B2 (en) 2006-08-18 2006-08-18 Encryption processing apparatus and decryption processing apparatus

Country Status (1)

Country Link
JP (1) JP5037876B2 (en)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3851115B2 (en) * 2001-06-28 2006-11-29 富士通株式会社 Cryptographic circuit
JP3841008B2 (en) * 2002-03-28 2006-11-01 セイコーエプソン株式会社 Cryptographic device and data transfer control device
JP3940714B2 (en) * 2003-09-25 2007-07-04 株式会社東芝 Arithmetic device and encryption / decryption arithmetic device
JP4594665B2 (en) * 2004-07-09 2010-12-08 三菱電機株式会社 Tamper resistant circuit evaluation apparatus, tamper resistant circuit evaluation method, signal generation circuit, signal generation method, tamper resistance evaluation apparatus, and tamper resistance evaluation method

Also Published As

Publication number Publication date
JP2008046466A (en) 2008-02-28

Similar Documents

Publication Publication Date Title
CN106788974B (en) Mask S box, grouping key calculation unit, device and corresponding construction method
AU2005263805B2 (en) Method and device for carrying out a cryptographic calculation
US8265273B2 (en) Encryption device using mask value to convert plain text into encrypted text
JP5229315B2 (en) Encryption device and built-in device equipped with a common key encryption function
US9363074B2 (en) Encryption processing apparatus, encryption processing method, and computer program
EP2228941B1 (en) Encryption processing apparatus
US8396210B2 (en) Cryptographic processing apparatus and cryptographic processing method, and computer program
AU2011292312B2 (en) Apparatus and method for block cipher process for insecure environments
Satoh et al. Hardware-focused performance comparison for the standard block ciphers aes, camellia, and triple-des
JP5682526B2 (en) Data processing apparatus, data processing method, and program
Paar et al. The advanced encryption standard (AES)
Gielata et al. AES hardware implementation in FPGA for algorithm acceleration purpose
Arrag et al. Design and Implementation A different Architectures of mixcolumn in FPGA
JP5182295B2 (en) Encryption apparatus and encryption processing method
JP5037876B2 (en) Encryption processing apparatus and decryption processing apparatus
Sano et al. Performance Evaluation of AES Finalists on the High-End Smart Card.
Poupard et al. Decorrelated Fast Cipher: an AES Candidate well suited for low cost smart cards applications
Azad et al. EAES: Extended Advanced Encryption Standard with Extended Security
JP2006235440A (en) Semiconductor integrated circuit
Ali et al. Optimal datapath design for a cryptographic processor: the Blowfish algorithm
Nedjah et al. Embedded cryptographic hardware: design & security
JP2005529365A (en) AES mix column conversion
Lee et al. High-speed Design of 8-bit Architecture of AES Encryption
Moharir et al. Analysis of Advanced Encryption Standards
Imran et al. An optimized hardware implementation of Advanced Encryption Standard (AES-192)

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090511

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111025

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111206

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120515

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: 20120703

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120705

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150713

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5037876

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees