JP2622223B2 - Data spreader - Google Patents

Data spreader

Info

Publication number
JP2622223B2
JP2622223B2 JP4074778A JP7477892A JP2622223B2 JP 2622223 B2 JP2622223 B2 JP 2622223B2 JP 4074778 A JP4074778 A JP 4074778A JP 7477892 A JP7477892 A JP 7477892A JP 2622223 B2 JP2622223 B2 JP 2622223B2
Authority
JP
Japan
Prior art keywords
data
block
substitution
input
blocks
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 - Lifetime
Application number
JP4074778A
Other languages
Japanese (ja)
Other versions
JPH05307361A (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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP4074778A priority Critical patent/JP2622223B2/en
Publication of JPH05307361A publication Critical patent/JPH05307361A/en
Application granted granted Critical
Publication of JP2622223B2 publication Critical patent/JP2622223B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【産業上の利用分野】[Industrial applications]

【0002】本発明は、暗号化方式の中核となるデータ
拡散装置に関し、とくに転置行列を用いず効果的にデー
タ拡散の実現を可能にするデータ拡散装置及びデータ拡
散方法に関するものである。
[0002] The present invention relates to a data spreading device as a core of an encryption system, and more particularly to a data spreading device and a data spreading method which can realize data spreading effectively without using a transposed matrix.

【従来の技術】[Prior art]

【0003】従来、最も普及している暗号方式として代
表的なものに、DES(「Data Encryption Standard」、FI
PS PUB46、 NBS Jan。1977 参照)があり、このDESに
おけるデータ拡散装置は換字と転置を組み合わせて構成
されている。第4図はその機能を機略的に示すブロツク
図である。同図に示すように、このデータ拡散装置は32
ビツトの入力データRを入力するデータ入力部1と、そ
の32ビツトの入力データRを拡大関数Eによって拡大し
48ビツトにする拡大関数演算部2と、その拡大したデー
タのための48ビツトのレジスタ3と、48ビツトの鍵デー
タKを入力する鍵データ入力部4と、拡大した入力デー
タと鍵データとの排他的論理和の演算を行なう排他的論
理和回路5と、排他的論理和回路5の出力する48ビツト
を6ビツトのブロツクずつそれぞれ換字関数S1,S
2,……S8に従って4ビツトに変換し32ビツトのデー
タを得る換字関数演算部6と、その換字関数演算部6の
32ビツトの出力のビツト位置を転置関数Pに従って入れ
替える転置関数演算部7と、拡散データ出力部8とから
なっている。
Conventionally, the most widely used encryption method is DES (“Data Encryption Standard”, FI
PS PUB46, NBS Jan. 1977), and the data diffusion device in this DES is configured by combining substitution and transposition. FIG. 4 is a block diagram schematically showing the function. As shown in FIG.
A data input unit 1 for inputting bit input data R, and expanding the 32-bit input data R by an expansion function E
A 48-bit expansion function operation unit 2, a 48-bit register 3 for the expanded data, a key data input unit 4 for inputting 48-bit key data K, and an expanded input data and key data An exclusive-OR circuit 5 for performing an exclusive-OR operation, and the 48-bit output from the exclusive-OR circuit 5 are replaced with 6-bit blocks each of the substitution functions S1 and S.
2, a substitution function operation unit 6 that converts the data into 4-bit data in accordance with S8 to obtain 32-bit data.
It comprises a transposition function calculation unit 7 for changing the bit position of the 32-bit output according to the transposition function P, and a spread data output unit 8.

【0004】以下に、データ拡散の過程を説明する。ま
ず、32ビツトの入力データRは拡大関数演算部2におい
て第1表に示す拡大関数Eにより48ビツトのデータE
(R)に拡大される。拡大関数演算部2の出力E(R)
は、各々6ビツトの8個のブロツクで表し、第1表に示
される最上段左から最下段右への順序に従って入力ブロ
ツク中のビツトを選択することにより得られる。すなわ
ち、例えば出力データE(R)の先頭の3ビツトは、そ
れぞれ入力データRのビツト位置32、1、2の値が選択
され、最後の3ビツトはそれぞれ入力データRのビツト
位置31、32、1の値が選択される。 続いて、排他的論
理和回路5においては、拡大された48ビツトのデータE
(R)と鍵データKと排他的論理和がとられる。
[0004] The process of data diffusion will be described below. First, a 32-bit input data R is converted into a 48-bit data E by an expansion function E shown in Table 1 in an expansion function calculator 2.
(R). Output E (R) of enlargement function operation unit 2
Are represented by eight blocks of 6 bits each, and are obtained by selecting the bits in the input blocks according to the order from the top left to the bottom right shown in Table 1. That is, for example, for the first three bits of the output data E (R), the values of the bit positions 32, 1, and 2 of the input data R are selected, and for the last three bits, the bit positions 31, 32, and. A value of 1 is selected. Subsequently, in the exclusive OR circuit 5, the expanded 48-bit data E
An exclusive OR is calculated between (R) and the key data K.

【0005】次に、換字関数演算部6において、排他的
論理和回路5の出力から、第2表に示す換字関数S1,
S2,……,S8に従って、32ビツトの出力を得る。第
2表に示す換字関数の使い方を換字関数S1を例にとり
説明する。Bを6ビツトのブロツクとするとき、出力S
1(B) を以下のように決定する。6ビツトのブロツクB
における最初と最後のビツトからなる2進数をiとする
と、これは0〜3の範囲にある。そして、ブロツクBの
中央の4ビツトを2進数jとすると、これは0〜15の範
囲にある。これらの2進数i、jにより出力S1(B) を
決定する。すなわち、出力S1(B) は第2表のS1中の
i行、j列にある0〜15の範囲の数である。例えば、入
力を011011とすると、行は01、列は1101、すなわち、第
2表より換字関数S1の1行13列のデータは5であるか
ら0101が出力として得られる。
[0005] Next, in the substitution function operation unit 6, from the output of the exclusive OR circuit 5, the substitution functions S1,
According to S2,..., S8, a 32-bit output is obtained. The usage of the substitution function shown in Table 2 will be described using the substitution function S1 as an example. When B is a 6-bit block, the output S
1 (B) is determined as follows. 6-bit block B
Let i be the binary number consisting of the first and last bit in, this is in the range 0-3. If the center 4 bits of block B are a binary number j, this is in the range of 0-15. The output S1 (B) is determined by these binary numbers i and j. That is, the output S1 (B) is the number in the range from 0 to 15 in the i-th row and the j-th column in S1 of Table 2. For example, assuming that the input is 011011, the row is 01 and the column is 1101, that is, since the data of the 13th row and 13th column of the substitution function S1 is 5 from Table 2, 0101 is obtained as the output.

【0006】最後に、転置関数演算部7において第3表
に示すような転置関数Pが適用される。すなわち、転置
関数演算部7は第3表の転置関数に従って、換字関数演
算部6からのデータを、その左から16番目のビツトを1
番目に、7番目のビツトを2番目に、……、25番目のビ
ツトを32番目に、それぞれ置換した出力データを生成す
る。
Finally, a transposition function P as shown in Table 3 is applied in the transposition function calculation section 7. That is, the transposition function operation unit 7 converts the data from the substitution function operation unit 6 into the 16th bit from the left by 1 according to the transposition function in Table 3.
Third, output data is generated by replacing the seventh bit with the second,..., And the 25th bit with the 32nd.

【発明が解決しようとする課題】[Problems to be solved by the invention]

【0007】データ拡散装置においては、できるだけ多
くの種類の換字関数を用いることが、データの拡散効率
を高めるという観点から重要である。従来のDESにお
いては、これを、入力6ビツトの両端の2ビツトによる
4通りの換字関数選択により実現している。これは巧み
な方法であるが、次の二つの問題点がある。 (1) 入力における1ビツトの変化が、出力におい て
4ビツト程度に拡大する効果しか実現できない。 (2) 換字関数が4ビツト−4ビツト変換であり、 ビ
ツト位置の転置関数を用いている等の理由か ら、ビツ
ト演算を数多く必要とする。これが、高速化の大きな妨
げとなる。 上記問題点の(1)は6ビツト毎のブロツクが、それぞれ
換字処理されて転置関数Pに至るまで、相互干渉が一度
もないことを起因する。また、上記問題点(2)はこのア
ルゴリズムが、バイト単位で処理するのに有効な8ビツ
ト換字関数、転置関数Pを用いない処理手順を指向した
設計を行っていないことに起因する。本発明の目的は、
上述の従来技術の問題点を解決することにある。すなわ
ち、処理手順を増加することなくデータの拡散効果を高
め、処理の単位の殆どをバイト単位の演算をすることに
より一層の高速性を図ることにある。
[0007] In a data spreading apparatus, it is important to use as many kinds of substitution functions as possible from the viewpoint of improving data diffusion efficiency. In the conventional DES, this is realized by selecting four types of substitution functions using two bits at both ends of the input 6 bits. This is a clever method, but has two problems: (1) A change of one bit at the input can only achieve an effect of expanding to about four bits at the output. (2) Because the substitution function is 4-bit to 4-bit conversion, and uses a transposition function of the bit position, many bit operations are required. This greatly hinders speeding up. The above problem (1) is caused by the fact that there is no mutual interference until the blocks of every 6 bits are subjected to the substitution processing and reach the transposition function P. The problem (2) is caused by the fact that this algorithm is not designed for a processing procedure that does not use an 8-bit substitution function and a transposition function P that are effective for processing in byte units. The purpose of the present invention is
An object of the present invention is to solve the above-described problems of the related art. That is, the data diffusion effect can be enhanced without increasing the processing procedure, and the processing speed can be further increased by performing the calculation in byte units.

【課題を解決するための手段】[Means for Solving the Problems]

【0008】[0008]

【課題を解決するための手段】本発明のデータ拡散装置
は、インボリューション構造を有するブロック暗号装置
におけるデータ拡散装置であって、16ビットの入力デ
ータを2つの同一データ長(8ビット)のブロックに分
ける一つの分割手段と、前記分割手段により分割された
2つのブロックのデータ、鍵のデータ、及び、パラメー
タのデータを入力して、2つのブロックのデータに融合
換字処理を施し出力する融合換字手段と、前記融合換字
手段より出力された2つの同一長のブロックのデータを
入力して結合し、前記入力データ長と同一の新たな拡散
データを出力する一つの結合手段を具備し、前記融合換
字手段は、一方のブロックのデータと、鍵のデータとが
入力され、演算を施して、これらのデータの融合をはか
り、入力されるブロックのデータと同一長の新たなブロ
ックのデータを生成する第1の融合手段と、他方のブロ
ックのデータと、第1の融合手段の出力データと、パラ
メータのデータとが入力され、演算を施して、これらの
データの融合をはかり、入力されるブロックのデータと
同一長の新たなブロックのデータを生成する第2の融合
手段と、第2の融合手段の出力データに換字処理を施
し、入力されるブロックのデータと同一長の新たなブロ
ックのデータを生成する換字手段を、複数組備えてな
り、前の組において前記入力された一方のブロックのデ
ータを、次の組において第2の融合手段に入力される他
方のブロックのデータとし、前の組において換字手段か
ら出力されるブロックのデータを、次の組における一方
のブロックのデータとして、融合換字処理を複数組に渡
って行い、処理結果を分割されたすべてのブロックのデ
ータの影響が及ぼされているものとすることを特徴とす
るデータ拡散装置によって実現される。さらに、前記第
1の融合手段は、入力されたデータ間の排他的論理和演
算を行う手段を含み、前記第2の融合手段は、入力され
たデータ間の加算および剰余演算を行う演算手段を含
み、前記換字手段は、ブロックのデータに対してビット
回転演算を施す手段を含み、また、前記換字手段は、ブ
ロックのデータをアドレスにして参照する換字テーブル
によって構成されたことを特徴とする。
A data spreading device according to the present invention is a data spreading device in a block cipher device having an involution structure, wherein 16-bit input data is converted into two blocks having the same data length (8 bits). And data of two blocks divided by the dividing means, key data, and data of parameters, which are subjected to a fusion substitution process on the data of the two blocks and output. Means for inputting and combining data of two blocks of the same length output from the fusion substituting means, and outputting new spread data having the same length as the input data length. The substitution means receives the data of one block and the data of the key, performs an operation, fuses these data, and inputs the data. First data generating means for generating data of a new block having the same length as the block data, data of the other block, output data of the first data generating means, and parameter data are input. A second fusion unit for generating a new block of data having the same length as the input block data, and performing a substitution process on the output data of the second fusion unit. the substitution means for generating data of a new block of data in the same length of the block is input, it comprises a plurality of sets, the data of one block is Oite the input before the set, first in the next set 2 as the data of the other block input to the fusing means, and the data of the block output from the substitution means in the previous set as the data of one block in the next set. Was carried out over a plurality of sets, the influence of the data of all the blocks divided the processing result is achieved by a data diffusion apparatus characterized by a what is exerted. Further, the first fusing means includes means for performing an exclusive OR operation between the input data, and the second fusing means includes an operation means for performing an addition and remainder operation between the input data. The substitution means includes means for performing a bit rotation operation on the data of the block, and the substitution means is constituted by a substitution table for referring to the data of the block by using an address.

【0009】[0009]

【作用】本発明は、上記のように、処理する複数ブロッ
クのそれぞれの融合処理過程において、他のブロックま
たはパラメータからのデータを引き入れ融合するための
融合手段を設け、処理が終了した時点での各ブロックの
データが、すべての入力ブロックのデータの影響を受け
て生成されているように構成されているので、転置関数
Pを不要にすることができ、従来のDESにおけるデー
タ拡散装置に比べて拡散効率が高く、構成が簡単になる
とともに、処理の高速化を実現できる。また、融合処理
換字処理をブロック(バイト)単位とすることによっ
て、ビット処理を極力なくしているので、さらに処理の
高速化が顕著なものとなっている。
According to the present invention, as described above, in each fusion processing step of a plurality of blocks to be processed, a fusion means for introducing and fusing data from another block or parameter is provided. Since the data of each block is configured to be generated under the influence of the data of all the input blocks, the transposition function P can be made unnecessary, and compared with a conventional DES data diffusion device. The diffusion efficiency is high, the configuration is simple, and the processing can be speeded up. Also, fusion processing
By performing the substitution processing on a block (byte) basis, the bit processing is minimized, so that the processing speed is further remarkable.

【00010】第1図は、本発明の実施例を説明するた
めの図であって、32ビツトの入力データから32ビツトの
拡散出力データを得るデータ拡散装置の構成の機略を示
している。第1図においてRは32ビツトの入力データブ
ロツク、R0〜R3は入力データRを分けた8ビツト
(1バイト)からなる4つのデータブロツク、K0,K
1は各1バイトのパラメータ、XORは排他的論理和回
路、Sは2つの入力されたデータブロツクを融合して換
字変換し、1つのデータブロツクを得る融合換字関数演
算部である。第1図のように構成された本実施例のデー
タ拡散装置の動作を説明する。まず、32ビツトの入力デ
ータブロツクRは、各1バイトの処理ブロツクR0,R
1,R2,R3に分けられる。各処理ブロツクは以下に
示す処理手順に従って順に処理され、最後に32ビツトの
出力とされる。以下の式中の「=」は、右辺を演算後新
しく左辺のデータとすることを示す。 〈処理手順〉 ステツプ1:R1=R1 XOR K0 XOR R0 ステツプ2:R2=R2 XOR K1 XOR R3 ここで、XORは排他的論理和演算を示す。 続いて、 ステツプ3:R1=S(R1、R2、1) ステツプ4:R2=S(R2、R1、0) ステツプ5:R0=S(R0、R1、0) ステツプ6:R3=S(R3、R2、1) ここで、S(a、b、δ)(但しδ=0または1)は、
融合手段と換字手段を続けて行う機能を表す。Sについ
ては後で詳細に説明する。この処理手順の後、R0,R
1,R2,R3が結合されて出力ブロツクとなるが、第
1図の構造から明らかなように、各出力ブロツクは、す
べての入力ブロツクの影響のもとに生成されている。す
なわち、入力データの1ビツトの変化に対して出力が平
均11ビツトも変化する効果を得ることができる。従来技
術が4ビツト程度の拡散しか得られなかったことに比べ
るとこの改善効果は著しい。しかも、処理ブロツク間に
この拡散効果を広げるために、改めてビツト位置の転置
関数Pを必要としない。本実施例においては、各ブロツ
クを相互干渉させながら融合処理と換字処理を行うこと
により、つまり、少なくとも1回すべての他のブロツク
のデータと直接または間接的に演算することにより、転
置関数Pを用いることなく従来技術を大幅に上回るデー
タ拡散効果を実現している。この処理ブロツク間の相互
干渉は、第1図に示すように、排他的論理和回路XOR
および、融合換字関数演算部Sへの入力という形で実現
している。
FIG. 1 is a diagram for explaining an embodiment of the present invention, and shows a schematic structure of a data spreading device for obtaining 32-bit spread output data from 32-bit input data. In FIG. 1, R is a 32-bit input data block, R0 to R3 are four data blocks of 8 bits (1 byte) obtained by dividing the input data R, K0 and K.
1 is a 1-byte parameter, XOR is an exclusive OR circuit, and S is a fusion substitution function operation unit for fusing and converting two input data blocks to obtain one data block. The operation of the data spreading device according to the present embodiment configured as shown in FIG. 1 will be described. First, a 32-bit input data block R is composed of 1-byte processing blocks R0 and R.
1, R2 and R3. Each processing block is processed sequentially according to the processing procedure described below, and is finally output as 32 bits. “=” In the following expression indicates that the right side is newly calculated as the left side data after the operation. <Processing Procedure> Step 1: R1 = R1 XOR K0 XOR R0 Step 2: R2 = R2 XOR K1 XOR R3 Here, XOR indicates an exclusive OR operation. Subsequently, Step 3: R1 = S (R1, R2, 1) Step 4: R2 = S (R2, R1, 0) Step 5: R0 = S (R0, R1, 0) Step 6: R3 = S (R3 , R2, 1) where S (a, b, δ) (where δ = 0 or 1) is
Represents the function of continuously performing the fusion means and the substitution means. S will be described later in detail. After this processing procedure, R0, R
1, R2 and R3 are combined to form an output block. As can be seen from the structure of FIG. 1, each output block is generated under the influence of all the input blocks. That is, it is possible to obtain an effect that the output changes by an average of 11 bits with respect to a change of one bit of the input data. This improvement is remarkable compared to the prior art in which only about 4 bits of diffusion were obtained. In addition, the bit position transposition function P is not required to extend this diffusion effect between the processing blocks. In the present embodiment, the transposition function P is obtained by performing the fusion processing and the substitution processing while causing each block to interfere with each other, that is, by directly or indirectly calculating the data of all the other blocks at least once. It achieves a data diffusion effect that greatly exceeds the conventional technology without using it. The mutual interference between the processing blocks is caused by an exclusive OR circuit XOR as shown in FIG.
And, it is realized in the form of input to the fusion substitution function operation unit S.

【0011】融合換字関数演算部Sの構成例について、
以下に説明する。データaとbが入力されるとき、S
(a、b、δ)は次式で与えられる。S(a、b、δ)
={(a+b+δ)mod256}ro12 ここで、aとbは
Sの入力、δは0または1の定数で、Sの入力、x mod
yは、xをyで割って生じる余りを求める演算であ
り、x rol yはxをyに示す数値分だけ左方向へビツ
ト回転させる演算を示す。以降、S(a、b、δ)を簡
略的にS(x)と表記する。但し、xは(a+b+δ)
mod256一般に、マイクロプロセツサの8ビツトレジスタ
への数値代入によって、xmod256は容易に実現できる。
また、融合換字関数演算部は第2図に示すように融合手
段としての加算器ADDと換字手段としての循環シフト
レジスタの組み合わせにより実施する。また、融合換字
関数演算部のうち、換字処理については、換字テーブル
用いて構成することができる。すなわち、高級言語によ
りプログラミングする場合などには、S(x)(x=0
〜511)〔但し、a+b+δ)mod256〕の値をあらかじめ
換字テーブルとして用意しておくことが有効である。
換字テーブルを用意する方式をとるのであれば、先に示
したビツト回転方式以外のより複数な換字関数を利用す
ることができる。例えば、第4表に示す換字テーブル
は、左上S(0)から右上S(15)、2段目の左S(1
6)から右S(31)以下右下S(255)までの値を示した
ものである。この換字テーブルは、異なる二つの0〜25
5 のデータ10と11、および、それぞれの入力に対応
した換字テーブルの参照値00と01について、前者のハミ
ング距離H10,11と後者のハミング距離H00,0
1の間に第5表に示す関係を生じるものである。この換
字テーブルのそれぞれの要素に、同一の8ビツト転置行
列Tを作用させ、定数Aを排他的論理和回路で加えるこ
とによって生成できる換字テーブルも同様の性質を示
す。一般的には、この種の換字テーブルは、転置行列
T、定数Aを用いて、入力Xに対して、Xのビツト数が
偶数のときTX+Aを、奇数のときT〜X+A(〜Xは
Xのビツト反転値)を、それぞれの値として設定するこ
とにより得られる。いずれの場合でも、0〜255 の1バ
イトのデータの和を入力して、1バイトのデータを出力
とする換字テーブルは、0〜255 のいずれかの値に換字
する同種類のテーブルを2面続けて用意することによっ
て、0〜511 の入力を0〜255 の1バイトデータに換字
することができる。すなわち、S(a+b)において、
bはaを換字するための換字テーブルのスタートアドレ
スをbだけずらせる役割を果たすものと考える。mod256
を用いる場合には、換字テーブルは1面でよい。
[0011] Regarding a configuration example of the fusion substitution function operation unit S,
This will be described below. When data a and b are input, S
(A, b, δ) is given by the following equation. S (a, b, δ)
= {(A + b + δ) mod256} ro12 where a and b are S inputs, δ is a constant of 0 or 1, S input, x mod
y is an operation for obtaining a remainder generated by dividing x by y, and x rol y is an operation for rotating x to the left by the numerical value shown in y. Hereinafter, S (a, b, δ) is simply referred to as S (x). Where x is (a + b + δ)
mod256 In general, xmod256 can be easily realized by assigning a numerical value to an 8-bit register of a microprocessor.
Further, as shown in FIG. 2, the fusion substitution function operation unit is implemented by a combination of an adder ADD as fusion means and a cyclic shift register as substitution means. Also, of the fusion substitution function calculation unit, the substitution processing can be configured using a substitution table. That is, when programming in a high-level language, for example, S (x) (x = 0
511) [However, it is effective to prepare the value of a + b + δ) mod 256 as a substitution table in advance.
If a method of preparing a substitution table is used, a plurality of substitution functions other than the bit rotation method described above can be used. For example, the substitution table shown in Table 4 includes upper left S (0) to upper right S (15) and second left S (1).
6) to values from the right S (31) to the lower right S (255). This substitution table has two different 0-25
5 and the reference values 00 and 01 of the substitution table corresponding to the respective inputs, the former Hamming distances H10, 11 and the latter Hamming distances H00, 0
The relationship shown in Table 5 occurs between 1 and 1. A substitution table that can be generated by applying the same 8-bit transposed matrix T to each element of the substitution table and adding a constant A by an exclusive OR circuit has the same properties. In general, this type of substitution table uses a transpose matrix T and a constant A, and for input X, TX + A when the number of X bits is even, and TTX + A (〜X is X Are obtained by setting the bit inverted values of the above) as the respective values. In any case, the substitution table that inputs the sum of 1-byte data of 0 to 255 and outputs 1-byte data is a two-sided table of the same type that substitutes any value of 0 to 255. By continuously preparing, input of 0 to 511 can be replaced with 1 byte data of 0 to 255. That is, in S (a + b),
It is assumed that b plays a role of shifting the start address of the substitution table for substituting a by b. mod256
Is used, the substitution table may be one.

