JP2000019958A - Cipher processor, cipher processing method and storage medium storing cipher processing program - Google Patents

Cipher processor, cipher processing method and storage medium storing cipher processing program

Info

Publication number
JP2000019958A
JP2000019958A JP11118643A JP11864399A JP2000019958A JP 2000019958 A JP2000019958 A JP 2000019958A JP 11118643 A JP11118643 A JP 11118643A JP 11864399 A JP11864399 A JP 11864399A JP 2000019958 A JP2000019958 A JP 2000019958A
Authority
JP
Japan
Prior art keywords
data
input
substitution
key
bit
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
JP11118643A
Other languages
Japanese (ja)
Other versions
JP3154991B2 (en
Inventor
Motoji Omori
基司 大森
Kaoru Yokota
薫 横田
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP11864399A priority Critical patent/JP3154991B2/en
Publication of JP2000019958A publication Critical patent/JP2000019958A/en
Application granted granted Critical
Publication of JP3154991B2 publication Critical patent/JP3154991B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To provide a cipher processor which realizes a high speed processing by reducing the data quantity and the generation frequency of cipher table data and also which does not impaire safety. SOLUTION: This processor is provided with division parts A0 to A3 generating respective 8-bit divided data by four pieces by dividing 32-bit input data into equal four pieces, a cipher table data saving part 3001 which saves the 32-bit cipher table data by (2 to 8) pieces and outputs four pieces of respective 32-bit cipher data by respectively specifying one piece from (2 to 8) pieces of cipher data based on respective four pieces of divided data, first to third table value translating parts 3002 to 3004 generating 32-bit translated data by four pieces by applying respectively different fixed translations to the four pieces of cipher data and output data generating parts 3005 to 3007 generating 32-bit output data by applying synthetic processings to all of the four pieces of translated data.

Description

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

【0001】[0001]

【発明の属する技術分野】本発明は、秘密鍵に基づい
て、被暗号処理データをブロック単位で暗号化又は復号
化する暗号処理装置、及びその装置において使用される
暗号処理方法、並びにその方法を記述する暗号処理プロ
グラムを記憶した記憶媒体に関し、特に換字テーブルデ
ータのデータ量や生成頻度を削減することで高速な暗号
処理を実現し、且つ、安全性を損なわない技術に関す
る。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an encryption processing apparatus for encrypting or decrypting data to be encrypted in block units based on a secret key, an encryption processing method used in the apparatus, and an encryption processing method. The present invention relates to a storage medium that stores an encryption processing program to be described, and more particularly to a technique that realizes high-speed encryption processing by reducing the data amount and generation frequency of substitution table data and does not impair security.

【0002】[0002]

【従来の技術】近年、デジタル通信による送金やあらゆ
る情報の通信が普及してきたのに伴い、通信される重要
な情報を第三者による盗聴や改竄から守る、安全性を向
上させる為の技術への要求が高まっている。安全性を向
上させる為の有効な技術の1つに暗号(cryptog
raphy)がある。
2. Description of the Related Art In recent years, remittance by digital communication and communication of all kinds of information have become widespread, so that important information to be transmitted is protected from eavesdropping and tampering by a third party, and a technique for improving security is improved. The demand for is increasing. One of the effective technologies to improve security is cryptography.
raphy).

【0003】暗号を用いて通信するシステムにおいて
は、元の通信文を平文(plaintext)と呼び、
その意味内容が第三者に分かりにくい形に変換されたも
のを暗号文(cryptogram)と呼ぶ。また、こ
の変換を暗号化(encryption)と呼び、逆
に、暗号文を元の平文に復元する逆変換を復号化(de
cryption)と呼ぶ。
[0003] In a system that communicates using encryption, the original message is called plaintext.
The one whose meaning is converted into a form that is difficult for a third party to understand is called a cryptogram. Also, this conversion is called encryption, and conversely, the inverse conversion for restoring the ciphertext to the original plaintext is decrypted (decryption).
(cryption).

【0004】暗号化及び復号化の変換内容は、アルゴリ
ズム(algorithm)とそのパラメータとなる鍵
(key)によって特定される。アルゴリズムは複数の
変換から成る変換の族(family)を特定し、鍵は
その族のなかの1つの変換を特定する。通常、装置の固
定部分に対応するものがアルゴリズムであり、1つの装
置において時々取り替えられるものが鍵である。
[0004] The contents of conversion between encryption and decryption are specified by an algorithm and a parameter key. The algorithm identifies a family of transforms consisting of multiple transforms, and the key identifies one transform within that family. Usually, what corresponds to a fixed part of the device is an algorithm, and what is sometimes replaced in one device is a key.

【0005】暗号文は、盗聴(eavesdrop)さ
れることを前提としている。盗聴者等がアルゴリズムや
鍵の情報を持たずに平文等に復号しようとすることを、
暗号解読(cryptanalysis)という。暗号
解読しようとする者(以下、「暗号解読者(crypt
analyst)」という)は、暗号文は既知であると
いう前提で暗号解読を行なう。
[0005] The ciphertext is assumed to be eavesdropped. The fact that an eavesdropper or the like attempts to decrypt into plain text without having algorithm or key information,
It is referred to as cryptoanalysis. A person attempting to decipher (hereinafter, referred to as “cryptanalyst (crypt
analyst) ") performs decryption on the assumption that the ciphertext is known.

【0006】基本的に暗号文からのみ秘密の平文や鍵を
決定する解読法を、「暗号文単独攻撃(ciphert
ext−only attack)」という。また、い
くつかの不特定な暗号文と平文のペアから秘密の鍵を決
定し、任意の暗号文に対応する平文を決定する解読法
を、「既知平文攻撃(known−plaintext
attack)」という。
Basically, a decryption method for determining a secret plaintext or key only from ciphertext is referred to as “ciphertext alone attack (ciphert alone attack).
ext-only attack) ". Further, a decryption method for determining a secret key from some unspecified ciphertext and plaintext pairs and determining a plaintext corresponding to an arbitrary ciphertext is referred to as a “known-plaintext attack (known-plaintext attack).
attack) ".

【0007】(第1の従来例)暗号の例の1つに、疑似
乱数加算型暗号がある。この暗号は、同一の鍵を送信者
と受信者が秘密に共有し、それぞれ同じアルゴリズムを
持つ乱数発生機を用いてこの鍵をシード(seed)と
して所定のビット数(以下、「ブロック」という)の乱
数を発生させ、送信者側による暗号化においては、ブロ
ック単位で、この乱数と平文とを、対応するビット毎に
排他的論理和の演算を行なうことによって暗号文を生成
し、受信者側による復号化においては、ブロック単位
で、この乱数と暗号文とを、対応するビット毎に排他的
論理和の演算を行なうことによって平文を生成する。
(First Conventional Example) One example of encryption is pseudo-random number addition type encryption. In this cipher, a sender and a receiver secretly share the same key, and the key is seeded using a random number generator having the same algorithm as a predetermined number of bits (hereinafter referred to as a “block”). In the encryption performed by the sender, a ciphertext is generated by performing an exclusive OR operation on the random number and the plaintext for each corresponding bit in block units, thereby generating a ciphertext. In the decryption according to, a plaintext is generated by performing an exclusive OR operation on the random number and the ciphertext for each corresponding bit in block units.

【0008】ここで、ブロック単位の平文を「M」、ブ
ロック単位の暗号文を「C」、この乱数を「R」、対応
するビット毎の排他的論理和の演算を「(+)」とする
と、暗号化は以下の(式1)で、復号化は以下の(式
2)で表せる。 C=M(+)R ・・・(式1) M=C(+)R ・・・(式2) この暗号の問題点は、「既知平文攻撃」に非常に弱いこ
とである。
Here, the plaintext in block units is “M”, the ciphertext in block units is “C”, the random number is “R”, and the exclusive OR operation for each corresponding bit is “(+)”. Then, encryption can be expressed by the following (Equation 1), and decryption can be expressed by the following (Equation 2). C = M (+) R (Equation 1) M = C (+) R (Equation 2) The problem of this encryption is that it is very weak against “known plaintext attack”.

【0009】例えば、それぞれ1ブロックの平文と暗号
文のペアが既知であれば、以下の(式3)より乱数Rが
判明するので他の全ての平文を解読することができる。 R=M(+)C ・・・(式3) よって、暗号解読者は既知平文攻撃によって、疑似乱数
加算型暗号を非常に容易に解読することができる。
For example, if a pair of a plaintext and a ciphertext in each block is known, the random number R is obtained from the following (Equation 3), so that all other plaintexts can be decrypted. R = M (+) C (Equation 3) Therefore, the cryptanalyst can very easily decrypt the pseudorandom number addition type encryption by the known plaintext attack.

【0010】(第2の従来例)既知平文攻撃によっても
比較的容易に解読されない暗号の例に、DES(DataEn
cryption Standard)やFEAL(Fast Data Encipherm
ent Algorithm)がある。これらについては「暗号理論
入門」(岡本栄司著:共立出版発行)に詳しく述べられ
ている。
(Second conventional example) An example of a cipher that cannot be easily deciphered by a known plaintext attack is DES (DataEn
crypto Standard or FEAL (Fast Data Encipherm)
ent Algorithm). These are described in detail in "Introduction to Cryptography" (Eiji Okamoto, published by Kyoritsu Shuppan).

【0011】これらの暗号は、64ビットを1ブロック
とし、ブロック単位で強力にデータを撹乱する。例え
ば、DESのアルゴリズムは、転置(transpos
ion)と換字(substitution)を組み合
わせた処理を16段繰り返す。DESやFEALに代表
されるブロック暗号方式の一種に、Blowfish暗
号方式というものがある。
[0011] These ciphers make 64 bits one block, and strongly disturb data in block units. For example, the DES algorithm uses transpos
(ion) and substitution (substitution) are repeated 16 times. One type of block encryption system represented by DES and FEAL is a Blowfish encryption system.

【0012】Blowfish暗号方式については、Br
uce Schneier著''Description of aNew Variable-Lengt
h Key, 64-Bit Block Cipher(Blowfish),''(''Fast Sof
tware Encryption,''Ross Anderson編, Lecture Notes
in Computer Science Vol.809, pp.191-204, Springer-
Verlag. に収録)に詳しく述べられている。以下に、こ
のBlowfish暗号方式について述べる。
Regarding the Blowfish encryption method, Br
`` Description of a New Variable-Lengt '' by uce Schneier
h Key, 64-Bit Block Cipher (Blowfish), ''('' Fast Sof
tware Encryption, '' edited by Ross Anderson, Lecture Notes
in Computer Science Vol.809, pp.191-204, Springer-
Verlag.). Hereinafter, this Blowfish encryption method will be described.

【0013】図14は、Blowfish暗号方式を用
いたデータ暗号化装置の構成を示す図である。図14に
示すデータ暗号化装置3010は、データ撹乱部301
1、段数制御部3012、部分鍵生成部3013及び換
字テーブルデータ生成部3014を備える。
FIG. 14 is a diagram showing the configuration of a data encryption device using the Blowfish encryption method. The data encryption device 3010 shown in FIG.
1, a stage number control unit 3012, a partial key generation unit 3013, and a substitution table data generation unit 3014.

【0014】換字テーブルデータ生成部3014は、換
字テーブルデータ生成アルゴリズムに従って、64ビッ
トの入力鍵データから32Kビット(テーブル値32ビ
ット×1024個)の換字テーブルデータを生成する。
ここで、換字テーブルデータ生成アルゴリズムは本発明
の趣旨ではないので、その説明を省略する。部分鍵生成
部3013は、部分鍵生成アルゴリズムに従って、64
ビットの入力鍵データから256ビットのビットデータ
を生成し、生成されたビットデータを各32ビットずつ
の8組に分割し、部分鍵SK0〜SK7として保管す
る。ここで、部分鍵生成アルゴリズムは本発明の趣旨と
関係ないので、その説明を省略する。
The substitution table data generation unit 3014 generates 32K bits (table value 32 bits × 1024) of substitution table data from 64-bit input key data according to a substitution table data generation algorithm.
Here, since the substitution table data generation algorithm is not the gist of the present invention, its description is omitted. The partial key generation unit 3013 calculates 64
256-bit bit data is generated from the bit input key data, and the generated bit data is divided into eight sets of 32 bits each and stored as partial keys SK0 to SK7. Here, the partial key generation algorithm has nothing to do with the gist of the present invention, and a description thereof will be omitted.

【0015】データ撹乱部3011は、換字テーブルデ
ータ生成部3014が生成した32Kビット(テーブル
値32ビット×1024個)の換字テーブルデータ、及
び、部分鍵生成部3013が生成した32ビットの部分
鍵データを用いて、入力される64ビットのデータにデ
ータ撹乱を繰り返し施し、64ビットのデータを出力す
る。通常、この様なデータ撹乱処理が16回繰り返され
ることにより暗号化が完了する。
The data disturbing unit 3011 includes a 32K-bit (table value 32 bits × 1024) substitution table data generated by the substitution table data generation unit 3014 and a 32-bit partial key data generated by the partial key generation unit 3013. Is used to repeatedly perform data disturbance on the input 64-bit data, and output 64-bit data. Normally, encryption is completed by repeating such data disturbance processing 16 times.

【0016】段数制御部3012は、64ビットの平文
データ(以下「平文ブロック」と記す)から64ビット
の暗号文データ(以下「暗号文ブロック」と記す)が生
成されるまでに、データ撹乱部3011が繰り返し施す
データ撹乱の回数を制御する。そのために段数制御部3
012は、平文ブロック毎にデータ撹乱の回数をカウン
トし、予め定められた回数に満たない場合にはデータ撹
乱部3011の出力をデータ撹乱部3011に入力して
データ撹乱を繰り返し、予め指定された回数の場合には
暗号文ブロックとして出力する。
The number-of-stages control unit 3012 controls the data disturbing unit until 64-bit ciphertext data (hereinafter, referred to as “ciphertext block”) is generated from 64-bit plaintext data (hereinafter, referred to as “plaintext block”). Reference numeral 3011 controls the number of times of repeated data disturbance. Therefore, the stage number control unit 3
In step 012, the number of data disturbances is counted for each plaintext block. If the number of data disturbances is less than a predetermined number, the output of the data disturbance unit 3011 is input to the data disturbance unit 3011 to repeat the data disturbance, and the data disturbance is repeated. In the case of the number of times, it is output as a ciphertext block.

【0017】ここで、平文ブロックの一回目のデータ撹
乱には部分鍵SK0が用いられ、以下、データ撹乱が繰
り返し施される度に、SK1,SK2,…,SK7と順
に用いられる。勿論、SK7の後はSK0が用いられ
る。図15は、Blowfish暗号方式を用いたデー
タ復号化装置の構成を示す図である。
Here, the partial key SK0 is used for the first data disturbance of the plaintext block, and thereafter, SK1, SK2,..., SK7 are used in order each time the data disturbance is repeatedly performed. Of course, SK0 is used after SK7. FIG. 15 is a diagram illustrating a configuration of a data decryption device using the Blowfish encryption method.

【0018】図15に示すデータ復号化装置4010
は、データ撹乱部4011、段数制御部4012、部分
鍵生成部4013及び換字テーブルデータ生成部401
4を備える。換字テーブルデータ生成部4014は、図
14の換字テーブルデータ生成部3014と同様であ
る。
Data decoding device 4010 shown in FIG.
Are a data disturbance unit 4011, a stage number control unit 4012, a partial key generation unit 4013, and a substitution table data generation unit 401.
4 is provided. The substitution table data generation unit 4014 is the same as the substitution table data generation unit 3014 in FIG.

【0019】部分鍵生成部4013は、図14の部分鍵
生成部3013と同様である。データ撹乱部4011
は、図14のデータ撹乱部3011と同様である。段数
制御部4012は、暗号文ブロックから平文ブロックが
生成されるまでに、データ撹乱部4011が繰り返し施
すデータ撹乱の回数を制御する。段数制御部4012
は、暗号文ブロック毎にデータ撹乱の回数をカウント
し、予め定められた回数に満たない場合にはデータ撹乱
部4011の出力をデータ撹乱部4011に入力してデ
ータ撹乱を繰り返し、予め指定された回数の場合には平
文ブロックとして出力する。
The partial key generator 4013 is the same as the partial key generator 3013 in FIG. Data disturbance unit 4011
Are the same as those of the data disturbance unit 3011 in FIG. The stage number control unit 4012 controls the number of times of data disturbance that the data disturbance unit 4011 repeatedly performs until a plaintext block is generated from a ciphertext block. Stage number control unit 4012
Counts the number of data disturbances for each ciphertext block, and when the number of data disturbances is less than a predetermined number, inputs the output of the data disturbance unit 4011 to the data disturbance unit 4011 and repeats the data disturbance. In the case of the number of times, it is output as a plaintext block.

【0020】ここで、暗号文ブロックの1回目のデータ
撹乱には部分鍵SK7が用いられ、以下、データ撹乱が
繰り返し施される度に、SK6,SK5,…,SK0と
順に用いられる。勿論、SK0の後はSK7が用いられ
る。図16は、図14に示したBlowfish暗号方
式を用いたデータ撹乱部3011の詳細な構成を示す図
である。
Here, the partial key SK7 is used for the first data disturbance of the ciphertext block, and thereafter, every time the data disturbance is repeatedly performed, the partial keys SK6, SK5,... Of course, SK7 is used after SK0. FIG. 16 is a diagram showing a detailed configuration of the data disturbance unit 3011 using the Blowfish encryption method shown in FIG.

【0021】図16に示すデータ撹乱部3011は、第
1排他的論理和部3111、第2排他的論理和部311
2、及び、データ変換部3113を備える。 (データ撹乱部3011の説明を削除)第1排他的論理
和部3111は、32ビットの部分鍵データと入力デー
タの上位32ビット(図16中の「X1」)とを対象に
ビット毎に排他的論理和演算を行ない、32ビットの演
算値S0を出力する。この演算値S0は、データ変換部
3113に入力されると同時に、そのまま出力データの
下位側32ビット(図16中の「Y0」)となる。
A data disturbing unit 3011 shown in FIG. 16 includes a first exclusive OR unit 3111 and a second exclusive OR unit 311.
2 and a data conversion unit 3113. (The description of the data disturbance unit 3011 is deleted.) The first exclusive OR unit 3111 excludes the 32-bit partial key data and the upper 32 bits (“X1” in FIG. 16) of the input data for each bit. A logical OR operation is performed, and a 32-bit operation value S0 is output. The calculated value S0 is input to the data conversion unit 3113, and becomes the lower 32 bits (“Y0” in FIG. 16) of the output data as it is.

【0022】データ変換部3113は、一般にf関数と
呼ばれるものであり、ここでは、32Kビットの換字テ
ーブルデータを用いて、32ビットの演算値S0を変換
し、32ビットの変換値S1を出力する。第2排他的論
理和部3112は、32ビットの変換値S1と入力デー
タの下位側32ビット(図16中の「X0」)とを対象
にビット毎に排他的論理和演算を行ない、32ビットの
演算値Y1を出力する。この演算値Y1は、そのまま出
力データの上位32ビットとなる。
The data conversion unit 3113 is generally called an f-function. Here, the data conversion unit 3113 converts a 32-bit operation value S0 using a 32-Kbit substitution table data and outputs a 32-bit conversion value S1. . The second exclusive-OR unit 3112 performs an exclusive-OR operation for each bit of the 32-bit conversion value S1 and the lower 32 bits (“X0” in FIG. 16) of the input data, Is output. This operation value Y1 becomes the upper 32 bits of the output data as it is.

【0023】以下に、データ撹乱部3011の動作例を
示す。 (1)まず、64ビットの入力データが32ビットずつ
の2組の部分に分割される。分割された入力データの部
分の上位側をX1,下位側をX0と記す。 (2)第1排他的論理和部3111が、各32ビットの
X1と部分鍵データとを対象にビット毎に排他的論理和
演算を行なう。ここで生成される32ビットのデータを
Y0と記す。このY0は出力データの下位32ビットと
なる。
Hereinafter, an example of the operation of the data disturbance unit 3011 will be described. (1) First, 64-bit input data is divided into two sets of 32 bits. The upper side of the divided input data portion is referred to as X1, and the lower side is referred to as X0. (2) The first exclusive OR unit 3111 performs an exclusive OR operation on each of the 32-bit X1 and the partial key data for each bit. The 32-bit data generated here is referred to as Y0. This Y0 is the lower 32 bits of the output data.

【0024】(3)データ変換部3113が、第1排他
的論理和部3111が生成したS0を変換して、32ビ
ットのデータS1を出力する。 (4)第2排他的論理和部3112が、各32ビットの
X0とS1とを対象にビット毎に排他的論理和演算を行
なう。ここで生成される32ビットのデータをY1と記
す。このY1は出力データの上位32ビットとなる。
(3) The data conversion unit 3113 converts the S0 generated by the first exclusive OR unit 3111 and outputs 32-bit data S1. (4) The second exclusive OR unit 3112 performs an exclusive OR operation for each of the 32 bits X0 and S1. The 32-bit data generated here is referred to as Y1. This Y1 is the upper 32 bits of the output data.

【0025】なお、上記の動作より出力されるY1、Y
0は、図示されていないクロックに同期して64ビット
の出力データとしてデータ撹乱部3011から出力され
る。図17は、図15に示したBlowfish暗号方
式を用いたデータ撹乱部4011の詳細な構成を示す図
である。図17に示すデータ撹乱部4011は、第1排
他的論理和部4111、第2排他的論理和部4112、
及び、データ変換部4113を備える。
Note that Y1 and Y output from the above operation are
“0” is output from the data disturbance unit 3011 as 64-bit output data in synchronization with a clock (not shown). FIG. 17 is a diagram showing a detailed configuration of the data disturbance unit 4011 using the Blowfish encryption method shown in FIG. The data disturbing unit 4011 illustrated in FIG. 17 includes a first exclusive OR unit 4111, a second exclusive OR unit 4112,
And a data conversion unit 4113.

【0026】第1排他的論理和部4111は、32ビッ
トの部分鍵データと入力データの下位32ビット(図1
7中の「Z0」)とを対象にビット毎に排他的論理和演
算を行ない、32ビットの演算値W1を出力する。この
入力データの下位32ビットの「Z0」は、データ変換
部4113に入力値T0として入力される。またこの演
算値W1は、そのまま出力データの上位側32ビットと
なる。
The first exclusive OR unit 4111 is provided with a 32-bit partial key data and the lower 32 bits of the input data (FIG. 1).
7 to “Z0”), an exclusive OR operation is performed for each bit, and a 32-bit operation value W1 is output. “Z0” of the lower 32 bits of the input data is input to the data conversion unit 4113 as the input value T0. The calculated value W1 becomes the upper 32 bits of the output data as it is.

【0027】データ変換部4113は、データ変換部3
113と同様に一般にf関数と呼ばれるものであり、こ
こでは、32Kビットの換字テーブルデータを用いて、
32ビットの入力値T0を変換し、32ビットの変換値
T1を出力する。第2排他的論理和部4112は、32
ビットの変換値T1と入力データの上位側32ビット
(図17中の「Z1」)とを対象にビット毎に排他的論
理和演算を行ない、32ビットの演算値W0を出力す
る。この演算値W0は、そのまま出力データの下位32
ビットとなる。
The data conversion unit 4113 is a data conversion unit 3
Similar to 113, this is generally called an f-function. In this case, using 32K-bit substitution table data,
It converts a 32-bit input value T0 and outputs a 32-bit converted value T1. The second exclusive OR unit 4112 calculates
An exclusive OR operation is performed for each bit on the converted value T1 of the bit and the upper 32 bits (“Z1” in FIG. 17) of the input data, and a 32-bit operation value W0 is output. This operation value W0 is the lower 32 bits of the output data as it is.
Bit.

【0028】データ撹乱部4011の動作は、データ撹
乱部3011と同様なので説明を省略する。図18は、
図16に示したデータ変換部3113の詳細な構成を示
す図である。図18に示すデータ変換部3113は、第
1換字テーブルデータ保管部3201、第2換字テーブ
ルデータ保管部3202、第3換字テーブルデータ保管
部3203、第4換字テーブルデータ保管部3204、
第1加算部3205、第2加算部3206及び排他的論
理和部3207を備える。
The operation of the data disturbing unit 4011 is the same as that of the data disturbing unit 3011, and a description thereof will be omitted. FIG.
FIG. 17 is a diagram illustrating a detailed configuration of a data conversion unit 3113 illustrated in FIG. 16. The data conversion unit 3113 shown in FIG. 18 includes a first substitution table data storage unit 3201, a second substitution table data storage unit 3202, a third substitution table data storage unit 3203, a fourth substitution table data storage unit 3204,
A first adder 3205, a second adder 3206, and an exclusive OR unit 3207 are provided.

【0029】32Kビットの換字テーブルデータは、各
8Kビットの4組に分割される。32ビットの入力デー
タS0は、各8ビットの4組に分割される。第1〜4換
字テーブルデータ保管部3201〜3204は、それぞ
れに対応する分割された8Kビットの換字テーブルデー
タを、上位から32ビットずつの256個のテーブル値
に分割して保管し、それぞれS0が4分割された各8ビ
ットの入力に基づいて、この256個のテーブル値の1
個を特定して出力する。ここでは、第1換字テーブルデ
ータ保管部3201が保管する各32ビットのテーブル
値を上位から順に、Tab1[0],Tab1[1],
…,Tab1[255]とし、同様に、第2換字テーブ
ルデータ保管部3202が保管するテーブル値を、Ta
b2[0],Tab2[1],…,Tab2[25
5]、第3換字テーブルデータ保管部3203が保管す
るテーブル値を、Tab3[0],Tab3[1],
…,Tab3[255]、第4換字テーブルデータ保管
部3204が保管するテーブル値を、Tab4[0],
Tab4[1],…,Tab4[255]とする。ま
た、第1〜4換字テーブルデータ保管部3201〜32
04に入力されるS0が分割された各8ビットを上位か
ら順に、V3,V2,V1,V0とする。
The 32K-bit substitution table data is divided into four sets each having 8K bits. The 32-bit input data S0 is divided into four sets of 8 bits each. The first to fourth substitution table data storage units 3201 to 3204 divide and store the corresponding divided 8K-bit substitution table data into 256 table values of 32 bits each from the upper bit, and store each of the S0. Based on the 8-bit input divided into four, 1 of the 256 table values is obtained.
Identify and output. Here, Tab1 [0], Tab1 [1], Tab1 [1], and the 32-bit table values stored in the first substitution table data storage unit 3201 are arranged in order from the highest level.
, Tab1 [255], and similarly, the table value stored by the second substitution table data storage unit 3202 is Ta
b2 [0], Tab2 [1],..., Tab2 [25
5], the table values stored by the third substitution table data storage unit 3203 are Tab3 [0], Tab3 [1],
, Tab3 [255], the table values stored by the fourth substitution table data storage unit 3204 are Tab4 [0],
Tab4 [1],..., Tab4 [255]. Also, first to fourth substitution table data storage units 3201 to 32
The eight bits obtained by dividing S0 input to 04 are referred to as V3, V2, V1, and V0 in order from the higher order.

【0030】第1加算部3205は、第1換字テーブル
データ保管部3201が出力する32ビットのテーブル
値と、第2換字テーブルデータ保管部3202が出力す
る32ビットのテーブル値とを算術加算演算し、繰り上
がり分を無視して下位32ビットのデータのみを出力す
る。ここで第1換字テーブルデータ保管部3201が出
力する32ビットのデータをJ3、第2換字テーブルデ
ータ保管部3202が出力する32ビットのデータをJ
2、第1加算部3205が出力する32ビットのデータ
をQ0として式に表すと、 Q0=(J3 + J2) mod (2^32) となる。ここで、「a^b」はaのb乗を意味し、「α
mod β」 は、αをβで割った余りを意味するもの
とし、以下同様とする。
The first addition unit 3205 performs an arithmetic addition operation on the 32-bit table value output from the first substitution table data storage unit 3201 and the 32-bit table value output from the second substitution table data storage unit 3202. , And outputs only the lower 32 bits of data, ignoring carry-over. Here, the 32-bit data output from the first substitution table data storage unit 3201 is J3, and the 32-bit data output from the second substitution table data storage unit 3202 is J3.
2. When the 32-bit data output by the first adder 3205 is expressed as Q0 in the equation, Q0 = (J3 + J2) mod (2 ^ 32). Here, “a ^ b” means a raised to the power b, and “α
“mod β” means the remainder of α divided by β, and so on.

【0031】排他的論理和部3207は、上記Q0と第
3換字テーブルデータ保管部3203が出力する32ビ
ットのデータとを対象に排他的論理和演算を行なって3
2ビットのデータを出力する。ここで第3換字テーブル
データ保管部3203が出力する32ビットのデータを
J1、排他的論理和部3207が出力する32ビットの
データをQ1として式に表すと、 Q1=Q0(+)J1 となる。ここで、「α(+)β」は、αとβとを対象に
ビット毎に排他的論理和演算を行なうことを意味するも
のとし、以下同様とする。
The exclusive-OR unit 3207 performs an exclusive-OR operation on the Q0 and the 32-bit data output from the third substitution table data storage unit 3203 to obtain 3 bits.
Output 2-bit data. Here, when the 32-bit data output from the third substitution table data storage unit 3203 is expressed as J1 and the 32-bit data output from the exclusive OR unit 3207 is expressed as Q1, Q1 = Q0 (+) J1. . Here, “α (+) β” means that exclusive OR operation is performed for α and β on a bit-by-bit basis, and so on.

【0032】第2加算部3206は、上記Q1と第4換
字テーブルデータ保管部3204が出力する32ビット
のデータとを算術加算演算し、繰り上がり分を無視して
下位32ビットのデータのみを出力する。ここで第4換
字テーブルデータ保管部3204が出力する32ビット
のデータをJ0、第2加算部3206が出力する32ビ
ットのデータをQ2として式に表すと、 Q2=(Q1 + J0) mod (2^32) となる。
The second addition section 3206 performs an arithmetic addition operation on the Q1 and the 32-bit data output from the fourth substitution table data storage section 3204, and outputs only the lower 32 bits of data ignoring the carry. I do. Here, when the 32-bit data output from the fourth substitution table data storage unit 3204 is expressed as J0 and the 32-bit data output from the second addition unit 3206 is expressed as Q2, Q2 = (Q1 + J0) mod (2) # 32)

