(57)【特許請求の範囲】
【請求項１】
所定の非線形写像の初期値または該所定の非線形写像の初期値および該所定の非線形写像の持つパラメータの値を示す第１の共通鍵と、２値化処理の基になる１つ又は互いに異なる複数の閾値を表す値を示す第２の共通鍵とからなる共通鍵を選択するための選択手段と、
選択された前記共通鍵、又は該共通鍵に対応する情報を暗号化し、復号化装置へ向けて送信するための第１の送信手段と、
前記所定の非線形写像と、前記共通鍵のうちの前記第１の共通鍵により示される前記初期値または前記初期値および前記パラメータの値とに基づいて、カオス軌道に沿った実数値であって予め定められた所定のビット数により表現される実数値からなる実数値系列を生成する第１の生成手段と、
生成された前記実数値系列の各実数値に対して、夫々、前記共通鍵のうちの前記第２の共通鍵により示される前記値に基づく所定の２値化処理であって１つの実数値を１つのビットに変換する処理を施し、これによって得られた各ビットの値を、対応する実数値の前記実数値系列における順番と同じ順番で連結した鍵系列を生成する第２の生成手段と、
入力された平文の２値系列と生成された前記鍵系列との所定の論理演算をビット単位で行なって暗号文の２値系列を生成する論理演算手段と、
生成された前記暗号文の２値系列を前記復号化装置へ向けて送信するための第２の送信手段とを備え、
前記第２の生成手段は、前記実数値系列の各実数値について、前記第２の鍵として与えられる複数の値を夫々閾値として複数の２値化データを求め、該複数の２値化データに所定の論理演算を施すものであることを特徴とする暗号化装置。
【請求項２】
所定の非線形写像の初期値または該所定の非線形写像の初期値および該所定の非線形写像の持つパラメータの値を示す第１の共通鍵と、２値化処理の基になる１つ又は互いに異なる複数の閾値を表す値を示す第２の共通鍵とからなる共通鍵を選択するための選択手段と、
選択された前記共通鍵、又は該共通鍵に対応する情報を暗号化し、復号化装置へ向けて送信するための第１の送信手段と、
前記所定の非線形写像と、前記共通鍵のうちの前記第１の共通鍵により示される前記初期値または前記初期値および前記パラメータの値とに基づいて、カオス軌道に沿った実数値であって予め定められた所定のビット数により表現される実数値からなる実数値系列を生成する第１の生成手段と、
生成された前記実数値系列の各実数値に対して、夫々、前記共通鍵のうちの前記第２の共通鍵により示される前記値に基づく所定の２値化処理であって１つの実数値を１つのビットに変換する処理を施し、これによって得られた各ビットの値を、対応する実数値の前記実数値系列における順番と同じ順番で連結した鍵系列を生成する第２の生成手段と、
入力された平文の２値系列と生成された前記鍵系列との所定の論理演算をビット単位で行なって暗号文の２値系列を生成する論理演算手段と、
生成された前記暗号文の２値系列を前記復号化装置へ向けて送信するための第２の送信手段とを備え、
前記第２の共通鍵として与えられる値は、実数値の２進表現におけるビット位置を示すビット番号であり、
前記第２の生成手段は、前記実数値系列の各実数値について、該実数値または該実数値に予め定められた所定の処理を施してなる値の２進表現における、前記第２の共通鍵として与えられる複数の値により夫々示されるビット位置の値を選択し、これら選択された複数の値に所定の論理演算を施すことにより、該実数値を２値化するものであることを特徴とする暗号化装置。
【請求項３】
前記論理演算は、排他的論理和であることを特徴とする請求項１または２に記載の暗号化装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ストリーム暗号方式による暗号化装置に関する。
【０００２】
【従来の技術】
ストリーム暗号は、例えば平文／暗号文の２値系列と共通鍵から生成した鍵系列（２値系列）との排他的論理和を取ることで暗号文／平文を生成する方式であり、現在の暗号方式の中でも最も重要な方法であると考えられる（文献１〜５；文献の詳細は後にまとめて示してある）。
【０００３】
しかし、ストリーム暗号には、ある鍵から、長周期の予測不可能な２値系列（文献６〜１２）を生成することが困難であるといった大きな問題点がある。現在、鍵系列として用いる２値系列は線形シフトレジスタ（ＬＦＳＲ）系列を用いて生成することが多いが、線形シフトレジスタは暗号学的に弱いとされている（文献２〜５）。
【０００４】
一方、幾つかの非線形エルゴード写像が擬似乱数生成器としての良い候補者であることが知られており（文献１９，２０）、カオス現象に基づいた暗号システム線形シフトレジスタを用いる暗号システム以外に、カオス現象に基づいた暗号システムが幾つか提案されている（文献１３〜１６）。しかしながら、そのような暗号システムのほとんどが、カオスの実数値軌道そのものに基づいた方法であって、アナログ信号そのものを取り扱う電子回路を基本とすることから、デジタル情報を通信するシステムへの応用は難しい。また、既にそれらはすべて暗号学的に解読されてしまっているので実用性がない（文献１７，１８）。さらに、情報信号と暗号化された信号との相関関数等の、通信システムにおいて評価されるべき重要な統計量が、理論的に議論あるいは評価されていなかった。
【０００５】
【発明が解決しようとする課題】
以上のように、従来のストリーム暗号方式は、暗号学的安全性の面で問題があり、新しい原理による暗号学的に強いストリーム暗号の提供が望まれている。
【０００６】
本発明は、上記事情を考慮してなされたもので、暗号学的安全性について非常に優れた鍵系列によるストリーム暗号を実現可能な暗号化装置を提供することを目的とする。
【０００７】
【課題を解決するための手段】
本発明に係る暗号化装置は、所定の非線形写像の初期値または該所定の非線形写像の初期値および該所定の非線形写像の持つパラメータの値を示す第１の共通鍵と、２値化処理の基になる１つ又は互いに異なる複数の閾値を表す値を示す第２の共通鍵とからなる共通鍵を選択するための選択手段と、選択された前記共通鍵、又は該共通鍵に対応する情報を暗号化し、復号化装置へ向けて送信するための第１の送信手段と、前記所定の非線形写像と、前記共通鍵のうちの前記第１の共通鍵により示される前記初期値または前記初期値および前記パラメータの値とに基づいて、カオス軌道に沿った実数値であって予め定められた所定のビット数により表現される実数値からなる実数値系列を生成する第１の生成手段と、生成された前記実数値系列の各実数値に対して、夫々、前記共通鍵のうちの前記第２の共通鍵により示される前記値に基づく所定の２値化処理であって１つの実数値を１つのビットに変換する処理を施し、これによって得られた各ビットの値を、対応する実数値の前記実数値系列における順番と同じ順番で連結した鍵系列を生成する第２の生成手段と、入力された平文の２値系列と生成された前記鍵系列との所定の論理演算をビット単位で行なって暗号文の２値系列を生成する論理演算手段と、生成された前記暗号文の２値系列を前記復号化装置へ向けて送信するための第２の送信手段とを備え、前記第２の生成手段は、前記実数値系列の各実数値について、前記第２の鍵として与えられる複数の値を夫々閾値として複数の２値化データを求め、該複数の２値化データに所定の論理演算を施すものであることを特徴とする。
本発明に係る暗号化装置は、所定の非線形写像の初期値または該所定の非線形写像の初期値および該所定の非線形写像の持つパラメータの値を示す第１の共通鍵と、２値化処理の基になる１つ又は互いに異なる複数の閾値を表す値を示す第２の共通鍵とからなる共通鍵を選択するための選択手段と、選択された前記共通鍵、又は該共通鍵に対応する情報を暗号化し、復号化装置へ向けて送信するための第１の送信手段と、前記所定の非線形写像と、前記共通鍵のうちの前記第１の共通鍵により示される前記初期値または前記初期値および前記パラメータの値とに基づいて、カオス軌道に沿った実数値であって予め定められた所定のビット数により表現される実数値からなる実数値系列を生成する第１の生成手段と、生成された前記実数値系列の各実数値に対して、夫々、前記共通鍵のうちの前記第２の共通鍵により示される前記値に基づく所定の２値化処理であって１つの実数値を１つのビットに変換する処理を施し、これによって得られた各ビットの値を、対応する実数値の前記実数値系列における順番と同じ順番で連結した鍵系列を生成する第２の生成手段と、入力された平文の２値系列と生成された前記鍵系列との所定の論理演算をビット単位で行なって暗号文の２値系列を生成する論理演算手段と、生成された前記暗号文の２値系列を前記復号化装置へ向けて送信するための第２の送信手段とを備え、前記第２の共通鍵として与えられる値は、実数値の２進表現におけるビット位置を示すビット番号であり、前記第２の生成手段は、前記実数値系列の各実数値について、該実数値または該実数値に予め定められた所定の処理を施してなる値の２進表現における、前記第２の共通鍵として与えられる複数の値により夫々示されるビット位置の値を選択し、これら選択された複数の値に所定の論理演算を施すことにより、該実数値を２値化するものであることを特徴とする。
【００２６】
【発明の実施の形態】
以下、図面を参照しながら発明の実施の形態を説明する。
【００２７】
本発明は、平文の２値系列と所定の共通鍵に基づいて生成された鍵系列（２値系列）にビット単位の所定の論理演算（一般的には排他的論理和演算）を施して暗号文を生成するストリーム暗号において、所定の非線形写像に従いカオス軌道に沿った実数値系列を生成し、これに所定の２値化処理を施すことで、鍵系列として用いるカオス２値系列（ここでは、二つのタイプの平衡２値系列、すなわちカオス閾値系列およびカオスビット系列がある）を得るようにしたものである。
【００２８】
最初に、本発明の基本原理について説明する。
【００２９】
なお、｛ｘn ｝n=0 m という表記は、｛ｘ0 ，ｘ1 ，ｘ2 ，…，ｘm-1 ，ｘm ｝を表すものとする。
【００３０】
→Ｐは、平文のビット列を表すものとする。
【００３１】
→Ｋは、暗号化／復号に用いる所定数の共通鍵を表すものとする。
【００３２】
→Ｒは、鍵系列（ビット列）を表すものとする。また、→Ｒ→Ｋは、共通鍵→Ｋにより生成された鍵系列（ビット列）を表すものとする。
【００３３】
→Ｚは、暗号文のビット列を表すものとする。また、→Ｚ→Ｋは、共通鍵を→Ｋとする暗号文のビット列を表すものとする。
【００３４】
まず、カオス的な振舞を呈する最も単純な系としては、式（１）で示すような一次元写像のクラスが存在する（文献２３，２４）。ここで、ωn ＝τn （ω0 ）である。
【００３５】
【数１】
0003816558.tif 000002
【００３６】
任意のＬ1 関数Ｆ（ω）に対し、ある初期値ω＝ω0 からの軌道｛ωn ｝n=0 N-1 に沿った時間平均ＦN （ω）は、式（２）で定義される。
【００３７】
【数２】
0003816558.tif 000003
【００３８】
バーコフの個別エルゴード定理によれば（文献２４）、τ（ω）が、区間Ｉ上において、ｆ＊（ω）ｄωで表される絶対連続な不変測度（ＡＣＩ測度と呼ぶ）に関してエルゴード的であるとき、式（３）が成立する。
【００３９】
【数３】
0003816558.tif 000004
【００４０】
ただし、＜Ｆ＞τは、ＩにおけるＦ（ω）の空間平均であり、式（４）で定義される。
【００４１】
【数４】
0003816558.tif 000005
【００４２】
利用できる非線形写像としては様々なものが考えられるが、本実施形態では、上記のような非線形写像の一例として、式（５）で示すような、次数ｋ≧２のチェビシェフ写像の差分方程式（文献２９，３０）を考える。
【００４３】
【数５】
0003816558.tif 000006
【００４４】
そのＡＣＩ測度ｆ＊（ω）ｄωは、式（６）で与えられる。
【００４５】
【数６】
0003816558.tif 000007
【００４６】
ωn は、常に、ｋn 次のω＝ω0 に関する整係数多項式で表され、ゆれに、±１を除く各々の点ωn は、Ｉ上にｋn 個の異なった逆像を持つことになる。さらに、チェビシェフ写像は、ほとんど全ての初期値ω＝ω0 に対し、自己相関関数がデルタ関数に等しいカオス軌道を有する（文献３１）。このことは、チェビシェフ写像から生成されるカオス軌道の統計的性質を議論する動機となっている（文献２１）。
【００４７】
エルゴード写像τ（・）によるカオス的な実数値系列から２値系列（すなわちストリーム暗号で用いる鍵系列）を得る方法の幾つかの例を以下に示す。後で示されるように、これら方法は、あるエルゴード写像に対して、異なった独立同分布（以下、i.i.d.と記す）の予測不可能な２値系列を同時に生成する有効な手法である。
【００４８】
＜方法１＞
式（７）で定義される閾値関数により、（共通鍵として）与えられた閾値αについて、２値系列｛Θα（ωn ）｝n=0 ∞が得られる。これをカオス閾値系列と呼ぶ。なお、τ（・）がチェビシェフ写像の場合はチェビシェフ閾値系列と呼ぶ。
【００４９】
【数７】
0003816558.tif 000008
【００５０】
＜方法２＞
この方法は、以下に示すように｜ω｜≦１であるωの絶対値の２進展開に基づいている。
【００５１】
式（８）で表すように、ω（ここで｜ω｜≦１とする）の絶対値をとり、２進表現する。
【００５２】
【数８】
0003816558.tif 000009
【００５３】
第ｉ番目のビットＡi （ω）は、式（９）で表される。
【００５４】
【数９】
0003816558.tif 000010
【００５５】
ここで、“〜”の付されたΘα（ω）（以下、〜Θα（ω）とも記述する）は、式（１０）のとおりである。
【００５６】
【数１０】
0003816558.tif 000011
【００５７】
よって、ωの２進表現におけるビット位置を示すビット番号ｉを（共通鍵として）与えることにより、２値系列｛Ａi （ωn ）｝n=0 ∞が得られる。これをカオスビット系列と呼ぶ。なお、τ（・）がチェビシェフ写像の場合はチェビシェフビット系列と呼ぶ。また、チェビシェフ閾値系列とチェビシェフビット系列を総称して、チェビシェフ２値系列と呼ぶ。
【００５８】
ここで、〜Θα（ω）は、２値ではなく実数値の変数ωをもつブール関数と見なされるので、Ａi （ω）は、式（１１）のようにも記述できる。ただし、式（１１）中の演算子は、法２（ｍｏｄｕｌｏ−２）の加算（すなわち排他的論理和）を示す。
【００５９】
【数１１】
0003816558.tif 000012
【００６０】
＜方法３＞
区間Ｉ＝［ｄ，ｅ］上で定義される任意の写像τ（・）に対しては、方法２を一般化した方法として、以下の方法３を与えることが出来る。
【００６１】
式（１２）で表すように、（ω−ｄ）／（ｅ−ｄ）を２進表現する。
【００６２】
【数１２】
0003816558.tif 000013
【００６３】
第ｉ番目のビットＢi （ω）は、式（１３）で表される。
【００６４】
【数１３】
0003816558.tif 000014
【００６５】
従って、ωの２進表現におけるビット位置を示すビット番号ｉを（共通鍵として）与えることにより、２値系列｛Ｂi （τn （ω））｝n=0 ∞を得ることができる。Ｂi （ω）もまた、閾値系列の法２の加算の形で書けることになる。もし、区間がＩ＝［０，１］であれば、Ａi （ω）＝Ｂi （ω）となるので、｛Ａi （ωn ）｝n=0 ∞，｛Ｂi （ωn ）｝n=0 ∞ともカオスビット系列と呼ぶことにする。
【００６６】
＜方法４＞
この方法では、ある写像τ（・）により生成された実数値系列の各実数値ωに対し、式（１４）により２値化を行なう。閾値の集合｛ｔr ｝r=1 M をＴとすると、Ｔが共通鍵となる。閾値の種類の数Ｍは任意に設定可能である。
【００６７】
【数１４】
0003816558.tif 000015
【００６８】
この方法では、（共通鍵として）与えられた閾値｛ｔ1 ，ｔ2 ，…，ｔM ｝の夫々に従って、式（７）で定義される閾値関数により、実数値系列の各実数値からＭ個の２値化データを求め、それらの排他的論理和を演算する。
【００６９】
ところで、方法１〜３におけるΘα（ω），Ａi （ω）およびＢi （ω）は、それぞれ閾値系列の法２の加算の形で、式（１４）のように表すことが出来る。
したがって、方法４はより一般化した形の方法である。
【００７０】
なお、排他的論理和の代わりに、他の論理演算を行うこともできる。
【００７１】
また、閾値関数により２値化する代わりに、方法２や方法３で２値化しても良い。この場合、共通鍵は、複数のビット番号となる。
【００７２】
次に、上記のようにして得られたカオス２値系列（例えば、チェビシェフ閾値／チェビシェフビット系列）を鍵系列として用いた２進加法ストリーム暗号について説明する。
【００７３】
本実施形態では、共通鍵（秘密鍵）→Ｋ＝（ｓ1 ，ｓ2 ，…，ｓM ）は、鍵系列→Ｒ＝（Ｒ1 ，Ｒ2 ，…）を生成する鍵系列生成器を制御するためにのみ用いられる。
【００７４】
本実施形態では、共通鍵は、第１の共通鍵と第２の共通鍵に分類される。第１の共通鍵は実数値系列の生成に用いるものであり、第２の共通鍵は生成した実数値系列の２値化処理のために用いるものである。第１の共通鍵と第２の共通鍵は、それぞれ、１つの場合と複数ある場合が考えられる。
【００７５】
前述した式（５）で示されるチェビシェフ写像を用いる場合、第１の共通鍵は、初期値ω0 とパラメータｋである。
【００７６】
第２の共通鍵は、方法１の場合には閾値αであり、方法２および方法３の場合にはωの２進表現におけるビット位置を示すビット番号ｉであり、方法１の場合には閾値の集合｛ｔr ｝r=1 M である。
【００７７】
このように本実施例では、共通鍵の内容に実数値が含まれる。
【００７８】
ここで、→ＲΘ＝｛Θα（ωn ）｝n=0 ∞（あるいはそれぞれ、→ＲA ＝｛Ａi （ωn ）｝n=0 ∞および→ＲB ＝｛Ｂi （ωn ）｝n=0 ∞）とし、その共通鍵を→Ｋ（Θα）＝（ｋ，ω0 ，α）（あるいはそれぞれ，→Ｋ（Ａi ）＝（ｋ，ω0 ，ｉ）および→Ｋ（Ｂi ）＝（ｋ，ω0 ，ｉ）で定義する。
【００７９】
なお、上記の２値系列はいずれも、一般的には、式（１４）のＣT （ω）で表現できるので、閾値の集合をＴ＝｛ｔr ｝r=1 M とすると、その秘密鍵→Ｋ（ＣT ）は、→Ｋ（ＣT ）＝（ｋ，ω0 ，Ｔ）と表せる。
【００８０】
また、→ＺΘ＝（ｚ1 ，ｚ2 ，…）（あるいはそれぞれ、→ＺA and →ＺB ）で定義される、対応する暗号文のビットは、２値の平文のビット→Ｐ＝（ｐ1 ，ｐ2 ，…）との単純な法２の加算により、式（１５）のように得られる。
【００８１】
【数１５】
0003816558.tif 000016
【００８２】
一方、復号は、式（１６）により実行される。
【００８３】
【数１６】
0003816558.tif 000017
【００８４】
ところで、これらの２値系列を得るためには、浮動小数点演算が必要である。しかして、浮動小数点環境のＩＥＥＥ規格７５４は、以下に示すように、ほとんど全ての計算機で、暗号化および復号化を実現するプログラムの作成は容易である。ＩＥＥＥ規格フォーマットは、以下の単精度および倍精度の浮動小数点フォーマットを指定する。
【００８５】
１）ＩＥＥＥ単精度（あるいはＣ言語のｆｌｏａｔ）に対しては、指数部および仮数部はそれぞれ、８ビット，２４ビットであり、従って、合計３２ビットである。
２）ＩＥＥＥ倍精度（あるいはＣ言語のｄｏｕｂｌｅ）に対しては、指数部１１ビット、仮数部５３ビット、合計６４ビットである。
【００８６】
Ｃ言語の数学ライブラリではまた、ｃｏｓωやｃｏｓ-1ω等の初等関数が利用可能であり、倍精度の引数ωに対し倍精度の浮動小数点演算が実行される。
【００８７】
また、ランダムに選んだ２≦ｋ≦２20を満たす整数ｋの場合の６４ビット精度の軌道｛ωn ｝n=0 ∞に対して、ある実数値α（〜０）（あるいは、８≦ｉ≦５０を満たす整数ｉ）を選ぶとすると、１６０（＝３２＋６４＋６４）ビットの→Ｋ（Θα）（あるいは、１２８（＝３２＋６４＋３２）ビットの→Ｋ（Ｂi ))から、｛Θα（ωn ）｝n=0 ∞（あるいは、｛Ｂi （ωn ）｝n=0 ∞）を得ることが出来る。従って、そのような平衡２値系列は、良い擬似乱数生成器を与える。
【００８８】
以下では、本実施形態の構成をより具体的に説明する。
【００８９】
図１は、本発明を適用したストリーム暗号システムの一実施形態を示す基本構成図である。
【００９０】
平文を暗号化して暗号文を作成する装置（送信側装置と呼ぶこととする）は、暗号化／復号に必要な共通鍵→Ｋ（図中６）を用いて鍵系列（カオス２値系列）→Ｒ→Ｋを生成するカオス２値系列生成部２1 、生成された鍵系列→Ｒ→Ｋと入力された平文（の２値系列）→Ｐとの排他的論理和をビット単位に行なって暗号文（の２値系列）→Ｚ→Ｋを生成する排他的論理和部４1 を備えている。
【００９１】
暗号文を復号して元の平文を生成する装置（受信側装置と呼ぶこととする）は、送信側装置より配送された共通鍵→Ｋ（図中８）を用いて鍵系列（カオス２値系列）→Ｒ→Ｋを生成するカオス２値系列生成部２2 、生成された鍵系列→Ｒ→Ｋと送信側装置より配送された暗号文（の２値系列）→Ｚ→Ｋとの排他的論理和をビット単位に行なって元の平文（の２値系列）→Ｐを生成する排他的論理和部４2 を備えている。
【００９２】
また、カオス２値系列生成部２1 、２2 は、第１の共通鍵と予め定められた所定の非線形写像に従いカオス軌道に沿った実数値系列を生成するカオス生成部と、生成された実数値系列の各実数値に対し第２の共通鍵に基づく所定の２値化処理を施して鍵系列を生成するビット生成部を有する。
【００９３】
送信側装置のカオス２値系列生成部２1 と受信側装置のカオス２値系列生成部２2 とは同一の論理構造を持つ。従って、共通鍵→Ｋが同一であれば、生成される鍵系列→Ｒ→Ｋは、両装置について同一となる。
【００９４】
送信側装置の排他的論理和部４1と受信側装置の排他的論理和部４2は、同時に他の論理演算に置き換えても良い。以下では、排他的論理和を行なうものとして説明する。
【００９５】
送信側装置では、平文→Ｐの暗号化に先だって、共通鍵選択部（図示せず）により、使用する共通鍵→Ｋを選択する。共通鍵→Ｋの選択方法としては、基本的には公知の方法を使用することができ、種々の方法が考えられる。例えば、予め用意された鍵に番号を振っておき、その都度発生した乱数に対応する番号の振られた鍵を選択しても良い。鍵が実数値である場合は、その都度発生した乱数の値あるいはこの値を線形変換などして得られた値を、そのまま鍵の値とすることができる。また、本発明では、鍵の個数が個別に変わり得る場合があるが、鍵の個数もランダムに選択しても良い。もちろん、鍵や鍵の個数は、乱数に基づいて選択するのではなく、他の情報に従って選択することも自由である。
【００９６】
送信側装置では、暗号文とともに共通鍵を配送するが、配送する情報として、共通鍵の内容をそのまま配送しても良いし、その代わりに共通鍵の内容に対応する情報を配送しても良い。
【００９７】
また、共通鍵の配送にあたって、該共通鍵またはこれに対応する情報は暗号化して配送するのが好ましい。ここでは、共通鍵は、公開鍵方式、例えばＲＳＡ方式により暗号化するものとする。
【００９８】
送信側装置は、生成された暗号文と復号に必要な共通鍵を、出力部（図示せず）により外部に出力する。出力の方法、言い換えると、暗号文と共通鍵を受信側装置に渡す方法には、種々の方法が考えられる。
【００９９】
送信側装置と受信側装置をネットワークで接続する場合は、出力部は暗号文と共通鍵を所定のプロトコルに従いネットワークに送り出す機能を有する。送信側装置から受信側装置へ無線通信により暗号文と共通鍵を伝送する場合は、出力部は暗号文と共通鍵を変調し送出する機能を有する。暗号文と共通鍵を可搬できる記憶媒体に格納して受け渡す場合には、出力部は暗号文と共通鍵を記憶媒体に書き込む機能を有する。
【０１００】
受信側装置では、送信側装置で生成された暗号文→Ｚ→Ｋと復号に必要な共通鍵→Ｋを、入力部（図示せず）により入力する。
【０１０１】
送信側装置とネットワークで接続する場合は、入力部はネットワークを介して転送されてきた情報を受け取り、暗号文と共通鍵を取り出す機能を有する。送信側装置から無線通信により暗号文と共通鍵を受け取る場合は、入力部は伝播されきた信号を受信し復調して暗号文と共通鍵を取り出す機能を有する。暗号文と共通鍵を可搬できる記憶媒体に格納して受け渡す場合には、入力部は暗号文と共通鍵を記憶媒体から読出す機能を有する。
【０１０２】
なお、共通鍵が暗号化されたものである場合、暗号文を復号するのに先だって、鍵復号部（図示せず）により所定の方式に従い共通鍵の復号を行なう。さらに、復号して得た情報が、共通鍵に対応する情報である場合、この情報から例えばテーブルを参照するなどして実際の共通鍵の内容を求める。
【０１０３】
図２は、本実施形態の送信側装置における処理の流れの一例を示すフローチャートである。
【０１０４】
（ステップＳ１）
まず、暗号化／復号に使用する共通鍵（所定数の第１の共通鍵および所定数の第２の共通鍵）の選択を行なう。選択された共通鍵は、必要に応じてＲＳＡ方式などで暗号化し、受信側装置に向けて送信する。
【０１０５】
また、暗号化する平文（の２値系列）を読み込む。
【０１０６】
（ステップＳ２）
カオス２値系列生成部２1 （のカオス生成部）では、選択された第１の共通鍵と所定の非線形写像に従い実数値系列を生成する。
【０１０７】
（ステップＳ３）
カオス２値系列生成部２1 （のビット生成部）では、生成された実数値系列の各実数値に対し、選択された第２の共通鍵に基づく所定の２値化処理を行なって、鍵系列（２値系列）を生成する。
【０１０８】
（ステップＳ４）
排他的論理和部４1 では、入力された平文の２値系列と生成された鍵系列の排他的論理和を取り、暗号文を生成する。
【０１０９】
（ステップＳ５）
生成された暗号文を受信側装置に向けて送信する。
【０１１０】
図３は、本実施形態の受信側装置における処理の流れの一例を示すフローチャートである。
【０１１１】
（ステップＳ１１）
まず、所定の伝達形式で送信側より伝えられた暗号文と復号に必要な共通鍵（所定数の第１の共通鍵および所定数の第２の共通鍵）を入力する。選択された共通鍵は、暗号化されている場合は、ＲＳＡ方式などで復号する。
【０１１２】
（ステップＳ２）
カオス２値系列生成部２2 （のカオス生成部）では、入手した第１の共通鍵と所定の非線形写像に従い実数値系列を生成する。
【０１１３】
（ステップＳ３）
カオス２値系列生成部２2 （のビット生成部）では、入手した実数値系列の各実数値に対し、入手した第２の共通鍵に基づく所定の２値化処理を行なって、鍵系列（２値系列）を生成する。
【０１１４】
（ステップＳ１４）
排他的論理和部４2 では、入力された暗号文の２値系列と生成された鍵系列の排他的論理和を取り、元の平文を生成する。
【０１１５】
なお、実数値の生成と２値化処理と排他的論理和演算をパイプライン処理して、処理の高速化を図っても良い。
【０１１６】
次に、共通鍵→Ｋを用いて鍵系列（カオス２値系列）→Ｒ→Ｋを生成するカオス２値系列生成部２1 ，２2 にいて説明する。
【０１１７】
図４，図６，図８，図９に、カオス２値系列生成部２1 ，２2 の構成例を示す。なお、各構成例におけるカオス生成部２１，２３，２５，２７は基本的には同様のものである。
【０１１８】
図４は、カオス２値系列生成部２1 ，２2 の第１の構成例である。また、図５は、実数値系列ωn の生成と２値化処理を説明するための図である。本構成例は、前述した方法１を実施するものである。
【０１１９】
このカオス２値系列生成部２1 ，２2 は、カオス生成部２１とビット生成部２２を有する。
【０１２０】
カオス生成部２１は、与えられた第１の共通鍵と所定の非線形写像（２１１）から、実数値系列を生成する。
【０１２１】
例えば、所定の非線形写像として、式（５）で示すようなチェビシェフ写像の差分方程式を用いる場合、第１の共通鍵は、初期値ω0 とパラメータｋである。初期値ω0 ＝０．３、パラメータｋ＝２とした場合、実数値系列ωn は図５のようになる。
【０１２２】
なお、用いる非線形写像により、パラメータｋの数は０または２以上の場合があり得る。
【０１２３】
ビット生成部２２では、閾値処理部２２１にて、式（７）で定義される閾値関数により、生成された実数値系列の各実数値に対し、与えられた第２の共通鍵により示される値を閾値ｔとして、２値化処理を行なう。
【０１２４】
例えば、カオス生成部２１により生成された実数値系列が図５のようである場合には、第２の共通鍵により閾値ｔ＝０が与えられたとすると、例えば、実数値ω0 ＝０．３０００００からは２値化データΘ0 （ω0 ）＝１が得られ、実数値ω4 ＝０．１６１９７７からは２値化データΘ0 （ω4 ）＝１が得られ、結局、鍵系列→Ｒ→ＫとしてΘ0 （ωn ）＝（１，０，１，０，１，０，１，１，０，１，…）が生成される。また、第２の共通鍵により閾値ｔ＝０．３が与えられたとすると、例えば、実数値ω0 ＝０．３０００００からは２値化データΘ0.3 （ω0 ）＝１が得られ、実数値ω4 ＝０．１６１９７７からは２値化データΘ0.3 （ω4 ）＝０が得られ、結局、鍵系列→Ｒ→ＫとしてΘ0.3 （ωn ）＝（１，０，１，０，０，０，１，０，０，１，…）が生成される。
【０１２５】
なお、必要に応じて、２値化処理の前に、生成された実数値系列の各実数値について、絶対値を取る処理や、正規化する処理など、所定の処理を行なっても良い。
【０１２６】
前述したように、カオス生成部２１は、所定の言語で記述されたプログラムを浮動小数点演算装置を用いて実行することにより実現できる。
【０１２７】
図６は、カオス２値系列生成部の第２の構成例である。また、図７は、実数値系列ωn の生成とビット選択処理を説明するための図である。本構成例は、前述した方法２を実施するものである。
【０１２８】
カオス２値系列生成部は、カオス生成部２３とビット生成部２４を有する。
【０１２９】
ビット生成部２４は、絶対値処理部２４１とビット選択部２４２を有する。
【０１３０】
カオス生成部２３は、前述のカオス生成部２１と同様である。ただし、ここでは、−１〜１の実数値系列を生成するものとする。例えば所定の非線形写像として式（５）で示すようなチェビシェフ写像の差分方程式を用い、初期値ω0 ＝０．３、パラメータｋ＝２とした場合、実数値系列ωn は図７のようになる。
【０１３１】
第２の共通鍵は、実数値の２進表現におけるビット位置を示すビット番号である。
【０１３２】
ビット生成部２４では、まず、絶対値処理部２４１により、実数値系列の各実数値について、その絶対値を取る処理を行なう。
【０１３３】
そして、ビット選択部２４２では、該実数値の絶対値について、その２進表現における、第２の共通鍵により示されるビット位置の値を選択する。
【０１３４】
例えば、カオス生成部２３により生成された実数値系列が図７のようである場合には、第２の共通鍵によりビット番号１が与えられたとすると、例えば、実数値｜ω0 ｜＝０．３０００００の２進表現は０．０１００１…であり、２値化データとして（小数第１位の）０が得られ、実数値｜ω1 ｜＝０．８２０００００の２進表現は０．１１０１０…であり、この結果、２値化データとして（小数第１位の）１が得られ、結局、鍵系列→Ｒ→ＫとしてＡ1 （ωn ）＝（０，１，０，１，０，１，１，０，１，０，…）が生成される。同様に、第２の共通鍵によりビット番号５が与えられたとすると、鍵系列→Ｒ→ＫとしてＡ5 （ωn ）＝（１，０，１，０，１，０，１，０，１，１，…）が生成される。
【０１３５】
図８は、カオス２値系列生成部の第３の構成例である。本構成例は、前述した方法３を実施するものである。
【０１３６】
カオス２値系列生成部は、カオス生成部２５とビット生成部２６を有する。
【０１３７】
ビット生成部２６は、正規化処理部２４１とビット選択部２６２を有する。ビット選択部２６２は、図６のビット選択部２４２と同様のものである。
【０１３８】
カオス生成部２５は、前述のカオス生成部２１と同様である。
【０１３９】
第２の共通鍵は、実数値の２進表現におけるビット位置を示すビット番号である。
【０１４０】
ビット生成部２６では、まず、正規化処理部２６１により、実数値系列の各実数値を所定の範囲に正規化する。
【０１４１】
例えば、区間Ｉ＝［ｄ，ｅ］上で定義される任意の写像τ（・）に対しては、ω´＝（ω−ｄ）／（ｅ−ｄ）により正規化を行なうと、ω´は区間Ｉ´＝［０，１］の範囲の値となる。
【０１４２】
次に、ビット選択部２６２では、第２の構成例と同様にして、該実数値の絶対値について、その２進表現における、第２の共通鍵により示されるビット位置の値を選択する。
【０１４３】
このようにして、鍵系列→Ｒ→ＫとしてＢi （ωn ）が生成される。
【０１４４】
第２の実施形態では、−１〜１の実数値系列を生成し、絶対値を取った後に２値化し、第３の実施形態では、任意の範囲の実数値系列を生成し、正規化した後に２値化したが、その他にも種々の方法が考えられる。
【０１４５】
図９は、カオス２値系列生成部の第４の構成例である。本構成例は、前述した方法４を実施するものである。前述したように、ある写像τ（・）により生成された実数値系列の各実数値ωに対し、式（１４）により２値化を行なう。閾値の集合｛ｔr ｝r=1 M をＴとすると、Ｔが第２の共通鍵となる。閾値の種類の数Ｍは任意に設定可能である。
【０１４６】
カオス２値系列生成部は、カオス生成部２７とビット生成部２７を有する。
【０１４７】
カオス生成部２７は、前述のカオス生成部２１と同様であり、例えば所定の非線形写像として式（５）で示すようなチェビシェフ写像の差分方程式を用い、初期値ω0 ＝０．３、パラメータｋ＝２とした場合、実数値系列ωn は図５のようになる。
【０１４８】
ビット生成部２８は、複数の閾値関数Θt1（ωn），Θt2（ωn），…，ΘtM（ωn）による閾値処理部２８１，２８２，２８３と、閾値処理部２８１，２８２，２８３から出力される複数のビットデータに所定の論理演算処理を施す論理演算処理部２８４を有する。論理演算処理は、例えば、全入力データの排他的論理和を取る処理である。
【０１４９】
ビット生成部２８の閾値処理部では、生成された実数値系列の各実数値について、複数の第２の鍵により夫々示される値を閾値として複数の２値化データを求める。論理演算処理部２８４では、該複数の２値化データに所定の論理演算処理、例えば排他的論理和処理を行なう。
【０１５０】
例えば、カオス生成部２７により生成された実数値系列が図５のようであり、２つの第２の共通鍵により閾値ｔ＝０とｔ＝０．３が与えられたとすると、ビット生成部２８の閾値処理部２８１，２８２により、前述したように、第１のカオス２値系としてΘ0 （ωn ）＝（１，０，１，０，１，０，１，１，０，１，…）と、第２のカオス２値系としてΘ0.3 （ωn ）＝（１，０，１，０，０，０，１，０，０，１，…）が生成される。
【０１５１】
次に、ビット生成部２８の論理演算処理部２８４により、例えば、Θ0（ωn）＝（１，０，１，０，１，０，１，１，０，１，…）とΘ0.3（ωn）＝（１，０，１，０，０，０，１，０，０，１，…）との排他的論理和が演算され、鍵系列→Ｒ→Ｋ＝（０，０，０，０，１，０，０，１，０，０，…）が得られる。
【０１５２】
必要な閾値処理部の数は、与えられる第２の共通鍵の数（すなわち、閾値の数Ｍ）に応じてその都度変化し得るが、作成したプログラムをＣＰＵ上で実行することで本構成を実現すれば、閾値処理部の数の変化には容易に対応することができる。
【０１５３】
なお、閾値処理を行なう前に、実数値の絶対値を取っても良いし、実数値を正規化しても良いし、その他の所定の処理を行なっても良い。
【０１５４】
また、通常のストリーム暗号処理はビット単位で行なわれるが、高速並列処理のためにブロック単位の暗号処理を行なう場合には、論理演算処理部２８４のところで直並列変換を行なっても良い。
【０１５５】
ところで、上記の閾値処理部の代わりに、複数の第２の鍵によるビット選択部（第２あるいは第３の構成例で示したもの）を使い、得られた複数の２値化データの論理演算処理、例えば排他的論理和処理を行なうようにしても良い。
【０１５６】
例えば、各閾値処理部を第２の構成例の絶対値処理部２４１とビット選択部２４２で置き換え、論理演算処理部２８４では排他的論理和処理を行なうものとする。カオス生成部により生成された実数値系列が図７のようである場合に、第２の共通鍵によりビット番号１〜５が与えられたとすると、第１のカオス２値系としてＡ1（ωn）＝（０，１，０，１，０，１，１，０，１，０，…）が、第１のカオス２値系としてＡ2（ωn）＝（１，１，１，１，０，１，１，１，１，１，…）が、第１のカオス２値系としてＡ3（ωn）＝（０，０，０，０，１，１，０，０，０，１，…）が、第１のカオス２値系としてＡ4（ωn）＝（０，１，１，０，０，１，０，０，１，１，…）が、第１のカオス２値系としてＡ5（ωn）＝（１，０，１，０，１，０，１，０，１，１，…）がそれぞれ生成される。
【０１５７】
次に、論理演算処理部２８４により、Ａ1（ωn）、Ａ2（ωn）、Ａ3（ωn）、Ａ4（ωn）、およびＡ5（ωn）の排他的論理和が演算され、鍵系列→Ｒ→Ｋ＝（０，１，１，０，０，０，１，１，０，０，…）が得られる。
【０１５８】
以下では、本発明の鍵系列の性質について検討を行ない、その有効性を示す。
まず、カオス２値系列（チェビシェフ閾値系列／チェビシェフビット系列）の共分散関数に関する検討を示す。
【０１５９】
系列｛Θα（ωn ）｝n=0 ∞，系列｛Ａi （ωn ）｝n=0 ∞および系列｛Ｂi （ωn ）｝n=0 ∞での１の生起確率の経験的測度は、式（１７）に示す正規分布で近似することが出来る。
【０１６０】
【数１７】
0003816558.tif 000018
【０１６１】
ここで、平均値は式（１８）、分散は式（１９）でそれぞれ与えられる。
【０１６２】
【数１８】
0003816558.tif 000019
【０１６３】
図１０は、そのような平均値、分散を示してる。（ａ）はＦ（ω）＝Θα（ω）の場合、（ｂ）はＦ（ω）＝Ａi （ω）の場合、（ｃ）はＦ（ω）＝Ｂi （ω）の場合である。図１０において、ｐτ（α）＝＜Θα＞τである。
【０１６４】
Ｇ（ω）およびＨ（ω）を二つのＬ1 有界変動関数とし、二つの系列｛Ｇ（ωn ）｝n=0 ∞および｛Ｈ（ωn ）｝n=0 ∞を考える。ここで、ωn ＝τn （ω）である。
【０１６５】
式（２０）に示すような関数を定義すると、ρN （ｌ，ω；Ｇ，Ｈ）および＜ρ（ｌ；Ｇ，Ｈ）＞τはある一つの初期値ωから得られるこれら二つの系列の、時間平均形および空間平均形の相互共分散関数をそれぞれ表す。特に、Ｇ＝Ｈの場合は、自己共分散関数を表す。
【０１６６】
【数１９】
0003816558.tif 000020
【０１６７】
上記の相互共分散関数ρ（ｌ，ω；Ｇ，Ｈ）は、系列｛Ｇ（ωn ）｝n=0 ∞および系列｛Ｈ（ωn ）｝n=0 ∞の統計的性質を調べる上で極めて重要である。注意深く計算すると、以下の二つの重要な命題を得ることが出来る（文献２２）。
【０１６８】
［命題１．］
チェビシェフ閾値系列Θα（ωn ）｝n=0 ∞と｛Θβ（ωn ）｝n=0 ∞との相互共分散関数は、式（２１）で与えられる。
【０１６９】
【数２０】
0003816558.tif 000021
【０１７０】
ここで、ｓ（ω）、＜ρ（0;Θα，Θβ）、ｐτ（α）は、それぞれ、式（２２）、（２３）、（２４）に示すとおりである。
【０１７１】
【数２１】
0003816558.tif 000022
【０１７２】
［命題２．］
チェビシェフビット系列｛Ａi （ωn ）｝n=0 ∞と｛Ａj （ωn ）｝n=0 ∞との相互共分散関数は、式（２５）で与えられる。
【０１７３】
【数２２】
0003816558.tif 000023
【０１７４】
また、｛Ａi （ωn ）｝n=0 ∞の空間平均は、式（２６）のようになる。
【０１７５】
【数２３】
0003816558.tif 000024
【０１７６】
さらに、チェビシェフ写像の対称性を用いると、次の興味深い結果を得ることが出来る。
【０１７７】
［命題３．］
偶数次のチェビシェフ写像から生成されるチェビシェフビット系列｛Ｂi （ωn ）｝n=0 ∞と｛Ｂj （ωn ）｝n=0 ∞との相互共分散関数は、式（２７）で与えられる。
【０１７８】
【数２４】
0003816558.tif 000025
【０１７９】
ここで、Ｑii、Ｑijは、それぞれ、式（２８）、（２９）のとおりである。また、Ｉijは、式（３０）のとおりである。また、Ｉr (r) は、式（３１）のとおりである。
【０１８０】
【数２５】
0003816558.tif 000026
【０１８１】
上記の命題は、十分大きいｋに対しては、系列｛Θα（ωn ）｝n=0 ∞，系列｛Ａi （ωn ）｝n=0 ∞および系列｛Ｂj （ωn ）｝n=0 ∞は、良好な自己（相互）共分散特性を有することを示唆している。
【０１８２】
関数＜ρ（０；Θα，Θβ）＞τは、鍵の一部であるパラメータαおよびβが適当に選ばれたとしても、一般には小さい値にならないので、系列｛Θα（ωn ）｝n=0 ∞の解読に使われ得る。すなわち、前述した方法１における第１の共通鍵であるα自体は、暗号学的には安全でないといえる。
【０１８３】
同様に、関数＜ρ（０；Ｂi ，Ｂj ）＞τもＱij＝１／４でなければ、系列｛Ｂj （ωn ）｝n=0 ∞の解読に使用され得る。しかしながら、図１１に示すように、ビット番号ｉおよびｊが大きい場合は、Ｑij→１／４と最良に近い値を得ることができる。
【０１８４】
それでもやはり、異なったビット番号ｉの数はあまり多くないので、前述した方法２あるいは３における第１の共通鍵であるｉ自体もまた、暗号学的には安全でないといえる。
【０１８５】
しかしながら、カオス２値系列の元となる第２の共通鍵である、写像の次数ｋや初期値ω0 のように、暗号学的に安全な鍵が存在する。
【０１８６】
また、変数αおよびｉは、一つの実数値軌道から、容易に、多くの互いに独立な平衡２値系列を得るための調整用パラメータとなっている。
【０１８７】
なお、本発明者らは、最近、他の写像から生成されるカオス閾値／ビット系列の相互共分散関数を与えた（文献３２）。しかしながら、高次のチェビシェフ写像は、他の写像よりも良い相関特性を有し、また、次数ｋ自身が、ストリーム暗号システムにおける暗号学的に安全に秘密鍵となり得る。
【０１８８】
次に、カオス２値系列の次ビット予測に関する検討を示す。
【０１８９】
→Ｕm ＝Ｕ0 Ｕ1 …Ｕm-1 を任意のｍビットからなるビット列とする。ここで、Ｕn （０≦ｎ≦ｍ−１）は｛０，１｝の確率変数である。よって、２m 種類のビット列が存在する。次に、→ｕm (r) ＝ｕ0 (r) ｕ1 (r) …ｕm-1 (r) を２進要素ｕn (r) を持つ、ｒ番目のビット列とする。さらに、任意のＬ1 ２値関数Ｇ（ω）に対し、式（３２）で示すような２値確率変数を定義する。
【０１９０】
【数２６】
0003816558.tif 000027
【０１９１】
すると、無限長の２値系列｛Ｇ（τn （ω))｝n=0 ∞における、事象→Ｕm ＝→ｕm (r) の確率は、式（３３）で与えられる。
【０１９２】
【数２７】
0003816558.tif 000028
【０１９３】
ここで、ある系列｛Ｇ（τn （ω))｝n=0 ∞において、ある事象→Ｕm ＝→ｕm (r) を観測した後の１および０の生起する条件付確率を考える。それらは、それぞれ、式（３４）、（３５）で表される。
【０１９４】
【数２８】
0003816558.tif 000029
【０１９５】
ここで、→ｕm+1 (r1)および→ｕm+1 (r2)は、それぞれ、長さ（ｍ＋１）ビットの事象、→ｕm (r) １および→ｕm (r) ０を表す。また、Ｐｒ（→ｕm (r) ；Ｇ）は、式（３６）に示すとおりである。
【０１９６】
【数２９】
0003816558.tif 000030
【０１９７】
一般には、これらの条件付確率を評価しなければならない。しかしながら、系列｛Ｇ（τn （ω))｝n=0 ∞が、αが０近傍の値である場合の｛Θα（τn （ω))｝n=0 ∞や写像の次数が偶数の場合の｛Ｂi （τn （ω))｝n=0 ∞等のように、i.i.d.  ２値確率変数であれば、そのような条件付確率の計算は必要でなく、ただちに、式（３７）を得る。
【０１９８】
【数３０】
0003816558.tif 000031
【０１９９】
このことは、チェビシェフビット系列｛Ｂi （ωn ）｝n=0 ∞が予測不可能であることを示す。ここでは、チェビシェフ閾値系列｛Θα（τn （ω))｝n=0 ∞およびチェビシェフビット系列｛Ｂi （τn （ω))｝n=0 ∞がi.i.d.  の２値系列になる条件およびその数学的証明は省略する（文献３３）。
【０２００】
次に、数値実験に関する検討を示す。
【０２０１】
初めに、本暗号システムの暗号学的安全性を測るため、本実施形態の鍵系列の線形複雑度を調べる。
【０２０２】
図１２（ａ），（ｂ）に示すように、閾値系列｛Θα（ωn ）｝n=0 N-1 およびビット系列｛Ａi （ωn ）｝n=0 N-1 とも、その線形複雑度は、ほとんどＮ／２に等しい。
【０２０３】
次に、カオス２値系列の次ビット予測を考える。
【０２０４】
ある有限長系列｛Ｇ（τn （ω))｝n=0 N-1 において、それぞれの事象→ｕm (r) （ｒ＝１，…，２m ）を観測した後の１あるいは０が生起する条件付確率を計算することは可能であるが、大きいｍに対しては、計算すべき事象の種類が極めて膨大になる。よって、事象の数を少なくするために、事象→ｕm (r) （ｒ＝１，…，２m ）を、次のように幾つかの集合にクラス分けする。Ｓm (p) を、ｐ個の１およびｍ−ｐ個の０からなる事象→ｕm (r) の集合とする（ｐ＝０，１，…，ｍ）。系列｛Ｇ（τn （ω))｝n=0 ∞がi.i.d.であれば、式（３８）に示す事象の生起確率は、式（３９）で与えられる。
【０２０５】
【数３１】
0003816558.tif 000032
【０２０６】
【数３２】
0003816558.tif 000033
【０２０７】
ここでは、４０００個の異なった初期値ω0iに対し、系列｛Ｂi （τn （ω0i))｝n=0 N-1 （ここでＮ＝１０，０００）での→ｕ8 (r) および→ｕ8 (r) １を観測し、式（４０）に示す事象の相対頻度および式（４０）に示す事象を観測した後の１の生起する条件付確率の経験測度を計算することが出来る。
【０２０８】
【数３３】
0003816558.tif 000034
【０２０９】
図１３（ａ），（ｂ）に示すように、これらの経験測度はほとんどガウス分布に近いことがわかる。図１３は、式（４０）に示す事象の生起確率の経験測度を示している。従って、図１４，図１５に示すように、これらの経験測度の平均値および分散を計算することが重要となる。なお、図１４（ａ）は相対頻度の経験測度の平均値を、（ｂ）は相対頻度の経験測度の分散を、図１５（ａ）は条件付き確率の経験測度の平均値を、（ｂ）は条件付き確率の経験測度の分散を、それぞれ示している。これらの図から、｛Ｂi （τn （ω))｝n=0 N-1 がi.i.d.の２値系列であり、よって、予測不可能であることがわかる。
【０２１０】
次に、初期値ω0 から得られる系列｛Ｇ（ωn ）｝n=0 ∞と初期値ω0 ′から得られる系列｛Ｈ（ωn ′）｝n=0 ∞との相互相関関数を式（４１）のように定義する。
【０２１１】
【数３４】
0003816558.tif 000035
【０２１２】
図１６（ａ）、（ｂ）、および（ｃ）は、それぞれ、自己相関関数ρ64（ｌ，ω0 ，ω0 ；Θ0 ，Θ0 ）、ρ64（ｌ，ω0 ，ω0 ；Ａ2 ，Ａ2 ）τは、およびρ64（ｌ，ω0 ，ω0 ；Ｂ2 ，Ｂ2 ）を示す。ここで、ｋ＝１６である。これらの自己相関関数がｌ＝０でのみピークを持つことがわかる。
【０２１３】
図１７（ａ），（ｂ）、図１８（ａ），（ｂ）は、鍵→Ｋ（Θα）＝（１６，ω0 ，０．０）をもつ閾値系列｛Θα（ωn ）｝n=0 ∞の鍵の一部である、１０ビットの初期値ω0 ＝（０．０１１０１００１０１）2 ＝０．４１１３２８１…を捜すために、統計量ρ64（０，ω0 ，ω0 ′；Θα，Θβ）を用いて、鍵→Ｋ（Θβ）＝（１６，ω0 ′，０．０１）のω0 ′を変化させて行なう解読を示している。ここでは、図１７（ａ）では７ビット精度、（ｂ）では８ビット精度、（ｃ）では９ビット精度、および（ｄ）では１０ビット精度により、あらゆるω0 ′に対して計算したものである。
【０２１４】
これらの図から、たとえ次数ｋが事前にわかったとしても、初期値ω0 を捜すためには、莫大な計算量が必要であることがわかる。このことは、この方法が、初期値ω0 の大きい鍵空間のため、計算量的に実行不可能であることを示している。さらに、ｌ≧１および十分大きなｋに対する、ρT （ｌ，ω0 ，ω0 ′；Θα，Θβ）、ρT （ｌ，ω0 ，ω0 ′；Ａi ，Ａj ）、およびρT （ｌ，ω0 ，ω0 ′；Ｂi ，Ｂj ）は、極めて小さい値しか持たないものとなっている。従って、そのような統計量は、たとえ他の全てのパラメータがわかったとしても、上記のような解読法には用いることが出来ない。
【０２１５】
次に、６４ビットのカオスの鍵系列→ＲΘ（あるいはそれぞれ、→ＲA ，→ＲB ）と対応する６４ビットの暗号文→ＺΘ（あるいはそれぞれ、→ＺA ，→ＺB ）を、ＤＥＳやＦＥＡＬ等のブロック暗号の性質と比較することを考える。簡単のため、→Ｒ→Ｋ（あるいは、→Ｚ→Ｋ）は、→ＲΘ（あるいは、→ＺΘ）、→ＲA （あるいは、→ＺA ）、または→ＲB （あるいは、→ＺB ）のいずれかを表すものとする。→Ｒ→Ｋ＝｛→Ｒ1 ，→Ｒ2 ，…，→ＲL ｝をＬ個の６４ビットの鍵系列の集合とし、その鍵は、→Ｋ（θα,m）＝（ｋ，ω0m，α）、→Ｋ（Ａi,m ）＝（ｋ，ω0m，ｉ）、あるいは→Ｋ（Ｂi,m ）＝（ｋ，ω0m，ｉ）のいずれかによって与えられるものとする。
【０２１６】
ここで、１≦ｍ≦Ｌ−１に対し、ω0,m+1 ＝τ64（ω0,m ）である。すなわち、この集合は、初期値ω0 ＝ω01から得られる実数値のカオス軌道｛ωn ｝n=0 64×Ｌにより生成される、相続いた鍵系列の集合である。ここで、本実施形態のストリーム暗号に対してはＬ＝８，０００、従来のブロック暗号に対してはＬ＝４，０００とした。よって、→Ｚ→Ｋ＝｛→Ｚ1 ，→Ｚ2 ，…，→ＺL ｝は、対応するＬ個の６４ビットの暗号文の集合を意味する。
【０２１７】
ここで、長さ６４×Ｌのランダムな平文→Ｐに対するＬ個の暗号文の自己共分散関数Ｃ64（１６；→Ｚ→Ｋ，→Ｚ→Ｋ）の４つの経験測度を調べた。
【０２１８】
ただし、（ａ）→Ｚ→Ｋ＝→Ｚα，→Ｋ（Θα）＝（１２，０．３３２，−０．９５）、（ｂ）→Ｚ→Ｋ＝→ＺΘ，→Ｋ（Θα）＝（１２，０．３３２，０．０），（ｃ）→Ｚ→Ｋ＝→ＺDES 、ＤＥＳの６４ビットの秘密鍵→ＫDES ＝（０１２３４５６７８９ＡＢＣＤＥＦ）、および（ｄ）→Ｚ→Ｋ＝→ＺFEAL，ＦＥＡＬの６４ビットの秘密鍵→ＫFEAL＝（０１２３４５６７８９ＡＢＣＤＥＦ）である。また、→ＺDES （あるいは、→ＺFEAL）は、ＤＥＳ（あるいはＦＥＡＬ）のＬ個の６４ビットの暗号文を示す。
【０２１９】
この数値実験からわかるように、これらの秘密関数の平均値および分散とも、ほとんど互いに等しい。よって、カオス的な方法および標準的な方法は、互いに、経験的振舞に関しては、あまり変わらない。
【０２２０】
ここで、２値系列の平均パワー（クロス）スペクトルを以下のように導入する。｛ρN （ｌ，ω0m，ω′0m；Ｇ，Ｈ）｝m=1 L を、二つの系列｛Ｇ（ωn ）｝n=0 ∞と｛Ｈ（ω′n ）｝n=0 ∞の間の、Ｌ個の時間平均形の相互共分散関数とする。ここで初期値の集合は、｛ω0m）｝m=1 L および｛ω′0m｝m=1 L で表される。
【０２２１】
式（４２）に示す関数を定義すると、｜ＳN,L （ν；Ｇ，Ｈ）｜はＬ個の異なった初期値に対する時間平均形の平均パワー（あるいは、クロス）スペクトルを示す。
【０２２２】
【数３５】
0003816558.tif 000036
【０２２３】
図１９（ａ），（ｂ）は、それぞれ、チェビシェフ閾値系列およびチェビシェフビット系列を用いたストリーム暗号による暗号文の平均パワースペクトル｜Ｓ64,L（ν；→ＺΘ，→ＺΘ）｜を示す。図２０（ａ），（ｂ）は、それぞれ、従来のＤＥＳおよびＦＥＡＬにより生成した暗号文の平均パワースペクトル｜Ｓ64,L（ν；→ＺΘ，→ＺΘ）｜を示す。
【０２２４】
そのパラメータは、ρ64（１６；→Ｚ→Ｋ，→Ｚ→Ｋ）の経験測度のものと同じである。
【０２２５】
この図から、図１９（ｂ）、（ｃ）、および（ｄ）のパワースペクトルは、周波数νと独立、すなわち白色スペクトルであり、従って、これらの暗号文はランダムであるといえる。図１９（ａ）で示されるα＝−０．９５の場合のように、悪いパラメータを選ぶと、そのパワースペクトルは幾分非白色となるが、この場合でも、それほどひどくはないものとなっている。
【０２２６】
最後に、図２１に、ＳｕｎのワークステーションＳＳ５を用いた場合の、暗号化および復号化に要する計算時間を示す。ここでは、ＡＮＳＩ  Ｃで書かれたプログラムを実行した。
【０２２７】
以下、上記したような暗号システムの持つ特性・特徴のいくつかを示す。
【０２２８】
カオス２値系列は、以下の点において、性質の良い２値擬似乱数生成器として有望である。
【０２２９】
１）少ないビットで表現可能なパラメータが複数個ある。
【０２３０】
２）予測不可能な、独立同分布（i.i.d.）の２値の確率変数を容易に多数個同時に生成できる。
【０２３１】
３）これらの予測不可能な系列の周期は、ほとんどの初期値に対して十分長い。
【０２３２】
また、数値実験により、チェビシェフ閾値系列／チェビシェフビット系列が以下の統計的性質を持つことが示される。
【０２３３】
ａ）周期Ｎの鍵系列の線形複雑度は、ほぼＮ／２；
ｂ）チェビシェフビット系列は、i.i.d.の性質をもつため、次ビット予測はほとんど不可能である；
ｃ）暗号文の相関特性は、少なくとも、標準的なブロック暗号のＤＥＳやＦＥＡＬと同等である。
【０２３４】
本ストリーム暗号システムの暗号学的安全性は、従来のブロック暗号システムより優れていると考えられる。
【０２３５】
また、図２１で示されるように、このストリーム暗号方式での暗号化は、ブロック暗号方式のそれよりも速く実行される。従って、このストリーム暗号方式は、浮動小数点マイクロプロセッサで容易に実現可能である。
【０２３６】
さらに、このような暗号システムは、浮動小数点演算の可能な汎用のプログラミング言語ＡＮＳＩ  Ｃ等を用いることで容易に実行できるとともに、通信システムの送受信側で、同一の浮動小数点環境、例えばＩＥＥＥ規格７５４を用いれば、実数値軌道の再現性を容易に保証することができる。
【０２３７】
このように、カオス２値系列は、ストリーム暗号システムにおける鍵系列として、優れた特性・特徴を有するものである。
【０２３８】
なお、このようなストリーム暗号システムの秘密鍵を更新し、受信側へ配送するための幾つかの暗号技術の利用も容易に可能である。
【０２３９】
以下に、本明細書にて示した参考文献の詳細を列挙する。
【０２４０】
［文献１］ C.E.Shannon, “Communication Theory of Secrecy Systems ”, Bell Syst.Tech.J., 28, 656-715, 1945.
［文献２］ H.J.Beker F.C.Piper, “Communications security A survey of cryptography, IEE Proc., 129, Pt.A, No.6, 357-376, 1982.
［文献３］ D.E.R.Denning, Cryptography and Data Security, Addison-Wesley.Publishing, 1982.
［文献４］ James L.Massey,“An Introduction to Contemporary Cryptology”, Proc.IEEE, 76-5, pp.533-549, 1988.
［文献５］ K.Zeng, C.H.Yang, D.Y.Wei, and T.R.N.Rao,“Pseudorandom Bit Generators in Stream-Cipher Cryptography ”, IEEE Computer, -2, 8-17, 1991.
［文献６］ H.Niederreiter,“Quasi-Monte Carlo methods and pseudo-random numbers,”Bull.Am.Math.Soc., 84, 957-1041 1978.
［文献７］ D.Knuth, The art of Computer Programming, Vol.2 Seminumerical Algorithms, 2nd ed.(Addison-Wesley, Reading, Mass., 1981).
［文献８］ A.Yao, “Theory and applications of trapdoor functions ”, Proc．the 23th Annual Sympo.Foundations of Computer Science, 80-91, 1982.
［文献９］ M.Blum and S.Micali, “How to generate cryptographically strong sequences of pseudo-random bits”, SIAM J.Comput., 13, 850-864, 1984.
［文献10］ L.Blum, M.Blum and M.Shub, “A simple unpredictable pseudo-random number generator ”, SIAM J.Comput., 15, 364-383, 1984.
［文献11］ L.Levin“One-way functions and pseudorandom generators ”.Proc.the 17th Annual ACM Sympo.on Theory of Computing, 363-365, 1985.
［文献12］ O.Goldreich, S.Goldwasser, and S.Micali, “How to construct random functions ”, J.ACM, 33, 792-807, 1986.
［文献13］ T.Habutsu, Y.Nishio, I.Sasase, and S.Mori, “A Secret Key Cryptosystem by Iterating a Chaotic Map. ”Proc.Eurocrypt'91, 127-140, 1991.
［文献14］ L.M.Pecora and T.L.Carroll,“Synchronization in Chaotic Systems，”Physical Review Letters.64, 821-824, 1990.
［文献15］ K.M.Cuomo and A.V.Oppenheim, “Circuit Implementation of Synchronized Chaos with Applications to Communications, ”Physical Review Letters.71, 65-68, 1993.
［文献16］ U.Parlitz and S.Ergezinger,“Robust Communication based on Chaotic Spreading Sequences,”Physics Letters A, 188, 146-150, 1994.
［文献17］ E.Biham, “Cryptanalysis of the Chaotic Map Cryptosystem Suggested at EUROCRYPT'91,”Proc.Eurocrypt'91, 532-534, 1991.
［文献18］ Th.Beth, D.E.Lazic, and A.Mathias, “Cryptanalysis of Cryptosystems based on Remote Chaos Replication. ”Proc.Crypt'94, 318-331, 1994.
［文献19］ S.L.Ulam and J.von Neumann,“On combination of stochastic and deterministic processes”, Bull.Math.Soc., 53, pp.1120, 1947.
［文献20］ D.S.Ornstein,“Ergodic Theory, Randomness. and “Chaos ”, ”Science 243, pp.182-186, 1989.
［文献21］ T.Kohda and A.Tsuneda, “Pseudonoise Sequence by Chaotic Nonlinear Maps and Their Correlation Properties,”IEICE Trans.on Communications, E76-B, 855-862, 1993.
［文献22］ T.Kohda and A.Tsuneda, “Explicit Evaluation of Correlation Functions of Chebyshev Binary and Bit Sequences Based on Perron-Frobenius Operator,”IEICE Trans.on Fundamentals of Electronics, Communications and Computer Sciences, E77-A, 1794-1800, 1994.
［文献23］ Jackson, E.Atlee, Perspective nonlinear dynamics, Cambridge Univ.Press, 1989.
［文献24］ A.Lasota and M.C.Mackey, Chaos, Fractals, and Noise, Springer-Verlag, 1994.
［文献25］ S.Oishi H.Inoue, “Pseudo-random number generators and chaos ”, Trans.IEICE Japan, E65, pp.534-541, 1982.
［文献26］ L.O.Chua, Y.Yao and Q.Yang,“Generating randomness from chaos and constructing chaos with desired randomness ”,Int.J.Circuit and Applications, 18, pp.215-240, 1990.
［文献27］ A.R.Murch and R.H.T.Bates, “Colored noise generation through deterministic chaos”, IEEE Trans.on Circuit Systems, 37, 5, pp.608-613, 1990.
［文献28］ G.M.Bernstein and M.A.Lieberman, “Secure Random Generation Using Chaotic Circuits ”, IEEE Trans.Circuits and Systems, 37-9, pp.1157-1164, 1990.
［文献29］ R.L.Adler and T.J.Rivlin,“Ergodic and mixing properties of Chebyshev polynomials, ”Proc.Amer.Math.Soc., 15, pp.794-796, 1964.
［文献30］ T.J.Rivlin, Chebyshev polynomials-From Approximation Theory to Algebra and Number Theory, A Wiley-Interscience Publication, (1990).
［文献31］ Grossmann S., and Thomae, S.,“Invariant distributions and stationary correlation functions of one-dimensional discrete processes, ”Z.Naturforsch.32a, pp.1353-1363, 1977.
［文献32］ T.Kohda and A.Tsuneda, “Auto-/Cross-Correlation Functions of Chaotic Binary/Bit Sequences ”, Proc.of International Conference on Dynamical Sysyems and Chaos, Vol.1, pp.331-334, 1994.
［文献33］ T.Kohda and A.Tsuneda, “Statistics of Chaotic Binary Sequences”, submitted to IEEE Trans.Information Theory.
本発明は、上述した実施の形態に限定されるものではなく、その技術的範囲において種々変形して実施することができる。
【０２４１】
【発明の効果】
本発明によれば、非線形写像に従いカオス軌道に沿った実数値系列を生成し、これをもとに、ストリーム暗号の鍵系列として用いるカオス２値系列を生成することにより、暗号学的安全性に非常に優れたストリーム暗号システムを得ることができる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係る暗号システムの基本構成を示す図
【図２】同実施形態の送信側装置における処理の流れの一例を示すフローチャート
【図３】同実施形態の受信側装置における処理の流れの一例を示すフローチャート
【図４】同実施形態のカオス２値系列生成部の第１の構成例を示す図
【図５】実数値系列の生成と２値化処理を説明するための図
【図６】同実施形態のカオス２値系列生成部の第２の構成例を示す図
【図７】実数値系列の生成とビット選択処理を説明するための図
【図８】同実施形態のカオス２値系列生成部の第３の構成例を示す図
【図９】同実施形態のカオス２値系列生成部の第４の構成例を示す図
【図１０】各カオス２値系列における１の生起確率の経験的測度の平均値および分散を示す図
【図１１】幾つかのビット番号ｉ、ｊに対するＱの値を示す図
【図１２】周期Ｎの系列の線形複雑度を示す図
【図１３】相対頻度の経験測度を示す図
【図１４】相対頻度の経験測度の平均値および分散を示す図
【図１５】条件付き確率の経験測度の平均値および分散を示す図
【図１６】自己相関関数を示す図
【図１７】相互相関関数を用いた暗号解読について説明するための図
【図１８】相互相関関数を用いた暗号解読について説明するための図
【図１９】本実施形態による暗号文の平均パワースペクトルを示す図
【図２０】従来の方法による暗号文の平均パワースペクトルを示す図
【図２１】各方法による暗号化および復号化に要する計算時間の比較を示す図
【符号の説明】
２1，２2…カオス２値系列生成部
４1，４2…排他的論理和部
２１，２３，２５，２７…カオス生成部
２２，２４，２６，２８…ビット生成部
２１１，２３１，２５１，２７１…非線形写像
２２１、２８１，２８２，２８３…閾値処理部
２４１…絶対値処理部
２４２…ビット選択部
２６１，２６２…正規化処理部
２８４…論理演算処理部
【図１】
0003816558.tif 000037
【図２】
0003816558.tif 000038
【図３】
0003816558.tif 000039
【図４】
0003816558.tif 000040
【図５】
0003816558.tif 000041
【図６】
0003816558.tif 000042
【図７】
0003816558.tif 000043
【図８】
0003816558.tif 000044
【図９】
0003816558.tif 000045
【図１０】
0003816558.tif 000046
【図１１】
0003816558.tif 000047
【図１２】
0003816558.tif 000048
【図１３】
0003816558.tif 000049
【図１４】
0003816558.tif 000050
【図１５】
0003816558.tif 000051
【図１６】
0003816558.tif 000052
【図１７】
0003816558.tif 000053
【図１８】
0003816558.tif 000054
【図１９】
0003816558.tif 000055
【図２０】
0003816558.tif 000056
【図２１】
0003816558.tif 000057