JP5223245B2 - Cryptographic processing apparatus, cryptographic processing method, and computer program - Google Patents

Cryptographic processing apparatus, cryptographic processing method, and computer program Download PDF

Info

Publication number
JP5223245B2
JP5223245B2 JP2007165864A JP2007165864A JP5223245B2 JP 5223245 B2 JP5223245 B2 JP 5223245B2 JP 2007165864 A JP2007165864 A JP 2007165864A JP 2007165864 A JP2007165864 A JP 2007165864A JP 5223245 B2 JP5223245 B2 JP 5223245B2
Authority
JP
Japan
Prior art keywords
key
round
data
exclusive
input
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
JP2007165864A
Other languages
Japanese (ja)
Other versions
JP2009003312A (en
JP2009003312A5 (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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP2007165864A priority Critical patent/JP5223245B2/en
Publication of JP2009003312A publication Critical patent/JP2009003312A/en
Publication of JP2009003312A5 publication Critical patent/JP2009003312A5/ja
Application granted granted Critical
Publication of JP5223245B2 publication Critical patent/JP5223245B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラムに関する。さらに詳細には、共通鍵ブロック暗号処理を実行する暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラムに関する。   The present invention relates to a cryptographic processing apparatus, a cryptographic processing method, and a computer program. More specifically, the present invention relates to a cryptographic processing apparatus, a cryptographic processing method, and a computer program that execute a common key block cryptographic process.

ネットワーク通信、電子商取引、その他のデータ処理分野においてセキュリティ確保は重要な課題である。セキュリティ確保の1つの方法として暗号技術があり、暗号処理は様々な領域で利用されている。例えばICカード等の小型の装置中に暗号処理モジュールを埋め込み、ICカードと、データ読み取り書き込み装置としてのリーダライタとの間でデータ送受信を行ない、認証処理、あるいは送受信データの暗号化、復号を行なうシステムが実用化されている。   Ensuring security is an important issue in network communications, electronic commerce, and other data processing fields. One method for ensuring security is encryption technology, and encryption processing is used in various fields. For example, an encryption processing module is embedded in a small device such as an IC card, and data is transmitted / received between the IC card and a reader / writer as a data reading / writing device, and authentication processing or encryption / decryption of transmitted / received data is performed. The system has been put into practical use.

暗号処理アルゴリズムには様々なものがあるが、大きく分類すると、暗号化鍵と復号鍵を異なる鍵、例えば公開鍵と秘密鍵として設定する公開鍵暗号方式と、暗号化鍵と復号鍵を共通の鍵として設定する共通鍵暗号方式とに分類される。   There are various cryptographic processing algorithms, but broadly classified, the encryption key and the decryption key are different keys, for example, the public key cryptosystem that sets the public key and the private key, and the encryption key and the decryption key are common. It is classified into a common key encryption method set as a key.

共通鍵暗号方式にも様々なアルゴリズムがあるが、その1つに共通鍵をベースとして複数の鍵を生成して、生成した複数の鍵を用いてブロック単位(64ビット,128、256ビットなど)のデータ変換処理を繰り返し実行する方式がある。このような鍵生成方式とデータ変換処理を適用したアルゴリズムの代表的なものが共通鍵ブロック暗号方式である。   There are various algorithms in the common key cryptosystem, one of which generates a plurality of keys based on the common key, and a block unit (64 bits, 128, 256 bits, etc.) using the generated plurality of keys. There is a method of repeatedly executing the data conversion process. A typical algorithm applying such a key generation method and data conversion processing is a common key block encryption method.

代表的な共通鍵ブロック暗号のアルゴリズムとしては、例えば過去に米国標準暗号であったDES(Data Encryption Standard)アルゴリズム、現在の米国標準であるAES(Advanced Encryption Standard)アルゴリズムなどが知られている。   As a typical common key block cipher algorithm, for example, a DES (Data Encryption Standard) algorithm which has been a US standard cipher in the past, an AES (Advanced Encryption Standard) algorithm which is a current US standard, and the like are known.

図1を参照して、共通鍵ブロック暗号処理について説明する。共通鍵ブロック暗号のアルゴリズムは、主として、入力データの変換を繰り返し実行するラウンド関数実行部を有するデータ暗号化部114と、ラウンド関数部の各ラウンドで適用するラウンド鍵を生成する鍵スケジュール部112とによって構成される。鍵スケジュール部112は数百ビットの秘密鍵(K)111を数千ビット程度の拡大鍵113に拡張して、データ暗号化部114に供給する。拡大鍵113のうち、データ暗号化部114のラウンド関数115で入力される拡大鍵の一部をラウンド鍵と呼ぶ。   The common key block encryption process will be described with reference to FIG. The common key block cipher algorithm mainly includes a data encryption unit 114 having a round function execution unit that repeatedly executes conversion of input data, and a key schedule unit 112 that generates a round key to be applied in each round of the round function unit. Consists of. The key schedule unit 112 expands the secret key (K) 111 of several hundred bits to the extended key 113 of about several thousand bits and supplies it to the data encryption unit 114. Of the extended key 113, a part of the extended key input by the round function 115 of the data encryption unit 114 is referred to as a round key.

例えば,r段のラウンド関数を行う構成としたブロック暗号においては,1からr段までのラウンド関数にそれぞれ{RK,RK,…,RKr−1,RK}のラウンド鍵が入力される。また、初期鍵としてIKが最終鍵としてFKが排他的論理和される。 For example, in a block cipher configured to perform an r-stage round function, {RK 1 , RK 2 ,..., RK r−1 , RK r } round keys are input to the 1 to r round functions. The In addition, IK is exclusively ORed as an initial key and FK as a final key.

データ暗号化部114の代表的な構造にFeistel構造がある。Feistel構造は、データ変換関数としてのラウンド関数の単純な繰り返しにより、平文を暗号文に変換する構造を持つ。ラウンド関数においては、線形変換処理および非線形変換処理が実行される。なお、Feistel構造を適用した暗号処理について記載した文献としては、例えば非特許文献1、非特許文献2がある。   A typical structure of the data encryption unit 114 is a Feistel structure. The Feistel structure has a structure for converting plaintext into ciphertext by simple repetition of a round function as a data conversion function. In the round function, linear transformation processing and nonlinear transformation processing are executed. Note that there are Non-Patent Document 1 and Non-Patent Document 2, for example, as documents describing encryption processing using the Feistel structure.

図2にデータ暗号化部114の具体的構成例を示す。ブロック長をnとし、ラウンド関数115をFeistel構造とし、ラウンド鍵のサイズをn/2ビット、ラウンド数rをr=4t+2(tは自然数)とする。このとき、初期鍵IKおよび最終鍵FKもn/2ビットで、Feistel構造により分割されたデータラインの片側にのみ排他的論理和されることにする。   FIG. 2 shows a specific configuration example of the data encryption unit 114. The block length is n, the round function 115 is a Feistel structure, the size of the round key is n / 2 bits, and the round number r is r = 4t + 2 (t is a natural number). At this time, the initial key IK and the final key FK are also n / 2 bits, and are exclusive ORed only on one side of the data line divided by the Feistel structure.

図2に示すデータ暗号化部114に入力されるnビットの平文Pは、1/2に分割され、その上位n/2ビットをP、下位n/2ビットをPとする。同様に暗号文Cについても1/2に分割し、上位n/2ビットをC、下位n/2ビットをCとする。 The n-bit plaintext P input to the data encryption unit 114 shown in FIG. 2 is divided into halves, with the upper n / 2 bits being P 0 and the lower n / 2 bits being P 1 . Similarly, the ciphertext C is also divided into halves, with the upper n / 2 bits being C 0 and the lower n / 2 bits being C 1 .

図2に示すデータ暗号化部114では、入力平文Pの下位n/2ビットPに初期鍵IKを排他的論理和した後、ラウンド鍵:RK,RK,…,RKr−1,RKがそれぞれ入力されたラウンド関数をr回処理し、最後のラウンド関数から出力される下位n/2ビットに最終鍵FKが排他的論理和されて暗号文Cの下位n/2ビットCが生成される。 In the data encryption unit 114 shown in FIG. 2, after the initial key IK is exclusive ORed with the lower n / 2 bits P 1 of the input plaintext P, round keys: RK 1 , RK 2 ,..., RK r−1 , The round function to which RK r is input is processed r times, and the final key FK is exclusive-ORed with the lower n / 2 bits output from the last round function, and the lower n / 2 bits C 1 of the ciphertext C Is generated.

ラウンド関数115は、F関数およびデータの入れ替え(左右系列の入れ替え)で構成される。F関数の内部構成には様々なタイプのものがあるが、例えば、図2に示すF関数116のように、ラウンド鍵との排他的論理和演算、S−boxと呼ばれる非線形演算、線形変換の処理を行う構成が知られている。   The round function 115 includes an F function and data exchange (right-left series exchange). There are various types of internal structures of the F function. For example, as in the F function 116 shown in FIG. 2, an exclusive OR operation with a round key, a non-linear operation called S-box, and linear transformation A configuration for performing processing is known.

図3に、図2と異なる構成を持つデータ暗号化部114の構成例を示す。図3に示すデータ暗号化部114は、各ラウンド関数の構成は図2に示す構成と同様の構成であるが、初期鍵IKと最終鍵FKの入力構成が図2に示す構成とは異なっている。すなわち、図2に示す構成では、入力平文Pの下位n/2ビットPに初期鍵IKを排他的論理和する構成であったが、図3に示す構成では、入力平文Pの上位n/2ビットPに初期鍵IKを排他的論理和した後、RK、RK、…、RKr−1、RKが入力されたF関数および入れ替え関数で構成されるラウンド関数をr回処理し、最後のラウンド関数から出力される上位n/2ビットに最終鍵FKが排他的論理和されて暗号文Cの上位n/2ビットCが生成される構成となっている。 FIG. 3 shows a configuration example of the data encryption unit 114 having a configuration different from that in FIG. In the data encryption unit 114 shown in FIG. 3, the configuration of each round function is the same as the configuration shown in FIG. 2, but the input configuration of the initial key IK and the final key FK is different from the configuration shown in FIG. Yes. That is, in the configuration shown in FIG. 2, the initial key IK is exclusively ORed with the lower n / 2 bits P 1 of the input plaintext P. However, in the configuration shown in FIG. after XOR initial key IK to 2 bit P 0, RK 1, RK 2 , ..., r times the process round function consisting of F function and swapping function which RK r-1, RK r are input The final key FK is exclusively ORed with the upper n / 2 bits output from the last round function to generate the upper n / 2 bits C 0 of the ciphertext C.

図2、図3に示すデータ暗号化部の構成は、nビットの入力平文Pを上位下位n/2ビットずつの2系列に分割して処理を行う構成であるが、nビットの入力平文Pをn/4ビットずつの4系列に分割して処理を行う構成もある。   The configuration of the data encryption unit shown in FIG. 2 and FIG. 3 is a configuration in which the n-bit input plaintext P is divided into two series of upper and lower n / 2 bits and processed. There is also a configuration in which the process is divided into four series of n / 4 bits.

4系列の構成を持つデータ暗号化部の構成例(4系列Type−2一般化Feistel構造)を図4、図5を参照して説明する。図4および図5に示すように、nビット平文Pを1/4に分割したn/4ビットデータをP,P,P,Pとし、nビット暗号文Cを1/4に分割したn/4ビットデータを各々C,C,C,Cとする。 A configuration example (four-sequence Type-2 generalized Feistel structure) of a data encryption unit having a four-sequence configuration will be described with reference to FIGS. 4 and 5. As shown in FIGS. 4 and 5, n / 4-bit data obtained by dividing the n-bit plaintext P into ¼ is P 0 , P 1 , P 2 , P 3 and the n-bit ciphertext C is ¼. The divided n / 4-bit data is assumed to be C 0 , C 1 , C 2 , and C 3 , respectively.

本構成では、図4、図5に示すように、各ラウンドにおいて2つのラウンド関数が実行される。各ラウンドにおける2つのラウンド関数では、n/2ビットのラウンド鍵RKを1/2に分割したn/4ビットのラウンド鍵RK[0]、RK[1]を生成して各ラウンド関数に入力する。同様に、n/2ビットの初期鍵IKについても1/2に分割したn/4ビットのIK[0]、IK[1]を4系列中の2つの系列に入力し、n/2ビットの最終鍵FKについても、1/2に分割したn/4ビットのFK[0]、FK[1]を4系列中の2つの系列に入力する構成としている。 In this configuration, as shown in FIGS. 4 and 5, two round functions are executed in each round. The two round functions in each round generate n / 4-bit round keys RK 1 [0] and RK 1 [1] by dividing the n / 2-bit round key RK 1 into ½, and each round function To enter. Similarly, for the n / 2-bit initial key IK, n / 4-bit IK [0] and IK [1] divided into ½ are input to two of the four sequences, and the n / 2-bit initial key IK is Also for the final key FK, n / 4-bit FK [0] and FK [1] divided into ½ are input to two of the four sequences.

図4においては、入力平文Pを1/4に分割したn/4ビットデータをP,P,P,P中の、PおよびPに初期鍵IK[0]およびIK[1]を排他的論理和した後、それぞれn/4ビットの分割されたラウンド鍵RK[0],RK[1]が入力されたラウンド関数を行う。 In FIG. 4, the divided input plaintext P to 1/4 n / 4-bit data in P 0, P 1, P 2, P 3, initial key IK [0] to P 1 and P 3 and IK [ 1] is subjected to an exclusive OR, and then a round function is input to which n / 4-bit divided round keys RK 1 [0] and RK 1 [1] are input.

以下、各ラウンドにおいて、2つのラウンド関数の各々にラウンド鍵{RK[0],RK[1]},…,{RKr−1[0],RKr−1[1]},{RK[0],RK[1]}を入力して計r回のラウンド関数を実行する。 Hereinafter, in each round, a round key {RK 2 [0], RK 2 [1]}, ..., {RK r-1 [0], RK r-1 [1]}, { RK r [0], RK r [1]} are input and a total of r round functions are executed.

最後に、nビット暗号文Cを1/4に分割したn/4ビットデータを各々C,C,C,Cを構成するCおよびCの出力前段の処理として最終鍵FKをn/4ビットに分割したFK[0]およびFK[1]を排他的論理和する。 Finally, the last key n-bit ciphertext C as each C 0, C 1, C 2, output preceding processing of C 1 and C 3 constitute a C 3 the divided n / 4-bit data to 1/4 FK Is exclusively ORed with FK [0] and FK [1] divided into n / 4 bits.

図5においては、入力平文Pを1/4に分割したn/4ビットデータをP,P,P,P中の、図4の構成とは異なる系列であるPおよびPに初期鍵IK[0]およびIK[1]を排他的論理和した後,同様のラウンド関数をr回繰り返し、最後に図4とは異なる系列であるCおよびCの出力前段の処理として最終鍵FKをn/4ビットに分割したFK[0]およびFK[1]を排他的論理和する。 In FIG. 5, n / 4-bit data obtained by dividing the input plaintext P into ¼ is P 0 , P 1 , P 2 , P 3 , P 0 and P 2 , which are different from the configuration of FIG. After the exclusive OR of the initial keys IK [0] and IK [1], the same round function is repeated r times, and finally the processing before the output of C 0 and C 2 which are different from FIG. FK [0] and FK [1] obtained by dividing the final key FK into n / 4 bits are exclusive ORed.

先に図1を参照して説明したように、ラウンド鍵は鍵スケジュール部112において生成される。鍵スケジュール部112は数百ビットの秘密鍵(K)111を数千ビット程度の拡大鍵113に拡張して、データ暗号化部114に供給する。r段のラウンド関数を行う構成としたブロック暗号においては,1からr段までのラウンド関数にそれぞれ{RK,RK,…,RKr−1,RK}のラウンド鍵が秘密鍵(K)111に基づいて生成される。なお、初期鍵IK、最終鍵FKも秘密鍵(K)111に基づいて生成される。 As described above with reference to FIG. 1, the round key is generated in the key schedule unit 112. The key schedule unit 112 expands the secret key (K) 111 of several hundred bits to the extended key 113 of about several thousand bits and supplies it to the data encryption unit 114. In a block cipher configured to perform an r-stage round function, round keys of {RK 1 , RK 2 ,..., RK r−1 , RK r } are respectively assigned to the round functions from 1 to r stages. ) 111 is generated. Note that the initial key IK and the final key FK are also generated based on the secret key (K) 111.

データ暗号化部において適用する鍵であるラウンド鍵、初期鍵IK、最終鍵FKの一般的な生成処理例について説明する。例えば、ラウンド鍵は以下のように構成される。まず、kビットの秘密鍵Kに対して非線形変換を行ない、kビットの第1中間鍵KAを作成する。次に、第1中間鍵KAからそれぞれn/2ビットを抜き出し、{KA,KA,…,KAr−1,KA}を構成する。 A general generation process example of a round key, an initial key IK, and a final key FK, which are keys applied in the data encryption unit, will be described. For example, the round key is configured as follows. First, nonlinear conversion is performed on the k-bit secret key K to generate a k-bit first intermediate key KA. Next, n / 2 bits are extracted from the first intermediate key KA to form {KA 1 , KA 2 ,..., KA r−1 , KA r }.

次に、秘密鍵Kからkビットの別のデータを作成し、これを第2中間鍵KBとする。第2中間鍵KBに関しては、
1)秘密鍵Kに対して、第1中間鍵KAと異なる非線形変換を適用したデータ、
2)秘密鍵Kに対して線形変換を適用したデータ、
3)秘密鍵Kそのもの
などの設定が考えられる。
第2中間鍵KBから2ラウンドおきにそれぞれn/2ビットを抜き出し,{KB,KB,…,KBr−3,KBr−2}を構成する。
Next, another k-bit data is created from the secret key K, and this is used as the second intermediate key KB. Regarding the second intermediate key KB,
1) Data obtained by applying a non-linear transformation different from the first intermediate key KA to the secret key K,
2) Data obtained by applying linear transformation to the secret key K,
3) The secret key K itself can be set.
N / 2 bits are extracted from the second intermediate key KB every two rounds to form {KB 3 , KB 4 ,..., KB r-3 , KB r-2 }.

