JP3154991B2 - 暗号処理装置、暗号処理方法、及び、暗号処理プログラムを記憶した記憶媒体 - Google Patents

暗号処理装置、暗号処理方法、及び、暗号処理プログラムを記憶した記憶媒体

Info

Publication number
JP3154991B2
JP3154991B2 JP11864399A JP11864399A JP3154991B2 JP 3154991 B2 JP3154991 B2 JP 3154991B2 JP 11864399 A JP11864399 A JP 11864399A JP 11864399 A JP11864399 A JP 11864399A JP 3154991 B2 JP3154991 B2 JP 3154991B2
Authority
JP
Japan
Prior art keywords
data
substitution
conversion
input
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.)
Expired - Lifetime
Application number
JP11864399A
Other languages
English (en)
Other versions
JP2000019958A (ja
Inventor
基司 大森
薫 横田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP11864399A priority Critical patent/JP3154991B2/ja
Publication of JP2000019958A publication Critical patent/JP2000019958A/ja
Application granted granted Critical
Publication of JP3154991B2 publication Critical patent/JP3154991B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、秘密鍵に基づい
て、被暗号処理データをブロック単位で暗号化又は復号
化する暗号処理装置、及びその装置において使用される
暗号処理方法、並びにその方法を記述する暗号処理プロ
グラムを記憶した記憶媒体に関し、特に換字テーブルデ
ータのデータ量や生成頻度を削減することで高速な暗号
処理を実現し、且つ、安全性を損なわない技術に関す
る。
【0002】
【従来の技術】近年、デジタル通信による送金やあらゆ
る情報の通信が普及してきたのに伴い、通信される重要
な情報を第三者による盗聴や改竄から守る、安全性を向
上させる為の技術への要求が高まっている。安全性を向
上させる為の有効な技術の1つに暗号(cryptog
raphy)がある。
【0003】暗号を用いて通信するシステムにおいて
は、元の通信文を平文(plaintext)と呼び、
その意味内容が第三者に分かりにくい形に変換されたも
のを暗号文(cryptogram)と呼ぶ。また、こ
の変換を暗号化(encryption)と呼び、逆
に、暗号文を元の平文に復元する逆変換を復号化(de
cryption)と呼ぶ。
【0004】暗号化及び復号化の変換内容は、アルゴリ
ズム(algorithm)とそのパラメータとなる鍵
(key)によって特定される。アルゴリズムは複数の
変換から成る変換の族(family)を特定し、鍵は
その族のなかの1つの変換を特定する。通常、装置の固
定部分に対応するものがアルゴリズムであり、1つの装
置において時々取り替えられるものが鍵である。
【0005】暗号文は、盗聴(eavesdrop)さ
れることを前提としている。盗聴者等がアルゴリズムや
鍵の情報を持たずに平文等に復号しようとすることを、
暗号解読(cryptanalysis)という。暗号
解読しようとする者(以下、「暗号解読者(crypt
analyst)」という)は、暗号文は既知であると
いう前提で暗号解読を行なう。
【0006】基本的に暗号文からのみ秘密の平文や鍵を
決定する解読法を、「暗号文単独攻撃(ciphert
ext−only attack)」という。また、い
くつかの不特定な暗号文と平文のペアから秘密の鍵を決
定し、任意の暗号文に対応する平文を決定する解読法
を、「既知平文攻撃(known−plaintext
attack)」という。
【0007】(第1の従来例)暗号の例の1つに、疑似
乱数加算型暗号がある。この暗号は、同一の鍵を送信者
と受信者が秘密に共有し、それぞれ同じアルゴリズムを
持つ乱数発生機を用いてこの鍵をシード(seed)と
して所定のビット数(以下、「ブロック」という)の乱
数を発生させ、送信者側による暗号化においては、ブロ
ック単位で、この乱数と平文とを、対応するビット毎に
排他的論理和の演算を行なうことによって暗号文を生成
し、受信者側による復号化においては、ブロック単位
で、この乱数と暗号文とを、対応するビット毎に排他的
論理和の演算を行なうことによって平文を生成する。
【0008】ここで、ブロック単位の平文を「M」、ブ
ロック単位の暗号文を「C」、この乱数を「R」、対応
するビット毎の排他的論理和の演算を「(+)」とする
と、暗号化は以下の(式1)で、復号化は以下の(式
2)で表せる。 C=M(+)R ・・・(式1) M=C(+)R ・・・(式2) この暗号の問題点は、「既知平文攻撃」に非常に弱いこ
とである。
【0009】例えば、それぞれ1ブロックの平文と暗号
文のペアが既知であれば、以下の(式3)より乱数Rが
判明するので他の全ての平文を解読することができる。 R=M(+)C ・・・(式3) よって、暗号解読者は既知平文攻撃によって、疑似乱数
加算型暗号を非常に容易に解読することができる。
【0010】(第2の従来例)既知平文攻撃によっても
比較的容易に解読されない暗号の例に、DES(DataEn
cryption Standard)やFEAL(Fast Data Encipherm
ent Algorithm)がある。これらについては「暗号理論
入門」(岡本栄司著:共立出版発行)に詳しく述べられ
ている。
【0011】これらの暗号は、64ビットを1ブロック
とし、ブロック単位で強力にデータを撹乱する。例え
ば、DESのアルゴリズムは、転置(transpos
ion)と換字(substitution)を組み合
わせた処理を16段繰り返す。DESやFEALに代表
されるブロック暗号方式の一種に、Blowfish暗
号方式というものがある。
【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暗号方式について述べる。
【0013】図14は、Blowfish暗号方式を用
いたデータ暗号化装置の構成を示す図である。図14に
示すデータ暗号化装置3010は、データ撹乱部301
1、段数制御部3012、部分鍵生成部3013及び換
字テーブルデータ生成部3014を備える。
【0014】換字テーブルデータ生成部3014は、換
字テーブルデータ生成アルゴリズムに従って、64ビッ
トの入力鍵データから32Kビット(テーブル値32ビ
ット×1024個)の換字テーブルデータを生成する。
ここで、換字テーブルデータ生成アルゴリズムは本発明
の趣旨ではないので、その説明を省略する。部分鍵生成
部3013は、部分鍵生成アルゴリズムに従って、64
ビットの入力鍵データから256ビットのビットデータ
を生成し、生成されたビットデータを各32ビットずつ
の8組に分割し、部分鍵SK0〜SK7として保管す
る。ここで、部分鍵生成アルゴリズムは本発明の趣旨と
関係ないので、その説明を省略する。
【0015】データ撹乱部3011は、換字テーブルデ
ータ生成部3014が生成した32Kビット(テーブル
値32ビット×1024個)の換字テーブルデータ、及
び、部分鍵生成部3013が生成した32ビットの部分
鍵データを用いて、入力される64ビットのデータにデ
ータ撹乱を繰り返し施し、64ビットのデータを出力す
る。通常、この様なデータ撹乱処理が16回繰り返され
ることにより暗号化が完了する。
【0016】段数制御部3012は、64ビットの平文
データ(以下「平文ブロック」と記す)から64ビット
の暗号文データ(以下「暗号文ブロック」と記す)が生
成されるまでに、データ撹乱部3011が繰り返し施す
データ撹乱の回数を制御する。そのために段数制御部3
012は、平文ブロック毎にデータ撹乱の回数をカウン
トし、予め定められた回数に満たない場合にはデータ撹
乱部3011の出力をデータ撹乱部3011に入力して
データ撹乱を繰り返し、予め指定された回数の場合には
暗号文ブロックとして出力する。
【0017】ここで、平文ブロックの一回目のデータ撹
乱には部分鍵SK0が用いられ、以下、データ撹乱が繰
り返し施される度に、SK1,SK2,…,SK7と順
に用いられる。勿論、SK7の後はSK0が用いられ
る。図15は、Blowfish暗号方式を用いたデー
タ復号化装置の構成を示す図である。
【0018】図15に示すデータ復号化装置4010
は、データ撹乱部4011、段数制御部4012、部分
鍵生成部4013及び換字テーブルデータ生成部401
4を備える。換字テーブルデータ生成部4014は、図
14の換字テーブルデータ生成部3014と同様であ
る。
【0019】部分鍵生成部4013は、図14の部分鍵
生成部3013と同様である。データ撹乱部4011
は、図14のデータ撹乱部3011と同様である。段数
制御部4012は、暗号文ブロックから平文ブロックが
生成されるまでに、データ撹乱部4011が繰り返し施
すデータ撹乱の回数を制御する。段数制御部4012
は、暗号文ブロック毎にデータ撹乱の回数をカウント
し、予め定められた回数に満たない場合にはデータ撹乱
部4011の出力をデータ撹乱部4011に入力してデ
ータ撹乱を繰り返し、予め指定された回数の場合には平
文ブロックとして出力する。
【0020】ここで、暗号文ブロックの1回目のデータ
撹乱には部分鍵SK7が用いられ、以下、データ撹乱が
繰り返し施される度に、SK6,SK5,…,SK0と
順に用いられる。勿論、SK0の後はSK7が用いられ
る。図16は、図14に示したBlowfish暗号方
式を用いたデータ撹乱部3011の詳細な構成を示す図
である。
【0021】図16に示すデータ撹乱部3011は、第
1排他的論理和部3111、第2排他的論理和部311
2、及び、データ変換部3113を備える。 (データ撹乱部3011の説明を削除)第1排他的論理
和部3111は、32ビットの部分鍵データと入力デー
タの上位32ビット(図16中の「X1」)とを対象に
ビット毎に排他的論理和演算を行ない、32ビットの演
算値S0を出力する。この演算値S0は、データ変換部
3113に入力されると同時に、そのまま出力データの
下位側32ビット(図16中の「Y0」)となる。
【0022】データ変換部3113は、一般にf関数と
呼ばれるものであり、ここでは、32Kビットの換字テ
ーブルデータを用いて、32ビットの演算値S0を変換
し、32ビットの変換値S1を出力する。第2排他的論
理和部3112は、32ビットの変換値S1と入力デー
タの下位側32ビット(図16中の「X0」)とを対象
にビット毎に排他的論理和演算を行ない、32ビットの
演算値Y1を出力する。この演算値Y1は、そのまま出
力データの上位32ビットとなる。
【0023】以下に、データ撹乱部3011の動作例を
示す。 (1)まず、64ビットの入力データが32ビットずつ
の2組の部分に分割される。分割された入力データの部
分の上位側をX1,下位側をX0と記す。 (2)第1排他的論理和部3111が、各32ビットの
X1と部分鍵データとを対象にビット毎に排他的論理和
演算を行なう。ここで生成される32ビットのデータを
Y0と記す。このY0は出力データの下位32ビットと
なる。
【0024】(3)データ変換部3113が、第1排他
的論理和部3111が生成したS0を変換して、32ビ
ットのデータS1を出力する。 (4)第2排他的論理和部3112が、各32ビットの
X0とS1とを対象にビット毎に排他的論理和演算を行
なう。ここで生成される32ビットのデータをY1と記
す。このY1は出力データの上位32ビットとなる。
【0025】なお、上記の動作より出力されるY1、Y
0は、図示されていないクロックに同期して64ビット
の出力データとしてデータ撹乱部3011から出力され
る。図17は、図15に示したBlowfish暗号方
式を用いたデータ撹乱部4011の詳細な構成を示す図
である。図17に示すデータ撹乱部4011は、第1排
他的論理和部4111、第2排他的論理和部4112、
及び、データ変換部4113を備える。
【0026】第1排他的論理和部4111は、32ビッ
トの部分鍵データと入力データの下位32ビット(図1
7中の「Z0」)とを対象にビット毎に排他的論理和演
算を行ない、32ビットの演算値W1を出力する。この
入力データの下位32ビットの「Z0」は、データ変換
部4113に入力値T0として入力される。またこの演
算値W1は、そのまま出力データの上位側32ビットと
なる。
【0027】データ変換部4113は、データ変換部3
113と同様に一般にf関数と呼ばれるものであり、こ
こでは、32Kビットの換字テーブルデータを用いて、
32ビットの入力値T0を変換し、32ビットの変換値
T1を出力する。第2排他的論理和部4112は、32
ビットの変換値T1と入力データの上位側32ビット
(図17中の「Z1」)とを対象にビット毎に排他的論
理和演算を行ない、32ビットの演算値W0を出力す
る。この演算値W0は、そのまま出力データの下位32
ビットとなる。
【0028】データ撹乱部4011の動作は、データ撹
乱部3011と同様なので説明を省略する。図18は、
図16に示したデータ変換部3113の詳細な構成を示
す図である。図18に示すデータ変換部3113は、第
1換字テーブルデータ保管部3201、第2換字テーブ
ルデータ保管部3202、第3換字テーブルデータ保管
部3203、第4換字テーブルデータ保管部3204、
第1加算部3205、第2加算部3206及び排他的論
理和部3207を備える。
【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とする。
【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 β」 は、αをβで割った余りを意味するもの
とし、以下同様とする。
【0031】排他的論理和部3207は、上記Q0と第
3換字テーブルデータ保管部3203が出力する32ビ
ットのデータとを対象に排他的論理和演算を行なって3
2ビットのデータを出力する。ここで第3換字テーブル
データ保管部3203が出力する32ビットのデータを
J1、排他的論理和部3207が出力する32ビットの
データをQ1として式に表すと、 Q1=Q0(+)J1 となる。ここで、「α(+)β」は、αとβとを対象に
ビット毎に排他的論理和演算を行なうことを意味するも
のとし、以下同様とする。
【0032】第2加算部3206は、上記Q1と第4換
字テーブルデータ保管部3204が出力する32ビット
のデータとを算術加算演算し、繰り上がり分を無視して
下位32ビットのデータのみを出力する。ここで第4換
字テーブルデータ保管部3204が出力する32ビット
のデータをJ0、第2加算部3206が出力する32ビ
ットのデータを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に保管され
る。
【0034】(2)入力された32ビットの入力データ
が8ビットずつの4組の部分に分割される。ここで分割
された入力データの各部分を上位から順に、V3,V
2,V1,V0と記す。 (3) 第1〜4換字テーブルデータ保管部3201〜
3204は、それぞれS0が4分割された各8ビットの
入力に基づいて、それぞれが保管する256個のテーブ
ル値の1個を特定してそれぞれ出力する。ここで出力さ
れたテーブル値を、順にJ3,J2,J1,J0と記
す。
【0035】(4)第1加算部3205が、J3とJ2
とを算術加算演算し、繰り上がり分を無視して下位32
ビットのデータQ0を出力する。 (5)排他的論理和部3207が、Q0とJ1とを対象
に排他的論理和演算を行ない32ビットのデータQ1を
出力する。 (6)第2加算部3206が、Q1とJ0とを算術加算
演算し、繰り上がり分を無視して下位32ビットのデー
タQ2(=S1)を出力する。
【0036】上記に説明した様なデータ撹乱部3011
を備えたデータ暗号化方式の安全性は、データ変換部3
113での変換操作のデータ撹乱機能に大きく依存して
いる。データ変換部3113は、それぞれが独立に処理
を行なう4種類の換字テーブルデータ保管部3201〜
3204を用いるので、高い安全性が得られる。よっ
て、暗号解読や能動的な不正行為に対して強くなってい
る。
【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.に記載されている。
【0038】差分解読法及び線形解読法は、いずれも同
一の鍵データを用いた平文と暗号文とのペアを多数用意
し、それらを解析することによって暗号化に用いられた
鍵データを求める既知平文攻撃の一種である。これらの
暗号解読は、解読すべき暗号文の各ブロックが常に同一
の鍵データを用いて暗号化されていることを前提とす
る。
【0039】よって、複数の平文ブロックを暗号化する
場合に、平文ブロック毎に異なる鍵データを用いて暗号
化を行えば、これらの解読法に対する安全性は強化され
る。ここで、平文のブロック数と同じ数の鍵データを用
意するとなると、鍵データが平文のブロック数に比例し
て多くなるので現実的ではない。そこで、1ブロック前
の暗号文のブロックを「可変情報」として利用し、鍵デ
ータを更新する方式が、特許1250077号鍵連鎖方
式/US4074066(Message verification and t
ransmission error detection by block chaining)に
おいて開示されている。この特許では、平文のブロック
数と同じ数の鍵データを用意することなく、1ブロック
の暗号化毎に鍵データを更新できる。すなわち、1つの
鍵データを元に、ブロック毎に異なる鍵データを生成し
て用いるので、鍵データを増やさずに差分解読法及び線
形解読法に対する安全性が強化される。
【0040】
【発明が解決しようとする課題】しかしながら、第2の
従来例におけるデータ撹乱部3011は、32Kビット
もの膨大な換字テーブルデータを保管する必要があるた
めに、ハードウェア及びソフトウェアの両面における実
装の簡便性という点において問題があり、また、膨大な
換字テーブルデータを生成するには、それなりの処理時
間がかかる点において問題がある。かといって、単に換
字テーブルデータのデータ量を削減すると、安全性を損
なうことになりかねないので好ましくない。
【0041】さらに、第2の従来例に示した様なBlo
wfish暗号方式に、第3の従来例の鍵連鎖方式を用
いた場合、以下のような問題が生じる。上述の様に第2
の従来例のBlowfish暗号方式は、入力鍵データ
を元に32Kビットの換字テーブルデータを生成して暗
号化に用いており、第3の従来例の鍵連鎖方式は1ブロ
ック分の平文を暗号化するたびに入力鍵データを更新す
る。従って、Blowfish暗号方式に鍵連鎖方式を
用いた場合には、1ブロック分の平文を暗号化するたび
に換字テーブルデータを生成することになる。換字テー
ブルデータはデータ量が32Kビットと膨大であるた
め、その生成の処置に係るプロセッサの負担は大きく、
頻繁に換字テーブルデータの生成が行われると暗号処理
に係る処理速度は大幅に低下する。かといって、単に換
字テーブルデータの生成頻度を削減すると、安全性を損
なうことになりかねないので好ましくない。
【0042】これらのことは、Blowfish暗号方
式に限らず、入力鍵に基づいて換字テーブルデータを生
成して暗号処理に用いるブロック暗号方式に共通する問
題である。そこで、本発明はかかる問題点に鑑みてなさ
れたものであり、Blowfish暗号方式などの入力
鍵に基づいて換字テーブルデータを生成して暗号処置に
用いるブロック暗号方式において、換字テーブルデータ
のデータ量や生成頻度を削減することで高速な処理を実
現し、且つ、安全性を損なわない暗号処理装置、暗号処
理方法、暗号処理プログラムを記憶した記憶媒体を提供
することを目的とする。
【0043】
【課題を解決するための手段】上記目的を達成するため
に、本発明に係る暗号処理装置は、換字データを用いて
入力データに暗号処理を施し出力データを生成する暗号
処理装置であって、N及びMを2以上の整数とした場
合、所定ビットの換字データを(2^N)個保管する保
管手段と、(N×M)ビットの入力データをM個に等分
して各Nビットの分割データをM個生成する分割手段
と、分割手段が生成したM個の分割データ又はそれらの
分割データに合成処理を施して生成した入力合成データ
を入力としNビットの入力毎に保管手段が保管する(2
^N)個の換字データから前記所定ビットの換字データ
を1個特定して出力する換字手段と、換字手段が出力し
た換字データが入力され複数の異なる固定変換を施すこ
とによって前記所定ビットの変換データをM個生成する
固定変換手段と、固定変換手段が生成したM個の変換デ
ータに基づいて(N×M)ビットの出力データを生成す
る出力データ生成手段とを備えることを特徴とする。
【0044】これによって、少ない換字テーブルデータ
で高い安全性を得ることができる。また、本発明に係る
暗号処理装置は、前記保管手段が保管する換字データの
所定ビットは(N×M)ビットであり、前記換字手段は
前記分割手段が生成したM個の分割データのそれぞれに
基づいて保管手段が保管する(2^N)個の換字データ
からそれぞれ1個を特定し各(N×M)ビットの換字デ
ータをM個出力し、前記固定変換手段は換字手段が出力
したM個の換字データにそれぞれ異なる固定変換を施す
ことによって、(N×M)ビットの変換データをM個生
成し、前記出力データ生成手段は固定変換手段が生成し
たM個の変換データの全てを対象に合成処理を施すこと
によって、(N×M)ビットの出力データを生成するこ
とを特徴とすることもできる。
【0045】これによって、安全性を損なうことなく換
字テーブルデータを従来の1/Mに削減できる。また、
本発明に係る暗号処理装置は、 前記保管手段が保管す
る換字データの所定ビットはNビットであり、前記換字
手段は前記分割手段が生成したM個の分割データの全て
を対象に全体合成処理を施すことによってNビットの入
力合成データを生成する入力合成手段を含みNビットの
入力合成データに基づいて保管手段が保管する(2^
N)個の換字データから1個を特定しNビットの換字デ
ータを出力し、前記固定変換手段は換字手段が出力した
換字データに異なるM個の固定変換を個々に施すことに
よってNビットの変換データをM個生成し、前記出力デ
ータ生成手段は、前記分割手段が生成したM個の分割デ
ータの内の1個と前記固定変換手段が生成したM個の変
換データの内の1個とを対象に個別合成処理をそれぞれ
施すことによってNビットの出力合成データをM個生成
する出力合成手段と、前記出力合成手段が生成した各N
ビットのM個の出力合成データを連結処理を施すことに
よって(N×M)ビットの出力データを生成する連結手
段とを含むことを特徴とすることもできる。
【0046】これによって、安全性を損なうことなく換
字テーブルデータを従来の1/M/Mに削減できる。上
記目的を達成するために、本発明に係る暗号処理装置
は、換字テーブルデータを作成しこれを用いて入力デー
タに暗号処理を施し出力データを生成する暗号処理装置
であって、鍵データを保持する鍵データ保持手段と、換
字テーブルデータを保持する換字テーブルデータ保持手
段と、入力データを所定のビット数のブロック単位に分
割し入力ブロックとして順次出力するブロック化手段
と、所定数の入力ブロックに暗号処理を施した後で次の
入力ブロックに暗号処理を施す場合に換字テーブルデー
タを作成し換字テーブルデータ保持手段に保持された換
字テーブルデータを作成した換字テーブルデータに更新
する換字テーブルデータ作成手段と、前の入力ブロック
に暗号処理を施した後で次の入力ブロックに暗号処理を
施す場合には鍵データ保持手段に保持された鍵データに
前の入力ブロックに暗号処理を施した際に暗号処理手段
が生成した出力ブロックを用いてビット変換を施し鍵デ
ータを変換する鍵データ変換手段と、換字テーブルデー
タ保持手段に保持された換字テーブルデータと前記鍵デ
ータとを用いてブロック化手段が順次出力する入力ブロ
ックに暗号処理を施すことによって順次出力ブロックを
生成する暗号処理手段とを備える。
【0047】また、換字テーブルデータを作成しこれを
用いて入力データに暗号処理を施し出力データを生成す
る暗号処理装置であって、鍵データを保持する鍵データ
保持手段と、換字テーブルデータを保持する換字テーブ
ルデータ保持手段と、入力データを所定のビット数のブ
ロック単位に分割し入力ブロックとして順次出力するブ
ロック化手段と、所定数の入力ブロックに暗号処理を施
した後で次の入力ブロックに暗号処理を施す場合に換字
テーブルデータを作成し換字テーブルデータ保持手段に
保持された換字テーブルデータを作成した換字テーブル
データに更新する換字テーブルデータ作成手段と、前の
入力ブロックに暗号処理を施した後で次の入力ブロック
に暗号処理を施す場合には鍵データ保持手段に保持され
た鍵データに前の入力ブロックを用いてビット変換を施
し鍵データを変換する鍵データ変換手段と、換字テーブ
ルデータ保持手段に保持された換字テーブルデータと前
記鍵データとを用いてブロック化手段が順次出力する入
力ブロックに暗号処理を施すことによって順次出力ブロ
ックを生成する暗号処理手段とを備えるものであっても
よい。
【0048】また、換字テーブルデータを作成しこれを
用いて入力データに暗号処理を施し出力データを生成す
る暗号処理装置であって、鍵データを保持する鍵データ
保持手段と、換字テーブルデータを保持する換字テーブ
ルデータ保持手段と、入力データを所定のビット数のブ
ロック単位に分割し入力ブロックとして順次出力するブ
ロック化手段と、所定数の入力ブロックに暗号処理を施
した後で次の入力ブロックに暗号処理を施す場合に換字
テーブルデータを作成し換字テーブルデータ保持手段に
保持された換字テーブルデータを作成した換字テーブル
データに更新する換字テーブルデータ作成手段と、一個
の入力ブロックに暗号処理を施した後で次の入力ブロッ
クに暗号処理を施す場合には鍵データ保持手段に保持さ
れた鍵データに前の入力ブロックに暗号処理を施す間に
暗号処理手段が生成した中間ブロックを用いてビット変
換を施し鍵データを変換する鍵データ変換手段と、換字
テーブルデータ保持手段に保持された換字テーブルデー
タと前記鍵データとを用いてブロック化手段が順次出力
する入力ブロックに暗号処理を施すことによって順次暗
号処理の過程で得られる中間ブロックと暗号処理の結果
に得られる出力ブロックとを生成する暗号処理手段とを
備えるものであってもよい。
【0049】これによって、鍵データより生成される換
字テーブルデータは1ブロックを処理する毎には生成さ
れないが、鍵データは1ブロックを処理する毎に変換さ
れる。
【0050】
【発明の実施の形態】(実施の形態1)図18に示す第
1〜第4換字テーブルデータ保管部3201〜3204
が保管する換字テーブルデータを共有することにする
と、データ変換部3113に入力する換字テーブルデー
タは1/4に削減されるが、以下の点において安全性に
問題が生じる。
【0051】図18において例えば、V2=V3の場合
に、換字テーブルデータが共有であるとJ2=J3とな
るので、第1加算部3205が同じ値を算術加算演算す
る事になり、この様な暗号システムはデータ撹乱能力が
低く、安全性が低い。本発明の実施の形態1は、1つの
換字テーブルデータから複数の出力を得、異なる回数の
ローテーションや異なる定数の足し算等の固定変換を各
出力に施して使用することで、換字テーブルデータのデ
ータ量を削減しつつ安全性を損なわないで暗号化及び復
号化(以下、暗号化及び復号化を総称して「暗号処理」
と記す)を行なうことを実現する暗号処理装置である。
【0052】図1は、本発明の実施の形態1における暗
号通信システムの構成を示す図である。以下、図中の二
重線で囲まれた構成要素(ここでは、データ暗号化装置
10及びデータ復号化装置20)は別の図面においてさ
らに詳細な図に展開されていることを示す。
【0053】図1に示す暗号通信システムは、送信機1
及び受信機2を備える。送信機1及び受信機2は、例え
ば、デジタル画像情報を送受信するビデオサーバシステ
ムのサーバ及び端末等である。送信機1は、データ暗号
化装置10及び送信部11を備える。データ暗号化装置
10は、256ビットの鍵データ及び8Kビット(テー
ブル値32ビット×256個)の換字テーブルデータを
用いて、64ビット単位で平文データに暗号処理を施し
て暗号文データを生成する。ここで平文データは、例え
ばデジタル符号化された音声または画像情報等であり、
鍵データ及び換字テーブルデータは、予め送信機1と受
信機2とが秘密に共有するものである。
【0054】送信部11は、データ暗号化装置10が生
成した暗号文データを、並列to直列変換、変調及び増幅
して生成した送信信号を伝送路3に送出する。受信機2
は、データ復号化装置20及び受信部21を備える。受
信部21は、送信部11から送出された送信信号を伝送
路3を介して受信し、送信部11と逆の処理を施して暗
号文データを復元する。
【0055】データ復号化装置20は、256ビットの
鍵データ及び8Kビット(テーブル値32ビット×25
6個)の換字テーブルデータを用いて、64ビット単位
で暗号文データに暗号処理を施して復号文データ(=平
文データ)を生成する。ここで生成された復号文データ
は、例えばデジタル符号化された音声又は画像情報等で
あり、専用のデコーダ(図示せず)でデコードされてス
ピーカ又はディスプレイで再生される。
【0056】図2は、図1に示すデータ暗号化装置10
の詳細な構成を示す図である。データ暗号化装置10
は、データ撹乱部101、段数制御部102及び鍵制御
部103を備える。鍵制御部103は、256ビットの
鍵データを上位から32ビットずつ8組のデータに分割
して部分鍵K0〜K7を生成し、データ撹乱部101に
新しい処理対象のブロックが入力される場合毎に、部分
鍵K0〜K7を順にデータ撹乱部101に出力する。勿
論、K7の後はK0を出力する。
【0057】データ撹乱部101は、8Kビットの換字
テーブルデータ及び32ビットの部分鍵データを用い
て、64ビットのデータにデータ撹乱を施し、64ビッ
トのデータを出力する。段数制御部102は、平文ブロ
ックから暗号文ブロックが生成されるまでに、データ撹
乱部101が繰り返し施すデータ撹乱の回数を制御す
る。段数制御部102は、平文ブロック毎にデータ撹乱
の回数をカウントし、予め定められた回数に満たない場
合にはデータ撹乱部101の出力をデータ撹乱部101
に入力してデータ撹乱を繰り返し、予め指定された回数
の場合には暗号文ブロックとして出力する。ここでは、
予め指定された回数を8回とする。
【0058】図3は、図1に示すデータ復号化装置20
の詳細な構成を示す図である。データ復号化装置20
は、データ撹乱部201、段数制御部202及び鍵制御
部203を備える。鍵制御部203は、256ビットの
鍵データを上位から32ビットずつ8組のデータに分割
して部分鍵K0〜K7を生成し、データ撹乱部201に
新しい処理対象のブロックが入力される度に、部分鍵K
7〜K0の順にデータ撹乱部201に出力する。勿論、
K0の後はK7を出力する。
【0059】データ撹乱部201は、図2のデータ撹乱
部101と同様である。段数制御部202は、暗号文ブ
ロックから64ビットの復号文データ(以下「復号文ブ
ロック」と記す)が生成されるまでに、データ撹乱部2
01が繰り返し施すデータ撹乱の回数を制御する。段数
制御部202は、暗号文ブロック毎にデータ撹乱の回数
をカウントし、予め定められた回数に満たない場合には
データ撹乱部201の出力をデータ撹乱部201に入力
してデータ撹乱を繰り返し、予め指定された回数の場合
には復号文ブロックとして出力する。ここでは、予め指
定された回数を8回とする。
【0060】図4は、図2に示すデータ撹乱部101の
詳細な構成を示す図である。データ撹乱部101は、第
1排他的論理和部1011、第2排他的論理和部101
2及びデータ変換部300を備える。図4に示すデータ
撹乱部101は、図16に示すデータ撹乱部3011と
類似している。
【0061】第1排他的論理和部1011は、図16に
示す第1排他的論理和部3111と同様である。第2排
他的論理和部1012は、図16に示す第2排他的論理
和部3112と同様である。データ変換部300は、8
Kビットの換字テーブルデータを用いて、32ビットの
演算値S0を変換し、32ビットの変換値S1を出力す
る。
【0062】図5は、図3に示すデータ撹乱部201の
詳細な構成を示す図である。データ撹乱部201は、第
1排他的論理和部2011、第2排他的論理和部201
2及びデータ変換部301を備える。図5に示すデータ
撹乱部201は、図17に示すデータ撹乱部4011と
類似している。
【0063】第1排他的論理和部2011は、図17に
示す第1排他的論理和部4111と同様である。第2排
他的論理和部2012は、図17に示す第2排他的論理
和部4112と同様である。データ変換部301は、図
4に示すデータ変換部300と同様である。
【0064】図6は、図4に示すデータ変換部300の
詳細な構成を示す図である。データ変換部300は、換
字テーブルデータ保管部3001、第1テーブル値変換
部3002、第2テーブル値変換部3003、第3テー
ブル値変換部3004、第1加算部3005、第2加算
部3006及び排他的論理和部3007を備える。
【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とする。
【0066】第1テーブル値変換部3002は、入力さ
れる32ビットのテーブル値B2を、上位方向へ1ビッ
トの巡回ビットシフト変換して、32ビットの変換デー
タC2を出力する。第2テーブル値変換部3003は、
入力される32ビットのテーブル値B1を、上位方向へ
2ビットの巡回ビットシフト変換して、32ビットの変
換データC1を出力する。
【0067】第3テーブル値変換部3004は、入力さ
れる32ビットのテーブル値B0を、上位方向へ3ビッ
トの巡回ビットシフト変換して、32ビットの変換デー
タC0を出力する。第1加算部3005は、換字テーブ
ルデータ保管部3001が出力する32ビットのテーブ
ル値B3と、第1テーブル値変換部3002が出力する
32ビットのテーブル値C2とを算術加算演算し、32
ビット目以上の繰り上がり分を無視して32ビットのデ
ータD0を出力する。
【0068】これを式に表すと、 D0=(B3 + C2) mod (2^32) となる。排他的論理和部3007は、上記D0と第2テ
ーブル値変換部3003が出力する32ビットのテーブ
ル値C1とを対象に排他的論理和を行なって、32ビッ
トのデータD1を出力する。
【0069】これを式に表すと、 D1=D0(+)C1 となる。第2加算部3006は、上記D1と第3テーブ
ル値変換部3004が出力する32ビットのテーブル値
C0とを算術加算演算し、32ビット目以上の繰り上が
り分を無視して32ビットのデータD2を出力する。
【0070】これを式に表すと、 D2=(D1 + C0) mod (2^32) となる。第2加算部3006の出力D2が、データ変換
部300の出力S1である。以下に、データ変換部30
0の動作例を示す。
【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である。
【0072】(4)第1テーブル値変換部3002がテ
ーブル値B2を上位方向へ1ビットの巡回ビットシフト
変換して変換データC2を出力し、第2テーブル値変換
部3003がテーブル値B1を上位方向へ2ビットの巡
回ビットシフト変換して変換データC1を出力し、第3
テーブル値変換部3004がテーブル値B0を上位方向
へ3ビットの巡回ビットシフト変換して変換データC0
を出力する。
【0073】(5)第1加算部3005が、テーブル値
B3とテーブル値C2とを算術加算演算し、繰り上がり
分を無視して下位32ビットのデータD0を出力する。 (6)排他的論理和部3007が、上記D0とテーブル
値C1とを対象に排他的論理和を行ない32ビットのデ
ータD1を出力する。 (7)第2加算部3006が、上記D1とテーブル値C
0とを算術加算演算し、繰り上がり分を無視して下位3
2ビットのデータD2(=S1)を出力する。
【0074】上記に説明した様なデータ撹乱部101を
備えたデータ暗号化方式の安全性は、データ変換部30
0での変換操作のデータ撹乱機能に大きく依存してい
る。データ変換部300は、1つの換字テーブルデータ
保管部3001を用いて4個のテーブル値を得、そのう
ち3個に第1〜第3テーブル値変換部3002〜300
4でそれぞれシフトビット数が異なる巡回ビットシフト
変換をするので、1つの換字テーブルデータでありなが
ら、4種類の換字テーブルデータ保管部を用いる場合に
準ずる高い安全性が得られる。
【0075】よって、暗号解読や能動的な不正行為に対
して強くなっている。図5に示したデータ変換部301
の詳細な構成は、データ変換部300と同様なので、そ
の説明を省略する。以下に、図4に示すデータ撹乱部1
01で暗号化された平文データが図5に示すデータ撹乱
部201で復号化される原理について説明する。
【0076】先に説明したように、図4に示すデータ撹
乱部101中のX1、X0、Y1、Y0、S0、及び、
S1の間には以下のような関係が成り立つ。以下、32
ビットの部分鍵データをKi、8Kビットの換字テーブ
ルデータをR、(+)を排他的論理和演算とする。また
ここで、F(R,α)をテーブル値がRで入力データが
αである時のデータ変換部300の出力とする。
【0077】 S0=Ki(+)X1 −(式4) S1=F(R,S0) −(式5) Y1=S1(+)X0 −(式6) Y0=S0 −(式7) 図5に示すデータ撹乱部201中のZ1、Z0、W1、
W0、及び、T1の間には以下のような関係が成り立
つ。
【0078】 T1=F(R,Z0) −(式8) W1=Ki(+)Z0 −(式9) W0=T1(+)Z1 −(式10) ここで、データ撹乱部101の出力データをデータ撹乱
部201の入力データとする場合を考える。つまり、 Y1=Z1 −(式11) Y0=Z0 −(式12) とする。
【0079】(1)(式7)と(式12)から Y0=Z0=S0 −(式13) (2)(式13)より、(式9)は W1=Ki(+)S0 −(式14) (3)ここで以下のような排他的論理和の性質を利用す
る。
【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で復号化
されることがわかる。
【0081】以下に、図2に示すデータ暗号化装置10
で暗号化された平文データが図3に示すデータ復号化装
置20で復号化される原理について説明する。まず、デ
ータ暗号化装置10において、256ビットの鍵データ
K及び8Kビットの換字テーブルデータRを用いて、平
文ブロックAに暗号処理を施して暗号文ブロックAを生
成する動作について説明する。
【0082】鍵制御部103により、データ撹乱部10
1に32ビットの部分鍵データが、K0,K1,…,K
6,K7の順で入力される。また、平文ブロックAの暗
号処理中は、1組の換字テーブルデータRが繰り返し用
いられる。データ撹乱部101は、部分鍵データK0及
び換字テーブルデータRを用いて平文ブロックAにデー
タ撹乱を施して中間ブロックA1を生成し、部分鍵デー
タK1及び換字テーブルデータRを用いて中間ブロック
A1にデータ撹乱を施して中間ブロックA2を生成す
る。
【0083】以下同様に部分鍵データK2〜K7及び換
字テーブルデータRを用いて中間ブロックA2〜A6に
データ撹乱を施して暗号文ブロックAを生成する。次
に、データ復号化装置20において、上記鍵データK及
び上記換字テーブルデータRを用いて、データ暗号化装
置10が生成した暗号文ブロックAに暗号処理を施して
復号文ブロックA(=平文ブロックA)を生成する動作
について説明する。
【0084】鍵制御部203により、データ撹乱部20
1に32ビットの部分鍵データが、K7,K6,…,K
1,K0の順で入力される。また、暗号文ブロックAの
暗号処理中は、1組の換字テーブルデータRが繰り返し
用いられる。データ撹乱部201は、部分鍵データK7
及び換字テーブルデータRを用いて暗号文ブロックAに
データ撹乱を施して中間ブロックA6を生成し、部分鍵
データK6及び換字テーブルデータRを用いて中間ブロ
ックA6にデータ撹乱を施して中間ブロックA5を生成
する。
【0085】以下同様に部分鍵データK5〜K0及び換
字テーブルデータRを用いて中間ブロックA5〜A1に
データ撹乱を施して復号文データAを生成する。以上の
ことから、図2に示すデータ暗号化装置10で暗号化さ
れた平文データが図3に示すデータ復号化装置20で復
号化されることがわかる。ここで、データ暗号化装置1
0の安全性について述べる。
【0086】図18に示すような従来のデータ変換部3
113と比較して、図6に示すような本実施の形態のデ
ータ変換部300は、換字テーブルデータを共有してい
るにもかかわらず、第1テーブル値変換部3002〜第
3テーブル値変換部3004を追加することで、擬似的
に4つの換字テーブルデータを保持するのと同等の効果
を得ている。例えば、図6においてA2=A3の場合に
は、換字テーブルデータが共有なのでB2=B3となる
が、B2は第1テーブル値変換部3002によって別の
値C2に変換されるので、第1加算部3005が同じ値
を算術加算演算する事はない。従って、この様な暗号シ
ステムはデータ撹乱能力が低くならず、安全性も保たれ
る。
【0087】従って、本実施の形態のデータ変換部30
0を有する暗号処理装置は、安全性を損なうことなく、
従来のデータ変換部3113を有する従来の暗号処理装
置よりも保管する換字テーブルデータのデータ量を1/
4に削減している。以上のように、本発明は、Blow
fish暗号方式などの換字テーブルデータを用いるブ
ロック暗号方式において、保管すべきデータ量を大幅に
削減することでハードウェア/ソフトウェア両面での実
装を簡便とし、且つ、高い安全性を保っている。 (実施の形態2)本発明の実施の形態2は、1つの換字
テーブルデータを使用して1つの換字データを出力し、
異なる回数のローテーションや異なる定数の足し算等の
固定変換を、1つの出力にそれぞれ施して複数の出力を
得、それらを使用することで、換字テーブルデータのデ
ータ量を削減しつつ安全性を損なわないことを実現する
暗号処理装置である。
【0088】本発明の実施の形態2は実施の形態1のデ
ータ変換部300がデータ変換部500に、データ変換
部301がデータ変換部501に入れ代わる。また、用
いられる換字テーブルデータのデータ量が実施の形態2
では2Kビットであり、実施の形態1の4分の1となっ
ている。図7は、図4に示すデータ変換部500の詳細
な構成を示す図である。
【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を備える。
【0090】入力されたデータ32ビットは、上位から
8ビットずつの4組に分割される。ここでは、S0が4
分割された各8ビットを、順にE3,E2,E1,E0
とする。第1入力変換部5002は、上記E3を、上位
方向へ1ビットの巡回ビットシフト変換して、8ビット
の変換データ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を出力する。
【0092】第2排他的論理和部5007は、第1排他
的論理和部5006が出力するデータG2と、第3入力
変換部5004が出力する変換データF1とを対象に排
他的論理和を行なって、8ビットのデータG1を出力す
る。第4入力変換部5005は、第2排他的論理和部5
007が出力するデータG1を、上位方向へ5ビットの
巡回ビットシフト変換して、8ビットの変換データF0
を出力する。
【0093】第3排他的論理和部5008は、上記E0
と、第4入力変換部5005が出力する変換データF0
とを対象に排他的論理和を行なって、8ビットのデータ
G0を出力する。換字テーブルデータ保管部5001
は、入力される2Kビットの換字テーブルデータを、上
位から8ビットずつの256個のテーブル値に分割して
保管し、第3排他的論理和部5008が出力するデータ
G0に基づいて、この256個のテーブル値の1個を特
定して出力する。ここでは、この出力をテーブル値H0
とする。
【0094】第1テーブル値変換部5009は、換字テ
ーブルデータ保管部5001が出力する8ビットのテー
ブル値H0を、上位方向へ1ビットの巡回ビットシフト
変換して、8ビットの変換データI2を出力する。第2
テーブル値変換部5010は、換字テーブルデータ保管
部5001が出力する8ビットテーブル値H0を、上位
方向へ2ビットの巡回ビットシフト変換して、8ビット
の変換データI1を出力する。
【0095】第3テーブル値変換部5011は、換字テ
ーブルデータ保管部5001が出力する8ビットのテー
ブル値H0を、上位方向へ3ビットの巡回ビットシフト
変換して、8ビットの変換データI0を出力する。第1
加算部5012は、第1入力変換部5002が出力する
8ビットの変換データF3と、換字テーブルデータ保管
部5001が出力する8ビットのテーブル値H0とを算
術加算演算し、8ビット目以上の繰り上がり分を無視し
て8ビットのデータJ0を出力する。
【0096】これを式に表すと、 J0=(F3 + H0) mod (2^8) となる。第2加算部5013は、第2入力変換部500
3が出力する8ビットの変換データF2と、第1テーブ
ル値変換部5009が出力する8ビットの変換データI
2とを算術加算演算し、8ビット目以上の繰り上がり分
を無視して8ビットのデータJ3を出力する。
【0097】これを式に表すと、 J3=(F2 + I2) mod (2^8) となる。第3加算部5014は、第3入力変換部500
4が出力する8ビットの変換データF1と、第2テーブ
ル値変換部5010が出力する8ビットの変換データI
1とを算術加算演算し、8ビット目以上の繰り上がり分
を無視して8ビットのデータJ2を出力する。
【0098】これを式に表すと、 J2=(F1 + I1) mod (2^8) となる。第4加算部5015は、上記E0と、第3テー
ブル値変換部5011が出力する8ビットの変換データ
I0とを算術加算演算し、8ビット目以上の繰り上がり
分を無視して8ビットのデータJ1を出力する。
【0099】これを式に表すと、 J1=(E0 + I0) mod (2^8) となる。第2加算部5013の出力データJ3、第3加
算部5014の出力データJ2、第4加算部5015の
出力データJ1、及び、第1加算部5012の出力デー
タJ0を順に連結した32ビットのデータがデータ変換
部500の出力S1である。
【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を生成する。
【0101】(4)換字テーブルデータ保管部5001
が、データG0に基づいて256個のテーブル値の1個
を特定してテーブル値H0出力する。 (5)第1テーブル値変換部5009が、テーブル値H
0を上位方向へ1ビットの巡回ビットシフト変換して変
換データI2を出力し、第2テーブル値変換部5010
が、テーブル値H0を上位方向へ2ビットの巡回ビット
シフト変換して変換データI1を出力し、第3テーブル
値変換部5011が、テーブル値H0を上位方向へ3ビ
ットの巡回ビットシフト変換して変換データI0を出力
する。
【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を出力す
る。
【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種類の換字テーブ
ルデータ保管部を用いる場合に準ずる高い安全性が得ら
れる。
【0104】よって、暗号解読や能動的な不正行為に対
して強くなっている。図5に示したデータ変換部501
の詳細な構成は、データ変換部500と同様なので、そ
の説明を省略する。なお、本実施の形態1、2のデータ
暗号化装置10及びデータ復号化装置20の各構成部
は、EXOR(Exclusive-OR)等の論理回路を用いた専
用のハ−ドウェアで実現することができるだけでなく、
汎用のマイクロプロセッサ、制御プログラム、上記テー
ブルを格納したROM及び作業域としてのRAM等から
なるコンピュ−タシステム上でのソフトウェアによって
実現することができるのは言うまでもない。
【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に
用いる演算は逆演算を用いなければならない。さらに、
ここで用いる演算は、高速性を損なうことがない程度の
簡易なものが望ましい。
【0106】また、本実施の形態1、2で述べたデータ
暗号化装置10またはデータ復号化装置20において、
データ撹乱部101、データ撹乱部201への入力を繰
り返す回数を8回としているが、これは8回でなくても
よい。繰り返し回数が8回よりも少ない場合は、データ
暗号化装置10、データ復号化装置20に入力される鍵
データのビット数256ビットよりも少なくすることが
できる。一方、繰り返し回数が8回よりも多い場合は、
データ暗号化装置10、データ復号化装置20に入力さ
れる鍵データのビット数256ビットよりも多くすれば
よい。また繰り返し回数が8回よりも多い場合でも、鍵
データを256ビットのままにして、分割された部分鍵
データを重複して使用することもできる。さらに、25
6ビットよりも少ない鍵データに対しては、前述のDE
S方式、FEAL方式にあるような部分鍵生成手段を用
いて、部分鍵を生成することも可能である。
【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でシフトするビッ
ト数とする。
【0108】また、データ変換部300,301の第1
テーブル値変換部3002、第2テーブル値変換部30
03、第3テーブル値変換部3004、データ変換部5
00,501の第1テーブル値変換部5009、第2テ
ーブル値変換部5010、第3テーブル値変換部501
1の変換手段は、本実施の形態1、2の構成に限られる
ものではなく、入力データから出力データを一意に特定
できる変換であればよい。つまり、出力データから変換
前の入力データに復元することができない一方向性変換
であってもよい。ただし、同一のデータ変換部内で用い
る変換手段はそれぞれ異なる必要がある。さらに、ここ
で用いる演算は、高速性を損なうことがない程度の簡易
なものが望ましい。
【0109】さらに、本実施の形態1、2では、各排他
的論理和部及び各データ変換部は、32ビットデータ又
は8ビットデータを変換単位としたが、本発明はこのよ
うなビット数に限定されるものではない。例えば、本発
明を汎用の64ビットCPUで実現する場合であれば6
4ビットデータを変換単位としたり、逆に処理の高速性
を考慮し、半分のビット数のデータ (例えば、下位1
6ビットデータ)のみを変換するものであってもよい。
【0110】また、本実施の形態1、2では、3個のテ
ーブル値変換部により異なる固定変換を施されて得られ
た3個の変換データと、固定変換を施されない1個のテ
ーブル値とを、4種類の換字テーブルデータ保管部を用
いて得られた4個のテーブル値に準ずるものとして用い
ているが、4個のテーブル値変換部により異なる固定変
換を施されて得られた4個の変換データを用いてもよ
い。ただし4個のテーブル値変換部を用いる場合におけ
る固定変換は無変換を含むものとする。ここで、4個の
テーブル値変換部の内の何れか1つによる固定変換が無
変換である場合には、3個のテーブル値変換部を用いる
場合と同等となる。無変換とは、例えば固定変換が巡回
ビットシフト変換ならばシフト数がゼロということであ
り、異なる定数の足し算ならば定数がゼロということで
ある。要するに、固定変換を施される前のテーブル値が
仮に同じデータであったとしても、それぞれ異なるデー
タが得られる様な変換を施すテーブル値変換部であれば
よい。
【0111】また、本実施の形態1、2では、4種類の
換字テーブルデータ保管部を用いて得られた4個のテー
ブル値に準ずる4個のデータを、3個又は4個のテーブ
ル値変換部を用いて出力するが、本発明はこのような個
数に限定されるものではない。 (実施の形態3)本発明の実施の形態3は、実鍵データ
に前の暗号文ブロックを用いて変換を施すことにより入
力鍵データを更新し、換字テーブルデータは更新しない
暗号処理装置であり、換字テーブルデータの生成頻度を
削減することで高速な処理を実現し、且つ、入力鍵デー
タを更新することで安全性を損なわないことを実現する
暗号処理装置である。
【0112】図8は、本発明の実施の形態3における暗
号通信システムの構成を示す図である。図8に示す暗号
通信システムは、送信機6及び受信機7を備える。送信
機6は、データ暗号化装置60及び送信部61を備え
る。データ暗号化装置60は、64ビット×10組の暗
号化鍵データを用いて、64ビット単位で平文データに
暗号処理を施して暗号文データを生成する。ここで平文
データは、例えばデジタル符号化された音声または画像
情報等であり、暗号化鍵データは、予め送信機6と受信
機7とが秘密に共有するものである。
【0113】送信部61は、データ暗号化装置60が生
成した暗号文データを、並列to直列変換、変調及び増幅
して生成した送信信号を伝送路8に送出する。受信機7
は、データ復号化装置70及び受信部71を備える。受
信部71は、送信部61から送出された送信信号を伝送
路8を介して受信し、送信部61と逆の処理を施して暗
号文データを復元する。
【0114】データ復号化装置70は、64ビット×1
0組の暗号化鍵データを用いて、64ビット単位で暗号
文データに暗号処理を施して復号文データ(=平文デー
タ)を生成する。ここで生成された復号文データは、例
えばデジタル符号化された音声又は画像情報等であり、
専用のデコーダ(図示せず)でデコードされてスピーカ
又はディスプレイで再生される。
【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]を出力する。
【0116】換字テーブルデータ生成部602は、鍵制
御部604から64ビットの実鍵データを入力した時に
のみ、Blowfish暗号方式に用いられている換字
テーブルデータ生成アルゴリズムに従って、32Kビッ
ト(テーブル値32ビット×1024個)の換字テーブ
ルデータを生成し、データ暗号化部601へ出力する。
【0117】入力鍵生成部603は、鍵制御部604か
ら64ビットの実鍵データを入力して保管し、データ暗
号化部601により暗号文ブロックが生成される毎に、
当該暗号文ブロックと保管している64ビットの実鍵デ
ータとを対象に排他的論理和演算を行ない、演算値を入
力鍵データとして次の平文ブロックに暗号処理を施す為
にデータ暗号化部601に出力する。なお、排他的論理
和演算を行なう場合において、最初の平文ブロックに暗
号処理を施す場合には、前の暗号文ブロックが存在しな
いので、64ビットの初期値IV(以下「初期ブロック
IV」と記す)と実鍵データとを対象に排他的論理和演
算を行ない、演算値を入力鍵データとして最初の平文ブ
ロックに暗号処理を施す為にデータ暗号化部601に出
力する。勿論、64ビットの初期ブロックIVは予め入
力鍵生成部603に保管されているものとする。
【0118】また、排他的論理和演算を行なう場合にお
いて、例えば32個の暗号文ブロックが生成された後で
次の平文ブロックに暗号処理を施す場合には、当該暗号
文ブロックを対象とせず、初期ブロックIVと実鍵デー
タとを対象に排他的論理和演算を行なうものであっても
よい。即ち、この場合には、実鍵データと排他的論理和
演算を行なう対象が32回毎に初期化される。
【0119】データ暗号化部601は、64ビットの入
力鍵データ及び32Kビットの換字テーブルデータを用
いて、64ビット単位で平文データに暗号処理を施して
暗号文データを生成する。また、換字テーブルデータ生
成部602から32Kビットの換字テーブルデータを入
力した場合にのみ、入力した換字テーブルデータを更新
する。
【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]を出力する。
【0121】換字テーブルデータ生成部702は、鍵制
御部704から64ビットの実鍵データを入力した時に
のみ、Blowfish暗号方式に用いられている換字
テーブルデータ生成アルゴリズムに従って、32Kビッ
ト換字テーブルデータを生成し、データ復号化部701
へ出力する。入力鍵生成部703は、鍵制御部704か
ら64ビットの実鍵データを入力して保管し、データ復
号化部701により平文ブロックが生成される毎に、当
該平文ブロックに対応する暗号文ブロックと保管してい
る64ビットの実鍵データとを対象に排他的論理和演算
を行ない、演算値を入力鍵データとして次の暗号文ブロ
ックに暗号処理を施す為にデータ復号化部701に出力
する。なお、排他的論理和演算を行なう場合において、
最初の暗号文ブロックに暗号処理を施す場合には、前の
暗号文ブロックが存在しないので、初期ブロックIVと
実鍵データとを対象に排他的論理和演算を行ない、演算
値を入力鍵データとして最初の暗号文ブロックに暗号処
理を施す為にデータ復号化部701に出力する。勿論、
64ビットの初期ブロックIVは予め入力鍵生成部70
3に保管されているものとする。
【0122】また、排他的論理和演算を行なう場合にお
いて、例えば32個の平文ブロックが生成された後で次
の暗号文ブロックに暗号処理を施す場合には、当該平文
ブロックに対応する暗号文ブロックを対象とせず、初期
ブロックIVと実鍵データとを対象に排他的論理和演算
を行なうものであってもよい。即ち、この場合には、実
鍵データと排他的論理和演算を行なう対象が32回毎に
初期化される。
【0123】データ復号化部701は、換字テーブルデ
ータ生成部702から32Kビットの換字テーブルデー
タを入力した場合にのみ、入力した換字テーブルデータ
を更新し、64ビットの入力鍵データ及び32Kビット
の換字テーブルデータを用いて、64ビット単位で暗号
文データに暗号処理を施して平文データを生成する。図
11は、図9に示すデータ暗号化部601の詳細な構成
を示す図である。
【0124】データ暗号化部601は、データ撹乱部6
011、段数制御部6012と、部分鍵生成部6013
を備える。部分鍵生成部6013は、Blowfish
暗号方式に用いられている部分鍵生成アルゴリズムに従
って、64ビットの入力鍵データから256ビットのビ
ットデータを生成し、生成されたビットデータを各32
ビットずつの8組に分割し、部分鍵SK0〜SK7とし
て保管する。
【0125】データ撹乱部6011は、32Kビットの
換字テーブルデータ、及び、部分鍵生成部6013が生
成した32ビットの部分鍵データを用いて、入力される
64ビットのデータにデータ撹乱を繰り返し施し、64
ビットのデータを出力する。段数制御部6012は、平
文ブロックから暗号文ブロックが生成されるまでに、デ
ータ撹乱部6011が繰り返し施すデータ撹乱の回数を
制御する。段数制御部7012は、平文ブロック毎にデ
ータ撹乱の回数をカウントし、予め定められた回数に満
たない場合にはデータ撹乱部6011の出力をデータ撹
乱部6011に入力してデータ撹乱を繰り返し、予め指
定された回数の場合には暗号文ブロックとして出力す
る。ここでは、予め指定された回数を8回とする。
【0126】ここで、平文ブロックの一回目のデータ撹
乱には部分鍵SK0が用いられ、以下、データ撹乱が繰
り返し施される度に、SK1,SK2,…,SK7と順
に用いられる。勿論、SK7の後はSK0が用いられ
る。図12は、図10に示すデータ復号化部701の詳
細な構成を示す図である。データ復号化部701は、デ
ータ撹乱部7011、段数制御部7012及び部分鍵生
成部7013を備える。
【0127】部分鍵生成部7013は、図11の部分鍵
生成部6013と同様である。データ撹乱部7011
は、図11のデータ撹乱部6011と同様である。段数
制御部7012は、暗号文ブロックから平文ブロックが
生成されるまでに、データ撹乱部7011が繰り返し施
すデータ撹乱の回数を制御する。段数制御部7012
は、暗号文ブロック毎にデータ撹乱の回数をカウント
し、予め定められた回数に満たない場合にはデータ撹乱
部7011の出力をデータ撹乱部7011に入力してデ
ータ撹乱を繰り返し、予め指定された回数の場合には平
文ブロックとして出力する。ここでは、予め指定された
回数を8回とする。
【0128】ここで、暗号文ブロックの一回目のデータ
撹乱には部分鍵SK7が用いられ、以下、データ撹乱が
繰り返し施される度に、SK6,SK5,…,SK0と
順に用いられる。勿論、SK0の後はSK7が用いられ
る。また、図11に示すデータ撹乱部6011は、図1
6に示すデータ撹乱部3011と同様であり、また、図
12に示すデータ撹乱部7011の構成は、図17に示
すデータ撹乱部4011と同様である。
【0129】図13は、ブロックNo.t、実鍵デー
タ、入力鍵データ、及び、換字テーブルデータの対応関
係を示す図である。ここで、ブロックNo.tとは、入
力される平文データを先頭から64ビット単位のブロッ
クに区切り、0から順に番号を付けたものである。また
図中の実鍵データ''−''は鍵制御部604から出力のな
い事を示している。また、(+)はビット毎の排他的論
理和の演算であり、IVは初期ブロックIVであり、C
tはブロックNo.tの平文ブロックに暗号処理を施し
て得られた暗号文ブロックを指す。また、TG(K
[i])は(i=0,1,…,9)、実鍵データK
[i]から生成された換字テーブルデータを指す。
【0130】図13に示すように、入力鍵データは32
ブロック毎に、K[i](+)IV(i=0,1,…,
9)にリセットされる。また、1024ブロック毎に、
鍵制御部604から実鍵データが出力されることによっ
て、換字テーブルデータ及び入力鍵データが更新され
る。ここで、暗号通信システム全体の動作の一例を説明
する。
【0131】図8に示す送信機6において、入力された
平文データは先頭から64ビット単位で、予め保持して
いる暗号化鍵データを用いて暗号処理が施される。以
下、平文データを先頭から64ビット単位に区切り、順
に平文ブロックPt(t=0,1,… )と記す。 (1)まず、平文ブロックP0の暗号処理について記
す。
【0132】図9に示す鍵制御部604において、平文
ブロックP0の暗号処理に用いる為に、暗号化鍵データ
から生成された実鍵データK[0]が出力される。図9
に示す換字テーブルデータ生成部602において、実鍵
データK[0]から生成された換字テーブルデータTG
(K[0])が出力される。図9に示す入力鍵生成部6
03において、実鍵データK[0]と初期ブロックIV
とを対象に排他的論理和演算が行なわれ入力鍵データK
[0](+)IVが出力される。
【0133】図9に示すデータ暗号化部601におい
て、換字テーブルデータTG(K[0])及び入力鍵デ
ータK[0](+)IVを用いて、平文ブロックP0に
暗号処理を施して暗号文ブロックC0を生成する。 (2)続いて、平文ブロックP1の暗号処理について記
す。平文ブロックP1の暗号処理においては、鍵制御部
604から新たな実鍵データは出力されず、換字テーブ
ルデータ生成部602は新たな換字テーブルデータを生
成しない。
【0134】入力鍵生成部603において、実鍵データ
K[0]と1つ前の暗号文ブロックC0とを対象に排他
的論理和演算が行なわれ入力鍵データK[0](+)C
0が出力される。データ暗号化部601において、換字
テーブルデータTG(K[0])及び入力鍵データK
[0](+)C0を用いて、平文ブロックP1に暗号処
理を施して暗号文ブロックC1を生成する。
【0135】(3)平文ブロックP2〜P31の暗号処
理については、平文ブロックP1と同様である。 (4)続いて、平文ブロックP32の暗号処理について
記す。平文ブロックP32の暗号処理においても、鍵制
御部604から新たな実鍵データは出力されず、換字テ
ーブルデータ生成部602は新たな換字テーブルデータ
を生成しない。
【0136】入力鍵生成部603において、実鍵データ
K[0]と初期ブロックIVとを対象に排他的論理和演
算が行なわれ入力鍵データK[0](+)IVが出力さ
れる。データ暗号化部601において、換字テーブルデ
ータTG(K[0])及び入力鍵データK[0](+)
IVを用いて、平文ブロックP32に暗号処理を施して
暗号文ブロックC32を生成する。
【0137】(5)平文ブロックP33〜P63の暗号
処理については、平文ブロックP1と同様である。 (6)以下、平文ブロックP1023までは、平文ブロ
ックP32〜P63と同様の暗号処理を繰り返す。 (7)続いて、平文ブロックP1024の暗号処理につ
いて記す。
【0138】鍵制御部604において、平文ブロックP
1024の暗号処理に用いる為に、暗号化鍵データから
生成された実鍵データK[1]が出力される。換字テー
ブルデータ生成部602において、実鍵データK[1]
から生成された換字テーブルデータTG(K[1])が
出力される。入力鍵生成部603において、実鍵データ
K[1]と初期ブロックIVとを対象に排他的論理和演
算が行なわれ入力鍵データK[1](+)IVが出力さ
れる。
【0139】データ暗号化部601において、換字テー
ブルデータTG(K[1])及び入力鍵データK[1]
(+)IVを用いて、平文ブロックP1024に暗号処
理を施して暗号文ブロックC1024を生成する。 (8)続いて、平文ブロックP1025の暗号処理につ
いて記す。平文ブロックP1025の暗号処理において
は、鍵制御部604から新たな実鍵データは出力され
ず、換字テーブルデータ生成部602は新たな換字テー
ブルデータを生成しない。
【0140】入力鍵生成部603において、実鍵データ
K[1]と1つ前の暗号文ブロックC1024とを対象
に排他的論理和演算が行なわれ入力鍵データK[1]
(+)C1024が出力される。データ暗号化部601
において、換字テーブルデータTG(K[1])及び入
力鍵データK[1](+)C1024を用いて、平文ブ
ロックP1025に暗号処理を施して暗号文ブロックC
1025を生成する。
【0141】(9)以下、最後のブロックまで、平文ブ
ロックP0〜P1023と同様の暗号処理を繰り返す。 (10)暗号文ブロックの暗号処理については、上記
(1)〜(9)の逆変換であり、実鍵データと排他的論
理和演算を行なう対象がデータ暗号化部601で生成さ
れた暗号文ブロックではなく、データ復号化部701に
入力される1つ前の暗号文ブロックである点とが異なる
のみである。
【0142】以下に、数式を用いてより具体的に説明す
る。なお、以下の暗号化処理の説明中で用いられる各記
号には、暗号化(encryption)の頭文字
「e」を添え字として付けるものとし、復号化処理の説
明中で用いられる各記号には、復号化(descryp
tion)の頭文字「d」を添え字として付けるものと
する。
【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)以外の暗号
処理の際には、換字テーブルデータを出力しない。
【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) となる。
【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内部の
処理内容を表す。
【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)以外の暗号処理の際には、実鍵デー
タを出力しない。
【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) となる。
【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内部の
処理内容を表す。
【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が生成した換字テー
ブルデータとは、勿論同一である。
【0150】(1)データ暗号化装置60とデータ復号
化装置70とで同じ実鍵データを用いるので、 実鍵データKe=実鍵データKd 以下、これらを実鍵データKsと記す。 (2)データ暗号化装置60とデータ復号化装置70と
で、同じ初期ブロックを用いるので、 初期ブロックIVe=初期ブロックIVd 以下、これらを初期ブロックIVsと記す。
【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 が成り立つ。
【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 が成り立つ。
【0153】(10)上記(6)、(9)より、t=
(32×j)(j=0,1,… )の時にも、t=(3
2×j)(j=0,1,… )以外の時にも、 入力鍵データIKet=入力鍵データIKdt が成り立つ。
【0154】以下、これらを入力鍵データIKstと記
す。 (11)換字テーブルデータ生成部602と換字テーブ
ルデータ生成部702とは全く同一の機能を有するの
で、 換字テーブルデータ TGe(Ks[i])=換字テー
ブルデータTGd(Ks[i]) 以下、これらを換字テーブルデータ 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) が成り立つ。
【0156】ここで、データ暗号化装置60の安全性に
ついて述べる。この安全性はデータ暗号化部601の安
全性に大きく依存している。本実施の形態の場合、実鍵
データをCKtとすると、データ暗号化部601へ入力
される入力鍵データIKtは、 入力鍵データIKt=CKt(+)IV (t=k×32 のとき) 入力鍵データIKt=CKt(+)C(t−1) (t≠k×32 のとき) となる。 −(式36) ここで、k=0,1,… である。
【0157】(式36)において、C(t−1)は暗号
文ブロックであるから、暗号解読者には既知である。し
かし初期値IV及び鍵制御部604から出力される実鍵
データCKtは解読者には未知の値であるから、暗号解
読者にとっては入力鍵データIKtの値も未知である。
従って、暗号解読者は既知平文攻撃によって、コンピュ
ータ上でデータ暗号化部601をシミュレートしたとし
ても、暗号化鍵データを見つけることはできない。
【0158】また、本実施の形態においては、入力鍵デ
ータを平文ブロックPtの暗号化毎に更新していくの
で、入力鍵データを全て同じとする場合と比べて安全性
が向上している。さらに、本実施の形態においては、1
024個の平文ブロックを暗号化する毎にデータ暗号化
部に入力される換字テーブルデータが更新されるので、
換字テーブルデータを全て同じとする場合と比べて安全
性が向上している。
【0159】また、本実施の形態では、32Kビットの
換字テーブルデータの生成は暗号化又は復号化を102
4回実行する毎に1回だけしか行わないこと、及び、デ
ータ暗号化部601及びデータ復号化部701内部で行
う256ビットの部分鍵の生成よりも換字テーブルデー
タの生成の方がはるかに時間がかかることから、従来例
3のように暗号化の高速性を損なうことなく、且つ安全
性を強化している。
【0160】なお、本実施の形態においては、入力鍵生
成部603,703で2つの64ビットの演算対象に対
してビット毎の排他的論理和演算が行なわれるが、融合
手段として他の如何なる処理を用いても同様な効果が得
られる。また、本実施の形態においては、鍵制御部60
4,704から生成される実鍵データは64ビットとし
ているが、必ずしも64ビットである必要はない。実鍵
データが64ビット以下、例えば40ビットの場合に
は、出力データが64ビットとなるようなデータ融合手
段を、入力鍵生成部603,703に用いればよい。
【0161】また、本実施の形態においては、入力鍵生
成部603に1つ前の暗号化で生成される暗号文データ
を入力しているが、1つ前の暗号化の処理過程で得られ
る64ビットの値であれば何でもよい。さらにこの値
は、必ずしも64ビットである必要はなく、64ビット
以下、例えば40ビットの場合には、出力データが64
ビットとなるようなデータ融合手段を、入力鍵生成部6
03,703に用いればよい。
【0162】また、本実施の形態においては、データ暗
号化部601がBlowfish暗号方式を用いている
が、鍵データに基づいて換字テーブルデータを生成する
ようなブロック暗号方式であれば何でもよい。また、本
実施の形態では、各64ビットの実鍵データ10組から
なる暗号化鍵データを装置内に保管しているが、最初の
ブロックの暗号処理に用いる64ビットの実鍵データを
1個だけ保管しておき、他の実鍵データは平文データと
共に暗号化して送信側から伝送するようにするか、又
は、Diffie−Hellman方式などの公開鍵暗
号方式を用いて暗号化鍵データを配送して共有するよう
にしてもよい。
【0163】また、上記各実施の形態はデータ暗号化装
置で平文データを入力して暗号化し、データ復号化装置
で暗号文データを復号化するものであるが、データ暗号
化装置における暗号化とデータ復号化装置における復号
化とは逆変換の関係にあるので、それぞれ暗号化装置に
も復号化装置にも成り得る。よって、上記各実施の形態
において、上記各データ復号化装置が平文データを入力
して暗号化し、上記各データ暗号化装置が暗号文データ
を復号化するものであってもよい。
【0164】また、各実施の形態は、LogicIC等
のハードウェアであるものとして説明したが、ソフトウ
ェアで実現するものであってもよい。さらに、当該ソフ
トウェアは、CD−ROM等のコンピュータ読み取り可
能な記憶媒体に記憶された形でも装置等の場合と同様
に、生産、使用、譲渡、貸渡し、輸入、又は譲渡若しく
は貸渡しの申出等の対象となる。
【0165】
【発明の効果】本発明に係る暗号処理装置は、換字デー
タを用いて入力データに暗号処理を施し出力データを生
成する暗号処理装置であって、N及びMを2以上の整数
とした場合、所定ビットの換字データを(2^N)個保
管する保管手段と、(N×M)ビットの入力データをM
個に等分して各Nビットの分割データをM個生成する分
割手段と、分割手段が生成したM個の分割データ又はそ
れらの分割データに合成処理を施して生成した入力合成
データを入力としNビットの入力毎に保管手段が保管す
る(2^N)個の換字データから前記所定ビットの換字
データを1個特定して出力する換字手段と、換字手段が
出力した換字データが入力され複数の異なる固定変換を
施すことによって前記所定ビットの変換データをM個生
成する固定変換手段と、固定変換手段が生成したM個の
変換データに基づいて(N×M)ビットの出力データを
生成する出力データ生成手段とを備えることを特徴とす
る。
【0166】これによって、少ない換字テーブルデータ
で高い安全性を得ることができる。従って、ハードウェ
ア/ソフトウェア両面での実装が簡便なデータ暗号化装
置が実現できる。また、前記固定変換手段における各固
定変換はローテーション処理であり各固定変換は互いに
ローテーションするビット数が異なることを特徴とする
こともできる。
【0167】これによって、各固定変換のローテーショ
ンのビット数を互いに異なるものとするだけで、各固定
変換において異なる固定変換が施される。また、前記暗
号処理装置は、さらに、鍵データを入手する鍵入手手段
と、鍵入手手段が入手した鍵データに基づいて前記固定
変換手段における各固定変換のローテーションの回数を
決定する回数決定手段とを備えることを特徴とすること
もできる。
【0168】これによって、鍵データに基づいてローテ
ーションの回数を決定することができる。従って、より
高い安全性を得ることができる。また、前記保管手段が
保管する換字データの所定ビットは(N×M)ビットで
あり、前記換字手段は前記分割手段が生成したM個の分
割データのそれぞれに基づいて保管手段が保管する(2
^N)個の換字データからそれぞれ1個を特定し各(N
×M)ビットの換字データをM個出力し、前記固定変換
手段は換字手段が出力したM個の換字データにそれぞれ
異なる固定変換を施すことによって、(N×M)ビット
の変換データをM個生成し、前記出力データ生成手段は
固定変換手段が生成したM個の変換データの全てを対象
に合成処理を施すことによって、(N×M)ビットの出
力データを生成することを特徴とすることもできる。
【0169】これによって、安全性を損なうことなく換
字テーブルデータを従来の1/Mに削減できる。従っ
て、ハードウェア/ソフトウェア両面での実装が簡便な
データ暗号化装置が実現できる。また、前記出力データ
生成手段における合成処理を構成する各処理はそれぞ
れ、算術和及びビット毎の排他的論理和の内の何れかを
行なことを特徴とすることもできる。
【0170】これによって、算術和及びビット毎の排他
的論理和の内の何れかを行なうことで合成処理が行われ
る。従って、処理が簡単であり処理速度も問題にならな
い。また、前記保管手段が保管する換字データの所定ビ
ットはNビットであり、前記換字手段は前記分割手段が
生成したM個の分割データの全てを対象に全体合成処理
を施すことによってNビットの入力合成データを生成す
る入力合成手段を含みNビットの入力合成データに基づ
いて保管手段が保管する(2^N)個の換字データから
1個を特定しNビットの換字データを出力し、前記固定
変換手段は換字手段が出力した換字データに異なるM個
の固定変換を個々に施すことによってNビットの変換デ
ータをM個生成し、前記出力データ生成手段は、前記分
割手段が生成したM個の分割データの内の1個と前記固
定変換手段が生成したM個の変換データの内の1個とを
対象に個別合成処理をそれぞれ施すことによってNビッ
トの出力合成データをM個生成する出力合成手段と、前
記出力合成手段が生成した各NビットのM個の出力合成
データを連結処理を施すことによって(N×M)ビット
の出力データを生成する連結手段とを含むことを特徴と
することもできる。
【0171】これによって、安全性を損なうことなく換
字テーブルデータを従来の1/M/Mに削減できる。従
って、ハードウェア/ソフトウェア両面での実装が簡便
なデータ暗号化装置が実現できる。また、前記入力合成
手段における全体合成処理を構成する各処理はそれぞれ
は、算術和及びビット毎の排他的論理和の内の何れかを
行なうことを特徴とすることもできる。
【0172】これによって、算術和及びビット毎の排他
的論理和の内の何れかを行なうことで全体合成処理が行
われる。従って、処理が簡単であり処理速度も問題にな
らない。また、前記入力合成手段における全体合成処理
を構成する各処理はそれぞれは前記分割手段が生成した
M個の分割データにそれぞれ異なる固定変換を施した後
に算術和及びビット毎の排他的論理和の内の何れかを行
なうことを特徴とすることもできる。
【0173】これによって、それぞれ異なる固定変換を
施した後に算術和及びビット毎の排他的論理和の内の何
れかを行なうことで全体合成処理が行われる。従って、
処理が簡単であり処理速度も問題にならない上、固定変
換を施す分高い安全性を得ることができる。また、前記
出力合成手段における個別合成処理はそれぞれ、算術和
及びビット毎の排他的論理和の内の何れかを行なうこと
を特徴とすることもできる。
【0174】これによって、算術和及びビット毎の排他
的論理和の内の何れかを行なうことで個別合成処理が行
われる。従って、処理が簡単であり処理速度も問題にな
らない。本発明に係る暗号処理装置は、換字テーブルデ
ータを作成しこれを用いて入力データに暗号処理を施し
出力データを生成する暗号処理装置であって、鍵データ
を保持する鍵データ保持手段と、換字テーブルデータを
保持する換字テーブルデータ保持手段と、入力データを
所定のビット数のブロック単位に分割し入力ブロックと
して順次出力するブロック化手段と、所定数の入力ブロ
ックに暗号処理を施した後で次の入力ブロックに暗号処
理を施す場合に換字テーブルデータを作成し換字テーブ
ルデータ保持手段に保持された換字テーブルデータを作
成した換字テーブルデータに更新する換字テーブルデー
タ作成手段と、前の入力ブロックに暗号処理を施した後
で次の入力ブロックに暗号処理を施す場合には鍵データ
保持手段に保持された鍵データに前の入力ブロックに暗
号処理を施した際に暗号処理手段が生成した出力ブロッ
クを用いてビット変換を施し鍵データを変換する鍵デー
タ変換手段と、換字テーブルデータ保持手段に保持され
た換字テーブルデータと前記鍵データとを用いてブロッ
ク化手段が順次出力する入力ブロックに暗号処理を施す
ことによって順次出力ブロックを生成する暗号処理手段
とを備える。
【0175】また、換字テーブルデータを作成しこれを
用いて入力データに暗号処理を施し出力データを生成す
る暗号処理装置であって、鍵データを保持する鍵データ
保持手段と、換字テーブルデータを保持する換字テーブ
ルデータ保持手段と、入力データを所定のビット数のブ
ロック単位に分割し入力ブロックとして順次出力するブ
ロック化手段と、所定数の入力ブロックに暗号処理を施
した後で次の入力ブロックに暗号処理を施す場合に換字
テーブルデータを作成し換字テーブルデータ保持手段に
保持された換字テーブルデータを作成した換字テーブル
データに更新する換字テーブルデータ作成手段と、前の
入力ブロックに暗号処理を施した後で次の入力ブロック
に暗号処理を施す場合には鍵データ保持手段に保持され
た鍵データに前の入力ブロックを用いてビット変換を施
し鍵データを変換する鍵データ変換手段と、換字テーブ
ルデータ保持手段に保持された換字テーブルデータと前
記鍵データとを用いてブロック化手段が順次出力する入
力ブロックに暗号処理を施すことによって順次出力ブロ
ックを生成する暗号処理手段とを備えるものであっても
よい。
【0176】また、換字テーブルデータを作成しこれを
用いて入力データに暗号処理を施し出力データを生成す
る暗号処理装置であって、鍵データを保持する鍵データ
保持手段と、換字テーブルデータを保持する換字テーブ
ルデータ保持手段と、入力データを所定のビット数のブ
ロック単位に分割し入力ブロックとして順次出力するブ
ロック化手段と、所定数の入力ブロックに暗号処理を施
した後で次の入力ブロックに暗号処理を施す場合に換字
テーブルデータを作成し換字テーブルデータ保持手段に
保持された換字テーブルデータを作成した換字テーブル
データに更新する換字テーブルデータ作成手段と、一個
の入力ブロックに暗号処理を施した後で次の入力ブロッ
クに暗号処理を施す場合には鍵データ保持手段に保持さ
れた鍵データに前の入力ブロックに暗号処理を施す間に
暗号処理手段が生成した中間ブロックを用いてビット変
換を施し鍵データを変換する鍵データ変換手段と、換字
テーブルデータ保持手段に保持された換字テーブルデー
タと前記鍵データとを用いてブロック化手段が順次出力
する入力ブロックに暗号処理を施すことによって順次暗
号処理の過程で得られる中間ブロックと暗号処理の結果
に得られる出力ブロックとを生成する暗号処理手段とを
備えるものであってもよい。
【0177】これによって、鍵データより生成される換
字テーブルデータは1ブロックを処理する毎には生成さ
れないが、鍵データは1ブロックを処理する毎に変換さ
れる。従って、高速性を損なうことがないにも関らず安
全性の高いデータ暗号化装置が実現できる。
【0178】また、前記暗号処理装置は、さらに、前記
所定数の入力ブロックに暗号処理を施した後で次の入力
ブロックに暗号処理を施す場合に鍵データを入手して鍵
データ保持手段に保持された鍵データを更新する鍵デー
タ入手手段を備え、前記換字テーブルデータ作成手段は
鍵データ入手手段により入手された鍵データに基づいて
換字テーブルデータを作成することを特徴とすることも
できる。
【0179】これによって、所定数の入力ブロックに暗
号処理を施す毎に、更新した鍵データに基づいて、換字
テーブルデータを作成することができる。また、前記鍵
データ入手手段は、さらに、入力データ中の先頭の入力
ブロックに暗号処理を施す場合は鍵データを入手して鍵
データ保持手段に保持し、前記換字テーブルデータ作成
手段は、さらに、入力データ中の先頭の入力ブロックに
暗号処理を施す場合は鍵データ入手手段により入手され
た鍵データに基づいて換字テーブルデータを作成し換字
テーブルデータ保持手段に保持することを特徴とするこ
ともできる。
【0180】これによって、先頭の入力ブロックに暗号
処理を施す場合に、更新した鍵データに基づいて、換字
テーブルデータを作成することができる。また、前記鍵
データ変換手段は予め前記所定のビット数の初期ブロッ
クを保持し入力データ中の先頭の入力ブロックに暗号処
理を施す場合及び前記所定数より少ない一定数の入力ブ
ロックに暗号処理を施した後で次の入力ブロックに暗号
処理を施す場合は鍵データ保持手段に保持された鍵デー
タに前記初期ブロックを用いてビット変換を施し鍵デー
タを変換し、前記暗号処理手段は換字テーブルデータ保
持手段に保持された換字テーブルデータと鍵データ変換
手段により変換された鍵データとを用いてブロック化手
段が順次出力する入力ブロックに暗号処理を施すことに
よって順次出力ブロックを生成することを特徴とするこ
ともできる。
【0181】これによって、先頭の入力ブロックに暗号
処理を施す場合及び一定数の入力ブロックに暗号処理を
施す毎に、初期ブロックを用いてビット変換を施し、鍵
データを変換できる。従って、ビット化け等が発生した
場合に、その影響を一定数の入力ブロックの範囲だけに
抑えることができる。
【0182】また、前記鍵データ変換手段におけるビッ
ト変換は算術和及びビット毎の排他的論理和の何れかを
行なう処理であることを特徴とすることもできる。これ
によって、算術和及びビット毎の排他的論理和の内の何
れかを行なうことで鍵データ変換手段におけるビット変
換が行われる。従って、処理が簡単であり処理速度も問
題にならない。
【図面の簡単な説明】
【図1】本発明の実施の形態1における暗号通信システ
ムの構成を示す図である。
【図2】データ暗号化装置10の詳細な構成を示す図で
ある。
【図3】データ復号化装置20の詳細な構成を示す図で
ある。
【図4】データ撹乱部101の詳細な構成を示す図であ
る。
【図5】データ撹乱部201の詳細な構成を示す図であ
る。
【図6】データ変換部300の詳細な構成を示す図であ
る。
【図7】データ変換部500の詳細な構成を示す図であ
る。
【図8】本発明の実施の形態3における暗号通信システ
ムの構成を示す図である。
【図9】データ暗号化装置60の詳細な構成を示す図で
ある。
【図10】データ復号化装置70の詳細な構成を示す図
である。
【図11】データ暗号化部601の詳細な構成を示す図
である。
【図12】データ復号化部701の詳細な構成を示す図
である。
【図13】ブロックNo.t、実鍵データ、入力鍵デー
タ、及び、換字テーブルデータの対応関係を示す図であ
る。
【図14】Blowfish暗号方式を用いたデータ暗
号化装置の構成を示す図である。
【図15】Blowfish暗号方式を用いたデータ復
号化装置の構成を示す図である。
【図16】Blowfish暗号方式を用いたデータ撹
乱部3011の詳細な構成を示す図である。
【図17】Blowfish暗号方式を用いたデータ撹
乱部4011の詳細な構成を示す図である。
【図18】データ変換部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 部分鍵生成部
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G09C 1/00 - 5/00 H04K 1/00 - 3/00 H04L 9/00 INSPEC(DIALOG) JICSTファイル(JOIS)

