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

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

Info

Publication number
JP2001142395A
JP2001142395A JP2000261098A JP2000261098A JP2001142395A JP 2001142395 A JP2001142395 A JP 2001142395A JP 2000261098 A JP2000261098 A JP 2000261098A JP 2000261098 A JP2000261098 A JP 2000261098A JP 2001142395 A JP2001142395 A JP 2001142395A
Authority
JP
Japan
Prior art keywords
key
conversion
input
expanded
computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2000261098A
Other languages
English (en)
Other versions
JP3389210B2 (ja
Inventor
Motoji Omori
基司 大森
Kaoru Yokota
薫 横田
Tsutomu Sekibe
勉 関部
Makoto Tatebayashi
誠 館林
Fumihiko Sano
文彦 佐野
Shinichi Kawamura
信一 川村
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 Holdings Corp
Original Assignee
Toshiba 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, 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

Abstract

(57)【要約】 【課題】 本発明は、装置価格や装置規模を抑え、弱鍵
の生成を阻止しつつ拡大鍵の攪拌性を向上でき、もっ
て、暗号強度の向上を図る。 【解決手段】 各鍵変換関数fk1〜fknとしては、
入力された鍵から得られた第1鍵KAに基づいてSボッ
クス14(置換テーブル)により変換処理を行い、加
算部16が、このSボックス14による変換結果を
左シフトさせた値と、入力された鍵から得られた第2鍵
KBとに基づいて拡大鍵K1〜K16を算出する拡大鍵
生成装置、暗復号装置及び記憶媒体。

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に対応する発明
は、各ラウンド毎に異なる鍵が入力され、それぞれ前記
鍵に基づいて拡大鍵を生成する複数の鍵変換関数部がカ
スケードに連結された拡大鍵生成装置であって、前記各
鍵変換関数部としては、前記入力された鍵から得られた
第1鍵に基づいて所定の置換テーブルにより変換処理を
行う第1鍵変換手段と、この第1鍵変換手段による変換
結果と前記入力された鍵から得られた第2鍵とに基づい
て前記拡大鍵を算出する拡大鍵算出手段とを備えた拡大
鍵生成装置である。
【0017】また、請求項2に対応する発明は、請求項
1に対応する拡大鍵生成装置において、前記各鍵変換関
数部としては、入力された鍵を左又は右に巡回シフトさ
せ、前記巡回シフトの完了した鍵を次ラウンドの鍵変換
関数部に入力する巡回シフト手段を備えた拡大鍵生成装
置である。
【0018】さらに、請求項3に対応する発明は、請求
項2に対応する拡大鍵生成装置において、前記巡回シフ
ト手段のシフト量としては、前記第1鍵変換手段の出力
ビット数と互いに素な値である拡大鍵生成装置である。
【0019】また、請求項4に対応する発明は、請求項
1に対応する拡大鍵生成装置において、前記各鍵変換関
数部としては、入力された鍵を置換テーブルにより変換
し、この変換の完了した鍵を次ラウンドの鍵変換関数部
に入力する入力鍵変換手段を備えた拡大鍵生成装置であ
る。
【0020】さらに、請求項5に対応する発明は、請求
項1乃至請求項4のいずれか1項に対応する拡大鍵生成
装置において、前記各鍵変換関数部としては、前記第1
鍵変換手段による変換結果を拡大変換させて前記拡大鍵
算出手段に入力する拡大変換手段を備えた拡大鍵生成装
置である。
【0021】また、請求項6に対応する発明は、請求項
5に対応する拡大鍵生成装置において、前記拡大変換手
段による拡大変換としては、所定ビット数のシフトであ
る拡大鍵生成装置である。
【0022】さらに、請求項7に対応する発明は、請求
項6に対応する拡大鍵生成装置において、所定ビット数
のシフトは、第1鍵変換手段による変換結果のビット数
の半分のビット数、あるいは半分のビット数に変換結果
のビット数の整数倍を加えた値のビット数だけ、当該変
換結果を左シフトすることにより行う拡大鍵生成装置で
ある。
【0023】さらに、請求項8に対応する発明は、請求
項1乃至請求項7のいずれか1項に対応する拡大鍵生成
装置において、前記拡大鍵演算手段による演算として
は、桁上りを伴う加算である拡大鍵生成装置である。
【0024】また、請求項9に対応する発明は、請求項
1乃至請求項8のいずれか1項に対応する拡大鍵生成装
置を備えた暗復号装置において、前記各鍵変換関数部に
より生成された各拡大鍵に基づいて、入力された平文を
暗号化して暗号文を出力し、且つ、入力された暗号文を
復号して平文を出力する攪拌部を備えた暗復号装置であ
る。
【0025】さらに、請求項10に対応する発明は、請
求項9に対応する暗復号装置において、前記攪拌部が、
前記暗号化及び前記復号のための複数の置換テーブルを
有し、前記攪拌部のいずれかの置換テーブルが、前記第
1鍵変換手段の置換テーブルと共有化されている暗復号
装置である。
【0026】また、請求項11に対応する発明は、各ラ
ウンド毎に異なる鍵を入力し、入力された鍵から第1鍵
を生成し、生成された第1鍵を所定の置換テーブルによ
り変換し、変換結果と、入力された鍵から生成された第
2鍵とに基づいて拡大鍵を算出する拡大鍵生成方法であ
る。
【0027】さらに請求項12に対応する発明は、コン
ピュータに、各ラウンド毎に入力された異なる鍵から第
1鍵を生成させ、前記生成された第1鍵を所定の置換テ
ーブルにより変換させ、前記変換結果と前記入力された
鍵から得られる第2鍵とに基づいて拡大鍵を算出させる
ためのプログラムを記憶するコンピュータ読取り可能な
記憶媒体である。
【0028】さらに、請求項13に対応する発明は、コ
ンピュータに、前記入力された鍵を左又は右に巡回シフ
トさせ、前記巡回シフトの完了した鍵を次ラウンドに入
力させるためのプログラムを記憶したコンピュータ読取
り可能記憶媒体である。
【0029】さらに、請求項14に対応する発明は、請
求項13に対応するコンピュータ読取り可能記憶媒体に
おいて、前記巡回シフトのシフト量は前記第1鍵変換の
出力ビット数と互いに素な値であるコンピュータ読取り
可能記憶媒体である。
【0030】さらに、請求項15に対応する発明は、請
求項14に対応するコンピュータ読取り可能記憶媒体に
おいて、コンピュータに、前記入力された鍵を置換テー
ブルにより変換させ、前記変換の完了した鍵を次ラウン
ドに入力させるためのプログラムを記憶したコンピュー
タ読取り可能記憶媒体である。
【0031】さらに、請求項16に対応する発明は、請
求項12に対応するコンピュータ読取り可能記憶媒体に
おいて、コンピュータに、前記第1鍵にもとづく変換結
果を拡大変換させるためのプログラムを記憶したコンピ
ュータ読取り可能記憶媒体である。
【0032】さらに、請求項17に対応する発明は、請
求項12に対応するコンピュータ読取り可能記憶媒体に
おいて、前記拡大変換させる機能は所定ビット数のシフ
トであるコンピュータ読取り可能記憶媒体である。
【0033】さらに、請求項18に対応する発明は、請
求項17に対応するコンピュータ読取り可能記憶媒体に
おいて、前記所定ビット数のシフトは、前記第1鍵変換
に基づく変換結果のビット数の半分のビット数、あるい
は前記半分のビット数に前記変換結果のビット数の整数
倍を加えた値のビット数だけ、当該変換結果を左シフト
することにより行うコンピュータ読取り可能記憶媒体で
ある。
【0034】さらに、請求項19に対応する発明は、請
求項12に対応するコンピュータ読取り可能記憶媒体に
おいて、前記拡大鍵を算出する機能は、桁上がりを伴う
加算であるコンピュータ読取り可能記憶媒体である。
【0035】さらに、請求項20に対応する発明は、コ
ンピュータに、各ラウンド毎に入力された異なる鍵から
第1鍵を生成させ、前記生成された第1鍵を所定の置換
テーブルにより変換させ、前記変換結果と前記入力され
た鍵から得られる第2鍵とに基づいて拡大鍵を算出さ
せ、前記生成された拡大鍵に基づいて入力された平文を
暗号化して出力し、かつ入力された暗号文を復号して平
文を出力する攪拌処理を実行させるためのプログラムを
記憶したコンピュータ読取り可能記憶媒体である。
【0036】さらに、請求項21に対応する発明は、請
求項20に対応するコンピュータ読取り可能記憶媒体に
おいて、前記攪拌処理は、前記暗号化および復号のため
の複数の置換テーブルを有し、前記攪拌処理のいずれか
の置換テーブルは、前記第1鍵に基づく変換に使用され
る置換テーブルと共有化されているコンピュータ読取り
可能記憶媒体である。
【0037】さらに、請求項22に対応する発明は、各
ラウンド毎に異なる鍵が入力されそれぞれ前記鍵に基づ
いて拡大鍵を生成する、カスケートに接続された複数の
鍵変換関数部を有し、前記各鍵変換関数部は複数の並列
に配列された拡大変換要素を有し、前記各拡大変換要素
は、定数を保持する定数レジスタと、前記定数レジスタ
に保持された定数と入力された鍵から得られる第1鍵と
の排他的論理和を算出する排他的論理和算出手段と、前
記排他的論理和算出手段から出力された値に基づいて所
定の置換テーブルにより変換処理を行うSボックスと、
前記Sボックスから出力された変換結果を拡大変換する
拡大変換部とを有し、前記複数の拡大変換要素から出力
された変換結果と、前記入力された鍵から得られる第2
鍵とに基づいて拡大鍵を算出する拡大鍵算出手段を有し
た拡大鍵生成装置である。
【0038】さらに、請求項23に対応する発明は、各
ラウンド毎に異なる鍵が入力され、それぞれ前記鍵に基
づいて拡大鍵を生成する複数の鍵変換関数部がカスケー
ドに連結された拡大鍵生成装置に使用されるコンピュー
タ読取り可能記憶媒体であって、前記拡大鍵生成装置内
のコンピュータに、前記各鍵変換関数部として、各々
が、定数を保持する定数レジスタと、前記定数レジスタ
に保持された定数と入力された鍵から得られる第1鍵と
の排他的論理和を算出する排他的論理和算出手段と、前
記排他的論理和算出手段から出力された値に基づいて所
定の置換テーブルにより変換処理を行うSボックスと、
前記Sボックスから出力された変換結果を拡大変化する
拡大変換部とからなる複数の並列に配列された拡大変換
要素と、前記複数の拡大変換要素から出力された変換結
果と、前記入力された鍵から得られた第2鍵とに基づい
て拡大鍵を算出する拡大鍵算出手段とを実現させるため
のプログラムを記憶したコンピュータ読取り可能記憶媒
体である。
【0039】さらに、請求項24に対応する発明は、各
ラウンド毎に異なる鍵が入力され、それぞれ前記鍵に基
づいて拡大鍵を生成する、カスケードに連結された複数
の鍵変換関数部を有し、前記各鍵変換関数部は、入力さ
れた鍵を非線形的に置換し、その置換結果を出力する置
換処理部と、前記置換処理部から出力された第1鍵に基
づいて所定の置換テーブルにより変換処理を行う第1鍵
変換手段と、前記第1鍵変換手段による変換結果と前記
置換処理部から出力される第1鍵とに基づいて前記拡大
鍵を算出する拡大鍵算出手段と有した拡大鍵生成装置で
ある。
【0040】さらに、請求項25に対応する発明は、各
ラウンド毎に異なる鍵を入力し、入力された鍵を非線形
的に置換し、前記置換により得られる第1鍵を所定の置
換テーブルにより変換し、前記変換結果と前記置換によ
り得られる第2鍵とにもとづいて前記拡大鍵を算出する
拡大鍵生成方法である。
【0041】さらに、請求項26に対応する発明は、コ
ンピュータに、ラウンド毎に入力された異なる鍵から第
1鍵を生成させ、前記入力された鍵を非線形的に置換さ
せ、置換結果を出力させ、前記置換により得られた第1
鍵を所定の置換テーブルにより変換させ、前記変換結果
と前記置換により得られる第2鍵とに基づいて拡大鍵を
算出させるためのプログラムを記憶したコンピュータ読
取り可能記憶媒体である。
【0042】(作用)従って、請求項1、11、12に
対応する発明は以上のような手段を講じたことにより、
各鍵変換関数部としては、第1鍵変換手段が、入力され
た鍵から得られた第1鍵に基づいて所定の置換テーブル
により変換処理を行い、拡大鍵算出手段が、この第1鍵
変換手段による変換結果と入力された鍵から得られた第
2鍵とに基づいて拡大鍵を算出する。
【0043】このように、外部装置を付加しない簡易な
構成を用いており、拡大鍵を生成する際に、置換テーブ
ルによる非線形変換処理を行うため、装置価格や装置規
模を抑え、弱鍵の生成を阻止しつつ拡大鍵の攪拌性を向
上でき、もって、暗号強度を向上させることができる。
【0044】また、請求項2、13に対応する発明は、
各鍵変換関数部としては、巡回シフト手段が、入力され
た鍵を左又は右に巡回シフトさせ、巡回シフトの完了し
た鍵を次ラウンドの鍵変換関数部に入力するので、請求
項1、11、12に対応する作用に加え、容易且つ確実
に、各ラウンドに入力される鍵を互いに相違させること
ができる。
【0045】さらに、請求項3、14に対応する発明
は、巡回シフト手段のシフト量としては、第1鍵変換手
段の出力ビット数と互いに素な値であるので、各ラウン
ドにおけるほぼ全ての第1鍵を互いに相違させることが
でき、請求項2、13に対応する作用をより一層、容易
且つ確実に奏することができる。
【0046】また、請求項4、15に対応する発明は、
各鍵変換関数部としては、入力鍵変換手段が、入力され
た鍵を置換テーブルにより変換し、この変換の完了した
鍵を次ラウンドの鍵変換関数部に入力するので、請求項
1、11、12に対応する作用に加え、容易且つ確実
に、各ラウンドに入力される鍵を互いに相違させること
ができる。
【0047】さらに、請求項5、16に対応する発明
は、各鍵変換関数部としては、拡大変換手段が、第1鍵
変換手段による変換結果を拡大変換させて拡大鍵算出手
段に入力するので、請求項1〜4、12のいずれかに対
応する作用に加え、第1鍵の攪拌作用を拡大鍵の任意の
領域に反映させることができる。
【0048】また、請求項7、18に対応する発明は、
所定ビット数のシフトを、第1鍵変換による変換結果の
ビット数の半分のビット数、あるいは半分のビット数に
変換結果のビット数の整数倍を加えた値のビット数だ
け、変換結果を左シフトすることにより行うので、請求
項6、17に対応する作用を容易且つ確実に奏すること
ができる。
【0049】さらに、請求項8、19に対応する発明
は、拡大鍵演算手段による演算としては、桁上りを伴う
加算であるので、請求項1〜7、12のいずれかに対応
する作用を、容易且つ確実に奏することができる。
【0050】また、請求項9、20に対応する発明は、
攪拌部が、各鍵変換関数部により生成された各拡大鍵に
基づいて、入力された平文を暗号化して暗号文を出力
し、且つ、入力された暗号文を復号して平文を出力する
ので、請求項1〜8のいずれかに対応する拡大鍵生成装
置を備えた暗復号装置を実現することができる。
【0051】さらに、請求項10、21に対応する発明
は、攪拌部が、暗号化及び復号のための複数の置換テー
ブルを有し、攪拌部のいずれかの置換テーブルが、第1
鍵変換手段の置換テーブルと共有化されているので、請
求項9、20に対応する作用に加え、装置規模の縮小化
を図ることができる。
【0052】
【発明の実施の形態】以下、本発明の各実施形態につい
て図面を参照して説明する。
【0053】(第1の実施形態)図1は本発明の第1の
実施形態に係る暗復号装置の構成を示すブロック図であ
り、図2はこの暗復号装置内の拡大鍵生成部の構成を示
すブロック図である。
【0054】この暗復号装置は、パーソナルコンピュー
タやワークステーション等の計算機の暗復号処理部とし
て構成されており、ハードウェア又はソフトウェアによ
って暗号化処理と復号処理を行うものであって、具体的
には、共通鍵からn段の拡大鍵K1〜Knを生成する拡
大鍵生成部10と、拡大鍵生成部10により生成された
拡大鍵K1〜Knを順次各ラウンドR1〜Rnに用いて
暗号化又は復号を行う攪拌部20とを備えている。すな
わち、拡大鍵生成部10及び攪拌部20は、暗号化と復
号に共通して用いられており、ソフトウェアにより暗復
号装置を実現する場合には両者の動作を示すプログラム
が予め記憶媒体からインストールされている。なお、拡
大鍵生成部10及び攪拌部20との間には転置処理等を
設けてもよい。
【0055】ここで、拡大鍵生成部10は、各ラウンド
R1〜Rnに対応し、順にカスケード接続された鍵変換
関数fk1〜fkn(単に鍵変換関数fkともいう)が
設けられている。鍵変換関数fk1〜fknは、共通鍵
KC若しくは中間的な鍵変換結果kc1〜kcn-1が入
力されると、これを変換して得られた拡大鍵K1〜Kn
を攪拌部20のラウンド関数fr1〜frnに出力し、
また別途得られた中間的な鍵変換関数kc1〜kcn-1
を次段の鍵変換関数fk2〜fknに入力する機能をも
っている。
【0056】ここで、鍵変換関数fk1〜fknは、図
2に示すように、一時鍵レジスタ11〜11、定数
レジスタ12〜12、XOR素子13〜13
Sボックス14〜14、拡大変換部15〜1
、加算部16〜16及び巡回シフト部17
17n-1を備えている。なお、最終段の巡回シフト部1
は、次段に鍵変換関数fk(n+1)が無く、不要であ
るため、省略されている。
【0057】一時鍵レジスタ11(但し、1≦i≦
n、以下も同様)は、拡大鍵生成部10に入力された共
通鍵又は前段の鍵変換関数fk(i-1)から入力された中
間的な鍵変換結果を保持するものであり、ここでは、5
6ビットのレジスタが使用されている。
【0058】定数レジスタ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)に示すように保持する定
数のうち、少なくともどれか一つの値を他とは異ならせ
て設定されていれば良い。
【0059】XOR素子13は、一時鍵レジスタ11
内の8ビットのデータからなる第1鍵KAと、定数レ
ジスタ内の定数との排他的論理和を算出し、得られた8
ビットの算出結果をSボックスに入力するものである。
【0060】S(置換:substitution)ボックス14
は、弱鍵(全ての段で同じ拡大鍵)の生成を阻止するた
めのものであり、具体的には、XOR素子13から入
力された8ビットの値を非線形変換し、得られた8ビッ
トの変換結果を拡大変換部15に入力する機能を有す
る。Sボックス14iは、例えば図4に示すように入力
ビットと出力ビットとを置換するための置換テーブルを
使用して非線形の変換を行う。例えば、Sボックス14
iでは、入力ビットが(00000001)である場
合、その(00000001)という情報を2進表現で
あるとみなし、さらにその2進表現を10進表現した値
「1」に変換する。
【0061】そして、図4の置換テーブルを参照し、最
初に出現する「48」を0番目とすると、「1番目」の
要素「54」(10進表現)を決定し、その2進表現で
ある(00110110)を出力ビットとして出力す
る。そのため、入力ビット(00000001)を出力
ビット(00110110)に置換することができる。
【0062】なお、上述のように図4の置換テーブルは
0番〜255番目までの256個の入力に対応した要素
を保持しており、0〜255の値が入力された場合に対
応する0〜255の値を決定する場合に用いられるもの
である。
【0063】また、Sボックス14は、装置規模の縮
小化の観点から、後述するラウンド関数fk内のいずれ
かのSボックスと共有することが好ましい。
【0064】拡大変換部15は、Sボックス14
ら入力された8ビットの変換結果を大きな値に変換する
ものであり、ここでは、8ビットの変換結果を4ビット
だけ左シフトさせるように拡大変換し、下位4ビットに
「0」を埋め込むことにより得られた12ビットの拡大
変換結果を加算部16に入力する機能をもっている。
【0065】なお、拡大変換部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
の任意のビットシフトとしてもよい。
【0066】加算部16は、拡大変換部15から入
力された12ビットの拡大変換結果と、一時鍵レジスタ
11内の32ビットのデータからなる第2鍵KBとを
加算し(桁上りを伴う通常の加算)、得られた加算結果
(32ビット(桁上がりは無視する))をラウンドRi
の拡大鍵Kiとして攪拌部20のラウンド関数friに
入力する機能をもっている。
【0067】なお、一時鍵レジスタ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のビット長を調整可
能である)。
【0068】巡回シフト部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)にも生成可能で
あれば、シフト量及び巡回方向を任意に設定可能であ
る。
【0069】一方、攪拌部20は、夫々ラウンドR1か
らラウンドRnまでのnラウンドの処理において、拡大
鍵生成部10から順に拡大鍵K1〜K16が与えられる
とき、入力された平文を暗号化して暗号文を出力する暗
号化機能を有し、また、拡大鍵生成部10から暗号化と
は逆順に拡大鍵K16〜K1が与えられるとき、入力さ
れた暗号文を復号して平文を出力する復号機能を有して
いる。攪拌部20には、各ラウンドR1〜Rnに対応し
て、順にカスケード接続されたラウンド関数fr1〜f
rnが設けられている。
【0070】ラウンド関数friは、暗号化のとき、平
文又は中間的な暗号化結果を、拡大鍵生成部10から入
力された拡大鍵Kiに基づいて変換し、中間的な暗号化
結果又は暗号文を出力する関数であり、復号のとき、暗
号文又は中間的な復号結果を、拡大鍵生成部10から逆
順に入力された拡大鍵K(n+1-i)に基づいて変換し、中
間的な復号結果又は平文を出力する関数であって、ここ
では一例として図6に示す如きFeistel構造が使用され
ている。
【0071】図6中のFeistel構造は、与えられた2つ
のサブブロックLi,Riからなるデータブロックのう
ち、一方のサブブロックRiを拡大鍵Kiに基づいてF
関数で非線形変換し、この変換結果と他方のサブブロッ
クLiとの排他的論理和をXOR素子21で算出し、こ
の算出結果Ri+1と一方のサブブロックLi+1(=Ri)
との位置を交替して次段に与える、という構成を備えて
いる。
【0072】ここで、F関数は、図6中において、拡大
鍵KとサブブロックRi(又はLi)との排他的論理和
を算出するXOR素子22と、XOR素子22の出力を
4分割して夫々非線形変換する4つのSボックスS1乃
至S4とから構成される。なお、各SボックスS1乃至
S4は、例えば図3に示すような置換テーブルを有する
が、各Sボックスが共通の置換テーブルを持つように構
成してもよいし、それぞれ異なる置換テーブルを持つよ
うに構成してもよい。
【0073】なお、各ラウンド関数frによる変換は、
同じ変換を2回繰り返すと、元のデータが復元されるイ
ンボルーション(involution)という性質をもってい
る。このため、攪拌部20では、平文を拡大鍵K1〜K
16の順に変換して暗号文を生成したとき、この暗号文
を拡大鍵K16〜K1の順に再度変換すると、平文が生
成可能となっている。
【0074】次に、以上のように構成された暗復号装置
の動作を図7に示すフローチャートも参照して説明す
る。暗号化の際には、図1に示すように、入力された共
通鍵KC又は中間的な鍵変換結果kciは、鍵変換関数
fkiにより1ラウンド毎に拡大鍵Kiに変換される。
【0075】詳しくは図8に示すように、鍵変換関数f
kiにおいては、一時鍵レジスタ11から取り出した
8ビットの第1鍵KAと定数レジスタ12内の定数と
の排他的論理和をXOR素子13が算出し(図7のス
テップS1)、この算出結果をSボックス14が非線
形変換する(図7のステップS3)。非線形変換として
は、例えば図4に示した関係で入力と出力とを各ビット
毎に置換する。この置換結果は、拡大変換部15によ
り4ビット左シフト(=16倍)されて加算部16
入力される(図7のステップS5)。
【0076】加算部16は、入力されたシフト結果
(12ビット)と一時鍵レジスタ11 から取り出した
32ビットの第2鍵KBとを加算し、加算結果を32ビ
ットの拡大鍵Kiとして攪拌部20に出力する(図7の
ステップS7)。
【0077】この拡大鍵Kiにおいては、Sボックス1
で変換された8ビットの第1鍵KAが、右(最下位
桁)から5ビット目〜12ビット目に位置する。このビ
ット位置は、第3及び第4のSボックスS3,S4への
入力に対応する。従って、拡大鍵生成部10のSボック
ス14による攪拌作用を攪拌部20の2つのSボック
スS3,S4に反映でき、拡大鍵の攪拌性が向上されて
いる。
【0078】また、攪拌部20では、平文が、各ラウン
ド関数fr1〜frn毎に各拡大鍵K1〜Knに基づい
て変換され、中間的な暗号化結果を経て最終的に暗号文
に変換される。
【0079】一方、復号の際には、拡大鍵生成部10に
おいては、前述同様に共通鍵KCが入力されると、暗号
化時とは逆順に鍵変換処理が行われ、拡大鍵Kn〜K1
が順次、攪拌部20に出力される。
【0080】攪拌部20では、入力された暗号文が、暗
号化時とは逆順の拡大鍵Kn〜K1に基づいて変換さ
れ、中間的な復号結果を経て最終的に平文に変換され
る。
【0081】上述したように本実施形態によれば、各鍵
変換関数fk1〜fknとしては、入力された鍵から得
られた第1鍵KAに基づいてSボックス14(置換テ
ーブル)により非線形変換処理を行い、加算部16
が、このSボックス14による変換結果を左シフト
させた値と、入力された鍵から得られた第2鍵KBとに
基づいて拡大鍵K1〜K16を算出する。
【0082】このように、外部装置を付加しない簡易な
構成を用いており、拡大鍵Kiを生成する際に、置換テ
ーブル(Sボックス14i)による非線形変換処理を行
うため、装置価格や装置規模を抑え、弱鍵の生成を阻止
しつつ拡大鍵の攪拌性を向上でき、もって、暗号強度を
向上させることができる。
【0083】また、各鍵変換関数fkiでは、巡回シフ
ト部17が、入力された鍵を左(又は右)に巡回シフ
トさせ、巡回シフトの完了した鍵を次ラウンドの鍵変換
関数fk(i+1)に入力するので、容易且つ確実に、各ラ
ウンドに入力される鍵を互いに相違させることができ
る。
【0084】さらに、巡回シフト部17のシフト量と
しては、例えば、Sボックス14の出力ビット数と互
いに素な値とした場合、各ラウンドR1〜Rnにおける
ほぼ全ての第1鍵KAを互いに相違させることができ、
前述した効果をより一層、容易且つ確実に得ることがで
きる。
【0085】さらに、各鍵変換関数fkiとしては、拡
大変換部15が、Sボックス14 による変換結果を
拡大変換させて加算部16に入力するので、前述した
効果に加え、第1鍵KAの攪拌作用を拡大鍵Kiの任意
の領域に反映させることができる。
【0086】また、拡大変換部15による拡大変換と
しては、所定ビット数のシフトであるので、前述した効
果を容易且つ確実に得ることができる。
【0087】さらに、攪拌部20が、暗号化及び復号の
ための複数のSボックスS1〜S4を有し、攪拌部20
のいずれかのSボックスが、鍵変換関数fk1〜fkn
のSボックス14と共有化されているので、装置規模
の縮小化を図ることができる。
【0088】また、各鍵変換関数fk1〜fknとして
は、拡大変換部15が、Sボックス14による変換
結果を受けたとき、この変換結果のビット数の半分のビ
ット数、あるいは半分のビット数に変換結果のビット数
の整数倍を加えた値のビット数だけ、当該変換結果を左
シフトさせて加算部16に入力するので、第1鍵KA
の攪拌作用を拡大鍵Kiにて左シフトさせた領域に反映
させることができ、この場合、攪拌部20の複数のSボ
ックスS3,S4に入力される領域に反映させることが
できるので、より一層、暗号強度の向上を図ることがで
きる。
【0089】(第2の実施形態)図9は本発明の第2の
実施形態に係る拡大鍵生成装置に適用される鍵変換関数
の構成を示すブロック図であり、図2と同一部分には同
一符号を付してその詳しい説明を省略し、ここでは異な
る部分についてのみ述べる。なお、以下の各実施形態も
同様にして重複した説明を省略する。
【0090】すなわち、本実施形態は、第1の実施形態
の変形例であり、拡大鍵の攪拌性のより一層の向上を図
るものであり、具体的には図2に示すように、各鍵変換
関数において、前述した定数レジスタ12、XOR素
子13、Sボックス14及び拡大変換部15から
なる変換要素が互いに並列に、一時鍵レジスタ11
加算部16との間に接続されている。
【0091】ここで、2つのSボックス14は、1種
類で設けてもよく、又は複数の種類で設けてもよいが、
複数の種類を用いる場合、共通鍵KCに基づいて拡大鍵
Kiを正順及び逆順の両方で生成可能とする観点から、
前半の鍵変換関数fk1〜fk8と後半の鍵変換関数f
k9〜fk16とでは中央(fk8,9)から上下対称
となるように種類が設けられることが好ましい。
【0092】また、2つの拡大変換部15iは、互いに
同一のシフト量とすることも可能であるが、2つのSボ
ックス14による攪拌効果をより広範囲に反映させる
観点から、互いに異なるシフト量でSボックス14
出力を左シフトさせることが好ましい。この場合、例え
ば一方の拡大変換部15を4ビットの左シフトとし、
他方の拡大変換部15を20ビットの左シフトとする
と、第1鍵KAの攪拌効果を攪拌部20のSボックスS
1〜S4の全てに反映できるので好ましい。
【0093】以上のような構成によれば、第1鍵KAに
よる攪拌性をさらに向上できるので、第1の実施形態の
効果に加え、拡大鍵Kiの攪拌性をより一層向上させる
ことができる。
【0094】(第3の実施形態)図10は本発明の第3
の実施形態に係る拡大鍵生成装置の構成を示すブロック
図である。本実施形態は、第1又は第2の実施形態の変
形形態であり、一時鍵レジスタ11及び巡回シフト部
17に代えて、入力される共通鍵KC又は中間的な鍵
kc1〜kcn-1の各ビットを互いに非線形的に置換
し、得られた中間的な鍵の一部を自己の段のXOR素子
13並びに加算部16に入力すると共に、その中間
的な鍵の全体を次段の置換処理部18(i+1)に入力する
置換処理部18を備えている。
【0095】各置換処理部18は、共通鍵KCに基づ
いて拡大鍵Kiを正順及び逆順の両方で生成可能とする
観点から、共通鍵KCを正順にn回置換した結果が元の
共通鍵KCに等しくなるように夫々設定され、且つラウ
ンド数n=16の場合の例を図11に示すように、暗号
化の際には昇順に変換を行い、復号の際には降順に逆変
換を行うように設定されている。各置換処理部18iの
具体的な処理としては、例えば共通鍵KCを任意のビッ
ト数左にローテートシフトすることにより行われる。
【0096】図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とが加算され、拡大鍵が生
成される。以上のような構成としても、第1又は第2の
実施形態と同様の効果を得ることができ、これに加え、
容易且つ確実に、各鍵変換関数fk1〜fknに入力さ
れる鍵KC,kc1〜KCn-1を互いに相違させること
ができる。
【0097】なお、上記各実施形態では、Sボックス1
の入力側に、定数を排他的論理和するXOR素子1
を設けた場合について説明したが、これに限らず、
XOR素子13を省略し、Sボックス14に代え
て、定数の排他的論理和を算出した後のSボックス14
を設けた構成としても、本発明を同様に実施して同
様の効果を得ることができる。すなわち、例えばKAの
値と定数のとの排他的論理和をあらかじめ計算しておい
て、表の形で保持し、Sボックス14xiがKAの値を
入力パラメータとして表を引き、排他的論理和の算出結
果を得るように構成してもよい。
【0098】図13は、上述したこの発明の拡大鍵生成
装置、暗復号装置及び記憶媒体を具現化した、スマート
カードの構成を示す機能ブロック図である。同図に示す
ようにはスマートカード51は、CPU53、RAM5
5、ROM57、EEPROM59、及びコンタクタ6
1を有する。RAM55は、各種データの記憶や、ワー
クエリアなどに使用される。ROM57は、各種データ
の記憶やプログラムの記憶等に使用される。EEPRO
M59は、上述した図X、Yに示すフローチャートで示
されるプログラム等を記憶する。コンタクタ61は、図
示しないスマートカードリーダ/ライタとの電気的接触
を得る。なお、図7および12に示すプログラムは、E
EPROM59の代わりに、RAM55あるいはROM
57に記憶するようにししてもよい。(第4の実施形
態)次に、本発明の第4の実施形態に係る暗復号装置に
ついて図14を用いて説明する。この暗復号装置30
は、第1乃至第3の実施形態のいずれかで述べた構成を
有し、例えば画像データや音楽データ等のディジタル情
報(以下、生データという)を保護するためのものであ
る。
【0099】係る暗復号装置30は、例えば図14に示
すように、記憶媒体からプログラムがインストールされ
ることにより、パーソナルコンピュータ(以下、パソコ
ンという)PCに実現されているとする。ここで、暗復
号装置30は、例えばユーザIDを共通鍵とし、パソコ
ンPCに入力された生データを暗号化し、得られた暗号
化データ(前述した暗号文に相当)を携帯可能な記憶素
子31に記憶させる。この種の記憶素子31としては、
スマートカード、スマートメディア又はメモリカードな
どがある。
【0100】この記憶素子31がユーザ宅へ配布され、
ユーザ宅内の図示しない暗復号装置は、自己のユーザI
Dに基づいて記憶素子31内の暗号化データを復号し、
得られた画像データや音楽データをスピーカ等から再生
出力させる。これにより、例えば予め契約したユーザの
みに生データ(コンテンツ)を配布することができる。
【0101】また、本実施形態は、以下のように種々変
形可能となっている。例えば、図15に示すように、パ
ソコンPCに代えて、例えばハードウェア回路からなる
暗復号装置30を備えた記録装置32を設けた構成であ
る。この構成によれば、コンテンツを記憶素子31に書
込む際に、暗復号装置30がユーザID等により生デー
タを暗号化して記憶素子31に記憶させる。宅配から復
号に至る過程は、前述した通りである。このように、パ
ソコンPC等の汎用のコンピュータでなくとも、専用の
記録装置32に暗復号装置30を設けた構成としてもよ
い。
【0102】また、図16に示すように、暗復号装置3
0を設けたホストコンピュータ33が、ネットワークN
Wを介してパソコンPCに接続された構成としてもよ
い。この場合、ホストコンピュータ33からダウンロー
ドされた暗号化データがパソコンPCを介して暗号化さ
れた状態で記憶素子32に記憶される。宅配から復号に
至る過程は、前述した通りである。この変形例によれ
ば、前述した効果に加え、ネットワークNW上でのコン
テンツ(生データ)の盗聴などを防止することができ
る。
【0103】さらに、図17に示すように、記憶素子を
例えばDVD(digital versatiledisc)としてもよ
い。図17(a)に示す場合、予め暗号化データが格納
されたDVD34がユーザに頒布される。ユーザ宅の暗
復号装置30は、DVD34内の暗号化データを復号
し、得られた画像データや音楽データをスピーカ等から
再生出力させる。
【0104】また、図17(b)に示す場合、画像や音
楽等の生データがユーザ宅の暗復号装置30によって所
定の共通鍵を用いて暗号化され、得られた暗号化データ
がDVD−RAM35に格納される。この暗号化データ
は、ユーザにより設定された所定の共通鍵により復号さ
れるが、共通鍵が知られない限り、他人には復号されな
い。従って、趣味的な画像データや音楽データなどを他
人から保護しつつ保存することができる。
【0105】(他の実施形態)尚、本発明における拡大
鍵生成装置及び暗復号装置の処理を実現させるためのプ
ログラムが記憶された記憶媒体としては、磁気ディス
ク、フロッピー(登録商標)ディスク、ハードディス
ク、光ディスク(CD−ROM、CD−R、DVD
等)、光磁気ディスク(MO等)、半導体メモリ等が適
用可能である。実際には、プログラムを記憶でき、かつ
コンピュータが読み取り可能な記憶媒体であれば、その
記憶形式は何れの形態であっても良い。
【0106】また、記憶媒体からコンピュータにインス
トールされたプログラムの指示に基づきコンピュータ上
で稼働しているOS(オペレーティングシステム)や、
データベース管理ソフト、ネットワークソフト等のMW
(ミドルウェア)等が本実施形態を実現するための各処
理の一部を実行しても良い。
【0107】さらに、本発明における記憶媒体は、コン
ピュータと独立した媒体に限らず、LANやインターネ
ット等により伝送されたプログラムをダウンロードして
記憶または一時記憶した記憶媒体も含まれる。
【0108】また、記憶媒体は1つに限らず、複数の媒
体から本実施形態における処理が実行される場合も本発
明における記憶媒体に含まれ、媒体構成は何れの構成で
あっても良い。
【0109】尚、本発明におけるコンピュータは、記憶
媒体に記憶されたプログラムに基づき、本実施形態にお
ける各処理を実行するものであって、パソコン等の1つ
からなる装置、複数の装置がネットワーク接続されたシ
ステム等の何れの構成であっても良い。
【0110】また、本発明におけるコンピュータとは、
パソコンに限らず、情報処理機器に含まれる演算処理装
置、マイコン等も含み、プログラムによって本発明の機
能を実現することが可能な機器、装置を総称している。
【0111】また、本発明は、DES暗号系に限らず、
ラウンド関数を用いるブロック暗号系であれば適用可能
であり、例えば、Lucifer、LOKI、MISTY 1、MISTY 2及
びSAFER(Secure And Fast Encryption Routine)といっ
た暗号系に適用してもよい。
【0112】また、上述した実施例では、Sボックスは
置換表を用いて非線形変換を行う要に構成したが、配線
により非線形変換を行うように構成してもよい。
【0113】また、図9に示した実施例では、定数レジ
スタ12i、XOR素子13i、Sボックス14iおよび拡大変換部1
5iからなる変換要素が2セット並列に設けられるように
構成したが、2セット以上の変換要素を並列に設けるよ
うに構成してもよい。
【0114】その他、本発明はその要旨を逸脱しない範
囲で種々変形して実施できる。
【0115】
【発明の効果】以上説明したように本発明によれば、装
置価格や装置規模を抑え、弱鍵の生成を阻止しつつ拡大
鍵の攪拌性を向上でき、もって、暗号強度を向上できる
拡大鍵生成装置、暗復号装置、拡大鍵生成方法、及び記
憶媒体を提供できる。
【図面の簡単な説明】
【図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)発明者 館林 誠 大阪府門真市大字門真1006番地 松下電器 産業株式会社内 (72)発明者 佐野 文彦 東京都府中市東芝町1番地 株式会社東芝 府中事業所内 (72)発明者 川村 信一 神奈川県川崎市幸区小向東芝町1番地 株 式会社東芝研究開発センター内

