説明

暗号生成装置、暗号復号装置、暗号生成プログラム、暗号復号プログラム

【課題】平文と暗号文の1ペアから、他の暗号文の解読を不可能にする。
【解決手段】鍵データに基づいてカオス演算に用いるパラメータ列を生成するパラメータ生成手段102と、生成されたパラメータ列を用いてカオス演算を行いカオスノイズを得るカオスノイズ発生手段103と、カオスノイズを平文情報に対して適用する演算を行って暗号文を得る排他的論理和回路105と、排他的論理和回路105により得られる暗号文を前記カオスノイズ発生手段103へフィードバックするフィードバック経路とを具備し、前記カオスノイズ発生手段103においてはフィードバックされた暗号文に基づきカオス演算を行いカオスノイズを得る。

【発明の詳細な説明】
【技術分野】
【0001】
この発明はカオス演算を伴う演算にて暗号を生成する暗号生成装置、その逆のプロセスにて復号化を行う暗号復号装置、上記暗号生成装置において用いられる暗号生成プログラム、上記暗号復号装置に用いられる暗号復号プログラムに関するものである。
【背景技術】
【0002】
従来、カオスを用いた暗号化の場合には浮動小数点演算が用いられるのが通例である。しかしながら、浮動小数点演算を用いると、暗号化を行う装置と暗号の復号化を行う装置との夫々に搭載されるプロセッサの演算特性に差があることから、適切な復号化を行い得ないなどの不具合があった。
【0003】
これに対応するために異機種プロセッサのエミュレーションが考えられるが、これは開発環境の整ったプラットホームのみで実現可能であり、モバイル装置に用いられているCPUや各種電子機器に搭載されているCPUにおいては、係る開発環境が整っているとは言いがたい。
【0004】
そこで、本願発明者は先に整数演算及びビット演算によりカオス演算を行い、浮動小数点コプロセッサに依存しない暗号生成装置等を提案した。
【0005】
【特許文献1】特開2001−285277号公報(全般)
【発明の開示】
【発明が解決しようとする課題】
【0006】
本発明は上記の提案に係る手法を更に進化させるべくなされたもので、その目的は、整数演算及びビット演算によるカオス演算にて十分な秘匿性のある暗号化を行い得る暗号生成装置と暗号生成プログラムを提供し、またこの暗号化された暗号を適切に復号化することのできる暗号復号装置と暗号復号プログラムを提供することである。
【課題を解決するための手段】
【0007】
本発明に係る暗号生成装置は、暗号化の鍵データに基づきカオスノイズを発生する写像関数を用いて得たカオスノイズを平文情報に対して適用する演算を行って暗号を生成する暗号生成装置において、前記鍵データに基づいてカオス演算に用いるパラメータ列を生成するパラメータ生成手段と、このパラメータ生成手段により生成されたパラメータ列を用いてカオス演算を行い前記 カオスノイズを得るカオスノイズ発生手段と、前記カオスノイズ発生手段により発生されたカオスノイズを平文情報に対して適用する演算を行う演算部と、この演算部により得られる暗号文を前記カオスノイズ発生手段へフィードバックするフィードバック経路とを具備し、前記カオスノイズ発生手段においてはフィードバックされた暗号文に基づきカオス演算を行い前記カオスノイズを得ることを特徴とする。
【0008】
本発明に係る暗号復号装置は、暗号化の鍵データに基づきカオスノイズを発生する写像関数を用いて得たカオスノイズを平文情報に対して適用する演算を行って暗号を生成する暗号生成装置であって、前記鍵データに基づいてカオス演算に用いるパラメータ列を生成するパラメータ生成手段と、このパラメータ生成手段により生成されたパラメータ列を用いてカオス演算を行い前記カオスノイズを得るカオスノイズ発生手段と、前記カオスノイズ発生手段により発生されたカオスノイズを平文情報に対して適用する演算を行って暗号文を得る演算部と、この演算部により得られる暗号文を前記カオスノイズ発生手段へフィードバックするフィードバック経路とを具備し、前記カオスノイズ発生手段においてはフィードバックされた暗号文に基づきカオス演算を行い前記カオスノイズを得る暗号生成装置を用いて生成した暗号文を復号化して元の平文に戻す暗号復号装置において、前記鍵データに基づいてカオス演算に用いるパラメータ列を生成するパラメータ生成手段と、このパラメータ生成手段により生成されたパラメータ列を用いてカオス演算を行い前記カオスノイズを得るカオスノイズ発生手段と、前記カオスノイズ発生手段により発生されたカオスノイズを暗号文情報に対して適用する演算を行って平文を得る演算部と、この演算部へ与える暗号文を前記カオスノイズ発生手段へ送出する経路とを具備し、前記カオスノイズ発生手段においてはフィードバックされた暗号文に基づきカオス演算を行い前記カオスノイズを得ることを特徴とする。
【0009】
本発明に係る暗号生成プログラムは、暗号化の鍵データに基づきカオスノイズを発生する写像関数を用いて得たカオスノイズを平文情報に対して適用する演算を行って暗号を生成するコンピュータを有する暗号生成装置に用いられる暗号生成プログラムにおいて、 前記コンピュータを、前記鍵データに基づいてカオス演算に用いるパラメータ列を生成するパラメータ生成手段と、このパラメータ生成手段により生成されたパラメータ列を用いてカオス演算を行い前記カオスノイズを得るカオスノイズ発生手段と、前記カオスノイズ発生手段により発生されたカオスノイズを平文情報に対して適用する演算を行って暗号文を得る演算手段と、この演算手段により得られる暗号文を前記カオスノイズ発生手段へフィードバックし、前記カオスノイズ発生手段においてはフィードバックされた暗号文に基づきカオス演算を行い前記カオスノイズを得る手段として機能させることを特徴とする。
【0010】
本発明に係る暗号復号プログラムは、暗号化の鍵データに基づきカオスノイズを発生する写像関数を用いて得たカオスノイズを平文情報に対して適用する演算を行って暗号を生成する暗号生成装置であって、前記鍵データに基づいてカオス演算に用いるパラメータ列を生成するパラメータ生成手段と、このパラメータ生成手段により生成されたパラメータ列を用いてカオス演算を行い前記カオスノイズを得るカオスノイズ発生手段と、前記カオスノイズ発生手段により発生されたカオスノイズを平文情報に対して適用する演算を行って暗号文を得る演算部と、この演算部により得られる暗号文を前記カオスノイズ発生手段へフィードバックするフィードバック経路とを具備し、前記カオスノイズ発生手段においてはフィードバックされた暗号文に基づきカオス演算を行い前記カオスノイズを得る暗号生成装置を用いて生成した暗号文を復号化して元の平文に戻すコンピュータを有する暗号復号装置に用いられる暗号復号プログラムにおいて、前記コンピュータを、前記鍵データに基づいてカオス演算に用いるパラメータ列を生成するパラメータ生成手段と、このパラメータ生成手段により生成されたパラメータ列を用いてカオス演算を行い前記カオスノイズを得るカオスノイズ発生手段と、前記カオスノイズ発生手段により発生されたカオスノイズを暗号文情報に対して適用する演算を行って平文を得る演算手段と、この演算手段へ与える暗号文を前記カオスノイズ発生手段へ送出し、前記カオスノイズ発生手段においては送出された暗号文に基づきカオス演算を行い前記カオスノイズを得る手段として機能させることを特徴としている。
【発明の効果】
【0011】
以上説明したように本発明によれば、暗号鍵を1つとして暗号化・復号化を行った場合にでも、暗号文をカオスノイズの生成に用いるので、暗号化毎・復号化毎に異なった暗号鍵によりカオスパラメータを生成してカオスノイズを生成したようになり、秘匿性の高い暗号化・復号化を実現できる効果を有する。
【発明を実施するための最良の形態】
【0012】
以下添付図面を参照して本発明に係る暗号生成装置、暗号復号装置、暗号生成プログラム、暗号復号プログラムを説明する。各図において同一の構成要素には同一の符号を付して重複する説明を省略する。まず、本発明の前提となる発明(以下、前提発明)について説明する。図1には、前提発明の暗号生成装置100Aと暗号復号装置100Bとの構成例が示されている。この暗号生成装置100Aと暗号復号装置100Bとは、同一構成であるので、暗号生成装置100Aについて説明を行う。
【0013】
暗号生成装置100Aは、暗号化の鍵データに基づきカオスノイズを発生する写像関数を用いて得たカオスノイズを平文情報207に対して適用する演算を行って暗号を生成するもので、鍵供給手段101、パラメータ生成手段102、カオスノイズ発生手段103及びスケジューリング手段104を備えている。
【0014】
鍵供給手段101は、カオスノイズ生成の源となる鍵データ201を供給するものである。パラメータ生成手段102は、上記鍵データ201に基づいてカオス演算に用いるパラメータ列(初期位相を持ったもの)202を生成するものである。このパラメータ生成手段102は、上記鍵データ201に基づいて鍵固有パラメータ203をも生成する。
【0015】
カオスノイズ発生手段103は、上記パラメータ列202を用いてカオス演算を行い、カオスノイズであるカオス乱数列206を得るものである。このときカオスノイズ発生手段103は整数演算型カオス関数204を用いる。スケジューリング手段104は、カオスノイズ発生手段103におけるカオス演算においてパラメータ列202が用いられる所定周期毎(この実施例では1周期毎)に当該パラメータ列202に変更を生じさせるようにパラメータ列202のスケジューリングを行うものであり、このスケジューリングにおいてパラメータスケジューリング関数205を用いる。
【0016】
上記のカオスノイズ発生手段103により発生されたカオス乱数列206と平文207とは排他的論理和回路105により排他的論理和演算されて暗号文208が得られる。この暗号文208は暗号復号装置100Bに送られ、暗号復号装置100Bにおいて上記暗号生成装置100Aと同様にして生成されたカオス乱数列206と上記暗号文208とは排他的論理和回路105により排他的論理和演算されて平文207へ戻される。
【0017】
上記暗号復号装置100Bと暗号生成装置100Aにおけるカオスノイズ生成の過程においては、整数演算化により対応する。ここでいう整数演算化とは,C言語におけるint 型,long型など整数演算型のみで記述することで、float 型やdouble型など浮動小数点演算型を一切使用しないことである。また、整数演算による浮動小数点演算のソフトウェア的なエミュレーションという意味ではなく、カオス発生構造乃至写像関数自体の整数演算化拡大設計を行うということであり、根本的な処理の整数化を意味する。
【0018】
ここに、整数演算によるカオス発生の根拠は次のとおりである。整数演算化によるカオス発生の根拠および写像関数の整数演算化設計とは、特にロジスティック写像、テント写像、ベルヌーイシフト写像など、写像系のカオスは2次元幾何学的な発生構造を持つことより、これら写像範囲を整数演算可能な範囲に拡大しても幾何学的発生構造は保たれる。これを図2により説明する。図2に示す写像においてx0を出発点とし、そこでの写像関数値y=a x(1-x)からy=x に反射(写像)される。このような単純操作の繰り返し(反復)課程でカオスが発生する。この幾何学構造は、縦横共に拡大しても原理的に保たれる(拡大コピーと同じ)。
【0019】
上記の整数演算化における問題点を説明する。上記カオスの整数演算化において、浮動小数点演算型と比較し、扱える情報量が極端に減少し、計算精度、分解能が落ちる結果となる。これより、カオス状態総数の減少、過去の自己軌道への縮退、これに伴う短周期性が顕著となる。同時に、鍵値として使用可能なカオスパラメータ、初期値の範囲が減少し、十分な鍵長維持には対策が必要となる。
【0020】
係る整数演算化問題点の解決手法は次の通りである。整数演算化では、カオス状態数の減少ないし短期性が顕著となるが、カオス拡散度数を示すLyapunov(リアプノフ)指数は浮動小数点演算型と同等の領域において同等の正の値を示し、初期条件敏感性、軌道の乱雑性などカオス諸性質は保たれている。図3にロジスティック写像浮動小数点演算での分岐図、図4に整数演算での分岐図を示す。また、図5は浮動小数点演算でのLyapunov指数、図6は整数演算でのLyapunov指数を示す図である。これら図3〜図4から、それぞれ同等のパラメータ領域において同等のカオス性が覗える。
【0021】
そこで、本前提発明では、新たにカオスパラメータを定期的に変動させ、擬似的に長周期化を図る方針を与える。つまり、新たに初期のパラメータ変動パターンを鍵値として起用する。尚、ここではパラメータを定期変動させる関数をパラメータスケジューリング関数(2段部関数)と呼ぶ。
【0022】
本前提発明における暗号生成のための基本構造と暗号復号のための構成は、基本的に既存の同期式カオス暗号方式と同等の構造であるが、既に図1に示されるように、カオス関数が整数演算化設計された独自関数である点と、新たにカオス関数へ渡すパラメータに定期変動を加えるパラメータスケジューリング関数が付加された構造である点が特徴である。
【0023】
次に、上記において用いる整数演算化カオス関数を例示する。
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に示す。
【0024】
次に整数演算化を考える。ここでは写像範囲
0 <x <2 M (M は正の整数) (4)
のように拡大写像を考え、軸の位置は写像の中心x =Mとする。また、a=A/M ,
b=B/M とし、写像関数をf(x)とすると、
x <M の場合 f(x) = (A x) / M+B (5-A)
x ≧M の場合 x= 2 M−x の処理後
f(x) = (A x) / M+B (5-B)
(A, B, x, f(x) 値は正の整数、小数点以下切り捨て)
である。係る写像関数を図8に示す。
【0025】
ここで、M を2 のべき乗(M=2 ^ K )とした場合、(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 ^ K )。
【0026】
ここではA, Bが本前提発明でのカオスパラメータであり、これらに割り当て可能な領域は以下である。
ここでA の範囲は、軌道拡散の条件より、概ね
1 <A / M <2
つまり、 M<A <2 M (7)
を満たす必要がある。
軌道拡散の条件(※1)
軌道拡散の条件は、写像範囲内の全領域で、写像関数の傾きの絶対値が1以上(|f'(x)| >1 )を満たすことである。これより、反復計算毎にリアプノフ指数は常に正(λ>0)となる。
また、関数(6) 式の取りうる最大値は x=Mの時で、最大値が写像範囲 2M 以下でなくてはならないので、
f(M) = (A M) / M + B<2 M
→ A + B <2 M (8)
である。
これより、A,B を概ね同程度の範囲とし、並びにA 値は大きいほうが望ましいので、
0 < B ≦ ΔB (ΔB 〜M / 2 ) (9)
L = 2 M −ΔB
L −ΔA ≦ A < L (ΔA 〜M / 2 ) (10)
の関係を得る。
【0027】
32-bitプロセッサ直接演算(多段分割なし)ではM=32768 なので、
ΔA 〜ΔB 〜M / 2 = 16384 (16-bit信号) (11)
程度である。
なお,A 値はできるだけ大きい値がカオスの拡散度の向上につながるため、(9) 式、(10)式よりΔA ,ΔB 値を小さく取れば良いが、それでは取りうるパラメータ総数が小さくなってしまう。そこで、ここでは、
ΔA 〜ΔB = 4096(=2 ^ 12) (12)
程度を考える。
【0028】
また、後述のパラメータ可変方式と関連し、
Δ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 のパラメータ範囲が、後述のパラメータスケジューリング関数で使用可能な可変範囲である。
【0029】
次に(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 である)
【0030】
ここで、(5-A) ,(5-B) に示した整数演算化設計1次の写像関数(変形テント写像)において、(14),(15)で示すパラメータ可変幅、および(16),(17)で示すパラメータ可変範囲におけるカオス発生の様子を図9の分岐図と図10におけるLyapunov指数の図に示した。尚、図9、図10は、パラメータ固定(パラメータ可変させる前の原のカオス)である。
図9、図10より、整数演算化設計1次の写像関数は、考えるパラメータ範囲内全体にわたって連続したカオス領域を確認できる。
たとえば,図4、図6で示すロジスティック写像は、考えるパラメータ範囲内でカオス領域は不連続であるに対し、設計関数の連続カオス領域はパラメータ可変方式を考える上でもif分岐等が不要など容易な方式が期待できる。
【0031】
2次の写像関数(変形ロジスティック写像型)の設計例
ロジスティック写像の場合、写像範囲の中心(x=0.5) で傾きが1以下の縮小領域が存在する。本方式のような整数演算化において、縮退発生は周期早期化を招く理由より、ロジスティック写像の縮退領域を省き、新たに写像範囲の中心(x=0.5) での傾きが1以上を保つ(写像範囲の中心で1階微分値が不連続になる)関数を設計する。
【0032】
ここで設計する2次関数を
f(x) = a x^2 + b x + c (20)
とする。
尚、整数演算化拡大した写像範囲を0 <x <2 M とし、ロジスティック写像同様の上に凸(2階微分値が負)の関数を考える。またここでは、特に写像の対称軸をx=M (写像範囲の真ん中)とする。この場合、右側関数(M<x <2M)は、x=2M−x の操作後、左側関数(0 <x <M )と同等になるため、以下では右側関数について述べる。
【0033】
さらに隣接軌道が縮退を起こさない条件(※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^2 (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^2) x^2 (30)
1 < r < h / M (31)
と整理される。係る写像関数を図12に示す。
【0034】
尚、ここで、r = R / M (R は整数値) とおき、特にr <2 であること、および(23)の条件より、
x >M の場合は x = 2M−x 変換する
f(x) = ((2h −R) x) / M −((h −R) x^2) / M^2 (32)
M < R < h < 2 M (33)
を得る(図11参照)。
【0035】
ここでM=2 ^ K とした場合,一部ビット演算で記述できる。
また、2次関数の場合、M=32768 (K=15) とした場合、32-bit(unsigned long 型)では多段処理が必要な点、および精度補正を考えると、以下の様に整理される。(ただし1回目のループはxb = 0)
a1 = ((2 h - R) xb) >> K
b1 = (x^2) >> K
b2 = (x^2) & (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^2) >> K
b2 = (x^2) & (M-1)
d1 = ((h - R) b2) >> K
sss = (2h - R) x - (h - R) b1 - d1
f(x) = sss >> K (35)
である。
ここで、h, Rがカオスパラメータであり、後述パラメータスケジューリング関数と連結されている。
【0036】
h とR の取り得る範囲は、(33)式の拘束条件を満たす範囲で設定する。また、それぞれの取りうる値の総数Δh ,ΔR はほぼ同数なので
Δh 〜 ΔR 〜 2^12 (<M / 2 )
とし,Δh ≒(ニアリーイコール)ΔR ,および素数を起用(後述)する条件より,
h : 61436 ≦ h ≦ 65534 (Δh = 4099) (36)
R : 57325 ≦ R ≦ 61435 (ΔR = 4111) (37)
のように与えた。
【0037】
ここで、(32)に示した整数演算化設計2次の写像関数(変形ロジスティック写像)において、(36)、(37)で示すパラメータ可変幅、パラメータ可変範囲におけるカオス発生の様子を図15の分岐図と図16のLyapunov指数の図に示した。尚、図15、図16は、パラメータ固定(パラメータ可変させる前の素のカオス)である。
これら図15、図16より整数演算化設計2次の写像関数は、考えるパラメータ範囲内全体にわたって連続したカオス領域を確認できる。たとえば,図4、図6で示すロジスティック写像は、考えるパラメータ範囲内でカオス領域は不連続であるに対し、設計関数の連続カオス領域はパラメータ可変方式を考える上でもif分岐等が不要など容易な方式が期待できる。
【0038】
その他関数系(パラメータ数増加)
2次関数型で1次関数型同様y 切片変位を加える方法
2 次関数型では、1次関数型と同様に、写像範囲の両端(x=0, x=2 M)にy 切片を与えても良い。係る例の写像関数を図12に示す。この場合、新たにy 切片の変位を与えるパラメータが1つ増加し長周期化に寄与する。
【0039】
左右の写像関数を異なる関数型とする方法
ここでは写像範囲の真ん中を対称軸として左右の関数型は同一の関数について説明してきたが、左右で異なる関数型を採用することより、パラメータ数が2倍になる。これより。莫大な長周期化を図ることができる。係る写像関数を図13に示す。
【0040】
写像の軸の変位
ここでは写像範囲の真ん中を対称軸のモデルについて説明してきた。これはビット演算化を意識した理由であるが、例えば図14のように軸を写像中心からずらして与える方法も考えられる。この場合、軸のx 方向の変位を新たなパラメータとして与えることができ長周期化に寄与する。
【0041】
2 次の写像関数 <その1>
識別: 2 パラメータモード・写像中心軸対象型
基本関数型: y=a x^2 + b x
設計関数: 左側関数:f(x) = (2h - R)/M x - (h - R)/M^2 x^2
右側関数:x=2M-x の変換後 左側関数と同じ
パラメータ: h[ ], R[ ]
パラメータ範囲: M < R < h < 2M
h - R が大きいほうが設計関数の2 次の効果(非線形)が大きくなるため、また、同時にカオス拡散度(Lyapunov指数)が大きいほうが望ましい点を考慮し、
◎h のパラメータ変域は、最大値2Mに近いほうからΔh とる。
◎R のパラメータ変域は、最小値 Mに近いほうからΔR とる。
パラメータスケジューリング関数からの要請として、
◎ただし,Δh ≠ΔR かつ,互いに素数が要請される。
写像関数設計上の限界条件として、
◎ただし、h > Rの規則は、いつでも保存されることが必要。
Δh > ΔR とすると,
ΔR < Δh < M/2(=16384)程度の変域を持つ。
周期ポテンシャル: この場合,最大(2^16)^2 ×( 鍵長/16) 程度の周期ポテンシャルを持つ。
(例示)
周 期 :仮にΔh = 4111,ΔR = 4099とした場合、
4099×4111×( 鍵長/16) であり、
鍵長128-bit で128M、また鍵長1024-bitで1024M (1G)
このとき、
2M-1-(Δh-1) ≦ h ≦ 2M-1 → 61425 ≦ h ≦ 65535
M+1 ≦ R ≦ M+1+(ΔR -1) → 32769 ≦ R ≦ 36867
【0042】
2 次の写像関数 <その2>
識別: 4パラメータモード・写像中心軸対象型・左右関数独立操作
基本関数型: y=a x^2 + b x
設計関数: 左側関数:f(x) = (2 h1 - R1)/M x - (h1 - R1)/M^2 x^2
右側関数:f(x) = (2 h2 - R2)/M x - (h2 - R2)/M^2 x^2
パラメータ: h1[ ], h2[ ], R1[ ], R2[ ]
パラメータ範囲: M < R < h < 2M
h1 - R1 ,h2 - R2 が大きいほうが設計関数の2 次の効果(非線形)が大きくなるため、また、同時にカオス拡散度(Lyapunov指数)が大きいほうが望ましい点を考慮し、
◎h1のパラメータ変域は、最大値2Mに近いほうからΔh1とる。
◎h2のパラメータ変域は、最大値2Mに近いほうからΔh2とる。
◎R1のパラメータ変域は、最小値 Mに近いほうからΔR1とる。
◎R2のパラメータ変域は、最小値 Mに近いほうからΔR2とる。
パラメータスケジューリング関数からの要請として、
◎ただし、Δh1≠Δh2≠ΔR1≠ΔR2 かつ、互いに素数が要請される。
写像関数設計上の限界条件として、
◎ただし、h1 > R1 、h2 > R2 の規則は常に保存されることが必要。
Δh1 > ΔR1,Δh2 > ΔR2 とすると、
ΔR1 < Δh1 < M/2(=16384)程度の変域を持つ。
ΔR2 < Δh2 < M/2(=16384)程度の変域を持つ。
周期ポテンシャル: この場合,最大(2^16)^4 ×( 鍵長/16) 程度の周期ポテンシャルを持つ。
(例示)
周 期 :Δh1 = 4111 ,ΔR1 = 4099 ,Δh2=4127,ΔR2=4129 とした場合、
4099×4111×4127×4129×( 鍵長/32) で、 鍵長128-bit で1024G (1T)
鍵長1024-bitで8192G (8T)
このとき、
2M-1-(Δh1-1) ≦ h1 ≦ 2M-1 → 61425 ≦ h1 ≦ 65535
M+1 ≦ R1 ≦ M+1+(ΔR1 -1) → 32769 ≦ R1 ≦ 36867
2M-1-(Δh2-1) ≦ h2 ≦ 2M-1 → 61409 ≦ h2 ≦ 65535
M+1 ≦ R2 ≦ M+1+(ΔR2 -1) → 32769 ≦ R2 ≦ 36897
【0043】
2 次の写像関数 <その3>
識別: 3パラメータモード・写像中心軸対象型
基本関数型: y=a x^2 + b x + c
設計関数: 左側関数:f(x) = (2h - R)/M x - (h - R)/M^2 x^2 + C
右側関数:x=2M-x の変換後 左側関数と同じ
パラメータ: h[ ],R[ ],C[ ]
パラメータ範囲: M < R < h < 2M - C
h - R が大きいほうが設計関数の2 次の効果(非線形)が大きくなるため、また、同時にカオス拡散度(Lyapunov指数)が大きいほうが望ましい点を考慮し、
◎h のパラメータ変域は、最大値2M- ΔC-C0に近いほうからΔh とる。
◎R のパラメータ変域は、最小値 Mに近いほうからΔR とる。
◎C のパラメータ変域は、最小値 1に近いほうからΔC とる。
パラメータスケジューリング関数からの要請として、
◎ただし、Δh ≠ΔR ≠ΔC かつ,互いに素数が要請される。
写像関数設計上の限界条件として、
◎ただし,h > Rの規則は,いつでも保存されることが必要。
◎ただし,h 最大値は2M- ΔC 以下であることが必要。
Δh > ΔR > ΔC とすると、
ΔC < ΔR < Δh < M/3(=5461 )程度の変域を持つ。
周期ポテンシャル: この場合、最大(5461)^3 ×( 鍵長/24) 程度の周期ポテンシャルを持つ。
(例示)
周 期: 仮にΔh = 4127,ΔR = 4111,ΔC=4099とした場合、
4099×4111×4127×( 鍵長/24) で,鍵長128-bit で341G、また、鍵長1024-bitで2730G (2.67T)。
2M-1-(Δh-1)-(ΔC-1)-C0 ≦h ≦2M-1-(ΔC-1)-C0 57310 ≦ h ≦ 61436
M+1 ≦ R ≦ M+1+(ΔR -1) 32769 ≦ R ≦ 36879
C0 ≦ C ≦ C0+( ΔC -1) 1 ≦ C ≦ 4099
【0044】
2 次の写像関数 <その4>
識別: 6パラメータモード・写像中心軸対象型・左右関数独立操作
基本関数型: y=a x^2 + b x + c
設計関数:
左側関数:f(x) = (2 h1 - R1)/M x - (h1 - R1)/M^2 x^2 + C1
右側関数:f(x) = (2 h2 - R2)/M x - (h2 - R2)/M^2 x^2 + C2
パラメータ: h1[ ], h2[ ], R1[ ], R2[ ], C1[ ], C2[ ]
パラメータ範囲: M < R < h < 2M - C
h - R が大きいほうが設計関数の2 次の効果(非線形)が大きくなるため、また、同時にカオス拡散度(Lyapunov指数)が大きいほうが望ましい点を考慮し、
◎h1のパラメータ変域は、最大値2M- ΔC1-C10に近いほうからΔh1とる。
◎h2 のパラメータ変域は、最大値2M- ΔC2-C20に近いほうからΔh2とる。
◎R1のパラメータ変域は、最小値 Mに近いほうからΔR1とる。
◎R2のパラメータ変域は、最小値 Mに近いほうからΔR2とる。
◎C1のパラメータ変域は、最小値 1に近いほうからΔC1とる。
◎C2のパラメータ変域は、最小値 1に近いほうからΔC2とる。
パラメータスケジューリング関数からの要請として、
◎ ただし、Δh1≠Δh2≠ΔR1≠ΔR2≠ΔC1≠ΔC2かつ,互いに素数が要請される。
写像関数設計上の限界条件として、
◎ただし,h > Rの規則は,いつでも保存されることが必要。
◎ただし,h 最大値は2M- ΔC 以下であることが必要。
Δh > ΔR > ΔC とすると、
ΔC < ΔR < Δh < M/3(=5461 )程度の変域を持つ。
周期ポテンシャル: この場合、最大(5461)^6 ×( 鍵長/48) 程度の周期ポテンシャルを持つ。
(例示)
周 期: Δh1 = 4127 ,ΔR1 = 4111 ,ΔC1=4099 ,Δh2 = 4153 ,ΔR2 = 4139 ,ΔC2=4133 とした場合,
4099×4111×4127×4133×4139×4153×( 鍵長/48) 、
128-bit で 10922× 1000 P (ペタ)
2M-1-(Δh1-1)-(ΔC1-1)-C10≦h1≦
2M-1-(ΔC1-1)-C10 57310 ≦ h1 ≦ 61436
2M-1-(Δh2-1)-(ΔC2-1)-C20≦h2≦
2M-1-(ΔC2-1)-C20 57250 ≦ h2 ≦ 61402
M+1 ≦ R1 ≦ M+1+(ΔR1 -1) 32769 ≦ R1 ≦ 36879
M+1 ≦ R2 ≦ M+1+(ΔR2 -1) 32769 ≦ R2 ≦ 36907
C10 ≦ C1 ≦ C10+(ΔC1 -1) 1 ≦ C1 ≦ 4099
C20 ≦ C2 ≦ C20+(ΔC2 -1) 1 ≦ C2 ≦ 4133
【0045】
2 次の写像関数 <その5>
識別: 5パラメータモード・写像軸変動非対称型・左右関数独立操作
基本関数型: y=a x^2 + b x
設計関数:
左側関数:f(x) = (2 h1 - R1)/L x - (h1 - R1)/L^2 x^2
右側関数:f(x) = (2 h2 - R2)/L x - (h2 - R2)/L^2 x^2
パラメータ: h1[ ], h2[ ], R1[ ], R2[ ], L[ ]
パラメータ範囲: L < R < h < 2M ,(M < L) であり、
h, R, L は,ほぼ同程度のパラメータ幅(Δh, ΔR, ΔL )とすると、
Δh ≒ ΔR ≒ ΔL ≒ 2 M/5 〜13107 (>2^13)、 L = M±ΔL /2
h1 - R1 ,h2 - R2 が大きいほうが設計関数の2 次の効果(非線形)が大きくなるため、また、同時にカオス拡散度(Lyapunov指数)が大きいほうが望ましい点を考慮し、
◎h1のパラメータ変域は、最大値2Mに近いほうからΔh1とる。
◎h2のパラメータ変域は、最大値2Mに近いほうからΔh2とる。
◎R1のパラメータ変域は、最小値 6M/5 に近いほうからΔR1とる。
◎R2 のパラメータ変域は、最小値 6M/5 に近いほうからΔR2とる。
◎L は,M を中心に,前後±ΔL/2 (計ΔL )とる。
パラメータスケジューリング関数からの要請として、
◎ただし、Δh1≠Δh2≠ΔR1≠ΔR2≠ΔL かつ、互いに素数が要請される。
写像関数設計上の限界条件として、
◎ただし,L < R1 < h1 ,L < R2 < h2 の規則はいつでも保存されることが必要。
周期ポテンシャル: この場合,最大(2^13)^5 ×( 鍵長/60) を超える周期ポテンシャルを持つ。
(例示)
周 期: Δh1 = 4111 ,ΔR1 = 4099 ,Δh2=4127, ΔR2=4129 ,ΔL=4133 とした場合、
4099×4111×4127×4129×4133×( 鍵長/40) で、
鍵長128-bit で3276 P(ペタ)。
このとき、
2M-1-(Δh1-1) ≦ h1 ≦ 2M-1 → 61425 ≦ h1 ≦ 65535
6M/5+1 ≦ R1 ≦ 6M/5+1+( ΔR1 -1) → 39322 ≦ R1 ≦ 43420
2M-1-(Δh2-1) ≦ h2 ≦ 2M-1 → 61410 ≦ h2 ≦ 65535
6M/5+1 ≦ R2 ≦ 6M/5+1+( ΔR2 -1) → 39322 ≦ R2 ≦ 43450
M - ΔL/2 ≦ L ≦ M +ΔL/2 → 30701 ≦ L ≦ 34833
【0046】
2 次の写像関数 <その6>
識別: 7パラメータモード・写像軸変動非対称型・左右関数独立操作
基本関数型: y=a x^2 + b x + c
設計関数:
左側関数:f(x) = (2 h1 - R1)/L x - (h1 - R1)/L^2 x^2
右側関数:f(x) = (2 h2 - R2)/L x - (h2 - R2)/L^2 x^2
パラメータ: h1[ ], h2[ ], R1[ ], R2[ ], C1[ ], C2[ ], L[ ]
パラメータ範囲: L < R < h < 2M - ΔC -C0 ,(M < L) であり、
h, R, L は,ほぼ同程度のパラメータ幅(Δh, ΔR, ΔL )とすると、
Δh ≒ ΔR ≒ ΔL ≒ ΔC ≒ 2M/7 〜9362(> 2^12 ), L = M ±ΔL /2
h1 - R1 ,h2 - R2 が大きいほうが設計関数の2 次の効果(非線形)が大きくなるため、また、同時にカオス拡散度(Lyapunov指数)が大きいほうが望ましい点を考慮し、
◎h1のパラメータ変域は、最大値2M -ΔC -C0 に近いほうからΔh1とる。
◎h2のパラメータ変域は、最大値2M -ΔC -C0 に近いほうからΔh2とる。
◎R1のパラメータ変域は、最小値 8M/7 に近いほうからΔR1とる。
◎R2 のパラメータ変域は、最小値 8M/7 に近いほうからΔR2とる。
◎L は、M を中心に、前後±ΔL/2 (計ΔL )とる。
パラメータスケジューリング関数からの要請として、
◎ただし、Δh1≠Δh2≠ΔR1≠ΔR2≠ΔC1≠ΔC2≠ΔL かつ、互いに素数が要請される。
写像関数設計上の限界条件として、
◎ただし,L < R1 < h1 ,L < R2 < h2 の規則はいつでも保存されることが必要。
周期ポテンシャル: この場合,最大(2^15)^5 ×( 鍵長/60) を超える周期ポテンシャルを持つ。
(例示)
周 期: Δh1=4111,ΔR1 = 4099,Δh2=4127,ΔR2=4129,ΔC1=4139,ΔC2=4153,ΔL=4133 とした場合、
4099×4111×4127×4129×4133×4139×4153( 鍵長/56) で、
鍵長128-bit で37449 ×1000×1000 P(ペタ)。
このとき、
2M -1 - ΔC1 -C10 -(Δh1-1) ≦ h1 ≦
2M-1 - ΔC1 -C10 57285 ≦ h1 ≦ 61395
8M/7+1 ≦ R1 ≦ 8M/7+1+( ΔR1 -1) 37450 ≦ R1 ≦ 41548
2M -1 - ΔC2 -C20 -(Δh2-1) ≦ h2 ≦
2M-1-ΔC2 -C20 57255 ≦ h2 ≦ 61381
8M/7+1 ≦ R2 ≦ 8M/7+1+( ΔR2 -1) 37450 ≦ R2 ≦ 41578
C10 ≦ C1 ≦ C10+(ΔC1 -1) 1 ≦ C1 ≦ 4139
C20 ≦ C2 ≦ C20+(ΔC2 -1) 1 ≦ C2 ≦ 4153
M - ΔL/2 ≦ L ≦ M +ΔL/2 30701 ≦ L ≦ 34833
【0047】
1 次の写像関数 <その1>
識別: 2 パラメータモード・写像中心軸対象型
基本関数型: y=a x + b
(以下省略)
設計関数 左側関数:f(x) = A/M x + B
右側関数:x=2M-x の変換後 左側関数と同じ
パラメータ: A[ ], B[ ]
パラメータ範囲: 0 < B < M < A < 2M - B

A が大きいほうが設計関数の拡散度は高いため、
◎A のパラメータ変域は、最大値2M- ΔB-B0に近いほうからΔA とる。
◎B のパラメータ変域は、最小値 1に近いほうからΔB とる。
パラメータスケジューリング関数からの要請として、
◎ただし、ΔA ≠ΔB かつ、互いに素数が要請される。
写像関数設計上の限界条件として、
◎ただし、A > Bの規則は、いつでも保存されることが必要。
Δh > ΔR > ΔC とすると,
ΔC < ΔR < Δh < M/3(=5461 )程度の変域を持つ。
周期ポテンシャル: この場合,最大(5461)^3 ×( 鍵長/24) 程度の周期ポテンシャルを持つ。
(例示)
周 期: 仮にΔh = 4127,ΔR = 4111,ΔC=4099とした場合、
4099×4111×4127×( 鍵長/24) で, 鍵長128-bit で341G
鍵長1024-bitで2730G (2.67T) 。
2M -1 -(Δh -1) -(ΔC -1) -C0 ≦ h ≦
2M -1 -( ΔC -1) -C0 57310 ≦ h ≦ 61436
M+1 ≦ R ≦ M+1+(ΔR -1) 32769 ≦ R ≦ 36879
C0 ≦ C ≦ C0+( ΔC -1) 1 ≦ C ≦ 4099
【0048】
1 次の写像関数 <その2>
識別: 4パラメータモード・写像中心軸対象型・左右関数独立操作
基本関数型: y=a x + b
(以下省略)
1 次の写像関数 <その3>
識別: 5パラメータモード・写像軸変動非対称型・左右関数独立操作
基本関数型: y=a x^2 + b
(以下省略)
などを例示することができる。
【0049】
次に、カオスノイズ発生手段103から出力されるカオス乱数列(乱数値抽出)206の抽出について説明する。ここで、(18)式(精度補正無し)および(19-A),(19-B)式の精度補正対策後のy 値は本件整数演算化カオス関数が1サイクル毎に生成する16-bitカオス信号である。この16-bit信号を元に、1-bit 乱数値抽出、8-bit 乱数値抽出する方法について述べる。この処理は、単なる1-bit と 8-bit乱数値の抽出のみでなく、抽出前のカオス信号値自体の情報隠蔽に寄与するものである。
【0050】
ストリーム暗号の原理は、平文情報の1-bit 単位で暗号化処理(平文とXOR 処理)するものであり、また、1-bit 乱数値抽出の場合は8-bit 乱数値抽出の場合と比較し、系に関するより多くの情報を隠蔽可能であるが、1-bit 乱数値の場合は、8-bit 乱数値の処理の8倍の処理を要する。このため1-bit 単位型か8-bit 単位型かは、別途、処理能力、乱数性度、情報理論的安全性の観点から議論が必要である。ここでは両方式の説明を行う。
【0051】
1-bit乱数値抽出の場合
(その1)
1サイクル毎でのy 値 < Mの場合 : 乱数値=0
1サイクル毎でのy 値 > Mの場合 : 乱数値=1 (38)
とする方法。
(その2)
1サイクル毎のy 値が偶数の場合 : 乱数値=0
1サイクル毎のy 値が奇数の場合 : 乱数値=1 (39)
とする方法。この2つが挙げられる。
【0052】
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 を乱数値として採用するのが妥当であると考える。尚、上記に対し、さらにテーブル変換を行う方法も考えられる。テーブル値は鍵値によって異なるものが望ましい。
【0053】
次に、排他的論理和回路105において行われる暗号化処理/復号化処理について説明する。既述の通り、暗号化は、上記より生成した乱数列を平文の8-bit(1-bit)ごとにXOR 処理(排他的論理和)を行い暗号文を得ることにより実現され、また、復号化は、上記より生成した乱数列を暗号文の8-bit(1-bit)ごとにXOR 処理(排他的論理和)を行い平文を得ることにより実現される。暗号化と復号化で対称の構造を持つものである。
【0054】
スケジューリング手段104が用いるパラメータスケジューリング関数205の説明を行う。写像系カオスの2次元幾何学的発生構造は、整数演算範囲に拡大しても、その構造は原理的に保たれる。一方、整数演算型では、扱える数値幅が比較的小さい点、大幅な切捨てが行われる点、縮退発生頻度が高い点、早期周期性が現れる点が問題である。本構成例では、これらをパラメータの定期変動にて解決しようとするもので、その役割を担うのがパラメータスケジューリング関数(カオス関数が1段部関数と言えるのに対し、2段部関数と言える)205である。
【0055】
パラメータスケジューリング関数205の使命は、整数演算化カオス関数の短周期性をパラメータの可変により擬似的に長周期化を図る目的で導入されており、鍵値で与えられたパラメータ列に対し、鍵値パラメータ列の固有性(ユニーク)を維持しつつ可変化させる。従って、整数演算化カオス関数を補助する役割であるため、可能な限りシンプルな構成としたい。ここでは、以下のような可変方式を考える。
【0056】
パラメータ範囲を0 〜6 の7段階とすると、
鍵値パラメータ : 1 2 3 4 5 6 7(0) 反復回数→
1 2 → 3 → 4 → 5 → 6 → 0 → 1 → ...
2 4 → 6 → 1 → 3 → 5 → 0 → 2 → ...
3 6 → 2 → 5 → 1 → 4 → 0 → 3 → ...
4 1 → 5 → 2 → 6 → 3 → 0 → 4 → ...
5 3 → 1 → 6 → 4 → 2 → 0 → 5 → ...
6 5 → 4 → 3 → 2 → 1 → 0 → 6 → ...
のように変化させる。
【0057】
上記においては6 回目の反復で、どの初期パラメータから出発しても0となるので、予め初期位相を設けておくなど工夫する。そして、初期位相は鍵値により変動させる。まとめると次のようである。
/// 初期処理 ///
KEY_ Param [ ] ← 鍵(鍵情報より鍵値固有の鍵値パラメータ列を生成する)
・・・(40)
Param[ ] ← 初期位相 (パラメータ列に初期位相を格納)
・・・(41)
/// 以降,順次パラメータを変動 ///
Param[ ] =Param0+ fmod(Param[ ]-Param0+KEY_Param[ ],MAX_Param)
・ ・・(42)
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[]に相当する。
【0058】
次にパラメータスケジューリング関数の設計例を示す。
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 とすると、
/// 初期処理〜各配列要素決定 ///
KEY_A[i] ← 鍵値より算出 (46)
KEY_B[i] ← 鍵値より算出 (47)
A[i] ← 初期位相(鍵値を元に算出) (48)
B[i] ← 初期位相(鍵値を元に算出) (49)
/// パラメータスケジューリング ///
A[i] = A0 + fmod(A[i] - A0 + KEY_A[i],MAX_A) (0≦i ≦m −1) (50)
B[i] = B0 + fmod(B[i] - B0 + KEY_B[i],MAX_B) (0≦i ≦m −1) (51)
である。ここで、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)
【0059】
2次の写像関数におけるパラメータスケジューリング関数の設計例
整数演算化2次の写像関数設計例で示したカオス関数、具体的には(32)で示す2次の写像関数、(36),(37)で示すパラメータ幅、パラメータ範囲を用いる場合において、パラメータ可変関数の一例を以下に挙げる。尚、この例では、パラメータ数は、(36),(37)で記されるh 、R の2つのパラメータを使用する場合である。
【0060】
可変可能なパラメータ情報は,
(36)より Δh = 4099
(37)より ΔR = 4111
(36)より 61436 ≦ h ≦ 65534
(37)より 57325 ≦ R ≦ 61435
・・・(54)
である。
また、それぞれh ,R の最小値をh0,R0と表し、
h0 = 61436 (55)
R0 = 57325 (56)
とする。
以下は1 次関数でのパラメータスケジューリング関数例と同様である。
鍵より鍵固有パラメータ列KEY_h[ ],KEY_R[ ],およびパラメータ列h[ ],R[ ]の初期位相が与えられているとし,それぞれの配列数(配列の要素数)をm とすると、
/// 初期処理〜各配列要素決定 ///
KEY_h[i] ← 鍵値より算出 (57)
KEY_R[i] ← 鍵値より算出 (58)
h[i] ← 初期位相(鍵値を元に算出) (59)
R[i] ← 初期位相(鍵値を元に算出) (60)
/// パラメータスケジューリング ///
h[i] = h0 + fmod(h[i] - h0 + KEY_h[i],MAX_h) (0≦i ≦m −1) (61)
R[i] = R0 + fmod(R[i] - R0 + KEY_R[i],MAX_R) (0≦i ≦m −1) (62)
である。ここで、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)
【0061】
次に、上記の如き整数演算型カオス関数204とパラメータスケジューリング関数205を採用した場合における鍵データの設計及び鍵データ201から初期情報であるパラメータ列202及び鍵固有パラメータ203への変換について説明を行う。本前提発明は、カオス暗号を実現する上で、カオス算出に必要となるパラメータを定期的に変動させる手法を採用するものあり、鍵データ201に基づき鍵固有パラメータ203およびパラメータ列(初期位相)202を提供する。従って、鍵データ201は、採用されるパラメータスケジューリング関数205と密接に関係を有する。
【0062】
既述した1 次の写像関数およびパラメータスケジューリング関数を例に挙げて具体的に説明すると、鍵は鍵固有パラメータ列(KEY_A[ ],KEY_B[ ])およびパラメータ列(A[ ],B[ ])を決定する。即ち、鍵固有パラメータ列(KEY_A[ ],KEY_B[ ])は鍵値固有のパラメータ列であり、入力以降変更されることはない。一方、パラメータ列(A[ ],B[ ])は,実際にカオス算出に寄与するパラメータ列であり、パラメータスケジューリング関数205にて随時更新される。また、更新方法は既に述べたように鍵固有パラメータ列(KEY_A[ ],KEY_B[ ])203を参照し、随時更新される((43)〜(53))。
【0063】
鍵設計例を説明する。鍵は、鍵供給手段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つの配列要素を決定する。
【0064】
ここでは、パラメータは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 文字を必要とする。
【0065】
鍵データ201から鍵固有パラメータ203への変換規則の例を説明する。鍵ファイルの文字から鍵固有パラメータ列(KEY_A[ ],KEY_B[ ])203の変換規則は、あらかじめ決められた方法であればいかなる規則でも構わない。例えば、'AB'→'2901','9F'→'3041'など変換規則を決定しておく。
【0066】
次にパラメータ列(A[ ],B[ ])202の初期位相決定に関する例を説明する。鍵データ201は鍵固有パラメータ列(KEY_A[ ],KEY_B[ ])203の他に、パラメータスケジューリング関数205にて随時変更されるパラメータ列(A[ ],B[ ])203の初期位相を与える。特に、A[ ]=KEY_A[ ] 、B[ ]=KEY_B[ ] と与えても構わないが、この構成例ではカオスを利用する。
【0067】
カオスを利用する場合、既に鍵設計例の欄において記した手法により鍵よりKEY_A[ ],KEY_B[ ]を決定した後、まずA[ ]=KEY_A[ ] ,B[ ]=KEY_B[ ] を代入し、この状態で通常通りカオスを算出する。このカオス算出における反復数をz 回とすると、z 回反復の最後から2 ×m 個分(z −(2×m)+1番目からz 番目まで)のカオス乱数値をA[ ],B[ ]の初期パラメータ列として利用する方法を採用する。これは,後述する「関数の初期助走期間」を兼ねることが可能なことを考慮すると、効率良くランダムな初期位相を生成可能となる。
【0068】
上記初期位相決定の課程では、特にパラメータスケジューリングは行わなくても良い。また、反復数z の値はできるだけ大きいほうが望ましいが、経験上n-bit 暗号の場合ではn /8 〜n /2 程度が妥当である。
【0069】
「カオス関数の初期助走期間」の説明。全ての初期情報(鍵固有パラメータ列203およびパラメータ202(初期位相))が与えられた後、コア部関数は正常に動作可能状態となり、本発明に係るパラメータ可変の方式によるカオス擬似乱数の算出が可能となるが、ここで鍵情報拡散のため、初期のz 回の反復で生成される擬似乱数は捨て、z 回目以降の反復より得られる擬似乱数列を有効とする。z の値はできるだけ大きいほうが望ましいが、前述の通り経験上n-bit 暗号の場合ではn /8 〜n /2 程度が妥当である。この値は本例において、カオス初期条件敏感性により隣接する近傍が写像範囲全体に拡散されるまでの反復回数の試算である。また、パラメータ列(KEY_A[ ],KEY_B[ ])の初期位相決定に関し、後半部説明のカオスを利用する場合、この操作過程中において関数初期助走を兼ねている。
【0070】
上記のようにパラメータスケジューリング関数205を用いる暗号化及び復号化の手法により、十分な秘匿性のある暗号化が可能となった。上記の前提発明は、カオス擬似乱数列を利用した擬似乱数式ストリーム暗号方式ではあるが、ストリーム暗号の定義通りの構造を有したものであるため、暗号鍵を知らない場合でも、暗号文と平文とのペアからカオス擬似乱数列の抽出が可能である。
【0071】
例えば、同一鍵により暗号化された暗号文が複数存在し、そのうちの1つのケースについて平文と暗号文のペアが判明した場合を考える。このような判明は、例えば平文と暗号文のデータ長が同じである場合など、両者の組み合わせを絞り得る場合に起きる。
【0072】
ここで、平文をPi 、暗号文をCi 、カオス関数をX、鍵をK、排他的論理和演算を(XOR)とすると、暗号文Ci は、Ci =Pi (XOR)X(K)と表すことができる。そして、例えば平文P1 と暗号文C1 のペアが判明すると、暗号文C1 については、C1 =P1 (XOR)X(K)であるから、X(K)=P1 (XOR)C1 が成立し、X(K)が判明する。
【0073】
上記X(K)は、全ての平文Pi と暗号文Ci について共通であり、全てのiについて、Pi =Ci (XOR)X(K)が成立し、暗号解読が可能となる。これに対応するためには、暗号処理毎に異なる暗号鍵を用いることが必要となり、別途にワンタイム鍵発行システムを用意し、これとの連携を図るシステムが考えられる。
【0074】
しかしながら、同一ユーザが同一ディレクトリ以下の情報を暗号化して保持する場合などには、使い易さの観点から同一鍵を用いることが便利であり、上記個別の鍵を用いるシステムは現実的でない。また、個別の鍵を用いた場合には鍵の管理が繁雑になる問題点がある。
【0075】
本発明は、上記のような前提発明と従来の同期式カオス・ストリーム暗号方式における問題点を解決する。本発明は、カオス算出時に1つ前の暗号文を乱数生成の種としてフィードバックさせ、以降のカオス算出時に1つ前の暗号文を乱数生成の種として用いる連鎖を与える。これにより、同一の暗号鍵を用いた場合でも暗号文(平文)が異なれば、異なるカオス乱数列を生成可能とする。
【0076】
ここで、平文をPi、暗号文をCi 、カオス関数をX、鍵をK、排他的論理和演算を(XOR)とすると、暗号文Ci は、Ci =Pi (XOR)X(K,Ci-1 )と表すことができる。そして、例えば平文P1 と暗号文C1 のペアが判明すると、暗号文C1 については、C1 =P1 (XOR)X(K,C0 )であるから、X(K,C0 )=P1 (XOR)C1 が成立し、X(K,C0 )が判明するのみである。つまり、i=0以外のX(K,Ci )は不明であり、i=0以外の平文Pi を得ることは不可能である。
【0077】
上記の問題点は、初歩的なブロック暗号(ECBモード)においても共通するものであるが、ブロック暗号においては、これをCBCモード、CFBモード、OFBモード等の利用により克服する。本発明は、このブロック暗号におけるCFBモード利用と類似するが、フィードバックされた暗号文をパラメータ変動方式のカオス暗号化におけるパラメータ変動に用いている。また、フィードバックされた暗号文をカオスノイズ算出自体に用いている。
【0078】
図17には、本発明に係る暗号生成装置100AAと暗号復号装置100BBとが示されている。暗号生成装置100AAと暗号復号装置100BBとは、同一構成であるので、暗号生成装置100AAについて説明を行う。暗号生成装置100AAは前提発明における暗号生成装置100Aを改良したものであり、演算部である排他的論理和回路105により得られる暗号文をスケジューリング手段104へフィードバックするフィードバック経路を設け、フィードバックされた暗号文に基づいてパラメータ列に変更を生じさせるようにパラメータ列のスケジューリングを行うように構成されている。
【0079】
本実施例における暗号化関数をEnc、復号化関数をDec、暗号鍵をKey、平文長をNとし、第i番目の平文をPi 、暗号文をCi (1≦i≦N)とすると、暗号化処理は次の式により表すことができる。
Ci =Enc(Pi ,Key,Ci-1 ) (201)
但し、C0 は暗号化側と復号化側において予め取り決めた所定値とする。
【0080】
また、復号化処理は次の式により表すことができる。
Ci =Dec(Pi ,Key,Ci-1 ) (202)
但し、C0 は暗号化側と復号化側において予め取り決めた所定値とする。
【0081】
上記の201式及び202式に示される関数Encと関数Decにおける第3引数が本発明の効果を与えるものであり、各関数においてはCi-1 がカオスノイズ算出に影響を与えるように関数設計をする。
【0082】
具体的設計例を次に示す。カオスパラメータが2つの場合においては、情報の第i番目のパラメータ列をAi 、Bi とし、1サイクル前の暗号文をCi-1 、鍵により与えられるパラメータ可変情報をKeyA、KeyB、パラメータ最大値をMax_A、Max_B、パラメータ基底値をA0 、B0 とすると、例えば、次のようになる。
【0083】
(例1)
Ai =fmod(Ai-1 +XOR(KeyA,Ci-1 ),Max_A)+A0
Bi =fmod(Bi-1 +XOR(KeyB,Ci-1 ),Max_B)+B0
(203)
【0084】
(例2)
Ai =fmod(Ai-1 +KeyA+Ci-1 ,Max_A)+A0
Bi =fmod(Bi-1 +KeyB+Ci-1 ,Max_B)+B0
(204)
【0085】
上記においては、平文、暗号文の第1番目(先頭)の処理にA0 、B0 、C0 が必要となる。これに対しては、これらの値を、予め暗号鍵より算出する、或いは所定の値としておくなど、いずれにしても暗号化側と復号化側とにおいて予め取り決めておくものとする。
【0086】
上記のようにして暗号文をフィードバックし、これを用いて変動を加えたパタメータAi 、Bi は、カオス関数funcに供与され、以降においてはフィードバックされる暗号文を用いて連続的な暗号化処理がなされる。カオスパタメータが2つの場合において、カオス信号Xi に対し、
カオスノイズ発生:Xi =func(Xi ,Ai ,Bi ) (205)
下位ビット抽出:Ri =Xi の下位ビット抽出 (206)
暗号化処理:Ci =XOR(Pi ,Ri ) (207)
復号化処理:Pi =XOR(Ci ,Ri ) (208)
が行われる。
【0087】
図18には、本実施例による暗号化処理のフローチャートが示されている。暗号化処理では、まず、鍵供給手段101が供給する暗号鍵からパラメータ生成手段102がカオスパラメータを得てカオスノイズ発生手段103へ送る(S51)。
【0088】
次に、1つ前の処理において得られた暗号文に基づき上記の203式または204式によりカオスパラメータを得て、この得られたカオスパラメータと、ステップS51において得られたカオスパラメータとを変数としてカオス軌道を算出し、所定長のカオスノイズ値を求める(S52)。
【0089】
上記ステップS52において、第1回目の処理では、1つ前の処理において得られた暗号文が存在しない。そこで、予め定めた暗号文(初期値)或いは暗号鍵から所定の関数により算出された暗号文(初期値)を用いる。
【0090】
ステップS52の次に、上記ステップS52において得られた所定長のカオスノイズ値と同一長の平文とを1単位として、これらについて、1ビット毎のXOR(排他的論理和演算)を行って暗号文を得る(S53)。
【0091】
図19には、本実施例による復号化処理のフローチャートが示されている。復号化処理では、まず、鍵供給手段101が供給する暗号鍵からパラメータ生成手段102がカオスパラメータを得てカオスノイズ発生手段103へ送る(S61)。
【0092】
次に、1つ前の処理において得られた暗号文に基づき上記の203式または204式により得て、この得られたカオスパラメータと、ステップS61において得られたカオスパラメータとを変数としてカオス軌道を算出し、所定長のカオスノイズ値を求める(S62)。
【0093】
上記ステップS62において、第1回目の処理では、1つ前の処理において得られた暗号文が存在しない。そこで、予め定めた暗号文(初期値)或いは暗号鍵から所定の関数により算出された暗号文(初期値)を用いる。
【0094】
ステップS62の次に、上記ステップS62において得られた所定長のカオスノイズ値と同一長の暗号文とを1単位として、これらについて、1ビット毎のXOR(排他的論理和演算)を行って平文を得る(S63)。
【0095】
このように、本実施例では、カオス演算において、パラメータ生成手段102が生成したパラメータ列が用いられる所定周期毎に当該パラメータ列に変更を生じさせるようにパラメータ列のスケジューリングを行うスケジューリング手段104Aに対し、暗号文をフィードバックしている。そして、スケジューリング手段104Aがフィードバックされた暗号文に基づきパラメータ列のスケジューリングを行っている。
【0096】
これによって、1ビット処理(XORを1バイトで行えば、1バイト処理)の高速なストリーム暗号化と、多大鍵長を扱うことが可能であるというカオス暗号系の特徴を活かしつつ、暗号化毎に異なる暗号鍵を用意することなく、平文と暗号文の1ペアが同定されたとしても、全体の暗号解読がなされない暗号化・復号化を実現できる。
【0097】
図20に本発明の第2の実施例に係る暗号生成装置100AAAと暗号復号装置100BBBとが示されている。この実施例においては、スケジューリング手段104Aが用いられていない。また、暗号文はカオスノイズ発生手段103へフィードバックされている。カオスノイズ発生手段103においては、フィードバックされた暗号文に基づきカオス演算を行いカオスノイズを得る。
【0098】
カオスノイズ発生手段103においては、フィードバックされた暗号文に基づきカオス演算を行いカオスノイズを得る。暗号化処理は既に示した201式により行われ、復号化処理は既に示した202式により行われる。
【0099】
具体的設計例を次に示す。カオスパラメータが1つの場合においては、情報の第i番目のパラメータ列をAiとし、1サイクル前の暗号文をCi−1、鍵により与えられるパラメータ可変情報をKeyA、とすると、カオスノイズの算出式Funcに与えるパラメータは例えば、次式から得る。
XOR(KeyA,Ci-1 ) (301)
【0100】
つまり、301式は、KeyAとCi-1 との排他的論理和演算を行った結果をパラメータとしている。これ以外に、KeyAとCi-1 との論理和など適当な関数による処理が考えられる。
【0101】
図21には、本実施例による暗号化処理のフローチャートが示されている。暗号化処理では、まず、鍵供給手段101が供給する暗号鍵からパラメータ生成手段102がカオスパラメータを得てカオスノイズ発生手段103へ送る(S71)。
【0102】
次に、1つ前の処理において得られた暗号文に基づき上記の301式によりカオスパラメータを得て、この得られたカオスパラメータを変数としてカオス軌道を算出し、所定長のカオスノイズ値を求める(S72)。
【0103】
上記ステップS72において、第1回目の処理では、1つ前の処理において得られた暗号文が存在しない。そこで、予め定めた暗号文(初期値)或いは暗号鍵から所定の関数により算出された暗号文(初期値)を用いる。
【0104】
ステップS72の次に、上記ステップS72において得られた所定長のカオスノイズ値と同一長の平文とを1単位として、これらについて、1ビット毎のXOR(排他的論理和演算)を行って暗号文を得る(S73)。
【0105】
図22には、本実施例による復号化処理のフローチャートが示されている。復号化処理では、まず、鍵供給手段101が供給する暗号鍵からパラメータ生成手段102がカオスパラメータを得てカオスノイズ発生手段103へ送る(S81)。
【0106】
次に、1つ前の処理において得られた暗号文に基づき上記の301式によりカオスパラメータを得て、この得られたカオスパラメータを変数としてカオス軌道を算出し、所定長のカオスノイズ値を求める(S82)。
【0107】
上記ステップS82において、第1回目の処理では、1つ前の処理において得られた暗号文が存在しない。そこで、予め定めた暗号文(初期値)或いは暗号鍵から所定の関数により算出された暗号文(初期値)を用いる。
【0108】
ステップS82の次に、上記ステップS82において得られた所定長のカオスノイズ値と同一長の暗号文とを1単位として、これらについて、1ビット毎のXOR(排他的論理和演算)を行って平文を得る(S83)。
【0109】
これによっても、1ビット処理(XORを1バイトで行えば、1バイト処理)の高速なストリーム暗号化と、多大鍵長を扱うことが可能であるというカオス暗号系の特徴を活かしつつ、暗号化毎に異なる暗号鍵を用意することなく、平文と暗号文の1ペアが同定されたとしても、全体の暗号解読がなされない暗号化・復号化を実現できる。
【図面の簡単な説明】
【0110】
【図1】本発明の前提発明に係る暗号生成装置及び暗号復号装置の構成を示す図。
【図2】写像系カオスの幾何学的発生構造を示す図。
【図3】浮動小数点演算による分岐図。
【図4】整数演算による分岐図。
【図5】浮動小数点演算によるリアプノフ指数を示す図。
【図6】整数演算によるリアプノフ指数を示す図。
【図7】本発明及び前提発明に係る暗号生成、暗号復号及び認証子作成に用いるカオス関数の一例を示す図。
【図8】本発明及び前提発明に係る暗号生成、暗号復号及び認証子作成に用いるカオス関数の一例を示す図。
【図9】図7のカオス関数を用いた整数演算による分岐図。
【図10】図7のカオス関数を用いた整数演算によるリアプノフ指数を示す図。
【図11】本発明及び前提発明に係る暗号生成、暗号復号及び認証子作成に用いるカオス関数の一例を示す図。
【図12】本発明及び前提発明に係る暗号生成、暗号復号及び認証子作成に用いるカオス関数の一例を示す図。
【図13】本発明及び前提発明に係る暗号生成、暗号復号及び認証子作成に用いるカオス関数の一例を示す図。
【図14】本発明及び前提発明に係る暗号生成、暗号復号及び認証子作成に用いるカオス関数の一例を示す図。
【図15】図11のカオス関数を用いた整数演算による分岐図。
【図16】図11のカオス関数を用いた整数演算によるリアプノフ指数を示す図。
【図17】本発明に係る暗号生成装置及び暗号復号装置の第1実施例の構成を示す図。
【図18】本発明に係る暗号生成装置及び暗号復号装置における暗号化処理を説明するためのフローチャート。
【図19】本発明に係る暗号生成装置及び暗号復号装置における復号化処理を説明するためのフローチャート。
【図20】本発明に係る暗号生成装置及び暗号復号装置の第2実施例の構成を示す図。
【図21】本発明に係る暗号生成装置及び暗号復号装置における暗号化処理を説明するためのフローチャート。
【図22】本発明に係る暗号生成装置及び暗号復号装置における暗号化処理を説明するためのフローチャート。
【符号の説明】
【0111】
101A、101AA、101AAA 暗号生成装置
101B、101BB、101BBB 暗号復号装置
102 パラメータ生成手段
103 カオスノイズ発生手段
104、104A スケジューリング手段
105 排他的論理和回路