【0012】以上に述べた本発明の実施例は、従来技術
であるDESのデータ拡散装置と比較して、10分の1以
下のダイナミツクステツプで実現することができ、使用
するメモリ量も小さく、2 倍以上のデータ拡散効果を得
ることができる。また、上記実施例においては、換字そ
の他の処理の単位を8ビツト(1バイト)としたが、こ
れは現在普及しているデータ端末、パーソナルコンピュ
ータ等が8ビツト、16ビツトのCPUを用いているもの
であるためである。今後、技術が進歩するにつれて、こ
れらの主流が16ビツトから32ビツトへと移行して来た場
合には、本発明の技術は容易にこれに対処できる。すな
わち、換字その他の処理の単位を16ビツト(2バイト)
にする。この場合、第1図に示した実施例の構造に変更
は生じないが、融合換字関数Sにおける256が65536にか
わる。融合換字関数Sは次式のようになる。 S(a)=(a mod 65536 ) rol 2 原理的には、処理単位を任意に設定できる。また、本実
施例に示した2入力の換字処理の他にも、3人力とした
ものあるいはこれらと排他的論理和によるバイパスを組
み合わせたものとすることもできる。
The above-described embodiment of the present invention can be realized with a dynamic step of 1/10 or less and uses a small amount of memory as compared with the conventional DES data diffusion apparatus. , It is possible to obtain a data diffusion effect that is twice or more. Further, in the above embodiment, the unit of the substitution and other processing is 8 bits (1 byte). However, the data terminals, personal computers, etc., which are now widely used, use an 8-bit, 16-bit CPU. Because it is something. In the future, as the technology advances, if the mainstream shifts from 16 bits to 32 bits, the technology of the present invention can easily cope with this. That is, the unit of substitution and other processing is 16 bits (2 bytes)
To In this case, the structure of the embodiment shown in FIG. 1 is not changed, but 256 in the fusion substitution function S is replaced by 65536. The fusion substitution function S is as follows. S (a) = (a mod 65536) rol 2 In principle, the processing unit can be set arbitrarily. In addition to the two-input substitution processing shown in the present embodiment, it is also possible to use a three-person input or a combination of these and a bypass by exclusive OR.

