JP3389210B2 - 拡大鍵生成装置、暗復号装置、拡大鍵生成方法、及び記憶媒体 - Google Patents

拡大鍵生成装置、暗復号装置、拡大鍵生成方法、及び記憶媒体

Info

Publication number
JP3389210B2
JP3389210B2 JP2000261098A JP2000261098A JP3389210B2 JP 3389210 B2 JP3389210 B2 JP 3389210B2 JP 2000261098 A JP2000261098 A JP 2000261098A JP 2000261098 A JP2000261098 A JP 2000261098A JP 3389210 B2 JP3389210 B2 JP 3389210B2
Authority
JP
Japan
Prior art keywords
key
conversion
expanded
conversion function
input
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2000261098A
Other languages
English (en)
Other versions
JP2001142395A (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.)
Toshiba Corp
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp, Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Toshiba Corp
Priority to JP2000261098A priority Critical patent/JP3389210B2/ja
Publication of JP2001142395A publication Critical patent/JP2001142395A/ja
Application granted granted Critical
Publication of JP3389210B2 publication Critical patent/JP3389210B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、秘密鍵ブロック暗
号に適用される拡大鍵生成装置、暗復号装置、拡大鍵生
成方法、及び記憶媒体に関する。
【0002】
【従来の技術】近年の計算機・通信技術の分野では、送
信データを暗号化して送信し、受信データを復号して受
信内容を得る暗号技術が広く知られている。この種の暗
号技術では、暗号化と復号に同じ秘密鍵(以下、共通鍵
という)を用いる暗号化アルゴリズムは共通鍵暗号と呼
ばれている。共通鍵暗号では、一般に、入力メッセージ
が固定長の入力ブロックに分割され、各ブロックが鍵に
基づいて攪拌処理され、暗号文が生成されている。係る
共通鍵暗号としては、例えばDES(データ暗号化規
格:data encryption standard)と呼ばれる方式が広く
用いられている。
【0003】DES方式による暗号化では、図18
(a)に示すように、平文に初期転置IPを施したデー
タに対し、ラウンド関数による処理を16回施す。さら
にラウンド関数処理されたデータに初期転置の逆転置I
-1を施すことで暗号文を得ている。また、各ラウンド
関数に対し、元の鍵から生成される拡大鍵を与えること
でラウンド関数における処理が実行される。
【0004】つまり、DES方式による暗号化装置は、
多数のラウンド関数によって暗号化対象となるデータを
攪拌する攪拌部と、攪拌部の各ラウンド関数に拡大鍵を
与える鍵生成部をその主要構成としている。なお、従来
技術における鍵生成部による鍵の生成方法としては、例
えば、表や配線を用いてビットの並び替えを行ったり、
データ暗号化部と全く同じ鍵を用いたり、あるいは鍵ビ
ットから無作為に抽出したり等して生成している。
【0005】一方、DES方式による復号は、図18
(b)に示すように、暗号化時とは逆の順番で復号対象
のデータにラウンド関数の処理を施す。従って、鍵生成
部からの拡大鍵も、暗号化時の最後のラウンド関数で使
用されたものから順番に生成する。
【0006】このDES方式における第1の利点は、暗
号化回路と復号回路の大半を共通化可能な構成にある。
つまり、図18(a)、図18(b)に示すように、攪
拌部のラウンド関数は、暗号化時と復号時とでは拡大鍵
の入力順序は逆になるが、同一の回路が使用される。
【0007】DES方式の第2の利点は、1つの共通鍵
を用いて暗号化と復号とを行うため、管理対象の鍵が少
ないことである。なお、DES方式では、唯一の共通鍵
に基づいて拡大鍵を逆順に生成するため、鍵生成部では
次の処理を行っている。
【0008】すなわち、暗号化の際には、共通鍵を左巡
回シフト(左ローテート)し、各拡大鍵を生成する。な
お、巡回シフト量の合計値を共通鍵のビット数に定め、
最終段で中間的な鍵が初期状態(共通鍵)に戻される。
これにより、暗号化時の最後の拡大鍵と復号時の最初の
拡大鍵とを同一の値に生成し得る。復号時には、共通鍵
を逆に右巡回シフト(右ローテート)して逆順に各拡大
鍵を生成すればよい。
【0009】しかしながら、DES方式では、鍵生成部
の処理が転置処理のみで構成されるため、一般に弱鍵
(weak key)と呼ばれる安全性の低い鍵が存在するとい
う問題がある。なお、弱鍵は、本明細書中、互いに同一
な拡大鍵を意味しており、全ての拡大鍵K1〜K16が
互いに同一な場合(K1=K2=…=K16)と、半分
の拡大鍵K1〜K8,K9〜K16が互いに同一な場合
(K1=K16,K2=K15,…,K8=K9)とを
含んでいる。
【0010】但し、係る弱鍵の生成は、脅威的なもので
はなく、弱鍵を生成するパターンをもつ共通鍵の入力を
除去する装置、あるいは生成された拡大鍵が弱鍵でない
か否かを判別し且つ弱鍵のときには除去する装置を付加
することにより、充分に阻止可能であると考えられる。
【0011】しかしながら、この種の弱鍵の生成阻止に
関する装置を付加した場合、拡大鍵生成装置及び暗復号
装置の価格を上昇させてしまい、さらに、拡大鍵生成装
置及び暗復号装置の規模を増大させる可能性がある。
【0012】また、DES方式に限らず、弱鍵の生成を
阻止することにより、本来の各ラウンド毎に異なる拡大
鍵を用いた場合の暗号強度を実現させ、さらに、その暗
号強度を向上し得る暗号方式が望まれている。
【0013】
【発明が解決しようとする課題】以上説明したように従
来の拡大鍵生成装置及び暗復号装置では、安全性の低下
を阻止する観点から、弱鍵の生成阻止に関する装置を付
加すると、拡大鍵生成装置及び暗復号装置の価格を上昇
させてしまい、さらに、拡大鍵生成装置及び暗復号装置
の規模を増大させる可能性がある。
【0014】また、弱鍵の生成を阻止しても、鍵生成部
の処理が暗号強度の向上にあまり貢献しておらず、暗号
強度の向上が望まれている。
【0015】本発明は上記実情を考慮してなされたもの
で、装置価格や装置規模を抑え、弱鍵の生成を阻止しつ
つ拡大鍵の攪拌性を向上でき、もって、暗号強度の向上
を図り得る拡大鍵生成装置、暗復号装置、拡大鍵生成方
法、及び記憶媒体を提供することを目的とする。
【0016】
【課題を解決するための手段】本発明の一態様によれ
ば、カスケード接続された複数の鍵変換関数部を有し、
前記鍵変換関数部は入力された鍵に基づいて拡大鍵を生
成する拡大鍵生成装置において、前記各鍵変換関数部
は、前記入力された鍵から得られた第1鍵とラウンド毎
に設定された定数との排他的論理和を求める排他的論理
和手段と、前記排他的論理和手段の出力を所定の置換テ
ーブルを用いて非線形変換する非線形変換手段と、前記
非線形変換手段の出力を拡大処理する拡大処理手段と、
この拡大処理手段の出力と前記入力された鍵から得られ
た第2鍵とに基づいてラウンド毎の拡大鍵を算出する拡
大鍵算出手段とを備える。
【0017】本発明の他の態様によれば、カスケード接
続された複数の鍵変換関数部を有する拡大鍵生成部を用
いて各ラウンド毎の拡大鍵を生成する拡大鍵生成方法に
おいて、前記鍵変換関数部の各々が、入力された鍵から
得られた第1鍵と定数レジス タにラウンド毎に設定され
た定数との排他的論理和を求め、前記鍵変換関数部の各
々が、前記排他的論理和の算出結果を所定の置換テーブ
ルを用いて非線形変換し、前記鍵変換関数部の各々が、
前記非線形変換結果を拡大処理し、前記鍵変換関数部の
各々が、前記拡大処理結果と、前記入力された鍵から生
成された第2鍵とに基づいて拡大鍵を算出する。 本発明
の他の態様によれば、コンピュータに、カスケード接続
された複数の鍵変換関数部を有する拡大鍵生成部を用い
て各ラウンド毎の拡大鍵を生成させるための拡大鍵生成
プログラムを記憶するコンピュータ読み取り可能な記憶
媒体において、前記プログラムは前記コンピュータを、
入力された鍵から得られた第1鍵と定数レジスタにラウ
ンド毎に設定された定数との排他的論理和を求める前記
鍵変換関数部における排他的論理和手段、前記排他的論
理和を所定の置換テーブルを用いて非線形変換する前記
鍵変換関数部における非線形変換手段、前記非線形変換
結果を拡大処理する前記鍵変換関数部における拡大処理
手段、前記拡大処理結果と、前記入力された鍵から生成
された第2鍵とに基づいて拡大鍵を算出する前記鍵変換
関数部における拡大鍵生成手段として機能させるための
プログラムである。 本発明の他の態様によれば、コンピ
ュータに、カスケード接続された複数の鍵変換関数部を
有する拡大鍵生成部を用いて各ラウンド毎の拡大鍵を生
成させるための拡大鍵生成プログラムを記憶するコンピ
ュータ読み取り可能な記憶媒体において、前記プログラ
ムは前記コンピュータを、入力された鍵から得られた第
1鍵と定数レジスタにラウンド毎に設定された定数との
排他的論理和を求める前記各鍵変換関数部における排他
的論理和手段、前記排他的論理和を所定の置換テーブル
を用いて非線形変換する前記各鍵変換関数部における非
線形変換手段、前記非線形変換結果を拡大処理する前記
各鍵変換関数部における拡大処理手段、前記拡大処理結
果と、前記入力された鍵から生成された第2鍵とに基づ
いて拡大鍵を算出する前記各鍵変換関数部における拡大
鍵生成手段、前記鍵変換関数部に入力された鍵を左又は
右に巡回シフトさせ、前記巡回シフトの完了した鍵を次
ラウンドの鍵変換関数部に出力する前記各鍵変換関数部
における出力手段、として機能させるためのプログラム
である。 (作用)本発明によれば、カスケード接続された複数の鍵変換関
数部を有し、各鍵変換関数部は入力された鍵に基づいて
拡大鍵を生成する。ここで、各鍵変換関数部は、入力鍵
から得られた第1鍵とラウンド毎に設定された定数との
排他的論理和を求める排他的論理和手段と、排他的論理
和手段の出力を所定の置換テーブルを用いて非線形変換
する非線形変換手段と、非線形変換手段の出力を拡大処
理する拡大処理手段と、この拡大処理手段の出力と入力
鍵から得られた第2鍵とに基づいてラウンド毎の拡大鍵
を算出する拡大鍵算出手段とを備えた。 このように、外
部装置を付加しない簡易な構成を用いており、拡大鍵を
生成する際に、置換テーブルによる非線形変換処理を行
うため、装置価格や装置規模を抑え、弱鍵の生成を阻止
しつつ拡大鍵の攪拌性を向上でき、もって、暗号強度を
向上させることができる。
【0018】各鍵変換関数部が、巡回シフト手段を設
け、入力された鍵を左又は右に巡回シフトさせ、巡回シ
フトの完了した鍵を次ラウンドの鍵変換関数部に入力す
るようにすると、容易且つ確実に、各ラウンドに入力さ
れる鍵を互いに相違させることができる。巡回シフト手
段のシフト量としては、第1鍵変換手段の出力ビット数
と互いに素な値とすると、各ラウンドにおけるほぼ全て
の第1鍵を互いに相違させることができ、上記の作用を
より一層、容易且つ確実に奏することができる。各鍵変
換関数部が、入力された鍵を置換テーブルにより変換
し、この変換の完了した鍵を次ラウンドの鍵変換関数部
に入力するようにすると、さらに容易且つ確実に、各ラ
ウンドに入力される鍵を互いに相違させることができ
る。各鍵変換関数部が、拡大変換手段を設け、非線形変
換結果を拡大変換させて拡大鍵算出手段に入力するよう
にすると、第1鍵の攪拌作用を拡大鍵の任意の領域に反
映させることができる。所定ビット数のシフトを、非線
形変換結果のビット数の半分のビット数、あるいは半分
のビット数に変換結果のビット数の整数倍を加えた値の
ビット数だけ、変換結果を左シフトするようにすると、
上記作用を容易且つ確実に奏することが できる。拡大鍵
演算手段による演算としては、桁上りを伴う加算とする
と、上記作用を、容易且つ確実に奏することができる。
各鍵変換関数部により生成された各拡大鍵に基づいて、
入力された平文を暗号化して暗号文を出力し、且つ、入
力された暗号文を復号して平文を出力する攪拌部を設け
ると、上記作用を有する拡大鍵生成装置を備えた暗復号
装置を実現することができる。攪拌部が、暗号化及び復
号のための複数の置換テーブルを有し、攪拌部のいずれ
かの置換テーブルが、非線形変換手段の置換テーブルと
共有化されていると、上記作用に加え、装置規模の縮小
化を図ることができる。
【0019】
【発明の実施の形態】以下、本発明の各実施形態につい
て図面を参照して説明する。
【0020】(第1の実施形態) 図1は本発明の第1の実施形態に係る暗復号装置の構成
を示すブロック図であり、図2はこの暗復号装置内の拡
大鍵生成部の構成を示すブロック図である。
【0021】この暗復号装置は、パーソナルコンピュー
タやワークステーション等の計算機の暗復号処理部とし
て構成されており、ハードウェア又はソフトウェアによ
って暗号化処理と復号処理を行うものであって、具体的
には、共通鍵からn段の拡大鍵K1〜Knを生成する拡
大鍵生成部10と、拡大鍵生成部10により生成された
拡大鍵K1〜Knを順次各ラウンドR1〜Rnに用いて
暗号化又は復号を行う攪拌部20とを備えている。すな
わち、拡大鍵生成部10及び攪拌部20は、暗号化と復
号に共通して用いられており、ソフトウェアにより暗復
号装置を実現する場合には両者の動作を示すプログラム
が予め記憶媒体からインストールされている。なお、拡
大鍵生成部10及び攪拌部20との間には転置処理等を
設けてもよい。
【0022】ここで、拡大鍵生成部10は、各ラウンド
R1〜Rnに対応し、順にカスケード接続された鍵変換
関数fk1〜fkn(単に鍵変換関数fkともいう)が
設けられている。鍵変換関数fk1〜fknは、共通鍵
KC若しくは中間的な鍵変換結果kc1〜kcn-1が入
力されると、これを変換して得られた拡大鍵K1〜Kn
を攪拌部20のラウンド関数fr1〜frnに出力し、
また別途得られた中間的な鍵変換関数kc1〜kcn-1
を次段の鍵変換関数fk2〜fknに入力する機能をも
っている。
【0023】ここで、鍵変換関数fk1〜fknは、図
2に示すように、一時鍵レジスタ11〜11、定数
レジスタ12〜12、XOR素子13〜13
Sボックス14〜14、拡大変換部15〜1
、加算部16〜16及び巡回シフト部17
17n-1を備えている。なお、最終段の巡回シフト部1
は、次段に鍵変換関数fk(n+1)が無く、不要であ
るため、省略されている。
【0024】一時鍵レジスタ11(但し、1≦i≦
n、以下も同様)は、拡大鍵生成部10に入力された共
通鍵又は前段の鍵変換関数fk(i-1)から入力された中
間的な鍵変換結果を保持するものであり、ここでは、5
6ビットのレジスタが使用されている。
【0025】定数レジスタ12には、鍵変換関数fk
iの属するラウンド数に対応して定数が設定され、XO
R素子13に供給可能となっている。具体的には、定
数レジスタ12は、ラウンド数n=16の例を図3
(a)に示すように、拡大鍵K1〜K16を逆順(K1
6〜K1)にも生成可能な観点から、保持する定数がラ
ウンド数の中央値(n=8,9)を中心として左右対称
(前段,後段で対称)に設定されている。但し、これに
限らず、定数レジスタ12は、拡大鍵K1〜K16を
逆順(K16〜K1)にも生成可能であれば、保持する
定数は任意であり、例えば図3(b)に示すように、暗
号化と復号の時とで定数を置換しても良い。なお、定数
レジスタ12は、図3(a)に示すように保持する定
数のうち、少なくともどれか一つの値を他とは異ならせ
て設定されていれば良い。
【0026】XOR素子13は、一時鍵レジスタ11
内の8ビットのデータからなる第1鍵KAと、定数レ
ジスタ内の定数との排他的論理和を算出し、得られた8
ビットの算出結果をSボックスに入力するものである。
【0027】S(置換:substitution)ボックス14
は、弱鍵(全ての段で同じ拡大鍵)の生成を阻止するた
めのものであり、具体的には、XOR素子13から入
力された8ビットの値を非線形変換し、得られた8ビッ
トの変換結果を拡大変換部15に入力する機能を有す
る。Sボックス14iは、例えば図4に示すように入力
ビットと出力ビットとを置換するための置換テーブルを
使用して非線形の変換を行う。例えば、Sボックス14
iでは、入力ビットが(00000001)である場
合、その(00000001)という情報を2進表現で
あるとみなし、さらにその2進表現を10進表現した値
「1」に変換する。
【0028】そして、図4の置換テーブルを参照し、最
初に出現する「48」を0番目とすると、「1番目」の
要素「54」(10進表現)を決定し、その2進表現で
ある(00110110)を出力ビットとして出力す
る。
【0029】そのため、入力ビット(0000000
1)を出力ビット(00110110)に置換すること
ができる。
【0030】なお、上述のように図4の置換テーブルは
0番〜255番目までの256個の入力に対応した要素
を保持しており、0〜255の値が入力された場合に対
応する0〜255の値を決定する場合に用いられるもの
である。
【0031】また、Sボックス14は、装置規模の縮
小化の観点から、後述するラウンド関数fk内のいずれ
かのSボックスと共有することが好ましい。
【0032】拡大変換部15は、Sボックス14
ら入力された8ビットの変換結果を大きな値に変換する
ものであり、ここでは、8ビットの変換結果を4ビット
だけ左シフトさせるように拡大変換し、下位4ビットに
「0」を埋め込むことにより得られた12ビットの拡大
変換結果を加算部16に入力する機能をもっている。
【0033】なお、拡大変換部15のシフト量は、S
ボックス14の出力ビットを後述する攪拌部20の2
つのSボックスS3,S4に反映させる観点から、等価
的にSボックス14の出力ビット数(=8)の半分
(=4ビット)とすることが好ましい。ここで、「等価
的に」の語は、4ビットシフトに代えて、例えば12
(=4+8×1)ビットシフト又は20(=4+8×
2)ビットシフトのように、出力ビット数の整数倍を加
えた変形例(換言すると、出力ビット数(=8)で除算
すると、余りが除数の半分(=4)のビット数となるシ
フト量をもつ変形例)を包含することを意味している。
また、Sボックス14の出力ビットは、12ビットシ
フトされた場合には、SボックスS3,S4ではなく、
SボックスS2,S3に反映され、20ビットシフトさ
れた場合にはSボックスS1,S2に反映される。さら
に、Sボックス14の出力ビットを2つのSボックス
S3,S4(S2,S3又はS1,S2を含む)に反映
させる場合、4ビットずつの組合せに限らず、順不同で
1ビットと7ビット、2ビットと6ビットあるいは3ビ
ットと5ビットの組合せとしてもよい。すなわち、等価
的な4ビットシフトに代えて、等価的な1〜3,5〜7
の任意のビットシフトとしてもよい。
【0034】加算部16は、拡大変換部15から入
力された12ビットの拡大変換結果と、一時鍵レジスタ
11内の32ビットのデータからなる第2鍵KBとを
加算し(桁上りを伴う通常の加算)、得られた加算結果
(32ビット(桁上がりは無視する))をラウンドRi
の拡大鍵Kiとして攪拌部20のラウンド関数friに
入力する機能をもっている。
【0035】なお、一時鍵レジスタ11から抽出され
る第1鍵KA及び第2鍵KBは、図2においては、それ
ぞれ連続する領域から個別に取出されたが、これに限ら
ず、不連続な領域から取り出してもよい。すなわち、第
1鍵KAは、一時鍵レジスタ11内の任意の合計8ビ
ットのデータであればよく、第2鍵KBは、一時鍵レジ
スタ11内の任意の合計32ビットのデータであれば
よい。また、第1鍵KAは、第2鍵KBと重なっていて
もよい。なお、第1鍵KAのビット長は、攪拌部20の
Sボックスの入力ビット長と等しくすることがSボック
スの共有化の観点から好ましい。第2鍵KBのビット長
は、拡大鍵Kiのビット長と等しくすることが、設計の
簡易化の観点から好ましい(但し、所望により、第2鍵
KBと拡大鍵Kiのビット長を互いに異ならせてもよ
く、この場合、例えば縮約型転置(permutation)や拡大
転置等を用い、最終的に拡大鍵Kiのビット長を調整可
能である)。
【0036】巡回シフト部17は、一時鍵レジスタ1
の値を所定のシフト量だけ巡回シフトさせて次段の
一時鍵レジスタ11i+1に入力するものであり、ここで
は図5に示すように、各鍵変換関数fk1〜fkn毎
に、シフト量が設定されている。なお、巡回シフト部1
のシフト量は、鍵の攪拌性を高める観点から、少な
くとも共通鍵KCのビット数又はSボックス14の出
力ビット数のいずれかと互いに素であることが好まし
く、三者が互いに素であることが最も好ましい。また、
このシフト量は、拡大鍵K1〜K16を逆順(K16〜
K1)にも生成可能とする観点から、最終段を除いた鍵
変換関数fk1〜fk(n+1)の中央値(n=8)を中心
として左右対称(前段,後段で対称)に設定されてい
る。但し、これに限らず、巡回シフト部17は、拡大
鍵K1〜K16を逆順(K16〜K1)にも生成可能で
あれば、シフト量及び巡回方向を任意に設定可能であ
る。
【0037】一方、攪拌部20は、夫々ラウンドR1か
らラウンドRnまでのnラウンドの処理において、拡大
鍵生成部10から順に拡大鍵K1〜K16が与えられる
とき、入力された平文を暗号化して暗号文を出力する暗
号化機能を有し、また、拡大鍵生成部10から暗号化と
は逆順に拡大鍵K16〜K1が与えられるとき、入力さ
れた暗号文を復号して平文を出力する復号機能を有して
いる。攪拌部20には、各ラウンドR1〜Rnに対応し
て、順にカスケード接続されたラウンド関数fr1〜f
rnが設けられている。
【0038】ラウンド関数friは、暗号化のとき、平
文又は中間的な暗号化結果を、拡大鍵生成部10から入
力された拡大鍵Kiに基づいて変換し、中間的な暗号化
結果又は暗号文を出力する関数であり、復号のとき、暗
号文又は中間的な復号結果を、拡大鍵生成部10から逆
順に入力された拡大鍵K(n+1-i)に基づいて変換し、中
間的な復号結果又は平文を出力する関数であって、ここ
では一例として図6に示す如きFeistel構造が使用され
ている。
【0039】図6中のFeistel構造は、与えられた2つ
のサブブロックLi,Riからなるデータブロックのう
ち、一方のサブブロックRiを拡大鍵Kiに基づいてF
関数で非線形変換し、この変換結果と他方のサブブロッ
クLiとの排他的論理和をXOR素子21で算出し、こ
の算出結果Ri+1と一方のサブブロックLi+1(=Ri)
との位置を交替して次段に与える、という構成を備えて
いる。
【0040】ここで、F関数は、図6中において、拡大
鍵KとサブブロックRi(又はLi)との排他的論理和
を算出するXOR素子22と、XOR素子22の出力を
4分割して夫々非線形変換する4つのSボックスS1乃
至S4とから構成される。なお、各SボックスS1乃至
S4は、例えば図3に示すような置換テーブルを有する
が、各Sボックスが共通の置換テーブルを持つように構
成してもよいし、それぞれ異なる置換テーブルを持つよ
うに構成してもよい。
【0041】なお、各ラウンド関数frによる変換は、
同じ変換を2回繰り返すと、元のデータが復元されるイ
ンボルーション(involution)という性質をもってい
る。このため、攪拌部20では、平文を拡大鍵K1〜K
16の順に変換して暗号文を生成したとき、この暗号文
を拡大鍵K16〜K1の順に再度変換すると、平文が生
成可能となっている。
【0042】次に、以上のように構成された暗復号装置
の動作を図7に示すフローチャートも参照して説明す
る。
【0043】暗号化の際には、図1に示すように、入力
された共通鍵KC又は中間的な鍵変換結果kciは、鍵
変換関数fkiにより1ラウンド毎に拡大鍵Kiに変換
される。
【0044】詳しくは図8に示すように、鍵変換関数f
kiにおいては、一時鍵レジスタ11から取り出した
8ビットの第1鍵KAと定数レジスタ12内の定数と
の排他的論理和をXOR素子13が算出し(図7のス
テップS1)、この算出結果をSボックス14が非線
形変換する(図7のステップS3)。非線形変換として
は、例えば図4に示した関係で入力と出力とを各ビット
毎に置換する。この置換結果は、拡大変換部15によ
り4ビット左シフト(=16倍)されて加算部16
入力される(図7のステップS5)。
【0045】加算部16は、入力されたシフト結果
(12ビット)と一時鍵レジスタ11から取り出した
32ビットの第2鍵KBとを加算し、加算結果を32ビ
ットの拡大鍵Kiとして攪拌部20に出力する(図7の
ステップS7)。
【0046】この拡大鍵Kiにおいては、Sボックス1
で変換された8ビットの第1鍵KAが、右(最下位
桁)から5ビット目〜12ビット目に位置する。このビ
ット位置は、第3及び第4のSボックスS3,S4への
入力に対応する。従って、拡大鍵生成部10のSボック
ス14による攪拌作用を攪拌部20の2つのSボック
スS3,S4に反映でき、拡大鍵の攪拌性が向上されて
いる。
【0047】また、攪拌部20では、平文が、各ラウン
ド関数fr1〜frn毎に各拡大鍵K1〜Knに基づい
て変換され、中間的な暗号化結果を経て最終的に暗号文
に変換される。
【0048】一方、復号の際には、拡大鍵生成部10に
おいては、前述同様に共通鍵KCが入力されると、暗号
化時とは逆順に鍵変換処理が行われ、拡大鍵Kn〜K1
が順次、攪拌部20に出力される。
【0049】攪拌部20では、入力された暗号文が、暗
号化時とは逆順の拡大鍵Kn〜K1に基づいて変換さ
れ、中間的な復号結果を経て最終的に平文に変換され
る。
【0050】上述したように本実施形態によれば、各鍵
変換関数fk1〜fknとしては、入力された鍵から得
られた第1鍵KAに基づいてSボックス14(置換テ
ーブル)により非線形変換処理を行い、加算部16
が、このSボックス14による変換結果を左シフト
させた値と、入力された鍵から得られた第2鍵KBとに
基づいて拡大鍵K1〜K16を算出する。
【0051】このように、外部装置を付加しない簡易な
構成を用いており、拡大鍵Kiを生成する際に、置換テ
ーブル(Sボックス14i)による非線形変換処理を行
うため、装置価格や装置規模を抑え、弱鍵の生成を阻止
しつつ拡大鍵の攪拌性を向上でき、もって、暗号強度を
向上させることができる。
【0052】また、各鍵変換関数fkiでは、巡回シフ
ト部17が、入力された鍵を左(又は右)に巡回シフ
トさせ、巡回シフトの完了した鍵を次ラウンドの鍵変換
関数fk(i+1)に入力するので、容易且つ確実に、各ラ
ウンドに入力される鍵を互いに相違させることができ
る。
【0053】さらに、巡回シフト部17のシフト量と
しては、例えば、Sボックス14の出力ビット数と互
いに素な値とした場合、各ラウンドR1〜Rnにおける
ほぼ全ての第1鍵KAを互いに相違させることができ、
前述した効果をより一層、容易且つ確実に得ることがで
きる。
【0054】さらに、各鍵変換関数fkiとしては、拡
大変換部15が、Sボックス14による変換結果を
拡大変換させて加算部16に入力するので、前述した
効果に加え、第1鍵KAの攪拌作用を拡大鍵Kiの任意
の領域に反映させることができる。
【0055】また、拡大変換部15による拡大変換と
しては、所定ビット数のシフトであるので、前述した効
果を容易且つ確実に得ることができる。
【0056】さらに、攪拌部20が、暗号化及び復号の
ための複数のSボックスS1〜S4を有し、攪拌部20
のいずれかのSボックスが、鍵変換関数fk1〜fkn
のSボックス14と共有化されているので、装置規模
の縮小化を図ることができる。
【0057】また、各鍵変換関数fk1〜fknとして
は、拡大変換部15が、Sボックス14による変換
結果を受けたとき、この変換結果のビット数の半分のビ
ット数、あるいは半分のビット数に変換結果のビット数
の整数倍を加えた値のビット数だけ、当該変換結果を左
シフトさせて加算部16に入力するので、第1鍵KA
の攪拌作用を拡大鍵Kiにて左シフトさせた領域に反映
させることができ、この場合、攪拌部20の複数のSボ
ックスS3,S4に入力される領域に反映させることが
できるので、より一層、暗号強度の向上を図ることがで
きる。
【0058】(第2の実施形態) 図9は本発明の第2の実施形態に係る拡大鍵生成装置に
適用される鍵変換関数の構成を示すブロック図であり、
図2と同一部分には同一符号を付してその詳しい説明を
省略し、ここでは異なる部分についてのみ述べる。な
お、以下の各実施形態も同様にして重複した説明を省略
する。
【0059】すなわち、本実施形態は、第1の実施形態
の変形例であり、拡大鍵の攪拌性のより一層の向上を図
るものであり、具体的には図2に示すように、各鍵変換
関数において、前述した定数レジスタ12、XOR素
子13、Sボックス14及び拡大変換部15から
なる変換要素が互いに並列に、一時鍵レジスタ11
加算部16との間に接続されている。
【0060】ここで、2つのSボックス14は、1種
類で設けてもよく、又は複数の種類で設けてもよいが、
複数の種類を用いる場合、共通鍵KCに基づいて拡大鍵
Kiを正順及び逆順の両方で生成可能とする観点から、
前半の鍵変換関数fk1〜fk8と後半の鍵変換関数f
k9〜fk16とでは中央(fk8,9)から上下対称
となるように種類が設けられることが好ましい。
【0061】また、2つの拡大変換部15iは、互いに
同一のシフト量とすることも可能であるが、2つのSボ
ックス14による攪拌効果をより広範囲に反映させる
観点から、互いに異なるシフト量でSボックス14
出力を左シフトさせることが好ましい。この場合、例え
ば一方の拡大変換部15を4ビットの左シフトとし、
他方の拡大変換部15を20ビットの左シフトとする
と、第1鍵KAの攪拌効果を攪拌部20のSボックスS
1〜S4の全てに反映できるので好ましい。
【0062】以上のような構成によれば、第1鍵KAに
よる攪拌性をさらに向上できるので、第1の実施形態の
効果に加え、拡大鍵Kiの攪拌性をより一層向上させる
ことができる。
【0063】(第3の実施形態) 図10は本発明の第3の実施形態に係る拡大鍵生成装置
の構成を示すブロック図である。
【0064】本実施形態は、第1又は第2の実施形態の
変形形態であり、一時鍵レジスタ11及び巡回シフト
部17に代えて、入力される共通鍵KC又は中間的な
鍵kc1〜kcn-1の各ビットを互いに非線形的に置換
し、得られた中間的な鍵の一部を自己の段のXOR素子
13並びに加算部16に入力すると共に、その中間
的な鍵の全体を次段の置換処理部18(i+1)に入力する
置換処理部18を備えている。
【0065】各置換処理部18は、共通鍵KCに基づ
いて拡大鍵Kiを正順及び逆順の両方で生成可能とする
観点から、共通鍵KCを正順にn回置換した結果が元の
共通鍵KCに等しくなるように夫々設定され、且つラウ
ンド数n=16の場合の例を図11に示すように、暗号
化の際には昇順に変換を行い、復号の際には降順に逆変
換を行うように設定されている。各置換処理部18iの
具体的な処理としては、例えば共通鍵KCを任意のビッ
ト数左にローテートシフトすることにより行われる。
【0066】図10に示す実施形態においては、図12
のステップS21において、置換処理部18iにより、
共通鍵KCを非線形に変換する処理が行われる。次に、
ステップS23において、置換処理部18iから得られ
る第1鍵KAと、定数レジスタ12iに保持される定数
との排他的論理和がXOR素子13iにより演算され
る。そしてステップS25において、XOR素子13I
からの排他的論理和がSボックス14iにより置換テー
ブルを用いて非線形に変換される。そして、ステップS
27において、非線形変換された値が拡大変換部15i
において、4ビット左シフトされ、12ビットの拡大変
換された結果が得られる。そして、ステップS29にお
いて、12ビット拡大変換された結果と、置換処理部1
8iから得られる第2鍵KBとが加算され、拡大鍵が生
成される。
【0067】以上のような構成としても、第1又は第2
の実施形態と同様の効果を得ることができ、これに加
え、容易且つ確実に、各鍵変換関数fk1〜fknに入
力される鍵KC,kc1〜KCn-1を互いに相違させる
ことができる。
【0068】なお、上記各実施形態では、Sボックス1
の入力側に、定数を排他的論理和するXOR素子1
を設けた場合について説明したが、これに限らず、
XOR素子13を省略し、Sボックス14に代え
て、定数の排他的論理和を算出した後のSボックス14
を設けた構成としても、本発明を同様に実施して同
様の効果を得ることができる。すなわち、例えばKAの
値と定数のとの排他的論理和をあらかじめ計算しておい
て、表の形で保持し、Sボックス14xiがKAの値を
入力パラメータとして表を引き、排他的論理和の算出結
果を得るように構成してもよい。
【0069】図13は、上述したこの発明の拡大鍵生成
装置、暗復号装置及び記憶媒体を具現化した、スマート
カードの構成を示す機能ブロック図である。同図に示す
ようにはスマートカード51は、CPU53、RAM5
5、ROM57、EEPROM59、及びコンタクタ6
1を有する。RAM55は、各種データの記憶や、ワー
クエリアなどに使用される。ROM57は、各種データ
の記憶やプログラムの記憶等に使用される。EEPRO
M59は、上述した図X、Yに示すフローチャートで示
されるプログラム等を記憶する。コンタクタ61は、図
示しないスマートカードリーダ/ライタとの電気的接触
を得る。なお、図7および12に示すプログラムは、E
EPROM59の代わりに、RAM55あるいはROM
57に記憶するようにしてもよい。
【0070】(第4の実施形態) 次に、本発明の第4の実施形態に係る暗復号装置につい
て図14を用いて説明する。この暗復号装置30は、第
1乃至第3の実施形態のいずれかで述べた構成を有し、
例えば画像データや音楽データ等のディジタル情報(以
下、生データという)を保護するためのものである。
【0071】係る暗復号装置30は、例えば図14に示
すように、記憶媒体からプログラムがインストールされ
ることにより、パーソナルコンピュータ(以下、パソコ
ンという)PCに実現されているとする。ここで、暗復
号装置30は、例えばユーザIDを共通鍵とし、パソコ
ンPCに入力された生データを暗号化し、得られた暗号
化データ(前述した暗号文に相当)を携帯可能な記憶素
子31に記憶させる。この種の記憶素子31としては、
スマートカード、スマートメディア又はメモリカードな
どがある。
【0072】この記憶素子31がユーザ宅へ配布され、
ユーザ宅内の図示しない暗復号装置は、自己のユーザI
Dに基づいて記憶素子31内の暗号化データを復号し、
得られた画像データや音楽データをスピーカ等から再生
出力させる。これにより、例えば予め契約したユーザの
みに生データ(コンテンツ)を配布することができる。
【0073】また、本実施形態は、以下のように種々変
形可能となっている。例えば、図15に示すように、パ
ソコンPCに代えて、例えばハードウェア回路からなる
暗復号装置30を備えた記録装置32を設けた構成であ
る。この構成によれば、コンテンツを記憶素子31に書
込む際に、暗復号装置30がユーザID等により生デー
タを暗号化して記憶素子31に記憶させる。宅配から復
号に至る過程は、前述した通りである。このように、パ
ソコンPC等の汎用のコンピュータでなくとも、専用の
記録装置32に暗復号装置30を設けた構成としてもよ
い。
【0074】また、図16に示すように、暗復号装置3
0を設けたホストコンピュータ33が、ネットワークN
Wを介してパソコンPCに接続された構成としてもよ
い。この場合、ホストコンピュータ33からダウンロー
ドされた暗号化データがパソコンPCを介して暗号化さ
れた状態で記憶素子32に記憶される。宅配から復号に
至る過程は、前述した通りである。この変形例によれ
ば、前述した効果に加え、ネットワークNW上でのコン
テンツ(生データ)の盗聴などを防止することができ
る。
【0075】さらに、図17に示すように、記憶素子を
例えばDVD(digital versatiledisc)としてもよ
い。図17(a)に示す場合、予め暗号化データが格納
されたDVD34がユーザに頒布される。ユーザ宅の暗
復号装置30は、DVD34内の暗号化データを復号
し、得られた画像データや音楽データをスピーカ等から
再生出力させる。
【0076】また、図17(b)に示す場合、画像や音
楽等の生データがユーザ宅の暗復号装置30によって所
定の共通鍵を用いて暗号化され、得られた暗号化データ
がDVD−RAM35に格納される。
【0077】この暗号化データは、ユーザにより設定さ
れた所定の共通鍵により復号されるが、共通鍵が知られ
ない限り、他人には復号されない。従って、趣味的な画
像データや音楽データなどを他人から保護しつつ保存す
ることができる。
【0078】(他の実施形態) 尚、本発明における拡大鍵生成装置及び暗復号装置の処
理を実現させるためのプログラムが記憶された記憶媒体
としては、磁気ディスク、フロッピーディスク、ハード
ディスク、光ディスク(CD−ROM、CD−R、DV
D等)、光磁気ディスク(MO等)、半導体メモリ等が
適用可能である。実際には、プログラムを記憶でき、か
つコンピュータが読み取り可能な記憶媒体であれば、そ
の記憶形式は何れの形態であっても良い。
【0079】また、記憶媒体からコンピュータにインス
トールされたプログラムの指示に基づきコンピュータ上
で稼働しているOS(オペレーティングシステム)や、
データベース管理ソフト、ネットワークソフト等のMW
(ミドルウェア)等が本実施形態を実現するための各処
理の一部を実行しても良い。
【0080】さらに、本発明における記憶媒体は、コン
ピュータと独立した媒体に限らず、LANやインターネ
ット等により伝送されたプログラムをダウンロードして
記憶または一時記憶した記憶媒体も含まれる。
【0081】また、記憶媒体は1つに限らず、複数の媒
体から本実施形態における処理が実行される場合も本発
明における記憶媒体に含まれ、媒体構成は何れの構成で
あっても良い。
【0082】尚、本発明におけるコンピュータは、記憶
媒体に記憶されたプログラムに基づき、本実施形態にお
ける各処理を実行するものであって、パソコン等の1つ
からなる装置、複数の装置がネットワーク接続されたシ
ステム等の何れの構成であっても良い。
【0083】また、本発明におけるコンピュータとは、
パソコンに限らず、情報処理機器に含まれる演算処理装
置、マイコン等も含み、プログラムによって本発明の機
能を実現することが可能な機器、装置を総称している。
【0084】また、本発明は、DES暗号系に限らず、
ラウンド関数を用いるブロック暗号系であれば適用可能
であり、例えば、Lucifer、LOKI、MISTY 1、MISTY 2及
びSAFER(Secure And Fast Encryption Routine)といっ
た暗号系に適用してもよい。
【0085】また、上述した実施例では、Sボックスは
置換表を用いて非線形変換を行う要に構成したが、配線
により非線形変換を行うように構成してもよい。
【0086】また、図9に示した実施例では、定数レジ
スタ12i、XOR素子13i、Sボックス14iおよび拡大変換部1
5iからなる変換要素が2セット並列に設けられるように
構成したが、2セット以上の変換要素を並列に設けるよ
うに構成してもよい。
【0087】その他、本発明はその要旨を逸脱しない範
囲で種々変形して実施できる。
【0088】
【発明の効果】以上説明したように本発明によれば、装
置価格や装置規模を抑え、弱鍵の生成を阻止しつつ拡大
鍵の攪拌性を向上でき、もって、暗号強度を向上できる
拡大鍵生成装置、暗復号装置、拡大鍵生成方法、及び記
憶媒体を提供できる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態に係る暗復号装置の構
成を示すブロック図である。
【図2】同実施形態における暗復号装置内の拡大鍵生成
部の構成を示すブロック図である。
【図3】同実施形態における定数レジスタの設定値を説
明するための模式図である。
【図4】同実施形態におけるSボックスの構成を説明す
るための模式図である。
【図5】同実施形態における巡回シフト部の設定を説明
するための模式図である。
【図6】同実施形態におけるラウンド関数の構造を示す
ブロック図である。
【図7】暗復号装置の動作を示すフローチャートであ
る。
【図8】同実施形態における動作を説明するための模式
図である。
【図9】本発明の第2の実施形態に係る拡大鍵生成装置
に適用される鍵変換関数の構成を示すブロック図であ
る。
【図10】本発明の第3の実施形態に係る拡大鍵生成装
置の構成を示すブロック図である。
【図11】同実施形態における置換処理部の設定を説明
するための模式図である。
【図12】図10に示す実施例の動作を示すフローチャ
ートである。
【図13】この発明の拡大鍵生成装置、暗復号装置およ
び記憶媒体を具現化したスマートカードの構成を示す機
能ブロック図である。
【図14】本発明の第4の実施形態に係る暗復号装置を
説明するための模式図である。
【図15】同実施形態における変形例を説明するための
模式図である。
【図16】同実施形態における変形例を説明するための
模式図である。
【図17】同実施形態における変形例を説明するための
模式図である。
【図18】従来の共通鍵暗号の一例としてのDES方式
を説明するためのブロック図である。
【符号の説明】
10…拡大鍵生成部 11〜11…一時鍵レジスタ 12〜12…定数レジスタ 13〜13…XOR素子 14〜14…Sボックス 15〜15…拡大変換部 16〜16…加算部 17〜17n-1…巡回シフト部 18…置換処理部 20…攪拌部 30…暗復号装置 31…記憶素子 32…記録装置 33…ホストコンピュータ 34…DVD 35…DVD−RAM fk1〜fkn…鍵変換関数 R1〜Rn…ラウンド K1〜Kn…拡大鍵 KC…共通鍵 kc1〜kcn-1…鍵変換結果 KA…第1鍵 KB…第2鍵 PC…パソコン NW…ネットワーク
───────────────────────────────────────────────────── フロントページの続き (72)発明者 関部 勉 大阪府門真市大字門真1006番地 松下電 器産業株式会社内 (72)発明者 館林 誠 大阪府門真市大字門真1006番地 松下電 器産業株式会社内 (72)発明者 佐野 文彦 東京都府中市東芝町1番地 株式会社東 芝府中事業所内 (72)発明者 川村 信一 神奈川県川崎市幸区小向東芝町1番地 株式会社東芝研究開発センター内 (56)参考文献 特開 平10−116029(JP,A) 清水明宏,宮口庄司,“高速データ暗 号アルゴリズムFEAL”,電子情報通 信学会論文誌 D,日本,社団法人電子 情報通信学会,1987年 7月20日,Vo l.J70−D,No.7,pp.1413− 1423 (58)調査した分野(Int.Cl.7,DB名) G09C 1/00 G06F 5/00

