JPS62113191A - Data diffuser - Google Patents

Data diffuser

Info

Publication number
JPS62113191A
JPS62113191A JP60252650A JP25265085A JPS62113191A JP S62113191 A JPS62113191 A JP S62113191A JP 60252650 A JP60252650 A JP 60252650A JP 25265085 A JP25265085 A JP 25265085A JP S62113191 A JPS62113191 A JP S62113191A
Authority
JP
Japan
Prior art keywords
data
bit
substitution
block
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.)
Granted
Application number
JP60252650A
Other languages
Japanese (ja)
Other versions
JPH0333269B2 (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 JP60252650A priority Critical patent/JPS62113191A/en
Priority to US06/926,043 priority patent/US4850019A/en
Priority to EP86115279A priority patent/EP0221538B1/en
Priority to EP91112054A priority patent/EP0454187B1/en
Priority to DE3650365T priority patent/DE3650365T2/en
Priority to DE3689510T priority patent/DE3689510T2/en
Publication of JPS62113191A publication Critical patent/JPS62113191A/en
Publication of JPH0333269B2 publication Critical patent/JPH0333269B2/ja
Granted legal-status Critical Current

Links

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
(57) [Summary] This bulletin contains application data before electronic filing, so abstract data is not recorded.

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明は、暗号化方式の中核となるデータ拡散装置に関
し、とくに転置行列を用いず効果的にデータ拡散の実現
を可能にするデータ拡散装置に間するものである。
Detailed Description of the Invention (Industrial Application Field) The present invention relates to a data diffusion device that is the core of an encryption method, and in particular to a data diffusion device that enables effective data diffusion without using a transposed matrix. It is something that takes place in between.

(従来の技術) 従来、最も萱及している暗号方式として代表的なものに
、D E S (r Data Encription
 5tanderdJ 、FIPS PUB 46. 
NBS Jan、l977  参照)があり、このDE
Sにおけるデータ拡散装置は換字と転置を組み合わせて
構成されている。第4図はその機能を概略的に示すブロ
ック図である。同図に示すように、こ゛のデータ拡散装
置は32ビツトの入力データRを入力するデータ入力部
1と、その32ビツトの入力データRを拡大間数Eによ
って拡大し48ビツトにする拡大間数演算部2と、その
拡大したデータのための48ビツトのレジスタ3と、4
8ビツトの鍵データKを入力する鍵データ入力部4と、
拡大した入力データと鍵データとの排他的論理和の演算
を行なう排他的論理和回路5と、排他的論理和回路5の
出力する48ビツトを6ビツトのブロックずつそれぞれ
換字間数St、 S2.・・・S8に従って4ビツトに
変換し32ビツトのデータを得る換字間数演算部6と、
その換字間数演算部6の32ビツトの出力のピット位置
を転置間数Pに従って入れ替えろ転置間数演算部7と、
拡散データ出力部8とからなっている。
(Prior art) One of the most widely used encryption methods is DES (Data Encryption).
5 standard J, FIPS PUB 46.
NBS Jan, 1977), and this DE
The data spreading device in S is constructed by combining substitution and transposition. FIG. 4 is a block diagram schematically showing its functions. As shown in the figure, this data spreading device has a data input unit 1 that inputs 32-bit input data R, and an expansion number that expands the 32-bit input data R by an expansion number E to make it 48 bits. Arithmetic unit 2 and 48-bit registers 3 and 4 for the expanded data.
a key data input section 4 for inputting 8-bit key data K;
An exclusive OR circuit 5 performs an exclusive OR operation between the expanded input data and the key data, and the 48 bits output from the exclusive OR circuit 5 are converted into 6-bit blocks each with the number of substitutions St, S2. . . . a conversion unit 6 that converts to 4 bits according to S8 and obtains 32 bits of data;
A transposed space calculation unit 7 that replaces the pit position of the 32-bit output of the substitution space calculation unit 6 according to the transposed space number P;
It consists of a spread data output section 8.

以下に、データ拡散の過程を説明する。The process of data diffusion will be explained below.

まず、32ビツトの入力データRは拡大間数演算部2に
おいて第1表に示す拡大間数Eにより48ビツトのデー
タE(R)に拡大される。拡大間数演算部2の出力E(
R)は、各々6ビツトの8個のブロックで表し、第1表
に示される最上最左から最下股布への順序に従って入力
ブロック中□のビットを選択することにより得られる。
First, the 32-bit input data R is expanded to 48-bit data E(R) by the expansion number calculation section 2 using the expansion number E shown in Table 1. Output E(
R) is represented by 8 blocks of 6 bits each and is obtained by selecting the □ bits in the input block according to the order from the uppermost left to the lowermost crotch shown in Table 1.

すなわち、例えば出力データE(R)の先頭の3ビツト
は、それぞれ入力データRのビット位置32,1.2の
値が選択され、最後の3ビツトはそれぞれ入力データR
のビット位置31.32. 1の値が選択される。
That is, for example, the first three bits of output data E(R) are selected from the values of bit positions 32 and 1.2 of input data R, and the last three bits are selected from input data R.
Bit positions 31, 32. A value of 1 is selected.

続いて、排他的論理和回路5においては、拡大された4
8ビツトのデータE(R)と鍵データにとの排他的論理
和がとられる。
Next, in the exclusive OR circuit 5, the expanded 4
The 8-bit data E(R) and the key data are exclusively ORed.

次に、換字間数演算部6において、排他的論理和回路5
の出力から、第2表に示す換字間数sl。
Next, in the substitution interval calculation unit 6, the exclusive OR circuit 5
From the output of , the number of substitutions sl shown in Table 2 is obtained.

S2. S3.・・・、 S8に従って、32ビツトの
出力を得る。
S2. S3. . . . Obtain 32-bit output according to S8.

第2表に示す換字間数の使い方を換字間数51を例にと
り説明する。Bを6ビツトのブロックとするとき、出力
5l(B)を以下のように決定する。6ビツトのブロッ
クBにおける最初と最後のビットからなる2進数をiと
すると、これはO〜3の範囲にある。そして、ブロック
Bの中央の4ビツトを2進数Jとすると、これは0〜1
5の範囲にある。
How to use the number of substitutions shown in Table 2 will be explained using the number of substitutions 51 as an example. When B is a 6-bit block, the output 5l(B) is determined as follows. Let i be the binary number consisting of the first and last bits in block B of 6 bits, which is in the range 0 to 3. Then, if the central 4 bits of block B are the binary number J, this is 0 to 1.
It is in the range of 5.

これらの2進数1.Jにより出力5l(b)を決定する
。すなわち、出力5l(b)は第2表のSl中の1行、
j列にある0〜15の範囲の数である。例えば、入力を
011011とすると、行は1101、すなわち、第2
表より換字間r11stの1行13列のデータは5であ
るから0101が出力として得られる。
These binary numbers 1. The output 5l(b) is determined by J. That is, the output 5l(b) is the first row in Sl of Table 2,
It is a number in the range of 0 to 15 in column j. For example, if the input is 011011, the row is 1101, i.e. the second
From the table, the data in the 1st row and 13th column of the substitution interval r11st is 5, so 0101 is obtained as the output.

最後に、転置間数演算部7において第3表に示すような
転置間数Pが適用される。すなわち、転置間数演算部7
は第3表の転置間数に従って、換字間数演算部6からの
データを、その左から16番目のビットを1番目に、7
番目のビットを2番目に、・・・、25番目のビットを
32番目に、それぞれ置換した出力データを生成する。
Finally, the transposition number calculation unit 7 applies the number of transpositions P as shown in Table 3. That is, the transposed interval calculation unit 7
According to the transposed number in Table 3, the data from the substitution number calculation section 6 is set to 7, with the 16th bit from the left as the first.
Output data is generated in which the th bit is replaced with the 2nd bit, the 25th bit is replaced with the 32nd bit, etc.

(発明が解決しようとする問題点) データ拡散装置においては、できるだけ多くの種類の換
字間数を用いることが、データの拡散効率を高めるとい
う観点から重要である。従来のDESにおいては、これ
を、入力6ビツトの両端の2ビツトによる4通りの換字
間数選択により実現している。これは巧みな方法である
が、次の二つの問題点がある。
(Problems to be Solved by the Invention) In a data diffusion device, it is important to use as many types of substitution numbers as possible from the viewpoint of increasing data diffusion efficiency. In the conventional DES, this is achieved by selecting the number of substitutions in four ways using the two bits at both ends of the six input bits. Although this is a clever method, there are two problems:

l)入力における1ビツトの変化が、出力において4ビ
ット程度に拡大する効果しか実現できない。
l) It is only possible to achieve the effect that a 1-bit change in the input is expanded to about 4 bits in the output.

2)換字間数が4ビット−4ビツト変換であり、ピット
位置の転置間数を用いている等の理由から、ビット演算
を数多く必要とする。これが、高速化の大きな妨げとな
る。
2) Many bit operations are required because the number of substitutions is a 4-bit to 4-bit conversion and the number of transpositions of pit positions is used. This is a major hindrance to speeding up.

上記問題点の 1)は6ビツト毎のブロックが、それぞ
れ換字処理されて転置間数Pに至るまで、相互干渉が一
度もないことに起因する。また、上記問題点2)はこの
アルゴリズムが、バイト単位で処理するのに有効な8ビ
ット換字間数、転置間数Pを用いない処理手順を指向し
た設計を行っていないことに起因する。
The above problem (1) is due to the fact that there is no mutual interference even once the blocks of every 6 bits are replaced and the number of transposes reaches P. Further, the above problem 2) is due to the fact that this algorithm is not designed for a processing procedure that does not use the 8-bit number of substitutions and the number of transpositions P, which are effective for processing in bytes.

本発明の目的は、上述の従来技術の問題点を解決するこ
とにある。すなわち、処理手順を増加することなくデー
タの拡散効果を高め、処理の単位の殆どをバイト単位の
演算とすることにより一層の高速性を図ることにある。
An object of the present invention is to solve the problems of the prior art described above. That is, the purpose is to enhance the data diffusion effect without increasing the number of processing steps, and to achieve even higher speed by making most of the units of processing into byte-based operations.

(問題点を解決するための手段) 本発明のデータ拡散装置は、上記問題点を解決するため
に、入力データを複数の同一データ長のブロックに分け
る手段と、その分けられた各ブロックのデータに対し、
少なくとも一つの他のブロックのデータを論理演算して
融合させる手段と、前記融合により新たに生成された各
ブロックのデータに対して換字処理を施す手段と、前記
換字処理を施された前記複数のブロックを結合して前記
入力データの拡散データを出力する手段とを具備したこ
とを特徴とするものである。
(Means for Solving the Problems) In order to solve the above problems, the data diffusion device of the present invention includes means for dividing input data into a plurality of blocks of the same data length, and data of each divided block. For,
means for performing a logical operation on the data of at least one other block and merging it; means for performing a substitution process on the data of each block newly generated by the fusion; The present invention is characterized by comprising means for combining blocks and outputting spread data of the input data.

前記論理演算して融合させる手段は、実施の態様によれ
ば、ブロックのデータ間の排他的論理和演算を行う手段
およびブロックのデータ間の排他的論理和演算を行う手
段のいずれか一方または両方からなっている。
According to an embodiment, the means for performing a logical operation and merging includes one or both of a means for performing an exclusive OR operation between data in a block and a means for performing an exclusive OR operation between data in a block. It consists of

また、前記換字処理を施す手段は、−実施の態様によれ
ば、前記融合により新たに生成されたブロックに対して
ビット回転演算を施こす手段によって構成される。
According to an embodiment, the means for performing the character substitution process is configured by means for performing a bit rotation operation on the block newly generated by the fusion.

さらに瘤の実施の態様によれば、前記換字処理を施す手
段は、前記融合により新たに生成されたブロックをアド
レスにして参照する換字テーブルによって構成される。
Furthermore, according to an embodiment of the invention, the means for performing the character substitution process is constituted by a substitution table that refers to the block newly generated by the fusion as an address.

(作用) 本発明は、上記のように、処理する複数ブロックのそれ
ぞれの換字処理過程において、他のブロックからの情報
を引き入れ融合するための手段(バイパス)を設け、処
理が終了した時点での各ブロックが、すべての入力ブロ
ックの影響を受けて生成されているように構成されてい
るので、転置間数Pを不要にすることができ、従来のD
ESにおけるデータ拡散装置に比べて拡散効率が高く。
(Function) As described above, the present invention provides a means (bypass) for drawing in and fusing information from other blocks in the substitution processing process of each of the plurality of blocks to be processed, and when the processing is completed. Since each block is configured to be generated under the influence of all input blocks, the number of transposes P can be eliminated, and the conventional D
The diffusion efficiency is higher than that of the data diffusion device in ES.

構成が簡単になるとともに、処理の高速化を実現できる
。また、換字処理をブロック(バイト)単位とすること
によって、ビット処理を極力なくしているので、さらに
処理の高速化が顕著なものとなっている。
The configuration becomes simple and processing speed can be increased. Furthermore, by performing the substitution process in units of blocks (bytes), bit processing is eliminated as much as possible, resulting in a remarkable increase in processing speed.

(実施例) 第1図は、本発明の詳細な説明するための図であって、
“32ビツトの入力データから32ビツトの拡散出力デ
ータを得るデータ拡散装置の構成の概略を示している。
(Example) FIG. 1 is a diagram for explaining the present invention in detail,
This figure schematically shows the configuration of a data spreading device that obtains 32-bit spread output data from 32-bit input data.

第1図においてRは32ビツトの入力データブロック、
RO−R3は入力データRを分けた8ビツト(1バイト
)からなる4つのデーターブロック、KO,Klは各1
バイトの鍵ブロック、XORは排他的論理和回路、Sは
2つの入力されたデータブロックを融合して換字変換し
、1つのデータブロックを得る換字間数演算部である。
In FIG. 1, R is a 32-bit input data block;
RO-R3 is divided into 4 data blocks consisting of 8 bits (1 byte) of input data R, KO and Kl are 1 each.
The byte key block, XOR is an exclusive OR circuit, and S is a substitution calculation unit that fuses two input data blocks and performs substitution conversion to obtain one data block.

第1図のように構成された本実施例のデータ拡散装置の
動作を説明する。
The operation of the data diffusion device of this embodiment configured as shown in FIG. 1 will be explained.

まず、32ビツトの入力データブロックRは、各1バイ
トの処理ブロックRO,R1,R2,R3にわけられる
。各処理ブロックは以下に示す処理手順に従って順に処
理され、最後に32ビツトの出力とされる。以下の式中
の「=」は、右辺を演算後新しく左辺のデータとするこ
とを示す。
First, a 32-bit input data block R is divided into processing blocks RO, R1, R2, and R3 each of 1 byte. Each processing block is processed in order according to the processing procedure shown below, and finally a 32-bit output is produced. The "=" in the following formula indicates that the right side is to be used as the new data on the left side after the calculation.

く処理手順〉 R1=R1十に0+RO R2= R2+に1+R3 続いで、 R1= 5(R1+ R2+ 1) R2= 5(R2+ R1) RO= 5(RO+ R1) R3= 5(R3+ R2+ 1) S(a )(a = 0〜511)は、aに対応する1
バイトの換字データである。Sについては後で詳細に説
明する。
Processing procedure> R1=R10 to 0+RO R2=1 to R2++R3 Then, R1=5(R1+R2+ 1) R2=5(R2+R1) RO=5(RO+R1) R3=5(R3+R2+ 1) S( a ) (a = 0 to 511) is 1 corresponding to a
This is byte substitution data. S will be explained in detail later.

この処理手順の後、RO,R1,R2,R3が出力ブロ
ックとなるが、第1図の構造から明らかなように、各出
力ブロックは、すべての入力ブロックの影響のもとに生
成されている。すなわち、入力データの1ビツトの変化
に対して出力が10ビット以上も変化する効果を得るこ
とができる。従来技術 4ビット程度の拡散しか得られ
なかったことに比べろとこの改善効果は著しい。しかも
、処理ブロック間にこの拡散効果を広げるために、改め
てビット位置の転置間数Pを必要としない。
After this processing procedure, RO, R1, R2, and R3 become output blocks, but as is clear from the structure in Figure 1, each output block is generated under the influence of all input blocks. . That is, it is possible to obtain the effect that the output changes by 10 bits or more for a 1-bit change in input data. This improvement effect is remarkable compared to the prior art in which only about 4 bits of spreading was obtained. Moreover, in order to spread this diffusion effect between processing blocks, the number P between bit position transpositions is not required.

本実施例においては、処理ブロックを相互干渉させなか
ら換字処理を行うことにより、転置間数Pを用いること
な〈従来技術を大幅に上回るデータ拡散効果を実現して
いる。この処理ブロック間の相互干渉は、第1図に示す
ように、排他的論理和回路XORおよび換字間数演算部
Sへの入力という形の二つのバイパスで実現している。
In this embodiment, by performing character substitution processing without causing processing blocks to interfere with each other, a data diffusion effect that is significantly superior to that of the prior art is achieved without using the number of transpositions P. This mutual interference between the processing blocks is realized by two bypasses in the form of inputs to the exclusive OR circuit XOR and the inter-substitution arithmetic unit S, as shown in FIG.

換字間数演算部Sの構成例について、以下に説明する。An example of the configuration of the substitution number calculation unit S will be described below.

データaが入力されるとき、5(a)は次式で与えられ
る。
When data a is input, 5(a) is given by the following equation.

S(a )= (a  mod 256) rol 2
ここで、x mod yは、Xをyで割って生じる余り
を求める演算であり、x mod yはXをyに示す数
値分だけ左方向へビット回転させる演算を示す。
S(a) = (a mod 256) rol 2
Here, x mod y is an operation to obtain a remainder when X is divided by y, and x mod y is an operation to bit-rotate X to the left by the value indicated by y.

一般に、マイクロプロセッサの8ビツトレジスタへの数
値代入によって、x mod 256は用意に実現でき
る。
In general, x mod 256 can be easily implemented by assigning numerical values to 8-bit registers of a microprocessor.

また、換字間数演算部は第3図に示すように加算器AD
Dと循環シフトレジスタの組み合わせによりハードウェ
アのみにより実施することができる。
In addition, as shown in FIG.
The combination of D and a circular shift register allows for hardware-only implementation.

また、換字間数演算部は、換字テーブル用いて構成する
ことができる。すなわち、高級言語によりプログラミン
グする場合などには、5(a)(a=0〜511)の値
をあらかじめ換字テーブルとして用意しておくことが有
効である。
Further, the substitution interval calculation section can be configured using a substitution table. That is, when programming in a high-level language, it is effective to prepare the values of 5(a) (a=0 to 511) in advance as a substitution table.

換字テーブルを用意する方式をとるのであれば、先に示
したビット回転方式以外のより複雑な換字間数を利用す
ることができる0例えば、第4表に示す換字テーブルは
、左上S(0>から右上5(15)、2段目の左5(1
6)から右5(31)以下右下5(255)までの値を
示したものである。この換字テーブルは、異なる二つの
0〜255のデータ10と11、および、それぞれの入
力に対応した換字テーブルの参照値OOとOlについて
、前者のハミング距III)1(+0.11)と後者の
ハンミグ距離)1(00,01)の間に第5表に示す関
係を生じるものである。
If you take the method of preparing a substitution table, you can use a more complicated number of substitutions other than the bit rotation method shown above.0For example, the substitution table shown in Table 4 is From top right 5 (15), second row left 5 (1
6) to right 5 (31) and lower right 5 (255). This substitution table has two different data 10 and 11 from 0 to 255 and reference values OO and Ol of the substitution table corresponding to the respective inputs, and the Hamming distance III) 1 (+0.11) of the former and The relationship shown in Table 5 is produced between the Hammig distance) 1 (00, 01).

この換字テーブルのそれぞれの要素に、同一の8ビツト
転置行列Tを作用させ、定数Aを排他的論理和回路で加
えることによって生成できる換字テーブルも同様の性質
を示す。
A substitution table that can be generated by applying the same 8-bit transposed matrix T to each element of this substitution table and adding a constant A using an exclusive OR circuit exhibits similar properties.

一般的には、この種の換字テーブルは、転置行列T、定
数Aを用いて、入力Xに対して、Xのビット数が偶数の
ときTX+Aを、奇数のときT〜x+A(〜XはXのビ
ット反転値)を、それぞれの値として設定することによ
り得られる。
Generally, this type of substitution table uses a transpose matrix T and a constant A, and for input X, when the number of bits of bit inversion value) as the respective values.

いずれの場合でも、0〜25501バイトのデータの和
を入力として、1バイトのデータを出力とする換字テー
ブルは、0〜255のいずれか、の値に換字する同種類
のテーブルを2面続けて用意゛することによつて、0〜
511の入力を0〜255の1バイトデータに換字する
ことができる。すなわち、S (a+b)において、b
はaを換字するための換字テーブルのスタートアドレス
をbだけずらせる役割を果たすものと考えろ。mod 
256を用いる場合には、換字テーブルは1面でよい。
In either case, a substitution table that inputs the sum of data from 0 to 25,501 bytes and outputs 1 byte of data is created by creating two consecutive tables of the same type that substitute values from 0 to 255. By preparing
The input number 511 can be converted into 1-byte data from 0 to 255. That is, in S (a+b), b
Think of it as having the role of shifting the start address of the substitution table for substituting a by b. mod
When using H.256, only one substitution table is required.

以上に述べた本発明の実施例は、従来技術であるDES
のデータ拡散装置と比較して、10分の1以下のダイナ
ミックステップで実現することができ、使用するメモリ
量も小さく、2倍以上のデータ拡散効果を得ろことがで
きる。
The embodiment of the present invention described above is based on the prior art DES.
Compared to the data diffusion device of 2005, this can be realized with less than one-tenth the dynamic step, the amount of memory used is small, and the data diffusion effect can be more than twice as large.

また、上記実施例においては、換字その他の処理の単位
を8ビツト(1バイト)としたが、これは現在普及して
いるデータ端末、パーソナルコンピュータ等が8ビツト
、16ビツトのCPUを用いているものであるためであ
る。今後、技術が進歩するにつれて、これらの主流が1
6ビツトから32ビツトへと移行して来た場合には、本
発明の技術は容易にこれに対処できる。すなわち、換字
その他の処理の単位を16ビツト(2バイト)にする。
Furthermore, in the above embodiment, the unit of processing such as substitution is 8 bits (1 byte), but this is because currently popular data terminals, personal computers, etc. use 8-bit and 16-bit CPUs. Because it is a thing. In the future, as technology advances, these mainstream
If there is a transition from 6 bits to 32 bits, the technique of the present invention can easily handle this. That is, the unit of processing such as substitution is set to 16 bits (2 bytes).

この場合、第1図に示した実施例の構造に変更は生じな
いが、換字間数Sにおける256が65536にかわる
。換字間数Sは次式のようになる。
In this case, the structure of the embodiment shown in FIG. 1 is not changed, but 256 in the number of substitutions S is changed to 65,536. The number of substitution intervals S is given by the following formula.

S (a) = (a  mad 65536)  r
ol 2原理的には、処理単位を任意に設定できろ。
S (a) = (a mad 65536) r
ol 2 In principle, the processing unit can be set arbitrarily.

また、本実施例に示した2入力の換字処理の他にも、3
入力としたものあるいはこれらと排他的論理和によるバ
イパスを組み合わせたものとすることもできる。
In addition to the two-input substitution process shown in this embodiment, three
It is also possible to use input signals or a combination of these and exclusive OR bypass.

前記実施例では、32ビツトの入力に対する拡散処理を
行う例を示したが、第2の実施例として、16ビツトの
入力に対するものを第3図に示す。まず、16ビツ1の
入力ブロックRを、各1バイトの処理ブロックRO,R
1にわける。各処理ブロックは、以下に示す処理手順に
従フて順に処理され、最後に16ビツトを出力する。に
O2に1は鍵データである。
In the embodiment described above, an example was shown in which spreading processing is performed for a 32-bit input, but as a second embodiment, one for a 16-bit input is shown in FIG. First, input block R of 16 bits 1 is converted into processing blocks RO and R of 1 byte each.
Divided into 1. Each processing block is processed in order according to the processing procedure shown below, and finally outputs 16 bits. 1 in O2 is key data.

く処理手順〉 R1=RO+KO RO= R1十に1 続いて、 RO= 5(RO+ R1) R1= 5(R1+ RO+ 1 ) 演算記号、関数Sなどは、第1図の実施例と同様である
Processing Procedure> R1=RO+KO RO=R1 to 1 Subsequently, RO=5(RO+R1) R1=5(R1+RO+1) The operation symbols, function S, etc. are the same as in the embodiment shown in FIG.

(発明の効果) 本発明は、以上に詳述したように、処理する複数ブロッ
クのそれぞれの換字処理過程において、他のブロックか
らの情報を引き入れ融合するための手段(バイパス)を
設け、処理が終了した時点での各ブロックが、すべての
入力ブロックの影響を受けて生成されているように構成
されているので、転置間数Pを不要にすることができ、
従来のDESにお゛けるデータ拡散装置に比べて構成が
簡単になるとともに、処理の高速化を実現できる。
(Effects of the Invention) As described in detail above, the present invention provides a means (bypass) for drawing in and fusing information from other blocks in the substitution processing process of each of a plurality of blocks to be processed, so that the processing can be carried out. Since each block at the time of completion is configured to be generated under the influence of all input blocks, the number of transpositions P can be made unnecessary.
Compared to the conventional DES data diffusion device, the configuration is simpler and processing speed can be increased.

