JP2004266486A - 暗号生成装置、暗号復号装置、暗号生成プログラム、暗号復号プログラム、認証システム、電子装置 - Google Patents

暗号生成装置、暗号復号装置、暗号生成プログラム、暗号復号プログラム、認証システム、電子装置 Download PDF

Info

Publication number
JP2004266486A
JP2004266486A JP2003053627A JP2003053627A JP2004266486A JP 2004266486 A JP2004266486 A JP 2004266486A JP 2003053627 A JP2003053627 A JP 2003053627A JP 2003053627 A JP2003053627 A JP 2003053627A JP 2004266486 A JP2004266486 A JP 2004266486A
Authority
JP
Japan
Prior art keywords
chaos
parameter
noise
encryption
parameter sequence
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2003053627A
Other languages
English (en)
Inventor
Hidetoshi Okutomi
秀俊 奥富
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 Information Systems Japan Corp
Original Assignee
Toshiba Information Systems Japan Corp
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 Information Systems Japan Corp filed Critical Toshiba Information Systems Japan Corp
Priority to JP2003053627A priority Critical patent/JP2004266486A/ja
Publication of JP2004266486A publication Critical patent/JP2004266486A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】整数演算によるカオス演算にて暗号の周期長を隠蔽する。
【解決手段】暗号化の鍵データに基づきカオスノイズを発生する写像関数を用いて得たカオスノイズを平文情報に対して適用する演算を行って暗号を生成する暗号生成装置において、前記鍵データに基づいてカオス演算に用いるパラメータ列を生成するパラメータ生成手段102と、このパラメータ生成手段102により生成されたパラメータ列を用いてカオス演算を行い前記カオスノイズを得るカオスノイズ発生手段103と、前記カオスノイズ発生手段により発生されたカオスノイズを用いてパラメータ列に変更を生じさせるようにパラメータ列のスケジューリングを行うスケジューリング手段104Aとを具備する。
【選択図】 図17

Description