【0013】[0013]

【実施例】前記実施例では、32ビットの入力に対する
拡散処理を行う例としたが、第2の実施例として、16
ビットの入力に対するものを第3図に示す。まず、16
ビットの入力ブロックRを、各1バイトの処理ブロック
R0,R1にわける。各処理ブロックは、以下に示す処
理手順に従って処理され、最後に16ビットを出力す
る。K0,K1はパラメータのデータである。 〈処理手順〉 ステップ1:R1=S(R1,R0 XOR K0,1) ステップ2:R0=S(R0,R1 XOR K1,0) ここで、XORは排他的論理和演算を示す。演算記号、
関数Sなどは、第1図の実施例と同様である。
In the above embodiment, the spreading process is performed on a 32-bit input.
FIG. 3 shows the case of bit input. First, 16
The bit input block R is divided into 1-byte processing blocks R0 and R1. Each processing block is processed according to the following processing procedure, and finally outputs 16 bits. K0 and K1 are parameter data. <Processing Procedure> Step 1: R1 = S (R1, R0 XOR K0, 1) Step 2: R0 = S (R0, R1 XOR K1, 0) Here, XOR indicates an exclusive OR operation. Arithmetic symbols,
The function S and the like are the same as in the embodiment of FIG.

【表1】 [Table 1]