Claims (22)

    (57)【特許請求の範囲】
  1. 【請求項1】 カスケード接続された複数の鍵変換関数
    部を有し、前記鍵変換関数部は入力された鍵に基づいて
    拡大鍵を生成する拡大鍵生成装置において、 前記各鍵変換関数部は、 前記入力された鍵から得られた第1鍵とラウンド毎に設
    定された定数との排他的論理和を求める排他的論理和手
    段と、 前記排他的論理和手段の出力を所定の置換テーブルを用
    いて非線形変換する非線形変換手段と、 前記非線形変換手段の出力を拡大処理する拡大処理手段
    と、 この拡大処理手段の出力と前記入力された鍵から得られ
    た第2鍵とに基づいてラウンド毎の拡大鍵を算出する拡
    大鍵算出手段と、 を備えたことを特徴とする拡大鍵生成装置。
  2. 【請求項2】 前記各鍵変換関数部は、 入力された鍵を左又は右に巡回シフトさせ、前記巡回シ
    フトの完了した鍵を次ラウンドの鍵変換関数部に入力す
    る巡回シフト手段を備えたことを特徴とする請求項1記
    載の拡大鍵生成装置。
  3. 【請求項3】 前記巡回シフト手段のシフト量は、前記
    非線形変換手段の出力ビット数と互いに素な値であるこ
    とを特徴とする請求項2記載の拡大鍵生成装置。
  4. 【請求項4】 前記拡大処理は、所定ビット数のシフト
    であることを特徴とする請求項1乃至請求項3のいずれ
    か1項に記載の拡大鍵生成装置。
  5. 【請求項5】 前記所定ビット数のシフトは、前記非線
    形変換手段による変換結果のビット数の半分のビット
    数、あるいは前記半分のビット数に前記変換結果のビッ
    ト数の整数倍を加えた値のビット数だけ、当該変換結果
    を左シフトすることにより行うことを特徴とする請求項
    4記載の拡大鍵生成装置。
  6. 【請求項6】 前記拡大鍵算出手段による演算は、桁上
    りを伴う加算である ことを特徴とする請求項1乃至請求
    項5のいずれか1項に記載の拡大鍵生成装置。
  7. 【請求項7】 前記各鍵変換関数部により生成された各
    拡大鍵に基づいてラウンド関数による処理を順次行な
    い、入力された平文を暗号化して暗号文を出力し、且
    つ、入力された暗号文を復号して平文を出力する攪拌部
    を備えたことを特徴とする請求項1乃至請求項6のいず
    れか1項に記載の拡大鍵生成装置を備えた暗復号装置。
  8. 【請求項8】 前記攪拌部は、前記暗号化及び前記復号
    のための複数の置換テーブルを有し、 前記複数の置換テーブルは、前記非線形変換手段の置換
    テーブルと共有されることを特徴とする請求項7に記載
    の暗復号装置。
  9. 【請求項9】 カスケード接続された複数の鍵変換関数
    部を有する拡大鍵生成部を用いて各ラウンド毎の拡大鍵
    を生成する拡大鍵生成方法において、 前記鍵変換関数部の各々が、入力された鍵から得られた
    第1鍵と定数レジスタにラウンド毎に設定された定数と
    の排他的論理和を求め、 前記鍵変換関数部の各々が、前記排他的論理和の算出結
    果を所定の置換テーブルを用いて非線形変換し、 前記鍵変換関数部の各々が、前記非線形変換結果を拡大
    処理し、 前記鍵変換関数部の各々が、前記拡大処理結果と、前記
    入力された鍵から生成された第2鍵とに基づいて拡大鍵
    を算出することを特徴とする拡大鍵生成方法。
  10. 【請求項10】 コンピュータに、カスケード接続され
    た複数の鍵変換関数部を有する拡大鍵生成部を用いて各
    ラウンド毎の拡大鍵を生成させるための拡大鍵生成プロ
    グラムを記憶するコンピュータ読み取り可能な記憶媒体
    において、 前記プログラムは前記コンピュータを、 入力された鍵から得られた第1鍵と定数レジスタにラウ
    ンド毎に設定された定数との排他的論理和を求める前記
    鍵変換関数部における排他的論理和手段、前記排他的論
    理和を所定の置換テーブルを用いて非線形変換する前記
    鍵変換関数部における非線形変換手段、 前記非線形変換結果を拡大処理する前記鍵変換関数部に
    おける拡大処理手段、前記拡大処理結果と、前記入力さ
    れた鍵から生成された第2鍵とに基づいて拡大鍵を算出
    する前記鍵変換関数部における拡大鍵生成手段、 として機能させるためのプログラムであることを特徴と
    する記憶媒体。
  11. 【請求項11】 コンピュータに、カスケード接続され
    た複数の鍵変換関数部を有する拡大鍵生成部を用いて各
    ラウンド毎の拡大鍵を生成させるための拡大鍵生成プロ
    グラムを記憶するコンピュータ読み取り可能な記憶媒体
    において、 前記プログラムは前記コンピュータを、 入力された鍵から得られた第1鍵と定数レジスタにラウ
    ンド毎に設定された定数との排他的論理和を求める前記
    各鍵変換関数部における排他的論理和手段、 前記排他的論理和を所定の置換テーブルを用いて非線形
    変換する前記各鍵変換関数部における非線形変換手段、 前記非線形変換結果を拡大処理する前記各鍵変換関数部
    における拡大処理手段、 前記拡大処理結果と、前記入力された鍵から生成された
    第2鍵とに基づいて拡大鍵を算出する前記各鍵変換関数
    部における拡大鍵生成手段、 前記鍵変換関数部に入力された鍵を左又は右に巡回シフ
    トさせ、前記巡回シフトの完了した鍵を次ラウンドの鍵
    変換関数部に出力する前記各鍵変換関数部における出力
    手段、 として機能させるためのプログラムであることを特徴と
    する記憶媒体。
  12. 【請求項12】 前記出力手段は、前記非線形変換手段
    の非線形変換結果のビット数と互いに素なビット数だけ
    前記鍵を巡回シフトすることを特徴とする請求項11記
    載の記憶媒体。
  13. 【請求項13】 前記拡大処理手段は、前記非線形変換
    結果を所定ビット数シフトすることを特徴とする請求項
    10乃至請求項12のいずれか1項に記載の記憶媒体。
  14. 【請求項14】 前記拡大処理手段は、前記非線形変換
    結果のビット数の半分のビット数、あるいは前記半分の
    ビット数に前記非線形変換結果のビット数の整数倍を加
    えた値のビット数だけ当該変換結果を左シフトすること
    を特徴とする 請求項13記載の記憶媒体。
  15. 【請求項15】 前記拡大鍵生成手段は、前記拡大処理
    結果と前記第2鍵とを桁上りを伴い加算することを特徴
    とする請求項10記載乃至請求項14のいずれか1項に
    記載の記憶媒体。
  16. 【請求項16】 前記プログラムは前記コンピュータ
    を、前記拡大鍵生成手段により生成された各拡大鍵に基
    づいてラウンド関数による攪拌処理を順次行ない、入力
    された平文を暗号化して暗号文を出力し、入力された暗
    号文を復号して平文を出力する前記前記鍵変換関数部に
    おける暗復号手段としてさらに機能させることを特徴と
    する請求項10乃至請求項15のいずれか1項に記載の
    記憶媒体。
  17. 【請求項17】 前記暗復号手段は、前記非線形変換手
    段の置換テーブルと共有されるテーブルを用いて攪拌処
    理を行うことを特徴とする請求項16に記載の記憶媒
    体。
  18. 【請求項18】 各ラウンド毎に異なる鍵が入力されそ
    れぞれ前記鍵に基づいて拡大鍵を生成する、カスケート
    に接続された複数の鍵変換関数部を有し、 前記各鍵変換関数部は複数の並列に配列された拡大変換
    要素を有し、前記各拡大変換要素は、 ラウンド毎に設定された定数を保持する定数レジスタ
    と、 前記定数レジスタに保持された定数と入力された鍵から
    得られる第1鍵との排他的論理和を算出する排他的論理
    和算出手段と、 前記排他的論理和算出手段から出力された値に基づいて
    所定の置換テーブルにより変換処理を行うSボックス
    と、 前記Sボックスから出力された変換結果を拡大変換する
    拡大変換部と、 を有し、 前記複数の拡大変換要素から出力された変換結果と、前
    記入力された鍵から得られる第2鍵とに基づいて拡大鍵
    を算出する拡大鍵算出手段を有したことを特徴とする拡
    大鍵生成装置。
  19. 【請求項19】 コンピュータに、カスケード接続され
    た複数の鍵変換関数部を有し、前記鍵変換関数部は複数
    の並列に配列された拡大変換要素からなる拡 大鍵生成部
    を用いて各ラウンド毎の拡大鍵を生成させるための拡大
    鍵生成プログラムを記憶するコンピュータ読み取り可能
    な記憶媒体において、 前記プログラムは前記コンピュータを、 定数レジスタにラウンド毎に設定された定数と入力され
    た鍵から得られる第1鍵との排他的論理和を算出する前
    記各拡大変換要素における排他的論理和算出手段、 前記排他的論理和算出手段から出力された値に基づいて
    所定の置換テーブルにより変換処理を行う前記各拡大変
    換要素におけるSボックス、 前記Sボックスから出力された変換結果を拡大変換する
    前記各拡大変換要素における拡大変換部、 前記複数の拡大変換要素から出力された変換結果と、入
    力された鍵から得られる第2鍵とに基づいて拡大鍵を算
    出する拡大鍵算出手段、として機能させるためのプログ
    ラムであることを特徴とする記憶媒体。
  20. 【請求項20】 カスケード接続された複数の鍵変換関
    数部を有し、前記鍵変換関数部は入力された鍵に基づい
    て拡大鍵を生成する拡大鍵生成装置において、 前記各鍵変換関数部は、 前記入力された鍵から得られた第1鍵に基づいて所定の
    置換テーブルにより非線形変換処理を行う第1鍵変換手
    段と、 この第1鍵変換手段による変換結果と前記入力された鍵
    から得られた第2鍵とに基づいて前記拡大鍵を算出する
    拡大鍵算出手段と、 入力された鍵を左又は右に巡回シフトさせ、前記巡回シ
    フトの完了した鍵を次ラウンドの鍵変換関数部に入力す
    る巡回シフト手段と、 を備え、 前記巡回シフト手段のシフト量は、前記第1鍵変換手段
    の出力ビット数と互いに素な値であることを特徴とする
    拡大鍵生成装置。
  21. 【請求項21】 カスケード接続された複数の鍵変換関
    数装置を用いて各ラウンド毎の拡大鍵を生成する拡大鍵
    生成方法において、 前記鍵変換関数装置の各々に入力された鍵を記憶装置に
    記憶し、 前記記憶装置に記憶された鍵から得られた第1鍵に基づ
    いて所定の置換テーブルにより非線形変換処理を行い、 この変換処理結果と前記記憶装置に記憶された鍵から得
    られた第2鍵とに基づいて前記拡大鍵を算出し、 前記記憶装置に記憶された鍵を前記変換処理結果のビッ
    ト数と互いに素であるビット数左又は右に巡回シフトさ
    せ、前記巡回シフトの完了した鍵を次ラウンドの鍵変換
    関数部に入力することを特徴とする拡大鍵生成方法。
  22. 【請求項22】 コンピュータに、カスケード接続され
    た複数の鍵変換関数部を有する拡大鍵生成部を用いて各
    ラウンド毎の拡大鍵を生成させるための拡大鍵生成プロ
    グラムを記憶するコンピュータ読み取り可能な記憶媒体
    において、 前記プログラムは前記コンピュータを、 入力された鍵を記憶装置に記憶する前記鍵変換関数部に
    おける記憶手段、 前記記憶手段に記憶された鍵から得られた第1鍵に基づ
    いて所定の置換テーブルにより非線形変換処理を行う前
    記鍵変換関数部における変換処理手段、 前記変換処理手段による変換処理結果と前記記憶装置に
    記憶された鍵から得られた第2鍵とに基づいて前記拡大
    鍵を算出する前記鍵変換関数部における算出手段、 前記記憶装置に記憶された鍵を前記変換処理結果のビッ
    ト数と互いに素であるビット数だけ、左又は右に巡回シ
    フトさせ、前記巡回シフトの完了した鍵を次ラウンドの
    鍵変換関数部に出力する前記鍵変換関数部における出力
    手段、 として機能させるためのプログラムであることを特徴と
    する記憶媒体。