【0001】
【発明の属する技術分野】
この発明はカオス演算を伴う演算にて暗号を生成する暗号生成装置、その逆のプロセスにて復号化を行う暗号復号装置、上記暗号生成装置において用いられる暗号生成プログラム、上記暗号復号装置に用いられる暗号復号プログラム、上記暗号生成の手法を用いた認証システム及び電子装置に関するものである。
【0002】
【従来の技術】
従来、カオスを用いた暗号化の場合には浮動小数点演算が用いられるのが通例である。しかしながら、浮動小数点演算を用いると、暗号化を行う装置と暗号の復号化を行う装置との夫々に搭載されるプロセッサの演算特性に差があることから、適切な復号化を行い得ないなどの不具合があった。
【0003】
これに対応するために異機種プロセッサのエミュレーションが考えられるが、これは開発環境の整ったプラットホームのみで実現可能であり、モバイル装置に用いられているCPUや各種電子機器に搭載されているCPUにおいては、係る開発環境が整っているとは言いがたい。
【0004】
そこで、本願発明者は先に整数演算及びビット演算によりカオス演算を行い、浮動小数点コプロセッサに依存しない暗号生成装置等を提案した。
【0005】
【特許文献1】特開2001−285277号公報(全般)
【0006】
【発明が解決しようとする課題】
本発明は上記の提案に係る手法を更に進化させるべくなされたもので、その目的は、整数演算及びビット演算によるカオス演算にて十分な秘匿性のある暗号化を行い得る暗号生成装置と暗号生成プログラムを提供し、またこの暗号化された暗号を適切に復号化することのできる暗号復号装置と暗号復号プログラムを提供し、更に上記暗号化復号化処理とほぼ共通化して、適切に認証を行い得る認証システム及びこのシステムに用いられる電子装置を提供することである。
【0007】
【課題を解決するための手段】
本発明に係る暗号生成装置は、暗号化の鍵データに基づきカオスノイズを発生する写像関数を用いて得たカオスノイズを平文情報に対して適用する演算を行って暗号を生成する暗号生成装置において、前記鍵データに基づいてカオス演算に用いるパラメータ列を生成するパラメータ生成手段と、このパラメータ生成手段により生成されたパラメータ列を用いてカオス演算を行い前記カオスノイズを得るカオスノイズ発生手段と、前記カオスノイズ発生手段により発生されたカオスノイズを用いて前記パラメータ列に変更を生じさせるようにパラメータ列のスケジューリングを行うスケジューリング手段とを具備することを特徴とする。
【0008】
また本発明に係る暗号生成装置は、前記パラメータ列を前記カオスノイズ発生手段へ提供する順序である初期位相を決定する初期位相決定手段を具備することを特徴とする。
【0009】
本発明に係る暗号復号装置は、暗号化の鍵データに基づきカオスノイズを発生する写像関数を用いて得たカオスノイズを平文情報に対して適用する演算を行って暗号を生成する暗号生成装置であって、前記鍵データに基づいてカオス演算に用いるパラメータ列を生成するパラメータ生成手段と、このパラメータ生成手段により生成されたパラメータ列を用いてカオス演算を行い前記カオスノイズを得るカオスノイズ発生手段と、前記カオスノイズ発生手段により発生されたカオスノイズを用いて前記パラメータ列に変更を生じさせるようにパラメータ列のスケジューリングを行うスケジューリング手段とを具備する暗号生成装置を用いて生成した暗号文を復号化して元の平文に戻す暗号復号装置において、前記鍵データに基づいてカオス演算に用いるパラメータ列を生成するパラメータ生成手段と、このパラメータ生成手段により生成されたパラメータ列を用いてカオス演算を行い前記カオスノイズを得るカオスノイズ発生手段と、前記カオスノイズ発生手段により発生されたカオスノイズを用いて前記パラメータ列に変更を生じさせるようにパラメータ列のスケジューリングを行うスケジューリング手段とを具備することを特徴とする。
【0010】
また本発明に係る暗号復号装置は、前記パラメータ列を前記カオスノイズ発生手段へ提供する順序である初期位相を決定する初期位相決定手段を具備することを特徴とする。
【0011】
本発明に係る暗号生成プログラムは、暗号化の鍵データに基づきカオスノイズを発生する写像関数を用いて得たカオスノイズを平文情報に対して適用する演算を行って暗号を生成する暗号生成装置に用いられる暗号生成プログラムにおいて、前記鍵データに基づいてカオス演算に用いるパラメータ列を生成するパラメータ生成ステップと、このパラメータ生成ステップにより生成されたパラメータ列を用いてカオス演算を行い前記カオスノイズを得るカオスノイズ発生ステップと、前記カオスノイズ発生手段により発生されたカオスノイズを用いて前記パラメータ列に変更を生じさせるようにパラメータ列のスケジューリングを行うスケジューリングステップとを具備することを特徴とする。
【0012】
本発明に係る暗号復号プログラムは、暗号化の鍵データに基づきカオスノイズを発生する写像関数を用いて得たカオスノイズを平文情報に対して適用する演算を行って暗号を生成する暗号生成装置であって、前記鍵データに基づいてカオス演算に用いるパラメータ列を生成するパラメータ生成手段と、このパラメータ生成手段により生成されたパラメータ列を用いてカオス演算を行い前記カオスノイズを得るカオスノイズ発生手段と、前記カオスノイズ発生手段により発生されたカオスノイズを用いて前記パラメータ列に変更を生じさせるようにパラメータ列のスケジューリングを行うスケジューリング手段とを具備する暗号生成装置を用いて生成した暗号文を復号化して元の平文に戻す暗号復号装置に用いられる暗号復号プログラムにおいて、前記鍵データに基づいてカオス演算に用いるパラメータ列を生成するパラメータ生成ステップと、このパラメータ生成ステップにより生成されたパラメータ列を用いてカオス演算を行い前記カオスノイズを得るカオスノイズ発生ステップと、前記カオスノイズ発生手段により発生されたカオスノイズを用いて前記パラメータ列に変更を生じさせるようにパラメータ列のスケジューリングを行うスケジューリングステップとを具備することを特徴としている。
【0013】
本発明に係る認証システムは、認証を行う認証装置と、この認証装置に対し認証を要求する認証要求装置とにより構成される認証システムにおいて、前記認証要求装置は、前記認証装置から送られる鍵データと前記認証要求装置が保有する鍵データに基づいてカオス演算に用いるパラメータ列を生成するパラメータ生成手段と、このパラメータ生成手段により生成されたパラメータ列を用いてカオス演算を行い前記カオスノイズを得るカオスノイズ発生手段と、前記カオスノイズ発生手段により発生されたカオスノイズを用いて前記パラメータ列に変更を生じさせるようにパラメータ列のスケジューリングを行うスケジューリング手段とを具備し、前記カオスノイズ発生手段により発生されたカオスノイズを認証子情報として前記認証装置へ返送する一方、前記認証装置は、前記認証要求装置へ送った鍵データと前記認証要求装置が保有する鍵データに基づいてカオス演算に用いるパラメータ列を生成するパラメータ生成手段と、このパラメータ生成手段により生成されたパラメータ列を用いてカオス演算を行い前記カオスノイズを得るカオスノイズ発生手段と、前記カオスノイズ発生手段により発生されたカオスノイズを用いて前記パラメータ列に変更を生じさせるようにパラメータ列のスケジューリングを行うスケジューリング手段とを具備し、前記カオスノイズ発生手段により発生されたカオスノイズを前記認証装置から返送された認証子情報と比較して認証結果を得ることを特徴とする。本発明に係る認証システムは、更に、前記パラメータ列を前記カオスノイズ発生手段へ提供する順序である初期位相を決定する初期位相決定手段を具備することを特徴とする。
【0014】
本発明に係る電子装置は、認証を行う認証装置に対し認証を要求する電子装置において、前記認証装置から送られる鍵データと前記認証要求装置が保有する鍵データに基づいてカオス演算に用いるパラメータ列を生成するパラメータ生成手段と、このパラメータ生成手段により生成されたパラメータ列を用いてカオス演算を行い前記カオスノイズを得るカオスノイズ発生手段と、前記カオスノイズ発生手段により発生されたカオスノイズを用いて前記パラメータ列に変更を生じさせるようにパラメータ列のスケジューリングを行うスケジューリング手段とを具備し、前記カオスノイズ発生手段により発生されたカオスノイズを認証子情報として前記認証装置へ返送することを特徴とする。本発明に係る電子装置は、更に、前記パラメータ列を前記カオスノイズ発生手段へ提供する順序である初期位相を決定する初期位相決定手段を具備することを特徴とする。
【0015】
【発明の実施の形態】
以下添付図面を参照して本発明に係る暗号生成装置、暗号復号装置、暗号生成プログラム、暗号復号プログラム、認証システム、電子装置を説明する。各図において同一の構成要素には同一の符号を付して重複する説明を省略する。まず、本発明の前提となる発明(以下、前提発明)について説明する。図1には、前提発明の暗号生成装置100Aと暗号復号装置100Bとの構成例が示されている。この暗号生成装置100Aと暗号復号装置100Bとは、同一構成であるので、暗号生成装置100Aについて説明を行う。
【0016】
暗号生成装置100Aは、暗号化の鍵データに基づきカオスノイズを発生する写像関数を用いて得たカオスノイズを平文情報207に対して適用する演算を行って暗号を生成するもので、鍵供給手段101、パラメータ生成手段102、カオスノイズ発生手段103及びスケジューリング手段104を備えている。
【0017】
鍵供給手段101は、カオスノイズ生成の源となる鍵データ201を供給するものである。パラメータ生成手段102は、上記鍵データ201に基づいてカオス演算に用いるパラメータ列(初期位相を持ったもの)202を生成するものである。このパラメータ生成手段102は、上記鍵データ201に基づいて鍵固有パラメータ203をも生成する。
【0018】
カオスノイズ発生手段103は、上記パラメータ列202を用いてカオス演算を行い、カオスノイズであるカオス乱数列206を得るものである。このときカオスノイズ発生手段103は整数演算型カオス関数204を用いる。スケジューリング手段104は、カオスノイズ発生手段103におけるカオス演算においてパラメータ列202が用いられる所定周期毎(この実施例では1周期毎)に当該パラメータ列202に変更を生じさせるようにパラメータ列202のスケジューリングを行うものであり、このスケジューリングにおいてパラメータスケジューリング関数205を用いる。
【0019】
上記のカオスノイズ発生手段103により発生されたカオス乱数列206と平文207とは排他的論理和回路105により排他的論理和演算されて暗号文208が得られる。この暗号文208は暗号復号装置100Bに送られ、暗号復号装置100Bにおいて上記暗号生成装置100Aと同様にして生成されたカオス乱数列206と上記暗号文208とは排他的論理和回路105により排他的論理和演算されて平文207へ戻される。
【0020】
上記暗号生成装置100Aと暗号復号装置100Bにおけるカオスノイズ生成の過程においては、整数演算化により対応する。ここでいう整数演算化とは,C言語におけるint 型,long型など整数演算型のみで記述することで、float 型やdouble型など浮動小数点演算型を一切使用しないことである。また、整数演算による浮動小数点演算のソフトウェア的なエミュレーションという意味ではなく、カオス発生構造乃至写像関数自体の整数演算化拡大設計を行うということであり、根本的な処理の整数化を意味する。
【0021】
ここに、整数演算によるカオス発生の根拠は次のとおりである。整数演算化によるカオス発生の根拠および写像関数の整数演算化設計とは、特にロジスティック写像、テント写像、ベルヌーイシフト写像など、写像系のカオスは2次元幾何学的な発生構造を持つことより、これら写像範囲を整数演算可能な範囲に拡大しても幾何学的発生構造は保たれる。これを図2により説明する。図2に示す写像においてx0を出発点とし、そこでの写像関数値y=a x(1−x)からy=x に反射(写像)される。このような単純操作の繰り返し(反復)課程でカオスが発生する。この幾何学構造は、縦横共に拡大しても原理的に保たれる(拡大コピーと同じ)。
【0022】
上記の整数演算化における問題点を説明する。上記カオスの整数演算化において、浮動小数点演算型と比較し、扱える情報量が極端に減少し、計算精度、分解能が落ちる結果となる。これより、カオス状態総数の減少、過去の自己軌道への縮退、これに伴う短周期性が顕著となる。同時に、鍵値として使用可能なカオスパラメータ、初期値の範囲が減少し、十分な鍵長維持には対策が必要となる。
【0023】
係る整数演算化問題点の解決手法は次の通りである。整数演算化では、カオス状態数の減少ないし短周期性が顕著となるが、カオス拡散度数を示すLyapunov(リアプノフ)指数は浮動小数点演算型と同等の領域において同等の正の値を示し、初期条件敏感性、軌道の乱雑性などカオス諸性質は保たれている。図3にロジスティック写像浮動小数点演算での分岐図、図4に整数演算での分岐図を示す。また、図5は浮動小数点演算でのLyapunov指数、図6は整数演算でのLyapunov指数を示す図である。これら図3〜図6から、それぞれ同等のパラメータ領域において同等のカオス性が覗える。
【0024】
そこで、本前提発明では、新たにカオスパラメータを定期的に変動させ、擬似的に長周期化を図る方針を与える。つまり、新たに初期のパラメータ変動パターンを鍵値として起用する。尚、ここではパラメータを定期変動させる関数をパラメータスケジューリング関数(2段部関数)と呼ぶ。
【0025】
本前提発明における暗号生成のための基本構造と暗号復号のための構成は、基本的に既存の同期式カオス暗号方式と同等の構造であるが、既に図1に示されるように、カオス関数が整数演算化設計された独自関数である点と、新たにカオス関数へ渡すパラメータに定期変動を加えるパラメータスケジューリング関数が付加された構造である点が特徴である。
【0026】
次に、上記において用いる整数演算化カオス関数を例示する。
1次の写像関数(変形テント写像型)の設計例
テント写像は、
y = 2 x, (x<0.5) (1−A)
y = 2 (1−x) (x>0.5) (1−B)
で定義される。ただし写像範囲は 0<x <1.0 である。
ここで(1−A),(1−B) 式のy 値(出力)は、次のサイクル計算のx 値(入力)である。 (1−A),(1−B)式に従い、順次y 値列(カオス乱数列)を生成するという単純フィードバック構造である。
テント写像は写像中心軸 x=0.5 を境に対称な直線なので、
x <0.5 の場合 y = 2 x (2−A)
x >0.5 の場合 x = 1 −x の処理後 y = 2 x (2−B)
と記述できる。
ここでは,パラメータパターンを増加するため、以下のようにテント写像を変形する。また、同じくx=0.5 を写像の境目とすると、
x <0.5 の場合 y = a x + b (3−A)
x >0.5 の場合 x = 1 −x の処理後 y = a x + b (3−B)
を考える。係る写像関数を図7に示す。
【0027】
次に整数演算化を考える。ここでは写像範囲
0 <x <2 M (M は正の整数) (4)
のように拡大写像を考え、軸の位置は写像の中心x =Mとする。また、a=A/M ,b=B/M とし、写像関数をf(x)とすると、
Figure 2004266486
(A, B, x, f(x) 値は正の整数、小数点以下切り捨て)
である。係る写像関数を図8に示す。
【0028】
ここで、M を2 のべき乗(M=2 )とした場合、(5−A) 式と(5−B) 式演算部は、
f(x) = (A x) >> K + B (6)
( >> K はK ビット右シフト演算の意味)
のようにビットシフトで表現できる。
具体的にM 値を与えると、例えば32−bit CPUにおいて long int 型(倍精度整数演算型)を用いる場合、M=32768 まで指定可能である。この場合K=15である(M=2 )。
【0029】
ここではA, Bが本前提発明でのカオスパラメータであり、これらに割り当て可能な領域は以下である。
ここでA の範囲は、軌道拡散の条件より、概ね
1 <A / M <2
つまり、 M<A <2 M (7)
を満たす必要がある。
軌道拡散の条件(※1)
軌道拡散の条件は、写像範囲内の全領域で、写像関数の傾きの絶対値が1以上(|f´(x) |>1 )を満たすことである。これより、反復計算毎にリアプノフ指数は常に正(λ>0)となる。
また、関数(6) 式の取りうる最大値は x=Mの時で、最大値が写像範囲 2M 以下でなくてはならないので、
Figure 2004266486
である。
これより、A,B を概ね同程度の範囲とし、並びにA 値は大きいほうが望ましいので、
0 < B ≦ ΔB (ΔB 〜M / 2 ) (9)
L = 2 M −ΔB
L −ΔA ≦ A < L (ΔA 〜M / 2 ) (10)
の関係を得る。
【0030】
32−bitプロセッサ直接演算(多段分割なし)ではM=32768 なので、
ΔA 〜ΔB 〜M / 2 = 16384 (16−bit信号) (11)
程度である。
なお,A 値はできるだけ大きい値がカオスの拡散度の向上につながるため、(9) 式、(10)式よりΔA ,ΔB 値を小さく取れば良いが、それでは取りうるパラメータ総数が小さくなってしまう。そこで、ここでは、
ΔA 〜ΔB = 4096(=2 12) (12)
程度を考える。
【0031】
また、後述のパラメータ可変方式と関連し、
ΔA ,ΔB は同程度の大きさの素数で、ΔA ≠ΔB (13)
の条件より、
ΔA = 4099 (14)
ΔB = 4111 (15)
とした。
(9) ,(10),(14),(15)式より、本例でのパラメータ指定可能範囲は
A : 57326 ≦ A ≦ 61424 (ΔA = 4099) (16)
B : 1 ≦ B ≦ 4111 (ΔB = 4111) (17)
である。
これらA ,B のパラメータ範囲が、後述のパラメータスケジューリング関数で使用可能な可変範囲である。
【0032】
次に(6) 式演算部において精度向上に関する考察を述べる。ここではM=32768=2 15(K=15)なので、(6) 式は
f(x) = (A x) >> 15 + B (18)
である。(18)式では,A ×x の拡大演算後,15−bit右シフトで縮小を行うので下位15−bitの情報が消える。
一方、A の範囲は(16)のように、2 15以上2 16以下のため、15−bitの消し去られた情報が次サイクルの拡大演算課程で1 以上の差につながる場合がある。そこで,15−bit右シフト演算前の下位15−bit情報を記憶しておき,次サイクルの拡大演算課程に有効となるように考慮する。この場合、1 回目のループでは、
xb = 0を代入し、
x2 = A x + ((A xb)>>15) (19−A)
xb = x2 & 15 (19−B)
f(x) = x2 >> 15 + B (19−C)
のように書き下す。((19−C)式の出力f(x)が、次サイクルの(19−A)式の入力x である)
【0033】
ここで、(5−A) ,(5−B) に示した整数演算化設計1次の写像関数(変形テント写像)において、(14),(15)で示すパラメータ可変幅、および(16),(17)で示すパラメータ可変範囲におけるカオス発生の様子を図9の分岐図と図10におけるLyapunov指数の図に示した。尚、図9、図10は、パラメータ固定(パラメータ可変させる前の原のカオス)である。
図9、図10より、整数演算化設計1次の写像関数は、考えるパラメータ範囲内全体にわたって連続したカオス領域を確認できる。
たとえば,図4、図6で示すロジスティック写像は、考えるパラメータ範囲内でカオス領域は不連続であるに対し、設計関数の連続カオス領域はパラメータ可変方式を考える上でもif分岐等が不要など容易な方式が期待できる。
【0034】
2次の写像関数(変形ロジスティック写像型)の設計例
ロジスティック写像の場合、写像範囲の中心(x=0.5) で傾きが1以下の縮小領域が存在する。本方式のような整数演算化において、縮退発生は周期早期化を招く理由より、ロジスティック写像の縮退領域を省き、新たに写像範囲の中心(x=0.5) での傾きが1以上を保つ(写像範囲の中心で1階微分値が不連続になる)関数を設計する。
【0035】
ここで設計する2次関数を
f(x) = a x+ b x + c (20)
とする。
尚、整数演算化拡大した写像範囲を0 <x <2 M とし、ロジスティック写像同様の上に凸(2階微分値が負)の関数を考える。またここでは、特に写像の対称軸をx=M (写像範囲の真ん中)とする。この場合、右側関数(M<x <2M)は、x=2M−x の操作後、左側関数(0 <x <M )と同等になるため、以下では右側関数について述べる。
【0036】
さらに隣接軌道が縮退を起こさない条件(※1)を考慮することより、(20)で与えた関数形は、以下の条件が付されることとなる。
f(M) = h(<2 M ) 最大値条件(h は整数値) (21)
f(0) = 0 最小値条件 (22)
f´(M) = r > 1 傾きが1以上の条件 (23)
a < 0 上に凸 (24)
これらa, b, c についての一般解および条件を整理すると、
a = −(h −M r) / M (25)
b = (2 h − M r) / M (26)
c = 0 (27)
r > 1 (28)
a < 0 (29)
となり、
x >M の場合は x = 2M−x 変換する
f(x) = ((2 h−M r) / M) x −((h −M r) / M) x (30)
1 < r < h / M (31)
と整理される。係る写像関数を図12に示す。
【0037】
尚、ここで、r = R / M (R は整数値) とおき、特にr <2 であること、および(23)の条件より、
x >M の場合は x = 2M−x 変換する
f(x) = ((2h −R) x) / M −((h −R) x) / M (32)
M < R < h < 2 M (33)
を得る(図11参照)。
【0038】
ここでM=2 とした場合,一部ビット演算で記述できる。
また、2次関数の場合、M=32768 (K=15) とした場合、32−bit(unsigned long 型)では多段処理が必要な点、および精度補正を考えると、以下の様に整理される。(ただし1回目のループはxb = 0)
a1 = ((2 h − R) xb) >> K
b1 = ( x) >> K
b2 = ( x) & (M−1)
c1 = (2 x xb) >> K
d1 = ((h − R) (b2+c1)) >> K
sss = (2h − R) x + a1− (h − R) b1 − d1
f(x) = sss >> K
xb = sss & (M−1) (34)
尚、特に精度補正をしない場合(強制的な切り捨て)、
b1 = ( x) >> K
b2 = ( x) & (M−1)
d1 = ((h − R) b2) >> K
sss = (2h − R) x − (h − R) b1 − d1
f(x) = sss >> K (35)
である。
ここで、h, Rがカオスパラメータであり、後述パラメータスケジューリング関数と連結されている。
【0039】
h とR の取り得る範囲は、(33)式の拘束条件を満たす範囲で設定する。また、それぞれの取りうる値の総数Δh ,ΔR はほぼ同数なので
Δh 〜 ΔR 〜 212 (<M / 2 )
とし,Δh ≒ΔR ,および素数を起用(後述)する条件より,
h : 61436 ≦ h ≦ 65534 (Δh = 4099) (36)
R : 57325 ≦ R ≦ 61435 (ΔR = 4111) (37)
のように与えた。
【0040】
ここで、(32)に示した整数演算化設計2次の写像関数(変形ロジスティック写像)において、(36)、(37)で示すパラメータ可変幅、パラメータ可変範囲におけるカオス発生の様子を図15の分岐図と図16のLyapunov指数の図に示した。尚、図15、図16は、パラメータ固定(パラメータ可変させる前の素のカオス)である。
これら図15、図16より整数演算化設計2次の写像関数は、考えるパラメータ範囲内全体にわたって連続したカオス領域を確認できる。たとえば,図4、図6で示すロジスティック写像は、考えるパラメータ範囲内でカオス領域は不連続であるに対し、設計関数の連続カオス領域はパラメータ可変方式を考える上でもif分岐等が不要など容易な方式が期待できる。
【0041】
その他関数系(パラメータ数増加)
2次関数型で1次関数型同様y 切片変位を加える方法
2 次関数型では、1次関数型と同様に、写像範囲の両端(x=0, x=2 M)にy 切片を与えても良い。係る例の写像関数を図12に示す。この場合、新たにy 切片の変位を与えるパラメータが1つ増加し長周期化に寄与する。
【0042】
左右の写像関数を異なる関数型とする方法
ここでは写像範囲の真ん中を対称軸として左右の関数型は同一の関数について説明してきたが、左右で異なる関数型を採用することより、パラメータ数が2倍になる。これより。莫大な長周期化を図ることができる。係る写像関数を図13に示す。
【0043】
写像の軸の変位
ここでは写像範囲の真ん中を対称軸のモデルについて説明してきた。これはビット演算化を意識した理由であるが、例えば図14のように軸を写像中心からずらして与える方法も考えられる。この場合、軸のx 方向の変位を新たなパラメータとして与えることができ長周期化に寄与する。
【0044】
Figure 2004266486
【0045】
Figure 2004266486
Figure 2004266486
【0046】
Figure 2004266486
【0047】
Figure 2004266486
Figure 2004266486
【0048】
Figure 2004266486
Figure 2004266486
【0049】
Figure 2004266486
Figure 2004266486
【0050】
Figure 2004266486
【0051】
1 次の写像関数 <その2>
識別: 4パラメータモード・写像中心軸対象型・左右関数独立操作
基本関数型: y=a x + b
(以下省略)
1 次の写像関数 <その3>
識別: 5パラメータモード・写像軸変動非対称型・左右関数独立操作
基本関数型: y=ax+ b
(以下省略)
などを例示することができる。
【0052】
次に、カオスノイズ発生手段103から出力されるカオス乱数列(乱数値抽出)206の抽出について説明する。ここで、(18)式(精度補正無し)および(19−A),(19−B)式の精度補正対策後のy 値は本件整数演算化カオス関数が1サイクル毎に生成する16−bitカオス信号である。この16−bit信号を元に、1−bit 乱数値抽出、8−bit 乱数値抽出する方法について述べる。この処理は、単なる1−bit と 8−bit乱数値の抽出のみでなく、抽出前のカオス信号値自体の情報隠蔽に寄与するものである。
【0053】
ストリーム暗号の原理は、平文情報の1−bit 単位で暗号化処理(平文とXOR 処理)するものであり、また、1−bit 乱数値抽出の場合は8−bit 乱数値抽出の場合と比較し、系に関するより多くの情報を隠蔽可能であるが、1−bit 乱数値の場合は、8−bit 乱数値の処理の8倍の処理を要する。このため1−bit 単位型か8−bit 単位型かは、別途、処理能力、乱数性度、情報理論的安全性の観点から議論が必要である。ここでは両方式の説明を行う。
【0054】
1−bit乱数値抽出の場合
(その1)
1サイクル毎でのy 値 < Mの場合 : 乱数値=0
1サイクル毎でのy 値 > Mの場合 : 乱数値=1 (38)
とする方法。
(その2)
1サイクル毎のy 値が偶数の場合 : 乱数値=0
1サイクル毎のy 値が奇数の場合 : 乱数値=1 (39)
とする方法。この2つが挙げられる。
【0055】
8−bit乱数値抽出の場合
1サイクル毎でのy 値(16−bit 信号) の下位8−bit 信号を8−bit 乱数値とする。情報論的に考えると上位8−bit の欠如、下位8−bit の欠如のいずれの場合であっても、8−bit 情報が落ちているに変わりないが、物理学的に考えると、上位8−bit が欠如されているということは、有効数値上位8−bit 情報が欠如していることを意味し、大まかな位置の推定情報さえ隠蔽していることを意味する。これに対し、下位ビットの欠如の場合は、上位8−bit のおおまかな位置情報を与えてしまう。これより上位8−bit を故意に情報落ちさせ、下位8−bit を乱数値として採用するのが妥当であると考える。尚、上記に対し、さらにテーブル変換を行う方法も考えられる。テーブル値は鍵値によって異なるものが望ましい。
【0056】
次に、排他的論理和回路105において行われる暗号化処理/復号化処理について説明する。既述の通り、暗号化は、上記より生成した乱数列を平文の8−bit(1−bit)ごとにXOR 処理(排他的論理和)を行い暗号文を得ることにより実現され、また、復号化は、上記より生成した乱数列を暗号文の8−bit(1−bit)ごとにXOR 処理(排他的論理和)を行い平文を得ることにより実現される。暗号化と復号化で対称の構造を持つものである。
【0057】
スケジューリング手段104が用いるパラメータスケジューリング関数205の説明を行う。写像系カオスの2次元幾何学的発生構造は、整数演算範囲に拡大しても、その構造は原理的に保たれる。一方、整数演算型では、扱える数値幅が比較的小さい点、大幅な切捨てが行われる点、縮退発生頻度が高い点、早期周期性が現れる点が問題である。本構成例では、これらをパラメータの定期変動にて解決しようとするもので、その役割を担うのがパラメータスケジューリング関数(カオス関数が1段部関数と言えるのに対し、2段部関数と言える)205である。
【0058】
パラメータスケジューリング関数205の使命は、整数演算化カオス関数の短周期性をパラメータの可変により擬似的に長周期化を図る目的で導入されており、鍵値で与えられたパラメータ列に対し、鍵値パラメータ列の固有性(ユニーク)を維持しつつ可変化させる。従って、整数演算化カオス関数を補助する役割であるため、可能な限りシンプルな構成としたい。ここでは、以下のような可変方式を考える。
【0059】
パラメータ範囲を0 〜6 の7段階とすると、
Figure 2004266486
のように変化させる。
【0060】
上記においては6 回目の反復で、どの初期パラメータから出発しても0となるので、予め初期位相を設けておくなど工夫する。そして、初期位相は鍵値により変動させる。まとめると次のようである。
Figure 2004266486
Param0 : パラメータ基底値
MAX_Param : パラメータ最大値
ここで、Param[ ]は、 1次の写像関数(変形テント写像)2パラメータモードでのA[ ],B[ ]((16),(17))に相当する。同様に、 KEY_Param[ ]は、 KEY_A[ ],KEY_B[ ]に相当する。また、2次の写像関数(変形ロジステック写像)2パラメータモードでのh[ ],R[ ]((36),(37))に相当する。同様に、 KEY_Param[ ]は、 KEY_h[ ],KEY_R[ ]に相当する。
【0061】
次にパラメータスケジューリング関数の設計例を示す。
1次の写像関数におけるパラメータスケジューリング関数の設計例
整数演算化1次の写像関数設計例で示したカオス関数、具体的には(5−A) 、(5−B) で示す1次の写像関数、(14),(15)で示すパラメータ幅、および(16)、(17)で示すパラメータ範囲を用いる場合において、パラメータ可変関数の一例を以下に挙げる。尚、ここでは、パラメータ数は(14)〜(17)で記されるA,B の2つのパラメータを使用する場合である。
可変可能なパラメータ情報は、
(14)より ΔA = 4099
(15)より ΔB = 4111
(16)より 57326 ≦ A ≦ 61424
(17)より 1 ≦ B ≦ 4111 (43)
である。
A0 = 573 (44)
B0 = 1 (45)
とする。
ここで、鍵より鍵固有パラメータ列 KEY_A[ ]、 KEY_B[ ]、およびパラメータ列A[ ]、B[ ]の初期位相が与えられているとし、それぞれの配列数(配列の要素数)をm とすると、
Figure 2004266486
である。ここで、 MAX_A は、パラメータA[ ]の最大値(MAX_A=A0+ΔA−1)、 MAX_B は、パラメータB[ ]の最大値(MAX_B=B0+ΔB−1)である。
尚、鍵値固有パラメータ列 KEY_A[ ],KEY_B[ ]の範囲は以下である。
2801 ≦ KEY_A[ ]≦ 3056 256 階調 (52)
2801 ≦ KEY_B[ ]≦ 3056 256 階調 (53)
【0062】
2次の写像関数におけるパラメータスケジューリング関数の設計例
整数演算化2次の写像関数設計例で示したカオス関数、具体的には(32)で示す2次の写像関数、(36),(37)で示すパラメータ幅、パラメータ範囲を用いる場合において、パラメータ可変関数の一例を以下に挙げる。尚、この例では、パラメータ数は、(36),(37)で記されるh 、R の2つのパラメータを使用する場合である。
【0063】
可変可能なパラメータ情報は,
Figure 2004266486
である。
また、それぞれh ,R の最小値をh0,R0と表し、
h0 = 61436 (55)
R0 = 57325 (56)
とする。
以下は1 次関数でのパラメータスケジューリング関数例と同様である。
鍵より鍵固有パラメータ列 KEY_h[ ],KEY_R[ ],およびパラメータ列h[ ],R[ ]の初期位相が与えられているとし,それぞれの配列数(配列の要素数)をm とすると、
Figure 2004266486
である。ここで、 MAX_h は、パラメータh[ ]の最大値(MAX_h=h0+Δh−1)、 MAX_R は、パラメータR[ ]の最大値(MAX_R=R0+ΔR−1)である。
尚,鍵値固有パラメータ列 KEY_h[ ], KEY_R[ ]の範囲は以下である。
2801 ≦ KEY_h[ ]≦ 3056 256 階調 (63)
2801 ≦ KEY_R[ ]≦ 3056 256 階調 (64)
【0064】
次に、上記の如き整数演算型カオス関数204とパラメータスケジューリング関数205を採用した場合における鍵データの設計及び鍵データ201から初期情報であるパラメータ列202及び鍵固有パラメータ203への変換について説明を行う。本前提発明は、カオス暗号を実現する上で、カオス算出に必要となるパラメータを定期的に変動させる手法を採用するものあり、鍵データ201に基づき鍵固有パラメータ203およびパラメータ列(初期位相)202を提供する。従って、鍵データ201は、採用されるパラメータスケジューリング関数205と密接に関係を有する。
【0065】
既述した1 次の写像関数およびパラメータスケジューリング関数を例に挙げて具体的に説明すると、鍵は鍵固有パラメータ列( KEY_A[ ], KEY_B[ ])およびパラメータ列(A[ ],B[ ])を決定する。即ち、鍵固有パラメータ列( KEY_A[ ], KEY_B[ ])は鍵値固有のパラメータ列であり、入力以降変更されることはない。一方、パラメータ列(A[ ],B[ ])は,実際にカオス算出に寄与するパラメータ列であり、パラメータスケジューリング関数205にて随時更新される。また、更新方法は既に述べたように鍵固有パラメータ列( KEY_A[ ],KEY_B[ ])203を参照し、随時更新される((43)〜(53))。
【0066】
鍵設計例を説明する。鍵は、鍵供給手段101の鍵ファイルから供給されることを前提とした場合、例えば鍵ファイル中には´0´ 〜´9´ ,´A´ 〜´F´ の16階調の1−byte文字列より構成するなどとする。これより、鍵値固有パラメータ( KEY_A[ ], KEY_B[ ])203は鍵ファイル中に記述された文字列より求めるが、その KEY_A[ ], KEY_B[ ]の範囲は(52),(53)より
(52)より 2801 ≦ KEY_A[ ]≦ 3056 256 階調
(53)より 2801 ≦ KEY_B[ ]≦ 3056 256 階調
としたため、
16階調×16階調=256階調より、鍵ファイル中記述の2 文字で KEY_A[ ],もしくは KEY_B[ ]に入力される1つの配列要素を決定する。
【0067】
ここでは、パラメータはA ,B の2つ(2パラメータモード)を考えている。従って4 文字で KEY_A[ ],KEY_B[ ]にそれぞれ1つの要素が決定される。また、これは16−bit暗号に相当する。128−bit 暗号では、128(bit)/8(bit /param)/2(param mode) = 8 より、 KEY_A[ ],KEY_B[ ]はそれぞれ8個の要素数となり、および鍵ファイル中には8 ×2=16文字を必要とする。同様に1024−bit暗号では、1024(bit) /8(bit /param)/2(param mode) = 64より、それぞれ64個の配列要素数、および鍵ファイル中には64×2=128 文字を必要とする。
【0068】
鍵データ201から鍵固有パラメータ203への変換規則の例を説明する。鍵ファイルの文字から鍵固有パラメータ列( KEY_A[ ],KEY_B[ ])203の変換規則は、あらかじめ決められた方法であればいかなる規則でも構わない。例えば、´AB´→´2901´,´9F´→´3041´など変換規則を決定しておく。
【0069】
次にパラメータ列(A[ ],B[ ])202の初期位相決定に関する例を説明する。鍵データ201は鍵固有パラメータ列( KEY_A[ ],KEY_B[ ])203の他に、パラメータスケジューリング関数205にて随時変更されるパラメータ列(A[ ],B[ ])203の初期位相を与える。特に、A[ ]=KEY_A[ ]、B[ ]=KEY_B[ ]と与えても構わないが、この構成例ではカオスを利用する。
【0070】
カオスを利用する場合、既に鍵設計例の欄において記した手法により鍵より KEY_A[ ],KEY_B[ ]を決定した後、まずA[ ]=KEY_A[ ],B[ ]=KEY_B[ ]を代入し、この状態で通常通りカオスを算出する。このカオス算出における反復数をz 回とすると、z 回反復の最後から2 ×m 個分(z −(2×m)+1番目からz 番目まで)のカオス乱数値をA[ ],B[ ]の初期パラメータ列として利用する方法を採用する。これは,後述する「関数の初期助走期間」を兼ねることが可能なことを考慮すると、効率良くランダムな初期位相を生成可能となる。
【0071】
上記初期位相決定の課程では、特にパラメータスケジューリングは行わなくても良い。また、反復数z の値はできるだけ大きいほうが望ましいが、経験上n−bit 暗号の場合ではn /8 〜n /2 程度が妥当である。
【0072】
「カオス関数の初期助走期間」の説明。全ての初期情報(鍵固有パラメータ列203およびパラメータ202(初期位相))が与えられた後、コア部関数は正常に動作可能状態となり、本発明に係るパラメータ可変の方式によるカオス擬似乱数の算出が可能となるが、ここで鍵情報拡散のため、初期のz 回の反復で生成される擬似乱数は捨て、z 回目以降の反復より得られる擬似乱数列を有効とする。z の値はできるだけ大きいほうが望ましいが、前述の通り経験上n−bit 暗号の場合ではn /8 〜n /2 程度が妥当である。この値は本例において、カオス初期条件敏感性により隣接する近傍が写像範囲全体に拡散されるまでの反復回数の試算である。また、パラメータ列( KEY_A[ ],KEY_B[ ])の初期位相決定に関し、後半部説明のカオスを利用する場合、この操作過程中において関数初期助走を兼ねている。
【0073】
上記のようにパラメータスケジューリング関数205を用いる暗号化及び復号化の手法により、十分な秘匿性のある暗号化が可能となった。しかしながら、上記の前提発明においては、鍵情報に基づきパラメータスケジュール関数を用いてパラメータに定期的に変動を加えるものであるから、パラメータの変化パターンが尽きたときが、当該暗号方式の周期長と見做すことができる。従って、如何なる初期条件(暗号鍵)を用いても周期長は論理的に対応する所定値を持つこととなり、限界が存在する。
【0074】
勿論、カオスにおいて周期長の見積もりは困難であり、またパラメータによって周期長は大きく異なる。この特性は、暗号鍵の選択によっては性能(周期長)に大きな偏りが生じることを意味し、改善の余地がある。そこで、本発明では、カオスノイズ発生手段103により発生されたカオスノイズを用いてパラメータ列に変更を生じさせるようにパラメータ列のスケジューリングを行うようにする。つまり、1つ前のサイクルにて算出されたカオスノイズ(カオス乱数列)を当該サイクルにおけるパラメータ変更の情報として用いることにより周期性の隠蔽(無周期性)を確保する。
【0075】
図17には、本発明に係る暗号生成装置100AAと暗号復号装置100BBとが示されている。暗号生成装置100AAと暗号復号装置100BBとは、同一構成であるので、暗号生成装置100AAについて説明を行う。暗号生成装置100AAは前提発明における暗号生成装置100Aを改良したものであり、スケジューリング手段104Aが、カオスノイズ発生手段103により発生されたカオスノイズにより抽出されたカオス乱数列206に基づいてパラメータ列に変更を生じさせるようにパラメータ列のスケジューリングを行うように構成されている。
【0076】
関数形
本発明における関数形について説明する。本発明における暗号化関数をEnc、復号化関数をDecとする。鍵長に依存する配列要素数をmとし、パラメータ可変j周期目i番目の平文をP[i]、暗号文をC[i]、カオス乱数値をrand[i] 、使用するカオスパラメータ列をA[i],B[i](1≦i≦m−1)とすると、暗号化処理は次の形式にて与えられる。(ここでは、A[i],B[i] の2変数(2パラメータモード)の例である。)
C[i]=Enc(P[i],A[i],B[i],rand[i−1])・・・(71)
ただし、パラメータ可変0周期目の先頭データの処理に必要なrand[−1]は任意の固定値(暗号化側と復号化側において、予め取り決めした値)である。また、パラメータ可変j周期目の先頭データの処理に必要なrand[−1]はj−1周期目の最後尾のrand[m−1] である。
【0077】
また、復号化処理は次の形式にて与えられる。
P[i]=Dec(C[i],A[i],B[i],rand[i−1])・・・(72)
ただし、パラメータ可変0周期目の先頭データの処理に必要なrand[−1]は任意の固定値(暗号化側と復号化側において、予め取り決めした値)である。また、パラメータ可変j周期目の先頭データの処理に必要なrand[−1]はj−1周期目の最後尾のrand[m−1] である。
【0078】
上記において、Enc関数とDec関数の第4引数が本発明の効果を与えるものであり、各関数は内においてrand[i−1] がカオス演算に影響を与えるように設計を行う。また、暗号化と復号化の第1番目(先頭)の処理においては、rand[−1]が必要となるが、これについては、上記のように例えば暗号化側と復号化側において、予め取り決めした固定値とするか、暗号鍵を用いて所定演算(暗号化側と復号化側において、予め取り決めした演算)を行い算出することができる。
【0079】
パラメータ変動処理の具体的例では、図18に示されるフローチャートに示す処理が行われる。ここでは、カオスパラメータが2つの場合であり、情報の第i番目のデータに対し定期変更系列によるパラメータ列をA[i]、本発明において採用するランダム変動系列によるパラメータ列をB[i]、1サイクル前に算出されたカオスノイズ値をrand[i−1] 、鍵値より与えられるパラメータ可変情報を KEY_A[ ]、KEY_B[ ]とし、パラメータ最大値を MAX_A 、MAX_B 、パラメータ基底値をA0、B0とする。先ず、1サイクル前にて算出されたカオスノイズ(カオス乱数列)を用いたパラメータ変動を行う条件に該当するかを検出する(S101)。
【0080】
上記ステップS101に用いる条件の例示として、次の2つのいずれかを挙げることができる。
例1:A[i−1]、B[i−1]、rand[i−1] のいずれか1つもしくは複数が、ある所定値の範囲に収まった場合。 (73)
例2:A[i−1]、B[i−1]、rand[i−1] のいずれか1つもしくは複数を参照して、所定演算処理を行い、その結果がある所定値の範囲に収まった場合。 (74)
上記所定演算処理としては、1つ前のパラメータ位相差d[i−1]を求めるための演算d[i−1]=A[i−1]−B[i−1]を挙げることができる。
【0081】
上記ステップS101において、上記例示した条件に該当する場合には、1つ前のカオスノイズ値を用いてパラメータ変動を実行する(S102)。このステップS102においては、定期変動系列のパラメータAについては、
A[i]=A0+fmod(A[i−1]−A0+KEY_A[i],MAX_A) (75)
また、ランダム変動系列のパラメータBについては、次の例1、例2のいずれかを実行する。
Figure 2004266486
【0082】
上記ステップS101において、上記例示した条件に該当しない場合には、1つ前のカオスノイズ値を用いたパラメータ変動は実行せず、予め定めた例えば次のパラメータを用いる処理を実行する(S103)。このステップS103において、定期変動系列のパラメータAについては、既に示した(75)式による処理を行い、ランダム変動系列のパラメータBについては、次の例1、例2のいずれかを実行する。
例1:B[i]=B0+fmod(B[i−1]−B0+KEY_B[i],MAX_B ) (78)
例2:B[i]=B[i−1] (79)
【0083】
上記ステップS102またはステップS103による処理を終了した場合には、カオスノイズ発生の処理(S104)へ進み、カオス関数funcによりカオスノイズ発生等が次の(80)から(83)の式により実行され、ステップS101へと戻って処理が続けられる。
【0084】
X[i]=func(X[i−1],A[i],B[i]) (80)
rand[i]=X[i]の下位ビット抽出 (81)
C[i]=XOR(P[i],rand[i]) (暗号化処理) (82)
P[i]=XOR(C[i],rand[i]) (復号化処理) (83)
【0085】
以上のように本実施例の暗号化及び符号化によって、1つ前のサイクルにて算出されたカオスノイズ(カオス乱数列)を当該サイクルにおけるパラメータ変更の情報として用い、これにより周期性の隠蔽(無周期性)の確保がなされることになる。
【0086】
図19に、本発明に係る認証システムにおける要部である認証子生成部100Cの構成を示す。認証子生成部100Cは、図17に示した暗号生成装置100AAや暗号復号装置100BBと基本的な構成を同一としている。つまり、パラメータ生成手段102、カオスノイズ発生手段103、スケジューリング手段104Aを具備している。
【0087】
また、認証子生成部100Cに特有な構成として、鍵供給手段101C及び認証子出力部106を備える。鍵供給手段101Cは、端末固有鍵データ218と乱数鍵データ219とを組み合わせ鍵データ201を出力するものである。この構成において、組み合わせとしては、端末固有鍵データ218を上位ビット(下位ビット)とし乱数鍵データ219を下位ビット(上位ビット)とする手法や、これらを組み合せる手法等が採用される。
【0088】
上記鍵データ201を用いて、パラメータ生成手段102、カオスノイズ発生手段103及びスケジューリング手段104Aが行う処理は暗号生成装置100AAや暗号復号装置100BBにおける動作と同一であり、カオスノイズ発生手段103からカオス乱数列206が得られる。認証子出力部106は、カオス乱数列206を認証子227として出力する。
【0089】
上記において、認証子生成部100Cがネットワークに設けられるクライアントに適用される場合には、端末固有鍵データ218は予め自装置に固有の情報としてセットされているものであり、乱数鍵データ219はサーバから認証の都度送られてくるものである。これに対して、認証子生成部100Cがネットワークに設けられるサーバに適用される場合には、端末固有鍵データ218は予め所定のクライアントに割り当てたデータとして保持しているものであり、乱数鍵データ219はクライアントからの要求に応じて認証の都度送信したデータである。
【0090】
上記のような構成を含むクライアント(端末(被認証側))とサーバ(認証側)が行う認証手続きが、図20に示されている。これを説明する。端末は認証要求を認証側へ送る(S1)。これを受けた認証側ではID要求を返送し(S2)、これに応えて端末は自装置のIDを送る(S3)。このIDを受けた認証側では、当該IDに基づき端末に対応の端末固有鍵を特定可能となっている。
【0091】
認証側は、乱数鍵を生成してこれを端末へ送信する(S4)。端末は前述の通りに自装置の端末固有鍵と乱数鍵とを認証鍵としてカオスを算出し、認証子を生成してこれを認証側へ送信する(S5)。認証側では、上記ID対応の端末固有鍵と自らが端末へ送信した乱数鍵とを認証鍵としてカオスを算出し、認証子を生成して、この認証子と端末から送られてきた認証子とを比較し、結果(一致の場合には認証OK、不一致の場合には認証NG)を端末へ返送する(S6)。
【0092】
ここで説明した認証子生成部100C、図17において説明した暗号生成装置100AAや暗号復号装置100BBは、全てが1つの電子機器に搭載される。この電子機器とは、パーソナルコンピュータやワークステーションなどの各種コンピュータ、携帯電話機などの携帯端末、ICカード、情報家電機器などである。
【0093】
この電子機器として、パーソナルコンピュータやワークステーションなどのコンピュータの構成を図21に示す。このコンピュータは、装置を統括制御するCPU51を有し、このCPU51に上記CPU51が用いるプログラム及びデータ等の情報が記憶される主記憶装置52が接続されている。更に、CPU51には、システムバス53を介してキーボード制御部54、表示制御部55、プリンタ制御部56、通信インタフェース57、マウス制御部58、磁気ディスク制御部59が接続されている。キーボード制御部54には各種情報をキー入力可能なキーボード入力装置60が接続され、表示制御部55には情報を表示するためのCRT表示装置61が接続され、プリンタ制御部56には情報を印字出力するためのプリンタ装置62が接続され、通信インタフェース57には回線を介してサーバ等との間で通信を行うための通信処理部63が接続され、マウス制御部58にはポインティングディバイスであるマウス64が接続され、磁気ディスク制御部59には補助記憶装置である磁気ディスク装置65が接続されている。なお、ネットワークを介して接続されるサーバには、CPU51、主記憶装置52、磁気ディスク制御部59、磁気ディスク装置65、通信インタフェース57、通信処理部63が少なくとも設けられる。また、このコンピュータには、必要に応じてフロッピーディスクドライブ、磁気カード或いはICカードリーダ、MO(光磁気ディスク)ドライブ等が設けられる。
【0094】
上記のコンピュータにおける磁気ディスクには、図22〜図25に示されるフローチャートのプログラムが記憶され、動作時に主記憶装置52にロードされて実行され、図17に示される暗号生成装置100AA、暗号復号装置100BB及び図19に示される認証子生成部100Cが実現されるので、このフローチャートによる動作を説明する。
【0095】
図22のフローチャートは、全体の概略処理を示すものである。このフローチャートによるプログラムが起動されると、動作モードの検出が行われ、暗号化/復号化モードを行うかまたは認証子生成モードを行うのかの判定を行う(S11)。ここで、暗号化/復号化モードであることを検出すると、前述の如き暗号鍵をファイルから取り出し鍵データとする(S12)。また認証子生成モードであることを検出すると図20に示されるシーケンスを行い、乱数鍵を得て端末固有鍵と組み合せて鍵データとする(S13)。
【0096】
上記ステップS12またはステップS13により鍵データを得ると、パラメータ生成手段102として鍵固有パラメータ203を得ると共に初期値を決定する処理を行い(S14)、次に、鍵の拡散と共にランダム初期位相(パラメータ列)を生成して格納する処理を行う(S15)。このランダム初期位相に基づき、カオスノイズ発生手段103が暗号化/復号化或いは認証子生成を行う(S16)。この暗号化/復号化或いは認証子生成のときにスケジューリング手段104Aがパラメータスケジューリング関数を用いたパラメータスケジューリングを行う。上記ルーチンS14の詳細は図23のフローチャートに示され、ルーチンS15の詳細は図24のフローチャートに示され、ルーチンS16の詳細は図25のフローチャートに示されている。
【0097】
ルーチンS14の詳細を説明する。鍵データ201に基づき鍵長、パラメータ数、パラメータ長、x初期値、初期反復回数を、それぞれn,s,m,x0,zにセットし、鍵固有パラメータ列を予め定められた規則(テーブル等)により得て、 KEY_Param[i](i=0〜m−1)にセットする(S21)。ここに、 KEY_Param[i]は、パラメータ数がs個であるとき、P0[i],P1[i],・・・・,Ps−1[i](0≦i ≦m−1)のように、s個のパラメータ列の組(2次元配列)を意味する。これはS22に登場するParam[i]についても同様である。次の処理では、xにx0をセットすると共に、Param[i]へ KEY_Param[i](i=0〜m−1)をセットし、iとjに0をセットする(S22)。ここで、Param[ ]とは、1次の写像関数(変形テント写像)2パラメータモードでのA[ ],B[ ]((16),(17))に相当する。同様に、 KEY_Param[ ]は、 KEY_A[ ],KEY_B[ ]に相当する。また、2次の写像関数(変形ロジスティック写像)2パラメータモードでのh[ ],R[ ]((16),(17))に相当する。同様に、 KEY_Param[ ]は、 KEY_h[ ],KEY_R[ ]に相当する。
【0098】
次にルーチンS15の詳細を説明する。まず、上記Param[i]を用いてカオス算出を行う(S31)。z回の反復が行われるようにi値の正常確認を行い(S32)、正常であるときにはカオスノイズの情報落ち1バイト乱数をrandにセットする(S33)。次に図の如くqとrの値を変化させて(S34)、ランダム初期位相Phase[r, q/s] に対し、randにセットされている情報落ち1バイト乱数をセットし記録を行う(S35)。
【0099】
次に図の如くiとjの更新を行い(S36)、z回の反復が行われるようにi値の確認を行い(S37)z回の反復が終わると、復旧する。このように、係る処理においては、暗号化部同様の整数演算型カオス関数を用いると共にz回の初期助走期間を実行し、鍵値拡散を行い、z回助走過程で得たカオス乱数値を初期位相として利用するものである。なお、ここの整数演算型カオス関数を用いるカオスノイズ発生においては、パラメータスケジューリングを行わない。
【0100】
次にルーチンS16の詳細を説明する。まず、Param[i]へランダム位相の格納を行い(S41)、iをリセットすると共に初期値rand[−1]として予め決められた固定値をセットして(S42)次のカオス演算に備える。そして、カオス演算を行いカオスノイズを得る(S43)。次にカオスノイズの情報落ち1バイト乱数をrandにセットする(S44)。次に、パラメータスケジューリングを行う(S45)。ここにおいて、パラメータスケジューリングは図17に示したフローチャートに示されるように行われ、暗号化/復号化モードにおいて或いは認証子生成モードにおいて用いるパラメータA、BをParam[i]として得る。そして、動作モードの検出を行い(S46)、暗号化/復号化モードを行うかまたは認証子生成モードを行うのかの判定を行う。ここで、暗号化/復号化モードであることを検出すると、暗号化の場合には平文の1バイトを(復号化の場合には暗号文の1バイトを)取り出し(S47)、randにセットされている情報落ち1バイト乱数との排他的論理和演算により暗号化または復号化を行い(S48)、iを更新して(S49)、全ての平文(または暗号文)の処理を終えたという終了条件(※)の検出を行い(S50)、終了条件が満足されなければ第j周期目の初期値rand[−1]として第j−1周期目の最後尾のカオス乱数値rand[m−1] をセットし(S52)、ステップS43へ戻って処理を続ける。
【0101】
なお、ステップS46において動作モードが認証子生成モードであることを検出すると、randにセットされている情報落ち1バイト乱数を認証子とする(S51)。そして、iを更新して(S49)、終了条件(※)の検出を行い(S50)、終了条件が満足されなければ第j周期目の初期値rand[−1]として第j−1周期目の最後尾のカオス乱数値rand[m−1] をセットし(S52)、ステップS43へ戻って処理を続ける。この認証子生成モードにおける終了条件(※)は、予め定められた認証子のデータ長に達したことである。
【0102】
この構成により、暗号化/復号化の機能と端末認証の機能を有することができる。例えば、Eコマース用のICカードに適用可能である。この場合に本発明の端末認証機能はICカードの個体識別より正しい所有者を特定し、しかるべき金融機関へ決済を促すと共に、個人機密情報の暗号化保持や、通信路を暗号化保持する機能を実現し、これら「認証」+「暗号化」を本プログラムのみで実現可能である。斯して本発明の導入より、簡素化や全体的なシステムの軽量化が狙える。この場合において、本実施例により暗号の周期長の隠蔽が図られ、暗号鍵の推測、カオス軌道予測等をより困難とし安全な取引などを実現する。
【0103】
また、次世代の、ゲーム機器や、情報家電などへのコンテンツ(ゲームソフト、音楽、映画)配信、購買システムとの連携などに対しても同様で、端末識別による所有者の特定より安全なセキュリティ管理を行うことができ、著作権保護目的でのコンテンツ暗号化配信など、配信等がなされるセキュリティ要素を本方式のみで柔軟に解決可能である。この場合において、本実施例により暗号の周期長の隠蔽が図られ、暗号鍵の推測、カオス軌道予測等をより困難とし十分なセキュリティを実現する。
【0104】
【発明の効果】
以上説明したように本発明によれば、鍵データに基づいてカオス演算に用いるパラメータ列を生成し、この生成されたパラメータ列を用いてカオス演算を行い前記カオスノイズを得ると共に、カオス演算において発生されたカオスノイズに基づいてパラメータ列に変更を生じさせるようにパラメータ列のスケジューリングを行うので、暗号の周期長の隠蔽が図られ、暗号鍵の推測、カオス軌道予測等をより困難とし、整数演算及びビット演算によるカオス演算にて十分な秘匿性のある暗号化を行い得る効果がある。更に、暗号化復号化処理とほぼ共通化して、適切に認証を行い得る効果がある。
【図面の簡単な説明】
【図1】本発明の前提発明に係る暗号生成装置及び暗号復号装置の構成を示す図。
【図2】写像系カオスの幾何学的発生構造を示す図。
【図3】浮動小数点演算による分岐図。
【図4】整数演算による分岐図。
【図5】浮動小数点演算によるリアプノフ指数を示す図。
【図6】整数演算によるリアプノフ指数を示す図。
【図7】本発明及び前提発明に係る暗号生成、暗号復号及び認証子作成に用いるカオス関数の一例を示す図。
【図8】本発明及び前提発明に係る暗号生成、暗号復号及び認証子作成に用いるカオス関数の一例を示す図。
【図9】図8のカオス関数を用いた整数演算による分岐図。
【図10】図8のカオス関数を用いた整数演算によるリアプノフ指数を示す図。
【図11】本発明及び前提発明に係る暗号生成、暗号復号及び認証子作成に用いるカオス関数の一例を示す図。
【図12】本発明及び前提発明に係る暗号生成、暗号復号及び認証子作成に用いるカオス関数の一例を示す図。
【図13】本発明及び前提発明に係る暗号生成、暗号復号及び認証子作成に用いるカオス関数の一例を示す図。
【図14】本発明及び前提発明に係る暗号生成、暗号復号及び認証子作成に用いるカオス関数の一例を示す図。
【図15】図11のカオス関数を用いた整数演算による分岐図。
【図16】図11のカオス関数を用いた整数演算によるリアプノフ指数を示す図。
【図17】本発明に係る暗号生成装置及び暗号復号装置の構成を示す図。
【図18】本発明に係る暗号生成装置及び暗号復号装置におけるパラメータスケジューリング動作を説明するためのフローチャート。
【図19】本発明に係る認証システムにおける要部の構成を示す図。
【図20】本発明に係る認証システムにおける動作シーケンスを示す図。
【図21】本発明に係る暗号生成、暗号復号及び認証子作成のプログラムが適用される電子装置の構成図。
【図22】本発明に係る暗号生成、暗号復号及び認証子作成のプログラムによる動作を説明するためのフローチャート。
【図23】本発明に係る暗号生成、暗号復号及び認証子作成のプログラムによる動作を説明するためのフローチャート。
【図24】本発明に係る暗号生成、暗号復号及び認証子作成のプログラムによる動作を説明するためのフローチャート。
【図25】本発明に係る暗号生成、暗号復号及び認証子作成のプログラムによる動作を説明するためのフローチャート。
【符号の説明】
101A、101AA 暗号生成装置
101B、101BB 暗号復号装置
101C 認証子生成部
102 パラメータ生成手段
103 カオスノイズ発生手段
104、104A スケジューリング手段
105 排他的論理和回路
106 認証子出力部