Claims (26)

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

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003037482A (ja) * 2001-01-23 2003-02-07 Hitachi Ltd 疑似乱数生成装置またはそれを用いた暗号復号処理装置
JP2004004603A (ja) * 2002-04-03 2004-01-08 Matsushita Electric Ind Co Ltd 拡大鍵生成装置、暗号化装置および暗号化システム
JP2008052130A (ja) * 2006-08-25 2008-03-06 Nippon Telegr & Teleph Corp <Ntt> ハッシュ関数回路及びその演算方法
JP2008514975A (ja) * 2004-09-24 2008-05-08 シナプティック ラボラトリーズ リミテッド sボックス
JP2011217415A (ja) * 2005-01-27 2011-10-27 Interdigital Technology Corp 無線通信ネットワークにおける完全に秘密の鍵の生成

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003037482A (ja) * 2001-01-23 2003-02-07 Hitachi Ltd 疑似乱数生成装置またはそれを用いた暗号復号処理装置
JP2004004603A (ja) * 2002-04-03 2004-01-08 Matsushita Electric Ind Co Ltd 拡大鍵生成装置、暗号化装置および暗号化システム
JP4515716B2 (ja) * 2002-04-03 2010-08-04 パナソニック株式会社 拡大鍵生成装置、暗号化装置および暗号化システム
JP2008514975A (ja) * 2004-09-24 2008-05-08 シナプティック ラボラトリーズ リミテッド sボックス
JP2011217415A (ja) * 2005-01-27 2011-10-27 Interdigital Technology Corp 無線通信ネットワークにおける完全に秘密の鍵の生成
US9130693B2 (en) 2005-01-27 2015-09-08 Interdigital Technology Corporation Generation of perfectly secret keys in wireless communication networks
JP2008052130A (ja) * 2006-08-25 2008-03-06 Nippon Telegr & Teleph Corp <Ntt> ハッシュ関数回路及びその演算方法

