JP2005017612A - カオス発生装置、カオス発生用プログラム、カオス発生用記録媒体、擬似乱数発生装置及び暗号装置 - Google Patents
カオス発生装置、カオス発生用プログラム、カオス発生用記録媒体、擬似乱数発生装置及び暗号装置 Download PDFInfo
- Publication number
- JP2005017612A JP2005017612A JP2003181301A JP2003181301A JP2005017612A JP 2005017612 A JP2005017612 A JP 2005017612A JP 2003181301 A JP2003181301 A JP 2003181301A JP 2003181301 A JP2003181301 A JP 2003181301A JP 2005017612 A JP2005017612 A JP 2005017612A
- Authority
- JP
- Japan
- Prior art keywords
- chaotic
- time series
- remainder
- chaos
- function
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】高速演算が可能な新規なカオス的時系列を探索し、このカオス的時系列を用いてカオス発生装置やカオス暗号装置などを実現する。
【解決手段】このカオス発生装置は、変数nの増加に従って急激に増加する関数fi(n)[i=1〜L、L≧1]に対し素数mi[i=1〜L、L≧1]を設定する手段と、変数nの初期値n0に対してfi(n0)から素数miを法として剰余ri(n0)[i=1〜L、L≧1]を導出する初期値演算手段34と、fi(n+1)の計算では剰余ri(n)を利用して素数miを法として導出された剰余ri(n+1)を導出する反復演算手段36と、変数nをn0から順次増大させながら前記剰余ri(n)[i=1〜L、L≧1]を通して生成される一意の値を有するカオス的時系列Xnを出力するカオス信号出力手段38から構成される。再現性のあるカオス的時系列信号を高速出力し、高安全性の暗号装置などを実現する。
【選択図】 図2
【解決手段】このカオス発生装置は、変数nの増加に従って急激に増加する関数fi(n)[i=1〜L、L≧1]に対し素数mi[i=1〜L、L≧1]を設定する手段と、変数nの初期値n0に対してfi(n0)から素数miを法として剰余ri(n0)[i=1〜L、L≧1]を導出する初期値演算手段34と、fi(n+1)の計算では剰余ri(n)を利用して素数miを法として導出された剰余ri(n+1)を導出する反復演算手段36と、変数nをn0から順次増大させながら前記剰余ri(n)[i=1〜L、L≧1]を通して生成される一意の値を有するカオス的時系列Xnを出力するカオス信号出力手段38から構成される。再現性のあるカオス的時系列信号を高速出力し、高安全性の暗号装置などを実現する。
【選択図】 図2
Description
【0001】
【発明の属する技術分野】
本発明は初期値依存性を有するカオス信号を発生するカオス発生装置に関し、更に詳細には、カオス信号を文章・画像・音声などの情報に組み込んでその情報を暗号化し、また暗号からカオス信号を除去して元の情報を復元する復号化を行う暗号装置などに関する。
【0002】
【従来の技術】
近年、インターネット、e−mail、携帯電話などの普及に従って、小容量から大容量に亘る多数の情報が国内のみならず国際的にも送受信されている。これらの情報の送受信は、単に私人間で行われるだけでなく、国民総背番号制に見られるように、私人と行政機関との間でも、また行政機関同士の間でも絶え間なく行われている。
【0003】
従って、送受信される情報を如何に保護するかが極めて重要な課題になっている。つまり、情報を受信者に正確に伝えると共に、受信者以外の第三者が情報を読み取ることができないようにする暗号技術の開発が緊急の課題となってきている。
【0004】
この暗号技術は、情報を暗号へと変換する暗号化技術と、暗号から情報を取り出す復号化技術から構成される。情報を暗号化するには、情報に特定の鍵(パラメータ)により生成される暗号化信号を演算することにより行われる。暗号を複号化するのも、暗号に対し同一の鍵により生成される暗号化信号を逆演算することによって行われる。従って、暗号技術では、暗号化信号自体と暗号化信号を生成する鍵が極めて重要になる。
【0005】
現在、実用化されている暗号技術では、DES暗号(Data Encryption Standard)による共通鍵暗号、RSA暗号(Rivest, Shamir, Adelman)による公開鍵暗号などがある。しかし、これらは安全性や処理速度の点で問題が多い。そこで、安全強度が高く、処理速度が速いカオス暗号方法が提案されている。
【0006】
一般に、カオスとは簡単な規則から生成される不規則な時系列信号であり、初期値が僅かに異なるだけで後続する時系列信号に大きな相違が出現する特性を有している。この特性は初期値依存性あるいは予測不能性とも呼ばれている。カオスが発見される以前は、初期状態がかなり接近していれば、経験の積み重ねにより将来の状態が予測できるとされていた。例えば天気予報などは将来の天候が予測できることを前提に構成される技術である。しかし、カオス現象では、初期状態が接近していても、初期値依存性により将来の状態が予測できない程変化することが分かってきた。
【0007】
このような性質を有するカオス信号は、暗号技術における暗号化信号として最適であると考えられる。そこで、カオス信号を暗号技術に取り込む研究が行われてきた。カオスが知られた当初は、カオス方程式又はカオス写像が与えられれば、これらの式に従ってカオス時系列を再現できると考えられていた。しかし、カオスの研究が深化するに従って、カオス時系列をコンピュータで計算する場合に、数値的発散性が存在することが明らかになってきた。
【0008】
例えば、カオス写像として、Xn+1=F(Xn)を考えてみよう。このカオス写像の性質として、0≦X0≦1を満たす初期値X0から始めて、このカオス写像に従って、X1、X2・・を計算してゆくと、これらの時系列Xnは、0〜1の間を激しく不規則に振動変化する。このとき、カオス写像では時系列の値Xnは小数以下の有効桁数が急速に増大することが分かる。ところが、コンピュータのメモリは有限であり、倍精度計算や4倍精度計算などのように桁数が有限である。従って、カオス計算を続けてゆくと、数値の桁数が急増して、第n回目の計算で、コンピュータの精度限界を簡単に超えてしまうことが分かる。この桁数の増大性を前述した発散性と呼ぶ。
【0009】
例えば、倍精度計算のコンピュータであれば、符号を除くと有効桁数が15桁しか存在しない。カオスの計算では、Xnが15桁を簡単に超えるため、丸め誤差がnの進行に従って急激に増大し、時系列Xnの数値自体が大きな誤差を含むことになる。Xnが激しく振動しても、カオスの初期値依存性に起因するものか、丸め誤差の集積に起因するものかが判断できなくなるのである。
【0010】
同じカオス写像Xn+1=F(Xn)を暗号化と複号化に使用しても、丸め誤差の原因により、同一のカオス時系列信号を暗号化段階と復号化段階で再現できないため、情報を正確に復元することが根本的にできないという袋小路に入っていた。このように、カオスの有効桁数における再現が困難であるため、カオスを暗号装置に利用することは不可能であると考えられていたのである。
【0011】
【発明が解決しようとする課題】
そこで、丸め誤差を解消するカオスの計算方法が待望されていた。本発明者は長年の研究によりこの丸め誤差問題を解決することに初めて成功した。この解決方法は特開2001−255817により既に公開されている。本発明はこの解法を更に進展させたものであるから、直接的な従来技術として、この解法を図27及び図28を用いて説明する。
【0012】
図27はロジスティック写像の厳密なカオス解を使用した従来のカオス時系列のアルゴリズム図である。典型的なカオス写像(Chaos map)として、式(50)で与えられるロジスティック写像(Logistic map)を説明する。このロジスティック写像の厳密解は既に求められており、その厳密解は式(51)で表される。従って、式(52)のようなカオス時系列Xnを導出するには、式(50)の漸化式により計算してもよいし、式(51)の厳密解により直接計算することもできる。
【0013】
カオス時系列の数値的発散性は厳密解であるXn=sin2(c2n)から理解できる。位相部にある指数関数2nの値はnが大きくなると急速に増大し、nが50〜100程度になると、倍精度計算でも数値が発散してしまう。この数値的発散性がsin計算により得られる小数桁数の発散性として出現するのである。コンピュータが倍精度計算で行われる場合には、その精度限界による丸め誤差が上位の桁に継続的に繰り込まれ、倍精度の有効桁数の中に丸め誤差が集積されてゆく。
【0014】
本発明者は前記丸め誤差を消去する方法を発見した。本発明者は係数cの特別な場合として、式(53)で表されるように、c=(k/m)πを想定した。素数mと整数kによる有理数k/mと円周率πとの積として特定の係数cを選択したのである。式(55)によりkを初期値とし、式(54)のX0=sin2[(k/m)π]によりX0を導出する。この値は発散していない。
【0015】
式(56)の漸化式が要点である。sin2(θ)は周期πの周期関数であり、位相θがπの整数倍であれば、nπを除去して計算してもよい。このnπの除去を式(56)により素数mを法としてkn+1を算出して実行する。つまり、2knからmの整数倍を除去し、その剰余をkn+1とする。このようにして、kn+1の発散を防止する。このようにして、式(57)により、桁数が発散しない時系列Xnを式(52)のように次々と導出する。このカオス時系列では、パラメータk、mがカオス発生装置の鍵となり、暗号化と復号化において再現性のあるカオス時系列信号を与える。パラメータmを素数とするのは、kn+1が0〜m−1までの整数であれば約分できないからである。この素数mを大きな値、例えば12桁の素数に設定すると繰り返しの周期を長くすることができ、nとして12桁の値程度までは同じ値を繰り返さないと考えられ、暗号化される情報量が大きくても、十分に対応できる。
【0016】
更に、本発明者は式(58)の多項式も初期値依存性を有したカオス関数であることを発見した。各項を前述と同様のアルゴリズムを用いて計算すれば、カオスの発散性を解消することができる。式(58)のカオス関数をカオス発生装置に用いれば、パラメータは(Mi,ki,mi)[i=1〜L]まで増やすことができる。これらの多数のパラメータ群を鍵としてカオス暗号装置に使用すれば、外部者がこれらの多数のパラメータ群を探知することは不可能になり、外部者による暗号系への侵入は強力に抑止される。整数kiや素数miを例えば12桁のように大きな桁数にとれば、極めて安全性の高い暗号システムを提供できる。
【0017】
図28は他のカオス写像の厳密なカオス解を使用した従来のカオス時系列のアルゴリズム図である。他のカオス写像として式(60)を使用し、この厳密解は式(61)で既に与えられている。この厳密解はXn=sin(c2n)であり、ロジスティック写像と極めてよく似た周期関数である。式(60)又は式(61)をそのまま用いれば、位相部分であるc2nの発散性により式(62)のカオス時系列は数値的に発散してしまう。
【0018】
しかし、カオス関数の位相部がロジスティック写像と全く同一であるから、図27と同様に、式(63)〜式(67)のアルゴリズムを用いて、発散性のない、即ち丸め誤差を含まないカオス時系列Xnを導出できる。このことは、多項式(68)に示されるカオス関数を用いても同様である。また、この多項式を用いれば、パラメータは(Mi,ki,mi)[i=1〜L]と多数になるから、整数kiや素数miを例えば12桁のように大きな桁数にとれば、極めて安全性の高い暗号システムを提供できる。
【0019】
前述したように、本発明者は、厳密なカオス解や、カオス解の1次結合であるカオス関数を用いた場合において、数値的発散性を除去することによって丸め誤差が集積しないカオス時系列の導出方法を提案してきた。この方法により、カオス的厳密性を満足させ、同時に暗号技術の安全性を強化することに成功した。
【0020】
しかしながら、近年の情報通信は極めて高速化されつつあり、インターネットのブロードバンド化でも更なる高速化が要求されている。このように、高速化した情報を暗号化するには、カオス発生装置の高速化が必然的に要求される。このことは単に電子技術の高速化だけではなく、コンピュータによるカオス時系列信号の生成速度を一層に高速化することが要請される。
【0021】
前述したように、厳密なカオス解や、カオス解の1次結合であるカオス関数を用いた場合には、位相部の計算に加えてsin計算が必要となり、特に、sin計算に時間が掛かる傾向にあった。しかしsinを無くした場合には、カオス解やカオス関数とは異なり、カオス性が出現するかどうかも不明である。
【0022】
従って、本発明は、初期値依存性をカオス的時系列の判断基準として用い、前述したカオス解やカオス関数に束縛されずに、新たな視点から高速計算が可能なカオス的時系列を探索し、このカオス的時系列を用いてカオス発生装置やカオス暗号装置などを提供することを目的とする。
【0023】
【課題を解決するための手段】
本発明は上記課題を解決するために為されたものであり、本発明の第1形態は、変数nの増加に従って急激に増加する関数fi(n)[i=1〜L、L≧1]に対し素数mi[i=1〜L、L≧1]を設定する手段と、変数nの初期値n0に対してfi(n0)から素数miを法として剰余ri(n0)[i=1〜L、L≧1]を導出する初期値演算手段と、fi(n+1)の計算では剰余ri(n)を利用して素数miを法として導出された剰余ri(n+1)を導出する反復演算手段と、変数nをn0から順次増大させながら前記剰余ri(n)[i=1〜L、L≧1]を通して生成される一意の値を有するカオス的時系列Xnを出力するカオス信号出力手段から構成されるカオス発生装置である。
本発明者は変数nの増加に従って急激に増加する関数f(n)を用い、この関数f(n)から素数mを法として剰余r(n)を算出すれば、この剰余r(n)は発散せずに0≦r(n)<mの範囲に常に存在することに着眼した。しかも、r(0)から出発してr(n+1)をr(n)との関係で算出するアルゴリズムでは、これらの時系列r(n)は計算機の有効桁数の範囲で丸め誤差を有することなく正確に計算できることを発見した。また、関数f(n)が急激に増加しながら発散する関数であれば、剰余r(n)は0とmの間で不規則に振動することを発見した。このとき、素数mを大きく設定することによって、素数mの大きさに依存したnmaxにより、n=0〜nmaxの範囲で、r(n)は反復することなく初期値依存性を有することも発見したのである。例えば、mを1012程度の素数とすれば、nmaxも同程度の大きさになるから、暗号化する情報より長い時系列を容易に作り出せる。このように、f(n)が前述したカオス解でもなく、またカオス解の一次結合からなるカオス関数でなくても、r(n)は初期値依存性を発現するカオス的時系列であり、その意味でf(n)はカオス的関数と言うことができる。従って、0〜mの範囲で不規則振動するカオス的時系列r(n)から一意のカオス的時系列Xnを導出して、有効なカオス発生装置を構成することが可能になる。r(n)をそのままXnとしてもよいし、r(n)を小数部とした1以下の小数をXnとしてもよいなど、r(n)からXnへの変換は任意に操作することが可能である。更に、複数のカオス的関数fi(n)[i=1〜L]を用意し、素数mi[i=1〜L]を選択し、上述の反復手続により関数fi(n)から素数miを法として剰余ri(n)[i=1〜L]を個別的に算出することもできる。これらの剰余ri(n)[i=1〜L]から一意の値を有するカオス的時系列Xnを導出することもできる。このように、本発明によれば、カオス的関数f(n)の1次結合を利用してカオス的時系列Xnを発生するカオス発生装置も提供できる。f(n)の中にはsinやcosなどの三角関数が含まれず、しかも剰余r(n)を導出する反復計算であるから高速演算が可能であり、カオス的時系列Xnを高速に導出できるカオス発生装置を提供できる。
【0024】
第2の形態は、剰余ri(n)[i=1〜L、L≧1]を前記素数mi[i=1〜L、L≧1]で割算して1より小さな小数の商qi(n)[i=1〜L、L≧1]を算出し、L=1の場合にはq1(n)から前記Xnを導出し、L≧2の場合にはq1(n)+・・+qL(n)の小数部分から前記Xnを導出するカオス発生装置である。
L≧1は1以上の剰余ri(n)を使用できることを意味している。0〜mの間の数値であるr(n)をmで割ると、q(n)は0≦q(n)≦1の範囲にある小数になる。この小数q(n)からカオス時系列Xnを発生させる。また、複数個の剰余ri(n)[i=1〜L]を使用する場合には、q1(n)+・・+qL(n)が1を超える場合も出現するから、この和の小数部分からカオス時系列Xnを発生させる。従って、小数のカオス時系列Xnを発生させることができる。
【0025】
第3の形態は、前記関数fi(n)[i=1〜L、L≧1]がfi(n+1)=(pi+qin+・・+sinti)・fi(n)[i=1〜L、L≧1]の漸化式を満足するカオス発生装置である。
漸化式としては、f(n+1)=p・f(n)、f(n+1)=(p+qn)・f(n)・・・等の任意の式が利用できる。その中で最も簡単な漸化式は、f(n+1)=p・f(n)であり、この場合には、f(n)=c・pnと書くことができる。f(n)が漸化式で与えられる場合には、剰余r(n)も同様の漸化式を有し、r(n+1)をr(n)から反復的に導出することが可能になる。従って、初期値r(n0)から出発して、漸化式を用いて次々にr(n)を導出し、このr(n)に対し常に素数mを法とした剰余を取れば、r(n)は0〜m−1の間を振動する値になる。このようにすれば、r(n)の値に丸め誤差は蓄積されず、数値的発散は防止される。r(n)からカオス時系列Xnを導出するには、第1形態で述べたように、r(n)をそのままXnとしてもよいし、r(n)を小数部とした1以下の小数をXnとしてもよい。また、0〜m−1の間を振動するr(n)を更にmで割ってその小数部だけをXnとできるなど、r(n)からXnへの変換は任意に操作することが可能である。
【0026】
第4の形態は、前記関数fi(n)[i=1〜L、L≧1]がki・pi n[piは自然数、i=1〜L、L≧1]で表されるカオス発生装置である。
本発明者はnの増加に従って急激に増大発散する関数f(n)の一例としてc・pnを提案する。この関数形は、第3形態におけるf(n+1)=p・f(n)の場合に相当する。前述したように、従来からカオス解としてsin[(k/m)π2n]やsin2[(k/m)π2n]、カオス関数としてそれらの1次結合(多項式)を使用していたが、本発明者はその位相部である(k/m)π2nに着目した。この関数のπを無視して、f(n)=c2nを本発明の発散関数として使用し、素数mによる剰余r(n)が初期値依存性を有することを発見して、本発明形態を完成させたものである。指数関数の底を2に限定せず、自然数pにまで拡張させた関数f(n)=cpnが前述した本発明のアルゴリズムにより初期値依存性を有することが、本発明者によって初めて発見された。また、実数cを有理数に限定し、c=k/mと定義して、f(n)=kpnの法mによる剰余r(n)も初期値依存性を示すことが確認された。また、この剰余r(n)を素数mによって割った商(小数)q(n)も初期値依存性を示す。この発見に基づいて、剰余r(n)又は小数q(n)からカオス的時系列Xnを導出するカオス発生装置を提供することができる。関数f(n)としてcipi nの一次結合を利用できることも上述した通りである。このように、cpnという極めて単純な発散関数を用いるから高速演算が可能になり、大容量通信においても高速に暗号化と複合化を実現するカオス発生装置を提供できる。
【0027】
第5の形態は、n=0においてri(0)=ki(mod mi)[i=1〜L、L≧1]とし、ri(n+1)=pi・ri(n)(mod mi)[i=1〜L、L≧1]を漸化式として利用して発散を防止し、この反復演算により得られる剰余ri(n)[i=1〜L、L≧1]からカオス時系列Xnを導出するカオス発生装置である。
上述したように、f(n)=cpnを用いると、f(n+1)=p・f(n)が漸化式となり、f(0)=cを初期値として、漸化式によりf(n)を順次計算できる。c=k/m(k:整数、m:素数)とおけば、各ステップで法mによる剰余r(n)を算出することによって、発散を完全に起こさないで丸め誤差を含有しない剰余r(n)を逐次導出することが可能になる。また、この剰余r(n)を素数mで割って小数q(n)を導出できる。剰余r(n)又は小数q(n)から初期値依存性を有したカオス的時系列Xnを発生させるカオス発生装置を提供することができる。関数f(n)としてcipi nの一次結合を利用できることも上述した通りである。
【0028】
第6の形態は、文章、画像又は音声からなるデジタル情報を暗号化又は復号化するために使用されるカオス発生装置であり、関数fi(n)[i=1〜L、L≧1]のパラメータ及び素数mi[i=1〜L、L≧1]を暗号化又は復号化の鍵として使用するカオス発生装置である。
本発明のカオス発生装置はカオス時系列を丸め誤差なく確実に再現できるから、発散関数fi(n)[i=1〜L、L≧1]のパラメータ及び素数mi[i=1〜L、L≧1]を鍵として与え、発散関数fi(n)を指定するだけで、暗号化と復号化を確実に行えるカオス発生装置を提供できる。しかも、多くのパラメータや素数mを鍵とするから、外部からこれらの鍵を解読されることは困難であり、またこれらの鍵の桁数を増やすだけで外部から侵入不能な暗号装置の確立に貢献できる。
【0029】
第7の形態は、コンピュータを、変数nの増加に従って急激に増加する関数fi(n)[i=1〜L、L≧1]に対し素数mi[i=1〜L、L≧1]を設定する手段と、変数nの初期値n0に対してfi(n0)から素数miを法として剰余ri(n0)[i=1〜L、L≧1]を導出する初期値演算手段と、fi(n+1)の計算では剰余ri(n)を利用して素数miを法として導出された剰余ri(n+1)を導出する反復演算手段と、変数nをn0から順次増大させながら前記剰余ri(n)[i=1〜L、L≧1]を通して生成される一意の値を有するカオス的時系列Xnを出力するカオス信号出力手段として機能させるカオス発生用プログラムである。
コンピュータ演算では、倍精度や4倍精度などで示される有効桁しか有していないから、カオス関数に特有の数値的発散性をその有効桁数に抑えることが必要になる。この第7形態では、発散関数f(n)を素数mを法とした剰余r(n)に変換するから、素数mの桁数を有効桁数内に制限することによって、剰余r(n)を常に有効桁数内の数値として得ることができる。従って、コンピュータ演算において発散が無く、その結果丸め誤差の無いカオス的時系列Xnを生成することができる。しかも、関数f(n)や剰余r(n)の演算の中に三角関数を全く含まないから演算速度を高速化できる。カオス的時系列を使用するシミュレーション全体の高速化を達成できる。また、初期値演算より以後では、f(n)自体の演算を行わずに、有限値の剰余r(n)を用いた反復演算を行って連続的にカオス的時系列を生成するから、カオス演算を高速に行うことができる。従って、カオス的時系列を使用するシミュレーション全体の高速化を達成できる。
【0030】
第8の形態は、コンピュータを、変数nの増加に従って急激に増加する関数fi(n)[i=1〜L、L≧1]に対し素数mi[i=1〜L、L≧1]を設定する手段と、変数nの初期値n0に対してfi(n0)から素数miを法として剰余ri(n0)[i=1〜L、L≧1]を導出する初期値演算手段と、fi(n+1)の計算では剰余ri(n)を利用して素数miを法として導出された剰余ri(n+1)を導出する反復演算手段と、変数nをn0から順次増大させながら前記剰余ri(n)[i=1〜L、L≧1]を通して生成される一意の値を有するカオス的時系列Xnを出力するカオス信号出力手段として機能させるためのプログラムを記録したコンピュータ読み取り可能なカオス発生用記録媒体である。
第7の形態で説明したように、このプログラムによれば、カオス時系列を丸め誤差無く演算でき、しかも高速演算が可能になる。このようなプログラムを保存した記録媒体を安価に提供できるから、市場において高精度にしかも高速にカオスシミュレーションを行えるようにできる利点がある。
【0031】
第9の形態は、変数nの増加に従って急激に増加する関数fi(n)[i=1〜L、L≧1]に対し素数mi[i=1〜L、L≧1]を設定する手段と、変数nの初期値n0に対してfi(n0)から素数miを法として剰余ri(n0)[i=1〜L、L≧1]を導出する初期値演算手段と、fi(n+1)の計算では剰余ri(n)を利用して素数miを法として導出された剰余ri(n+1)を導出する反復演算手段と、変数nをn0から順次増大させながら前記剰余ri(n)[i=1〜L、L≧1]を通して生成される一意の値を有するカオス的時系列Xnを出力するカオス信号出力手段から構成される擬似乱数発生装置である。
本発明により得られるカオス的時系列XnをXn+1−Xn平面にプロットすると、その全平面に極めて均一に分散し、しかもXnのスペクトルは白色雑音に近い性質を有することが本発明者等により初めて確認された。また、Xnの自己相関関数R(L)は遅れ数Lに対して極めて小さな値をとることが分かった。これらの結果から、本発明により得られるカオス時系列Xnは擬似乱数として有効であることが実証され、各種のシミュレーションで効果的に使用できる擬似乱数発生装置を提供するものである。
【0032】
第10の形態は、変数nの増加に従って急激に増加する関数fi(n)[i=1〜L、L≧1]に対し素数mi[i=1〜L、L≧1]を設定する手段と、変数nの初期値n0に対してfi(n0)から素数miを法として剰余ri(n0)[i=1〜L、L≧1]を導出する初期値演算手段と、fi(n+1)の計算では剰余ri(n)を利用して素数miを法として導出された剰余ri(n+1)を導出する反復演算手段と、変数nをn0から順次増大させながら前記剰余ri(n)[i=1〜L、L≧1]を通して生成される一意の値を有するカオス的時系列Xnを出力するカオス信号出力手段から構成されるカオス発生装置と、このカオス発生装置のカオス時系列Xnによりデジタル情報を暗号化して暗号を生成する暗号化装置と、この暗号を受信して前記カオス時系列と全く同じカオス時系列Xnにより暗号からデジタル情報を導出する復号化装置とを有し、暗号化と復号化に際して前記関数fi(n)[i=1〜L、L≧1]のパラメータと素数mi[i=1〜L、L≧1]を鍵として使用する暗号装置である。
第1の形態において詳述したように、変数nの増加に従って急激に増加する関数f(n)を出発関数にしながら、素数mを法として剰余r(n)を算出し、しかもr(n+1)を前記剰余r(n)を通して導出するから、剰余r(n)には丸め誤差が全く混入しない。丸め誤差を含まない剰余r(n)からカオス的時系列Xnを導出するから、関数f(n)のパラメータと素数mを鍵としてカオス的時系列を何回でも確実に再現することが可能になる。従って、暗号化装置ではこの再現可能なカオス的時系列Xnを用いて情報を暗号化し、復号化装置では前記カオス的時系列Xnを用いて暗号から情報を取り出す復号化処理を確実に行うことができる。また、関数f(n)にはsinやcos等の三角関数が含まれないからカオス的時系列Xnを高速に導出することができ、情報の高速通信に適合した高速暗号装置を提供することができる。また、複数の関数fi(n)[i=1〜L]と複数の素数mi[i=1〜L]を使用すると、関数fi(n)[i=1〜L]の多くのパラメータや素数mi[i=1〜L]が鍵となり、これらの鍵群を外部から解読することはほぼ不可能になる。従って、前述した高速性を有し、しかも安全性の高い暗号装置を実現できる。
【0033】
【発明の実施の形態】
以下に、本発明に係るカオス発生装置、カオス発生用プログラム、カオス発生用記録媒体、擬似乱数発生装置及び暗号装置の実施形態を添付する図面に従って詳細に説明する。
【0034】
図1は本発明に係る暗号装置2のブロック構成図で、この暗号装置2には本発明に係るカオス発生装置10、20が組み込まれている。この暗号装置2は情報を暗号にする暗号化装置4と暗号から情報を復元する復号化装置6により構成されている。
【0035】
暗号化装置4は、カオス時系列信号Xnを出力するカオス発生装置10と、このカオス時系列信号Xnを情報8に組み込んで暗号14を出力する演算装置12から構成されている。情報8には、文章(テキスト)情報、画像情報、音声情報があり、これらの各種情報からなる混合情報もある。デジタル情報通信では、情報8はデジタル情報であり、カオス時系列信号もデジタルカオス時系列信号である。
【0036】
カオス時系列信号Xnからデジタルカオス時系列信号を生成するには、例えば次のような方法がある。カオス時系列信号Xnが0〜1の間の数値信号であるとすると、0.5未満の数値信号は”0”とし、0.5以上の数値信号は”1”とすればよい。また、カオス時系列信号Xnが0〜106の間の数値信号であるとすると、0.5×106未満の数値信号は”0”とし、0.5×106以上の数値信号は”1”とすればよい。このような各種方法によりカオス発生装置10によりデジタルカオス時系列信号が生成される。
【0037】
演算装置12により情報8にカオス時系列信号Xnが組み込まれる。デジタル信号処理では、演算処理として論理演算が施される。その中でも、例えば排他的論理和を採ると演算処理がきわめて簡単になる。排他的論理和は1+1=0、1+0=1、0+1=1、0+0=0からなる規則である。デジタル情報8が(0101100101)とし、デジタルカオス時系列信号Xnが(100101100)とすると、排他的論理和により暗号14は(0101100101)+(100101100)=(110001001)となる。 このようにして作成された暗号14は、図示しない通信装置により送信(16)される。
【0038】
複号化装置6は、暗号14を受信(18)する図示しない受信装置と、カオス時系列信号Xnを出力するカオス発生装置20と、このカオス時系列信号Xnを暗号14に処理(複号化)して情報8を出力する演算装置22から構成されている。
【0039】
複号化装置6のカオス発生装置20は暗号化装置4のカオス発生装置10と全く同様に構成され、同一のカオス時系列信号Xnを再現するように構成されている。カオス発生装置10、20には後述されるカオス発生用のアルゴリズムが内蔵されており、同一のカオス時系列信号Xnを発生させるため、同一の鍵24が与えられる。また、カオス発生用のアルゴリズムは、後述するように極めて高速演算が可能に設計されるから、近年における情報通信の高速化に十分に追随できるように構成されている。
【0040】
前記鍵24は、後述するように多数のパラメータ(Mi、ki、mi、pi)[i=1〜L、L≧1]から構成され、各パラメータは多数桁の数値から形成される。つまり、鍵24は関数f(n)を構成するパラメータと素数mからなる。このように、鍵24として多数のパラメータを使用すると、第三者はこれらの鍵を完全に解読することは不可能である。また各パラメータを多数桁の数字で構成すれば、ビット数の増加に従って、鍵の解読は不可能になる。ここに本発明の特徴があり、極めて安全な暗号装置を提供できるのである。即ち、本発明に係る暗号装置2の特徴は、カオス発生装置10、20に存在する。
【0041】
暗号化処理に前記排他的論理和が使用された場合には、複号化処理でも同様の排他的論理和が行われる。具体例で説明すれば、カオス発生装置20により前記と同一のデジタルカオス時系列信号Xn(100101100)が出力される。暗号14が(110001001)であり、演算装置22により暗号14とデジタルカオス時系列信号Xnとの排他的論理和が演算される。即ち、(110001001)+(100101100)=(010100101)となる。このようにして、(010100101)で与えられる情報8が導出される。
【0042】
演算装置12により通常の論理和が行われれば、演算装置22では暗号14からカオス時系列信号Xnを差し引いて情報8が導出される。即ち、演算装置12の演算に対し、演算装置22では逆演算が行われる。排他的論理和では、演算と逆演算が全く同一になる点に特徴があり、その意味で演算処理が簡単で効率的である。
【0043】
図2は本発明に係るカオス発生装置10(20)の構成図である。カオス発生装置10(20)はパラメータ入力手段30と、初期値演算手段34と反復演算手段36からなるカオス演算手段32と、カオス信号出力手段38から構成されている。
【0044】
パラメータ入力手段30はカオス演算に必要なパラメータ28を読み込む部材で、例えば後述するような(Mi,ki,mi,pi)[i=1・・・L,L≧1]等からなるパラメータ群が読み込まれる。このパラメータ28によりカオス的関数が特定され、内蔵された手順に従ってカオス的時系列が演算されてゆく。
【0045】
カオス演算手段32は、高速演算を実現するため、カオス的時系列の初期値X0を導出する初期値演算手段と、初期値に基づいて反復演算によりカオス的時系列Xn(n≧1)を連続的に生成する反復演算手段36が設けられている。初期値はn=0が通常であるが、任意のn0から出発してもよい。反復演算手段36には、後述するように漸化式が組み込まれ、この漸化式に従って時系列Xnが生成される。
【0046】
カオス信号出力手段38は、初期値X0や時系列Xn(n≧1)を信号として外部に出力するための部材である。カオス時系列Xnは数値としては0≦Xn≦1の場合が多いが、例えば0≦Xn≦1000であってもよい。カオス信号出力手段38によりこのカオス的時系列Xnが、例えば電圧値として出力される。この信号はデジタルカオス時系列信号として出力される。
【0047】
このカオス発生装置10(20)は電子回路装置として構成されてもよいし、カオス演算プログラムを内蔵してコンピュータをカオス発生装置として組み込んでも良い。また、カオス演算プログラムの記録媒体を装填して、コンピュータをカオス発生装置として利用しても構わない。
【0048】
図3は本発明に係る擬似乱数発生装置40の構成図である。この擬似乱数発生装置40は前述したカオス発生装置と同様に構成されており、パラメータ入力手段42と、初期値演算手段46と反復演算手段48からなるカオス演算手段44と、カオス信号出力手段50を基本構成要素としている。
【0049】
パラメータ入力手段42は演算に必要なパラメータ28を読み込む部材で、例えば後述するような(Mi,ki,mi,pi)[i=1・・・L,L≧1]等からなるパラメータ群を読み込む。このパラメータによりカオス的関数が特定され、内蔵された手順に従ってカオス時系列が演算されてゆく。
【0050】
カオス演算手段44は、高速演算を実現するため、カオス時系列の初期値X0を導出する初期値演算手段46と、初期値に基づいて反復演算により時系列Xn(n≧1)を連続的に生成する反復演算手段48が設けられている。初期値はn=0が通常であるが、任意のn0から出発してもよい。反復演算手段48には、後述するように漸化式が組み込まれ、この漸化式に従って時系列Xnが生成される。
【0051】
カオス信号出力手段50は、初期値X0や時系列Xn(n≧1)を信号として外部に出力するための部材である。乱数は通常0〜1の範囲に選択される場合が多いから、カオス時系列Xnは数値としては0≦Xn≦1の範囲に制限されて出力される。カオス信号出力手段50によりこのカオス時系列Xnが、例えば電圧値として出力される。この信号はアナログカオス時系列信号として出力されてもよいし、0〜1の間を更に量子化して多段階数値として出力されてもよい。
【0052】
図4は本発明に使用されるカオス的関数f(n)及びその剰余r(n)の具体例を示す説明図である。本発明者が発見したカオス的関数f(n)とは変数nの増加に従って急激に増大化する関数である。
【0053】
本発明者がこのようなカオス的関数を発見した経過を次に述べる。図27及び図28に示したように、カオス写像を満足する厳密なカオス解はXn=sin(c2n)やXn=sin2(c2n)であった。これらカオス解の小数桁数の発散性は、その位相部であるc2nが変数nの増加に従って数値的に発散する性質に起因している。
【0054】
言い換えれば、Xnの初期値依存性も位相部c2nの数値的発散性に起因すると考えられる。そこで、本発明者はc=(k/m)π(k:整数、m:素数)の特別な場合を考察し、πの整数倍の周期性を演算から除去すれば、c2nの数値的発散性を消去できることを発見した。しかも素数mを大きく採ると、素数mの大きさと同程度のnmaxまでの範囲、即ち0〜nmaxの範囲において時系列Xnが初期値依存性を発現することを発見したのである。
【0055】
そこで、本発明者は、演算の高速性を実現するために、sin関数を排除し、その位相部c2nを関数f(n)と定義して、この関数f(n)からカオス時系列Xnを導出する方法を想定するに到った。sin関数を用いないためπを除去し、c=k/mと定義して、f(n)=(k/m)2nを導入する。この関数はf(n+1)=2f(n)という漸化式を満足する。
【0056】
まず、f(n)の数値的発散性を除去するため、nの初期値n0で、r(n0)=f(n0)(mod m)により法mによる剰余r(n0)を演算する。通常はn0=0とされる。このr(n0)を初期値として、n>n0の剰余r(n)が演算される。つまり、上記の漸化式の関係から成立する剰余の漸化式、r(n+1)=2r(n)(mod m)を用いて、剰余r(n)が連続的に算出される。
【0057】
剰余r(n)は0≦r(n)<mを満足する。素数mを大きく設定すれば、素数mと同程度のnmaxまでr(n)は繰り返すことなくカオス特性である初期値依存性を示すことが本発明者により発見された。本発明はこの発見に基づいて為されたものである。
【0058】
r(n)は素数mより小さいから、素数mの桁数を精度限界内に設定すれば、r(n)に丸め誤差が蓄積することはない。カオス時系列Xnとして前記剰余r(n)を使用してもよいが、この剰余r(n)を変換した数値でもよい。例えば、時系列を1以下の小数に設定するには、r(n)を導出して、Xn=r(n)/m(mod 1)とすればよい。即ち、r(n)を素数mで割ってその小数をXnとすればよい。これ以外の変換方法で時系列Xnを導出することも自在にできる。
【0059】
前述したf(n+1)=2f(n)の関係を基礎にして、本発明者はカオス的関数として式(1a)のf(n+1)=g(n)・f(n)を提案する。この一般的関係が図4に示されている。g(n)=2が上記の場合に対応し、一般にg(n)=(p+qn+・・+snt)の多項式が与えられる。p、q・・s、tが0以上の整数として定義されると、g(n)は常に整数となる。
【0060】
f(0)等の初期値を整数で与えると、式(1a)によればf(n)は急激に増大化して発散する。この発散を防止するために、演算過程で適当な素数mを選択して(mod m)をとり、mより小さな剰余r(n)が導出される。この一般的関係がr(n+1)=g(n)・r(n)(mod m)として表されている。
【0061】
多項式g(n)として、式(2a)〜式(6a)が例示されている。これらのg(n)に対応して、剰余r(n)においては式(2b)〜式(6b)が与えられる。式(1b)〜式(6b)により得られる剰余r(n)は0〜mの範囲内の整数である。このr(n)をXnとしてもよいし、このr(n)を変換した数値をXnとしてもよい。変換の一例としてr(n)(mod 1)があり、Xnが1より小さな小数で与えられる。任意の変換が行えることは云うまでも無い。
【0062】
図5は本発明に係るカオス的関数を用いた信号発生用のフローチャート図である。このフローチャート図では、所望の種類のカオス的関数により、カオス時系列Xnが生成される。ステップy1は、L個のカオス的関数fi(n)と素数miを設定する手段を示す。関数形が決まっているときには、その関数を与えるパラメータが設定される。Lは1以上であればよく、1個のカオス的関数でもよいし、複数個のカオス的関数でもよい。[i=1〜L、L≧1]により1個以上のカオス的関数の選択が指定されている。
【0063】
ステップy2は、剰余の初期値ri(0)を設定する手段を示す。nの初期値として0が選ばれる。n=0におけるカオス的関数fi(0)及びその剰余ri(0)が導出される。つまり、カオス的関数fi(0)の法miによる剰余ri(0)が導出される。このステップによって、剰余の初期値ri(0)が設定される。従って、ri(0)は0〜mの範囲内の整数として導出される。変数nの初期値として任意の自然数n0が設定されても良い。この場合には、ri(n0)が導出される。
【0064】
ステップy3は、カオス時系列Xnの初期値X0を導出する手段を示す。L個の剰余r1(0)・・rL(0)について小数化処理が行われる。即ち、ri(0)/mi[i=1〜L、L≧1]により各剰余ri(0)が少数化され、それらの総和が算出される。ri(0)の夫々は1より小さいが、総和は1を超える場合が出現する。そのため、総和の小数部だけをX0とするため、総和に対し(mod 1)が操作され、小数部をX0として出力する。
従って、本発明ではステップy2及び/又はステップy3は初期値演算手段と呼ばれる。
【0065】
ステップy4〜y8はn≧1のXnを導出する反復演算手段を示す。まず、ステップy4はn=0を設定する手段である。nの初期値としてn0が使用されるときには、n=n0が設定される。ステップy5は素数mより小さなri(n)から素数mより小さなri(n+1)を導出する手段である。つまり、ri(n)からri(n+1)を導出し、その素数miを法とする剰余ri(n+1)がi=1〜L(L≧1)に対して導出される。
【0066】
ステップy6はカオス的時系列Xn+1を導出する手段である。L個の剰余r1(n+1)・・rL(n+1)について小数化処理が行われる。即ち、ri(n+1)/mi[i=1〜L、L≧1]により各剰余ri(n+1)が少数化され、それらの総和が算出される。ri(n+1)の夫々は1より小さいが、総和は1を超える場合が出現する。そのため、総和の小数部だけをXn+1とするため、総和に対し(mod 1)が操作され、小数部をXn+1として出力する。ステップy5とステップy6は一体的に処理されることもできる。即ち、Xn+1=SUM[[ri(n+1)(mod mi)]/mi](mod 1)が演算されてもよい。SUMはi=1〜Lについて総和を示す。
数学記号では和はシグマ記号で表され、添付される全ての図面ではシグマ記号で表されている。しかし、明細書の中では記号使用が制限されているため、シグマ記号をSUMと表記する。
【0067】
ステップy7は時系列Xnの信号出力を停止するための判別手段である。出力停止(Y)なら信号出力が停止される。出力停止でない(N)とき、ステップy8はnをn+1に繰り上げて反復演算を繰り返す手段である。最初、n=0(y4)が与えられたからX1が出力(y6)され、次の反復演算手段によりn=1(y8)としてX2が出力される。このようにして、任意個数のカオス的時系列X0、X1、X2・・が連続的に出力されてゆく。出力停止は図示しない出力停止手段によって実行される。
【0068】
以上の手続では、一般的なカオス的関数f(n)からカオス的時系列Xnを導出する一般的方法が説明された。以下の手続では、f(n+1)=pf(n)で表される簡単なカオス的関数を用いてカオス時系列Xnを生成するアルゴリズム及びフローチャート並びに各種図面が説明される。本発明者が最初に発見したカオス的関数はf(n+1)=2f(n)で与えられる形式を有した。上記カオス的関数はこの数値2を一般の自然数pに拡張した形式を有している。
【0069】
図6は1項(1−term)からなるカオス的関数(Chaotic Function)によるカオス時系列のアルゴリズム図である。式(1)はカオス的関数を与え、f(n)=cpnにおいて、c=k/mと置かれている。kは整数、mは素数である。素数mの大きさによって初期値依存性の領域幅の大きさが決まる。素数mの大きさを、例えば、1011、1012又は1013オーダーに設定すれば、式(2)で表されるカオス時系列の最終値XNの順番数Nも同程度の大きさになる。このようにすれば、暗号化される情報のデータ数よりもカオス時系列の長さを大きく設定でき、暗号化処理などで支障を来たさない。
【0070】
式(3)はカオス時系列を与えるパラメータk、m、pを意味しており、これらのパラメータを暗号装置における鍵とする。式(4)〜(7)はカオス時系列Xnを与えるアルゴリズムを表している。式(4)では、整数kに対し(mod m)が施され、得られるk0を0≦k0<mの範囲に制限する。通常では、パラメータk、mを設定するときに整数kはk<mとなるように選ばれるから、この場合には式(4)で(mod m)の処理は不要になる。
【0071】
式(5)では、k0の少数化処理が行われる。k0は0≦k0<mの値であるから、k0を素数mで割ることにより少数化が行われる。k0/mに対して(mod1)を処理し、その小数部からカオス的時系列の初期値X0が導出される。X0の小数桁数はコンピュータの有効精度により制限される。
【0072】
次に、n=0〜N−1の範囲で反復演算が行われる。式(6)により、0〜mの範囲にあるknからkn+1=p・kn(mod m)によりkn+1が導出される。pを乗じることによってkn+1はmより大きくなる可能性があるから、(modm)によりkn+1を0≦kn+1<mの範囲に制限する。
【0073】
更に、式(7)によりkn+1の少数化処理が行われる。kn+1をmで割って少数化し、(mod 1)によりその小数部をXn+1として導出する。この処理をXn+1=(kn+1/m)(mod 1)により行う。
【0074】
上記の演算を繰り返すと、k0を用いてk1、X1が演算され、k1を用いてk2、X2が次々と導出されてゆくのである。この1項からなるカオス的関数では、式(6)の(mod m)によりkn+1は0≦kn+1<mの範囲に制限されており、式(5)及び式(7)における(mod 1)は必ずしも必要ではない。このようにして、カオス時系列Xnが演算されてゆく。図6の1項方式では、カオス的関数が極めて簡単であるから、アルゴリズムの全過程が高速で演算され、カオス的時系列Xnを高速に出力できる利点がある。
【0075】
図7は、図6のアルゴリズムを実行するフローチャート図である。図5の説明と重複するところは簡略に説明する。ステップy11〜y18は図5におけるステップy1〜y8に夫々対応している。また、図7以後の図面説明では、冗長を避けるため、例えばステップy11を単にy11と簡略に表記する。
【0076】
y11は素数mを含むカオス的関数のパラメータを設定する手段で、パラメータとして整数k、素数m、指数関数の底p(即ちpn)が設定される。y12は剰余の初期値を設定する手段で、法mによる整数kの剰余k0が導出される。y13はカオス的時系列Xnの初期値X0を演算する手段で、k0/mの小数部をX0として導出し、このカオス的時系列の初期値X0を外部に出力する。
【0077】
y14〜y18はカオス的時系列Xn(n≧1)を導出する反復演算手段であり、y14はn=0を設定する手段である。y15は剰余kn+1を法mにより導出する手段で、y16によりXn+1=(kn+1/m)(mod 1)を演算し、1以下の小数をカオス的時系列Xnとして外部に出力する。
【0078】
y17はカオス的時系列Xnの演算を停止するかどうかの判別手段で、停止(Y)なら演算を停止し、継続(N)ならy18によりn=n+1が設定される。そして再びy15に帰還して反復演算が行われる。従って、y14〜y18の反復演算を行って、カオス的時系列X1、X2・・・が停止命令を受けるまで演算され、外部に継続的に出力されてゆく。
【0079】
図8は1項からなるカオス的関数によるカオス的時系列図である。縦軸はカオス的時系列Xn、横軸は繰り返し数n(Iteration Number)である。時系列Xnは0〜1の間を激しく不規則に振動し、カオス的挙動を示すことが分かる。実線はX0が0.13000であり、点線はX0が0.13001である。初期値はこのように僅かな違いしかないが、nが35を過ぎる辺りから実線と点線のXnは大きな相違を示し始める。このような性質を初期値依存性と呼び、この1項からなる前記関数がカオス的関数であることを証明している。
【0080】
図9は2項(2−terms)からなるカオス的関数(Chaotic Function)によるカオス時系列のアルゴリズム図である。式(11)はカオス的関数を与え、M1(k1/m1)p1 nとM2(k2/m2)p2 nの和から構成される。M1とM2は各項の係数であり、k1とk2は整数、p1とp2は正の整数、m1とm2は素数である。M1とM2は実数から選ばれる。このカオス的関数Xnから式(12)のカオス的時系列が演算される。
【0081】
2項からなるカオス的関数Xnを与えるパラメータはM1、k1、m1、p1とM2、k2、m2、p2の8個である。これらの8個のパラメータが式(13)で示されるようにカオス的時系列の鍵(Key)となる。このようにパラメータが増えると、外部からこれらのパラメータを探知する可能性は殆ど無くなる。各パラメータを16ビットで表すと、合計で16ビット×8=128ビットになる。外部者が128ビットの未知数を探知できる可能性はほぼゼロであり、このカオス発生装置を用いて暗号装置を構成すれば、極めて安全な暗号装置が実現できる。しかも、カオス的関数は単純な指数関数であるから、カオス的時系列を高速に導出できる特性を有している。
【0082】
式(14)〜(17)はカオス的時系列Xnを与えるアルゴリズムを表している。式(14)では、積Mi・kiに対し(mod mi)[i=1,2]が施され、得られるki,0を0≦ki,0<mi[i=1,2]の範囲に制限する。通常では、パラメータMi、ki、miを設定するときにMi・ki<miとなるように選ばれるから、この場合には式(14)において(mod mi)を施すことは不要になる。
【0083】
式(15)では、ki,0の少数化処理が行われる。ki,0は0≦ki,0<miの値であるから、ki,0を素数miで割ることにより少数化が行われる。k1,0/m1+k2,0/m2に対して(mod 1)を処理し、その小数部からカオス的時系列の初期値X0が導出される。X0の小数桁数はコンピュータの有効精度により制限されている。
【0084】
次に、n=0〜N−1の範囲で反復演算が行われる。式(16−1)及び(16−2)により、0〜mの範囲にあるki,nからki,n+1=pi・ki,n(mod mi)によりki,n+1[i=1,2]が導出される。piを乗じることによってki,n+1はmiより大きくなる可能性があるから、(mod mi)によりki,n+1を0≦ki,n+1<mi[i=1,2]の範囲に制限する。
【0085】
更に、式(17)によりki,n+1の少数化処理が行われる。ki,n+1をmiで割って少数化し、2項の和を(mod 1)の操作を施して、その小数部をXn+1として導出する。
【0086】
上記の演算を繰り返すと、カオス的時系列X1、X2・・・XNが導出される。この2項方式では、カオス的関数が極めて簡単な構成を有し、アルゴリズムの全過程が高速で演算され、カオス的時系列Xnを高速に出力できる利点がある。しかも、鍵となるパラメータ数が増大し、外部からこれらの全てのパラメータを探知することは不可能になり、暗号装置の安全性が強化される。
【0087】
図10は、図9のアルゴリズムを実行するフローチャート図である。y21〜y28は図5におけるy1〜y8に夫々対応している。y21はカオス的関数のパラメータを設定する手段で、(Mi,ki,mi,pi)[i=1,2]がパラメータとして設定される。kiは整数、miは素数、piは指数関数の底(即ちpi n)が設定される。y22は剰余の初期値を設定する手段で、法miによる積Mi・kiの剰余ki,0が導出される。y23はカオス時系列Xnの初期値X0を演算する手段で、k1,0/m1+k2,0/m2の小数部をX0として導出し、このカオス時系列の初期値X0を外部に出力する。
【0088】
y24〜y28はカオス時系列Xn(n≧1)を導出する反復演算手段であり、y24はn=0を設定する手段である。y25は剰余ki,n+1を法miにより導出する手段で、y26によりXn+1=(k1,n+1/m1)+(k2,n+1/m2)(mod 1)を演算し、1以下の小数をカオス時系列Xnとして外部に出力する。
【0089】
y27はカオス的時系列Xnの演算を停止するかどうかの判別手段で、停止(Y)なら演算を停止し、継続(N)ならy28によりn=n+1が設定される。そして再びy25に帰還して反復演算が行われる。従って、y24〜y28の反復演算を行って、カオス的時系列X1、X2・・・が停止命令を受けるまで演算され、外部に継続的に出力されてゆく。
【0090】
図11は2項からなるカオス的関数の一例を示すパラメータ図である。10進数として、整数kiは11桁、素数miは12桁[i=1,2]に設定されている。係数M1、M2は実数であり、簡単のためM1=M2=1に設定された。
【0091】
図12は、図11のパラメータにより得られたカオス的時系列のXn+1−Xn平面図である。カオス的時系列Xnは0〜1の間の小数である。プロットされた点はXn+1−Xn平面に均一に分散していることが分かる。このように均一に分散することから、このカオス的時系列は擬似乱数として極めて有効であることが明白である。従って、このカオス発生装置が同時に擬似乱数発生装置として使用できることが証明された。
【0092】
図13は、図11のパラメータにより得られたカオス的時系列のスペクトル図である。横軸は区間(Section)、縦軸はその区間に存在する個数(The number)である。区間は0〜1を50等分して得られ、例えば区間1は0〜0.02の範囲に対応する。全区間を通して個数はほぼ均一であり、換言すればこのカオス的時系列Xnが白色ノイズに近い性質を有していること示す。従って、カオス的時系列Xnが乱数として有効であることが実証された。
【0093】
図14は、図11のパラメータにより得られたカオス的時系列の自己相関関数図である。横軸は遅れ数(Delay Number)L、縦軸は自己相関関数(Autocorrelation)R(L)である。図示するように、自己相関関数R(L)はLだけ離れたXnとXn+Lの積Xn・Xn+Lの総和によって定義される関数である。この自己相関関数R(L)が変数Lのほぼ全領域で小さく、しかもカオス的関数の項数に依存しないから、カオス的時系列Xnは相互関係を殆ど有していない。この性質は図12及び図13に示される性質と共通しており、カオス的時系列Xnが擬似乱数として好適であることを示している。
【0094】
図15は多項(multi−terms)からなるカオス的関数(Chaotic Function)によるカオス的時系列のアルゴリズム図である。式(21)はカオス的関数を与え、Xn=SUM[Mi(ki/mi)pi n[和はi=1〜L]で表される。以下では、SUMはi=1〜LのL個の和を示しており、これを単にSUMとして表示する。M1〜MLは各項の係数であり、k1〜kLは整数、p1〜pLは正の整数、m1〜mLは素数である。このカオス的関数Xnから式(22)のカオス的時系列Xnが演算される。M1〜MLは実数から選ばれる。
【0095】
L項からなるカオス的関数Xnを与えるパラメータは(M1、k1、m1、p1)〜(ML、kL、mL、pL)の4×L個である。これらの4×L個のパラメータが式(23)で示されるようにカオス的時系列の鍵(Key)となる。このようにパラメータが増えると、不審者が外部からこれらのパラメータを探知する可能性は無くなる。このカオス発生装置を用いて暗号装置を構成すれば、極めて安全な暗号装置が実現できる。しかも、カオス的関数は単純な指数関数であるから、カオス的時系列を高速に導出できる特性を有している。項数の増加は、演算時間の増大を招来するが、適当な項数Lを選択して高速性と安全性の両者を実現することが可能である。
【0096】
式(24)〜(27)はカオス的時系列Xnを与えるアルゴリズムを表している。式(24)では、積Mi・kiに対し(mod mi)[i=1〜L]が施され、得られるki,0を0≦ki,0<mi[i=1〜L]の範囲に制限する。通常では、パラメータMi、ki、miを設定するときにMi・ki<miとなるように選択されるから、この場合には式(24)において(mod mi)を施すことは不要になる。
【0097】
式(25)では、ki,0の少数化処理が行われる。ki,0は0≦ki,0<miの値であるから、ki,0を素数miで割ることにより少数化が行われる。SUM[ki,0/mi]に対して(mod 1)を処理し、その小数部からカオス的時系列の初期値X0が導出される。ki,0/miは0〜1の間の小数であるが、SUMをとると1を超える場合が出現するため、(mod 1)が施される。X0の小数桁数はコンピュータの有効精度により制限される。
【0098】
次に、n=0〜N−1の範囲で反復演算が行われる。式(26)により、0〜miの範囲にあるki,nからki,n+1=pi・ki,n(mod mi)によりki,n+1[i=1〜L]が導出される。piを乗じることによってki,n+1はmiより大きくなる可能性があるから、(mod mi)によりki,n+1を0≦ki,n+1<mi[i=1〜L]の範囲に制限する。
【0099】
更に、式(27)によりki,n+1の少数化処理が行われる。ki,n+1をmiで割って少数化し、L項の和を(mod 1)の操作を施してその小数部をXn+1として導出する。
【0100】
上記の演算を繰り返すと、カオス的時系列X1、X2・・・XNが導出される。この多項方式では、カオス的関数が極めて簡単な構成を有し、アルゴリズムの全過程が高速に演算され、カオス的時系列Xnを高速に出力できる利点がある。しかも、鍵となるパラメータ数が増大し、外部からこれらの全てのパラメータを探知することは不可能になり、暗号装置の安全性が強化される。
【0101】
図16は、図15のアルゴリズムを実行するフローチャート図である。y31〜y38は図5におけるy1〜y8に夫々対応している。y31はカオス的関数のパラメータを設定する手段で、(Mi,ki,mi,pi)[i=1〜L]がパラメータとして設定される。kiは整数、miは素数、piは指数関数の底(即ちpi n)が設定される。y32は剰余の初期値を設定する手段で、法miによる積Mi・kiの剰余ki,0が導出される。y33はカオス的時系列Xnの初期値X0を演算する手段で、SUM[ki,0/mi]の小数部をX0として導出し、このカオス的時系列の初期値X0を外部に出力する。
【0102】
y34〜y38はカオス的時系列Xn(n≧1)を導出する反復演算手段であり、y34はn=0を設定する手段である。y35は剰余ki,n+1を法miにより導出する手段で、y36によりXn+1=SUM(ki,n+1/mi)(mod 1)を演算し、1以下の小数をカオス的時系列Xnとして外部に出力する。
【0103】
y37はカオス的時系列Xnの演算を停止するかどうかの判別手段で、停止(Y)なら演算を停止し、継続(N)ならy38によりn=n+1が設定される。そして再びy35に帰還して反復演算が行われる。従って、y34〜y38の反復演算を行って、カオス的時系列X1、X2・・・が停止命令を受けるまで演算され、外部に継続的に出力されてゆく。
【0104】
図17は多項(L=10)からなるカオス的関数の一例を示すパラメータ図である。10進数として、整数kiは11桁、素数miは12桁[i=1〜10]に設定されている。係数Miは実数であるが、簡単のためMi=0.1[i=1〜10]に設定された。
【0105】
図18は、図17に示すパラメータにより得られたカオス的時系列図である。縦軸はカオス的時系列Xn、横軸は繰り返し数n(Iteration Number)である。時系列Xnは0〜1の間を激しく不規則に振動し、カオス的挙動を示していることが分かる。このことから、10項からなる前記関数がカオス的関数であることを実証している。
【0106】
図19は、図17のパラメータにより得られたカオス的時系列のXn+1−Xn平面図である。カオス的時系列Xnは0〜1の間の小数である。プロットされた点はXn+1−Xn平面に均一に分散していることが分かる。このように均一に分散することから、このカオス的時系列は擬似乱数として極めて有効であることが明白である。つまり、このカオス発生装置が同時に擬似乱数発生装置として使用できることが証明された。
【0107】
図20は、図17のパラメータにより得られたカオス的時系列のスペクトル図である。横軸は区間(Section)、縦軸はその区間に存在する個数(The number)である。区間は0〜1を50等分して得られ、例えば区間1は0〜0.02の範囲に対応する。全区間を通して個数はほぼ均一であり、換言すればこのカオス的時系列Xnが白色ノイズに近い性質を有していること示す。従って、カオス的時系列Xnが乱数として有効であることが実証された。
【0108】
図21は、図17のパラメータにより得られたカオス的時系列の自己相関関数図である。横軸は遅れ数(Delay Number)L、縦軸は自己相関関数(Autocorrelation)R(L)である。自己相関関数R(L)はLだけ離れたXnとXn+Lの積Xn・Xn+Lの総和によって定義される関数である。この自己相関関数R(L)が変数Lのほぼ全領域で小さく、カオス的関数の項数に依存しないから、カオス的時系列Xnは相互関係を殆ど有していない。この性質は図19及び図20に示される性質と共通しており、カオス的時系列Xnが乱数として好適であることを示している。
【0109】
図22は、係数Miを用いないは多項(multi−terms)からなるカオス的関数(Chaos−like Function)によるカオス的時系列のアルゴリズム図である。この多項カオス的関数は図15において係数Miを全て1に固定した場合に相当する。つまり、多項ではパラメータ数が急増するから、係数Miを排除してパラメータ数をその分だけ減量する。
【0110】
式(31)はカオス的関数を与え、Xn=SUM[(ki/mi)pi n][和はi=1〜L]で表される。以下では、SUMはi=1〜LのL個の和を示しており、これを単にSUMとして表示する。k1〜kLは整数、p1〜pLは正の整数、m1〜mLは素数である。このカオス的関数Xnから式(32)のカオス的時系列Xnが演算される。
【0111】
L項からなるカオス的関数Xnを与えるパラメータは(k1、m1、p1)〜(kL、mL、pL)の3×L個である。これらの3×L個のパラメータが式(33)で示されるようにカオス的時系列の鍵(Key)となる。パラメータ数の増加により、不審者が外部からこれらのパラメータを探知する可能性は無くなる。このカオス発生装置を用いて暗号装置を構成すれば、極めて安全な暗号装置が実現できる。しかも、カオス的関数は単純な指数関数であるから、カオス時系列を高速に導出できる特性を有している。項数の増加は、演算時間の増大を招来するが、適当な項数Lを選択して高速性と安全性の両者を実現することが可能である。
【0112】
式(34)〜(37)はカオス的時系列Xnを与えるアルゴリズムを表している。式(34)では、kiに対し(mod mi)[i=1〜L]が施され、得られるki,0を0≦ki,0<mi[i=1〜L]の範囲に制限する。通常では、パラメータki、miを設定するときにki<miとなるように選択されるから、この場合には式(34)において(mod mi)を施すことは不要になる。
【0113】
式(35)では、ki,0の少数化処理が行われる。ki,0は0≦ki,0<miの値であるから、ki,0を素数miで割ることにより少数化が行われる。SUM[ki,0/mi]に対して(mod 1)を処理し、その小数部からカオス的時系列の初期値X0が導出される。ki,0/miは0〜1の間の小数であるが、SUMをとると1を超える場合が出現するため、(mod 1)が施される。X0の小数桁数はコンピュータの有効精度により制限される。
【0114】
次に、n=0〜N−1の範囲で反復演算が行われる。式(36)により、0〜miの範囲にあるki,nからki,n+1=pi・ki,n(mod mi)によりki,n+1[i=1〜L]が導出される。piを乗じることによってki,n+1はmiより大きくなる可能性があるから、(mod mi)によりki,n+1を0≦ki,n+1<mi[i=1〜L]の範囲に制限する。
【0115】
更に、式(37)によりki,n+1の少数化処理が行われる。ki,n+1をmiで割って少数化し、L項の和を(mod 1)の操作を施してその小数部をXn+1として導出する。
【0116】
上記の演算を繰り返すと、カオス的時系列X1、X2・・・XNが導出される。この多項方式では、カオス的関数が極めて簡単な構成を有し、アルゴリズムの全過程が高速に演算され、カオス的時系列Xnを高速に出力できる利点がある。しかも、鍵となるパラメータ数が増大し、外部からこれらの全てのパラメータを探知することは不可能になり、暗号装置の安全性が強化される。
【0117】
図23は、図22のアルゴリズムを実行するフローチャート図である。y41〜y48は図5におけるy1〜y8に夫々対応している。y41はカオス的関数のパラメータを設定する手段で、(ki,mi,pi)[i=1〜L]がパラメータとして設定される。kiは整数、miは素数、piは指数関数の底(即ちpi n)が設定される。y42は剰余の初期値を設定する手段で、法miによるkiの剰余ki,0が導出される。y43はカオス的時系列Xnの初期値X0を演算する手段で、SUM[ki,0/mi]の小数部をX0として導出し、このカオス的時系列の初期値X0を外部に出力する。
【0118】
y44〜y48はカオス的時系列Xn(n≧1)を導出する反復演算手段であり、y44はn=0を設定する手段である。y45は剰余ki,n+1を法miにより導出する手段で、y46によりXn+1=SUM[ki,n+1/mi](mod 1)を演算し、1以下の小数をカオス的時系列Xnとして外部に出力する。
【0119】
y47はカオス的時系列Xnの演算を停止するかどうかの判別手段で、停止(Y)なら演算を停止し、継続(N)ならy48によりn=n+1が設定される。そして再びy45に帰還して反復演算が行われる。従って、y44〜y48の反復演算を行って、カオス的時系列X1、X2・・・が停止命令を受けるまで演算され、外部に継続的に出力されてゆく。
【0120】
図24は、多項(multi−terms)からなるカオス的関数(Chaotic Function)にパラメータCを定数項として付加したカオス時系列のアルゴリズム図である。式(41)はカオス的関数を与え、Xn=SUM[Mi(ki/mi)pi n]+C[和はi=1〜L]で表される。この関数形では、発散する関数はSUM[Mi(ki/mi)pi n]の部分であり、本発明の要部をなす実質的なカオス的関数f(n)はf(n)=SUM[Mi(ki/mi)pi n]である。つまり、定数項Cはこのカオス的関数f(n)に外的に付加されているものである。Cの替わりに、例えばw(n)=C+Dn+En2等の関数を付加してもよい。この場合には、パラメータC、D、Eも他のパラメータと共に暗号装置の鍵となり、不審者の侵入防止を強化できる。即ち、本来のカオス的関数に外部関数を付加し、この外部関数のパラメータを付加的な鍵とするものである。このように、カオス的関数に外部関数を設定する手段を設けても良い。SUMはi=1〜LのL個の和を示しており、これを単にSUMとして表示する。M1〜MLは各項の係数であり、k1〜kLは整数、p1〜pLは正の整数、m1〜mLは素数、定数項Cは実数である。このカオス的関数Xnから式(42)のカオス的時系列Xnが演算される。M1〜MLは実数から選ばれる。
【0121】
L項からなるカオス的関数Xnを与えるパラメータは(M1、k1、m1、p1)〜(ML、kL、mL、pL)+Cの(4×L+1)個である。これらの(4×L+1)個のパラメータが式(43)で示されるようにカオス的時系列の鍵(Key)となる。このようにパラメータが増えると、不審者が外部からこれらのパラメータを探知する可能性は無くなる。このカオス発生装置を用いて暗号装置を構成すれば、極めて安全な暗号装置が実現できる。しかも、カオス的関数は単純な指数関数を基本に構成されているから、カオス時系列を高速に導出できる特性を有している。項数の増加は、演算時間の増大を招来するが、適当な項数Lを選択して高速性と安全性の両者を実現することが可能である。
【0122】
式(44)〜(47)はカオス的時系列Xnを与えるアルゴリズムを表している。式(44)では、積Mi・kiに対し(mod mi)[i=1〜L]が施され、得られるki,0を0≦ki,0<mi[i=1〜L]の範囲に制限する。通常では、パラメータMi、ki、miを設定するときにMi・ki<miとなるように選択されるから、この場合には式(44)において(mod mi)を施すことは不要になる。
【0123】
式(45)では、ki,0の少数化処理が行われる。ki,0は0≦ki,0<miの値であるから、ki,0を素数miで割ることにより少数化が行われる。SUM[ki,0/mi]+Cに対して(mod 1)を処理し、その小数部からカオス時系列の初期値X0が導出される。ki,0/miは0〜1の間の小数であるが、SUM及びCにより1を超える場合が出現するため、(mod 1)が施される。X0の小数桁数はコンピュータの有効精度により制限される。
【0124】
次に、n=0〜N−1の範囲で反復演算が行われる。式(46)により、0〜mの範囲にあるki,nからki,n+1=pi・ki,n(mod mi)によりki,n+1[i=1〜L]が導出される。piを乗じることによってki,n+1はmiより大きくなる可能性があるから、(mod mi)によりki,n+1を0≦ki,n+1<mi[i=1〜L]の範囲に制限する。
【0125】
更に、式(47)によりki,n+1の少数化処理が行われる。ki,n+1をmiで割って少数化し、L項の和+定数項Cを(mod 1)によりその小数部をXn+1として導出する。
【0126】
上記の演算を繰り返すと、カオス的時系列X1、X2・・・XNが導出される。この多項方式では、定数項Cによりパラメータ数が増えるため安全性が一層高くなる。また、カオス的関数が極めて簡単な構成を有するから、アルゴリズムの全過程が高速に演算され、カオス的時系列Xnを高速に出力できる利点がある。
【0127】
図25は、図24のアルゴリズムを実行するフローチャート図である。y51〜y58は図5におけるy1〜y8に夫々対応している。y51はカオス的関数のパラメータを設定する手段で、(Mi,ki,mi,pi)[i=1〜L]+Cがパラメータとして設定される。Miは実数、kiは整数、miは素数、piは指数関数の底(即ちpi n)、Cは実数が設定される。y52は剰余の初期値を設定する手段で、法miによる積Mi・kiの剰余ki,0が導出される。y53はカオス的時系列Xnの初期値X0を演算する手段で、SUM[ki,0/mi]+Cの小数部をX0として導出し、このカオス的時系列の初期値X0を外部に出力する。
【0128】
y54〜y58はカオス的時系列Xn(n≧1)を導出する反復演算手段であり、y54はn=0を設定する手段である。y55は剰余ki,n+1を法miにより導出する手段で、y56によりXn+1=SUM(ki,n+1/mi)+C(mod 1)を演算し、1以下の小数をカオス的時系列Xnとして外部に出力する。
【0129】
y57はカオス的時系列Xnの演算を停止するかどうかの判別手段で、停止(Y)なら演算を停止し、継続(N)ならy58によりn=n+1が設定される。そして再びy55に帰還して反復演算が行われる。従って、y54〜y58の反復演算を行って、カオス的時系列X1、X2・・・が停止命令を受けるまで演算され、外部に継続的に出力されてゆく。
【0130】
上述したように、本発明では、カオス的関数f(n)を直接演算するものでは無い。f(n)を直接演算すると、当然に発散し、有効桁数により丸め誤差が累積する。このカオス的関数の発散を防止するために、f(n)の計算を剰余r(n)により行い、r(n)からr(n+1)への連鎖を通して反復演算を行うことに特徴を有している。この剰余r(n)はカオス的関数f(n)から素数mを法として得られる剰余である。この剰余r(n)に定数項Cや別の関数w(n)を付加することも可能である。この1形態として図24及び図25では定数項Cがカオス時系列の計算過程で付加されている。
【0131】
図26は本発明に係るカオス発生用プログラムによる演算を実行するシステム構成図である。本発明に係るプログラム63は、このプログラム63を記録したカオス発生用記録媒体を入力装置60に装填してシステムに入力され、バス61を通してメインメモリ装置62にインストールされる。初期パラメータや演算により得られるデータはデータメモリ装置70に格納される。
【0132】
このプログラム63を実行するために、パラメータ(M,k,m,p)が入力装置60から入力され、パラメータメモリ部72に格納される。これらのパラメータを用いてプログラム63によりカオス演算が実行される。演算及び制御はCPU64により処理される。
【0133】
パラメータ(M,k,m,p)を用いて素数mを法とする剰余r(n0)が初期値として導出される。n0は繰り返し数nの初期値を与え、通常はn0=0に設定される。このr(n0)を使用し、プログラム63により、n=n+1の反復により、r(n)が次々と導出されてゆく。r(n)は剰余メモリ部74に格納される。この剰余r(n)は0〜mの範囲の整数である。
【0134】
剰余r(n)が導出されると、このr(n)を素数mで割り、1より小さな小数q(n)が導出される。つまり1を法として小数q(n)が演算される。従って、q(n)は0〜1の範囲の小数である。この小数q(n)は小数メモリ部76に格納される。繰り返し数nの各段階の演算では、素数mを法として演算が実行されるから、r(n)の有効桁数に丸め誤差は導入されない。また、同様の理由により、小数q(n)の小数桁にも丸め誤差は導入されない。
【0135】
次に、剰余r(n)又は小数q(n)からカオス的時系列Xnが導出され、カオスメモリ部78に格納される。同時にカオス的時系列Xnは出力装置66から外部に出力される。
【0136】
剰余r(n)は0〜mまでの整数であり、この値をそのままカオス的時系列Xnとしてもよい。また、0〜0.5×mの範囲の整数を”0”、0.5×m〜mの範囲の整数を”1”としてカオス的時系列Xnを構成することもできる。この場合には、小数q(n)の演算は不要になる。
【0137】
同様に、小数q(n)をそのままカオス的時系列Xnとしてもよい。また、0〜0.5の範囲の小数を”0”、0.5〜1の範囲の小数を”1”としてカオス的時系列Xnを構成してもよい。以上のように、剰余r(n)又は小数q(n)からカオス的時系列Xnへの変換は自在に行うことができる。
【0138】
従って、本発明は上記実施形態に限定されるものではなく、本発明の技術的思想を逸脱しない範囲における種々の変形例、設計変更などをその技術的範囲内に包含することは云うまでもない。
【0139】
【発明の効果】
本発明の第1の形態によれば、変数nの増加に従って急激に増加する関数f(n)を用い、この関数f(n)から素数mを法として剰余r(n)を導出すれば、この剰余r(n)は発散せずに0≦r(n)<mの範囲に常に存在し、しかもr(n)は初期値依存性を有する。r(0)から出発してr(n+1)をr(n)との関係で算出するアルゴリズムでは、これらの時系列r(n)は計算機の有効桁数の範囲で丸め誤差を有することなく正確に計算できる。また、関数f(n)が急激に増加しながら発散する関数であれば、剰余r(n)は0とmの間でカオス的に不規則に振動する。素数mを大きく設定すれば、素数mの大きさに依存したnmaxにより、n=0〜nmaxの範囲で、r(n)は反復することなくカオス性を発現するのである。例えば、mを1012程度の素数とすれば、nmaxも同程度の大きさになるから、暗号化する情報より長い時系列を容易に作り出せる。0〜mの範囲で不規則振動するカオス的時系列r(n)から一意のカオス的時系列Xnを導出して、有効なカオス発生装置を構成することが可能になる。r(n)をそのままXnとしてもよいし、r(n)を小数部とした1以下の小数をXnとしてもよいなど、r(n)からXnへの変換は任意に操作することが可能である。更に、複数のカオス的関数fi(n)[i=1〜L]を用意し、素数mi[i=1〜L]を選択し、上述の反復手続により関数fi(n)から素数miを法として剰余ri(n)[i=1〜L]を個別的に算出することもできる。これらの剰余ri(n)[i=1〜L]から一意の値を有するカオス的時系列Xnを導出することもできる。このように、本発明によれば、カオス的関数f(n)の1次結合を利用してカオス的時系列Xnを発生するカオス発生装置も提供できる。f(n)の中にはsinやcosなどの三角関数が含まれず、しかも剰余r(n)を導出する反復計算であるから高速演算が可能であり、カオス的時系列Xnを高速に導出できるカオス発生装置を提供できる。
【0140】
第2の形態によれば、0〜mの間の数値であるr(n)をmで割ると、q(n)は0≦q(n)≦1の範囲にある小数になる。この小数q(n)からカオス的時系列Xnを発生させる。また、複数個の剰余ri(n)[i=1〜L]を使用する場合には、q1(n)+・・+qL(n)が1を超える場合も出現するから、この和の小数部分からカオス的時系列Xnを発生させる。従って、小数のカオス的時系列Xnを発生させることができる。
【0141】
第3の形態によれば、漸化式としては、f(n+1)=p・f(n)、f(n+1)=(p+qn)・f(n)・・・等の任意の式が利用できる。その中で最も簡単な漸化式は、f(n+1)=p・f(n)であり、この場合には、f(n)=c・pnと書くことができる。f(n)が漸化式で与えられる場合には、剰余r(n)も同様の漸化式を有し、r(n+1)をr(n)から反復的に導出することが可能になる。従って、初期値r(n0)から出発して、漸化式を用いて次々にr(n)を導出し、このr(n)に対し常に素数mを法とした剰余を取れば、r(n)は0〜m−1の間を振動する値になる。このようにすれば、r(n)の値に丸め誤差は蓄積されず、数値的発散は防止される。r(n)からカオス的時系列Xnを導出するには、第1形態で述べたように、r(n)をそのままXnとしてもよいし、r(n)を小数部とした1以下の小数をXnとしてもよい。また、0〜m−1の間を振動するr(n)を更にmで割ってその小数部だけをXnとできるなど、r(n)からXnへの変換は任意に操作することが可能である。
【0142】
第4の形態によれば、カオス的関数f(n)の一例としてc・pnが利用できる。この関数形は、第3形態におけるf(n+1)=p・f(n)の場合に相当する。前述したように、従来からカオス解としてsin[(k/m)π2n]やsin2[(k/m)π2n]、カオス関数としてそれらの1次結合(多項式)を使用していたが、本発明者はその位相部である(k/m)π2nに着目した。この関数のπを無視して、f(n)=c2nを本発明の発散関数として使用する。実数cを有理数に限定し、c=k/mと定義して、f(n)=kpnの法mによる剰余r(n)が初期値依存性を示すことが確認された。また、この剰余r(n)を素数mによって割った商(小数)q(n)も初期値依存性を示す。この発見に基づいて、剰余r(n)又は小数q(n)からカオス的時系列Xnを導出するカオス発生装置を提供する。関数f(n)としてcipi nの一次結合を利用できることも上述した通りである。このように、cpnという極めて単純な発散関数を用いるから高速演算が可能になり、大容量通信においても高速に暗号化と複号化を実現するカオス発生装置を提供できる。
【0143】
第5の形態によれば、f(n)=cpnを用いると、f(n+1)=p・f(n)が漸化式となり、f(0)=cを初期値として、漸化式によりf(n)を順次計算できる。c=k/m(k:整数、m:素数)とおけば、各ステップで法mによる剰余r(n)を算出することによって、発散を完全に起こさないで丸め誤差を含有しない剰余r(n)を逐次導出することが可能になる。また、この剰余r(n)を素数mで割って小数q(n)を導出できる。剰余r(n)又は小数q(n)から初期値依存性を有したカオス的時系列Xnを発生させるカオス発生装置を提供できる。関数f(n)としてcipi nの一次結合も利用できる。
【0144】
第6の形態によれば、本発明のカオス発生装置はカオス時系列を丸め誤差なく確実に再現できるから、発散関数fi(n)[i=1〜L、L≧1]のパラメータ及び素数mi[i=1〜L、L≧1]を鍵として与え、発散関数fi(n)を指定するだけで、暗号化と復号化を確実に行えるカオス発生装置を提供できる。しかも、多くのパラメータや素数mを鍵とするから、外部からこれらの鍵を解読されることは困難であり、またこれらの鍵の桁数を増やすだけで外部から侵入不能な暗号装置の確立に貢献できる。
【0145】
第7の形態によれば、カオス発生用プログラムをコンピュータにインストールし、変数nの増加に従って急激に増加する関数fi(n)[i=1〜L、L≧1]に対し素数mi[i=1〜L、L≧1]を設定する手段と、変数nの初期値n0に対してfi(n0)から素数miを法として剰余ri(n0)[i=1〜L、L≧1]を導出する初期値演算手段と、fi(n+1)の計算では剰余ri(n)を利用して素数miを法として導出された剰余ri(n+1)を導出する反復演算手段と、変数nをn0から順次増大させながら前記剰余ri(n)[i=1〜L、L≧1]を通して生成される一意の値を有するカオス的時系列Xnを出力するカオス信号出力手段としてコンピュータを機能させることができる。
コンピュータ演算では、倍精度や4倍精度などで示される有効桁しか有していないから、カオス的関数に特有の数値的発散性をその有効桁数に抑えることが必要になる。この第7形態では、発散関数f(n)を素数mを法とした剰余r(n)に変換するから、素数mの桁数を有効桁数内に制限することによって、剰余r(n)を常に有効桁数内の数値として得ることができる。従って、コンピュータ演算において発散が無く、その結果丸め誤差の無いカオス的時系列Xnを生成することができる。しかも、関数f(n)や剰余r(n)の演算の中に三角関数を全く含まないから演算速度を高速化できる。カオス的時系列を使用するシミュレーション全体の高速化を達成できる。また、初期値演算より以後では、f(n)自体の演算を行わずに、有限値の剰余r(n)を用いた反復演算を行って連続的にカオス的時系列を生成するから、カオス演算を高速に行うことができる。従って、カオス的時系列を使用するシミュレーション全体の高速化を達成できる。
【0146】
第8の形態によれば、第7形態のカオス発生用プログラムを記録したコンピュータ読み取り可能なカオス発生用記録媒体が提供される。この記録媒体を介してプログラムをコンピュータにインストールすると、カオス的時系列を丸め誤差無く演算でき、しかも高速演算が可能になる。このようなプログラムを保存した記録媒体を安価に提供できるから、市場において高精度にしかも高速にカオスシミュレーションを行えるようにできる利点がある。
【0147】
第9の形態によれば、本発明により得られるカオス的時系列XnがXn+1−Xnの全平面に均一に分散し、しかもXnのスペクトルが白色雑音に近い性質を有する擬似乱数発生装置が提供される。また、Xnの自己相関関数R(L)は遅れ数Lに対して極めて小さな値をとり、殆ど相関性の無い乱数を発生できることが分かった。このように、本発明により得られるカオス的時系列Xnは乱数として有効であることが実証され、各種のシミュレーションで効果的に使用できる擬似乱数発生装置が実現される。
【0148】
第10の形態によれば、変数nの増加に従って急激に増加する関数f(n)を出発関数にしながら、素数mを法として剰余r(n)を算出し、しかもr(n+1)を前記剰余r(n)を通して導出するから、剰余r(n)には丸め誤差が全く混入しない。丸め誤差を含まない剰余r(n)からカオス的時系列Xnを導出するから、関数f(n)のパラメータと素数mを鍵としてカオス的時系列を何回でも確実に再現することが可能になる。従って、暗号化装置ではこの再現可能なカオス的時系列Xnを用いて情報を暗号化し、復号化装置では前記カオス的時系列Xnを用いて暗号から情報を取り出す復号化処理を確実に行うことができる。また、関数f(n)にはsinやcos等の三角関数が含まれないからカオス的時系列Xnを高速に導出することができ、情報の高速通信に適合した高速暗号装置を提供することができる。また、複数の関数fi(n)[i=1〜L]と複数の素数mi[i=1〜L]を使用すると、関数fi(n)[i=1〜L]の多くのパラメータや素数mi[i=1〜L]が鍵となり、これらの鍵群を外部から解読することはほぼ不可能になる。従って、前述した高速性を有し、しかも安全性強度の高い暗号装置を実現できる。
【図面の簡単な説明】
【図1】本発明に係る暗号装置2のブロック構成図。
【図2】本発明に係るカオス発生装置10(20)の構成図である。
【図3】本発明に係る乱数発生装置40の構成図である。
【図4】本発明に使用されるカオス的関数f(n)及びその剰余r(n)の具体例を示す説明図である。
【図5】本発明に係るカオス的関数を用いた信号発生用のフローチャート図である。
【図6】1項(1−term)からなるカオス的関数(Chaotic Function)によるカオス時系列のアルゴリズム図である。
【図7】図6のアルゴリズムを実行するフローチャート図である。
【図8】1項からなるカオス的関数によるカオス時系列図である。
【図9】2項(2−terms)からなるカオス的関数(Chaotic Function)によるカオス時系列のアルゴリズム図である。
【図10】図9のアルゴリズムを実行するフローチャート図である。
【図11】2項からなるカオス的関数の一例を示すパラメータ図である。
【図12】図11のパラメータにより得られたカオス的時系列のXn+1−Xn平面図である。
【図13】図11のパラメータにより得られたカオス的時系列のスペクトル図である。
【図14】図11のパラメータにより得られたカオス的時系列の自己相関関数図である。
【図15】多項(multi−terms)からなるカオス的関数(Chaotic Function)によるカオス的時系列のアルゴリズム図である。
【図16】図15のアルゴリズムを実行するフローチャート図である。
【図17】多項(L=10)からなるカオス的関数の一例を示すパラメータ図である。
【図18】図17に示すパラメータにより得られたカオス的時系列図である。
【図19】図17のパラメータにより得られたカオス的時系列のXn+1−Xn平面図である。
【図20】図17のパラメータにより得られたカオス的時系列のスペクトル図である。
【図21】図17のパラメータにより得られたカオス的時系列の自己相関関数図である。
【図22】係数Miを用いないは多項(multi−terms)からなるカオス的関数(Chaotic Function)によるカオス的時系列のアルゴリズム図である。
【図23】図22のアルゴリズムを実行するフローチャート図である。
【図24】多項(multi−terms)からなるカオス的関数(Chaotic Function)にパラメータCを定数項として付加したカオス的時系列のアルゴリズム図である。
【図25】図24のアルゴリズムを実行するフローチャート図である。
【図26】本発明に係るカオス発生用プログラムによる演算を実行するシステム構成図である。
【図27】ロジスティック写像の厳密なカオス解を使用した従来のカオス時系列のアルゴリズム図である。
【図28】他のカオス写像の厳密なカオス解を使用した従来のカオス時系列のアルゴリズム図である。
【符号の説明】
2は暗号装置、4は暗号化装置、6は復号化装置、8は情報、10はカオス発生装置、12は演算装置、14は暗号、16は送信、18は受信、20はカオス発生装置、22は演算装置、24は鍵、28はパラメータ、30はパラメータ入力手段、32はカオス演算手段、34は初期値演算手段、36は反復演算手段、38はカオス信号出力手段、40は擬似乱数発生装置、42はパラメータ入力手段、44はカオス演算手段、46は初期値演算手段、48は反復演算手段、50はカオス信号出力手段。60は入力装置、61はバス、62はメインメモリ装置、63はプログラム、64はCPU、66は出力装置、70はデータメモリ装置、72はパラメータメモリ部、74は剰余メモリ部、76は小数メモリ部、78はカオスメモリ部。
【発明の属する技術分野】
本発明は初期値依存性を有するカオス信号を発生するカオス発生装置に関し、更に詳細には、カオス信号を文章・画像・音声などの情報に組み込んでその情報を暗号化し、また暗号からカオス信号を除去して元の情報を復元する復号化を行う暗号装置などに関する。
【0002】
【従来の技術】
近年、インターネット、e−mail、携帯電話などの普及に従って、小容量から大容量に亘る多数の情報が国内のみならず国際的にも送受信されている。これらの情報の送受信は、単に私人間で行われるだけでなく、国民総背番号制に見られるように、私人と行政機関との間でも、また行政機関同士の間でも絶え間なく行われている。
【0003】
従って、送受信される情報を如何に保護するかが極めて重要な課題になっている。つまり、情報を受信者に正確に伝えると共に、受信者以外の第三者が情報を読み取ることができないようにする暗号技術の開発が緊急の課題となってきている。
【0004】
この暗号技術は、情報を暗号へと変換する暗号化技術と、暗号から情報を取り出す復号化技術から構成される。情報を暗号化するには、情報に特定の鍵(パラメータ)により生成される暗号化信号を演算することにより行われる。暗号を複号化するのも、暗号に対し同一の鍵により生成される暗号化信号を逆演算することによって行われる。従って、暗号技術では、暗号化信号自体と暗号化信号を生成する鍵が極めて重要になる。
【0005】
現在、実用化されている暗号技術では、DES暗号(Data Encryption Standard)による共通鍵暗号、RSA暗号(Rivest, Shamir, Adelman)による公開鍵暗号などがある。しかし、これらは安全性や処理速度の点で問題が多い。そこで、安全強度が高く、処理速度が速いカオス暗号方法が提案されている。
【0006】
一般に、カオスとは簡単な規則から生成される不規則な時系列信号であり、初期値が僅かに異なるだけで後続する時系列信号に大きな相違が出現する特性を有している。この特性は初期値依存性あるいは予測不能性とも呼ばれている。カオスが発見される以前は、初期状態がかなり接近していれば、経験の積み重ねにより将来の状態が予測できるとされていた。例えば天気予報などは将来の天候が予測できることを前提に構成される技術である。しかし、カオス現象では、初期状態が接近していても、初期値依存性により将来の状態が予測できない程変化することが分かってきた。
【0007】
このような性質を有するカオス信号は、暗号技術における暗号化信号として最適であると考えられる。そこで、カオス信号を暗号技術に取り込む研究が行われてきた。カオスが知られた当初は、カオス方程式又はカオス写像が与えられれば、これらの式に従ってカオス時系列を再現できると考えられていた。しかし、カオスの研究が深化するに従って、カオス時系列をコンピュータで計算する場合に、数値的発散性が存在することが明らかになってきた。
【0008】
例えば、カオス写像として、Xn+1=F(Xn)を考えてみよう。このカオス写像の性質として、0≦X0≦1を満たす初期値X0から始めて、このカオス写像に従って、X1、X2・・を計算してゆくと、これらの時系列Xnは、0〜1の間を激しく不規則に振動変化する。このとき、カオス写像では時系列の値Xnは小数以下の有効桁数が急速に増大することが分かる。ところが、コンピュータのメモリは有限であり、倍精度計算や4倍精度計算などのように桁数が有限である。従って、カオス計算を続けてゆくと、数値の桁数が急増して、第n回目の計算で、コンピュータの精度限界を簡単に超えてしまうことが分かる。この桁数の増大性を前述した発散性と呼ぶ。
【0009】
例えば、倍精度計算のコンピュータであれば、符号を除くと有効桁数が15桁しか存在しない。カオスの計算では、Xnが15桁を簡単に超えるため、丸め誤差がnの進行に従って急激に増大し、時系列Xnの数値自体が大きな誤差を含むことになる。Xnが激しく振動しても、カオスの初期値依存性に起因するものか、丸め誤差の集積に起因するものかが判断できなくなるのである。
【0010】
同じカオス写像Xn+1=F(Xn)を暗号化と複号化に使用しても、丸め誤差の原因により、同一のカオス時系列信号を暗号化段階と復号化段階で再現できないため、情報を正確に復元することが根本的にできないという袋小路に入っていた。このように、カオスの有効桁数における再現が困難であるため、カオスを暗号装置に利用することは不可能であると考えられていたのである。
【0011】
【発明が解決しようとする課題】
そこで、丸め誤差を解消するカオスの計算方法が待望されていた。本発明者は長年の研究によりこの丸め誤差問題を解決することに初めて成功した。この解決方法は特開2001−255817により既に公開されている。本発明はこの解法を更に進展させたものであるから、直接的な従来技術として、この解法を図27及び図28を用いて説明する。
【0012】
図27はロジスティック写像の厳密なカオス解を使用した従来のカオス時系列のアルゴリズム図である。典型的なカオス写像(Chaos map)として、式(50)で与えられるロジスティック写像(Logistic map)を説明する。このロジスティック写像の厳密解は既に求められており、その厳密解は式(51)で表される。従って、式(52)のようなカオス時系列Xnを導出するには、式(50)の漸化式により計算してもよいし、式(51)の厳密解により直接計算することもできる。
【0013】
カオス時系列の数値的発散性は厳密解であるXn=sin2(c2n)から理解できる。位相部にある指数関数2nの値はnが大きくなると急速に増大し、nが50〜100程度になると、倍精度計算でも数値が発散してしまう。この数値的発散性がsin計算により得られる小数桁数の発散性として出現するのである。コンピュータが倍精度計算で行われる場合には、その精度限界による丸め誤差が上位の桁に継続的に繰り込まれ、倍精度の有効桁数の中に丸め誤差が集積されてゆく。
【0014】
本発明者は前記丸め誤差を消去する方法を発見した。本発明者は係数cの特別な場合として、式(53)で表されるように、c=(k/m)πを想定した。素数mと整数kによる有理数k/mと円周率πとの積として特定の係数cを選択したのである。式(55)によりkを初期値とし、式(54)のX0=sin2[(k/m)π]によりX0を導出する。この値は発散していない。
【0015】
式(56)の漸化式が要点である。sin2(θ)は周期πの周期関数であり、位相θがπの整数倍であれば、nπを除去して計算してもよい。このnπの除去を式(56)により素数mを法としてkn+1を算出して実行する。つまり、2knからmの整数倍を除去し、その剰余をkn+1とする。このようにして、kn+1の発散を防止する。このようにして、式(57)により、桁数が発散しない時系列Xnを式(52)のように次々と導出する。このカオス時系列では、パラメータk、mがカオス発生装置の鍵となり、暗号化と復号化において再現性のあるカオス時系列信号を与える。パラメータmを素数とするのは、kn+1が0〜m−1までの整数であれば約分できないからである。この素数mを大きな値、例えば12桁の素数に設定すると繰り返しの周期を長くすることができ、nとして12桁の値程度までは同じ値を繰り返さないと考えられ、暗号化される情報量が大きくても、十分に対応できる。
【0016】
更に、本発明者は式(58)の多項式も初期値依存性を有したカオス関数であることを発見した。各項を前述と同様のアルゴリズムを用いて計算すれば、カオスの発散性を解消することができる。式(58)のカオス関数をカオス発生装置に用いれば、パラメータは(Mi,ki,mi)[i=1〜L]まで増やすことができる。これらの多数のパラメータ群を鍵としてカオス暗号装置に使用すれば、外部者がこれらの多数のパラメータ群を探知することは不可能になり、外部者による暗号系への侵入は強力に抑止される。整数kiや素数miを例えば12桁のように大きな桁数にとれば、極めて安全性の高い暗号システムを提供できる。
【0017】
図28は他のカオス写像の厳密なカオス解を使用した従来のカオス時系列のアルゴリズム図である。他のカオス写像として式(60)を使用し、この厳密解は式(61)で既に与えられている。この厳密解はXn=sin(c2n)であり、ロジスティック写像と極めてよく似た周期関数である。式(60)又は式(61)をそのまま用いれば、位相部分であるc2nの発散性により式(62)のカオス時系列は数値的に発散してしまう。
【0018】
しかし、カオス関数の位相部がロジスティック写像と全く同一であるから、図27と同様に、式(63)〜式(67)のアルゴリズムを用いて、発散性のない、即ち丸め誤差を含まないカオス時系列Xnを導出できる。このことは、多項式(68)に示されるカオス関数を用いても同様である。また、この多項式を用いれば、パラメータは(Mi,ki,mi)[i=1〜L]と多数になるから、整数kiや素数miを例えば12桁のように大きな桁数にとれば、極めて安全性の高い暗号システムを提供できる。
【0019】
前述したように、本発明者は、厳密なカオス解や、カオス解の1次結合であるカオス関数を用いた場合において、数値的発散性を除去することによって丸め誤差が集積しないカオス時系列の導出方法を提案してきた。この方法により、カオス的厳密性を満足させ、同時に暗号技術の安全性を強化することに成功した。
【0020】
しかしながら、近年の情報通信は極めて高速化されつつあり、インターネットのブロードバンド化でも更なる高速化が要求されている。このように、高速化した情報を暗号化するには、カオス発生装置の高速化が必然的に要求される。このことは単に電子技術の高速化だけではなく、コンピュータによるカオス時系列信号の生成速度を一層に高速化することが要請される。
【0021】
前述したように、厳密なカオス解や、カオス解の1次結合であるカオス関数を用いた場合には、位相部の計算に加えてsin計算が必要となり、特に、sin計算に時間が掛かる傾向にあった。しかしsinを無くした場合には、カオス解やカオス関数とは異なり、カオス性が出現するかどうかも不明である。
【0022】
従って、本発明は、初期値依存性をカオス的時系列の判断基準として用い、前述したカオス解やカオス関数に束縛されずに、新たな視点から高速計算が可能なカオス的時系列を探索し、このカオス的時系列を用いてカオス発生装置やカオス暗号装置などを提供することを目的とする。
【0023】
【課題を解決するための手段】
本発明は上記課題を解決するために為されたものであり、本発明の第1形態は、変数nの増加に従って急激に増加する関数fi(n)[i=1〜L、L≧1]に対し素数mi[i=1〜L、L≧1]を設定する手段と、変数nの初期値n0に対してfi(n0)から素数miを法として剰余ri(n0)[i=1〜L、L≧1]を導出する初期値演算手段と、fi(n+1)の計算では剰余ri(n)を利用して素数miを法として導出された剰余ri(n+1)を導出する反復演算手段と、変数nをn0から順次増大させながら前記剰余ri(n)[i=1〜L、L≧1]を通して生成される一意の値を有するカオス的時系列Xnを出力するカオス信号出力手段から構成されるカオス発生装置である。
本発明者は変数nの増加に従って急激に増加する関数f(n)を用い、この関数f(n)から素数mを法として剰余r(n)を算出すれば、この剰余r(n)は発散せずに0≦r(n)<mの範囲に常に存在することに着眼した。しかも、r(0)から出発してr(n+1)をr(n)との関係で算出するアルゴリズムでは、これらの時系列r(n)は計算機の有効桁数の範囲で丸め誤差を有することなく正確に計算できることを発見した。また、関数f(n)が急激に増加しながら発散する関数であれば、剰余r(n)は0とmの間で不規則に振動することを発見した。このとき、素数mを大きく設定することによって、素数mの大きさに依存したnmaxにより、n=0〜nmaxの範囲で、r(n)は反復することなく初期値依存性を有することも発見したのである。例えば、mを1012程度の素数とすれば、nmaxも同程度の大きさになるから、暗号化する情報より長い時系列を容易に作り出せる。このように、f(n)が前述したカオス解でもなく、またカオス解の一次結合からなるカオス関数でなくても、r(n)は初期値依存性を発現するカオス的時系列であり、その意味でf(n)はカオス的関数と言うことができる。従って、0〜mの範囲で不規則振動するカオス的時系列r(n)から一意のカオス的時系列Xnを導出して、有効なカオス発生装置を構成することが可能になる。r(n)をそのままXnとしてもよいし、r(n)を小数部とした1以下の小数をXnとしてもよいなど、r(n)からXnへの変換は任意に操作することが可能である。更に、複数のカオス的関数fi(n)[i=1〜L]を用意し、素数mi[i=1〜L]を選択し、上述の反復手続により関数fi(n)から素数miを法として剰余ri(n)[i=1〜L]を個別的に算出することもできる。これらの剰余ri(n)[i=1〜L]から一意の値を有するカオス的時系列Xnを導出することもできる。このように、本発明によれば、カオス的関数f(n)の1次結合を利用してカオス的時系列Xnを発生するカオス発生装置も提供できる。f(n)の中にはsinやcosなどの三角関数が含まれず、しかも剰余r(n)を導出する反復計算であるから高速演算が可能であり、カオス的時系列Xnを高速に導出できるカオス発生装置を提供できる。
【0024】
第2の形態は、剰余ri(n)[i=1〜L、L≧1]を前記素数mi[i=1〜L、L≧1]で割算して1より小さな小数の商qi(n)[i=1〜L、L≧1]を算出し、L=1の場合にはq1(n)から前記Xnを導出し、L≧2の場合にはq1(n)+・・+qL(n)の小数部分から前記Xnを導出するカオス発生装置である。
L≧1は1以上の剰余ri(n)を使用できることを意味している。0〜mの間の数値であるr(n)をmで割ると、q(n)は0≦q(n)≦1の範囲にある小数になる。この小数q(n)からカオス時系列Xnを発生させる。また、複数個の剰余ri(n)[i=1〜L]を使用する場合には、q1(n)+・・+qL(n)が1を超える場合も出現するから、この和の小数部分からカオス時系列Xnを発生させる。従って、小数のカオス時系列Xnを発生させることができる。
【0025】
第3の形態は、前記関数fi(n)[i=1〜L、L≧1]がfi(n+1)=(pi+qin+・・+sinti)・fi(n)[i=1〜L、L≧1]の漸化式を満足するカオス発生装置である。
漸化式としては、f(n+1)=p・f(n)、f(n+1)=(p+qn)・f(n)・・・等の任意の式が利用できる。その中で最も簡単な漸化式は、f(n+1)=p・f(n)であり、この場合には、f(n)=c・pnと書くことができる。f(n)が漸化式で与えられる場合には、剰余r(n)も同様の漸化式を有し、r(n+1)をr(n)から反復的に導出することが可能になる。従って、初期値r(n0)から出発して、漸化式を用いて次々にr(n)を導出し、このr(n)に対し常に素数mを法とした剰余を取れば、r(n)は0〜m−1の間を振動する値になる。このようにすれば、r(n)の値に丸め誤差は蓄積されず、数値的発散は防止される。r(n)からカオス時系列Xnを導出するには、第1形態で述べたように、r(n)をそのままXnとしてもよいし、r(n)を小数部とした1以下の小数をXnとしてもよい。また、0〜m−1の間を振動するr(n)を更にmで割ってその小数部だけをXnとできるなど、r(n)からXnへの変換は任意に操作することが可能である。
【0026】
第4の形態は、前記関数fi(n)[i=1〜L、L≧1]がki・pi n[piは自然数、i=1〜L、L≧1]で表されるカオス発生装置である。
本発明者はnの増加に従って急激に増大発散する関数f(n)の一例としてc・pnを提案する。この関数形は、第3形態におけるf(n+1)=p・f(n)の場合に相当する。前述したように、従来からカオス解としてsin[(k/m)π2n]やsin2[(k/m)π2n]、カオス関数としてそれらの1次結合(多項式)を使用していたが、本発明者はその位相部である(k/m)π2nに着目した。この関数のπを無視して、f(n)=c2nを本発明の発散関数として使用し、素数mによる剰余r(n)が初期値依存性を有することを発見して、本発明形態を完成させたものである。指数関数の底を2に限定せず、自然数pにまで拡張させた関数f(n)=cpnが前述した本発明のアルゴリズムにより初期値依存性を有することが、本発明者によって初めて発見された。また、実数cを有理数に限定し、c=k/mと定義して、f(n)=kpnの法mによる剰余r(n)も初期値依存性を示すことが確認された。また、この剰余r(n)を素数mによって割った商(小数)q(n)も初期値依存性を示す。この発見に基づいて、剰余r(n)又は小数q(n)からカオス的時系列Xnを導出するカオス発生装置を提供することができる。関数f(n)としてcipi nの一次結合を利用できることも上述した通りである。このように、cpnという極めて単純な発散関数を用いるから高速演算が可能になり、大容量通信においても高速に暗号化と複合化を実現するカオス発生装置を提供できる。
【0027】
第5の形態は、n=0においてri(0)=ki(mod mi)[i=1〜L、L≧1]とし、ri(n+1)=pi・ri(n)(mod mi)[i=1〜L、L≧1]を漸化式として利用して発散を防止し、この反復演算により得られる剰余ri(n)[i=1〜L、L≧1]からカオス時系列Xnを導出するカオス発生装置である。
上述したように、f(n)=cpnを用いると、f(n+1)=p・f(n)が漸化式となり、f(0)=cを初期値として、漸化式によりf(n)を順次計算できる。c=k/m(k:整数、m:素数)とおけば、各ステップで法mによる剰余r(n)を算出することによって、発散を完全に起こさないで丸め誤差を含有しない剰余r(n)を逐次導出することが可能になる。また、この剰余r(n)を素数mで割って小数q(n)を導出できる。剰余r(n)又は小数q(n)から初期値依存性を有したカオス的時系列Xnを発生させるカオス発生装置を提供することができる。関数f(n)としてcipi nの一次結合を利用できることも上述した通りである。
【0028】
第6の形態は、文章、画像又は音声からなるデジタル情報を暗号化又は復号化するために使用されるカオス発生装置であり、関数fi(n)[i=1〜L、L≧1]のパラメータ及び素数mi[i=1〜L、L≧1]を暗号化又は復号化の鍵として使用するカオス発生装置である。
本発明のカオス発生装置はカオス時系列を丸め誤差なく確実に再現できるから、発散関数fi(n)[i=1〜L、L≧1]のパラメータ及び素数mi[i=1〜L、L≧1]を鍵として与え、発散関数fi(n)を指定するだけで、暗号化と復号化を確実に行えるカオス発生装置を提供できる。しかも、多くのパラメータや素数mを鍵とするから、外部からこれらの鍵を解読されることは困難であり、またこれらの鍵の桁数を増やすだけで外部から侵入不能な暗号装置の確立に貢献できる。
【0029】
第7の形態は、コンピュータを、変数nの増加に従って急激に増加する関数fi(n)[i=1〜L、L≧1]に対し素数mi[i=1〜L、L≧1]を設定する手段と、変数nの初期値n0に対してfi(n0)から素数miを法として剰余ri(n0)[i=1〜L、L≧1]を導出する初期値演算手段と、fi(n+1)の計算では剰余ri(n)を利用して素数miを法として導出された剰余ri(n+1)を導出する反復演算手段と、変数nをn0から順次増大させながら前記剰余ri(n)[i=1〜L、L≧1]を通して生成される一意の値を有するカオス的時系列Xnを出力するカオス信号出力手段として機能させるカオス発生用プログラムである。
コンピュータ演算では、倍精度や4倍精度などで示される有効桁しか有していないから、カオス関数に特有の数値的発散性をその有効桁数に抑えることが必要になる。この第7形態では、発散関数f(n)を素数mを法とした剰余r(n)に変換するから、素数mの桁数を有効桁数内に制限することによって、剰余r(n)を常に有効桁数内の数値として得ることができる。従って、コンピュータ演算において発散が無く、その結果丸め誤差の無いカオス的時系列Xnを生成することができる。しかも、関数f(n)や剰余r(n)の演算の中に三角関数を全く含まないから演算速度を高速化できる。カオス的時系列を使用するシミュレーション全体の高速化を達成できる。また、初期値演算より以後では、f(n)自体の演算を行わずに、有限値の剰余r(n)を用いた反復演算を行って連続的にカオス的時系列を生成するから、カオス演算を高速に行うことができる。従って、カオス的時系列を使用するシミュレーション全体の高速化を達成できる。
【0030】
第8の形態は、コンピュータを、変数nの増加に従って急激に増加する関数fi(n)[i=1〜L、L≧1]に対し素数mi[i=1〜L、L≧1]を設定する手段と、変数nの初期値n0に対してfi(n0)から素数miを法として剰余ri(n0)[i=1〜L、L≧1]を導出する初期値演算手段と、fi(n+1)の計算では剰余ri(n)を利用して素数miを法として導出された剰余ri(n+1)を導出する反復演算手段と、変数nをn0から順次増大させながら前記剰余ri(n)[i=1〜L、L≧1]を通して生成される一意の値を有するカオス的時系列Xnを出力するカオス信号出力手段として機能させるためのプログラムを記録したコンピュータ読み取り可能なカオス発生用記録媒体である。
第7の形態で説明したように、このプログラムによれば、カオス時系列を丸め誤差無く演算でき、しかも高速演算が可能になる。このようなプログラムを保存した記録媒体を安価に提供できるから、市場において高精度にしかも高速にカオスシミュレーションを行えるようにできる利点がある。
【0031】
第9の形態は、変数nの増加に従って急激に増加する関数fi(n)[i=1〜L、L≧1]に対し素数mi[i=1〜L、L≧1]を設定する手段と、変数nの初期値n0に対してfi(n0)から素数miを法として剰余ri(n0)[i=1〜L、L≧1]を導出する初期値演算手段と、fi(n+1)の計算では剰余ri(n)を利用して素数miを法として導出された剰余ri(n+1)を導出する反復演算手段と、変数nをn0から順次増大させながら前記剰余ri(n)[i=1〜L、L≧1]を通して生成される一意の値を有するカオス的時系列Xnを出力するカオス信号出力手段から構成される擬似乱数発生装置である。
本発明により得られるカオス的時系列XnをXn+1−Xn平面にプロットすると、その全平面に極めて均一に分散し、しかもXnのスペクトルは白色雑音に近い性質を有することが本発明者等により初めて確認された。また、Xnの自己相関関数R(L)は遅れ数Lに対して極めて小さな値をとることが分かった。これらの結果から、本発明により得られるカオス時系列Xnは擬似乱数として有効であることが実証され、各種のシミュレーションで効果的に使用できる擬似乱数発生装置を提供するものである。
【0032】
第10の形態は、変数nの増加に従って急激に増加する関数fi(n)[i=1〜L、L≧1]に対し素数mi[i=1〜L、L≧1]を設定する手段と、変数nの初期値n0に対してfi(n0)から素数miを法として剰余ri(n0)[i=1〜L、L≧1]を導出する初期値演算手段と、fi(n+1)の計算では剰余ri(n)を利用して素数miを法として導出された剰余ri(n+1)を導出する反復演算手段と、変数nをn0から順次増大させながら前記剰余ri(n)[i=1〜L、L≧1]を通して生成される一意の値を有するカオス的時系列Xnを出力するカオス信号出力手段から構成されるカオス発生装置と、このカオス発生装置のカオス時系列Xnによりデジタル情報を暗号化して暗号を生成する暗号化装置と、この暗号を受信して前記カオス時系列と全く同じカオス時系列Xnにより暗号からデジタル情報を導出する復号化装置とを有し、暗号化と復号化に際して前記関数fi(n)[i=1〜L、L≧1]のパラメータと素数mi[i=1〜L、L≧1]を鍵として使用する暗号装置である。
第1の形態において詳述したように、変数nの増加に従って急激に増加する関数f(n)を出発関数にしながら、素数mを法として剰余r(n)を算出し、しかもr(n+1)を前記剰余r(n)を通して導出するから、剰余r(n)には丸め誤差が全く混入しない。丸め誤差を含まない剰余r(n)からカオス的時系列Xnを導出するから、関数f(n)のパラメータと素数mを鍵としてカオス的時系列を何回でも確実に再現することが可能になる。従って、暗号化装置ではこの再現可能なカオス的時系列Xnを用いて情報を暗号化し、復号化装置では前記カオス的時系列Xnを用いて暗号から情報を取り出す復号化処理を確実に行うことができる。また、関数f(n)にはsinやcos等の三角関数が含まれないからカオス的時系列Xnを高速に導出することができ、情報の高速通信に適合した高速暗号装置を提供することができる。また、複数の関数fi(n)[i=1〜L]と複数の素数mi[i=1〜L]を使用すると、関数fi(n)[i=1〜L]の多くのパラメータや素数mi[i=1〜L]が鍵となり、これらの鍵群を外部から解読することはほぼ不可能になる。従って、前述した高速性を有し、しかも安全性の高い暗号装置を実現できる。
【0033】
【発明の実施の形態】
以下に、本発明に係るカオス発生装置、カオス発生用プログラム、カオス発生用記録媒体、擬似乱数発生装置及び暗号装置の実施形態を添付する図面に従って詳細に説明する。
【0034】
図1は本発明に係る暗号装置2のブロック構成図で、この暗号装置2には本発明に係るカオス発生装置10、20が組み込まれている。この暗号装置2は情報を暗号にする暗号化装置4と暗号から情報を復元する復号化装置6により構成されている。
【0035】
暗号化装置4は、カオス時系列信号Xnを出力するカオス発生装置10と、このカオス時系列信号Xnを情報8に組み込んで暗号14を出力する演算装置12から構成されている。情報8には、文章(テキスト)情報、画像情報、音声情報があり、これらの各種情報からなる混合情報もある。デジタル情報通信では、情報8はデジタル情報であり、カオス時系列信号もデジタルカオス時系列信号である。
【0036】
カオス時系列信号Xnからデジタルカオス時系列信号を生成するには、例えば次のような方法がある。カオス時系列信号Xnが0〜1の間の数値信号であるとすると、0.5未満の数値信号は”0”とし、0.5以上の数値信号は”1”とすればよい。また、カオス時系列信号Xnが0〜106の間の数値信号であるとすると、0.5×106未満の数値信号は”0”とし、0.5×106以上の数値信号は”1”とすればよい。このような各種方法によりカオス発生装置10によりデジタルカオス時系列信号が生成される。
【0037】
演算装置12により情報8にカオス時系列信号Xnが組み込まれる。デジタル信号処理では、演算処理として論理演算が施される。その中でも、例えば排他的論理和を採ると演算処理がきわめて簡単になる。排他的論理和は1+1=0、1+0=1、0+1=1、0+0=0からなる規則である。デジタル情報8が(0101100101)とし、デジタルカオス時系列信号Xnが(100101100)とすると、排他的論理和により暗号14は(0101100101)+(100101100)=(110001001)となる。 このようにして作成された暗号14は、図示しない通信装置により送信(16)される。
【0038】
複号化装置6は、暗号14を受信(18)する図示しない受信装置と、カオス時系列信号Xnを出力するカオス発生装置20と、このカオス時系列信号Xnを暗号14に処理(複号化)して情報8を出力する演算装置22から構成されている。
【0039】
複号化装置6のカオス発生装置20は暗号化装置4のカオス発生装置10と全く同様に構成され、同一のカオス時系列信号Xnを再現するように構成されている。カオス発生装置10、20には後述されるカオス発生用のアルゴリズムが内蔵されており、同一のカオス時系列信号Xnを発生させるため、同一の鍵24が与えられる。また、カオス発生用のアルゴリズムは、後述するように極めて高速演算が可能に設計されるから、近年における情報通信の高速化に十分に追随できるように構成されている。
【0040】
前記鍵24は、後述するように多数のパラメータ(Mi、ki、mi、pi)[i=1〜L、L≧1]から構成され、各パラメータは多数桁の数値から形成される。つまり、鍵24は関数f(n)を構成するパラメータと素数mからなる。このように、鍵24として多数のパラメータを使用すると、第三者はこれらの鍵を完全に解読することは不可能である。また各パラメータを多数桁の数字で構成すれば、ビット数の増加に従って、鍵の解読は不可能になる。ここに本発明の特徴があり、極めて安全な暗号装置を提供できるのである。即ち、本発明に係る暗号装置2の特徴は、カオス発生装置10、20に存在する。
【0041】
暗号化処理に前記排他的論理和が使用された場合には、複号化処理でも同様の排他的論理和が行われる。具体例で説明すれば、カオス発生装置20により前記と同一のデジタルカオス時系列信号Xn(100101100)が出力される。暗号14が(110001001)であり、演算装置22により暗号14とデジタルカオス時系列信号Xnとの排他的論理和が演算される。即ち、(110001001)+(100101100)=(010100101)となる。このようにして、(010100101)で与えられる情報8が導出される。
【0042】
演算装置12により通常の論理和が行われれば、演算装置22では暗号14からカオス時系列信号Xnを差し引いて情報8が導出される。即ち、演算装置12の演算に対し、演算装置22では逆演算が行われる。排他的論理和では、演算と逆演算が全く同一になる点に特徴があり、その意味で演算処理が簡単で効率的である。
【0043】
図2は本発明に係るカオス発生装置10(20)の構成図である。カオス発生装置10(20)はパラメータ入力手段30と、初期値演算手段34と反復演算手段36からなるカオス演算手段32と、カオス信号出力手段38から構成されている。
【0044】
パラメータ入力手段30はカオス演算に必要なパラメータ28を読み込む部材で、例えば後述するような(Mi,ki,mi,pi)[i=1・・・L,L≧1]等からなるパラメータ群が読み込まれる。このパラメータ28によりカオス的関数が特定され、内蔵された手順に従ってカオス的時系列が演算されてゆく。
【0045】
カオス演算手段32は、高速演算を実現するため、カオス的時系列の初期値X0を導出する初期値演算手段と、初期値に基づいて反復演算によりカオス的時系列Xn(n≧1)を連続的に生成する反復演算手段36が設けられている。初期値はn=0が通常であるが、任意のn0から出発してもよい。反復演算手段36には、後述するように漸化式が組み込まれ、この漸化式に従って時系列Xnが生成される。
【0046】
カオス信号出力手段38は、初期値X0や時系列Xn(n≧1)を信号として外部に出力するための部材である。カオス時系列Xnは数値としては0≦Xn≦1の場合が多いが、例えば0≦Xn≦1000であってもよい。カオス信号出力手段38によりこのカオス的時系列Xnが、例えば電圧値として出力される。この信号はデジタルカオス時系列信号として出力される。
【0047】
このカオス発生装置10(20)は電子回路装置として構成されてもよいし、カオス演算プログラムを内蔵してコンピュータをカオス発生装置として組み込んでも良い。また、カオス演算プログラムの記録媒体を装填して、コンピュータをカオス発生装置として利用しても構わない。
【0048】
図3は本発明に係る擬似乱数発生装置40の構成図である。この擬似乱数発生装置40は前述したカオス発生装置と同様に構成されており、パラメータ入力手段42と、初期値演算手段46と反復演算手段48からなるカオス演算手段44と、カオス信号出力手段50を基本構成要素としている。
【0049】
パラメータ入力手段42は演算に必要なパラメータ28を読み込む部材で、例えば後述するような(Mi,ki,mi,pi)[i=1・・・L,L≧1]等からなるパラメータ群を読み込む。このパラメータによりカオス的関数が特定され、内蔵された手順に従ってカオス時系列が演算されてゆく。
【0050】
カオス演算手段44は、高速演算を実現するため、カオス時系列の初期値X0を導出する初期値演算手段46と、初期値に基づいて反復演算により時系列Xn(n≧1)を連続的に生成する反復演算手段48が設けられている。初期値はn=0が通常であるが、任意のn0から出発してもよい。反復演算手段48には、後述するように漸化式が組み込まれ、この漸化式に従って時系列Xnが生成される。
【0051】
カオス信号出力手段50は、初期値X0や時系列Xn(n≧1)を信号として外部に出力するための部材である。乱数は通常0〜1の範囲に選択される場合が多いから、カオス時系列Xnは数値としては0≦Xn≦1の範囲に制限されて出力される。カオス信号出力手段50によりこのカオス時系列Xnが、例えば電圧値として出力される。この信号はアナログカオス時系列信号として出力されてもよいし、0〜1の間を更に量子化して多段階数値として出力されてもよい。
【0052】
図4は本発明に使用されるカオス的関数f(n)及びその剰余r(n)の具体例を示す説明図である。本発明者が発見したカオス的関数f(n)とは変数nの増加に従って急激に増大化する関数である。
【0053】
本発明者がこのようなカオス的関数を発見した経過を次に述べる。図27及び図28に示したように、カオス写像を満足する厳密なカオス解はXn=sin(c2n)やXn=sin2(c2n)であった。これらカオス解の小数桁数の発散性は、その位相部であるc2nが変数nの増加に従って数値的に発散する性質に起因している。
【0054】
言い換えれば、Xnの初期値依存性も位相部c2nの数値的発散性に起因すると考えられる。そこで、本発明者はc=(k/m)π(k:整数、m:素数)の特別な場合を考察し、πの整数倍の周期性を演算から除去すれば、c2nの数値的発散性を消去できることを発見した。しかも素数mを大きく採ると、素数mの大きさと同程度のnmaxまでの範囲、即ち0〜nmaxの範囲において時系列Xnが初期値依存性を発現することを発見したのである。
【0055】
そこで、本発明者は、演算の高速性を実現するために、sin関数を排除し、その位相部c2nを関数f(n)と定義して、この関数f(n)からカオス時系列Xnを導出する方法を想定するに到った。sin関数を用いないためπを除去し、c=k/mと定義して、f(n)=(k/m)2nを導入する。この関数はf(n+1)=2f(n)という漸化式を満足する。
【0056】
まず、f(n)の数値的発散性を除去するため、nの初期値n0で、r(n0)=f(n0)(mod m)により法mによる剰余r(n0)を演算する。通常はn0=0とされる。このr(n0)を初期値として、n>n0の剰余r(n)が演算される。つまり、上記の漸化式の関係から成立する剰余の漸化式、r(n+1)=2r(n)(mod m)を用いて、剰余r(n)が連続的に算出される。
【0057】
剰余r(n)は0≦r(n)<mを満足する。素数mを大きく設定すれば、素数mと同程度のnmaxまでr(n)は繰り返すことなくカオス特性である初期値依存性を示すことが本発明者により発見された。本発明はこの発見に基づいて為されたものである。
【0058】
r(n)は素数mより小さいから、素数mの桁数を精度限界内に設定すれば、r(n)に丸め誤差が蓄積することはない。カオス時系列Xnとして前記剰余r(n)を使用してもよいが、この剰余r(n)を変換した数値でもよい。例えば、時系列を1以下の小数に設定するには、r(n)を導出して、Xn=r(n)/m(mod 1)とすればよい。即ち、r(n)を素数mで割ってその小数をXnとすればよい。これ以外の変換方法で時系列Xnを導出することも自在にできる。
【0059】
前述したf(n+1)=2f(n)の関係を基礎にして、本発明者はカオス的関数として式(1a)のf(n+1)=g(n)・f(n)を提案する。この一般的関係が図4に示されている。g(n)=2が上記の場合に対応し、一般にg(n)=(p+qn+・・+snt)の多項式が与えられる。p、q・・s、tが0以上の整数として定義されると、g(n)は常に整数となる。
【0060】
f(0)等の初期値を整数で与えると、式(1a)によればf(n)は急激に増大化して発散する。この発散を防止するために、演算過程で適当な素数mを選択して(mod m)をとり、mより小さな剰余r(n)が導出される。この一般的関係がr(n+1)=g(n)・r(n)(mod m)として表されている。
【0061】
多項式g(n)として、式(2a)〜式(6a)が例示されている。これらのg(n)に対応して、剰余r(n)においては式(2b)〜式(6b)が与えられる。式(1b)〜式(6b)により得られる剰余r(n)は0〜mの範囲内の整数である。このr(n)をXnとしてもよいし、このr(n)を変換した数値をXnとしてもよい。変換の一例としてr(n)(mod 1)があり、Xnが1より小さな小数で与えられる。任意の変換が行えることは云うまでも無い。
【0062】
図5は本発明に係るカオス的関数を用いた信号発生用のフローチャート図である。このフローチャート図では、所望の種類のカオス的関数により、カオス時系列Xnが生成される。ステップy1は、L個のカオス的関数fi(n)と素数miを設定する手段を示す。関数形が決まっているときには、その関数を与えるパラメータが設定される。Lは1以上であればよく、1個のカオス的関数でもよいし、複数個のカオス的関数でもよい。[i=1〜L、L≧1]により1個以上のカオス的関数の選択が指定されている。
【0063】
ステップy2は、剰余の初期値ri(0)を設定する手段を示す。nの初期値として0が選ばれる。n=0におけるカオス的関数fi(0)及びその剰余ri(0)が導出される。つまり、カオス的関数fi(0)の法miによる剰余ri(0)が導出される。このステップによって、剰余の初期値ri(0)が設定される。従って、ri(0)は0〜mの範囲内の整数として導出される。変数nの初期値として任意の自然数n0が設定されても良い。この場合には、ri(n0)が導出される。
【0064】
ステップy3は、カオス時系列Xnの初期値X0を導出する手段を示す。L個の剰余r1(0)・・rL(0)について小数化処理が行われる。即ち、ri(0)/mi[i=1〜L、L≧1]により各剰余ri(0)が少数化され、それらの総和が算出される。ri(0)の夫々は1より小さいが、総和は1を超える場合が出現する。そのため、総和の小数部だけをX0とするため、総和に対し(mod 1)が操作され、小数部をX0として出力する。
従って、本発明ではステップy2及び/又はステップy3は初期値演算手段と呼ばれる。
【0065】
ステップy4〜y8はn≧1のXnを導出する反復演算手段を示す。まず、ステップy4はn=0を設定する手段である。nの初期値としてn0が使用されるときには、n=n0が設定される。ステップy5は素数mより小さなri(n)から素数mより小さなri(n+1)を導出する手段である。つまり、ri(n)からri(n+1)を導出し、その素数miを法とする剰余ri(n+1)がi=1〜L(L≧1)に対して導出される。
【0066】
ステップy6はカオス的時系列Xn+1を導出する手段である。L個の剰余r1(n+1)・・rL(n+1)について小数化処理が行われる。即ち、ri(n+1)/mi[i=1〜L、L≧1]により各剰余ri(n+1)が少数化され、それらの総和が算出される。ri(n+1)の夫々は1より小さいが、総和は1を超える場合が出現する。そのため、総和の小数部だけをXn+1とするため、総和に対し(mod 1)が操作され、小数部をXn+1として出力する。ステップy5とステップy6は一体的に処理されることもできる。即ち、Xn+1=SUM[[ri(n+1)(mod mi)]/mi](mod 1)が演算されてもよい。SUMはi=1〜Lについて総和を示す。
数学記号では和はシグマ記号で表され、添付される全ての図面ではシグマ記号で表されている。しかし、明細書の中では記号使用が制限されているため、シグマ記号をSUMと表記する。
【0067】
ステップy7は時系列Xnの信号出力を停止するための判別手段である。出力停止(Y)なら信号出力が停止される。出力停止でない(N)とき、ステップy8はnをn+1に繰り上げて反復演算を繰り返す手段である。最初、n=0(y4)が与えられたからX1が出力(y6)され、次の反復演算手段によりn=1(y8)としてX2が出力される。このようにして、任意個数のカオス的時系列X0、X1、X2・・が連続的に出力されてゆく。出力停止は図示しない出力停止手段によって実行される。
【0068】
以上の手続では、一般的なカオス的関数f(n)からカオス的時系列Xnを導出する一般的方法が説明された。以下の手続では、f(n+1)=pf(n)で表される簡単なカオス的関数を用いてカオス時系列Xnを生成するアルゴリズム及びフローチャート並びに各種図面が説明される。本発明者が最初に発見したカオス的関数はf(n+1)=2f(n)で与えられる形式を有した。上記カオス的関数はこの数値2を一般の自然数pに拡張した形式を有している。
【0069】
図6は1項(1−term)からなるカオス的関数(Chaotic Function)によるカオス時系列のアルゴリズム図である。式(1)はカオス的関数を与え、f(n)=cpnにおいて、c=k/mと置かれている。kは整数、mは素数である。素数mの大きさによって初期値依存性の領域幅の大きさが決まる。素数mの大きさを、例えば、1011、1012又は1013オーダーに設定すれば、式(2)で表されるカオス時系列の最終値XNの順番数Nも同程度の大きさになる。このようにすれば、暗号化される情報のデータ数よりもカオス時系列の長さを大きく設定でき、暗号化処理などで支障を来たさない。
【0070】
式(3)はカオス時系列を与えるパラメータk、m、pを意味しており、これらのパラメータを暗号装置における鍵とする。式(4)〜(7)はカオス時系列Xnを与えるアルゴリズムを表している。式(4)では、整数kに対し(mod m)が施され、得られるk0を0≦k0<mの範囲に制限する。通常では、パラメータk、mを設定するときに整数kはk<mとなるように選ばれるから、この場合には式(4)で(mod m)の処理は不要になる。
【0071】
式(5)では、k0の少数化処理が行われる。k0は0≦k0<mの値であるから、k0を素数mで割ることにより少数化が行われる。k0/mに対して(mod1)を処理し、その小数部からカオス的時系列の初期値X0が導出される。X0の小数桁数はコンピュータの有効精度により制限される。
【0072】
次に、n=0〜N−1の範囲で反復演算が行われる。式(6)により、0〜mの範囲にあるknからkn+1=p・kn(mod m)によりkn+1が導出される。pを乗じることによってkn+1はmより大きくなる可能性があるから、(modm)によりkn+1を0≦kn+1<mの範囲に制限する。
【0073】
更に、式(7)によりkn+1の少数化処理が行われる。kn+1をmで割って少数化し、(mod 1)によりその小数部をXn+1として導出する。この処理をXn+1=(kn+1/m)(mod 1)により行う。
【0074】
上記の演算を繰り返すと、k0を用いてk1、X1が演算され、k1を用いてk2、X2が次々と導出されてゆくのである。この1項からなるカオス的関数では、式(6)の(mod m)によりkn+1は0≦kn+1<mの範囲に制限されており、式(5)及び式(7)における(mod 1)は必ずしも必要ではない。このようにして、カオス時系列Xnが演算されてゆく。図6の1項方式では、カオス的関数が極めて簡単であるから、アルゴリズムの全過程が高速で演算され、カオス的時系列Xnを高速に出力できる利点がある。
【0075】
図7は、図6のアルゴリズムを実行するフローチャート図である。図5の説明と重複するところは簡略に説明する。ステップy11〜y18は図5におけるステップy1〜y8に夫々対応している。また、図7以後の図面説明では、冗長を避けるため、例えばステップy11を単にy11と簡略に表記する。
【0076】
y11は素数mを含むカオス的関数のパラメータを設定する手段で、パラメータとして整数k、素数m、指数関数の底p(即ちpn)が設定される。y12は剰余の初期値を設定する手段で、法mによる整数kの剰余k0が導出される。y13はカオス的時系列Xnの初期値X0を演算する手段で、k0/mの小数部をX0として導出し、このカオス的時系列の初期値X0を外部に出力する。
【0077】
y14〜y18はカオス的時系列Xn(n≧1)を導出する反復演算手段であり、y14はn=0を設定する手段である。y15は剰余kn+1を法mにより導出する手段で、y16によりXn+1=(kn+1/m)(mod 1)を演算し、1以下の小数をカオス的時系列Xnとして外部に出力する。
【0078】
y17はカオス的時系列Xnの演算を停止するかどうかの判別手段で、停止(Y)なら演算を停止し、継続(N)ならy18によりn=n+1が設定される。そして再びy15に帰還して反復演算が行われる。従って、y14〜y18の反復演算を行って、カオス的時系列X1、X2・・・が停止命令を受けるまで演算され、外部に継続的に出力されてゆく。
【0079】
図8は1項からなるカオス的関数によるカオス的時系列図である。縦軸はカオス的時系列Xn、横軸は繰り返し数n(Iteration Number)である。時系列Xnは0〜1の間を激しく不規則に振動し、カオス的挙動を示すことが分かる。実線はX0が0.13000であり、点線はX0が0.13001である。初期値はこのように僅かな違いしかないが、nが35を過ぎる辺りから実線と点線のXnは大きな相違を示し始める。このような性質を初期値依存性と呼び、この1項からなる前記関数がカオス的関数であることを証明している。
【0080】
図9は2項(2−terms)からなるカオス的関数(Chaotic Function)によるカオス時系列のアルゴリズム図である。式(11)はカオス的関数を与え、M1(k1/m1)p1 nとM2(k2/m2)p2 nの和から構成される。M1とM2は各項の係数であり、k1とk2は整数、p1とp2は正の整数、m1とm2は素数である。M1とM2は実数から選ばれる。このカオス的関数Xnから式(12)のカオス的時系列が演算される。
【0081】
2項からなるカオス的関数Xnを与えるパラメータはM1、k1、m1、p1とM2、k2、m2、p2の8個である。これらの8個のパラメータが式(13)で示されるようにカオス的時系列の鍵(Key)となる。このようにパラメータが増えると、外部からこれらのパラメータを探知する可能性は殆ど無くなる。各パラメータを16ビットで表すと、合計で16ビット×8=128ビットになる。外部者が128ビットの未知数を探知できる可能性はほぼゼロであり、このカオス発生装置を用いて暗号装置を構成すれば、極めて安全な暗号装置が実現できる。しかも、カオス的関数は単純な指数関数であるから、カオス的時系列を高速に導出できる特性を有している。
【0082】
式(14)〜(17)はカオス的時系列Xnを与えるアルゴリズムを表している。式(14)では、積Mi・kiに対し(mod mi)[i=1,2]が施され、得られるki,0を0≦ki,0<mi[i=1,2]の範囲に制限する。通常では、パラメータMi、ki、miを設定するときにMi・ki<miとなるように選ばれるから、この場合には式(14)において(mod mi)を施すことは不要になる。
【0083】
式(15)では、ki,0の少数化処理が行われる。ki,0は0≦ki,0<miの値であるから、ki,0を素数miで割ることにより少数化が行われる。k1,0/m1+k2,0/m2に対して(mod 1)を処理し、その小数部からカオス的時系列の初期値X0が導出される。X0の小数桁数はコンピュータの有効精度により制限されている。
【0084】
次に、n=0〜N−1の範囲で反復演算が行われる。式(16−1)及び(16−2)により、0〜mの範囲にあるki,nからki,n+1=pi・ki,n(mod mi)によりki,n+1[i=1,2]が導出される。piを乗じることによってki,n+1はmiより大きくなる可能性があるから、(mod mi)によりki,n+1を0≦ki,n+1<mi[i=1,2]の範囲に制限する。
【0085】
更に、式(17)によりki,n+1の少数化処理が行われる。ki,n+1をmiで割って少数化し、2項の和を(mod 1)の操作を施して、その小数部をXn+1として導出する。
【0086】
上記の演算を繰り返すと、カオス的時系列X1、X2・・・XNが導出される。この2項方式では、カオス的関数が極めて簡単な構成を有し、アルゴリズムの全過程が高速で演算され、カオス的時系列Xnを高速に出力できる利点がある。しかも、鍵となるパラメータ数が増大し、外部からこれらの全てのパラメータを探知することは不可能になり、暗号装置の安全性が強化される。
【0087】
図10は、図9のアルゴリズムを実行するフローチャート図である。y21〜y28は図5におけるy1〜y8に夫々対応している。y21はカオス的関数のパラメータを設定する手段で、(Mi,ki,mi,pi)[i=1,2]がパラメータとして設定される。kiは整数、miは素数、piは指数関数の底(即ちpi n)が設定される。y22は剰余の初期値を設定する手段で、法miによる積Mi・kiの剰余ki,0が導出される。y23はカオス時系列Xnの初期値X0を演算する手段で、k1,0/m1+k2,0/m2の小数部をX0として導出し、このカオス時系列の初期値X0を外部に出力する。
【0088】
y24〜y28はカオス時系列Xn(n≧1)を導出する反復演算手段であり、y24はn=0を設定する手段である。y25は剰余ki,n+1を法miにより導出する手段で、y26によりXn+1=(k1,n+1/m1)+(k2,n+1/m2)(mod 1)を演算し、1以下の小数をカオス時系列Xnとして外部に出力する。
【0089】
y27はカオス的時系列Xnの演算を停止するかどうかの判別手段で、停止(Y)なら演算を停止し、継続(N)ならy28によりn=n+1が設定される。そして再びy25に帰還して反復演算が行われる。従って、y24〜y28の反復演算を行って、カオス的時系列X1、X2・・・が停止命令を受けるまで演算され、外部に継続的に出力されてゆく。
【0090】
図11は2項からなるカオス的関数の一例を示すパラメータ図である。10進数として、整数kiは11桁、素数miは12桁[i=1,2]に設定されている。係数M1、M2は実数であり、簡単のためM1=M2=1に設定された。
【0091】
図12は、図11のパラメータにより得られたカオス的時系列のXn+1−Xn平面図である。カオス的時系列Xnは0〜1の間の小数である。プロットされた点はXn+1−Xn平面に均一に分散していることが分かる。このように均一に分散することから、このカオス的時系列は擬似乱数として極めて有効であることが明白である。従って、このカオス発生装置が同時に擬似乱数発生装置として使用できることが証明された。
【0092】
図13は、図11のパラメータにより得られたカオス的時系列のスペクトル図である。横軸は区間(Section)、縦軸はその区間に存在する個数(The number)である。区間は0〜1を50等分して得られ、例えば区間1は0〜0.02の範囲に対応する。全区間を通して個数はほぼ均一であり、換言すればこのカオス的時系列Xnが白色ノイズに近い性質を有していること示す。従って、カオス的時系列Xnが乱数として有効であることが実証された。
【0093】
図14は、図11のパラメータにより得られたカオス的時系列の自己相関関数図である。横軸は遅れ数(Delay Number)L、縦軸は自己相関関数(Autocorrelation)R(L)である。図示するように、自己相関関数R(L)はLだけ離れたXnとXn+Lの積Xn・Xn+Lの総和によって定義される関数である。この自己相関関数R(L)が変数Lのほぼ全領域で小さく、しかもカオス的関数の項数に依存しないから、カオス的時系列Xnは相互関係を殆ど有していない。この性質は図12及び図13に示される性質と共通しており、カオス的時系列Xnが擬似乱数として好適であることを示している。
【0094】
図15は多項(multi−terms)からなるカオス的関数(Chaotic Function)によるカオス的時系列のアルゴリズム図である。式(21)はカオス的関数を与え、Xn=SUM[Mi(ki/mi)pi n[和はi=1〜L]で表される。以下では、SUMはi=1〜LのL個の和を示しており、これを単にSUMとして表示する。M1〜MLは各項の係数であり、k1〜kLは整数、p1〜pLは正の整数、m1〜mLは素数である。このカオス的関数Xnから式(22)のカオス的時系列Xnが演算される。M1〜MLは実数から選ばれる。
【0095】
L項からなるカオス的関数Xnを与えるパラメータは(M1、k1、m1、p1)〜(ML、kL、mL、pL)の4×L個である。これらの4×L個のパラメータが式(23)で示されるようにカオス的時系列の鍵(Key)となる。このようにパラメータが増えると、不審者が外部からこれらのパラメータを探知する可能性は無くなる。このカオス発生装置を用いて暗号装置を構成すれば、極めて安全な暗号装置が実現できる。しかも、カオス的関数は単純な指数関数であるから、カオス的時系列を高速に導出できる特性を有している。項数の増加は、演算時間の増大を招来するが、適当な項数Lを選択して高速性と安全性の両者を実現することが可能である。
【0096】
式(24)〜(27)はカオス的時系列Xnを与えるアルゴリズムを表している。式(24)では、積Mi・kiに対し(mod mi)[i=1〜L]が施され、得られるki,0を0≦ki,0<mi[i=1〜L]の範囲に制限する。通常では、パラメータMi、ki、miを設定するときにMi・ki<miとなるように選択されるから、この場合には式(24)において(mod mi)を施すことは不要になる。
【0097】
式(25)では、ki,0の少数化処理が行われる。ki,0は0≦ki,0<miの値であるから、ki,0を素数miで割ることにより少数化が行われる。SUM[ki,0/mi]に対して(mod 1)を処理し、その小数部からカオス的時系列の初期値X0が導出される。ki,0/miは0〜1の間の小数であるが、SUMをとると1を超える場合が出現するため、(mod 1)が施される。X0の小数桁数はコンピュータの有効精度により制限される。
【0098】
次に、n=0〜N−1の範囲で反復演算が行われる。式(26)により、0〜miの範囲にあるki,nからki,n+1=pi・ki,n(mod mi)によりki,n+1[i=1〜L]が導出される。piを乗じることによってki,n+1はmiより大きくなる可能性があるから、(mod mi)によりki,n+1を0≦ki,n+1<mi[i=1〜L]の範囲に制限する。
【0099】
更に、式(27)によりki,n+1の少数化処理が行われる。ki,n+1をmiで割って少数化し、L項の和を(mod 1)の操作を施してその小数部をXn+1として導出する。
【0100】
上記の演算を繰り返すと、カオス的時系列X1、X2・・・XNが導出される。この多項方式では、カオス的関数が極めて簡単な構成を有し、アルゴリズムの全過程が高速に演算され、カオス的時系列Xnを高速に出力できる利点がある。しかも、鍵となるパラメータ数が増大し、外部からこれらの全てのパラメータを探知することは不可能になり、暗号装置の安全性が強化される。
【0101】
図16は、図15のアルゴリズムを実行するフローチャート図である。y31〜y38は図5におけるy1〜y8に夫々対応している。y31はカオス的関数のパラメータを設定する手段で、(Mi,ki,mi,pi)[i=1〜L]がパラメータとして設定される。kiは整数、miは素数、piは指数関数の底(即ちpi n)が設定される。y32は剰余の初期値を設定する手段で、法miによる積Mi・kiの剰余ki,0が導出される。y33はカオス的時系列Xnの初期値X0を演算する手段で、SUM[ki,0/mi]の小数部をX0として導出し、このカオス的時系列の初期値X0を外部に出力する。
【0102】
y34〜y38はカオス的時系列Xn(n≧1)を導出する反復演算手段であり、y34はn=0を設定する手段である。y35は剰余ki,n+1を法miにより導出する手段で、y36によりXn+1=SUM(ki,n+1/mi)(mod 1)を演算し、1以下の小数をカオス的時系列Xnとして外部に出力する。
【0103】
y37はカオス的時系列Xnの演算を停止するかどうかの判別手段で、停止(Y)なら演算を停止し、継続(N)ならy38によりn=n+1が設定される。そして再びy35に帰還して反復演算が行われる。従って、y34〜y38の反復演算を行って、カオス的時系列X1、X2・・・が停止命令を受けるまで演算され、外部に継続的に出力されてゆく。
【0104】
図17は多項(L=10)からなるカオス的関数の一例を示すパラメータ図である。10進数として、整数kiは11桁、素数miは12桁[i=1〜10]に設定されている。係数Miは実数であるが、簡単のためMi=0.1[i=1〜10]に設定された。
【0105】
図18は、図17に示すパラメータにより得られたカオス的時系列図である。縦軸はカオス的時系列Xn、横軸は繰り返し数n(Iteration Number)である。時系列Xnは0〜1の間を激しく不規則に振動し、カオス的挙動を示していることが分かる。このことから、10項からなる前記関数がカオス的関数であることを実証している。
【0106】
図19は、図17のパラメータにより得られたカオス的時系列のXn+1−Xn平面図である。カオス的時系列Xnは0〜1の間の小数である。プロットされた点はXn+1−Xn平面に均一に分散していることが分かる。このように均一に分散することから、このカオス的時系列は擬似乱数として極めて有効であることが明白である。つまり、このカオス発生装置が同時に擬似乱数発生装置として使用できることが証明された。
【0107】
図20は、図17のパラメータにより得られたカオス的時系列のスペクトル図である。横軸は区間(Section)、縦軸はその区間に存在する個数(The number)である。区間は0〜1を50等分して得られ、例えば区間1は0〜0.02の範囲に対応する。全区間を通して個数はほぼ均一であり、換言すればこのカオス的時系列Xnが白色ノイズに近い性質を有していること示す。従って、カオス的時系列Xnが乱数として有効であることが実証された。
【0108】
図21は、図17のパラメータにより得られたカオス的時系列の自己相関関数図である。横軸は遅れ数(Delay Number)L、縦軸は自己相関関数(Autocorrelation)R(L)である。自己相関関数R(L)はLだけ離れたXnとXn+Lの積Xn・Xn+Lの総和によって定義される関数である。この自己相関関数R(L)が変数Lのほぼ全領域で小さく、カオス的関数の項数に依存しないから、カオス的時系列Xnは相互関係を殆ど有していない。この性質は図19及び図20に示される性質と共通しており、カオス的時系列Xnが乱数として好適であることを示している。
【0109】
図22は、係数Miを用いないは多項(multi−terms)からなるカオス的関数(Chaos−like Function)によるカオス的時系列のアルゴリズム図である。この多項カオス的関数は図15において係数Miを全て1に固定した場合に相当する。つまり、多項ではパラメータ数が急増するから、係数Miを排除してパラメータ数をその分だけ減量する。
【0110】
式(31)はカオス的関数を与え、Xn=SUM[(ki/mi)pi n][和はi=1〜L]で表される。以下では、SUMはi=1〜LのL個の和を示しており、これを単にSUMとして表示する。k1〜kLは整数、p1〜pLは正の整数、m1〜mLは素数である。このカオス的関数Xnから式(32)のカオス的時系列Xnが演算される。
【0111】
L項からなるカオス的関数Xnを与えるパラメータは(k1、m1、p1)〜(kL、mL、pL)の3×L個である。これらの3×L個のパラメータが式(33)で示されるようにカオス的時系列の鍵(Key)となる。パラメータ数の増加により、不審者が外部からこれらのパラメータを探知する可能性は無くなる。このカオス発生装置を用いて暗号装置を構成すれば、極めて安全な暗号装置が実現できる。しかも、カオス的関数は単純な指数関数であるから、カオス時系列を高速に導出できる特性を有している。項数の増加は、演算時間の増大を招来するが、適当な項数Lを選択して高速性と安全性の両者を実現することが可能である。
【0112】
式(34)〜(37)はカオス的時系列Xnを与えるアルゴリズムを表している。式(34)では、kiに対し(mod mi)[i=1〜L]が施され、得られるki,0を0≦ki,0<mi[i=1〜L]の範囲に制限する。通常では、パラメータki、miを設定するときにki<miとなるように選択されるから、この場合には式(34)において(mod mi)を施すことは不要になる。
【0113】
式(35)では、ki,0の少数化処理が行われる。ki,0は0≦ki,0<miの値であるから、ki,0を素数miで割ることにより少数化が行われる。SUM[ki,0/mi]に対して(mod 1)を処理し、その小数部からカオス的時系列の初期値X0が導出される。ki,0/miは0〜1の間の小数であるが、SUMをとると1を超える場合が出現するため、(mod 1)が施される。X0の小数桁数はコンピュータの有効精度により制限される。
【0114】
次に、n=0〜N−1の範囲で反復演算が行われる。式(36)により、0〜miの範囲にあるki,nからki,n+1=pi・ki,n(mod mi)によりki,n+1[i=1〜L]が導出される。piを乗じることによってki,n+1はmiより大きくなる可能性があるから、(mod mi)によりki,n+1を0≦ki,n+1<mi[i=1〜L]の範囲に制限する。
【0115】
更に、式(37)によりki,n+1の少数化処理が行われる。ki,n+1をmiで割って少数化し、L項の和を(mod 1)の操作を施してその小数部をXn+1として導出する。
【0116】
上記の演算を繰り返すと、カオス的時系列X1、X2・・・XNが導出される。この多項方式では、カオス的関数が極めて簡単な構成を有し、アルゴリズムの全過程が高速に演算され、カオス的時系列Xnを高速に出力できる利点がある。しかも、鍵となるパラメータ数が増大し、外部からこれらの全てのパラメータを探知することは不可能になり、暗号装置の安全性が強化される。
【0117】
図23は、図22のアルゴリズムを実行するフローチャート図である。y41〜y48は図5におけるy1〜y8に夫々対応している。y41はカオス的関数のパラメータを設定する手段で、(ki,mi,pi)[i=1〜L]がパラメータとして設定される。kiは整数、miは素数、piは指数関数の底(即ちpi n)が設定される。y42は剰余の初期値を設定する手段で、法miによるkiの剰余ki,0が導出される。y43はカオス的時系列Xnの初期値X0を演算する手段で、SUM[ki,0/mi]の小数部をX0として導出し、このカオス的時系列の初期値X0を外部に出力する。
【0118】
y44〜y48はカオス的時系列Xn(n≧1)を導出する反復演算手段であり、y44はn=0を設定する手段である。y45は剰余ki,n+1を法miにより導出する手段で、y46によりXn+1=SUM[ki,n+1/mi](mod 1)を演算し、1以下の小数をカオス的時系列Xnとして外部に出力する。
【0119】
y47はカオス的時系列Xnの演算を停止するかどうかの判別手段で、停止(Y)なら演算を停止し、継続(N)ならy48によりn=n+1が設定される。そして再びy45に帰還して反復演算が行われる。従って、y44〜y48の反復演算を行って、カオス的時系列X1、X2・・・が停止命令を受けるまで演算され、外部に継続的に出力されてゆく。
【0120】
図24は、多項(multi−terms)からなるカオス的関数(Chaotic Function)にパラメータCを定数項として付加したカオス時系列のアルゴリズム図である。式(41)はカオス的関数を与え、Xn=SUM[Mi(ki/mi)pi n]+C[和はi=1〜L]で表される。この関数形では、発散する関数はSUM[Mi(ki/mi)pi n]の部分であり、本発明の要部をなす実質的なカオス的関数f(n)はf(n)=SUM[Mi(ki/mi)pi n]である。つまり、定数項Cはこのカオス的関数f(n)に外的に付加されているものである。Cの替わりに、例えばw(n)=C+Dn+En2等の関数を付加してもよい。この場合には、パラメータC、D、Eも他のパラメータと共に暗号装置の鍵となり、不審者の侵入防止を強化できる。即ち、本来のカオス的関数に外部関数を付加し、この外部関数のパラメータを付加的な鍵とするものである。このように、カオス的関数に外部関数を設定する手段を設けても良い。SUMはi=1〜LのL個の和を示しており、これを単にSUMとして表示する。M1〜MLは各項の係数であり、k1〜kLは整数、p1〜pLは正の整数、m1〜mLは素数、定数項Cは実数である。このカオス的関数Xnから式(42)のカオス的時系列Xnが演算される。M1〜MLは実数から選ばれる。
【0121】
L項からなるカオス的関数Xnを与えるパラメータは(M1、k1、m1、p1)〜(ML、kL、mL、pL)+Cの(4×L+1)個である。これらの(4×L+1)個のパラメータが式(43)で示されるようにカオス的時系列の鍵(Key)となる。このようにパラメータが増えると、不審者が外部からこれらのパラメータを探知する可能性は無くなる。このカオス発生装置を用いて暗号装置を構成すれば、極めて安全な暗号装置が実現できる。しかも、カオス的関数は単純な指数関数を基本に構成されているから、カオス時系列を高速に導出できる特性を有している。項数の増加は、演算時間の増大を招来するが、適当な項数Lを選択して高速性と安全性の両者を実現することが可能である。
【0122】
式(44)〜(47)はカオス的時系列Xnを与えるアルゴリズムを表している。式(44)では、積Mi・kiに対し(mod mi)[i=1〜L]が施され、得られるki,0を0≦ki,0<mi[i=1〜L]の範囲に制限する。通常では、パラメータMi、ki、miを設定するときにMi・ki<miとなるように選択されるから、この場合には式(44)において(mod mi)を施すことは不要になる。
【0123】
式(45)では、ki,0の少数化処理が行われる。ki,0は0≦ki,0<miの値であるから、ki,0を素数miで割ることにより少数化が行われる。SUM[ki,0/mi]+Cに対して(mod 1)を処理し、その小数部からカオス時系列の初期値X0が導出される。ki,0/miは0〜1の間の小数であるが、SUM及びCにより1を超える場合が出現するため、(mod 1)が施される。X0の小数桁数はコンピュータの有効精度により制限される。
【0124】
次に、n=0〜N−1の範囲で反復演算が行われる。式(46)により、0〜mの範囲にあるki,nからki,n+1=pi・ki,n(mod mi)によりki,n+1[i=1〜L]が導出される。piを乗じることによってki,n+1はmiより大きくなる可能性があるから、(mod mi)によりki,n+1を0≦ki,n+1<mi[i=1〜L]の範囲に制限する。
【0125】
更に、式(47)によりki,n+1の少数化処理が行われる。ki,n+1をmiで割って少数化し、L項の和+定数項Cを(mod 1)によりその小数部をXn+1として導出する。
【0126】
上記の演算を繰り返すと、カオス的時系列X1、X2・・・XNが導出される。この多項方式では、定数項Cによりパラメータ数が増えるため安全性が一層高くなる。また、カオス的関数が極めて簡単な構成を有するから、アルゴリズムの全過程が高速に演算され、カオス的時系列Xnを高速に出力できる利点がある。
【0127】
図25は、図24のアルゴリズムを実行するフローチャート図である。y51〜y58は図5におけるy1〜y8に夫々対応している。y51はカオス的関数のパラメータを設定する手段で、(Mi,ki,mi,pi)[i=1〜L]+Cがパラメータとして設定される。Miは実数、kiは整数、miは素数、piは指数関数の底(即ちpi n)、Cは実数が設定される。y52は剰余の初期値を設定する手段で、法miによる積Mi・kiの剰余ki,0が導出される。y53はカオス的時系列Xnの初期値X0を演算する手段で、SUM[ki,0/mi]+Cの小数部をX0として導出し、このカオス的時系列の初期値X0を外部に出力する。
【0128】
y54〜y58はカオス的時系列Xn(n≧1)を導出する反復演算手段であり、y54はn=0を設定する手段である。y55は剰余ki,n+1を法miにより導出する手段で、y56によりXn+1=SUM(ki,n+1/mi)+C(mod 1)を演算し、1以下の小数をカオス的時系列Xnとして外部に出力する。
【0129】
y57はカオス的時系列Xnの演算を停止するかどうかの判別手段で、停止(Y)なら演算を停止し、継続(N)ならy58によりn=n+1が設定される。そして再びy55に帰還して反復演算が行われる。従って、y54〜y58の反復演算を行って、カオス的時系列X1、X2・・・が停止命令を受けるまで演算され、外部に継続的に出力されてゆく。
【0130】
上述したように、本発明では、カオス的関数f(n)を直接演算するものでは無い。f(n)を直接演算すると、当然に発散し、有効桁数により丸め誤差が累積する。このカオス的関数の発散を防止するために、f(n)の計算を剰余r(n)により行い、r(n)からr(n+1)への連鎖を通して反復演算を行うことに特徴を有している。この剰余r(n)はカオス的関数f(n)から素数mを法として得られる剰余である。この剰余r(n)に定数項Cや別の関数w(n)を付加することも可能である。この1形態として図24及び図25では定数項Cがカオス時系列の計算過程で付加されている。
【0131】
図26は本発明に係るカオス発生用プログラムによる演算を実行するシステム構成図である。本発明に係るプログラム63は、このプログラム63を記録したカオス発生用記録媒体を入力装置60に装填してシステムに入力され、バス61を通してメインメモリ装置62にインストールされる。初期パラメータや演算により得られるデータはデータメモリ装置70に格納される。
【0132】
このプログラム63を実行するために、パラメータ(M,k,m,p)が入力装置60から入力され、パラメータメモリ部72に格納される。これらのパラメータを用いてプログラム63によりカオス演算が実行される。演算及び制御はCPU64により処理される。
【0133】
パラメータ(M,k,m,p)を用いて素数mを法とする剰余r(n0)が初期値として導出される。n0は繰り返し数nの初期値を与え、通常はn0=0に設定される。このr(n0)を使用し、プログラム63により、n=n+1の反復により、r(n)が次々と導出されてゆく。r(n)は剰余メモリ部74に格納される。この剰余r(n)は0〜mの範囲の整数である。
【0134】
剰余r(n)が導出されると、このr(n)を素数mで割り、1より小さな小数q(n)が導出される。つまり1を法として小数q(n)が演算される。従って、q(n)は0〜1の範囲の小数である。この小数q(n)は小数メモリ部76に格納される。繰り返し数nの各段階の演算では、素数mを法として演算が実行されるから、r(n)の有効桁数に丸め誤差は導入されない。また、同様の理由により、小数q(n)の小数桁にも丸め誤差は導入されない。
【0135】
次に、剰余r(n)又は小数q(n)からカオス的時系列Xnが導出され、カオスメモリ部78に格納される。同時にカオス的時系列Xnは出力装置66から外部に出力される。
【0136】
剰余r(n)は0〜mまでの整数であり、この値をそのままカオス的時系列Xnとしてもよい。また、0〜0.5×mの範囲の整数を”0”、0.5×m〜mの範囲の整数を”1”としてカオス的時系列Xnを構成することもできる。この場合には、小数q(n)の演算は不要になる。
【0137】
同様に、小数q(n)をそのままカオス的時系列Xnとしてもよい。また、0〜0.5の範囲の小数を”0”、0.5〜1の範囲の小数を”1”としてカオス的時系列Xnを構成してもよい。以上のように、剰余r(n)又は小数q(n)からカオス的時系列Xnへの変換は自在に行うことができる。
【0138】
従って、本発明は上記実施形態に限定されるものではなく、本発明の技術的思想を逸脱しない範囲における種々の変形例、設計変更などをその技術的範囲内に包含することは云うまでもない。
【0139】
【発明の効果】
本発明の第1の形態によれば、変数nの増加に従って急激に増加する関数f(n)を用い、この関数f(n)から素数mを法として剰余r(n)を導出すれば、この剰余r(n)は発散せずに0≦r(n)<mの範囲に常に存在し、しかもr(n)は初期値依存性を有する。r(0)から出発してr(n+1)をr(n)との関係で算出するアルゴリズムでは、これらの時系列r(n)は計算機の有効桁数の範囲で丸め誤差を有することなく正確に計算できる。また、関数f(n)が急激に増加しながら発散する関数であれば、剰余r(n)は0とmの間でカオス的に不規則に振動する。素数mを大きく設定すれば、素数mの大きさに依存したnmaxにより、n=0〜nmaxの範囲で、r(n)は反復することなくカオス性を発現するのである。例えば、mを1012程度の素数とすれば、nmaxも同程度の大きさになるから、暗号化する情報より長い時系列を容易に作り出せる。0〜mの範囲で不規則振動するカオス的時系列r(n)から一意のカオス的時系列Xnを導出して、有効なカオス発生装置を構成することが可能になる。r(n)をそのままXnとしてもよいし、r(n)を小数部とした1以下の小数をXnとしてもよいなど、r(n)からXnへの変換は任意に操作することが可能である。更に、複数のカオス的関数fi(n)[i=1〜L]を用意し、素数mi[i=1〜L]を選択し、上述の反復手続により関数fi(n)から素数miを法として剰余ri(n)[i=1〜L]を個別的に算出することもできる。これらの剰余ri(n)[i=1〜L]から一意の値を有するカオス的時系列Xnを導出することもできる。このように、本発明によれば、カオス的関数f(n)の1次結合を利用してカオス的時系列Xnを発生するカオス発生装置も提供できる。f(n)の中にはsinやcosなどの三角関数が含まれず、しかも剰余r(n)を導出する反復計算であるから高速演算が可能であり、カオス的時系列Xnを高速に導出できるカオス発生装置を提供できる。
【0140】
第2の形態によれば、0〜mの間の数値であるr(n)をmで割ると、q(n)は0≦q(n)≦1の範囲にある小数になる。この小数q(n)からカオス的時系列Xnを発生させる。また、複数個の剰余ri(n)[i=1〜L]を使用する場合には、q1(n)+・・+qL(n)が1を超える場合も出現するから、この和の小数部分からカオス的時系列Xnを発生させる。従って、小数のカオス的時系列Xnを発生させることができる。
【0141】
第3の形態によれば、漸化式としては、f(n+1)=p・f(n)、f(n+1)=(p+qn)・f(n)・・・等の任意の式が利用できる。その中で最も簡単な漸化式は、f(n+1)=p・f(n)であり、この場合には、f(n)=c・pnと書くことができる。f(n)が漸化式で与えられる場合には、剰余r(n)も同様の漸化式を有し、r(n+1)をr(n)から反復的に導出することが可能になる。従って、初期値r(n0)から出発して、漸化式を用いて次々にr(n)を導出し、このr(n)に対し常に素数mを法とした剰余を取れば、r(n)は0〜m−1の間を振動する値になる。このようにすれば、r(n)の値に丸め誤差は蓄積されず、数値的発散は防止される。r(n)からカオス的時系列Xnを導出するには、第1形態で述べたように、r(n)をそのままXnとしてもよいし、r(n)を小数部とした1以下の小数をXnとしてもよい。また、0〜m−1の間を振動するr(n)を更にmで割ってその小数部だけをXnとできるなど、r(n)からXnへの変換は任意に操作することが可能である。
【0142】
第4の形態によれば、カオス的関数f(n)の一例としてc・pnが利用できる。この関数形は、第3形態におけるf(n+1)=p・f(n)の場合に相当する。前述したように、従来からカオス解としてsin[(k/m)π2n]やsin2[(k/m)π2n]、カオス関数としてそれらの1次結合(多項式)を使用していたが、本発明者はその位相部である(k/m)π2nに着目した。この関数のπを無視して、f(n)=c2nを本発明の発散関数として使用する。実数cを有理数に限定し、c=k/mと定義して、f(n)=kpnの法mによる剰余r(n)が初期値依存性を示すことが確認された。また、この剰余r(n)を素数mによって割った商(小数)q(n)も初期値依存性を示す。この発見に基づいて、剰余r(n)又は小数q(n)からカオス的時系列Xnを導出するカオス発生装置を提供する。関数f(n)としてcipi nの一次結合を利用できることも上述した通りである。このように、cpnという極めて単純な発散関数を用いるから高速演算が可能になり、大容量通信においても高速に暗号化と複号化を実現するカオス発生装置を提供できる。
【0143】
第5の形態によれば、f(n)=cpnを用いると、f(n+1)=p・f(n)が漸化式となり、f(0)=cを初期値として、漸化式によりf(n)を順次計算できる。c=k/m(k:整数、m:素数)とおけば、各ステップで法mによる剰余r(n)を算出することによって、発散を完全に起こさないで丸め誤差を含有しない剰余r(n)を逐次導出することが可能になる。また、この剰余r(n)を素数mで割って小数q(n)を導出できる。剰余r(n)又は小数q(n)から初期値依存性を有したカオス的時系列Xnを発生させるカオス発生装置を提供できる。関数f(n)としてcipi nの一次結合も利用できる。
【0144】
第6の形態によれば、本発明のカオス発生装置はカオス時系列を丸め誤差なく確実に再現できるから、発散関数fi(n)[i=1〜L、L≧1]のパラメータ及び素数mi[i=1〜L、L≧1]を鍵として与え、発散関数fi(n)を指定するだけで、暗号化と復号化を確実に行えるカオス発生装置を提供できる。しかも、多くのパラメータや素数mを鍵とするから、外部からこれらの鍵を解読されることは困難であり、またこれらの鍵の桁数を増やすだけで外部から侵入不能な暗号装置の確立に貢献できる。
【0145】
第7の形態によれば、カオス発生用プログラムをコンピュータにインストールし、変数nの増加に従って急激に増加する関数fi(n)[i=1〜L、L≧1]に対し素数mi[i=1〜L、L≧1]を設定する手段と、変数nの初期値n0に対してfi(n0)から素数miを法として剰余ri(n0)[i=1〜L、L≧1]を導出する初期値演算手段と、fi(n+1)の計算では剰余ri(n)を利用して素数miを法として導出された剰余ri(n+1)を導出する反復演算手段と、変数nをn0から順次増大させながら前記剰余ri(n)[i=1〜L、L≧1]を通して生成される一意の値を有するカオス的時系列Xnを出力するカオス信号出力手段としてコンピュータを機能させることができる。
コンピュータ演算では、倍精度や4倍精度などで示される有効桁しか有していないから、カオス的関数に特有の数値的発散性をその有効桁数に抑えることが必要になる。この第7形態では、発散関数f(n)を素数mを法とした剰余r(n)に変換するから、素数mの桁数を有効桁数内に制限することによって、剰余r(n)を常に有効桁数内の数値として得ることができる。従って、コンピュータ演算において発散が無く、その結果丸め誤差の無いカオス的時系列Xnを生成することができる。しかも、関数f(n)や剰余r(n)の演算の中に三角関数を全く含まないから演算速度を高速化できる。カオス的時系列を使用するシミュレーション全体の高速化を達成できる。また、初期値演算より以後では、f(n)自体の演算を行わずに、有限値の剰余r(n)を用いた反復演算を行って連続的にカオス的時系列を生成するから、カオス演算を高速に行うことができる。従って、カオス的時系列を使用するシミュレーション全体の高速化を達成できる。
【0146】
第8の形態によれば、第7形態のカオス発生用プログラムを記録したコンピュータ読み取り可能なカオス発生用記録媒体が提供される。この記録媒体を介してプログラムをコンピュータにインストールすると、カオス的時系列を丸め誤差無く演算でき、しかも高速演算が可能になる。このようなプログラムを保存した記録媒体を安価に提供できるから、市場において高精度にしかも高速にカオスシミュレーションを行えるようにできる利点がある。
【0147】
第9の形態によれば、本発明により得られるカオス的時系列XnがXn+1−Xnの全平面に均一に分散し、しかもXnのスペクトルが白色雑音に近い性質を有する擬似乱数発生装置が提供される。また、Xnの自己相関関数R(L)は遅れ数Lに対して極めて小さな値をとり、殆ど相関性の無い乱数を発生できることが分かった。このように、本発明により得られるカオス的時系列Xnは乱数として有効であることが実証され、各種のシミュレーションで効果的に使用できる擬似乱数発生装置が実現される。
【0148】
第10の形態によれば、変数nの増加に従って急激に増加する関数f(n)を出発関数にしながら、素数mを法として剰余r(n)を算出し、しかもr(n+1)を前記剰余r(n)を通して導出するから、剰余r(n)には丸め誤差が全く混入しない。丸め誤差を含まない剰余r(n)からカオス的時系列Xnを導出するから、関数f(n)のパラメータと素数mを鍵としてカオス的時系列を何回でも確実に再現することが可能になる。従って、暗号化装置ではこの再現可能なカオス的時系列Xnを用いて情報を暗号化し、復号化装置では前記カオス的時系列Xnを用いて暗号から情報を取り出す復号化処理を確実に行うことができる。また、関数f(n)にはsinやcos等の三角関数が含まれないからカオス的時系列Xnを高速に導出することができ、情報の高速通信に適合した高速暗号装置を提供することができる。また、複数の関数fi(n)[i=1〜L]と複数の素数mi[i=1〜L]を使用すると、関数fi(n)[i=1〜L]の多くのパラメータや素数mi[i=1〜L]が鍵となり、これらの鍵群を外部から解読することはほぼ不可能になる。従って、前述した高速性を有し、しかも安全性強度の高い暗号装置を実現できる。
【図面の簡単な説明】
【図1】本発明に係る暗号装置2のブロック構成図。
【図2】本発明に係るカオス発生装置10(20)の構成図である。
【図3】本発明に係る乱数発生装置40の構成図である。
【図4】本発明に使用されるカオス的関数f(n)及びその剰余r(n)の具体例を示す説明図である。
【図5】本発明に係るカオス的関数を用いた信号発生用のフローチャート図である。
【図6】1項(1−term)からなるカオス的関数(Chaotic Function)によるカオス時系列のアルゴリズム図である。
【図7】図6のアルゴリズムを実行するフローチャート図である。
【図8】1項からなるカオス的関数によるカオス時系列図である。
【図9】2項(2−terms)からなるカオス的関数(Chaotic Function)によるカオス時系列のアルゴリズム図である。
【図10】図9のアルゴリズムを実行するフローチャート図である。
【図11】2項からなるカオス的関数の一例を示すパラメータ図である。
【図12】図11のパラメータにより得られたカオス的時系列のXn+1−Xn平面図である。
【図13】図11のパラメータにより得られたカオス的時系列のスペクトル図である。
【図14】図11のパラメータにより得られたカオス的時系列の自己相関関数図である。
【図15】多項(multi−terms)からなるカオス的関数(Chaotic Function)によるカオス的時系列のアルゴリズム図である。
【図16】図15のアルゴリズムを実行するフローチャート図である。
【図17】多項(L=10)からなるカオス的関数の一例を示すパラメータ図である。
【図18】図17に示すパラメータにより得られたカオス的時系列図である。
【図19】図17のパラメータにより得られたカオス的時系列のXn+1−Xn平面図である。
【図20】図17のパラメータにより得られたカオス的時系列のスペクトル図である。
【図21】図17のパラメータにより得られたカオス的時系列の自己相関関数図である。
【図22】係数Miを用いないは多項(multi−terms)からなるカオス的関数(Chaotic Function)によるカオス的時系列のアルゴリズム図である。
【図23】図22のアルゴリズムを実行するフローチャート図である。
【図24】多項(multi−terms)からなるカオス的関数(Chaotic Function)にパラメータCを定数項として付加したカオス的時系列のアルゴリズム図である。
【図25】図24のアルゴリズムを実行するフローチャート図である。
【図26】本発明に係るカオス発生用プログラムによる演算を実行するシステム構成図である。
【図27】ロジスティック写像の厳密なカオス解を使用した従来のカオス時系列のアルゴリズム図である。
【図28】他のカオス写像の厳密なカオス解を使用した従来のカオス時系列のアルゴリズム図である。
【符号の説明】
2は暗号装置、4は暗号化装置、6は復号化装置、8は情報、10はカオス発生装置、12は演算装置、14は暗号、16は送信、18は受信、20はカオス発生装置、22は演算装置、24は鍵、28はパラメータ、30はパラメータ入力手段、32はカオス演算手段、34は初期値演算手段、36は反復演算手段、38はカオス信号出力手段、40は擬似乱数発生装置、42はパラメータ入力手段、44はカオス演算手段、46は初期値演算手段、48は反復演算手段、50はカオス信号出力手段。60は入力装置、61はバス、62はメインメモリ装置、63はプログラム、64はCPU、66は出力装置、70はデータメモリ装置、72はパラメータメモリ部、74は剰余メモリ部、76は小数メモリ部、78はカオスメモリ部。
Claims (10)
- 変数nの増加に従って急激に増加する関数fi(n)[i=1〜L、L≧1]に対し素数mi[i=1〜L、L≧1]を設定する手段と、変数nの初期値n0に対してfi(n0)から素数miを法として剰余ri(n0)[i=1〜L、L≧1]を導出する初期値演算手段と、fi(n+1)の計算では剰余ri(n)を利用して素数miを法として導出された剰余ri(n+1)を導出する反復演算手段と、変数nをn0から順次増大させながら前記剰余ri(n)[i=1〜L、L≧1]を通して生成される一意の値を有するカオス的時系列Xnを出力するカオス信号出力手段から構成される特徴とするカオス発生装置。
- 前記剰余ri(n)[i=1〜L、L≧1]を前記素数mi[i=1〜L、L≧1]で割算して1より小さな小数の商qi(n)[i=1〜L、L≧1]を算出し、L=1の場合にはq1(n)から前記Xnを導出し、L≧2の場合にはq1(n)+・・+qL(n)の小数部分から前記Xnを導出する請求項1に記載のカオス発生装置。
- 前記関数fi(n)[i=1〜L、L≧1]がfi(n+1)=(pi+qin+・・+sinti)・fi(n)[i=1〜L、L≧1]の漸化式を満足する請求項1又は2に記載のカオス発生装置。
- 前記関数fi(n)[i=1〜L、L≧1]がfi(n)=ci・pi n[piは自然数、i=1〜L、L≧1]で表される請求項1又は2に記載のカオス発生装置。
- n=0においてri(0)=ki(mod mi)[i=1〜L、L≧1]とし、ri(n+1)=pi・ri(n)(mod mi)[i=1〜L、L≧1]を漸化式として利用して発散を防止し、この反復演算により得られる剰余ri(n)[i=1〜L、L≧1]からカオス時系列Xnを導出する請求項4に記載のカオス発生装置。
- 文章、画像又は音声からなるデジタル情報を暗号化又は復号化するために使用されるカオス発生装置であり、関数fi(n)[i=1〜L、L≧1]のパラメータ及び素数mi[i=1〜L、L≧1]を暗号化又は復号化の鍵として使用する請求項1、2、3、4又は5に記載のカオス発生装置。
- コンピュータを、変数nの増加に従って急激に増加する関数fi(n)[i=1〜L、L≧1]に対し素数mi[i=1〜L、L≧1]を設定する手段と、変数nの初期値n0に対してfi(n0)から素数miを法として剰余ri(n0)[i=1〜L、L≧1]を導出する初期値演算手段と、fi(n+1)の計算では剰余ri(n)を利用して素数miを法として導出された剰余ri(n+1)を導出する反復演算手段と、変数nをn0から順次増大させながら前記剰余ri(n)[i=1〜L、L≧1]を通して生成される一意の値を有するカオス的時系列Xnを出力するカオス信号出力手段として機能させることを特徴とするカオス発生用プログラム。
- コンピュータを、変数nの増加に従って急激に増加する関数fi(n)[i=1〜L、L≧1]に対し素数mi[i=1〜L、L≧1]を設定する手段と、変数nの初期値n0に対してfi(n0)から素数miを法として剰余ri(n0)[i=1〜L、L≧1]を導出する初期値演算手段と、fi(n+1)の計算では剰余ri(n)を利用して素数miを法として導出された剰余ri(n+1)を導出する反復演算手段と、変数nをn0から順次増大させながら前記剰余ri(n)[i=1〜L、L≧1]を通して生成される一意の値を有するカオス的時系列Xnを出力するカオス信号出力手段として機能させるためのプログラムを記録したコンピュータ読み取り可能なことを特徴とするカオス発生用記録媒体。
- 変数nの増加に従って急激に増加する関数fi(n)[i=1〜L、L≧1]に対し素数mi[i=1〜L、L≧1]を設定する手段と、変数nの初期値n0に対してfi(n0)から素数miを法として剰余ri(n0)[i=1〜L、L≧1]を導出する初期値演算手段と、fi(n+1)の計算では剰余ri(n)を利用して素数miを法として導出された剰余ri(n+1)を導出する反復演算手段と、変数nをn0から順次増大させながら前記剰余ri(n)[i=1〜L、L≧1]を通して生成される一意の値を有するカオス的時系列Xnを出力するカオス信号出力手段から構成される特徴とする擬似乱数発生装置。
- 変数nの増加に従って急激に増加する関数fi(n)[i=1〜L、L≧1]に対し素数mi[i=1〜L、L≧1]を設定する手段と、変数nの初期値n0に対してfi(n0)から素数miを法として剰余ri(n0)[i=1〜L、L≧1]を導出する初期値演算手段と、fi(n+1)の計算では剰余ri(n)を利用して素数miを法として導出された剰余ri(n+1)を導出する反復演算手段と、変数nをn0から順次増大させながら前記剰余ri(n)[i=1〜L、L≧1]を通して生成される一意の値を有するカオス的時系列Xnを出力するカオス信号出力手段から構成されるカオス発生装置と、このカオス発生装置のカオス時系列Xnによりデジタル情報を暗号化して暗号を生成する暗号化装置と、この暗号を受信して前記カオス時系列と全く同じカオス時系列Xnにより暗号からデジタル情報を導出する復号化装置とを有し、暗号化と復号化に際して前記関数fi(n)[i=1〜L、L≧1]のパラメータと素数mi[i=1〜L、L≧1]を鍵と使用することを特徴とする暗号装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003181301A JP2005017612A (ja) | 2003-06-25 | 2003-06-25 | カオス発生装置、カオス発生用プログラム、カオス発生用記録媒体、擬似乱数発生装置及び暗号装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003181301A JP2005017612A (ja) | 2003-06-25 | 2003-06-25 | カオス発生装置、カオス発生用プログラム、カオス発生用記録媒体、擬似乱数発生装置及び暗号装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005017612A true JP2005017612A (ja) | 2005-01-20 |
Family
ID=34182050
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003181301A Pending JP2005017612A (ja) | 2003-06-25 | 2003-06-25 | カオス発生装置、カオス発生用プログラム、カオス発生用記録媒体、擬似乱数発生装置及び暗号装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005017612A (ja) |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010525670A (ja) * | 2007-04-19 | 2010-07-22 | ハリス コーポレイション | カオスの数値系列のデジタル生成 |
JP2012505606A (ja) * | 2008-10-09 | 2012-03-01 | ハリス コーポレイション | アドホック無線ネットワークにおいて隣接ノードを検出する方法 |
CN102437912A (zh) * | 2012-01-06 | 2012-05-02 | 厦门博鼎智文传媒科技有限公司 | 一种基于混沌算法的n重rsa加密算法的数字版权保护方法 |
US8312551B2 (en) | 2007-02-15 | 2012-11-13 | Harris Corporation | Low level sequence as an anti-tamper Mechanism |
US8320557B2 (en) | 2008-05-08 | 2012-11-27 | Harris Corporation | Cryptographic system including a mixed radix number generator with chosen statistical artifacts |
US8325702B2 (en) | 2008-08-29 | 2012-12-04 | Harris Corporation | Multi-tier ad-hoc network in which at least two types of non-interfering waveforms are communicated during a timeslot |
US8340295B2 (en) | 2009-07-01 | 2012-12-25 | Harris Corporation | High-speed cryptographic system using chaotic sequences |
US8345725B2 (en) | 2010-03-11 | 2013-01-01 | Harris Corporation | Hidden Markov Model detection for spread spectrum waveforms |
US8351484B2 (en) | 2008-12-29 | 2013-01-08 | Harris Corporation | Communications system employing chaotic spreading codes with static offsets |
US8363700B2 (en) | 2009-07-01 | 2013-01-29 | Harris Corporation | Rake receiver for spread spectrum chaotic communications systems |
US8363830B2 (en) | 2008-02-07 | 2013-01-29 | Harris Corporation | Cryptographic system configured to perform a mixed radix conversion with a priori defined statistical artifacts |
US8369376B2 (en) | 2009-07-01 | 2013-02-05 | Harris Corporation | Bit error rate reduction in chaotic communications |
US8369377B2 (en) | 2009-07-22 | 2013-02-05 | Harris Corporation | Adaptive link communications using adaptive chaotic spread waveform |
US8379689B2 (en) | 2009-07-01 | 2013-02-19 | Harris Corporation | Anti-jam communications having selectively variable peak-to-average power ratio including a chaotic constant amplitude zero autocorrelation waveform |
US8385385B2 (en) | 2009-07-01 | 2013-02-26 | Harris Corporation | Permission-based secure multiple access communication systems |
US8406276B2 (en) | 2008-12-29 | 2013-03-26 | Harris Corporation | Communications system employing orthogonal chaotic spreading codes |
US8406352B2 (en) | 2009-07-01 | 2013-03-26 | Harris Corporation | Symbol estimation for chaotic spread spectrum signal |
US8428102B2 (en) | 2009-06-08 | 2013-04-23 | Harris Corporation | Continuous time chaos dithering |
US8428104B2 (en) | 2009-07-01 | 2013-04-23 | Harris Corporation | Permission-based multiple access communications systems |
US8428103B2 (en) | 2009-06-10 | 2013-04-23 | Harris Corporation | Discrete time chaos dithering |
US8457077B2 (en) | 2009-03-03 | 2013-06-04 | Harris Corporation | Communications system employing orthogonal chaotic spreading codes |
US8509284B2 (en) | 2009-06-08 | 2013-08-13 | Harris Corporation | Symbol duration dithering for secured chaotic communications |
US8611530B2 (en) | 2007-05-22 | 2013-12-17 | Harris Corporation | Encryption via induced unweighted errors |
US8848909B2 (en) | 2009-07-22 | 2014-09-30 | Harris Corporation | Permission-based TDMA chaotic communication systems |
-
2003
- 2003-06-25 JP JP2003181301A patent/JP2005017612A/ja active Pending
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8312551B2 (en) | 2007-02-15 | 2012-11-13 | Harris Corporation | Low level sequence as an anti-tamper Mechanism |
JP2010525670A (ja) * | 2007-04-19 | 2010-07-22 | ハリス コーポレイション | カオスの数値系列のデジタル生成 |
US8611530B2 (en) | 2007-05-22 | 2013-12-17 | Harris Corporation | Encryption via induced unweighted errors |
US8363830B2 (en) | 2008-02-07 | 2013-01-29 | Harris Corporation | Cryptographic system configured to perform a mixed radix conversion with a priori defined statistical artifacts |
US8320557B2 (en) | 2008-05-08 | 2012-11-27 | Harris Corporation | Cryptographic system including a mixed radix number generator with chosen statistical artifacts |
US8325702B2 (en) | 2008-08-29 | 2012-12-04 | Harris Corporation | Multi-tier ad-hoc network in which at least two types of non-interfering waveforms are communicated during a timeslot |
JP2012505606A (ja) * | 2008-10-09 | 2012-03-01 | ハリス コーポレイション | アドホック無線ネットワークにおいて隣接ノードを検出する方法 |
US8406276B2 (en) | 2008-12-29 | 2013-03-26 | Harris Corporation | Communications system employing orthogonal chaotic spreading codes |
US8351484B2 (en) | 2008-12-29 | 2013-01-08 | Harris Corporation | Communications system employing chaotic spreading codes with static offsets |
US8457077B2 (en) | 2009-03-03 | 2013-06-04 | Harris Corporation | Communications system employing orthogonal chaotic spreading codes |
US8509284B2 (en) | 2009-06-08 | 2013-08-13 | Harris Corporation | Symbol duration dithering for secured chaotic communications |
US8428102B2 (en) | 2009-06-08 | 2013-04-23 | Harris Corporation | Continuous time chaos dithering |
US8428103B2 (en) | 2009-06-10 | 2013-04-23 | Harris Corporation | Discrete time chaos dithering |
US8428104B2 (en) | 2009-07-01 | 2013-04-23 | Harris Corporation | Permission-based multiple access communications systems |
US8385385B2 (en) | 2009-07-01 | 2013-02-26 | Harris Corporation | Permission-based secure multiple access communication systems |
US8379689B2 (en) | 2009-07-01 | 2013-02-19 | Harris Corporation | Anti-jam communications having selectively variable peak-to-average power ratio including a chaotic constant amplitude zero autocorrelation waveform |
US8406352B2 (en) | 2009-07-01 | 2013-03-26 | Harris Corporation | Symbol estimation for chaotic spread spectrum signal |
US8369376B2 (en) | 2009-07-01 | 2013-02-05 | Harris Corporation | Bit error rate reduction in chaotic communications |
US8363700B2 (en) | 2009-07-01 | 2013-01-29 | Harris Corporation | Rake receiver for spread spectrum chaotic communications systems |
US8340295B2 (en) | 2009-07-01 | 2012-12-25 | Harris Corporation | High-speed cryptographic system using chaotic sequences |
US8369377B2 (en) | 2009-07-22 | 2013-02-05 | Harris Corporation | Adaptive link communications using adaptive chaotic spread waveform |
US8848909B2 (en) | 2009-07-22 | 2014-09-30 | Harris Corporation | Permission-based TDMA chaotic communication systems |
US8345725B2 (en) | 2010-03-11 | 2013-01-01 | Harris Corporation | Hidden Markov Model detection for spread spectrum waveforms |
CN102437912A (zh) * | 2012-01-06 | 2012-05-02 | 厦门博鼎智文传媒科技有限公司 | 一种基于混沌算法的n重rsa加密算法的数字版权保护方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2005017612A (ja) | カオス発生装置、カオス発生用プログラム、カオス発生用記録媒体、擬似乱数発生装置及び暗号装置 | |
JP6964688B2 (ja) | 暗号文に対する近似演算を行う装置及び方法 | |
US8184805B2 (en) | Program converter, encrypting device, and encrypting method | |
JP3976218B2 (ja) | 暗号システム | |
JP2002314534A (ja) | 非決定論的ミクスチャー発生器ストリーム暗号化システム | |
KR102154164B1 (ko) | 의사 랜덤 시퀀스 생성 방법 및 데이터 스트림의 코딩 또는 디코딩 방법 | |
JP3930302B2 (ja) | 効率的な冪乗法および装置 | |
JP6386198B1 (ja) | 暗号化装置及び復号装置 | |
Al-Hazaimeh | A new speech encryption algorithm based on dual shuffling Hénon chaotic map | |
Li et al. | A image encryption algorithm based on coexisting multi-attractors in a spherical chaotic system | |
Bhattacharjee et al. | Unified GPU technique to boost confidentiality, integrity and trim data loss in big data transmission | |
JP2004258667A (ja) | N個のデジットを含むワードの擬似ランダム置換の生成方法 | |
Sadkhan et al. | A proposed speech scrambling based on hybrid chaotic key generators | |
Jana et al. | A novel time-stamp-based audio encryption scheme using sudoku puzzle | |
JP5427117B2 (ja) | メッセージ認証子生成装置、メッセージ認証子検証装置、メッセージ認証子生成方法、メッセージ認証子検証方法、およびプログラム | |
WO2013024230A2 (fr) | Dispositif et procédé de compression de clés publiques pour algorithme de chiffrement pleinement homomorphique | |
CN115765963A (zh) | 基于密文域可逆隐写的文字图像审计信息记录与提取方法 | |
Gorbenko et al. | Methods of building general parameters and keys for NTRU Prime Ukraine of 5 th–7 th levels of stability. Product form | |
Mani et al. | Enhancing security in cryptographic algorithm based on LECCRS | |
JP2018092010A (ja) | 暗号化装置と暗号化方法、暗号化プログラム及び鍵生成装置と鍵生成方法、鍵生成プログラム | |
JP2011119985A (ja) | 暗号復号方法 | |
Abdul-Zaher et al. | Secure Image Steganography Approach for Hiding Compressed Data | |
KR100885994B1 (ko) | 비선형 필터링된 t함수에 기반한 스트림 암호화 장치 및방법 | |
Sadhya et al. | Perfectly Secure Shamir's Secret Sharing Scheme for Privacy Preserving Image Processing Over Cloud | |
CN115632782B (zh) | 基于sm4计数器模式的随机数生成方法、系统及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061205 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070205 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070724 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080115 |