Claims (15)

    (57)【特許請求の範囲】
  1. 【請求項1】 換字データを用いて、入力データにデー
    タ変換を施し、出力データを生成するデータ変換手段を
    備える暗号化装置又は復号装置であって、 N及びMを2以上の整数とした場合、 所定ビットの換字データを(2^N)個保管する保管手
    段と、(N×M)ビットの入力データから、Nビットの換字入
    力データを少なくとも1つ生成する換字入力データ生成
    手段と、 前記換字入力データ生成手段により生成された少なくと
    も1つの換字入力データ を入力とし、入力された換字入
    力データ毎に、保管手段が保管する(2^N)個の換字
    データから、前記所定ビットの換字データを1個特定し
    て出力する換字手段と、 換字手段が出力した換字データが入力され、複数の異な
    る固定変換を施すことによって、前記所定ビットの変換
    データをM個生成する固定変換手段と、 固定変換手段が生成したM個の変換データに基づいて、
    (N×M)ビットの出力データを生成する出力データ生
    成手段とを含むことを特徴とするデータ変換手段を備え
    る暗号化装置又は復号装置
  2. 【請求項2】 前記固定変換手段における各固定変換は
    ローテーション処理であり、各固定変換は互いにローテ
    ーションするビット数が異なることを特徴とする請求項
    1に記載のデータ変換手段を備える暗号化装置又は復号
    装置
  3. 【請求項3】 前記データ変換手段は、さらに、 鍵データを入手する鍵入手手段と、 鍵入手手段が入手した鍵データに基づいて、前記固定変
    換手段における各固定変換のローテーションの回数を決
    定する回数決定手段とを含むことを特徴とする請求項2
    に記載のデータ変換手段を備える暗号化装置又は復号装
  4. 【請求項4】 前記保管手段が保管する換字データの所
    定ビットは、(N×M)ビットであり、前記換字入力データ生成手段は、 (N×M)ビットの入力データをM個に等分して、各N
    ビットの換字入力データをM個生成する分割手段を含
    み、 前記換字手段は、前記分割手段が生成したM個の換字入
    データのそれぞれに基づいて、保管手段が保管する
    (2^N)個の換字データからそれぞれ1個を特定し、
    各(N×M)ビットの換字データをM個出力し、 前記固定変換手段は、換字手段が出力したM個の換字デ
    ータに、それぞれ異なる固定変換を施すことによって、
    (N×M)ビットの変換データをM個生成し、 前記出力データ生成手段は、固定変換手段が生成したM
    個の変換データの全てを対象に合成処理を施すことによ
    って、(N×M)ビットの出力データを生成することを
    特徴とする請求項1〜3の何れか1項に記載のデータ変
    換手段を備える暗号化装置又は復号装置
  5. 【請求項5】 前記出力データ生成手段における合成処
    理を構成する各処理はそれぞれ、算術和、及び、ビット
    毎の排他的論理和の内の何れかを行なことを特徴とする
    請求項4に記載のデータ変換手段を備える暗号化装置又
    は復号装置
  6. 【請求項6】 前記保管手段が保管する換字データの所
    定ビットは、Nビットであり、前記換字入力データ生成手段は、 (N×M)ビットの入力データをM個に等分して各Nビ
    ットの分割データをM個生成する分割手段と、 分割データ全てを対象に全体合成処理を施すことによっ
    て、Nビットの換字入力データを1個生成する入力合成
    手段とを含み、 前記換字手段は、前記入力合成手段が生成した1個の換
    字入力データに基づいて、保管手段が保管する(2^
    N)個の換字データから1個を特定し、Nビットの換字
    データを出力し、 前記固定変換手段は、換字手段が出力した換字データ
    に、異なるM個の固定変換を個々に施すことによって、
    Nビットの変換データをM個生成し、 前記出力データ生成手段は、 前記分割手段が生成したM個の分割データの内の1個
    と、前記固定変換手段が生成したM個の変換データの内
    の1個とを対象に、個別合成処理をそれぞれ施すことに
    よって、Nビットの出力合成データをM個生成する出力
    合成手段と、 前記出力合成手段が生成した各NビットのM個の出力合
    成データを連結処理を施すことによって、(N×M)ビ
    ットの出力データを生成する連結手段とを含むことを特
    徴とする請求項1〜3の何れか1項に記載のデータ変換
    手段を備える暗号化装置又は復号装置
  7. 【請求項7】 前記入力合成手段における全体合成処理
    を構成する各処理はそれぞれは、算術和、及び、ビット
    毎の排他的論理和の内の何れかを行なうことを特徴とす
    る請求項6に記載のデータ変換手段を備える暗号化装置
    又は復号装置
  8. 【請求項8】 前記入力合成手段における全体合成処理
    を構成する各処理はそれぞれは、前記分割手段が生成し
    たM個の分割データに、それぞれ異なる固定変換を施し
    た後に、算術和、及び、ビット毎の排他的論理和の内の
    何れかを行なうことを特徴とする請求項6に記載のデー
    タ変換手段を備える暗号化装置又は復号装置
  9. 【請求項9】 前記出力合成手段における個別合成処理
    はそれぞれ、算術和、及び、ビット毎の排他的論理和の
    内の何れかを行なうことを特徴とする請求項6に記載の
    データ変換手段を備える暗号化装置又は復号装置
  10. 【請求項10】 N及びMを2以上の整数とするとき、
    所定ビットの換字データを(2^N)個保管する保管
    を備える暗号化装置又は復号装置において、換字デー
    タを用いて、入力データにデータ変換を施し、出力デー
    タを生成するデータ変換方法を含む暗号化方法又は復号
    方法であって、(N×M)ビットの入力データから、Nビットの換字入
    力データを少なくとも1つ生成する換字入力データ生成
    ステップと、 前記換字入力データ生成ステップにより生成された少な
    くとも1つの換字入力 データ を入力とし、入力された換
    字入力データ毎に、保管手段が保管する(2^N)個の
    換字データから、前記所定ビットの換字データを1個特
    定して出力する換字ステップと、 換字ステップで出力した換字データが入力され、複数の
    異なる固定変換を施すことによって、前記所定ビットの
    変換データをM個生成する固定変換ステップと、 固定変換ステップが生成したM個の変換データに基づい
    て、(N×M)ビットの出力データを生成する出力デー
    タ生成ステップとを備えることを特徴とするデータ変換
    方法を含む暗号化方法又は復号方法
  11. 【請求項11】 前記保管手段が保管する換字データの
    所定ビットは、(N×M)ビットであり、前記換字入力データ生成ステップは、(N×M)ビット
    の入力データをM個に等分して、各Nビットの換字入力
    データをM個生成する分割サブステップを含み、 前記換字ステップは、前記分割サブステップで生成した
    M個の換字入力データのそれぞれに基づいて、前記保管
    手段が保管する(2^N)個の換字データからそれぞれ
    1個を特定し、各(N×M)ビットの換字データをM個
    出力し、 前記固定変換ステップは、換字ステップで出力したM個
    の換字データに、それぞれ異なる固定変換を施すことに
    よって、(N×M)ビットの変換データをM個生成し、 前記出力データ生成ステップは、固定変換ステップが生
    成したM個の変換データを合成処理して、(N×M)ビ
    ットの出力データを生成することを特徴とする請求項
    に記載のデータ変換方法を含む暗号化方法又は復号方
  12. 【請求項12】 前記保管手段が保管する換字データの
    所定ビットは、Nビットであり、前記換字入力データ生成ステップは、 (N×M)ビットの入力データをM個に等分して各Nビ
    ットの分割データをM個生成する分割サブステップと、 分割データ全てを対象に全体合成処理を施すことによっ
    て、Nビットの換字入力データを1個生成する入力合成
    サブステップとを含み、 前記換字ステップは、前記入力合成サブステップが生成
    した1個の換字入力データに基づいて、保管手段が保管
    する(2^N)個の換字データから1個を特定し、Nビ
    ットの換字データを出力し、 前記固定変換ステップは、換字ステップで出力した換字
    データに、異なるM個の固定変換を個々に施すことによ
    って、Nビットの変換データをM個生成し、 前記出力データ生成ステップは、 前記分割サブステップで生成したM個の分割データの内
    の1個と、前記固定変換ステップで生成したM個の変換
    データの内の1個とを対象に、合成処理をそれぞれ施す
    ことによって、Nビットの出力合成データをM個生成す
    る出力合成サブステップと、 前記合成ステップで生成した各NビットのM個の出力合
    成データを連結処理して、(N×M)ビットの出力デー
    タを生成する連結サブステップとを含むことを特徴とす
    る請求項10に記載のデータ変換方法を含む暗号化方法
    又は復号方法
  13. 【請求項13】 N及びMを2以上の整数とするとき、
    所定ビットの換字データを(2^N)個保管する保管
    を備える暗号化装置又は復号装置において、換字デー
    タを用いて、入力データにデータ変換を施し、出力デー
    タを生成するデータ変換プログラムを含む暗号化プログ
    ラム又は復号プログラム記録したコンピュータ読み取
    り可能な記録媒体であって、 コンピュータに、(N×M)ビットの入力データから、Nビットの換字入
    力データを少なくとも1つ生成する換字入力データ生成
    ステップと、 前記換字入力データ生成ステップにより生成された少な
    くとも1つの換字入力データ を入力とし、入力された換
    字入力データ毎に、保管手段が保管する(2^N)個の
    換字データから、前記所定ビットの換字データを1個特
    定して出力する換字ステップと、 換字ステップで出力した換字データが入力され、複数の
    異なる固定変換を施すことによって、前記所定ビットの
    変換データをM個生成する固定変換ステップと、 固定変換ステップが生成したM個の変換データに基づい
    て、(N×M)ビットの出力データを生成する出力デー
    タ生成ステップとを実行させるためのデータ変換プログ
    ラムを含む暗号化プログラム又は復号プログラムを記録
    したコンピュータ読み取り可能な記録媒体。
  14. 【請求項14】 前記保管手段が保管する換字データの
    所定ビットは、(N×M)ビットであり、前記換字入力データ生成ステップは、(N×M)ビット
    の入力データをM個に等分して、各Nビットの換字入力
    データをM個生成する分割サブステップを含み、 前記換字ステップは、前記分割サブステップで生成した
    M個の換字入力データのそれぞれに基づいて、保管手段
    が保管する(2^N)個の換字データからそれぞれ1個
    を特定し、各(N×M)ビットの換字データをM個出力
    し、 前記固定変換ステップは、換字ステップで出力したM個
    の換字データに、それぞれ異なる固定変換を施すことに
    よって、(N×M)ビットの変換データをM個生成し、 前記出力データ生成ステップは、固定変換ステップが生
    成したM個の変換データを合成処理して、(N×M)ビ
    ットの出力データを生成することを特徴とする請求項
    に記載のデータ変換プログラムを含む暗号化プログラ
    ム又は復号プログラム記録したコンピュータ読み取り
    可能な記録媒体。
  15. 【請求項15】 前記保管手段が保管する換字データの
    所定ビットは、Nビットであり、前記換字入力データ生成ステップは、 (N×M)ビットの入力データをM個に等分して各Nビ
    ットの分割データをM個生成する分割サブステップと、 分割データ全てを対象に全体合成処理を施すことによっ
    て、各Nビットの換字入力データを1個生成する入力合
    成サブステップとを含み、 前記換字ステップは、前記入力合成サブステップが生成
    した1個の換字入力デ ータに基づいて、前記保管手段
    保管する(2^N)個の換字データから1個を特定し、
    Nビットの換字データを出力し、 前記固定変換ステップは、換字ステップで出力した換字
    データに、異なるM個の固定変換を個々に施すことによ
    って、Nビットの変換データをM個生成し、 前記出力データ生成ステップは、 前記分割サブステップで生成したM個の分割データの内
    の1個と、前記固定変換ステップで生成したM個の変換
    データの内の1個とを対象に、合成処理をそれぞれ施す
    ことによって、Nビットの出力合成データをM個生成す
    る出力合成サブステップと、 前記合成ステップで生成した各NビットのM個の出力合
    成データを連結処理して、(N×M)ビットの出力デー
    タを生成する連結サブステップとを含むことを特徴とす
    る請求項13に記載のデータ変換プログラムを含む暗号
    化プログラム又は復号プログラム記録したコンピュー
    タ読み取り可能な記録媒体。