JP2000261098A 1999-08-31 2000-08-30 拡大鍵生成装置、暗復号装置、拡大鍵生成方法、及び記憶媒体 Expired - Lifetime JP3389210B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000261098A JP3389210B2 (ja) 1999-08-31 2000-08-30 拡大鍵生成装置、暗復号装置、拡大鍵生成方法、及び記憶媒体

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP11-244176 1999-08-31
JP24417699 1999-08-31
JP2000261098A JP3389210B2 (ja) 1999-08-31 2000-08-30 拡大鍵生成装置、暗復号装置、拡大鍵生成方法、及び記憶媒体

Publications (2)

Publication Number Publication Date
JP2001142395A JP2001142395A (ja) 2001-05-25
JP3389210B2 true JP3389210B2 (ja) 2003-03-24

Family

ID=26536613

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000261098A Expired - Lifetime JP3389210B2 (ja) 1999-08-31 2000-08-30 拡大鍵生成装置、暗復号装置、拡大鍵生成方法、及び記憶媒体

Country Status (1)

Country Link
JP (1) JP3389210B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3724399B2 (ja) * 2001-01-23 2005-12-07 株式会社日立製作所 疑似乱数生成装置またはそれを用いた暗号復号処理装置
JP4515716B2 (ja) * 2002-04-03 2010-08-04 パナソニック株式会社 拡大鍵生成装置、暗号化装置および暗号化システム
ATE400936T1 (de) * 2004-09-24 2008-07-15 Synaptic Lab Ltd S-boxen
CN101288260A (zh) 2005-01-27 2008-10-15 美商内数位科技公司 使用未由他人分享联合随机衍生秘钥方法及系统
JP4790541B2 (ja) * 2006-08-25 2011-10-12 日本電信電話株式会社 ハッシュ関数回路及びその演算方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
清水明宏,宮口庄司,"高速データ暗号アルゴリズムFEAL",電子情報通信学会論文誌 D,日本,社団法人電子情報通信学会,1987年 7月20日,Vol.J70−D,No.7,pp.1413−1423