Also Published As

Publication number Publication date
JP3389210B2 (ja) 2003-03-24

Similar Documents

Publication Publication Date Title
KR100402811B1 (ko) 확대키 생성기, 암호/복호 장치, 확대키 생성 방법 및기억 매체
EP0839418B1 (en) Cryptographic method and apparatus for non-linearly merging a data block and a key
JP3679936B2 (ja) 暗復号装置及び記憶媒体
JP4127472B2 (ja) データ変換装置及びデータ変換装置のデータ変換方法及びプログラム及びコンピュータ読み取り可能な記録媒体
KR100362458B1 (ko) 암호화 처리장치, 암호화 처리방법 및 보안성을 손상시키지 않고 고속으로 암호화 처리를 실현하는 암호화 처리 프로그램을 기록하는 기록매체
JP2003023421A (ja) 暗号方法、そのプログラム、そのプログラムを記録した記録媒体および暗号装置並びに復号方法および復号装置
KR19990002840A (ko) 차분 해독법과 선형 해독법에 대해서 안전성을 보장하는 고속 블럭 암호 알고리즘
Asaad et al. Advanced Encryption Standard Enhancement with Output Feedback Block Mode Operation
JP3769804B2 (ja) 解読化方法および電子機器
JP3389210B2 (ja) 拡大鍵生成装置、暗復号装置、拡大鍵生成方法、及び記憶媒体
Soe et al. Performance analysis of data encryption standard (DES)
Lee et al. Design and evaluation of a block encryption algorithm using dynamic-key mechanism
Singh et al. Study & analysis of cryptography algorithms: RSA, AES, DES, T-DES, blowfish
Kumari et al. An RTL Implementation of the Data Encryption Standard (DES)
JPH09269727A (ja) 暗号化方法および暗号化装置
JPH10153954A (ja) 暗号装置
Labbi et al. Symmetric encryption algorithm for RFID systems using a dynamic generation of key
JP2000089666A (ja) 暗号化/復号化装置
JP3587763B2 (ja) 暗号化装置,復号装置,暗号通信システム及び記録媒体
Usman et al. A data specific comparative study for choosing best cryptographic technique
JP3017725B2 (ja) データ変換装置
JP3013774B2 (ja) 循環演算にもとづく暗号化装置
Özkaynak et al. Fast software implementation of des for lightweight platforms
Hattab et al. Developing the Complexity and Security of the Twofish Algorithm Through a New Key Scheduling Design
JPH11212451A (ja) 暗号処理装置

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