【0033】第2加算部3206の出力Q2が、データ
変換部3113の出力S1である。以下に、データ変換
部3113の動作例を示す。 (1)入力されたテーブル値32ビット×1024個の
換字テーブルデータがテーブル値32ビット×256個
ずつの4組に分割される。ここで分割された換字テーブ
ルデータを上位から順にR3,R2,R1,R0と記
す。R3,R2,R1,R0は、それぞれ第1換字テー
ブルデータ保管部3201、第2換字テーブルデータ保
管部3202、第3換字テーブルデータ保管部320
3、第4換字テーブルデータ保管部3204に保管され
る。
The output Q2 of the second adder 3206 is the output S1 of the data converter 3113. Hereinafter, an operation example of the data conversion unit 3113 will be described. (1) The input table value of 32 bits × 1024 substitution table data is divided into four sets of table values of 32 bits × 256. Here, the divided substitution table data is referred to as R3, R2, R1, and R0 in order from the top. R3, R2, R1, and R0 are a first substitution table data storage unit 3201, a second substitution table data storage unit 3202, and a third substitution table data storage unit 320, respectively.
Third, it is stored in the fourth substitution table data storage unit 3204.

【0034】(2)入力された32ビットの入力データ
が8ビットずつの4組の部分に分割される。ここで分割
された入力データの各部分を上位から順に、V3,V
2,V1,V0と記す。 (3) 第1〜4換字テーブルデータ保管部3201〜
3204は、それぞれS0が4分割された各8ビットの
入力に基づいて、それぞれが保管する256個のテーブ
ル値の1個を特定してそれぞれ出力する。ここで出力さ
れたテーブル値を、順にJ3,J2,J1,J0と記
す。
(2) The input 32-bit input data is divided into four sets of 8-bit data. Here, V3, V3
2, V1 and V0. (3) First to fourth substitution table data storage units 3201
3204 specifies and outputs one of the 256 table values stored by each based on the input of each 8 bits obtained by dividing S0 into four parts. The table values output here are sequentially described as J3, J2, J1, and J0.

【0035】(4)第1加算部3205が、J3とJ2
とを算術加算演算し、繰り上がり分を無視して下位32
ビットのデータQ0を出力する。 (5)排他的論理和部3207が、Q0とJ1とを対象
に排他的論理和演算を行ない32ビットのデータQ1を
出力する。 (6)第2加算部3206が、Q1とJ0とを算術加算
演算し、繰り上がり分を無視して下位32ビットのデー
タQ2(=S1)を出力する。
(4) The first adder 3205 determines whether J3 and J2
And the lower 32 bits ignoring the carry
It outputs bit data Q0. (5) The exclusive OR unit 3207 performs an exclusive OR operation on Q0 and J1, and outputs 32-bit data Q1. (6) The second adder 3206 performs an arithmetic addition operation on Q1 and J0, and outputs lower-order 32 bits of data Q2 (= S1) ignoring the carry.

【0036】上記に説明した様なデータ撹乱部3011
を備えたデータ暗号化方式の安全性は、データ変換部3
113での変換操作のデータ撹乱機能に大きく依存して
いる。データ変換部3113は、それぞれが独立に処理
を行なう4種類の換字テーブルデータ保管部3201〜
3204を用いるので、高い安全性が得られる。よっ
て、暗号解読や能動的な不正行為に対して強くなってい
る。
The data disturbance unit 3011 as described above
The security of the data encryption system with
The conversion operation at 113 largely depends on the data disturbance function. The data conversion unit 3113 includes four types of substitution table data storage units 3201 to 3203 each of which performs processing independently.
Since 3204 is used, high security is obtained. Therefore, it is stronger against decryption and active fraud.

【0037】図17に示したデータ変換部4113の詳
細な構成は、データ変換部3113と同様なので、その
説明を省略する。 (第3の従来例)ブロック暗号方式に対する代表的な解
読法として、差分解読法及び線形解読法がある。第3の
従来例はこれらの解読法に対する安全性を強化する目的
で考案された暗号方式である。なお、差分解読法及び形
解読法の詳細については、それぞれ E.Biham, A.Shamir
著,''Differential Cryptanalysis of the Data Encryp
tion Standard,''Springer-Verlag. 及び 松井充著,''
DES暗号の線形 解読法(I),''1993年暗号と情
報セキュリティシンポジウム(SCIS’ 93)予稿
集SCIS93-3C.に記載されている。
The detailed configuration of the data conversion unit 4113 shown in FIG. 17 is the same as that of the data conversion unit 3113, and therefore the description thereof is omitted. (Third conventional example) As typical decryption methods for the block encryption method, there are a differential decryption method and a linear decryption method. The third conventional example is an encryption scheme devised for the purpose of enhancing security against these decryption methods. For details of differential cryptanalysis and shape cryptanalysis, see E. Biham and A. Shamir, respectively.
Author, '' Differential Cryptanalysis of the Data Encryp
tion Standard, '' Springer-Verlag. and Mitsuru Matsui, ''
Linear Decryption Method of DES Cryptography (I), '' 1993 Cryptography and Information Security Symposium (SCIS'93), Proceedings SCIS93-3C.

【0038】差分解読法及び線形解読法は、いずれも同
一の鍵データを用いた平文と暗号文とのペアを多数用意
し、それらを解析することによって暗号化に用いられた
鍵データを求める既知平文攻撃の一種である。これらの
暗号解読は、解読すべき暗号文の各ブロックが常に同一
の鍵データを用いて暗号化されていることを前提とす
る。
In the differential cryptanalysis method and the linear cryptanalysis method, a large number of pairs of plaintext and ciphertext using the same key data are prepared, and a known key data used for encryption is obtained by analyzing them. This is a type of plaintext attack. These decryptions assume that each block of the ciphertext to be decrypted is always encrypted using the same key data.

【0039】よって、複数の平文ブロックを暗号化する
場合に、平文ブロック毎に異なる鍵データを用いて暗号
化を行えば、これらの解読法に対する安全性は強化され
る。ここで、平文のブロック数と同じ数の鍵データを用
意するとなると、鍵データが平文のブロック数に比例し
て多くなるので現実的ではない。そこで、1ブロック前
の暗号文のブロックを「可変情報」として利用し、鍵デ
ータを更新する方式が、特許1250077号鍵連鎖方
式/US4074066(Message verification and t
ransmission error detection by block chaining)に
おいて開示されている。この特許では、平文のブロック
数と同じ数の鍵データを用意することなく、1ブロック
の暗号化毎に鍵データを更新できる。すなわち、1つの
鍵データを元に、ブロック毎に異なる鍵データを生成し
て用いるので、鍵データを増やさずに差分解読法及び線
形解読法に対する安全性が強化される。
Therefore, when a plurality of plaintext blocks are encrypted, if encryption is performed using different key data for each plaintext block, the security against these decryption methods is enhanced. Here, it is not realistic to prepare the same number of key data as the number of plaintext blocks because the number of key data increases in proportion to the number of plaintext blocks. Therefore, a method of updating key data by using a block of ciphertext one block before as "variable information" is disclosed in Japanese Patent No. 1250077 Key Chain Method / US4074066 (Message verification and t
ransmission error detection by block chaining). In this patent, the key data can be updated every time one block is encrypted without preparing the same number of key data as the number of plaintext blocks. That is, since different key data is generated and used for each block based on one key data, the security against the differential cryptanalysis and the linear cryptanalysis is enhanced without increasing the key data.

【0040】[0040]

【発明が解決しようとする課題】しかしながら、第2の
従来例におけるデータ撹乱部3011は、32Kビット
もの膨大な換字テーブルデータを保管する必要があるた
めに、ハードウェア及びソフトウェアの両面における実
装の簡便性という点において問題があり、また、膨大な
換字テーブルデータを生成するには、それなりの処理時
間がかかる点において問題がある。かといって、単に換
字テーブルデータのデータ量を削減すると、安全性を損
なうことになりかねないので好ましくない。
However, the data disturbing unit 3011 in the second conventional example needs to store a huge amount of substitution table data as large as 32 Kbits, so that it is easy to implement in both hardware and software. In addition, there is a problem in terms of performance, and there is a problem in that it takes a certain amount of processing time to generate a huge amount of substitution table data. On the other hand, simply reducing the data amount of the substitution table data is not preferable because the security may be impaired.

【0041】さらに、第2の従来例に示した様なBlo
wfish暗号方式に、第3の従来例の鍵連鎖方式を用
いた場合、以下のような問題が生じる。上述の様に第2
の従来例のBlowfish暗号方式は、入力鍵データ
を元に32Kビットの換字テーブルデータを生成して暗
号化に用いており、第3の従来例の鍵連鎖方式は1ブロ
ック分の平文を暗号化するたびに入力鍵データを更新す
る。従って、Blowfish暗号方式に鍵連鎖方式を
用いた場合には、1ブロック分の平文を暗号化するたび
に換字テーブルデータを生成することになる。換字テー
ブルデータはデータ量が32Kビットと膨大であるた
め、その生成の処置に係るプロセッサの負担は大きく、
頻繁に換字テーブルデータの生成が行われると暗号処理
に係る処理速度は大幅に低下する。かといって、単に換
字テーブルデータの生成頻度を削減すると、安全性を損
なうことになりかねないので好ましくない。
Further, Blo as shown in the second prior art example
When the key chain method of the third conventional example is used for the wfish encryption method, the following problem occurs. Second as described above
The conventional Blowfish encryption method generates 32K-bit substitution table data based on input key data and uses it for encryption. The third conventional key chaining method encrypts one block of plaintext. Update the input key data every time. Therefore, when the key chain method is used for the Blowfish encryption method, substitution table data is generated each time one block of plaintext is encrypted. Since the substitution table data has an enormous amount of data of 32 Kbits, the processing load on the processor is large,
If the substitution table data is frequently generated, the processing speed of the encryption processing is significantly reduced. On the other hand, simply reducing the frequency of generating substitution table data is not preferable because it may impair security.

【0042】これらのことは、Blowfish暗号方
式に限らず、入力鍵に基づいて換字テーブルデータを生
成して暗号処理に用いるブロック暗号方式に共通する問
題である。そこで、本発明はかかる問題点に鑑みてなさ
れたものであり、Blowfish暗号方式などの入力
鍵に基づいて換字テーブルデータを生成して暗号処置に
用いるブロック暗号方式において、換字テーブルデータ
のデータ量や生成頻度を削減することで高速な処理を実
現し、且つ、安全性を損なわない暗号処理装置、暗号処
理方法、暗号処理プログラムを記憶した記憶媒体を提供
することを目的とする。
These problems are not limited to the Blowfish encryption method, but are a problem common to the block encryption method that generates substitution table data based on an input key and uses it for encryption processing. Therefore, the present invention has been made in view of such a problem, and in a block cipher system that generates substitution table data based on an input key such as a Blowfish encryption method and uses the same for encryption, the data amount of the substitution table data and It is an object of the present invention to provide a cryptographic processing device, a cryptographic processing method, and a storage medium storing a cryptographic processing program that realize high-speed processing by reducing the generation frequency and do not impair security.

【0043】[0043]

【課題を解決するための手段】上記目的を達成するため
に、本発明に係る暗号処理装置は、換字データを用いて
入力データに暗号処理を施し出力データを生成する暗号
処理装置であって、N及びMを2以上の整数とした場
合、所定ビットの換字データを(2^N)個保管する保
管手段と、(N×M)ビットの入力データをM個に等分
して各Nビットの分割データをM個生成する分割手段
と、分割手段が生成したM個の分割データ又はそれらの
分割データに合成処理を施して生成した入力合成データ
を入力としNビットの入力毎に保管手段が保管する(2
^N)個の換字データから前記所定ビットの換字データ
を1個特定して出力する換字手段と、換字手段が出力し
た換字データが入力され複数の異なる固定変換を施すこ
とによって前記所定ビットの変換データをM個生成する
固定変換手段と、固定変換手段が生成したM個の変換デ
ータに基づいて(N×M)ビットの出力データを生成す
る出力データ生成手段とを備えることを特徴とする。
In order to achieve the above object, an encryption processing apparatus according to the present invention is an encryption processing apparatus that performs encryption processing on input data using substitution data to generate output data, When N and M are integers of 2 or more, storage means for storing (2 ^ N) replacement data of a predetermined bit, and (N × M) -bit input data equally divided into M pieces, each of which is N bits Dividing means for generating M pieces of divided data, and input storing data generated by subjecting the M pieces of divided data generated by the dividing means or the divided data to synthesis processing, and storing means for each input of N bits. Keep (2
(N) substitution means for specifying and outputting one of the predetermined bits of substitution data from the substitution data, and converting the predetermined bits by inputting the substitution data output by the substitution means and performing a plurality of different fixed conversions It is characterized by comprising fixed conversion means for generating M data, and output data generation means for generating (N × M) -bit output data based on the M converted data generated by the fixed conversion means.

【0044】これによって、少ない換字テーブルデータ
で高い安全性を得ることができる。また、本発明に係る
暗号処理装置は、前記保管手段が保管する換字データの
所定ビットは(N×M)ビットであり、前記換字手段は
前記分割手段が生成したM個の分割データのそれぞれに
基づいて保管手段が保管する(2^N)個の換字データ
からそれぞれ1個を特定し各(N×M)ビットの換字デ
ータをM個出力し、前記固定変換手段は換字手段が出力
したM個の換字データにそれぞれ異なる固定変換を施す
ことによって、(N×M)ビットの変換データをM個生
成し、前記出力データ生成手段は固定変換手段が生成し
たM個の変換データの全てを対象に合成処理を施すこと
によって、(N×M)ビットの出力データを生成するこ
とを特徴とすることもできる。
Thus, high security can be obtained with a small number of substitution table data. Further, in the cryptographic processing device according to the present invention, the predetermined bits of the substitution data stored by the storage unit are (N × M) bits, and the substitution unit stores the predetermined number of bits in each of the M divided data generated by the division unit. Based on the (2 ^ N) pieces of substitution data stored by the storage means, one of each is specified, and M pieces of (N × M) -bit substitution data are output, and the fixed conversion means outputs the M data output by the substitution means. By performing different fixed conversions on each of the character substitution data, M conversion data of (N × M) bits are generated, and the output data generation unit performs processing on all of the M conversion data generated by the fixed conversion unit. , By generating a (N × M) -bit output data.

【0045】これによって、安全性を損なうことなく換
字テーブルデータを従来の1/Mに削減できる。また、
本発明に係る暗号処理装置は、 前記保管手段が保管す
る換字データの所定ビットはNビットであり、前記換字
手段は前記分割手段が生成したM個の分割データの全て
を対象に全体合成処理を施すことによってNビットの入
力合成データを生成する入力合成手段を含みNビットの
入力合成データに基づいて保管手段が保管する(2^
N)個の換字データから1個を特定しNビットの換字デ
ータを出力し、前記固定変換手段は換字手段が出力した
換字データに異なるM個の固定変換を個々に施すことに
よってNビットの変換データをM個生成し、前記出力デ
ータ生成手段は、前記分割手段が生成したM個の分割デ
ータの内の1個と前記固定変換手段が生成したM個の変
換データの内の1個とを対象に個別合成処理をそれぞれ
施すことによってNビットの出力合成データをM個生成
する出力合成手段と、前記出力合成手段が生成した各N
ビットのM個の出力合成データを連結処理を施すことに
よって(N×M)ビットの出力データを生成する連結手
段とを含むことを特徴とすることもできる。
As a result, the substitution table data can be reduced to 1 / M of the conventional one without impairing the security. Also,
In the encryption processing device according to the present invention, the predetermined bits of the substitution data stored by the storage unit are N bits, and the substitution unit performs a total synthesis process on all of the M divided data generated by the division unit. The storage means includes input synthesizing means for generating N-bit input synthesized data by performing the processing and stores the data based on the N-bit input synthesized data (2 ^).
One of N) substitution data is specified, and N-bit substitution data is output. The fixed conversion unit performs N-bit conversion by individually performing M different fixed conversions on the substitution data output by the substitution unit. M pieces of data are generated, and the output data generating means determines one of the M pieces of divided data generated by the dividing means and one of the M pieces of converted data generated by the fixed converting means. Output synthesizing means for generating M pieces of N-bit output synthesized data by subjecting the object to individual synthesizing processing, respectively;
A concatenating unit that generates (N × M) bits of output data by performing concatenation processing of the M pieces of output combined data of bits.

【0046】これによって、安全性を損なうことなく換
字テーブルデータを従来の1/M/Mに削減できる。上
記目的を達成するために、本発明に係る暗号処理装置
は、換字テーブルデータを作成しこれを用いて入力デー
タに暗号処理を施し出力データを生成する暗号処理装置
であって、鍵データを保持する鍵データ保持手段と、換
字テーブルデータを保持する換字テーブルデータ保持手
段と、入力データを所定のビット数のブロック単位に分
割し入力ブロックとして順次出力するブロック化手段
と、所定数の入力ブロックに暗号処理を施した後で次の
入力ブロックに暗号処理を施す場合に換字テーブルデー
タを作成し換字テーブルデータ保持手段に保持された換
字テーブルデータを作成した換字テーブルデータに更新
する換字テーブルデータ作成手段と、前の入力ブロック
に暗号処理を施した後で次の入力ブロックに暗号処理を
施す場合には鍵データ保持手段に保持された鍵データに
前の入力ブロックに暗号処理を施した際に暗号処理手段
が生成した出力ブロックを用いてビット変換を施し鍵デ
ータを変換する鍵データ変換手段と、換字テーブルデー
タ保持手段に保持された換字テーブルデータと前記鍵デ
ータとを用いてブロック化手段が順次出力する入力ブロ
ックに暗号処理を施すことによって順次出力ブロックを
生成する暗号処理手段とを備える。
As a result, the substitution table data can be reduced to 1 / M / M of the prior art without impairing the security. In order to achieve the above object, a cryptographic processing device according to the present invention is a cryptographic processing device that creates substitution table data, performs cryptographic processing on input data using the substitution table data to generate output data, and stores key data. Key data holding means, character table data holding means for holding character table data, blocking means for dividing input data into blocks of a predetermined number of bits, and sequentially outputting as input blocks, and a predetermined number of input blocks. Substitution table data creating means for creating substitution table data when performing encryption processing on the next input block after performing encryption processing, and updating the substitution table data held in the substitution table data holding means to the created substitution table data If encryption processing is performed on the previous input block and then encryption processing is performed on the next input block, the key data Key data conversion means for performing bit conversion by using an output block generated by the encryption processing means when the key data held in the holding means is subjected to encryption processing on the previous input block, thereby converting the key data; and substitution table data A cryptographic processing unit for sequentially generating an output block by performing an encryption process on an input block sequentially output by the blocking unit using the substitution table data and the key data stored in the storage unit;

【0047】また、換字テーブルデータを作成しこれを
用いて入力データに暗号処理を施し出力データを生成す
る暗号処理装置であって、鍵データを保持する鍵データ
保持手段と、換字テーブルデータを保持する換字テーブ
ルデータ保持手段と、入力データを所定のビット数のブ
ロック単位に分割し入力ブロックとして順次出力するブ
ロック化手段と、所定数の入力ブロックに暗号処理を施
した後で次の入力ブロックに暗号処理を施す場合に換字
テーブルデータを作成し換字テーブルデータ保持手段に
保持された換字テーブルデータを作成した換字テーブル
データに更新する換字テーブルデータ作成手段と、前の
入力ブロックに暗号処理を施した後で次の入力ブロック
に暗号処理を施す場合には鍵データ保持手段に保持され
た鍵データに前の入力ブロックを用いてビット変換を施
し鍵データを変換する鍵データ変換手段と、換字テーブ
ルデータ保持手段に保持された換字テーブルデータと前
記鍵データとを用いてブロック化手段が順次出力する入
力ブロックに暗号処理を施すことによって順次出力ブロ
ックを生成する暗号処理手段とを備えるものであっても
よい。
A cryptographic processing apparatus for generating substitution table data, performing encryption processing on input data using the substitution table data, and generating output data, comprising: key data retaining means for retaining key data; A substitution table data holding unit, a block unit for dividing input data into blocks of a predetermined number of bits, and sequentially outputting the divided blocks as an input block; Substitution table data creating means for creating substitution table data when performing encryption processing and updating the substitution table data held in the substitution table data holding means to the created substitution table data, and performing encryption processing on the previous input block When performing encryption processing on the next input block later, the key data held in the key data holding Key data conversion means for performing bit conversion using the input block to convert the key data; and an input block sequentially output by the blocking means using the substitution table data and the key data held in the substitution table data holding means. Encryption processing means for sequentially generating output blocks by performing encryption processing.

【0048】また、換字テーブルデータを作成しこれを
用いて入力データに暗号処理を施し出力データを生成す
る暗号処理装置であって、鍵データを保持する鍵データ
保持手段と、換字テーブルデータを保持する換字テーブ
ルデータ保持手段と、入力データを所定のビット数のブ
ロック単位に分割し入力ブロックとして順次出力するブ
ロック化手段と、所定数の入力ブロックに暗号処理を施
した後で次の入力ブロックに暗号処理を施す場合に換字
テーブルデータを作成し換字テーブルデータ保持手段に
保持された換字テーブルデータを作成した換字テーブル
データに更新する換字テーブルデータ作成手段と、一個
の入力ブロックに暗号処理を施した後で次の入力ブロッ
クに暗号処理を施す場合には鍵データ保持手段に保持さ
れた鍵データに前の入力ブロックに暗号処理を施す間に
暗号処理手段が生成した中間ブロックを用いてビット変
換を施し鍵データを変換する鍵データ変換手段と、換字
テーブルデータ保持手段に保持された換字テーブルデー
タと前記鍵データとを用いてブロック化手段が順次出力
する入力ブロックに暗号処理を施すことによって順次暗
号処理の過程で得られる中間ブロックと暗号処理の結果
に得られる出力ブロックとを生成する暗号処理手段とを
備えるものであってもよい。
A cryptographic processing apparatus for generating substitution table data, performing encryption processing on input data using the substitution table data, and generating output data, comprising key data retaining means for retaining key data, and retaining the substitution table data A substitution table data holding unit, a block unit for dividing input data into blocks of a predetermined number of bits, and sequentially outputting the divided blocks as an input block; A substitution table data creating unit that creates substitution table data when performing encryption processing and updates the substitution table data held in the substitution table data holding unit with the created substitution table data, and performs encryption processing on one input block. When the next input block is subjected to the encryption processing later, the key data held in the key data holding means is Key data conversion means for performing bit conversion by using an intermediate block generated by the encryption processing means while performing encryption processing on the input block to convert key data; substitution table data held in the substitution table data holding means; And performing encryption processing on the input blocks sequentially output by the blocking means using the data and an encryption processing means for generating an intermediate block obtained in the course of the encryption processing and an output block obtained as a result of the encryption processing. It may be provided.

【0049】これによって、鍵データより生成される換
字テーブルデータは1ブロックを処理する毎には生成さ
れないが、鍵データは1ブロックを処理する毎に変換さ
れる。
As a result, the substitution table data generated from the key data is not generated every time one block is processed, but the key data is converted every time one block is processed.

【0050】[0050]

【発明の実施の形態】(実施の形態1)図18に示す第
1〜第4換字テーブルデータ保管部3201〜3204
が保管する換字テーブルデータを共有することにする
と、データ変換部3113に入力する換字テーブルデー
タは1/4に削減されるが、以下の点において安全性に
問題が生じる。
(Embodiment 1) First to fourth substitution table data storage units 3201 to 3204 shown in FIG.
When sharing the substitution table data stored by the data conversion unit 3113, the substitution table data to be input to the data conversion unit 3113 is reduced to 4, but there is a problem in security in the following points.

【0051】図18において例えば、V2=V3の場合
に、換字テーブルデータが共有であるとJ2=J3とな
るので、第1加算部3205が同じ値を算術加算演算す
る事になり、この様な暗号システムはデータ撹乱能力が
低く、安全性が低い。本発明の実施の形態1は、1つの
換字テーブルデータから複数の出力を得、異なる回数の
ローテーションや異なる定数の足し算等の固定変換を各
出力に施して使用することで、換字テーブルデータのデ
ータ量を削減しつつ安全性を損なわないで暗号化及び復
号化(以下、暗号化及び復号化を総称して「暗号処理」
と記す)を行なうことを実現する暗号処理装置である。
In FIG. 18, for example, when V2 = V3, if the substitution table data is shared, J2 = J3, so that the first adder 3205 performs the arithmetic addition operation on the same value. Cryptographic systems have low data disruption capabilities and low security. The first embodiment of the present invention obtains a plurality of outputs from one substitution table data, and performs fixed conversion such as rotation of different number of times or addition of different constants on each output to use the data. Encryption and decryption without reducing security while reducing the amount (hereinafter, "encryption processing"
).

【0052】図1は、本発明の実施の形態1における暗
号通信システムの構成を示す図である。以下、図中の二
重線で囲まれた構成要素(ここでは、データ暗号化装置
10及びデータ復号化装置20)は別の図面においてさ
らに詳細な図に展開されていることを示す。
FIG. 1 is a diagram showing a configuration of a cryptographic communication system according to Embodiment 1 of the present invention. Hereinafter, it is shown that the components (here, the data encryption device 10 and the data decryption device 20) surrounded by double lines in the drawing are developed in more detail in another drawing.

【0053】図1に示す暗号通信システムは、送信機1
及び受信機2を備える。送信機1及び受信機2は、例え
ば、デジタル画像情報を送受信するビデオサーバシステ
ムのサーバ及び端末等である。送信機1は、データ暗号
化装置10及び送信部11を備える。データ暗号化装置
10は、256ビットの鍵データ及び8Kビット(テー
ブル値32ビット×256個)の換字テーブルデータを
用いて、64ビット単位で平文データに暗号処理を施し
て暗号文データを生成する。ここで平文データは、例え
ばデジタル符号化された音声または画像情報等であり、
鍵データ及び換字テーブルデータは、予め送信機1と受
信機2とが秘密に共有するものである。
The encryption communication system shown in FIG.
And a receiver 2. The transmitter 1 and the receiver 2 are, for example, a server and a terminal of a video server system that transmits and receives digital image information. The transmitter 1 includes a data encryption device 10 and a transmission unit 11. The data encryption device 10 uses the 256-bit key data and the 8K-bit (32-bit table value × 256) substitution table data to perform cipher processing on the plaintext data in 64-bit units to generate ciphertext data. . Here, the plaintext data is, for example, digitally encoded audio or image information,
The key data and the substitution table data are secretly shared between the transmitter 1 and the receiver 2 in advance.

【0054】送信部11は、データ暗号化装置10が生
成した暗号文データを、並列to直列変換、変調及び増幅
して生成した送信信号を伝送路3に送出する。受信機2
は、データ復号化装置20及び受信部21を備える。受
信部21は、送信部11から送出された送信信号を伝送
路3を介して受信し、送信部11と逆の処理を施して暗
号文データを復元する。
The transmitting section 11 transmits the transmission signal generated by parallel-to-serial conversion, modulation and amplification of the ciphertext data generated by the data encryption device 10 to the transmission path 3. Receiver 2
Includes a data decoding device 20 and a receiving unit 21. The receiving unit 21 receives the transmission signal transmitted from the transmitting unit 11 via the transmission path 3 and performs processing reverse to that of the transmitting unit 11 to restore the ciphertext data.

【0055】データ復号化装置20は、256ビットの
鍵データ及び8Kビット(テーブル値32ビット×25
6個)の換字テーブルデータを用いて、64ビット単位
で暗号文データに暗号処理を施して復号文データ(=平
文データ)を生成する。ここで生成された復号文データ
は、例えばデジタル符号化された音声又は画像情報等で
あり、専用のデコーダ(図示せず)でデコードされてス
ピーカ又はディスプレイで再生される。
The data decryption device 20 has 256 bits of key data and 8 K bits (table value 32 bits × 25).
Using the (six) substitution table data, ciphertext data is subjected to encryption processing in 64-bit units to generate decrypted text data (= plaintext data). The decoded text data generated here is, for example, digitally encoded audio or image information, and is decoded by a dedicated decoder (not shown) and reproduced by a speaker or a display.

【0056】図2は、図1に示すデータ暗号化装置10
の詳細な構成を示す図である。データ暗号化装置10
は、データ撹乱部101、段数制御部102及び鍵制御
部103を備える。鍵制御部103は、256ビットの
鍵データを上位から32ビットずつ8組のデータに分割
して部分鍵K0〜K7を生成し、データ撹乱部101に
新しい処理対象のブロックが入力される場合毎に、部分
鍵K0〜K7を順にデータ撹乱部101に出力する。勿
論、K7の後はK0を出力する。
FIG. 2 shows the data encryption device 10 shown in FIG.
FIG. 3 is a diagram showing a detailed configuration of the embodiment. Data encryption device 10
Includes a data disturbance unit 101, a stage number control unit 102, and a key control unit 103. The key control unit 103 divides the 256-bit key data into eight sets of data of 32 bits each from the higher order to generate partial keys K0 to K7, each time a new block to be processed is input to the data disturbance unit 101. Then, the partial keys K0 to K7 are sequentially output to the data disturbance unit 101. Of course, after K7, K0 is output.

【0057】データ撹乱部101は、8Kビットの換字
テーブルデータ及び32ビットの部分鍵データを用い
て、64ビットのデータにデータ撹乱を施し、64ビッ
トのデータを出力する。段数制御部102は、平文ブロ
ックから暗号文ブロックが生成されるまでに、データ撹
乱部101が繰り返し施すデータ撹乱の回数を制御す
る。段数制御部102は、平文ブロック毎にデータ撹乱
の回数をカウントし、予め定められた回数に満たない場
合にはデータ撹乱部101の出力をデータ撹乱部101
に入力してデータ撹乱を繰り返し、予め指定された回数
の場合には暗号文ブロックとして出力する。ここでは、
予め指定された回数を8回とする。
The data disturbance unit 101 performs data disturbance on the 64-bit data by using the 8K-bit substitution table data and the 32-bit partial key data, and outputs 64-bit data. The stage number control unit 102 controls the number of times of data disturbance that the data disturbance unit 101 repeatedly performs until a plaintext block is generated into a ciphertext block. The stage number control unit 102 counts the number of data disturbances for each plaintext block, and outputs an output of the data disturbance unit 101 if the number of data disturbances is less than a predetermined number.
And repeats the data disturbance, and outputs a ciphertext block if the number of times is specified in advance. here,
The number of times specified in advance is eight times.

【0058】図3は、図1に示すデータ復号化装置20
の詳細な構成を示す図である。データ復号化装置20
は、データ撹乱部201、段数制御部202及び鍵制御
部203を備える。鍵制御部203は、256ビットの
鍵データを上位から32ビットずつ8組のデータに分割
して部分鍵K0〜K7を生成し、データ撹乱部201に
新しい処理対象のブロックが入力される度に、部分鍵K
7〜K0の順にデータ撹乱部201に出力する。勿論、
K0の後はK7を出力する。
FIG. 3 shows the data decoding apparatus 20 shown in FIG.
FIG. 3 is a diagram showing a detailed configuration of the embodiment. Data decryption device 20
Includes a data disturbance unit 201, a stage number control unit 202, and a key control unit 203. The key control unit 203 divides the 256-bit key data into eight sets of data of 32 bits each from the high order to generate partial keys K0 to K7, and each time a new block to be processed is input to the data disturbance unit 201. , Partial key K
The data is output to the data disturbance unit 201 in the order of 7 to K0. Of course,
After K0, K7 is output.

【0059】データ撹乱部201は、図2のデータ撹乱
部101と同様である。段数制御部202は、暗号文ブ
ロックから64ビットの復号文データ(以下「復号文ブ
ロック」と記す)が生成されるまでに、データ撹乱部2
01が繰り返し施すデータ撹乱の回数を制御する。段数
制御部202は、暗号文ブロック毎にデータ撹乱の回数
をカウントし、予め定められた回数に満たない場合には
データ撹乱部201の出力をデータ撹乱部201に入力
してデータ撹乱を繰り返し、予め指定された回数の場合
には復号文ブロックとして出力する。ここでは、予め指
定された回数を8回とする。
The data disturbance unit 201 is the same as the data disturbance unit 101 in FIG. The stage number control unit 202 controls the data disturbing unit 2 until 64-bit decrypted text data (hereinafter referred to as “decrypted text block”) is generated from the ciphertext block.
01 controls the number of times of data disturbance to be repeatedly performed. The stage number control unit 202 counts the number of data disturbances for each ciphertext block, and if the number is less than a predetermined number, inputs the output of the data disturbance unit 201 to the data disturbance unit 201 and repeats the data disturbance. In the case of the number of times specified in advance, it is output as a decrypted text block. Here, the number of times specified in advance is eight times.

【0060】図4は、図2に示すデータ撹乱部101の
詳細な構成を示す図である。データ撹乱部101は、第
1排他的論理和部1011、第2排他的論理和部101
2及びデータ変換部300を備える。図4に示すデータ
撹乱部101は、図16に示すデータ撹乱部3011と
類似している。
FIG. 4 is a diagram showing a detailed configuration of the data disturbance unit 101 shown in FIG. The data disturbing unit 101 includes a first exclusive OR unit 1011 and a second exclusive OR unit 101
2 and a data conversion unit 300. The data disturbing unit 101 shown in FIG. 4 is similar to the data disturbing unit 3011 shown in FIG.

【0061】第1排他的論理和部1011は、図16に
示す第1排他的論理和部3111と同様である。第2排
他的論理和部1012は、図16に示す第2排他的論理
和部3112と同様である。データ変換部300は、8
Kビットの換字テーブルデータを用いて、32ビットの
演算値S0を変換し、32ビットの変換値S1を出力す
る。
The first exclusive OR unit 1011 is the same as the first exclusive OR unit 3111 shown in FIG. The second exclusive OR unit 1012 is the same as the second exclusive OR unit 3112 shown in FIG. The data conversion unit 300
Using the K-bit substitution table data, a 32-bit operation value S0 is converted and a 32-bit conversion value S1 is output.

【0062】図5は、図3に示すデータ撹乱部201の
詳細な構成を示す図である。データ撹乱部201は、第
1排他的論理和部2011、第2排他的論理和部201
2及びデータ変換部301を備える。図5に示すデータ
撹乱部201は、図17に示すデータ撹乱部4011と
類似している。
FIG. 5 is a diagram showing a detailed configuration of the data disturbance unit 201 shown in FIG. The data disturbing unit 201 includes a first exclusive OR unit 2011 and a second exclusive OR unit 201.
2 and a data conversion unit 301. The data disturber 201 shown in FIG. 5 is similar to the data disturber 4011 shown in FIG.

【0063】第1排他的論理和部2011は、図17に
示す第1排他的論理和部4111と同様である。第2排
他的論理和部2012は、図17に示す第2排他的論理
和部4112と同様である。データ変換部301は、図
4に示すデータ変換部300と同様である。
The first exclusive OR section 2011 is the same as the first exclusive OR section 4111 shown in FIG. The second exclusive OR unit 2012 is the same as the second exclusive OR unit 4112 shown in FIG. Data conversion section 301 is the same as data conversion section 300 shown in FIG.

【0064】図6は、図4に示すデータ変換部300の
詳細な構成を示す図である。データ変換部300は、換
字テーブルデータ保管部3001、第1テーブル値変換
部3002、第2テーブル値変換部3003、第3テー
ブル値変換部3004、第1加算部3005、第2加算
部3006及び排他的論理和部3007を備える。
FIG. 6 is a diagram showing a detailed configuration of the data conversion unit 300 shown in FIG. The data conversion unit 300 includes a substitution table data storage unit 3001, a first table value conversion unit 3002, a second table value conversion unit 3003, a third table value conversion unit 3004, a first addition unit 3005, a second addition unit 3006, and exclusion. The logical OR unit 3007 is provided.

【0065】32ビットの入力データS0は、各8ビッ
トの4組に分割される。換字テーブルデータ保管部30
01は、入力される8Kビットの換字テーブルデータ
を、上位から32ビットずつの256個のテーブル値に
分割して保管し、S0が4分割された各8ビットの入力
それぞれに基づいて、この256個のテーブル値の4個
を特定して出力する。ここでは、換字テーブルデータ保
管部3001が保管する各32ビットのテーブル値を上
位から順に、Tab[0],Tab[1],…,Tab
[255]とする。また、換字テーブルデータ保管部3
001に入力されるS0が分割された各8ビットを、上
位から順にA3,A2,A1,A0とし、対応する出力
をB3,B2,B1,B0とする。
The 32-bit input data S0 is divided into four sets each having 8 bits. Substitution table data storage unit 30
01 stores the input 8K-bit substitution table data by dividing it into 256 table values of 32 bits each from the higher order, and based on each of the 8-bit inputs obtained by dividing S0 into four, the 256 bits are stored. The four table values are specified and output. Here, Tab [0], Tab [1],..., And Tab [0], Tab [1],.
[255]. Also, the substitution table data storage unit 3
The eight bits obtained by dividing S0 input to 001 are A3, A2, A1, and A0 in the order from the upper bit, and the corresponding outputs are B3, B2, B1, and B0.

【0066】第1テーブル値変換部3002は、入力さ
れる32ビットのテーブル値B2を、上位方向へ1ビッ
トの巡回ビットシフト変換して、32ビットの変換デー
タC2を出力する。第2テーブル値変換部3003は、
入力される32ビットのテーブル値B1を、上位方向へ
2ビットの巡回ビットシフト変換して、32ビットの変
換データC1を出力する。
The first table value converter 3002 performs a one-bit cyclic bit shift conversion of the input 32-bit table value B2 in the upper direction, and outputs 32-bit conversion data C2. The second table value conversion unit 3003
The input 32-bit table value B1 is subjected to a 2-bit cyclic bit shift conversion in the upper direction to output 32-bit conversion data C1.

【0067】第3テーブル値変換部3004は、入力さ
れる32ビットのテーブル値B0を、上位方向へ3ビッ
トの巡回ビットシフト変換して、32ビットの変換デー
タC0を出力する。第1加算部3005は、換字テーブ
ルデータ保管部3001が出力する32ビットのテーブ
ル値B3と、第1テーブル値変換部3002が出力する
32ビットのテーブル値C2とを算術加算演算し、32
ビット目以上の繰り上がり分を無視して32ビットのデ
ータD0を出力する。
The third table value converter 3004 performs a 3-bit cyclic bit shift conversion of the input 32-bit table value B0 in the upper direction, and outputs 32-bit conversion data C0. The first addition unit 3005 performs an arithmetic addition operation on the 32-bit table value B3 output from the substitution table data storage unit 3001 and the 32-bit table value C2 output from the first table value conversion unit 3002,
It outputs 32-bit data D0 ignoring the carry over bits.

【0068】これを式に表すと、 D0=(B3 + C2) mod (2^32) となる。排他的論理和部3007は、上記D0と第2テ
ーブル値変換部3003が出力する32ビットのテーブ
ル値C1とを対象に排他的論理和を行なって、32ビッ
トのデータD1を出力する。
This can be expressed as follows: D0 = (B3 + C2) mod (2 ^ 32) The exclusive OR unit 3007 performs an exclusive OR operation on the D0 and the 32-bit table value C1 output by the second table value conversion unit 3003, and outputs 32-bit data D1.

【0069】これを式に表すと、 D1=D0(+)C1 となる。第2加算部3006は、上記D1と第3テーブ
ル値変換部3004が出力する32ビットのテーブル値
C0とを算術加算演算し、32ビット目以上の繰り上が
り分を無視して32ビットのデータD2を出力する。
This can be expressed as follows: D1 = D0 (+) C1 The second adder 3006 performs an arithmetic addition operation on the D1 and the 32-bit table value C0 output from the third table value converter 3004, and ignores the carry of the 32nd bit or more, and ignores the 32-bit data D2. Is output.

【0070】これを式に表すと、 D2=(D1 + C0) mod (2^32) となる。第2加算部3006の出力D2が、データ変換
部300の出力S1である。以下に、データ変換部30
0の動作例を示す。
When this is expressed by an equation, D2 = (D1 + C0) mod (2 ^ 32). The output D2 of the second adder 3006 is the output S1 of the data converter 300. Hereinafter, the data conversion unit 30
An operation example of 0 is shown.

【0071】(1)入力された8Kビット(テーブル値
32ビット×256個)の換字テーブルデータが、換字
テーブルデータ保管部3001に保管される。 (2)入力された32ビットの入力データが8ビットず
つの4組に分割される。ここで分割される入力データは
上位から順に、A3,A2,A1,A0である (3)換字テーブルデータ保管部3001は、S0が4
分割された各8ビットの入力それぞれに基づいて、この
256個のテーブル値の4個を特定し、各32ビットの
テーブル値を4個出力する。ここで出力されるデータ
は、B3,B2,B1,B0である。
(1) The input 8K-bit (32-bit table value × 256) substitution table data is stored in the substitution table data storage unit 3001. (2) The input 32-bit input data is divided into four sets each having 8 bits. The input data divided here are A3, A2, A1, and A0 in order from the higher order. (3) The substitution table data storage unit 3001
Based on each of the divided 8-bit inputs, four of the 256 table values are specified, and four 32-bit table values are output. The data output here is B3, B2, B1, B0.

【0072】(4)第1テーブル値変換部3002がテ
ーブル値B2を上位方向へ1ビットの巡回ビットシフト
変換して変換データC2を出力し、第2テーブル値変換
部3003がテーブル値B1を上位方向へ2ビットの巡
回ビットシフト変換して変換データC1を出力し、第3
テーブル値変換部3004がテーブル値B0を上位方向
へ3ビットの巡回ビットシフト変換して変換データC0
を出力する。
(4) The first table value converter 3002 performs a one-bit cyclic bit shift conversion of the table value B2 in the upper direction and outputs conversion data C2, and the second table value converter 3003 converts the table value B1 to the higher order. The data is subjected to cyclic bit shift conversion of 2 bits in the direction, and converted data C1 is output.
The table value conversion unit 3004 performs a 3-bit cyclic bit shift conversion of the table value B0 in the upper direction to convert the table value B0
Is output.

【0073】(5)第1加算部3005が、テーブル値
B3とテーブル値C2とを算術加算演算し、繰り上がり
分を無視して下位32ビットのデータD0を出力する。 (6)排他的論理和部3007が、上記D0とテーブル
値C1とを対象に排他的論理和を行ない32ビットのデ
ータD1を出力する。 (7)第2加算部3006が、上記D1とテーブル値C
0とを算術加算演算し、繰り上がり分を無視して下位3
2ビットのデータD2(=S1)を出力する。
(5) The first adder 3005 performs an arithmetic addition operation on the table value B3 and the table value C2, and outputs the lower 32 bits of data D0 ignoring the carry. (6) The exclusive OR unit 3007 performs exclusive OR on the D0 and the table value C1, and outputs 32-bit data D1. (7) The second adder 3006 calculates the D1 and the table value C
Arithmetic addition of 0 and the lower 3
It outputs 2-bit data D2 (= S1).

【0074】上記に説明した様なデータ撹乱部101を
備えたデータ暗号化方式の安全性は、データ変換部30
0での変換操作のデータ撹乱機能に大きく依存してい
る。データ変換部300は、1つの換字テーブルデータ
保管部3001を用いて4個のテーブル値を得、そのう
ち3個に第1〜第3テーブル値変換部3002〜300
4でそれぞれシフトビット数が異なる巡回ビットシフト
変換をするので、1つの換字テーブルデータでありなが
ら、4種類の換字テーブルデータ保管部を用いる場合に
準ずる高い安全性が得られる。
The security of the data encryption system having the data disturbing unit 101 as described above
The conversion operation at 0 depends heavily on the data perturbation function. The data conversion unit 300 obtains four table values using one substitution table data storage unit 3001, and three of the table values are first to third table value conversion units 3002 to 300.
Since the cyclic bit shift conversion in which the number of shift bits is different in 4 is performed, high security equivalent to the case where four types of substitution table data storage units are used can be obtained even though one substitution table data is used.

【0075】よって、暗号解読や能動的な不正行為に対
して強くなっている。図5に示したデータ変換部301
の詳細な構成は、データ変換部300と同様なので、そ
の説明を省略する。以下に、図4に示すデータ撹乱部1
01で暗号化された平文データが図5に示すデータ撹乱
部201で復号化される原理について説明する。
Therefore, it is more resistant to decryption and active fraud. Data conversion unit 301 shown in FIG.
Is similar to that of the data conversion unit 300, and a description thereof will be omitted. The data disturbance unit 1 shown in FIG.
The principle that the plaintext data encrypted at 01 is decrypted by the data disrupting unit 201 shown in FIG. 5 will be described.

【0076】先に説明したように、図4に示すデータ撹
乱部101中のX1、X0、Y1、Y0、S0、及び、
S1の間には以下のような関係が成り立つ。以下、32
ビットの部分鍵データをKi、8Kビットの換字テーブ
ルデータをR、(+)を排他的論理和演算とする。また
ここで、F(R,α)をテーブル値がRで入力データが
αである時のデータ変換部300の出力とする。
As described above, X1, X0, Y1, Y0, S0 and S0 in the data disturbance unit 101 shown in FIG.
The following relationship is established between S1. Below, 32
Bit partial key data is Ki, 8K-bit substitution table data is R, and (+) is exclusive OR operation. Here, F (R, α) is the output of the data conversion unit 300 when the table value is R and the input data is α.

【0077】 S0=Ki(+)X1 −(式4) S1=F(R,S0) −(式5) Y1=S1(+)X0 −(式6) Y0=S0 −(式7) 図5に示すデータ撹乱部201中のZ1、Z0、W1、
W0、及び、T1の間には以下のような関係が成り立
つ。
S0 = Ki (+) X1− (Equation 4) S1 = F (R, S0) − (Equation 5) Y1 = S1 (+) X0− (Equation 6) Y0 = S0− (Equation 7) Z1, Z0, W1, in the data disturbance unit 201 shown in FIG.
The following relationship is established between W0 and T1.

【0078】 T1=F(R,Z0) −(式8) W1=Ki(+)Z0 −(式9) W0=T1(+)Z1 −(式10) ここで、データ撹乱部101の出力データをデータ撹乱
部201の入力データとする場合を考える。つまり、 Y1=Z1 −(式11) Y0=Z0 −(式12) とする。
T1 = F (R, Z0) − (Equation 8) W1 = Ki (+) Z0− (Equation 9) W0 = T1 (+) Z1− (Equation 10) Here, output data of the data disturbance unit 101 Is assumed as input data of the data disturbance unit 201. That is, Y1 = Z1− (Equation 11) Y0 = Z0− (Equation 12)

【0079】(1)(式7)と(式12)から Y0=Z0=S0 −(式13) (2)(式13)より、(式9)は W1=Ki(+)S0 −(式14) (3)ここで以下のような排他的論理和の性質を利用す
る。
(1) From (Equation 7) and (Equation 12): Y0 = Z0 = S0− (Equation 13) From (2) (Equation 13), (Equation 9) is obtained by W1 = Ki (+) S0− (Equation 9) 14) (3) Here, the following property of exclusive OR is used.