Also Published As

Publication number Publication date
JP2001142395A (ja) 2001-05-25

Similar Documents

Publication Publication Date Title
EP1081889B1 (en) Extended key generator, encryption / decryption unit, extended key generation method, and storage medium
US7079651B2 (en) Cryptographic method and apparatus for non-linearly merging a data block and a key
JP4127472B2 (ja) データ変換装置及びデータ変換装置のデータ変換方法及びプログラム及びコンピュータ読み取り可能な記録媒体
JP3679936B2 (ja) 暗復号装置及び記憶媒体
JP3053106B2 (ja) 暗号化処理装置、及び復号化処理装置
KR100362458B1 (ko) 암호화 처리장치, 암호화 처리방법 및 보안성을 손상시키지 않고 고속으로 암호화 처리를 실현하는 암호화 처리 프로그램을 기록하는 기록매체
US6189095B1 (en) Symmetric block cipher using multiple stages with modified type-1 and type-3 feistel networks
JP2003023421A (ja) 暗号方法、そのプログラム、そのプログラムを記録した記録媒体および暗号装置並びに復号方法および復号装置
JP3180836B2 (ja) 暗号通信装置
Joshy et al. Text to image encryption technique using RGB substitution and AES
CN114124359A (zh) 保留格式加密数据的方法、装置、电子设备及存储介质
JP3389210B2 (ja) 拡大鍵生成装置、暗復号装置、拡大鍵生成方法、及び記憶媒体
JPH0697930A (ja) ブロック暗号処理装置
JPH10153954A (ja) 暗号装置
JP3013774B2 (ja) 循環演算にもとづく暗号化装置
JP2000089666A (ja) 暗号化/復号化装置
Usman et al. A data specific comparative study for choosing best cryptographic technique
JP3013777B2 (ja) 循環演算にもとづく暗号の暗号鍵生成装置
JP3371981B2 (ja) ブロック暗号作成装置
JP3242231B2 (ja) 暗号化装置
JPH11212451A (ja) 暗号処理装置
JPH0725436U (ja) ファイル暗号化方式
JPH09274430A (ja) 暗号化・復号化方法及び装置
JPH0830195A (ja) 暗号の拡大鍵生成方法・復号方法及び暗号の拡大鍵生成装置・復号装置
KR980007156A (ko) 비밀키 블록 암호화 및 복호화 방법

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
R150 Certificate of patent or registration of utility model

Ref document number: 3389210

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20080117

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090117

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20100117

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20110117

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20120117

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20130117

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20130117

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20140117

Year of fee payment: 11

EXPY Cancellation because of completion of term