ラウンド鍵{RK,RK,…,RKr−1,RK}は、上述した処理によって秘密鍵Kから生成した以下のデータ、
第1中間鍵KAベースのn/2ビット鍵{KA,KA,…,KAr−1,KA
第2中間鍵KBベースのn/2ビット鍵{KB,KB,…,KBr−3,KBr−2
これらのデータに基づいて、ラウンド鍵{RK,RK,…,RKr−1,RK}を例えば以下のように設定する。
RK=KA
RK=KA
RK=KA(EXOR)KB
RK=KA(EXOR)KB
RK=KA
・・・・
RKr−4=KAr−4
RKr−3=KAr−3(EXOR)KBr−3
RKr−2=KAr−2(EXOR)KBr−2
RKr−1=KAr−1
RK=KA
とする。なお、上記式において[A(EXOR)B]は、AとBの排他的論理和演算である。
The round keys {RK 1 , RK 2 ,..., RK r−1 , RK r } are the following data generated from the secret key K by the above-described processing:
First intermediate key KA-based n / 2-bit key {KA 1 , KA 2 ,..., KA r−1 , KA r }
Second intermediate key KB-based n / 2-bit key {KB 3 , KB 4 ,..., KB r-3 , KB r-2 }
Based on these data, the round keys {RK 1 , RK 2 ,..., RK r−1 , RK r } are set as follows, for example.
RK 1 = KA 1
RK 2 = KA 2
RK 3 = KA 3 (EXOR) KB 3
RK 4 = KA 4 (EXOR) KB 4
RK 5 = KA 5
...
RK r-4 = KA r-4
RK r-3 = KA r-3 (EXOR) KB r-3
RK r-2 = KA r-2 (EXOR) KB r-2
RK r-1 = KA r-1
RK r = KA r
And In the above equation, [A (EXOR) B] is an exclusive OR operation of A and B.

また、初期鍵IK、最終鍵FKに関しても、第2中間鍵KBからそれぞれn/2ビットを抜き出してKBおよびKBr+1を構成し、
IK=KB
FK=KBr+1
とする。
Also, regarding the initial key IK and the final key FK, n / 2 bits are extracted from the second intermediate key KB to form KB 0 and KB r + 1 ,
IK = KB 0
FK = KB r + 1
And

このような鍵生成構成とすることで、鍵解析の困難性を高めることができるとされている。第1中間鍵KAのみから生成されるn/2ビット鍵KAは、連続する2ラウンドのみで利用され、3ラウンド連続することがない。例えば上記設定では、第1ラウンドと第2ラウンドは、第1中間鍵KAのみから生成されるn/2ビット鍵KAが利用されているが、第3ラウンドと第4ラウンドは、第1中間鍵KAから生成されるn/2ビット鍵KAと第2中間鍵KBから生成されるn/2ビット鍵KBとの排他的論理和演算結果として生成されるデータがラウンド鍵に設定される。このように、元となるデータが異なるものを組み合わせることにより、鍵の解析困難性を高め、安全性の高い暗号処理が実現されることが知られている。 With such a key generation configuration, it is said that the difficulty of key analysis can be increased. The n / 2-bit key KA n generated only from the first intermediate key KA is used only in two consecutive rounds and does not continue three rounds. For example, in the above setting, the n / 2-bit key KA n generated only from the first intermediate key KA is used for the first round and the second round, but the third intermediate and the fourth round are the first intermediate Data generated as an exclusive OR operation result of the n / 2-bit key KA n generated from the key KA and the n / 2-bit key KB n generated from the second intermediate key KB is set as the round key. . As described above, it is known that by combining data having different original data, it is possible to increase the difficulty of key analysis and to realize highly secure cryptographic processing.

先に説明した図2のFeistel構造を持つデータ暗号化部に、上記の手法で生成するラウンド鍵および初期鍵、最終鍵を用いる構成とした場合の鍵データの入力構成を図6に示す。図6に示す排他的論理和演算部121〜123は、上述の鍵生成処理のために追加された排他的論理和演算部である。   FIG. 6 shows an input configuration of key data when the data encryption unit having the Feistel structure of FIG. 2 described above uses a round key, an initial key, and a final key generated by the above method. The exclusive OR operation units 121 to 123 illustrated in FIG. 6 are exclusive OR operation units added for the above-described key generation processing.

先に説明した図3のFeistel構造を持つデータ暗号化部に、上記の手法で生成するラウンド鍵および初期鍵、最終鍵を用いる構成とした場合の鍵データの入力構成を図7に示す。図7に示す排他的論理和演算部131〜133は、上述の鍵生成処理のために追加された排他的論理和演算部である。   FIG. 7 shows an input configuration of key data when the data encryption unit having the Feistel structure shown in FIG. 3 is configured to use the round key, the initial key, and the final key generated by the above method. The exclusive OR operation units 131 to 133 illustrated in FIG. 7 are exclusive OR operation units added for the above-described key generation processing.

先に説明した図4の4系列Type−2一般化Feistel構造を持つデータ暗号化部に、上記の手法で生成するラウンド鍵および初期鍵、最終鍵を用いる構成とした場合の鍵データの入力構成を図8に示す。図8に示す排他的論理和演算部141〜146は、上述の鍵生成処理のために追加された排他的論理和演算部である。   Key data input configuration when the round key, the initial key, and the final key generated by the above method are used in the data encryption unit having the 4-series Type-2 generalized Feistel structure of FIG. 4 described above Is shown in FIG. The exclusive OR operation units 141 to 146 shown in FIG. 8 are exclusive OR operation units added for the above-described key generation processing.

先に説明した図5の4系列Type−2一般化Feistel構造を持つデータ暗号化部に、上記の手法で生成するラウンド鍵および初期鍵、最終鍵を用いる構成とした場合の鍵データの入力構成を図9に示す。図9に示す排他的論理和演算部151〜156は、上述の鍵生成処理のために追加された排他的論理和演算部である。   Key data input configuration when the round key, the initial key, and the final key generated by the above method are used in the data encryption unit having the 4-series Type-2 generalized Feistel structure shown in FIG. Is shown in FIG. Exclusive OR operation units 151 to 156 shown in FIG. 9 are exclusive OR operation units added for the above-described key generation processing.

図6〜図9に示すデータ暗号化部を具体的なハードウェアで構成する場合、各ラウンド関数は同じ演算回路であるので、1つのラウンド関数回路を設定して、その1つのラウンド関数回路を繰り返し利用する構成とするのが一般的である。すなわち、1つのラウンド関数回路と、そのラウンド関数回路に対して入力するデータおよび鍵データを順次変更する回路が必要となる。   When the data encryption unit shown in FIG. 6 to FIG. 9 is configured by specific hardware, each round function is the same arithmetic circuit, so one round function circuit is set and the one round function circuit is set. Generally, the configuration is used repeatedly. That is, one round function circuit and a circuit for sequentially changing data and key data input to the round function circuit are required.

図6に示す2系列のFeistel構造を持つデータ暗号化部のハードウェア構成例としての暗号処理回路構成例を図10に示す。図10に示す暗号処理回路は、1つのラウンド関数回路201と、秘密鍵Kに基づいて例えば非線形変換によって生成される第1中間鍵KAから、第1中間鍵KAベースのn/2ビット鍵{KA,KA,…,KAr−1,KA}を生成する第1鍵生成部(KA生成回路)202と、秘密鍵Kに基づいて例えば異なる非線形変換によって生成される第2中間鍵KBから、第2中間鍵KBベースのn/2ビット鍵{KB,KB,…,KBr−3,KBr−2}を生成する第2鍵生成部(KB生成回路)203と、セレクタ1〜3,211〜213と、nビットデータレジスタ214と、排他的論理和演算部215,216を有する。 FIG. 10 shows a configuration example of a cryptographic processing circuit as a hardware configuration example of the data encryption unit having the two series Feistel structure shown in FIG. The cryptographic processing circuit shown in FIG. 10 includes, from one round function circuit 201 and a first intermediate key KA generated by, for example, non-linear transformation based on the secret key K, an n / 2-bit key {based on the first intermediate key KA { First key generation unit (KA i generation circuit) 202 that generates KA 1 , KA 2 ,..., KA r−1 , KA r }, and a second intermediate generated based on, for example, a different nonlinear transformation based on the secret key K A second key generation unit (KB i generation circuit) 203 that generates an n / 2-bit key {KB 3 , KB 4 ,..., KB r-3 , KB r-2 } based on the second intermediate key KB from the key KB. And selectors 1 to 3, 211 to 213, an n-bit data register 214, and exclusive OR operation units 215 and 216.

まず、暗号化開始時には、第2鍵生成部(KB生成回路)203において、KBを生成し、セレクタ1,211は平文入力を、セレクタ3,213はKBを選択する設定とする。セレクタ1,211によって選択された平文入力のnビットは、上位n/2ビットと下位n/2ビットに分割され、下位n/2ビットがセレクタ3,213によって選択されたKBと、排他的論理和演算部216において排他的論理和された後、データレジスタ214に格納される。 First, at the start of encryption, the second key generation unit (KB i generation circuit) 203 generates KB 0 , the selectors 1 and 211 select plain text input, and the selectors 3 and 213 select KB 0 . The n bits of the plaintext input selected by the selectors 1 and 211 are divided into upper n / 2 bits and lower n / 2 bits, and the lower n / 2 bits are exclusive of KB 0 selected by the selectors 3 and 213. After being subjected to exclusive OR in the OR operation unit 216, it is stored in the data register 214.

第1ラウンド目には、第1鍵生成部(KA生成回路)202においてKAを生成し、セレクタ1,211はラウンド関数回路201の出力を選択し、セレクタ2,212は0を選択し、セレクタ3,213は0を選択する設定とする。ラウンド関数回路201にはラウンド鍵としてKAとセレクタ2,212によって選択された0の排他的論理和、つまりKAが入力される。この第1ラウンドにおいて、KAを適用したラウンド関数処理が行われる。これは、図6に示す構成の第1ラウンドの処理に相当する。 In the first round, the first key generation unit (KA i generation circuit) 202 generates KA 1 , the selectors 1 and 211 select the output of the round function circuit 201, and the selectors 2 and 212 select 0. The selectors 3 and 213 are set to select 0. As the round key, the round function circuit 201 receives KA 1 and the exclusive OR of 0 selected by the selectors 2 212, that is, KA 1 . In this first round, round function processing using KA 1 is performed. This corresponds to the first round process of the configuration shown in FIG.

第1ラウンドで、ラウンド関数回路201にラウンド鍵[KA]が入力されてラウンド関数を実行した結果データはセレクタ1,211から出力される。セレクタ1,211から出力されるnビットは、上位n/2ビットと下位n/2ビットに分割され、下位n/2ビットがセレクタ3,213の出力と排他的論理和演算部216において排他的論理和されるが、セレクタ3,213の出力は0であるため、そのままデータレジスタ214に格納される。 In the first round, the round key [KA 1 ] is input to the round function circuit 201 and the result data obtained by executing the round function is output from the selectors 1 and 211. The n bits output from the selectors 1 and 211 are divided into upper n / 2 bits and lower n / 2 bits, and the lower n / 2 bits are exclusive with the outputs of the selectors 3 and 213 in the exclusive OR operation unit 216. Although logical OR is performed, since the outputs of the selectors 3 and 213 are 0, they are stored in the data register 214 as they are.

第2ラウンド目には、第1鍵生成部(KA生成回路)202においてKAを生成し、セレクタ1,211はラウンド関数回路201の出力を選択し、セレクタ2,212は0を選択し、セレクタ3,213は0を選択する設定とする。 In the second round, KA 2 is generated in the first key generation unit (KA i generation circuit) 202, the selectors 1 and 211 select the output of the round function circuit 201, and the selectors 2 and 212 select 0. The selectors 3 and 213 are set to select 0.

ラウンド関数回路201にはラウンド鍵としてKAとセレクタ2,212によって選択された0の排他的論理和、つまりKAが入力される。第2ラウンドで、ラウンド関数回路201にラウンド鍵[KA]が入力されてラウンド関数を実行した結果データはセレクタ1,211から出力される。セレクタ1,211から出力されるnビットは、上位n/2ビットと下位n/2ビットに分割され、下位n/2ビットがセレクタ3,213の出力と排他的論理和演算部216において排他的論理和されるが、セレクタ3,213の出力は0であるため、そのままデータレジスタ214に格納される。 The round function circuit 201 exclusive of 0 selected by KA 2 and the selector 2,212 as round keys, i.e. KA 2 is input. In the second round, the round key [KA 2 ] is input to the round function circuit 201 and the result data obtained by executing the round function is output from the selectors 1 and 211. The n bits output from the selectors 1 and 211 are divided into upper n / 2 bits and lower n / 2 bits, and the lower n / 2 bits are exclusive with the outputs of the selectors 3 and 213 in the exclusive OR operation unit 216. Although logical OR is performed, since the outputs of the selectors 3 and 213 are 0, they are stored in the data register 214 as they are.

第3ラウンド目には、第1鍵生成部(KA生成回路)202においてKAを生成し、さらに、第2鍵生成部(KB生成回路)203においてKBを生成し、セレクタ1,211はラウンド関数回路の出力を選択し、セレクタ2,212はKBを選択し、セレクタ3,213は0を選択する設定とする。 In the third round, KA 3 is generated in the first key generation unit (KA i generation circuit) 202, and KB 3 is generated in the second key generation unit (KB i generation circuit) 203. 211 is set to select the output of the round function circuit, selectors 2 and 212 are set to select KB 3 , and selectors 3 and 213 are set to select 0.

この設定により、ラウンド関数回路201にはラウンド鍵としてKAと、セレクタ2,212によって選択されたKBの排他的論理和演算部215における排他的論理和結果[KA(EXOR)KB]がラウンド鍵として入力される。 With this setting, the round function circuit 201 uses KA 3 as the round key and the exclusive OR result [KA 3 (EXOR) KB 3 ] in the exclusive OR operation unit 215 of KB 3 selected by the selectors 2 and 212. Is entered as a round key.

このようにして、第3ラウンドで、ラウンド関数回路201にラウンド鍵[KA(EXOR)KB]が入力されてラウンド関数を実行した結果データはセレクタ1,211から出力される。セレクタ1,211から出力されるnビットは、上位n/2ビットと下位n/2ビットに分割され、下位n/2ビットがセレクタ3,213の出力と排他的論理和演算部216において排他的論理和されるが、セレクタ3,213の出力は0であるため、そのままデータレジスタ214に格納される。
上記の処理をラウンド数に応じて繰り返す。
Thus, in the third round, the round key [KA 3 (EXOR) KB 3 ] is input to the round function circuit 201 and the result data obtained by executing the round function is output from the selectors 1 and 211. The n bits output from the selectors 1 and 211 are divided into upper n / 2 bits and lower n / 2 bits, and the lower n / 2 bits are exclusive with the outputs of the selectors 3 and 213 in the exclusive OR operation unit 216. Although logical OR is performed, since the outputs of the selectors 3 and 213 are 0, they are stored in the data register 214 as they are.
The above process is repeated according to the number of rounds.

第rラウンド目では、第1鍵生成部(KA生成回路)202においてKAを、第2鍵生成部(KB生成回路)203においてKBr+1を生成し、セレクタ1,211はラウンド関数回路201の出力を選択し、セレクタ2,212は0を選択し、セレクタ3,213はKBr+1を選択する設定とする。 In the r-th round, the first key generation unit (KA i generation circuit) 202 generates KA r and the second key generation unit (KB i generation circuit) 203 generates KB r + 1. The selectors 1 and 211 are round function circuits. 201 output is selected, selectors 2 212 select 0, and selectors 3 213 select KB r + 1 .

ラウンド関数回路201にはラウンド鍵としてKAとセレクタ2,212によって選択された0の排他的論理和、つまりKAが入力される。第rラウンドで、ラウンド関数回路201にラウンド鍵[KA]が入力されてラウンド関数を実行した結果データはセレクタ1,211から出力される。セレクタ1,211から出力されるnビットは、上位n/2ビットと下位n/2ビットに分割され、下位n/2ビットがセレクタ3,213の出力と排他的論理和演算部216において排他的論理和される。セレクタ3,213の出力はKBr+1であり、ラウンド関数回路201の出力の下位n/2ビットと、KBr+1との排他的論理和結果がデータレジスタ214に格納される。この処理は、図6に示すrラウンド目の出力とKBr+1との排他的論理和処理を実行する構成に相当する。 Exclusive of 0 to round function circuit 201 selected by KA r selector 2,212 as round keys, i.e. KA r is input. In the r-th round, the round key [KA r ] is input to the round function circuit 201 and the result data obtained by executing the round function is output from the selectors 1 and 211. The n bits output from the selectors 1 and 211 are divided into upper n / 2 bits and lower n / 2 bits, and the lower n / 2 bits are exclusive with the outputs of the selectors 3 and 213 in the exclusive OR operation unit 216. ORed. The output of the selectors 3 and 213 is KB r + 1 , and the exclusive OR result of the lower n / 2 bits of the output of the round function circuit 201 and KB r + 1 is stored in the data register 214. This process corresponds to a configuration for performing an exclusive OR process between the output of the r-th round and KB r + 1 shown in FIG.

これらの処理により、データレジスタ214には、暗号文C=C|Cが格納される。 Through these processes, the ciphertext C = C 0 | C 1 is stored in the data register 214.

図7に示す2系列のFeistel構造を持つデータ暗号化部のハードウェア構成例としての暗号処理回路構成例を図11に示す。図11に示す暗号処理回路も、図10に示す構成とほぼ同様の構成を持つ。   FIG. 11 shows an example of a cryptographic processing circuit configuration as a hardware configuration example of the data encryption unit having the two series Feistel structure shown in FIG. The cryptographic processing circuit shown in FIG. 11 also has a configuration substantially similar to the configuration shown in FIG.

1つのラウンド関数回路201と、秘密鍵Kに基づいて例えば非線形変換によって生成される第1中間鍵KAから、第1中間鍵KAベースのn/2ビット鍵{KA,KA,…,KAr−1,KA}を生成する第1鍵生成部(KA生成回路)202と、秘密鍵Kに基づいて例えば異なる非線形変換によって生成される第2中間鍵KBから、第2中間鍵KBベースのn/2ビット鍵{KB,KB,…,KBr−3,KBr−2}を生成する第2鍵生成部(KB生成回路)203と、セレクタ1〜2,211,212と、nビットデータレジスタ214と、排他的論理和演算部215、これらの構成は、図10に示す構成と同じである。 From one round function circuit 201 and a first intermediate key KA generated by, for example, non-linear transformation based on the secret key K, an n / 2-bit key {KA 1 , KA 2 ,..., KA based on the first intermediate key KA From the first key generation unit (KA i generation circuit) 202 that generates r−1 , KA r }, and the second intermediate key KB generated by, for example, different non-linear transformation based on the secret key K, the second intermediate key KB A second key generation unit (KB i generation circuit) 203 for generating a base n / 2-bit key {KB 3 , KB 4 ,..., KB r-3 , KB r-2 }; 212, the n-bit data register 214, the exclusive OR operation unit 215, and the configuration thereof are the same as those shown in FIG.

セレクタ1,211の出力部にある排他的論理和演算部221と、セレクタ3,222が、図10に示す設定とは異なっており、排他的論理和演算部221は、セレクタ1,211の出力の上位n/2ビットと、第2鍵生成部(KB生成回路)203の生成するKBを選択的に入力するセレクタ3,222の出力との排他的論理和演算を行う構成となっている。処理の流れは、図10を参照して説明した処理と同様の処理となる。 The exclusive OR operation unit 221 and the selectors 3 and 222 in the output units of the selectors 1 and 211 are different from the settings shown in FIG. 10, and the exclusive OR operation unit 221 outputs the outputs of the selectors 1 and 211. And the output of the selectors 3 and 222 that selectively input KB i generated by the second key generation unit (KB i generation circuit) 203. Yes. The process flow is the same as the process described with reference to FIG.

先に説明した図8の4系列Type−2一般化Feistel構造を持つデータ暗号化部のハードウェア構成例としての暗号処理回路構成例を図12に示す。図12に示す暗号処理回路も、そのほとんどは、図10に示す構成とほぼ同様の構成を持つ。   FIG. 12 shows an example of a cryptographic processing circuit configuration as a hardware configuration example of the data encryption unit having the 4-series Type-2 generalized Feistel structure of FIG. 8 described above. The cryptographic processing circuit shown in FIG. 12 has almost the same configuration as that shown in FIG.

すなわち、1つのラウンド関数回路201と、秘密鍵Kに基づいて例えば非線形変換によって生成される第1中間鍵KAから、第1中間鍵KAベースのn/2ビット鍵{KA,KA,…,KAr−1,KA}を生成する第1鍵生成部(KA生成回路)202と、秘密鍵Kに基づいて例えば異なる非線形変換によって生成される第2中間鍵KBから、第2中間鍵KBベースのn/2ビット鍵{KB,KB,…,KBr−3,KBr−2}を生成する第2鍵生成部(KB生成回路)203と、セレクタ1〜2,211,212と、nビットデータレジスタ214と、排他的論理和演算部215、これらの構成は、図10に示す構成と同じである。 That is, from one round function circuit 201 and a first intermediate key KA generated by, for example, non-linear transformation based on the secret key K, an n / 2-bit key {KA 1 , KA 2 ,. the first key generation unit for generating a KA r-1, KA r} and (KA i generation circuit) 202, a second intermediate key KB that is generated by, for example, different nonlinear transformation based on the secret key K, the second intermediate A second key generation unit (KB i generation circuit) 203 for generating a key KB-based n / 2-bit key {KB 3 , KB 4 ,..., KB r-3 , KB r-2 }, and selectors 1-2 211, 212, n-bit data register 214, exclusive OR operation unit 215, and the configuration thereof are the same as those shown in FIG.

セレクタ1,211の出力部は、n/4ビットずつの系列に分割する構成とされる。すなわち、セレクタ1,211から出力されるnビットは、上位からn/4ビットの4つのデータに分割される。これは、図8に示すn/4ビットデータの入力系列であるP,P,P,Pに対応する。 The output units of the selectors 1 and 211 are configured to be divided into n / 4-bit series. That is, the n bits output from the selectors 1 and 211 are divided into four data of n / 4 bits from the top. This corresponds to P 0 , P 1 , P 2 , and P 3 which are n / 4-bit data input sequences shown in FIG.

さらに、これらのn/4ビットデータの入力系列P,P,P,P中の、PおよびPに排他的論理和を実行するための排他的論理和演算部252,253が設定され、第2鍵生成部(KB生成回路)203の生成するKBを選択的に入力するセレクタ3,251の出力との排他的論理和演算を行う構成となっている。処理の流れは、図10を参照して説明した処理とほぼ同様の処理となる。 Furthermore, exclusive OR operation units 252 and 253 for performing exclusive OR on P 1 and P 3 in the input series P 0 , P 1 , P 2 and P 3 of these n / 4-bit data. Is set, and an exclusive OR operation is performed with the outputs of selectors 3 and 251 that selectively input KB i generated by the second key generation unit (KB i generation circuit) 203. The process flow is substantially the same as the process described with reference to FIG.

先に説明した図9の4系列Type−2一般化Feistel構造を持つデータ暗号化部のハードウェア構成例としての暗号処理回路構成例を図13に示す。図13に示す暗号処理回路も、そのほとんどは、図10に示す構成とほぼ同様の構成を持つ。   FIG. 13 shows a configuration example of a cryptographic processing circuit as a hardware configuration example of the data encryption unit having the 4-series Type-2 generalized Feistel structure of FIG. 9 described above. The cryptographic processing circuit shown in FIG. 13 has almost the same configuration as that shown in FIG.

すなわち、1つのラウンド関数回路201と、秘密鍵Kに基づいて例えば非線形変換によって生成される第1中間鍵KAから、第1中間鍵KAベースのn/2ビット鍵{KA,KA,…,KAr−1,KA}を生成する第1鍵生成部(KA生成回路)202と、秘密鍵Kに基づいて例えば異なる非線形変換によって生成される第2中間鍵KBから、第2中間鍵KBベースのn/2ビット鍵{KB,KB,…,KBr−3,KBr−2}を生成する第2鍵生成部(KB生成回路)203と、セレクタ1〜2,211,212と、nビットデータレジスタ214と、排他的論理和演算部215、これらの構成は、図10に示す構成と同じである。 That is, from one round function circuit 201 and a first intermediate key KA generated by, for example, non-linear transformation based on the secret key K, an n / 2-bit key {KA 1 , KA 2 ,. the first key generation unit for generating a KA r-1, KA r} and (KA i generation circuit) 202, a second intermediate key KB that is generated by, for example, different nonlinear transformation based on the secret key K, the second intermediate A second key generation unit (KB i generation circuit) 203 for generating a key KB-based n / 2-bit key {KB 3 , KB 4 ,..., KB r-3 , KB r-2 }, and selectors 1-2 211, 212, n-bit data register 214, exclusive OR operation unit 215, and the configuration thereof are the same as those shown in FIG.

セレクタ1,211の出力部は、図12に示す構成と同様、上位からn/4ビットの4つのデータに分割される。これは、図9に示すn/4ビットデータの入力系列であるP,P,P,Pに対応する。 The output units of the selectors 1 and 211 are divided into four pieces of n / 4-bit data from the top as in the configuration shown in FIG. This corresponds to P 0 , P 1 , P 2 , and P 3 which are n / 4-bit data input sequences shown in FIG.

さらに、これらのn/4ビットデータの入力系列P,P,P,P中の、PおよびPに排他的論理和を実行するための排他的論理和演算部272,273が設定され、第2鍵生成部(KB生成回路)203の生成するKBを選択的に入力するセレクタ3,271の出力との排他的論理和演算を行う構成となっている。処理の流れは、図10を参照して説明した処理とほぼ同様の処理となる。 Furthermore, exclusive OR operation units 272 and 273 for performing exclusive OR on P 0 and P 2 in the input series P 0 , P 1 , P 2 and P 3 of these n / 4-bit data. Is set, and an exclusive OR operation with the output of the selectors 3 and 271 that selectively input the KB i generated by the second key generation unit (KB i generation circuit) 203 is performed. The process flow is substantially the same as the process described with reference to FIG.

図10〜図13を参照して説明したように、複数の中間鍵KAとKBを利用して各ラウンドのラウンド鍵を生成して暗号処理を実行する回路には、多くのセレクタ(3つ)や、第1中間鍵KAベースの鍵KAと第2中間鍵KBベースの鍵KBとの排他的論理和演算回路が必要な構成であり、回路規模が大きくなり、製造コストも高くなるという問題がある。
K. Nyberg, "Generalized Feistel networks", ASIACRYPT'96, SpringerVerlag, 1996, pp.91--104. Yuliang Zheng, Tsutomu Matsumoto, Hideki Imai: On the Construction of Block Ciphers Provably Secure and Not Relying on Any Unproved Hypotheses. CRYPTO 1989: 461-480
As described with reference to FIGS. 10 to 13, a circuit that generates a round key for each round using a plurality of intermediate keys KA and KB and performs encryption processing includes many selectors (three). In addition, an exclusive OR operation circuit of the first intermediate key KA-based key KA i and the second intermediate key KB-based key KB i is required, which increases the circuit scale and the manufacturing cost. There's a problem.
K. Nyberg, "Generalized Feistel networks", ASIACRYPT'96, SpringerVerlag, 1996, pp.91--104. Yuliang Zheng, Tsutomu Matsumoto, Hideki Imai: On the Construction of Block Ciphers Provably Secure and Not Relying on Any Unproved Hypotheses.CRYPTO 1989: 461-480

本発明は、上記問題点に鑑みてなされたものであり、複数の中間鍵KAとKBを利用して共通鍵ブロック暗号処理を行う構成において、回路規模を小さくし小型化とコストダウンを実現した暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラムを提供することを目的とする。   The present invention has been made in view of the above problems, and in a configuration in which a common key block cipher process is performed using a plurality of intermediate keys KA and KB, the circuit scale is reduced and the size and cost are reduced. It is an object of the present invention to provide a cryptographic processing device, a cryptographic processing method, and a computer program.

本発明の第1の側面は、
共通鍵ブロック暗号処理を実行する暗号処理装置であり、
秘密鍵Kに基づいて生成する異なるデータ構成を有する第1中間鍵KA、および第2中間鍵KBを適用して、複数のラウンド関数を繰り返し実行して入力データのデータ変換処理を行なうデータ暗号化部を有し、
前記データ暗号化部は、
ラウンド数rのラウンド関数を実行するラウンド関数実行部であり、前記第1中間鍵KAに基づいて生成されるラウンド鍵KA(ただしiは1〜rの整数)のみを入力鍵としてラウンド関数を実行するラウンド関数実行部と、
前記入力データ、または前記ラウンド関数実行部からの出力データの構成データに対して前記第2中間鍵KBに基づいて生成される鍵KB(ただしiは0〜r+1の整数)との排他的論理和演算を実行する排他的論理和演算部と、
を有する構成であることを特徴とする暗号処理装置にある。
The first aspect of the present invention is:
A cryptographic processing device that executes a common key block cryptographic process;
Data encryption in which a first intermediate key KA and a second intermediate key KB having different data configurations generated based on a secret key K are applied, and a plurality of round functions are repeatedly executed to perform data conversion processing of input data Part
The data encryption unit
A round function execution unit that executes a round function of the number of rounds r, and uses only a round key KA i (where i is an integer from 1 to r) generated based on the first intermediate key KA, A round function execution unit to be executed;
Exclusive logic with key KB i (where i is an integer from 0 to r + 1) generated based on the second intermediate key KB for the input data or the constituent data of the output data from the round function execution unit An exclusive OR operation unit for performing a sum operation;
The cryptographic processing device is characterized by having a configuration including:

さらに、本発明の暗号処理装置の一実施態様において、前記データ暗号化部は、前記第1中間鍵KAに基づいてラウンド鍵KAの生成処理を実行する第1鍵生成部と、前記第1鍵生成部の生成するラウンド鍵KAのみを入力鍵としてラウンド関数を実行するラウンド関数実行部と、前記入力データまたは前記ラウンド関数実行部からの出力データのいずれかを選択出力する第1セレクタと、前記第2中間鍵KBに基づいて鍵KBの生成処理を実行する第2鍵生成部と、前記第2鍵生成部の生成する鍵KBと、値0を含む複数データの選択出力を実行する第2セレクタと、前記第1セレクタの出力データの構成データと、前記第2セレクタの出力データとの排他的論理和演算を実行する排他的論理和演算部と、を有する構成であることを特徴とする。 Furthermore, in an embodiment of the cryptographic processing apparatus of the present invention, the data encryption unit includes a first key generation unit that executes a generation process of a round key KA i based on the first intermediate key KA, and the first key generation unit A round function execution unit that executes a round function using only the round key KA i generated by the key generation unit as an input key; and a first selector that selectively outputs either the input data or the output data from the round function execution unit , A second key generation unit for generating a key KB i based on the second intermediate key KB, a key KB i generated by the second key generation unit, and a selection output of a plurality of data including a value 0. A second selector to be executed; and a configuration data of output data of the first selector and an exclusive OR operation unit that executes an exclusive OR operation of the output data of the second selector. And features.

さらに、本発明の暗号処理装置の一実施態様において、前記データ暗号化部は、前記第2鍵生成部の生成する鍵KBを入力し、ビット位置入れ替え処理を実行する入れ替え処理部を有し、前記第2セレクタは、前記第2鍵生成部の生成する鍵KBと、値0と、前記入れ替え処理部の生成データのいずれかを選択出力する構成であることを特徴とする。 Furthermore, in an embodiment of the cryptographic processing apparatus of the present invention, the data encryption unit has a replacement processing unit that inputs a key KB i generated by the second key generation unit and executes a bit position replacement process. The second selector is configured to selectively output any one of the key KB i generated by the second key generation unit, the value 0, and the generation data of the replacement processing unit.

さらに、本発明の暗号処理装置の一実施態様において、前記第1鍵生成部は、前記第1中間鍵KAに基づいて、ラウンド1〜rの各ラウンド関数に各々入力するr個のラウンド鍵KA〜KAを生成し、前記ラウンド関数実行部は、ラウンド1〜rの各ラウンド関数に、前記第1中間鍵KAに基づいて生成されるr個のラウンド鍵KA〜KAを順次入力してラウンド関数を実行し、前記第2鍵生成部は、前記第2中間鍵KBに基づいて、前記ラウンド関数の開始前において適用する初期鍵KBと、rラウンドの最終ラウンド関数の開始後において適用する最終鍵KBr+1と、連続2ラウンドおきのラウンドに対応する鍵KB,KB,・・・KBr−3,KBr−2を生成し、前記排他的論理和演算部は、前記入力データ、または前記ラウンド関数実行部からの出力データの構成データと、前記第2中間鍵KBに基づいて生成される鍵KB,KB,KB,・・・KBr−3,KBr−2,KBr+1から選択した鍵KBとの排他的論理和演算を実行する構成であることを特徴とする。 Furthermore, in one embodiment of the cryptographic processing apparatus of the present invention, the first key generation unit is configured to input r round keys KA to be input to each of round functions 1 to r based on the first intermediate key KA. 1 to KA r are generated, and the round function execution unit sequentially inputs r round keys KA 1 to KA r generated based on the first intermediate key KA to each of round functions 1 to r. The second key generation unit executes the round function based on the second intermediate key KB and the initial key KB 0 applied before the start of the round function and the start of the final round function of the r round. and final key KB r + 1 to be applied in the key KB 3 corresponding to consecutive two rounds every round, KB 4, generates ··· KB r-3, KB r -2, the exclusive-OR operation unit, The input device Data or the configuration data of the output data from the round-function executing part, the second intermediate key key KB that is generated based on KB 0, KB 3, KB 4 , ··· KB r-3, KB, r- 2 , and an exclusive OR operation with a key KB i selected from KB r + 1 is characterized.

さらに、本発明の暗号処理装置の一実施態様において、前記排他的論理和演算部は、前記第2中間鍵KBに基づいて生成される鍵KB,KB,・・・KBr−3,KBr−2から選択した同一鍵を、異なるラウンドのラウンド関数実行部からの出力データに対して2回繰り返して利用した排他的論理和演算を実行する構成であることを特徴とする。 Furthermore, in an embodiment of the cryptographic processing apparatus of the present invention, the exclusive OR operation unit is configured to generate keys KB 3 , KB 4 ,... KB r-3 , which are generated based on the second intermediate key KB. It is characterized in that an exclusive OR operation using the same key selected from KB r-2 repeatedly using the output data from the round function execution units of different rounds is executed.

さらに、本発明の暗号処理装置の一実施態様において、前記排他的論理和演算部は、前記鍵KBから選択した同一鍵を2回繰り返して利用した排他的論理和演算処理において、4つの連続するラウンド関数に対する入力ラウンド鍵を下記の設定とした場合と等価な設定、すなわち、4連続ラウンドp〜p+3に対して、
(a)pラウンドにラウンド鍵KAを入力、
(b)p+1ラウンドにラウンド鍵KAp+1を入力、
(c)p+2ラウンドにラウンド鍵[KAp+2(EXOR)KBp+2]を入力、
(d)p+3ラウンドにラウンド鍵[KAp+3(EXOR)KBp+3]を入力、
上記(a)〜(d)のラウンド鍵の入力処理と等価な処理になるように前記鍵KBから選択した同一鍵を2回繰り返して利用した排他的論理和演算処理を実行する構成であることを特徴とする。
Furthermore, in one embodiment of the cryptographic processing apparatus of the present invention, the exclusive OR operation unit performs four consecutive OR operations using the same key selected from the key KB i twice. For the setting equivalent to the case where the input round key for the round function is set as follows, that is, for four consecutive rounds p to p + 3,
(A) Enter the round key KA p in the p round,
(B) Enter the round key KA p + 1 in p + 1 round,
(C) Enter the round key [KA p + 2 (EXOR) KB p + 2 ] in the p + 2 round,
(D) Enter the round key [KA p + 3 (EXOR) KB p + 3 ] in the p + 3 round,
The configuration is such that an exclusive OR operation process using the same key selected from the key KB i is repeated twice so as to be equivalent to the round key input process of (a) to (d) above. It is characterized by that.

さらに、本発明の暗号処理装置の一実施態様において、前記排他的論理和演算部は、前記入力データ、または前記ラウンド関数実行部からの出力データを複数に分割した分割データの一部の分割データに対して、前記第2中間鍵KBに基づいて生成される鍵KBまたは鍵KBの分割鍵との排他的論理和演算を実行する構成であることを特徴とする。 Furthermore, in one embodiment of the cryptographic processing apparatus of the present invention, the exclusive OR operation unit is a part of divided data obtained by dividing the input data or the output data from the round function execution unit into a plurality of pieces. On the other hand, the configuration is such that an exclusive OR operation with a key KB i generated based on the second intermediate key KB or a split key of the key KB i is executed.

さらに、本発明の暗号処理装置の一実施態様において、前記ラウンド関数実行部は、入力データをnビットとしたとき、n/kビット単位(ただしk≧2)の分割データを入力する構成であり、ラウンド関数実行部に対する入力データと前記ラウンド鍵KAとの排他的論理和演算を実行し、さらに非線形変換および線形変換を実行して出力データを生成する構成であることを特徴とする。 Furthermore, in an embodiment of the cryptographic processing apparatus of the present invention, the round function execution unit is configured to input divided data in units of n / k bits (where k ≧ 2) when the input data is n bits. , An exclusive OR operation of the input data to the round function execution unit and the round key KA i is executed, and further, nonlinear transformation and linear transformation are executed to generate output data.

さらに、本発明の暗号処理装置の一実施態様において、前記データ暗号化部は、Feistel構造に従った暗号化処理を実行する構成であることを特徴とする。   Furthermore, in an embodiment of the cryptographic processing apparatus of the present invention, the data encryption unit is configured to execute an encryption process according to a Feistel structure.

さらに、本発明の暗号処理装置の一実施態様において、前記第1中間鍵KAは、前記秘密鍵Kに対する非線形変換処理により生成される鍵データであり、前記第2中間鍵KBは、
(a)秘密鍵Kに対して、第1中間鍵KAと異なる非線形変換を適用したデータ、
(b)秘密鍵Kに対して線形変換を適用したデータ、
(c)秘密鍵Kそのもの
上記(a)〜(c)のいずれかによって構成されるデータであることを特徴とする。
Furthermore, in an embodiment of the cryptographic processing apparatus of the present invention, the first intermediate key KA is key data generated by a nonlinear conversion process for the secret key K, and the second intermediate key KB is
(A) data obtained by applying a non-linear transformation different from the first intermediate key KA to the secret key K;
(B) data obtained by applying linear transformation to the secret key K;
(C) Secret key K itself It is the data comprised by either of said (a)-(c), It is characterized by the above-mentioned.

さらに、本発明の第2の側面は、
暗号処理装置において、共通鍵ブロック暗号処理を実行する暗号処理方法であり、
データ暗号化部が、秘密鍵Kに基づいて生成する異なるデータ構成を有する第1中間鍵KAと第2中間鍵KBを適用して、複数のラウンド関数を繰り返し実行して入力データのデータ変換処理を行なうデータ暗号化ステップを有し、
前記データ暗号化ステップは、
ラウンド関数実行部が、前記第1中間鍵KAに基づいて生成されるラウンド鍵KA(ただしiは1〜rの整数)のみを入力鍵としてラウンド数rのラウンド関数を実行するラウンド関数実行ステップと、
排他的論理和演算部が、前記入力データ、または前記ラウンド関数実行部からの出力データの構成データに対して前記第2中間鍵KBに基づいて生成される鍵KB(ただしiは0〜r+1の整数)との排他的論理和演算を実行する排他的論理和演算ステップと、
を有することを特徴とする暗号処理方法にある。
Furthermore, the second aspect of the present invention provides
An encryption processing method for executing a common key block encryption process in an encryption processing apparatus,
A data encryption unit applies a first intermediate key KA and a second intermediate key KB having different data configurations generated based on a secret key K, and repeatedly executes a plurality of round functions to perform data conversion processing of input data A data encryption step for performing
The data encryption step includes
A round function execution step in which a round function execution unit executes a round function of round number r using only a round key KA i (where i is an integer from 1 to r) generated based on the first intermediate key KA When,
An exclusive OR operation unit generates a key KB i generated based on the second intermediate key KB for the input data or the configuration data of the output data from the round function execution unit (where i is 0 to r + 1). An exclusive OR operation step of performing an exclusive OR operation with the integer),
There is an encryption processing method characterized by comprising:

さらに、本発明の暗号処理方法の一実施態様において、前記データ暗号化ステップは、第1鍵生成部が、前記第1中間鍵KAに基づいてラウンド鍵KAの生成処理を実行する第1鍵生成ステップと、ラウンド関数実行部が、前記第1鍵生成部の生成するラウンド鍵KAのみを入力鍵としてラウンド関数を実行するラウンド関数実行ステップと、第1セレクタが、前記入力データまたは前記ラウンド関数実行部からの出力データのいずれかを選択出力する第1データ選択ステップと、第2鍵生成部が、前記第2中間鍵KBに基づいて鍵KBの生成処理を実行する第2鍵生成ステップと、第2セレクタが、前記第2鍵生成部の生成する鍵KBと、値0を含む複数データの選択出力を実行する第2データ選択ステップと、排他的論理和演算部が、前記第1セレクタの出力データの構成データと、前記第2セレクタの出力データとの排他的論理和演算を実行する排他的論理和演算ステップとを有することを特徴とする。 Furthermore, in an embodiment of the encryption processing method of the present invention, the data encryption step includes a first key for generating a round key KA i based on the first intermediate key KA by the first key generation unit. A generating step, a round function executing unit for executing a round function using only the round key KA i generated by the first key generating unit as an input key, and a first selector for the input data or the round A first data selection step of selecting and outputting any of the output data from the function execution unit; and a second key generation in which the second key generation unit executes a key KB i generation process based on the second intermediate key KB And a second data selection step in which the second selector executes selection output of a plurality of data including the key KB i generated by the second key generation unit and the value 0, and an exclusive OR operation The arithmetic unit includes an exclusive OR operation step for performing an exclusive OR operation on the configuration data of the output data of the first selector and the output data of the second selector.

さらに、本発明の暗号処理方法の一実施態様において、前記データ暗号化ステップは、さらに、入れ替え処理部が、前記第2鍵生成部の生成する鍵KBを入力し、ビット位置入れ替え処理を実行する入れ替え処理ステップを有し、前記第2データ選択ステップは、前記第2鍵生成部の生成する鍵KBと、値0と、前記入れ替え処理部の生成データのいずれかを選択出力するステップであることを特徴とする。 Furthermore, in an embodiment of the encryption processing method of the present invention, in the data encryption step, the replacement processing unit further inputs a key KB i generated by the second key generation unit, and executes a bit position replacement process. The second data selection step is a step of selecting and outputting one of the key KB i generated by the second key generation unit, the value 0, and the generated data of the replacement processing unit. It is characterized by being.

さらに、本発明の暗号処理方法の一実施態様において、前記第1鍵生成ステップは、前記第1中間鍵KAに基づいて、ラウンド1〜rの各ラウンド関数に各々入力するr個のラウンド鍵KA〜KAを生成し、前記ラウンド関数実行ステップは、ラウンド1〜rの各ラウンド関数に、前記第1中間鍵KAに基づいて生成されるr個のラウンド鍵KA〜KAを順次入力してラウンド関数を実行し、前記第2鍵生成ステップは、前記第2中間鍵KBに基づいて、前記ラウンド関数の開始前において適用する初期鍵KBと、rラウンドの最終ラウンド関数の開始後において適用する最終鍵KBr+1と、連続2ラウンドおきのラウンドに対応する鍵KB,KB,・・・KBr−3,KBr−2を生成し、前記排他的論理和演算ステップは、前記入力データ、または前記ラウンド関数実行部からの出力データの構成データと、前記第2中間鍵KBに基づいて生成される鍵KB,KB,KB,・・・KBr−3,KBr−2,KBr+1から選択した鍵KBとの排他的論理和演算を実行するステップであることを特徴とする。 Furthermore, in one embodiment of the cryptographic processing method of the present invention, the first key generation step includes r round keys KA input to each of round functions 1 to r based on the first intermediate key KA. 1 to KA r are generated, and the round function execution step sequentially inputs r round keys KA 1 to KA r generated based on the first intermediate key KA to each of the round functions of rounds 1 to r. The round key is then executed, and the second key generation step is based on the second intermediate key KB, the initial key KB 0 applied before the start of the round function, and the start of the final round function of r round generates a final key KB r + 1 to be applied, the key KB 3, KB 4 corresponding to consecutive two rounds every round, the ··· KB r-3, KB r -2 in the exclusive Kazu演Step, the input data or the round and configuration data of the output data from the function execution unit, a key KB 0 generated based on the second intermediate key KB, KB 3, KB 4, , ··· KB r- 3 , a step of performing an exclusive OR operation with a key KB i selected from KB r−2 and KB r + 1 .

さらに、本発明の暗号処理方法の一実施態様において、前記排他的論理和演算ステップは、前記第2中間鍵KBに基づいて生成される鍵KB,KB,・・・KBr−3,KBr−2から選択した同一鍵を、異なるラウンドのラウンド関数実行部からの出力データに対して2回繰り返して利用した排他的論理和演算を実行するステップであることを特徴とする。 Furthermore, in one embodiment of the cryptographic processing method of the present invention, the exclusive OR operation step includes keys KB 3 , KB 4 ,... KB r-3 , generated based on the second intermediate key KB. It is a step of executing an exclusive OR operation using the same key selected from KB r-2 repeatedly using the output data from the round function execution units of different rounds twice.

さらに、本発明の暗号処理方法の一実施態様において、前記排他的論理和演算ステップは、前記鍵KBから選択した同一鍵を2回繰り返して利用した排他的論理和演算処理において、4つの連続するラウンド関数に対する入力ラウンド鍵を下記の設定とした場合と等価な設定、すなわち、4連続ラウンドp〜p+3に対して、
(a)pラウンドにラウンド鍵KAを入力、
(b)p+1ラウンドにラウンド鍵KAp+1を入力、
(c)p+2ラウンドにラウンド鍵[KAp+2(EXOR)KBp+2]を入力、
(d)p+3ラウンドにラウンド鍵[KAp+3(EXOR)KBp+3]を入力、
上記(a)〜(d)のラウンド鍵の入力処理と等価な処理になるように前記鍵KBから選択した同一鍵を2回繰り返して利用した排他的論理和演算処理を実行するステップであることを特徴とする。
Furthermore, in an embodiment of the cryptographic processing method of the present invention, the exclusive OR operation step includes four consecutive OR operations in which the same key selected from the key KB i is used twice. For the setting equivalent to the case where the input round key for the round function is set as follows, that is, for four consecutive rounds p to p + 3,
(A) Enter the round key KA p in the p round,
(B) Enter the round key KA p + 1 in p + 1 round,
(C) Enter the round key [KA p + 2 (EXOR) KB p + 2 ] in the p + 2 round,
(D) Enter the round key [KA p + 3 (EXOR) KB p + 3 ] in the p + 3 round,
A step of executing an exclusive OR operation process using the same key selected from the key KB i twice so as to be equivalent to the round key input process of (a) to (d) above. It is characterized by that.

さらに、本発明の暗号処理方法の一実施態様において、前記排他的論理和演算ステップは、前記入力データ、または前記ラウンド関数実行部からの出力データを複数に分割した分割データの一部の分割データに対して、前記第2中間鍵KBに基づいて生成される鍵KBまたは鍵KBの分割鍵との排他的論理和演算を実行するステップであることを特徴とする。 Furthermore, in an embodiment of the cryptographic processing method of the present invention, the exclusive OR operation step includes a part of divided data obtained by dividing the input data or the output data from the round function execution unit into a plurality of pieces. On the other hand, it is a step of performing an exclusive OR operation with a key KB i generated based on the second intermediate key KB or a split key of the key KB i .

さらに、本発明の暗号処理方法の一実施態様において、前記ラウンド関数実行ステップは、入力データをnビットとしたとき、n/kビット単位(ただしk≧2)の分割データを入力し、ラウンド関数実行部に対する入力データと前記ラウンド鍵KAとの排他的論理和演算を実行し、さらに非線形変換および線形変換を実行して出力データを生成するステップであることを特徴とする。 Furthermore, in one embodiment of the cryptographic processing method of the present invention, the round function execution step inputs the divided data in units of n / k bits (where k ≧ 2) when the input data is n bits, and the round function This is a step of performing an exclusive OR operation between the input data to the execution unit and the round key KA i, and further performing nonlinear transformation and linear transformation to generate output data.

さらに、本発明の暗号処理方法の一実施態様において、前記第1中間鍵KAは、前記秘密鍵Kに対する非線形変換処理により生成される鍵データであり、前記第2中間鍵KBは、
(a)秘密鍵Kに対して、第1中間鍵KAと異なる非線形変換を適用したデータ、
(b)秘密鍵Kに対して線形変換を適用したデータ、
(c)秘密鍵Kそのもの
上記(a)〜(c)のいずれかによって構成されるデータであることを特徴とする。
Furthermore, in one embodiment of the cryptographic processing method of the present invention, the first intermediate key KA is key data generated by nonlinear conversion processing on the secret key K, and the second intermediate key KB is
(A) data obtained by applying a non-linear transformation different from the first intermediate key KA to the secret key K;
(B) data obtained by applying linear transformation to the secret key K;
(C) Secret key K itself It is the data comprised by either of said (a)-(c), It is characterized by the above-mentioned.

さらに、本発明の第3の側面は、
暗号処理装置において、共通鍵ブロック暗号処理を実行させるコンピュータ・プログラムであり、
データ暗号化部に、秘密鍵Kに基づいて生成する異なるデータ構成を有する第1中間鍵KAと第2中間鍵KBを適用して、複数のラウンド関数を繰り返し実行して入力データのデータ変換処理を行なわせるデータ暗号化ステップを有し、
前記データ暗号化ステップは、
ラウンド関数実行部に、前記第1中間鍵KAに基づいて生成されるラウンド鍵KA(ただしiは1〜rの整数)のみを入力鍵としてラウンド関数を実行させるラウンド関数実行ステップと、
排他的論理和演算部に、前記入力データ、または前記ラウンド関数実行部からの出力データの構成データに対して前記第2中間鍵KBに基づいて生成される鍵KB(ただしiは0〜r+1の整数)との排他的論理和演算を実行させる排他的論理和演算ステップと、
を含むことを特徴とするコンピュータ・プログラムにある。
Furthermore, the third aspect of the present invention provides
In a cryptographic processing device, a computer program for executing a common key block cryptographic process,
Applying the first intermediate key KA and the second intermediate key KB having different data configurations generated based on the secret key K to the data encryption unit and repeatedly executing a plurality of round functions to convert the input data Having a data encryption step to perform
The data encryption step includes
A round function execution step for causing a round function execution unit to execute a round function using only a round key KA i (where i is an integer from 1 to r) generated based on the first intermediate key KA;
A key KB i generated based on the second intermediate key KB with respect to the input data or the configuration data of the output data from the round function execution unit in the exclusive OR operation unit (where i is 0 to r + 1) An exclusive OR operation step for performing an exclusive OR operation with the integer),
A computer program characterized by including:

なお、本発明のコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。   The computer program of the present invention is, for example, a computer program that can be provided by a storage medium or a communication medium provided in a computer-readable format to a general-purpose computer system that can execute various program codes. . By providing such a program in a computer-readable format, processing corresponding to the program is realized on the computer system.

本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。   Other objects, features, and advantages of the present invention will become apparent from a more detailed description based on embodiments of the present invention described later and the accompanying drawings. In this specification, the system is a logical set configuration of a plurality of devices, and is not limited to one in which the devices of each configuration are in the same casing.

本発明の一実施例の構成によれば、秘密鍵Kに基づいて生成する複数の異なるデータ構成を有する第1中間鍵KAと第2中間鍵KBを適用して、複数のラウンド関数を繰り返し実行して入力データのデータ変換処理を行なう共通鍵ブロック暗号処理構成において、ラウンド関数実行部に第1中間鍵KAに基づいて生成するラウンド鍵KAのみを入力してラウンド関数を実行し、第2中間鍵KBに基づいて生成される鍵KBは、ラウンド関数部におけるF関数に入力することなく、暗号処理対象となる入力データ、またはラウンド関数からの出力データとの排他的論理和演算を実行させる構成とした。本構成により暗号処理回路を簡略化し装置の小型化およびコストダウンを実現することができる。 According to the configuration of one embodiment of the present invention, a plurality of round functions are repeatedly executed by applying a first intermediate key KA and a second intermediate key KB having a plurality of different data configurations generated based on a secret key K. In the common key block cipher processing configuration for performing data conversion processing of input data, only the round key KA i generated based on the first intermediate key KA is input to the round function execution unit to execute the round function, The key KB i generated based on the intermediate key KB performs an exclusive OR operation with the input data to be encrypted or the output data from the round function without being input to the F function in the round function section. It was set as the structure made to do. With this configuration, it is possible to simplify the cryptographic processing circuit and reduce the size and cost of the apparatus.

以下、本発明の暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラムの詳細について説明する。本発明の暗号処理装置は、共通鍵ブロック暗号処理を実行する暗号処理装置であり、先に図1を参照して説明したと同様の処理構成を有する。ただし、ラウンド関数等を実行するデータ暗号化部の構成は、先に、図10〜図13を説明した回路構成に比較して簡略化した構成となっている。   Details of the cryptographic processing apparatus, cryptographic processing method, and computer program of the present invention will be described below. The cryptographic processing apparatus of the present invention is a cryptographic processing apparatus that executes a common key block cryptographic process, and has the same processing configuration as that described above with reference to FIG. However, the configuration of the data encryption unit that executes the round function or the like is a simplified configuration as compared with the circuit configurations described above with reference to FIGS.

先に図1を参照して説明したように、共通鍵ブロック暗号のアルゴリズムは、主として、入力データの変換を繰り返し実行するラウンド関数実行部を有するデータ暗号化部114と、ラウンド関数部の各ラウンドで適用するラウンド鍵を生成する鍵スケジュール部112とによって構成される。鍵スケジュール部112は数百ビットの秘密鍵(K)111を数千ビット程度の拡大鍵113に拡張して、データ暗号化部114に供給する。   As described above with reference to FIG. 1, the common key block cipher algorithm mainly includes a data encryption unit 114 having a round function execution unit that repeatedly executes conversion of input data, and rounds of each round function unit. And a key schedule unit 112 for generating a round key to be applied. The key schedule unit 112 expands the secret key (K) 111 of several hundred bits to the extended key 113 of about several thousand bits and supplies it to the data encryption unit 114.

データ暗号化部114では、1からr段までのラウンド関数にそれぞれ{RK,RK,…,RKr−1,RK}のラウンド鍵が入力される。また、初期鍵としてIKが最終鍵としてFKが排他的論理和される。 In the data encryption unit 114, round keys {RK 1 , RK 2 ,..., RK r−1 , RK r } are input to the round functions from 1 to r stages, respectively. In addition, IK is exclusively ORed as an initial key and FK as a final key.

本発明の一実施例に従った暗号処理装置におけるデータ暗号化部において適用する鍵であるラウンド鍵、初期鍵IK、最終鍵FKも、先に説明した処理と同様の処理で生成する。   The round key, the initial key IK, and the final key FK, which are keys applied in the data encryption unit in the cryptographic processing apparatus according to the embodiment of the present invention, are also generated by the same process as described above.

すなわち、kビットの秘密鍵Kに対して非線形変換を行ない、kビットの第1中間鍵KAを作成する。次に、第1中間鍵KAからそれぞれn/2ビットを抜き出し、{KA,KA,…,KAr−1,KA}を構成する。次に、秘密鍵Kからkビットの別のデータを作成し、これを第2中間鍵KBとする。第2中間鍵KBに関しては、
1)秘密鍵Kに対して、第1中間鍵KAと異なる非線形変換を適用したデータ、
2)秘密鍵Kに対して線形変換を適用したデータ、
3)秘密鍵Kそのもの
などの設定のいずれかとする。
この第2中間鍵KBから2ラウンドおきにそれぞれn/2ビットを抜き出し,{KB,KB,…,KBr−3,KBr−2}を構成する。
That is, nonlinear conversion is performed on the k-bit secret key K to create a k-bit first intermediate key KA. Next, n / 2 bits are extracted from the first intermediate key KA to form {KA 1 , KA 2 ,..., KA r−1 , KA r }. Next, another k-bit data is created from the secret key K, and this is used as the second intermediate key KB. Regarding the second intermediate key KB,
1) Data obtained by applying a non-linear transformation different from the first intermediate key KA to the secret key K,
2) Data obtained by applying linear transformation to the secret key K,
3) Any of the settings such as the secret key K itself.
N / 2 bits are extracted from the second intermediate key KB every two rounds to form {KB 3 , KB 4 ,..., KB r-3 , KB r-2 }.