JP11864399A 1998-04-27 1999-04-26 暗号処理装置、暗号処理方法、及び、暗号処理プログラムを記憶した記憶媒体 Expired - Lifetime JP3154991B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11864399A JP3154991B2 (ja) 1998-04-27 1999-04-26 暗号処理装置、暗号処理方法、及び、暗号処理プログラムを記憶した記憶媒体

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 (ja) 1998-04-27 1999-04-26 暗号処理装置、暗号処理方法、及び、暗号処理プログラムを記憶した記憶媒体

Publications (2)

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

Family

ID=27313223

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11864399A Expired - Lifetime JP3154991B2 (ja) 1998-04-27 1999-04-26 暗号処理装置、暗号処理方法、及び、暗号処理プログラムを記憶した記憶媒体

Country Status (1)

Country Link
JP (1) JP3154991B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2013046639A1 (ja) * 2011-09-29 2015-03-26 広和株式会社 タイヤ洗浄ブラシ及びタイヤ洗浄装置、ならびに車椅子のタイヤ洗浄装置

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100436775B1 (ko) * 2002-04-19 2004-06-23 한국전자통신연구원 고속 퓨리에 변환 스크램블링 및 디스크램블링 방법
US8285972B2 (en) * 2005-10-26 2012-10-09 Analog Devices, Inc. Lookup table addressing system and method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2013046639A1 (ja) * 2011-09-29 2015-03-26 広和株式会社 タイヤ洗浄ブラシ及びタイヤ洗浄装置、ならびに車椅子のタイヤ洗浄装置