【0080】 β(+){β(+)γ}=γ −(式15) (式14)に(式4)を代入し、(式15)を用いる
と、 W1=Ki(+){Ki(+)X1}=X1 −(式16) (4)(式8)と(式13)から T1=F(R,S0) −(式17) (5)(式17)と(式5)から S1=T1 −(式18) (6)(式11)と(式18)から(式10)は W0=S1(+)Y1 −(式19) (7)(式6)を(式19)に代入し、(式15)を用
いると W0=S1(+){S1(+)X0}=X0 −(式20) (式16)と(式20)とから、データ撹乱部101で
暗号化された平文データがデータ撹乱部201で復号化
されることがわかる。
Β (+) {β (+) γ} = γ− (Equation 15) By substituting (Equation 4) into (Equation 14) and using (Equation 15), W1 = Ki (+) {Ki (+) X1} = X1− (Expression 16) (4) From (Expression 8) and (Expression 13), T1 = F (R, S0) − (Expression 17) (5) (Expression 17) and (Expression 5) From S1 = T1− (Equation 18) (6) From (Equation 11) and (Equation 18) (Equation 10), W0 = S1 (+) Y1− (Equation 19) (7) (Equation 6) is replaced by (Equation 19) ) And using (Equation 15), W0 = S1 (+) {S1 (+) X0} = X0-(Equation 20) From the (Equation 16) and (Equation 20), the data It can be seen that the transformed plaintext data is decoded by the data disrupting unit 201.

【0081】以下に、図2に示すデータ暗号化装置10
で暗号化された平文データが図3に示すデータ復号化装
置20で復号化される原理について説明する。まず、デ
ータ暗号化装置10において、256ビットの鍵データ
K及び8Kビットの換字テーブルデータRを用いて、平
文ブロックAに暗号処理を施して暗号文ブロックAを生
成する動作について説明する。
The data encryption device 10 shown in FIG.
The principle of decrypting the plaintext data encrypted by the data decryption device 20 shown in FIG. 3 will be described. First, an operation of generating a ciphertext block A by performing an encryption process on the plaintext block A using the 256-bit key data K and the 8K-bit substitution table data R in the data encryption device 10 will be described.

【0082】鍵制御部103により、データ撹乱部10
1に32ビットの部分鍵データが、K0,K1,…,K
6,K7の順で入力される。また、平文ブロックAの暗
号処理中は、1組の換字テーブルデータRが繰り返し用
いられる。データ撹乱部101は、部分鍵データK0及
び換字テーブルデータRを用いて平文ブロックAにデー
タ撹乱を施して中間ブロックA1を生成し、部分鍵デー
タK1及び換字テーブルデータRを用いて中間ブロック
A1にデータ撹乱を施して中間ブロックA2を生成す
る。
The key controller 103 controls the data disturber 10
, K0, K1,..., K
6 and K7. Further, during the encryption processing of the plaintext block A, one set of substitution table data R is repeatedly used. The data disturbance unit 101 performs data disturbance on the plaintext block A using the partial key data K0 and the substitution table data R to generate an intermediate block A1, and generates the intermediate block A1 using the partial key data K1 and the substitution table data R. The data is disturbed to generate the intermediate block A2.

【0083】以下同様に部分鍵データK2〜K7及び換
字テーブルデータRを用いて中間ブロックA2〜A6に
データ撹乱を施して暗号文ブロックAを生成する。次
に、データ復号化装置20において、上記鍵データK及
び上記換字テーブルデータRを用いて、データ暗号化装
置10が生成した暗号文ブロックAに暗号処理を施して
復号文ブロックA(=平文ブロックA)を生成する動作
について説明する。
Similarly, the intermediate blocks A2 to A6 are subjected to data disturbance using the partial key data K2 to K7 and the substitution table data R to generate a ciphertext block A. Next, in the data decryption device 20, the ciphertext block A generated by the data encryption device 10 is subjected to encryption processing by using the key data K and the substitution table data R, and the decrypted text block A (= plaintext block The operation for generating A) will be described.

【0084】鍵制御部203により、データ撹乱部20
1に32ビットの部分鍵データが、K7,K6,…,K
1,K0の順で入力される。また、暗号文ブロックAの
暗号処理中は、1組の換字テーブルデータRが繰り返し
用いられる。データ撹乱部201は、部分鍵データK7
及び換字テーブルデータRを用いて暗号文ブロックAに
データ撹乱を施して中間ブロックA6を生成し、部分鍵
データK6及び換字テーブルデータRを用いて中間ブロ
ックA6にデータ撹乱を施して中間ブロックA5を生成
する。
The key controller 203 controls the data disturber 20
1 has 32 bits of partial key data, K7, K6,.
1 and K0. Further, during the encryption processing of the ciphertext block A, one set of substitution table data R is repeatedly used. The data disturber 201 stores the partial key data K7
Then, data is disturbed on the ciphertext block A using the substitution table data R to generate an intermediate block A6, and data is disturbed on the intermediate block A6 using the partial key data K6 and the substitution table data R to generate the intermediate block A5. Generate.

【0085】以下同様に部分鍵データK5〜K0及び換
字テーブルデータRを用いて中間ブロックA5〜A1に
データ撹乱を施して復号文データAを生成する。以上の
ことから、図2に示すデータ暗号化装置10で暗号化さ
れた平文データが図3に示すデータ復号化装置20で復
号化されることがわかる。ここで、データ暗号化装置1
0の安全性について述べる。
Similarly, the intermediate blocks A5 to A1 are subjected to data disturbance using the partial key data K5 to K0 and the substitution table data R to generate decrypted text data A. From the above, it can be seen that the plaintext data encrypted by the data encryption device 10 shown in FIG. 2 is decrypted by the data decryption device 20 shown in FIG. Here, the data encryption device 1
0 is described.

【0086】図18に示すような従来のデータ変換部3
113と比較して、図6に示すような本実施の形態のデ
ータ変換部300は、換字テーブルデータを共有してい
るにもかかわらず、第1テーブル値変換部3002〜第
3テーブル値変換部3004を追加することで、擬似的
に4つの換字テーブルデータを保持するのと同等の効果
を得ている。例えば、図6においてA2=A3の場合に
は、換字テーブルデータが共有なのでB2=B3となる
が、B2は第1テーブル値変換部3002によって別の
値C2に変換されるので、第1加算部3005が同じ値
を算術加算演算する事はない。従って、この様な暗号シ
ステムはデータ撹乱能力が低くならず、安全性も保たれ
る。
A conventional data converter 3 as shown in FIG.
Compared with 113, the data conversion unit 300 of the present embodiment as shown in FIG. 6 has the first table value conversion unit 3002 to the third table value conversion unit despite sharing the substitution table data. By adding 3004, the same effect as holding pseudo four substitution table data is obtained. For example, when A2 = A3 in FIG. 6, the substitution table data is shared, so that B2 = B3. However, since B2 is converted into another value C2 by the first table value conversion unit 3002, the first addition unit 3005 does not perform the arithmetic addition operation on the same value. Therefore, such an encryption system does not have a low data disturbing ability and maintains security.

【0087】従って、本実施の形態のデータ変換部30
0を有する暗号処理装置は、安全性を損なうことなく、
従来のデータ変換部3113を有する従来の暗号処理装
置よりも保管する換字テーブルデータのデータ量を1/
4に削減している。以上のように、本発明は、Blow
fish暗号方式などの換字テーブルデータを用いるブ
ロック暗号方式において、保管すべきデータ量を大幅に
削減することでハードウェア/ソフトウェア両面での実
装を簡便とし、且つ、高い安全性を保っている。 (実施の形態2)本発明の実施の形態2は、1つの換字
テーブルデータを使用して1つの換字データを出力し、
異なる回数のローテーションや異なる定数の足し算等の
固定変換を、1つの出力にそれぞれ施して複数の出力を
得、それらを使用することで、換字テーブルデータのデ
ータ量を削減しつつ安全性を損なわないことを実現する
暗号処理装置である。
Therefore, the data conversion unit 30 of the present embodiment
The cryptographic processing device having 0 does not impair security.
The data amount of the substitution table data to be stored is smaller than that of the conventional encryption processing apparatus having the conventional data conversion unit 3113 by 1 /.
It has been reduced to 4. As described above, the present invention provides
In the block cipher system using the substitution table data such as the fish cipher system, the amount of data to be stored is greatly reduced, thereby simplifying the implementation in both hardware and software and maintaining high security. (Embodiment 2) Embodiment 2 of the present invention outputs one substitution data using one substitution table data,
A fixed conversion such as a different number of rotations or addition of different constants is applied to one output to obtain a plurality of outputs, and by using them, the data amount of the substitution table data is reduced and the security is not impaired. This is a cryptographic processing device that realizes this.

【0088】本発明の実施の形態2は実施の形態1のデ
ータ変換部300がデータ変換部500に、データ変換
部301がデータ変換部501に入れ代わる。また、用
いられる換字テーブルデータのデータ量が実施の形態2
では2Kビットであり、実施の形態1の4分の1となっ
ている。図7は、図4に示すデータ変換部500の詳細
な構成を示す図である。
In the second embodiment of the present invention, the data converter 300 of the first embodiment replaces the data converter 500, and the data converter 301 replaces the data converter 501. In addition, the data amount of the substitution table data used in the second embodiment
Is 2K bits, which is a quarter of that of the first embodiment. FIG. 7 is a diagram showing a detailed configuration of the data conversion unit 500 shown in FIG.

【0089】データ変換部500は、換字テーブルデー
タ保管部5001、第1入力変換部5002、第2入力
変換部5003、第3入力変換部5004、第4入力変
換部5005、第1排他的論理和部5006、第2排他
的論理和部5007、第3排他的論理和部5008、第
1テーブル値変換部5009、第2テーブル値変換部5
010、第3テーブル値変換部5011、第1加算部5
012、第2加算部5013、第3値加算部5014及
び第4加算部5015を備える。
The data conversion unit 500 includes a substitution table data storage unit 5001, a first input conversion unit 5002, a second input conversion unit 5003, a third input conversion unit 5004, a fourth input conversion unit 5005, a first exclusive OR. Section 5006, second exclusive OR section 5007, third exclusive OR section 5008, first table value conversion section 5009, second table value conversion section 5
010, third table value converter 5011, first adder 5
012, a second adder 5013, a third value adder 5014, and a fourth adder 5015.

【0090】入力されたデータ32ビットは、上位から
8ビットずつの4組に分割される。ここでは、S0が4
分割された各8ビットを、順にE3,E2,E1,E0
とする。第1入力変換部5002は、上記E3を、上位
方向へ1ビットの巡回ビットシフト変換して、8ビット
の変換データF3を出力する。
The input 32 bits of data are divided into four sets of 8 bits each from the uppermost bit. Here, S0 is 4
E8, E2, E1, E0
And The first input conversion unit 5002 performs a one-bit cyclic bit shift conversion of E3 in the upper direction, and outputs 8-bit conversion data F3.

【0091】第2入力変換部5003は、上記E2を、
上位方向へ2ビットの巡回ビットシフト変換して、8ビ
ットの変換データF2を出力する。第3入力変換部50
04は、上記E1を、上位方向へ3ビットの巡回ビット
シフト変換して、8ビットの変換データF1を出力す
る。第1排他的論理和部5006は、第1入力変換部5
002が出力する変換データF3と、第2入力変換部5
003が出力する変換データF2とを対象に排他的論理
和を行なって、8ビットのデータG2を出力する。
The second input conversion unit 5003 calculates E2 by
A 2-bit cyclic bit shift conversion is performed in the upper direction, and 8-bit conversion data F2 is output. Third input converter 50
04 performs a 3-bit cyclic bit shift conversion of E1 in the upper direction, and outputs 8-bit conversion data F1. The first exclusive OR unit 5006 includes a first input conversion unit 5
002 and the second input converter 5
An exclusive-OR operation is performed on the conversion data F2 output by 003 to output 8-bit data G2.

【0092】第2排他的論理和部5007は、第1排他
的論理和部5006が出力するデータG2と、第3入力
変換部5004が出力する変換データF1とを対象に排
他的論理和を行なって、8ビットのデータG1を出力す
る。第4入力変換部5005は、第2排他的論理和部5
007が出力するデータG1を、上位方向へ5ビットの
巡回ビットシフト変換して、8ビットの変換データF0
を出力する。
The second exclusive OR unit 5007 performs an exclusive OR operation on the data G2 output by the first exclusive OR unit 5006 and the conversion data F1 output by the third input conversion unit 5004. And outputs 8-bit data G1. The fourth input conversion unit 5005 includes a second exclusive OR unit 5
The data G1 output from the data 007 is subjected to cyclic bit shift conversion of 5 bits in the upper direction, and converted data F0 of 8 bits.
Is output.

【0093】第3排他的論理和部5008は、上記E0
と、第4入力変換部5005が出力する変換データF0
とを対象に排他的論理和を行なって、8ビットのデータ
G0を出力する。換字テーブルデータ保管部5001
は、入力される2Kビットの換字テーブルデータを、上
位から8ビットずつの256個のテーブル値に分割して
保管し、第3排他的論理和部5008が出力するデータ
G0に基づいて、この256個のテーブル値の1個を特
定して出力する。ここでは、この出力をテーブル値H0
とする。
The third exclusive OR section 5008 calculates the value of E0
And conversion data F0 output by the fourth input conversion unit 5005
And an exclusive-OR operation is performed on the data to output 8-bit data G0. Substitution table data storage unit 5001
Divides the input 2K-bit substitution table data into 256 table values of 8 bits each from the higher order and stores the table values. Based on the data G0 output by the third exclusive OR unit 5008, the 256 One of the table values is specified and output. Here, this output is used as the table value H0.
And

【0094】第1テーブル値変換部5009は、換字テ
ーブルデータ保管部5001が出力する8ビットのテー
ブル値H0を、上位方向へ1ビットの巡回ビットシフト
変換して、8ビットの変換データI2を出力する。第2
テーブル値変換部5010は、換字テーブルデータ保管
部5001が出力する8ビットテーブル値H0を、上位
方向へ2ビットの巡回ビットシフト変換して、8ビット
の変換データI1を出力する。
The first table value converter 5009 performs a one-bit cyclic bit shift conversion of the 8-bit table value H0 output from the substitution table data storage 5001 and outputs 8-bit conversion data I2. I do. Second
The table value conversion unit 5010 cyclically shifts the 8-bit table value H0 output from the substitution table data storage unit 5001 by 2 bits in the upper direction, and outputs 8-bit conversion data I1.

【0095】第3テーブル値変換部5011は、換字テ
ーブルデータ保管部5001が出力する8ビットのテー
ブル値H0を、上位方向へ3ビットの巡回ビットシフト
変換して、8ビットの変換データI0を出力する。第1
加算部5012は、第1入力変換部5002が出力する
8ビットの変換データF3と、換字テーブルデータ保管
部5001が出力する8ビットのテーブル値H0とを算
術加算演算し、8ビット目以上の繰り上がり分を無視し
て8ビットのデータJ0を出力する。
The third table value conversion unit 5011 performs a 3-bit cyclic bit shift conversion of the 8-bit table value H0 output from the substitution table data storage unit 5001 in the upper direction, and outputs 8-bit conversion data I0. I do. First
The addition unit 5012 performs an arithmetic addition operation on the 8-bit conversion data F3 output from the first input conversion unit 5002 and the 8-bit table value H0 output from the substitution table data storage unit 5001, and performs the repetition of the eighth bit or more. It outputs 8-bit data J0 ignoring the rise.