ラウンド鍵{RK,RK,…,RKr−1,RK}は、上述した処理によって秘密鍵Kから生成した以下のデータ、
第1中間鍵KAベースのn/2ビット鍵{KA,KA,…,KAr−1,KA
第2中間鍵KBベースのn/2ビット鍵{KB,KB,…,KBr−3,KBr−2
これらのデータに基づいて、ラウンド鍵{RK,RK,…,RKr−1,RK}を例えば以下のように設定する。
RK=KA
RK=KA
RK=KA(EXOR)KB
RK=KA(EXOR)KB
RK=KA
・・・・
RKr−4=KAr−4
RKr−3=KAr−3(EXOR)KBr−3
RKr−2=KAr−2(EXOR)KBr−2
RKr−1=KAr−1
RK=KA
とする。なお、上記式において[A(EXOR)B]は、AとBの排他的論理和演算である。初期鍵IK、最終鍵FKに関しても、第2中間鍵KBからそれぞれn/2ビットを抜き出してKBおよびKBr+1を構成し、
IK=KB
FK=KBr+1
とする。
The round keys {RK 1 , RK 2 ,..., RK r−1 , RK r } are the following data generated from the secret key K by the above-described processing:
First intermediate key KA-based n / 2-bit key {KA 1 , KA 2 ,..., KA r−1 , KA r }
Second intermediate key KB-based n / 2-bit key {KB 3 , KB 4 ,..., KB r-3 , KB r-2 }
Based on these data, the round keys {RK 1 , RK 2 ,..., RK r−1 , RK r } are set as follows, for example.
RK 1 = KA 1
RK 2 = KA 2
RK 3 = KA 3 (EXOR) KB 3
RK 4 = KA 4 (EXOR) KB 4
RK 5 = KA 5
...
RK r-4 = KA r-4
RK r-3 = KA r-3 (EXOR) KB r-3
RK r-2 = KA r-2 (EXOR) KB r-2
RK r-1 = KA r-1
RK r = KA r
And In the above equation, [A (EXOR) B] is an exclusive OR operation of A and B. Also for the initial key IK and the final key FK, n / 2 bits are extracted from the second intermediate key KB to form KB 0 and KB r + 1 ,
IK = KB 0
FK = KB r + 1
And

前述したように、このような鍵生成構成とすることで、鍵解析の困難性を高め安全性の高い暗号処理が実現される。   As described above, with such a key generation configuration, it is possible to realize a highly secure cryptographic process that increases the difficulty of key analysis.

本願発明の一実施例に従った暗号処理装置は、上記のように複数の鍵(上記の例では、第1中間鍵および第2中間鍵)を混在させてラウンド鍵、初期鍵、最終鍵を生成してデータ暗号処理を行うデータ暗号化部の回路構成の簡略化を実現したものである。   A cryptographic processing device according to an embodiment of the present invention mixes a plurality of keys (in the above example, a first intermediate key and a second intermediate key) as described above to obtain a round key, an initial key, and a final key. This simplifies the circuit configuration of the data encryption unit that generates and performs data encryption processing.

本願発明の一実施例においては、簡略化回路構成を実現するため、ラウンド鍵RKの生成に際して選択されたラウンドにおいて入力される第2中間鍵ベースの鍵KBの入力構成を、先に説明した従来構成(図10〜図13)とは異なる構成としている。具体的には、等価変形を用いて、先に説明した従来構成(図10〜図13)とは異なるデータに対して第2中間鍵ベースの鍵KBの排他的論理和演算を行い、結果として、従来と同一の暗号処理アルゴリズムを実行させることを可能としたものである。 In one embodiment of the present invention, in order to realize a simplified circuit configuration, the input configuration of the second intermediate key-based key KB i that is input in the round selected when generating the round key RK i is described first. The configuration is different from the conventional configuration (FIGS. 10 to 13). Specifically, using equivalent deformation, an exclusive OR operation of the second intermediate key-based key KB i is performed on data different from the conventional configuration described above (FIGS. 10 to 13), and the result As a result, it is possible to execute the same cryptographic processing algorithm as in the prior art.

以下、本願発明に従った暗号処理装置におけるデータ暗号化部の簡略化回路構成の各実施例について説明する。説明は、
(1)実施例1:2系列Feistel構造における第1適用例
(2)実施例2:2系列Feistel構造における第2適用例
(3)実施例3:4系列Feistel構造における第1適用例
(4)実施例4:4系列Feistel構造における第2適用例
Embodiments of the simplified circuit configuration of the data encryption unit in the cryptographic processing apparatus according to the present invention will be described below. The explanation,
(1) Example 1: First application example in 2 series Feistel structure (2) Example 2: Second application example in 2 series Feistel structure (3) Example 3: First application example in 4 series Feistel structure (4) Example 4) Second application example in a 4-series Feistel structure

(1)実施例1:2系列Feistel構造における第1適用例
まず、実施例1として、2系列Feistel構造における第1の適用例について説明する。すなわち、先に図6を参照して説明したnビットの入力平文Pを上位下位n/2ビットずつの2系列に分割して処理を行う2系列のFeistel構造のデータ暗号化部に対応する簡略化回路構成である。なお、図6に示す2系列型の従来の回路構成は図10に示す回路構成である。
(1) Example 1: First Application Example in Two-Series Feistel Structure First, as Example 1, a first application example in a two-sequence Feistel structure will be described. In other words, the n-bit input plaintext P described above with reference to FIG. 6 is simplified to correspond to a 2-line Feistel-structure data encryption unit that performs processing by dividing the upper-order n / 2 bits into two series. Circuit configuration. The conventional circuit configuration of the two series type shown in FIG. 6 is the circuit configuration shown in FIG.

本実施例に係るラウンド関数を実行するデータ暗号化部の回路構成は図17に示す回路構成となるが、この図17に示す回路構成の説明の前に、図14〜図16を参照して、回路の簡略化を実現するための理論的な説明を行う。   The circuit configuration of the data encryption unit that executes the round function according to the present embodiment is the circuit configuration illustrated in FIG. 17. Before the description of the circuit configuration illustrated in FIG. 17, refer to FIGS. 14 to 16. A theoretical explanation for realizing simplification of the circuit will be given.

図6に示す2系列のFeistel構造のデータ暗号化部のラウンド関数に対して入力されるラウンド鍵{RK,RK,…,RKr−1,RK}は、前にも説明したように、
第1中間鍵KAベースのn/2ビット鍵{KA,KA,…,KAr−1,KA
第2中間鍵KBベースのn/2ビット鍵{KB,KB,…,KBr−3,KBr−2
これらのデータに基づいて生成され、
第1ラウンド:RK=KA
第2ラウンド:RK=KA
第3ラウンド:RK=KA(EXOR)KB
第4ラウンド:RK=KA(EXOR)KB
第5ラウンド:RK=KA
・・・・
という設定である。
The round keys {RK 1 , RK 2 ,..., RK r−1 , RK r } input to the round function of the data encryption unit having the two series of Feistel structures shown in FIG. In addition,
First intermediate key KA-based n / 2-bit key {KA 1 , KA 2 ,..., KA r−1 , KA r }
Second intermediate key KB-based n / 2-bit key {KB 3 , KB 4 ,..., KB r-3 , KB r-2 }
Based on these data,
1st round: RK 1 = KA 1
2nd round: RK 2 = KA 2
3rd round: RK 3 = KA 3 (EXOR) KB 3
4th round: RK 4 = KA 4 (EXOR) KB 4
5th round: RK 5 = KA 5
...
This is the setting.

例えば第3ラウンドに入力するラウンド鍵、すなわち、
RK=KA(EXOR)KB
この鍵生成のため、図10に示す排他的論理和演算部215が利用されていた。
For example, the round key input in the third round, that is,
RK 3 = KA 3 (EXOR) KB 3
For this key generation, an exclusive OR operation unit 215 shown in FIG. 10 is used.

本発明に従った回路(図17参照)では、この図10に示す鍵生成のための排他的論理和演算部215を省略する構成を実現する。この理論について、図14〜図16を参照して説明する。   The circuit according to the present invention (see FIG. 17) implements a configuration in which the exclusive OR operation unit 215 for key generation shown in FIG. 10 is omitted. This theory will be described with reference to FIGS.

図14は、先に図10を参照して説明した回路を適用した第2ラウンド〜第5ラウンドの処理を説明する図である。第2ラウンド〜第5ラウンドのラウンド関数のF関数302〜305には、以下のラウンド鍵が入力される。
第2ラウンド:RK=KA
第3ラウンド:RK=KA(EXOR)KB
第4ラウンド:RK=KA(EXOR)KB
第5ラウンド:RK=KA
図10に示す回路構成では、これらのラウンド鍵を各ラウンドにおいてラウンド関数回路に入力するため、セレクタ2,212と、排他的論理和演算部215を用いて、各ラウンド鍵の生成を行っている。
FIG. 14 is a diagram illustrating the second to fifth round processes to which the circuit described above with reference to FIG. 10 is applied. The following round keys are input to the F functions 302 to 305 of the second to fifth round functions.
2nd round: RK 2 = KA 2
3rd round: RK 3 = KA 3 (EXOR) KB 3
4th round: RK 4 = KA 4 (EXOR) KB 4
5th round: RK 5 = KA 5
In the circuit configuration shown in FIG. 10, in order to input these round keys to the round function circuit in each round, each round key is generated using the selectors 2, 212 and the exclusive OR operation unit 215. .

例えば、図14に示す構成における第3、4ラウンドに示す排他的論理和演算部307,308が、図10に示す排他的論理和演算部215に相当する。第2、第5ラウンドのように、第2中間鍵ベースの鍵KBは使用されないラウンドでは、図10のセレクタ2,212の出力が0に設定され、図10に示す排他的論理和演算部215は、第1中間鍵ベースの鍵KAを変更することなく出力することになる。 For example, the exclusive OR operation units 307 and 308 shown in the third and fourth rounds in the configuration shown in FIG. 14 correspond to the exclusive OR operation unit 215 shown in FIG. In rounds where the second intermediate key base key KB i is not used as in the second and fifth rounds, the outputs of the selectors 2 and 212 in FIG. 10 are set to 0, and the exclusive OR operation unit shown in FIG. 215 outputs the first intermediate key-based key KA i without being changed.

図15は、本発明に従った図17に示す回路を適用した第2ラウンド〜第5ラウンドの処理を説明する図である。第2ラウンド〜第5ラウンドのラウンド関数のF関数312〜315には、以下のラウンド鍵が入力される。
第2ラウンド:RK=KA
第3ラウンド:RK=KA
第4ラウンド:RK=KA
第5ラウンド:RK=KA
FIG. 15 is a diagram for explaining the second to fifth round processes to which the circuit shown in FIG. 17 according to the present invention is applied. The following round keys are input to the F functions 312 to 315 of the second to fifth round functions.
2nd round: RK 2 = KA 2
3rd round: RK 3 = KA 3
4th round: RK 4 = KA 4
5th round: RK 5 = KA 5

さらに、図15に示す構成では、第2ラウンドに入力するnビット中、第2ラウンドのF関数に入力されない側にあるn/2ビット(図に示すデータP)と、第2中間鍵KBベースのn/2ビット鍵KBとの排他的論理和演算を排他的論理和演算部321において実行し、その後、さらに第2ラウンドのF関数312の出力(データQ)と排他的論理和演算部322において、排他的論理和演算を実行して、この結果のn/2ビットデータを第3ラウンドのF関数313の入力として、この入力と第3ラウンドのF関数に入力するラウンド鍵KAとの排他的論理和演算をF関数313内の排他的論理和演算部323において行い、その結果データ(データT')をF関数313内の非線形変換部(Sボックス)に対する入力としている。 Further, in the configuration shown in FIG. 15, n / 2 bits (data P shown in the figure) on the side not input to the F function of the second round among the n bits input in the second round, and the second intermediate key KB base Exclusive-OR operation with the n / 2-bit key KB 3 in the exclusive-OR operation unit 321, and then the output (data Q) of the second round F function 312 and the exclusive-OR operation unit At 322, an exclusive OR operation is performed, and the resulting n / 2-bit data is used as an input of the third round F function 313, and this input and the round key KA 3 input to the third round F function; The exclusive OR operation unit 323 in the F function 313 performs this exclusive OR operation, and the result data (data T ′) is input to the nonlinear conversion unit (S box) in the F function 313.

この図15の構成における第3ラウンドのF関数313内の非線形変換部(Sボックス)に対する入力データ(T')と、図14における第3ラウンドのF関数303内の非線形変換部(Sボックス)に対する入力データ(T)を比較してみる。   The input data (T ′) for the nonlinear transformation unit (S box) in the third round F function 313 in the configuration of FIG. 15 and the nonlinear transformation unit (S box) in the third round F function 303 in FIG. Compare the input data (T) for.

図14に示す第3ラウンドのF関数内部の非線形演算への入力データ[T]は、図14に示すデータP,Q,KA,KBによる下記の演算結果として表すことができる。
T=P(EXOR)Q(EXOR)KA(EXOR)KB
The input data [T] to the nonlinear calculation in the F function in the third round shown in FIG. 14 can be expressed as the following calculation result using the data P, Q, KA 3 , KB 3 shown in FIG.
T = P (EXOR) Q (EXOR) KA 3 (EXOR) KB 3

また、図15の構成における第3ラウンドのF関数313内の非線形変換部(Sボックス)に対する入力データ(T')は、図15に示すデータP,Q,KA,KBによる下記の演算結果として表すことができる。なおデータP,Q,KA,KBは、図14に示すデータと同一である。
T'=P(EXOR)KB(EXOR)Q(EXOR)KA
このT'の算出式は、上記Tの算出式と等価である。すなわち、
T'=T
が成立し、図15の構成における第3ラウンドのF関数の非線形変換部に対する入力は、図14の構成における第3ラウンドのF関数の非線形変換部に対する入力と同一となる。
Further, the input data (T ′) to the non-linear transformation unit (S box) in the F function 313 in the third round in the configuration of FIG. 15 is the following calculation using the data P, Q, KA 3 , KB 3 shown in FIG. Can be expressed as a result. Data P, Q, KA 3 and KB 3 are the same as the data shown in FIG.
T ′ = P (EXOR) KB 3 (EXOR) Q (EXOR) KA 3
The formula for calculating T ′ is equivalent to the formula for calculating T. That is,
T '= T
Thus, the input to the non-linear transformation unit of the third round F function in the configuration of FIG. 15 is the same as the input to the non-linear transformation unit of the third round F function in the configuration of FIG.

このように、第3ラウンドにおけるF関数に入力するラウンド鍵を、
図14の構成では、RK=KA(EXOR)KB
としているが、
図15に示すように、第3ラウンドにおけるF関数に入力するラウンド鍵を、
RK=KA
として、第3ラウンドのF関数に対する入力データの生成段階でKBの排他的論理和演算を実行して、そのデータを第3ラウンドのF関数に入力するデータとしても、結果としては同じ暗号処理が行われることになる。
Thus, the round key input to the F function in the third round is
In the configuration of FIG. 14, RK 3 = KA 3 (EXOR) KB 3
But
As shown in FIG. 15, the round key input to the F function in the third round is
RK 3 = KA 3
As a result, if the exclusive OR operation of KB 3 is executed at the generation stage of the input data for the F function of the third round and the data is input to the F function of the third round, the same cryptographic processing is obtained as a result. Will be done.

このことは、第4ラウンドについても同様であり、図14の構成では、第4ラウンドにおけるF関数304に入力するラウンド鍵を、排他的論理和演算部308の処理により、
RK=KA(EXOR)KB
として入力しているが、
図15の構成のように、第3ラウンドにおけるF関数314に入力するラウンド鍵を、
RK=KA
として、第4ラウンドのF関数314に対する入力データの生成段階でKBの排他的論理和演算を、排他的論理和演算部324において実行して、そのデータを第4ラウンドのF関数に入力するデータとしても、結果としては同じ暗号処理が行われることになる。
The same applies to the fourth round. In the configuration of FIG. 14, the round key input to the F function 304 in the fourth round is processed by the exclusive OR operation unit 308.
RK 4 = KA 4 (EXOR) KB 4
Is entered as
As shown in FIG. 15, the round key input to the F function 314 in the third round is
RK 4 = KA 4
In the generation stage of input data for the F function 314 in the fourth round, the exclusive OR operation of KB 4 is executed in the exclusive OR operation unit 324, and the data is input to the F function in the fourth round. As a result, the same encryption processing is performed as data.

次に、図14と図15の構成における第5ラウンドの処理について比較する。
図14は、先に図10を参照して説明した回路を適用した第2ラウンド〜第5ラウンドの処理を説明しており、第2ラウンド〜第5ラウンドのラウンド関数のF関数302〜305には、以下のラウンド鍵が入力される。
第2ラウンド:RK=KA
第3ラウンド:RK=KA(EXOR)KB
第4ラウンド:RK=KA(EXOR)KB
第5ラウンド:RK=KA
すなわち、第5ラウンドでは第2中間鍵KBベースの鍵データKBは利用されない。
Next, the fifth round processing in the configurations of FIGS. 14 and 15 will be compared.
FIG. 14 illustrates the processing of the second to fifth rounds to which the circuit described above with reference to FIG. 10 is applied. The F functions 302 to 305 of the round functions of the second to fifth rounds are described. The following round key is input.
2nd round: RK 2 = KA 2
3rd round: RK 3 = KA 3 (EXOR) KB 3
4th round: RK 4 = KA 4 (EXOR) KB 4
5th round: RK 5 = KA 5
That is, the second intermediate key KB-based key data KB i is not used in the fifth round.

図14に示す第5ラウンドのF関数305の非線形変換部(Sボックス)への入力データ[U]は、図14に示すデータP,Q,R,KAによる下記の演算結果として表すことができる。
U=P(EXOR)Q(EXOR)R(EXOR)KA
The non-linear conversion section of the F-function 305 in the fifth round of FIG. 14 the input data [U] to (S boxes), the data P shown in FIG. 14, Q, R, can be expressed as the calculation result of the following by KA 5 it can.
U = P (EXOR) Q (EXOR) R (EXOR) KA 5

また、図15の構成における第5ラウンドのF関数315内の非線形変換部(Sボックス)に対する入力データ(U')は、図15に示すデータP,Q,R,KB,KAによる下記の演算結果として表すことができる。なおデータP,Q,R,KB,KAは、図14に示すデータと同一である。
U'=P(EXOR)KB(EXOR)Q(EXOR)KB(EXOR)R(EXOR)KA
このU'の算出式において、同一データである鍵KBについて2回繰り返して排他的論理和演算が実行されている。同じデータを2回繰り返して排他的論理和演算を行う処理は、その排他的論理和演算を実行しないのと同じ処理となる。
Furthermore, the nonlinear conversion unit in the F-function 315 in the fifth round in the configuration of FIG. 15 the input data for the (S Box) (U '), the following by data P, Q, R, KB 3 , KA 5 shown in FIG. 15 It can be expressed as the operation result of Data P, Q, R, KB 3 and KA 5 are the same as the data shown in FIG.
U ′ = P (EXOR) KB 3 (EXOR) Q (EXOR) KB 3 (EXOR) R (EXOR) KA 5
In the calculation formula of U ′, the exclusive OR operation is executed twice for the key KB 3 that is the same data. The process of performing the exclusive OR operation by repeating the same data twice is the same as not performing the exclusive OR operation.

従って、上記式は、上記式から鍵KBについての2回の排他的論理和演算を省略した下式、すなわち、
U'=P(EXOR)Q(EXOR)R(EXOR)KA
と同じ結果が得られる。
上記式は、前述の図14を参照して説明した図14に示す第5ラウンドのF関数305の非線形演算への入力データ[U]の算出式、
U=P(EXOR)Q(EXOR)R(EXOR)KA
上記の算出式と同じになる。すなわち、
U'=U
が成立し、図15の構成における第5ラウンドのF関数の非線形変換部に対する入力は、図14の構成における第5ラウンドのF関数の非線形変換部に対する入力と同一となる。
Therefore, the above formula is obtained by omitting two exclusive OR operations for the key KB 3 from the above formula, that is,
U ′ = P (EXOR) Q (EXOR) R (EXOR) KA 5
Gives the same result.
The above formula is a formula for calculating the input data [U] to the nonlinear calculation of the F function 305 in the fifth round shown in FIG. 14 described with reference to FIG.
U = P (EXOR) Q (EXOR) R (EXOR) KA 5
This is the same as the above calculation formula. That is,
U '= U
Thus, the input to the non-linear conversion unit of the fifth round F function in the configuration of FIG. 15 is the same as the input to the non-linear conversion unit of the F function of the fifth round in the configuration of FIG.

このように、従来型の図14に示す構成における第2中間鍵KBベースの鍵データKBが利用されないラウンドにおいても、そのラウンドに対して入力するラウンド鍵は、第1中間鍵KAベースの鍵KAのままに設定して、F関数に対する非入力データ側において、第2中間鍵ベースKBの同一の鍵KBを偶数回繰り返して排他的論理和演算を行わせる設定とすることで、結果としては同じ暗号処理が行われることになる。 In this way, even in a round in which the second intermediate key KB-based key data KB i in the conventional configuration shown in FIG. 14 is not used, the round key input to the round is a key based on the first intermediate key KA. The result is obtained by setting KA i as it is, and setting the same key KB i of the second intermediate key base KB to be repeated an even number of times on the non-input data side with respect to the F function to perform the exclusive OR operation. As a result, the same cryptographic processing is performed.

このような設定は、すべてのラウンドにおいて実現可能である。図15に示すようにラウンド関数に対する入力データに対して第2中間鍵KBベースの鍵KBの排他的論理和演算を行う構成とすることで、各ラウンドにおいて適用するラウンド鍵を第1中間鍵KAベースの鍵KAのみとすることができる。具体的には、図16に示すような暗号処理構成が実現される。この図16に示す暗号処理構成は、先に説明した図6に示す暗号処理構成と等価な構成を持つ。すなわち図6に示す暗号処理構成を適用して平文Pを入力して得られる暗号文Cと、図16に示す暗号処理構成を適用して同じ平文Pを入力して得られる暗号文Cとは同一となり、同じ暗号処理が行われることになる。 Such a setting can be realized in all rounds. As shown in FIG. 15, a configuration in which the exclusive OR operation of the second intermediate key KB-based key KB i is performed on the input data for the round function, the round key applied in each round is the first intermediate key. Only the KA-based key KA i can be used. Specifically, an encryption processing configuration as shown in FIG. 16 is realized. The cryptographic processing configuration shown in FIG. 16 has a configuration equivalent to the cryptographic processing configuration shown in FIG. 6 described above. That is, the ciphertext C obtained by inputting the plaintext P by applying the cryptographic processing configuration shown in FIG. 6 and the ciphertext C obtained by inputting the same plaintext P by applying the cryptographic processing configuration shown in FIG. The same encryption processing is performed.

このように、ラウンド関数に対するラウンド鍵を第1中間鍵KAベースの鍵KAのみとして、ラウンド関数に対する入力データに対して第2中間鍵KBベースの鍵KBの排他的論理和演算を行う構成とすることで、図17に示す簡略化した回路構成を用いた暗号処理が可能となる。 In this way, the round key for the round function is only the first intermediate key KA-based key KA i, and the exclusive OR operation of the second intermediate key KB-based key KB i is performed on the input data for the round function. Thus, encryption processing using the simplified circuit configuration shown in FIG. 17 is possible.

すなわち、図17は、図16に示す2系列のFeistel構造を持つデータ暗号化部のハードウェア構成である。この構成は、先に図10を参照して説明した図6に示す従来型の2系列のFeistel構造を持つデータ暗号化部のハードウェア構成に比較してセレクタ数が削減され、また排他論理和演算部も削減された簡略化した回路構成となっている。   That is, FIG. 17 shows the hardware configuration of the data encryption unit having the two series Feistel structure shown in FIG. In this configuration, the number of selectors is reduced and the exclusive OR is compared with the hardware configuration of the data encryption unit having the conventional 2-series Feistel structure shown in FIG. 6 described above with reference to FIG. It has a simplified circuit configuration with fewer arithmetic units.

図16に示す2系列のFeistel構造を持つデータ暗号化部のハードウェア構成例としての図17に示す暗号処理回路は、1つのラウンド関数回路351と、秘密鍵Kに基づいて例えば非線形変換によって生成される第1中間鍵KAから、第1中間鍵KAベースのn/2ビット鍵{KA,KA,…,KAr−1,KA}を生成する第1鍵生成部(KA生成回路)352と、秘密鍵Kに基づいて例えば異なる非線形変換によって生成される第2中間鍵KBから、第2中間鍵KBベースのn/2ビット鍵{KB,KB,…,KBr−3,KBr−2}を生成する第2鍵生成部(KB生成回路)353と、nビットデータレジスタ354と、セレクタ1〜2,355〜356と、排他的論理和演算部357を有する。 The cryptographic processing circuit shown in FIG. 17 as a hardware configuration example of the data encryption unit having the two series Feistel structure shown in FIG. 16 is generated by, for example, non-linear transformation based on one round function circuit 351 and the secret key K Key generation unit (KA i generation) that generates an n / 2-bit key {KA 1 , KA 2 ,..., KA r−1 , KA r } based on the first intermediate key KA. Circuit) 352 and a second intermediate key KB generated by, for example, different non-linear transformation based on the secret key K, an n / 2 bit key {KB 3 , KB 4 ,..., KB r− based on the second intermediate key KB a 3, a second key generation unit for generating a KB r-2} and (KB i generation circuit) 353, and n-bit data register 354, a selector 1~2,355~356, an exclusive OR operation section 357

まず、暗号化開始時には、第2鍵生成部(KB生成回路)353において、KBを生成し、セレクタ1,355は平文入力を、セレクタ2,356はKBを選択する設定とする。セレクタ1,355によって選択された平文入力のnビットは、上位n/2ビットと下位n/2ビットに分割され、下位n/2ビットがセレクタ2,356によって選択されたKBと、排他的論理和演算部357において排他的論理和された後、データレジスタ354に格納される。この排他的論理和演算部357における排他的論理和処理は、図16に示す構成の第1ラウンドの前の入力データの下位n/2ビット(P)とKBとの排他的論理和演算処理に相当する。 First, at the start of encryption, the second key generation unit (KB i generation circuit) 353 generates KB 0 , the selectors 1 and 355 select plain text input, and the selectors 2 and 356 select KB 0 . The n bits of the plaintext input selected by the selectors 1 and 355 are divided into upper n / 2 bits and lower n / 2 bits, and the lower n / 2 bits are exclusive of KB 0 selected by the selectors 2 and 356. After being subjected to exclusive OR in the OR operation unit 357, it is stored in the data register 354. The exclusive OR operation in the exclusive OR operation unit 357 is an exclusive OR operation between the lower n / 2 bits (P 1 ) of the input data before the first round and the KB 0 in the configuration shown in FIG. It corresponds to processing.

第1ラウンド目には、第1鍵生成部(KA生成回路)352においてKAを生成し、第2鍵生成部(KB生成回路)353においてKBを生成し、セレクタ1,355はラウンド関数回路351の出力を選択し、セレクタ2,356はKBを選択する設定とする。ラウンド関数回路351にはラウンド鍵として、第1鍵生成部(KA生成回路)352からKAが入力される。この第1ラウンドにおいて、KAを適用したラウンド関数処理が行われる。これは、図16に示す構成の第1ラウンドの処理に相当する。 In the first round, KA 1 is generated in the first key generation unit (KA i generation circuit) 352, KB 3 is generated in the second key generation unit (KB i generation circuit) 353, and the selectors 1 and 355 The output of the round function circuit 351 is selected, and the selectors 2 and 356 are set to select KB 3 . The round function circuit 351 receives KA 1 from the first key generation unit (KA i generation circuit) 352 as a round key. In this first round, round function processing using KA 1 is performed. This corresponds to the first round processing of the configuration shown in FIG.

第1ラウンドで、ラウンド関数回路351にラウンド鍵[KA]が入力されてラウンド関数を実行した結果データはセレクタ1,355から出力される。セレクタ1,355から出力されるnビットは、上位n/2ビットと下位n/2ビットに分割され、下位n/2ビットがセレクタ2,356の出力と排他的論理和演算部357において排他的論理和される。セレクタ2,356の出力は第2鍵生成部(KB生成回路)353において生成されたKBであり、セレクタ1,355から出力される下位n/2と、KBとの排他的論理和演算結果が、データレジスタ354に格納されるnビットデータの下位n/2ビットとなる。データレジスタ354に格納されるnビットデータの上位n/2ビットは、ラウンド関数回路351からセレクタ1,355を介して出力される上位n/2ビットである。 In the first round, the round key [KA 1 ] is input to the round function circuit 351 and the result data obtained by executing the round function is output from the selectors 1 and 355. The n bits output from the selectors 1 and 355 are divided into upper n / 2 bits and lower n / 2 bits, and the lower n / 2 bits are exclusive with the outputs of the selectors 2 and 356 in the exclusive OR operation unit 357. ORed. Exclusive OR of the output of the selector 2,356 is KB 3 generated in the second key generation unit (KB i generation circuit) 353, a lower n / 2 output from the selector 1,355, and KB 3 The operation result is the lower n / 2 bits of the n-bit data stored in the data register 354. The upper n / 2 bits of the n-bit data stored in the data register 354 are upper n / 2 bits output from the round function circuit 351 via the selectors 1 and 355.

第2ラウンド目には、第1鍵生成部(KA生成回路)352においてKAを生成し、第2鍵生成部(KB生成回路)353においてKBを生成し、セレクタ1,355はラウンド関数回路351の出力を選択し、セレクタ2,356は第2鍵生成部(KB生成回路)353において生成されたKBを選択する設定とする。 In the second round, the first key generation unit (KA i generation circuit) 352 generates KA 2 , the second key generation unit (KB i generation circuit) 353 generates KB 4 , and the selectors 1 and 355 The output of the round function circuit 351 is selected, and the selectors 2 and 356 are set to select the KB 4 generated by the second key generation unit (KB i generation circuit) 353.

ラウンド関数回路351にはラウンド鍵として、第1鍵生成部(KA生成回路)352において生成されたKAが入力される。第2ラウンドで、ラウンド関数回路351にラウンド鍵[KA]が入力されてラウンド関数を実行した結果データはセレクタ1,355から出力される。セレクタ1,355から出力されるnビットは、上位n/2ビットと下位n/2ビットに分割され、下位n/2ビットがセレクタ2,356の出力と排他的論理和演算部357において排他的論理和される。セレクタ2,356の出力は第2鍵生成部(KB生成回路)353において生成されたKBであるため、セレクタ1,355から出力される下位n/2と、KBとの排他的論理和演算結果が、データレジスタ354に格納されるnビットデータの下位n/2ビットとなる。データレジスタ354に格納されるnビットデータの上位n/2ビットは、ラウンド関数回路351からセレクタ1,355を介して出力される上位n/2ビットである。 The round function circuit 351 receives KA 2 generated by the first key generation unit (KA i generation circuit) 352 as a round key. In the second round, the round key [KA 2 ] is input to the round function circuit 351 and the result data obtained by executing the round function is output from the selectors 1 and 355. The n bits output from the selectors 1 and 355 are divided into upper n / 2 bits and lower n / 2 bits, and the lower n / 2 bits are exclusive with the outputs of the selectors 2 and 356 in the exclusive OR operation unit 357. ORed. Since the outputs of the selectors 2 and 356 are KB 4 generated by the second key generation unit (KB i generation circuit) 353, the exclusive logic between the low-order n / 2 output from the selectors 1 and 355 and the KB 4 The result of the sum operation is the lower n / 2 bits of the n-bit data stored in the data register 354. The upper n / 2 bits of the n-bit data stored in the data register 354 are upper n / 2 bits output from the round function circuit 351 via the selectors 1 and 355.

これらの処理をラウンド数に応じて繰り返す。
第(r−1)ラウンド目には、第1鍵生成部(KA生成回路)352においてKAr−1を生成し、セレクタ1,355はラウンド関数回路351の出力を選択し、セレクタ2,356は0を選択する設定とする。
These processes are repeated according to the number of rounds.
In the (r−1) -th round, the first key generation unit (KA i generation circuit) 352 generates KA r−1 , the selectors 1 and 355 select the output of the round function circuit 351, and the selectors 2 and 2 356 is set to select 0.

ラウンド関数回路351にはラウンド鍵としてKAr−1が入力される。第(r−1)ラウンドで、ラウンド関数回路351にラウンド鍵[KAr−1]が入力されてラウンド関数を実行した結果データはセレクタ1,355から出力される。セレクタ1,355から出力されるnビットは、上位n/2ビットと下位n/2ビットに分割され、下位n/2ビットがセレクタ2,356の出力と排他的論理和演算部357において排他的論理和される。セレクタ2,356の出力は0であり、セレクタ1,355から出力されるnビットがそのままデータレジスタ354に格納される。この処理は、図16に示す(r−1)ラウンドの処理に相当する。図16に示すように最終ラウンドの第rラウンド目に入力する下位n/2ビットには、鍵KBとの排他論理和を行わない構成となっている。 KA r-1 is input to the round function circuit 351 as a round key. In the (r−1) -th round, the round key [KA r−1 ] is input to the round function circuit 351 and the result data obtained by executing the round function is output from the selectors 1 and 355. The n bits output from the selectors 1 and 355 are divided into upper n / 2 bits and lower n / 2 bits, and the lower n / 2 bits are exclusive with the outputs of the selectors 2 and 356 in the exclusive OR operation unit 357. ORed. The outputs of the selectors 2 and 356 are 0, and n bits output from the selectors 1 and 355 are stored in the data register 354 as they are. This process corresponds to the (r-1) round process shown in FIG. As shown in FIG. 16, the low-order n / 2 bits input in the r-th round of the final round are configured not to perform exclusive OR with the key KB i .

最終の第rラウンド目には、第1鍵生成部(KA生成回路)352においてKAを生成し、第2鍵生成部(KB生成回路)353はKBr+1を生成し、セレクタ1,355はラウンド関数回路351の出力を選択し、セレクタ2,356は、第2鍵生成部(KB生成回路)353において生成されたKBr+1を選択する設定とする。 In the final r-th round, the first key generation unit (KA i generation circuit) 352 generates KA r , the second key generation unit (KB i generation circuit) 353 generates KB r + 1 , and the selector 1, 355 selects the output of the round function circuit 351, and the selectors 2 and 356 are set to select KB r + 1 generated by the second key generation unit (KB i generation circuit) 353.

ラウンド関数回路351には第1鍵生成部(KA生成回路)352において生成されたラウンド鍵としてKAが入力される。第rラウンドで、ラウンド関数回路351にラウンド鍵[KA]が入力されてラウンド関数を実行した結果データはセレクタ1,355から出力される。セレクタ1,355から出力されるnビットは、上位n/2ビットと下位n/2ビットに分割され、下位n/2ビットがセレクタ2,356の出力と排他的論理和演算部357において排他的論理和される。セレクタ2,356の出力はKBr+1であり、ラウンド関数回路351の出力の下位n/2ビットと、KBr+1との排他的論理和結果がデータレジスタ354に格納される。データレジスタ354に格納されるnビットデータの上位n/2ビットは、ラウンド関数回路351からセレクタ1,355を介して出力される上位n/2ビットである。この処理は、図16に示すrラウンド目の出力とKBr+1との排他的論理和処理を実行する構成に相当する。 KA r is input to the round function circuit 351 as a round key generated by the first key generation unit (KA i generation circuit) 352. In the r-th round, the round key [KA r ] is input to the round function circuit 351 and the result data obtained by executing the round function is output from the selectors 1 and 355. The n bits output from the selectors 1 and 355 are divided into upper n / 2 bits and lower n / 2 bits, and the lower n / 2 bits are exclusive with the outputs of the selectors 2 and 356 in the exclusive OR operation unit 357. ORed. The output of the selectors 2 and 356 is KB r + 1 , and the exclusive OR result of the lower n / 2 bits of the output of the round function circuit 351 and KB r + 1 is stored in the data register 354. The upper n / 2 bits of the n-bit data stored in the data register 354 are upper n / 2 bits output from the round function circuit 351 via the selectors 1 and 355. This process corresponds to a configuration for performing an exclusive OR process between the output of the r-th round and KB r + 1 shown in FIG.

以上の処理により、データレジスタ354には、
暗号文C=C|Cが格納される。
図16に示す暗号化構成の処理を実行する回路として構成される図17に示す回路構成は、先に説明した図6の暗号化構成に対応する図10に示す回路構成と比較して簡略化された構成である、すなわちセレクタ回路および排他的論理和回路が一つずつ削減され、回路の小型化およびコスト削減が可能となる。
With the above processing, the data register 354 has
The ciphertext C = C 0 | C 1 is stored.
The circuit configuration shown in FIG. 17 configured as a circuit for executing the processing of the encryption configuration shown in FIG. 16 is simplified compared to the circuit configuration shown in FIG. 10 corresponding to the encryption configuration shown in FIG. In other words, the selector circuit and the exclusive OR circuit are reduced one by one, and the circuit can be reduced in size and cost.

図17に示す暗号処理回路の各構成部の実行する処理をまとめると以下のようになる。
第1鍵生成部(KA生成回路)352は、第1中間鍵KAに基づいて、ラウンド1〜rの各ラウンド関数に各々入力するr個のラウンド鍵KA〜KAを生成する。
ラウンド関数実行部としてのラウンド関数回路351は、ラウンド1〜rの各ラウンド関数に、第1中間鍵KAに基づいて生成されるr個のラウンド鍵KA〜KAを順次入力してラウンド関数を実行する。
第2鍵生成部(KB生成回路)353は、第2中間鍵KBに基づいて、ラウンド関数の開始前において適用する初期鍵KBと、rラウンドの最終ラウンド関数の開始後において適用する最終鍵KBr+1と、連続2ラウンドおきのラウンドに対応する鍵KB,KB,・・・KBr−3,KBr−2を生成する。
排他的論理和演算部357は、入力データ、またはラウンド関数実行部としてのラウンド関数回路351からの出力データの構成データと、第2中間鍵KBに基づいて生成される鍵KB,KB,KB,・・・KBr−3,KBr−2,KBr+1から選択した鍵KBとの排他的論理和演算を実行する。
このような処理構成となる。
The processing executed by each component of the cryptographic processing circuit shown in FIG. 17 is summarized as follows.
Based on the first intermediate key KA, the first key generation unit (KA i generation circuit) 352 generates r round keys KA 1 to KA r that are input to the respective round functions of rounds 1 to r .
A round function circuit 351 as a round function execution unit sequentially inputs r round keys KA 1 to KA r generated based on the first intermediate key KA to each of round functions 1 to r. Execute.
The second key generation unit (KB i generation circuit) 353, based on the second intermediate key KB, the initial key KB 0 applied before the start of the round function and the final key applied after the start of the final round function of the r round A key KB r + 1 and keys KB 3 , KB 4 ,... KB r-3 , KB r-2 corresponding to every two consecutive rounds are generated.
The exclusive OR operation unit 357 includes input data or configuration data of output data from the round function circuit 351 as a round function execution unit, and keys KB 0 , KB 3 , generated based on the second intermediate key KB. An exclusive OR operation with the key KB i selected from KB 4 ,..., KB r−3 , KB r−2 , KB r + 1 is executed.
Such a processing configuration is obtained.

なお、排他的論理和演算部357は、第2中間鍵KBに基づいて生成される鍵KB,KB,・・・KBr−3,KBr−2から選択した同一鍵を、異なるラウンドのラウンド関数実行部からの出力データに対して2回繰り返して利用した排他的論理和演算を実行する。具体的には、4つの連続するラウンド関数に対する入力ラウンド鍵を下記の設定とした場合と等価な設定、すなわち、4連続ラウンドp〜p+3に対して、
(a)pラウンドにラウンド鍵KAを入力、
(b)p+1ラウンドにラウンド鍵KAp+1を入力、
(c)p+2ラウンドにラウンド鍵[KAp+2(EXOR)KBp+2]を入力、
(d)p+3ラウンドにラウンド鍵[KAp+3(EXOR)KBp+3]を入力、
上記(a)〜(d)のラウンド鍵の入力処理と等価な処理になるように鍵KBから選択した同一鍵を2回繰り返して利用した排他的論理和演算処理を実行する。なお、p+4ラウンド以降も上記のp〜p+3ラウンドと同様、KAを連続2ラウンド、KA(EXOR)KBを連続2ラウンドに入力した設定と等価となるように排他的論理和演算処理を実行する。
The exclusive OR operation unit 357 applies different keys to the same key selected from the keys KB 3 , KB 4 ,... KB r-3 , KB r-2 generated based on the second intermediate key KB. The exclusive OR operation that is used twice is executed on the output data from the round function execution unit. Specifically, for the setting equivalent to the case where the input round keys for four consecutive round functions are set as follows, that is, for four consecutive rounds p to p + 3,
(A) Enter the round key KA p in the p round,
(B) Enter the round key KA p + 1 in p + 1 round,
(C) Enter the round key [KA p + 2 (EXOR) KB p + 2 ] in the p + 2 round,
(D) Enter the round key [KA p + 3 (EXOR) KB p + 3 ] in the p + 3 round,
An exclusive OR operation process using the same key selected from the key KB i twice is executed so as to be equivalent to the round key input process of (a) to (d) above. As in the even p + 4 rounds since the above p~p + 3 rounds, consecutive KA i 2 rounds, the exclusive OR operation processing so as to be set equivalent to enter the KA i (EXOR) KB i on two consecutive rounds Run.

このように図16に示す暗号化構成の処理を実行する図17に示す回路構成は、先に説明した図6の暗号化構成に対応する図10に示す回路構成と比較して簡略化された構成、すなわちセレクタ回路および排他的論理和回路が一つずつ削減され、回路の小型化およびコスト削減が可能となる。   Thus, the circuit configuration shown in FIG. 17 for executing the processing of the encryption configuration shown in FIG. 16 is simplified compared to the circuit configuration shown in FIG. 10 corresponding to the encryption configuration shown in FIG. The configuration, that is, the selector circuit and the exclusive OR circuit are reduced one by one, and the circuit can be reduced in size and cost.

(2)実施例2:2系列Feistel構造における第2適用例
次に、実施例2として、2系列Feistel構造における第2の適用例について説明する。すなわち、先に図7を参照して説明したnビットの入力平文Pを上位下位n/2ビットずつの2系列に分割して処理を行う2系列のFeistel構造のデータ暗号化部に対応する簡略化回路構成である。なお、図7に示す2系列型の従来の回路構成は図11に示す回路構成である。
(2) Example 2: Second Application Example in Two-Series Feistel Structure Next, as Example 2, a second application example in the two-series Feistel structure will be described. In other words, the n-bit input plaintext P described with reference to FIG. 7 is divided into two series of upper and lower n / 2 bits, and the simplified processing corresponding to the data encryption unit having the two series Feistel structure. Circuit configuration. Note that the conventional circuit configuration of the two-line type shown in FIG. 7 is that shown in FIG.

本実施例に係るラウンド関数を実行するデータ暗号化部の回路構成は図20に示す回路構成となるが、この図20に示す回路構成の説明の前に、図18〜図19を参照して、回路の簡略化を実現するための理論的な説明を行う。   The circuit configuration of the data encryption unit that executes the round function according to the present embodiment is the circuit configuration illustrated in FIG. 20, but before the description of the circuit configuration illustrated in FIG. 20, refer to FIGS. 18 to 19. A theoretical explanation for realizing simplification of the circuit will be given.

図18は、本発明に従った図20に示す回路を適用した第2ラウンド〜第5ラウンドの処理を説明する図である。第2ラウンド〜第5ラウンドのラウンド関数のF関数412〜415には、以下のラウンド鍵が入力される。
第2ラウンド:RK=KA
第3ラウンド:RK=KA
第4ラウンド:RK=KA
第5ラウンド:RK=KA
FIG. 18 is a diagram for explaining the second to fifth round processes to which the circuit shown in FIG. 20 according to the present invention is applied. The following round keys are input to the F functions 412 to 415 of the second to fifth round functions.
2nd round: RK 2 = KA 2
3rd round: RK 3 = KA 3
4th round: RK 4 = KA 4
5th round: RK 5 = KA 5

さらに、図18に示す構成では、第3ラウンドに入力するnビット中、第3ラウンドのF関数に入力するn/2ビットと、第2中間鍵KBベースのn/2ビット鍵KBとの排他的論理和演算を排他的論理和演算部421において実行して、この結果のn/2ビットデータを第3ラウンドのF関数413の入力として、この入力と第3ラウンドのF関数に入力するラウンド鍵KAとの排他的論理和演算をF関数413内の排他的論理和演算部422において行い、その結果データ(データT')をF関数413内の非線形変換部(Sボックス)に対する入力としている。 Furthermore, in the configuration shown in FIG. 18, among n bits input in the third round, n / 2 bits input to the F function of the third round and an n / 2 bit key KB 3 based on the second intermediate key KB The exclusive OR operation is executed in the exclusive OR operation unit 421, and the resultant n / 2-bit data is input to this input and the third round F function as the input of the third round F function 413. The exclusive OR operation with the round key KA 3 is performed in the exclusive OR operation unit 422 in the F function 413, and the result data (data T ′) is input to the nonlinear conversion unit (S box) in the F function 413. It is said.

なお、図7に示すFeistel構造と図6に示すFeistel構造とは、初期鍵と最終鍵の入力位置が異なるのみであり、1〜rラウンドのラウンド演算の処理構成は同一であるので、この図18の構成における各ラウンドのF関数に対する入力と、図6、図7のFeistel構造に対応する図14に示す暗号処理構成におけるF関数に対する入力を比較する。図14に示す暗号処理構成は、先に図7に対応する回路構成として説明した図11の回路による暗号処理構成に相当する。   The Feistel structure shown in FIG. 7 and the Feistel structure shown in FIG. 6 differ only in the input positions of the initial key and the final key, and the processing configuration of round operations of 1 to r rounds is the same. The input to the F function in each round in the configuration of 18 is compared with the input to the F function in the cryptographic processing configuration shown in FIG. 14 corresponding to the Feistel structure in FIGS. The encryption processing configuration shown in FIG. 14 corresponds to the encryption processing configuration by the circuit of FIG. 11 described above as the circuit configuration corresponding to FIG.

図18の構成における第3ラウンドのF関数413内の非線形変換部(Sボックス)に対する入力データ(T')と、図14における第3ラウンドのF関数303内の非線形変換部(Sボックス)に対する入力データ(T)を比較してみる。   The input data (T ′) for the nonlinear transformation unit (S box) in the third round F function 413 and the nonlinear transformation unit (S box) in the third round F function 303 in FIG. Compare the input data (T).

図14に示す第3ラウンドのF関数内部の非線形演算への入力データ[T]は、先に説明したように、図14に示すデータP,Q,KA,KBによる下記の演算結果として表すことができる。
T=P(EXOR)Q(EXOR)KA(EXOR)KB
As described above, the input data [T] to the nonlinear calculation in the third round F function shown in FIG. 14 is the following calculation result based on the data P, Q, KA 3 , KB 3 shown in FIG. Can be represented.
T = P (EXOR) Q (EXOR) KA 3 (EXOR) KB 3

また、図18の構成における第3ラウンドのF関数413内の非線形変換部(Sボックス)に対する入力データ(T')は、図18に示すデータP,Q,KA,KBによる下記の演算結果として表すことができる。なおデータP,Q,KA,KBは、図14に示すデータと同一である。
T'=P(EXOR)Q(EXOR)KB(EXOR)KA
このT'の算出式は、上記Tの算出式と等価である。すなわち、
T'=T
が成立し、図18の構成における第3ラウンドのF関数の非線形変換部に対する入力は、図14の構成における第3ラウンドのF関数の非線形変換部に対する入力と同一となる。
The third non-linear conversion section in the F function 413 rounds in the configuration of FIG. 18 the input data for the (S Box) (T '), the calculation by the data P, Q, KA 3, KB 3 shown in FIG. 18 below Can be expressed as a result. Data P, Q, KA 3 and KB 3 are the same as the data shown in FIG.
T ′ = P (EXOR) Q (EXOR) KB 3 (EXOR) KA 3
The formula for calculating T ′ is equivalent to the formula for calculating T. That is,
T '= T
Thus, the input to the non-linear transformation unit of the third round F function in the configuration of FIG. 18 is the same as the input to the non-linear transformation unit of the F function of the third round in the configuration of FIG.

このように、第3ラウンドにおけるF関数に入力するラウンド鍵を、
図14の構成では、RK=KA(EXOR)KB
としているが、
図18に示すように、第3ラウンドにおけるF関数に入力するラウンド鍵を、
RK=KA
として、第3ラウンドのF関数に対する入力データの生成段階でKBの排他的論理和演算を実行して、そのデータを第3ラウンドのF関数に入力するデータとしても、結果としては同じ暗号処理が行われることになる。
Thus, the round key input to the F function in the third round is
In the configuration of FIG. 14, RK 3 = KA 3 (EXOR) KB 3
But
As shown in FIG. 18, the round key input to the F function in the third round is
RK 3 = KA 3
As a result, if the exclusive OR operation of KB 3 is executed at the generation stage of the input data for the F function of the third round and the data is input to the F function of the third round, the same cryptographic processing is obtained as a result. Will be done.

このことは、第4ラウンドについても同様であり、図14の構成では、第4ラウンドにおけるF関数304に入力するラウンド鍵を、排他的論理和演算部308の処理により、
RK=KA(EXOR)KB
として入力しているが、
図18の構成のように、第3ラウンドにおけるF関数414に入力するラウンド鍵を、
RK=KA
として、第4ラウンドのF関数414に対する入力データの生成段階でKBの排他的論理和演算を、排他的論理和演算部423において実行して、そのデータを第4ラウンドのF関数に入力するデータとしても、結果としては同じ暗号処理が行われることになる。
The same applies to the fourth round. In the configuration of FIG. 14, the round key input to the F function 304 in the fourth round is processed by the exclusive OR operation unit 308.
RK 4 = KA 4 (EXOR) KB 4
Is entered as
As in the configuration of FIG. 18, the round key input to the F function 414 in the third round is
RK 4 = KA 4
In the generation stage of input data for the F function 414 in the fourth round, the exclusive OR operation of KB 4 is executed in the exclusive OR operation unit 423, and the data is input to the F function in the fourth round. As a result, the same encryption processing is performed as data.

次に、図14と図18の構成における第5ラウンドの処理について比較する。
図14は、先に図11を参照して説明した回路を適用した第2ラウンド〜第5ラウンドの処理を説明しており、第2ラウンド〜第5ラウンドのラウンド関数のF関数302〜305には、以下のラウンド鍵が入力される。
第2ラウンド:RK=KA
第3ラウンド:RK=KA(EXOR)KB
第4ラウンド:RK=KA(EXOR)KB
第5ラウンド:RK=KA
すなわち、第5ラウンドでは第2中間鍵KBベースの鍵データKBは利用されない。
Next, the fifth round processing in the configurations of FIGS. 14 and 18 will be compared.
FIG. 14 illustrates the processing from the second round to the fifth round to which the circuit described above with reference to FIG. 11 is applied. The following round key is input.
2nd round: RK 2 = KA 2
3rd round: RK 3 = KA 3 (EXOR) KB 3
4th round: RK 4 = KA 4 (EXOR) KB 4
5th round: RK 5 = KA 5
That is, the second intermediate key KB-based key data KB i is not used in the fifth round.

図14に示す第5ラウンドのF関数305の非線形変換部(Sボックス)への入力データ[U]は、図14に示すデータP,Q,R,KAによる下記の演算結果として表すことができる。
U=P(EXOR)Q(EXOR)R(EXOR)KA
The non-linear conversion section of the F-function 305 in the fifth round of FIG. 14 the input data [U] to (S boxes), the data P shown in FIG. 14, Q, R, can be expressed as the calculation result of the following by KA 5 it can.
U = P (EXOR) Q (EXOR) R (EXOR) KA 5

また、図18の構成における第5ラウンドのF関数415内の非線形変換部(Sボックス)に対する入力データ(U')は、図18に示すデータP,Q,R,KA,KBによる下記の演算結果として表すことができる。なおデータP,Q,R,KA,KBは、図14に示すデータと同一である。
U'=P(EXOR)Q(EXOR)KB(EXOR)R(EXOR)KB(EXOR)KA
このU'の算出式において、同一データである鍵KBについて2回繰り返して排他的論理和演算が実行されている。同じデータを2回繰り返して排他的論理和演算を行う処理は、その排他的論理和演算を実行しないのと同じ処理となる。
Also, the input data (U ′) to the nonlinear transformation unit (S box) in the F function 415 of the fifth round in the configuration of FIG. 18 is the following by the data P, Q, R, KA 5 , KB 3 shown in FIG. It can be expressed as the operation result of The data P, Q, R, KA 5 , KB 3 are the same as the data shown in FIG.
U ′ = P (EXOR) Q (EXOR) KB 3 (EXOR) R (EXOR) KB 3 (EXOR) KA 5
In the calculation formula of U ′, the exclusive OR operation is executed twice for the key KB 3 that is the same data. The process of performing the exclusive OR operation by repeating the same data twice is the same as not performing the exclusive OR operation.

従って、上記式は、上記式から鍵KBについての2回の排他的論理和演算を省略した下式、すなわち、
U'=P(EXOR)Q(EXOR)R(EXOR)KA
と同じ結果が得られる。
上記式は、前述の図14を参照して説明した図14に示す第5ラウンドのF関数305の非線形演算への入力データ[U]の算出式、
U=P(EXOR)Q(EXOR)R(EXOR)KA
上記の算出式と同じになる。すなわち、
U'=U
が成立し、図18の構成における第5ラウンドのF関数の非線形変換部に対する入力は、図14の構成における第5ラウンドのF関数の非線形変換部に対する入力と同一となる。
Therefore, the above formula is obtained by omitting two exclusive OR operations for the key KB 3 from the above formula, that is,
U ′ = P (EXOR) Q (EXOR) R (EXOR) KA 5
Gives the same result.
The above formula is a formula for calculating the input data [U] to the nonlinear calculation of the F function 305 in the fifth round shown in FIG. 14 described with reference to FIG.
U = P (EXOR) Q (EXOR) R (EXOR) KA 5
This is the same as the above calculation formula. That is,
U '= U
Thus, the input to the non-linear conversion unit of the fifth round F function in the configuration of FIG. 18 is the same as the input to the non-linear conversion unit of the F function of the fifth round in the configuration of FIG.

このように、従来型の図14に示す構成における第2中間鍵KBベースの鍵データKBが利用されないラウンドにおいても、そのラウンドに対して入力するラウンド鍵は、第1中間鍵KAベースの鍵KAのままに設定して、F関数に対する入力データ側において、第2中間鍵ベースKBの同一の鍵KBを偶数回繰り返して排他的論理和演算を行わせる設定とすることで、結果としては同じ暗号処理が行われることになる。 In this way, even in a round in which the second intermediate key KB-based key data KB i in the conventional configuration shown in FIG. 14 is not used, the round key input to the round is a key based on the first intermediate key KA. By setting KA i as it is and setting the same key KB i of the second intermediate key base KB to be repeated an even number of times on the input data side for the F function, as a result, Are subject to the same cryptographic processing.

このような設定は、すべてのラウンドにおいて実現可能である。図18に示すようにラウンド関数に対する入力データに対して第2中間鍵KBベースの鍵KBの排他的論理和演算を行う構成とすることで、各ラウンドにおいて適用するラウンド鍵を第1中間鍵KAベースの鍵KAのみとすることができる。具体的には、図19に示すような暗号処理構成が実現される。この図19に示す暗号処理構成は、先に説明した図7に示す暗号処理構成と等価な構成を持つ。すなわち図7に示す暗号処理構成を適用して平文Pを入力して得られる暗号文Cと、図19に示す暗号処理構成を適用して同じ平文Pを入力して得られる暗号文Cとは同一となり、同じ暗号処理が行われることになる。 Such a setting can be realized in all rounds. As shown in FIG. 18, the round key to be applied in each round is set as the first intermediate key by performing an exclusive OR operation of the key KB i based on the second intermediate key KB with respect to the input data for the round function. Only the KA-based key KA i can be used. Specifically, an encryption processing configuration as shown in FIG. 19 is realized. The cryptographic processing configuration shown in FIG. 19 has a configuration equivalent to the cryptographic processing configuration shown in FIG. 7 described above. That is, the ciphertext C obtained by inputting the plaintext P by applying the cryptographic processing configuration shown in FIG. 7 and the ciphertext C obtained by inputting the same plaintext P by applying the cryptographic processing configuration shown in FIG. The same encryption processing is performed.

このように、ラウンド関数に対するラウンド鍵を第1中間鍵KAベースの鍵KAのみとして、ラウンド関数に対する入力データに対して第2中間鍵KBベースの鍵KBの排他的論理和演算を行う構成とすることで、図20に示す簡略化した回路構成を用いた暗号処理が可能となる。 In this way, the round key for the round function is only the first intermediate key KA-based key KA i and the exclusive OR operation of the second intermediate key KB-based key KB i is performed on the input data for the round function. By doing so, encryption processing using the simplified circuit configuration shown in FIG. 20 becomes possible.

すなわち、図20は、図19に示す2系列のFeistel構造を持つデータ暗号化部のハードウェア構成である。この構成は、先に図11を参照して説明した図7に示す従来型の2系列のFeistel構造を持つデータ暗号化部のハードウェア構成に比較してセレクタ数が削減され、また排他論理和演算部も削減された簡略化した回路構成となっている。   That is, FIG. 20 shows the hardware configuration of the data encryption unit having the two series Feistel structure shown in FIG. In this configuration, the number of selectors is reduced compared to the hardware configuration of the data encryption unit having the conventional two-series Feistel structure shown in FIG. 7 described above with reference to FIG. It has a simplified circuit configuration with fewer arithmetic units.

図20に示す暗号処理回路は、1つのラウンド関数回路451と、秘密鍵Kに基づいて例えば非線形変換によって生成される第1中間鍵KAから、第1中間鍵KAベースのn/2ビット鍵{KA,KA,…,KAr−1,KA}を生成する第1鍵生成部(KA生成回路)452と、秘密鍵Kに基づいて例えば異なる非線形変換によって生成される第2中間鍵KBから、第2中間鍵KBベースのn/2ビット鍵{KB,KB,…,KBr−3,KBr−2}を生成する第2鍵生成部(KB生成回路)453と、nビットデータレジスタ454と、セレクタ1〜2,455〜456と、排他的論理和演算部457を有する。 The cryptographic processing circuit shown in FIG. 20 includes, from one round function circuit 451 and a first intermediate key KA generated by, for example, non-linear transformation based on the secret key K, a first intermediate key KA-based n / 2-bit key { KA 1 , KA 2 ,..., KA r−1 , KA r }, and a second intermediate generated by, for example, different non-linear transformation based on the secret key K, and a first key generation unit (KA i generation circuit) 452. Second key generation unit (KB i generation circuit) 453 that generates an n / 2-bit key {KB 3 , KB 4 ,..., KB r-3 , KB r-2 } based on the second intermediate key KB. An n-bit data register 454, selectors 1 to 2, 455 to 456, and an exclusive OR operation unit 457.

まず、暗号化開始時には、第2鍵生成部(KB生成回路)453において、KBを生成し、セレクタ1,455は平文入力を、セレクタ2,456はKBを選択する設定とする。セレクタ1,455によって選択された平文入力のnビットは、上位n/2ビットと下位n/2ビットに分割され、上位n/2ビットがセレクタ2,456によって選択されたKBと、排他的論理和演算部457において排他的論理和された後、データレジスタ454に格納される。この排他的論理和演算部457における排他的論理和処理は、図19に示す構成の第1ラウンドの前の入力データの上位n/2ビット(P)とKBとの排他的論理和演算処理に相当する。 First, at the start of encryption, the second key generation unit (KB i generation circuit) 453 generates KB 0 , the selectors 1 and 455 select plain text input, and the selectors 2 and 456 select KB 0 . The n bits of the plaintext input selected by the selectors 1 and 455 are divided into upper n / 2 bits and lower n / 2 bits, and the upper n / 2 bits are exclusive of KB 0 selected by the selectors 2 and 456. An exclusive OR is performed in the OR operation unit 457 and then stored in the data register 454. Exclusive OR process in this exclusive OR operation unit 457, XORed with the upper n / 2 bits (P 0) and KB 0 of the input data before the first round of the configuration shown in FIG. 19 It corresponds to processing.

第1ラウンド目には、第1鍵生成部(KA生成回路)452においてKAを生成し、セレクタ1,455はラウンド関数回路451の出力を選択し、セレクタ2,456は0を選択する設定とする。ラウンド関数回路451にはラウンド鍵として、第1鍵生成部(KA生成回路)452からKAが入力される。この第1ラウンドにおいて、KAを適用したラウンド関数処理が行われる。これは、図19に示す構成の第1ラウンドの処理に相当する。 In the first round, KA 1 is generated in the first key generation unit (KA i generation circuit) 452, selectors 1 and 455 select the output of the round function circuit 451, and selectors 2 and 456 select 0. Set. KA 1 is input from the first key generation unit (KA i generation circuit) 452 to the round function circuit 451 as a round key. In this first round, round function processing using KA 1 is performed. This corresponds to the first round processing of the configuration shown in FIG.

第1ラウンドで、ラウンド関数回路451にラウンド鍵[KA]が入力されてラウンド関数を実行した結果データはセレクタ1,455から出力される。セレクタ1,455から出力されるnビットは、上位n/2ビットと下位n/2ビットに分割され、上位n/2ビットがセレクタ2,456の出力と排他的論理和演算部457において排他的論理和される。セレクタ2,456の出力は0であり、セレクタ1,455から出力されるデータがそのままデータレジスタ454に格納される。 In the first round, the round key [KA 1 ] is input to the round function circuit 451 and the result data obtained by executing the round function is output from the selectors 1 and 455. The n bits output from the selectors 1 and 455 are divided into upper n / 2 bits and lower n / 2 bits, and the upper n / 2 bits are exclusive from the outputs of the selectors 2 and 456 in the exclusive OR operation unit 457. ORed. The outputs of the selectors 2 and 456 are 0, and the data output from the selectors 1 and 455 is stored in the data register 454 as it is.

第2ラウンド目には、第1鍵生成部(KA生成回路)452においてKAを生成し、セレクタ1,455はラウンド関数回路451の出力を選択し、セレクタ2,456は第2鍵生成部(KB生成回路)453において生成されたKBを選択する設定とする。 In the second round, the first key generation unit (KA i generation circuit) 452 generates KA 2 , the selectors 1 and 455 select the output of the round function circuit 451, and the selectors 2 and 456 generate the second key. It is assumed that KB 3 generated in the unit (KB i generation circuit) 453 is selected.

ラウンド関数回路451にはラウンド鍵として、第1鍵生成部(KA生成回路)452において生成されたKAが入力される。第2ラウンドで、ラウンド関数回路451にラウンド鍵[KA]が入力されてラウンド関数を実行した結果データはセレクタ1,455から出力される。セレクタ1,455から出力されるnビットは、上位n/2ビットと下位n/2ビットに分割され、上位n/2ビットがセレクタ2,456の出力と排他的論理和演算部457において排他的論理和される。セレクタ2,456の出力は第2鍵生成部(KB生成回路)453において生成されたKBであるため、セレクタ1,455から出力される上位n/2と、KBとの排他的論理和演算結果が、データレジスタ454に格納されるnビットデータの上位n/2ビットとなる。データレジスタ454に格納されるnビットデータの下位n/2ビットは、ラウンド関数回路451からセレクタ1,455を介して出力される下位n/2ビットである。 The round function circuit 451 receives KA 2 generated in the first key generation unit (KA i generation circuit) 452 as a round key. In the second round, the round key [KA 2 ] is input to the round function circuit 451 and the result data obtained by executing the round function is output from the selectors 1 and 455. The n bits output from the selectors 1 and 455 are divided into upper n / 2 bits and lower n / 2 bits, and the upper n / 2 bits are exclusive from the outputs of the selectors 2 and 456 in the exclusive OR operation unit 457. ORed. Since the outputs of the selectors 2 and 456 are KB 3 generated by the second key generation unit (KB i generation circuit) 453, the exclusive logic between the upper n / 2 output from the selectors 1 and 455 and the KB 3 The result of the sum operation is the upper n / 2 bits of the n-bit data stored in the data register 454. The lower n / 2 bits of the n-bit data stored in the data register 454 are lower n / 2 bits output from the round function circuit 451 via the selectors 1 and 455.

これらの処理をラウンド数に応じて繰り返す。
第(r−1)ラウンド目には、第1鍵生成部(KA生成回路)452においてKAr−1を生成し、第2鍵生成部(KB生成回路)453ではKBr−2を生成する。セレクタ1,455はラウンド関数回路451の出力を選択し、セレクタ2,456は、第2鍵生成部(KB生成回路)453において生成されたKBr−2を選択する設定とする。
These processes are repeated according to the number of rounds.
In the (r-1) -th round, KA r-1 is generated in the first key generation unit (KA i generation circuit) 452, and KB r-2 is generated in the second key generation unit (KB i generation circuit) 453. Generate. The selectors 1 and 455 select the output of the round function circuit 451, and the selectors 2 and 456 are set to select the KB r-2 generated by the second key generation unit (KB i generation circuit) 453.

ラウンド関数回路451にはラウンド鍵としてKAr−1が入力される。第(r−1)ラウンドで、ラウンド関数回路451にラウンド鍵[KAr−1]が入力されてラウンド関数を実行した結果データはセレクタ1,455から出力される。セレクタ1,455から出力されるnビットは、上位n/2ビットと下位n/2ビットに分割され、上位n/2ビットがセレクタ2,456の出力と排他的論理和演算部457において排他的論理和される。セレクタ2,456の出力は第2鍵生成部(KB生成回路)453において生成されたKBr−2であり、セレクタ1,455から出力される上位n/2と、KBr−2との排他的論理和演算結果が、データレジスタ454に格納されるnビットデータの上位n/2ビットとなる。データレジスタ454に格納されるnビットデータの下位n/2ビットは、ラウンド関数回路451からセレクタ1,455を介して出力される下位n/2ビットである。この処理は、図19に示す(r−1)ラウンドの処理に相当する。 KA r-1 is input to the round function circuit 451 as a round key. In the (r−1) -th round, the round key [KA r−1 ] is input to the round function circuit 451 and the result data obtained by executing the round function is output from the selectors 1 and 455. The n bits output from the selectors 1 and 455 are divided into upper n / 2 bits and lower n / 2 bits, and the upper n / 2 bits are exclusive from the outputs of the selectors 2 and 456 in the exclusive OR operation unit 457. ORed. The output of the selectors 2 and 456 is KB r-2 generated by the second key generation unit (KB i generation circuit) 453, and the upper n / 2 output from the selectors 1 and 455 and the KB r-2 The result of the exclusive OR operation is the upper n / 2 bits of the n-bit data stored in the data register 454. The lower n / 2 bits of the n-bit data stored in the data register 454 are lower n / 2 bits output from the round function circuit 451 via the selectors 1 and 455. This process corresponds to the (r-1) round process shown in FIG.

最終の第rラウンド目には、第1鍵生成部(KA生成回路)452においてKAを生成し、第2鍵生成部(KB生成回路)453ではKBr+1を生成する。セレクタ1,455はラウンド関数回路451の出力を選択し、セレクタ2,456は、第2鍵生成部(KB生成回路)453において生成されたKBr+1を選択する設定とする。 In the final r-th round, KA r is generated in the first key generation unit (KA i generation circuit) 452, and KB r + 1 is generated in the second key generation unit (KB i generation circuit) 453. The selectors 1 and 455 select the output of the round function circuit 451, and the selectors 2 and 456 are set to select the KB r + 1 generated by the second key generation unit (KB i generation circuit) 453.

ラウンド関数回路451には第1鍵生成部(KA生成回路)452において生成されたラウンド鍵としてKAが入力される。第rラウンドで、ラウンド関数回路451にラウンド鍵[KA]が入力されてラウンド関数を実行した結果データはセレクタ1,455から出力される。セレクタ1,455から出力されるnビットは、上位n/2ビットと下位n/2ビットに分割され、上位n/2ビットがセレクタ2,456の出力と排他的論理和演算部457において排他的論理和される。セレクタ2,456の出力はKBr+1であり、ラウンド関数回路451の出力の上位n/2ビットと、KBr+1との排他的論理和結果がデータレジスタ454に格納される。データレジスタ454に格納されるnビットデータの下位n/2ビットは、ラウンド関数回路451からセレクタ1,455を介して出力される下位n/2ビットである。この処理は、図19に示すrラウンド目の出力とKBr+1との排他的論理和処理を実行する構成に相当する。 KA r is input to the round function circuit 451 as the round key generated by the first key generation unit (KA i generation circuit) 452. In the r-th round, the round key [KA r ] is input to the round function circuit 451 and the result data obtained by executing the round function is output from the selectors 1 and 455. The n bits output from the selectors 1 and 455 are divided into upper n / 2 bits and lower n / 2 bits, and the upper n / 2 bits are exclusive from the outputs of the selectors 2 and 456 in the exclusive OR operation unit 457. ORed. The output of the selectors 2 and 456 is KB r + 1 , and the exclusive OR result of the upper n / 2 bits of the output of the round function circuit 451 and KB r + 1 is stored in the data register 454. The lower n / 2 bits of the n-bit data stored in the data register 454 are lower n / 2 bits output from the round function circuit 451 via the selectors 1 and 455. This process corresponds to a configuration for performing an exclusive OR process between the output of the r-th round and KB r + 1 shown in FIG.

以上の処理により、データレジスタ454には、
暗号文C=C|Cが格納される。
図19に示す暗号化構成の処理を実行する回路として構成される図20に示す回路構成は、先に説明した図7の暗号化構成に対応する図11に示す回路構成と比較して簡略化された構成である、すなわちセレクタ回路および排他的論理和回路が一つずつ削減され、回路の小型化およびコスト削減が可能となる。
Through the above processing, the data register 454 is stored in the data register 454.
The ciphertext C = C 0 | C 1 is stored.
The circuit configuration shown in FIG. 20 configured as a circuit for executing the processing of the encryption configuration shown in FIG. 19 is simplified compared with the circuit configuration shown in FIG. 11 corresponding to the encryption configuration shown in FIG. In other words, the selector circuit and the exclusive OR circuit are reduced one by one, and the circuit can be reduced in size and cost.

図20に示す暗号処理回路の各構成部の実行する処理をまとめると以下のようになる。
第1鍵生成部(KA生成回路)452は、第1中間鍵KAに基づいて、ラウンド1〜rの各ラウンド関数に各々入力するr個のラウンド鍵KA〜KAを生成する。
ラウンド関数実行部としてのラウンド関数回路451は、ラウンド1〜rの各ラウンド関数に、第1中間鍵KAに基づいて生成されるr個のラウンド鍵KA〜KAを順次入力してラウンド関数を実行する。
第2鍵生成部(KB生成回路)453は、第2中間鍵KBに基づいて、ラウンド関数の開始前において適用する初期鍵KBと、rラウンドの最終ラウンド関数の開始後において適用する最終鍵KBr+1と、連続2ラウンドおきのラウンドに対応する鍵KB,KB,・・・KBr−3,KBr−2を生成する。
排他的論理和演算部457は、入力データ、またはラウンド関数実行部としてのラウンド関数回路451からの出力データの構成データと、第2中間鍵KBに基づいて生成される鍵KB,KB,KB,・・・KBr−3,KBr−2,KBr+1から選択した鍵KBとの排他的論理和演算を実行する。
このような処理構成となる。
The processing executed by each component of the cryptographic processing circuit shown in FIG. 20 is summarized as follows.
Based on the first intermediate key KA, the first key generation unit (KA i generation circuit) 452 generates r round keys KA 1 to KA r to be input to the respective round functions of rounds 1 to r .
A round function circuit 451 as a round function execution unit sequentially inputs r round keys KA 1 to KA r generated based on the first intermediate key KA to each of round functions 1 to r. Execute.
The second key generation unit (KB i generation circuit) 453, based on the second intermediate key KB, the initial key KB 0 applied before the start of the round function and the final key applied after the start of the final round function of the r round A key KB r + 1 and keys KB 3 , KB 4 ,... KB r-3 , KB r-2 corresponding to every two consecutive rounds are generated.
The exclusive OR operation unit 457 includes input data or configuration data of output data from the round function circuit 451 as a round function execution unit, and keys KB 0 , KB 3 , generated based on the second intermediate key KB. An exclusive OR operation with the key KB i selected from KB 4 ,..., KB r−3 , KB r−2 , KB r + 1 is executed.
Such a processing configuration is obtained.

なお、排他的論理和演算部457は、第2中間鍵KBに基づいて生成される鍵KB,KB,・・・KBr−3,KBr−2から選択した同一鍵を、異なるラウンドのラウンド関数実行部からの出力データに対して2回繰り返して利用した排他的論理和演算を実行する。具体的には、4つの連続するラウンド関数に対する入力ラウンド鍵を下記の設定とした場合と等価な設定、すなわち、4連続ラウンドp〜p+3に対して、
(a)pラウンドにラウンド鍵KAを入力、
(b)p+1ラウンドにラウンド鍵KAp+1を入力、
(c)p+2ラウンドにラウンド鍵[KAp+2(EXOR)KBp+2]を入力、
(d)p+3ラウンドにラウンド鍵[KAp+3(EXOR)KBp+3]を入力、
上記(a)〜(d)のラウンド鍵の入力処理と等価な処理になるように鍵KBから選択した同一鍵を2回繰り返して利用した排他的論理和演算処理を実行する。なお、p+4ラウンド以降も上記のp〜p+3ラウンドと同様、KAを連続2ラウンド、KA(EXOR)KBを連続2ラウンドに入力した設定と等価となるように排他的論理和演算処理を実行する。
The exclusive OR operation unit 457 generates different rounds for the same key selected from the keys KB 3 , KB 4 ,... KB r-3 , KB r-2 generated based on the second intermediate key KB. The exclusive OR operation that is used twice is executed on the output data from the round function execution unit. Specifically, for the setting equivalent to the case where the input round keys for four consecutive round functions are set as follows, that is, for four consecutive rounds p to p + 3,
(A) Enter the round key KA p in the p round,
(B) Enter the round key KA p + 1 in p + 1 round,
(C) Enter the round key [KA p + 2 (EXOR) KB p + 2 ] in the p + 2 round,
(D) Enter the round key [KA p + 3 (EXOR) KB p + 3 ] in the p + 3 round,
An exclusive OR operation process using the same key selected from the key KB i twice is executed so as to be equivalent to the round key input process of (a) to (d) above. As in the even p + 4 rounds since the above p~p + 3 rounds, consecutive KA i 2 rounds, the exclusive OR operation processing so as to be set equivalent to enter the KA i (EXOR) KB i on two consecutive rounds Run.

このように図19に示す暗号化構成の処理を実行する図20に示す回路構成は、先に説明した図7の暗号化構成に対応する図11に示す回路構成と比較して簡略化された構成、すなわちセレクタ回路および排他的論理和回路が一つずつ削減され、回路の小型化およびコスト削減が可能となる。   In this way, the circuit configuration shown in FIG. 20 for executing the processing of the encryption configuration shown in FIG. 19 is simplified compared to the circuit configuration shown in FIG. 11 corresponding to the encryption configuration shown in FIG. The configuration, that is, the selector circuit and the exclusive OR circuit are reduced one by one, and the circuit can be reduced in size and cost.

(3)実施例3:4系列Feistel構造における第1適用例
次に、実施例3として、4系列Feistel構造における第1の適用例について説明する。すなわち、先に図8を参照して説明したnビットの入力平文Pを上位〜下位n/4ビットずつの4系列に分割して処理を行う4系列のFeistel構造のデータ暗号化部に対応する簡略化回路構成である。なお、図8に示す4系列型の従来の回路構成は図12に示す回路構成である。
(3) Example 3: First Application Example in Four-Series Feistel Structure Next, as Example 3, a first application example in the four-series Feistel structure will be described. That is, it corresponds to a data encryption unit having a 4-series Feistel structure that performs processing by dividing the n-bit input plaintext P described above with reference to FIG. 8 into 4 series of upper to lower n / 4 bits. This is a simplified circuit configuration. The conventional circuit configuration of the 4-series type shown in FIG. 8 is the circuit configuration shown in FIG.

本実施例に係るラウンド関数を実行するデータ暗号化部の回路構成は図24に示す回路構成となるが、この図24に示す回路構成の説明の前に、図21〜図23を参照して、回路の簡略化を実現するための理論的な説明を行う。   The circuit configuration of the data encryption unit that executes the round function according to the present embodiment is the circuit configuration illustrated in FIG. 24. Before the description of the circuit configuration illustrated in FIG. 24, refer to FIGS. A theoretical explanation for realizing simplification of the circuit will be given.

図21は、先に図12を参照して説明した回路を適用した第2ラウンド〜第5ラウンドの処理を説明する図である。先に説明したように4系列のFeistel構造のデータ暗号化部では、各ラウンドにおいて2つのラウンド関数が実行される。各ラウンドにおける2つのラウンド関数では、n/2ビットのラウンド鍵RKを1/2に分割したn/4ビットのラウンド鍵RK[0]、RK[1]を生成して各ラウンド関数に入力する。同様に、n/2ビットの初期鍵IKについても1/2に分割したn/4ビットのIK[0]、IK[1]を4系列中の2つの系列に入力し、n/2ビットの最終鍵FKについても、1/2に分割したn/4ビットのFK[0]、FK[1]を4系列中の2つの系列に入力する構成としている。 FIG. 21 is a diagram illustrating the second to fifth round processes to which the circuit described above with reference to FIG. 12 is applied. As described above, in the data encryption unit having the four series Feistel structure, two round functions are executed in each round. The two round functions in each round generate n / 4-bit round keys RK 1 [0] and RK 1 [1] by dividing the n / 2-bit round key RK 1 into ½, and each round function To enter. Similarly, for the n / 2-bit initial key IK, n / 4-bit IK [0] and IK [1] divided into ½ are input to two of the four sequences, and the n / 2-bit initial key IK is Also for the final key FK, n / 4-bit FK [0] and FK [1] divided into ½ are input to two of the four sequences.

図21に示すように、第2ラウンド〜第5ラウンドのラウンド関数のF関数502〜505,512〜515では、以下のラウンド鍵が入力される。
第2ラウンド:RK=KA[0]|KA[1]
第3ラウンド:RK=KA[0](EXOR)KB[0]|KA[1](EXOR)KB[1]
第4ラウンド:RK=KA[0](EXOR)KB[0]|KA[1](EXOR)KB[1]
第5ラウンド:RK=KA[0]|KA[1]
As shown in FIG. 21, in the F functions 502 to 505 and 512 to 515 of the round functions from the second round to the fifth round, the following round keys are input.
Second round: RK 2 = KA 2 [0] | KA 2 [1]
Third round: RK 3 = KA 3 [0] (EXOR) KB 3 [0] | KA 3 [1] (EXOR) KB 3 [1]
Round 4: RK 4 = KA 4 [0] (EXOR) KB 4 [0] | KA 4 [1] (EXOR) KB 4 [1]
Round 5: RK 5 = KA 5 [0] | KA 5 [1]

図12に示す回路構成では、これらのラウンド鍵を各ラウンドにおいてラウンド関数回路に入力するため、セレクタ2,212と、排他的論理和演算部215を用いて、各ラウンド鍵の生成を行っている。   In the circuit configuration shown in FIG. 12, in order to input these round keys to the round function circuit in each round, each round key is generated using the selectors 2, 212 and the exclusive OR operation unit 215. .

例えば、図21に示す構成における第3、4ラウンドに示す排他的論理和演算部521〜524が、図12に示す排他的論理和演算部215に相当する。第2、第5ラウンドのように、第2中間鍵ベースの鍵KBは使用されないラウンドでは、図12のセレクタ2,212の出力が0に設定され、図12に示す排他的論理和演算部215は、第1中間鍵ベースの鍵KAを変更することなく出力することになる。 For example, the exclusive OR operation units 521 to 524 shown in the third and fourth rounds in the configuration shown in FIG. 21 correspond to the exclusive OR operation unit 215 shown in FIG. In rounds where the second intermediate key base key KB i is not used as in the second and fifth rounds, the outputs of the selectors 2 and 212 in FIG. 12 are set to 0, and the exclusive OR operation unit shown in FIG. 215 outputs the first intermediate key-based key KA i without being changed.

図22は、本発明に従った図24に示す回路を適用した第2ラウンド〜第5ラウンドの処理を説明する図である。第2ラウンド〜第5ラウンドのラウンド関数のF関数552〜555,562〜565には、以下のラウンド鍵が入力される。
第2ラウンド:RK=KA[0]|KA[1]
第3ラウンド:RK=KA[0]|KA[1]
第4ラウンド:RK=KA[0]|KA[1]
第5ラウンド:RK=KA[0]|KA[1]
FIG. 22 is a diagram for explaining the second to fifth round processes to which the circuit shown in FIG. 24 according to the present invention is applied. The following round keys are input to the F functions 552 to 555 and 562 to 565 of the round functions of the second to fifth rounds.
Second round: RK 2 = KA 2 [0] | KA 2 [1]
3rd round: RK 3 = KA 3 [0] | KA 3 [1]
4th round: RK 4 = KA 4 [0] | KA 4 [1]
Round 5: RK 5 = KA 5 [0] | KA 5 [1]

さらに、図22に示す構成では、各ラウンドに入力するデータのnビット中、各ラウンドのF関数出力側の排他的論理和演算部の前段に排他的論理和部572〜575,582〜585が設定され、各n/4ビットと、第2中間鍵KBベースのn/4ビット鍵KB[0],KB[1]との排他的論理和演算を実行する構成となっている。 Furthermore, in the configuration shown in FIG. 22, the exclusive OR units 572 to 575 and 582 to 585 are arranged in the preceding stage of the exclusive OR operation unit on the F function output side of each round in n bits of data input to each round. It is configured to execute an exclusive OR operation between each n / 4 bit and the second intermediate key KB-based n / 4-bit key KB i [0], KB i [1].

第2ラウンドでは、
F関数552の出力に対する排他的論理和演算処理の前の排他的論理和部572において、前ラウンドからのn/4ビッデータとn/4ビット鍵KB[0]との排他的論理和演算、
F関数562の出力に対する排他的論理和演算処理の前の排他的論理和部582において、前ラウンドからのn/4ビッデータとn/4ビット鍵KB[1]との排他的論理和演算を実行する構成となっている。
In the second round,
In the exclusive OR unit 572 before the exclusive OR operation process on the output of the F function 552, exclusive OR operation of the n / 4 bit data from the previous round and the n / 4 bit key KB 3 [0],
In the exclusive OR unit 582 before the exclusive OR operation process for the output of the F function 562, the exclusive OR operation of the n / 4 bit data from the previous round and the n / 4 bit key KB 3 [1] is performed. It is configured to execute.

第3ラウンドでは、
F関数553の出力に対する排他的論理和演算処理の前の排他的論理和部573において、前ラウンドからのn/4ビッデータとn/4ビット鍵KB[0]との排他的論理和演算、
F関数563の出力に対する排他的論理和演算処理の前の排他的論理和部583において、前ラウンドからのn/4ビッデータとn/4ビット鍵KB[1]との排他的論理和演算を実行する構成となっている。
In the third round,
In the exclusive OR unit 573 before the exclusive OR operation processing on the output of the F function 553, exclusive OR operation of the n / 4 bit data from the previous round and the n / 4 bit key KB 4 [0],
In the exclusive OR unit 583 before the exclusive OR operation process on the output of the F function 563, the exclusive OR operation of the n / 4 bit data from the previous round and the n / 4 bit key KB 4 [1] is performed. It is configured to execute.

第4ラウンドでは、
F関数554の出力に対する排他的論理和演算処理の前の排他的論理和部574において、前ラウンドからのn/4ビッデータとn/4ビット鍵KB[1]との排他的論理和演算、
F関数564の出力に対する排他的論理和演算処理の前の排他的論理和部584において、前ラウンドからのn/4ビッデータとn/4ビット鍵KB[0]との排他的論理和演算を実行する構成となっている。
In the fourth round,
In the exclusive OR unit 574 before the exclusive OR operation process on the output of the F function 554, exclusive OR operation of the n / 4 bit data from the previous round and the n / 4 bit key KB 3 [1],
In the exclusive OR unit 584 before the exclusive OR operation process for the output of the F function 564, the exclusive OR operation of the n / 4 bit data from the previous round and the n / 4 bit key KB 3 [0] is performed. It is configured to execute.

第5ラウンドでは、
F関数555の出力に対する排他的論理和演算処理の前の排他的論理和部575において、前ラウンドからのn/4ビッデータとn/4ビット鍵KB[1]との排他的論理和演算、
F関数565の出力に対する排他的論理和演算処理の前の排他的論理和部585において、前ラウンドからのn/4ビッデータとn/4ビット鍵KB[0]との排他的論理和演算を実行する構成となっている。
In the fifth round,
In the exclusive OR unit 575 before the exclusive OR operation process on the output of the F function 555, exclusive OR operation of the n / 4 bit data from the previous round and the n / 4 bit key KB 4 [1],
In the exclusive OR unit 585 before the exclusive OR operation process for the output of the F function 565, the exclusive OR operation of the n / 4 bit data from the previous round and the n / 4 bit key KB 4 [0] is performed. It is configured to execute.

すなわち、第2ラウンドの開始前に、1ラウンド目のラウンド関数の出力データの(n/4+1)ビット目からn/2ビット目までとKB[0]を排他的論理和し、同様に1ラウンド目のラウンド関数の出力データの(3n/4+1)ビット目からnビット目までとKB[1]を排他的論理和する。
また、第3ラウンドの開始前に、2ラウンド目のラウンド関数の出力データの(n/4+1)ビット目からn/2ビット目までとKB[0]を排他的論理和し、同様に2ラウンド目のラウンド関数の出力データの(3n/4+1)ビット目からnビット目までとKB[1]を排他的論理和する。
That is, before the start of the second round, KB 3 [0] is exclusively ORed with the (n / 4 + 1) -th bit to the n / 2-th bit of the output data of the round function of the first round. Exclusively OR's KB 3 [1] from the (3n / 4 + 1) -th bit to the n-th bit of the output data of the round function of the round.
Also, before the start of the third round, KB 4 [0] is exclusive ORed with the (n / 4 + 1) -th bit to the n / 2-th bit of the output data of the round function of the second round, and similarly 2 Exclusively OR's KB 4 [1] from the (3n / 4 + 1) -th bit to the n-th bit of the output data of the round function of the round.

また、第4ラウンドの開始前に、3ラウンド目のラウンド関数の出力データの(n/4+1)ビット目からn/2ビット目までとKB[1]を排他的論理和し、同様に3ラウンド目のラウンド関数の出力データの(3n/4+1)ビット目からnビット目までとKB[0]を排他的論理和する。
また、第5ラウンドの開始前に、4ラウンド目のラウンド関数の出力データの(n/4+1)ビット目からn/2ビット目までとKB[1]を排他的論理和し、同様に4ラウンド目のラウンド関数の出力データの(3n/4+1)ビット目からnビット目までとKB[0]を排他的論理和する。
Also, before the start of the fourth round, KB 3 [1] is exclusively ORed with the (n / 4 + 1) -th bit to the n / 2-th bit of the output data of the round function of the third round, and similarly 3 Exclusively OR's KB 3 [0] from the (3n / 4 + 1) -th bit to the n-th bit of the output data of the round function of the round.
Further, before the start of the fifth round, KB 4 [1] is exclusively ORed with the (n / 4 + 1) -th bit to the n / 2-th bit of the output data of the round function of the fourth round, and similarly 4 Exclusively OR's KB 4 [0] from the (3n / 4 + 1) -th bit to the n-th bit of the output data of the round function of the round.

この図22の構成における第3ラウンドの、
F関数553内の非線形変換部(Sボックス)に対する入力データ(T'[0])、
F関数563内の非線形変換部(Sボックス)に対する入力データ(T'[1])、
と、
図21における第3ラウンドの
F関数503内の非線形変換部(Sボックス)に対する入力データ(T[0])、
F関数513内の非線形変換部(Sボックス)に対する入力データ(T[1])、
を比較してみる。
In the third round in the configuration of FIG.
Input data (T ′ [0]) for the nonlinear transformation unit (S box) in the F function 553,
Input data (T ′ [1]) for the nonlinear transformation unit (S box) in the F function 563,
When,
Input data (T [0]) for the nonlinear transformation unit (S box) in the F function 503 of the third round in FIG.
Input data (T [1]) for the nonlinear transformation unit (S box) in the F function 513,
Let's compare.

図21における第3ラウンドのF関数503,513の非線形変換部(Sボックス)に対する入力データ:T[0],T[1]は、図21に示すデータP[0],P[1],Q[0],Q[1],KA[0],KA[1],KB[0],KB[1]による下記の演算結果として表すことができる。
T[0]=P[0](EXOR)Q[0](EXOR)KA[0](EXOR)KB[0]
T[1]=P[1](EXOR)Q[1](EXOR)KA[1](EXOR)KB[1]
Input data: T [0], T [1] to the nonlinear transformation units (S boxes) of the F functions 503, 513 in the third round in FIG. 21 are the data P [0], P [1], Q [0], Q [1], KA 3 [0], KA 3 [1], KB 3 [0], and KB 3 [1] can be expressed as the following calculation results.
T [0] = P [0] (EXOR) Q [0] (EXOR) KA 3 [0] (EXOR) KB 3 [0]
T [1] = P [1] (EXOR) Q [1] (EXOR) KA 3 [1] (EXOR) KB 3 [1]

また、図22における第3ラウンドのF関数553,563の非線形変換部(Sボックス)に対する入力データ:T'[0],T'[1]は、図22に示すデータP[0],P[1],Q[0],Q[1],KA[0],KA[1],KB[0],KB[1]による下記の演算結果として表すことができる。なおデータP[0],P[1],Q[0],Q[1],KA[0],KA[1],KB[0],KB[1]は、図21に示すデータと同一である。
T'[0]=P[0](EXOR)KB[0](EXOR)Q[0](EXOR)KA[0]
T'[1]=P[1](EXOR)KB[1](EXOR)Q[1](EXOR)KA[1]
これらのT'[0],T'[1]の算出式は、上記T[0],T[1]の算出式と等価である。すなわち、
T'[0]=T[0]
T'[1]=T[1]
が成立し、図22の構成における第3ラウンドのF関数の非線形変換部に対する入力は、図21の構成における第3ラウンドのF関数の非線形変換部に対する入力と同一となる。
Also, the input data T ′ [0], T ′ [1] for the non-linear transformation part (S box) of the F functions 553, 563 in the third round in FIG. 22 are the data P [0], P shown in FIG. [1], Q [0], Q [1], KA 3 [0], KA 3 [1], KB 3 [0], KB 3 [1] can be expressed as the following calculation results. Note data P [0], P [1 ], Q [0], Q [1], KA 3 [0], KA 3 [1], KB 3 [0], KB 3 [1] is 21 It is the same as the data shown.
T ′ [0] = P [0] (EXOR) KB 3 [0] (EXOR) Q [0] (EXOR) KA 3 [0]
T ′ [1] = P [1] (EXOR) KB 3 [1] (EXOR) Q [1] (EXOR) KA 3 [1]
These T ′ [0] and T ′ [1] calculation formulas are equivalent to the above T [0] and T [1] calculation formulas. That is,
T ′ [0] = T [0]
T ′ [1] = T [1]
Thus, the input to the non-linear transformation unit of the third round F function in the configuration of FIG. 22 is the same as the input to the non-linear transformation unit of the third round F function in the configuration of FIG.

このように、第3ラウンドにおける2つのF関数に入力するラウンド鍵を、
図21の構成では、
KA[0](EXOR)KB[0]、およびKA[1](EXOR)KB[1]
としているが、
図22に示すように、第3ラウンドにおけるF関数に入力するラウンド鍵を、
KA[0]とKA[1]、
として、第3ラウンドのF関数に対する入力データの生成段階でKB[0],KB[1]を適用した排他的論理和演算を実行して、そのデータを第3ラウンドのF関数に入力するデータとしても、結果としては同じ暗号処理が行われることになる。このことは、第4ラウンドについても同様である。
In this way, the round key input to the two F functions in the third round is
In the configuration of FIG.
KA 3 [0] (EXOR) KB 3 [0], and KA 3 [1] (EXOR) KB 3 [1]
But
As shown in FIG. 22, the round key input to the F function in the third round is
KA 3 [0] and KA 3 [1],
As a result, an exclusive OR operation using KB 3 [0] and KB 3 [1] is executed in the generation stage of input data for the third round F function, and the data is input to the third round F function. As a result, the same encryption processing is performed as the data to be processed. The same applies to the fourth round.

次に、図21と図22の構成における第5ラウンドの処理について比較する。
図21において、第5ラウンドのラウンド関数のF関数505,515には、
第5ラウンド:KA[0],KA[1],
これらの第1中間鍵KAベースの鍵データKAが入力される。すなわち、第5ラウンドでは第2中間鍵KBベースの鍵データKBは利用されない。
Next, the fifth round processing in the configurations of FIGS. 21 and 22 will be compared.
In FIG. 21, F functions 505 and 515 of the round function of the fifth round include
Round 5: KA 5 [0], KA 5 [1],
The key data KA i based on the first intermediate key KA is input. That is, the second intermediate key KB-based key data KB i is not used in the fifth round.

図21に示す第5ラウンドの2つのF関数505,515の非線形変換部(Sボックス)への入力データU[0],U[1]は、図21に示すデータP[0],P[1],Q[0],Q[1],R[0],R[1],KA[0],KA[1]による下記の演算結果として表すことができる。
U[0]=P[1](EXOR)Q[1](EXOR)R[0](EXOR)KA[0]
U[1]=P[0](EXOR)Q[0](EXOR)R[1](EXOR)KA[1]
The input data U [0], U [1] to the nonlinear transformation units (S boxes) of the two F functions 505, 515 in the fifth round shown in FIG. 21 are the data P [0], P [ 1], Q [0], Q [1], R [0], R [1], KA 5 [0], and KA 5 [1].
U [0] = P [1] (EXOR) Q [1] (EXOR) R [0] (EXOR) KA 5 [0]
U [1] = P [0] (EXOR) Q [0] (EXOR) R [1] (EXOR) KA 5 [1]

また、図22における第5ラウンドのF関数555,565の非線形変換部(Sボックス)に対する入力データ:U'[0],U'[1]は、図22に示すデータP[0],P[1],Q[0],Q[1],R[0],R[1],KA[0],KA[1],KB[0],KB[1]による下記の演算結果として表すことができる。なおこれらのデータは、図21に示すデータと同一である。
U'[0]=P[1](EXOR)KB[1](EXOR)Q[1](EXOR)KB[1](EXOR)R[0](EXOR)KA[0]
U'[1]=P[0](EXOR)KB[0](EXOR)Q[0](EXOR)KB[0](EXOR)R[1](EXOR)KA[1]
このU'[0],U'[1]の算出式において、同一データである鍵KB[1]またはKB[0]について2回繰り返して排他的論理和演算が実行されている。同じデータを2回繰り返して排他的論理和演算を行う処理は、その排他的論理和演算を実行しないのと同じ処理となる。
Also, the input data U ′ [0], U ′ [1] to the nonlinear transformation unit (S box) of the F functions 555, 565 in the fifth round in FIG. 22 are the data P [0], P shown in FIG. [1], Q [0], Q [1], R [0], R [1], KA 5 [0], KA 5 [1], KB 3 [0], KB 3 [1] It can be expressed as a calculation result. These data are the same as the data shown in FIG.
U ′ [0] = P [1] (EXOR) KB 3 [1] (EXOR) Q [1] (EXOR) KB 3 [1] (EXOR) R [0] (EXOR) KA 5 [0]
U ′ [1] = P [0] (EXOR) KB 3 [0] (EXOR) Q [0] (EXOR) KB 3 [0] (EXOR) R [1] (EXOR) KA 5 [1]
In the calculation formulas of U ′ [0] and U ′ [1], the exclusive OR operation is performed twice for the same key KB 3 [1] or KB 3 [0]. The process of performing the exclusive OR operation by repeating the same data twice is the same as not performing the exclusive OR operation.

従って、上記式は、上記式から鍵KB[1]またはKB[0]についての2回の排他的論理和演算を省略した下式、すなわち、
U'[0]=P[1](EXOR)Q[1](EXOR)R[0](EXOR)KA[0]
U'[1]=P[0](EXOR)Q[0](EXOR)R[1](EXOR)KA[1]
と同じ結果が得られる。
Therefore, the above formula is obtained by omitting two exclusive OR operations for the key KB 3 [1] or KB 3 [0] from the above formula, ie,
U ′ [0] = P [1] (EXOR) Q [1] (EXOR) R [0] (EXOR) KA 5 [0]
U ′ [1] = P [0] (EXOR) Q [0] (EXOR) R [1] (EXOR) KA 5 [1]
Gives the same result.

上記式は、前述の図21を参照して説明した図21に示す第5ラウンドのF関数505,515の非線形演算への入力データU[0],U[1]の算出式、
U[0]=P[1](EXOR)Q[1](EXOR)R[0](EXOR)KA[0]
U[1]=P[0](EXOR)Q[0](EXOR)R[1](EXOR)KA[1]
上記の算出式と同じになる。すなわち、
U'[0]=U[0]
U'[1]=U[1]
が成立し、図22の構成における第5ラウンドのF関数の非線形変換部に対する入力は、図21の構成における第5ラウンドのF関数の非線形変換部に対する入力と同一となる。
The above formula is a formula for calculating the input data U [0], U [1] to the nonlinear calculation of the F functions 505 and 515 of the fifth round shown in FIG. 21 described with reference to FIG.
U [0] = P [1] (EXOR) Q [1] (EXOR) R [0] (EXOR) KA 5 [0]
U [1] = P [0] (EXOR) Q [0] (EXOR) R [1] (EXOR) KA 5 [1]
This is the same as the above calculation formula. That is,
U ′ [0] = U [0]
U ′ [1] = U [1]
Thus, the input to the non-linear conversion unit of the fifth round F function in the configuration of FIG. 22 is the same as the input to the non-linear conversion unit of the F function of the fifth round in the configuration of FIG.

このように、従来型の図21に示す構成における第2中間鍵KBベースの鍵データKBが利用されないラウンドにおいても、そのラウンドに対して入力するラウンド鍵は、第1中間鍵KAベースの鍵KAのままに設定して、F関数に対する非入力データ側において、第2中間鍵ベースKBの同一の鍵KBを偶数回繰り返して排他的論理和演算を行わせる設定とすることで、結果としては同じ暗号処理が行われることになる。 As described above, even in the round in which the second intermediate key KB-based key data KB i in the conventional configuration shown in FIG. 21 is not used, the round key input to the round is the first intermediate key KA-based key. The result is obtained by setting KA i as it is, and setting the same key KB i of the second intermediate key base KB to be repeated an even number of times on the non-input data side with respect to the F function to perform the exclusive OR operation. As a result, the same cryptographic processing is performed.

このような設定は、すべてのラウンドにおいて実現可能である。図22に示すようにラウンド関数に対する入力データに対して第2中間鍵KBベースの鍵KBの排他的論理和演算を行う構成とすることで、各ラウンドにおいて適用するラウンド鍵を第1中間鍵KAベースの鍵KAのみとすることができる。具体的には、図23に示すような暗号処理構成が実現される。この図23に示す暗号処理構成は、先に説明した図8に示す暗号処理構成と等価な構成を持つ。すなわち図8に示す暗号処理構成を適用して平文Pを入力して得られる暗号文Cと、図23に示す暗号処理構成を適用して同じ平文Pを入力して得られる暗号文Cとは同一となり、同じ暗号処理が行われることになる。 Such a setting can be realized in all rounds. As shown in FIG. 22, a configuration in which exclusive OR operation of the second intermediate key KB-based key KB i is performed on the input data for the round function, the round key applied in each round is the first intermediate key. Only the KA-based key KA i can be used. Specifically, an encryption processing configuration as shown in FIG. 23 is realized. The cryptographic processing configuration shown in FIG. 23 has a configuration equivalent to the cryptographic processing configuration shown in FIG. 8 described above. That is, the ciphertext C obtained by inputting the plaintext P by applying the cryptographic processing configuration shown in FIG. 8 and the ciphertext C obtained by inputting the same plaintext P by applying the cryptographic processing configuration shown in FIG. The same encryption processing is performed.

このように、ラウンド関数に対するラウンド鍵を第1中間鍵KAベースの鍵KAのみによって構成されるKA[0],KA[1]として、ラウンド関数に対する入力データに対して第2中間鍵KBベースの鍵KBによって構成されるKB[0],KB[1]の排他的論理和演算を行う構成とすることで、図24に示す簡略化した回路構成を用いた暗号処理が可能となる。 In this way, the round key for the round function is defined as KA i [0], KA i [1] composed only of the first intermediate key KA-based key KA i , and the second intermediate key for the input data for the round function. The encryption process using the simplified circuit configuration shown in FIG. 24 is performed by performing the exclusive OR operation of KB i [0] and KB i [1] configured by the KB-based key KB i . It becomes possible.

すなわち、図24は、図23に示す4系列のFeistel構造を持つデータ暗号化部のハードウェア構成である。この構成は、先に図12を参照して説明した図8に示す従来型の4系列のFeistel構造を持つデータ暗号化部のハードウェア構成に比較してセレクタ数が削減され、また排他論理和演算部も削減された簡略化した回路構成となっている。   That is, FIG. 24 shows the hardware configuration of the data encryption unit having the four-series Feistel structure shown in FIG. In this configuration, the number of selectors is reduced compared to the hardware configuration of the data encryption unit having the conventional 4-series Feistel structure shown in FIG. 8 described with reference to FIG. It has a simplified circuit configuration with fewer arithmetic units.

図24に示す暗号処理回路は、1つのラウンド関数回路601と、秘密鍵Kに基づいて例えば非線形変換によって生成される第1中間鍵KAから、第1中間鍵KAベースのn/2ビット鍵{KA,KA,…,KAr−1,KA}を生成する第1鍵生成部(KA生成回路)602と、秘密鍵Kに基づいて例えば異なる非線形変換によって生成される第2中間鍵KBから、第2中間鍵KBベースのn/2ビット鍵{KB,KB,…,KBr−3,KBr−2}を生成する第2鍵生成部(KB生成回路)603と、入れ替え回路604と、nビットデータレジスタ605と、セレクタ1〜2,611〜612と、排他的論理和演算部621,622を有する。入れ替え回路604はn/2ビットの入力の上位n/4ビットと下位n/4ビットを入れ替える回路である。第2鍵生成部(KB生成回路)603の生成する鍵KB[0],KB[1]を入れ替えるために利用される。 The cryptographic processing circuit shown in FIG. 24 includes a round function circuit 601 and a first intermediate key KA generated by, for example, non-linear transformation based on the secret key K, and an n / 2 bit key { First key generation unit (KA i generation circuit) 602 that generates KA 1 , KA 2 ,..., KA r−1 , KA r }, and a second intermediate generated based on the secret key K, for example, by different non-linear transformations Second key generation unit (KB i generation circuit) 603 that generates an n / 2-bit key {KB 3 , KB 4 ,..., KB r-3 , KB r-2 } based on the second intermediate key KB. And an exchange circuit 604, an n-bit data register 605, selectors 1 to 2, 611 to 612, and exclusive OR operation units 621 and 622. The exchange circuit 604 is a circuit for exchanging the upper n / 4 bits and the lower n / 4 bits of the n / 2 bit input. This is used to replace the keys KB i [0] and KB i [1] generated by the second key generation unit (KB i generation circuit) 603.

まず、暗号化開始時には、第2鍵生成部(KB生成回路)603において、KBを生成し、セレクタ1,611は平文入力を、セレクタ2,612はKBを選択する設定とする。セレクタ1,611によって選択された平文入力のnビットは、上位〜下位n/4ビット単位で4分割される。 First, at the start of encryption, the second key generation unit (KB i generation circuit) 603 generates KB 0 , the selectors 1 and 611 select plain text input, and the selectors 2 and 612 select KB 0 . The n bits of plaintext input selected by the selectors 1 and 611 are divided into four in units of upper to lower n / 4 bits.

nビット平文データの(n/4+1)ビット目からn/2ビット目までがセレクタ2,612によって選択されたKBの上位n/4ビットであるKB[0]と、排他的論理和演算部621において排他的論理和され、(3n/4+1)ビット目からnビット目までがセレクタ2,612によって選択されたKBの下位n/4ビットであるKB[1]と、排他的論理和演算部622において排他的論理和され、その他の平文データはそのままのデータとしてデータレジスタ605に格納される。この時点の排他的論理和演算部621,622における排他的論理和処理は、図23に示す構成の第1ラウンドの前の入力データPとKB[0]との排他的論理和演算処理、およびPとKB[1]との排他的論理和演算処理に相当する。 Exclusively OR operation with KB 0 [0], which is the upper n / 4 bits of KB 0 selected by selectors 2, 612 from the (n / 4 + 1) -th bit to the n / 2-th bit of n-bit plaintext data In the unit 621, the exclusive OR is performed, and KB 0 [1], which is the lower n / 4 bits of KB 0 selected by the selectors 2,612 from the (3n / 4 + 1) -th bit to the n-th bit, and the exclusive logic The OR operation unit 622 performs exclusive OR, and the other plaintext data is stored in the data register 605 as it is. The exclusive OR processing in the exclusive OR operation units 621 and 622 at this time is the exclusive OR operation processing of the input data P 1 and KB 0 [0] before the first round having the configuration shown in FIG. , And P 3 and KB 0 [1].

第1ラウンド目には、第1鍵生成部(KA生成回路)602においてKAを生成し、第2鍵生成部(KA生成回路)603においてKBを生成し、セレクタ1,611はラウンド関数回路601の出力を選択し、セレクタ2,612はKBを選択する設定とする。ラウンド関数回路601にはラウンド鍵として、第1鍵生成部(KA生成回路)602からKAが入力される。この第1ラウンドにおいて、KAを適用したラウンド関数処理が行われる。これは、図23に示す構成の第1ラウンドの処理に相当する。なお、ラウンド関数回路601では、図23に示すように、2つのF関数の処理、すなわちKA[0]とKA[1]を適用したF関数が実行される。これらのF関数の処理は、並列処理またはシーケンシャル処理のいずれでもよい。なお、以下の説明において、ラウンド鍵[KA]を入力したラウンド関数の処理は、いずれもKA[0]とKA[1]を適用したF関数を実行する処理を含むものである。 In the first round, the first key generation unit (KA i generation circuit) 602 generates KA 1 , the second key generation unit (KA i generation circuit) 603 generates KB 3 , and the selectors 1 and 611 The output of the round function circuit 601 is selected, and the selectors 2 and 612 are set to select KB 3 . The round function circuit 601 receives KA 1 from the first key generation unit (KA i generation circuit) 602 as a round key. In this first round, round function processing using KA 1 is performed. This corresponds to the first round process of the configuration shown in FIG. Note that the round function circuit 601 executes processing of two F functions, that is, an F function to which KA 1 [0] and KA 1 [1] are applied, as shown in FIG. The processing of these F functions may be either parallel processing or sequential processing. In the following description, the processing of the round function that receives the round key [KA i ] includes processing for executing the F function to which KA i [0] and KA i [1] are applied.

第1ラウンドで、ラウンド関数回路601にラウンド鍵[KA]が入力されてラウンド関数を実行した結果データはセレクタ1,611から出力される。セレクタ1,611から出力されるnビットは、n/4ビット単位に分割され、その(n/4+1)ビット目からn/2ビット目までがセレクタ2,612の出力によって選択されたKBの上位n/4ビットであるKB[0]と排他的論理和演算部621において排他的論理和され、(3n/4+1)ビット目からnビット目までがセレクタ2,612の出力によって選択されたKBの下位n/4ビットであるKB[1]と排他的論理和演算部622において排他的論理和され、その他のセレクタ1,611からの出力データはそのままのデータとしてデータレジスタ605に格納される。この時点の排他的論理和演算部621,622における排他的論理和処理は、図23に示す構成の第1ラウンドの出力データとKB[0]、KB[1]との排他的論理和演算処理に相当する。 In the first round, the round key [KA 1 ] is input to the round function circuit 601 and the result data obtained by executing the round function is output from the selectors 1 and 611. The n bits output from the selectors 1 and 611 are divided into n / 4-bit units, and the (n / 4 + 1) -th bit to the n / 2-th bit of the KB 3 selected by the output of the selector 2 612 KB 3 [0], which is the upper n / 4 bit, is exclusively ORed with the exclusive OR operation unit 621, and the (3n / 4 + 1) th bit to the nth bit are selected by the outputs of the selectors 2 and 612. KB 3 [1], which is the lower n / 4 bit of KB 3 , is exclusive-ORed by the exclusive OR operation unit 622, and the output data from the other selectors 1 and 611 is stored in the data register 605 as it is. Is done. The exclusive OR processing in the exclusive OR operation units 621 and 622 at this time is the exclusive OR between the output data of the first round having the configuration shown in FIG. 23 and KB 3 [0] and KB 3 [1]. Corresponds to arithmetic processing.

第2ラウンド目には、第1鍵生成部(KA生成回路)602においてKAを生成し、第2鍵生成部(KB生成回路)603においてKBを生成し、セレクタ1,611はラウンド関数回路601の出力を選択し、セレクタ2,612は第2鍵生成部(KB生成回路)603において生成されたKBを選択する設定とする。 In the second round, KA 2 is generated in the first key generation unit (KA i generation circuit) 602, KB 4 is generated in the second key generation unit (KB i generation circuit) 603, and the selectors 1 and 611 are The output of the round function circuit 601 is selected, and the selectors 2 and 612 are set to select the KB 4 generated in the second key generation unit (KB i generation circuit) 603.

ラウンド関数回路601にはラウンド鍵として、第1鍵生成部(KA生成回路)602において生成されたKAが入力される。第2ラウンドで、ラウンド関数回路601にラウンド鍵[KA]が入力されてラウンド関数を実行した結果データはセレクタ1,611から出力される。セレクタ1,611から出力されるnビットは、n/4ビット単位に分割され、その(n/4+1)ビット目からn/2ビット目までがセレクタ2,612の出力によって選択されたKBの上位n/4ビットであるKB[0]と排他的論理和演算部621において排他的論理和され、(3n/4+1)ビット目からnビット目までがセレクタ2,612の出力によって選択されたKBの下位n/4ビットであるKB[1]と排他的論理和演算部622において排他的論理和され、その他のセレクタ1,611からの出力データはそのままのデータとしてデータレジスタ605に格納される。この時点の排他的論理和演算部621,622における排他的論理和処理は、図23に示す構成の第2ラウンドの出力データとKB[0]、KB[1]との排他的論理和演算処理に相当する。 The round function circuit 601 receives KA 2 generated in the first key generation unit (KA i generation circuit) 602 as a round key. In the second round, the round key [KA 2 ] is input to the round function circuit 601 and the result data obtained by executing the round function is output from the selectors 1 and 611. The n bits output from the selectors 1 and 611 are divided into n / 4-bit units, and the (n / 4 + 1) -th bit to the n / 2-th bit of the KB 4 selected by the output of the selector 2 612 KB 4 [0], which is the upper n / 4 bit, is exclusively ORed with the exclusive OR operation unit 621, and the (3n / 4 + 1) th bit to the nth bit are selected by the outputs of the selectors 2 and 612. KB 4 [1], which is the lower n / 4 bits of KB 4 , is exclusive-ORed by the exclusive OR operation unit 622, and the output data from the other selectors 1 and 611 is stored in the data register 605 as it is. Is done. The exclusive OR processing in the exclusive OR operation units 621 and 622 at this time is the exclusive OR of the output data of the second round having the configuration shown in FIG. 23 and KB 4 [0] and KB 4 [1]. Corresponds to arithmetic processing.

第3ラウンド目には、第1鍵生成部(KA生成回路)602においてKAを生成し、第2鍵生成部(KB生成回路)603においてKBを生成し、セレクタ1,611はラウンド関数回路601の出力を選択し、セレクタ2,612は入れ替え回路604の出力を選択する設定とする。入れ替え回路604は、第2鍵生成部(KB生成回路)603において生成されたn/2ビット鍵KBの上位n/4ビットと下位n/4ビットの入れ替えを行う。すなわち、KB[0],KB[1]は入れ替えられてKB[1],KB[0]としてセレクタ2,612から出力される。 In the third round, the first key generation unit (KA i generation circuit) 602 generates KA 3 , the second key generation unit (KB i generation circuit) 603 generates KB 3 , and the selectors 1 and 611 The output of the round function circuit 601 is selected, and the selectors 2 and 612 are set to select the output of the switching circuit 604. The exchange circuit 604 exchanges the upper n / 4 bits and the lower n / 4 bits of the n / 2 bit key KB 3 generated in the second key generation unit (KB i generation circuit) 603. That is, KB 3 [0] and KB 3 [1] are exchanged and output from selectors 2 612 as KB 3 [1] and KB 3 [0].

ラウンド関数回路601にはラウンド鍵として、第1鍵生成部(KA生成回路)602において生成されたKAが入力される。第3ラウンドで、ラウンド関数回路601にラウンド鍵[KA]が入力されてラウンド関数を実行した結果データはセレクタ1,611から出力される。セレクタ1,611から出力されるnビットは、n/4ビット単位に分割され、その(n/4+1)ビット目からn/2ビット目までがセレクタ2,612の出力によって選択されたKBの入れ替えデータの上位n/4ビットであるKB[1]と排他的論理和演算部621において排他的論理和され、(3n/4+1)ビット目からnビット目までがセレクタ2,612の出力によって選択されたKB[0]と排他的論理和演算部622において排他的論理和され、その他のセレクタ1,611からの出力データはそのままのデータとしてデータレジスタ605に格納される。この時点の排他的論理和演算部621,622における排他的論理和処理は、図23に示す構成の第3ラウンドの出力データとKB[1]、KB[0]との排他的論理和演算処理に相当する。 The round function circuit 601 receives KA 3 generated by the first key generation unit (KA i generation circuit) 602 as a round key. In the third round, the round key [KA 3 ] is input to the round function circuit 601 and the result data obtained by executing the round function is output from the selectors 1 and 611. The n bits output from the selectors 1 and 611 are divided into n / 4-bit units, and the (n / 4 + 1) -th bit to the n / 2-th bit of the KB 3 selected by the output of the selector 2 612 KB 3 [1], which is the upper n / 4 bits of the replacement data, is exclusive ORed with the exclusive OR operation unit 621, and the (3n / 4 + 1) -th bit to the n-th bit are output by the selectors 2, 612. The selected KB 3 [0] is exclusive-ORed with the exclusive-OR operation unit 622, and the output data from the other selectors 1 and 611 is stored in the data register 605 as it is. The exclusive OR processing in the exclusive OR operation units 621 and 622 at this time is the exclusive OR of the output data of the third round having the configuration shown in FIG. 23 and KB 3 [1] and KB 3 [0]. Corresponds to arithmetic processing.

これらの処理をラウンド数に応じて繰り返す。
第(r−1)ラウンド目には、第1鍵生成部(KA生成回路)602においてKAr−1を生成し、セレクタ1,611はラウンド関数回路601の出力を選択し、セレクタ2,612は0を選択する設定とする。
These processes are repeated according to the number of rounds.
In the (r−1) -th round, the first key generation unit (KA i generation circuit) 602 generates KA r−1 , the selectors 1 and 611 select the output of the round function circuit 601, and the selectors 2 and 2 612 is set to select 0.

ラウンド関数回路601にはラウンド鍵としてKAr−1が入力される。第(r−1)ラウンドで、ラウンド関数回路601にラウンド鍵[KAr−1]が入力されてラウンド関数を実行した結果データはセレクタ1,611から出力される。セレクタ1,611から出力されるnビットは、n/4ビット単位に分割され、その(n/4+1)ビット目からn/2ビット目までがセレクタ2,612の出力によって選択された[0]と排他的論理和演算部621において排他的論理和され、(3n/4+1)ビット目からnビット目までがセレクタ2,612の出力によって選択された[0]と排他的論理和演算部622において排他的論理和される。結果として、セレクタ1,611からの出力データはそのままのデータとしてデータレジスタ605に格納される。この処理は、図23に示す構成の第(r−1)ラウンドの出力処理に相当する。 KA r-1 is input to the round function circuit 601 as a round key. In the (r−1) -th round, the round key [KA r−1 ] is input to the round function circuit 601 and the result data obtained by executing the round function is output from the selectors 1 and 611. The n bits output from the selectors 1 and 611 are divided into n / 4-bit units, and the (n / 4 + 1) -th bit to the n / 2-th bit are selected by the output of the selector 2 612 [0]. [0] selected by the outputs of the selectors 2 and 612 from the (3n / 4 + 1) -th bit to the n-th bit in the exclusive OR operation unit 622 Exclusive ORed. As a result, the output data from the selectors 1 and 611 is stored in the data register 605 as it is. This process corresponds to the (r−1) -th round output process having the configuration shown in FIG.

最終の第rラウンド目には、第1鍵生成部(KA生成回路)602においてKAを生成し、第2鍵生成部(KB生成回路)603はKBr+1を生成し、セレクタ1,611はラウンド関数回路601の出力を選択し、セレクタ2,612は、第2鍵生成部(KB生成回路)603において生成されたKBr+1を選択する設定とする。 In the final r-th round, the first key generation unit (KA i generation circuit) 602 generates KA r , the second key generation unit (KB i generation circuit) 603 generates KB r + 1 , and the selector 1, 611 selects the output of the round function circuit 601, and the selectors 2 and 612 are set to select KB r + 1 generated by the second key generation unit (KB i generation circuit) 603.

ラウンド関数回路601には第1鍵生成部(KA生成回路)602において生成されたラウンド鍵としてKAが入力される。第rラウンドで、ラウンド関数回路601にラウンド鍵[KA]が入力されてラウンド関数を実行した結果データはセレクタ1,611から出力される。セレクタ1,611から出力されるnビットは、n/4ビット単位に分割され、その(n/4+1)ビット目からn/2ビット目までがセレクタ2,612の出力によって選択されたKBr+1の上位n/4ビットであるKBr+1[0]と排他的論理和演算部621において排他的論理和され、(3n/4+1)ビット目からnビット目までがセレクタ2,612の出力によって選択されたKBr+1の下位n/4ビットであるKBr+1[1]と排他的論理和演算部622において排他的論理和され、その他のセレクタ1,611からの出力データはそのままのデータとしてデータレジスタ605に格納される。この時点の排他的論理和演算部621,622における排他的論理和処理は、図23に示す構成の第rラウンドの出力データとKBr+1[0]、KBr+1[1]との排他的論理和演算処理に相当する。 KA r is input to the round function circuit 601 as the round key generated by the first key generation unit (KA i generation circuit) 602. In the r-th round, the round key [KA r ] is input to the round function circuit 601 and the result data obtained by executing the round function is output from the selectors 1 and 611. The n bits output from the selectors 1 and 611 are divided into n / 4-bit units, and from the (n / 4 + 1) -th bit to the n / 2-th bit, the KB r + 1 selected by the output of the selector 2 612 The exclusive OR operation unit 621 performs exclusive OR operation with KB r + 1 [0], which is the upper n / 4 bit, and the (3n / 4 + 1) -th bit to the n-th bit are selected by the outputs of the selectors 2 and 612. KB r + 1 [1], which is the lower n / 4 bits of KB r + 1 , is exclusive ORed with the exclusive OR operation unit 622, and the output data from the other selectors 1 and 611 is stored in the data register 605 as it is. Is done. The exclusive OR processing in the exclusive OR operation units 621 and 622 at this time is performed by exclusive OR of the output data of the r-th round configured as shown in FIG. 23 and KB r + 1 [0] and KB r + 1 [1]. Corresponds to arithmetic processing.

以上の処理により、データレジスタ605には、
暗号文C=C|C|C|Cが格納される。
図23に示す暗号化構成の処理を実行する回路として構成される図24に示す回路構成は、先に説明した図8の暗号化構成に対応する図12に示す回路構成と比較して簡略化された構成である、すなわちセレクタ回路および排他的論理和回路が一つずつ削減され、回路の小型化およびコスト削減が可能となる。
With the above processing, the data register 605 is stored in the data register 605.
The ciphertext C = C 0 | C 1 | C 2 | C 3 is stored.
The circuit configuration shown in FIG. 24 configured as a circuit for executing the processing of the encryption configuration shown in FIG. 23 is simplified compared to the circuit configuration shown in FIG. 12 corresponding to the encryption configuration shown in FIG. In other words, the selector circuit and the exclusive OR circuit are reduced one by one, and the circuit can be reduced in size and cost.

図24に示す暗号処理回路の各構成部の実行する処理をまとめると以下のようになる。
第1鍵生成部(KA生成回路)602は、第1中間鍵KAに基づいて、ラウンド1〜rの各ラウンド関数に各々入力するr個のラウンド鍵KA〜KAを生成する。
ラウンド関数実行部としてのラウンド関数回路601は、ラウンド1〜rの各ラウンド関数に、第1中間鍵KAに基づいて生成されるr個のラウンド鍵KA〜KAを順次入力してラウンド関数を実行する。なお、各ラウンドでは、KA[0]とKA[1]を適用したF関数を実行する。
第2鍵生成部(KB生成回路)603は、第2中間鍵KBに基づいて、ラウンド関数の開始前において適用する初期鍵KBと、rラウンドの最終ラウンド関数の開始後において適用する最終鍵KBr+1と、連続2ラウンドおきのラウンドに対応する鍵KB,KB,・・・KBr−3,KBr−2を生成する。
入れ替え回路604は、第2鍵生成部(KB生成回路)603の生成するn/2ビット鍵KBの上位下位n/4ビットKB[0],KB[1]を入れ替える。
排他的論理和演算部621,622は、入力データ、またはラウンド関数実行部としてのラウンド関数回路601からの出力データの構成データと、第2中間鍵KBに基づいて生成される鍵KB,KB,KB,・・・KBr−3,KBr−2,KBr+1から選択した鍵KBの構成データKB[0]とKB[1]との排他的論理和演算を実行する。
このような処理構成となる。
The processing executed by each component of the cryptographic processing circuit shown in FIG. 24 is summarized as follows.
Based on the first intermediate key KA, the first key generation unit (KA i generation circuit) 602 generates r round keys KA 1 to KA r that are respectively input to the round functions 1 to r .
A round function circuit 601 as a round function execution unit sequentially inputs r round keys KA 1 to KA r generated based on the first intermediate key KA to each of round functions 1 to r. Execute. In each round, an F function to which KA i [0] and KA i [1] are applied is executed.
The second key generation unit (KB i generation circuit) 603, based on the second intermediate key KB, the initial key KB 0 applied before the start of the round function and the final key applied after the start of the r-round final round function A key KB r + 1 and keys KB 3 , KB 4 ,... KB r-3 , KB r-2 corresponding to every two consecutive rounds are generated.
The replacement circuit 604 replaces the upper and lower n / 4 bits KB i [0] and KB i [1] of the n / 2 bit key KB i generated by the second key generation unit (KB i generation circuit) 603.
The exclusive OR operation units 621 and 622 are keys KB 0 and KB generated based on the input data or the configuration data of the output data from the round function circuit 601 as the round function execution unit and the second intermediate key KB. 3 , KB 4 ,..., KB r-3 , KB r-2 , KB r + 1 , the exclusive data OR of the configuration data KB i [0] and KB i [1] of the key KB i selected .
Such a processing configuration is obtained.

なお、排他的論理和演算部621,622は、第2中間鍵KBに基づいて生成される鍵KB,KB,・・・KBr−3,KBr−2から選択した同一鍵、具体的には鍵KBの構成データKB[0]とKB[1]を異なるラウンドのラウンド関数実行部からの出力データに対して2回繰り返して利用した排他的論理和演算を実行する。具体的には、4つの連続するラウンド関数に対する入力ラウンド鍵を下記の設定とした場合と等価な設定、すなわち、4連続ラウンドp〜p+3に対して、
(a)pラウンドにラウンド鍵KAを入力、
(b)p+1ラウンドにラウンド鍵KAp+1を入力、
(c)p+2ラウンドにラウンド鍵[KAp+2(EXOR)KBp+2]を入力、
(d)p+3ラウンドにラウンド鍵[KAp+3(EXOR)KBp+3]を入力、
上記(a)〜(d)のラウンド鍵の入力処理と等価な処理になるように鍵KBから選択した同一鍵を2回繰り返して利用した排他的論理和演算処理を実行する。なお、p+4ラウンド以降も上記のp〜p+3ラウンドと同様、KAを連続2ラウンド、KA(EXOR)KBを連続2ラウンドに入力した設定と等価となるように排他的論理和演算処理を実行する。
The exclusive OR operation units 621 and 622 are the same key selected from the keys KB 3 , KB 4 ,... KB r-3 , KB r-2 generated based on the second intermediate key KB. Specifically, an exclusive OR operation using the configuration data KB i [0] and KB i [1] of the key KB i by repeatedly using the output data from the round function execution units of different rounds is executed. Specifically, for the setting equivalent to the case where the input round keys for four consecutive round functions are set as follows, that is, for four consecutive rounds p to p + 3,
(A) Enter the round key KA p in the p round,
(B) Enter the round key KA p + 1 in p + 1 round,
(C) Enter the round key [KA p + 2 (EXOR) KB p + 2 ] in the p + 2 round,
(D) Enter the round key [KA p + 3 (EXOR) KB p + 3 ] in the p + 3 round,
An exclusive OR operation process using the same key selected from the key KB i twice is executed so as to be equivalent to the round key input process of (a) to (d) above. As in the even p + 4 rounds since the above p~p + 3 rounds, consecutive KA i 2 rounds, the exclusive OR operation processing so as to be set equivalent to enter the KA i (EXOR) KB i on two consecutive rounds Run.

なお、各F関数に対する入力する鍵としては、
(a)pラウンドのF関数に鍵KA[0]とKA[1]を入力、
(b)p+1ラウンドにラウンド鍵KAp+1[0]とKAp+1[1]を入力、
(c)p+2ラウンドにラウンド鍵[KAp+2[0](EXOR)KBp+2[0]]と[KAp+2[1](EXOR)KBp+2[1]]を入力、
(d)p+3ラウンドにラウンド鍵[KAp+3[0](EXOR)KBp+3[0]]と[KAp+3[1](EXOR)KBp+3[1]]を入力、
このような入力設定と等価となるように排他的論理和演算部621,622において、第2中間鍵KBに基づいて生成される鍵KB[0]とKB[1]を適用した排他的論理和演算を実行する。
As a key to input for each F function,
(A) Input the keys KA p [0] and KA p [1] into the p-round F function,
(B) Enter the round keys KA p + 1 [0] and KA p + 1 [1] in the p + 1 round,
(C) The round keys [KA p + 2 [0] (EXOR) KB p + 2 [0]] and [KA p + 2 [1] (EXOR) KB p + 2 [1]] are input to the p + 2 round.
(D) Enter the round keys [KA p + 3 [0] (EXOR) KB p + 3 [0]] and [KA p + 3 [1] (EXOR) KB p + 3 [1]] in the p + 3 round,
The exclusive OR operation units 621 and 622 apply exclusive keys KB i [0] and KB i [1] generated based on the second intermediate key KB so as to be equivalent to such input settings. Performs a logical OR operation.

このように図23に示す暗号化構成の処理を実行する図24に示す回路構成は、先に説明した図8の暗号化構成に対応する図12に示す回路構成と比較して簡略化された構成、すなわちセレクタ回路および排他的論理和回路が一つずつ削減され、回路の小型化およびコスト削減が可能となる。   Thus, the circuit configuration shown in FIG. 24 for executing the processing of the encryption configuration shown in FIG. 23 is simplified as compared with the circuit configuration shown in FIG. 12 corresponding to the encryption configuration shown in FIG. The configuration, that is, the selector circuit and the exclusive OR circuit are reduced one by one, and the circuit can be reduced in size and cost.

(4)実施例4:4系列Feistel構造における第2適用例
次に、実施例4として、4系列Feistel構造における第2の適用例について説明する。すなわち、先に図9を参照して説明したnビットの入力平文Pを上位〜下位n/4ビットずつの4系列に分割して処理を行う4系列のFeistel構造のデータ暗号化部に対応する簡略化回路構成である。なお、図9に示す4系列型の従来の回路構成は図13に示す回路構成である。
(4) Example 4: Second Application Example in 4-Series Feistel Structure Next, as Example 4, a second application example in the 4-series Feistel structure will be described. That is, it corresponds to a data encryption unit having a 4-series Feistel structure that performs processing by dividing the n-bit input plaintext P described above with reference to FIG. 9 into 4 series of upper to lower n / 4 bits. This is a simplified circuit configuration. Note that the conventional circuit configuration of the 4-series type shown in FIG. 9 is the circuit configuration shown in FIG.

本実施例に係るラウンド関数を実行するデータ暗号化部の回路構成は図27に示す回路構成となるが、この図27に示す回路構成の説明の前に、図25〜図26を参照して、回路の簡略化を実現するための理論的な説明を行う。   The circuit configuration of the data encryption unit that executes the round function according to the present embodiment is the circuit configuration illustrated in FIG. 27. Before the description of the circuit configuration illustrated in FIG. 27, refer to FIGS. 25 to 26. A theoretical explanation for realizing simplification of the circuit will be given.

図25は、本発明に従った図27に示す回路を適用した第2ラウンド〜第5ラウンドの処理を説明する図である。第2ラウンド〜第5ラウンドのラウンド関数のF関数752〜755,762〜765には、以下のラウンド鍵が入力される。
第2ラウンド:RK=KA[0]|KA[1]
第3ラウンド:RK=KA[0]|KA[1]
第4ラウンド:RK=KA[0]|KA[1]
第5ラウンド:RK=KA[0]|KA[1]
FIG. 25 is a diagram for explaining the second to fifth round processes to which the circuit shown in FIG. 27 according to the present invention is applied. The following round keys are input to the F functions 752 to 755 and 762 to 765 of the round functions of the second to fifth rounds.
Second round: RK 2 = KA 2 [0] | KA 2 [1]
3rd round: RK 3 = KA 3 [0] | KA 3 [1]
4th round: RK 4 = KA 4 [0] | KA 4 [1]
Round 5: RK 5 = KA 5 [0] | KA 5 [1]

さらに、図25に示す構成では、第2ラウンドを除き各ラウンドに入力するデータのnビット中、各ラウンドのF関数入力側の入力データ部の前段に排他的論理和部773〜775,782〜785が設定され、各n/4ビットと、第2中間鍵KBベースのn/4ビット鍵KB[0],KB[1]との排他的論理和演算を実行する構成となっている。 Further, in the configuration shown in FIG. 25, the exclusive OR parts 773 to 775 and 782 are arranged in the preceding stage of the input data part on the F function input side of each round in n bits of the data inputted to each round except the second round. 785 is set, and an exclusive OR operation of each n / 4 bit and the second intermediate key KB-based n / 4-bit key KB i [0], KB i [1] is executed. .

第3ラウンドでは、
F関数753に入力する前ラウンドからのn/4ビッデータとn/4ビット鍵KB[0]との排他的論理和演算、
F関数763に入力する前ラウンドからのn/4ビッデータとn/4ビット鍵KB[1]との排他的論理和演算を実行する構成となっている。
In the third round,
An exclusive OR operation between the n / 4-bit data from the previous round input to the F function 753 and the n / 4-bit key KB 3 [0],
The exclusive-OR operation of the n / 4-bit data from the previous round input to the F function 763 and the n / 4-bit key KB 3 [1] is executed.

第4ラウンドでは、
F関数754に入力する前ラウンドからのn/4ビッデータとn/4ビット鍵KB[0]との排他的論理和演算、
F関数764に入力する前ラウンドからのn/4ビッデータとn/4ビット鍵KB[1]との排他的論理和演算を実行する構成となっている。
In the fourth round,
An exclusive OR operation of the n / 4-bit data from the previous round input to the F function 754 and the n / 4-bit key KB 4 [0],
The exclusive-OR operation of the n / 4-bit data from the previous round input to the F function 764 and the n / 4-bit key KB 4 [1] is executed.

第5ラウンドでは、
F関数755に入力する前ラウンドからのn/4ビッデータとn/4ビット鍵KB[1]との排他的論理和演算、
F関数765に入力する前ラウンドからのn/4ビッデータとn/4ビット鍵KB[0]との排他的論理和演算を実行する構成となっている。
In the fifth round,
Exclusive OR operation of the n / 4-bit data from the previous round input to the F function 755 and the n / 4-bit key KB 3 [1],
The exclusive-OR operation of the n / 4-bit data from the previous round input to the F function 765 and the n / 4-bit key KB 3 [0] is executed.

すなわち、第3ラウンドの開始前に、2ラウンド目のラウンド関数の出力データの1ビット目からn/4ビット目までとKB[0]を排他的論理和し、同様に2ラウンド目のラウンド関数の出力データの(n/2+1)ビット目から3n/4ビット目までとKB[1]を排他的論理和する。 That is, before the start of the third round, exclusive OR of the output data of the round function of the second round from the first bit to the n / 4 bit and KB 3 [0] is performed, and similarly the second round Exclusively OR's KB 3 [1] from the (n / 2 + 1) th bit to the 3n / 4th bit of the output data of the function.

さらに、第4ラウンドの開始前に、3ラウンド目のラウンド関数の出力データの1ビット目からn/4ビット目までとKB[0]を排他的論理和し、同様に3ラウンド目のラウンド関数の出力データの(n/2+1)ビット目から3n/4ビット目までとKB[1]を排他的論理和する。 Furthermore, before the start of the fourth round, exclusive OR of the output data of the round function of the third round from the first bit to the n / 4 bit and KB 4 [0] is performed, and similarly the third round Exclusively OR's KB 4 [1] from the (n / 2 + 1) th bit to the 3n / 4th bit of the output data of the function.

さらに、第5ラウンドの開始前に、4ラウンド目のラウンド関数の出力データの1ビット目からn/4ビット目までとKB[1]を排他的論理和し、同様に4ラウンド目のラウンド関数の出力データの(n/2+1)ビット目から3n/4ビット目までとKB[0]を排他的論理和する。 Furthermore, before the start of the fifth round, exclusive OR of the output data of the round function of the fourth round from the first bit to the n / 4th bit and KB 3 [1] is performed, and similarly the fourth round Exclusively OR's KB 3 [0] with the (n / 2 + 1) -th bit to 3n / 4-th bit of the output data of the function.

なお、図9に示すFeistel構造と図8に示すFeistel構造とは、初期鍵と最終鍵の入力位置が異なるのみであり、1〜rラウンドのラウンド演算の処理構成は同一であるので、この図25の構成における各ラウンドのF関数に対する入力と、図8、図9のFeistel構造に対応する先に説明した図21に示す暗号処理構成におけるF関数に対する入力を比較する。図21に示す暗号処理構成は、先に図9に対応する回路構成として説明した図13の回路による暗号処理構成に相当する。   The Feistel structure shown in FIG. 9 and the Feistel structure shown in FIG. 8 differ only in the input positions of the initial key and the final key, and the processing configuration of round operations of 1 to r rounds is the same. The input to the F function in each round in the configuration of 25 is compared with the input to the F function in the encryption processing configuration shown in FIG. 21 described above corresponding to the Feistel structure of FIGS. The encryption processing configuration shown in FIG. 21 corresponds to the encryption processing configuration by the circuit of FIG. 13 described above as the circuit configuration corresponding to FIG.

この図25の構成における第3ラウンドの、
F関数753内の非線形変換部(Sボックス)に対する入力データ(T'[0])、
F関数763内の非線形変換部(Sボックス)に対する入力データ(T'[1])、
と、
図21における第3ラウンドの
F関数503内の非線形変換部(Sボックス)に対する入力データ(T[0])、
F関数513内の非線形変換部(Sボックス)に対する入力データ(T[1])、
を比較してみる。
In the third round in the configuration of FIG.
Input data (T ′ [0]) for the nonlinear transformation unit (S box) in the F function 753,
Input data (T ′ [1]) for the nonlinear transformation unit (S box) in the F function 763,
When,
Input data (T [0]) for the nonlinear transformation unit (S box) in the F function 503 of the third round in FIG.
Input data (T [1]) for the nonlinear transformation unit (S box) in the F function 513,
Let's compare.

図21における第3ラウンドのF関数503,513の非線形変換部(Sボックス)に対する入力データ:T[0],T[1]は、先に説明したように、図21に示すデータP[0],P[1],Q[0],Q[1],KA[0],KA[1],KB[0],KB[1]による下記の演算結果として表すことができる。
T[0]=P[0](EXOR)Q[0](EXOR)KA[0](EXOR)KB[0]
T[1]=P[1](EXOR)Q[1](EXOR)KA[1](EXOR)KB[1]
The input data T [0] and T [1] to the non-linear transformation unit (S box) of the third round F functions 503 and 513 in FIG. 21 are the data P [0] shown in FIG. ], P [1], Q [0], Q [1], KA 3 [0], KA 3 [1], KB 3 [0], can be expressed as the operation result of the following by KB 3 [1] .
T [0] = P [0] (EXOR) Q [0] (EXOR) KA 3 [0] (EXOR) KB 3 [0]
T [1] = P [1] (EXOR) Q [1] (EXOR) KA 3 [1] (EXOR) KB 3 [1]

また、図25における第3ラウンドのF関数753,763の非線形変換部(Sボックス)に対する入力データ:T'[0],T'[1]は、図25に示すデータP[0],P[1],Q[0],Q[1],KA[0],KA[1],KB[0],KB[1]による下記の演算結果として表すことができる。なおデータP[0],P[1],Q[0],Q[1],KA[0],KA[1],KB[0],KB[1]は、図21に示すデータと同一である。
T'[0]=P[0](EXOR)Q[0](EXOR)KB[0](EXOR)KA[0]
T'[1]=P[1](EXOR)Q[1](EXOR)KB[1](EXOR)KA[1]
これらのT'[0],T'[1]の算出式は、上記T[0],T[1]の算出式と等価である。すなわち、
T'[0]=T[0]
T'[1]=T[1]
が成立し、図25の構成における第3ラウンドのF関数の非線形変換部に対する入力は、図21の構成における第3ラウンドのF関数の非線形変換部に対する入力と同一となる。
Also, input data: T ′ [0], T ′ [1] to the nonlinear transformation part (S box) of the F functions 753, 763 in the third round in FIG. 25 are the data P [0], P shown in FIG. [1], Q [0], Q [1], KA 3 [0], KA 3 [1], KB 3 [0], KB 3 [1] can be expressed as the following calculation results. Note data P [0], P [1 ], Q [0], Q [1], KA 3 [0], KA 3 [1], KB 3 [0], KB 3 [1] is 21 It is the same as the data shown.
T ′ [0] = P [0] (EXOR) Q [0] (EXOR) KB 3 [0] (EXOR) KA 3 [0]
T ′ [1] = P [1] (EXOR) Q [1] (EXOR) KB 3 [1] (EXOR) KA 3 [1]
These T ′ [0] and T ′ [1] calculation formulas are equivalent to the above T [0] and T [1] calculation formulas. That is,
T ′ [0] = T [0]
T ′ [1] = T [1]
Thus, the input to the non-linear transformation unit of the third round F function in the configuration of FIG. 25 is the same as the input to the non-linear transformation unit of the third round F function in the configuration of FIG.

このように、第3ラウンドにおける2つのF関数に入力するラウンド鍵を、
図21の構成では、
KA[0](EXOR)KB[0]、およびKA[1](EXOR)KB[1]
としているが、
図25に示すように、第3ラウンドにおけるF関数に入力するラウンド鍵を、
KA[0]とKA[1]、
として、第3ラウンドのF関数に対する入力データの生成段階でKB[0],KB[1]を適用した排他的論理和演算を実行して、そのデータを第3ラウンドのF関数に入力するデータとしても、結果としては同じ暗号処理が行われることになる。このことは、第4ラウンドについても同様である。
In this way, the round key input to the two F functions in the third round is
In the configuration of FIG.
KA 3 [0] (EXOR) KB 3 [0], and KA 3 [1] (EXOR) KB 3 [1]
But
As shown in FIG. 25, the round key input to the F function in the third round is
KA 3 [0] and KA 3 [1],
As a result, an exclusive OR operation using KB 3 [0] and KB 3 [1] is executed in the generation stage of input data for the third round F function, and the data is input to the third round F function. As a result, the same encryption processing is performed as the data to be processed. The same applies to the fourth round.

次に、図21と図25の構成における第5ラウンドの処理について比較する。
図21において、第5ラウンドのラウンド関数のF関数505,515には、
第5ラウンド:KA[0],KA[1],
これらの第1中間鍵KAベースの鍵データKAが入力される。すなわち、第5ラウンドでは第2中間鍵KBベースの鍵データKBは利用されない。
Next, the fifth round processing in the configurations of FIGS. 21 and 25 will be compared.
In FIG. 21, F functions 505 and 515 of the round function of the fifth round include
Round 5: KA 5 [0], KA 5 [1],
The key data KA i based on the first intermediate key KA is input. That is, the second intermediate key KB-based key data KB i is not used in the fifth round.

図21に示す第5ラウンドの2つのF関数505,515の非線形変換部(Sボックス)への入力データU[0],U[1]は、先に説明したように、図21に示すデータP[0],P[1],Q[0],Q[1],R[0],R[1],KA[0],KA[1]による下記の演算結果として表すことができる。
U[0]=P[1](EXOR)Q[1](EXOR)R[0](EXOR)KA[0]
U[1]=P[0](EXOR)Q[0](EXOR)R[1](EXOR)KA[1]
As described above, the input data U [0], U [1] to the nonlinear transformation units (S boxes) of the two F functions 505 and 515 in the fifth round shown in FIG. 21 are the data shown in FIG. It can be expressed as the following calculation result by P [0], P [1], Q [0], Q [1], R [0], R [1], KA 5 [0], KA 5 [1]. it can.
U [0] = P [1] (EXOR) Q [1] (EXOR) R [0] (EXOR) KA 5 [0]
U [1] = P [0] (EXOR) Q [0] (EXOR) R [1] (EXOR) KA 5 [1]

また、図25における第5ラウンドのF関数755,765の非線形変換部(Sボックス)に対する入力データ:U'[0],U'[1]は、図25に示すデータP[0],P[1],Q[0],Q[1],R[0],R[1],KA[0],KA[1],KB[0],KB[1]による下記の演算結果として表すことができる。なおこれらのデータは、図21に示すデータと同一である。
U'[0]=P[1](EXOR)Q[1](EXOR)KB[1](EXOR)R[0](EXOR)KB[1](EXOR)KA[0]
U'[1]=P[0](EXOR)Q[0](EXOR)KB[0](EXOR)R[1](EXOR)KB[0](EXOR)KA[1]
このU'[0],U'[1]の算出式において、同一データである鍵KB[1]またはKB[0]について2回繰り返して排他的論理和演算が実行されている。同じデータを2回繰り返して排他的論理和演算を行う処理は、その排他的論理和演算を実行しないのと同じ処理となる。
Also, the input data U ′ [0], U ′ [1] to the nonlinear transformation unit (S box) of the F functions 755, 765 in the fifth round in FIG. 25 are the data P [0], P shown in FIG. [1], Q [0], Q [1], R [0], R [1], KA 5 [0], KA 5 [1], KB 3 [0], KB 3 [1] It can be expressed as a calculation result. These data are the same as the data shown in FIG.
U ′ [0] = P [1] (EXOR) Q [1] (EXOR) KB 3 [1] (EXOR) R [0] (EXOR) KB 3 [1] (EXOR) KA 5 [0]
U ′ [1] = P [0] (EXOR) Q [0] (EXOR) KB 3 [0] (EXOR) R [1] (EXOR) KB 3 [0] (EXOR) KA 5 [1]
In the calculation formulas of U ′ [0] and U ′ [1], the exclusive OR operation is performed twice for the same key KB 3 [1] or KB 3 [0]. The process of performing the exclusive OR operation by repeating the same data twice is the same as not performing the exclusive OR operation.

従って、上記式は、上記式から鍵KB[1]またはKB[0]についての2回の排他的論理和演算を省略した下式、すなわち、
U'[0]=P[1](EXOR)Q[1](EXOR)R[0](EXOR)KA[0]
U'[1]=P[0](EXOR)Q[0](EXOR)R[1](EXOR)KA[1]
と同じ結果が得られる。
Therefore, the above formula is obtained by omitting two exclusive OR operations for the key KB 3 [1] or KB 3 [0] from the above formula, ie,
U ′ [0] = P [1] (EXOR) Q [1] (EXOR) R [0] (EXOR) KA 5 [0]
U ′ [1] = P [0] (EXOR) Q [0] (EXOR) R [1] (EXOR) KA 5 [1]
Gives the same result.

上記式は、前述の図21を参照して説明した図21に示す第5ラウンドのF関数505,515の非線形演算への入力データU[0],U[1]の算出式、
U[0]=P[1](EXOR)Q[1](EXOR)R[0](EXOR)KA[0]
U[1]=P[0](EXOR)Q[0](EXOR)R[1](EXOR)KA[1]
上記の算出式と同じになる。すなわち、
U'[0]=U[0]
U'[1]=U[1]
が成立し、図25の構成における第5ラウンドのF関数の非線形変換部に対する入力は、図21の構成における第5ラウンドのF関数の非線形変換部に対する入力と同一となる。
The above formula is a formula for calculating the input data U [0], U [1] to the nonlinear calculation of the F functions 505 and 515 of the fifth round shown in FIG. 21 described with reference to FIG.
U [0] = P [1] (EXOR) Q [1] (EXOR) R [0] (EXOR) KA 5 [0]
U [1] = P [0] (EXOR) Q [0] (EXOR) R [1] (EXOR) KA 5 [1]
This is the same as the above calculation formula. That is,
U ′ [0] = U [0]
U ′ [1] = U [1]
Thus, the input to the non-linear transformation unit of the fifth round F function in the configuration of FIG. 25 is the same as the input to the non-linear transformation unit of the F function of the fifth round in the configuration of FIG.

このように、従来型の図21に示す構成における第2中間鍵KBベースの鍵データKBが利用されないラウンドにおいても、そのラウンドに対して入力するラウンド鍵は、第1中間鍵KAベースの鍵KAのままに設定して、F関数に対する入力データ側において、第2中間鍵ベースKBの同一の鍵KBを偶数回繰り返して排他的論理和演算を行わせる設定とすることで、結果としては同じ暗号処理が行われることになる。 As described above, even in the round in which the second intermediate key KB-based key data KB i in the conventional configuration shown in FIG. 21 is not used, the round key input to the round is the first intermediate key KA-based key. By setting KA i as it is and setting the same key KB i of the second intermediate key base KB to be repeated an even number of times on the input data side for the F function, as a result, Are subject to the same cryptographic processing.

このような設定は、すべてのラウンドにおいて実現可能である。図25に示すようにラウンド関数に対する入力データに対して第2中間鍵KBベースの鍵KBの排他的論理和演算を行う構成とすることで、各ラウンドにおいて適用するラウンド鍵を第1中間鍵KAベースの鍵KAのみとすることができる。具体的には、図26に示すような暗号処理構成が実現される。この図26に示す暗号処理構成は、先に説明した図9に示す暗号処理構成と等価な構成を持つ。すなわち図9に示す暗号処理構成を適用して平文Pを入力して得られる暗号文Cと、図26に示す暗号処理構成を適用して同じ平文Pを入力して得られる暗号文Cとは同一となり、同じ暗号処理が行われることになる。 Such a setting can be realized in all rounds. As shown in FIG. 25, a configuration in which exclusive OR operation of the second intermediate key KB-based key KB i is performed on the input data for the round function, the round key applied in each round is the first intermediate key. Only the KA-based key KA i can be used. Specifically, an encryption processing configuration as shown in FIG. 26 is realized. The cryptographic processing configuration shown in FIG. 26 has a configuration equivalent to the cryptographic processing configuration shown in FIG. 9 described above. That is, the ciphertext C obtained by inputting the plaintext P by applying the cryptographic processing configuration shown in FIG. 9 and the ciphertext C obtained by inputting the same plaintext P by applying the cryptographic processing configuration shown in FIG. The same encryption processing is performed.

このように、ラウンド関数に対するラウンド鍵を第1中間鍵KAベースの鍵KAのみによって構成されるKA[0],KA[1]として、ラウンド関数に対する入力データに対して第2中間鍵KBベースの鍵KBによって構成されるKB[0],KB[1]の排他的論理和演算を行う構成とすることで、図27に示す簡略化した回路構成を用いた暗号処理が可能となる。 In this way, the round key for the round function is defined as KA i [0], KA i [1] composed only of the first intermediate key KA-based key KA i , and the second intermediate key for the input data for the round function. By adopting a configuration that performs an exclusive OR operation of KB i [0] and KB i [1] configured by the KB-based key KB i , cryptographic processing using the simplified circuit configuration shown in FIG. It becomes possible.

すなわち、図27は、図26に示す4系列のFeistel構造を持つデータ暗号化部のハードウェア構成である。この構成は、先に図13を参照して説明した図9に示す従来型の4系列のFeistel構造を持つデータ暗号化部のハードウェア構成に比較してセレクタ数が削減され、また排他論理和演算部も削減された簡略化した回路構成となっている。   In other words, FIG. 27 shows a hardware configuration of the data encryption unit having the four series Feistel structure shown in FIG. In this configuration, the number of selectors is reduced compared to the hardware configuration of the data encryption unit having the conventional 4-series Feistel structure shown in FIG. 9 described above with reference to FIG. It has a simplified circuit configuration with fewer arithmetic units.

図27に示す暗号処理回路は、1つのラウンド関数回路801と、秘密鍵Kに基づいて例えば非線形変換によって生成される第1中間鍵KAから、第1中間鍵KAベースのn/2ビット鍵{KA,KA,…,KAr−1,KA}を生成する第1鍵生成部(KA生成回路)802と、秘密鍵Kに基づいて例えば異なる非線形変換によって生成される第2中間鍵KBから、第2中間鍵KBベースのn/2ビット鍵{KB,KB,…,KBr−3,KBr−2}を生成する第2鍵生成部(KB生成回路)803と、入れ替え回路804と、nビットデータレジスタ805と、セレクタ1〜2,811〜812と、排他的論理和演算部821,822を有する。入れ替え回路804はn/2ビットの入力の上位n/4ビットと下位n/4ビットを入れ替える回路である。第2鍵生成部(KB生成回路)803の生成する鍵KB[0],KB[1]を入れ替えるために利用される。 The cryptographic processing circuit shown in FIG. 27 includes one round function circuit 801 and a first intermediate key KA generated by, for example, non-linear transformation based on the secret key K, and a first intermediate key KA-based n / 2-bit key { First key generation unit (KA i generation circuit) 802 that generates KA 1 , KA 2 ,..., KA r−1 , KA r }, and a second intermediate generated based on, for example, a different nonlinear transformation based on the secret key K A second key generation unit (KB i generation circuit) 803 that generates an n / 2-bit key {KB 3 , KB 4 ,..., KB r-3 , KB r-2 } based on the second intermediate key KB from the key KB. And an exchange circuit 804, an n-bit data register 805, selectors 1 to 2, 811 to 812, and exclusive OR operation units 821 and 822. The exchange circuit 804 is a circuit for exchanging the upper n / 4 bits and the lower n / 4 bits of the input of n / 2 bits. This is used to replace the keys KB i [0] and KB i [1] generated by the second key generation unit (KB i generation circuit) 803.

まず、暗号化開始時には、第2鍵生成部(KB生成回路)803において、KBを生成し、セレクタ1,811は平文入力を、セレクタ2,812はKBを選択する設定とする。セレクタ1,811によって選択された平文入力のnビットは、上位〜下位n/4ビット単位で4分割される。 First, at the start of encryption, the second key generation unit (KB i generation circuit) 803 generates KB 0 , the selectors 1 811 select plain text input, and the selectors 2 812 select KB 0 . The n bits of plaintext input selected by the selectors 1 and 811 are divided into four in units of upper to lower n / 4 bits.

nビット平文データの1ビット目からn/4ビット目までがセレクタ2,812によって選択されたKBの上位n/4ビットであるKB[0]と、排他的論理和演算部821において排他的論理和され、(n/2+1)ビット目から3n/4ビット目までがセレクタ2,812によって選択されたKBの下位n/4ビットであるKB[1]と、排他的論理和演算部822において排他的論理和され、その他の平文データはそのままのデータとしてデータレジスタ805に格納される。この時点の排他的論理和演算部821,822における排他的論理和処理は、図26に示す構成の第1ラウンドの前の入力データPとKB[0]との排他的論理和演算処理、およびPとKB[1]との排他的論理和演算処理に相当する。 The exclusive OR operation unit 821 excludes KB 0 [0], which is the upper n / 4 bits of KB 0 selected by the selectors 2 and 812, from the first bit to the n / 4 bit of the n-bit plaintext data. Exclusive OR operation with KB 0 [1], which is the lower n / 4 bits of KB 0 selected by selector 2 812 from the (n / 2 + 1) th bit to the 3n / 4th bit. In the part 822, exclusive OR is performed, and other plaintext data is stored in the data register 805 as it is. The exclusive OR processing in the exclusive OR operation units 821 and 822 at this time is the exclusive OR operation processing of the input data P 0 and KB 0 [0] before the first round having the configuration shown in FIG. , And P 2 and KB 0 [1].

第1ラウンド目には、第1鍵生成部(KA生成回路)802においてKAを生成し、セレクタ1,811はラウンド関数回路801の出力を選択し、セレクタ2,812は[0]を選択する設定とする。ラウンド関数回路801にはラウンド鍵として、第1鍵生成部(KA生成回路)802からKAが入力される。この第1ラウンドにおいて、KAを適用したラウンド関数処理が行われる。これは、図26に示す構成の第1ラウンドの処理に相当する。なお、ラウンド関数回路801では、図26に示すように、2つのF関数の処理、すなわちKA[0]とKA[1]を適用したF関数が実行される。これらのF関数の処理は、並列処理またはシーケンシャル処理のいずれでもよい。なお、以下の説明において、ラウンド鍵[KA]を入力したラウンド関数の処理は、いずれもKA[0]とKA[1]を適用したF関数を実行する処理を含むものである。 In the first round, the first key generation unit (KA i generation circuit) 802 generates KA 1 , the selectors 1 811 select the output of the round function circuit 801, and the selectors 2 812 select [0]. Set to select. The round function circuit 801 receives KA 1 from the first key generation unit (KA i generation circuit) 802 as a round key. In this first round, round function processing using KA 1 is performed. This corresponds to the first round processing of the configuration shown in FIG. In the round function circuit 801, as shown in FIG. 26, processing of two F functions, that is, an F function to which KA 1 [0] and KA 1 [1] are applied is executed. The processing of these F functions may be either parallel processing or sequential processing. In the following description, the processing of the round function that receives the round key [KA i ] includes processing for executing the F function to which KA i [0] and KA i [1] are applied.

第1ラウンドで、ラウンド関数回路801にラウンド鍵[KA]が入力されてラウンド関数を実行した結果データはセレクタ1,811から出力される。セレクタ1,811から出力されるnビットは、n/4ビット単位に分割され、その1ビット目からn/4ビット目と、(n/2+1)ビット目から3n/4ビット目までがセレクタ2,812の出力と排他的論理和演算部821、排他的論理和演算部822において排他的論理和されるが、セレクタ2,812の出力は[0]であり、セレクタ1,811からの出力データはそのままのデータとしてデータレジスタ805に格納される。この時点の処理は、図26に示す構成の第1ラウンドの処理に相当する。 In the first round, the round key [KA 1 ] is input to the round function circuit 801 and the result data obtained by executing the round function is output from the selectors 1 811. The n bits output from the selectors 1 and 811 are divided into n / 4 bit units. The first bit to the n / 4 bit and the (n / 2 + 1) th bit to the 3n / 4 bit are the selector 2 bits. , 812 and the exclusive OR operation unit 821 and the exclusive OR operation unit 822 are exclusively ORed, but the output of the selectors 2 and 812 is [0], and the output data from the selectors 1 and 811 Is stored in the data register 805 as it is. The process at this point corresponds to the first round process having the configuration shown in FIG.

第2ラウンド目には、第1鍵生成部(KA生成回路)802においてKAを生成し、第2鍵生成部(KB生成回路)803において、KBを生成し、セレクタ1,811はラウンド関数回路801の出力を選択し、セレクタ2,812はKBを選択する設定とする。セレクタ1,811によって選択されたラウンド関数回路801の出力のnビットは、上位〜下位n/4ビット単位で4分割される。 In the second round, the first key generation unit (KA i generation circuit) 802 generates KA 2 , the second key generation unit (KB i generation circuit) 803 generates KB 3 , and selectors 1 811 It selects the output of the round function circuit 801, the selector 2,812 shall be set to select a KB 3. The n bits of the output of the round function circuit 801 selected by the selectors 1 and 811 are divided into four in units of upper to lower n / 4 bits.

ラウンド関数回路801の出力nビットデータの1ビット目からn/4ビット目までがセレクタ2,812によって選択されたKBの上位n/4ビットであるKB[0]と、排他的論理和演算部821において排他的論理和され、(n/2+1)ビット目から3n/4ビット目までがセレクタ2,812によって選択されたKBの下位n/4ビットであるKB[1]と、排他的論理和演算部822において排他的論理和され、その他の平文データはそのままのデータとしてデータレジスタ805に格納される。この時点の排他的論理和演算部821,822における排他的論理和処理は、図26に示す構成の第2ラウンドの出力データとKB[0]、KB[1]との排他的論理和演算処理に相当する。 Exclusively ORed with KB 3 [0], which is the upper n / 4 bits of KB 3 selected by selector 2 812 from the first bit to the n / 4 bit of the output n-bit data of round function circuit 801 is exclusive in operation 821, and (n / 2 + 1) KB from bit to 3n / 4 bit are the lower n / 4 bits of KB 3 selected by the selector 2,812 3 [1], The exclusive OR operation unit 822 performs exclusive OR, and the other plaintext data is stored in the data register 805 as it is. The exclusive OR processing in the exclusive OR operation units 821 and 822 at this time is performed by exclusive OR between the output data of the second round having the configuration shown in FIG. 26 and KB 3 [0] and KB 3 [1]. Corresponds to arithmetic processing.

第3ラウンド目には、第1鍵生成部(KA生成回路)802においてKAを生成し、第2鍵生成部(KB生成回路)803において、KBを生成し、セレクタ1,811はラウンド関数回路801の出力を選択し、セレクタ2,812はKBを選択する設定とする。セレクタ1,811によって選択されたラウンド関数回路801の出力のnビットは、上位〜下位n/4ビット単位で4分割される。 In the third round, the first key generation unit (KA i generation circuit) 802 generates KA 3 , the second key generation unit (KB i generation circuit) 803 generates KB 4 , and selectors 1811 It selects the output of the round function circuit 801, the selector 2,812 shall be set to select a KB 4. The n bits of the output of the round function circuit 801 selected by the selectors 1 and 811 are divided into four in units of upper to lower n / 4 bits.

ラウンド関数回路801の出力nビットデータの1ビット目からn/4ビット目までがセレクタ2,812によって選択されたKBの上位n/4ビットであるKB[0]と、排他的論理和演算部821において排他的論理和され、(n/2+1)ビット目から3n/4ビット目までがセレクタ2,812によって選択されたKBの下位n/4ビットであるKB[1]と、排他的論理和演算部822において排他的論理和され、その他の平文データはそのままのデータとしてデータレジスタ805に格納される。この時点の排他的論理和演算部821,822における排他的論理和処理は、図26に示す構成の第3ラウンドの出力データとKB[0]、KB[1]との排他的論理和演算処理に相当する。 Exclusively ORed with KB 4 [0], which is the upper n / 4 bits of KB 4 selected by selectors 2 812 from the first bit to the n / 4 bit of the output n-bit data of the round function circuit 801 is exclusive in operation 821, the KB 4 [1] which is a lower n / 4 bits of the (n / 2 + 1) KB from bit to 3n / 4 bit has been selected by the selector 2,812 4, The exclusive OR operation unit 822 performs exclusive OR, and the other plaintext data is stored in the data register 805 as it is. The exclusive OR processing in the exclusive OR calculation units 821 and 822 at this time is performed by exclusive OR of the third round output data having the configuration shown in FIG. 26 and KB 4 [0] and KB 4 [1]. Corresponds to arithmetic processing.

第4ラウンド目には、第1鍵生成部(KA生成回路)802においてKAを生成し、第2鍵生成部(KB生成回路)803において、KBを生成し、セレクタ1,811はラウンド関数回路801の出力を選択し、セレクタ2,812は入れ替え回路804の出力を選択する設定とする。入れ替え回路804は、第2鍵生成部(KB生成回路)803において生成されたn/2ビット鍵KBの上位n/4ビットと下位n/4ビットの入れ替えを行う。すなわち、KB[0],KB[1]は入れ替えられてKB[1],KB[0]としてセレクタ2,812から出力される。 In the fourth round, the first key generation unit (KA i generation circuit) 802 generates KA 4 , the second key generation unit (KB i generation circuit) 803 generates KB 3 , and selectors 1811 Selects the output of the round function circuit 801, and the selectors 2 and 812 are set to select the output of the switching circuit 804. The exchange circuit 804 exchanges the upper n / 4 bits and the lower n / 4 bits of the n / 2 bit key KB 3 generated in the second key generation unit (KB i generation circuit) 803. That is, KB 3 [0] and KB 3 [1] are exchanged and output from selector 2 812 as KB 3 [1] and KB 3 [0].

ラウンド関数回路801にはラウンド鍵として、第1鍵生成部(KA生成回路)802において生成されたKAが入力される。第4ラウンドで、ラウンド関数回路801にラウンド鍵[KA]が入力されてラウンド関数を実行した結果データはセレクタ1,811から出力される。セレクタ1,811から出力されるnビットは、n/4ビット単位に分割され、その1ビット目からn/4ビット目までがセレクタ2,812の出力によって選択されたKBの入れ替えデータの上位n/4ビットであるKB[1]と排他的論理和演算部821において排他的論理和され、(n/2+1)ビット目から3n/4ビット目までがセレクタ2,812の出力によって選択されたKB[0]と排他的論理和演算部822において排他的論理和され、その他のセレクタ1,811からの出力データはそのままのデータとしてデータレジスタ805に格納される。この時点の排他的論理和演算部821,822における排他的論理和処理は、図26に示す構成の第4ラウンドの出力データとKB[1]、KB[0]との排他的論理和演算処理に相当する。 The round function circuit 801 receives KA 4 generated by the first key generation unit (KA i generation circuit) 802 as a round key. In the fourth round, the round key [KA 4 ] is input to the round function circuit 801 and the result data obtained by executing the round function is output from the selectors 1 811. The n bits output from the selectors 1 and 811 are divided into n / 4-bit units, and the first bit to the n / 4-th bit is the higher order of the replacement data of KB 3 selected by the output of the selectors 2 and 812. The exclusive OR operation unit 821 performs exclusive OR operation on KB 3 [1], which is n / 4 bits, and the (n / 2 + 1) th bit to the 3n / 4th bit are selected by the outputs of the selectors 2 and 812. KB 3 [0] is exclusive ORed with the exclusive OR operation unit 822, and the output data from the other selectors 1 and 811 is stored in the data register 805 as it is. The exclusive OR processing in the exclusive OR operation units 821 and 822 at this time is the exclusive OR of the fourth round output data having the configuration shown in FIG. 26 and KB 3 [1] and KB 3 [0]. Corresponds to arithmetic processing.

第5ラウンド目には、第1鍵生成部(KA生成回路)802においてKAを生成し、第2鍵生成部(KB生成回路)803において、KBを生成し、セレクタ1,811はラウンド関数回路801の出力を選択し、セレクタ2,812は入れ替え回路804の出力を選択する設定とする。入れ替え回路804は、第2鍵生成部(KB生成回路)803において生成されたn/2ビット鍵KBの上位n/4ビットと下位n/4ビットの入れ替えを行う。すなわち、KB[0],KB[1]は入れ替えられてKB[1],KB[0]としてセレクタ2,812から出力される。 In the fifth round, the first key generation unit (KA i generation circuit) 802 generates KA 5 , the second key generation unit (KB i generation circuit) 803 generates KB 4 , and selectors 1 811 Selects the output of the round function circuit 801, and the selectors 2 and 812 are set to select the output of the switching circuit 804. The exchange circuit 804 exchanges the upper n / 4 bits and the lower n / 4 bits of the n / 2 bit key KB 4 generated in the second key generation unit (KB i generation circuit) 803. That is, KB 4 [0] and KB 4 [1] are exchanged and output from selector 2 812 as KB 4 [1] and KB 4 [0].

ラウンド関数回路801にはラウンド鍵として、第1鍵生成部(KA生成回路)802において生成されたKAが入力される。第5ラウンドで、ラウンド関数回路801にラウンド鍵[KA]が入力されてラウンド関数を実行した結果データはセレクタ1,811から出力される。セレクタ1,811から出力されるnビットは、n/4ビット単位に分割され、その1ビット目からn/4ビット目までがセレクタ2,812の出力によって選択されたKBの入れ替えデータの上位n/4ビットであるKB[1]と排他的論理和演算部821において排他的論理和され、(n/2+1)ビット目から3n/4ビット目までがセレクタ2,812の出力によって選択されたKB[0]と排他的論理和演算部822において排他的論理和され、その他のセレクタ1,811からの出力データはそのままのデータとしてデータレジスタ805に格納される。この時点の排他的論理和演算部821,822における排他的論理和処理は、図26に示す構成の第5ラウンドの出力データとKB[1]、KB[0]との排他的論理和演算処理に相当する。 The round function circuit 801 receives KA 5 generated by the first key generation unit (KA i generation circuit) 802 as a round key. In the fifth round, the round key [KA 5 ] is input to the round function circuit 801 and the result data obtained by executing the round function is output from the selectors 1 811. The n bits output from the selectors 1 and 811 are divided into n / 4-bit units, and the first bit to the n / 4-th bit is the higher order of the replacement data of KB 4 selected by the output of the selectors 2 and 812. The exclusive OR operation unit 821 performs exclusive OR operation with KB 4 [1], which is n / 4 bits, and the (n / 2 + 1) th bit to the 3n / 4th bit are selected by the outputs of the selectors 2 and 812. KB 4 [0] is exclusive-ORed with the exclusive-OR operation unit 822, and output data from the other selectors 1 and 811 is stored in the data register 805 as it is. The exclusive OR processing in the exclusive OR operation units 821 and 822 at this time is performed by exclusive OR of the fifth round output data having the configuration shown in FIG. 26 and KB 4 [1] and KB 4 [0]. Corresponds to arithmetic processing.

上記をラウンド数に応じて繰り返す。
第(r−1)ラウンド目には、第1鍵生成部(KA生成回路)802においてKAr−1を生成し、第2鍵生成部(KB生成回路)803において、KBr−2を生成し、セレクタ1,811はラウンド関数回路801の出力を選択し、セレクタ2,812は入れ替え回路804の出力を選択する設定とする。入れ替え回路804では、第2鍵生成部(KB生成回路)803において生成したn/2ビット鍵:KBr−2を入力し、KBr−2の上位n/4ビットと下位n/4ビットが入れ替えられ、セレクタ2,812は上位n/4ビットがKBr−2[1]、下位n/4ビットがKBr−2[0]の鍵を出力する。
Repeat the above according to the number of rounds.
In the (r−1) -th round, the first key generation unit (KA i generation circuit) 802 generates KA r−1 and the second key generation unit (KB i generation circuit) 803 generates KB r-2. The selectors 1 and 811 select the output of the round function circuit 801, and the selectors 2 and 812 are set to select the output of the switching circuit 804. In the replacement circuit 804, the n / 2-bit key: KB r-2 generated in the second key generation unit (KB i generation circuit) 803 is input, and the upper n / 4 bits and the lower n / 4 bits of KB r-2. Are switched, and the selector 2 812 outputs a key whose upper n / 4 bit is KB r-2 [1] and whose lower n / 4 bit is KB r-2 [0].

ラウンド関数回路801にはラウンド鍵として、第1鍵生成部(KA生成回路)802において生成されたKAr−1が入力される。第(r−1)ラウンドで、ラウンド関数回路801にラウンド鍵[KAr−1]が入力されてラウンド関数を実行した結果データはセレクタ1,811から出力される。セレクタ1,811から出力されるnビットは、n/4ビット単位に分割され、その1ビット目からn/4ビット目までがセレクタ2,812の出力によって選択されたKBr−2の入れ替えデータの上位n/4ビットであるKBr−2[1]と排他的論理和演算部821において排他的論理和され、(n/2+1)ビット目から3n/4ビット目までがセレクタ2,812の出力によって選択されたKBr−2[0]と排他的論理和演算部822において排他的論理和され、その他のセレクタ1,811からの出力データはそのままのデータとしてデータレジスタ805に格納される。この時点の排他的論理和演算部821,822における排他的論理和処理は、図26に示す構成の第(r−1)ラウンドの出力データとKBr−2[1]、KBr−2[0]との排他的論理和演算処理に相当する。 The round function circuit 801 receives KA r-1 generated in the first key generation unit (KA i generation circuit) 802 as a round key. In the (r−1) -th round, the round key [KA r−1 ] is input to the round function circuit 801 and the result data obtained by executing the round function is output from the selectors 1 811. The n bits output from the selectors 1 and 811 are divided into n / 4-bit units, and the KB r-2 replacement data in which the first to n / 4th bits are selected by the output of the selectors 2 and 812. KB r-2 [1], which is the higher-order n / 4 bits, is exclusive-ORed in the exclusive OR operation unit 821, and the (n / 2 + 1) th bit to the 3n / 4th bit are the selectors 2 812. KB r-2 [0] selected by the output is exclusive ORed by the exclusive OR operation unit 822, and the output data from the other selectors 1 and 811 is stored in the data register 805 as it is. The exclusive OR processing in the exclusive OR operation units 821 and 822 at this time is performed by the (r−1) -th round output data having the configuration shown in FIG. 26 and KB r-2 [1], KB r-2 [ [0].

第rラウンド目には、第1鍵生成部(KA生成回路)802においてKAを生成し、第2鍵生成部(KB生成回路)803において、KBr+1を生成し、セレクタ1,811はラウンド関数回路801の出力を選択し、セレクタ2,812は第2鍵生成部(KB生成回路)803において生成されるKBr+1を選択する設定とする。 In the r-th round, the first key generation unit (KA i generation circuit) 802 generates KA r , the second key generation unit (KB i generation circuit) 803 generates KB r + 1 , and selectors 1811 Selects the output of the round function circuit 801, and the selectors 2 and 812 are set to select KB r + 1 generated in the second key generation unit (KB i generation circuit) 803.

ラウンド関数回路801にはラウンド鍵として、第1鍵生成部(KA生成回路)802において生成されたKAが入力される。第rラウンドで、ラウンド関数回路801にラウンド鍵[KA]が入力されてラウンド関数を実行した結果データはセレクタ1,811から出力される。セレクタ1,811から出力されるnビットは、n/4ビット単位に分割され、その1ビット目からn/4ビット目までがセレクタ2,812の出力によって選択されたKBr+1の上位n/4ビットであるKBr+1[0]と排他的論理和演算部821において排他的論理和され、(n/2+1)ビット目から3n/4ビット目までがセレクタ2,812の出力によって選択されたKBr+1[1]と排他的論理和演算部822において排他的論理和され、その他のセレクタ1,811からの出力データはそのままのデータとしてデータレジスタ805に格納される。この時点の排他的論理和演算部821,822における排他的論理和処理は、図26に示す構成の第rラウンドの出力データとKBr+1[0]、KBr+1[1]との排他的論理和演算処理に相当する。 The round function circuit 801 receives KA r generated by the first key generation unit (KA i generation circuit) 802 as a round key. In the r-round, it results in the round function circuit 801 round key [KA r] has performed is input round function data is output from the selector 1,811. The n bits output from the selectors 1 and 811 are divided into n / 4-bit units, and the first bit to the n / 4th bit are the upper n / 4 of KB r + 1 selected by the output of the selectors 2 and 812. is exclusive in exclusive OR operation section 821 KB r + 1 [0] and a bit, (n / 2 + 1) KB r + 1 from bit to 3n / 4 bit is selected by the output of the selector 2,812 [1] is exclusive-ORed with the exclusive-OR operation unit 822, and output data from the other selectors 1 and 811 is stored in the data register 805 as it is. The exclusive OR processing in the exclusive OR operation units 821 and 822 at this time is performed by exclusive OR between the r-th round output data having the configuration shown in FIG. 26 and KB r + 1 [0] and KB r + 1 [1]. Corresponds to arithmetic processing.

以上の処理により、データレジスタ805には、
暗号文C=C|C|C|Cが格納される。
図26に示す暗号化構成の処理を実行する回路として構成される図27に示す回路構成は、先に説明した図9の暗号化構成に対応する図13に示す回路構成と比較して簡略化された構成である、すなわちセレクタ回路および排他的論理和回路が一つずつ削減され、回路の小型化およびコスト削減が可能となる。
With the above processing, the data register 805 is stored in the data register 805.
The ciphertext C = C 0 | C 1 | C 2 | C 3 is stored.
The circuit configuration shown in FIG. 27 configured as a circuit for executing the processing of the encryption configuration shown in FIG. 26 is simplified compared to the circuit configuration shown in FIG. 13 corresponding to the encryption configuration shown in FIG. In other words, the selector circuit and the exclusive OR circuit are reduced one by one, and the circuit can be reduced in size and cost.

図27に示す暗号処理回路の各構成部の実行する処理をまとめると以下のようになる。
第1鍵生成部(KA生成回路)802は、第1中間鍵KAに基づいて、ラウンド1〜rの各ラウンド関数に各々入力するr個のラウンド鍵KA〜KAを生成する。
ラウンド関数実行部としてのラウンド関数回路801は、ラウンド1〜rの各ラウンド関数に、第1中間鍵KAに基づいて生成されるr個のラウンド鍵KA〜KAを順次入力してラウンド関数を実行する。なお、各ラウンドでは、KA[0]とKA[1]を適用したF関数を実行する。
第2鍵生成部(KB生成回路)803は、第2中間鍵KBに基づいて、ラウンド関数の開始前において適用する初期鍵KBと、rラウンドの最終ラウンド関数の開始後において適用する最終鍵KBr+1と、連続2ラウンドおきのラウンドに対応する鍵KB,KB,・・・KBr−3,KBr−2を生成する。
入れ替え回路804は、第2鍵生成部(KB生成回路)803の生成するn/2ビット鍵KBの上位下位n/4ビットKB[0],KB[1]を入れ替える。
排他的論理和演算部821,822は、入力データ、またはラウンド関数実行部としてのラウンド関数回路801からの出力データの構成データと、第2中間鍵KBに基づいて生成される鍵KB,KB,KB,・・・KBr−3,KBr−2,KBr+1から選択した鍵KBの構成データKB[0]とKB[1]との排他的論理和演算を実行する。
このような処理構成となる。
The processing executed by each component of the cryptographic processing circuit shown in FIG. 27 is summarized as follows.
Based on the first intermediate key KA, the first key generation unit (KA i generation circuit) 802 generates r round keys KA 1 to KA r that are respectively input to the round functions 1 to r .
A round function circuit 801 as a round function execution unit sequentially inputs r round keys KA 1 to KA r generated based on the first intermediate key KA to each of round functions 1 to r. Execute. In each round, an F function to which KA i [0] and KA i [1] are applied is executed.
The second key generation unit (KB i generation circuit) 803, based on the second intermediate key KB, the initial key KB 0 applied before the start of the round function and the final key applied after the start of the final round function of the r round A key KB r + 1 and keys KB 3 , KB 4 ,... KB r-3 , KB r-2 corresponding to every two consecutive rounds are generated.
The replacement circuit 804 replaces the upper / lower n / 4 bits KB i [0] and KB i [1] of the n / 2 bit key KB i generated by the second key generation unit (KB i generation circuit) 803.
The exclusive OR operation units 821 and 822 are keys KB 0 and KB generated based on the input data or the configuration data of the output data from the round function circuit 801 serving as the round function execution unit and the second intermediate key KB. 3 , KB 4 ,..., KB r-3 , KB r-2 , KB r + 1 , the exclusive data OR of the configuration data KB i [0] and KB i [1] of the key KB i selected .
Such a processing configuration is obtained.

なお、排他的論理和演算部821,822は、第2中間鍵KBに基づいて生成される鍵KB,KB,・・・KBr−3,KBr−2から選択した同一鍵、具体的には鍵KBの構成データKB[0]とKB[1]を異なるラウンドのラウンド関数実行部からの出力データに対して2回繰り返して利用した排他的論理和演算を実行する。具体的には、4つの連続するラウンド関数に対する入力ラウンド鍵を下記の設定とした場合と等価な設定、すなわち、4連続ラウンドp〜p+3に対して、
(a)pラウンドにラウンド鍵KAを入力、
(b)p+1ラウンドにラウンド鍵KAp+1を入力、
(c)p+2ラウンドにラウンド鍵[KAp+2(EXOR)KBp+2]を入力、
(d)p+3ラウンドにラウンド鍵[KAp+3(EXOR)KBp+3]を入力、
上記(a)〜(d)のラウンド鍵の入力処理と等価な処理になるように鍵KBから選択した同一鍵を2回繰り返して利用した排他的論理和演算処理を実行する。なお、p+4ラウンド以降も上記のp〜p+3ラウンドと同様、KAを連続2ラウンド、KA(EXOR)KBを連続2ラウンドに入力した設定と等価となるように排他的論理和演算処理を実行する。
The exclusive OR operation units 821 and 822 are the same key selected from the keys KB 3 , KB 4 ,... KB r-3 , KB r-2 generated based on the second intermediate key KB. Specifically, an exclusive OR operation using the configuration data KB i [0] and KB i [1] of the key KB i by repeatedly using the output data from the round function execution units of different rounds is executed. Specifically, for the setting equivalent to the case where the input round keys for four consecutive round functions are set as follows, that is, for four consecutive rounds p to p + 3,
(A) Enter the round key KA p in the p round,
(B) Enter the round key KA p + 1 in p + 1 round,
(C) Enter the round key [KA p + 2 (EXOR) KB p + 2 ] in the p + 2 round,
(D) Enter the round key [KA p + 3 (EXOR) KB p + 3 ] in the p + 3 round,
An exclusive OR operation process using the same key selected from the key KB i twice is executed so as to be equivalent to the round key input process of (a) to (d) above. As in the even p + 4 rounds since the above p~p + 3 rounds, consecutive KA i 2 rounds, the exclusive OR operation processing so as to be set equivalent to enter the KA i (EXOR) KB i on two consecutive rounds Run.

なお、各F関数に対する入力する鍵としては、
(a)pラウンドのF関数に鍵KA[0]とKA[1]を入力、
(b)p+1ラウンドにラウンド鍵KAp+1[0]とKAp+1[1]を入力、
(c)p+2ラウンドにラウンド鍵[KAp+2[0](EXOR)KBp+2[0]]と[KAp+2[1](EXOR)KBp+2[1]]を入力、
(d)p+3ラウンドにラウンド鍵[KAp+3[0](EXOR)KBp+3[0]]と[KAp+3[1](EXOR)KBp+3[1]]を入力、
このような入力設定と等価となるように排他的論理和演算部821,822において、第2中間鍵KBに基づいて生成される鍵KB[0]とKB[1]を適用した排他的論理和演算を実行する。
As a key to input for each F function,
(A) Input the keys KA p [0] and KA p [1] into the p-round F function,
(B) Enter the round keys KA p + 1 [0] and KA p + 1 [1] in the p + 1 round,
(C) The round keys [KA p + 2 [0] (EXOR) KB p + 2 [0]] and [KA p + 2 [1] (EXOR) KB p + 2 [1]] are input to the p + 2 round.
(D) Enter the round keys [KA p + 3 [0] (EXOR) KB p + 3 [0]] and [KA p + 3 [1] (EXOR) KB p + 3 [1]] in the p + 3 round,
In the exclusive OR operation units 821 and 822 so as to be equivalent to such an input setting, an exclusive to which the keys KB i [0] and KB i [1] generated based on the second intermediate key KB are applied. Performs a logical OR operation.

このように図26に示す暗号化構成の処理を実行する図27に示す回路構成は、先に説明した図9の暗号化構成に対応する図13に示す回路構成と比較して簡略化された構成、すなわちセレクタ回路および排他的論理和回路が一つずつ削減され、回路の小型化およびコスト削減が可能となる。   The circuit configuration shown in FIG. 27 for executing the processing of the encryption configuration shown in FIG. 26 is simplified as compared with the circuit configuration shown in FIG. 13 corresponding to the encryption configuration shown in FIG. The configuration, that is, the selector circuit and the exclusive OR circuit are reduced one by one, and the circuit can be reduced in size and cost.

[暗号処理装置としてのICモジュール構成例]
最後に、上述した実施例に従った暗号処理を実行する暗号処理装置としてのICモジュール900の構成例を図28に示す。上述の処理は、例えばPC、ICカード、リーダライタ、その他、様々な情報処理装置において実行可能であり、図28に示すICモジュール900は、これら様々な機器に構成することが可能である。
[IC module configuration example as a cryptographic processing apparatus]
Finally, FIG. 28 shows a configuration example of an IC module 900 as a cryptographic processing apparatus that executes cryptographic processing according to the above-described embodiment. The above-described processing can be executed by, for example, various information processing apparatuses such as a PC, an IC card, a reader / writer, and the IC module 900 shown in FIG. 28 can be configured in these various devices.

図28に示すCPU(Central processing Unit)901は、暗号処理の開始や、終了、データの送受信の制御、各構成部間のデータ転送制御、その他の各種プログラムを実行するプロセッサである。メモリ902は、CPU901が実行するプログラム、あるいは演算パラメータなどの固定データを格納するROM(Read-Only-Memory)、CPU901の処理において実行されるプログラム、およびプログラム処理において適宜変化するパラメータの格納エリア、ワーク領域として使用されるRAM(Random Access Memory)等からなる。また、メモリ902は暗号処理に必要な鍵データや、暗号処理において適用する変換テーブル(置換表)や変換行列に適用するデータ等の格納領域として使用可能である。なおデータ格納領域は、耐タンパ構造を持つメモリとして構成されることが好ましい。暗号処理部903は、例えば上述した各種の暗号処理構成、例えば、Feistel構造に従った共通鍵ブロック暗号処理アルゴリズムを実行する。   A CPU (Central processing Unit) 901 shown in FIG. 28 is a processor that executes the start and end of cryptographic processing, control of data transmission / reception, data transfer control between components, and other various programs. The memory 902 includes a ROM (Read-Only-Memory) that stores programs executed by the CPU 901 or fixed data such as calculation parameters, a program executed in the processing of the CPU 901, and a parameter storage area that changes as appropriate in the program processing, It consists of RAM (Random Access Memory) used as a work area. The memory 902 can be used as a storage area for key data necessary for encryption processing, data to be applied to a conversion table (substitution table) or conversion matrix applied in the encryption processing, and the like. The data storage area is preferably configured as a memory having a tamper resistant structure. The cryptographic processing unit 903 executes, for example, the above-described various cryptographic processing configurations, for example, a common key block cryptographic processing algorithm according to the Feistel structure.

また、暗号処理部903は、上述した各実施例において説明したように、秘密鍵Kに基づく第1中間鍵KA、第2中間鍵KBを生成して、ラウンド関数を実行する。第1中間鍵KAは、秘密鍵Kに対する非線形変換処理により生成される鍵データであり、第2中間鍵KBは、
(a)秘密鍵Kに対して、第1中間鍵KAと異なる非線形変換を適用したデータ、
(b)秘密鍵Kに対して線形変換を適用したデータ、
(c)秘密鍵Kそのもの
上記(a)〜(c)のいずれかによって構成されるデータである。
Further, as described in the above embodiments, the cryptographic processing unit 903 generates the first intermediate key KA and the second intermediate key KB based on the secret key K, and executes the round function. The first intermediate key KA is key data generated by a non-linear conversion process for the secret key K, and the second intermediate key KB is
(A) data obtained by applying a non-linear transformation different from the first intermediate key KA to the secret key K;
(B) data obtained by applying linear transformation to the secret key K;
(C) The secret key K itself is data configured by any one of the above (a) to (c).

暗号処理部903は、これらの第1中間鍵KA、第2中間鍵KBをベースとする鍵KA,KBを生成する。中間鍵ベースの鍵KAのみがラウンド関数におけるラウンド関数鍵として適用され、中間鍵ベースの鍵KBは、ラウンド関数の入出力データとの排他的論理和演算に利用される。 The encryption processing unit 903 generates keys KA i and KB i based on the first intermediate key KA and the second intermediate key KB. Only the intermediate key base key KA i is applied as the round function key in the round function, and the intermediate key base key KB i is used for exclusive OR operation with the input / output data of the round function.

なお、ここでは、暗号処理手段を個別モジュールとした例を示したが、このような独立した暗号処理モジュールを設けず、例えば暗号処理プログラムをROMに格納し、CPU901がROM格納プログラムを読み出して実行するように構成してもよい。   Here, an example is shown in which the cryptographic processing means is an individual module, but such an independent cryptographic processing module is not provided, for example, a cryptographic processing program is stored in the ROM, and the CPU 901 reads and executes the ROM stored program. You may comprise.

乱数発生器904は、暗号処理に必要となる鍵の生成などにおいて必要となる乱数の発生処理を実行する。   The random number generator 904 executes random number generation processing necessary for generating a key necessary for cryptographic processing.

送受信部905は、外部とのデータ通信を実行するデータ通信処理部であり、例えばリーダライタ等、ICモジュールとのデータ通信を実行し、ICモジュール内で生成した暗号文の出力、あるいは外部のリーダライタ等の機器からのデータ入力などを実行する。   The transmission / reception unit 905 is a data communication processing unit that performs data communication with the outside. For example, the data transmission / reception unit 905 performs data communication with an IC module such as a reader / writer and outputs ciphertext generated in the IC module or an external reader. Data input from devices such as writers is executed.

以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。   The present invention has been described in detail above with reference to specific embodiments. However, it is obvious that those skilled in the art can make modifications and substitutions of the embodiments without departing from the gist of the present invention. In other words, the present invention has been disclosed in the form of exemplification, and should not be interpreted in a limited manner. In order to determine the gist of the present invention, the claims should be taken into consideration.

また、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。例えば、プログラムは記録媒体に予め記録しておくことができる。記録媒体からコンピュータにインストールする他、LAN(Local Area Network)、インターネットといったネットワークを介してプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。   The series of processing described in the specification can be executed by hardware, software, or a combined configuration of both. When executing processing by software, the program recording the processing sequence is installed in a memory in a computer incorporated in dedicated hardware and executed, or the program is executed on a general-purpose computer capable of executing various processing. It can be installed and run. For example, the program can be recorded in advance on a recording medium. In addition to being installed on a computer from a recording medium, the program can be received via a network such as a LAN (Local Area Network) or the Internet and can be installed on a recording medium such as a built-in hard disk.

なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。   Note that the various processes described in the specification are not only executed in time series according to the description, but may be executed in parallel or individually according to the processing capability of the apparatus that executes the processes or as necessary. Further, in this specification, the system is a logical set configuration of a plurality of devices, and the devices of each configuration are not limited to being in the same casing.

上述したように、本発明の一実施例の構成によれば、秘密鍵Kに基づいて生成する複数の異なるデータ構成を有する第1中間鍵KAと第2中間鍵KBを適用して、複数のラウンド関数を繰り返し実行して入力データのデータ変換処理を行なう共通鍵ブロック暗号処理構成において、ラウンド関数実行部に第1中間鍵KAに基づいて生成するラウンド鍵KAのみを入力してラウンド関数を実行し、第2中間鍵KBに基づいて生成される鍵KBは、ラウンド関数部におけるF関数に入力することなく、暗号処理対象となる入力データ、またはラウンド関数からの出力データとの排他的論理和演算を実行させる構成とした。本構成により暗号処理回路を簡略化し装置の小型化およびコストダウンを実現することができる。 As described above, according to the configuration of the embodiment of the present invention, the first intermediate key KA and the second intermediate key KB having a plurality of different data configurations generated based on the secret key K are applied to In a common key block cipher processing configuration in which a round function is repeatedly executed to perform data conversion processing of input data, only the round key KA i generated based on the first intermediate key KA is input to the round function execution unit to obtain the round function. The key KB i that is executed and generated based on the second intermediate key KB is exclusive of the input data to be encrypted or the output data from the round function without being input to the F function in the round function section. The configuration is such that an OR operation is executed. With this configuration, it is possible to simplify the cryptographic processing circuit and reduce the size and cost of the apparatus.

共通鍵ブロック暗号アルゴリズムの基本構成を示す図である。It is a figure which shows the basic composition of a common key block encryption algorithm. 共通鍵ブロック暗号におけるデータ暗号化部の構成例について説明する図である。It is a figure explaining the structural example of the data encryption part in a common key block cipher. 共通鍵ブロック暗号におけるデータ暗号化部の構成例について説明する図である。It is a figure explaining the structural example of the data encryption part in a common key block cipher. 共通鍵ブロック暗号における4系列の構成を持つデータ暗号化部の構成例について説明する図である。It is a figure explaining the structural example of the data encryption part which has a 4 series structure in a common key block cipher. 共通鍵ブロック暗号における4系列の構成を持つデータ暗号化部の構成例について説明する図である。It is a figure explaining the structural example of the data encryption part which has a 4 series structure in a common key block cipher. 図2のFeistel構造を持つデータ暗号化部に、複数の異なる鍵に基づいて生成するラウンド鍵および初期鍵、最終鍵を用いる構成とした例について説明する図である。FIG. 3 is a diagram illustrating an example in which a data encryption unit having a Feistel structure in FIG. 2 is configured to use a round key, an initial key, and a final key generated based on a plurality of different keys. 図3のFeistel構造を持つデータ暗号化部に、複数の異なる鍵に基づいて生成するラウンド鍵および初期鍵、最終鍵を用いる構成とした例について説明する図である。FIG. 4 is a diagram illustrating an example in which a data encryption unit having a Feistel structure in FIG. 3 uses a round key generated based on a plurality of different keys, an initial key, and a final key. 図4のFeistel構造を持つデータ暗号化部に、複数の異なる鍵に基づいて生成するラウンド鍵および初期鍵、最終鍵を用いる構成とした例について説明する図である。FIG. 5 is a diagram illustrating an example in which a data encryption unit having a Feistel structure in FIG. 4 uses a round key, an initial key, and a final key generated based on a plurality of different keys. 図5のFeistel構造を持つデータ暗号化部に、複数の異なる鍵に基づいて生成するラウンド鍵および初期鍵、最終鍵を用いる構成とした例について説明する図である。FIG. 6 is a diagram for explaining an example in which a data encryption unit having a Feistel structure in FIG. 5 uses a round key, an initial key, and a final key generated based on a plurality of different keys. 図6に示す2系列のFeistel構造を持つデータ暗号化部の暗号処理回路構成例を示す図である。FIG. 7 is a diagram illustrating a configuration example of an encryption processing circuit of a data encryption unit having a two-series Feistel structure illustrated in FIG. 6. 図7に示す2系列のFeistel構造を持つデータ暗号化部の暗号処理回路構成例を示す図である。It is a figure which shows the example of a encryption processing circuit structure of the data encryption part which has the 2 series Feistel structure shown in FIG. 図8に示す4系列のFeistel構造を持つデータ暗号化部の暗号処理回路構成例を示す図である。It is a figure which shows the example of a encryption processing circuit structure of the data encryption part which has the 4 series Feistel structure shown in FIG. 図9に示す4系列のFeistel構造を持つデータ暗号化部の暗号処理回路構成例を示す図である。It is a figure which shows the example of a encryption processing circuit structure of the data encryption part which has the 4 series Feistel structure shown in FIG. 図10を参照して説明した回路を適用した第2ラウンド〜第5ラウンドの処理を説明する図である。It is a figure explaining the process of 2nd round-5th to which the circuit demonstrated with reference to FIG. 10 is applied. 本発明の一実施例に従った図17に示す回路を適用した第2ラウンド〜第5ラウンドの処理を説明する図である。It is a figure explaining the process of 2nd round-5th to which the circuit shown in FIG. 17 according to one Example of this invention is applied. 本発明の一実施例に従った図17に示す回路を適用した場合の暗号処理構成を説明する図である。It is a figure explaining the encryption processing structure at the time of applying the circuit shown in FIG. 17 according to one Example of this invention. 本発明の一実施例に従った暗号処理回路の構成例について説明する図である。It is a figure explaining the structural example of the encryption processing circuit according to one Example of this invention. 本発明に従った図20に示す回路を適用した第2ラウンド〜第5ラウンドの処理を説明する図である。It is a figure explaining the process of 2nd round-5th round to which the circuit shown in FIG. 20 according to this invention is applied. 本発明の一実施例に従った図20に示す回路を適用した場合の暗号処理構成を説明する図である。It is a figure explaining the encryption processing structure at the time of applying the circuit shown in FIG. 20 according to one Example of this invention. 本発明の一実施例に従った暗号処理回路の構成例について説明する図である。It is a figure explaining the structural example of the encryption processing circuit according to one Example of this invention. 図12を参照して説明した回路を適用した第2ラウンド〜第5ラウンドの処理を説明する図である。It is a figure explaining the process of 2nd round-5th to which the circuit demonstrated with reference to FIG. 12 is applied. 本発明に従った図24に示す回路を適用した第2ラウンド〜第5ラウンドの処理を説明する図である。It is a figure explaining the process of 2nd round-5th round to which the circuit shown in FIG. 24 according to this invention is applied. 本発明の一実施例に従った図24に示す回路を適用した場合の暗号処理構成を説明する図である。FIG. 25 is a diagram illustrating an encryption processing configuration when the circuit shown in FIG. 24 according to an embodiment of the present invention is applied. 本発明の一実施例に従った暗号処理回路の構成例について説明する図である。It is a figure explaining the structural example of the encryption processing circuit according to one Example of this invention. 本発明に従った図27に示す回路を適用した第2ラウンド〜第5ラウンドの処理を説明する図である。It is a figure explaining the process of 2nd round-5th round to which the circuit shown in FIG. 27 according to this invention is applied. 本発明の一実施例に従った図27に示す回路を適用した場合の暗号処理構成を説明する図である。FIG. 28 is a diagram illustrating an encryption processing configuration when the circuit shown in FIG. 27 according to an embodiment of the present invention is applied. 本発明の一実施例に従った暗号処理回路の構成例について説明する図である。It is a figure explaining the structural example of the encryption processing circuit according to one Example of this invention. 本発明に係る暗号処理を実行する暗号処理装置としてのICモジュールの構成例を示す図である。It is a figure which shows the structural example of IC module as a cryptographic processing apparatus which performs the cryptographic processing which concerns on this invention.

符号の説明Explanation of symbols

111 秘密鍵
112 暗号化鍵スケジュール部
113 拡大鍵
114 データ暗号化部
115 ラウンド関数
116 F関数
121〜123 排他的論理和演算部
131〜133 排他的論理和演算部
151〜156 排他的論理和演算部
201 ラウンド関数回路
202 第1鍵生成部(KA生成回路)
203 第2鍵生成部(KB生成回路)
211〜213 セレクタ
214 データレジスタ
215〜216 排他的論理和演算部
221 排他的論理和演算部
222 セレクタ
251 セレクタ
252〜253 排他的論理和演算部
271 セレクタ
272〜273 排他的論理和演算部
302〜305 F関数
307〜308 排他的論理和演算部
312〜315 F関数
321〜324 排他的論理和演算部
351 ラウンド関数回路
352 第1鍵生成部(KA生成回路)
353 第2鍵生成部(KB生成回路)
354 データレジスタ
355〜356 セレクタ
357 排他的論理和演算部
412〜415 F関数
421〜423 排他的論理和演算部
451 ラウンド関数回路
452 第1鍵生成部(KA生成回路)
453 第2鍵生成部(KB生成回路)
454 データレジスタ
455〜456 セレクタ
457 排他的論理和演算部
502〜505 F関数
512〜515 F関数
521〜524 排他的論理和演算部
552〜555 F関数
562〜565 F関数
521〜524 排他的論理和演算部
572〜575 排他的論理和演算部
581〜585 排他的論理和演算部
601 ラウンド関数回路
602 第1鍵生成部(KA生成回路)
603 第2鍵生成部(KB生成回路)
604 入れ替え回路
605 データレジスタ
611〜612 セレクタ
621〜622 排他的論理和演算部
752〜755 F関数
762〜765 F関数
773〜775 排他的論理和演算部
782〜785 排他的論理和演算部
581〜585 排他的論理和演算部
801 ラウンド関数回路
802 第1鍵生成部(KA生成回路)
803 第2鍵生成部(KB生成回路)
804 入れ替え回路
805 データレジスタ
811〜812 セレクタ
821〜822 排他的論理和演算部
900 ICモジュール
901 CPU(Central processing Unit)
902 メモリ
903 暗号処理部
904 乱数発生器
905 送受信部
DESCRIPTION OF SYMBOLS 111 Secret key 112 Encryption key schedule part 113 Extended key 114 Data encryption part 115 Round function 116 F function 121-123 Exclusive OR operation part 131-133 Exclusive OR operation part 151-156 Exclusive OR operation part 201 round function circuit 202 first key generation unit (KA i generation circuit)
203 Second key generation unit (KB i generation circuit)
211 to 213 Selector 214 Data register 215 to 216 Exclusive OR operation unit 221 Exclusive OR operation unit 222 Selector 251 Selector 252 to 253 Exclusive OR operation unit 271 Selector 272 to 273 Exclusive OR operation unit 302 to 305 F function 307 to 308 Exclusive OR operation unit 312 to 315 F function 321 to 324 Exclusive OR operation unit 351 Round function circuit 352 First key generation unit (KA i generation circuit)
353 Second key generation unit (KB i generation circuit)
354 Data register 355 to 356 Selector 357 Exclusive OR operation unit 412 to 415 F function 421 to 423 Exclusive OR operation unit 451 Round function circuit 452 First key generation unit (KA i generation circuit)
453 Second key generation unit (KB i generation circuit)
454 Data register 455 to 456 Selector 457 Exclusive OR operation unit 502 to 505 F function 512 to 515 F function 521 to 524 Exclusive OR operation unit 552 to 555 F function 562 to 565 F function 521 to 524 Exclusive OR Calculation unit 572 to 575 Exclusive OR operation unit 581 to 585 Exclusive OR operation unit 601 Round function circuit 602 First key generation unit (KA i generation circuit)
603 Second key generation unit (KB i generation circuit)
604 Replacement circuit 605 Data register 611 to 612 Selector 621 to 622 Exclusive OR operation unit 752 to 755 F function 762 to 765 F function 773 to 775 Exclusive OR operation unit 782 to 785 Exclusive OR operation unit 581 to 585 Exclusive OR operation unit 801 Round function circuit 802 First key generation unit (KA i generation circuit)
803 Second key generation unit (KB i generation circuit)
804 Replacement circuit 805 Data register 811-812 Selector 821-822 Exclusive OR operation unit 900 IC module 901 CPU (Central processing Unit)
902 Memory 903 Encryption processing unit 904 Random number generator 905 Transmission / reception unit

Claims (21)

共通鍵ブロック暗号処理を実行する暗号処理装置であり、
秘密鍵Kに基づいて生成する異なるデータ構成を有する第1中間鍵KA、および第2中間鍵KBを適用して、複数のラウンド関数を繰り返し実行して入力データのデータ変換処理を行なうデータ暗号化部を有し、
前記データ暗号化部は、
ラウンド数rのラウンド関数を実行するラウンド関数実行部であり、前記第1中間鍵KAに基づいて生成されるラウンド鍵KA(ただしiは1〜rの整数)を入力鍵としてラウンド関数を実行するラウンド関数実行部と、
前記入力データ、または前記ラウンド関数実行部が出力する各ラウンドの出力データ中、少なくとも3以上のラウンドの出力データの構成データに対して前記第2中間鍵KBに基づいて生成される鍵KB(ただしiは0〜r+1の整数)との排他的論理和演算を実行する排他的論理和演算部と、
を有する構成であることを特徴とする暗号処理装置。
A cryptographic processing device that executes a common key block cryptographic process;
Data encryption in which a first intermediate key KA and a second intermediate key KB having different data configurations generated based on a secret key K are applied, and a plurality of round functions are repeatedly executed to perform data conversion processing of input data Part
The data encryption unit
A round-function executing part for executing round functions round number r, the round function (the proviso i integer from 1 to r) round key KA i generated based on the first intermediate key KA as an input key to A round function execution unit to be executed;
Of the input data or the output data of each round output by the round function execution unit, the key KB i (based on the second intermediate key KB) is generated for the constituent data of the output data of at least three rounds. Where i is an integer of 0 to r + 1) and an exclusive OR operation unit for executing an exclusive OR operation with
A cryptographic processing device characterized by comprising:
前記データ暗号化部は、
前記第1中間鍵KAに基づいてラウンド鍵KAの生成処理を実行する第1鍵生成部と、
前記第1鍵生成部の生成するラウンド鍵KA 入力鍵としてラウンド関数を実行するラウンド関数実行部と、
前記入力データまたは前記ラウンド関数実行部からの出力データのいずれかを選択出力する第1セレクタと、
前記第2中間鍵KBに基づいて鍵KBの生成処理を実行する第2鍵生成部と、
前記第2鍵生成部の生成する鍵KBと、値0を含む複数データの選択出力を実行する第2セレクタと、
前記第1セレクタの出力データの構成データと、前記第2セレクタの出力データとの排他的論理和演算を実行する排他的論理和演算部と、
を有する構成であることを特徴とする請求項1に記載の暗号処理装置。
The data encryption unit
A first key generation unit that executes a generation process of the round key KA i based on the first intermediate key KA;
A round-function executing part for executing round functions as an input key round keys KA i for generating the first key generation unit,
A first selector that selectively outputs either the input data or the output data from the round function execution unit;
A second key generation unit that executes a process of generating a key KB i based on the second intermediate key KB;
A second selector that executes selection output of a plurality of data including a key KB i generated by the second key generation unit and a value of 0;
An exclusive OR operation unit that performs an exclusive OR operation between the configuration data of the output data of the first selector and the output data of the second selector;
The cryptographic processing apparatus according to claim 1, wherein the cryptographic processing apparatus has a configuration.
前記データ暗号化部は、
前記第2鍵生成部の生成する鍵KBを入力し、ビット位置入れ替え処理を実行する入れ替え処理部を有し、
前記第2セレクタは、
前記第2鍵生成部の生成する鍵KBと、値0と、前記入れ替え処理部の生成データのいずれかを選択出力する構成であることを特徴とする請求項2に記載の暗号処理装置。
The data encryption unit
A replacement processing unit that inputs a key KB i generated by the second key generation unit and executes a bit position replacement process;
The second selector
3. The cryptographic processing apparatus according to claim 2, wherein the encryption processing apparatus is configured to selectively output any one of a key KB i generated by the second key generation unit, a value of 0, and data generated by the replacement processing unit.
前記第1鍵生成部は、
前記第1中間鍵KAに基づいて、ラウンド1〜rの各ラウンド関数に各々入力するr個のラウンド鍵KA〜KAを生成し、
前記ラウンド関数実行部は、
ラウンド1〜rの各ラウンド関数に、前記第1中間鍵KAに基づいて生成されるr個のラウンド鍵KA〜KAを順次入力してラウンド関数を実行し、
前記第2鍵生成部は、
前記第2中間鍵KBに基づいて、前記ラウンド関数の開始前において適用する初期鍵KBと、rラウンドの最終ラウンド関数の開始後において適用する最終鍵KBr+1と、連続2ラウンドおきのラウンドに対応する鍵KB,KB,・・・KBr−3,KBr−2を生成し、
前記排他的論理和演算部は、
前記入力データ、または前記ラウンド関数実行部が出力する各ラウンドの出力データ中、少なくとも3以上のラウンドの出力データの構成データと、前記第2中間鍵KBに基づいて生成される鍵KB,KB,KB,・・・KBr−3,KBr−2,KBr+1から選択した鍵KBとの排他的論理和演算を実行する構成であることを特徴とする請求項2に記載の暗号処理装置。
The first key generation unit
Based on the first intermediate key KA, r round keys KA 1 to KA r to be input to the respective round functions of rounds 1 to r are generated,
The round function execution unit
The round functions are executed by sequentially inputting r round keys KA 1 to KA r generated based on the first intermediate key KA to each of the round functions of rounds 1 to r .
The second key generator is
Based on the second intermediate key KB, an initial key KB 0 applied before the start of the round function, a final key KB r + 1 applied after the start of the final round function of r rounds, and every two consecutive rounds Generate corresponding keys KB 3 , KB 4 ,... KB r-3 , KB r-2 ,
The exclusive OR operation unit is
Among the input data or the output data of each round output by the round function execution unit, the configuration data of the output data of at least three rounds and the keys KB 0 and KB generated based on the second intermediate key KB 3 , KB 4 ,..., KB r-3 , KB r-2 , KB r + 1 , and a key KB i selected from the key KB i . Cryptographic processing device.
前記排他的論理和演算部は、
前記第2中間鍵KBに基づいて生成される鍵KB,KB,・・・KBr−3,KBr−2から選択した同一鍵を、異なるラウンドのラウンド関数実行部からの出力データに対して2回繰り返して利用した排他的論理和演算を実行する構成であることを特徴とする請求項4に記載の暗号処理装置。
The exclusive OR operation unit is
The same key selected from the keys KB 3 , KB 4 ,..., KB r-3 , KB r-2 generated based on the second intermediate key KB is used as output data from the round function execution units in different rounds. 5. The cryptographic processing apparatus according to claim 4, wherein the encryption processing apparatus is configured to execute an exclusive OR operation that is repeatedly used twice.
前記排他的論理和演算部は、
前記鍵KBから選択した同一鍵を2回繰り返して利用した排他的論理和演算処理において、
4つの連続するラウンド関数に対する入力ラウンド鍵を、前記鍵KB ,KB ,・・・KB r−3 ,KB r−2 から選択した鍵が適用されるラウンドを含む4連続ラウンド4p+1〜4p+4(ただしpは0以上の整数)において、
(a)4p+1ラウンドにラウンド鍵KA 4p+1 を入力、
(b)4p+2ラウンドにラウンド鍵KA 4p+2 を入力、
(c)4p+3ラウンドにラウンド鍵[KA 4p+3 (EXOR)KB 4p+3 ]を入力、
(d)4p+4ラウンドにラウンド鍵[KA 4p+4 (EXOR)KB 4p+4 ]を入力、
上記(a)〜(d)のラウンド鍵の入力処理となるように前記鍵KBから選択した同一鍵を2回繰り返して利用した排他的論理和演算処理を実行する構成であることを特徴とする請求項5に記載の暗号処理装置。
The exclusive OR operation unit is
In the exclusive OR operation processing using the same key selected from the key KB i repeatedly twice,
Input round keys for four consecutive round functions are four consecutive rounds 4p + 1 to 4p + 4 (including rounds to which keys selected from the keys KB 3 , KB 4 ,..., KB r-3 , KB r-2 are applied. Where p is an integer greater than or equal to 0)
(A) enter the round key KA 4p + 1 to 4p + 1 round,
(B) enter the round key KA 4p + 2 to 4p + 2 round,
(C) Enter the round key [ KA 4p + 3 (EXOR) KB 4p + 3 ] in the 4p + 3 round,
(D) Enter the round key [ KA 4p + 4 (EXOR) KB 4p + 4 ] in 4p + 4 rounds,
The configuration is such that an exclusive OR operation process using the same key selected from the key KB i twice is performed so as to be the round key input process of (a) to (d) above. The cryptographic processing device according to claim 5.
前記排他的論理和演算部は、
前記入力データ、または前記ラウンド関数実行部からの出力データを複数に分割した分割データの一部の分割データに対して、前記第2中間鍵KBに基づいて生成される鍵KBまたは鍵KBの分割鍵との排他的論理和演算を実行する構成であることを特徴とする請求項1〜6いずれかに記載の暗号処理装置。
The exclusive OR operation unit is
Key KB i or key KB i generated based on the second intermediate key KB for the input data or a part of the divided data obtained by dividing the output data from the round function execution unit into a plurality of pieces The cryptographic processing apparatus according to claim 1, wherein an exclusive OR operation with the split key is executed.
前記ラウンド関数実行部は、
入力データをnビット(ただしnは2以上の整数)としたとき、n/kビット単位(ただしkは2以上の整数かつnの因数)の分割データを入力する構成であり、ラウンド関数実行部に対する入力データと前記ラウンド鍵KAとの排他的論理和演算を実行し、さらに非線形変換および線形変換を実行して出力データを生成する構成であることを特徴とする請求項1〜7いずれかに記載の暗号処理装置。
The round function execution unit
When the input data is n-bit (where n is an integer of 2 or more), n / k bits (where k is a factor of 2 or more integer and n) is configured to input the divided data of the round function is executed The output data is generated by performing an exclusive OR operation between the input data to the unit and the round key KA i, and further performing nonlinear transformation and linear transformation to generate output data. The cryptographic processing device according to claim 1.
前記データ暗号化部は、Feistel構造に従った暗号化処理を実行する構成であることを特徴とする請求項1〜8いずれかに記載の暗号処理装置。   The encryption processing apparatus according to claim 1, wherein the data encryption unit is configured to execute an encryption process according to a Feistel structure. 前記第1中間鍵KAは、前記秘密鍵Kに対する非線形変換処理により生成される鍵データであり、
前記第2中間鍵KBは、
(a)秘密鍵Kに対して、第1中間鍵KAと異なる非線形変換を適用したデータ、
(b)秘密鍵Kに対して線形変換を適用したデータ、
(c)秘密鍵Kそのもの
上記(a)〜(c)のいずれかによって構成されるデータであることを特徴とする請求項1〜9いずれかに記載の暗号処理装置。
The first intermediate key KA is key data generated by a non-linear transformation process for the secret key K,
The second intermediate key KB is
(A) data obtained by applying a non-linear transformation different from the first intermediate key KA to the secret key K;
(B) data obtained by applying linear transformation to the secret key K;
(C) Secret key K itself It is the data comprised by either of said (a)-(c), The encryption processing apparatus in any one of Claims 1-9 characterized by the above-mentioned.
暗号処理装置において、共通鍵ブロック暗号処理を実行する暗号処理方法であり、
データ暗号化部が、秘密鍵Kに基づいて生成する異なるデータ構成を有する第1中間鍵KAと第2中間鍵KBを適用して、複数のラウンド関数を繰り返し実行して入力データのデータ変換処理を行なうデータ暗号化ステップを有し、
前記データ暗号化ステップは、
ラウンド関数実行部が、前記第1中間鍵KAに基づいて生成されるラウンド鍵KA(ただしiは1〜rの整数)を入力鍵としてラウンド数rのラウンド関数を実行するラウンド関数実行ステップと、
排他的論理和演算部が、前記入力データ、または前記ラウンド関数実行部が出力する各ラウンドの出力データ中、少なくとも3以上のラウンドの出力データの構成データに対して前記第2中間鍵KBに基づいて生成される鍵KB(ただしiは0〜r+1の整数)との排他的論理和演算を実行する排他的論理和演算ステップと、
を有することを特徴とする暗号処理方法。
An encryption processing method for executing a common key block encryption process in an encryption processing apparatus,
A data encryption unit applies a first intermediate key KA and a second intermediate key KB having different data configurations generated based on a secret key K, and repeatedly executes a plurality of round functions to perform data conversion processing of input data A data encryption step for performing
The data encryption step includes
Round-function executing part, the round-function executing step round key KA i (where i is the integer of 1 to r) execute the round function rounds number r as an input key to be generated based on the first intermediate key KA When,
The exclusive OR operation unit is based on the second intermediate key KB for the configuration data of the output data of at least three rounds in the input data or the output data of each round output by the round function execution unit. An exclusive OR operation step of performing an exclusive OR operation with the key KB i (where i is an integer from 0 to r + 1) generated by
A cryptographic processing method comprising:
前記データ暗号化ステップは、
第1鍵生成部が、前記第1中間鍵KAに基づいてラウンド鍵KAの生成処理を実行する第1鍵生成ステップと、
ラウンド関数実行部が、前記第1鍵生成部の生成するラウンド鍵KA 入力鍵としてラウンド関数を実行するラウンド関数実行ステップと、
第1セレクタが、前記入力データまたは前記ラウンド関数実行部からの出力データのいずれかを選択出力する第1データ選択ステップと、
第2鍵生成部が、前記第2中間鍵KBに基づいて鍵KBの生成処理を実行する第2鍵生成ステップと、
第2セレクタが、前記第2鍵生成部の生成する鍵KBと、値0を含む複数データの選択出力を実行する第2データ選択ステップと、
排他的論理和演算部が、前記第1セレクタの出力データの構成データと、前記第2セレクタの出力データとの排他的論理和演算を実行する排他的論理和演算ステップと、
を有することを特徴とする請求項11に記載の暗号処理方法。
The data encryption step includes
A first key generation step in which a first key generation unit executes a generation process of a round key KA i based on the first intermediate key KA;
Round-function executing part, and the round-function executing step of executing round functions round keys KA i for generating the first key generating section as an input key,
A first data selection step in which the first selector selects and outputs either the input data or the output data from the round function execution unit;
A second key generation step in which a second key generation unit executes a key KB i generation process based on the second intermediate key KB;
A second data selection step in which the second selector executes a selection output of a plurality of data including the key KB i generated by the second key generation unit and the value 0;
An exclusive OR operation unit that performs an exclusive OR operation on the configuration data of the output data of the first selector and the output data of the second selector; and
The cryptographic processing method according to claim 11, comprising:
前記データ暗号化ステップは、さらに、
入れ替え処理部が、前記第2鍵生成部の生成する鍵KBを入力し、ビット位置入れ替え処理を実行する入れ替え処理ステップを有し、
前記第2データ選択ステップは、
前記第2鍵生成部の生成する鍵KBと、値0と、前記入れ替え処理部の生成データのいずれかを選択出力するステップであることを特徴とする請求項12に記載の暗号処理方法。
The data encryption step further comprises:
The replacement processing unit has a replacement processing step of inputting a key KB i generated by the second key generation unit and executing a bit position replacement process,
The second data selection step includes
13. The encryption processing method according to claim 12, wherein the encryption processing method is a step of selectively outputting any one of a key KB i generated by the second key generation unit, a value 0, and generation data of the replacement processing unit.
前記第1鍵生成ステップは、
前記第1中間鍵KAに基づいて、ラウンド1〜rの各ラウンド関数に各々入力するr個のラウンド鍵KA〜KAを生成し、
前記ラウンド関数実行ステップは、
ラウンド1〜rの各ラウンド関数に、前記第1中間鍵KAに基づいて生成されるr個のラウンド鍵KA〜KAを順次入力してラウンド関数を実行し、
前記第2鍵生成ステップは、
前記第2中間鍵KBに基づいて、前記ラウンド関数の開始前において適用する初期鍵KBと、rラウンドの最終ラウンド関数の開始後において適用する最終鍵KBr+1と、連続2ラウンドおきのラウンドに対応する鍵KB,KB,・・・KBr−3,KBr−2を生成し、
前記排他的論理和演算ステップは、
前記入力データ、または前記ラウンド関数実行部が出力する各ラウンドの出力データ中、少なくとも3以上のラウンドの出力データの構成データと、前記第2中間鍵KBに基づいて生成される鍵KB,KB,KB,・・・KBr−3,KBr−2,KBr+1から選択した鍵KBとの排他的論理和演算を実行するステップであることを特徴とする請求項12に記載の暗号処理方法。
The first key generation step includes:
Based on the first intermediate key KA, r round keys KA 1 to KA r to be input to the respective round functions of rounds 1 to r are generated,
The round function execution step includes:
The round functions are executed by sequentially inputting r round keys KA 1 to KA r generated based on the first intermediate key KA to each of the round functions of rounds 1 to r .
The second key generation step includes
Based on the second intermediate key KB, an initial key KB 0 applied before the start of the round function, a final key KB r + 1 applied after the start of the final round function of r rounds, and every two consecutive rounds Generate corresponding keys KB 3 , KB 4 ,... KB r-3 , KB r-2 ,
The exclusive OR operation step includes:
Among the input data or the output data of each round output by the round function execution unit, the configuration data of the output data of at least three rounds and the keys KB 0 and KB generated based on the second intermediate key KB 13. The step of performing an exclusive OR operation with a key KB i selected from 3 , KB 4 ,..., KB r-3 , KB r-2 , KB r + 1 . Cryptographic processing method.
前記排他的論理和演算ステップは、
前記第2中間鍵KBに基づいて生成される鍵KB,KB,・・・KBr−3,KBr−2から選択した同一鍵を、異なるラウンドのラウンド関数実行部からの出力データに対して2回繰り返して利用した排他的論理和演算を実行するステップであることを特徴とする請求項14に記載の暗号処理方法。
The exclusive OR operation step includes:
The same key selected from the keys KB 3 , KB 4 ,..., KB r-3 , KB r-2 generated based on the second intermediate key KB is used as output data from the round function execution units in different rounds. The encryption processing method according to claim 14, wherein the encryption processing method is a step of executing an exclusive OR operation that is repeatedly used twice.
前記排他的論理和演算ステップは、
前記鍵KBから選択した同一鍵を2回繰り返して利用した排他的論理和演算処理において、
4つの連続するラウンド関数に対する入力ラウンド鍵を、前記鍵KB ,KB ,・・・KB r−3 ,KB r−2 から選択した鍵が適用されるラウンドを含む4連続ラウンド4p+1〜4p+4(ただしpは0以上の整数)において、
(a)4p+1ラウンドにラウンド鍵KA 4p+1 を入力、
(b)4p+2ラウンドにラウンド鍵KA 4p+2 を入力、
(c)4p+3ラウンドにラウンド鍵[KA 4p+3 (EXOR)KB 4p+3 ]を入力、
(d)4p+4ラウンドにラウンド鍵[KA 4p+4 (EXOR)KB 4p+4 ]を入力、
上記(a)〜(d)のラウンド鍵の入力処理となるように前記鍵KBから選択した同一鍵を2回繰り返して利用した排他的論理和演算処理を実行するステップであることを特徴とする請求項15に記載の暗号処理方法。
The exclusive OR operation step includes:
In the exclusive OR operation processing using the same key selected from the key KB i repeatedly twice,
Input round keys for four consecutive round functions are four consecutive rounds 4p + 1 to 4p + 4 (including rounds to which keys selected from the keys KB 3 , KB 4 ,..., KB r-3 , KB r-2 are applied. Where p is an integer greater than or equal to 0)
(A) enter the round key KA 4p + 1 to 4p + 1 round,
(B) enter the round key KA 4p + 2 to 4p + 2 round,
(C) Enter the round key [ KA 4p + 3 (EXOR) KB 4p + 3 ] in the 4p + 3 round,
(D) Enter the round key [ KA 4p + 4 (EXOR) KB 4p + 4 ] in 4p + 4 rounds,
It is a step of executing exclusive OR operation processing using the same key selected from the key KB i twice so as to be the round key input processing of (a) to (d) above. The encryption processing method according to claim 15.
前記排他的論理和演算ステップは、
前記入力データ、または前記ラウンド関数実行部からの出力データを複数に分割した分割データの一部の分割データに対して、前記第2中間鍵KBに基づいて生成される鍵KBまたは鍵KBの分割鍵との排他的論理和演算を実行するステップであることを特徴とする請求項11〜16いずれかに記載の暗号処理方法。
The exclusive OR operation step includes:
Key KB i or key KB i generated based on the second intermediate key KB for the input data or a part of the divided data obtained by dividing the output data from the round function execution unit into a plurality of pieces The encryption processing method according to claim 11, wherein the encryption processing method is a step of executing an exclusive OR operation with the split key.
前記ラウンド関数実行ステップは、
入力データをnビット(ただしnは2以上の整数)としたとき、n/kビット単位(ただしkは2以上の整数かつnの因数)の分割データを入力し、ラウンド関数実行部に対する入力データと前記ラウンド鍵KAとの排他的論理和演算を実行し、さらに非線形変換および線形変換を実行して出力データを生成するステップであることを特徴とする請求項11〜17いずれかに記載の暗号処理方法。
The round function execution step includes:
When the input data is n-bit (where n is an integer of 2 or more), n / k bits (where k is a factor of 2 or more integer and n) enter the divided data of the input to the round-function executing parts 18. The step of performing an exclusive OR operation between data and the round key KA i, and further performing nonlinear transformation and linear transformation to generate output data. Encryption processing method.
前記データ暗号化ステップは、Feistel構造に従った暗号化処理を実行するステップであることを特徴とする請求項11〜18いずれかに記載の暗号処理方法。   19. The encryption processing method according to claim 11, wherein the data encryption step is a step of executing an encryption process according to a Feistel structure. 前記第1中間鍵KAは、前記秘密鍵Kに対する非線形変換処理により生成される鍵データであり、
前記第2中間鍵KBは、
(a)秘密鍵Kに対して、第1中間鍵KAと異なる非線形変換を適用したデータ、
(b)秘密鍵Kに対して線形変換を適用したデータ、
(c)秘密鍵Kそのもの
上記(a)〜(c)のいずれかによって構成されるデータであることを特徴とする請求項11〜19いずれかに記載の暗号処理方法。
The first intermediate key KA is key data generated by a non-linear transformation process for the secret key K,
The second intermediate key KB is
(A) data obtained by applying a non-linear transformation different from the first intermediate key KA to the secret key K;
(B) data obtained by applying linear transformation to the secret key K;
(C) Secret key K itself It is the data comprised by either of said (a)-(c), The encryption processing method in any one of Claims 11-19 characterized by the above-mentioned.
暗号処理装置において、共通鍵ブロック暗号処理を実行させるコンピュータ・プログラムであり、
データ暗号化部に、秘密鍵Kに基づいて生成する異なるデータ構成を有する第1中間鍵KAと第2中間鍵KBを適用して、複数のラウンド関数を繰り返し実行して入力データのデータ変換処理を行なわせるデータ暗号化ステップを有し、
前記データ暗号化ステップは、
ラウンド関数実行部に、前記第1中間鍵KAに基づいて生成されるラウンド鍵KA(ただしiは1〜rの整数)を入力鍵としてラウンド関数を実行させるラウンド関数実行ステップと、
排他的論理和演算部に、前記入力データ、または前記ラウンド関数実行部が出力する各ラウンドの出力データ中、少なくとも3以上のラウンドの出力データの構成データに対して前記第2中間鍵KBに基づいて生成される鍵KB(ただしiは0〜r+1の整数)との排他的論理和演算を実行させる排他的論理和演算ステップと、
を含むことを特徴とするコンピュータ・プログラム。
In a cryptographic processing device, a computer program for executing a common key block cryptographic process,
Applying the first intermediate key KA and the second intermediate key KB having different data configurations generated based on the secret key K to the data encryption unit and repeatedly executing a plurality of round functions to convert the input data Having a data encryption step to perform
The data encryption step includes
The round-function executing part, the round key KA i (where i is an integer of 1 to r) that is generated based on the first intermediate key KA and the round-function executing step of executing the round function as input keys, and
Based on the second intermediate key KB for the configuration data of the output data of at least three rounds in the input data or the output data of each round output by the round function execution unit to the exclusive OR operation unit An exclusive OR operation step for executing an exclusive OR operation with the key KB i (where i is an integer of 0 to r + 1) generated by
A computer program comprising:
JP2007165864A 2007-06-25 2007-06-25 Cryptographic processing apparatus, cryptographic processing method, and computer program Expired - Fee Related JP5223245B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007165864A JP5223245B2 (en) 2007-06-25 2007-06-25 Cryptographic processing apparatus, cryptographic processing method, and computer program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007165864A JP5223245B2 (en) 2007-06-25 2007-06-25 Cryptographic processing apparatus, cryptographic processing method, and computer program

Publications (3)

Publication Number Publication Date
JP2009003312A JP2009003312A (en) 2009-01-08
JP2009003312A5 JP2009003312A5 (en) 2010-06-17
JP5223245B2 true JP5223245B2 (en) 2013-06-26

Family

ID=40319729

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007165864A Expired - Fee Related JP5223245B2 (en) 2007-06-25 2007-06-25 Cryptographic processing apparatus, cryptographic processing method, and computer program

Country Status (1)

Country Link
JP (1) JP5223245B2 (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3517063B2 (en) * 1996-10-11 2004-04-05 株式会社東芝 Encryption device and encryption method
WO2002058036A1 (en) * 2001-01-22 2002-07-25 Fujitsu Limited Encryption circuit
JP4128395B2 (en) * 2002-05-23 2008-07-30 三菱電機株式会社 Data converter

Also Published As

Publication number Publication date
JP2009003312A (en) 2009-01-08

Similar Documents

Publication Publication Date Title
JP4967544B2 (en) Cryptographic processing apparatus, cryptographic processing method, and computer program
JP5023624B2 (en) Cryptographic processing apparatus, cryptographic processing method, and computer program
JP4905000B2 (en) Cryptographic processing apparatus, cryptographic processing method, and computer program
JP5055993B2 (en) Cryptographic processing apparatus, cryptographic processing method, and computer program
JP5050454B2 (en) Cryptographic processing apparatus, cryptographic processing method, and computer program
JP4622807B2 (en) Cryptographic processing apparatus, cryptographic processing method, and computer program
JP5682527B2 (en) Cryptographic processing apparatus, cryptographic processing method, and program
WO2008026624A1 (en) Data conversion device, data conversion method, and computer program
JP2008051829A (en) Encryption processor, method for building encryption processing algorithm, encryption processing method, and computer program
WO2008026625A1 (en) Encryption device, encryption method, and computer program
TWI595460B (en) Data processing device, information processing device, data processing method and program
JP2007192893A (en) Encryption processing device, encryption processing method, and computer program
JP2007199156A (en) Encryption processing device, equipment and method for manufacturing encryption processing device, and computer program
JP2006072054A (en) Encryption processing device, encryption processing method, and computer program
JP5680016B2 (en) Decoding processing apparatus, information processing apparatus, decoding processing method, and computer program
JP5223245B2 (en) Cryptographic processing apparatus, cryptographic processing method, and computer program
JP5605197B2 (en) Cryptographic processing apparatus, cryptographic processing method, and program
JP5772934B2 (en) Data conversion apparatus, data conversion method, and computer program
JP5488608B2 (en) Block encryption apparatus, block encryption method and program
JP5338945B2 (en) Decoding processing apparatus, information processing apparatus, decoding processing method, and computer program

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100426

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100426

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120925

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121121

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130117

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130225

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

Free format text: PAYMENT UNTIL: 20160322

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees