JPH0333269B2 - - Google Patents

Info

Publication number
JPH0333269B2
JPH0333269B2 JP60252650A JP25265085A JPH0333269B2 JP H0333269 B2 JPH0333269 B2 JP H0333269B2 JP 60252650 A JP60252650 A JP 60252650A JP 25265085 A JP25265085 A JP 25265085A JP H0333269 B2 JPH0333269 B2 JP H0333269B2
Authority
JP
Japan
Prior art keywords
data
substitution
block
bit
input
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP60252650A
Other languages
Japanese (ja)
Other versions
JPS62113191A (en
Inventor
Akihiro Shimizu
Shoji Myaguchi
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

Description

【発明の詳細な説明】[Detailed description of the invention]

(産業上の利用分野) 本発明は、暗号化方式の中核となるデータ拡散
装置に関し、とくに転置行列を用いず効果的にデ
ータ拡散の実現を可能にするデータ拡散装置に関
するものである。 (従来の技術) 従来、最も普及している暗号方式として代表的
なものに、DES(「Data Encryption Standard」、
FIPS PUB46、NBS Jan。1977参照)があり、
このDESにおけるデータ拡散装置は換字と転置
を組み合わせて構成されている。第4図はその機
能を概略的に示すブロツク図である。同図に示す
ように、このデータ拡散装置は32ビツトの入力デ
ータRを入力するデータ入力部1と、その32ビツ
トの入力データRを拡大関数Eによつて拡大し48
ビツトにする拡大関数演算部2と、その拡大した
データのための48ビツトのレジスタ3と、48ビツ
トの鍵データKを入力する鍵データ入力部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においては、拡大
された48ビツトのデータE(R)と鍵データKと
の排他的論理和がとられる。 次に、換字関数演算部6において、排他的論理
和回路5の出力から、第2表に示す換字関数S
1,S2,…,S8に従つて。32ビツトの出力を
得る。第2表に示す換字関数の使い方を換字関数
S1を例にとり説明する。Bを6ビツトのブロツ
クとするとき、出力S1(B)を以下のように決定す
る。6ビツトのブロツクBにおける最初と最後の
ビツトからなる2進数をiとすると、これは0〜
3の範囲にある。そして、ブロツクBの中央の4
ビツトを2進数jとすると、これは0〜15の範囲
にある。これらの2進数i、jにより出力S1(B)
を決定する。すなわち、出力S1(B)は第2表のS
1中のi行、j列にある0〜15の範囲の数であ
る。例えば、入力を011011とすると、行な01、列
は1101、すなわち、第2表より換字関数S1の1
行13列のデータは5であるから0101が出力として
得られる。 最後に、転置関数演算部7において第3表に示
すような転置関数Pが適用される。すなわち、転
置関数演算部7は第3表の転置関数に従つて、換
字関数演算部6からのデータを、その左から16番
目のビツトを1番目に、7番目にビツトを2番目
に、…、25番目のビツトを32番目に、それぞれ置
換した出力データを生成する。 (発明が解決しようとする問題点) テータ拡散装置においては、できるだけ多くの
種類の換字関数を用いることが、データの拡散効
率を高めるという観点から重要である。従来の
DESにおいては、これを、入力6ビツトの両端
の2ビツトによる4通りの換字関数選択により実
現している。これは巧みな方法であるが、次の二
つの問題点がある。 (1) 入力における1ビツトの変化が、出力におい
て4ビツト程度に拡大する効果しか実現できな
い。 (2) 換字関数が4ビツト−4ビツト変換であり、
ビツト位置の転置関数を用いている等の理由か
ら、ビツト演算を数多く必要とする。これが、
高速化の大きな妨げとなる。 上記問題点の(1)は6ビツト毎のブロツクが、そ
れぞれ換字処理されて転置関数Pに至るまで、相
互干渉が一度もないことを起因する。また、上記
問題点(2)はこのアルゴリズムが、バイト単位で処
理するのに有効な8ビツト換字関数、転置関数P
を用いない処理手順を指向した設計を行つていな
いことに起因する。 本発明の目的は、上述の従来技術の問題点を解
決することになる。すなわち、処理手順を増加す
ることなくデータの拡散効果を高め、処理の単位
の殆どをバイト単位の演算とすることにより一層
の高速性を図ることにある。 (問題点を解決するための手段) 本発明のデータ拡散装置は、上記問題点を解決
するために、入力データを複数の同一データ長の
ブロツクに分かる分割手段と、その各ブロツクの
データに対し、少なくとも1回すべての他のブロ
ツクのデータと直接または間接的に演算して融合
し、新しいブロツクのデータを生成する融合手段
と、各ブロツクのデータに対して換字処理を施し
新しいブロツクデータを生成する換字手段と、前
記各ブロツクの最終的に得られたデータを結合し
て前記入力データの拡散データとして出力する結
合手段とを具備し、データは前記分割手段に入力
し、前記分割手段からの出力を複数の前記融合手
段と複数の前記換字手段を経て(複数の融合手段
と複数の換字手段の順序は任意)前記結合手段か
ら出力する、この場合出力データの一部が前記分
割手段に再入力するためのフイードバツク手段を
有せず、また前記分割手段と複数の前記融合手段
と複数の前記換字手段と前記結合手段にわたる部
分でクロツク反復動作は行わない、ことを特徴と
するものである。 前記融合手段は、実施の態様によれば、ブロツ
クのデータまたはパラメータのデータ間の排他的
論理和演算を行う手段およびブロツクのデータま
たはパラメータののデータ間の加算および剰余演
算を行う演算手段のいずれか一方または両方を含
む。 また、前記換字手段は、他の実施の態様によれ
ば、前記各ブロツクに対してビツト回転演算を施
こす手段含む。 さらに他の実施の態様によれば、前記換字手段
は、前記各ブロツクをアドレスにして参照する換
字テーブルによつて構成される。 (作用) 本発明は、上記のように、処理する複数ブロツ
クのそれぞれの融合処理過程において、他のブロ
ツクまたはパラメータからのデータを引き入れ融
合するための融合手段(バイパス)を設け、処理
が終了した時点での各ブロツクのデータが、すべ
ての入力ブロツクのデータの影響を受けて生成さ
れているように構成されているので、転置関数P
を不要にすることができ、従来のDESにおける
データ拡散装置に比べて拡散効率が高く、構成が
簡単になるとともに、処理の高速化を実現でき
る。また、換字処理をブロツク(バイト)単位と
することによつて、ビツト処理を極力なくしてい
るので、さらに処理の高速化が顕著なものとなつ
ている。 (実施例) 第1図は、本発明の実施例を説明するための図
であつて、32ビツトの入力データから32ビツトの
拡散出力データを得るデータ拡散装置の構成の概
略を示している。第1図においてRは32ビツトの
入力データブロツク、R0〜R3は入力データR
を分けた8ビツト(1バイト)からなる4つのデ
ータブロツク、K0,K1は各1バイトのパラメ
ータ、XORは排他的論理和回路、Sは2つの入
力されたデータブロツクを融合して換字変換し、
1つのデータブロツクを得る融合換字関数演算部
である。 第1図のように構成された本実施例のデータ拡
散装置の動作を説明する。 まず、32ビツトの入力データブロツクRは、各
1バイトの処理ブロツクR0,R1,R2,R3
にわけられる。各処理ブロツクは以下に示す処理
手順に従つて順に処理され、最後に32ビツトの出
力とされる。以下の式中の「=」は、右辺を演算
後新しく左辺のデータとすることを示す。 <処理手順> ステツプ1:R1=R1K0R0 ステツプ2:R2=R2K1R3 ここで、は排他的論理和演算を示す。 続いて、 ステツプ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,R1,R2,R3が
結合されて出力ブロツクとなるが、第1図の構造
から明らかなように、各出力ブロツクは、すべて
の入力ブロツクの影響のもとに生成されている。
すなわち、入力データの1ビツトの変化に対して
出力が平均11ビツトも変化する効果を得ることが
できる。従来技術が4ビツト程度の拡散しか得ら
れなかつたことに比べるとこの改善効果は著し
い。しかも、処理ブロツク間にこの拡散効果を広
げるために、改めてビツト位置の転置関数Pを必
要としない。 本実施例においては、各ブロツクを相互干渉さ
せながら融合処理と換字処理を行うことにより、
つまり、少なくとも1回すべての他のブロツクの
データと直接または間接的に演算することによ
り、転置関数Pを用いることなく従来技術を大幅
に上回るデータ拡散効果を実現している。この処
理ブロツク間の相互干渉は、第1図に示すよう
に、排他的論理和回路XORおよび、融合換字関
数演算部Sへの入力という形の二つのバイパスで
実現している。 融合換字関数演算部Sの構成例について、以下
に説明する。データaとbが入力されるとき、S
(a、b、δ)は次式で与えられる。 S(a、b、δ)={(a+b+δ)mod256}rol2 ここで、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ビツトレジス
タへの数値代入によつて、x mod256は容易に
実現できる。 また、融合換字関数演算部は第2図に示すよう
に融合手段としての加算器ADDと換字手段とし
ての循環シフトレジスタの組み合わせにより実施
する。 また、融合換字関数演算部のうち、換字処理に
ついては、換字テーブル用いて構成することがで
きる。すなわち、高級言語によりプログラミング
する場合などには、S(x)(x=0〜511)[但
し、a+b+δ)mod256]の値をあらかじめ換
字テーブルとして用意しておくことが有効であ
る。 換字テーブルを用意する方式をとるのであれ
ば、先に示したビツト回転方式以外のより複数な
換字関数を利用することができる。例えば、第4
表に示す換字テーブルは、左上S(0)から右上
S(15)、2段目の左S(16)から右S(31)以下右
下S(255)までの値を示したものである。この換
字テーブルは、異なる二つの0〜255のデータ1
0と11、および、それぞれの入力に対応した換
字テーブルの参照値00と01について、前者のハミ
ング距離H10,11と後者のハミング距離H0
0,01の間に第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面でよい。 以上に述べた本発明の実施例は、従来技術であ
るDESのデータ拡散装置と比較して、10分の1
以下のダイナミツクステツプで実現することがで
き、使用するメモリ量も小さく、2倍以上のデー
タ拡散効果を得ることができる。 また、上記実施例においては、換字その他の処
理の単位を8ビツト(1バイト)としたが、これ
は現在普及しているデータ端末、パーソナルコン
ピユータ等が8ビツト、16ビツトのCPUを用い
ているものであるためである。今後、技術が進歩
するにつれて、これらの主流が16ビツトから32ビ
ツトへと移行して来た場合には、本発明の技術は
容易にこれに対処できる。すなわち、換字その他
の処理の単位を16ビツト(2バイト)にする。こ
の場合、第1図に示した実施例の構造に変更は生
じないが、融合換字関数Sにおける256が65536に
かわる。融合換字関数Sは次式のようになる。 S(a)=(a mod65536)rol2 原理的には、処理単位を任意に設定できる。 また、本実施例に示した2入力の換字処理の他
にも、3人力としたものあるいはこれらと排他的
論理和によるバイパスを組み合わせたものとする
こともできる。 前記実施例では、32ビツトの入力に対する拡散
処理を行う例としたが、第2の実施例として、16
ビツトの入力に対するものを第3図に示す。ま
ず、16ビツトの入力ブロツクRを、各1バイトの
処理ブロツクR0,R1にわける。各処理ブロツ
クは、以下に示す処理手順に従つて順に処理さ
れ、最後に16ビツトを出力する。K0,K1はパ
ラメータのデータである。 <処理手順> R1=S(R1、R0K0、1) R0=S(R0、R1K1、0) 演算記号、関数Sなどは、第1図の実施例と同
様である。 (発明の効果) 本発明は、以上に詳述したように、処理する複
数ブロツクのそれぞれの融合処理において、他の
ブロツクからのデータを引き入れ融合するための
手段(バイパス)を設け、処理が終了した時点で
の各ブロツクが、すべての入力ブロツクの影響を
受けて生成されているように構成されているの
で、転置関数Pを不要にすることができ、従来の
DESにおけるデータ拡散装置に比べて構成が簡
単になるとともに、処理の高速化を実現できる。
また、換字処理をブロツク(バイト)単位とする
ことによつて、ビツト処理を極力なくしているの
で、さらに処理の高速化が顕著なものとなつてい
る。 また、本発明はデータ端未機、パーソナルコン
ピユータなどのハードウエアと前記処理手順を行
うためのソフトウエアを一部に組み合わせること
によつて実施することができ、その際にはプログ
ラム規模が小さいものとなるので、今後クレジツ
トなどの用途に急速に普及することが予想される
ICカードのセキユリテイに応用するのに適して
いる。
(Industrial Application Field) The present invention relates to a data spreading device that is the core of an encryption system, and particularly to a data spreading device that enables effective data spreading without using a transposed matrix. (Conventional technology) One of the most popular encryption methods is DES (Data Encryption Standard).
FIPS PUB46, NBS Jan. (see 1977),
The data spreading device in this DES 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 section 1 that inputs 32-bit input data R, and expands the 32-bit input data R by an expansion function E.
a 48-bit register 3 for the expanded data; a key data input section 4 for inputting 48-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 by substitution functions S1, S2, . . . ...S8
A substitution function operation section 6 that converts the data into 4 bits according to the above procedure and obtains 32 bit data, and a substitution function operation section 6 of the substitution function operation section 6.
It consists of a transposition function calculation section 7 which transposes the bit positions of the 32-bit output according to a transposition function P, and a spread data output section 8. The process of data diffusion will be explained below. First, the 32-bit input data R is expanded into 48-bit data E(R) by the expansion function E shown in Table 1 in the expansion function calculation section 2. The output E(R) of the expansion function calculation unit 2 is represented by eight blocks of 6 bits each, and the bits in the input blocks are selected according to the order from the top left to the bottom right shown in Table 1. It can be obtained by That is, for example, the first three bits of the output data E(R) are selected from the values of bit positions 32, 1, and 2 of the input data R, respectively, and the last three bits are selected from the values of bit positions 31, 32, and 32 of the input data R, respectively. A value of 1 is selected. Subsequently, in the exclusive OR circuit 5, the expanded 48-bit data E(R) and the key data K are exclusive ORed. Next, in the substitution function calculation section 6, from the output of the exclusive OR circuit 5, the substitution function S shown in Table 2 is calculated.
1, S2, ..., S8. Get 32 bit output. How to use the substitution functions shown in Table 2 will be explained by taking substitution function S1 as an example. When B is a 6-bit block, output S1(B) is determined as follows. Let i be the binary number consisting of the first and last bits in the 6-bit block B.
It is in the range of 3. Then, 4 in the center of block B
If bit is a binary number j, it is in the range 0 to 15. Output S1(B) by these binary numbers i and j
Determine. In other words, the output S1(B) is S1 in Table 2.
It is a number in the range of 0 to 15 located in row i and column j of 1. For example, if the input is 011011, the row is 01 and the column is 1101, that is, from Table 2, 1 of the substitution function S1
Since the data in row 13 is 5, 0101 is obtained as the output. Finally, the transposition function P shown in Table 3 is applied in the transposition function calculation unit 7. That is, according to the transposition function in Table 3, the transposition function calculation section 7 processes the data from the substitution function calculation section 6, placing the 16th bit from the left as the first bit, the 7th bit as the second bit, etc. , generates output data in which the 25th bit is replaced with the 32nd bit. (Problems to be Solved by the Invention) In the theta diffusion device, it is important to use as many types of substitution functions as possible from the viewpoint of increasing data diffusion efficiency. Traditional
In DES, this is achieved by selecting four substitution functions using the two bits at both ends of the six input bits. Although this is a clever method, there are two problems: (1) 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) The substitution function is a 4-bit to 4-bit conversion,
Because it uses a transpose function for bit positions, it requires a large number of bit operations. This is,
This is a major hindrance to speeding up. The above problem (1) is caused by the fact that there is no mutual interference between blocks of every 6 bits until they are replaced and reach the transpose function P. In addition, the above problem (2) is that this algorithm uses an 8-bit substitution function and a transposition function P that are effective for processing in bytes.
This is due to the fact that the design is not oriented toward processing procedures that do not use . The object of the invention is to solve the problems of the prior art mentioned 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 a means for dividing input data into a plurality of blocks having the same data length, and a means for dividing input data into a plurality of blocks having the same data length. , a fusion means that directly or indirectly calculates and fuses the data of all other blocks at least once to generate data of a new block, and generates new block data by performing substitution processing on the data of each block. and a combination means for combining the finally obtained data of each block and outputting it as diffused data of the input data, the data is input to the division means, and the data is input from the division means. The output is outputted from the combining means through a plurality of the fusion means and a plurality of the substitution means (the order of the plurality of fusion means and the plurality of substitution means is arbitrary), in which case a part of the output data is returned to the division means. The present invention is characterized in that it does not have a feedback means for inputting data, and that no clock repetition operation is performed in a portion extending between the dividing means, the plurality of merging means, the plurality of substitution means, and the combining means. According to an embodiment, the fusion means includes any one of a means for performing an exclusive OR operation between data of a block or data of a parameter, and a calculation means for performing an addition and a remainder operation between data of a block or data of a parameter. 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 the plurality of blocks to be processed, and when the processing is completed. Since the structure is such that the data of each block at a point in time is generated under the influence of the data of all input blocks, the transposition function P
This makes it possible to eliminate the need for data diffusion devices in conventional DES, resulting in higher diffusion efficiency, simpler configuration, and faster processing speeds. Furthermore, by performing substitution processing in units of blocks (bytes), bit processing is eliminated as much as possible, resulting in a remarkable increase in processing speed. (Embodiment) FIG. 1 is a diagram for explaining an embodiment of the present invention, and shows an outline of the configuration of a data spreading device that obtains 32-bit spread output data from 32-bit input data. In Figure 1, R is a 32-bit input data block, and R0 to R3 are input data R.
K0 and K1 are 1-byte parameters each, XOR is an exclusive OR circuit, and S fuses the two input data blocks and performs substitution conversion. ,
This is a fusion substitution function calculation unit that obtains one data block. 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 1-byte processing blocks R0, R1, R2, and R3.
Divided into two. Each processing block is sequentially processed 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. <Processing procedure> Step 1: R1=R1K0R0 Step 2: R2=R2K1R3 Here, indicates an exclusive OR operation. Then, 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) Here, S(a, b, δ) (where δ=0 or 1) represents the function of performing the fusion means and the substitution means successively. S will be explained in detail later. After this processing procedure, R0, 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 generated under the influence of all input blocks. has been done.
That is, it is possible to obtain the effect that the output changes by an average of 11 bits for a 1-bit change in input data. This improvement effect is remarkable compared to the prior art, which could only achieve diffusion of about 4 bits. Furthermore, in order to spread this diffusion effect between processing blocks, there is no need for a new bit position transposition function P. In this embodiment, by performing fusion processing and substitution processing while making each block interfere with each other,
In other words, by performing direct or indirect calculations on the data of all other blocks at least once, a data diffusion effect that is significantly superior to that of the prior art is achieved without using the transposition function 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 fusion transposition function operation section 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 equation. S (a, b, δ) = {(a + b + δ) mod256} rol2 where a and b are inputs of S, δ is a constant of 0 or 1, input of S, x mod y is x divided by y. This is an operation to find the remainder resulting from x rol y
indicates the operation of bit-rotating x to the left by the value indicated by y. Hereinafter, S(a, b, δ) will be simply expressed as S(x). However, x is (a+b+δ) mod256 Generally, x mod256 can be easily realized by assigning a numerical value to an 8-bit register of a microprocessor. Further, the fused substitution function calculation section is implemented by a combination of an adder ADD as a fusion means and a circular shift register as a substitution means, as shown in FIG. Further, in the fused substitution function calculation section, substitution processing can be configured using a substitution table. That is, when programming in a high-level language, it is effective to prepare the value of S(x) (x=0 to 511) [however, a+b+δ) mod256] in advance as a substitution table. 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 fourth
The substitution table shown in the table shows values from upper left S (0) to upper right S (15), from left S (16) in the second row to right S (31) and lower right S (255). . This substitution table contains two different data 1 from 0 to 255.
For 0 and 11 and the reference values 00 and 01 of the substitution table corresponding to the respective inputs, the former Hamming distance H10, 11 and the latter Hamming distance H0
The relationship shown in Table 5 occurs between 0 and 01. 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. Generally, this kind of substitution table uses a transposed matrix T and a constant A to calculate TX+A for input X when the number of bits in X is even, and T~ when it is odd.
It is obtained by setting X+A (~X is the bit inversion value of X) as each value. In either case, a substitution table that inputs the sum of 1-byte data from 0 to 255 and outputs 1-byte data has two tables of the same type that substitutes any value from 0 to 255. By successively preparing the characters, input from 0 to 511 can be converted to 1-byte data from 0 to 255. That is, S
In (a+b), b is considered to play the role of shifting the start address of the substitution table for substituting a by b. When using mod256, only one substitution table is required. The embodiment of the present invention described above is one-tenth as large as the conventional DES data diffusion device.
This can be realized using the following dynamic steps, requires a small amount of memory, and can obtain a data diffusion effect that is more than twice as large. 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, if the mainstream shifts from 16 bits to 32 bits, the technology of the present invention can easily handle this. In other words, the unit of substitution and other processing is set to 16 bits (2 bytes). In this case, the structure of the embodiment shown in FIG. 1 is not changed, but 256 in the fused substitution function S is replaced with 65536. The fused substitution function S is as follows. S(a)=(a mod65536) rol2 In principle, the processing unit can be set arbitrarily. In addition to the two-input substitution process shown in this embodiment, it is also possible to use three-manpower processing or to combine these with bypass using exclusive OR. In the above embodiment, the spreading process is performed on a 32-bit input, but as a second embodiment, a 16-bit
FIG. 3 shows the bit input. First, a 16-bit input block R is divided into 1-byte processing blocks R0 and R1. Each processing block is processed in order according to the processing procedure shown below, and finally outputs 16 bits. K0 and K1 are parameter data. <Processing procedure> R1=S (R1, R0K0, 1) R0=S (R0, R1K1, 0) Operation symbols, function S, etc. are the same as in the embodiment shown in FIG. (Effects of the Invention) As described in detail above, the present invention provides means (bypass) for drawing in and merging data from other blocks in each fusion process of multiple blocks to be processed, so that the process is completed. Since each block at the moment of input is generated under the influence of all input blocks, the transpose function P can be made unnecessary, and the conventional
Compared to the data diffusion device in DES, 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. 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 processing procedure, and in that case, the program size is small. Therefore, it is expected that it will rapidly become popular for uses such as credit cards in the future.
Suitable for application to IC card security.

【表】【table】

【表】【table】

【表】【table】

【表】【table】

【表】【table】

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

第1図および第2図は、本発明の第1の実施例
の構成を示す図、第3図は本発明の第2の実施例
の構成の概略を示す図、第4図は従来技術として
のDESにおけるデータ拡散装置の構成の概略を
示す図である。 R……入力データブロツク、R0〜R3……R
の左から1〜4バイト目のブロツク、K……鍵デ
ータ、K0,K1……各1バイトの鍵ブロツク、
S……融合換字関数演算部、XOR……排他的論
理和回路、ADD……加算器、ROL……2ビツト
の左循環レジスタ。
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 DES of FIG. R...Input data block, R0 to R3...R
1st to 4th byte blocks from the left, K...Key data, K0, K1...Key blocks of 1 byte each,
S...Fusion substitution function operation unit, XOR...Exclusive OR circuit, ADD...Adder, ROL...2-bit left circular register.

Claims (1)

【特許請求の範囲】 1 入力データを複数の同一データ長のブロツク
に分ける分割手段と、 その各ブロツクのデータに対し、少なくとも1
回すべての他のブロツクのデータと直接または間
接的に演算して融合し、新しいブロツクのデータ
を生成する融合手段と、 各ブロツクのデータに対して換字処理を施し新
しいブロツクデータを生成する換字手段と、 前記各ブロツクの最終的に得られたデータを結
合して前記入力データの拡散データとして出力す
る結合手段と を具備し、データは前記分割手段に入力し、前記
分割手段からの出力を複数の前記融合手段と複数
の前記換字手段を経て前記結合手段から出力す
る、この場合出力データの一部が前記分割手段に
再入力するためのフイードバツク手段を有せず、
また前記分割手段と複数の前記融合手段と複数の
前記換字手段と前記結合手段にわたる部分でクロ
ツク反復動作は行わない、ことを特徴とするデー
タ拡散装置。 2 前記融合手段が、ブロツクのデータまたはパ
ラメータのデータ間の排他的論理和演算を行う手
段を含むことを特徴とする特許請求の範囲第1項
記載のデータ拡散装置。 3 前記融合手段が、ブロツクのデータまたはパ
ラメータのデータ間の加算および剰余演算を行う
演算手段を含むことを特徴とする特許請求の範囲
第1項記載のデータ拡散装置。 4 前記換字手段が、各ブロツクのデータに対し
てビツト回転を施す手段を含むことを特徴とする
特許請求の範囲第1項記載のデータ拡散装置。 5 前記換字手段が、各ブロツクをアドレスにし
て参照する換字テーブルによつて構成されたこと
を特徴とする特許請求の範囲第1項記載のデータ
拡散装置。
[Claims] 1. A dividing means for dividing input data into a plurality of blocks having the same data length;
A fusion means that directly or indirectly calculates and fuses the data of all other blocks to generate data of a new block, and a substitution means that performs substitution processing on the data of each block to generate new block data. and a combining means for combining the finally obtained data of each block and outputting it as spread data of the input data, the data is input to the dividing means, and the output from the dividing means is divided into a plurality of pieces. output from the combining means through the merging means and a plurality of the substitution means, in which case a part of the output data does not have a feedback means for re-inputting it to the dividing means,
Further, the data spreading device is characterized in that a clock repetition operation is not performed in a portion spanning the dividing means, the plurality of the merging means, the plurality of the replacing means, and the combining means. 2. The data diffusion device according to claim 1, wherein the fusion means includes means for performing an exclusive OR operation between block data or parameter data. 3. The data spreading device according to claim 1, wherein the fusion means includes calculation means for performing addition and remainder calculation between block data or parameter data. 4. The data spreading device according to claim 1, wherein said conversion means includes means for performing bit rotation on the data of each block. 5. The data diffusion device according to claim 1, wherein said substitution means is constituted by a substitution table that refers to each block as an address.
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 JPS62113191A (en) 1987-05-25
JPH0333269B2 true 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)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4189439B2 (en) 2006-06-23 2008-12-03 パナソニック株式会社 Cryptographic processing apparatus, data conversion method, data conversion 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