【0096】これを式に表すと、 J0=(F3 + H0) mod (2^8) となる。第2加算部5013は、第2入力変換部500
3が出力する8ビットの変換データF2と、第1テーブ
ル値変換部5009が出力する8ビットの変換データI
2とを算術加算演算し、8ビット目以上の繰り上がり分
を無視して8ビットのデータJ3を出力する。
This can be expressed as follows: J0 = (F3 + H0) mod (2 ^ 8) The second adder 5013 includes a second input converter 500
3 and the 8-bit conversion data I output by the first table value conversion unit 5009.
2 and an arithmetic addition operation is performed, and 8-bit data J3 is output ignoring the carry of the 8th bit or more.

【0097】これを式に表すと、 J3=(F2 + I2) mod (2^8) となる。第3加算部5014は、第3入力変換部500
4が出力する8ビットの変換データF1と、第2テーブ
ル値変換部5010が出力する8ビットの変換データI
1とを算術加算演算し、8ビット目以上の繰り上がり分
を無視して8ビットのデータJ2を出力する。
This can be expressed as follows: J3 = (F2 + I2) mod (2 ^ 8) The third adder 5014 includes a third input converter 500
4 and the 8-bit conversion data I output by the second table value conversion unit 5010.
An arithmetic addition operation of 1 is performed, and 8-bit data J2 is output ignoring carry-over of the 8th bit or more.

【0098】これを式に表すと、 J2=(F1 + I1) mod (2^8) となる。第4加算部5015は、上記E0と、第3テー
ブル値変換部5011が出力する8ビットの変換データ
I0とを算術加算演算し、8ビット目以上の繰り上がり
分を無視して8ビットのデータJ1を出力する。
This can be expressed as follows: J2 = (F1 + I1) mod (2 ^ 8) The fourth adder 5015 performs an arithmetic addition operation on the above E0 and the 8-bit conversion data I0 output from the third table value converter 5011, and ignores the carry-up of the 8th bit or more, and ignores the 8-bit data. J1 is output.

【0099】これを式に表すと、 J1=(E0 + I0) mod (2^8) となる。第2加算部5013の出力データJ3、第3加
算部5014の出力データJ2、第4加算部5015の
出力データJ1、及び、第1加算部5012の出力デー
タJ0を順に連結した32ビットのデータがデータ変換
部500の出力S1である。
This can be expressed as follows: J1 = (E0 + I0) mod (2 ^ 8) A 32-bit data in which output data J3 of the second addition unit 5013, output data J2 of the third addition unit 5014, output data J1 of the fourth addition unit 5015, and output data J0 of the first addition unit 5012 are sequentially connected is This is the output S1 of the data converter 500.

【0100】以下に、データ変換部500の動作例を示
す。 (1)入力された2Kビット(テーブル値8ビット×2
56個)の換字テーブルデータが、換字テーブルデータ
保管部5001に保管される。 (2)入力された32ビットの入力データが8ビットず
つの4組に分割される。ここで分割される入力データは
上位から順に、E3,E2,E1,E0である (3)第1入力変換部5002、第2入力変換部500
3、第3入力変換部5004、第4入力変換部500
5、第1排他的論理和部5006、第2排他的論理和部
5007、及び、第3排他的論理和部5008が、E
3,E2,E1,E0をビット演算して、8ビットのデ
ータG0を生成する。
Hereinafter, an operation example of the data conversion unit 500 will be described. (1) Input 2K bits (table value 8 bits × 2)
56) of substitution table data are stored in the substitution table data storage unit 5001. (2) The input 32-bit input data is divided into four sets each having 8 bits. The input data divided here are E3, E2, E1, and E0 in order from the higher order. (3) First input converter 5002, second input converter 500
3. Third input converter 5004, fourth input converter 500
5, the first exclusive OR unit 5006, the second exclusive OR unit 5007, and the third exclusive OR unit 5008
3, E2, E1, and E0 are bit-operated to generate 8-bit data G0.

【0101】(4)換字テーブルデータ保管部5001
が、データG0に基づいて256個のテーブル値の1個
を特定してテーブル値H0出力する。 (5)第1テーブル値変換部5009が、テーブル値H
0を上位方向へ1ビットの巡回ビットシフト変換して変
換データI2を出力し、第2テーブル値変換部5010
が、テーブル値H0を上位方向へ2ビットの巡回ビット
シフト変換して変換データI1を出力し、第3テーブル
値変換部5011が、テーブル値H0を上位方向へ3ビ
ットの巡回ビットシフト変換して変換データI0を出力
する。
(4) Substitution table data storage unit 5001
Specifies one of the 256 table values based on the data G0 and outputs the table value H0. (5) The first table value conversion unit 5009 outputs the table value H
0 is shifted upward by one bit in a cyclic bit manner and converted data I2 is output.
Transforms the table value H0 upward by 2 bits in a cyclic bit manner and outputs converted data I1. The third table value conversion unit 5011 converts the table value H0 upward by 3 bits in a cyclic bit shift manner. The conversion data I0 is output.

【0102】(6)第2加算部5013が変換データF
2と変換データI2とを算術加算演算し8ビット目以上
の繰り上がり分を無視して8ビットのデータJ3を出力
し、第3加算部5014が変換データF1と変換データ
I1とを算術加算演算し8ビット目以上の繰り上がり分
を無視して8ビットのデータJ2を出力し、第4加算部
5015がE0と変換データI0とを算術加算演算し8
ビット目以上の繰り上がり分を無視して8ビットのデー
タJ1を出力し、第1加算部5012が変換データF3
とテーブル値H0とを算術加算演算し8ビット目以上の
繰り上がり分を無視して8ビットのデータJ0を出力す
る。
(6) The second adder 5013 outputs the converted data F
2 and the converted data I2 are arithmetically operated to output 8-bit data J3 ignoring the carry of the 8th bit or more, and the third adder 5014 performs an arithmetic addition operation on the converted data F1 and the converted data I1. The fourth adder 5015 performs an arithmetic addition operation on E0 and the converted data I0, ignoring the carry of the eighth bit or more, and outputting the 8-bit data J2.
The first adder 5012 outputs 8-bit data J1 while ignoring the carry-over of the bit or more.
And the table value H0 are arithmetically added, and 8-bit data J0 is output ignoring the carry-over of the 8th bit or more.

【0103】(7)各8ビットのデータJ3、データJ
2、データJ1、及び、データJ0を順に連結し、32
ビットのデータ(=S1)を出力する。上記に説明した
様なデータ撹乱部101を備えたデータ暗号化方式の安
全性は、データ変換部500での変換操作のデータ撹乱
機能に大きく依存している。データ変換部500は、1
つの換字テーブルデータ保管部5001を用いて1個の
テーブル値を得、第1〜第3テーブル値変換部5009
〜5011で巡回ビットシフト変換して3個の変換デー
タを得、テーブル値と3個の変換データとを連結して出
力データを生成するので、テーブル値が1/4の1つの
換字テーブルデータでありながら、4種類の換字テーブ
ルデータ保管部を用いる場合に準ずる高い安全性が得ら
れる。
(7) 8-bit data J3 and data J
2, the data J1 and the data J0 are sequentially connected, and 32
It outputs bit data (= S1). The security of the data encryption system including the data disturbance unit 101 as described above largely depends on the data disturbance function of the conversion operation in the data conversion unit 500. The data conversion unit 500
One table value is obtained by using one substitution table data storage unit 5001, and the first to third table value conversion units 5009 are obtained.
In step 5011, cyclic conversion is performed to obtain three pieces of conversion data, and concatenates the table value and the three pieces of conversion data to generate output data. Therefore, one substitution table data whose table value is 1/4 is used. Nevertheless, high security equivalent to the case where four types of substitution table data storage units are used can be obtained.

【0104】よって、暗号解読や能動的な不正行為に対
して強くなっている。図5に示したデータ変換部501
の詳細な構成は、データ変換部500と同様なので、そ
の説明を省略する。なお、本実施の形態1、2のデータ
暗号化装置10及びデータ復号化装置20の各構成部
は、EXOR(Exclusive-OR)等の論理回路を用いた専
用のハ−ドウェアで実現することができるだけでなく、
汎用のマイクロプロセッサ、制御プログラム、上記テー
ブルを格納したROM及び作業域としてのRAM等から
なるコンピュ−タシステム上でのソフトウェアによって
実現することができるのは言うまでもない。
Therefore, the system is more resistant to decryption and active fraud. Data converter 501 shown in FIG.
Is similar to that of the data conversion unit 500, and a description thereof will be omitted. Each component of the data encryption device 10 and the data decryption device 20 of the first and second embodiments can be realized by dedicated hardware using a logic circuit such as EXOR (Exclusive-OR). As well as
Needless to say, the present invention can be realized by software on a computer system including a general-purpose microprocessor, a control program, a ROM storing the above table, and a RAM as a work area.

【0105】また、本実施の形態1、2では、部分鍵3
2ビットと入力データ32ビット、及び32ビットのデ
ータ同士のデータ合成は、排他的論理和部1011,1
012,2011,2012で構成されているが、これ
はキャリー付きのフルアダー等の可逆な演算であれば排
他的論理和に限定されないことは言うまでもない。ただ
し、本実施の形態1においては第1排他的論理和部10
11及び第2排他的論理和部1012に用いる演算に対
して、第1排他的論理和部2011及び第2排他的論理
和部2012に用いる演算は逆演算を用い、本実施の形
態2においては第1排他的論理和部1011及び第2排
他的論理和部1012に用いる演算に対して、第1排他
的論理和部2011及び第2排他的論理和部2012に
用いる演算は逆演算を用いなければならない。さらに、
ここで用いる演算は、高速性を損なうことがない程度の
簡易なものが望ましい。
In the first and second embodiments, the partial key 3
The data combination of 2 bits, input data of 32 bits, and data of 32 bits is performed by the exclusive OR unit 1011, 1
012, 2011, and 2012. However, it is needless to say that this is not limited to exclusive OR if it is a reversible operation such as a full adder with carry. However, in the first embodiment, the first exclusive OR unit 10
The operation used for the first exclusive OR unit 2011 and the second exclusive OR unit 2012 uses the inverse operation, while the operation used for the 11th and the second exclusive OR unit 1012 uses the inverse operation. In contrast to the operation used for the first exclusive OR unit 1011 and the second exclusive OR unit 1012, the operation used for the first exclusive OR unit 2011 and the second exclusive OR unit 2012 must use the inverse operation. Must. further,
The calculation used here is desirably a simple one that does not impair the high-speed operation.

【0106】また、本実施の形態1、2で述べたデータ
暗号化装置10またはデータ復号化装置20において、
データ撹乱部101、データ撹乱部201への入力を繰
り返す回数を8回としているが、これは8回でなくても
よい。繰り返し回数が8回よりも少ない場合は、データ
暗号化装置10、データ復号化装置20に入力される鍵
データのビット数256ビットよりも少なくすることが
できる。一方、繰り返し回数が8回よりも多い場合は、
データ暗号化装置10、データ復号化装置20に入力さ
れる鍵データのビット数256ビットよりも多くすれば
よい。また繰り返し回数が8回よりも多い場合でも、鍵
データを256ビットのままにして、分割された部分鍵
データを重複して使用することもできる。さらに、25
6ビットよりも少ない鍵データに対しては、前述のDE
S方式、FEAL方式にあるような部分鍵生成手段を用
いて、部分鍵を生成することも可能である。
Further, in the data encryption device 10 or the data decryption device 20 described in the first and second embodiments,
Although the number of times of repeating the input to the data disturbing unit 101 and the data disturbing unit 201 is set to eight, the number may not be eight. When the number of repetitions is less than 8, the number of bits of the key data input to the data encryption device 10 and the data decryption device 20 can be made smaller than 256 bits. On the other hand, if the number of repetitions is more than 8,
The number of bits of the key data input to the data encryption device 10 and the data decryption device 20 may be larger than 256 bits. Even when the number of repetitions is greater than 8, the key data can be left at 256 bits and the divided partial key data can be used repeatedly. In addition, 25
For key data less than 6 bits, the above-mentioned DE
It is also possible to generate a partial key by using a partial key generation means as in the S scheme or the FEAL scheme.

【0107】また、データ変換部300,301の第1
テーブル値変換部3002、第2テーブル値変換部30
03、第3テーブル値変換部3004、データ変換部5
00,501の第1入力変換部5002、第2入力変換
部5003、第3入力変換部5004、第4入力変換部
5005、第1テーブル値変換部5009、第2テーブ
ル値変換部5010、第3テーブル値変換部5011の
ビットシフト操作において、上位方向にシフトするビッ
ト数は本実施の形態1、2のビット数に限定されるもの
ではなく、同一データを入力する各部においてシフトす
るビット数が異なる値であればよい。さらに、シフトす
るビット数を部分鍵データによって決定されるようにす
れば、よりよいデータ撹乱機能を得ることができる。例
えば、32ビットの部分鍵データの内の0〜4ビットが
表す0〜31の数を第1テーブル値変換部3002でシ
フトするビット数とし、32ビットの部分鍵データの内
の8〜12ビットが表す0〜31の数を第2テーブル値
変換部3003でシフトするビット数とし、32ビット
の部分鍵データの内の16〜20ビットが表す0〜31
の数を第3テーブル値変換部3004でシフトするビッ
ト数とする。
The first of the data conversion units 300 and 301
Table value converter 3002, second table value converter 30
03, third table value converter 3004, data converter 5
00, 501, the first input converter 5002, the second input converter 5003, the third input converter 5004, the fourth input converter 5005, the first table value converter 5009, the second table value converter 5010, and the third In the bit shift operation of table value conversion section 5011, the number of bits shifted upward is not limited to the number of bits in Embodiments 1 and 2, and the number of bits shifted in each section that inputs the same data is different. Any value is acceptable. Further, if the number of bits to be shifted is determined by the partial key data, a better data disturbing function can be obtained. For example, the number of bits 0 to 31 represented by bits 0 to 4 in the 32-bit partial key data is set as the number of bits to be shifted by the first table value conversion unit 3002, and 8 to 12 bits of the 32-bit partial key data Is the number of bits to be shifted by the second table value conversion unit 3003, and 0 to 31 represented by 16 to 20 bits of the 32-bit partial key data.
Is the number of bits to be shifted by the third table value converter 3004.

【0108】また、データ変換部300,301の第1
テーブル値変換部3002、第2テーブル値変換部30
03、第3テーブル値変換部3004、データ変換部5
00,501の第1テーブル値変換部5009、第2テ
ーブル値変換部5010、第3テーブル値変換部501
1の変換手段は、本実施の形態1、2の構成に限られる
ものではなく、入力データから出力データを一意に特定
できる変換であればよい。つまり、出力データから変換
前の入力データに復元することができない一方向性変換
であってもよい。ただし、同一のデータ変換部内で用い
る変換手段はそれぞれ異なる必要がある。さらに、ここ
で用いる演算は、高速性を損なうことがない程度の簡易
なものが望ましい。
The first of the data conversion units 300 and 301
Table value converter 3002, second table value converter 30
03, third table value converter 3004, data converter 5
00, 501, a first table value converter 5009, a second table value converter 5010, and a third table value converter 501
The first conversion means is not limited to the configurations of the first and second embodiments, but may be any conversion capable of uniquely specifying output data from input data. That is, one-way conversion that cannot restore output data to input data before conversion may be used. However, the conversion means used in the same data conversion unit must be different. Further, the calculation used here is desirably a simple one that does not impair the high speed.

【0109】さらに、本実施の形態1、2では、各排他
的論理和部及び各データ変換部は、32ビットデータ又
は8ビットデータを変換単位としたが、本発明はこのよ
うなビット数に限定されるものではない。例えば、本発
明を汎用の64ビットCPUで実現する場合であれば6
4ビットデータを変換単位としたり、逆に処理の高速性
を考慮し、半分のビット数のデータ (例えば、下位1
6ビットデータ)のみを変換するものであってもよい。
Further, in the first and second embodiments, each exclusive-OR unit and each data conversion unit use 32-bit data or 8-bit data as a conversion unit. It is not limited. For example, if the present invention is realized by a general-purpose 64-bit CPU, 6
In consideration of the high-speed processing, 4-bit data is used as a conversion unit.
(6 bit data) alone.

【0110】また、本実施の形態1、2では、3個のテ
ーブル値変換部により異なる固定変換を施されて得られ
た3個の変換データと、固定変換を施されない1個のテ
ーブル値とを、4種類の換字テーブルデータ保管部を用
いて得られた4個のテーブル値に準ずるものとして用い
ているが、4個のテーブル値変換部により異なる固定変
換を施されて得られた4個の変換データを用いてもよ
い。ただし4個のテーブル値変換部を用いる場合におけ
る固定変換は無変換を含むものとする。ここで、4個の
テーブル値変換部の内の何れか1つによる固定変換が無
変換である場合には、3個のテーブル値変換部を用いる
場合と同等となる。無変換とは、例えば固定変換が巡回
ビットシフト変換ならばシフト数がゼロということであ
り、異なる定数の足し算ならば定数がゼロということで
ある。要するに、固定変換を施される前のテーブル値が
仮に同じデータであったとしても、それぞれ異なるデー
タが得られる様な変換を施すテーブル値変換部であれば
よい。
Further, in the first and second embodiments, three conversion data obtained by performing different fixed conversions by three table value conversion units, and one table value not subjected to the fixed conversion are stored. Are used in accordance with the four table values obtained using the four types of substitution table data storage units, but the four table values obtained by performing different fixed conversions by the four table value conversion units are used. May be used. However, the fixed conversion in the case of using four table value conversion units includes no conversion. Here, when the fixed conversion by any one of the four table value conversion units is no conversion, this is equivalent to the case where three table value conversion units are used. The non-conversion means that the shift number is zero if the fixed conversion is a cyclic bit shift conversion, and that the constant is zero if the addition of different constants is performed. In short, even if the table values before being subjected to the fixed conversion are the same data, any table value conversion unit that performs conversion so as to obtain different data may be used.

【0111】また、本実施の形態1、2では、4種類の
換字テーブルデータ保管部を用いて得られた4個のテー
ブル値に準ずる4個のデータを、3個又は4個のテーブ
ル値変換部を用いて出力するが、本発明はこのような個
数に限定されるものではない。 (実施の形態3)本発明の実施の形態3は、実鍵データ
に前の暗号文ブロックを用いて変換を施すことにより入
力鍵データを更新し、換字テーブルデータは更新しない
暗号処理装置であり、換字テーブルデータの生成頻度を
削減することで高速な処理を実現し、且つ、入力鍵デー
タを更新することで安全性を損なわないことを実現する
暗号処理装置である。
In the first and second embodiments, four data values corresponding to four table values obtained by using four types of substitution table data storage units are converted into three or four table value conversion values. However, the present invention is not limited to such a number. (Embodiment 3) Embodiment 3 of the present invention is a cryptographic processing apparatus that updates input key data by performing conversion on real key data using a previous ciphertext block and does not update substitution table data. This is a cryptographic processing apparatus that realizes high-speed processing by reducing the generation frequency of substitution table data and that does not impair security by updating input key data.

【0112】図8は、本発明の実施の形態3における暗
号通信システムの構成を示す図である。図8に示す暗号
通信システムは、送信機6及び受信機7を備える。送信
機6は、データ暗号化装置60及び送信部61を備え
る。データ暗号化装置60は、64ビット×10組の暗
号化鍵データを用いて、64ビット単位で平文データに
暗号処理を施して暗号文データを生成する。ここで平文
データは、例えばデジタル符号化された音声または画像
情報等であり、暗号化鍵データは、予め送信機6と受信
機7とが秘密に共有するものである。
FIG. 8 is a diagram showing a configuration of a cryptographic communication system according to the third embodiment of the present invention. 8 includes a transmitter 6 and a receiver 7. The transmitter 6 includes a data encryption device 60 and a transmission unit 61. The data encryption device 60 performs encryption processing on the plaintext data in 64-bit units using 64-bit × 10 sets of encryption key data to generate ciphertext data. Here, the plaintext data is, for example, digitally encoded audio or image information, and the encryption key data is secretly shared between the transmitter 6 and the receiver 7 in advance.

【0113】送信部61は、データ暗号化装置60が生
成した暗号文データを、並列to直列変換、変調及び増幅
して生成した送信信号を伝送路8に送出する。受信機7
は、データ復号化装置70及び受信部71を備える。受
信部71は、送信部61から送出された送信信号を伝送
路8を介して受信し、送信部61と逆の処理を施して暗
号文データを復元する。
The transmitting section 61 transmits a transmission signal generated by parallel-to-serial conversion, modulation and amplification of the ciphertext data generated by the data encryption device 60, to the transmission line 8. Receiver 7
Includes a data decoding device 70 and a receiving unit 71. The receiving unit 71 receives the transmission signal transmitted from the transmitting unit 61 via the transmission line 8 and performs processing reverse to that of the transmitting unit 61 to restore the ciphertext data.

【0114】データ復号化装置70は、64ビット×1
0組の暗号化鍵データを用いて、64ビット単位で暗号
文データに暗号処理を施して復号文データ(=平文デー
タ)を生成する。ここで生成された復号文データは、例
えばデジタル符号化された音声又は画像情報等であり、
専用のデコーダ(図示せず)でデコードされてスピーカ
又はディスプレイで再生される。
The data decoding device 70 is 64 bits × 1
Using 0 sets of encryption key data, encryption processing is performed on ciphertext data in 64-bit units to generate decryption data (= plaintext data). The decrypted text data generated here is, for example, digitally encoded voice or image information,
The data is decoded by a dedicated decoder (not shown) and reproduced by a speaker or a display.

【0115】図9は、図8に示すデータ暗号化装置60
の詳細な構成を示す図である。データ暗号化装置60
は、データ暗号化部601、換字テーブルデータ生成部
602、入力鍵生成部603及び鍵制御部604を備え
る。鍵制御部604は、640ビット暗号化鍵データを
上位から64ビットずつ10組に分割して実鍵データK
[0]〜K[9]を生成し、データ暗号化部601にお
ける1024個の平文ブロックの処理毎に、実鍵データ
K[0]〜K[9]を順に換字テーブルデータ生成部6
02と入力鍵生成部603とに出力する。勿論、K
[9]の後はK[0]を出力する。
FIG. 9 shows the data encryption device 60 shown in FIG.
FIG. 3 is a diagram showing a detailed configuration of the embodiment. Data encryption device 60
Includes a data encryption unit 601, a substitution table data generation unit 602, an input key generation unit 603, and a key control unit 604. The key control unit 604 divides the 640-bit encrypted key data into 10
[0] to K [9] are generated, and each time the data encryption unit 601 processes 1024 plaintext blocks, the real key data K [0] to K [9] are sequentially converted to the substitution table data generation unit 6.
02 and the input key generation unit 603. Of course, K
After [9], K [0] is output.

【0116】換字テーブルデータ生成部602は、鍵制
御部604から64ビットの実鍵データを入力した時に
のみ、Blowfish暗号方式に用いられている換字
テーブルデータ生成アルゴリズムに従って、32Kビッ
ト(テーブル値32ビット×1024個)の換字テーブ
ルデータを生成し、データ暗号化部601へ出力する。
Only when the 64-bit real key data is input from the key control unit 604, the substitution table data generation unit 602 uses the 32K bits (32-bit table value) according to the substitution table data generation algorithm used for the Blowfish encryption method. (* 1024) substitution character table data is generated and output to the data encryption unit 601.

【0117】入力鍵生成部603は、鍵制御部604か
ら64ビットの実鍵データを入力して保管し、データ暗
号化部601により暗号文ブロックが生成される毎に、
当該暗号文ブロックと保管している64ビットの実鍵デ
ータとを対象に排他的論理和演算を行ない、演算値を入
力鍵データとして次の平文ブロックに暗号処理を施す為
にデータ暗号化部601に出力する。なお、排他的論理
和演算を行なう場合において、最初の平文ブロックに暗
号処理を施す場合には、前の暗号文ブロックが存在しな
いので、64ビットの初期値IV(以下「初期ブロック
IV」と記す)と実鍵データとを対象に排他的論理和演
算を行ない、演算値を入力鍵データとして最初の平文ブ
ロックに暗号処理を施す為にデータ暗号化部601に出
力する。勿論、64ビットの初期ブロックIVは予め入
力鍵生成部603に保管されているものとする。
The input key generation unit 603 inputs and stores 64-bit real key data from the key control unit 604, and every time a ciphertext block is generated by the data encryption unit 601,
The data encryption unit 601 performs an exclusive OR operation on the ciphertext block and the stored 64-bit real key data, and performs an encryption process on the next plaintext block using the operation value as input key data. Output to When performing an exclusive OR operation, when performing encryption processing on the first plaintext block, since there is no previous ciphertext block, a 64-bit initial value IV (hereinafter referred to as “initial block IV”) is used. ) And the real key data are subjected to an exclusive OR operation, and the operation value is output to the data encryption unit 601 in order to perform encryption processing on the first plaintext block as input key data. Of course, it is assumed that the 64-bit initial block IV is stored in the input key generation unit 603 in advance.

【0118】また、排他的論理和演算を行なう場合にお
いて、例えば32個の暗号文ブロックが生成された後で
次の平文ブロックに暗号処理を施す場合には、当該暗号
文ブロックを対象とせず、初期ブロックIVと実鍵デー
タとを対象に排他的論理和演算を行なうものであっても
よい。即ち、この場合には、実鍵データと排他的論理和
演算を行なう対象が32回毎に初期化される。
In the case of performing an exclusive-OR operation, for example, when performing encryption processing on the next plaintext block after 32 ciphertext blocks have been generated, the ciphertext block is not targeted. An exclusive OR operation may be performed on the initial block IV and the real key data. That is, in this case, the target for performing an exclusive OR operation with the real key data is initialized every 32 times.

【0119】データ暗号化部601は、64ビットの入
力鍵データ及び32Kビットの換字テーブルデータを用
いて、64ビット単位で平文データに暗号処理を施して
暗号文データを生成する。また、換字テーブルデータ生
成部602から32Kビットの換字テーブルデータを入
力した場合にのみ、入力した換字テーブルデータを更新
する。
The data encryption unit 601 performs encryption processing on the plaintext data in 64-bit units using 64-bit input key data and 32K-bit substitution table data to generate ciphertext data. Only when 32K-bit substitution table data is input from the substitution table data generation unit 602, the input substitution table data is updated.

【0120】図10は、図8に示すデータ復号化装置7
0の詳細な構成を示す図である。データ復号化装置70
は、データ復号化部701、換字テーブルデータ生成部
702、入力鍵生成部703及び鍵制御部704とを備
える。鍵制御部704は、64ビット×10組の暗号化
鍵データを上位から64ビットずつ10組に分割して実
鍵データK[0]〜K[9]を生成し、データ復号化部
701における1024個の暗号文ブロックの処理毎
に、実鍵データK[0]〜K[9]を順に換字テーブル
データ生成部702と入力鍵生成部703とに出力す
る。勿論、K[9]の後はK[0]を出力する。
FIG. 10 shows the data decoding device 7 shown in FIG.
FIG. 3 is a diagram showing a detailed configuration of a 0. Data decryption device 70
Includes a data decryption unit 701, a substitution table data generation unit 702, an input key generation unit 703, and a key control unit 704. The key control unit 704 divides the 64-bit × 10 sets of encrypted key data into 10 sets of 64 bits each from the higher order to generate real key data K [0] to K [9]. The real key data K [0] to K [9] are sequentially output to the substitution table data generation unit 702 and the input key generation unit 703 for each processing of 1024 ciphertext blocks. Of course, after K [9], K [0] is output.

【0121】換字テーブルデータ生成部702は、鍵制
御部704から64ビットの実鍵データを入力した時に
のみ、Blowfish暗号方式に用いられている換字
テーブルデータ生成アルゴリズムに従って、32Kビッ
ト換字テーブルデータを生成し、データ復号化部701
へ出力する。入力鍵生成部703は、鍵制御部704か
ら64ビットの実鍵データを入力して保管し、データ復
号化部701により平文ブロックが生成される毎に、当
該平文ブロックに対応する暗号文ブロックと保管してい
る64ビットの実鍵データとを対象に排他的論理和演算
を行ない、演算値を入力鍵データとして次の暗号文ブロ
ックに暗号処理を施す為にデータ復号化部701に出力
する。なお、排他的論理和演算を行なう場合において、
最初の暗号文ブロックに暗号処理を施す場合には、前の
暗号文ブロックが存在しないので、初期ブロックIVと
実鍵データとを対象に排他的論理和演算を行ない、演算
値を入力鍵データとして最初の暗号文ブロックに暗号処
理を施す為にデータ復号化部701に出力する。勿論、
64ビットの初期ブロックIVは予め入力鍵生成部70
3に保管されているものとする。
The substitution table data generation unit 702 generates 32K-bit substitution table data according to the substitution table data generation algorithm used for the Blowfish encryption method only when 64-bit real key data is input from the key control unit 704. And a data decryption unit 701
Output to The input key generation unit 703 receives and stores 64-bit real key data from the key control unit 704, and each time a plaintext block is generated by the data decryption unit 701, a ciphertext block corresponding to the plaintext block is generated. An exclusive OR operation is performed on the stored 64-bit real key data, and the operation value is output to the data decryption unit 701 in order to perform encryption processing on the next cipher text block as input key data. When performing an exclusive OR operation,
When performing encryption processing on the first ciphertext block, since there is no previous ciphertext block, an exclusive OR operation is performed on the initial block IV and the real key data, and the operation value is used as input key data. The first ciphertext block is output to the data decryption unit 701 in order to perform encryption processing. Of course,
The 64-bit initial block IV is stored in the input key generation unit 70 in advance.
3

【0122】また、排他的論理和演算を行なう場合にお
いて、例えば32個の平文ブロックが生成された後で次
の暗号文ブロックに暗号処理を施す場合には、当該平文
ブロックに対応する暗号文ブロックを対象とせず、初期
ブロックIVと実鍵データとを対象に排他的論理和演算
を行なうものであってもよい。即ち、この場合には、実
鍵データと排他的論理和演算を行なう対象が32回毎に
初期化される。
In the case of performing an exclusive OR operation, for example, when the encryption processing is performed on the next ciphertext block after 32 plaintext blocks are generated, the ciphertext block corresponding to the plaintext block is used. , The exclusive OR operation may be performed on the initial block IV and the real key data. That is, in this case, the target for performing an exclusive OR operation with the real key data is initialized every 32 times.

