JPH06149153A - General purpose high-speed encoding device - Google Patents
General purpose high-speed encoding deviceInfo
- Publication number
- JPH06149153A JPH06149153A JP29462292A JP29462292A JPH06149153A JP H06149153 A JPH06149153 A JP H06149153A JP 29462292 A JP29462292 A JP 29462292A JP 29462292 A JP29462292 A JP 29462292A JP H06149153 A JPH06149153 A JP H06149153A
- Authority
- JP
- Japan
- Prior art keywords
- output
- encryption
- key
- function
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Abstract
Description
【0001】[0001]
【産業上の利用分野】本発明は、汎用高速暗号装置に係
り、特に、通信データや計算機データの安全性を高める
ための暗号において、暗号アルゴリズムにFEAL(Fa
st Data Enclipherment Algorithm:高速データ暗号化ア
ルゴリズム) を用いた暗号及び復号を高速に実行する汎
用高速暗号装置に関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a general-purpose high-speed encryption device, and more particularly to a FEAL (Fa (Fa)
st Data Enclipherment Algorithm: A high-speed general-purpose cryptographic device that performs encryption and decryption at high speed using a high-speed data encryption algorithm.
【0002】[0002]
【従来の技術】暗号アルゴリズムのFEAL−8(詳細
は例えば、文献、宮口、白石、清水:「FEAL−8暗
号アルゴリズム」、研究実用化報告・第37巻第4/5
号、pp. 321-327, 1988)の内部回転段数8を可変値のN
に増加して、選択平文攻撃を無効にできるFEAL−N
暗号が提案されている(詳細は、例えば文献:宮口、栗
原、太田、森田:「FEAL暗号の拡張」、NTT R
&D Vol.39, No 10, pp.1439-1450,1990)。2. Description of the Related Art FEAL-8 cryptographic algorithm (for details, refer to, for example, literature, Miyaguchi, Shiraishi, Shimizu: "FEAL-8 cryptographic algorithm", Research Practical Report, Volume 37, 4/5).
No., pp. 321-327, 1988), the number of internal rotation stages is 8
FEAL-N that can increase the number of selected plaintext attacks
Ciphers have been proposed (for details, refer to, for example, literature: Miyaguchi, Kurihara, Ota, Morita: “Extending FEAL Ciphers”, NTT R).
& D Vol.39, No 10, pp.1439-1450, 1990).
【0003】[0003]
【発明が解決しようとする課題】しかしながら、FEA
L−Nをハードウェアで高速に実行する暗号装置はま
た、実現されていない。[Problems to be Solved by the Invention] However, FEA
Cryptographic devices that perform L-N in hardware at high speed have also not been implemented.
【0004】このFEAL−N(N:内部回転数)を高
速で実現する方法として、ソフトウェアよりハードウェ
アで実現することが必要であるが、想定されるすべての
内部回転数のFEAL−Nをハードウェアで実現するこ
とは、規模の面から不可能である。As a method of realizing this FEAL-N (N: internal rotation speed) at high speed, it is necessary to realize it by hardware rather than software. However, it is necessary to implement FEAL-N of all assumed internal rotation speeds by hardware. It is impossible to realize with ware in terms of scale.
【0005】本発明は、上記の点に鑑みなされたもの
で、FEAL暗号において、任意の内部回転段数を選択
でき、しかも少ないハードウェアで高速に暗号化及び復
号を実行することができる汎用高速暗号装置を提供する
ことを目的とする。The present invention has been made in view of the above points, and in FEAL encryption, an arbitrary number of internal rotation stages can be selected, and general-purpose high-speed encryption capable of executing high-speed encryption and decryption with a small amount of hardware. The purpose is to provide a device.
【0006】[0006]
【課題を解決するための手段】図1は、本発明の原理構
成図を示す。FIG. 1 is a block diagram showing the principle of the present invention.
【0007】本発明の汎用高速暗号装置は、通信データ
や計算機データの安全性を高めるために用いる暗号アル
ゴリズムである高速データ暗号化アルゴリズムを用いた
暗号装置おいて、64ビット長からなる暗号鍵をfk関
数等の入力によって拡張鍵を生成する鍵処理部1と、鍵
処理部1からの出力である拡張鍵5を保持する拡張鍵レ
ジスタ2と、64ビット長からなる平文または暗号文で
ある入力データ7と拡張鍵レジスタ2の出力から排他的
論理和及びf関数等6によって、暗号化または復号処理
するデータランダム化部3とを含み、鍵処理部1は、2
k番目(kは正の整数)のfk関数の出力、2k+1番
目のfk関数の出力、2k+2番目のfk関数の出力を
一時保持するバッファを有し、2k+1番目のfk関数
の出力、2k+2番目のfk関数の出力を保持する拡張
鍵レジスタ2のアドレスを生成し、データランダム化部
3は、入力データ7または、暗号処理の途中結果を一時
保持する64ビットのバッファの出力のいずれか一つの
入力を選択する入力セレクタと、排他的論理和で構成す
る排他的論理和部と、f関数回路及び排他的論理和で構
成する暗号処理部と、排他的論理和部の出力または、暗
号処理部の出力のいずれかを選択する出力セレクタと、
出力セレクタの出力である暗号処理の途中結果を一時保
持する64ビットのバッファとを有し、最初の最後の処
理は排他的論理和部で行い、途中の処理は暗号処理部で
処理を繰り返し、排他的論理和部の出力または暗号処理
部の出力を一時保持し、暗号化または復号指示により該
当する拡張鍵レジスタのアドレスを生成して排他的論理
和部及び暗号処理部に拡張鍵を加える。The general-purpose high-speed encryption device of the present invention uses an encryption key having a 64-bit length in an encryption device using a high-speed data encryption algorithm which is an encryption algorithm used to enhance the security of communication data and computer data. A key processing unit 1 that generates an extended key by inputting an fk function, an extended key register 2 that holds an extended key 5 that is an output from the key processing unit 1, and an input that is a plaintext or a ciphertext having a 64-bit length. The key processing unit 1 includes a data 7 and a data randomizing unit 3 that performs encryption or decryption processing from the output of the extended key register 2 by exclusive OR and f-function 6 or the like.
The output of the k-th (k is a positive integer) fk function, the output of the 2k + 1-th fk function, the buffer that temporarily holds the output of the 2k + 2-th fk function, the output of the 2k + 1-th fk function, the 2k + 2-th output The address of the extended key register 2 that holds the output of the fk function is generated, and the data randomization unit 3 inputs either one of the input data 7 and the output of the 64-bit buffer that temporarily holds the intermediate result of the encryption process. An input selector for selecting, an exclusive OR unit configured by exclusive OR, an encryption processing unit configured by an f-function circuit and exclusive OR, an output of the exclusive OR unit, or An output selector that selects one of the outputs,
It has a 64-bit buffer for temporarily holding the intermediate result of the cryptographic processing which is the output of the output selector, the first and last processing is performed by the exclusive OR section, the intermediate processing is repeated by the cryptographic processing section, The output of the exclusive OR unit or the output of the encryption processing unit is temporarily held, the address of the corresponding extended key register is generated by the encryption or decryption instruction, and the extended key is added to the exclusive OR unit and the encryption processing unit.
【0008】[0008]
【作用】本発明は、鍵処理部に暗号鍵が入力されると、
拡張鍵を生成し、拡張鍵を拡張鍵レジスタに出力する。
拡張鍵レジスタは、拡張鍵レジスタを指定されたアドレ
スを拡張鍵を書込みその内容を保持しておき、データラ
ンダム化部は設定された内部回転段数に応じて、入力さ
れた平文または暗号文を拡張鍵レジスタに保持してある
拡張鍵を用いて排他的論理和及びf関数等により暗号化
または復号を行いデータを構成し、暗号化または復号を
行い、暗号化または復号文を出力する。これらの一連の
処理により任意の内部回転段数を選択して、規模の小さ
なハードウェアで暗号化及び復号を実現することができ
る。According to the present invention, when the encryption key is input to the key processing unit,
Generate an extended key and output the extended key to the extended key register.
The extended key register writes the extended key to the address specified in the extended key register and holds the contents, and the data randomization unit extends the input plaintext or ciphertext according to the set number of internal rotation stages. The extended key held in the key register is used for encryption or decryption by exclusive OR and f-function to form data, encryption or decryption, and output of encrypted or decrypted text. By performing a series of these processes, an arbitrary number of internal rotation stages can be selected, and encryption and decryption can be realized with small-scale hardware.
【0009】[0009]
【実施例】以下、本発明の実施例について図面と共に説
明する。なお、以下『平文を暗号分に変換すること』を
「暗号化」とし、『暗号文を平文に変換すること』を
「復号」と記し、暗号化と復号の総称を「暗号」と記
す。Embodiments of the present invention will be described below with reference to the drawings. Hereinafter, "converting plaintext into ciphertext" will be referred to as "encryption", "converting ciphertext into plaintext" will be referred to as "decryption", and the general term for encryption and decryption will be referred to as "encryption".
【0010】図1は、本発明の一実施例の高速データ暗
号化アルゴリズム(以下FEAL)を用いた汎用高速暗
号装置の構成を示すブロック図である。この汎用高速暗
号装置は、64ビット長からなる暗号鍵をfk関数(f
k関数については「FEAL−8暗号アルゴリズム」を
参照)等によって拡張鍵を生成する鍵処理部1、鍵処理
部1からの拡張鍵を保持する2ポートRAM(Random A
ccess Memory) 等で実現される拡張鍵レジスタ2、入力
データ(平文または暗号文)を排他的論理和及びf関数
(f関数については、後述する)等によって、暗号化ま
たは、復号処理するデータランダム化部3、暗号鍵を入
力するデータ線4、平文または暗号文を入力するデータ
線7、内部回転段数を指定する制御線9、暗号化または
復号を指定する制御線10、暗号文または、平文を出力
するデータ線8から構成される。FIG. 1 is a block diagram showing the configuration of a general-purpose high-speed encryption apparatus using a high-speed data encryption algorithm (FEAL) according to an embodiment of the present invention. This general-purpose high-speed encryption device uses an fk function (f
For the k function, refer to "FEAL-8 encryption algorithm") or the like to generate an extended key, and a 2-port RAM (Random A) that holds the extended key from the key processing unit 1.
ckey (random memory) etc. extended key register 2, input data (plaintext or ciphertext) by exclusive OR and f function (f function will be described later), etc. Encryption unit 3, data line 4 for inputting an encryption key, data line 7 for inputting a plaintext or ciphertext, control line 9 for specifying the number of internal rotation stages, control line 10 for specifying encryption or decryption, ciphertext or plaintext Of the data line 8 for outputting
【0011】以下に拡張鍵の生成及びデータランダム化
について説明する。Generation of an extended key and data randomization will be described below.
【0012】(1)拡張鍵生成 図2は本発明の一実施例の鍵処理部及び拡張鍵レジスタ
の詳細な構成を示す図である。同図中、図1と同一構成
部分には同一符号を付す。(1) Extended Key Generation FIG. 2 is a diagram showing a detailed configuration of the key processing unit and the extended key register according to the embodiment of the present invention. In the figure, the same components as those in FIG. 1 are designated by the same reference numerals.
【0013】鍵処理部1の鍵処理制御部10は、制御線
9からの内部回転段数の入力により鍵処理部1の全体制
御と、拡張鍵レジスタ2への拡張鍵書込みの制御を行
う。バッファ11、12、13は処理の途中の結果を一
時保持する32ビットのバッファで、制御線29の立ち
上がりで、入力データ(平文または暗号文)の内容を保
持する。セレクタ14、16は制御線30の値が“0”
のときS0側の入力を出力し、制御線30の値が“1”
のとき、S1側の入力を出力する32ビット幅のセレク
タである。ANDゲート15は、制御線30の値が
“0”のとき全ビットに“0”を出力し、制御線30の
値が“1”のとき入力をそのまま出力する32ビット分
の論理積(AND)ゲートである。排他的論理和(以下
EOR)ゲート17、19は2組の入力データ(1組当
り32ビット)の排他的論理和(EOR)を出力するゲ
ートである。fk関数回路18、20はFEALで定義
された関数を用いて、図3に示す論理構成を実現する回
路である。The key processing control unit 10 of the key processing unit 1 controls the entire key processing unit 1 and the writing of the extended key to the extended key register 2 by inputting the number of internal rotation stages from the control line 9. The buffers 11, 12, and 13 are 32-bit buffers that temporarily hold the results during the processing, and hold the contents of input data (plaintext or ciphertext) at the rising edge of the control line 29. In the selectors 14 and 16, the value of the control line 30 is "0".
, The output of the S0 side is output and the value of the control line 30 is "1".
Is a 32-bit wide selector that outputs the input on the S1 side. The AND gate 15 outputs "0" to all the bits when the value of the control line 30 is "0", and outputs the input as it is when the value of the control line 30 is "1". ) It is a gate. Exclusive OR (hereinafter, EOR) gates 17 and 19 are gates that output an exclusive OR (EOR) of two sets of input data (32 bits per set). The fk function circuits 18 and 20 are circuits that realize the logical configuration shown in FIG. 3 by using the function defined by FEAL.
【0014】拡張鍵レジスタ2は鍵処理部1で生成した
拡張鍵を鍵処理制御部10からのアドレス線31が示す
アドレスに書き込むレジスタであり、制御線32の立ち
上がり時点の入力5(64ビット)の内容を保持する。The extended key register 2 is a register for writing the extended key generated by the key processing unit 1 to the address indicated by the address line 31 from the key processing control unit 10, and the input 5 (64 bits) at the rising time of the control line 32. Hold the contents of.
【0015】次に、制御線9で内部回転段数を32(N
=32)に指定したときの鍵処理部1、拡張鍵レジスタ
2の動作順序を図2、図3、図4、図5、図6を用いて
説明する。図3はfk関数の論理構成を示す図である。
図4は鍵処理部の論理構成図である。図5は本発明の一
実施例の鍵処理部の動作のタイミングチャートである。
図6は、本発明の一実施例の拡張鍵の値をそのアドレス
との関係を示す図である。Next, the number of internal rotation stages is set to 32 (N
= 32), the operation sequence of the key processing unit 1 and the extended key register 2 will be described with reference to FIGS. 2, 3, 4, 5, and 6. FIG. 3 is a diagram showing the logical configuration of the fk function.
FIG. 4 is a logical configuration diagram of the key processing unit. FIG. 5 is a timing chart of the operation of the key processing unit according to the embodiment of the present invention.
FIG. 6 is a diagram showing the relationship between the value of the extended key and its address according to the embodiment of the present invention.
【0016】・ステップ1(図5のo参照) 64ビットの暗号鍵がデータ線4にセットされると鍵処
理制御部10は制御線30を“0”にする。これにより
入力された暗号鍵のLSB(最下位ビット)側の32ビ
ットはセレクタ14の出力22に現れ、入力された暗号
鍵のMSB(最上位ビット)側の32ビットはセレクタ
16の出力25に現れる。また、制御線30が“0”で
あれば、ANDゲート15の出力23は全て“0”とな
り、EORゲート17の出力24にはセレクタ14の出
力22が現れる。Step 1 (see o in FIG. 5) When the 64-bit encryption key is set on the data line 4, the key processing controller 10 sets the control line 30 to "0". As a result, 32 bits on the LSB (least significant bit) side of the input encryption key appear at the output 22 of the selector 14, and 32 bits on the MSB (most significant bit) side of the input encryption key appear at the output 25 of the selector 16. appear. If the control line 30 is "0", the outputs 23 of the AND gate 15 are all "0", and the output 22 of the selector 14 appears at the output 24 of the EOR gate 17.
【0017】以下、バッファ13の入力にはfk関数回
路18の出力26(図4のaで示す場所の値(K0,K
1))が現れる。バッファ12の入力には、セレクタ1
4の出力22(図4のbで示す場所の値)が現れる。バ
ッファ11の入力にはfk関数回路20の出力28(図
4のcで示す場所の値(K2,K3)が現れる。これに
より、本ステップ(図5のo)の最後に鍵処理制御部1
0はバッファ11、12、13の入力の値を一時的に保
持するために制御線29を“0”から“1”にする(図
5のp参照)。Hereinafter, the input of the buffer 13 is the output 26 of the fk function circuit 18 (values (K0, K
1)) appears. The selector 1 is connected to the input of the buffer 12.
4 output 22 (value at the location indicated by b in FIG. 4) appears. At the input of the buffer 11, the output 28 of the fk function circuit 20 (values (K2, K3) at the place indicated by c in FIG. 4 appears. Therefore, at the end of this step (o in FIG. 5), the key processing control unit 1
"0" changes the control line 29 from "0" to "1" in order to temporarily hold the input values of the buffers 11, 12, and 13 (see p in FIG. 5).
【0018】このステップ1により図4のdの場所まで
処理を行ったこととなる。By this step 1, the processing is performed up to the location of d in FIG.
【0019】・ステップ2(図5のq参照) 鍵処理制御部10は制御線30を“1”にするととも
に、バッファ13の出力(K0,K1)及びバッファ1
1の出力(K2,K3)を拡張鍵レジスタ2に保持する
ために鍵処理制御部10は、アドレス線31に拡張鍵レ
ジスタ2のアドレス「0」を出力し(図5のr参照)、
拡張鍵を書き込むために制御線32を“0”から“1”
にする(図5のs参照)。また、バッファ13の入力に
は図4のfで示す場所の値(K4,K5)が現れ、バッ
ファ12の入力には図2のeで示す場所の値が現れ、バ
ッファ11の入力には図4のdで示す場所の値(K6,
K7)が現れ、本ステップの最後に鍵処理制御部10は
バッファ入力の値を一時的に保持するために制御線29
を“0”から“1”にする(図5のt参照)。Step 2 (see q in FIG. 5) The key processing controller 10 sets the control line 30 to "1" and outputs the buffer 13 (K0, K1) and the buffer 1
In order to hold the output (K2, K3) of 1 in the extended key register 2, the key processing control unit 10 outputs the address “0” of the extended key register 2 to the address line 31 (see r in FIG. 5),
The control line 32 is changed from "0" to "1" to write the extended key.
(See s in FIG. 5). Further, the value of the place (K4, K5) shown in f of FIG. 4 appears in the input of the buffer 13, the value of the place shown in e of FIG. The value of the place indicated by d of 4 (K6
K7) appears, and at the end of this step, the key processing control unit 10 controls the control line 29 to temporarily hold the value of the buffer input.
Is changed from "0" to "1" (see t in FIG. 5).
【0020】本ステップにより、図4のgの場所まで処
理を行ったこととなる。By this step, the processing is performed up to the position of g in FIG.
【0021】・ステップ3からステップ10 本ステップは、ステップ2と同様の動作を行う。なお、
バッファ13、バッファ11の出力及び鍵処理制御部1
0からのアドレス線による拡張鍵レジスタ2のアドレス
値は以下のとおりとなる。Step 3 to Step 10 In this step, the same operation as in step 2 is performed. In addition,
Buffer 13, output of buffer 11 and key processing control unit 1
The address value of the extended key register 2 by the address line from 0 is as follows.
【表1】 [Table 1]
【0022】・ステップ11(図5のu参照) 本ステップは、バッファ13、バッファ11の出力(K
36,K37,K38,K39)を拡張鍵レジスタ2に
保持するのみであるため、鍵処理制御部10は、アドレ
ス線31に拡張鍵レジスタ2のアドレス「9」を出力し
(図5のw参照)、拡張鍵をき書き込むために信号線3
2を“0”から“1”にする(図5のx参照)。Step 11 (see u in FIG. 5) In this step, the outputs of the buffer 13 and the buffer 11 (K
36, K37, K38, K39) only in the extended key register 2, the key processing control unit 10 outputs the address "9" of the extended key register 2 to the address line 31 (see w in FIG. 5). ), Signal line 3 for writing the extended key
2 is changed from "0" to "1" (see x in FIG. 5).
【0023】以上の動作を行うことにより、拡張鍵レジ
スタ2のアドレスと書き込まれた拡張鍵は図6のように
なる。図6は本発明の一実施例の拡張鍵の値とそのアド
レスとの関係を示す図である。By performing the above operation, the address of the extended key register 2 and the written extended key become as shown in FIG. FIG. 6 is a diagram showing the relationship between the value of the extended key and its address according to the embodiment of the present invention.
【0024】(2)データのランダム化 図7は図1のデータランダム化部3の詳細を示す。(2) Data Randomization FIG. 7 shows the details of the data randomizing section 3 in FIG.
【0025】データランダム化部3は、データランダム
化部3全体を制御するデータランダム化制御部61、入
力データまたは、バッファ66の出力の何れかを選択す
る入力セレクタ62、排他的論理和で構成するEOR部
63、f関数回路及び排他的論理和で構成する暗号処理
部64、EOR部63の出力または、暗号処理部64の
出力の何れかを選択する出力セレクタ65、暗号処理の
途中結果を一時保持する64ビットのバッファ66で構
成している。The data randomization unit 3 is constituted by a data randomization control unit 61 for controlling the entire data randomization unit 3, an input selector 62 for selecting either input data or the output of the buffer 66, and an exclusive OR. An EOR unit 63, an encryption processing unit 64 configured by an f-function circuit and an exclusive OR, an output selector 65 for selecting one of the output of the EOR unit 63 and the output of the encryption processing unit 64, and an intermediate result of the encryption process. It is composed of a 64-bit buffer 66 for temporary holding.
【0026】さらにEOR部63は、2組の入力データ
(1組当り16ビット)の排他的論理和(EOR)を出
力するEORゲート81〜EORゲート86と、制御線
69の値が“0”のときS0側の入力を出力し、制御線
69の値が“1”のときS1側の入力を出力する16ビ
ット幅のセレクタ87とセレクタ88から構成される。Further, the EOR unit 63 outputs the exclusive OR (EOR) of two sets of input data (16 bits per set), and the value of the control line 69 is "0". It is composed of a selector 87 and a selector 88 each having a 16-bit width, which outputs the input on the S0 side when the value is 1, and outputs the input on the S1 side when the value of the control line 69 is "1".
【0027】暗号処理部64は、制御線71の値が
“0”のとき、S0側の入力を出力し、制御線71の値
が“1”のときS1側の入力を出力する16ビット幅の
セレクタ91〜セレクタ94と、FEALで定義された
関数であるf関数(詳細は「FEAL−8暗号アルゴリ
ズム」参照)を用いて図8に示す論理構成を実現するf
関数回路95〜f関数回路98と、2組の入力データ
(1組当り32ビット)の排他論理和(EOR)を出力
するEORゲート99〜EORゲート102から構成さ
れている。The encryption processing unit 64 outputs the input on the S0 side when the value of the control line 71 is "0", and outputs the input on the S1 side when the value of the control line 71 is "1". 8 to realize the logical configuration shown in FIG. 8 by using the selectors 91 to 94 and the f function defined by FEAL (for details, refer to “FEAL-8 encryption algorithm”).
The function circuit 95 to f function circuit 98 and EOR gates 99 to EOR gates 102 for outputting the exclusive OR (EOR) of two sets of input data (32 bits per set).
【0028】次に、制御線9により内部回転段数を32
(N=32)に指定したときの拡張鍵レジスタ2、デー
タランダム化部3の暗号化及び復号する場合の動作
例を図8、図9、図10を用いて説明する。Next, the number of internal rotation stages is set to 32 by the control line 9.
An operation example when the extended key register 2 and the data randomization unit 3 perform encryption and decryption when (N = 32) is designated will be described with reference to FIGS. 8, 9, and 10.
【0029】暗号化の場合 ・ステップ101(図10のγ参照) 64ビットの平文がデータ線7にセットされると(図1
0のεの値)、データランダム化制御部61は制御線6
7、70を“0”にし、制御線69を“1”にする。ま
た、アドレス線68に「8」を出力する(図10のλ参
照)。これにより、拡張鍵レジスタ2の出力6には、K
32〜K35が現れ、この値と入力された平文とがEO
Rゲート81〜86で排他論理和をとり、セレクタ65
の出力74に現れる(図9のh,iで示す場所の値)。
本ステップの最後にデータランダム化制御部61は処理
の途中結果を一時保持するために制御線72を“0”か
ら“1”にする(図10のμ参照)。In case of encryption: Step 101 (see γ in FIG. 10) When 64-bit plaintext is set in the data line 7 (see FIG. 1)
Value of 0), the data randomization control unit 61 controls the control line 6
7, 70 are set to "0", and the control line 69 is set to "1". Also, "8" is output to the address line 68 (see λ in FIG. 10). As a result, the output 6 of the extended key register 2 has K
32-K35 appears, and this value and the input plaintext are EO
An exclusive OR is taken by the R gates 81 to 86, and the selector 65
Appears at the output 74 (values at locations indicated by h and i in FIG. 9).
At the end of this step, the data randomization control unit 61 changes the control line 72 from "0" to "1" in order to temporarily hold the intermediate result of the processing (see μ in FIG. 10).
【0030】本ステップにより、図9のjの場所まで処
理を行ったこととなる。By this step, the processing is performed up to the location of j in FIG.
【0031】・ステップ102(図10のδ参照) データランダム化制御部61は、制御線70、71を
“1”にし、また、アドレス線68に「0」を出力す
る。これにより、拡張鍵レジスタ2の出力6にはK0〜
K3が現れ、この値を暗号処理部64で処理し、セレク
タ65の出力74に現れる(図9のk,zで示す場所の
値)。本ステップの最後にデータランダム化制御部61
は処理の途中結果を一時保持するために制御線72を
“0”から“1”にする(図10のτ参照)。Step 102 (see δ in FIG. 10) The data randomization control unit 61 sets the control lines 70 and 71 to "1" and outputs "0" to the address line 68. As a result, K0 to the output 6 of the extended key register 2
K3 appears, and this value is processed by the cryptographic processing unit 64 and appears in the output 74 of the selector 65 (values at locations indicated by k and z in FIG. 9). At the end of this step, the data randomization control unit 61
Changes the control line 72 from "0" to "1" in order to temporarily hold the intermediate result of the processing (see τ in FIG. 10).
【0032】本ステップにより図9のmの場所まで処理
を行ったこととなる。By this step, processing has been performed up to the location m in FIG.
【0033】・ステップ103〜ステップ109 ステップ102と同様な動作を行う。なお、データラン
ダム化制御部61はアドレス線68による拡張鍵レジス
タ2へのアドレス値は以下のとおりである。Step 103 to Step 109 The same operation as Step 102 is performed. The data randomization control unit 61 has the following address values to the extended key register 2 via the address line 68.
【表2】 [Table 2]
【0034】・ステップ110(図10φ参照) 本ステップでは拡張鍵とバッファ66と出力とが、EO
Rゲート81〜86により排他的論理和をとるため、デ
ータランダム化制御部61は、制御線67を“1”に
し、制御線69、70を“0”にする。また、アドレス
線68に「9」を出力する。本ステップの最後にデータ
ランダム“制御部61は処理の結果(暗号文)を保持す
るために制御線72を“0”から“1”にする(図10
のη参照)。これにより、64ビットの暗号部はバッフ
ァ66の出力に現れる(図10のω参照)。Step 110 (see FIG. 10φ) In this step, the extended key, the buffer 66, and the output are EO.
The data randomization control unit 61 sets the control line 67 to “1” and the control lines 69 and 70 to “0” because the R gates 81 to 86 take the exclusive OR. Also, "9" is output to the address line 68. At the end of this step, the data random “control unit 61 changes the control line 72 from“ 0 ”to“ 1 ”in order to hold the processing result (ciphertext) (FIG. 10).
Η)). As a result, the 64-bit encryption unit appears at the output of the buffer 66 (see ω in FIG. 10).
【0035】復号の場合 ・ステップ201 64ビットの暗号文がデータ線7にセットされると、以
後の動作は暗号化の場合のステップ101と同様である
が、データランダム化制御部61はアドレス線68に
「9」を出力する点が異なる。In the case of decryption: Step 201 When the 64-bit ciphertext is set in the data line 7, the subsequent operation is the same as that of Step 101 in the case of encryption, but the data randomization control unit 61 uses the address line. The difference is that "9" is output to 68.
【0036】・ステップ202 暗号化の場合のステップ101と同様の動作であるが、
データランダム化制御部6は制御線71を“0”にする
こと、及びアドレス線68に「7」を出力する点が異な
る。Step 202 The same operation as Step 101 in the case of encryption,
The data randomization control unit 6 is different in that the control line 71 is set to "0" and that "7" is output to the address line 68.
【0037】・ステップ203〜ステップ209 ステップ202と同様の動作を行う。なお、データラン
ダム化制御部61はアドレス線68による拡張鍵レジス
タ2のアドレス値は以下のとおりである。Step 203 to Step 209 The same operation as Step 202 is performed. In the data randomization control unit 61, the address value of the extended key register 2 by the address line 68 is as follows.
【表3】 [Table 3]
【0038】・ステップ210 暗号化の場合のステップ110と同様の動作であるが、
データランダム化制御61はアドレス線68に「8」を
出力することが異なる。Step 210: The same operation as Step 110 in the case of encryption,
The difference is that the data randomization control 61 outputs "8" to the address line 68.
【0039】これにより、64ビットの平文はバッファ
66の出力8に現れる。This causes the 64-bit plaintext to appear at output 8 of buffer 66.
【0040】以上により、内部回転段数NがP(Pは4
以上で4の倍数)の場合の拡張鍵及び生成及びデータの
ランダム化の動作は以下のように整理できる。From the above, the number of internal rotation stages N is P (P is 4
In the above case, the operations of the extended key and the generation and the data randomization in the case of a multiple of 4) can be summarized as follows.
【0041】(1)拡張鍵生成 拡張鍵を生成して、全拡張鍵を拡張鍵レジスタ2に格納
するまでのステップ数(SE)は(1) Extended Key Generation The number of steps (SE) required to generate the extended key and store all the extended keys in the extended key register 2 is
【数1】 となる。[Equation 1] Becomes
【0042】以下に各ステップの動作を示す。The operation of each step will be described below.
【0043】・ステップ301 前述した内部回転段数を32(N=32)に設定した場
合の拡張鍵生成のステップ1の動作と同様の動作を行
う。Step 301 The same operation as the operation of Step 1 of the extended key generation when the number of internal rotation stages is set to 32 (N = 32) is performed.
【0044】・ステップ302 前述した内部回転段数を32(N=32)に設定した場
合の拡張鍵生成のステップ2の動作と同様の動作を行
う。Step 302 The same operation as the operation of Step 2 of the extended key generation when the number of internal rotation stages is set to 32 (N = 32) described above is performed.
【0045】・ステップ303〜ステップ(SE−1) ステップ302と同様の動作を行う。なお、鍵制御部1
0からのアドレス線31による拡張鍵レジスタ2のアド
レス値は以下ようになる。Step 303 to Step (SE-1) The same operation as Step 302 is performed. The key control unit 1
The address value of the extended key register 2 from 0 to the address line 31 is as follows.
【表4】 [Table 4]
【0046】・最終ステップ(ステップSE) 鍵処理制御部10はアドレス線31に拡張鍵レジスタ2
のアドレス「SE−1」を出力する以外は、前述したN
−32のステップ11の動作と同様である。Final step (step SE) The key processing controller 10 sets the extended key register 2 to the address line 31.
Except for outputting the address "SE-1" of
It is the same as the operation in step 11 of -32.
【0047】(2)データのランダム化 平文を入力して暗号文を出力するまで、または、暗号文
を入力して平文を出力するまでのステップ数(SD)は(2) Data Randomization The number of steps (SD) until the plaintext is input and the ciphertext is output, or the ciphertext is input and the plaintext is output is
【数2】 となる。[Equation 2] Becomes
【0048】以下に各ステップの動作を示す。The operation of each step will be described below.
【0049】暗号化の場合 ・ステップ401 データランダム化制御部61はアドレス線68に「P/
4」を出力する以外は前述した内部回転段数を32(N
=32)と設定した場合の暗号化時のステップ101の
動作と同様である。In the case of encryption: Step 401 The data randomization control unit 61 sends "P /
4 ”is output, the number of internal rotation stages is 32 (N
= 32), the operation is the same as the operation of step 101 at the time of encryption.
【0050】・ステップ402 前述した内部回転段数を32(N=32)と設定した場
合の暗号化時のステップ102の動作と同様である。Step 402 The operation is the same as that of Step 102 at the time of encryption when the number of internal rotation stages is set to 32 (N = 32).
【0051】・ステップ403〜ステップ(SD−1)
まで ステップ402と同様の動作を行う。なお、データラン
ダム化制御部61はアドレス線68による拡張鍵レジス
タ2のアドレス値は以下のようになる。Step 403 to step (SD-1)
Up to step 402, the same operation is performed. In the data randomization control unit 61, the address value of the extended key register 2 by the address line 68 is as follows.
【表5】 [Table 5]
【0052】・最終ステップ(ステップSD) データランダム化制御部61はアドレス線68による拡
張鍵レジスタ2のアドレス値「SD−1」を出力する以
外は、前述したN=32のステップ10の動作ど同様で
ある。Final step (step SD) The data randomization control section 61 outputs the address value "SD-1" of the extended key register 2 through the address line 68, except for the operation of step 10 of N = 32 described above. It is the same.
【0053】復号の場合 ・ステップ501 データランダム化制御部61は、アドレス線68に
「(P/4)+1」を出力する以外は、前述したN=3
2とした場合の暗号化時のステップ101と同様の動作
を行う。Decoding Step 501 The data randomization control unit 61 outputs N (3) described above except that "(P / 4) +1" is output to the address line 68.
When it is set to 2, the same operation as step 101 at the time of encryption is performed.
【0054】・ステップ502 データランダム化制御部61はアドレス線68に「(P
/4)−1」を出力する以外は、前述したN=32とし
た場合の暗号化時のステップ102と同様の動作を行
う。Step 502 The data randomization control unit 61 sends "(P
/ 4) -1 "is output, and the same operation as step 102 at the time of encryption when N = 32 is performed.
【0055】・ステップ503からステップ(SD−
1)まで ステップ502と同様の動作を行う。なお、データラン
ダム化制御部61はアドレス線68による拡張鍵レジス
タのアドレス値は以下のようになる。Steps 503 to (SD-
Up to 1), the same operation as step 502 is performed. In the data randomization control unit 61, the address value of the extended key register by the address line 68 is as follows.
【表6】 ・最終ステップ(ステップSD) データランダム化制御部61はアドレス線68による拡
張鍵レジスタ2のアドレス値「P/4」を出力する以外
は、前述したN=32の暗号化時のステップ110の動
作と同様である。[Table 6] Final step (step SD) The data randomization control unit 61 outputs the address value "P / 4" of the extended key register 2 through the address line 68, except that the operation of Step 110 at the time of N = 32 encryption described above. Is the same as.
【0056】以上により、本発明は内部回転段数が4以
上で4の倍数であれば容易に、しかも高速に暗号化及び
復号を行うことができる。As described above, according to the present invention, if the number of internal rotation stages is 4 or more and is a multiple of 4, encryption and decryption can be performed easily and at high speed.
【0057】[0057]
【発明の効果】上述のように、本発明によれば、以下の
ような効果を得ることができる。As described above, according to the present invention, the following effects can be obtained.
【0058】N(内部回転段数)が4以上で4の倍数
であれば、何れの値でも本発明を適用可能であり、汎用
性がある。よってNが8のFEAL−8にも適用可能で
ある。If N (the number of internal rotation stages) is 4 or more and is a multiple of 4, the present invention can be applied to any value and is versatile. Therefore, it is also applicable to FEAL-8 with N = 8.
【0059】内部回転段数が増加しても鍵処理部とデ
ータランダム化部のハードウェア量は変わらない。Even if the number of internal rotation stages increases, the hardware amounts of the key processing unit and the data randomizing unit do not change.
【0060】本発明は、小規模なLSI等で容易に実
現可能であり、安価で汎用性があり、しかも高速に暗号
化または、復号を行う暗号装置を提供することができ
る。The present invention can provide an encryption device which can be easily realized by a small-scale LSI or the like, is inexpensive, has general versatility, and can perform high-speed encryption or decryption.
【図1】本発明の原理構成図である。FIG. 1 is a principle configuration diagram of the present invention.
【図2】本発明の一実施例の鍵処理部及び拡張鍵レジス
タの詳細な構成を示す図である。FIG. 2 is a diagram showing a detailed configuration of a key processing unit and an extended key register according to an embodiment of the present invention.
【図3】fk関数回路の論理構成を示す図である。FIG. 3 is a diagram showing a logical configuration of an fk function circuit.
【図4】鍵処理部の論理構成図である。FIG. 4 is a logical configuration diagram of a key processing unit.
【図5】本発明の一実施例の鍵処理部の動作のタイミン
グチャートである。FIG. 5 is a timing chart of the operation of the key processing unit according to the embodiment of the present invention.
【図6】本発明の一実施例の拡張価値の値とそのアドレ
スとの関係を示す図である。FIG. 6 is a diagram showing a relationship between an extended value value and its address according to an embodiment of the present invention.
【図7】本発明の一実施例のデータランダム化部の詳細
図である。FIG. 7 is a detailed diagram of a data randomizing unit according to an embodiment of the present invention.
【図8】f関数回路の論理構成を示す図である。FIG. 8 is a diagram showing a logical configuration of an f-function circuit.
【図9】データランダム化部の論理構成を示す図であ
る。FIG. 9 is a diagram showing a logical configuration of a data randomizing unit.
【図10】本発明の一実施例のデータランダム化部の動
作のタイミングチャートである。FIG. 10 is a timing chart of the operation of the data randomization unit according to the exemplary embodiment of the present invention.
1 鍵処理部 2 拡張鍵レジスタ 3 データランダム化部 4 暗号鍵入力 5 拡張鍵 6 拡張鍵レジスタの出力 7 データ線 8 暗号文または平文 9 制御線 10 鍵処理制御部 11,12,13 バッファ 14 セレクタ 15 ANDゲート 16 セレクタ 17,19 EORゲート 18,20 fk関数回路 22 セレクタ14の出力 23 EORゲートの出力 24 EORゲート17の出力 25 セレクタ16の出力 26 fk関数回路18の出力 28 fk関数回路20の出力 29,30 制御線 31 アドレス線 32 制御線 61 データランダム化制御部 62 入力セレクタ 63 EOR部 64 暗号処理部 65 セレクタ 66 バッファ 67 制御線 68 アドレス線 69,70,71,72 制御線 74 セレクタ65の出力 81,82,83,84,85,86 EORゲート 87,88,91,92,93,94 セレクタ 95,96,97.98 f関数回路 99,100,101,102 EORゲート 1 key processing unit 2 extended key register 3 data randomizing unit 4 encryption key input 5 extended key 6 output of extended key register 7 data line 8 ciphertext or plaintext 9 control line 10 key processing control unit 11, 12, 13 buffer 14 selector 15 AND gate 16 Selector 17, 19 EOR gate 18, 20 fk function circuit 22 Output of selector 14 23 EOR gate output 24 EOR gate 17 output 25 Selector 16 output 26 fk function circuit 18 output 28 fk function circuit 20 Output 29, 30 Control line 31 Address line 32 Control line 61 Data randomization control unit 62 Input selector 63 EOR unit 64 Cryptographic processing unit 65 Selector 66 Buffer 67 Control line 68 Address line 69, 70, 71, 72 Control line 74 Selector 65 Output 81, 82, 83, 84 , 85, 86 EOR gate 87, 88, 91, 92, 93, 94 selector 95, 96, 97.98 f-function circuit 99, 100, 101, 102 EOR gate
Claims (1)
めるために用いる暗号アルゴリズムである高速データ暗
号化アルゴリズム(FEAL)を用いた暗号装置おい
て、 64ビット長からなる暗号鍵を該高速データ暗号化アル
ゴリズムにより設定されたfk関数等の入力によって拡
張鍵を生成する鍵処理部と、 該鍵処理部からの出力である該拡張鍵を保持する拡張鍵
レジスタと、 64ビット長からなる平文または暗号文である入力デー
タと該拡張鍵レジスタの出力から排他的論理和及び該高
速データ暗号化アルゴリズムで定義された関数であるf
関数等によって、暗号化または復号処理するデータラン
ダム化部とを含み、 該鍵処理部は、2k番目(kは正の整数)の前記fk関
数の出力、2k+1番目のfk関数の出力、2k+2番
目のfk関数の出力を一時保持するバッファを有し、2
k+1番目のfk関数の出力、2k+2番目のfk関数
の出力を保持する前記拡張鍵レジスタのアドレスを生成
し、 該データランダム化部は、入力データまたは、暗号処理
の途中結果を一時保持する64ビットのバッファの出力
のいずれかを一つの入力選択する入力セレクタと、排他
的論理和で構成する排他的論理和部と、f関数回路及び
排他的論理和回路で構成する暗号処理部と、該排他論理
和部の出力または、該暗号処理部の出力のいずれかを選
択する出力セレクタと、該出力セレクタの出力である暗
号処理の途中結果を一時保持する64ビットのバッファ
とを有し、最初の最後の処理は該排他的論理和部で行
い、途中の処理は該暗号処理部で処理を繰り返し、該排
他的論理和部の出力または前記暗号処理部の出力を一時
保持し、暗号化または復号指示により該当する拡張鍵レ
ジスタのアドレスを生成して該排他的論理和部及び該暗
号処理部に前記拡張鍵を加えることを特徴とする汎用高
速暗号装置。1. A cryptographic device using a high-speed data encryption algorithm (FEAL), which is an encryption algorithm used to enhance the security of communication data and computer data, is provided with an encryption key having a 64-bit length. A key processing unit that generates an extended key by inputting an fk function set by the encryption algorithm, an extended key register that holds the extended key that is an output from the key processing unit, and a plaintext or a cipher having a 64-bit length. From the input data which is a sentence and the output of the extended key register, the exclusive OR and the function f defined by the high speed data encryption algorithm
And a data randomizing unit that performs encryption or decryption processing by a function or the like, and the key processing unit outputs the 2k-th (k is a positive integer) output of the fk function, the 2k + 1-th output of the fk function, and the 2k + 2-th output. Has a buffer that temporarily holds the output of the fk function of
The address of the extended key register that holds the output of the k + 1-th fk function and the output of the 2k + 2-th fk function is generated, and the data randomization unit temporarily stores the input data or the intermediate result of the cryptographic process in 64 bits. An input selector that selects one of the outputs of the buffers, an exclusive OR unit configured by exclusive OR, a cryptographic processing unit configured by an f-function circuit and an exclusive OR circuit, An output selector for selecting either the output of the logical sum unit or the output of the cryptographic processing unit and a 64-bit buffer for temporarily holding the intermediate result of the cryptographic processing which is the output of the output selector are provided. The final processing is performed by the exclusive OR unit, and the processing in the middle is repeated by the encryption processing unit, and the output of the exclusive OR unit or the output of the encryption processing unit is temporarily held and encrypted. Alternatively, a general-purpose high-speed encryption device characterized by generating an address of a corresponding extended key register according to a decryption instruction and adding the extended key to the exclusive OR unit and the encryption processing unit.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP29462292A JPH06149153A (en) | 1992-11-02 | 1992-11-02 | General purpose high-speed encoding device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP29462292A JPH06149153A (en) | 1992-11-02 | 1992-11-02 | General purpose high-speed encoding device |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH06149153A true JPH06149153A (en) | 1994-05-27 |
Family
ID=17810141
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP29462292A Pending JPH06149153A (en) | 1992-11-02 | 1992-11-02 | General purpose high-speed encoding device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH06149153A (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6622248B1 (en) | 1998-06-25 | 2003-09-16 | Sharp Kabushiki Kaisha | File data retrieving device and recording medium containing computer program for controlling the same |
WO2004034171A1 (en) * | 2002-10-09 | 2004-04-22 | Sony Corporation | Block encoding method and block encoding/decoding circuit |
US7519179B2 (en) | 2003-05-29 | 2009-04-14 | Sony Corporation | Information transmission apparatus and method, information reception apparatus and method, and information-providing system |
US11838402B2 (en) | 2019-03-13 | 2023-12-05 | The Research Foundation For The State University Of New York | Ultra low power core for lightweight encryption |
-
1992
- 1992-11-02 JP JP29462292A patent/JPH06149153A/en active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6622248B1 (en) | 1998-06-25 | 2003-09-16 | Sharp Kabushiki Kaisha | File data retrieving device and recording medium containing computer program for controlling the same |
WO2004034171A1 (en) * | 2002-10-09 | 2004-04-22 | Sony Corporation | Block encoding method and block encoding/decoding circuit |
US7386124B2 (en) | 2002-10-09 | 2008-06-10 | Sony Corporation | Block encoding method and block encoding/decoding circuit |
US7519179B2 (en) | 2003-05-29 | 2009-04-14 | Sony Corporation | Information transmission apparatus and method, information reception apparatus and method, and information-providing system |
US8145895B2 (en) | 2003-05-29 | 2012-03-27 | Sony Corporation | Information transmission apparatus and method, information reception apparatus and method, and information-providing system |
US11838402B2 (en) | 2019-03-13 | 2023-12-05 | The Research Foundation For The State University Of New York | Ultra low power core for lightweight encryption |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3029381B2 (en) | Data converter | |
US5222139A (en) | Cryptographic method and apparatus | |
KR100389902B1 (en) | Fast block encryption method guaranteeing security for differential cryptanalysis and linear cryptanalysis | |
JP2760799B2 (en) | Encryption method | |
JP2004531778A (en) | Method and apparatus for data encryption | |
JP3824121B2 (en) | Method and apparatus for decrypting encrypted data | |
US7212633B2 (en) | Expansion key generating device, encryption device and encryption system | |
JP2950485B2 (en) | Stream cipher processor | |
JPH06149153A (en) | General purpose high-speed encoding device | |
JPH0697930A (en) | Block cipher processor | |
JP4515716B2 (en) | Extended key generation device, encryption device, and encryption system | |
JPWO2009090689A1 (en) | Encryption apparatus and encryption processing method | |
KR100434558B1 (en) | A fast block encryption algorithm | |
JP2000075785A (en) | High-speed cipher processing circuit and processing method | |
JPH05249891A (en) | Ciphering processor and ciphering process method using the same | |
KR100350207B1 (en) | Method for cryptographic conversion of l-bit input blocks of digital data into l-bit output blocks | |
JPS62237834A (en) | Data ciphering device | |
JPS5843743B2 (en) | Encryption method | |
JP3841008B2 (en) | Cryptographic device and data transfer control device | |
KR102393958B1 (en) | Data processing method in system with encryption algorithm | |
JP2834450B2 (en) | Encryption device | |
JPS6281145A (en) | Data ciphering system | |
KR100380638B1 (en) | A data encryption standard system equipped parallel feistel structure | |
JP2010164793A (en) | Cryptographic processing device | |
JP2001215874A (en) | Sub-key creation device and recording medium with program therefor |