JPH0697930A - Block cipher processor - Google Patents

Block cipher processor

Info

Publication number
JPH0697930A
JPH0697930A JP4033663A JP3366392A JPH0697930A JP H0697930 A JPH0697930 A JP H0697930A JP 4033663 A JP4033663 A JP 4033663A JP 3366392 A JP3366392 A JP 3366392A JP H0697930 A JPH0697930 A JP H0697930A
Authority
JP
Japan
Prior art keywords
key
bit string
input
unit
output
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP4033663A
Other languages
Japanese (ja)
Other versions
JP3012732B2 (en
Inventor
Yoichi Nagamine
陽一 長嶺
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.)
Fujitsu FIP Corp
Original Assignee
Fujitsu FIP 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 Fujitsu FIP Corp filed Critical Fujitsu FIP Corp
Priority to JP4033663A priority Critical patent/JP3012732B2/en
Publication of JPH0697930A publication Critical patent/JPH0697930A/en
Application granted granted Critical
Publication of JP3012732B2 publication Critical patent/JP3012732B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Abstract

PURPOSE:To enhance secrecy by section-dividing an input block to be subjected by an initial transposing part of a data randomizing par, moving a bit train in accordance with a key, and thereafter, and processing it in accordance with an intermediate key by plural stages of involution processing parts of a non- linear function part. CONSTITUTION:An input block of a plain text is divided in two by an initial transposing part of a data randomizing part 1, and also, each bit string is subjected to position movement by setting a key as an address becomes the left and the right blocks L, R, and is inputted to a first stage involution processing part 6. Subsequently, it is subjected to involution processing by a function corresponding to an intermediate key 1 formed, based on the key and the bit string is converted, the right and the left outputs R, L become the left and the right inputs L, R of the processing part 6 of the next respectively, and after the same repetition, from a reverse initial transposing part 5, a Fast Data Encipherment Algorithm (FEAL) cipher high in secrecy in outputted. Besides, decoding is also executed in the same way.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は、ブロック暗号、特に改
良したいわゆるFEAL暗号による暗号化及び復号化処
理を行う暗号装置に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a block cipher, and more particularly to an encryption device for performing encryption and decryption processing by so-called FEAL encryption.

【0002】[0002]

【従来の技術と発明が解決しようとする課題】FEAL
(Fast Data Encipherment Algorithm)暗号は、ブロック
暗号の有力な1種としてよく知られている(例えば辻
井、笠原編著、「暗号と情報セキュリティ」、1990年、
昭晃堂刊、pp.43-49)。
PRIOR ART AND PROBLEMS TO BE SOLVED BY THE INVENTION FEAL
(Fast Data Encipherment Algorithm) Cryptography is well known as one of the leading block ciphers (eg Tsujii and Kasahara, "Cipher and Information Security", 1990,
Published by Shokodo, pp.43-49).

【0003】FEAL暗号の代表的な例は、図5及び図
6に示すように構成される。即ち、64ビット長のブロッ
クを、64ビット長の鍵で暗号化及び復号化するものであ
って、図5(a)に示すデータランダム化部と、図6の鍵
生成部とからなる。
A typical example of FEAL encryption is configured as shown in FIGS. 5 and 6. That is, a block having a 64-bit length is encrypted and decrypted with a key having a 64-bit length, and includes a data randomizing unit shown in FIG. 5A and a key generating unit shown in FIG.

【0004】先ず暗号化として説明するものとして、デ
ータランダム化部では、先ず平文入力と鍵から生成する
ビット列KAとの排他的論理和をとり、結果の64ビットブ
ロックを32ビットづつの左右ビット列に2分し、左ビッ
ト列を左入力とし、左ビット列と右ビット列との排他的
論理和を右入力として、初段のインボリューション処理
部に入れる。
First, as an explanation of encryption, in the data randomizing section, first, the plaintext input and the bit string KA generated from the key are exclusive-ORed and the resulting 64-bit block is divided into 32-bit left and right bit strings. It is divided into two parts, and the left bit string is used as the left input, and the exclusive OR of the left bit string and the right bit string is used as the right input, and the result is put in the involution processing unit at the first stage.

【0005】インボリューション処理部(図に破線で囲
って示す)は8段あり、順次各段のインボリューション
処理部の左出力を次段の該右入力とし、右出力を左入力
とするように接続される。
There are eight stages of involution processing units (enclosed by broken lines in the figure), and the left output of the involution processing units of each stage is used as the right input of the next stage, and the right output is used as the left input. Connected.

【0006】各インボリューション処理部は、関数部
(図にfと表示)を有し、後述の鍵生成部で生成する16
ビットの中間鍵K0〜K7の1つと右入力とを入力として関
数部が生成するビット列と、左入力との排他的論理和を
左出力とし、右入力をそのまま右出力とする。
Each involution processing section has a function section (denoted by f in the figure), and is generated by a key generation section described later.
The exclusive OR of the bit string generated by the function part with one of the bit intermediate keys K 0 to K 7 and the right input as the input is taken as the left output, and the right input is taken as it is as the right output.

【0007】各関数部は図5(b)のように、32ビットの
右入力を8ビットづつの4バイトに分けて、そのバイト
又はそのバイトと中間鍵を2分したバイトとの排他的論
理和による混ぜ合わせをしたバイトを4個のSボックス
(図のS0、S1)の一方の入力とする。
As shown in FIG. 5 (b), each function part divides the 32-bit right input into 4 bytes of 8 bits, and the exclusive logic of that byte or that byte and the byte obtained by dividing the intermediate key into two bytes. The bytes mixed by the sum are input to one of the four S boxes (S 0 and S 1 in the figure).

【0008】各Sボックスは、前記の別のバイトか、他
のSボックスの出力を、もう一方の入力とするように相
互に接続され、2入力について256 を法とする加算(図
のS0とS1で若干異なる)を行い、その結果を2ビット左
循環シフトして出力し、4個のSボックスの各バイト出
力を並べた32ビットが関数部の出力となる。
The respective S boxes are connected to each other so that the output of another byte or the output of the other S box is used as the other input, and addition is performed modulo 256 for two inputs (S 0 in the figure). (Slightly different for S 1 ) and the result is left circularly shifted by 2 bits and output, and 32 bits obtained by arranging each byte output of 4 S boxes are the output of the function part.

【0009】以上のようにして、最終段のインボリュー
ション処理部から出力される左出力を左ビット列とし、
左出力と右出力との排他的論理和を右ビット列とする64
ビットと、鍵から生成するビット列KBとの排他的論理和
をとったものを暗号文の出力とする。
As described above, the left output output from the involution processing unit at the final stage is the left bit string,
The exclusive OR of the left output and the right output is the right bit string 64
The exclusive OR of the bit and the bit string KB generated from the key is taken as the output of the ciphertext.

【0010】復号化処理は、暗号文を入力とし、暗号化
と同じ鍵を使用して前記と同様の操作を行えばよいが、
その際、鍵から生成するKA、K0〜K7、KBを、暗号化時と
逆の順序で適用する。
In the decryption process, the ciphertext is input and the same operation as the above may be performed using the same key as the encryption.
At that time, KA, K 0 to K 7 , and KB generated from the key are applied in the reverse order of the encryption.

【0011】鍵生成部は、図6に示すように、データラ
ンダム化部と同段数の鍵処理部(図に破線で囲んで示
す)を有し、64ビットの鍵を等しい長さの左ビット列及
び右ビット列に2等分して左及び右入力とし、前記デー
タランダム化部と類似の操作により、各関数部(図にfK
と表示)の出力を左右に2分して、各16ビットの中間鍵
2個を生成する。関数部fKの内容もデータランダム化部
と同様である。
As shown in FIG. 6, the key generation unit has a key processing unit (shown by a broken line in the figure) having the same number of stages as the data randomization unit, and a 64-bit key is left bit string of equal length. And the right bit string are equally divided into left and right inputs, and each function part (f K in the figure is processed by a similar operation to the data randomization part.
2) is divided into left and right to generate two 16-bit intermediate keys. The content of the function part f K is the same as that of the data randomizing part.

【0012】以上により第1段から第8段までの鍵処理
部で生成される中間鍵をK0、K1、K2、K3〜K14、K15とし
て、K0〜K7はそのまま前記の中間鍵K0〜K7とし、K8〜K
11を並べた64ビットをKAとし、K12〜K15を並べた64ビッ
トをKBとして、データランダム化部に供給する。
From the above, the intermediate keys generated by the key processing units of the first to eighth stages are designated as K 0 , K 1 , K 2 , K 3 to K 14 and K 15 , and K 0 to K 7 are unchanged. Intermediate keys K 0 to K 7 and K 8 to K
The 64 bits in which 11 are arranged are set as KA, and the 64 bits in which K 12 to K 15 are arranged are set as KB and are supplied to the data randomization unit.

【0013】本発明は、前記FEAL暗号に基づき、そ
の秘匿性を強化した暗号処理を行うブロック暗号処理装
置を目的とする。
An object of the present invention is to provide a block cipher processing device which performs cipher processing with enhanced confidentiality based on the FEAL cipher.

【0014】[0014]

【課題を解決するための手段】図1及び図2は、本発明
の構成を示すブロック図である。図1はブロック暗号処
理装置のデータランダム化部、図2は鍵生成部の構成で
あって、所定長のビット列からなる入力ブロックを、該
ビット長のビット列からなる所与の鍵に基づいて、該入
力ブロックと同長の出力ブロックに変換する装置であっ
て、データランダム化部1と、鍵生成部2とを有する。
1 and 2 are block diagrams showing the configuration of the present invention. 1 is a block diagram of a data randomization unit of a block cipher processing device, and FIG. 2 is a configuration of a key generation unit. An input block consisting of a bit string of a predetermined length is generated based on a given key consisting of a bit string of the bit length. The device is a device for converting the input block into an output block having the same length, and has a data randomization unit 1 and a key generation unit 2.

【0015】データランダム化部1は、初期転置部3
と、非線形関数部4と、逆初期転置部5とを有する。初
期転置部3は、該入力ブロックを所定の区間に分割し、
該鍵の各該区間に対応するように定める位置の各ビット
列の値を、該入力ブロック内の区間位置アドレスとし、
各該区間のビット列を対応する該区間位置アドレスによ
って定まる区間と所定の位置関係を有する区間に順次移
動して、移動した結果のブロックを非線形関数部4に渡
し、該移動の前後の該区間相互間の対応を示す情報を逆
初期転置部5に渡すものである。
The data randomizing unit 1 includes an initial transposing unit 3
And a non-linear function unit 4 and an inverse initial transposition unit 5. The initial transposing unit 3 divides the input block into predetermined sections,
The value of each bit string at the position determined so as to correspond to each of the sections of the key is set as the section position address in the input block,
The bit string of each section is sequentially moved to a section having a predetermined positional relationship with the section determined by the corresponding section position address, the resulting block is passed to the non-linear function unit 4, and the sections before and after the movement are transferred to each other. Information indicating the correspondence between the two is passed to the inverse initial transposition unit 5.

【0016】非線形関数部4は、複数段のインボリュー
ション処理部6を有し、初期転置部3から受け取る該ブ
ロックを等しい長さの左ビット列及び右ビット列に2等
分し、該左ビット列を左入力Lとし、該左ビット列と該
右ビット列との排他的論理和を右入力Rとして、第1段
のインボリューション処理部6に入力し、順次各段のイ
ンボリューション処理部6の左出力を次段の右入力Rと
し、右出力を左入力Lとして、最終段の該左出力と、該
左出力と該右出力との排他的論理和とを結合したビット
列のブロックを逆初期転置部5に渡すものである。
The non-linear function unit 4 has a plurality of stages of involution processing units 6, divides the block received from the initial transposition unit 3 into a left bit string and a right bit string of equal length, and divides the left bit string to the left. The input L, the exclusive OR of the left bit string and the right bit string is input as the right input R to the involution processing unit 6 of the first stage, and the left output of the involution processing unit 6 of each stage is sequentially output. The right input R of the stage is used as the right input and the right output is used as the left input L, and the block of the bit string obtained by combining the left output of the final stage and the exclusive OR of the left output and the right output is input to the inverse initial transposition unit 5. It is something to pass.

【0017】各インボリューション処理部6は、関数部
7を有し、鍵生成部2が生成する中間鍵の各所定の1つ
と右入力Rとを入力として関数部7が生成するビット列
と、左入力Lとの排他的論理和を該左出力とし、右入力
Rを該右出力とするものである。
Each involution processing section 6 has a function section 7, and a bit string generated by the function section 7 with each predetermined one of the intermediate keys generated by the key generation section 2 and the right input R as an input and a left side. The exclusive OR with the input L is the left output, and the right input R is the right output.

【0018】各関数部7は右入力Rを所定の区間に分割
し、該中間鍵の各該区間に対応するように定める位置の
各ビット列の値を、該右入力内の区間位置アドレスと
し、各該区間のビット列を対応する該区間位置アドレス
によって定まる区間と所定の位置関係を有する区間に順
次移動して、移動した結果のビット列について所定の変
換を実行するものである。
Each function unit 7 divides the right input R into predetermined sections, and sets the value of each bit string at the position determined so as to correspond to each section of the intermediate key as the section position address in the right input, The bit string of each section is sequentially moved to a section having a predetermined positional relationship with the section determined by the corresponding section position address, and a predetermined conversion is executed on the bit string resulting from the movement.

【0019】逆初期転置部5は、非線形関数部4から受
け取る該ブロックについて、初期転置部3から受け取る
該区間相互間の対応情報に従って、初期転置部3の行っ
た該区間間の移動と逆の移動を行ったブロックを、該出
力ブロックとして出力するものである。
The inverse initial transposition unit 5 reverses the movement between the sections performed by the initial transposition unit 3 according to the correspondence information between the sections received from the initial transposition unit 3 for the block received from the non-linear function unit 4. The block that has moved is output as the output block.

【0020】鍵生成部2は、非線形関数部4と同じ段数
の鍵処理部8を有し、該鍵を等しい長さの左ビット列及
び右ビット列に2等分し、該左ビット列を左鍵入力KLと
し、該左ビット列と該右ビット列との排他的論理和を右
鍵入力KRとして、第1段の鍵処理部8に入力し、順次各
段の鍵処理部8の左鍵出力を次段の右鍵入力KRとし、右
鍵出力を左鍵入力KLとして、各該段の該左鍵出力を各該
中間鍵として非線形関数部4に渡すものである。
The key generation unit 2 has a key processing unit 8 having the same number of stages as the non-linear function unit 4, divides the key into a left bit string and a right bit string of equal length, and inputs the left bit string to the left key. KL, the exclusive OR of the left bit string and the right bit string is input to the first-stage key processing unit 8 as the right key input KR, and the left key output of the key processing unit 8 of each stage is sequentially output to the next stage. The right key input KR is used, the right key output is used as the left key input KL, and the left key output of each stage is passed to the nonlinear function unit 4 as each intermediate key.

【0021】各鍵処理部8は、鍵関数部9を有し、所与
の初期ベクトルと右鍵入力KRとを入力として鍵関数部9
が生成するビット列と、左鍵入力KLとの排他的論理和を
該左鍵出力とし、右鍵入力KRを該右鍵出力とするもので
ある。
Each key processing unit 8 has a key function unit 9, which receives the given initial vector and the right key input KR as input.
The exclusive OR of the bit string generated by and the left key input KL is the left key output, and the right key input KR is the right key output.

【0022】各鍵関数部9は右鍵入力KRを所定の区間に
分割し、該初期ベクトルの各該区間に対応するように定
める位置の各ビット列の値を、右鍵入力KR内の区間位置
アドレスとし、各該区間のビット列を対応する該区間位
置アドレスによって定まる区間と所定の位置関係を有す
る区間に順次移動して、移動した結果のビット列につい
て所定の変換を実行するものである。
Each key function unit 9 divides the right key input KR into predetermined sections, and sets the value of each bit string at the position determined so as to correspond to each section of the initial vector as the section position address in the right key input KR. , The bit string of each section is sequentially moved to a section having a predetermined positional relationship with the section determined by the corresponding section position address, and a predetermined conversion is executed on the bit string of the moved result.

【0023】第2の発明において、前記各関数部7は、
前記区間の個数をNとして、2N−1個の関数ボックス
を有し、前記中間鍵に基づいて移動した結果の前記ビッ
ト列について、第1の該関数ボックスに第1の該区間の
ビット列と第2の該区間のビット列とを入力する。
In the second invention, each of the function units 7 is
Assuming that the number of said sections is N, it has 2N-1 function boxes, and regarding the bit string resulting from the movement based on the intermediate key, the first function box and the second bit string of the said section And the bit string of the section of

【0024】第2から第N−1までの各第iの該関数ボ
ックスに第i+1の該区間のビット列と第i−1の該関
数ボックスの出力とを入力し、第Nの該関数ボックスに
該第1の区間のビット列と第N−1の該関数ボックスの
出力とを入力する。
The bit string of the (i + 1) th section and the output of the (i-1) th function box are input to each of the i-th function boxes from the 2nd to the (N-1) th, and are input to the Nth function box. The bit string of the first section and the output of the (N-1) th function box are input.

【0025】第N+1から第2N−1までの各第jの該
関数ボックスに第j−Nの該関数ボックスの出力と第j
−1の該関数ボックスの出力とを入力し、該第Nから第
2N−1までの各関数ボックスの出力を出力ビット列と
する。
The output of the j-Nth function box and the j-th function box of each of the j-th function boxes from the (N + 1) th to the 2N-1th.
−1 and the output of the function box are input, and the output of each of the Nth to 2N−1th function boxes is set as an output bit string.

【0026】各該関数ボックスは各該区間に等しいビッ
ト幅の2入力について所定の演算を行い、同じビット幅
の1出力を生成するものとする。又、第3の発明では、
前記各鍵関数部9を第2の発明の各関数部7と同一の構
成とする。
It is assumed that each of the function boxes performs a predetermined operation on two inputs having the same bit width in each of the sections and generates one output having the same bit width. In the third invention,
Each of the key function units 9 has the same configuration as each of the function units 7 of the second invention.

【0027】[0027]

【作用】本発明のブロック暗号処理装置により、FEA
L暗号における、データランダム化部及び関数処理にお
いて、FEAL暗号のように鍵又は中間鍵による単なる
排他的論理和を行うのでなく、鍵及び中間鍵の値をアド
レスとするビット列の転置により、鍵に依存する転置処
理を行うことによって、第2、第3の発明におけるよう
な関数ボックスのらせん構造接続における、見掛け上の
内部構造変換が行われ、秘匿性を向上する。
With the block cipher processing device of the present invention, the FEA
In the data randomizing unit and the function processing in the L-cipher, the key or the intermediate key is transposed to a key by transposing a bit string whose address is the value of the key and the intermediate key, instead of performing a mere exclusive OR with the key or the intermediate key as in the FEAL encryption. By performing the dependent transposition process, the apparent internal structure conversion is performed in the spiral structure connection of the function boxes as in the second and third inventions, and the confidentiality is improved.

【0028】[0028]

【実施例】図3は初期転置部3の処理の流れの一例を示
し、64ビットのデータブロックを64ビットの鍵で処理す
るとして、両者を8ビット区間の8バイトに分割し、鍵
の各バイトの下位3ビットを区間位置を示すアドレスと
して、そのバイトに対応するデータブロックのバイト
を、アドレスの指示する区間へ移動し、その際移動先が
既に埋められている場合には、例えば順次アドレスを1
づつ進めて空いている位置へ移動するものとする。
FIG. 3 shows an example of the flow of processing of the initial transposition unit 3. Assuming that a 64-bit data block is processed by a 64-bit key, both are divided into 8 bytes in an 8-bit section, and each key is divided. When the lower 3 bits of the byte are used as the address indicating the section position, the byte of the data block corresponding to the byte is moved to the section indicated by the address, and when the move destination is already filled, for example, sequential address 1
We shall proceed one by one and move to a vacant position.

【0029】即ち、処理ステップ10でバイト位置等の制
御情報を初期値に設定して、左のバイトから処理するも
のとし、処理ステップ11でそのバイト位置の鍵の下位3
ビットを取り出す。
That is, in processing step 10, control information such as a byte position is set to an initial value, and processing is performed from the left byte. In processing step 11, the lower 3 bits of the key at that byte position are set.
Take out a bit.

【0030】処理ステップ12で、アドレスで指示される
移動先が空きかを、後に逆初期転置部5に渡す移動記録
を見て識別し、もし既にその位置に移動元のバイトの位
置が記録されていれば、処理ステップ13でアドレスを+
1して、処理ステップ12を繰り返す。
In processing step 12, whether or not the moving destination indicated by the address is empty is identified by looking at the moving record to be passed to the inverse initial transposition unit 5 later, and if the position of the moving source byte is already recorded at that position. If yes, add the address in processing step 13
1 and the processing step 12 is repeated.

【0031】移動先が空きなら、処理ステップ14で移動
記録の、そのアドレスで指示する欄に、移動元のバイト
位置を記録し、処理ステップ15でデータのバイトを、移
動先のバイト位置へ複写する。
If the movement destination is empty, the movement source byte position is recorded in the column designated by the address in the movement recording in processing step 14, and the data byte is copied to the movement destination byte position in processing step 15. To do.

【0032】処理ステップ16で識別して、以上の処理を
8回行うことにり、データブロックの全バイトの転置を
終わると、処理ステップ17で移動記録を逆初期転置部5
に渡して処理を終わる。
When the transposition of all the bytes of the data block is completed by performing the above processing 8 times by identifying in the processing step 16, the moving record is recorded in the reverse initial transposition part 5 in the processing step 17.
To end the process.

【0033】図4は、各インボリューション処理部6の
関数部7、及び各鍵処理部8の鍵関数部9の構成例であ
り、32ビットのデータの右入力R、又は鍵の右鍵入力KR
を入力データとし、32ビットの中間鍵又は初期ベクトル
とを入力鍵として、以下のようにして32ビットの出力デ
ータを生成する。
FIG. 4 shows a configuration example of the function unit 7 of each involution processing unit 6 and the key function unit 9 of each key processing unit 8. The right input R of 32-bit data or the right key input KR of a key is shown.
Is used as input data, and a 32-bit intermediate key or initial vector is used as an input key to generate 32-bit output data as follows.

【0034】入力データは転置処理により、入力鍵の値
による転置を行う。この転置処理は32ビットデータを4
分割した8ビットの区間のバイトについて、前記図3に
より説明したと同様の処理によるものとする。
The input data is transposed according to the value of the input key by transposition processing. This transposition process converts 32-bit data to 4
It is assumed that the divided bytes of the 8-bit section are subjected to the same processing as described with reference to FIG.

【0035】転置結果の入力データは、図のようにf1〜
f7ボックスをらせん構造をなすように接続した変換機構
で変換される。即ち、転置結果の入力データの各バイト
を、f1〜f4ボックスに入力し、図に示すもう一方の入力
と演算し、その出力をf5〜f7ボックスに入力し、f4〜f7
ボックスの出力をつないだ32ビットを出力とする。
The input data of the transposition result is f1 ...
It is converted by a conversion mechanism that connects the f7 box to form a spiral structure. That is, each byte of the input data of the transposed result is input to the f1 to f4 boxes, is operated with the other input shown in the figure, and the output is input to the f5 to f7 boxes, f4 to f7
The output is the 32 bits that connect the box outputs.

【0036】このような構成により、転置処理によりら
せん状変換機構の内部構造を、入力データに対して見掛
け上変化させることができる。f1〜f7ボックスの演算
は、例えば256 を法とする加算と、2ビット左循環シフ
トとする。
With such a configuration, the internal structure of the spiral conversion mechanism can be apparently changed with respect to the input data by the transposition process. The operations of the f1 to f7 boxes are, for example, addition modulo 256 and 2-bit left circular shift.

【0037】本暗号装置の場合も、同一の構成で同一の
鍵を使用し、中間鍵の適用を逆の順序にすることによ
り、暗号化と復号化を行うことができる。なお、初期転
置部3に入力する鍵は両者とも同一になる。
Also in the case of the present encryption device, encryption and decryption can be performed by using the same key with the same configuration and applying the intermediate key in the reverse order. The key input to the initial transposing unit 3 is the same for both.

【0038】図7、図8は、64ビットの平文を64ビット
の鍵で暗号化する場合の、暗号の性能例を示すデータで
あって、比較対象として前記8段のインボリューション
処理部を設けるFEAL暗号を使用し、本発明の暗号装
置はインボリューション処理部を2段のみ設ける場合で
ある。
FIGS. 7 and 8 are data showing an example of the performance of encryption in the case of encrypting a 64-bit plaintext with a 64-bit key, and the involution processing unit of 8 stages is provided as a comparison target. The FEAL encryption is used, and the encryption device of the present invention is a case where only two stages of involution processing units are provided.

【0039】図7はブロックデータの欄に示す平文と鍵
(何れも16進表示)について求める暗号ブロックと、平
文又は鍵の何れかの1ビットを、図示と異なる値に変化
した場合の暗号ブロックとを比較した場合の、異なるビ
ットの個数であり、図は、平文及び鍵の全64ビットにつ
いて行った結果の平均値と分散を示す。
FIG. 7 shows a cipher block obtained for a plaintext and a key (both in hexadecimal notation) shown in the block data column, and a cipher block when one bit of the plaintext or the key is changed to a value different from that shown in the figure. It is the number of different bits when comparing and, and the figure shows the average value and variance of the results for all 64-bits of plaintext and key.

【0040】又、図8は、10,500ブロックの実データを
入力の平文ブロックとして、鍵欄に示す鍵による暗号化
を行った結果の暗号ブロックと平文ブロックとを比較し
た場合の変化ビット数についての、全ブロックにわたる
平均値と分散である。
Further, FIG. 8 shows the number of changed bits when the plaintext block is compared with the cipher block resulting from the encryption with the key shown in the key column, with the actual data of 10,500 blocks as the input plaintext block. , Mean and variance over all blocks.

【0041】図から明らかなように、本発明の暗号処理
では、インボリューション処理の段数がFEAL暗号の
場合の1/4に減少しているのに、FEAL暗号とほぼ
同じ結果を得ており、本発明の暗号のランダム性の高い
ことを示している。
As is clear from the figure, in the cryptographic process of the present invention, the number of stages of the involution process is reduced to 1/4 of that in the FEAL cryptosystem, but almost the same result as the FEAL cryptosystem is obtained. It is shown that the encryption of the present invention has high randomness.

【0042】一方、以上の性能比較を行うために、汎用
計算機による暗号化処理に要した時間を比較すると、F
EAL暗号は本発明の暗号に対して約1.8 倍の処理時間
を要する。
On the other hand, in order to perform the above performance comparison, comparing the time required for the encryption processing by the general-purpose computer,
The EAL cipher requires about 1.8 times the processing time of the cipher of the present invention.

【0043】[0043]

【発明の効果】以上の説明から明らかなように本発明に
よれば、秘匿性の高いブロック暗号を使用する暗号処理
装置が提供されるという効果がある。
As is apparent from the above description, according to the present invention, it is possible to provide an encryption processing device that uses a highly confidential block cipher.