【0123】データ復号化部701は、換字テーブルデ
ータ生成部702から32Kビットの換字テーブルデー
タを入力した場合にのみ、入力した換字テーブルデータ
を更新し、64ビットの入力鍵データ及び32Kビット
の換字テーブルデータを用いて、64ビット単位で暗号
文データに暗号処理を施して平文データを生成する。図
11は、図9に示すデータ暗号化部601の詳細な構成
を示す図である。
The data decryption unit 701 updates the input substitution table data only when the 32K-bit substitution table data is input from the substitution table data generation unit 702, and outputs the 64-bit input key data and the 32-Kbit substitution character. Using the table data, ciphertext data is subjected to encryption processing in 64-bit units to generate plaintext data. FIG. 11 is a diagram showing a detailed configuration of the data encryption unit 601 shown in FIG.

【0124】データ暗号化部601は、データ撹乱部6
011、段数制御部6012と、部分鍵生成部6013
を備える。部分鍵生成部6013は、Blowfish
暗号方式に用いられている部分鍵生成アルゴリズムに従
って、64ビットの入力鍵データから256ビットのビ
ットデータを生成し、生成されたビットデータを各32
ビットずつの8組に分割し、部分鍵SK0〜SK7とし
て保管する。
The data encryption unit 601 includes the data disruption unit 6
011, stage number control unit 6012, partial key generation unit 6013
Is provided. The partial key generation unit 6013 uses the Blowfish
According to the partial key generation algorithm used in the encryption method, 256-bit bit data is generated from the 64-bit input key data, and the generated bit data is
It is divided into eight sets of bits and stored as partial keys SK0 to SK7.

【0125】データ撹乱部6011は、32Kビットの
換字テーブルデータ、及び、部分鍵生成部6013が生
成した32ビットの部分鍵データを用いて、入力される
64ビットのデータにデータ撹乱を繰り返し施し、64
ビットのデータを出力する。段数制御部6012は、平
文ブロックから暗号文ブロックが生成されるまでに、デ
ータ撹乱部6011が繰り返し施すデータ撹乱の回数を
制御する。段数制御部7012は、平文ブロック毎にデ
ータ撹乱の回数をカウントし、予め定められた回数に満
たない場合にはデータ撹乱部6011の出力をデータ撹
乱部6011に入力してデータ撹乱を繰り返し、予め指
定された回数の場合には暗号文ブロックとして出力す
る。ここでは、予め指定された回数を8回とする。
The data disturbance section 6011 repeatedly performs data disturbance on the input 64-bit data using the 32 K-bit substitution table data and the 32-bit partial key data generated by the partial key generation section 6013. 64
Output bit data. The stage number control unit 6012 controls the number of times of data disturbance that the data disturbance unit 6011 repeatedly performs until a ciphertext block is generated from a plaintext block. The stage number control unit 7012 counts the number of data disturbances for each plaintext block. If the number of data disturbances is less than a predetermined number, the output of the data disturbance unit 6011 is input to the data disturbance unit 6011 to repeat data disturbance, and In the case of the specified number of times, it is output as a ciphertext block. Here, the number of times specified in advance is eight times.

【0126】ここで、平文ブロックの一回目のデータ撹
乱には部分鍵SK0が用いられ、以下、データ撹乱が繰
り返し施される度に、SK1,SK2,…,SK7と順
に用いられる。勿論、SK7の後はSK0が用いられ
る。図12は、図10に示すデータ復号化部701の詳
細な構成を示す図である。データ復号化部701は、デ
ータ撹乱部7011、段数制御部7012及び部分鍵生
成部7013を備える。
Here, the partial key SK0 is used for the first data disturbance of the plaintext block, and thereafter, each time the data disturbance is repeatedly performed, the partial key SK1, SK2,... Of course, SK0 is used after SK7. FIG. 12 is a diagram showing a detailed configuration of the data decoding unit 701 shown in FIG. The data decryption unit 701 includes a data disturbance unit 7011, a stage number control unit 7012, and a partial key generation unit 7013.

【0127】部分鍵生成部7013は、図11の部分鍵
生成部6013と同様である。データ撹乱部7011
は、図11のデータ撹乱部6011と同様である。段数
制御部7012は、暗号文ブロックから平文ブロックが
生成されるまでに、データ撹乱部7011が繰り返し施
すデータ撹乱の回数を制御する。段数制御部7012
は、暗号文ブロック毎にデータ撹乱の回数をカウント
し、予め定められた回数に満たない場合にはデータ撹乱
部7011の出力をデータ撹乱部7011に入力してデ
ータ撹乱を繰り返し、予め指定された回数の場合には平
文ブロックとして出力する。ここでは、予め指定された
回数を8回とする。
The partial key generation unit 7013 is the same as the partial key generation unit 6013 in FIG. Data disturbance unit 7011
Are the same as those of the data disturbance unit 6011 in FIG. The stage number control unit 7012 controls the number of times of data disturbance that the data disturbance unit 7011 repeatedly performs until a plaintext block is generated from a ciphertext block. Stage number control unit 7012
Counts the number of data disturbances for each ciphertext block. If the number of data disturbances is less than a predetermined number, the output of the data disturbance unit 7011 is input to the data disturbance unit 7011 to repeat the data disturbance, and the data disturbance is repeated. In the case of the number of times, it is output as a plaintext block. Here, the number of times specified in advance is eight times.

【0128】ここで、暗号文ブロックの一回目のデータ
撹乱には部分鍵SK7が用いられ、以下、データ撹乱が
繰り返し施される度に、SK6,SK5,…,SK0と
順に用いられる。勿論、SK0の後はSK7が用いられ
る。また、図11に示すデータ撹乱部6011は、図1
6に示すデータ撹乱部3011と同様であり、また、図
12に示すデータ撹乱部7011の構成は、図17に示
すデータ撹乱部4011と同様である。
Here, the partial key SK7 is used for the first data disturbance of the ciphertext block. Thereafter, each time the data disturbance is repeatedly performed, the partial key SK7 is used in the order of SK6, SK5,. Of course, SK7 is used after SK0. Further, the data disturbance unit 6011 shown in FIG.
6 is the same as the data disturbing unit 3011 shown in FIG. 6, and the configuration of the data disturbing unit 7011 shown in FIG. 12 is the same as that of the data disturbing unit 4011 shown in FIG.

【0129】図13は、ブロックNo.t、実鍵デー
タ、入力鍵データ、及び、換字テーブルデータの対応関
係を示す図である。ここで、ブロックNo.tとは、入
力される平文データを先頭から64ビット単位のブロッ
クに区切り、0から順に番号を付けたものである。また
図中の実鍵データ''−''は鍵制御部604から出力のな
い事を示している。また、(+)はビット毎の排他的論
理和の演算であり、IVは初期ブロックIVであり、C
tはブロックNo.tの平文ブロックに暗号処理を施し
て得られた暗号文ブロックを指す。また、TG(K
[i])は(i=0,1,…,9)、実鍵データK
[i]から生成された換字テーブルデータを指す。
FIG. FIG. 6 is a diagram showing a correspondence relationship among t, real key data, input key data, and substitution table data. Here, the block No. “t” is obtained by dividing input plaintext data into blocks of 64-bit units from the beginning and numbering them in order from 0. The real key data "-" in the figure indicates that there is no output from the key control unit 604. (+) Is an exclusive OR operation for each bit, IV is an initial block IV, and C
t is the block number. A ciphertext block obtained by subjecting a plaintext block of t to encryption processing. TG (K
[I]) is (i = 0, 1,..., 9) and the real key data K
Refers to the substitution table data generated from [i].

【0130】図13に示すように、入力鍵データは32
ブロック毎に、K[i](+)IV(i=0,1,…,
9)にリセットされる。また、1024ブロック毎に、
鍵制御部604から実鍵データが出力されることによっ
て、換字テーブルデータ及び入力鍵データが更新され
る。ここで、暗号通信システム全体の動作の一例を説明
する。
As shown in FIG. 13, the input key data is 32
For each block, K [i] (+) IV (i = 0, 1,...,
Reset to 9). Also, every 1024 blocks,
When the real key data is output from the key control unit 604, the substitution table data and the input key data are updated. Here, an example of the operation of the entire cryptographic communication system will be described.

【0131】図8に示す送信機6において、入力された
平文データは先頭から64ビット単位で、予め保持して
いる暗号化鍵データを用いて暗号処理が施される。以
下、平文データを先頭から64ビット単位に区切り、順
に平文ブロックPt(t=0,1,… )と記す。 (1)まず、平文ブロックP0の暗号処理について記
す。
In the transmitter 6 shown in FIG. 8, the input plaintext data is subjected to encryption processing in 64-bit units from the head using the encryption key data stored in advance. Hereinafter, the plaintext data is divided into 64-bit units from the beginning, and described as a plaintext block Pt (t = 0, 1,...) In order. (1) First, the encryption processing of the plaintext block P0 will be described.

【0132】図9に示す鍵制御部604において、平文
ブロックP0の暗号処理に用いる為に、暗号化鍵データ
から生成された実鍵データK[0]が出力される。図9
に示す換字テーブルデータ生成部602において、実鍵
データK[0]から生成された換字テーブルデータTG
(K[0])が出力される。図9に示す入力鍵生成部6
03において、実鍵データK[0]と初期ブロックIV
とを対象に排他的論理和演算が行なわれ入力鍵データK
[0](+)IVが出力される。
The key control unit 604 shown in FIG. 9 outputs the real key data K [0] generated from the encrypted key data for use in the encryption processing of the plaintext block P0. FIG.
The substitution table data TG generated from the real key data K [0] in the substitution table data generation unit 602 shown in FIG.
(K [0]) is output. Input key generation unit 6 shown in FIG.
03, the real key data K [0] and the initial block IV
And an exclusive OR operation is performed on the input key data K
[0] (+) IV is output.

【0133】図9に示すデータ暗号化部601におい
て、換字テーブルデータTG(K[0])及び入力鍵デ
ータK[0](+)IVを用いて、平文ブロックP0に
暗号処理を施して暗号文ブロックC0を生成する。 (2)続いて、平文ブロックP1の暗号処理について記
す。平文ブロックP1の暗号処理においては、鍵制御部
604から新たな実鍵データは出力されず、換字テーブ
ルデータ生成部602は新たな換字テーブルデータを生
成しない。
In the data encryption section 601 shown in FIG. 9, the plaintext block P0 is subjected to an encryption process by using the substitution table data TG (K [0]) and the input key data K [0] (+) IV to perform encryption. Generate statement block C0. (2) Subsequently, the encryption processing of the plaintext block P1 will be described. In the encryption processing of the plaintext block P1, no new real key data is output from the key control unit 604, and the substitution table data generation unit 602 does not generate new substitution table data.

【0134】入力鍵生成部603において、実鍵データ
K[0]と1つ前の暗号文ブロックC0とを対象に排他
的論理和演算が行なわれ入力鍵データK[0](+)C
0が出力される。データ暗号化部601において、換字
テーブルデータTG(K[0])及び入力鍵データK
[0](+)C0を用いて、平文ブロックP1に暗号処
理を施して暗号文ブロックC1を生成する。
In the input key generation unit 603, an exclusive OR operation is performed on the real key data K [0] and the immediately preceding ciphertext block C0, and the input key data K [0] (+) C
0 is output. In data encryption section 601, substitution table data TG (K [0]) and input key data K
Using [0] (+) C0, the plaintext block P1 is subjected to encryption processing to generate a ciphertext block C1.

【0135】(3)平文ブロックP2〜P31の暗号処
理については、平文ブロックP1と同様である。 (4)続いて、平文ブロックP32の暗号処理について
記す。平文ブロックP32の暗号処理においても、鍵制
御部604から新たな実鍵データは出力されず、換字テ
ーブルデータ生成部602は新たな換字テーブルデータ
を生成しない。
(3) The encryption processing of the plaintext blocks P2 to P31 is the same as that of the plaintext block P1. (4) Next, the encryption process of the plaintext block P32 will be described. Also in the encryption processing of the plaintext block P32, new real key data is not output from the key control unit 604, and the substitution table data generation unit 602 does not generate new substitution table data.

【0136】入力鍵生成部603において、実鍵データ
K[0]と初期ブロックIVとを対象に排他的論理和演
算が行なわれ入力鍵データK[0](+)IVが出力さ
れる。データ暗号化部601において、換字テーブルデ
ータTG(K[0])及び入力鍵データK[0](+)
IVを用いて、平文ブロックP32に暗号処理を施して
暗号文ブロックC32を生成する。
In input key generation section 603, exclusive OR operation is performed on real key data K [0] and initial block IV, and input key data K [0] (+) IV is output. In data encryption section 601, substitution table data TG (K [0]) and input key data K [0] (+)
Using the IV, the plaintext block P32 is subjected to cryptographic processing to generate a ciphertext block C32.

【0137】(5)平文ブロックP33〜P63の暗号
処理については、平文ブロックP1と同様である。 (6)以下、平文ブロックP1023までは、平文ブロ
ックP32〜P63と同様の暗号処理を繰り返す。 (7)続いて、平文ブロックP1024の暗号処理につ
いて記す。
(5) The encryption processing of the plaintext blocks P33 to P63 is the same as that of the plaintext block P1. (6) Hereinafter, up to the plaintext block P1023, the same encryption processing as that of the plaintext blocks P32 to P63 is repeated. (7) Next, the encryption processing of the plaintext block P1024 will be described.

【0138】鍵制御部604において、平文ブロックP
1024の暗号処理に用いる為に、暗号化鍵データから
生成された実鍵データK[1]が出力される。換字テー
ブルデータ生成部602において、実鍵データK[1]
から生成された換字テーブルデータTG(K[1])が
出力される。入力鍵生成部603において、実鍵データ
K[1]と初期ブロックIVとを対象に排他的論理和演
算が行なわれ入力鍵データK[1](+)IVが出力さ
れる。
At the key control unit 604, the plaintext block P
The real key data K [1] generated from the encrypted key data is output for use in the 1024 encryption process. In the substitution table data generation unit 602, the real key data K [1]
The substitution table data TG (K [1]) generated from is output. The input key generation unit 603 performs an exclusive OR operation on the real key data K [1] and the initial block IV, and outputs input key data K [1] (+) IV.

【0139】データ暗号化部601において、換字テー
ブルデータTG(K[1])及び入力鍵データK[1]
(+)IVを用いて、平文ブロックP1024に暗号処
理を施して暗号文ブロックC1024を生成する。 (8)続いて、平文ブロックP1025の暗号処理につ
いて記す。平文ブロックP1025の暗号処理において
は、鍵制御部604から新たな実鍵データは出力され
ず、換字テーブルデータ生成部602は新たな換字テー
ブルデータを生成しない。
In data encryption section 601, substitution table data TG (K [1]) and input key data K [1]
Using the (+) IV, the plaintext block P1024 is subjected to encryption processing to generate a ciphertext block C1024. (8) Next, the encryption process of the plaintext block P1025 will be described. In the encryption processing of the plaintext block P1025, new real key data is not output from the key control unit 604, and the substitution table data generation unit 602 does not generate new substitution table data.

【0140】入力鍵生成部603において、実鍵データ
K[1]と1つ前の暗号文ブロックC1024とを対象
に排他的論理和演算が行なわれ入力鍵データK[1]
(+)C1024が出力される。データ暗号化部601
において、換字テーブルデータTG(K[1])及び入
力鍵データK[1](+)C1024を用いて、平文ブ
ロックP1025に暗号処理を施して暗号文ブロックC
1025を生成する。
In the input key generation unit 603, an exclusive OR operation is performed on the real key data K [1] and the immediately preceding ciphertext block C1024, and the input key data K [1] is obtained.
(+) C1024 is output. Data encryption unit 601
, Using the substitution table data TG (K [1]) and the input key data K [1] (+) C1024, the plaintext block P1025 is subjected to encryption processing, and
1025 is generated.

【0141】(9)以下、最後のブロックまで、平文ブ
ロックP0〜P1023と同様の暗号処理を繰り返す。 (10)暗号文ブロックの暗号処理については、上記
(1)〜(9)の逆変換であり、実鍵データと排他的論
理和演算を行なう対象がデータ暗号化部601で生成さ
れた暗号文ブロックではなく、データ復号化部701に
入力される1つ前の暗号文ブロックである点とが異なる
のみである。
(9) Thereafter, the same encryption processing as that of the plaintext blocks P0 to P1023 is repeated until the last block. (10) The encryption process of the ciphertext block is the inverse conversion of the above (1) to (9), and the target of performing an exclusive OR operation with the real key data is the ciphertext generated by the data encryption unit 601 The only difference is that the block is not the block but the previous ciphertext block input to the data decryption unit 701.

【0142】以下に、数式を用いてより具体的に説明す
る。なお、以下の暗号化処理の説明中で用いられる各記
号には、暗号化(encryption)の頭文字
「e」を添え字として付けるものとし、復号化処理の説
明中で用いられる各記号には、復号化(descryp
tion)の頭文字「d」を添え字として付けるものと
する。
Hereinafter, a more specific description will be given using mathematical expressions. In addition, each symbol used in the following description of the encryption process is suffixed with the initial letter “e” of encryption, and each symbol used in the description of the decryption process is , Decryption (descrypt
) is added as a subscript.

【0143】鍵制御部604は、平文ブロックPe(1
024×k)(k=0,1,… )の暗号処理の際に、
実鍵データKe[k mod 10]を出力し、平文ブロ
ックPe(1024×k)以外の暗号処理の際には、実
鍵データを出力しない。換字テーブルデータ生成部60
2は、平文ブロックPe(1024×k)の暗号処理の
際に、鍵制御部604から入力した実鍵データKe[k
mod 10]に従って換字テーブルデータを生成して
出力し、平文ブロックPe(1024×k)以外の暗号
処理の際には、換字テーブルデータを出力しない。
The key control unit 604 sends the plaintext block Pe (1
024 × k) (k = 0, 1,...)
It outputs the real key data Ke [k mod 10], and does not output the real key data at the time of encryption processing other than the plaintext block Pe (1024 × k). Substitution table data generator 60
2 is the real key data Ke [k input from the key control unit 604 during the encryption processing of the plaintext block Pe (1024 × k).
[Mod. 10], and generates and outputs substitution table data. In the case of encryption processing other than the plaintext block Pe (1024 × k), the substitution table data is not output.

【0144】入力鍵生成部603は、平文ブロックPe
(32×j)(j=0,1,… )の暗号処理の際に、
初期ブロックIVeと実鍵データKe[(((32×
j)−((32×j)mod1024))/1024)
mod 10]とを対象に排他的論理和演算を行ない入
力鍵データを生成して出力する。平文ブロックPe(3
2×j)以外の平文ブロックPetの暗号処理の際に
は、暗号文ブロックCe(t−1)と実鍵データKe
[((t−(tmod1024))/1024)mod
10]とを対象に排他的論理和演算を行ない入力鍵デ
ータを生成して出力する。よって、t=(32×j)
(j=0,1,… )の時に、平文ブロックPetの暗
号処理の際に用いる入力鍵データIKetは、 入力鍵データIKet=Ke[((t−(tmod1024))/1024) mod 10](+)IVe −(式21) t=(32×j)(j=0,1,… )以外の時に、平
文ブロックPetの暗号処理の際に用いる入力鍵データ
IKetは、 入力鍵データIKet=Ke[((t−(tmod1024))/1024) mod 10](+)Ce(t−1) −(式22) となる。
The input key generation unit 603 generates a plaintext block Pe.
In the encryption processing of (32 × j) (j = 0, 1,...),
Initial block IVe and real key data Ke [(((32 ×
j)-((32 x j) mod 1024)) / 1024)
mod 10] to generate and output input key data. Plain text block Pe (3
In the encryption processing of the plaintext block Pet other than 2 × j), the ciphertext block Ce (t−1) and the real key data Ke
[((T- (tmod1024)) / 1024) mod
10] to generate and output input key data. Therefore, t = (32 × j)
When (j = 0, 1,...), The input key data IKet used in the encryption processing of the plaintext block Pet is as follows: input key data IKet = Ke [((t− (tmod1024)) / 1024) mod 10] ( +) IVe− (Equation 21) When t = (32 × j) (j = 0, 1,...), The input key data IKet used in the encryption processing of the plaintext block Pet is input key data IKet = Ke [((T− (tmod1024)) / 1024) mod 10] (+) Ce (t−1) − (formula 22)

【0145】i=((t−(tmod1024))/1
024)mod 10とすると、換字テーブルデータT
Ge(Ke[i])なので、平文ブロックPet (t
=0,1,… )に暗号処理を施して得られる64ビッ
トの暗号文ブロックCetは、 暗号文ブロックCet=Enc(Pet,TGe(Ke[i]),IKet) −(式23) で表せる。ここでEncはデータ暗号化部601内部の
処理内容を表す。
I = ((t− (tmod1024)) / 1
024) Assuming mod 10, the substitution table data T
Ge (Ke [i]), the plaintext block Pet (t
= 0, 1,...) Can be expressed by a ciphertext block Cet = Enc (Pet, TGe (Ke [i]), IKet) − (Equation 23). . Here, Enc represents the processing content inside the data encryption unit 601.

【0146】よって、データ暗号化部601は、入力鍵
データIKet及び換字テーブルデータTGe(Ke
[i])を用いて、64ビット単位で平文ブロックPe
tに暗号処理を施して暗号文ブロックCet=Enc
(Pet,TGe(Ke[i]),IKet)を生成す
る。鍵制御部704は、暗号文ブロックCd(1024
×k)(k=0,1,…)の暗号処理の際に、実鍵デー
タKd[k mod 10]を出力し、暗号文ブロックC
d(1024×k)以外の暗号処理の際には、実鍵デー
タを出力しない。
Therefore, the data encryption unit 601 converts the input key data IKet and the substitution table data TGe (Ke
Using [i]), a plaintext block Pe in 64-bit units
t is subjected to an encryption process and a ciphertext block Cet = Enc
(Pet, TGe (Ke [i]), IKet) are generated. The key control unit 704 sends the ciphertext block Cd (1024
.Times.k) (k = 0, 1,...), The real key data Kd [k mod 10] is output, and the ciphertext block C
During encryption processing other than d (1024 × k), no real key data is output.

【0147】換字テーブルデータ生成部702は、暗号
文ブロックCd(1024×k)の暗号処理の際に、鍵
制御部704から入力した実鍵データKd[k mod
10]に従って換字テーブルデータを生成して出力し、
暗号文ブロックCd(1024×k)以外の暗号処理の
際には、換字テーブルデータを出力しない。入力鍵生成
部703は、暗号文ブロックCd(32×j)(j=
0,1,…)の暗号処理の際に、初期ブロックIVdと
実鍵データKd[(((32×j)−((32×j)m
od1024))/1024)mod 10]とを対象
に排他的論理和演算を行ない入力鍵データを生成して出
力する。暗号文ブロックCd(32×j)以外の暗号文
ブロックCdtの暗号処理の際には、暗号文ブロックC
d(t−1)と実鍵データKd[((t−(tmod1
024))/1024)mod 10]とを対象に排他
的論理和演算を行ない入力鍵データを生成して出力す
る。よって、t=(32×j)(j=0,1,… )の
時に、暗号文ブロックCdtの暗号処理の際に用いる入
力鍵データIKdtは、 入力鍵データIKdt=Kd[((t−(tmod1024))/1024) mod 10](+)IVd −(式24) t=(32×j)(j=0,1,… )以外の時に、暗
号文ブロックCdtの暗号処理の際に用いる入力鍵デー
タIKdtは、 入力鍵データIKdt=Kd[((t−(tmod1024))/1024) mod 10](+)Cd(t−1) −(式25) となる。
The substitution table data generation section 702 performs the real key data Kd [k mod input from the key control section 704 during the encryption processing of the ciphertext block Cd (1024 × k).
10], and generates and outputs substitution table data.
At the time of encryption processing other than the ciphertext block Cd (1024 × k), the substitution table data is not output. The input key generation unit 703 calculates the ciphertext block Cd (32 × j) (j =
During the encryption processing of 0, 1,..., The initial block IVd and the real key data Kd [(((32 × j) − ((32 × j) m
od1024)) / 1024) mod 10] to generate and output input key data. When performing cryptographic processing on ciphertext blocks Cdt other than the ciphertext block Cd (32 × j), the ciphertext block C
d (t-1) and real key data Kd [((t- (tmod1
024)) / 1024) mod 10] to generate and output input key data. Therefore, when t = (32 × j) (j = 0, 1,...), The input key data IKdt used in the encryption processing of the ciphertext block Cdt is input key data IKdt = Kd [((t− ( tmod1024)) / 1024) mod 10] (+) IVd− (Equation 24) When t = (32 × j) (j = 0, 1,...), an input used in the encryption processing of the ciphertext block Cdt. The key data IKdt is as follows: input key data IKdt = Kd [((t− (tmod1024)) / 1024) mod 10] (+) Cd (t−1) − (Equation 25)

【0148】前述のi=((t−(tmod102
4))/1024)mod 10を用いると、換字テー
ブルデータTGd(Kd[i])なので、暗号文ブロッ
クCdt(t=0,1,… )に暗号処理を施して得ら
れる64ビットの復号文ブロックDdtは、 復号文ブロックDdt=Dec(Cdt,TGd(Kd[i]),IKdt) −(式26) で表せる。ここでDecはデータ復号化部701内部の
処理内容を表す。
The aforementioned i = ((t− (tmod102)
4)) / 1024) Since the substitution table data TGd (Kd [i]) is used when mod 10 is used, a 64-bit decrypted text obtained by performing cryptographic processing on the encrypted text block Cdt (t = 0, 1,...) The block Ddt can be represented by a decrypted text block Ddt = Dec (Cdt, TGd (Kd [i]), IKdt) − (Equation 26). Here, Dec represents the processing content inside the data decoding unit 701.

【0149】よって、データ復号化部701は、入力鍵
データIKdt及び換字テーブルデータTGd(Kd
[i])を用いて、64ビット単位で暗号文ブロックC
dtに暗号処理を施して復号文ブロックDdt=Dec
(Cdt,TGd(Kd[i]),IKdt)を生成す
る。ここで、ある平文ブロック列Pe0,Pe1,・・
・に対して、データ暗号化装置60で任意の実鍵データ
と初期ブロックとを用いて暗号化した暗号文ブロック列
を、データ復号化装置70でデータ暗号化装置60で用
いたのと同じ実鍵データと初期ブロックとを用いて復号
した復号文ブロック列Dd0,Dd1、・・・は、元の
平文ブロック列と等しい事を示す。但し、換字テーブル
データ生成部602と換字テーブルデータ生成部702
とは全く同一の機能を有するものとする。従って、ある
実鍵データに従って換字テーブルデータ生成部602が
生成した換字テーブルデータと、同じ実鍵データに従っ
て換字テーブルデータ生成部702が生成した換字テー
ブルデータとは、勿論同一である。
Therefore, data decryption section 701 receives input key data IKdt and substitution table data TGd (Kd
Using [i]), ciphertext block C in 64-bit units
dt is subjected to encryption processing and a decrypted text block Ddt = Dec
(Cdt, TGd (Kd [i]), IKdt) are generated. Here, a certain plaintext block sequence Pe0, Pe1,.
In contrast, the ciphertext block string encrypted by the data encryption device 60 using the arbitrary real key data and the initial block is the same as that used by the data encryption device 60 in the data decryption device 70. The decrypted text block sequences Dd0, Dd1,... Decrypted using the key data and the initial block indicate that they are equal to the original plaintext block sequence. However, the substitution table data generation unit 602 and the substitution table data generation unit 702
Have exactly the same function. Therefore, the substitution table data generated by the substitution table data generation unit 602 according to certain real key data is, of course, the same as the substitution table data generated by the substitution table data generation unit 702 according to the same real key data.

【0150】(1)データ暗号化装置60とデータ復号
化装置70とで同じ実鍵データを用いるので、 実鍵データKe=実鍵データKd 以下、これらを実鍵データKsと記す。 (2)データ暗号化装置60とデータ復号化装置70と
で、同じ初期ブロックを用いるので、 初期ブロックIVe=初期ブロックIVd 以下、これらを初期ブロックIVsと記す。
(1) Since the same real key data is used in the data encryption device 60 and the data decryption device 70, the real key data Ke = the real key data Kd. These are hereinafter referred to as real key data Ks. (2) Since the same initial block is used in the data encryption device 60 and the data decryption device 70, the initial block IVe is equal to the initial block IVd.

【0151】(3)データ暗号化装置60で暗号化した
暗号文ブロック列を、データ復号化装置70で復号する
ので、 暗号文ブロックCet=暗号文ブロックCdt 以下、これらを暗号文ブロックCstと記す。 (4)上記(1)、(2)及び(式21)より、t=
(32×j)(j=0,1,… )の時に、平文ブロッ
クPetの暗号処理の際に用いる入力鍵データIKet
は、 入力鍵データIKet=Ks[((t−(tmod1024))/1024) mod 10](+)IVs −(式27) (5)上記(1)、(2)及び(式24)より、t=
(32×j)(j=0,1,… )の時に、暗号文ブロ
ックCstの暗号処理の際に用いる入力鍵データIKd
tは、 入力鍵データIKdt=Ks[((t−(tmod1024))/1024) mod 10](+)IVs −(式28) (6)(式27)の右辺と(式28)の右辺が等しいの
で、t=(32×j)(j=0,1,… )の時には、 入力鍵データIKet=入力鍵データIKdt が成り立つ。
(3) Since the ciphertext block string encrypted by the data encryption device 60 is decrypted by the data decryption device 70, the ciphertext block Cet = the ciphertext block Cdt. . (4) From the above (1), (2) and (Equation 21), t =
When (32 × j) (j = 0, 1,...), Input key data IKet used for encryption processing of the plaintext block Pet
Is input key data IKet = Ks [((t− (tmod1024)) / 1024) mod 10] (+) IVs− (expression 27) (5) From the above (1), (2) and (expression 24), t =
When (32 × j) (j = 0, 1,...), The input key data IKd used in the encryption processing of the ciphertext block Cst
t is input key data IKdt = Ks [((t− (tmod1024)) / 1024) mod 10] (+) IVs− (expression 28) (6) The right side of (expression 27) and the right side of (expression 28) Therefore, when t = (32 × j) (j = 0, 1,...), Input key data IKet = input key data IKdt holds.

【0152】(7)上記(1)、(3)及び(式22)
より、t=(32×j)(j=0,1,… )以外の時
に、平文ブロックPetの暗号処理の際に用いる入力鍵
データIKetは、 入力鍵データIKet=Ks[((t−(tmod1024))/1024) mod 10](+)Cs(t−1) −(式29) (8)上記(1)、(3)及び(式25)より、t=
(32×j)(j=0,1,… )以外の時に、暗号文
ブロックCdtの暗号処理の際に用いる入力鍵データI
Kdtは、 入力鍵データIKdt=Ks[((t−(tmod1024))/1024) mod 10](+)Cs(t−1) −(式30) (9)(式29)の右辺と(式30)の右辺が等しいの
で、t=(32×j)(j=0,1,… )以外の時に
は、 入力鍵データIKet=入力鍵データIKdt が成り立つ。
(7) The above (1), (3) and (Equation 22)
Therefore, at times other than t = (32 × j) (j = 0, 1,...), The input key data IKet used in the encryption processing of the plaintext block Pet is input key data IKet = Ks [((t− ( tmod1024)) / 1024) mod 10] (+) Cs (t-1)-(Formula 29) (8) From the above (1), (3) and (Formula 25), t =
(32 × j) (j = 0, 1,...), The input key data I used for the encryption processing of the ciphertext block Cdt
Kdt is input key data IKdt = Ks [((t− (tmod1024)) / 1024) mod 10] (+) Cs (t−1) − (Equation 30) (9) (Expression 29) and (Expression 29) Since the right side of (30) is equal, when t = (32 × j) (j = 0, 1,...), Input key data IKet = input key data IKdt holds.

【0153】(10)上記(6)、(9)より、t=
(32×j)(j=0,1,… )の時にも、t=(3
2×j)(j=0,1,… )以外の時にも、 入力鍵データIKet=入力鍵データIKdt が成り立つ。
(10) From the above (6) and (9), t =
Also when (32 × j) (j = 0, 1,...), T = (3
2 × j) (j = 0, 1,...), Input key data IKet = input key data IKdt holds.

【0154】以下、これらを入力鍵データIKstと記
す。 (11)換字テーブルデータ生成部602と換字テーブ
ルデータ生成部702とは全く同一の機能を有するの
で、 換字テーブルデータ TGe(Ks[i])=換字テー
ブルデータTGd(Ks[i]) 以下、これらを換字テーブルデータ TGs(Ks
[i])と記す。
Hereinafter, these are referred to as input key data IKst. (11) Since the substitution table data generation unit 602 and the substitution table data generation unit 702 have exactly the same function, the substitution table data TGe (Ks [i]) = substitution table data TGd (Ks [i]). To the substitution table data TGs (Ks
[I]).

【0155】(12)上記(10)、(11)、(式2
3)より、平文ブロックPet (t=0,1,… )に
暗号処理を施して得られる64ビットの暗号文ブロック
Cstは、 暗号文ブロックCst=Enc(Pet,TGs(Ks[i]),IKst) −(式31) (13)上記(10)、(11)、(式26)より、暗
号文ブロックCst (t=0,1,… )に暗号処理を
施して得られる64ビットの復号文ブロックDdtは、 復号文ブロックDdt=Dec(Cst,TGs(Ks[i]),IKst) −(式32) (14)(式32)のCstに(式31)を代入して、 復号文ブロックDdt=Dec(Enc(Pet,TGs(Ks[i]),I Kst),TGs(Ks[i]),IKst) −(式33) (15)ここで、実施の形態1において説明したデータ
撹乱部101で暗号化された平文データがデータ撹乱部
201で復号化されるのと同様の原理により、データ暗
号化部601において、平文ブロックαに対して32K
ビットの換字テーブルデータβ及び64ビットの入力鍵
データγに従って暗号化した結果のブロックを、データ
復号化部701において、暗号化で用いたものと同じ換
字テーブルデータβ及び入力鍵データγによって復号化
した時に得られるブロックはもとの平文ブロックαに等
しい、すなわち、 Dec(Enc(α,β,γ),β,γ)=α −(式34) (16)よって、(式33)及び(式34)より、 復号文ブロックDdt=平文ブロックPet −(式35) が成り立つ。
(12) The above (10), (11), and (2)
According to 3), the 64-bit ciphertext block Cst obtained by performing the encryption process on the plaintext block Pet (t = 0, 1,...) Is as follows: ciphertext block Cst = Enc (Pet, TGs (Ks [i]), IKst)-(Equation 31) (13) From the above (10), (11), and (Equation 26), a 64-bit decryption obtained by performing encryption processing on the ciphertext block Cst (t = 0, 1,...) The sentence block Ddt is obtained by substituting (Equation 31) into Cst of (14) (Equation 32), and (Equation 31). Block Ddt = Dec (Enc (Pet, TGs (Ks [i]), IKst), TGs (Ks [i]), IKst)-(Equation 33) (15) Here, the data described in the first embodiment Disturber 101 By the same principle as the encrypted plaintext data is decrypted by the data disturbance unit 201, the data encryption unit 601, 32K plaintext block α
The block resulting from the encryption according to the bit substitution table data β and the 64-bit input key data γ is decrypted by the data decryption unit 701 using the same substitution table data β and the input key data γ as those used in the encryption. Is equal to the original plaintext block α, that is, Dec (Enc (α, β, γ), β, γ) = α− (Equation 34) According to (16), (Equation 33) and (Equation 33) From Expression 34), the decrypted text block Ddt = plaintext block Pet− (Expression 35) holds.