Claims (10)

  1. 暗号化の鍵データに基づきカオスノイズを発生する写像関数を用いて得たカオスノイズを平文情報に対して適用する演算を行って暗号を生成する暗号生成装置において、
    前記鍵データに基づいてカオス演算に用いるパラメータ列を生成するパラメータ生成手段と、
    このパラメータ生成手段により生成されたパラメータ列を用いてカオス演算を行い前記カオスノイズを得るカオスノイズ発生手段と、
    前記カオスノイズ発生手段により発生されたカオスノイズを用いて前記パラメータ列に変更を生じさせるようにパラメータ列のスケジューリングを行うスケジューリング手段と
    を具備することを特徴とする暗号生成装置。
  2. 前記パラメータ列を前記カオスノイズ発生手段へ提供する順序である初期位相を決定する初期位相決定手段を具備することを特徴とする請求項1記載の暗号生成装置。
  3. 暗号化の鍵データに基づきカオスノイズを発生する写像関数を用いて得たカオスノイズを平文情報に対して適用する演算を行って暗号を生成する暗号生成装置であって、前記鍵データに基づいてカオス演算に用いるパラメータ列を生成するパラメータ生成手段と、このパラメータ生成手段により生成されたパラメータ列を用いてカオス演算を行い前記カオスノイズを得るカオスノイズ発生手段と、前記カオスノイズ発生手段により発生されたカオスノイズを用いて前記パラメータ列に変更を生じさせるようにパラメータ列のスケジューリングを行うスケジューリング手段とを具備する暗号生成装置を用いて生成した暗号文を復号化して元の平文に戻す暗号復号装置において、
    前記鍵データに基づいてカオス演算に用いるパラメータ列を生成するパラメータ生成手段と、
    このパラメータ生成手段により生成されたパラメータ列を用いてカオス演算を行い前記カオスノイズを得るカオスノイズ発生手段と、
    前記カオスノイズ発生手段により発生されたカオスノイズを用いて前記パラメータ列に変更を生じさせるようにパラメータ列のスケジューリングを行うスケジューリング手段と
    を具備することを特徴とする暗号復号装置。
  4. 前記パラメータ列を前記カオスノイズ発生手段へ提供する順序である初期位相を決定する初期位相決定手段を具備することを特徴とする請求項3記載の暗号復号装置。
  5. 暗号化の鍵データに基づきカオスノイズを発生する写像関数を用いて得たカオスノイズを平文情報に対して適用する演算を行って暗号を生成する暗号生成装置に用いられる暗号生成プログラムにおいて、
    前記鍵データに基づいてカオス演算に用いるパラメータ列を生成するパラメータ生成ステップと、
    このパラメータ生成ステップにより生成されたパラメータ列を用いてカオス演算を行い前記カオスノイズを得るカオスノイズ発生ステップと、
    前記カオスノイズ発生手段により発生されたカオスノイズを用いて前記パラメータ列に変更を生じさせるようにパラメータ列のスケジューリングを行うスケジューリングステップと
    を具備することを特徴とする暗号生成プログラム。
  6. 暗号化の鍵データに基づきカオスノイズを発生する写像関数を用いて得たカオスノイズを平文情報に対して適用する演算を行って暗号を生成する暗号生成装置であって、前記鍵データに基づいてカオス演算に用いるパラメータ列を生成するパラメータ生成手段と、このパラメータ生成手段により生成されたパラメータ列を用いてカオス演算を行い前記カオスノイズを得るカオスノイズ発生手段と、前記カオスノイズ発生手段により発生されたカオスノイズを用いて前記パラメータ列に変更を生じさせるようにパラメータ列のスケジューリングを行うスケジューリング手段とを具備する暗号生成装置を用いて生成した暗号文を復号化して元の平文に戻す暗号復号装置に用いられる暗号復号プログラムにおいて、
    前記鍵データに基づいてカオス演算に用いるパラメータ列を生成するパラメータ生成ステップと、
    このパラメータ生成ステップにより生成されたパラメータ列を用いてカオス演算を行い前記カオスノイズを得るカオスノイズ発生ステップと、
    前記カオスノイズ発生手段により発生されたカオスノイズを用いて前記パラメータ列に変更を生じさせるようにパラメータ列のスケジューリングを行うスケジューリングステップと
    を具備することを特徴とする暗号復号プログラム。
  7. 認証を行う認証装置と、この認証装置に対し認証を要求する認証要求装置とにより構成される認証システムにおいて、
    前記認証要求装置は、前記認証装置から送られる鍵データと前記認証要求装置が保有する鍵データに基づいてカオス演算に用いるパラメータ列を生成するパラメータ生成手段と、このパラメータ生成手段により生成されたパラメータ列を用いてカオス演算を行い前記カオスノイズを得るカオスノイズ発生手段と、前記カオスノイズ発生手段により発生されたカオスノイズを用いて前記パラメータ列に変更を生じさせるようにパラメータ列のスケジューリングを行うスケジューリング手段とを具備し、前記カオスノイズ発生手段により発生されたカオスノイズを認証子情報として前記認証装置へ返送する一方、
    前記認証装置は、前記認証要求装置へ送った鍵データと前記認証要求装置が保有する鍵データに基づいてカオス演算に用いるパラメータ列を生成するパラメータ生成手段と、このパラメータ生成手段により生成されたパラメータ列を用いてカオス演算を行い前記カオスノイズを得るカオスノイズ発生手段と、前記カオスノイズ発生手段により発生されたカオスノイズを用いて前記パラメータ列に変更を生じさせるようにパラメータ列のスケジューリングを行うスケジューリング手段とを具備し、前記カオスノイズ発生手段により発生されたカオスノイズを前記認証装置から返送された認証子情報と比較して認証結果を得ることを特徴とする認証システム。
  8. 前記パラメータ列を前記カオスノイズ発生手段へ提供する順序である初期位相を決定する初期位相決定手段を更に具備することを特徴とする請求項7記載の認証システム。
  9. 認証を行う認証装置に対し認証を要求する電子装置において、
    前記認証装置から送られる鍵データと前記認証要求装置が保有する鍵データに基づいてカオス演算に用いるパラメータ列を生成するパラメータ生成手段と、
    このパラメータ生成手段により生成されたパラメータ列を用いてカオス演算を行い前記カオスノイズを得るカオスノイズ発生手段と、
    前記カオスノイズ発生手段により発生されたカオスノイズを用いて前記パラメータ列に変更を生じさせるようにパラメータ列のスケジューリングを行うスケジューリング手段とを具備し、
    前記カオスノイズ発生手段により発生されたカオスノイズを認証子情報として前記認証装置へ返送することを特徴とする電子装置。
  10. 前記パラメータ列を前記カオスノイズ発生手段へ提供する順序である初期位相を決定する初期位相決定手段を更に具備することを特徴とする請求項9記載の電子装置。