【0014】[0014]

【表2】 [Table 2]

【0015】[0015]

【表3】 [Table 3]

【0016】[0016]

【表4】 [Table 4]

【0017】[0017]

【表5】 [Table 5]

【0018】[0018]

【発明の効果】【The invention's effect】

【0019】[0019]

【発明の効果】本発明は、以上に詳述したように、処理
する複数のブロックを融合するのに、自己のブロックか
らのデータに他のブロックのデータを少なくとも1回融
合することにより、処理が終了した時点で、各ブロック
が、すべての入力ブロックの影響を受けて生成されるよ
うに構成されているので、転置関数Pを不要にすること
5ができ、従来のDESにおけるデータ拡散装置に比べ
て構成が簡単になるとともに、処理の高速化を実現でき
る。図4に示すDES暗号のデータ拡散方法は、ブロッ
クの長さが、4ビット、6ビット、32ビット、48ビ
ットと複数混在しているのに対し、本発明の融合手段で
使う演算および換字手段で使う演算は、ともに同一デー
タ長のブロック間の演算のみであるため、そのビット処
理演算をICカードファームウェア(ICカードプログ
ラムをROM化したもの)やパーソナルコンピュータな
どのソフトウェア処理にて行う際において高速化が顕著
となる、という効果がある。
According to the present invention, as described in detail above, when a plurality of blocks to be processed are fused, data from another block is merged at least once with data from the own block. Is completed, each block is configured to be generated under the influence of all the input blocks, so that the transposition function P can be made unnecessary, and the data diffusion device in the conventional DES can be used. Compared with this, the configuration is simpler and the processing can be speeded up. The DES encryption data spreading method shown in FIG.
The length of the block is 4 bits, 6 bits, 32 bits, 48 bits
However, while there are multiple
Both the operation used and the operation used in the substitution method are the same data.
Since the operation is only between blocks of data length, the bit processing
The arithmetic operation is performed using the IC card firmware (IC card program).
ROMs) and personal computers
Significant speed improvement in any software processing
Is effective.

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