【0156】ここで、データ暗号化装置60の安全性に
ついて述べる。この安全性はデータ暗号化部601の安
全性に大きく依存している。本実施の形態の場合、実鍵
データをCKtとすると、データ暗号化部601へ入力
される入力鍵データIKtは、 入力鍵データIKt=CKt(+)IV (t=k×32 のとき) 入力鍵データIKt=CKt(+)C(t−1) (t≠k×32 のとき) となる。 −(式36) ここで、k=0,1,… である。
Here, the security of the data encryption device 60 will be described. This security greatly depends on the security of the data encryption unit 601. In the case of the present embodiment, assuming that real key data is CKt, input key data IKt input to data encryption section 601 is input key data IKt = CKt (+) IV (when t = k × 32). Key data IKt = CKt (+) C (t−1) (when t ≠ k × 32). − (Equation 36) Here, k = 0, 1,...

【0157】(式36)において、C(t−1)は暗号
文ブロックであるから、暗号解読者には既知である。し
かし初期値IV及び鍵制御部604から出力される実鍵
データCKtは解読者には未知の値であるから、暗号解
読者にとっては入力鍵データIKtの値も未知である。
従って、暗号解読者は既知平文攻撃によって、コンピュ
ータ上でデータ暗号化部601をシミュレートしたとし
ても、暗号化鍵データを見つけることはできない。
In (Equation 36), C (t-1) is a ciphertext block, which is known to the cryptanalyst. However, since the initial value IV and the real key data CKt output from the key control unit 604 are unknown values to the decryption person, the values of the input key data IKt are also unknown to the decryption person.
Therefore, even if the cryptanalyst simulates the data encryption unit 601 on the computer by the known plaintext attack, the cryptanalyst cannot find the encryption key data.

【0158】また、本実施の形態においては、入力鍵デ
ータを平文ブロックPtの暗号化毎に更新していくの
で、入力鍵データを全て同じとする場合と比べて安全性
が向上している。さらに、本実施の形態においては、1
024個の平文ブロックを暗号化する毎にデータ暗号化
部に入力される換字テーブルデータが更新されるので、
換字テーブルデータを全て同じとする場合と比べて安全
性が向上している。
In this embodiment, since the input key data is updated every time the plaintext block Pt is encrypted, the security is improved as compared with the case where all the input key data are the same. Further, in the present embodiment, 1
Each time 024 plaintext blocks are encrypted, the substitution table data input to the data encryption unit is updated.
The security is improved compared to the case where all the substitution table data is the same.

【0159】また、本実施の形態では、32Kビットの
換字テーブルデータの生成は暗号化又は復号化を102
4回実行する毎に1回だけしか行わないこと、及び、デ
ータ暗号化部601及びデータ復号化部701内部で行
う256ビットの部分鍵の生成よりも換字テーブルデー
タの生成の方がはるかに時間がかかることから、従来例
3のように暗号化の高速性を損なうことなく、且つ安全
性を強化している。
In the present embodiment, the generation of the 32K-bit substitution table data is performed by encrypting or decrypting the data.
It is performed only once every four times, and it takes much longer to generate substitution table data than to generate a 256-bit partial key inside the data encryption unit 601 and data decryption unit 701. Therefore, the security is enhanced without impairing the high-speed encryption as in Conventional Example 3.

【0160】なお、本実施の形態においては、入力鍵生
成部603,703で2つの64ビットの演算対象に対
してビット毎の排他的論理和演算が行なわれるが、融合
手段として他の如何なる処理を用いても同様な効果が得
られる。また、本実施の形態においては、鍵制御部60
4,704から生成される実鍵データは64ビットとし
ているが、必ずしも64ビットである必要はない。実鍵
データが64ビット以下、例えば40ビットの場合に
は、出力データが64ビットとなるようなデータ融合手
段を、入力鍵生成部603,703に用いればよい。
In the present embodiment, the input key generators 603 and 703 perform exclusive OR operation on two 64-bit operation targets for each bit. The same effect can be obtained by using. In the present embodiment, the key control unit 60
The real key data generated from 4,704 is 64 bits, but does not necessarily have to be 64 bits. In the case where the real key data is 64 bits or less, for example, 40 bits, a data fusion unit that makes the output data 64 bits may be used for the input key generation units 603 and 703.

【0161】また、本実施の形態においては、入力鍵生
成部603に1つ前の暗号化で生成される暗号文データ
を入力しているが、1つ前の暗号化の処理過程で得られ
る64ビットの値であれば何でもよい。さらにこの値
は、必ずしも64ビットである必要はなく、64ビット
以下、例えば40ビットの場合には、出力データが64
ビットとなるようなデータ融合手段を、入力鍵生成部6
03,703に用いればよい。
In this embodiment, the ciphertext data generated by the immediately preceding encryption is input to the input key generation unit 603, but it is obtained in the previous encryption process. Any 64 bit value is acceptable. Further, this value does not necessarily have to be 64 bits, and when the value is 64 bits or less, for example, 40 bits, the output data is 64 bits.
The data fusion means which becomes a bit
03, 703.

【0162】また、本実施の形態においては、データ暗
号化部601がBlowfish暗号方式を用いている
が、鍵データに基づいて換字テーブルデータを生成する
ようなブロック暗号方式であれば何でもよい。また、本
実施の形態では、各64ビットの実鍵データ10組から
なる暗号化鍵データを装置内に保管しているが、最初の
ブロックの暗号処理に用いる64ビットの実鍵データを
1個だけ保管しておき、他の実鍵データは平文データと
共に暗号化して送信側から伝送するようにするか、又
は、Diffie−Hellman方式などの公開鍵暗
号方式を用いて暗号化鍵データを配送して共有するよう
にしてもよい。
Further, in the present embodiment, the data encryption unit 601 uses the Blowfish encryption method, but any block encryption method that generates substitution table data based on key data may be used. Further, in the present embodiment, the encryption key data composed of 10 sets of 64-bit real key data is stored in the apparatus, but one 64-bit real key data used for the encryption processing of the first block is stored in the apparatus. Only the other key data is stored, and the other real key data is encrypted together with the plaintext data and transmitted from the transmission side. Alternatively, the encrypted key data is distributed using a public key encryption method such as Diffie-Hellman method. May be shared.

【0163】また、上記各実施の形態はデータ暗号化装
置で平文データを入力して暗号化し、データ復号化装置
で暗号文データを復号化するものであるが、データ暗号
化装置における暗号化とデータ復号化装置における復号
化とは逆変換の関係にあるので、それぞれ暗号化装置に
も復号化装置にも成り得る。よって、上記各実施の形態
において、上記各データ復号化装置が平文データを入力
して暗号化し、上記各データ暗号化装置が暗号文データ
を復号化するものであってもよい。
In each of the above embodiments, plaintext data is input and encrypted by the data encryption device, and ciphertext data is decrypted by the data decryption device. Since the decryption in the data decryption device is inversely related to the decryption, the data decryption device can function as both an encryption device and a decryption device. Therefore, in each of the above embodiments, each of the data decryption devices may input and encrypt plaintext data, and each of the data encryption devices may decrypt the ciphertext data.

【0164】また、各実施の形態は、LogicIC等
のハードウェアであるものとして説明したが、ソフトウ
ェアで実現するものであってもよい。さらに、当該ソフ
トウェアは、CD−ROM等のコンピュータ読み取り可
能な記憶媒体に記憶された形でも装置等の場合と同様
に、生産、使用、譲渡、貸渡し、輸入、又は譲渡若しく
は貸渡しの申出等の対象となる。
In each embodiment, hardware such as LogicIC has been described. However, hardware may be realized by software. Furthermore, the software may be produced, used, transferred, loaned, imported, or offered to be transferred or loaned in a form stored in a computer-readable storage medium such as a CD-ROM, as in the case of the device. Subject to.

【0165】[0165]

【発明の効果】本発明に係る暗号処理装置は、換字デー
タを用いて入力データに暗号処理を施し出力データを生
成する暗号処理装置であって、N及びMを2以上の整数
とした場合、所定ビットの換字データを(2^N)個保
管する保管手段と、(N×M)ビットの入力データをM
個に等分して各Nビットの分割データをM個生成する分
割手段と、分割手段が生成したM個の分割データ又はそ
れらの分割データに合成処理を施して生成した入力合成
データを入力としNビットの入力毎に保管手段が保管す
る(2^N)個の換字データから前記所定ビットの換字
データを1個特定して出力する換字手段と、換字手段が
出力した換字データが入力され複数の異なる固定変換を
施すことによって前記所定ビットの変換データをM個生
成する固定変換手段と、固定変換手段が生成したM個の
変換データに基づいて(N×M)ビットの出力データを
生成する出力データ生成手段とを備えることを特徴とす
る。
The cryptographic processing device according to the present invention is a cryptographic processing device that performs cryptographic processing on input data using substitution data to generate output data, wherein N and M are integers of 2 or more. Storage means for storing (2 ^ N) pieces of substitution data of predetermined bits;
A dividing means for equally dividing the data into N pieces of N-bit divided data, and M divided data generated by the dividing means or input synthesized data generated by subjecting the divided data to synthesis processing as input data Substitution means for identifying and outputting one of the predetermined bits of substitution data from (2 ^ N) pieces of substitution data stored by the storage means for each input of N bits, and a plurality of substitution data output from the substitution means. Fixed conversion means for generating M pieces of the conversion data of the predetermined bits by performing different fixed conversions, and (N × M) -bit output data based on the M pieces of conversion data generated by the fixed conversion means. Output data generating means.

【0166】これによって、少ない換字テーブルデータ
で高い安全性を得ることができる。従って、ハードウェ
ア/ソフトウェア両面での実装が簡便なデータ暗号化装
置が実現できる。また、前記固定変換手段における各固
定変換はローテーション処理であり各固定変換は互いに
ローテーションするビット数が異なることを特徴とする
こともできる。
As a result, high security can be obtained with a small number of substitution table data. Therefore, a data encryption device that can be easily implemented in both hardware and software can be realized. Also, each fixed conversion in the fixed conversion means is a rotation process, and each fixed conversion has a different number of bits to be rotated.

【0167】これによって、各固定変換のローテーショ
ンのビット数を互いに異なるものとするだけで、各固定
変換において異なる固定変換が施される。また、前記暗
号処理装置は、さらに、鍵データを入手する鍵入手手段
と、鍵入手手段が入手した鍵データに基づいて前記固定
変換手段における各固定変換のローテーションの回数を
決定する回数決定手段とを備えることを特徴とすること
もできる。
As a result, different fixed conversions are performed in each fixed conversion only by changing the number of rotation bits of each fixed conversion to each other. Further, the cryptographic processing apparatus further includes: a key obtaining unit that obtains key data; and a number determining unit that determines the number of rotations of each fixed conversion in the fixed conversion unit based on the key data obtained by the key obtaining unit. May be provided.

【0168】これによって、鍵データに基づいてローテ
ーションの回数を決定することができる。従って、より
高い安全性を得ることができる。また、前記保管手段が
保管する換字データの所定ビットは(N×M)ビットで
あり、前記換字手段は前記分割手段が生成したM個の分
割データのそれぞれに基づいて保管手段が保管する(2
^N)個の換字データからそれぞれ1個を特定し各(N
×M)ビットの換字データをM個出力し、前記固定変換
手段は換字手段が出力したM個の換字データにそれぞれ
異なる固定変換を施すことによって、(N×M)ビット
の変換データをM個生成し、前記出力データ生成手段は
固定変換手段が生成したM個の変換データの全てを対象
に合成処理を施すことによって、(N×M)ビットの出
力データを生成することを特徴とすることもできる。
As a result, the number of rotations can be determined based on the key data. Therefore, higher security can be obtained. Also, the predetermined bits of the substitution data stored by the storage unit are (N × M) bits, and the substitution unit stores the substitution data based on each of the M divided data generated by the division unit (2).
One of each of the (N) substitution data is specified, and each (N)
X M) bits of the substitution data are output, and the fixed conversion means performs different fixed conversions on the M substitution data output by the substitution means, thereby converting the (N x M) bits of the conversion data into M pieces. The output data generation means generates (N × M) bits of output data by subjecting all of the M pieces of conversion data generated by the fixed conversion means to a synthesis process. Can also.

【0169】これによって、安全性を損なうことなく換
字テーブルデータを従来の1/Mに削減できる。従っ
て、ハードウェア/ソフトウェア両面での実装が簡便な
データ暗号化装置が実現できる。また、前記出力データ
生成手段における合成処理を構成する各処理はそれぞ
れ、算術和及びビット毎の排他的論理和の内の何れかを
行なことを特徴とすることもできる。
As a result, the substitution table data can be reduced to 1 / M of the conventional one without impairing the security. Therefore, a data encryption device that can be easily implemented in both hardware and software can be realized. Further, each of the processes constituting the synthesizing process in the output data generating means may perform any one of an arithmetic sum and an exclusive OR for each bit.

【0170】これによって、算術和及びビット毎の排他
的論理和の内の何れかを行なうことで合成処理が行われ
る。従って、処理が簡単であり処理速度も問題にならな
い。また、前記保管手段が保管する換字データの所定ビ
ットはNビットであり、前記換字手段は前記分割手段が
生成したM個の分割データの全てを対象に全体合成処理
を施すことによってNビットの入力合成データを生成す
る入力合成手段を含みNビットの入力合成データに基づ
いて保管手段が保管する(2^N)個の換字データから
1個を特定しNビットの換字データを出力し、前記固定
変換手段は換字手段が出力した換字データに異なるM個
の固定変換を個々に施すことによってNビットの変換デ
ータをM個生成し、前記出力データ生成手段は、前記分
割手段が生成したM個の分割データの内の1個と前記固
定変換手段が生成したM個の変換データの内の1個とを
対象に個別合成処理をそれぞれ施すことによってNビッ
トの出力合成データをM個生成する出力合成手段と、前
記出力合成手段が生成した各NビットのM個の出力合成
データを連結処理を施すことによって(N×M)ビット
の出力データを生成する連結手段とを含むことを特徴と
することもできる。
As a result, the combining process is performed by performing any one of the arithmetic sum and the exclusive OR for each bit. Therefore, the processing is simple and the processing speed does not matter. Also, the predetermined bits of the substitution data stored by the storage unit are N bits, and the substitution unit performs N-bit input by performing a total synthesis process on all of the M divided data generated by the division unit. The storage means includes input combining means for generating combined data, specifies one out of (2 ^ N) pieces of replacement data stored by the storage means based on the N-bit input combined data, and outputs N-bit replacement data; The conversion unit generates M conversion data of N bits by individually performing M different fixed conversions on the substitution data output by the substitution unit, and the output data generation unit outputs the M conversion data generated by the division unit. The individual combined processing is performed on one of the divided data and one of the M pieces of converted data generated by the fixed converting means, so that the N-bit output combined data is obtained. Output combining means for generating a plurality of output combined data, and connecting means for generating (N × M) -bit output data by subjecting each of the N output combined data generated by the output combining means to connection processing. Can also be characterized.

【0171】これによって、安全性を損なうことなく換
字テーブルデータを従来の1/M/Mに削減できる。従
って、ハードウェア/ソフトウェア両面での実装が簡便
なデータ暗号化装置が実現できる。また、前記入力合成
手段における全体合成処理を構成する各処理はそれぞれ
は、算術和及びビット毎の排他的論理和の内の何れかを
行なうことを特徴とすることもできる。
As a result, the substitution table data can be reduced to 1 / M / M of the prior art without impairing the security. Therefore, a data encryption device that can be easily implemented in both hardware and software can be realized. Further, each of the processes constituting the overall combining process in the input combining means may perform any one of an arithmetic sum and an exclusive OR for each bit.

【0172】これによって、算術和及びビット毎の排他
的論理和の内の何れかを行なうことで全体合成処理が行
われる。従って、処理が簡単であり処理速度も問題にな
らない。また、前記入力合成手段における全体合成処理
を構成する各処理はそれぞれは前記分割手段が生成した
M個の分割データにそれぞれ異なる固定変換を施した後
に算術和及びビット毎の排他的論理和の内の何れかを行
なうことを特徴とすることもできる。
As a result, the whole synthesis processing is performed by performing any one of the arithmetic sum and the exclusive OR for each bit. Therefore, the processing is simple and the processing speed does not matter. In addition, each processing constituting the overall synthesis processing in the input synthesis means performs a different fixed conversion on each of the M pieces of divided data generated by the division means, and then performs each of the arithmetic sum and the exclusive OR for each bit. Or any of the following.

【0173】これによって、それぞれ異なる固定変換を
施した後に算術和及びビット毎の排他的論理和の内の何
れかを行なうことで全体合成処理が行われる。従って、
処理が簡単であり処理速度も問題にならない上、固定変
換を施す分高い安全性を得ることができる。また、前記
出力合成手段における個別合成処理はそれぞれ、算術和
及びビット毎の排他的論理和の内の何れかを行なうこと
を特徴とすることもできる。
As a result, the whole synthesis processing is performed by performing any one of the arithmetic sum and the exclusive OR for each bit after performing different fixed conversions. Therefore,
The processing is simple, the processing speed does not matter, and high security can be obtained by performing the fixed conversion. Each of the individual synthesizing processes in the output synthesizing means may perform one of an arithmetic sum and an exclusive OR for each bit.

【0174】これによって、算術和及びビット毎の排他
的論理和の内の何れかを行なうことで個別合成処理が行
われる。従って、処理が簡単であり処理速度も問題にな
らない。本発明に係る暗号処理装置は、換字テーブルデ
ータを作成しこれを用いて入力データに暗号処理を施し
出力データを生成する暗号処理装置であって、鍵データ
を保持する鍵データ保持手段と、換字テーブルデータを
保持する換字テーブルデータ保持手段と、入力データを
所定のビット数のブロック単位に分割し入力ブロックと
して順次出力するブロック化手段と、所定数の入力ブロ
ックに暗号処理を施した後で次の入力ブロックに暗号処
理を施す場合に換字テーブルデータを作成し換字テーブ
ルデータ保持手段に保持された換字テーブルデータを作
成した換字テーブルデータに更新する換字テーブルデー
タ作成手段と、前の入力ブロックに暗号処理を施した後
で次の入力ブロックに暗号処理を施す場合には鍵データ
保持手段に保持された鍵データに前の入力ブロックに暗
号処理を施した際に暗号処理手段が生成した出力ブロッ
クを用いてビット変換を施し鍵データを変換する鍵デー
タ変換手段と、換字テーブルデータ保持手段に保持され
た換字テーブルデータと前記鍵データとを用いてブロッ
ク化手段が順次出力する入力ブロックに暗号処理を施す
ことによって順次出力ブロックを生成する暗号処理手段
とを備える。
Thus, the individual combining process is performed by performing any one of the arithmetic sum and the exclusive OR for each bit. Therefore, the processing is simple and the processing speed does not matter. A cryptographic processing apparatus according to the present invention is a cryptographic processing apparatus that generates substitution table data, performs encryption processing on input data using the substitution table data to generate output data, and includes a key data holding unit that holds key data; Substitution table data holding means for holding table data, blocking means for dividing input data into blocks each having a predetermined number of bits, and sequentially outputting the input data as input blocks. When performing encryption processing on an input block, a substitution table data creating unit that creates substitution table data and updates the substitution table data held in the substitution table data holding unit to the created substitution table data; When performing encryption processing on the next input block after performing the processing, the key data stored in the key data storage Key data conversion means for performing bit conversion by using the output block generated by the encryption processing means when the encryption processing is performed on the previous input block and converting the key data; A cryptographic processing unit for performing an encryption process on the input block sequentially output by the blocking unit using the table data and the key data, thereby sequentially generating an output block.

【0175】また、換字テーブルデータを作成しこれを
用いて入力データに暗号処理を施し出力データを生成す
る暗号処理装置であって、鍵データを保持する鍵データ
保持手段と、換字テーブルデータを保持する換字テーブ
ルデータ保持手段と、入力データを所定のビット数のブ
ロック単位に分割し入力ブロックとして順次出力するブ
ロック化手段と、所定数の入力ブロックに暗号処理を施
した後で次の入力ブロックに暗号処理を施す場合に換字
テーブルデータを作成し換字テーブルデータ保持手段に
保持された換字テーブルデータを作成した換字テーブル
データに更新する換字テーブルデータ作成手段と、前の
入力ブロックに暗号処理を施した後で次の入力ブロック
に暗号処理を施す場合には鍵データ保持手段に保持され
た鍵データに前の入力ブロックを用いてビット変換を施
し鍵データを変換する鍵データ変換手段と、換字テーブ
ルデータ保持手段に保持された換字テーブルデータと前
記鍵データとを用いてブロック化手段が順次出力する入
力ブロックに暗号処理を施すことによって順次出力ブロ
ックを生成する暗号処理手段とを備えるものであっても
よい。
A cryptographic processing apparatus for generating substitution table data, performing encryption processing on input data using the substitution table data, and generating output data, comprising: key data retaining means for retaining key data; A substitution table data holding unit, a block unit for dividing input data into blocks of a predetermined number of bits, and sequentially outputting the divided blocks as an input block; Substitution table data creating means for creating substitution table data when performing encryption processing and updating the substitution table data held in the substitution table data holding means to the created substitution table data, and performing encryption processing on the previous input block When performing encryption processing on the next input block later, the key data held in the key data holding Key data conversion means for performing bit conversion using the input block to convert the key data; and an input block sequentially output by the blocking means using the substitution table data and the key data held in the substitution table data holding means. Encryption processing means for sequentially generating output blocks by performing encryption processing.

【0176】また、換字テーブルデータを作成しこれを
用いて入力データに暗号処理を施し出力データを生成す
る暗号処理装置であって、鍵データを保持する鍵データ
保持手段と、換字テーブルデータを保持する換字テーブ
ルデータ保持手段と、入力データを所定のビット数のブ
ロック単位に分割し入力ブロックとして順次出力するブ
ロック化手段と、所定数の入力ブロックに暗号処理を施
した後で次の入力ブロックに暗号処理を施す場合に換字
テーブルデータを作成し換字テーブルデータ保持手段に
保持された換字テーブルデータを作成した換字テーブル
データに更新する換字テーブルデータ作成手段と、一個
の入力ブロックに暗号処理を施した後で次の入力ブロッ
クに暗号処理を施す場合には鍵データ保持手段に保持さ
れた鍵データに前の入力ブロックに暗号処理を施す間に
暗号処理手段が生成した中間ブロックを用いてビット変
換を施し鍵データを変換する鍵データ変換手段と、換字
テーブルデータ保持手段に保持された換字テーブルデー
タと前記鍵データとを用いてブロック化手段が順次出力
する入力ブロックに暗号処理を施すことによって順次暗
号処理の過程で得られる中間ブロックと暗号処理の結果
に得られる出力ブロックとを生成する暗号処理手段とを
備えるものであってもよい。
A cryptographic processing apparatus for generating substitution table data and performing encryption processing on input data using the substitution table data to generate output data, comprising key data holding means for holding key data, and key data holding means for holding the substitution table data A substitution table data holding unit, a block unit for dividing input data into blocks of a predetermined number of bits, and sequentially outputting the divided blocks as an input block; A substitution table data creating unit that creates substitution table data when performing encryption processing and updates the substitution table data held in the substitution table data holding unit with the created substitution table data, and performs encryption processing on one input block. When the next input block is subjected to the encryption processing later, the key data held in the key data holding means is Key data conversion means for performing bit conversion by using an intermediate block generated by the encryption processing means while performing encryption processing on the input block to convert key data; substitution table data held in the substitution table data holding means; And performing encryption processing on the input blocks sequentially output by the blocking means using the data and an encryption processing means for generating an intermediate block obtained in the course of the encryption processing and an output block obtained as a result of the encryption processing. It may be provided.

【0177】これによって、鍵データより生成される換
字テーブルデータは1ブロックを処理する毎には生成さ
れないが、鍵データは1ブロックを処理する毎に変換さ
れる。従って、高速性を損なうことがないにも関らず安
全性の高いデータ暗号化装置が実現できる。
As a result, the substitution table data generated from the key data is not generated each time one block is processed, but the key data is converted each time one block is processed. Therefore, a data encryption device with high security can be realized without impairing the high-speed operation.

【0178】また、前記暗号処理装置は、さらに、前記
所定数の入力ブロックに暗号処理を施した後で次の入力
ブロックに暗号処理を施す場合に鍵データを入手して鍵
データ保持手段に保持された鍵データを更新する鍵デー
タ入手手段を備え、前記換字テーブルデータ作成手段は
鍵データ入手手段により入手された鍵データに基づいて
換字テーブルデータを作成することを特徴とすることも
できる。
Further, the cryptographic processing device further obtains key data when performing cryptographic processing on the predetermined number of input blocks and then performs cryptographic processing on the next input block, and stores the key data in the key data storing means. Key data obtaining means for updating the obtained key data, wherein the substitution table data generating means generates the substitution table data based on the key data obtained by the key data obtaining means.

【0179】これによって、所定数の入力ブロックに暗
号処理を施す毎に、更新した鍵データに基づいて、換字
テーブルデータを作成することができる。また、前記鍵
データ入手手段は、さらに、入力データ中の先頭の入力
ブロックに暗号処理を施す場合は鍵データを入手して鍵
データ保持手段に保持し、前記換字テーブルデータ作成
手段は、さらに、入力データ中の先頭の入力ブロックに
暗号処理を施す場合は鍵データ入手手段により入手され
た鍵データに基づいて換字テーブルデータを作成し換字
テーブルデータ保持手段に保持することを特徴とするこ
ともできる。
Thus, every time a predetermined number of input blocks are subjected to encryption processing, substitution table data can be created based on updated key data. Further, the key data obtaining means further obtains key data when performing encryption processing on the first input block in the input data and holds the key data in the key data holding means, and the substitution table data creating means further comprises: When encryption processing is performed on the first input block in the input data, it is possible to create substitution table data based on the key data obtained by the key data obtaining unit and store the substitution table data in the substitution table data holding unit. .