【図面の簡単な説明】[Brief description of drawings]

【図1】 本発明の構成を示すブロック図(その1)FIG. 1 is a block diagram showing a configuration of the present invention (No. 1)

【図2】 本発明の構成を示すブロック図(その2)FIG. 2 is a block diagram showing a configuration of the present invention (part 2).

【図3】 初期転置部の処理の流れ図[Fig. 3] Flow chart of processing of initial transposition unit

【図4】 関数部の構成例ブロック図FIG. 4 is a block diagram of a configuration example of a function unit.

【図5】 FEAL暗号データランダム化部の構成例を
示す図
FIG. 5 is a diagram showing a configuration example of a FEAL encrypted data randomizing unit.

【図6】 FEAL暗号鍵生成部の構成例を示す図FIG. 6 is a diagram showing a configuration example of a FEAL encryption key generation unit.

【図7】 暗号性能例を示す図(その1)FIG. 7 is a diagram showing an example of cryptographic performance (No. 1)

【図8】 暗号性能例を示す図(その2)FIG. 8 is a diagram showing an example of cryptographic performance (No. 2)

【符号の説明】[Explanation of symbols]

1 データランダム化部 2 鍵生成部 3 初期転置部 4 非線形関数部 5 逆初期転置部 6 インボリューション処理部 7 関数部 8 鍵処理部 9 鍵関数部 10〜17 処理ステップ 1 Data Randomization Section 2 Key Generation Section 3 Initial Transposition Section 4 Nonlinear Function Section 5 Inverse Initial Transposition Section 6 Involution Processing Section 7 Function Section 8 Key Processing Section 9 Key Function Section 10-17 Processing Steps

Claims (3)