Also Published As

Publication number Publication date
JPS62113191A (en) 1987-05-25

Similar Documents

Publication Publication Date Title
US4525796A (en) Pipelined operation unit for vector data
EP0454187B1 (en) Data randomization equipment
EP0342832A2 (en) Dynamic feedback arrangement scrambling technique keystream generator
US6032169A (en) Arithmetic circuit for calculating a square
US8909510B2 (en) LFSR emulation
JPH0333269B2 (en)
JP2622223B2 (en) Data spreader
JP2003098960A (en) Crystograph decoding device
CN107193536B (en) Packet processing method and system for multidimensional dynamic data
JPH08101639A (en) Data diffusing method
CN116710890A (en) Random number generation device and generation method, random number generation system, and chip
US4325056A (en) BCD To binary converter
JPH02287874A (en) Product sum arithmetic unit
JP3275881B2 (en) Code generation method and apparatus
JP2003143120A (en) Data randomizing circuit and method
UA119097C2 (en) METHOD OF CRYPTOGRAPHIC CONVERSION OF BINARY DATA (OPTIONS)
JPS593912B2 (en) Data conversion method
JPS6188334A (en) Divider circuit
JPH0814748B2 (en) Data diffusion mechanism
JPS63137328A (en) Multiplier
JPS5911446A (en) Multiplier
UA119589C2 (en) METHOD OF CRYPTOGRAPHIC TRANSFORMATION OF BINARY DATA (OPTIONS)
JPS63186363A (en) Memory area setting circuit for multi-cpu system
JPS59149540A (en) Division type multiplier
JPS62172430A (en) Division circuit

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term