【0180】これによって、先頭の入力ブロックに暗号
処理を施す場合に、更新した鍵データに基づいて、換字
テーブルデータを作成することができる。また、前記鍵
データ変換手段は予め前記所定のビット数の初期ブロッ
クを保持し入力データ中の先頭の入力ブロックに暗号処
理を施す場合及び前記所定数より少ない一定数の入力ブ
ロックに暗号処理を施した後で次の入力ブロックに暗号
処理を施す場合は鍵データ保持手段に保持された鍵デー
タに前記初期ブロックを用いてビット変換を施し鍵デー
タを変換し、前記暗号処理手段は換字テーブルデータ保
持手段に保持された換字テーブルデータと鍵データ変換
手段により変換された鍵データとを用いてブロック化手
段が順次出力する入力ブロックに暗号処理を施すことに
よって順次出力ブロックを生成することを特徴とするこ
ともできる。
In this way, when performing encryption processing on the first input block, substitution table data can be created based on the updated key data. Further, the key data conversion means holds the initial block of the predetermined number of bits in advance and performs encryption processing on the first input block in the input data, and performs encryption processing on a fixed number of input blocks smaller than the predetermined number. When performing encryption processing on the next input block after performing the above, the key data held in the key data holding means is subjected to bit conversion using the initial block to convert the key data, and the encryption processing means holds the substitution table data. The input block sequentially output by the blocking unit is subjected to encryption processing using the substitution table data held by the unit and the key data converted by the key data conversion unit, thereby sequentially generating an output block. You can also.

【0181】これによって、先頭の入力ブロックに暗号
処理を施す場合及び一定数の入力ブロックに暗号処理を
施す毎に、初期ブロックを用いてビット変換を施し、鍵
データを変換できる。従って、ビット化け等が発生した
場合に、その影響を一定数の入力ブロックの範囲だけに
抑えることができる。
Thus, the key data can be converted by performing bit conversion using the initial block when the encryption processing is performed on the first input block and every time when the encryption processing is performed on a fixed number of input blocks. Therefore, when garbled bits or the like occur, the effect can be suppressed to a range of a fixed number of input blocks.

【0182】また、前記鍵データ変換手段におけるビッ
ト変換は算術和及びビット毎の排他的論理和の何れかを
行なう処理であることを特徴とすることもできる。これ
によって、算術和及びビット毎の排他的論理和の内の何
れかを行なうことで鍵データ変換手段におけるビット変
換が行われる。従って、処理が簡単であり処理速度も問
題にならない。
Further, the bit conversion in the key data conversion means may be a process of performing either an arithmetic sum or an exclusive OR for each bit. As a result, the bit conversion in the key data conversion unit is performed by performing any one of the arithmetic sum and the exclusive OR for each bit. Therefore, the processing is simple and the processing speed does not matter.

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

【図1】本発明の実施の形態1における暗号通信システ
ムの構成を示す図である。
FIG. 1 is a diagram showing a configuration of a cryptographic communication system according to a first embodiment of the present invention.

【図2】データ暗号化装置10の詳細な構成を示す図で
ある。
FIG. 2 is a diagram showing a detailed configuration of the data encryption device 10;

【図3】データ復号化装置20の詳細な構成を示す図で
ある。
FIG. 3 is a diagram showing a detailed configuration of a data decoding device 20.

【図4】データ撹乱部101の詳細な構成を示す図であ
る。
FIG. 4 is a diagram showing a detailed configuration of a data disturbance unit 101.

【図5】データ撹乱部201の詳細な構成を示す図であ
る。
FIG. 5 is a diagram showing a detailed configuration of a data disturbance unit 201.

【図6】データ変換部300の詳細な構成を示す図であ
る。
FIG. 6 is a diagram showing a detailed configuration of a data conversion unit 300.

【図7】データ変換部500の詳細な構成を示す図であ
る。
FIG. 7 is a diagram showing a detailed configuration of a data conversion unit 500.

【図8】本発明の実施の形態3における暗号通信システ
ムの構成を示す図である。
FIG. 8 is a diagram showing a configuration of a cryptographic communication system according to Embodiment 3 of the present invention.

【図9】データ暗号化装置60の詳細な構成を示す図で
ある。
FIG. 9 is a diagram showing a detailed configuration of a data encryption device 60.

【図10】データ復号化装置70の詳細な構成を示す図
である。
FIG. 10 is a diagram showing a detailed configuration of a data decoding device 70.

【図11】データ暗号化部601の詳細な構成を示す図
である。
FIG. 11 is a diagram showing a detailed configuration of a data encryption unit 601.

【図12】データ復号化部701の詳細な構成を示す図
である。
FIG. 12 is a diagram illustrating a detailed configuration of a data decoding unit 701.

【図13】ブロックNo.t、実鍵データ、入力鍵デー
タ、及び、換字テーブルデータの対応関係を示す図であ
る。
FIG. FIG. 6 is a diagram showing a correspondence relationship among t, real key data, input key data, and substitution table data.

【図14】Blowfish暗号方式を用いたデータ暗
号化装置の構成を示す図である。
FIG. 14 is a diagram showing a configuration of a data encryption device using the Blowfish encryption method.

【図15】Blowfish暗号方式を用いたデータ復
号化装置の構成を示す図である。
FIG. 15 is a diagram showing a configuration of a data decryption device using the Blowfish encryption method.

【図16】Blowfish暗号方式を用いたデータ撹
乱部3011の詳細な構成を示す図である。
FIG. 16 is a diagram showing a detailed configuration of a data disturbance unit 3011 using the Blowfish encryption method.

【図17】Blowfish暗号方式を用いたデータ撹
乱部4011の詳細な構成を示す図である。
FIG. 17 is a diagram illustrating a detailed configuration of a data disturbance unit 4011 using the Blowfish encryption method.

【図18】データ変換部3113の詳細な構成を示す図
である。
FIG. 18 is a diagram illustrating a detailed configuration of a data conversion unit 3113.

【符号の説明】 1 送信機 2 受信機 3 伝送路 6 送信機 7 受信機 8 伝送路 10 データ暗号化装置 11 送信部 20 データ復号化装置 21 受信部 60 データ暗号化装置 61 送信部 70 データ復号化装置 71 受信部 101 データ撹乱部 102 段数制御部 103 鍵制御部 201 データ撹乱部 202 段数制御部 203 鍵制御部 300 データ変換部 301 データ変換部301 500 データ変換部 501 データ変換部 601 データ暗号化部 602 換字テーブルデータ生成部 603 入力鍵生成部 604 鍵制御部 701 データ復号化部 702 換字テーブルデータ生成部 703 入力鍵生成部 704 鍵制御部 1011 第1排他的論理和部 1012 第2排他的論理和部 2011 第1排他的論理和部 2012 第2排他的論理和部 3001 換字テーブルデータ保管部 3002 第1テーブル値変換部 3003 第2テーブル値変換部 3004 第3テーブル値変換部 3005 第1加算部 3006 第2加算部 3007 排他的論理和部 5001 換字テーブルデータ保管部 5002 第1入力変換部 5003 第2入力変換部 5004 第3入力変換部 5005 第4入力変換部 5006 第1排他的論理和部 5007 第2排他的論理和部 5008 第3排他的論理和部 5009 第1テーブル値変換部 5010 第2テーブル値変換部 5011 第3テーブル値変換部 5012 第4テーブル値変換部 5012 第1加算部 5013 第2加算部 5014 第3加算部 5015 第4加算部 6011 データ撹乱部 6012 段数制御部 6013 部分鍵生成部 7011 データ撹乱部 7012 段数制御部 7013 部分鍵生成部[Description of Signs] 1 transmitter 2 receiver 3 transmission path 6 transmitter 7 receiver 8 transmission path 10 data encryption device 11 transmission unit 20 data decryption device 21 reception unit 60 data encryption device 61 transmission unit 70 data decryption Device 71 receiving unit 101 data disturbing unit 102 stage number controlling unit 103 key controlling unit 201 data disturbing unit 202 stage number controlling unit 203 key controlling unit 300 data converting unit 301 data converting unit 301 500 data converting unit 501 data converting unit 601 data encryption Unit 602 Substitution table data generation unit 603 Input key generation unit 604 Key control unit 701 Data decryption unit 702 Substitution table data generation unit 703 Input key generation unit 704 Key control unit 1011 First exclusive OR unit 1012 Second exclusive logic Sum part 2011 first exclusive OR part 2012 second exclusive theory Sum unit 3001 Substitution table data storage unit 3002 First table value conversion unit 3003 Second table value conversion unit 3004 Third table value conversion unit 3005 First addition unit 3006 Second addition unit 3007 Exclusive OR unit 5001 Substitution table data storage Section 5002 first input conversion section 5003 second input conversion section 5004 third input conversion section 5005 fourth input conversion section 5006 first exclusive OR section 5007 second exclusive OR section 5008 third exclusive OR section 5009 First table value converter 5010 Second table value converter 5011 Third table value converter 5012 Fourth table value converter 5012 First adder 5013 Second adder 5014 Third adder 5015 Fourth adder 6011 Data disturbance Unit 6012 stage number control unit 6013 partial key generation unit 7011 Data disturbance 7012 the number of stages control unit 7013 partial key generation unit

Claims (36)

