JP2000112348A - Encryption apparatus and decryption apparatus - Google Patents

Encryption apparatus and decryption apparatus

Info

Publication number
JP2000112348A
JP2000112348A JP32365399A JP32365399A JP2000112348A JP 2000112348 A JP2000112348 A JP 2000112348A JP 32365399 A JP32365399 A JP 32365399A JP 32365399 A JP32365399 A JP 32365399A JP 2000112348 A JP2000112348 A JP 2000112348A
Authority
JP
Japan
Prior art keywords
data
processing
encryption
bit
key
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.)
Pending
Application number
JP32365399A
Other languages
Japanese (ja)
Inventor
Kazuo Takaragi
和夫 宝木
Tsutomu Nakamura
勤 中村
Masahiro Yamashita
正弘 山下
Kazuo Hashimoto
和夫 橋本
Hiroshi Matsumoto
浩 松本
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.)
Hitachi Ltd
Hitachi Chubu Software Ltd
Original Assignee
Hitachi Ltd
Hitachi Chubu Software 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 Hitachi Ltd, Hitachi Chubu Software Ltd filed Critical Hitachi Ltd
Priority to JP32365399A priority Critical patent/JP2000112348A/en
Publication of JP2000112348A publication Critical patent/JP2000112348A/en
Pending legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To execute a high-speed cipher processing and to make it possible to assure the safety encrypting message data by using plural kinds of involution processing programs which are the base and arbitrary key data. SOLUTION: A cipher program A 102 is inputted from a support processor 101 to a 32-bit processor 106. An algorithm determination key A 105 of a 64-bit length and a system key A 111 of a 32-bit × 8=256 bit length are inputted to a 32-bit processor 106. The algorithm determination key B 107 of the formed 64-bit length is sent to the support processor 101 to operate a cipher program forming function 104. The formed cipher program B 103 is inputted to the 32-bit processor 106. The 32-bit processor 106 encrypts plaintext 109 with the data key 108 and the system key B 112 as parameters and outputs the ciphertext 110 obtained as a result thereof.

Description

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

【0001】[0001]

【発明の属する技術分野】本発明は、コンピュータのメ
ッセージ等を暗号化する暗号化処理装置、及び、暗号処
理方法に関する。
[0001] 1. Field of the Invention [0002] The present invention relates to an encryption processing device and an encryption processing method for encrypting a computer message and the like.

【0002】[0002]

【従来の技術】現在、多くの企業がビジネスの目的で情
報ネットワーク設備を強化している。近い将来、一つの
組織内ばかりでなく様々な取引関係にある複数の組織の
間で、情報交換が頻繁に行なわれるようになると予想さ
れる。このような状況下で通信のセキュリティを確保す
るのに、暗号は不可欠である。
2. Description of the Related Art At present, many companies are strengthening information network facilities for business purposes. In the near future, it is expected that information will be exchanged frequently not only within one organization but also among a plurality of organizations having various business relationships. In such a situation, encryption is indispensable for ensuring communication security.

【0003】暗号は、共通鍵暗号と公開鍵暗号という二
種に大別される。共通鍵暗号は、大量データの暗号化,
復号化を行なったり、メッセージ認証コードを作成する
のに用いられる。
[0003] Cryptography is roughly classified into two types: common key cryptography and public key cryptography. Symmetric key cryptography is for encrypting large amounts of data,
Used to perform decryption and create message authentication codes.

【0004】公開鍵暗号は、通信し合う双方で共通鍵を
秘密に配送したり、ディジタル署名を行なったりするの
に用いられる。また、共通鍵暗号は、送信者と受信者の
間で同一の鍵(共通鍵)が共有されたという前提のもと
で、送信者がメッセージを共通鍵で暗号化変換して送
り、受信者は受け取った暗号文を同じ共通鍵で復号化変
換してもとのメッセージに戻すような暗号化/復号化変
換を行なうために用いられる。
[0004] Public key cryptography is used for secretly delivering a common key and performing digital signatures on both sides of communication. Symmetric key encryption is based on the premise that the same key (common key) is shared between the sender and the receiver, and the sender encrypts and converts the message with the common key and sends the message. Is used to perform encryption / decryption conversion such that the received cipher text is decrypted and converted with the same common key and returned to the original message.

【0005】従来の共通鍵暗号のアルゴリズムとして
は、DES(Data Encryption Standard)とFEAL−
8(Fast Encryption Algorithm)が知られており、D
ESの関しては例えば、(1)小山他、「現代暗号理
論」、電子通信学会、pp.41〜49、昭和61年9
月において、また、FEAL−8に関しては、(2)清
水他、「高速データ暗号アルゴリズムFEAL」、電子
通信学会論文誌D.Vol.J70−D、No.7、p
p.1413〜1423、1987年7月において、そ
れぞれ詳細に述べられている。
[0005] Conventional symmetric key encryption algorithms include DES (Data Encryption Standard) and FEAL-
8 (Fast Encryption Algorithm) is known.
Regarding ES, for example, (1) Koyama et al., “Modern Cryptography Theory”, The Institute of Electronics, Communication and Communication Engineers, pp. 147-181, pp. 157-177. 41-49, September 1986
For FEAL-8, see (2) Shimizu et al., "High-speed Data Encryption Algorithm FEAL", IEICE Transactions D.E. Vol. J70-D, No. 7, p
p. 1413-1423, July 1987, respectively.

【0006】またデータ攪乱の効率と処理速度の向上を
目的としたものとして、「マルチメディア向け高速暗号
方式」(情報処理学会、マルチメディア通信と分散処理
研究会、1989年1月19日)および、特開昭63−
103919号に開示された暗号アルゴリズム(以下、
MULTI2という)が知られている。
In order to improve the efficiency of data disturbance and the processing speed, "High-speed encryption for multimedia" (Information Processing Society of Japan, Multimedia Communication and Distributed Processing Research Group, January 19, 1989) and JP-A-63-
No. 103919 (hereinafter, referred to as an encryption algorithm).
MULTI2) is known.

【0007】MULTI2は、平文データ64ビットの上位3
2ビット,下位32ビットに対し、図18に示す基本関
数(インボリューション関数)π〜πを所定順序で
実行することによって暗号文64ビットを得るようにし
たものである。
[0007] MULTI2 is the upper 3 bits of 64 bits of plaintext data.
By executing basic functions (involution functions) π 1 to π 4 shown in FIG. 18 in a predetermined order with respect to 2 bits and lower 32 bits, 64 bits of cipher text are obtained.

【0008】尚、図中に現われる記号(〇と+を重ねた
もの)
[0008] Symbols appearing in the figure (〇 and + overlapped)

【0009】[0009]

【数1】 (Equation 1)

【0010】はビット毎の排他的論理和、+は232
法とした加算、−は232を法とした演算、Rotnは
nビットの循環シフト、Vはビット毎の論理和を示す。
[0010] XOR of each bit, + the sum obtained by modulo 2 32, - denotes calculation and modulo 2 32, Rot n is the cyclic shift of n bits, V is the logical OR of each bit .

【0011】[0011]

【発明が解決しようとする課題】一般に、かなりのラン
ダム性を有していると考えられる暗号アルゴリズムであ
っても、その暗号アルゴリズムに任意に与えた平文とそ
の平文から生成される暗号文を解析ある手法(いわゆる
選択平文攻撃)によって、暗号鍵が推定でき、その結果
暗号破りが成立する危険性があることが知られている。
(Boer,“Crypto-analysis of F.E.E.L.”,Proc. EUR
OCRYPTO,1987参照)。
Generally, even if an encryption algorithm is considered to have considerable randomness, it analyzes a plaintext arbitrarily given to the encryption algorithm and a ciphertext generated from the plaintext. It is known that an encryption key can be estimated by a certain technique (so-called plaintext attack), and as a result, there is a risk that cryptography can be established.
(Boer, “Crypto-analysis of FEEL”, Proc. EUR
OCRYPTO, 1987).

【0012】したがって、上述した従来のアルゴリズム
も、将来にわたって安全であるとは保証できない。
Therefore, the conventional algorithm described above cannot be guaranteed to be secure in the future.

【0013】また選択平文攻撃に対しては、暗号鍵の変
更周期を短くする等の運用面での対策と、暗号アルゴリ
ズム自体をより複雑にして暗号破りに会いにくくする等
の技術的対策を併用することが有効である。後者の技術
的対策として、DES、EFEL−8、あるいは、MU
LTI2において、インボルーション変換の回数を増や
すことが提案されている(宝木他、「マルチメディア向
け高速暗号アルゴリズムHisecurity-Multi2の開発と利
用方法」、電子情報通信学会、WCIS’89−D2,
August28-30,1989、および、H.J. Highland,“Crack
ing the DES ?”,Computers & Security,8,1989,p
p.274−275参照)。
[0013] In addition, against the selected plaintext attack, a combination of operational measures such as shortening the change period of the encryption key and technical measures such as making the encryption algorithm itself more difficult to make it difficult to break the encryption are used together. It is effective to do. As the latter technical measure, DES, EFEL-8 or MU
In LTI2, it has been proposed to increase the number of times of inversion conversion (Haraki et al., "Development and use of Hisecurity-Multi2, a high-speed encryption algorithm for multimedia," IEICE, WCIS '89 -D2.
August 28-30, 1989; J. Highland, “Crack
ing the DES? ”, Computers & Security, 8, 1989, p.
p. 274-275).

【0014】しかし、最適なインボルーション繰り返し
回数、すなわち、この回数以上では安全であり、この回
数未満では安全でないというような最適なインボルーシ
ョン回数は知られていない。したがって、安全余裕を見
て過度にインボルーション繰り返し回数を増やさざるを
得ない。反面、暗号変換速度は、インボルーション繰り
返し回数が増大するとそれに反比例して遅くなる。
However, there is no known optimum number of repetitions of the involution, that is, the number of repetitions of the involution, that is, the number of times equal to or more than this number is safe and the number of times less than this number is not safe. Therefore, it is necessary to excessively increase the number of times of the involution repetition in view of the safety margin. On the other hand, the cryptographic conversion speed decreases in inverse proportion to the increase in the number of times of inversion.

【0015】本発明の目的は、高速な暗号処理をおこな
い、かつ、高い安全性を保証しうる暗号処理装置、及
び、暗号処理方法を提供することにある。
An object of the present invention is to provide a cryptographic processing apparatus and a cryptographic processing method that can perform high-speed cryptographic processing and guarantee high security.

【0016】[0016]

【課題を解決するための手段】上記の目的を達成するた
め、本発明の暗号処理装置は、基本となる複数種のイン
ボリューション処理プログラムと任意の鍵データとを用
いて、メッセージデータ(平文)を暗号化するための暗
号プログラムを生成する手段と、上記暗号プログラムを
実行することにより、上記メッセージデータを暗号文に
変換する手段とを備える。
To achieve the above object, the cryptographic processing apparatus of the present invention uses a plurality of basic involution processing programs and arbitrary key data to generate message data (plain text). Means for generating an encryption program for encrypting the message, and means for executing the encryption program to convert the message data into cipher text.

【0017】また、上記インボリューション処理プログ
ラムの一部には、換字処理部と転置処理部とが含まれる
ため、上記鍵データのビットパタンに応じて、各インボ
リューション処理プログラムの実行順序と、各インボリ
ューション処理プログラム内部の換字処理部及び転置処
理部の実行順序を決定する。
Further, since a part of the involution processing program includes a substitution processing section and a transposition processing section, the execution order of each of the involution processing programs and the execution order of each of the involution processing programs are determined in accordance with the bit pattern of the key data. The execution order of the substitution processing unit and transposition processing unit in the involution processing program is determined.

【0018】さらに、上記の複数の転置処理は、相異な
る数XとYに対して、Xビットだけ右または左に循環シ
フトするという操作と、Yビットだけ右または左に循環
シフトするという操作を含み、該XとYの具体的数値、
あるいは、右か左かのいずれに循環シフトするかといか
指示は、鍵データよって与える。
Further, the above-mentioned plurality of transposition processes includes an operation of cyclically shifting the different numbers X and Y right or left by X bits and an operation of cyclically shifting right or left by Y bits. Specific numerical values of X and Y,
Alternatively, an instruction as to whether to shift right or left cyclically is given by key data.

【0019】また、上記の複数の換字処理は、右または
左の循環シフト命令、および、モジュロ加算または減算
命令を含み、該命令をどのように組み合わせて該換字処
理を構成するかという指示は、鍵データによって与え
る。
Further, the plurality of substitution processing includes a right or left cyclic shift instruction and a modulo addition or subtraction instruction, and an instruction on how to combine the instructions to constitute the substitution processing is given by: Given by key data.

【0020】本発明によれば、鍵データによって、暗号
アルゴリズムを構成する関数の一部および関数の実行順
序が変化する。これにより、関数の一部の変化個数と関
数の実行順の順列組合せの総数の積だけの膨大な数のア
ルゴリズム変換形が生じ、暗号破りを飛躍的に困難にす
る。その結果、従来の暗号方式と比べて暗号化、復号化
変換速度をほとんど低下させることなしに、暗号破りに
対する強度の高い共通鍵暗号アルゴリズムを実現でき
る。
According to the present invention, a part of the functions constituting the encryption algorithm and the execution order of the functions change depending on the key data. As a result, an enormous number of algorithm conversion forms corresponding to the product of the number of partial changes of the function and the total number of permutation combinations in the execution order of the function are generated, and it becomes extremely difficult to break a cipher. As a result, it is possible to realize a common key encryption algorithm having high strength against cipher breaking without substantially lowering the encryption / decryption conversion speed as compared with the conventional encryption method.

【0021】[0021]

【発明の実施の形態】以下、本発明の実施例を詳細に説
明する。
DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, embodiments of the present invention will be described in detail.

【0022】図1は、システム構成、図2は、システム
処理手順を示した図である。このシステムは、暗号プロ
グラムA,Bを実行する32ビットプロセッサ(10
6)と暗号プログラムBを生成するサポートプロセッサ
(101)からなる。まず、システム全体の処理手順を
説明する。
FIG. 1 is a diagram showing a system configuration, and FIG. 2 is a diagram showing a system processing procedure. This system includes a 32-bit processor (10
6) and a support processor (101) for generating the encryption program B. First, the processing procedure of the entire system will be described.

【0023】ステップ201:サポートプロセッサ(1
01)より暗号プログラムA(102)を32ビットプ
ロセッサ(106)に入力する。
Step 201: Support processor (1)
01), the encryption program A (102) is input to the 32-bit processor (106).

【0024】ステップ202:64ビット長のアルゴリ
ズム決定鍵A(105)および32ビット×8=256
ビット長のシステム鍵A(111)を32ビットプロセ
ッサ106に入力する。
Step 202: Algorithm determination key A (105) having a length of 64 bits and 32 bits × 8 = 256
The bit-length system key A (111) is input to the 32-bit processor 106.

【0025】ステップ203:32ビットプロセッサ
(106)を動作させ、64ビット長のアルゴリズム決
定鍵B(107)を生成する。
Step 203: The 32-bit processor (106) is operated to generate a 64-bit algorithm determination key B (107).

【0026】ステップ204:生成された64ビット長
のアルゴリズム決定鍵B(107)をサポートプロセッ
サ(101)に送り、暗号プログラム生成機能(10
4)を動作させる。
Step 204: The generated algorithm determination key B (107) having a length of 64 bits is sent to the support processor (101), and the encryption program generation function (10
Operate 4).

【0027】ステップ205:暗号プログラム生成機能
(104)は64ビット長のアルゴリズム決定鍵B(1
07)をもとにして暗号プログラムB(103)を生成
する。そして、この暗号プログラムB(103)を32
ビットプロセッサ(106)に入力する。
Step 205: The encryption program generation function (104) performs the algorithm determination key B (1
07) to generate an encryption program B (103). Then, this encryption program B (103) is
Input to the bit processor (106).

【0028】ステップ206:32ビットプロセッサ
(106)は、暗号プログラムB(103)による制御
の下で、データ鍵(108)とシステム鍵B(112)
をパラメータとして平文(109)を暗号化し、その結
果得られる暗号文(110)を出力する。
Step 206: The 32-bit processor (106) controls the data key (108) and the system key B (112) under the control of the encryption program B (103).
Is used as a parameter to encrypt the plaintext (109), and the resulting encrypted text (110) is output.

【0029】図3は、32ビットプロセッサ(106)
の構成を示した図である。32ビットプロセッサ(10
6)は、制御プログラム部(303)、該制御プログラ
ム部からの制御信号に基づき演算処理を行なう演算部
(302)、および、該演算部への入力データを保持す
る入力バッファ(301)、および、該演算部からの出
力データを保持する出力バッファ(304)からなる。
FIG. 3 shows a 32-bit processor (106).
FIG. 3 is a diagram showing the configuration of FIG. 32-bit processor (10
6) a control program unit (303), a calculation unit (302) that performs calculation processing based on a control signal from the control program unit, an input buffer (301) that holds input data to the calculation unit, and , An output buffer (304) for holding output data from the operation unit.

【0030】図4は演算部(302)の詳細、図5、図
6は制御プログラム部(303)に最初に格納される暗
号プログラムA(102)の詳細を説明するための図で
ある。
FIG. 4 is a diagram for explaining the details of the arithmetic unit (302), and FIGS. 5 and 6 are diagrams for explaining the details of the encryption program A (102) initially stored in the control program unit (303).

【0031】図2のアルゴリズム決定鍵Bの生成(20
1〜203)の処理手順を図4,図5、図6と参照しつ
つさらに詳しく述べる。
Generation of Algorithm Determination Key B in FIG.
1 to 203) will be described in more detail with reference to FIGS.

【0032】ステップ201において、32ビットプロ
セッサ(106)に入力された暗号プログラムA(10
2)は、制御プログラム部(303)に格納される。
In step 201, the encryption program A (10) input to the 32-bit processor (106)
2) is stored in the control program unit (303).

【0033】ステップ202において、入力された64
ビット長のアルゴリズム決定鍵A(105)は、上位3
2ビットと下位32ビットとに分割され上位32ビット
は演算部(302)の中の32ビットレジスタL(40
1)とX(402)にそれぞれ格納され、下位32ビッ
トはレジスタR(403)に格納される。
In step 202, the input 64
The algorithm determination key A (105) having a bit length is
The upper 32 bits are divided into 2 bits and lower 32 bits, and the upper 32 bits are stored in a 32-bit register L (40) in the operation unit (302).
1) and X (402), respectively, and the lower 32 bits are stored in a register R (403).

【0034】また、システムによって定められた32ビ
ット×8=256ビット長のシステム鍵A(111)を
32ビット毎に分割し、入力バッファ(301)経由で
32ビットレジスタW(404)〜W(411)に
それぞれ格納しておく。
The system key A (111) having a length of 32 bits × 8 = 256 bits determined by the system is divided into 32 bits, and the 32-bit registers W 1 (404) to W 1 (404) to W (404) are input via the input buffer (301). 8 (411).

【0035】上述したステップ203においては、図
5、図6において示されている暗号プログラムA(10
2)を1行ずつ実行する。尚、図5、図6と対応する流
れ図については図7、図8に示してある。
In step 203 described above, the encryption program A (10) shown in FIGS.
Execute 2) one line at a time. The flowcharts corresponding to FIGS. 5 and 6 are shown in FIGS.

【0036】また、図5、図6中の暗号については、次
のように定義される。
The encryption in FIGS. 5 and 6 is defined as follows.

【0037】Ln:データを左(下位ビット方向)にn
ビット循環シフトする。
Ln: Data is shifted to the left (lower bit direction) by n
Bit-wise shift.

【0038】Rn:データを右(上位ビット方向)にn
ビット循環シフトする。
Rn: Data is shifted to the right (in the direction of the upper bits) by n
Bit-wise shift.

【0039】EOR:レジスタXに格納されたデータと
他のレジスタに格納されたデータとの排他論理和をと
る。
EOR: The exclusive OR of the data stored in the register X and the data stored in another register is calculated.

【0040】+:レジスタXに格納されたデータとゲー
トAに入力されるデータとを用いた232を法としたモ
ジュロ加算。 ―:レジスタXに格納されたデータとゲートAに入力さ
れるデータとを用いた232を法としたモジュロ減算。 ++1:レジスタXに格納されたデータに1を加えたもの
と、他のデータとを用いた2を法としたモジュロ加
算。 +-1:レジスタXに格納されたデータに−1を加えたも
のと、他のデータとを用いた2を法としたモジュロ加
算。 −+1:レジスタXに格納されたデータに1を加えたもの
と、他のデータとを用いた2を法としたモジュロ減
算。 −-1:レジスタXに格納されたデータに−1を加えたも
のと、他のデータとを用いた2を法としたモジュロ減
算。 ∨:ビットごとの論理和 ∧:ビットごとの論理積 [Wn]:レジスタWnが鍵スケジュール時にのみ出力
先となる。
[0040] +: 2 32 modulo addition modulo using the data input to the register X stored in the data and gate A. -: 2 32 modulo subtraction modulo using the data input to the register X stored in the data and gate A. ++ 1: 2 3 modulo addition modulo using 1 to that added to the stored in the register X data, and other data. + -1: 2 3 modulo addition modulo using the plus -1 stored in the register X data, and other data. - + 1: one plus the stored in the register X data and, 2 3 modulo subtraction modulo with other data. --1: plus -1 stored in the register X data and, 2 3 modulo subtraction modulo with other data. ∨: Logical OR for each bit ∧: Logical AND for each bit [Wn]: Register Wn is an output destination only at the time of key scheduling.

【0041】図5、図6のステップ501の処理におい
ては、レジスタR(403)はゲートA(412)への
入力となり、Rotationの数は0であり、Rotation以外の
演算はExclusive、ORであり、演算結果はレジスタR
(403)に入力されることを示している。
In the processing of step 501 in FIGS. 5 and 6, the register R (403) becomes an input to the gate A (412), the number of rotations is 0, and operations other than rotation are exclusive and OR. , And the operation result is
(403).

【0042】具体的な数値を用いると、次のようにな
る。ただし、数値は16進数表示とする。64ビット長
のアルゴリズム決定鍵A(105)として、“00000000
00000000”,8個の32ビット長のシステム鍵A(10
9)として、8個の“00000000”を与える。
Using specific numerical values, the following is obtained. However, numerical values are displayed in hexadecimal. As a 64-bit algorithm determination key A (105), “00000000”
00000000 ", eight 32-bit system keys A (10
As 9), eight “00000000” are given.

【0043】つまり、レジスタL(401),X(40
2)に上位32ビット長データ“00…0”,レジスタ
R(403)に下位32ビット長データ“00…0”,
レジスタW(404)〜W(411)に“00…
0”を格納する。
That is, the registers L (401) and X (40
2) upper 32-bit length data "00 ... 0", register R (403) lower 32-bit length data "00 ... 0",
Registers W 1 (404) to W 8 (411) have “00.
0 ”is stored.

【0044】ステップ501において、レジスタX(4
02)、および、R(403)に格納されているデータ
の排他的論理和がとられ、その結果“00000000”がレジ
スタX(402)及びR(403)に格納される。ステ
ップ502において、レジスタX(402)、および、
(404)に格納されているデータの和がとられ、
その結果“00000000”がレジスタXに格納される。ステ
ップ503において、レジスタX(402)に格納され
ているデータに−1を加算したデータと、レジスタXに
格納されているデータを左1ビット循環シフトしたデー
タとの和をとり、その結果“ffffffff”をレジスタX
(402)に格納する。ステップ504において、レジ
スタX(402)に格納されているデータと、レジスタ
X(402)に格納されているデータを左4ビット循環
シフトしたデータとの排他的論理和をとり、その結果
“00000000”がレジスタX(402)に格納する。
In step 501, register X (4
02) and the exclusive OR of the data stored in R (403) are obtained, and as a result "00000000" is stored in registers X (402) and R (403). In step 502, register X (402) and
The sum of the data stored in W 1 (404) is calculated,
As a result, “00000000” is stored in the register X. In step 503, the sum of the data obtained by adding -1 to the data stored in the register X (402) and the data obtained by cyclically shifting the data stored in the register X by one bit to the left is obtained. As a result, "ffffffff To register X
(402). At step 504, the exclusive OR of the data stored in the register X (402) and the data stored in the register X (402) and shifted left by 4 bits is calculated, and the result is "00000000". Stored in the register X (402).

【0045】ステップ505において、レジスタX(4
02)に格納されているデータとレジスタL(401)
に格納されているデータとの排他的論理和をとり、その
結果“00000000”がレジスタX(402)、およびL
(401)に格納する。但し、暗号プログラムA(10
2)は、アルゴリズム決定鍵Bを生成するためのもの
(つまり、鍵スケジュールのプログラム)であるので、
レジスタW(404)にも“00000000”を格納するよ
うに設計される。ステップ506において、レジスタX
(402)に格納されたデータとレジスタW(40
5)に格納されたデータとの和をとり、その結果“0000
0000”がレジスタXに格納する。
In step 505, register X (4
02) and the register L (401)
Is exclusive ORed with the data stored in the register X (402) and L
(401). However, the encryption program A (10
2) is for generating an algorithm determination key B (that is, a key schedule program),
It is designed to store “00000000” also in the register W 1 (404). At step 506, register X
The data stored in (402) and the register W 2 (40
The sum with the data stored in 5) is calculated, and as a result, “0000” is obtained.
0000 "is stored in the register X.

【0046】ステップ507において、レジスタX(4
02)に格納されたデータに+1を加算したデータと、
レジスタX(402)に格納されたデータを左2ビット
循環シフトしたデータとの和をとり、その結果“000000
00”をレジスタXに格納する。ステップ508におい
て、レジスタX(402)に格納されたデータと、レジ
スタX(402)に格納されたデータを左8ビット循環
シフトしたデータとの排他的論理和をとり、その結果
“00000000”がレジスタX(402)に格納する。
At step 507, register X (4
02), plus +1 to the data stored in
The data stored in the register X (402) is summed with the data obtained by cyclically shifting left by 2 bits, and as a result, "000000
00 "is stored in the register X. In step 508, the exclusive OR of the data stored in the register X (402) and the data stored in the register X (402) and shifted left by 8 bits is calculated. As a result, "00000000" is stored in the register X (402).

【0047】ステップ509において、レジスタX(4
02)に格納されたデータとレジスタW(406)に
格納されたデータとの和をとり、その結果“00000101”
がレジスタXに格納する。ステップ510において、レ
ジスタX(402)に格納されたデータ左1ビット循環
シフトしたデータと、レジスタX(402)に格納され
たデータとの差をとり、その結果“00000101”がレジス
タX(402)に格納する。ステップ511において、
レジスタX(402)に格納されたデータとレジスタL
(401)に格納されたデータとのビット毎の論理和を
とり、その結果“00000101”とレジスタXに格納された
データを左16ビットシフトしたデータとの排他的論理
和をとり、その結果“01010101”をレジスタXに格納す
る。
In step 509, register X (4
02) and the data stored in the register W 3 (406) are summed, and the result is “00000101”
Store in register X. In step 510, the difference between the data stored in the register X (402) and shifted left by one bit and the data stored in the register X (402) is obtained. As a result, “00000101” is stored in the register X (402). To be stored. In step 511,
Data stored in register X (402) and register L
The logical sum of each bit with the data stored in (401) is calculated, and as a result, the exclusive logical sum of “00000101” and the data stored in the register X shifted left by 16 bits is calculated. 01010101 ”is stored in the register X.

【0048】ステップ512において、レジスタX(4
02)に格納されたデータとレジスタR(403)に格
納されたデータとの排他的論理和をとり、その結果“01
010101”をレジスタX(402)、および、R(40
3)に格納する。但し、鍵スケジュールのフェーズであ
るので、レジスタWにも“01010101”を格納する。
In step 512, register X (4
02) and the data stored in the register R (403) are exclusive ORed, and the result is “01”
010101 "is stored in the register X (402) and R (40
Store in 3). However, because it is phase of the key schedule, stores also "01010101" in the register W 2.

【0049】ステップ513において、レジスタX(4
02)に格納されたデータとレジスタW(407)に
格納されたデータとの和をとり、その結果“01010101”
をレジスタX(402)に格納する。ステップ514に
おいて、レジスタX(402)に格納されたデータ+1
を加算したデータと、レジスタX(402)に格納され
たデータを左2ビット循環シフトしたデータとの和をと
り、その結果“05050506”をレジスタX(402)に格
納する。ステップ515において、レジスタX(40
2)に格納されたデータレジスタL(401)に格納さ
れたデータとの排他的論理和をとり、その結果“050505
06”がレジスタX(402)、およびL(401)に格
納する。但し、鍵スケジュールのフェーズであるので、
レジスタW(406)にも“05050506”を格納する。
At step 513, register X (4
02) and the data stored in the register W 4 (407), and the result is “01010101”
Is stored in the register X (402). In step 514, the data stored in the register X (402) +1
And the sum of the data stored in the register X (402) and the data obtained by cyclically shifting the data by two bits to the left is obtained, and the result “05050506” is stored in the register X (402). At step 515, register X (40
Exclusive OR with the data stored in the data register L (401) stored in 2) is performed, and the result is “050505”.
06 "is stored in the registers X (402) and L (401). However, since this is a key schedule phase,
“05050506” is also stored in the register W 3 (406).

【0050】以下、同様の処理を繰り返し、さらに、イ
ンボリューションπを実行する。この結果、レジスタ
(410),W(411)には図7に示すような
データが得られる。このW(410),W(41
1)の計64ビットをアルゴリズム決定鍵B(107)
として出力する。
Hereinafter, the same processing is repeated, and further, the involution π 1 is executed. As a result, data as shown in FIG. 7 is obtained in the registers W 7 (410) and W 8 (411). These W 7 (410) and W 8 (41
The algorithm determination key B (107) is used for a total of 64 bits of 1).
Output as

【0051】次に、図8を用いて、暗号プログラムBの
生成の処理手順(204)について詳細に説明する。前
記ステップ204において、アルゴリズム決定鍵B(1
07)を用いて、次のアルゴリズム変換ルールに従って
暗号プログラムA(102)を変換する。アルゴリズム
決定鍵B(107)のうち、前記W(410)に格納
された32ビットをL,前記W(411)に格納さ
れた32ビットをLとする。LおよびLの構成を
図11のように決める。
Next, the processing procedure (204) for generating the encryption program B will be described in detail with reference to FIG. In step 204, the algorithm determination key B (1
07), the encryption program A (102) is converted according to the following algorithm conversion rule. Of the algorithm determination key B (107), let L 1 be the 32 bits stored in the W 7 (410) and let L 2 be the 32 bits stored in the W 8 (411). Determining the structure of L 1 and L 2 as shown in FIG. 11.

【0052】アルゴリズム変換ルールは次のとおりであ
る。ステップ601:Lの1ビット目〜5ビット目
(701)を見てMULTI2の前半のインボルーションπ
〜π を決定し、Lの1ビット目〜5ビット目によっ
て後半のインボルーションπ 〜πの実行順序を決定
する。例えば、1ビット目〜5ビット目(701)が
“00000”のときは実行順序をππππとし、
“00001”のときは実行順序をππππとする
ように、1ビット目〜5ビット目で表わさせる2進数
が、1つ増える毎に、インボルーションπ〜πの添
字の順列が増加するように実行順序を決める。
The algorithm conversion rules are as follows.
You. Step 601: L11st to 5th bits of
Looking at (701), the first half of the MULTI2 involution π1
~ Π4 And L2Bit 1 to bit 5
The second half of the involution π1 ~ Π4Determine the order of execution
I do. For example, the first to fifth bits (701) are
When “00000”, the execution order is π1π2π3π4age,
When “00001”, the execution order is π1π2π4π3To be
Binary number represented by 1st bit to 5th bit
But each time it increases by one, the involution π1~ Π4Appendage
The execution order is determined so that the character permutation increases.

【0053】尚、1ビット目〜5ビット目(701)が
4!=“11000”のとき、実行順序をππππ
に戻し、“11111”のときππππが割り当て
られるまで、同様の割当てを行なう。
Note that the first to fifth bits (701) are 4! = “11000”, the execution order is π 1 π 2 π 3 π 4
And the same assignment is performed until π 2 π 1 π 4 π 3 is assigned at “11111”.

【0054】さらに、この結果、割当てられた各インボ
ルーションの実行順序が、初期の実行順序(π
π,π,π)と比較して偶数番目から奇数番目、
あるいは、奇数番目から偶数番目に変更した場合には、
そのインボリューションの左右の各32ビットの入出力
データを左右入れ換える。
Further, as a result, the execution order of each assigned involution is changed to the initial execution order (π 1 ,
π 2 , π 3 , π 4 ) and even to odd numbers,
Or, if you change from odd to even,
The left and right 32-bit input / output data of the left and right sides of the involution are exchanged.

【0055】ステップ602:Lの6ビット目〜16
ビット目(702〜704)を見て、前半のインボルー
ションπ〜π内の各関数(p21〜p23,p31
〜p36,p41〜p42)の実行順序を決定し、L
の6ビット目〜16ビット目によって、後半のインボル
ーションπ〜π内の各関数の実行順序を決定する。
具体的には6ビット目〜8ビット目(702)でπ
の関数p21〜p23 の実行順序を決め、9ビット目〜
15ビット目(703)でπ内の関数p31 〜p36
の実行関数を決め、16ビット目(704)でπ内の
関数p41〜p42の実行順序を決める。この実行順序
の決め方はステップ601と同様である。すなわち、各
ビットがすべてゼロの場合、暗号プログラムA(10
2)と同じ実行順序であり、それを起点として、関数の
添字の順列の数値自体が増加数列となるように順次割り
当てる。順列が一巡したら、次から起点と同じ順列を割
当て、以下、同様の割当てを行なう。
Step 602: L16th bit to 16
Looking at the bit eyes (702-704), the first half of the involute
Pi1~ Π4(P21 to p23, p31
To p36, p41 to p42) are determined, and L2
The 6th to 16th bits of
Solution π1~ Π4Determine the execution order of each function in.
Specifically, at the sixth to eighth bits (702), π2Inside
Function p21~ P23 The execution order of
Π at the 15th bit (703)3Function p in31 ~ P36
Is determined, and π is determined at the 16th bit (704).4Inside
Function p41~ P42The order of execution. This execution order
Is determined in the same manner as in step 601. That is, each
If all bits are zero, the encryption program A (10
The execution order is the same as that of 2).
The numerical values of the permutations of the subscripts are sequentially divided so that
Hit it. When the permutation has completed one round, the same permutation as the starting point is assigned from the next.
Then, the same assignment is performed.

【0056】ステップ603:Lの17ビット目〜3
2ビット目(705〜709)を見て、前半のインボル
ーションπ〜πの関数内の一部を決定し、Lの1
7ビット目〜32ビット目によって、後半のインボルー
ションπ〜πの関数内の一部を換える。例えば、関
数p22,p32,p35,p36,p42の演算子を
図12に示すように各エリアのビットパターンにしたが
って変更する。
[0056] Step 603: L 1 of the 17th bit to 3
Looking at the second bit (705 to 709), a part of the function of the first half involutions π 2 to π 4 is determined, and 1 of L 2 is determined.
A part of the function of the latter half of the inversions π 2 to π 4 is changed by the 7th to 32nd bits. For example, to change in accordance with the bit pattern of each area, as shown in FIG. 12 the function p 22, p 32, p 35 , p 36, p 42 operators.

【0057】ステップ604:アルゴリズム決定鍵A
(105)の上位8ビットを見て、インボルーションの
繰り返し回数を決定する。すなわち、上位8ビットが
“00000000”のとき、ステップ603までに決定された
8個のインボルーションを実行する。
Step 604: Algorithm determination key A
By looking at the upper 8 bits of (105), the number of repetitions of the involution is determined. That is, when the upper 8 bits are “00000000”, the eight involutions determined up to step 603 are executed.

【0058】“00000001”のとき、該8個のインボルー
ションの後、さらに、前半4個のインボルーションを1
回繰り返す。以下、数値が1つ増える毎に前半または後
半4個のインボルーションを交互に追加する。上位8ビ
ットが“11111111”となったとき、ステップ603まで
に決定された8個のインボルーションが128回繰り返
された後、前半4個のインボルーションがさらに1回繰
り返されることになる。
In the case of "00000001", after the eight involutions, the first four involutions are further added to 1
Repeat several times. Hereinafter, each time the numerical value increases by one, the first and second four involutions are alternately added. When the upper 8 bits become “11111111”, the eight involutions determined up to step 603 are repeated 128 times, and then the first four involutions are repeated one more time.

【0059】L,Lとして図7のビット列を用いる
場合、図13、図14、図15に示すようなアルゴリズ
ムに変換される。また、このとき、アルゴリズム決定鍵
A(105)の上位8ビットは、“00000000”であるの
で、8個のインボルーションが実行される。つまり、マ
シーン命令30個で1ブロック64ビットのデータを暗
号化する処理となる。
When the bit strings of FIG. 7 are used as L 1 and L 2 , they are converted into algorithms as shown in FIGS. 13, 14 and 15. Also, at this time, since the upper 8 bits of the algorithm determination key A (105) are “00000000”, eight involutions are performed. In other words, this is a process of encrypting data of 64 bits per block with 30 machine instructions.

【0060】以上のように決定された暗号プログラムは
暗号プログラムB(103)として、平文109の暗号
化のため実行される。
The encryption program determined as described above is executed as the encryption program B (103) for encrypting the plaintext 109.

【0061】次に、暗号化処理(205,206)につ
いて説明する。
Next, the encryption processing (205, 206) will be described.

【0062】図2のステップ206は、更に、データ鍵
(108)とシステム鍵B(112)とからデータ実行
鍵(K〜K)を生成するプロセスと、そのデータ実
行鍵を用いて平文(109)を暗号化するプロセスとに
分けられる。
Step 206 in FIG. 2 further includes a process of generating data execution keys (K 1 to K 8 ) from the data key (108) and the system key B (112), and a plaintext using the data execution key. (109) is divided into an encryption process.