また、換字処理をブロック(バイト)単位とすることに
よって、ビット処理を極力なくしているので、さらに処
理の高速化が顕著なものとなっている。
Furthermore, by performing the substitution process in units of blocks (bytes), bit processing is eliminated as much as possible, resulting in a remarkable increase in processing speed.

また、本発明はデータ端末機、パーソナルコンピュータ
などのハードウェアと前記処理手順を行うためのソフト
ウェアを一部に組み合わせることによって実施すること
ができ、その隙にはプログラム規模が小さいものとなる
ので、今後クレジットなどの用途に急速に萱及すること
が予想されるICカードのセキュリティに応用するのに
適している。
Further, the present invention can be implemented by partially combining hardware such as a data terminal or a personal computer with software for performing the above-mentioned processing procedure, and the program scale is small in this case. It is suitable for application to the security of IC cards, which are expected to rapidly expand into uses such as credit cards in the future.

第2表 換字関数 S1〜S8の−例 第4表 換字テーブルの一例 138531012181D 20615833116
203155361434896 Z23162297
7242・89230182 99222717912
1672472247125194146 45134
、 57105214131 60108211120
199151 40168 23 71248 832
3618g   3 86233185  6L73 
18 66253215104 56135 4414
7’195124 4115019812121010
9 61130321592071122191005
21392229749142371542Q2 [7
1286311120812319614843126
193145461’33 58106213
Table 2 Examples of substitution functions S1 to S8 Table 4 Example of substitution table 138531012181D 20615833116
203155361434896 Z23162297
7242・89230182 99222717912
1672472247125194146 45134
, 57105214131 60108211120
199151 40168 23 71248 832
3618g 3 86233185 6L73
18 66253215104 56135 4414
7'195124 4115019812121010
9 61130321592071122191005
21392229749142371542Q2 [7
1286311120812319614843126
193145461'33 58106213

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

第1図および第2図は、本発明の第1の実施例の構成を
示す図、第3図は本発明の第2の実施例の構成の概略を
示す図、第4図は従来技術としてのDBSにおけるデー
タ拡散装置の構成の概略を示す図である。 R・・・入力データブロック、RO〜R3・・・Rの左
から1〜4バイト目のブロック、K・・・鍵データ、に
0゜に1・・・各1バイトの鍵ブロック、S・・・換字
間数演算部、XOR・・・排他的論理和回路、ADD・
・・加算器、ROL・・・2ビツトの左循環レジスタ。 特許出願人  日本電信電話株式会社 第1図 第2図 手続補正書(自発) 昭和61年3月14日 特許庁長官 宇 賀 道 部 殿 1、事件の表示   特願昭60−252650号2、
発明の名称   データ拡散装置 3、補正をする者 事件との関係 出願人 (昭和60年4月1日名義変更済(一括)】住   所
  東京都千代田区内幸町1丁目1番6号名  称  
(422)  日本電信電話株式会社代表者     
真藤  恒 4、代・埋入 住   所  東京都港区西新橋3丁目3番3号6、補
正の対象 明細書の発明の詳細な説明の欄 7、補正の内容 (1)明細書第5頁第7,8の各行rs1 (b) J
をrsl (B) Jと訂正する。 (2)同書第5頁第io行r行は」を[行は01゜列は
」と訂正する。 (3)同書第7頁第20行〜第8頁第1行「排他的論理
和演算」を[加算および剰余演算」と訂正する。 (4)  同書第11頁第17行rx nod yJを
「x rolyJと訂正する。 (5)同書第12頁第3行「第2図」を「第3図」と訂
正する。 以   上 手続補正書輸匍 昭和62年2月9日 特許庁長官 黒 1)明 雄 殿 1、事件の表示   特願昭60−252650号2、
発明の名称   データ拡散装置 3、補正をする者 事件との関係 出願人 住   所  東京都千代田区内幸町1丁目1番6号名
  称  (422)  日本電信電話株式会社代表者
    真藤  恒 4、代理人 住   所  東京都港区西新橋3丁目3番3号6、補
正の対象 明細書全文 7、補正の内容   明細書全文を別紙の通り補正する
。 全文補正明細書 !、 発明の名称  データ拡散装置 2、特許請求の範囲 (+)  入力データを複数の同一データ長のブロック
に分けるi札手段と、 そ註ブロックのデータに対し、少なくとも1回」≧Xニ
ーの他のブロックのデータと」L接二Lh」L朋−色ブ
ロックのデータに対して換字処理をLIJL) 口・・
 −一 か7    ″″″′手段と、前記各−ブロッ
クの9 ・”′1゛ ・データを結合して前記入力デー
タの拡散データ入力部」カする結=合一手段と を具備したことを特徴とするデータ拡散装置。 (2)前記融1工諏が、ブロックのデータLLバー −
−−4の排他的論理和演算を行う手段を含むことを特徴
とする特許請求の範囲第(1)項記載のデータ拡散装置
。 (3)前記融1手諏が、ブロックのデータLLバー −
−−11’lの加算および剰余演算を行う演算手段を含
むことを特徴とする特許請求の範囲第(1)項記載のデ
ータ拡散装置。 (4)前記換11段が、各−ブロックのデータに対して
ビット回転を施こす手段tilrJ=ことを特徴とする
特許請求の範囲第(1)項記載のデータ拡散装置。 (5)前記換r手澱が、各−ブロックをアドレスにして
参照する換字テーブルによって構成されたことを特徴と
する特許請求の範囲第(1)項記載のデータ拡散装置。 3、発明の詳細な説明 (産業上の利用分野) 本発刊は、暗号化方式の中核となるデータ拡散装置に関
し、とくに転置行列を用いず効果的之こデータ拡散の実
現を可能にするデータ拡散装置に関するものである。 (従来の技術) 従来、最も普及している暗号方式として代表的なものに
、D E S (rData Encryption 
5tandard」、FIPS PUB 46. N8
S 、Ian、1977  参照)があり、このDES
におけるデータ拡散装置は換字と転置を鞘み合わせて構
成されている。第4国はその機能を概略的に示すブロッ
ク図である。同図に示すように、このデータ拡散装置は
32ビツトの入力データRを入力するデータ入力部lと
、その32ビツトの入力データRを拡大間rJIEによ
って拡大し48ビツトにする拡大関数演算部2と、その
拡大したデータのための48ビツトのレジスタ3と、4
8ビツトの鍵データ■(を入力する鍵データ入力部4と
、拡大した入力データと鍵データとの排他的論理和の演
算を行なう排他的論理和回路5と、排他的論理和回路5
の出力する48ビツトを6ビツトのブロックずつそれぞ
れ換字間数S1. S2.・・・S8に従って4ビツト
に変換し32ビツトのデータを得る換字閏数演算部6と
、その換字関数演算部6の32ビットの出力のビット位
置を転置関数Pに従って入れ替えろ転置関数演算部7と
、拡散データ出力部8とからなっている。 以下に、データ拡散の過程を説明する。 まず、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においては、拡大された4
8ビツトのデータE(R)と鍵データにとの排他的論理
和がとられる。 次に、換字間数演算部6において、排他的論理和回路5
の出力から、第2表に示す換字間数St。 S2. S3.・・・、 S8に従って、32ビツトの
出力を得る。 第2表に示す換字間数の使い方を換字間数Slを例にと
り説明する。Bを6ビツトのブロックとするとき、出力
51(B)を以下のように決定する。6ビツトのブロッ
クBにおける最初と最後のビットからなる2進数を1と
すると、これはO〜3の範囲にある。そして、ブロック
Bの中央の4ビツトを2進数Jとすると、これは0〜1
5の範囲にある。 これらの2進数l1,1により出力5l(B)を決定す
る。すなわち、出力5t(B)は第2表のSl中の1行
、j列にある0〜15の範囲の数である。例えば、入力
を011011とすると、行は01列は1101、すな
わち、第2表より換字閏r([51の1行13列のデー
タは5であるから0101が出力として得られる。 最後に、転置間数演算部7において第3表に示すような
転置間数Pが適用されろ。すなわち、転置間数演算部7
は第3表の転置関数に従って、換字間数演算部6からの
データを、その左から168目のビットを1番目に、7
番目のビットを2番目に、・・・、25番目のビットを
32番目に、それぞれ置換した出力データを生成する。 (発明が解決しようとする問題点) データ拡散装置においては、できるだけ多くの種類の換
字間数を用いることが、データの拡散効率を高めるとい
う観点から重要である。従来のDBSにおいては、これ
を、入力6ビツトの両端の2ビツトによる4通りの換字
間数選択により実現している。これは巧みな方法である
が、次の二つの問題点がある。 l〉 入力における1ビツトの変化が、出力において4
ビット程度に拡大する効果しか実現できない。 2)換字間数が4ビット−4ビツト変換であり、ピット
位置の転置関数を用いている等の理由から、ビット演算
を数多く必要とする。これが、高速化の大きな妨げとな
る。 上記問題点の1)は6ビツト毎のブロックが、それぞれ
換字処理されて転置関数Pに至るまで、相互干渉が一度
もないことに起因する。また、上記問題点2)はこのア
ルゴリズムが、バイト単位で処理するのに有効な8ピン
ト換字関数、転置間tt pを用いない処理手順を指向
した設計を1テっていないことに起因する。 本発明の目的は、上述の従来技術の間1琵点を解決する
ことにある。すなわち、処理手順を増加することなくデ
ータの拡散効果を高め、処理の単位の殆とをバイト単位
の演算とすることにより一層の高速性を図ることにある
。 (問題点を解決するための手段) 本発明のデータ拡散P装置は、1記問題点を解決するた
めに、入力データを複数の同一データ長のブロックに分
ける分割手段と、その各ブロックのデータに対し、少な
くとも1回すへての他のブロックのデータと直接または
間接的に演算して融合し、新しいブロックのデータを生
成する融合手段と、各ブロックのデータに対して換字処
理を施し新しいブロックデータを生成する換字手段と、
前記各ブロックの最終的に得られたデータを結合して前
記入力データの拡散データとして出力する結合手段とを
具備したことを特徴とするものである。 前記融合手段は、実施の態様によれば、ブロックのデー
タまたはパラメータのデータ間の排他的論理和演算を行
う手段およびブロックのデータまたはパラメータのデー
タ間の加算および利金演算を行う演算手段のいずれか一
方または両方を含む。 また、前記換字手段は、他の実施の態様によれば、前記
各ブロックに対してビット回転演算を施こす手段含む。 さらに他の実施の態様によれば、前記換字手段は、前記
各ブロックをアドレスにして参照する換字テーブルによ
って構成される。 (作用) 本発明は、上記のように、処理する複数ブロックのそれ
ぞれの融合処理過程において、他のブロックまたはパラ
メータからのデータを引き入れ融合するための融合手段
(バイパス)を設け、処理が終了した時点での各ブロッ
クのデータが、すべての入力ブロックのデータの影響を
受けて生成されているように構成されているので、転置
間数Pを不要にすることができ、従来のDESにおける
データ拡散装置に比べて拡散効率が高く、構成が簡単に
なるとともに、処理の高速化を実現できる。 また、換字処理をブロック(バイト)単位とすることに
よって、ビット処理を極力なくしているので、さらに処
理の高速化が顕著なものとなっている。 (実施例) 第1図は、本発明の詳細な説明するための図であって、
32ビツトの入力データから32ビツトの拡散出力デー
タを得るデータ拡散装置の構成の概略を示している。第
1図においてRは32ビツトの入力データブロック、R
O〜R3は入力データRを分けた8ビツト(1バイト)
からなる4つのデータブロック、KO,Klは各1バイ
トのパラメータ、XORは排他的論理和回路、Sは2つ
の入力されたデータブロックを融合して換字変換し、1
つのデータブロックを得る融合換字間数演算部である。 第1図のように構成された本実施例のデータ拡散装置の
動作を説明する。 まず、32ビツトの入力データブロックRは、各1バイ
トの処理ブロックRO,R1,R2,R3にわけられる
。各処理ブロックは以下に示す処理手順に従って順に処
理され、最後に32ビツトの出力とされる。以下の式中
の「=」は、右辺を演算t&新しく左辺のデータとする
ことを示す。 く処理手順〉 ステップl: 旧=RIKOΦRO ステップ2:  R2=R2■Kl■R3ここで、■は
排他的論理和演算を示す。 続いて、 ステップ3 :  R1=:5(R1,82,1)ステ
ップ4 :  R2=S(R2,R1,0)ステップ5
 :  RO=S(RO,R1,O)ステップ8 : 
 R3=S(R3,R2,l)ここて、S(a、b、δ
)(但し、δ=0または1)は、融合手段と換字手段を
続けて行う機能を衷す。Sについては後で詳細に説明す
る。 この処理手順の後、RO,R1,R2、R3が結合され
て出力ブロックとなるが、第1図の構造から明らかなよ
うに、各出力ブロックは、すべての大カブロックの影響
のもとに生成されている。すなわち、入力データのlヒ
ツトの変化に対して出力が平均11ビツトも変化する効
果を得ることができる。従来技術が4ビット程度の拡散
しか得られなかったことに比べるとこの改善効果は著し
い。しかも、処理ブロック間にこの拡散効果を広げるた
めに、改めてビット位置の転置関数Pを必要としない。 本実施例においては、各ブロックを相互干渉させながら
融合処理と換字処理を行うことにより、つまり、少なく
とも1回すへての他のブロックのデータと直接または間
接的に演算することしこより、転置関数Pを用いること
な〈従来技術を大幅に上回るデータ拡散効果を実現して
いる。この処理ブロック間の相互干渉は、第1図に示す
ように、排他的論理和回路XORおよび、融合換字間数
演算部Sへの入力という形の二つのバイパスで実現して
いる。 融合換字関数演算部Sの構成例について、以下に説明す
る。データaとbが入力されるとき、s(a + b 
+ δ)は次式で与えられろ。 S(a、b、δ)=((a+b+δ) nod 25G
) rol 2ここで、aとbはSの入力、δは0また
は1の定数で、Sの入力、x mod yは、Xをyて
割って生じる余りを求める演算であり、x  rot 
yはXをyに示す数値分だけ左方向へビット回転させる
演算を示す。以降、S(a、b、δ)を簡略的に5(x
)と表記する。 但し、Xは(a+b+δ) mod 256一般に、マ
イクロプロセッサの8ヒツトレジスタへの数値代入によ
って、x 1lod 256は容易に実現できる。 また、融合換字間数演算部は第2図に示すように融合手
段としての加算器ADDと換字手段としての循環シフト
レジスタの絹み合わせにより実施する。 また、融合換字間数演算部のうち、換字処理については
、換字テーブル用いて構成することができる。すなわち
、高級言語によりプログラミングする場合などには、5
(x)(x=0〜511)[但し、(a+b十δ) m
od 256]の値をあらかじめ換字テーブルとして用
意しておくことが有効である。 換字テーブルを用意する方式をとるのであれば、先に示
したヒツト回転方式以外のより複雑な換字関数を利用す
ることができる。例えば、第4表に示す換字テーブルは
、左上5(0)から右上S(+5)、2段目の左S(+
6)から右5(31)以下右下5(255)までの値を
示したものである。この換字テーブルは、異なる二つの
O〜255のデータ10と11、および、それぞれの入
力に対応した換字テーブルの参照値00とOlについて
、前者のハミング距離H(10,11)と後者のハンミ
グ距111H(00,01)の間に第5表に示す関係を
生じるものである。 この喚字テーブルのそれぞれの要素に、同一の8ビツト
転置行列Tを作用させ、定数Aを排他的論理和回路で加
えることによって生成できる換字テーブルも同様の性質
を示す。 一般的には、この種の換字テーブルは、転置行列T、定
数Aを用いて、入力Xに対して、Xのビット数が偶数の
ときTX+Aを、奇数のときT〜X+A(〜XはXのビ
ット反転値)を、それぞれの値として設定することによ
り得られる。 いずれの場合でも、0〜255の1バイトのデータの和
を入力として、1バイトのデータを出力とする換字テー
ブルは、0〜255のいずれかの値に換字する同種類の
テーブルを2面続けて用意することによって、0〜51
+の入力を0〜255のlバイトデータに換字すること
ができる。すなわち、S (a+b)において、bはa
を換字するための換字テーブルのスタートアドレスをb
だけずらせる役割を果たすものと考える。mod 25
6を用いる場合には、換字テーブルは1面でよい。 以上に述べた本発明の実施例は、従来技術であるDES
のデータ拡散装置と比較して、10分の1以下のダイナ
ミックステップで実現することができ、使用するメモリ
量も小さく、2倍以上のデータ拡散効果を得ることがで
きる。 また、上記実施例においては、換字その他の処理の単位
を8ビツト(lバイト)としたが、これは現在普及して
いるデータ端末、パーソナルコンピュータ等が8ビツト
、16ビツトのCPUを用いているものであるためであ
る。今後、技術が進歩するにつれて、これらの主流が1
6ヒツトから32ヒツトへと移行して来た場合には、本
発明の技術は容易にこれに対処できる。すなわち、換字
その他の処理の単位を16ビツト(2バイト)にする。 この場合、第1図に示した実施例の構造に変更は生じな
いが、融合換字間数Sにおけろ256が65536にか
わる。融合換字間数Sは次式のようになる。 S (a) = (a 1lod 65536)  r
ol 2原理的には、処理単位を任意に設定できる。 また、本実施例に示した2入力の換字処理の他にも、3
入力としたものあるいはこれらと排他的論理和によるバ
イパスを絹み合わせたものとすることもてきる。 前記実施例では、32ビツトの入力に対する拡散処理を
行う例を示したが、第2の実施例として、16ビツトの
入力に対するものを第3図に示す。まず、16ビツトの
入力ブロックRを、各1バイトの処理ブロックRO,R
1にわける。各処理ブロックは、以下に示す処理手順に
従って順に処理され、n tlに16ビツトを出力する
。KO,Klはパラメータのデータである。 〈処理手順〉 R1=S(R1,RO■KO,1) RO=S(RO,R1■にl、0) 演算記号、関数Sなとは、第1図の実施例と同様である
。 (発明の効果) 本発明は、以上に詳述したように、処理する複数ブロッ
クのそれぞれの融合処理において、他のブロックからの
データを引き入れ融合するための手段くバイパス)を設
け、処理が終了した時点での各ブロックが、すべての入
力ブロックの影響を受けて生成されているように構成さ
れているので、転置関数Pを不要にすることができ、従
来のDBSにおけるデータ拡散装置に比へて構成が簡単
になるとともに、処理の高速化を実現できる。また、換
字処理をブロック(バイト)単位とすることによって、
ビット処理を極力なくしているので、さらに処理の高速
化が顕著なものとなっている。 また、本発明はデータ端末機、パーソナルコンピュータ
なとのハードウェアと面記処理手順を行うためのソフト
ウェアを一部に組み合わせることによって実施すること
ができ、その際にはプログラム規模が小さいものとなる
ので、今後クレジットなとの用途に急速に普及すること
が予想されるICカードのセキュリティに応用するのに
適している。 第2表 換字関数 S1〜S8の−例 第4表 換字テーブルの一例 13853 +012181132061583311
6203155361434896 ′L232556
416175 4’18723584 1190238
8125069211704、図面の簡単な説明 第1図および第2図は、本発明の第1の実施例の構成を
示す図、第3図は本発明の第2の実施例の構成の概略を
示す図、第4図は従来技術としてのDESにおけるデー
タ拡散装置の構成の概略を示す図である。 R・・・入力データブロック、RO−R3・・・Rの左
から1〜4バイト目のブロック、■(・・・鍵データ、
KO,にl・・・各1バイトの鍵ブロック、S・・・融
合換字間数演算部、XOR・・・排他的論理和回路、A
DD・・・加算器、ROL・・・2ビツトの左循環レジ
スタ。 特許出願人  日本電信電話株式会社 岩    上    昇    −ご侘!l] 、  ビ =: ニー’:i
1 and 2 are diagrams showing the configuration of a first embodiment of the present invention, FIG. 3 is a diagram schematically showing the configuration of a second embodiment of the present invention, and FIG. FIG. 2 is a diagram schematically showing the configuration of a data spreading device in the DBS of FIG. R... Input data block, RO to R3... 1st to 4th byte block from the left of R, K... Key data, 1 to 0°... Key block of 1 byte each, S...・Substitution number calculation unit, XOR ・Exclusive OR circuit, ADD・
...Adder, ROL...2-bit left circular register. Patent applicant Nippon Telegraph and Telephone Corporation Figure 1 Figure 2 Procedural amendment (voluntary) March 14, 1985 Director General of the Patent Office Michibe Uga 1, Indication of case Patent application No. 1988-252650 2,
Title of the invention Data dissemination device 3, relationship to the person making the amendment case Applicant (name changed on April 1, 1985 (all at once)) Address 1-1-6 Uchisaiwai-cho, Chiyoda-ku, Tokyo Name
(422) Representative of Nippon Telegraph and Telephone Corporation
Tsune Shindo 4, Address: 3-3-3-6 Nishi-Shinbashi, Minato-ku, Tokyo, Detailed explanation of the invention column 7 of the specification subject to the amendment, Contents of the amendment (1) Page 5 of the specification Each line of 7 and 8 rs1 (b) J
Correct it as rsl (B) J. (2) In the same book, page 5, row io, row r, "" is corrected to "row is 01° column is". (3) "Exclusive OR operation" on page 7, line 20 to page 8, line 1 of the same book is corrected to "addition and remainder operation." (4) The same book, page 11, line 17, rx nod yJ is corrected to ``x rolyJ.'' (5) The same book, page 12, line 3, ``Figure 2'' is corrected to ``Figure 3''. The above procedural amendments were submitted February 9, 1988 by the Commissioner of the Patent Office, Kuro 1) Mr. Akio 1, Indication of the case Patent Application No. 1988-252650 2,
Name of the invention Data dissemination device 3, relationship with the person making the amendment Applicant address 1-1-6 Uchisaiwai-cho, Chiyoda-ku, Tokyo Name (422) Nippon Telegraph and Telephone Corporation Representative Tsune Shindo 4, agent residence Address: 3-3-3-6 Nishi-Shinbashi, Minato-ku, Tokyo, Full text of the specification to be amended 7, Contents of the amendment: The full text of the specification is amended as shown in the attached sheet. Full text correction statement! , Title of the Invention Data Diffusion Device 2, Claims (+) An i tag means for dividing input data into a plurality of blocks of the same data length; Replacement processing is performed on the data of the block of "L-contact 2Lh" and the data of the L-color block (LIJL) Mouth...
-1 or 7 """' means, and a combination means for combining the data of each of the blocks and adding a diffusion data input section of the input data. Characteristic data dissemination device. (2) The data LL bar of the block is
2. The data spreading device according to claim 1, further comprising means for performing an exclusive OR operation of -4. (3) The data LL bar of the block is -
--11'l addition and remainder calculation. The data spreading device according to claim 1, further comprising calculation means for performing addition and remainder calculation. (4) The data spreading device according to claim (1), wherein the conversion stage 11 is a means for bit rotation for each block of data. (5) The data spreading device according to claim (1), wherein the conversion table is constituted by a substitution table that refers to each block as an address. 3. Detailed description of the invention (industrial application field) This publication relates to a data diffusion device that is the core of an encryption method, and in particular, a data diffusion device that enables effective data diffusion without using a transposed matrix. It is related to the device. (Prior art) One of the most popular encryption methods is DES (rData Encryption).
5 standard”, FIPS PUB 46. N8
S., Ian, 1977), and this DES
The data dissemination device in is constructed by combining substitution and transposition. The fourth country is a block diagram schematically showing its functions. As shown in the figure, this data spreading device includes a data input section 1 that inputs 32-bit input data R, and an expansion function operation section 2 that expands the 32-bit input data R to 48 bits using an expansion interval rJIE. and 48-bit registers 3 and 4 for the expanded data.
A key data input section 4 that inputs 8-bit key data (), an exclusive OR circuit 5 that performs an exclusive OR operation between the enlarged input data and the key data, and an exclusive OR circuit 5
The 48 bits outputted by the 48 bits are converted into 6-bit blocks each with the number of substitutions S1. S2. . . . A replacement leap number calculation unit 6 that converts to 4 bits according to S8 to obtain 32-bit data, and a transposition function calculation unit 7 that replaces the bit position of the 32-bit output of the replacement function calculation unit 6 according to the transposition function P. and a spread data output section 8. The process of data diffusion will be explained below. First, 32-bit input data R is expanded into 48-bit data E(R) by the expansion function calculation section 2 using the expansion interval E shown in Table 1. Output E(
R) is represented by 8 blocks of 6 bits each and is obtained by selecting bits in the input pro-rough according to the order shown in Table 1 from top left to bottom. That is, for example, the first three bits of output data E(R) are selected from the values of bit positions 32, 1, and 2 of input data R, and the last three bits are selected from input data R.
Bit positions 31, 32. A value of 1 is selected. Next, in the exclusive OR circuit 5, the expanded 4
The 8-bit data E(R) and the key data are exclusively ORed. Next, in the substitution interval calculation unit 6, the exclusive OR circuit 5
From the output of , the number of substitution intervals St shown in Table 2 is obtained. S2. S3. . . . Obtain 32-bit output according to S8. How to use the numbers of substitutions shown in Table 2 will be explained using the number of substitutions Sl as an example. When B is a 6-bit block, the output 51 (B) is determined as follows. If the binary number consisting of the first and last bits in the 6-bit block B is 1, then this is in the range 0 to 3. Then, if the central 4 bits of block B are the binary number J, this is 0 to 1.
It is in the range of 5. The output 5l(B) is determined by these binary numbers l1,1. That is, the output 5t(B) is a number in the range of 0 to 15 in the first row and column j of Sl in Table 2. For example, if the input is 011011, the row is 01 and the column is 1101. In other words, from Table 2, the data in the 1st row and 13th column of [51 is 5, so 0101 is obtained as the output. The transposed interval number P shown in Table 3 is applied in the interval calculation unit 7. That is, the transposed interval number calculation unit 7
In accordance with the transposition function shown in Table 3, the data from the intersubstitution number calculation unit 6 is set to 7 with the 168th bit from the left as the first.
Output data is generated in which the th bit is replaced with the 2nd bit, the 25th bit is replaced with the 32nd bit, etc. (Problems to be Solved by the Invention) In a data diffusion device, it is important to use as many types of substitution numbers as possible from the viewpoint of increasing data diffusion efficiency. In the conventional DBS, this is achieved by selecting the number of substitutions in four ways using the two bits at both ends of the six input bits. Although this is a clever method, there are two problems: l〉 A change of 1 bit in the input causes a change of 4 bits in the output.
It is only possible to achieve the effect of magnification to the extent of bits. 2) Many bit operations are required because the number of substitutions is a 4-bit to 4-bit conversion and a pit position transposition function is used. This is a major hindrance to speeding up. The above problem 1) is due to the fact that there is no mutual interference between blocks of every 6 bits until they are replaced and the transposed function P is reached. Further, the above problem 2) is due to the fact that this algorithm is not designed for a processing procedure that does not use an 8-pinto transposition function or a transposition interval ttp that is effective for processing in bytes. The purpose of the present invention is to solve the drawbacks of the above-mentioned prior art. That is, the purpose is to enhance the data diffusion effect without increasing the number of processing steps, and to achieve even higher speed by making most of the units of processing into byte-based operations. (Means for Solving the Problems) In order to solve the problem mentioned above, the data diffusion P device of the present invention includes a dividing means for dividing input data into a plurality of blocks having the same data length, and data of each block. a fusion means that directly or indirectly calculates and fuses the data of all the other blocks at least once to generate data of a new block; a substitution means for generating data;
The apparatus is characterized by comprising a combining means for combining finally obtained data of each block and outputting the resultant data as spread data of the input data. According to an embodiment, the fusion means includes any one of means for performing an exclusive OR operation between block data or parameter data, and calculation means for performing addition and interest calculation between block data or parameter data. or both. According to another embodiment, the transliteration means includes means for performing a bit rotation operation on each of the blocks. According to yet another embodiment, the substitution means is constituted by a substitution table that refers to each block as an address. (Operation) As described above, the present invention provides a fusion means (bypass) for drawing in and merging data from other blocks or parameters in the fusion processing process of each of a plurality of blocks to be processed, and when the processing is completed. Since the data of each block at a point in time is generated under the influence of the data of all input blocks, the number of transpositions P can be eliminated, and the data diffusion in conventional DES is It has higher diffusion efficiency than other devices, has a simpler configuration, and can achieve faster processing. Furthermore, by performing the substitution process in units of blocks (bytes), bit processing is eliminated as much as possible, resulting in a remarkable increase in processing speed. (Example) FIG. 1 is a diagram for explaining the present invention in detail,
This figure schematically shows the configuration of a data spreading device that obtains 32-bit spread output data from 32-bit input data. In FIG. 1, R is a 32-bit input data block, R
O~R3 are 8 bits (1 byte) divided from input data R
KO, Kl are parameters of 1 byte each,
This is a fusion substitution calculation unit that obtains two data blocks. The operation of the data diffusion device of this embodiment configured as shown in FIG. 1 will be explained. First, a 32-bit input data block R is divided into processing blocks RO, R1, R2, and R3 each of 1 byte. Each processing block is processed in order according to the processing procedure shown below, and finally a 32-bit output is produced. "=" in the following equation indicates that the right side is the operation t&new data on the left side. Processing Procedure> Step 1: Old=RIKOΦRO Step 2: R2=R2■Kl■R3 Here, ■ indicates an exclusive OR operation. Then, Step 3: R1=:5(R1,82,1) Step 4: R2=S(R2,R1,0) Step 5
: RO=S(RO, R1, O) Step 8 :
R3=S (R3, R2, l) where S (a, b, δ
) (however, δ=0 or 1) performs the function of sequentially performing the fusion means and the substitution means. S will be explained in detail later. After this procedure, RO, R1, R2, and R3 are combined to form an output block, but as is clear from the structure of Figure 1, each output block is affected by all the large blocks. is being generated. That is, it is possible to obtain the effect that the output changes by an average of 11 bits for a change of 1 bit in the input data. This improvement effect is remarkable compared to the prior art, which could only achieve diffusion of about 4 bits. Moreover, there is no need for a new bit position transposition function P in order to spread this diffusion effect between processing blocks. In this embodiment, by performing fusion processing and transposition processing while interfering with each other in each block, in other words, by performing direct or indirect operation with the data of all other blocks at least once, the transposed function It achieves a data diffusion effect that is significantly superior to conventional technology without using P. As shown in FIG. 1, this mutual interference between the processing blocks is realized by two bypasses in the form of an exclusive OR circuit XOR and an input to the fused transliteration arithmetic unit S. A configuration example of the fused substitution function calculation unit S will be described below. When data a and b are input, s(a + b
+ δ) is given by the following formula. S (a, b, δ) = ((a + b + δ) nod 25G
) rol 2 Here, a and b are the inputs of S, δ is a constant of 0 or 1, the input of S, x mod y is the operation to find the remainder when X is divided by y, and x rot
y indicates an operation for bit-rotating X to the left by the value indicated by y. Hereinafter, S(a, b, δ) will be simply expressed as 5(x
). However, X is (a+b+δ) mod 256. Generally, x 1lod 256 can be easily realized by assigning numerical values to the 8-hit register of a microprocessor. Further, the fused character substitution calculation section is implemented by combining an adder ADD as a fusion means and a circular shift register as a substitution means, as shown in FIG. In addition, the substitution process in the fused substitution number calculation section can be configured using a substitution table. In other words, when programming in a high-level language, 5
(x) (x=0~511) [However, (a + b + δ) m
It is effective to prepare the value of [od 256] in advance as a substitution table. If a method of preparing a substitution table is used, a more complicated substitution function other than the hit rotation method described above can be used. For example, the substitution table shown in Table 4 is from upper left 5 (0) to upper right S (+5), and second row left S (+
6) to right 5 (31) and lower right 5 (255). This substitution table calculates the Hamming distance H(10, 11) of the former and the Hamming distance of the latter for two different data 10 and 11 of O to 255 and the reference values 00 and Ol of the substitution table corresponding to the respective inputs. 111H (00, 01), the relationship shown in Table 5 occurs. A substitution table that can be generated by applying the same 8-bit transposed matrix T to each element of the call character table and adding a constant A using an exclusive OR circuit exhibits similar properties. Generally, this type of substitution table uses a transpose matrix T and a constant A, and for input X, when the number of bits of bit inversion value) as the respective values. In either case, a substitution table that takes the sum of 1-byte data from 0 to 255 as input and outputs 1-byte data is a table with two consecutive tables of the same type that substitutes any value from 0 to 255. 0 to 51 by preparing
+ input can be replaced with 1 byte data from 0 to 255. That is, in S (a+b), b is a
The start address of the substitution table for substituting b
I think that it plays a role in shifting the position. mod 25
6, one substitution table is sufficient. The embodiment of the present invention described above is based on the prior art DES.
Compared to the data diffusion device of 2005, this can be achieved with less than one-tenth of the dynamic step, the amount of memory used is small, and the data diffusion effect can be more than twice as large. In addition, in the above embodiment, the unit of processing such as substitution is 8 bits (1 byte), which is because currently popular data terminals, personal computers, etc. use 8-bit and 16-bit CPUs. Because it is a thing. In the future, as technology advances, these mainstream
If there is a transition from 6 hits to 32 hits, the technique of the present invention can easily handle this. That is, the unit of processing such as substitution is set to 16 bits (2 bytes). In this case, the structure of the embodiment shown in FIG. 1 is not changed, but the number S of fused substitutions is changed from 256 to 65536. The number S of fused substitutions is given by the following formula. S (a) = (a 1lod 65536) r
ol 2 In principle, the processing unit can be set arbitrarily. In addition to the two-input substitution process shown in this embodiment, three
It is also possible to combine these with input or exclusive OR bypass. In the embodiment described above, an example was shown in which spreading processing is performed for a 32-bit input, but as a second embodiment, one for a 16-bit input is shown in FIG. First, a 16-bit input block R is converted into 1-byte processing blocks RO and R.
Divided into 1. Each processing block is processed in order according to the processing procedure shown below, and outputs 16 bits to ntl. KO and Kl are parameter data. <Processing procedure> R1=S (R1, RO■KO, 1) RO=S (l, 0 for RO, R1■) The operation symbols and the function S are the same as in the embodiment shown in FIG. (Effects of the Invention) As described in detail above, the present invention provides a means (bypass) for drawing in and fusing data from other blocks in each fusion process of a plurality of blocks to be processed, and the process is completed. Since each block at the time of input is generated under the influence of all input blocks, it is possible to eliminate the need for the transposition function P, which is compared to the data spreading device in conventional DBS. This simplifies the configuration and speeds up processing. In addition, by performing substitution processing in blocks (bytes),
Since bit processing is eliminated as much as possible, processing speed is significantly increased. Furthermore, the present invention can be implemented by partially combining hardware such as a data terminal or a personal computer with software for performing the notation processing procedure, and in that case, the scale of the program will be small. Therefore, it is suitable for application to the security of IC cards, which are expected to rapidly become popular in credit card applications in the future. Table 2 Examples of substitution functions S1 to S8 Table 4 Example of substitution table 13853 +012181132061583311
6203155361434896 'L232556
416175 4'18723584 1190238
8125069211704, Brief Description of the Drawings FIGS. 1 and 2 are diagrams showing the configuration of the first embodiment of the present invention, and FIG. 3 is a diagram schematically showing the configuration of the second embodiment of the present invention. FIG. 4 is a diagram schematically showing the configuration of a data diffusion device in DES as a conventional technique. R...Input data block, RO-R3...1st to 4th byte block from the left of R, ■(...key data,
KO, niL...Key block of 1 byte each, S...Fusion substitution inter-digit arithmetic unit, XOR...Exclusive OR circuit, A
DD: Adder, ROL: 2-bit left circular register. Patent applicant: Noboru Iwakami, Nippon Telegraph and Telephone Corporation - Thank you! l], Bi =: Ni':i

Claims (5)

【特許請求の範囲】[Claims] (1)入力データを複数の同一データ長のブロックに分
ける手段と、 その分けられた各ブロックのデータに対し、少なくとも
一つの他のブロックのデータを論理演算して融合させる
手段と、 前記融合により新たに生成された各ブロックのデータに
対して換字処理を施す手段と、 前記換字処理を施された前記複数のブロックのデータを
結合して前記入力データの拡散データを出力する手段と を具備したことを特徴とするデータ拡散装置。
(1) means for dividing input data into a plurality of blocks having the same data length; means for performing a logical operation on the data of each divided block and merging the data of at least one other block; A means for performing a substitution process on the data of each newly generated block, and a means for combining the data of the plurality of blocks subjected to the substitution process and outputting diffused data of the input data. A data dissemination device characterized by:
(2)前記融合させる手段が、ブロックのデータ間の排
他的論理和演算を行う手段を含むことを特徴とする特許
請求の範囲第(1)項記載のデータ拡散装置。
(2) The data spreading device according to claim (1), wherein the means for fusing includes means for performing an exclusive OR operation between data of blocks.
(3)前記融合させる手段が、ブロックのデータ間の加
算および剰余演算を行う演算手段を含むことを特徴とす
る特許請求の範囲第(1)項記載のデータ拡散装置。
(3) The data spreading device according to claim (1), wherein the merging means includes arithmetic means for performing addition and remainder calculation between data of blocks.
(4)前記換字処理を施す手段が、前記融合により新た
に生成されたブロックのデータに対してビット回転演算
を施こす手段によって構成されたことを特徴とする特許
請求の範囲第(1)項記載のデータ拡散装置。
(4) Claim (1) characterized in that the means for performing the character substitution process is constituted by means for performing a bit rotation operation on the data of the block newly generated by the fusion. The data dissemination device described.
(5)前記換字処理を施す手段が、前記融合により新た
に生成されたブロックをアドレスにして参照する換字テ
ーブルによって構成されたことを特徴とする特許請求の
範囲第(1)項記載のデータ拡散装置。
(5) Data diffusion according to claim (1), wherein the means for performing the substitution process is constituted by a substitution table that refers to a block newly generated by the fusion as an address. Device.
JP60252650A 1985-11-08 1985-11-13 Data diffuser Granted JPS62113191A (en)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP60252650A JPS62113191A (en) 1985-11-13 1985-11-13 Data diffuser
US06/926,043 US4850019A (en) 1985-11-08 1986-11-03 Data randomization equipment
EP86115279A EP0221538B1 (en) 1985-11-08 1986-11-04 Data randomization equipment and method
EP91112054A EP0454187B1 (en) 1985-11-08 1986-11-04 Data randomization equipment
DE3650365T DE3650365T2 (en) 1985-11-08 1986-11-04 Data obfuscation facility.
DE3689510T DE3689510T2 (en) 1985-11-08 1986-11-04 Data obfuscation device and method.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP60252650A JPS62113191A (en) 1985-11-13 1985-11-13 Data diffuser

Publications (2)

Publication Number Publication Date
JPS62113191A true JPS62113191A (en) 1987-05-25
JPH0333269B2 JPH0333269B2 (en) 1991-05-16

Family

ID=17240304

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60252650A Granted JPS62113191A (en) 1985-11-08 1985-11-13 Data diffuser

Country Status (1)

Country Link
JP (1) JPS62113191A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8135130B2 (en) 2006-06-23 2012-03-13 Panasonic Corporation Data encryption apparatus, data converting method, data converting program, recording medium and integrated circuit

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS52130504A (en) * 1976-04-26 1977-11-01 Ibm Crypto processor
JPS5936463A (en) * 1982-08-25 1984-02-28 Hitachi Ltd Receiver of single frequency signal

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS52130504A (en) * 1976-04-26 1977-11-01 Ibm Crypto processor
JPS5936463A (en) * 1982-08-25 1984-02-28 Hitachi Ltd Receiver of single frequency signal

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8135130B2 (en) 2006-06-23 2012-03-13 Panasonic Corporation Data encryption apparatus, data converting method, data converting program, recording medium and integrated circuit

Also Published As

Publication number Publication date
JPH0333269B2 (en) 1991-05-16

Similar Documents

Publication Publication Date Title
US4751733A (en) Substitution permutation enciphering device
CN1734526B (en) Data conversion device and method
US8855298B2 (en) Table lookup operation on masked data
EP0342832A2 (en) Dynamic feedback arrangement scrambling technique keystream generator
JPS60146368A (en) Binary image stretching method
JPS598039A (en) Logic unit for placing variable range data field in variable in variable range data bus
JPS62113191A (en) Data diffuser
JP2622223B2 (en) Data spreader
CN111324908A (en) Batch data desensitization method
TWI310516B (en) A method and system for saturating a left shift result using a standard shifter
JPH02287874A (en) Product sum arithmetic unit
JPH0895954A (en) Walsh code generating circuit
JP3275881B2 (en) Code generation method and apparatus
JPH08101639A (en) Data diffusing method
UA55496C2 (en) Method for cryptographic conversion of l-bit input digital data blocks into l-bit output data blocks
JP2834450B2 (en) Encryption device
JPS593912B2 (en) Data conversion method
JP2002091295A (en) Arithmetic unit combining feistel structure and spn structure and arithmetic method
KR19990048318A (en) Fast block cipher algorithm
JP2003143120A (en) Data randomizing circuit and method
CN112543096A (en) Data processing method, device, equipment and medium based on SIMD (Single instruction multiple data) instruction
CN115622745A (en) Encryption method, device, terminal equipment and computer readable storage medium
JP2004288104A (en) Memory device
JPH0123787B2 (en)
JP2001236017A (en) Substitution processing device and recording medium with program thereof recorded thereon

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term