【図1】本願発明の第1の実施例の基本ブロック図であ
る。
FIG. 1 is a basic block diagram of a first embodiment of the present invention.

【図2】本願発明の第1の実施例を示す図である。FIG. 2 is a diagram showing a first embodiment of the present invention.

【図3】第3図は本発明の第2の実施例の構成の概略を
示す図である。
FIG. 3 is a diagram schematically showing the configuration of a second embodiment of the present invention.

【図4】第4図は従来技術としてのDESにおけるデー
タ拡散装置の構成の概略を示す図である。
FIG. 4 is a diagram schematically showing a configuration of a data spreading device in DES as a conventional technique.

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

R……入力データブロツク R0〜R3……Rの左から1〜4バイト目のブロツク K……鍵データ K0,K1……各1バイトの鍵ブロツク S……融合換字関数演算部 XOR……排他的論理和回路 ADD……加算器 ROL……2ビツトの左循環レジスタ R: Input data blocks R0 to R3: Blocks of first to fourth bytes from the left K: Key data K0, K1: Key block of 1 byte each S: Fusion substituting function operation unit XOR: Exclusive Logical OR circuit ADD: Adder ROL: 2-bit left circular register

───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特公 平3−33269(JP,B2) 電子情報通信学会論文誌D、J70−D [7](1987)、高速データ暗号アルゴ リズムFEAL、P.1413−1423 ──────────────────────────────────────────────────続 き Continuation of the front page (56) References JP-B-3-33269 (JP, B2) IEICE Transactions D, J70-D [7] (1987), FEAL, P.E. 1413-1423