【0063】サポートプロセッサ101によって生成さ
れた暗号プログラムBのうち、アルゴリズム決定鍵Bの
上位32ビットから作成された4つのインボリューショ
ン関数をπ,π,π,πとし、アルゴリズム決
定鍵Bの下位32ビットから作成された4つのインボリ
ューション関数をπ,π,π,πとすると、デ
ータ実行鍵(K〜K)を生成するプロセスは、それ
らを合わせた9つのインボリューション関数をπ,π
,π,π,π,π,π,π,πで実行
される。データ実行鍵(K〜K)を生成するプロセ
スの流れ図を図16に示す。
In the encryption program B generated by the support processor 101, four involution functions created from the upper 32 bits of the algorithm determination key B are denoted by π a , π b , π c , π d and the algorithm determination key Assuming that four involution functions created from the lower 32 bits of B are π e , π f , π g , and π h , the process of generating the data execution keys (K 1 to K 8 ) is 9 Let two involution functions be π a , π
b, π c, π d, π e, π f, π g, π h, is performed in [pi a. A flow diagram of a process for generating data execution key (K 1 ~K 8) shown in FIG. 16.

【0064】尚、アルゴリズム決定鍵Bの上位ビット,
下位ビットを図7に示すL,L とすると、データ実
行鍵(K〜K)を生成するプロセスは、π
π,π,π,π,π,π,π,πとい
う9つのインボリューション関数で構成されることにな
る。
The upper bits of the algorithm determination key B,
The lower bit is L shown in FIG.1, L2 Then the actual data
Row key (K1~ K8The process that produces3,
π1, Π4, Π2, Π1, Π3, Π2, Π4, Π3To
Will consist of nine involution functions.
You.

【0065】データ実行鍵(K〜K)を生成するプ
ロセスでは、まず、システム鍵B(112)をJ〜J
に分割して、予めレジスタW(404)〜W(4
11)に格納し、データ鍵(108)の上位32ビット
をレジスタL(401)とX(402)に書き込み、下
位32ビットをレジスタR(403)に書き込む。図1
3、図14、図15のプログラムにおいて、鍵スケジュ
ールの処理(出力として大括弧に書かれたレジスタ[W
]への書き込みを行なう処理)を実行すると、レジス
タW(404)〜W(411)には、データ実行鍵
(K〜K)が得られる。
In the process of generating the data execution keys (K 1 to K 8 ), first, the system key B (112) is changed to J 1 to J 8.
8 and registers W 1 (404) to W 8 (4
11), the upper 32 bits of the data key (108) are written to the registers L (401) and X (402), and the lower 32 bits are written to the register R (403). FIG.
3. In the program shown in FIGS. 14 and 15, the key schedule processing (register [W
And executing processes) writing to X], the register W 1 (404) ~W 8 ( 411), data execution key (K 1 ~K 8) is obtained.

【0066】次に、暗号化プロセスの流れ図を図17に
示す。
Next, FIG. 17 shows a flowchart of the encryption process.

【0067】図17はインボリューションの繰り返しが
複数回おこなわれる場合を示しており、最終段のインボ
リューション(π)は省略してある。
FIG. 17 shows a case where the repetition of the involution is performed a plurality of times, and the involution (π a ) at the final stage is omitted.

【0068】アルゴリズム決定鍵Aの上位8ビットが
“00000000”であるときには、図16と同数のインボリ
ューションとなる。
When the upper 8 bits of the algorithm determination key A are "00000000", the same number of involutions as in FIG.

【0069】処理の前提として、1ブロック64ビット
の平文データの上位32ビットをレジスタL(401)
とX(402)に書き込み、下位32ビットをレジスタ
R(403)に書き込んだ後、暗号プログラムB(出力
として大括弧に書かれたレジスタ[W]へ書き込みを
行なう処理)を実行する。結果として、L(401)に
暗号文の上位32ビット、R(403)に暗号文の下位
32ビットがそれぞれ得られる。
As a precondition for the processing, the upper 32 bits of the plain data of 64 bits per block are stored in the register L (401).
Then, after writing the lower 32 bits to the register R (403), the encryption program B (processing for writing to the register [W X ] written in brackets as output) is executed. As a result, the upper 32 bits of the ciphertext are obtained in L (401) and the lower 32 bits of the ciphertext are obtained in R (403).

【0070】復号化は、暗号化プロセスで行なったイン
ボルーションの実行順序を逆にして行なう。このように
すると、復号化により元の平文を得られる。
The decryption is performed by reversing the execution order of the involution performed in the encryption process. In this way, the original plaintext can be obtained by decryption.

【0071】尚、図4において、32ビットレジスタ1
2個、32ビット演算回路3個からなるプロセッサを用
いたが、本構成とは異なる汎用プロセッサを用いて実施
例と同様の処理を行なうようソフトウェアを構成しても
よい。
In FIG. 4, the 32-bit register 1
Although a processor including two and three 32-bit arithmetic circuits is used, software may be configured to perform processing similar to that of the embodiment using a general-purpose processor different from this configuration.

【0072】また、図5、図6、および、図13、図1
4、図15においては、4ビット,8ビット、および、
16ビットの左循環シフトを固定としたが、4ビット,
8ビット、および、16ビットの右循環シフトにしても
よい。あるいは、5ビット,9ビット,17ビットのよ
うにビット攪乱の波及が効果的となる左または右の循環
シフトビット数にしてもよい。更に、暗号プログラム変
換前は、4ビット,8ビット,16ビットの左循環を含
み、変換後は、3ビット,8ビット,18ビットの左循
環シフトを含むというように、プログラム変換によっ
て、±数ビットの変化が生じるようにしてもよい。
FIGS. 5, 6, 13 and 1
4, in FIG. 15, 4 bits, 8 bits, and
The 16-bit left circular shift is fixed, but 4 bits,
8-bit and 16-bit right circular shifts may be used. Alternatively, the number of left or right cyclic shift bits, such as 5 bits, 9 bits, and 17 bits, at which propagation of bit disturbance is effective may be used. Furthermore, before the encryption program conversion, the left and right rotations of 4 bits, 8 bits and 16 bits are included, and after the conversion, the left and right shifts of 3 bits, 8 bits and 18 bits are included. A bit change may occur.

【0073】また、本実施例例では、アルゴリズム決定
鍵A(105)、および、データ鍵(108)のビット
長を64ビットとしたが、その代わり、128ビット長
としてもよい。
In this embodiment, the bit length of the algorithm determination key A (105) and the data key (108) is 64 bits, but may be 128 bits instead.

【0074】すなわち、アルゴリズム決定鍵A(10
5)を128ビット長とする場合、システム鍵A(11
1)すなわち、32ビット×8個のデータI〜I
うち、システムよって定まる任意の2個Iα,Iβを元
のアルゴリズム決定鍵Aに追加して、計128ビット長
のアルゴリズム決定鍵Aとしてもよい。このとき、シス
テム鍵Aは、残りの32ビット×6個となる。
That is, the algorithm determination key A (10
If 5) is 128 bits long, the system key A (11
1) That is, of the 32 bits × 8 pieces of data I 1 to I 8 , arbitrary two I α and I β determined by the system are added to the original algorithm determination key A to determine an algorithm having a total length of 128 bits. The key A may be used. At this time, the remaining system key A is 32 bits × 6.

【0075】同様に、データ鍵(108)を128ビッ
ト長とする場合、システム鍵B(112)、すなわち、
32ビット×8個のデータJ〜Jのうち、システム
よって定まる任意の2個Jγ,Jδを元のデータに追加
して、計128ビット長のデータ鍵としてもよい。この
とき、システム鍵Bは、残りの32ビット×6個とな
る。
Similarly, when the data key (108) is 128 bits long, the system key B (112),
Of the 32 bits × 8 pieces of data J 1 to J 8 , arbitrary two pieces of J γ and J δ determined by the system may be added to the original data to provide a data key having a total length of 128 bits. At this time, the remaining system key B is 32 bits × 6.

【0076】また、上述した実施例では、あるデータに
インボルーション変換を実行し、さらにもう一度同じイ
ンボルーション変換を実行すると、元のデータに戻ると
いうインボルーションの特徴を活かし、複数個のインボ
ルーションを実行することにより暗号化関数を、同じイ
ンボルーションを逆の順序に実行することにより、復号
化関数を実現していた。
Further, in the above-described embodiment, a plurality of involutions are performed by performing the inversion conversion on certain data and then performing the same inversion conversion again to return to the original data. The execution of the encryption function and the execution of the same inversion in the reverse order realize the decryption function.

【0077】しかしながら、本発明を平文の暗号化,復
号化以外の目的、例えば、平文をシステム鍵A,Bとし
て用いることにより、圧縮コードを作成する場合等に用
いるときには代わり、演算子を変えることによって、イ
ンボルーションの特徴をなくし、一方向暗号関数として
もよい。例えば、入力データの上位、または、下位32
ビットを関数変換したものと、入力データの残りの上
位、または下位32ビットとビット毎の排他的論理和を
とる代わりにモジュロ加算やモジュロ積あるいは他の演
算を実施する。
However, when the present invention is used for purposes other than encryption and decryption of plaintext, for example, when a plaintext is used as the system keys A and B to create a compressed code, the operator is changed instead. Thus, the feature of the involution may be eliminated and a one-way encryption function may be used. For example, upper 32 or lower 32 of the input data
Modulo addition, modulo multiplication, or other operations are performed instead of performing a bit-wise exclusive OR operation of the bits obtained by function conversion and the remaining upper or lower 32 bits of the input data.

【0078】[0078]

【発明の効果】本発明によれば、アルゴリズム決定鍵A
とデータ鍵に基づき暗号化/復号化関数の決定を行なう
処理と、データの暗号化/復号化を行なう処理の2段階
に分けることによって暗号強度の強化が図れる。
According to the present invention, the algorithm decision key A
The encryption / decryption function is determined based on the data and the data key, and the encryption / decryption of the data is divided into two stages, whereby the encryption strength can be enhanced.

【0079】尚、本発明で生成される暗号プログラムを
インボルーション8個の処理に限定した場合において
も、263個以上のアルゴリズムのバリエーションが存
在するため、選択平文−暗号文攻撃に対して強固であ
る。また、アルゴリズム鍵の上位8ビットのデータによ
り、インボルーションの繰り返し回数を増やす場合に
は、暗号解読の手掛かりは想像も付かない程複雑なもの
になる。
[0079] Incidentally, in the case where an encryption program generated by the present invention is limited to Invocation Roussillon eight processing is, since the variations of 2 63 or more algorithms exist, chosen plaintext - robust to ciphertext attack It is. In addition, when the number of repetitions of the involution is increased by the data of the upper 8 bits of the algorithm key, the clue to decryption becomes complicated so as not to be imagined.

【0080】さらに、インボルーションの繰り返しが8
回より大きい場合には、一度使用したデータ実効鍵(K
〜K)が繰り返し使用されるので、ほとんどレジス
タ−レジスタ間の処理で、暗号化を行なうことができ、
インボルーション繰り返し回数が増えたことによる暗号
処理速度の低下は軽減される。
Furthermore, the repetition of the involution is 8
If it is larger than twice, the data effective key (K
Since 1 to K 8 ) are repeatedly used, encryption can be performed by almost processing between registers.
The decrease in cryptographic processing speed due to the increase in the number of times of involution is reduced.

【0081】例えば、日立ワークステーション2050
/32(日立製作所(株)製品)を用いて、1028個
のインボルーション処理を含むプログラムを実行する
と、36Kbps以上の暗号化処理速度が得られる。これ
は、8個のインボルーション処理からなる暗号プログラ
ムを、同装置で実行した場合に得られる2.7Mbpsから
反比例計算によって予測される21Kbpsよりも速い。
For example, Hitachi Workstation 2050
When a program including 1028 involution processes is executed using / 32 (a product of Hitachi, Ltd.), an encryption processing speed of 36 Kbps or more can be obtained. This is faster than the 21 kbps predicted by the inverse proportional calculation from the 2.7 Mbps obtained when the encryption program composed of eight involution processes is executed by the same device.

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

【図1】本発明を実施する暗号装置のブロック構成図。FIG. 1 is a block diagram showing a configuration of an encryption device embodying the present invention.

【図2】暗号変換の処理を示すフローチャートを示す
図。
FIG. 2 is a diagram showing a flowchart illustrating a process of cryptographic conversion.

【図3】32ビットプロセッサ(106)の構成を示す
図。
FIG. 3 is a diagram showing a configuration of a 32-bit processor (106).

【図4】演算部(302)の詳細を示す図。FIG. 4 is a diagram showing details of a calculation unit (302).

【図5】暗号プログラムAの詳細を説明するための図。FIG. 5 is a diagram for explaining details of an encryption program A;

【図6】暗号プログラムAの詳細を説明するための図。FIG. 6 is a diagram for explaining details of an encryption program A;

【図7】暗号プログラムAのフローチャートを示す図。FIG. 7 is a diagram showing a flowchart of an encryption program A.

【図8】暗号プログラムAのフローチャートを示す図。FIG. 8 is a diagram showing a flowchart of an encryption program A.

【図9】暗号プログラムAを実行することにより生成さ
れたアルゴリズム決定鍵Bのビットパタンを示す図。
FIG. 9 is a diagram showing a bit pattern of an algorithm determination key B generated by executing a cryptographic program A;

【図10】暗号プログラム生成機能の処理手順を示す
図。
FIG. 10 is a diagram showing a processing procedure of a cryptographic program generation function.

【図11】アルゴリズム決定鍵Bの構成を示す図。FIG. 11 is a diagram showing a configuration of an algorithm determination key B.

【図12】演算子決定部分に関する詳細を示した図。FIG. 12 is a diagram showing details regarding an operator determination part.

【図13】暗号プログラムBの具体例を示す図。FIG. 13 is a view showing a specific example of an encryption program B;

【図14】暗号プログラムBの具体例を示す図。FIG. 14 is a view showing a specific example of an encryption program B;

【図15】暗号プログラムBの具体例を示す図。FIG. 15 is a diagram showing a specific example of an encryption program B.

【図16】暗号プログラムBの一般的フローチャートを
説明する図。
FIG. 16 is a view for explaining a general flowchart of an encryption program B;

【図17】暗号プログラムBの一般的フローチャートを
説明する図。
FIG. 17 is a view for explaining a general flowchart of an encryption program B;

【図18】基本インボリューション関数を説明するため
の図。
FIG. 18 is a diagram for explaining a basic involution function.

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

103…暗号プログラムB、 106…32ビットプロセッサ、 107…アルゴリズム決定鍵、 108…データ鍵、 109…平文、 110…暗号文、 112…システム鍵B、 301…入力バッファ、 302…演算部、 304…出力バッファ。 103: encryption program B, 106: 32-bit processor, 107: algorithm determination key, 108: data key, 109: plaintext, 110: ciphertext, 112: system key B, 301: input buffer, 302: arithmetic unit, 304 ... Output buffer.

─────────────────────────────────────────────────────
────────────────────────────────────────────────── ───

【手続補正書】[Procedure amendment]

【提出日】平成11年12月15日(1999.12.
15)
[Submission date] December 15, 1999 (1999.12.
15)

【手続補正1】[Procedure amendment 1]

【補正対象書類名】明細書[Document name to be amended] Statement

【補正対象項目名】発明の名称[Correction target item name] Name of invention

【補正方法】変更[Correction method] Change

【補正内容】[Correction contents]

【発明の名称】 暗号化装置、および復号化装置Patent application title: Encryption device and decryption device

【手続補正2】[Procedure amendment 2]

【補正対象書類名】明細書[Document name to be amended] Statement

【補正対象項目名】特許請求の範囲[Correction target item name] Claims

【補正方法】変更[Correction method] Change

【補正内容】[Correction contents]

【特許請求の範囲】[Claims]

【手続補正3】[Procedure amendment 3]

【補正対象書類名】明細書[Document name to be amended] Statement

【補正対象項目名】0036[Correction target item name] 0036

【補正方法】変更[Correction method] Change

【補正内容】[Correction contents]

【0036】 また、図5、図6中の記号については、
次のように定義される。
The symbols in FIG. 5 and FIG.
It is defined as:

【手続補正4】[Procedure amendment 4]

【補正対象書類名】図面[Document name to be amended] Drawing

【補正対象項目名】図1[Correction target item name] Fig. 1

【補正方法】変更[Correction method] Change

【補正内容】[Correction contents]

【図1】 FIG.

───────────────────────────────────────────────────── フロントページの続き (72)発明者 中村 勤 神奈川県川崎市麻生区王禅寺1099番地 株 式会社日立製作所システム開発研究所内 (72)発明者 山下 正弘 神奈川県秦野市堀山下1番地 株式会社日 立製作所神奈川工場内 (72)発明者 橋本 和夫 神奈川県川崎市麻生区王禅寺1099番地 株 式会社日立製作所システム開発研究所内 (72)発明者 松本 浩 愛知県名古屋市中区栄三丁目10番22号 日 立中部ソフトウエア株式会社内 ──────────────────────────────────────────────────続 き Continuing from the front page (72) Inventor Tsutomu Nakamura 1099 Ozenji Temple, Aso-ku, Kawasaki City, Kanagawa Prefecture Inside System Development Laboratory Hitachi, Ltd. (72) Inventor Masahiro Yamashita 1 Horiyamashita, Hadano City, Kanagawa Japan (72) Inventor Kazuo Hashimoto 1099 Ozenji Temple, Aso-ku, Kawasaki-shi, Kanagawa Prefecture Hitachi, Ltd.System Development Laboratory Co., Ltd. (72) Inventor Hiroshi Matsumoto 3-10-22 Sakae, Naka-ku, Nagoya-shi, Aichi Prefecture Sun Ritsuchubu Software Co., Ltd.

Claims (8)

【特許請求の範囲】[Claims] 【請求項1】データ攪乱のための複数の換字処理と転置
処理を組み合わせて一定長のデータを暗号化するための
暗号処理方法において、鍵データで上記換字処理または
転置処理の実行順序、または、処理の繰返し回数を変更
することを特徴とする暗号処理方法。
An encryption processing method for encrypting data of a fixed length by combining a plurality of substitution processing and transposition processing for data disruption, the execution order of the substitution processing or transposition processing using key data, or A cryptographic processing method characterized by changing the number of processing repetitions.
【請求項2】データ攪乱のための複数の換字処理と転置
処理を組み合わせて一定長のデータを暗号化する暗号処
理方法において、一定回数以上換字処理と転置処理を繰
り返す場合、同じ鍵データを繰り返し用いることを特徴
とする暗号処理方法。
2. An encryption processing method for encrypting data of a fixed length by combining a plurality of substitution processing and transposition processing for data disruption, wherein the same key data is repeated when the substitution processing and transposition processing are repeated a certain number of times or more. A cryptographic processing method characterized by being used.
【請求項3】前記転置処理は、相異なる数XとYに対し
て、Xビットだけ右または左に循環シフトするという操
作と、Yビットだけ右または左に循環シフトするという
操作とを含み、 該XとYの具体的数値、あるいは、右か左かのいずれに
循環シフトするかといか指示は、鍵データよって与えら
れることを特徴とする請求項1記載の暗号処理方法。
3. The transposition process includes an operation of cyclically shifting the different numbers X and Y right or left by X bits and an operation of cyclically shifting Y bits right or left, 2. The cryptographic processing method according to claim 1, wherein the specific numerical values of X and Y, or an instruction as to whether to perform a cyclic shift to the right or left is given by key data.
【請求項4】前記換字処理は、右または左の巡回シフト
処理、モジュロ加算処理、モジュロ減算処理、ビット毎
の排他的論理和処理、ビット毎の論理和処理、または、
ビット毎の論理積処理を含み、 該処理をどのように組み合わせて該換字処理を構成する
かという指示は、鍵データによって与えられることを特
徴とする請求項1記載の暗号処理方法。
4. The substitution process includes a right or left cyclic shift process, a modulo addition process, a modulo subtraction process, an exclusive OR process for each bit, a logical OR process for each bit, or
2. The encryption processing method according to claim 1, further comprising a logical product process for each bit, wherein an instruction on how to combine the processes to form the substitution process is given by key data.
【請求項5】データ攪乱のための複数の換字処理と転置
処理を組み合わせてのデータを一方向暗号化する一定方
向暗号方式において、鍵データで上記換字処理または転
置処理の実行順序、または、処理の繰返し回数を変更す
ることを特徴とする一方向暗号方式。
5. In a one-way encryption system for unidirectionally encrypting data obtained by combining a plurality of substitution processing and transposition processing for data disturbance, the execution order or processing of the substitution processing or transposition processing using key data. A one-way encryption method characterized by changing the number of times of repetition.
【請求項6】データ攪乱のための複数の換字処理と転置
処理を組み合わせてのデータを一方向暗号化する一方向
暗号方式において、一定回数以上換字処理と転置処理を
繰り返す場合、同じ鍵データを繰り返し用いることを特
徴とする一方向暗号方式。
6. In a one-way encryption method for unidirectionally encrypting data obtained by combining a plurality of substitution processing and transposition processing for data disruption, when the substitution processing and transposition processing are repeated a certain number of times, the same key data is used. A one-way encryption method characterized by repeated use.
【請求項7】複数の鍵データを用いて、メッセージデー
タを所定ビットごとに暗号化するための暗号処理装置に
おいて、複数種の基本インボリューションプログラム
を、第1の鍵データに応じた実行順序で組合せることに
よって、暗号プログラムを生成する手段と、第2の鍵デ
ータを用いて上記暗号プログラムを実行することによ
り、上記メッセージデータを暗号文に変換する手段とを
備えることを特徴とする暗号処理装置。
7. An encryption processing device for encrypting message data for each predetermined bit using a plurality of key data, wherein a plurality of types of basic involution programs are executed in an execution order according to the first key data. A cryptographic process comprising: means for generating an encryption program by combining them; and means for converting the message data into cipher text by executing the encryption program using second key data. apparatus.
【請求項8】複数の鍵データを用いて、メッセージデー
タを所定ビットごとに暗号化するための暗号処理方法に
おいて、予め記録された複数種の基本インボリューショ
ンプログラムを、第1の鍵データに応じた実行順序で組
合わせることによって、暗号プログラムを生成し、第2
の鍵データを用いて上記暗号プログラムを実行すること
により、上記メッセージデータを暗号文に変換すること
を特徴とする暗号処理方法。
8. An encryption processing method for encrypting message data for each predetermined bit by using a plurality of key data, wherein a plurality of basic involution programs recorded in advance are stored in accordance with the first key data. By generating the cryptographic program by combining
A cryptographic processing method comprising: converting the message data into a cipher text by executing the cryptographic program using the key data.
JP32365399A 1999-11-15 1999-11-15 Encryption apparatus and decryption apparatus Pending JP2000112348A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP32365399A JP2000112348A (en) 1999-11-15 1999-11-15 Encryption apparatus and decryption apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP32365399A JP2000112348A (en) 1999-11-15 1999-11-15 Encryption apparatus and decryption apparatus

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2295351A Division JP3053106B2 (en) 1990-11-02 1990-11-02 Encryption processing device and decryption processing device

Publications (1)

Publication Number Publication Date
JP2000112348A true JP2000112348A (en) 2000-04-21

Family

ID=18157120

Family Applications (1)

Application Number Title Priority Date Filing Date
JP32365399A Pending JP2000112348A (en) 1999-11-15 1999-11-15 Encryption apparatus and decryption apparatus

Country Status (1)

Country Link
JP (1) JP2000112348A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006033347A1 (en) * 2004-09-21 2006-03-30 Matsushita Electric Industrial Co., Ltd. Confidential information processing method, confidential information processing device, and content data reproducing device

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006033347A1 (en) * 2004-09-21 2006-03-30 Matsushita Electric Industrial Co., Ltd. Confidential information processing method, confidential information processing device, and content data reproducing device
US7841014B2 (en) 2004-09-21 2010-11-23 Panasonic Corporation Confidential information processing method, confidential information processor, and content data playback system
JP4758904B2 (en) * 2004-09-21 2011-08-31 パナソニック株式会社 Confidential information processing method

Similar Documents

Publication Publication Date Title
JP3053106B2 (en) Encryption processing device and decryption processing device
JP5229315B2 (en) Encryption device and built-in device equipped with a common key encryption function
KR100800468B1 (en) Hardware cryptographic engine and method improving power consumption and operation speed
US20150349951A1 (en) Protecting Cryptographic Operations Using Conjugacy Class Functions
US6480606B1 (en) Elliptic curve encryption method and system
JP3824121B2 (en) Method and apparatus for decrypting encrypted data
EP0996250A2 (en) Efficient block cipher method
JPH0675524A (en) Stream ciphering processor
Singh et al. Study & analysis of cryptography algorithms: RSA, AES, DES, T-DES, blowfish
JP2002510058A (en) Method for cryptographic conversion of binary data blocks
Saudagar et al. Image Encryption based on Advanced Encryption Standard (AES)
JP2000112348A (en) Encryption apparatus and decryption apparatus
JP4857230B2 (en) Pseudorandom number generator and encryption processing device using the same
JP2000112349A (en) Cipher processing device and cipher processing method
JP2000112350A (en) Cipher processor, and cipher processing method
JP3389210B2 (en) Extended key generation device, encryption / decryption device, extended key generation method, and storage medium
JP2010256749A (en) Device and method for generating hash value, and program
JPH1152850A (en) Device and method for cipher conversion
JPH10153954A (en) Ciphering device
JP2870532B2 (en) Cryptographic converter
Odunayo Improving Advanced Encryption Standard Performance with Residue Number System
ODUNAYO SCHOOL OF POSTGRADUATE STUDIES (SPGS)
JPH0736673A (en) Random-number generator, communication system using the same and device therefor
Hattab et al. Developing the Complexity and Security of the Twofish Algorithm Through a New Key Scheduling Design
CN114826548A (en) Image processing hardware accelerator based on homomorphic encryption and image processing method

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040330

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040528

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20040617

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20040623

A912 Removal of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20050225