(57)【要約】【課題】整数演算によるカオス演算にて暗号の周期長を隠蔽する。【解決手段】暗号化の鍵データに基づきカオスノイズを発生する写像関数を用いて得たカオスノイズを平文情報に対して適用する演算を行って暗号を生成する暗号生成装置において、前記鍵データに基づいてカオス演算に用いるパラメータ列を生成するパラメータ生成手段１０２と、このパラメータ生成手段１０２により生成されたパラメータ列を用いてカオス演算を行い前記カオスノイズを得るカオスノイズ発生手段１０３と、前記カオスノイズ発生手段により発生されたカオスノイズを用いてパラメータ列に変更を生じさせるようにパラメータ列のスケジューリングを行うスケジューリング手段１０４Ａとを具備する。【選択図】  図１７
2004266486.tif 000002
【特許請求の範囲】
【請求項１】
暗号化の鍵データに基づきカオスノイズを発生する写像関数を用いて得たカオスノイズを平文情報に対して適用する演算を行って暗号を生成する暗号生成装置において、
前記鍵データに基づいてカオス演算に用いるパラメータ列を生成するパラメータ生成手段と、
このパラメータ生成手段により生成されたパラメータ列を用いてカオス演算を行い前記カオスノイズを得るカオスノイズ発生手段と、
前記カオスノイズ発生手段により発生されたカオスノイズを用いて前記パラメータ列に変更を生じさせるようにパラメータ列のスケジューリングを行うスケジューリング手段と
を具備することを特徴とする暗号生成装置。
【請求項２】
前記パラメータ列を前記カオスノイズ発生手段へ提供する順序である初期位相を決定する初期位相決定手段を具備することを特徴とする請求項１記載の暗号生成装置。
【請求項３】
暗号化の鍵データに基づきカオスノイズを発生する写像関数を用いて得たカオスノイズを平文情報に対して適用する演算を行って暗号を生成する暗号生成装置であって、前記鍵データに基づいてカオス演算に用いるパラメータ列を生成するパラメータ生成手段と、このパラメータ生成手段により生成されたパラメータ列を用いてカオス演算を行い前記カオスノイズを得るカオスノイズ発生手段と、前記カオスノイズ発生手段により発生されたカオスノイズを用いて前記パラメータ列に変更を生じさせるようにパラメータ列のスケジューリングを行うスケジューリング手段とを具備する暗号生成装置を用いて生成した暗号文を復号化して元の平文に戻す暗号復号装置において、
前記鍵データに基づいてカオス演算に用いるパラメータ列を生成するパラメータ生成手段と、
このパラメータ生成手段により生成されたパラメータ列を用いてカオス演算を行い前記カオスノイズを得るカオスノイズ発生手段と、
前記カオスノイズ発生手段により発生されたカオスノイズを用いて前記パラメータ列に変更を生じさせるようにパラメータ列のスケジューリングを行うスケジューリング手段と
を具備することを特徴とする暗号復号装置。
【請求項４】
前記パラメータ列を前記カオスノイズ発生手段へ提供する順序である初期位相を決定する初期位相決定手段を具備することを特徴とする請求項３記載の暗号復号装置。
【請求項５】
暗号化の鍵データに基づきカオスノイズを発生する写像関数を用いて得たカオスノイズを平文情報に対して適用する演算を行って暗号を生成する暗号生成装置に用いられる暗号生成プログラムにおいて、
前記鍵データに基づいてカオス演算に用いるパラメータ列を生成するパラメータ生成ステップと、
このパラメータ生成ステップにより生成されたパラメータ列を用いてカオス演算を行い前記カオスノイズを得るカオスノイズ発生ステップと、
前記カオスノイズ発生手段により発生されたカオスノイズを用いて前記パラメータ列に変更を生じさせるようにパラメータ列のスケジューリングを行うスケジューリングステップと
を具備することを特徴とする暗号生成プログラム。
【請求項６】
暗号化の鍵データに基づきカオスノイズを発生する写像関数を用いて得たカオスノイズを平文情報に対して適用する演算を行って暗号を生成する暗号生成装置であって、前記鍵データに基づいてカオス演算に用いるパラメータ列を生成するパラメータ生成手段と、このパラメータ生成手段により生成されたパラメータ列を用いてカオス演算を行い前記カオスノイズを得るカオスノイズ発生手段と、前記カオスノイズ発生手段により発生されたカオスノイズを用いて前記パラメータ列に変更を生じさせるようにパラメータ列のスケジューリングを行うスケジューリング手段とを具備する暗号生成装置を用いて生成した暗号文を復号化して元の平文に戻す暗号復号装置に用いられる暗号復号プログラムにおいて、
前記鍵データに基づいてカオス演算に用いるパラメータ列を生成するパラメータ生成ステップと、
このパラメータ生成ステップにより生成されたパラメータ列を用いてカオス演算を行い前記カオスノイズを得るカオスノイズ発生ステップと、
前記カオスノイズ発生手段により発生されたカオスノイズを用いて前記パラメータ列に変更を生じさせるようにパラメータ列のスケジューリングを行うスケジューリングステップと
を具備することを特徴とする暗号復号プログラム。
【請求項７】
認証を行う認証装置と、この認証装置に対し認証を要求する認証要求装置とにより構成される認証システムにおいて、
前記認証要求装置は、前記認証装置から送られる鍵データと前記認証要求装置が保有する鍵データに基づいてカオス演算に用いるパラメータ列を生成するパラメータ生成手段と、このパラメータ生成手段により生成されたパラメータ列を用いてカオス演算を行い前記カオスノイズを得るカオスノイズ発生手段と、前記カオスノイズ発生手段により発生されたカオスノイズを用いて前記パラメータ列に変更を生じさせるようにパラメータ列のスケジューリングを行うスケジューリング手段とを具備し、前記カオスノイズ発生手段により発生されたカオスノイズを認証子情報として前記認証装置へ返送する一方、
前記認証装置は、前記認証要求装置へ送った鍵データと前記認証要求装置が保有する鍵データに基づいてカオス演算に用いるパラメータ列を生成するパラメータ生成手段と、このパラメータ生成手段により生成されたパラメータ列を用いてカオス演算を行い前記カオスノイズを得るカオスノイズ発生手段と、前記カオスノイズ発生手段により発生されたカオスノイズを用いて前記パラメータ列に変更を生じさせるようにパラメータ列のスケジューリングを行うスケジューリング手段とを具備し、前記カオスノイズ発生手段により発生されたカオスノイズを前記認証装置から返送された認証子情報と比較して認証結果を得ることを特徴とする認証システム。
【請求項８】
前記パラメータ列を前記カオスノイズ発生手段へ提供する順序である初期位相を決定する初期位相決定手段を更に具備することを特徴とする請求項７記載の認証システム。
【請求項９】
認証を行う認証装置に対し認証を要求する電子装置において、
前記認証装置から送られる鍵データと前記認証要求装置が保有する鍵データに基づいてカオス演算に用いるパラメータ列を生成するパラメータ生成手段と、
このパラメータ生成手段により生成されたパラメータ列を用いてカオス演算を行い前記カオスノイズを得るカオスノイズ発生手段と、
前記カオスノイズ発生手段により発生されたカオスノイズを用いて前記パラメータ列に変更を生じさせるようにパラメータ列のスケジューリングを行うスケジューリング手段とを具備し、
前記カオスノイズ発生手段により発生されたカオスノイズを認証子情報として前記認証装置へ返送することを特徴とする電子装置。
【請求項１０】
前記パラメータ列を前記カオスノイズ発生手段へ提供する順序である初期位相を決定する初期位相決定手段を更に具備することを特徴とする請求項９記載の電子装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明はカオス演算を伴う演算にて暗号を生成する暗号生成装置、その逆のプロセスにて復号化を行う暗号復号装置、上記暗号生成装置において用いられる暗号生成プログラム、上記暗号復号装置に用いられる暗号復号プログラム、上記暗号生成の手法を用いた認証システム及び電子装置に関するものである。
【０００２】
【従来の技術】
従来、カオスを用いた暗号化の場合には浮動小数点演算が用いられるのが通例である。しかしながら、浮動小数点演算を用いると、暗号化を行う装置と暗号の復号化を行う装置との夫々に搭載されるプロセッサの演算特性に差があることから、適切な復号化を行い得ないなどの不具合があった。
【０００３】
これに対応するために異機種プロセッサのエミュレーションが考えられるが、これは開発環境の整ったプラットホームのみで実現可能であり、モバイル装置に用いられているＣＰＵや各種電子機器に搭載されているＣＰＵにおいては、係る開発環境が整っているとは言いがたい。
【０００４】
そこで、本願発明者は先に整数演算及びビット演算によりカオス演算を行い、浮動小数点コプロセッサに依存しない暗号生成装置等を提案した。
【０００５】
【特許文献１】特開２００１−２８５２７７号公報（全般）
【０００６】
【発明が解決しようとする課題】
本発明は上記の提案に係る手法を更に進化させるべくなされたもので、その目的は、整数演算及びビット演算によるカオス演算にて十分な秘匿性のある暗号化を行い得る暗号生成装置と暗号生成プログラムを提供し、またこの暗号化された暗号を適切に復号化することのできる暗号復号装置と暗号復号プログラムを提供し、更に上記暗号化復号化処理とほぼ共通化して、適切に認証を行い得る認証システム及びこのシステムに用いられる電子装置を提供することである。
【０００７】
【課題を解決するための手段】
本発明に係る暗号生成装置は、暗号化の鍵データに基づきカオスノイズを発生する写像関数を用いて得たカオスノイズを平文情報に対して適用する演算を行って暗号を生成する暗号生成装置において、前記鍵データに基づいてカオス演算に用いるパラメータ列を生成するパラメータ生成手段と、このパラメータ生成手段により生成されたパラメータ列を用いてカオス演算を行い前記カオスノイズを得るカオスノイズ発生手段と、前記カオスノイズ発生手段により発生されたカオスノイズを用いて前記パラメータ列に変更を生じさせるようにパラメータ列のスケジューリングを行うスケジューリング手段とを具備することを特徴とする。
【０００８】
また本発明に係る暗号生成装置は、前記パラメータ列を前記カオスノイズ発生手段へ提供する順序である初期位相を決定する初期位相決定手段を具備することを特徴とする。
【０００９】
本発明に係る暗号復号装置は、暗号化の鍵データに基づきカオスノイズを発生する写像関数を用いて得たカオスノイズを平文情報に対して適用する演算を行って暗号を生成する暗号生成装置であって、前記鍵データに基づいてカオス演算に用いるパラメータ列を生成するパラメータ生成手段と、このパラメータ生成手段により生成されたパラメータ列を用いてカオス演算を行い前記カオスノイズを得るカオスノイズ発生手段と、前記カオスノイズ発生手段により発生されたカオスノイズを用いて前記パラメータ列に変更を生じさせるようにパラメータ列のスケジューリングを行うスケジューリング手段とを具備する暗号生成装置を用いて生成した暗号文を復号化して元の平文に戻す暗号復号装置において、前記鍵データに基づいてカオス演算に用いるパラメータ列を生成するパラメータ生成手段と、このパラメータ生成手段により生成されたパラメータ列を用いてカオス演算を行い前記カオスノイズを得るカオスノイズ発生手段と、前記カオスノイズ発生手段により発生されたカオスノイズを用いて前記パラメータ列に変更を生じさせるようにパラメータ列のスケジューリングを行うスケジューリング手段とを具備することを特徴とする。
【００１０】
また本発明に係る暗号復号装置は、前記パラメータ列を前記カオスノイズ発生手段へ提供する順序である初期位相を決定する初期位相決定手段を具備することを特徴とする。
【００１１】
本発明に係る暗号生成プログラムは、暗号化の鍵データに基づきカオスノイズを発生する写像関数を用いて得たカオスノイズを平文情報に対して適用する演算を行って暗号を生成する暗号生成装置に用いられる暗号生成プログラムにおいて、前記鍵データに基づいてカオス演算に用いるパラメータ列を生成するパラメータ生成ステップと、このパラメータ生成ステップにより生成されたパラメータ列を用いてカオス演算を行い前記カオスノイズを得るカオスノイズ発生ステップと、前記カオスノイズ発生手段により発生されたカオスノイズを用いて前記パラメータ列に変更を生じさせるようにパラメータ列のスケジューリングを行うスケジューリングステップとを具備することを特徴とする。
【００１２】
本発明に係る暗号復号プログラムは、暗号化の鍵データに基づきカオスノイズを発生する写像関数を用いて得たカオスノイズを平文情報に対して適用する演算を行って暗号を生成する暗号生成装置であって、前記鍵データに基づいてカオス演算に用いるパラメータ列を生成するパラメータ生成手段と、このパラメータ生成手段により生成されたパラメータ列を用いてカオス演算を行い前記カオスノイズを得るカオスノイズ発生手段と、前記カオスノイズ発生手段により発生されたカオスノイズを用いて前記パラメータ列に変更を生じさせるようにパラメータ列のスケジューリングを行うスケジューリング手段とを具備する暗号生成装置を用いて生成した暗号文を復号化して元の平文に戻す暗号復号装置に用いられる暗号復号プログラムにおいて、前記鍵データに基づいてカオス演算に用いるパラメータ列を生成するパラメータ生成ステップと、このパラメータ生成ステップにより生成されたパラメータ列を用いてカオス演算を行い前記カオスノイズを得るカオスノイズ発生ステップと、前記カオスノイズ発生手段により発生されたカオスノイズを用いて前記パラメータ列に変更を生じさせるようにパラメータ列のスケジューリングを行うスケジューリングステップとを具備することを特徴としている。
【００１３】
本発明に係る認証システムは、認証を行う認証装置と、この認証装置に対し認証を要求する認証要求装置とにより構成される認証システムにおいて、前記認証要求装置は、前記認証装置から送られる鍵データと前記認証要求装置が保有する鍵データに基づいてカオス演算に用いるパラメータ列を生成するパラメータ生成手段と、このパラメータ生成手段により生成されたパラメータ列を用いてカオス演算を行い前記カオスノイズを得るカオスノイズ発生手段と、前記カオスノイズ発生手段により発生されたカオスノイズを用いて前記パラメータ列に変更を生じさせるようにパラメータ列のスケジューリングを行うスケジューリング手段とを具備し、前記カオスノイズ発生手段により発生されたカオスノイズを認証子情報として前記認証装置へ返送する一方、前記認証装置は、前記認証要求装置へ送った鍵データと前記認証要求装置が保有する鍵データに基づいてカオス演算に用いるパラメータ列を生成するパラメータ生成手段と、このパラメータ生成手段により生成されたパラメータ列を用いてカオス演算を行い前記カオスノイズを得るカオスノイズ発生手段と、前記カオスノイズ発生手段により発生されたカオスノイズを用いて前記パラメータ列に変更を生じさせるようにパラメータ列のスケジューリングを行うスケジューリング手段とを具備し、前記カオスノイズ発生手段により発生されたカオスノイズを前記認証装置から返送された認証子情報と比較して認証結果を得ることを特徴とする。本発明に係る認証システムは、更に、前記パラメータ列を前記カオスノイズ発生手段へ提供する順序である初期位相を決定する初期位相決定手段を具備することを特徴とする。
【００１４】
本発明に係る電子装置は、認証を行う認証装置に対し認証を要求する電子装置において、前記認証装置から送られる鍵データと前記認証要求装置が保有する鍵データに基づいてカオス演算に用いるパラメータ列を生成するパラメータ生成手段と、このパラメータ生成手段により生成されたパラメータ列を用いてカオス演算を行い前記カオスノイズを得るカオスノイズ発生手段と、前記カオスノイズ発生手段により発生されたカオスノイズを用いて前記パラメータ列に変更を生じさせるようにパラメータ列のスケジューリングを行うスケジューリング手段とを具備し、前記カオスノイズ発生手段により発生されたカオスノイズを認証子情報として前記認証装置へ返送することを特徴とする。本発明に係る電子装置は、更に、前記パラメータ列を前記カオスノイズ発生手段へ提供する順序である初期位相を決定する初期位相決定手段を具備することを特徴とする。
【００１５】
【発明の実施の形態】
以下添付図面を参照して本発明に係る暗号生成装置、暗号復号装置、暗号生成プログラム、暗号復号プログラム、認証システム、電子装置を説明する。各図において同一の構成要素には同一の符号を付して重複する説明を省略する。まず、本発明の前提となる発明（以下、前提発明）について説明する。図１には、前提発明の暗号生成装置１００Ａと暗号復号装置１００Ｂとの構成例が示されている。この暗号生成装置１００Ａと暗号復号装置１００Ｂとは、同一構成であるので、暗号生成装置１００Ａについて説明を行う。
【００１６】
暗号生成装置１００Ａは、暗号化の鍵データに基づきカオスノイズを発生する写像関数を用いて得たカオスノイズを平文情報２０７に対して適用する演算を行って暗号を生成するもので、鍵供給手段１０１、パラメータ生成手段１０２、カオスノイズ発生手段１０３及びスケジューリング手段１０４を備えている。
【００１７】
鍵供給手段１０１は、カオスノイズ生成の源となる鍵データ２０１を供給するものである。パラメータ生成手段１０２は、上記鍵データ２０１に基づいてカオス演算に用いるパラメータ列（初期位相を持ったもの）２０２を生成するものである。このパラメータ生成手段１０２は、上記鍵データ２０１に基づいて鍵固有パラメータ２０３をも生成する。
【００１８】
カオスノイズ発生手段１０３は、上記パラメータ列２０２を用いてカオス演算を行い、カオスノイズであるカオス乱数列２０６を得るものである。このときカオスノイズ発生手段１０３は整数演算型カオス関数２０４を用いる。スケジューリング手段１０４は、カオスノイズ発生手段１０３におけるカオス演算においてパラメータ列２０２が用いられる所定周期毎（この実施例では１周期毎）に当該パラメータ列２０２に変更を生じさせるようにパラメータ列２０２のスケジューリングを行うものであり、このスケジューリングにおいてパラメータスケジューリング関数２０５を用いる。
【００１９】
上記のカオスノイズ発生手段１０３により発生されたカオス乱数列２０６と平文２０７とは排他的論理和回路１０５により排他的論理和演算されて暗号文２０８が得られる。この暗号文２０８は暗号復号装置１００Ｂに送られ、暗号復号装置１００Ｂにおいて上記暗号生成装置１００Ａと同様にして生成されたカオス乱数列２０６と上記暗号文２０８とは排他的論理和回路１０５により排他的論理和演算されて平文２０７へ戻される。
【００２０】
上記暗号生成装置１００Ａと暗号復号装置１００Ｂにおけるカオスノイズ生成の過程においては、整数演算化により対応する。ここでいう整数演算化とは，Ｃ言語におけるｉｎｔ  型，ｌｏｎｇ型など整数演算型のみで記述することで、ｆｌｏａｔ  型やｄｏｕｂｌｅ型など浮動小数点演算型を一切使用しないことである。また、整数演算による浮動小数点演算のソフトウェア的なエミュレーションという意味ではなく、カオス発生構造乃至写像関数自体の整数演算化拡大設計を行うということであり、根本的な処理の整数化を意味する。
【００２１】
ここに、整数演算によるカオス発生の根拠は次のとおりである。整数演算化によるカオス発生の根拠および写像関数の整数演算化設計とは、特にロジスティック写像、テント写像、ベルヌーイシフト写像など、写像系のカオスは２次元幾何学的な発生構造を持つことより、これら写像範囲を整数演算可能な範囲に拡大しても幾何学的発生構造は保たれる。これを図２により説明する。図２に示す写像においてｘ０を出発点とし、そこでの写像関数値ｙ＝ａ  ｘ（１−ｘ）からｙ＝ｘ  に反射（写像）される。このような単純操作の繰り返し（反復）課程でカオスが発生する。この幾何学構造は、縦横共に拡大しても原理的に保たれる（拡大コピーと同じ）。
【００２２】
上記の整数演算化における問題点を説明する。上記カオスの整数演算化において、浮動小数点演算型と比較し、扱える情報量が極端に減少し、計算精度、分解能が落ちる結果となる。これより、カオス状態総数の減少、過去の自己軌道への縮退、これに伴う短周期性が顕著となる。同時に、鍵値として使用可能なカオスパラメータ、初期値の範囲が減少し、十分な鍵長維持には対策が必要となる。
【００２３】
係る整数演算化問題点の解決手法は次の通りである。整数演算化では、カオス状態数の減少ないし短周期性が顕著となるが、カオス拡散度数を示すＬｙａｐｕｎｏｖ（リアプノフ）指数は浮動小数点演算型と同等の領域において同等の正の値を示し、初期条件敏感性、軌道の乱雑性などカオス諸性質は保たれている。図３にロジスティック写像浮動小数点演算での分岐図、図４に整数演算での分岐図を示す。また、図５は浮動小数点演算でのＬｙａｐｕｎｏｖ指数、図６は整数演算でのＬｙａｐｕｎｏｖ指数を示す図である。これら図３〜図６から、それぞれ同等のパラメータ領域において同等のカオス性が覗える。
【００２４】
そこで、本前提発明では、新たにカオスパラメータを定期的に変動させ、擬似的に長周期化を図る方針を与える。つまり、新たに初期のパラメータ変動パターンを鍵値として起用する。尚、ここではパラメータを定期変動させる関数をパラメータスケジューリング関数（２段部関数）と呼ぶ。
【００２５】
本前提発明における暗号生成のための基本構造と暗号復号のための構成は、基本的に既存の同期式カオス暗号方式と同等の構造であるが、既に図１に示されるように、カオス関数が整数演算化設計された独自関数である点と、新たにカオス関数へ渡すパラメータに定期変動を加えるパラメータスケジューリング関数が付加された構造である点が特徴である。
【００２６】
次に、上記において用いる整数演算化カオス関数を例示する。
１次の写像関数（変形テント写像型）の設計例
テント写像は、
ｙ  ＝  ２  ｘ，                （ｘ＜０．５）                        （１−Ａ）
ｙ  ＝  ２  （１−ｘ）    （ｘ＞０．５）                                （１−Ｂ）
で定義される。ただし写像範囲は  ０＜ｘ  ＜１．０  である。
ここで（１−Ａ），（１−Ｂ）  式のｙ  値（出力）は、次のサイクル計算のｘ  値（入力）である。  （１−Ａ），（１−Ｂ）式に従い、順次ｙ  値列（カオス乱数列）を生成するという単純フィードバック構造である。
テント写像は写像中心軸  ｘ＝０．５  を境に対称な直線なので、
ｘ  ＜０．５  の場合                  ｙ  ＝  ２  ｘ                  （２−Ａ）
ｘ  ＞０．５  の場合  ｘ  ＝  １  −ｘ  の処理後      ｙ  ＝  ２  ｘ          （２−Ｂ）
と記述できる。
ここでは，パラメータパターンを増加するため、以下のようにテント写像を変形する。また、同じくｘ＝０．５  を写像の境目とすると、
ｘ  ＜０．５  の場合                  ｙ  ＝  ａ  ｘ  ＋  ｂ              （３−Ａ）
ｘ  ＞０．５  の場合  ｘ  ＝  １  −ｘ  の処理後      ｙ  ＝  ａ  ｘ  ＋  ｂ      （３−Ｂ）
を考える。係る写像関数を図７に示す。
【００２７】
次に整数演算化を考える。ここでは写像範囲
０  ＜ｘ  ＜２  Ｍ              （Ｍ  は正の整数）                  （４）
のように拡大写像を考え、軸の位置は写像の中心ｘ  ＝Ｍとする。また、ａ＝Ａ／Ｍ  ，ｂ＝Ｂ／Ｍ  とし、写像関数をｆ（ｘ）とすると、
2004266486.tif 000003
（Ａ，  Ｂ，  ｘ，  ｆ（ｘ）  値は正の整数、小数点以下切り捨て）
である。係る写像関数を図８に示す。
【００２８】
ここで、Ｍ  を２  のべき乗（Ｍ＝２  Ｋ  ）とした場合、（５−Ａ）  式と（５−Ｂ）  式演算部は、
ｆ（ｘ）  ＝  （Ａ  ｘ）  ＞＞  Ｋ  ＋  Ｂ                                    （６）
（  ＞＞  Ｋ  はＫ  ビット右シフト演算の意味）
のようにビットシフトで表現できる。
具体的にＭ  値を与えると、例えば３２−ｂｉｔ  ＣＰＵにおいて  ｌｏｎｇ  ｉｎｔ  型（倍精度整数演算型）を用いる場合、Ｍ＝３２７６８  まで指定可能である。この場合Ｋ＝１５である（Ｍ＝２  Ｋ  ）。
【００２９】
ここではＡ，  Ｂが本前提発明でのカオスパラメータであり、これらに割り当て可能な領域は以下である。
ここでＡ  の範囲は、軌道拡散の条件より、概ね
１  ＜Ａ  ／  Ｍ  ＜２
つまり、  Ｍ＜Ａ  ＜２  Ｍ                                              （７）
を満たす必要がある。
軌道拡散の条件（※１）
軌道拡散の条件は、写像範囲内の全領域で、写像関数の傾きの絶対値が１以上（｜ｆ´（ｘ）  ｜＞１  ）を満たすことである。これより、反復計算毎にリアプノフ指数は常に正（λ＞０）となる。
また、関数（６）  式の取りうる最大値は  ｘ＝Ｍの時で、最大値が写像範囲  ２Ｍ  以下でなくてはならないので、
2004266486.tif 000004
である。
これより、Ａ，Ｂ  を概ね同程度の範囲とし、並びにＡ  値は大きいほうが望ましいので、
０  ＜  Ｂ  ≦  ΔＢ          （ΔＢ  〜Ｍ  ／  ２  ）                （９）
Ｌ  ＝  ２  Ｍ  −ΔＢ
Ｌ  −ΔＡ  ≦  Ａ  ＜  Ｌ      （ΔＡ  〜Ｍ  ／  ２  ）                （１０）
の関係を得る。
【００３０】
３２−ｂｉｔプロセッサ直接演算（多段分割なし）ではＭ＝３２７６８  なので、
ΔＡ  〜ΔＢ  〜Ｍ  ／  ２  ＝  １６３８４  （１６−ｂｉｔ信号）                （１１）
程度である。
なお，Ａ  値はできるだけ大きい値がカオスの拡散度の向上につながるため、（９）  式、（１０）式よりΔＡ  ，ΔＢ  値を小さく取れば良いが、それでは取りうるパラメータ総数が小さくなってしまう。そこで、ここでは、
ΔＡ  〜ΔＢ  ＝  ４０９６（＝２  １２）                            （１２）
程度を考える。
【００３１】
また、後述のパラメータ可変方式と関連し、
ΔＡ  ，ΔＢ  は同程度の大きさの素数で、ΔＡ  ≠ΔＢ                  （１３）
の条件より、
ΔＡ  ＝  ４０９９                                              （１４）
ΔＢ  ＝  ４１１１                                              （１５）
とした。
（９）  ，（１０），（１４），（１５）式より、本例でのパラメータ指定可能範囲は
Ａ  ：    ５７３２６  ≦  Ａ  ≦  ６１４２４    （ΔＡ  ＝  ４０９９）          （１６）
Ｂ  ：    １  ≦  Ｂ  ≦  ４１１１          （ΔＢ  ＝  ４１１１）          （１７）
である。
これらＡ  ，Ｂ  のパラメータ範囲が、後述のパラメータスケジューリング関数で使用可能な可変範囲である。
【００３２】
次に（６）  式演算部において精度向上に関する考察を述べる。ここではＭ＝３２７６８＝２  １５（Ｋ＝１５）なので、（６）  式は
ｆ（ｘ）  ＝  （Ａ  ｘ）  ＞＞  １５  ＋  Ｂ                                  （１８）
である。（１８）式では，Ａ  ×ｘ  の拡大演算後，１５−ｂｉｔ右シフトで縮小を行うので下位１５−ｂｉｔの情報が消える。
一方、Ａ  の範囲は（１６）のように、２  １５以上２  １６以下のため、１５−ｂｉｔの消し去られた情報が次サイクルの拡大演算課程で１  以上の差につながる場合がある。そこで，１５−ｂｉｔ右シフト演算前の下位１５−ｂｉｔ情報を記憶しておき，次サイクルの拡大演算課程に有効となるように考慮する。この場合、１  回目のループでは、
ｘｂ  ＝  ０を代入し、
ｘ２  ＝  Ａ  ｘ  ＋  （（Ａ  ｘｂ）＞＞１５）                                  （１９−Ａ）
ｘｂ  ＝  ｘ２  ＆  １５                                            （１９−Ｂ）
ｆ（ｘ）  ＝  ｘ２  ＞＞  １５  ＋  Ｂ                                      （１９−Ｃ）
のように書き下す。（（１９−Ｃ）式の出力ｆ（ｘ）が、次サイクルの（１９−Ａ）式の入力ｘ  である）
【００３３】
ここで、（５−Ａ）  ，（５−Ｂ）  に示した整数演算化設計１次の写像関数（変形テント写像）において、（１４），（１５）で示すパラメータ可変幅、および（１６），（１７）で示すパラメータ可変範囲におけるカオス発生の様子を図９の分岐図と図１０におけるＬｙａｐｕｎｏｖ指数の図に示した。尚、図９、図１０は、パラメータ固定（パラメータ可変させる前の原のカオス）である。
図９、図１０より、整数演算化設計１次の写像関数は、考えるパラメータ範囲内全体にわたって連続したカオス領域を確認できる。
たとえば，図４、図６で示すロジスティック写像は、考えるパラメータ範囲内でカオス領域は不連続であるに対し、設計関数の連続カオス領域はパラメータ可変方式を考える上でもｉｆ分岐等が不要など容易な方式が期待できる。
【００３４】
２次の写像関数（変形ロジスティック写像型）の設計例
ロジスティック写像の場合、写像範囲の中心（ｘ＝０．５）  で傾きが１以下の縮小領域が存在する。本方式のような整数演算化において、縮退発生は周期早期化を招く理由より、ロジスティック写像の縮退領域を省き、新たに写像範囲の中心（ｘ＝０．５）  での傾きが１以上を保つ（写像範囲の中心で１階微分値が不連続になる）関数を設計する。
【００３５】
ここで設計する２次関数を
ｆ（ｘ）  ＝  ａ  ｘ２  ＋  ｂ  ｘ  ＋  ｃ                                  （２０）
とする。
尚、整数演算化拡大した写像範囲を０  ＜ｘ  ＜２  Ｍ  とし、ロジスティック写像同様の上に凸（２階微分値が負）の関数を考える。またここでは、特に写像の対称軸をｘ＝Ｍ  （写像範囲の真ん中）とする。この場合、右側関数（Ｍ＜ｘ  ＜２Ｍ）は、ｘ＝２Ｍ−ｘ  の操作後、左側関数（０  ＜ｘ  ＜Ｍ  ）と同等になるため、以下では右側関数について述べる。
【００３６】
さらに隣接軌道が縮退を起こさない条件（※１）を考慮することより、（２０）で与えた関数形は、以下の条件が付されることとなる。
ｆ（Ｍ）  ＝  ｈ（＜２  Ｍ  ）      最大値条件（ｈ  は整数値）                （２１）
ｆ（０）  ＝  ０                最小値条件                              （２２）
ｆ´（Ｍ）  ＝  ｒ  ＞  １  傾きが１以上の条件                              （２３）
ａ  ＜  ０          上に凸                                          （２４）
これらａ，  ｂ，  ｃ  についての一般解および条件を整理すると、
ａ  ＝  −（ｈ  −Ｍ  ｒ）  ／  Ｍ２                                            （２５）
ｂ  ＝  （２  ｈ  −  Ｍ  ｒ）  ／  Ｍ                                            （２６）
ｃ  ＝  ０                                                            （２７）
ｒ  ＞  １                                                            （２８）
ａ  ＜  ０                                                            （２９）
となり、
ｘ  ＞Ｍ  の場合は  ｘ  ＝  ２Ｍ−ｘ    変換する
ｆ（ｘ）  ＝  （（２  ｈ−Ｍ  ｒ）  ／  Ｍ）  ｘ  −（（ｈ  −Ｍ  ｒ）  ／  Ｍ２  ）  ｘ２                （３０）
１  ＜  ｒ  ＜  ｈ  ／  Ｍ                                                （３１）
と整理される。係る写像関数を図１２に示す。
【００３７】
尚、ここで、ｒ  ＝  Ｒ  ／  Ｍ  （Ｒ  は整数値）  とおき、特にｒ  ＜２  であること、および（２３）の条件より、
ｘ  ＞Ｍ  の場合は  ｘ  ＝  ２Ｍ−ｘ    変換する
ｆ（ｘ）  ＝  （（２ｈ  −Ｒ）  ｘ）  ／  Ｍ  −（（ｈ  −Ｒ）  ｘ２  ）  ／  Ｍ  ２                    （３２）
Ｍ  ＜  Ｒ  ＜  ｈ  ＜  ２  Ｍ                                            （３３）
を得る（図１１参照）。
【００３８】
ここでＭ＝２  Ｋ  とした場合，一部ビット演算で記述できる。
また、２次関数の場合、Ｍ＝３２７６８  （Ｋ＝１５）  とした場合、３２−ｂｉｔ（ｕｎｓｉｇｎｅｄ  ｌｏｎｇ  型）では多段処理が必要な点、および精度補正を考えると、以下の様に整理される。（ただし１回目のループはｘｂ  ＝  ０）
ａ１  ＝  （（２  ｈ  −  Ｒ）  ｘｂ）  ＞＞  Ｋ
ｂ１  ＝  （  ｘ２  ）  ＞＞  Ｋ
ｂ２  ＝  （  ｘ２  ）  ＆  （Ｍ−１）
ｃ１  ＝  （２  ｘ  ｘｂ）  ＞＞  Ｋ
ｄ１  ＝  （（ｈ  −  Ｒ）  （ｂ２＋ｃ１））  ＞＞  Ｋ
ｓｓｓ  ＝  （２ｈ  −  Ｒ）  ｘ  ＋  ａ１−  （ｈ  −  Ｒ）  ｂ１  −  ｄ１
ｆ（ｘ）  ＝  ｓｓｓ  ＞＞  Ｋ
ｘｂ  ＝  ｓｓｓ  ＆  （Ｍ−１）                                        （３４）
尚、特に精度補正をしない場合（強制的な切り捨て）、
ｂ１  ＝  （  ｘ２  ）  ＞＞  Ｋ
ｂ２  ＝  （  ｘ２  ）  ＆  （Ｍ−１）
ｄ１  ＝  （（ｈ  −  Ｒ）  ｂ２）  ＞＞  Ｋ
ｓｓｓ  ＝  （２ｈ  −  Ｒ）  ｘ  −  （ｈ  −  Ｒ）  ｂ１  −  ｄ１
ｆ（ｘ）  ＝  ｓｓｓ  ＞＞  Ｋ                                          （３５）
である。
ここで、ｈ，  Ｒがカオスパラメータであり、後述パラメータスケジューリング関数と連結されている。
【００３９】
ｈ  とＲ  の取り得る範囲は、（３３）式の拘束条件を満たす範囲で設定する。また、それぞれの取りうる値の総数Δｈ  ，ΔＲ  はほぼ同数なので
Δｈ  〜  ΔＲ  〜  ２１２  （＜Ｍ  ／  ２  ）
とし，Δｈ  ≒ΔＲ  ，および素数を起用（後述）する条件より，
ｈ  ：    ６１４３６  ≦  ｈ  ≦  ６５５３４    （Δｈ  ＝  ４０９９）                （３６）
Ｒ  ：    ５７３２５  ≦  Ｒ  ≦  ６１４３５    （ΔＲ  ＝  ４１１１）                （３７）
のように与えた。
【００４０】
ここで、（３２）に示した整数演算化設計２次の写像関数（変形ロジスティック写像）において、（３６）、（３７）で示すパラメータ可変幅、パラメータ可変範囲におけるカオス発生の様子を図１５の分岐図と図１６のＬｙａｐｕｎｏｖ指数の図に示した。尚、図１５、図１６は、パラメータ固定（パラメータ可変させる前の素のカオス）である。
これら図１５、図１６より整数演算化設計２次の写像関数は、考えるパラメータ範囲内全体にわたって連続したカオス領域を確認できる。たとえば，図４、図６で示すロジスティック写像は、考えるパラメータ範囲内でカオス領域は不連続であるに対し、設計関数の連続カオス領域はパラメータ可変方式を考える上でもｉｆ分岐等が不要など容易な方式が期待できる。
【００４１】
その他関数系（パラメータ数増加）
２次関数型で１次関数型同様ｙ  切片変位を加える方法
２  次関数型では、１次関数型と同様に、写像範囲の両端（ｘ＝０，  ｘ＝２  Ｍ）にｙ  切片を与えても良い。係る例の写像関数を図１２に示す。この場合、新たにｙ  切片の変位を与えるパラメータが１つ増加し長周期化に寄与する。
【００４２】
左右の写像関数を異なる関数型とする方法
ここでは写像範囲の真ん中を対称軸として左右の関数型は同一の関数について説明してきたが、左右で異なる関数型を採用することより、パラメータ数が２倍になる。これより。莫大な長周期化を図ることができる。係る写像関数を図１３に示す。
【００４３】
写像の軸の変位
ここでは写像範囲の真ん中を対称軸のモデルについて説明してきた。これはビット演算化を意識した理由であるが、例えば図１４のように軸を写像中心からずらして与える方法も考えられる。この場合、軸のｘ  方向の変位を新たなパラメータとして与えることができ長周期化に寄与する。
【００４４】
2004266486.tif 000005
【００４５】
2004266486.tif 000006
2004266486.tif 000007
【００４６】
2004266486.tif 000008
【００４７】
2004266486.tif 000009
2004266486.tif 000010
【００４８】
2004266486.tif 000011
2004266486.tif 000012
【００４９】
2004266486.tif 000013
2004266486.tif 000014
【００５０】
2004266486.tif 000015
【００５１】
１  次の写像関数  ＜その２＞
識別：    ４パラメータモード・写像中心軸対象型・左右関数独立操作
基本関数型：      ｙ＝ａ  ｘ  ＋  ｂ
（以下省略）
１  次の写像関数  ＜その３＞
識別：    ５パラメータモード・写像軸変動非対称型・左右関数独立操作
基本関数型：    ｙ＝ａｘ＋  ｂ
（以下省略）
などを例示することができる。
【００５２】
次に、カオスノイズ発生手段１０３から出力されるカオス乱数列（乱数値抽出）２０６の抽出について説明する。ここで、（１８）式（精度補正無し）および（１９−Ａ），（１９−Ｂ）式の精度補正対策後のｙ  値は本件整数演算化カオス関数が１サイクル毎に生成する１６−ｂｉｔカオス信号である。この１６−ｂｉｔ信号を元に、１−ｂｉｔ  乱数値抽出、８−ｂｉｔ  乱数値抽出する方法について述べる。この処理は、単なる１−ｂｉｔ  と  ８−ｂｉｔ乱数値の抽出のみでなく、抽出前のカオス信号値自体の情報隠蔽に寄与するものである。
【００５３】
ストリーム暗号の原理は、平文情報の１−ｂｉｔ  単位で暗号化処理（平文とＸＯＲ  処理）するものであり、また、１−ｂｉｔ  乱数値抽出の場合は８−ｂｉｔ  乱数値抽出の場合と比較し、系に関するより多くの情報を隠蔽可能であるが、１−ｂｉｔ  乱数値の場合は、８−ｂｉｔ  乱数値の処理の８倍の処理を要する。このため１−ｂｉｔ  単位型か８−ｂｉｔ  単位型かは、別途、処理能力、乱数性度、情報理論的安全性の観点から議論が必要である。ここでは両方式の説明を行う。
【００５４】
１−ｂｉｔ乱数値抽出の場合
（その１）
１サイクル毎でのｙ  値  ＜  Ｍの場合        ：  乱数値＝０
１サイクル毎でのｙ  値  ＞  Ｍの場合      ：  乱数値＝１              （３８）
とする方法。
（その２）
１サイクル毎のｙ  値が偶数の場合  ：  乱数値＝０
１サイクル毎のｙ  値が奇数の場合  ：  乱数値＝１                      （３９）
とする方法。この２つが挙げられる。
【００５５】
８−ｂｉｔ乱数値抽出の場合
１サイクル毎でのｙ  値（１６−ｂｉｔ  信号）  の下位８−ｂｉｔ  信号を８−ｂｉｔ  乱数値とする。情報論的に考えると上位８−ｂｉｔ  の欠如、下位８−ｂｉｔ  の欠如のいずれの場合であっても、８−ｂｉｔ  情報が落ちているに変わりないが、物理学的に考えると、上位８−ｂｉｔ  が欠如されているということは、有効数値上位８−ｂｉｔ  情報が欠如していることを意味し、大まかな位置の推定情報さえ隠蔽していることを意味する。これに対し、下位ビットの欠如の場合は、上位８−ｂｉｔ  のおおまかな位置情報を与えてしまう。これより上位８−ｂｉｔ  を故意に情報落ちさせ、下位８−ｂｉｔ  を乱数値として採用するのが妥当であると考える。尚、上記に対し、さらにテーブル変換を行う方法も考えられる。テーブル値は鍵値によって異なるものが望ましい。
【００５６】
次に、排他的論理和回路１０５において行われる暗号化処理／復号化処理について説明する。既述の通り、暗号化は、上記より生成した乱数列を平文の８−ｂｉｔ（１−ｂｉｔ）ごとにＸＯＲ  処理（排他的論理和）を行い暗号文を得ることにより実現され、また、復号化は、上記より生成した乱数列を暗号文の８−ｂｉｔ（１−ｂｉｔ）ごとにＸＯＲ  処理（排他的論理和）を行い平文を得ることにより実現される。暗号化と復号化で対称の構造を持つものである。
【００５７】
スケジューリング手段１０４が用いるパラメータスケジューリング関数２０５の説明を行う。写像系カオスの２次元幾何学的発生構造は、整数演算範囲に拡大しても、その構造は原理的に保たれる。一方、整数演算型では、扱える数値幅が比較的小さい点、大幅な切捨てが行われる点、縮退発生頻度が高い点、早期周期性が現れる点が問題である。本構成例では、これらをパラメータの定期変動にて解決しようとするもので、その役割を担うのがパラメータスケジューリング関数（カオス関数が１段部関数と言えるのに対し、２段部関数と言える）２０５である。
【００５８】
パラメータスケジューリング関数２０５の使命は、整数演算化カオス関数の短周期性をパラメータの可変により擬似的に長周期化を図る目的で導入されており、鍵値で与えられたパラメータ列に対し、鍵値パラメータ列の固有性（ユニーク）を維持しつつ可変化させる。従って、整数演算化カオス関数を補助する役割であるため、可能な限りシンプルな構成としたい。ここでは、以下のような可変方式を考える。
【００５９】
パラメータ範囲を０  〜６  の７段階とすると、
2004266486.tif 000016
のように変化させる。
【００６０】
上記においては６  回目の反復で、どの初期パラメータから出発しても０となるので、予め初期位相を設けておくなど工夫する。そして、初期位相は鍵値により変動させる。まとめると次のようである。
2004266486.tif 000017
Ｐａｒａｍ０          ：  パラメータ基底値
ＭＡＸ＿Ｐａｒａｍ      ：  パラメータ最大値
ここで、Ｐａｒａｍ［  ］は、  １次の写像関数（変形テント写像）２パラメータモードでのＡ［  ］，Ｂ［  ］（（１６），（１７））に相当する。同様に、  ＫＥＹ＿Ｐａｒａｍ［  ］は、  ＫＥＹ＿Ａ［  ］，ＫＥＹ＿Ｂ［  ］に相当する。また、２次の写像関数（変形ロジステック写像）２パラメータモードでのｈ［  ］，Ｒ［  ］（（３６），（３７））に相当する。同様に、  ＫＥＹ＿Ｐａｒａｍ［  ］は、  ＫＥＹ＿ｈ［  ］，ＫＥＹ＿Ｒ［  ］に相当する。
【００６１】
次にパラメータスケジューリング関数の設計例を示す。
１次の写像関数におけるパラメータスケジューリング関数の設計例
整数演算化１次の写像関数設計例で示したカオス関数、具体的には（５−Ａ）  、（５−Ｂ）  で示す１次の写像関数、（１４），（１５）で示すパラメータ幅、および（１６）、（１７）で示すパラメータ範囲を用いる場合において、パラメータ可変関数の一例を以下に挙げる。尚、ここでは、パラメータ数は（１４）〜（１７）で記されるＡ，Ｂ  の２つのパラメータを使用する場合である。
可変可能なパラメータ情報は、
（１４）より        ΔＡ  ＝  ４０９９
（１５）より        ΔＢ  ＝  ４１１１
（１６）より        ５７３２６  ≦  Ａ  ≦  ６１４２４
（１７）より        １  ≦  Ｂ  ≦  ４１１１                          （４３）
である。
Ａ０  ＝  ５７３                                                        （４４）
Ｂ０  ＝  １                                                          （４５）
とする。
ここで、鍵より鍵固有パラメータ列  ＫＥＹ＿Ａ［  ］、  ＫＥＹ＿Ｂ［  ］、およびパラメータ列Ａ［  ］、Ｂ［  ］の初期位相が与えられているとし、それぞれの配列数（配列の要素数）をｍ  とすると、
2004266486.tif 000018
である。ここで、  ＭＡＸ＿Ａ  は、パラメータＡ［  ］の最大値（ＭＡＸ＿Ａ＝Ａ０＋ΔＡ−１）、  ＭＡＸ＿Ｂ  は、パラメータＢ［  ］の最大値（ＭＡＸ＿Ｂ＝Ｂ０＋ΔＢ−１）である。
尚、鍵値固有パラメータ列  ＫＥＹ＿Ａ［  ］，ＫＥＹ＿Ｂ［  ］の範囲は以下である。
２８０１  ≦  ＫＥＹ＿Ａ［  ］≦  ３０５６        ２５６  階調                （５２）
２８０１  ≦  ＫＥＹ＿Ｂ［  ］≦  ３０５６        ２５６  階調                （５３）
【００６２】
２次の写像関数におけるパラメータスケジューリング関数の設計例
整数演算化２次の写像関数設計例で示したカオス関数、具体的には（３２）で示す２次の写像関数、（３６），（３７）で示すパラメータ幅、パラメータ範囲を用いる場合において、パラメータ可変関数の一例を以下に挙げる。尚、この例では、パラメータ数は、（３６），（３７）で記されるｈ  、Ｒ  の２つのパラメータを使用する場合である。
【００６３】
可変可能なパラメータ情報は，
2004266486.tif 000019
である。
また、それぞれｈ  ，Ｒ  の最小値をｈ０，Ｒ０と表し、
ｈ０  ＝  ６１４３６                                                      （５５）
Ｒ０  ＝  ５７３２５                                                      （５６）
とする。
以下は１  次関数でのパラメータスケジューリング関数例と同様である。
鍵より鍵固有パラメータ列  ＫＥＹ＿ｈ［  ］，ＫＥＹ＿Ｒ［  ］，およびパラメータ列ｈ［  ］，Ｒ［  ］の初期位相が与えられているとし，それぞれの配列数（配列の要素数）をｍ  とすると、
2004266486.tif 000020
である。ここで、  ＭＡＸ＿ｈ  は、パラメータｈ［  ］の最大値（ＭＡＸ＿ｈ＝ｈ０＋Δｈ−１）、  ＭＡＸ＿Ｒ  は、パラメータＲ［  ］の最大値（ＭＡＸ＿Ｒ＝Ｒ０＋ΔＲ−１）である。
尚，鍵値固有パラメータ列  ＫＥＹ＿ｈ［  ］，  ＫＥＹ＿Ｒ［  ］の範囲は以下である。
２８０１    ≦  ＫＥＹ＿ｈ［  ］≦  ３０５６        ２５６  階調              （６３）
２８０１  ≦  ＫＥＹ＿Ｒ［  ］≦  ３０５６        ２５６  階調              （６４）
【００６４】
次に、上記の如き整数演算型カオス関数２０４とパラメータスケジューリング関数２０５を採用した場合における鍵データの設計及び鍵データ２０１から初期情報であるパラメータ列２０２及び鍵固有パラメータ２０３への変換について説明を行う。本前提発明は、カオス暗号を実現する上で、カオス算出に必要となるパラメータを定期的に変動させる手法を採用するものあり、鍵データ２０１に基づき鍵固有パラメータ２０３およびパラメータ列（初期位相）２０２を提供する。従って、鍵データ２０１は、採用されるパラメータスケジューリング関数２０５と密接に関係を有する。
【００６５】
既述した１  次の写像関数およびパラメータスケジューリング関数を例に挙げて具体的に説明すると、鍵は鍵固有パラメータ列（  ＫＥＹ＿Ａ［  ］，  ＫＥＹ＿Ｂ［  ］）およびパラメータ列（Ａ［  ］，Ｂ［  ］）を決定する。即ち、鍵固有パラメータ列（  ＫＥＹ＿Ａ［  ］，  ＫＥＹ＿Ｂ［  ］）は鍵値固有のパラメータ列であり、入力以降変更されることはない。一方、パラメータ列（Ａ［  ］，Ｂ［  ］）は，実際にカオス算出に寄与するパラメータ列であり、パラメータスケジューリング関数２０５にて随時更新される。また、更新方法は既に述べたように鍵固有パラメータ列（  ＫＥＹ＿Ａ［  ］，ＫＥＹ＿Ｂ［  ］）２０３を参照し、随時更新される（（４３）〜（５３））。
【００６６】
鍵設計例を説明する。鍵は、鍵供給手段１０１の鍵ファイルから供給されることを前提とした場合、例えば鍵ファイル中には´０´  〜´９´  ，´Ａ´  〜´Ｆ´  の１６階調の１−ｂｙｔｅ文字列より構成するなどとする。これより、鍵値固有パラメータ（  ＫＥＹ＿Ａ［  ］，  ＫＥＹ＿Ｂ［  ］）２０３は鍵ファイル中に記述された文字列より求めるが、その  ＫＥＹ＿Ａ［  ］，  ＫＥＹ＿Ｂ［  ］の範囲は（５２），（５３）より
（５２）より  ２８０１  ≦  ＫＥＹ＿Ａ［  ］≦  ３０５６      ２５６  階調
（５３）より  ２８０１  ≦  ＫＥＹ＿Ｂ［  ］≦  ３０５６      ２５６  階調
としたため、
１６階調×１６階調＝２５６階調より、鍵ファイル中記述の２  文字で  ＫＥＹ＿Ａ［  ］，もしくは  ＫＥＹ＿Ｂ［  ］に入力される１つの配列要素を決定する。
【００６７】
ここでは、パラメータはＡ  ，Ｂ  の２つ（２パラメータモード）を考えている。従って４  文字で  ＫＥＹ＿Ａ［  ］，ＫＥＹ＿Ｂ［  ］にそれぞれ１つの要素が決定される。また、これは１６−ｂｉｔ暗号に相当する。１２８−ｂｉｔ  暗号では、１２８（ｂｉｔ）／８（ｂｉｔ  ／ｐａｒａｍ）／２（ｐａｒａｍ  ｍｏｄｅ）  ＝  ８  より、  ＫＥＹ＿Ａ［  ］，ＫＥＹ＿Ｂ［  ］はそれぞれ８個の要素数となり、および鍵ファイル中には８  ×２＝１６文字を必要とする。同様に１０２４−ｂｉｔ暗号では、１０２４（ｂｉｔ）  ／８（ｂｉｔ  ／ｐａｒａｍ）／２（ｐａｒａｍ  ｍｏｄｅ）  ＝  ６４より、それぞれ６４個の配列要素数、および鍵ファイル中には６４×２＝１２８  文字を必要とする。
【００６８】
鍵データ２０１から鍵固有パラメータ２０３への変換規則の例を説明する。鍵ファイルの文字から鍵固有パラメータ列（  ＫＥＹ＿Ａ［  ］，ＫＥＹ＿Ｂ［  ］）２０３の変換規則は、あらかじめ決められた方法であればいかなる規則でも構わない。例えば、´ＡＢ´→´２９０１´，´９Ｆ´→´３０４１´など変換規則を決定しておく。
【００６９】
次にパラメータ列（Ａ［  ］，Ｂ［  ］）２０２の初期位相決定に関する例を説明する。鍵データ２０１は鍵固有パラメータ列（  ＫＥＹ＿Ａ［  ］，ＫＥＹ＿Ｂ［  ］）２０３の他に、パラメータスケジューリング関数２０５にて随時変更されるパラメータ列（Ａ［  ］，Ｂ［  ］）２０３の初期位相を与える。特に、Ａ［  ］＝ＫＥＹ＿Ａ［  ］、Ｂ［  ］＝ＫＥＹ＿Ｂ［  ］と与えても構わないが、この構成例ではカオスを利用する。
【００７０】
カオスを利用する場合、既に鍵設計例の欄において記した手法により鍵より  ＫＥＹ＿Ａ［  ］，ＫＥＹ＿Ｂ［  ］を決定した後、まずＡ［  ］＝ＫＥＹ＿Ａ［  ］，Ｂ［  ］＝ＫＥＹ＿Ｂ［  ］を代入し、この状態で通常通りカオスを算出する。このカオス算出における反復数をｚ  回とすると、ｚ  回反復の最後から２  ×ｍ  個分（ｚ  −（２×ｍ）＋１番目からｚ  番目まで）のカオス乱数値をＡ［  ］，Ｂ［  ］の初期パラメータ列として利用する方法を採用する。これは，後述する「関数の初期助走期間」を兼ねることが可能なことを考慮すると、効率良くランダムな初期位相を生成可能となる。
【００７１】
上記初期位相決定の課程では、特にパラメータスケジューリングは行わなくても良い。また、反復数ｚ  の値はできるだけ大きいほうが望ましいが、経験上ｎ−ｂｉｔ  暗号の場合ではｎ  ／８  〜ｎ  ／２  程度が妥当である。
【００７２】
「カオス関数の初期助走期間」の説明。全ての初期情報（鍵固有パラメータ列２０３およびパラメータ２０２（初期位相））が与えられた後、コア部関数は正常に動作可能状態となり、本発明に係るパラメータ可変の方式によるカオス擬似乱数の算出が可能となるが、ここで鍵情報拡散のため、初期のｚ  回の反復で生成される擬似乱数は捨て、ｚ  回目以降の反復より得られる擬似乱数列を有効とする。ｚ  の値はできるだけ大きいほうが望ましいが、前述の通り経験上ｎ−ｂｉｔ  暗号の場合ではｎ  ／８  〜ｎ  ／２  程度が妥当である。この値は本例において、カオス初期条件敏感性により隣接する近傍が写像範囲全体に拡散されるまでの反復回数の試算である。また、パラメータ列（  ＫＥＹ＿Ａ［  ］，ＫＥＹ＿Ｂ［  ］）の初期位相決定に関し、後半部説明のカオスを利用する場合、この操作過程中において関数初期助走を兼ねている。
【００７３】
上記のようにパラメータスケジューリング関数２０５を用いる暗号化及び復号化の手法により、十分な秘匿性のある暗号化が可能となった。しかしながら、上記の前提発明においては、鍵情報に基づきパラメータスケジュール関数を用いてパラメータに定期的に変動を加えるものであるから、パラメータの変化パターンが尽きたときが、当該暗号方式の周期長と見做すことができる。従って、如何なる初期条件（暗号鍵）を用いても周期長は論理的に対応する所定値を持つこととなり、限界が存在する。
【００７４】
勿論、カオスにおいて周期長の見積もりは困難であり、またパラメータによって周期長は大きく異なる。この特性は、暗号鍵の選択によっては性能（周期長）に大きな偏りが生じることを意味し、改善の余地がある。そこで、本発明では、カオスノイズ発生手段１０３により発生されたカオスノイズを用いてパラメータ列に変更を生じさせるようにパラメータ列のスケジューリングを行うようにする。つまり、１つ前のサイクルにて算出されたカオスノイズ（カオス乱数列）を当該サイクルにおけるパラメータ変更の情報として用いることにより周期性の隠蔽（無周期性）を確保する。
【００７５】
図１７には、本発明に係る暗号生成装置１００ＡＡと暗号復号装置１００ＢＢとが示されている。暗号生成装置１００ＡＡと暗号復号装置１００ＢＢとは、同一構成であるので、暗号生成装置１００ＡＡについて説明を行う。暗号生成装置１００ＡＡは前提発明における暗号生成装置１００Ａを改良したものであり、スケジューリング手段１０４Ａが、カオスノイズ発生手段１０３により発生されたカオスノイズにより抽出されたカオス乱数列２０６に基づいてパラメータ列に変更を生じさせるようにパラメータ列のスケジューリングを行うように構成されている。
【００７６】
関数形
本発明における関数形について説明する。本発明における暗号化関数をＥｎｃ、復号化関数をＤｅｃとする。鍵長に依存する配列要素数をｍとし、パラメータ可変ｊ周期目ｉ番目の平文をＰ［ｉ］、暗号文をＣ［ｉ］、カオス乱数値をｒａｎｄ［ｉ］  、使用するカオスパラメータ列をＡ［ｉ］，Ｂ［ｉ］（１≦ｉ≦ｍ−１）とすると、暗号化処理は次の形式にて与えられる。（ここでは、Ａ［ｉ］，Ｂ［ｉ］  の２変数（２パラメータモード）の例である。）
Ｃ［ｉ］＝Ｅｎｃ（Ｐ［ｉ］，Ａ［ｉ］，Ｂ［ｉ］，ｒａｎｄ［ｉ−１］）・・・（７１）
ただし、パラメータ可変０周期目の先頭データの処理に必要なｒａｎｄ［−１］は任意の固定値（暗号化側と復号化側において、予め取り決めした値）である。また、パラメータ可変ｊ周期目の先頭データの処理に必要なｒａｎｄ［−１］はｊ−１周期目の最後尾のｒａｎｄ［ｍ−１］  である。
【００７７】
また、復号化処理は次の形式にて与えられる。
Ｐ［ｉ］＝Ｄｅｃ（Ｃ［ｉ］，Ａ［ｉ］，Ｂ［ｉ］，ｒａｎｄ［ｉ−１］）・・・（７２）
ただし、パラメータ可変０周期目の先頭データの処理に必要なｒａｎｄ［−１］は任意の固定値（暗号化側と復号化側において、予め取り決めした値）である。また、パラメータ可変ｊ周期目の先頭データの処理に必要なｒａｎｄ［−１］はｊ−１周期目の最後尾のｒａｎｄ［ｍ−１］  である。
【００７８】
上記において、Ｅｎｃ関数とＤｅｃ関数の第４引数が本発明の効果を与えるものであり、各関数は内においてｒａｎｄ［ｉ−１］  がカオス演算に影響を与えるように設計を行う。また、暗号化と復号化の第１番目（先頭）の処理においては、ｒａｎｄ［−１］が必要となるが、これについては、上記のように例えば暗号化側と復号化側において、予め取り決めした固定値とするか、暗号鍵を用いて所定演算（暗号化側と復号化側において、予め取り決めした演算）を行い算出することができる。
【００７９】
パラメータ変動処理の具体的例では、図１８に示されるフローチャートに示す処理が行われる。ここでは、カオスパラメータが２つの場合であり、情報の第ｉ番目のデータに対し定期変更系列によるパラメータ列をＡ［ｉ］、本発明において採用するランダム変動系列によるパラメータ列をＢ［ｉ］、１サイクル前に算出されたカオスノイズ値をｒａｎｄ［ｉ−１］  、鍵値より与えられるパラメータ可変情報を  ＫＥＹ＿Ａ［  ］、ＫＥＹ＿Ｂ［  ］とし、パラメータ最大値を  ＭＡＸ＿Ａ  、ＭＡＸ＿Ｂ  、パラメータ基底値をＡ０、Ｂ０とする。先ず、１サイクル前にて算出されたカオスノイズ（カオス乱数列）を用いたパラメータ変動を行う条件に該当するかを検出する（Ｓ１０１）。
【００８０】
上記ステップＳ１０１に用いる条件の例示として、次の２つのいずれかを挙げることができる。
例１：Ａ［ｉ−１］、Ｂ［ｉ−１］、ｒａｎｄ［ｉ−１］  のいずれか１つもしくは複数が、ある所定値の範囲に収まった場合。                                          （７３）
例２：Ａ［ｉ−１］、Ｂ［ｉ−１］、ｒａｎｄ［ｉ−１］  のいずれか１つもしくは複数を参照して、所定演算処理を行い、その結果がある所定値の範囲に収まった場合。    （７４）
上記所定演算処理としては、１つ前のパラメータ位相差ｄ［ｉ−１］を求めるための演算ｄ［ｉ−１］＝Ａ［ｉ−１］−Ｂ［ｉ−１］を挙げることができる。
【００８１】
上記ステップＳ１０１において、上記例示した条件に該当する場合には、１つ前のカオスノイズ値を用いてパラメータ変動を実行する（Ｓ１０２）。このステップＳ１０２においては、定期変動系列のパラメータＡについては、
Ａ［ｉ］＝Ａ０＋ｆｍｏｄ（Ａ［ｉ−１］−Ａ０＋ＫＥＹ＿Ａ［ｉ］，ＭＡＸ＿Ａ）                      （７５）
また、ランダム変動系列のパラメータＢについては、次の例１、例２のいずれかを実行する。
2004266486.tif 000021
【００８２】
上記ステップＳ１０１において、上記例示した条件に該当しない場合には、１つ前のカオスノイズ値を用いたパラメータ変動は実行せず、予め定めた例えば次のパラメータを用いる処理を実行する（Ｓ１０３）。このステップＳ１０３において、定期変動系列のパラメータＡについては、既に示した（７５）式による処理を行い、ランダム変動系列のパラメータＢについては、次の例１、例２のいずれかを実行する。
例１：Ｂ［ｉ］＝Ｂ０＋ｆｍｏｄ（Ｂ［ｉ−１］−Ｂ０＋ＫＥＹ＿Ｂ［ｉ］，ＭＡＸ＿Ｂ  ）                （７８）
例２：Ｂ［ｉ］＝Ｂ［ｉ−１］                                              （７９）
【００８３】
上記ステップＳ１０２またはステップＳ１０３による処理を終了した場合には、カオスノイズ発生の処理（Ｓ１０４）へ進み、カオス関数ｆｕｎｃによりカオスノイズ発生等が次の（８０）から（８３）の式により実行され、ステップＳ１０１へと戻って処理が続けられる。
【００８４】
Ｘ［ｉ］＝ｆｕｎｃ（Ｘ［ｉ−１］，Ａ［ｉ］，Ｂ［ｉ］）                                （８０）
ｒａｎｄ［ｉ］＝Ｘ［ｉ］の下位ビット抽出                              （８１）
Ｃ［ｉ］＝ＸＯＲ（Ｐ［ｉ］，ｒａｎｄ［ｉ］）    （暗号化処理）                  （８２）
Ｐ［ｉ］＝ＸＯＲ（Ｃ［ｉ］，ｒａｎｄ［ｉ］）    （復号化処理）                  （８３）
【００８５】
以上のように本実施例の暗号化及び符号化によって、１つ前のサイクルにて算出されたカオスノイズ（カオス乱数列）を当該サイクルにおけるパラメータ変更の情報として用い、これにより周期性の隠蔽（無周期性）の確保がなされることになる。
【００８６】
図１９に、本発明に係る認証システムにおける要部である認証子生成部１００Ｃの構成を示す。認証子生成部１００Ｃは、図１７に示した暗号生成装置１００ＡＡや暗号復号装置１００ＢＢと基本的な構成を同一としている。つまり、パラメータ生成手段１０２、カオスノイズ発生手段１０３、スケジューリング手段１０４Ａを具備している。
【００８７】
また、認証子生成部１００Ｃに特有な構成として、鍵供給手段１０１Ｃ及び認証子出力部１０６を備える。鍵供給手段１０１Ｃは、端末固有鍵データ２１８と乱数鍵データ２１９とを組み合わせ鍵データ２０１を出力するものである。この構成において、組み合わせとしては、端末固有鍵データ２１８を上位ビット（下位ビット）とし乱数鍵データ２１９を下位ビット（上位ビット）とする手法や、これらを組み合せる手法等が採用される。
【００８８】
上記鍵データ２０１を用いて、パラメータ生成手段１０２、カオスノイズ発生手段１０３及びスケジューリング手段１０４Ａが行う処理は暗号生成装置１００ＡＡや暗号復号装置１００ＢＢにおける動作と同一であり、カオスノイズ発生手段１０３からカオス乱数列２０６が得られる。認証子出力部１０６は、カオス乱数列２０６を認証子２２７として出力する。
【００８９】
上記において、認証子生成部１００Ｃがネットワークに設けられるクライアントに適用される場合には、端末固有鍵データ２１８は予め自装置に固有の情報としてセットされているものであり、乱数鍵データ２１９はサーバから認証の都度送られてくるものである。これに対して、認証子生成部１００Ｃがネットワークに設けられるサーバに適用される場合には、端末固有鍵データ２１８は予め所定のクライアントに割り当てたデータとして保持しているものであり、乱数鍵データ２１９はクライアントからの要求に応じて認証の都度送信したデータである。
【００９０】
上記のような構成を含むクライアント（端末（被認証側））とサーバ（認証側）が行う認証手続きが、図２０に示されている。これを説明する。端末は認証要求を認証側へ送る（Ｓ１）。これを受けた認証側ではＩＤ要求を返送し（Ｓ２）、これに応えて端末は自装置のＩＤを送る（Ｓ３）。このＩＤを受けた認証側では、当該ＩＤに基づき端末に対応の端末固有鍵を特定可能となっている。
【００９１】
認証側は、乱数鍵を生成してこれを端末へ送信する（Ｓ４）。端末は前述の通りに自装置の端末固有鍵と乱数鍵とを認証鍵としてカオスを算出し、認証子を生成してこれを認証側へ送信する（Ｓ５）。認証側では、上記ＩＤ対応の端末固有鍵と自らが端末へ送信した乱数鍵とを認証鍵としてカオスを算出し、認証子を生成して、この認証子と端末から送られてきた認証子とを比較し、結果（一致の場合には認証ＯＫ、不一致の場合には認証ＮＧ）を端末へ返送する（Ｓ６）。
【００９２】
ここで説明した認証子生成部１００Ｃ、図１７において説明した暗号生成装置１００ＡＡや暗号復号装置１００ＢＢは、全てが１つの電子機器に搭載される。この電子機器とは、パーソナルコンピュータやワークステーションなどの各種コンピュータ、携帯電話機などの携帯端末、ＩＣカード、情報家電機器などである。
【００９３】
この電子機器として、パーソナルコンピュータやワークステーションなどのコンピュータの構成を図２１に示す。このコンピュータは、装置を統括制御するＣＰＵ５１を有し、このＣＰＵ５１に上記ＣＰＵ５１が用いるプログラム及びデータ等の情報が記憶される主記憶装置５２が接続されている。更に、ＣＰＵ５１には、システムバス５３を介してキーボード制御部５４、表示制御部５５、プリンタ制御部５６、通信インタフェース５７、マウス制御部５８、磁気ディスク制御部５９が接続されている。キーボード制御部５４には各種情報をキー入力可能なキーボード入力装置６０が接続され、表示制御部５５には情報を表示するためのＣＲＴ表示装置６１が接続され、プリンタ制御部５６には情報を印字出力するためのプリンタ装置６２が接続され、通信インタフェース５７には回線を介してサーバ等との間で通信を行うための通信処理部６３が接続され、マウス制御部５８にはポインティングディバイスであるマウス６４が接続され、磁気ディスク制御部５９には補助記憶装置である磁気ディスク装置６５が接続されている。なお、ネットワークを介して接続されるサーバには、ＣＰＵ５１、主記憶装置５２、磁気ディスク制御部５９、磁気ディスク装置６５、通信インタフェース５７、通信処理部６３が少なくとも設けられる。また、このコンピュータには、必要に応じてフロッピーディスクドライブ、磁気カード或いはＩＣカードリーダ、ＭＯ（光磁気ディスク）ドライブ等が設けられる。
【００９４】
上記のコンピュータにおける磁気ディスクには、図２２〜図２５に示されるフローチャートのプログラムが記憶され、動作時に主記憶装置５２にロードされて実行され、図１７に示される暗号生成装置１００ＡＡ、暗号復号装置１００ＢＢ及び図１９に示される認証子生成部１００Ｃが実現されるので、このフローチャートによる動作を説明する。
【００９５】
図２２のフローチャートは、全体の概略処理を示すものである。このフローチャートによるプログラムが起動されると、動作モードの検出が行われ、暗号化／復号化モードを行うかまたは認証子生成モードを行うのかの判定を行う（Ｓ１１）。ここで、暗号化／復号化モードであることを検出すると、前述の如き暗号鍵をファイルから取り出し鍵データとする（Ｓ１２）。また認証子生成モードであることを検出すると図２０に示されるシーケンスを行い、乱数鍵を得て端末固有鍵と組み合せて鍵データとする（Ｓ１３）。
【００９６】
上記ステップＳ１２またはステップＳ１３により鍵データを得ると、パラメータ生成手段１０２として鍵固有パラメータ２０３を得ると共に初期値を決定する処理を行い（Ｓ１４）、次に、鍵の拡散と共にランダム初期位相（パラメータ列）を生成して格納する処理を行う（Ｓ１５）。このランダム初期位相に基づき、カオスノイズ発生手段１０３が暗号化／復号化或いは認証子生成を行う（Ｓ１６）。この暗号化／復号化或いは認証子生成のときにスケジューリング手段１０４Ａがパラメータスケジューリング関数を用いたパラメータスケジューリングを行う。上記ルーチンＳ１４の詳細は図２３のフローチャートに示され、ルーチンＳ１５の詳細は図２４のフローチャートに示され、ルーチンＳ１６の詳細は図２５のフローチャートに示されている。
【００９７】
ルーチンＳ１４の詳細を説明する。鍵データ２０１に基づき鍵長、パラメータ数、パラメータ長、ｘ初期値、初期反復回数を、それぞれｎ，ｓ，ｍ，ｘ０，ｚにセットし、鍵固有パラメータ列を予め定められた規則（テーブル等）により得て、  ＫＥＹ＿Ｐａｒａｍ［ｉ］（ｉ＝０〜ｍ−１）にセットする（Ｓ２１）。ここに、  ＫＥＹ＿Ｐａｒａｍ［ｉ］は、パラメータ数がｓ個であるとき、Ｐ０［ｉ］，Ｐ１［ｉ］，・・・・，Ｐｓ−１［ｉ］（０≦ｉ  ≦ｍ−１）のように、ｓ個のパラメータ列の組（２次元配列）を意味する。これはＳ２２に登場するＰａｒａｍ［ｉ］についても同様である。次の処理では、ｘにｘ０をセットすると共に、Ｐａｒａｍ［ｉ］へ  ＫＥＹ＿Ｐａｒａｍ［ｉ］（ｉ＝０〜ｍ−１）をセットし、ｉとｊに０をセットする（Ｓ２２）。ここで、Ｐａｒａｍ［  ］とは、１次の写像関数（変形テント写像）２パラメータモードでのＡ［  ］，Ｂ［  ］（（１６），（１７））に相当する。同様に、  ＫＥＹ＿Ｐａｒａｍ［  ］は、  ＫＥＹ＿Ａ［  ］，ＫＥＹ＿Ｂ［  ］に相当する。また、２次の写像関数（変形ロジスティック写像）２パラメータモードでのｈ［  ］，Ｒ［  ］（（１６），（１７））に相当する。同様に、  ＫＥＹ＿Ｐａｒａｍ［  ］は、  ＫＥＹ＿ｈ［  ］，ＫＥＹ＿Ｒ［  ］に相当する。
【００９８】
次にルーチンＳ１５の詳細を説明する。まず、上記Ｐａｒａｍ［ｉ］を用いてカオス算出を行う（Ｓ３１）。ｚ回の反復が行われるようにｉ値の正常確認を行い（Ｓ３２）、正常であるときにはカオスノイズの情報落ち１バイト乱数をｒａｎｄにセットする（Ｓ３３）。次に図の如くｑとｒの値を変化させて（Ｓ３４）、ランダム初期位相Ｐｈａｓｅ［ｒ，  ｑ／ｓ］  に対し、ｒａｎｄにセットされている情報落ち１バイト乱数をセットし記録を行う（Ｓ３５）。
【００９９】
次に図の如くｉとｊの更新を行い（Ｓ３６）、ｚ回の反復が行われるようにｉ値の確認を行い（Ｓ３７）ｚ回の反復が終わると、復旧する。このように、係る処理においては、暗号化部同様の整数演算型カオス関数を用いると共にｚ回の初期助走期間を実行し、鍵値拡散を行い、ｚ回助走過程で得たカオス乱数値を初期位相として利用するものである。なお、ここの整数演算型カオス関数を用いるカオスノイズ発生においては、パラメータスケジューリングを行わない。
【０１００】
次にルーチンＳ１６の詳細を説明する。まず、Ｐａｒａｍ［ｉ］へランダム位相の格納を行い（Ｓ４１）、ｉをリセットすると共に初期値ｒａｎｄ［−１］として予め決められた固定値をセットして（Ｓ４２）次のカオス演算に備える。そして、カオス演算を行いカオスノイズを得る（Ｓ４３）。次にカオスノイズの情報落ち１バイト乱数をｒａｎｄにセットする（Ｓ４４）。次に、パラメータスケジューリングを行う（Ｓ４５）。ここにおいて、パラメータスケジューリングは図１７に示したフローチャートに示されるように行われ、暗号化／復号化モードにおいて或いは認証子生成モードにおいて用いるパラメータＡ、ＢをＰａｒａｍ［ｉ］として得る。そして、動作モードの検出を行い（Ｓ４６）、暗号化／復号化モードを行うかまたは認証子生成モードを行うのかの判定を行う。ここで、暗号化／復号化モードであることを検出すると、暗号化の場合には平文の１バイトを（復号化の場合には暗号文の１バイトを）取り出し（Ｓ４７）、ｒａｎｄにセットされている情報落ち１バイト乱数との排他的論理和演算により暗号化または復号化を行い（Ｓ４８）、ｉを更新して（Ｓ４９）、全ての平文（または暗号文）の処理を終えたという終了条件（※）の検出を行い（Ｓ５０）、終了条件が満足されなければ第ｊ周期目の初期値ｒａｎｄ［−１］として第ｊ−１周期目の最後尾のカオス乱数値ｒａｎｄ［ｍ−１］  をセットし（Ｓ５２）、ステップＳ４３へ戻って処理を続ける。
【０１０１】
なお、ステップＳ４６において動作モードが認証子生成モードであることを検出すると、ｒａｎｄにセットされている情報落ち１バイト乱数を認証子とする（Ｓ５１）。そして、ｉを更新して（Ｓ４９）、終了条件（※）の検出を行い（Ｓ５０）、終了条件が満足されなければ第ｊ周期目の初期値ｒａｎｄ［−１］として第ｊ−１周期目の最後尾のカオス乱数値ｒａｎｄ［ｍ−１］  をセットし（Ｓ５２）、ステップＳ４３へ戻って処理を続ける。この認証子生成モードにおける終了条件（※）は、予め定められた認証子のデータ長に達したことである。
【０１０２】
この構成により、暗号化／復号化の機能と端末認証の機能を有することができる。例えば、Ｅコマース用のＩＣカードに適用可能である。この場合に本発明の端末認証機能はＩＣカードの個体識別より正しい所有者を特定し、しかるべき金融機関へ決済を促すと共に、個人機密情報の暗号化保持や、通信路を暗号化保持する機能を実現し、これら「認証」＋「暗号化」を本プログラムのみで実現可能である。斯して本発明の導入より、簡素化や全体的なシステムの軽量化が狙える。この場合において、本実施例により暗号の周期長の隠蔽が図られ、暗号鍵の推測、カオス軌道予測等をより困難とし安全な取引などを実現する。
【０１０３】
また、次世代の、ゲーム機器や、情報家電などへのコンテンツ（ゲームソフト、音楽、映画）配信、購買システムとの連携などに対しても同様で、端末識別による所有者の特定より安全なセキュリティ管理を行うことができ、著作権保護目的でのコンテンツ暗号化配信など、配信等がなされるセキュリティ要素を本方式のみで柔軟に解決可能である。この場合において、本実施例により暗号の周期長の隠蔽が図られ、暗号鍵の推測、カオス軌道予測等をより困難とし十分なセキュリティを実現する。
【０１０４】
【発明の効果】
以上説明したように本発明によれば、鍵データに基づいてカオス演算に用いるパラメータ列を生成し、この生成されたパラメータ列を用いてカオス演算を行い前記カオスノイズを得ると共に、カオス演算において発生されたカオスノイズに基づいてパラメータ列に変更を生じさせるようにパラメータ列のスケジューリングを行うので、暗号の周期長の隠蔽が図られ、暗号鍵の推測、カオス軌道予測等をより困難とし、整数演算及びビット演算によるカオス演算にて十分な秘匿性のある暗号化を行い得る効果がある。更に、暗号化復号化処理とほぼ共通化して、適切に認証を行い得る効果がある。
【図面の簡単な説明】
【図１】本発明の前提発明に係る暗号生成装置及び暗号復号装置の構成を示す図。
【図２】写像系カオスの幾何学的発生構造を示す図。
【図３】浮動小数点演算による分岐図。
【図４】整数演算による分岐図。
【図５】浮動小数点演算によるリアプノフ指数を示す図。
【図６】整数演算によるリアプノフ指数を示す図。
【図７】本発明及び前提発明に係る暗号生成、暗号復号及び認証子作成に用いるカオス関数の一例を示す図。
【図８】本発明及び前提発明に係る暗号生成、暗号復号及び認証子作成に用いるカオス関数の一例を示す図。
【図９】図８のカオス関数を用いた整数演算による分岐図。
【図１０】図８のカオス関数を用いた整数演算によるリアプノフ指数を示す図。
【図１１】本発明及び前提発明に係る暗号生成、暗号復号及び認証子作成に用いるカオス関数の一例を示す図。
【図１２】本発明及び前提発明に係る暗号生成、暗号復号及び認証子作成に用いるカオス関数の一例を示す図。
【図１３】本発明及び前提発明に係る暗号生成、暗号復号及び認証子作成に用いるカオス関数の一例を示す図。
【図１４】本発明及び前提発明に係る暗号生成、暗号復号及び認証子作成に用いるカオス関数の一例を示す図。
【図１５】図１１のカオス関数を用いた整数演算による分岐図。
【図１６】図１１のカオス関数を用いた整数演算によるリアプノフ指数を示す図。
【図１７】本発明に係る暗号生成装置及び暗号復号装置の構成を示す図。
【図１８】本発明に係る暗号生成装置及び暗号復号装置におけるパラメータスケジューリング動作を説明するためのフローチャート。
【図１９】本発明に係る認証システムにおける要部の構成を示す図。
【図２０】本発明に係る認証システムにおける動作シーケンスを示す図。
【図２１】本発明に係る暗号生成、暗号復号及び認証子作成のプログラムが適用される電子装置の構成図。
【図２２】本発明に係る暗号生成、暗号復号及び認証子作成のプログラムによる動作を説明するためのフローチャート。
【図２３】本発明に係る暗号生成、暗号復号及び認証子作成のプログラムによる動作を説明するためのフローチャート。
【図２４】本発明に係る暗号生成、暗号復号及び認証子作成のプログラムによる動作を説明するためのフローチャート。
【図２５】本発明に係る暗号生成、暗号復号及び認証子作成のプログラムによる動作を説明するためのフローチャート。
【符号の説明】
１０１Ａ、１０１ＡＡ  暗号生成装置
１０１Ｂ、１０１ＢＢ  暗号復号装置
１０１Ｃ  認証子生成部
１０２  パラメータ生成手段
１０３  カオスノイズ発生手段
１０４、１０４Ａ  スケジューリング手段
１０５  排他的論理和回路
１０６  認証子出力部
【図１】
2004266486.tif 000022
【図２】
2004266486.tif 000023
【図３】
2004266486.tif 000024
【図４】
2004266486.tif 000025
【図５】
2004266486.tif 000026
【図６】
2004266486.tif 000027
【図７】
2004266486.tif 000028
【図８】
2004266486.tif 000029
【図９】
2004266486.tif 000030
【図１０】
2004266486.tif 000031
【図１１】
2004266486.tif 000032
【図１２】
2004266486.tif 000033
【図１３】
2004266486.tif 000034
【図１４】
2004266486.tif 000035
【図１５】
2004266486.tif 000036
【図１６】
2004266486.tif 000037
【図１７】
2004266486.tif 000038
【図１８】
2004266486.tif 000039
【図１９】
2004266486.tif 000040
【図２０】
2004266486.tif 000041
【図２１】
2004266486.tif 000042
【図２２】
2004266486.tif 000043
【図２３】
2004266486.tif 000044
【図２４】
2004266486.tif 000045
【図２５】
2004266486.tif 000046