Claims (5)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】 インボリューション構造を有するブロッ
ク暗号装置におけるデータ拡散装置であって、 16ビットの入力データを2つの同一データ長(8ビッ
ト)のブロックに分ける一つの分割手段と、 前記分割手段により分割された2つのブロックのデー
タ、鍵のデータ、及び、パラメータのデータを入力し
て、2つのブロックのデータに融合換字処理を施し出力
する融合換字手段と、 前記融合換字手段より出力された2つの同一長のブロッ
クのデータを入力して結合し、前記入力データ長と同一
の新たな拡散データを出力する一つの結合手段を具備
し、 前記融合換字手段は、 一方のブロックのデータと、鍵のデータとが入力され、
演算を施して、これらのデータ融合をはかり、入力され
るブロックのデータと同一長の新たなブロックのデータ
を生成する第1の融合手段と、 他方のブロックのデータと、第1の融合手段の出力デー
タと、パラメータのデータとが入力され、演算を施し
て、これらのデータの融合をはかり、入力されるブロッ
クのデータと同一長の新たなブロックのデータを生成す
る第2の融合手段と、 第2の融合手段の出力データに換字処理を施し、入力さ
れるブロックのデータと同一長の新たなブロックのデー
タを生成する換字手段を、複数組備えてなり、 前の組において前記入力された一方のブロックのデータ
を、次の組において第2の融合手段に入力される他方の
ブロックのデータとし、前の組において換字手段から出
力されるブロックのデータを、次の組における一方のブ
ロックのデータとして、融合換字処理を複数組に渡って
行い、処理結果を分割されたすべてのブロックのデータ
の影響が及ぼされているものとすることを特徴とするデ
ータ拡散装置。
1. A data spreading device in a block encryption device having an involution structure, comprising: one dividing means for dividing 16-bit input data into two blocks having the same data length (8 bits); Fusion substituting means for inputting data of two divided blocks, key data, and parameter data, performing fusion substituting processing on the data of the two blocks, and outputting the data; And one combining means for inputting and combining data of two blocks having the same length and outputting new spread data having the same length as the input data length. And the data of
An arithmetic operation is performed to fuse these data to generate a new block of data having the same length as the input block data. Second fusion means for receiving output data and parameter data, performing an operation, fusing these data, and generating new block data having the same length as the input block data; subjected to substitution process on the output data of the second fusion means, a substitution means for generating data of a new block of data in the same length of the block is input, it comprises a plurality of sets, Oite the input before the set the data of one block is, as the other blocks of data input to the second fusion means in the next set, the data of the blocks output from the substitution section in the previous set Data diffusion, characterized in that the fused substitution processing is performed over a plurality of sets as data of one block in the next set, and the processing result is assumed to be influenced by the data of all divided blocks. apparatus.
【請求項2】 前記第1の融合手段が、入力されたデー
タ間の排他的論理和演算を行う手段を含むことを特徴と
する特許請求の範囲第1項記載のデータ拡散装置。
2. The data spreading apparatus according to claim 1, wherein said first fusing means includes means for performing an exclusive OR operation between input data.
【請求項3】 前記第2の融合手段が、入力されたデー
タ間の加算および剰余演算を行う演算手段を含むことを
特徴とする特許請求の範囲第1項記載のデータ拡散装
置。
3. The data spreading apparatus according to claim 1, wherein said second fusion means includes an arithmetic means for performing addition and remainder operations between input data.
【請求項4】 前記換字手段が、ブロックのデータに対
してビット回転演算を施す手段を含むことを特徴とする
特許請求の範囲第1項記載のデータ拡散装置。
4. The data spreading apparatus according to claim 1, wherein said substitution means includes means for performing a bit rotation operation on the data of the block.
【請求項5】 前記換字手段が、ブロックのデータをア
ドレスにして参照する換字テーブルによって構成された
ことを特徴とする特許請求の範囲第1項記載のデータ拡
散装置。
5. The data spreading device according to claim 1, wherein said substitution means is constituted by a substitution table which refers to block data as an address.
JP4074778A 1992-03-30 1992-03-30 Data spreader Expired - Lifetime JP2622223B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4074778A JP2622223B2 (en) 1992-03-30 1992-03-30 Data spreader

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4074778A JP2622223B2 (en) 1992-03-30 1992-03-30 Data spreader

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP7274546A Division JPH08101639A (en) 1995-10-23 1995-10-23 Data diffusing method