JP2003053627A 2003-02-28 2003-02-28 暗号生成装置、暗号復号装置、暗号生成プログラム、暗号復号プログラム、認証システム、電子装置 Pending JP2004266486A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003053627A JP2004266486A (ja) 2003-02-28 2003-02-28 暗号生成装置、暗号復号装置、暗号生成プログラム、暗号復号プログラム、認証システム、電子装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003053627A JP2004266486A (ja) 2003-02-28 2003-02-28 暗号生成装置、暗号復号装置、暗号生成プログラム、暗号復号プログラム、認証システム、電子装置

Publications (1)

Publication Number Publication Date
JP2004266486A true JP2004266486A (ja) 2004-09-24

Family

ID=33118180

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003053627A Pending JP2004266486A (ja) 2003-02-28 2003-02-28 暗号生成装置、暗号復号装置、暗号生成プログラム、暗号復号プログラム、認証システム、電子装置

Country Status (1)

Country Link
JP (1) JP2004266486A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008197685A (ja) * 2008-05-19 2008-08-28 Toshiba Information Systems (Japan) Corp 暗号生成装置、暗号復号装置、暗号生成プログラム、暗号復号プログラム
CN100433615C (zh) * 2004-12-06 2008-11-12 华中科技大学 一种基于精度补偿的混沌密码的方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100433615C (zh) * 2004-12-06 2008-11-12 华中科技大学 一种基于精度补偿的混沌密码的方法
JP2008197685A (ja) * 2008-05-19 2008-08-28 Toshiba Information Systems (Japan) Corp 暗号生成装置、暗号復号装置、暗号生成プログラム、暗号復号プログラム