【特許請求の範囲】[Claims] 【請求項1】 所定長のビット列からなる入力ブロック
を、該ビット長のビット列からなる所与の鍵に基づい
て、該入力ブロックと同長の出力ブロックに変換する装
置であって、 データランダム化部(1)と、鍵生成部(2)とを有し、 該データランダム化部(1)は、初期転置部(3)と、非線形
関数部(4)と、逆初期転置部(5)とを有し、 該初期転置部(3)は、該入力ブロックを所定の区間に分
割し、該鍵の各該区間に対応するように定める位置の各
ビット列の値を、該入力ブロック内の区間位置アドレス
とし、各該区間のビット列を対応する該区間位置アドレ
スによって定まる区間と所定の位置関係を有する区間に
順次移動して、移動した結果のブロックを該非線形関数
部(4)に渡し、該移動の前後の該区間相互間の対応を示
す情報を該逆初期転置部(5)に渡すものであり、 該非線形関数部(4)は、複数段のインボリューション処
理部(6)を有し、該初期転置部(3)から受け取る該ブロッ
クを等しい長さの左ビット列及び右ビット列に2等分
し、該左ビット列を左入力とし、該左ビット列と該右ビ
ット列との排他的論理和を右入力として、第1段の該イ
ンボリューション処理部に入力し、順次各段の該インボ
リューション処理部の左出力を次段の該右入力とし、右
出力を該左入力として、最終段の該左出力と、該左出力
と該右出力との排他的論理和とを結合したビット列のブ
ロックを該逆初期転置部(5)に渡すものであり、 各該インボリューション処理部(6)は、関数部(7)を有
し、該鍵生成部(2)が生成する中間鍵の各所定の1つと
該右入力とを入力として該関数部が生成するビット列
と、該左入力との排他的論理和を該左出力とし、該右入
力を該右出力とするものであり、 各該関数部(7)は該右入力を所定の区間に分割し、該中
間鍵の各該区間に対応するように定める位置の各ビット
列の値を、該右入力内の区間位置アドレスとし、各該区
間のビット列を対応する該区間位置アドレスによって定
まる区間と所定の位置関係を有する区間に順次移動し
て、移動した結果のビット列について所定の変換を実行
するものであり、 該逆初期転置部(5)は、該非線形関数部(4)から受け取る
該ブロックについて、該初期転置部(3)から受け取る該
区間相互間の対応情報に従って、該初期転置部の行った
該区間間の移動と逆の移動を行ったブロックを、該出力
ブロックとして出力するものであり、 該鍵生成部(2)は、該非線形関数部(4)と同じ段数の鍵処
理部(8)を有し、該鍵を等しい長さの左ビット列及び右
ビット列に2等分し、該左ビット列を左鍵入力とし、該
左ビット列と該右ビット列との排他的論理和を右鍵入力
として、第1段の該鍵処理部に入力し、順次各段の該鍵
処理部の左鍵出力を次段の該右鍵入力とし、右鍵出力を
該左鍵入力として、各該段の該左鍵出力を各該中間鍵と
して該非線形関数部に渡すものであり、 各該鍵処理部(8)は、鍵関数部(9)を有し、所与の初期ベ
クトルと該右鍵入力とを入力として該鍵関数部が生成す
るビット列と、該左鍵入力との排他的論理和を該左鍵出
力とし、該右鍵入力を該右鍵出力とするものであり、 各該鍵関数部(9)は該右鍵入力を所定の区間に分割し、
該初期ベクトルの各該区間に対応するように定める位置
の各ビット列の値を、該右鍵入力内の区間位置アドレス
とし、各該区間のビット列を対応する該区間位置アドレ
スによって定まる区間と所定の位置関係を有する区間に
順次移動して、移動した結果のビット列について所定の
変換を実行するように構成されていることを特徴とする
ブロック暗号処理装置。
1. An apparatus for converting an input block consisting of a bit string of a predetermined length into an output block having the same length as the input block, based on a given key consisting of the bit string of the bit length, wherein the device randomizes data. The data randomizing unit (1) has a unit (1) and a key generating unit (2), and the data randomizing unit (1) includes an initial transposing unit (3), a non-linear function unit (4), and an inverse initial transposing unit (5). The initial transposing unit (3) divides the input block into predetermined sections, and sets the value of each bit string at a position determined so as to correspond to each of the sections of the key in the input block. As a section position address, sequentially move the bit string of each section to a section having a predetermined positional relationship with the section determined by the corresponding section position address, and pass the resulting block to the non-linear function unit (4), Information indicating the correspondence between the sections before and after the movement is provided to the inverse initial transposition unit (5). The non-linear function unit (4) has a plurality of stages of involution processing unit (6), the block received from the initial transposition unit (3) into a left bit string and a right bit string of equal length. It is divided into two parts, the left bit string is used as the left input, and the exclusive OR of the left bit string and the right bit string is input as the right input to the involution processing unit of the first stage, and the inversion processing unit of each stage is sequentially input. The left output of the volume processing unit is used as the right input of the next stage, the right output is used as the left input, and the left output of the final stage and the exclusive OR of the left output and the right output are combined. A block is passed to the inverse initial transposition unit (5), each involution processing unit (6) has a function unit (7), and each of the intermediate keys generated by the key generation unit (2) Exclusive of a bit string generated by the function unit with a predetermined one and the right input as inputs and the left input The logical sum is used as the left output, and the right input is used as the right output. Each function unit (7) divides the right input into a predetermined section and corresponds to each section of the intermediate key. The value of each bit string at the position determined as described above is used as the section position address in the right input, and the bit string of each section is sequentially moved to a section having a predetermined positional relationship with the section determined by the corresponding section position address, The inverse initial transposition unit (5) executes a predetermined conversion on the bit string of the moved result, and the inverse initial transposition unit (5) receives the section received from the initial transposition unit (3) for the block received from the nonlinear function unit (4). According to the mutual correspondence information, a block that is moved in the opposite direction of the movement performed by the initial transposition unit between the sections is output as the output block, and the key generation unit (2) Has a key processing unit (8) with the same number of steps as the function unit (4) , The key is equally divided into a left bit string and a right bit string of equal length, the left bit string is used as the left key input, and the exclusive OR of the left bit string and the right bit string is used as the right key input. Input to the key processing unit, the left key output of each key processing unit in each stage is sequentially set as the right key input of the next stage, the right key output is set as the left key input, and the left key output of each stage is set in each of the intermediate stages. The key processing unit (8) has a key function unit (9) as a key, and each key processing unit (8) receives a given initial vector and the right key input, and the key function unit receives The exclusive OR of the bit string to be generated and the left key input is used as the left key output, the right key input is used as the right key output, and each of the key function units (9) outputs the right key input to a predetermined value. Divided into intervals,
The value of each bit string at a position determined so as to correspond to each of the intervals of the initial vector is used as an interval position address in the right key input, and the bit string of each interval is determined by the corresponding interval position address and a predetermined position. A block cipher processing device, characterized in that the block cipher processing device is configured to sequentially move to a section having a relationship and perform a predetermined conversion on a bit string resulting from the movement.
【請求項2】 前記各関数部(7)は、前記区間の個数を
Nとして、2N−1個の関数ボックスを有し、 前記中間鍵に基づいて移動した結果の前記ビット列につ
いて、第1の該関数ボックスに第1の該区間のビット列
と第2の該区間のビット列とを入力し、 第2から第N−1までの各第iの該関数ボックスに第i
+1の該区間のビット列と第i−1の該関数ボックスの
出力とを入力し、 第Nの該関数ボックスに該第1の区間のビット列と第N
−1の該関数ボックスの出力とを入力し、 第N+1から第2N−1までの各第jの該関数ボックス
に第j−Nの該関数ボックスの出力と第j−1の該関数
ボックスの出力とを入力し、該第Nから第2N−1まで
の各関数ボックスの出力を出力ビット列とし、 各該関数ボックスは各該区間に等しいビット幅の2入力
について所定の演算を行い、同じビット幅の1出力を生
成するものである、請求項1記載のブロック暗号処理装
置。
2. Each of the function units (7) has 2N−1 function boxes, where N is the number of the sections, and the first bit string of the result of movement based on the intermediate key is the first box. The bit string of the first section and the bit string of the second section are input to the function box, and the i-th function box from the second to the (N-1) th is the i-th function box.
The bit string of the section of +1 and the output of the i−1 th function box are input, and the bit string of the first section and the N th function box are input to the N th function box.
−1 of the output of the function box, and the output of the j−Nth function box and the output of the j−1th function box of each of the jth function boxes N + 1 to 2N−1. Output and the output of each of the Nth to 2N−1th function boxes as an output bit string, each of the function boxes performs a predetermined operation on two inputs having a bit width equal to each of the sections, and outputs the same bit. The block cipher processing device according to claim 1, which generates one output having a width.
【請求項3】 前記各鍵関数部(9)は前記各関数部(7)
と同一の構成を有する、請求項2記載のブロック暗号処
理装置。
3. The respective key function parts (9) are provided with the respective function parts (7).
The block cipher processing device according to claim 2, having the same configuration as that of.
JP4033663A 1992-02-20 1992-02-20 Block cipher processor Expired - Lifetime JP3012732B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4033663A JP3012732B2 (en) 1992-02-20 1992-02-20 Block cipher processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4033663A JP3012732B2 (en) 1992-02-20 1992-02-20 Block cipher processor