【特許請求の範囲】
【請求項1】
暗号化の鍵データに基づきカオスノイズを発生する写像関数を用いて得たカオスノイズを平文情報に対して適用する演算を行って暗号を生成する暗号生成装置において、
前記鍵データに基づいてカオス演算に用いるパラメータ列を生成するパラメータ生成手段と、
このパラメータ生成手段により生成されたパラメータ列を用いてカオス演算を行い前記 カオスノイズを得るカオスノイズ発生手段と、
前記カオスノイズ発生手段により発生されたカオスノイズを平文情報に対して適用する演算を行う演算部と、
この演算部により得られる暗号文を前記カオスノイズ発生手段へフィードバックするフィードバック経路と
を具備し、
前記カオスノイズ発生手段においてはフィードバックされた暗号文に基づきカオス演算を行い前記カオスノイズを得ることを特徴とする暗号生成装置。
【請求項2】
暗号化の鍵データに基づきカオスノイズを発生する写像関数を用いて得たカオスノイズを平文情報に対して適用する演算を行って暗号を生成する暗号生成装置であって、前記鍵データに基づいてカオス演算に用いるパラメータ列を生成するパラメータ生成手段と、このパラメータ生成手段により生成されたパラメータ列を用いてカオス演算を行い前記カオスノイズを得るカオスノイズ発生手段と、前記カオスノイズ発生手段により発生されたカオスノイズを平文情報に対して適用する演算を行って暗号文を得る演算部と、この演算部により得られる暗号文を前記カオスノイズ発生手段へフィードバックするフィードバック経路とを具備し、前記カオスノイズ発生手段においてはフィードバックされた暗号文に基づきカオス演算を行い前記カオスノイズを得る暗号生成装置を用いて生成した暗号文を復号化して元の平文に戻す暗号復号装置において、
前記鍵データに基づいてカオス演算に用いるパラメータ列を生成するパラメータ生成手段と、
このパラメータ生成手段により生成されたパラメータ列を用いてカオス演算を行い前記カオスノイズを得るカオスノイズ発生手段と、
前記カオスノイズ発生手段により発生されたカオスノイズを暗号文情報に対して適用する演算を行って平文を得る演算部と、
この演算部へ与える暗号文を前記カオスノイズ発生手段へ送出する経路と
を具備し、
前記カオスノイズ発生手段においてはフィードバックされた暗号文に基づきカオス演算を行い前記カオスノイズを得ることを特徴とする暗号復号装置。
【請求項3】
暗号化の鍵データに基づきカオスノイズを発生する写像関数を用いて得たカオスノイズを平文情報に対して適用する演算を行って暗号を生成するコンピュータを有する暗号生成装置に用いられる暗号生成プログラムにおいて、
前記コンピュータを、
前記鍵データに基づいてカオス演算に用いるパラメータ列を生成するパラメータ生成手段と、
このパラメータ生成手段により生成されたパラメータ列を用いてカオス演算を行い前記カオスノイズを得るカオスノイズ発生手段と、
前記カオスノイズ発生手段により発生されたカオスノイズを平文情報に対して適用する演算を行って暗号文を得る演算手段と、
この演算手段により得られる暗号文を前記カオスノイズ発生手段へフィードバックし、前記カオスノイズ発生手段においてはフィードバックされた暗号文に基づきカオス演算を行い前記カオスノイズを得る手段と
して機能させるための暗号生成プログラム。
【請求項4】
暗号化の鍵データに基づきカオスノイズを発生する写像関数を用いて得たカオスノイズを平文情報に対して適用する演算を行って暗号を生成する暗号生成装置であって、前記鍵データに基づいてカオス演算に用いるパラメータ列を生成するパラメータ生成手段と、このパラメータ生成手段により生成されたパラメータ列を用いてカオス演算を行い前記カオスノイズを得るカオスノイズ発生手段と、前記カオスノイズ発生手段により発生されたカオスノイズを平文情報に対して適用する演算を行って暗号文を得る演算部と、この演算部により得られる暗号文を前記カオスノイズ発生手段へフィードバックするフィードバック経路とを具備し、前記カオスノイズ発生手段においてはフィードバックされた暗号文に基づきカオス演算を行い前記カオスノイズを得る暗号生成装置を用いて生成した暗号文を復号化して元の平文に戻すコンピュータを有する暗号復号装置に用いられる暗号復号プログラムにおいて、
前記コンピュータを、
前記鍵データに基づいてカオス演算に用いるパラメータ列を生成するパラメータ生成手段と、
このパラメータ生成手段により生成されたパラメータ列を用いてカオス演算を行い前記カオスノイズを得るカオスノイズ発生手段と、
前記カオスノイズ発生手段により発生されたカオスノイズを暗号文情報に対して適用する演算を行って平文を得る演算手段と、
この演算手段へ与える暗号文を前記カオスノイズ発生手段へ送出し、前記カオスノイズ発生手段においては送出された暗号文に基づきカオス演算を行い前記カオスノイズを得る手段と
して機能させるための暗号復号プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate


【公開番号】特開2008−197685(P2008−197685A)
【公開日】平成20年8月28日(2008.8.28)
【国際特許分類】
【出願番号】特願2008−130394(P2008−130394)
【出願日】平成20年5月19日(2008.5.19)
【分割の表示】特願2003−53684(P2003−53684)の分割
【原出願日】平成15年2月28日(2003.2.28)
【出願人】(391016358)東芝情報システム株式会社 (149)
【出願人】(501439714)
【Fターム(参考)】