Publications (2)

Publication Number Publication Date
JPH05307361A JPH05307361A (en) 1993-11-19
JP2622223B2 true JP2622223B2 (en) 1997-06-18

Family

ID=13557093

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4074778A Expired - Lifetime JP2622223B2 (en) 1992-03-30 1992-03-30 Data spreader

Country Status (1)

Country Link
JP (1) JP2622223B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5532560B2 (en) * 2008-08-25 2014-06-25 ソニー株式会社 Data conversion apparatus, data conversion method, and program

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60252650A (en) * 1984-05-30 1985-12-13 Sumitomo Naugatuck Co Ltd Heat-resistant resin composition
JPH0333269A (en) * 1989-06-29 1991-02-13 Kao Corp Finishing oil for thermoplastic synthetic fiber

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
電子情報通信学会論文誌D、J70−D[7](1987)、高速データ暗号アルゴリズムFEAL、P.1413−1423

Also Published As

Publication number Publication date
JPH05307361A (en) 1993-11-19

Similar Documents

Publication Publication Date Title
JPH06236148A (en) Data processing system for executing data-encrypting algorithm, wherein performance in ansi x3.92 data-encrypting algorithm standard is strengthened
US6560691B2 (en) Modulus address generator and method for determining a modulus address
JP2622223B2 (en) Data spreader
CN111967026A (en) Method and device for encrypting and decrypting redemption code and computer equipment
CN116318660B (en) Message expansion and compression method and related device
CN112019352A (en) SM9 quick signature method and system and electronic equipment
KR20030051111A (en) Round processing circuit and on-line round key generation circuit for the hardware implementation of AES Rijndael cipher algorithm
JP5113833B2 (en) ENCRYPTION METHOD AND ENCRYPTION APPARATUS FOR IMPROVING OPERATION PERFORMANCE OF A CENTRAL PROCESSOR
JPH0333269B2 (en)
CN113300829A (en) Hardware implementation device of SM3 algorithm
JPH08101639A (en) Data diffusing method
JP3275881B2 (en) Code generation method and apparatus
JP3526504B2 (en) Random number generator
JP2008046151A (en) Encryption processing method
JP3736731B2 (en) Replacement processing apparatus and program recording medium thereof
JP3917357B2 (en) Non-linear conversion method, computer-readable recording medium storing program, and non-linear conversion device
JP2002091295A (en) Arithmetic unit combining feistel structure and spn structure and arithmetic method
KR19990048318A (en) Fast block cipher algorithm
CN115622745A (en) Encryption method, device, terminal equipment and computer readable storage medium
JPH0814748B2 (en) Data diffusion mechanism
CN117763205A (en) Data processing method, device, electronic equipment and storage medium
CN114444707A (en) Data processing method, device, equipment and storage medium
JPH0682259B2 (en) Data spreader
JPH06102821A (en) Cyphering device
JPS5911446A (en) Multiplier

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term