Also Published As

Publication number Publication date
JP2000019958A (ja) 2000-01-21

Similar Documents

Publication Publication Date Title
KR100362458B1 (ko) 암호화 처리장치, 암호화 처리방법 및 보안성을 손상시키지 않고 고속으로 암호화 처리를 실현하는 암호화 처리 프로그램을 기록하는 기록매체
JP3901909B2 (ja) 暗号化装置およびプログラムを記録した記録媒体
US6304657B1 (en) Data encryption apparatus using odd number of shift-rotations and method
Reyad et al. Key-based enhancement of data encryption standard for text security
JP2003516659A (ja) 1の補数暗号コンバイナ
JP3154991B2 (ja) 暗号処理装置、暗号処理方法、及び、暗号処理プログラムを記憶した記憶媒体
Belmeguenai et al. Speech encryption using stream cipher
Kareem et al. New modification on feistel DES algorithm based on multi-level keys
Ledda et al. Enhancing IDEA algorithm using circular shift and middle square method
JPH0738558A (ja) 暗号化装置、及びそれを用いた通信システム及びその方法
JP3358954B2 (ja) 擬似ランダムビット列生成器及びそれを使用する暗号通信方法
Hussein et al. An enhanced ElGamal cryptosystem for image encryption and decryption
RU2738321C1 (ru) Способ криптографического преобразования и устройство для его осуществления
CN108616351B (zh) 一种全动态加密解密方法及加密解密装置
JP2001016197A (ja) 自己同期型ストリーム暗号システム及びこれを用いたmac生成方法
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
JP3190648B2 (ja) データ暗号化装置及びその方法
RU2775253C1 (ru) Способ криптографического преобразования с одновременной выработкой производного ключа шифрования
RU2815193C1 (ru) Способ и устройство формирования многозначных кодовых конструкций для защищенной передачи данных по каналам связи
JP2000004223A (ja) 暗号・認証システム
Hassan et al. NETWORK SECURITY BY BLOCK CIPHERS
Ramesh et al. A novel block-cipher mechanism for information security in cloud system
Sadikin et al. Design of AL-13 Block Cipher Algorithm Based On Extended Feistel Network
Kadum et al. Developed OTP (one-time pad) key generation method based multi-self generation

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