Publications (2)

Publication Number Publication Date
JPH0697930A true JPH0697930A (en) 1994-04-08
JP3012732B2 JP3012732B2 (en) 2000-02-28

Family

ID=12392697

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4033663A Expired - Lifetime JP3012732B2 (en) 1992-02-20 1992-02-20 Block cipher processor

Country Status (1)

Country Link
JP (1) JP3012732B2 (en)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100296958B1 (en) * 1998-05-06 2001-09-22 이석우 Apparatus for encoding block data
KR100316024B1 (en) * 1999-06-30 2001-12-12 박종섭 Encryption device using data encryption standard algorithm
KR100377173B1 (en) * 2000-05-25 2003-03-26 주식회사 하이닉스반도체 Encryption device using data encryption standard algorithm
KR100377172B1 (en) * 2000-06-13 2003-03-26 주식회사 하이닉스반도체 Key Scheduller of encryption device using data encryption standard algorithm
KR100418575B1 (en) * 2002-04-03 2004-02-14 주식회사 하이닉스반도체 Apparatus for encryption of Data Encryption Standard of Cipher Block Chaining mode
KR100434558B1 (en) * 1997-12-09 2004-09-30 삼성전자주식회사 A fast block encryption algorithm
KR100607463B1 (en) * 1999-07-13 2006-08-02 한국전자통신연구원 Subscriber authentication method and ciphering session key generation method for security on wireless mobile communications network
JP2016105123A (en) * 2014-12-01 2016-06-09 ソニー株式会社 Encryption processing apparatus, encryption processing method, and program
JP2016520866A (en) * 2013-05-01 2016-07-14 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. Electronic block cipher suitable for obfuscation
US11822901B2 (en) 2019-03-18 2023-11-21 Pqshield Ltd. Cryptography using a cryptographic state

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100434558B1 (en) * 1997-12-09 2004-09-30 삼성전자주식회사 A fast block encryption algorithm
KR100296958B1 (en) * 1998-05-06 2001-09-22 이석우 Apparatus for encoding block data
KR100316024B1 (en) * 1999-06-30 2001-12-12 박종섭 Encryption device using data encryption standard algorithm
KR100607463B1 (en) * 1999-07-13 2006-08-02 한국전자통신연구원 Subscriber authentication method and ciphering session key generation method for security on wireless mobile communications network
KR100377173B1 (en) * 2000-05-25 2003-03-26 주식회사 하이닉스반도체 Encryption device using data encryption standard algorithm
KR100377172B1 (en) * 2000-06-13 2003-03-26 주식회사 하이닉스반도체 Key Scheduller of encryption device using data encryption standard algorithm
KR100418575B1 (en) * 2002-04-03 2004-02-14 주식회사 하이닉스반도체 Apparatus for encryption of Data Encryption Standard of Cipher Block Chaining mode
JP2016520866A (en) * 2013-05-01 2016-07-14 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. Electronic block cipher suitable for obfuscation
US9998279B2 (en) 2013-05-01 2018-06-12 Koninklijke Philips N.V. Electronic block cipher device suitable for obfuscation
JP2016105123A (en) * 2014-12-01 2016-06-09 ソニー株式会社 Encryption processing apparatus, encryption processing method, and program
US11822901B2 (en) 2019-03-18 2023-11-21 Pqshield Ltd. Cryptography using a cryptographic state

Also Published As

Publication number Publication date
JP3012732B2 (en) 2000-02-28

Similar Documents

Publication Publication Date Title
US7079651B2 (en) Cryptographic method and apparatus for non-linearly merging a data block and a key
AU2003213318B2 (en) Block cipher apparatus using auxiliary transformation
KR100296958B1 (en) Apparatus for encoding block data
EP1052611B1 (en) Data converter and recording medium on which program for executing data conversion is recorded
US5442705A (en) Hardware arrangement for enciphering bit blocks while renewing a key at each iteration
EP0725511A2 (en) Method for data encryption/decryption using cipher block chaining (CBC) and message authetication codes (MAC)
JPH0863097A (en) Method and system for symmetric encoding for encoding of data
JP2017216619A (en) Information processing device, information processing method and program
JP3012732B2 (en) Block cipher processor
KR100411684B1 (en) Method for the cryptographic conversion of binary data blocks
JP4515716B2 (en) Extended key generation device, encryption device, and encryption system
KR100350207B1 (en) Method for cryptographic conversion of l-bit input blocks of digital data into l-bit output blocks
JP3389210B2 (en) Extended key generation device, encryption / decryption device, extended key generation method, and storage medium
KR100434558B1 (en) A fast block encryption algorithm
JPH09269727A (en) Ciphering method and ciphering device
JP2834450B2 (en) Encryption device
JPH1152850A (en) Device and method for cipher conversion
JPH0744375A (en) Ciphered data processor
JP2000089666A (en) Encoding/decoding device
KR100380638B1 (en) A data encryption standard system equipped parallel feistel structure
JPH10153955A (en) Ciphering device
JP2024053189A (en) Cryptographic processing device, cryptographic processing method and program for cryptographic processing device
KR980007156A (en) Secret key block encryption and decryption method
JP2001215874A (en) Sub-key creation device and recording medium with program therefor
JPH06342258A (en) Block cipher generating device

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20111210

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20111210

Year of fee payment: 12

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313532

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

Free format text: PAYMENT UNTIL: 20111210

Year of fee payment: 12

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20111210

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20121210

Year of fee payment: 13

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121210

Year of fee payment: 13