【特許請求の範囲】[Claims] 【請求項1】 換字データを用いて、入力データに暗号
処理を施し、出力データを生成する暗号処理装置であっ
て、 N及びMを2以上の整数とした場合、 所定ビットの換字データを(2^N)個保管する保管手
段と、 (N×M)ビットの入力データをM個に等分して、各N
ビットの分割データをM個生成する分割手段と、 分割手段が生成したM個の分割データ、又は、それらの
分割データに合成処理を施して生成した入力合成データ
を入力とし、Nビットの入力毎に、保管手段が保管する
(2^N)個の換字データから、前記所定ビットの換字
データを1個特定して出力する換字手段と、 換字手段が出力した換字データが入力され、複数の異な
る固定変換を施すことによって、前記所定ビットの変換
データをM個生成する固定変換手段と、 固定変換手段が生成したM個の変換データに基づいて、
(N×M)ビットの出力データを生成する出力データ生
成手段とを備えることを特徴とする暗号処理装置。
1. An encryption processing apparatus for performing encryption processing on input data using substitution data and generating output data, wherein N and M are integers of 2 or more, and the substitution data of a predetermined bit is represented by ( 2 ^ N) storage means, and (N × M) -bit input data are equally divided into M pieces, and each N
A dividing means for generating M bit divided data; and M divided data generated by the dividing means or input synthesized data generated by performing a synthesizing process on the divided data. The substitution means for specifying and outputting one of the predetermined bits of substitution data from the (2 @ N) pieces of substitution data stored by the storage means, and the substitution data output by the substitution means are input, and a plurality of different substitution data are input. By performing the fixed conversion, fixed conversion means for generating M pieces of the conversion data of the predetermined bit, and based on the M pieces of conversion data generated by the fixed conversion means,
An output data generating means for generating (N × M) -bit output data.
【請求項2】 前記固定変換手段における各固定変換は
ローテーション処理であり、各固定変換は互いにローテ
ーションするビット数が異なることを特徴とする請求項
1に記載の暗号処理装置。
2. The cryptographic processing apparatus according to claim 1, wherein each fixed conversion in said fixed conversion means is a rotation process, and each fixed conversion has a different number of bits to be rotated.
【請求項3】 前記暗号処理装置は、さらに、 鍵データを入手する鍵入手手段と、 鍵入手手段が入手した鍵データに基づいて、前記固定変
換手段における各固定変換のローテーションの回数を決
定する回数決定手段とを備えることを特徴とする請求項
2に記載の暗号処理装置。
3. The cryptographic processing device further determines a key obtaining unit for obtaining key data, and a number of rotations of each fixed conversion in the fixed conversion unit based on the key data obtained by the key obtaining unit. The cryptographic processing device according to claim 2, further comprising a number-of-times determining means.
【請求項4】 前記保管手段が保管する換字データの所
定ビットは、(N×M)ビットであり、 前記換字手段は、前記分割手段が生成したM個の分割デ
ータのそれぞれに基づいて、保管手段が保管する(2^
N)個の換字データからそれぞれ1個を特定し、各(N
×M)ビットの換字データをM個出力し、 前記固定変換手段は、換字手段が出力したM個の換字デ
ータに、それぞれ異なる固定変換を施すことによって、
(N×M)ビットの変換データをM個生成し、 前記出力データ生成手段は、固定変換手段が生成したM
個の変換データの全てを対象に合成処理を施すことによ
って、(N×M)ビットの出力データを生成することを
特徴とする請求項1〜3の何れか1項に記載の暗号処理
装置。
4. A method according to claim 1, wherein the predetermined bits of the substitution data stored by the storage unit are (N × M) bits, and the substitution unit stores the substitution data based on each of the M divided data generated by the division unit. Means to keep (2 ^
One of each of the (N) substitution data is specified, and each (N)
× M) output M replacement data of bits, and the fixed conversion unit performs different fixed conversion on the M replacement data output by the replacement unit,
M pieces of (N × M) -bit conversion data are generated, and the output data generation means generates the M conversion data generated by the fixed conversion means.
The cryptographic processing apparatus according to any one of claims 1 to 3, wherein a synthesis process is performed on all of the converted data to generate (N x M) -bit output data.
【請求項5】 前記出力データ生成手段における合成処
理を構成する各処理はそれぞれ、算術和、及び、ビット
毎の排他的論理和の内の何れかを行なことを特徴とする
請求項4に記載の暗号処理装置。
5. The processing according to claim 4, wherein each of the processes constituting the combining process in the output data generating means performs one of an arithmetic sum and an exclusive OR for each bit. The cryptographic processing device according to the above.
【請求項6】 前記保管手段が保管する換字データの所
定ビットは、Nビットであり、 前記換字手段は、前記分割手段が生成したM個の分割デ
ータの全てを対象に全体合成処理を施すことによって、
Nビットの入力合成データを生成する入力合成手段を含
み、Nビットの入力合成データに基づいて、保管手段が
保管する(2^N)個の換字データから1個を特定し、
Nビットの換字データを出力し、 前記固定変換手段は、換字手段が出力した換字データ
に、異なるM個の固定変換を個々に施すことによって、
Nビットの変換データをM個生成し、 前記出力データ生成手段は、 前記分割手段が生成したM個の分割データの内の1個
と、前記固定変換手段が生成したM個の変換データの内
の1個とを対象に、個別合成処理をそれぞれ施すことに
よって、Nビットの出力合成データをM個生成する出力
合成手段と、 前記出力合成手段が生成した各NビットのM個の出力合
成データを連結処理を施すことによって、(N×M)ビ
ットの出力データを生成する連結手段とを含むことを特
徴とする請求項1〜3の何れか1項に記載の暗号処理装
置。
6. A predetermined bit of substitution data stored by the storage unit is N bits, and the substitution unit performs a total synthesis process on all of the M divided data generated by the division unit. By
An input synthesizing unit for generating N-bit input synthesized data is included, and one of the (2 ^ N) substitution data stored by the storage unit is specified based on the N-bit input synthesized data,
By outputting N-bit substitution data, the fixed conversion unit individually performs M different fixed conversions on the substitution data output by the substitution unit,
The output data generation unit generates M pieces of N-bit conversion data, and one of the M pieces of conversion data generated by the division unit and the M pieces of conversion data generated by the fixed conversion unit. An output combining means for generating M pieces of N-bit output combined data by subjecting each of the two to individual combining processing; and M output combined data of N bits each generated by the output combining means. 4. A cryptographic processing apparatus according to claim 1, further comprising: a concatenating unit that generates (N × M) bits of output data by performing concatenating processing.
【請求項7】 前記入力合成手段における全体合成処理
を構成する各処理はそれぞれは、算術和、及び、ビット
毎の排他的論理和の内の何れかを行なうことを特徴とす
る請求項6に記載の暗号処理装置。
7. The processing according to claim 6, wherein each processing constituting the overall synthesis processing in said input synthesizing means performs one of an arithmetic sum and an exclusive OR for each bit. The cryptographic processing device according to the above.
【請求項8】 前記入力合成手段における全体合成処理
を構成する各処理はそれぞれは、前記分割手段が生成し
たM個の分割データに、それぞれ異なる固定変換を施し
た後に、算術和、及び、ビット毎の排他的論理和の内の
何れかを行なうことを特徴とする請求項6に記載の暗号
処理装置。
8. The respective processings constituting the overall synthesis processing in the input synthesis means are respectively performed by applying different fixed conversions to the M pieces of divided data generated by the division means, and then performing an arithmetic sum and a bit operation. 7. The cryptographic processing apparatus according to claim 6, wherein any one of exclusive OR is performed.
【請求項9】 前記出力合成手段における個別合成処理
はそれぞれ、算術和、及び、ビット毎の排他的論理和の
内の何れかを行なうことを特徴とする請求項6に記載の
暗号処理装置。
9. The cryptographic processing apparatus according to claim 6, wherein each of the individual synthesizing processes in the output synthesizing means performs one of an arithmetic sum and an exclusive OR for each bit.
【請求項10】 換字テーブルデータを作成し、これを
用いて入力データに暗号処理を施し、出力データを生成
する暗号処理装置であって、 鍵データを保持する鍵データ保持手段と、 換字テーブルデータを保持する換字テーブルデータ保持
手段と、 入力データを所定のビット数のブロック単位に分割し、
入力ブロックとして順次出力するブロック化手段と、 所定数の入力ブロックに暗号処理を施した後で次の入力
ブロックに暗号処理を施す場合に、換字テーブルデータ
を作成し、換字テーブルデータ保持手段に保持された換
字テーブルデータを作成した換字テーブルデータに更新
する換字テーブルデータ作成手段と、 前の入力ブロックに暗号処理を施した後で次の入力ブロ
ックに暗号処理を施す場合には、鍵データ保持手段に保
持された鍵データに、前の入力ブロックに暗号処理を施
した際に暗号処理手段が生成した出力ブロックを用いて
ビット変換を施し、鍵データを変換する鍵データ変換手
段と、 換字テーブルデータ保持手段に保持された換字テーブル
データと、前記鍵データとを用いて、ブロック化手段が
順次出力する入力ブロックに暗号処理を施すことによっ
て、順次出力ブロックを生成する暗号処理手段とを備え
ることを特徴とする暗号処理装置。
10. A cryptographic processing apparatus for generating substitution table data, performing encryption processing on input data using the substitution table data, and generating output data, comprising: key data retaining means for retaining key data; A substitution table data holding means for holding the input data, and dividing the input data into blocks of a predetermined number of bits,
Blocking means for sequentially outputting as input blocks, and when performing encryption processing on a predetermined number of input blocks and then performing encryption processing on the next input block, creates substitution table data and retains the substitution table data in the substitution table data retaining means Substitution table data creating means for updating the converted substitution table data to the created substitution table data; and key data holding means for performing encryption processing on the previous input block and then performing encryption processing on the next input block. Key data conversion means for performing bit conversion using the output block generated by the encryption processing means when the encryption processing is performed on the previous input block to the key data held in the key data, and converting the key data; Using the substitution table data held in the holding means and the key data, the input data is sequentially output to the input block by the blocking means. No. processed by the performing encryption processing apparatus characterized by comprising a cryptographic processing means for sequentially generating output block.
【請求項11】 前記暗号処理装置は、さらに、 前記所定数の入力ブロックに暗号処理を施した後で次の
入力ブロックに暗号処理を施す場合に、鍵データを入手
して鍵データ保持手段に保持された鍵データを更新する
鍵データ入手手段を備え、 前記換字テーブルデータ作成手段は、鍵データ入手手段
により入手された鍵データに基づいて、換字テーブルデ
ータを作成することを特徴とする請求項10に記載の暗
号処理装置。
11. The cryptographic processing apparatus further comprising: when performing cryptographic processing on the predetermined number of input blocks and then performing cryptographic processing on the next input block, obtains key data and sends the key data to the key data holding unit. A key data obtaining unit for updating the held key data, wherein the substitution table data generating unit generates the substitution table data based on the key data obtained by the key data obtaining unit. The cryptographic processing device according to claim 10.
【請求項12】 前記鍵データ入手手段は、さらに、 入力データ中の先頭の入力ブロックに暗号処理を施す場
合は、鍵データを入手して鍵データ保持手段に保持し、 前記換字テーブルデータ作成手段は、さらに、 入力データ中の先頭の入力ブロックに暗号処理を施す場
合は、鍵データ入手手段により入手された鍵データに基
づいて、換字テーブルデータを作成し、換字テーブルデ
ータ保持手段に保持することを特徴とする請求項11に
記載の暗号処理装置。
12. The key data obtaining means further obtains key data and holds the key data in a key data holding means when performing encryption processing on the first input block in the input data; Further, when performing encryption processing on the first input block in the input data, it is necessary to create substitution table data based on the key data obtained by the key data obtaining unit and to store the substitution table data in the substitution table data holding unit. The cryptographic processing device according to claim 11, wherein:
【請求項13】 前記鍵データ変換手段は、予め前記所
定のビット数の初期ブロックを保持し、入力データ中の
先頭の入力ブロックに暗号処理を施す場合、及び、前記
所定数より少ない一定数の入力ブロックに暗号処理を施
した後で次の入力ブロックに暗号処理を施す場合は、鍵
データ保持手段に保持された鍵データに、前記初期ブロ
ックを用いてビット変換を施し、鍵データを変換し、 前記暗号処理手段は、換字テーブルデータ保持手段に保
持された換字テーブルデータと、鍵データ変換手段によ
り変換された鍵データとを用いて、ブロック化手段が順
次出力する入力ブロックに暗号処理を施すことによっ
て、順次出力ブロックを生成することを特徴とする請求
項12に記載の暗号処理装置。
13. The key data conversion means holds an initial block of the predetermined number of bits in advance, performs encryption processing on the first input block in input data, and sets a predetermined number of bits smaller than the predetermined number. When performing encryption processing on the next input block after performing encryption processing on the input block, the key data held in the key data holding means is subjected to bit conversion using the initial block to convert the key data. The encryption processing means performs encryption processing on the input blocks sequentially output by the blocking means, using the substitution table data held in the substitution table data holding means and the key data converted by the key data conversion means. 13. The cryptographic processing apparatus according to claim 12, wherein the output blocks are sequentially generated.
【請求項14】 前記鍵データ変換手段におけるビット
変換は、算術和、及び、ビット毎の排他的論理和の何れ
かを行なう処理であることを特徴とする請求項13に記
載の暗号処理装置。
14. The encryption processing device according to claim 13, wherein the bit conversion in the key data conversion means is a process of performing an arithmetic sum or an exclusive OR for each bit.
【請求項15】 換字テーブルデータを作成し、これを
用いて入力データに暗号処理を施し、出力データを生成
する暗号処理装置であって、 鍵データを保持する鍵データ保持手段と、 換字テーブルデータを保持する換字テーブルデータ保持
手段と、 入力データを所定のビット数のブロック単位に分割し、
入力ブロックとして順次出力するブロック化手段と、 所定数の入力ブロックに暗号処理を施した後で次の入力
ブロックに暗号処理を施す場合に、換字テーブルデータ
を作成し、換字テーブルデータ保持手段に保持された換
字テーブルデータを作成した換字テーブルデータに更新
する換字テーブルデータ作成手段と、 前の入力ブロックに暗号処理を施した後で次の入力ブロ
ックに暗号処理を施す場合には、鍵データ保持手段に保
持された鍵データに、前の入力ブロックを用いてビット
変換を施し、鍵データを変換する鍵データ変換手段と、 換字テーブルデータ保持手段に保持された換字テーブル
データと、前記鍵データとを用いて、ブロック化手段が
順次出力する入力ブロックに暗号処理を施すことによっ
て、順次出力ブロックを生成する暗号処理手段とを備え
ることを特徴とする暗号処理装置。
15. A cryptographic processing apparatus for generating substitution table data, performing encryption processing on input data using the substitution table data, and generating output data, comprising: key data retaining means for retaining key data; A substitution table data holding means for holding the input data, and dividing the input data into blocks of a predetermined number of bits,
Blocking means for sequentially outputting as input blocks, and when performing encryption processing on a predetermined number of input blocks and then performing encryption processing on the next input block, creates substitution table data and retains the substitution table data in the substitution table data retaining means Substitution table data creating means for updating the converted substitution table data to the created substitution table data; and key data holding means for performing encryption processing on the previous input block and then performing encryption processing on the next input block. Key data conversion means for performing bit conversion using the previous input block on the key data held in the key data conversion means, and converting the key data; substitution table data stored in the substitution table data storage means; and the key data. By performing encryption processing on the input blocks sequentially output by the blocking means using the Cryptographic processing apparatus, characterized in that it comprises a processing means.
【請求項16】 前記暗号処理装置は、さらに、 前記所定数の入力ブロックに暗号処理を施した後で次の
入力ブロックに暗号処理を施す場合に、鍵データを入手
して鍵データ保持手段に保持された鍵データを更新する
鍵データ入手手段を備え、 前記換字テーブルデータ作成手段は、鍵データ入手手段
により入手された鍵データに基づいて、換字テーブルデ
ータを作成することを特徴とする請求項15に記載の暗
号処理装置。
16. The cryptographic processing apparatus according to claim 1, further comprising: when performing encryption processing on the predetermined number of input blocks and then performing encryption processing on the next input block, obtains key data and sends the key data to the key data holding unit. A key data obtaining unit for updating the held key data, wherein the substitution table data generating unit generates the substitution table data based on the key data obtained by the key data obtaining unit. 16. The encryption processing device according to 15.
【請求項17】 前記鍵データ入手手段は、さらに、 入力データ中の最初の入力ブロックに暗号処理を施す場
合は、鍵データを入手して鍵データ保持手段に保持し、 前記換字テーブルデータ作成手段は、さらに、 入力データ中の最初の入力ブロックに暗号処理を施す場
合は、鍵データ入手手段により入手された鍵データに基
づいて、換字テーブルデータを作成し、換字テーブルデ
ータ保持手段に保持することを特徴とする請求項16に
記載の暗号処理装置。
17. The key data obtaining means further obtains key data and holds it in a key data holding means when performing encryption processing on a first input block in the input data; Further, in the case where the first input block in the input data is subjected to encryption processing, it is necessary to create substitution table data based on the key data obtained by the key data obtaining unit and to store the substitution table data in the substitution table data holding unit. The cryptographic processing device according to claim 16, wherein:
【請求項18】 前記鍵データ変換手段は、予め前記所
定のビット数の初期ブロックを保持し、入力データ中の
最初の入力ブロックに暗号処理を施す場合、及び、前記
所定数より少ない一定数の入力ブロックに暗号処理を施
した後で次の入力ブロックに暗号処理を施す場合は、鍵
データ保持手段に保持された鍵データに、前記初期ブロ
ックを用いてビット変換を施し、鍵データを変換し、 前記暗号処理手段は、換字テーブルデータ保持手段に保
持された換字テーブルデータと、鍵データ変換手段によ
り変換された鍵データとを用いて、ブロック化手段が順
次出力する入力ブロックに暗号処理を施すことによっ
て、順次出力ブロックを生成することを特徴とする請求
項17に記載の暗号処理装置。
18. The key data conversion means holds an initial block of the predetermined number of bits in advance, performs encryption processing on the first input block in input data, and sets a predetermined number of bits smaller than the predetermined number. When performing encryption processing on the next input block after performing encryption processing on the input block, the key data held in the key data holding means is subjected to bit conversion using the initial block to convert the key data. The encryption processing means performs encryption processing on the input blocks sequentially output by the blocking means, using the substitution table data held in the substitution table data holding means and the key data converted by the key data conversion means. 18. The cryptographic processing apparatus according to claim 17, wherein output blocks are sequentially generated.
【請求項19】 前記鍵データ変換手段におけるビット
変換は、算術和、ビット毎の排他的論理和、及び、算術
和とビット毎の排他的論理和との組み合わせの内の何れ
かを行なう処理であることを特徴とする請求項18に記
載の暗号処理装置。
19. The bit conversion in the key data conversion means is a process of performing any one of an arithmetic sum, an exclusive OR for each bit, and a combination of the arithmetic sum and the exclusive OR for each bit. 19. The cryptographic processing device according to claim 18, wherein:
【請求項20】 換字テーブルデータを作成し、これを
用いて入力データに暗号処理を施し、出力データを生成
する暗号処理装置であって、 鍵データを保持する鍵データ保持手段と、 換字テーブルデータを保持する換字テーブルデータ保持
手段と、 入力データを所定のビット数のブロック単位に分割し、
入力ブロックとして順次出力するブロック化手段と、 所定数の入力ブロックに暗号処理を施した後で次の入力
ブロックに暗号処理を施す場合に、換字テーブルデータ
を作成し、換字テーブルデータ保持手段に保持された換
字テーブルデータを作成した換字テーブルデータに更新
する換字テーブルデータ作成手段と、 一個の入力ブロックに暗号処理を施した後で次の入力ブ
ロックに暗号処理を施す場合には、鍵データ保持手段に
保持された鍵データに、前の入力ブロックに暗号処理を
施す間に暗号処理手段が生成した中間ブロックを用いて
ビット変換を施し、鍵データを変換する鍵データ変換手
段と、 換字テーブルデータ保持手段に保持された換字テーブル
データと、前記鍵データとを用いて、ブロック化手段が
順次出力する入力ブロックに暗号処理を施すことによっ
て、順次、暗号処理の過程で得られる中間ブロックと、
暗号処理の結果に得られる出力ブロックとを生成する暗
号処理手段とを備えることを特徴とする暗号処理装置。
20. A cryptographic processing apparatus for generating substitution table data, performing encryption processing on input data using the substitution table data, and generating output data, comprising: key data holding means for holding key data; A substitution table data holding means for holding the input data, and dividing the input data into blocks of a predetermined number of bits,
Blocking means for sequentially outputting as input blocks, and when performing encryption processing on a predetermined number of input blocks and then performing encryption processing on the next input block, creates substitution table data and retains the substitution table data in the substitution table data retaining means Substitution table data creating means for updating the converted substitution table data to the created substitution table data; and key data holding means for performing encryption processing on one input block and then performing encryption processing on the next input block. Key data conversion means for performing bit conversion using the intermediate block generated by the encryption processing means on the key data held in the input block while performing encryption processing on the previous input block, thereby converting the key data; By using the substitution table data held in the means and the key data, the input block is sequentially output by the blocking means. By subjecting the No. process, successively, an intermediate block obtained in the process of the encryption processing,
A cryptographic processing unit for generating an output block obtained as a result of the cryptographic processing.
【請求項21】 前記暗号処理装置は、さらに、 前記所定数の入力ブロックに暗号処理を施した後で次の
入力ブロックに暗号処理を施す場合に、鍵データを入手
して鍵データ保持手段に保持された鍵データを更新する
鍵データ入手手段を備え、 前記換字テーブルデータ作成手段は、鍵データ入手手段
により入手された鍵データに基づいて、換字テーブルデ
ータを作成することを特徴とする請求項20に記載の暗
号処理装置。
21. The cryptographic processing apparatus further comprising: when performing cryptographic processing on the predetermined number of input blocks and then performing cryptographic processing on the next input block, obtains key data and transmits the key data to the key data holding unit. A key data obtaining unit for updating the held key data, wherein the substitution table data generating unit generates the substitution table data based on the key data obtained by the key data obtaining unit. 20. The cryptographic processing device according to 20.
【請求項22】 前記鍵データ入手手段は、さらに、 入力データ中の先頭の入力ブロックに暗号処理を施す場
合は、鍵データを入手して鍵データ保持手段に保持し、 前記換字テーブルデータ作成手段は、さらに、 入力データ中の先頭の入力ブロックに暗号処理を施す場
合は、鍵データ入手手段により入手された鍵データに基
づいて、換字テーブルデータを作成し、換字テーブルデ
ータ保持手段に保持することを特徴とする請求項21に
記載の暗号処理装置。
22. The key data obtaining unit further obtains key data and holds the key data in a key data holding unit when performing encryption processing on the first input block in the input data; Further, when performing encryption processing on the first input block in the input data, it is necessary to create substitution table data based on the key data obtained by the key data obtaining unit and to store the substitution table data in the substitution table data holding unit. The cryptographic processing device according to claim 21, wherein:
【請求項23】 前記鍵データ変換手段は、予め前記所
定のビット数の初期ブロックを保持し、入力データ中の
先頭の入力ブロックに暗号処理を施す場合、及び、前記
所定数より少ない一定数の入力ブロックに暗号処理を施
した後で次の入力ブロックに暗号処理を施す場合は、鍵
データ保持手段に保持された鍵データに、前記初期ブロ
ックを用いてビット変換を施し、鍵データを変換し、 前記暗号処理手段は、換字テーブルデータ保持手段に保
持された換字テーブルデータと、鍵データ変換手段によ
り変換された鍵データとを用いて、ブロック化手段が順
次出力する入力ブロックに暗号処理を施すことによっ
て、順次中間ブロックと出力ブロックとを生成すること
を特徴とする請求項22に記載の暗号処理装置。
23. The key data conversion means holds an initial block of the predetermined number of bits in advance, performs encryption processing on the first input block in input data, and sets a predetermined number of bits smaller than the predetermined number. When performing encryption processing on the next input block after performing encryption processing on the input block, the key data held in the key data holding means is subjected to bit conversion using the initial block to convert the key data. The encryption processing means performs encryption processing on the input blocks sequentially output by the blocking means, using the substitution table data held in the substitution table data holding means and the key data converted by the key data conversion means. 23. The encryption processing device according to claim 22, wherein intermediate blocks and output blocks are sequentially generated.
【請求項24】 前記鍵データ変換手段におけるビット
変換は、算術和、ビット毎の排他的論理和、及び、算術
和とビット毎の排他的論理和との組み合わせの内の何れ
かを行なう処理であることを特徴とする請求項23に記
載の暗号処理装置。
24. The bit conversion in the key data conversion means is a process of performing any one of an arithmetic sum, an exclusive OR for each bit, and a combination of an arithmetic sum and an exclusive OR for each bit. 24. The cryptographic processing device according to claim 23, wherein:
【請求項25】 N及びMを2以上の整数とするとき、
所定ビットの換字データを(2^N)個保管する保管装
置を備える暗号処理装置において、換字データを用い
て、入力データに暗号処理を施し、出力データを生成す
る暗号処理方法であって、 (N×M)ビットの入力データをM個に等分して、各N
ビットの分割データをM個生成する分割ステップと、 分割ステップで生成したM個の分割データ、又は、それ
らのデータに合成処理を施すことによって生成した入力
合成データを入力とし、Nビットの入力毎に、保管装置
が保管する(2^N)個の換字データから、前記所定ビ
ットの換字データを1個特定して出力する換字ステップ
と、 換字ステップで出力した換字データが入力され、複数の
異なる固定変換を施すことによって、前記所定ビットの
変換データをM個生成する固定変換ステップと、 固定変換ステップが生成したM個の変換データに基づい
て、(N×M)ビットの出力データを生成する出力デー
タ生成ステップとを備えることを特徴とする暗号処理方
法。
25. When N and M are integers of 2 or more,
What is claimed is: 1. A cryptographic processing apparatus having a storage device for storing (2 ^ N) pieces of substitution data of a predetermined bit, wherein the encryption processing method performs an encryption process on input data using the substitution data to generate output data, N × M) bits of input data are equally divided into M
A dividing step of generating M pieces of bit-divided data; and M pieces of divided data generated in the dividing step, or input synthesized data generated by performing a synthesizing process on the data. A substitution step for specifying and outputting one of the predetermined bits of substitution data from the (2 @ N) pieces of substitution data stored by the storage device, and a substitution data output in the substitution step; Performing a fixed conversion to generate M pieces of the conversion data of the predetermined bits; and generating (N × M) bits of output data based on the M pieces of conversion data generated by the fixed conversion step. An output data generation step.
【請求項26】 前記保管装置が保管する換字データの
所定ビットは、(N×M)ビットであり、 前記換字ステップは、前記分割ステップで生成したM個
の分割データのそれぞれに基づいて、保管装置が保管す
る(2^N)個の換字データからそれぞれ1個を特定
し、各(N×M)ビットの換字データをM個出力し、 前記固定変換ステップは、換字ステップで出力したM個
の換字データに、それぞれ異なる固定変換を施すことに
よって、(N×M)ビットの変換データをM個生成し、 前記出力データ生成ステップは、固定変換ステップが生
成したM個の変換データを合成処理して、(N×M)ビ
ットの出力データを生成することを特徴とする請求項2
5に記載の暗号処理方法。
26. A method according to claim 26, wherein the predetermined bits of the substitution data stored by the storage device are (N × M) bits, and the substitution step is performed based on each of the M divided data generated in the division step. The apparatus specifies one of each of the (2 ^ N) substitution data stored and outputs M (N × M) -bit substitution data, and the fixed conversion step includes the M conversion steps output in the substitution step. By performing different fixed conversions on each of the substitution data of (i), (M) (M) conversion data of (N × M) bits. The output data generation step includes a process of combining the M conversion data generated by the fixed conversion step. And (N × M) bits of output data are generated.
6. The encryption processing method according to 5.
【請求項27】 前記保管装置が保管する換字データの
所定ビットは、Nビットであり、 前記換字ステップは、前記分割ステップで生成したM個
の分割データに合成処理を施すことによって、Nビット
の入力合成データを生成する入力合成サブステップを含
み、Nビットの入力合成データに基づいて、保管装置が
保管する(2^N)個の換字データから1個を特定し、
Nビットの換字データを出力し、 前記固定変換ステップは、換字ステップで出力した換字
データに、異なるM個の固定変換を個々に施すことによ
って、Nビットの変換データをM個生成し、前記出力デ
ータ生成ステップは、 前記分割ステップで生成したM個の分割データの内の1
個と、前記固定変換ステップで生成したM個の変換デー
タの内の1個とを対象に、合成処理をそれぞれ施すこと
によって、Nビットの出力合成データをM個生成する出
力合成サブステップと、 前記合成ステップで生成した各NビットのM個の出力合
成データを連結処理して、(N×M)ビットの出力デー
タを生成する連結サブステップとを含むことを特徴とす
る請求項25に記載の暗号処理方法。
27. A method according to claim 27, wherein the predetermined bits of the substitution data stored by the storage device are N bits, and the substitution step is performed by performing a combining process on the M pieces of divided data generated in the dividing step. An input combining sub-step of generating input combined data, wherein one of the (2 ^ N) substitution data stored by the storage device is specified based on the N-bit input combined data;
Outputting the N-bit substitution data; and performing the fixed conversion step, wherein each of the substitution data output in the substitution step is subjected to M different fixed conversions, thereby generating M N-bit conversion data. The data generation step is one of the M divided data generated in the division step.
And an output combining sub-step of generating M pieces of N-bit output combined data by performing a combining process on each of the converted data and one of the M pieces of converted data generated in the fixed conversion step. 26. A linking sub-step of linking M output synthesized data of each N bits generated in the synthesizing step to generate (N × M) -bit output data. Encryption processing method.
【請求項28】 鍵データを保持する鍵データ保持装置
と、換字テーブルデータを保持する換字テーブルデータ
保持装置とを備える暗号処理装置において、換字テーブ
ルデータを作成し、これを用いて入力データに暗号処理
を施し、出力データを生成する暗号処理方法であって、 入力データを所定のビット数のブロック単位に分割し、
入力ブロックとして順次出力するブロック化ステップ
と、 所定数の入力ブロックに暗号処理を施した後で次の入力
ブロックに暗号処理を施す場合に、換字テーブルデータ
を作成し、換字テーブルデータ保持装置に保持された換
字テーブルデータを更新する換字テーブルデータ作成ス
テップと、 一個の入力ブロックに暗号処理を施した後で次の入力ブ
ロックに暗号処理を施す場合には、鍵データ保持装置に
保持された鍵データに、前の入力ブロックに暗号処理を
施した際に暗号処理ステップで生成された出力ブロック
を用いてビット変換を施し、鍵データを変換する鍵デー
タ変換ステップと、 換字テーブルデータ保持装置に保持された換字テーブル
データと、前記鍵データとを用いて、ブロック化ステッ
プで順次出力される入力ブロックに暗号処理を施すこと
によって、順次出力ブロックを生成する暗号処理ステッ
プとを備えることを特徴とする暗号処理方法。
28. A cryptographic processing apparatus including a key data holding device for holding key data and a substitution table data holding device for holding substitution table data, wherein substitution table data is created and used to encrypt input data. A cryptographic processing method for performing processing and generating output data, wherein input data is divided into blocks of a predetermined number of bits,
A block forming step of sequentially outputting as input blocks, and when performing encryption processing on a predetermined number of input blocks and then performing encryption processing on the next input block, creates substitution table data and holds the data in the substitution table data holding device A substituting table data generating step of updating the input substituting table data, and, when performing an enciphering process on one input block and then performing an enciphering process on the next input block, the key data held in the key data holding device. A key data conversion step of performing bit conversion by using the output block generated in the encryption processing step when the previous input block was subjected to the encryption processing, thereby converting the key data; and Using the character substitution table data and the key data, the input blocks sequentially output in the blocking step are encrypted. By performing the processing, the encryption processing method characterized by comprising a cryptographic processing step of sequentially generating output block.
【請求項29】 鍵データを保持する鍵データ保持装置
と、換字テーブルデータを保持する換字テーブルデータ
保持装置とを備える暗号処理装置において、換字テーブ
ルデータを作成し、これを用いて入力データに暗号処理
を施し、出力データを生成する暗号処理方法であって、 入力データを所定のビット数のブロック単位に分割し、
入力ブロックとして順次出力するブロック化ステップ
と、 所定数の入力ブロックに暗号処理を施した後で次の入力
ブロックに暗号処理を施す場合に、換字テーブルデータ
を作成し、換字テーブルデータ保持装置に保持された換
字テーブルデータを更新する換字テーブルデータ作成ス
テップと、 一個の入力ブロックに暗号処理を施した後で次の入力ブ
ロックに暗号処理を施す場合には、鍵データ保持装置に
保持された鍵データに、前の入力ブロックを用いてビッ
ト変換を施し、鍵データを変換する鍵データ変換ステッ
プと、 換字テーブルデータ保持装置に保持された換字テーブル
データと、前記鍵データとを用いて、ブロック化ステッ
プで順次出力される入力ブロックに暗号処理を施すこと
によって、順次出力ブロックを生成する暗号処理ステッ
プとを備えることを特徴とする暗号処理方法。
29. A cryptographic processing apparatus including a key data holding device for holding key data and a substitution table data holding device for holding substitution table data, wherein substitution table data is created and used to encrypt input data. A cryptographic processing method for performing processing and generating output data, wherein input data is divided into blocks of a predetermined number of bits,
A block forming step of sequentially outputting as input blocks, and when performing encryption processing on a predetermined number of input blocks and then performing encryption processing on the next input block, creates substitution table data and holds the data in the substitution table data holding device A substituting table data generating step of updating the input substituting table data, and, when performing an enciphering process on one input block and then performing an enciphering process on the next input block, the key data held in the key data holding device. A key data conversion step of performing bit conversion using the previous input block to convert the key data; a substituting table step using the substitution table data held in the substitution table data holding device and the key data. By performing cryptographic processing on input blocks sequentially output by the Cryptographic processing method characterized by comprising a-up.
【請求項30】 鍵データを保持する鍵データ保持装置
と、換字テーブルデータを保持する換字テーブルデータ
保持装置とを備える暗号処理装置において、換字テーブ
ルデータを作成し、これを用いて入力データに暗号処理
を施し、出力データを生成する暗号処理方法であって、 入力データを所定のビット数のブロック単位に分割し、
入力ブロックとして順次出力するブロック化ステップ
と、 所定数の入力ブロックに暗号処理を施した後で次の入力
ブロックに暗号処理を施す場合に、換字テーブルデータ
を作成し、換字テーブルデータ保持装置に保持された換
字テーブルデータを更新する換字テーブルデータ作成ス
テップと、 一個の入力ブロックに暗号処理を施した後で次の入力ブ
ロックに暗号処理を施す場合には、鍵データ保持装置に
保持された鍵データに、前の入力ブロックに暗号処理を
施した際に暗号処理ステップで生成された中間ブロック
を用いてビット変換を施し、鍵データを変換する鍵デー
タ変換ステップと、 換字テーブルデータ保持装置に保持された換字テーブル
データと、前記鍵データとを用いて、ブロック化ステッ
プで順次出力される入力ブロックに暗号処理を施すこと
によって、順次、暗号処理の過程で得られる中間ブロッ
クと、暗号処理の結果に得られる出力ブロックとを生成
する暗号処理ステップとを備えることを特徴とする暗号
処理方法。
30. A cryptographic processing apparatus including a key data holding device for holding key data and a substitution table data holding device for holding substitution table data, wherein substitution table data is created and used to encrypt input data. A cryptographic processing method for performing processing and generating output data, wherein input data is divided into blocks of a predetermined number of bits,
A block forming step of sequentially outputting as input blocks, and when performing encryption processing on a predetermined number of input blocks and then performing encryption processing on the next input block, creates substitution table data and holds the data in the substitution table data holding device A substituting table data generating step of updating the input substituting table data, and, when performing an enciphering process on one input block and then performing an enciphering process on the next input block, the key data held in the key data holding device. In addition, a key data conversion step of performing bit conversion using the intermediate block generated in the encryption processing step when the previous input block was subjected to the encryption processing and converting key data, Using the character substitution table data and the key data, the input blocks sequentially output in the blocking step are encrypted. By performing the process sequentially, the cryptographic processing method characterized by comprising an intermediate block obtained in the process of the encryption processing, an encryption processing step of generating an output block obtained result of the encryption processing.
【請求項31】 N及びMを2以上の整数とするとき、
所定ビットの換字データを(2^N)個保管する保管装
置を備える暗号処理装置において、換字データを用い
て、入力データに暗号処理を施し、出力データを生成す
るための暗号処理プログラムを記憶したコンピュータ読
み取り可能な記憶媒体であって、コンピュータに、 (N×M)ビットの入力データをM個に等分して、各N
ビットの分割データをM個生成する分割ステップと、 分割ステップで生成したM個の分割データ、又は、それ
らのデータに合成処理を施すことによって生成した入力
合成データを入力とし、Nビットの入力毎に、保管装置
が保管する(2^N)個の換字データから、前記所定ビ
ットの換字データを1個特定して出力する換字ステップ
と、 換字ステップで出力した換字データが入力され、複数の
異なる固定変換を施すことによって、前記所定ビットの
変換データをM個生成する固定変換ステップと、 固定変換ステップが生成したM個の変換データに基づい
て、(N×M)ビットの出力データを生成する出力デー
タ生成ステップとを実行させるための暗号処理プログラ
ムを記録したコンピュータ読み取り可能な記憶媒体。
31. When N and M are integers of 2 or more,
In a cryptographic processing apparatus having a storage device for storing (2 ^ N) pieces of substitution data of a predetermined bit, an encryption processing program for encrypting input data using the substitution data and generating output data is stored. A computer-readable storage medium that divides (N × M) -bit input data into M pieces,
A dividing step of generating M pieces of bit divided data; and M divided data generated in the dividing step, or input combined data generated by performing a combining process on the data, and inputting N bits of input data. A substitution step for specifying and outputting one of the predetermined bits of substitution data from the (2 @ N) pieces of substitution data stored by the storage device, and a substitution data output in the substitution step; Performing a fixed conversion to generate M pieces of the conversion data of the predetermined bits; and generating (N × M) bits of output data based on the M pieces of conversion data generated by the fixed conversion step. A computer-readable storage medium storing an encryption processing program for executing the output data generation step.
【請求項32】 前記保管装置が保管する換字データの
所定ビットは、(N×M)ビットであり、 前記換字ステップは、前記分割ステップで生成したM個
の分割データのそれぞれに基づいて、保管装置が保管す
る(2^N)個の換字データからそれぞれ1個を特定
し、各(N×M)ビットの換字データをM個出力し、 前記固定変換ステップは、換字ステップで出力したM個
の換字データに、それぞれ異なる固定変換を施すことに
よって、(N×M)ビットの変換データをM個生成し、 前記出力データ生成ステップは、固定変換ステップが生
成したM個の変換データを合成処理して、(N×M)ビ
ットの出力データを生成することを特徴とする請求項3
1に記載の暗号処理プログラムを記憶したコンピュータ
読み取り可能な記憶媒体。
32. The predetermined bits of the substitution data stored by the storage device are (N × M) bits, and the substitution step is performed based on each of the M pieces of divided data generated in the division step. The apparatus specifies one of each of the (2 ^ N) substitution data stored and outputs M (N × M) -bit substitution data, and the fixed conversion step includes the M conversion steps output in the substitution step. By performing different fixed conversions on each of the substitution data of (i), (M) (M) conversion data of (N × M) bits. The output data generation step includes a process of synthesizing the M conversion data generated by the fixed conversion step. And generating (N × M) bits of output data.
A computer-readable storage medium storing the encryption processing program according to claim 1.
【請求項33】 前記保管装置が保管する換字データの
所定ビットは、Nビットであり、 前記換字ステップは、前記分割ステップで生成したM個
の分割データに合成処理を施すことによって、Nビット
の入力合成データを生成する入力合成サブステップを含
み、Nビットの入力合成データに基づいて、保管装置が
保管する(2^N)個の換字データから1個を特定し、
Nビットの換字データを出力し、 前記固定変換ステップは、換字ステップで出力した換字
データに、異なるM個の固定変換を個々に施すことによ
って、Nビットの変換データをM個生成し、 前記出力データ生成ステップは、 前記分割ステップで生成したM個の分割データの内の1
個と、前記固定変換ステップで生成したM個の変換デー
タの内の1個とを対象に、合成処理をそれぞれ施すこと
によって、Nビットの出力合成データをM個生成する出
力合成サブステップと、 前記合成ステップで生成した各NビットのM個の出力合
成データを連結処理して、(N×M)ビットの出力デー
タを生成する連結サブステップとを含むことを特徴とす
る請求項31に記載の暗号処理プログラムを記憶したコ
ンピュータ読み取り可能な記憶媒体。
33. The predetermined bits of the substitution data stored in the storage device are N bits, and the substitution step is a step of performing a synthesis process on the M pieces of divided data generated in the division step to obtain N bits of the divided data. An input combining sub-step of generating input combined data, wherein one of the (2 ^ N) substitution data stored by the storage device is specified based on the N-bit input combined data;
Outputting N-bit substitution data, the fixed conversion step performs M fixed conversions different from each other on the substitution data output in the substitution step, thereby generating M N-bit conversion data; The data generation step is one of the M divided data generated in the division step.
And an output combining sub-step of generating M pieces of N-bit output combined data by performing a combining process on each of the converted data and one of the M pieces of converted data generated in the fixed conversion step. 32. A concatenating sub-step of concatenating M output combined data of N bits each generated in the combining step to generate (N × M) -bit output data. A computer-readable storage medium storing the encryption processing program.
【請求項34】 鍵データを保持する鍵データ保持装置
と、換字テーブルデータを保持する換字テーブルデータ
保持装置とを備える暗号処理装置において、換字テーブ
ルデータを作成し、これを用いて入力データに暗号処理
を施し、出力データを生成するための暗号処理プログラ
ムを記憶したコンピュータ読み取り可能な記憶媒体であ
って、 コンピュータに、 入力データを所定のビット数のブロック単位に分割し、
入力ブロックとして順次出力するブロック化ステップ
と、 所定数の入力ブロックに暗号処理を施した後で次の入力
ブロックに暗号処理を施す場合に、換字テーブルデータ
を作成し、換字テーブルデータ保持装置に保持された換
字テーブルデータを更新する換字テーブルデータ作成ス
テップと、 一個の入力ブロックに暗号処理を施した後で次の入力ブ
ロックに暗号処理を施す場合には、鍵データ保持装置に
保持された鍵データに、前の入力ブロックに暗号処理を
施した際に暗号処理ステップで生成された出力ブロック
を用いてビット変換を施し、鍵データを変換する鍵デー
タ変換ステップと、 換字テーブルデータ保持装置に保持された換字テーブル
データと、前記鍵データとを用いて、ブロック化ステッ
プで順次出力される入力ブロックに暗号処理を施すこと
によって、順次出力ブロックを生成する暗号処理ステッ
プとを実行させるための暗号処理プログラムを記録した
コンピュータ読み取り可能な記憶媒体。
34. A cryptographic processing apparatus including a key data holding device for holding key data and a substitution table data holding device for holding substitution table data, wherein substitution table data is created and used to encrypt input data. A computer-readable storage medium storing a cryptographic processing program for performing processing and generating output data, wherein the computer divides input data into blocks of a predetermined number of bits,
A block forming step of sequentially outputting as input blocks, and when performing encryption processing on a predetermined number of input blocks and then performing encryption processing on the next input block, creates substitution table data and holds the data in the substitution table data holding device A substituting table data generating step of updating the input substituting table data, and, when performing an enciphering process on one input block and then performing an enciphering process on the next input block, the key data held in the key data holding device. A key data conversion step of performing bit conversion by using the output block generated in the encryption processing step when the previous input block was subjected to the encryption processing, thereby converting the key data; and Using the character substitution table data and the key data, the input blocks sequentially output in the blocking step are encrypted. By performing processing sequentially recorded computer-readable storage medium encryption processing program for executing an encryption processing step of generating an output block.
【請求項35】 鍵データを保持する鍵データ保持装置
と、換字テーブルデータを保持する換字テーブルデータ
保持装置とを備える暗号処理装置において、換字テーブ
ルデータを作成し、これを用いて入力データに暗号処理
を施し、出力データを生成するための暗号処理プログラ
ムを記憶したコンピュータ読み取り可能な記憶媒体であ
って、 コンピュータに、 入力データを所定のビット数のブロック単位に分割し、
入力ブロックとして順次出力するブロック化ステップ
と、 所定数の入力ブロックに暗号処理を施した後で次の入力
ブロックに暗号処理を施す場合に、換字テーブルデータ
を作成し、換字テーブルデータ保持装置に保持された換
字テーブルデータを更新する換字テーブルデータ作成ス
テップと、 一個の入力ブロックに暗号処理を施した後で次の入力ブ
ロックに暗号処理を施す場合には、鍵データ保持装置に
保持された鍵データに、前の入力ブロックを用いてビッ
ト変換を施し、鍵データを変換する鍵データ変換ステッ
プと、 換字テーブルデータ保持装置に保持された換字テーブル
データと、前記鍵データとを用いて、ブロック化ステッ
プで順次出力される入力ブロックに暗号処理を施すこと
によって、順次出力ブロックを生成する暗号処理ステッ
プとを実行させるための暗号処理プログラムを記録した
コンピュータ読み取り可能な記憶媒体。
35. A cryptographic processing apparatus including a key data holding device for holding key data and a substitution table data holding device for holding substitution table data, wherein substitution table data is created and used to encrypt input data. A computer-readable storage medium storing a cryptographic processing program for performing processing and generating output data, wherein the computer divides input data into blocks of a predetermined number of bits,
A block forming step of sequentially outputting as input blocks, and when performing encryption processing on a predetermined number of input blocks and then performing encryption processing on the next input block, creates substitution table data and holds the data in the substitution table data holding device A substituting table data generating step of updating the input substituting table data, and, when performing an enciphering process on one input block and then performing an enciphering process on the next input block, the key data held in the key data holding device. A key data conversion step of performing bit conversion using the previous input block to convert the key data; a substituting table step using the substitution table data held in the substitution table data holding device and the key data. By performing cryptographic processing on input blocks sequentially output by the A computer-readable storage medium encryption processing program for executing the-up.
【請求項36】 鍵データを保持する鍵データ保持装置
と、換字テーブルデータを保持する換字テーブルデータ
保持装置とを備える暗号処理装置において、換字テーブ
ルデータを作成し、これを用いて入力データに暗号処理
を施し、出力データを生成するための暗号処理プログラ
ムを記憶したコンピュータ読み取り可能な記憶媒体であ
って、 コンピュータに、 入力データを所定のビット数のブロック単位に分割し、
入力ブロックとして順次出力するブロック化ステップ
と、 所定数の入力ブロックに暗号処理を施した後で次の入力
ブロックに暗号処理を施す場合に、換字テーブルデータ
を作成し、換字テーブルデータ保持装置に保持された換
字テーブルデータを更新する換字テーブルデータ作成ス
テップと、 一個の入力ブロックに暗号処理を施した後で次の入力ブ
ロックに暗号処理を施す場合には、鍵データ保持装置に
保持された鍵データに、前の入力ブロックに暗号処理を
施した際に暗号処理ステップで生成された中間ブロック
を用いてビット変換を施し、鍵データを変換する鍵デー
タ変換ステップと、 換字テーブルデータ保持装置に保持された換字テーブル
データと、前記鍵データとを用いて、ブロック化ステッ
プで順次出力される入力ブロックに暗号処理を施すこと
によって、順次、暗号処理の過程で得られる中間ブロッ
クと、暗号処理の結果に得られる出力ブロックとを生成
する暗号処理ステップとを実行させるための暗号処理プ
ログラムを記録したコンピュータ読み取り可能な記憶媒
体。
36. A cryptographic processing apparatus comprising a key data holding device for holding key data and a substitution table data holding device for retaining substitution table data, wherein substitution table data is created and used to encrypt input data. A computer-readable storage medium storing a cryptographic processing program for performing processing and generating output data, wherein the computer divides input data into blocks of a predetermined number of bits,
A block forming step of sequentially outputting as input blocks, and when performing encryption processing on a predetermined number of input blocks and then performing encryption processing on the next input block, creates substitution table data and holds the data in the substitution table data holding device A substituting table data generating step of updating the input substituting table data, and, when performing an enciphering process on one input block and then performing an enciphering process on the next input block, the key data held in the key data holding device. In addition, a key data conversion step of performing bit conversion using the intermediate block generated in the encryption processing step when the previous input block was subjected to the encryption processing and converting key data, Using the character substitution table data and the key data, the input blocks sequentially output in the blocking step are encrypted. A computer readable recording of a cryptographic processing program for sequentially executing an intermediate processing block obtained in the course of the cryptographic processing and a cryptographic processing step for generating an output block obtained as a result of the cryptographic processing Storage media.
JP11864399A 1998-04-27 1999-04-26 Cryptographic processing device, cryptographic processing method, and storage medium storing cryptographic processing program Expired - Lifetime JP3154991B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11864399A JP3154991B2 (en) 1998-04-27 1999-04-26 Cryptographic processing device, cryptographic processing method, and storage medium storing cryptographic processing program

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP10-116758 1998-04-27
JP11675998 1998-04-27
JP11675898 1998-04-27
JP10-116759 1998-04-27
JP11864399A JP3154991B2 (en) 1998-04-27 1999-04-26 Cryptographic processing device, cryptographic processing method, and storage medium storing cryptographic processing program

Publications (2)

Publication Number Publication Date
JP2000019958A true JP2000019958A (en) 2000-01-21
JP3154991B2 JP3154991B2 (en) 2001-04-09

Family

ID=27313223

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11864399A Expired - Lifetime JP3154991B2 (en) 1998-04-27 1999-04-26 Cryptographic processing device, cryptographic processing method, and storage medium storing cryptographic processing program

Country Status (1)

Country Link
JP (1) JP3154991B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100436775B1 (en) * 2002-04-19 2004-06-23 한국전자통신연구원 Method of scrambling and descrambling using fast fourier transform
JP2009514096A (en) * 2005-10-26 2009-04-02 アナログ デバイシーズ インク Reference table addressing system and method

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6082349B2 (en) * 2011-09-29 2017-02-15 広和株式会社 Tire cleaning device and wheelchair tire cleaning device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100436775B1 (en) * 2002-04-19 2004-06-23 한국전자통신연구원 Method of scrambling and descrambling using fast fourier transform
JP2009514096A (en) * 2005-10-26 2009-04-02 アナログ デバイシーズ インク Reference table addressing system and method

Also Published As

Publication number Publication date
JP3154991B2 (en) 2001-04-09

Similar Documents

Publication Publication Date Title
KR100362458B1 (en) Cryptographic processing apparatus, cryptographic processing method, and recording medium recording cryptographic processing program for realizing high-speed crypographic processing without impairing security
US6246768B1 (en) Data encryption system for encrypting plaintext data
JP3901909B2 (en) ENCRYPTION DEVICE AND RECORDING MEDIUM CONTAINING PROGRAM
US6917684B1 (en) Method of encryption and decryption with block number dependant key sets, each set having a different number of keys
KR100349332B1 (en) Data encryption apparatus and method
GB2551865A (en) Improved stream cipher system
Reyad et al. Key-based enhancement of data encryption standard for text security
JP2003516659A (en) One's complement crypto combiner
JP3154991B2 (en) Cryptographic processing device, cryptographic processing method, and storage medium storing cryptographic processing program
Belmeguenai et al. Speech encryption using stream cipher
Ledda et al. Enhancing IDEA algorithm using circular shift and middle square method
JPH0738558A (en) Ciphering device, communication system using the same and method therefor
RU2738321C1 (en) Cryptographic transformation method and device for its implementation
Hussein et al. An enhanced ElGamal cryptosystem for image encryption and decryption
WO2022096141A1 (en) Method for processing encrypted data
JP2001016197A (en) Self-synchronized stream enciphering system and mac generating method using the same
Labbi et al. Symmetric encryption algorithm for RFID systems using a dynamic generation of key
Castro et al. Aes and merkle-hellman knapsack hybrid cryptosystem
RU2775253C1 (en) Method for cryptographic transformation with simultaneous generation of a derived encryption key
JP3190648B2 (en) Data encryption apparatus and method
CN114553397B (en) Encryption optimization method and device for SM4 group cipher algorithm of national cipher
Wang et al. Attack to an image encryption based on chaotic Logistic map
WO2022237440A1 (en) Authenticated encryption apparatus with initialization-vector misuse resistance and method therefor
JP2000004223A (en) Encryption/authentication system
Hassan et al. NETWORK SECURITY BY BLOCK CIPHERS

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080202

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20090202

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20100202

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20100202

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20110202

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20120202

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20120202

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20130202

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20130202

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20140202

Year of fee payment: 13

EXPY Cancellation because of completion of term