Similar Documents

Publication Publication Date Title
US20210314147A1 (en) Key data processing
CN104380245B (zh) 随机数生成器和流密码
US7174019B2 (en) Cipher generating device, cipher decoding device, cipher generating program, cipher decoding program, authentication system and electronic device
EP4184410A1 (en) Operating system for blockchain iot devices
US8045708B2 (en) Discrete key generation method and apparatus
US6606385B1 (en) Data encrypting/decrypting conversion methods and apparatuses and data communication system adopting the same
JP6884284B2 (ja) キー付きメッセージ認証コードのホワイトボックス計算
JP4818663B2 (ja) 同種写像ベースの署名の生成および検証のためのシステムおよび方法
CN112199697A (zh) 基于共享根密钥的信息处理方法、装置、设备及介质
WO2021124519A1 (ja) 秘密乱数生成システム、秘密計算装置、秘密乱数生成方法、およびプログラム
US8130956B2 (en) Efficient and low power encrypting and decrypting of data
JP2011123356A (ja) 素数生成装置、素数生成方法、及び素数生成プログラム
JP2004266486A (ja) 暗号生成装置、暗号復号装置、暗号生成プログラム、暗号復号プログラム、認証システム、電子装置
CN115529120A (zh) 一种保密计算系统
Vijayakumaran An introduction to bitcoin
JP4150612B2 (ja) 暗号生成装置、暗号復号装置、暗号生成プログラム、暗号復号プログラム
CN114830210A (zh) 秘密随机数生成系统、秘密计算装置、秘密随机数生成方法以及程序
JP2001154580A (ja) 素数生成方法及び装置及び素数生成プログラムを格納した記憶媒体
JP4896076B2 (ja) 暗号生成装置、暗号復号装置、暗号生成プログラム、暗号復号プログラム
Rani et al. Piecewise symmetric magic cube: application to text cryptography
Cheng et al. Novel One‐Dimensional Chaotic System and Its Application in Image Encryption
Pandey et al. Efficient and provably secure intelligent geometrical method of secret key generation for cryptographic applications
JP3881273B2 (ja) 暗号鍵生成装置、暗号鍵生成プログラムおよびそのプログラムを記録した記録媒体
JP2024063185A (ja) 情報処理システム、データ生成装置、データ検証装置、情報処理方法、および情報処理プログラム
CN117332864A (zh) 变量模加运算器、量子点加运算器及密文解密方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050909

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080123

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080205

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080306

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080311

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080729

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080929

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081113

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20081128

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20090403