JP3953253B2 - 暗号生成装置、暗号生成プログラムを使用する電子機器、記憶媒体、暗号文復号装置 - Google Patents
暗号生成装置、暗号生成プログラムを使用する電子機器、記憶媒体、暗号文復号装置 Download PDFInfo
- Publication number
- JP3953253B2 JP3953253B2 JP2000101402A JP2000101402A JP3953253B2 JP 3953253 B2 JP3953253 B2 JP 3953253B2 JP 2000101402 A JP2000101402 A JP 2000101402A JP 2000101402 A JP2000101402 A JP 2000101402A JP 3953253 B2 JP3953253 B2 JP 3953253B2
- Authority
- JP
- Japan
- Prior art keywords
- function
- noise
- initial
- chaos
- chaotic
- 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.)
- Expired - Lifetime
Links
Images
Description
【発明の属する技術分野】
この発明はカオス信号を用いて暗号化を行う暗号生成装置、同暗号化を行う暗号生成プログラムを使用する電子機器、同プログラムを記憶した記憶媒体に関するものである。
【0002】
【従来の技術】
近年、デジタルデータの安全性確保の理由より、暗号化技術は飛躍的に発展してきた。これと共に、暗号化処理が複雑化する傾向がある。例えば、DES(Data Encryption Standard)に代表されるブロック型暗号では、一般的に鍵長の増加により関数処理の増加及び複雑化が生じ、処理の低速化を招来する。また、RSA(Riverst Shamir Adleman)や楕円曲線暗号のように、自然原理的に難解であることを応用した優れた暗号方式もあるが、暗号化処理の高速化がなされているとは言い難い。暗号により実現される安全面と暗号化処理の高速化は、一般的に相反する要素と考えられるが、通信データの暗号化等、高速性と安全性の両方を求められるようになってきたこともまた事実である。
【0003】
ところで、カオスは初期値のわずかな違いで全くでたらめな軌道を描くことから、暗号作成の分野への応用が期待されている。従来の代表的な暗号方式には、カオスのような「偶然性」が備えるある意味無責任な振るまいがもたらす根本的な「複雑さ」を暗号化へ応用するという発想はなかったと言える。また、カオスは、未来へは決定論的であるが過去へは予測困難という一方向性を持ち、データからの逆解析やカオスパラメータの推測を困難にしている。更に、写像関数系のカオスは、非常に高速なストリーム性を呈し、ブロック型のような多段処理の必要性がないという特徴を有する。カオスは安全面と高速面から、暗号応用には最適のメカニズムを持ち合わせていると考えられる。
【0004】
ロジスティック写像を例に挙げると、写像関数(カオス関数)は、
X n+1 =aXn(1-Xn)(0<Xn<1,3.6<a<4(制限あり)) (式a)
のように与えられ、(式a)の反復使用によりカオス乱数列<Xn>を得ることができる。そして、(式a)の反復毎に得たカオス信号Xnを256 段階に量子化し、平文1byeに付加する暗号ノイズとして使用する。この操作を平文がなくなるまで繰り返すことにより1つの平文を暗号化することができる。
【0005】
(式a)は、係数aの微小な差異、例えば、倍精度実数型(浮動小数点演算)においては、表現しうる最小〜1.0E-15 の差異で、全く異なる乱数列を生成する。例えば、図3に示されるように初期値の僅かな差によってそれぞれ異なる軌跡を描き、これがカオスの初期条件敏感性などと称されている。ここで生成されるパターンと係数aの関連性はつかめないこと、X の初期値X0の推測が困難なことがカオスの性質であり、係るカオスの性質こそが暗号応用の着眼点であり、係数aおよびX0を鍵で与える手法が採られる。
【0006】
【発明が解決しようとする課題】
以上の通りカオスは初期条件に非常に敏感であり、倍精度実数型演算では、仮数部が表現し得る限界、つまり 1.OE-15( 1.0 ×10-15 (以下同様の表記を用いる。)程度の誤差が計算を反復する毎に指数関数的に広がっていくものである。係る点がカオスの暗号応用の着眼点となっている。一方、異なるプロセッサ間の演算特性差にも非常に敏感に反応し、誤差発生以降、全く異なる軌道を歩むことになる。例えば、SPARC (Scalable Process Architecture )で暗号化したデータがAlpha,Intel x86 では復号できないという現象が生じる。このため汎用性をもたせるには、何らかのイコライズ操作が必要となる。
【0007】
そこでソフトウェア的に最も簡単に実現する方法として、例えば、ステップ毎に(倍精度実数型)から(単精度実数型)への型変換操作を行うことが考えられる。しかし、単精度実数型では 1.0E-7 が表現の限界であるため、倍精度実数型に比べ8桁分(10進表記)の精度が失われる。従って、状態数は大幅に減少するという問題点がある。
【0008】
このような少数ビット量子化表現においては、カオスの縮退問題を考慮に入れる必要性が生じる。「縮退」は、以前算出した値に偶然に戻ることで周期性を生じる原因となる。また、大幅な桁落し操作により、理論解では与えられない個所に周期点が発生する可能性がある。確率的にも「縮退」の頻度は大きくなり、特に早い周期性を与えてしまう。
【0009】
カオスの本質はアナログ量である。このため、デジタルでの正確な再現には無限ビット演算装置が必要となる。しかし現実的に無限ビット演算は不可能なため、カオス信号の量子化過程が必須となる。特に整数演算化、少数ビット量子化表現を行う場合には、カオスの歩む軌道数を大きく減少させ、パターン数の減少ばかりでなく、「縮退」発生によるパターンの単一化、少数化、およびこれに起因する周期の現れの早期化等、暗号応用には致命的になり兼ねない問題が顕著化する。
【0010】
本発明は上記のような問題を解決せんとしてなされたもので、その目的は、隣接軌道が縮退を起こすことなく、従って発生されるカオスノイズのパターンに周期性が表れにくく、適切な暗号化を行うことのできる暗号生成装置、暗号生成プログラムを使用する電子機器、記憶媒体を提供することである。
【0011】
【課題を解決するための手段】
本発明に係る暗号生成装置は、前回のカオスノイズと関数パターンの値とに対し写像関数を適用してカオスノイズを発生し、発生毎に前記関数パターンの変数を歩進するステップを繰り返すカオスノイズ発生手段、平文情報を所定の長さに分割した分割平文情報に対し、前記カオスノイズ発生手段により各ステップで発生されたカオスノイズを適用する演算を行って暗号を生成する暗号生成手段、初期状態において暗号化の鍵データに基づき前記写像関数に対し当初に適用するカオスノイズ初期値及び初期関数パターンを決定し、当該カオスノイズ初期値及び初期関数パターンを前記カオスノイズ発生手段に与えてカオスノイズ発生を行わせる初期関数生成手段、前記カオスノイズ発生手段によるカオスノイズ発生のステップ数をカウントし、カウントしたステップ数がそのとき使用している関数パターンの1周期となったかを検出し、1周期を検出する毎に当該関数パターンに基づき新たな写像関数を発生し、前記カオスノイズ発生手段に与えて次のカオスノイズ発生を行わせる次関数決定手段とを具備し、また、本発明に係る電子機器は、コンピュータと、このコンピュータを上記各手段として機能させる暗号生成プログラムを記憶した記憶媒体を具備することを特徴とする。これにより、カオスノイズを発生する写像関数の周期が拡散される。
【0012】
本発明に係る暗号生成装置や暗号生成プログラムを使用する電子機器、記憶媒体では、前記次関数決定手段は、カオスノイズ発生手段により発生されたカオスノイズが所定値より大きいか否かを検出し、カオスノイズが所定値以下であるときには、当初の写像関数によるカオスノイズの発生を行い、カオスノイズが所定値より大きい場合には、その写像関数を別の写像関数に変更することを特徴とする。これによって、写像関数が変更される。
【0013】
本発明に係る暗号生成装置や暗号生成プログラムを使用する電子機器、記憶媒体では、初期関数生成手段は、複数の関数パターンと複数の初期値を予め用意し、暗号化を開始するに際して鍵データによって前記複数の関数パターンと複数の初期値の中から関数パターンと初期値を選択することを特徴とする。これにより、複数の写像関数と複数の初期値の中から写像関数と初期値が選択される。
【0014】
本発明に係る暗号生成装置や暗号生成プログラムを使用する電子機器、記憶媒体では、カオスノイズ発生手段は、写像関数を用いた整数演算によりカオスノイズを得ることを特徴とする。これにより、整数演算においてカオスノイズが得られる。
【0015】
本発明に係る暗号生成装置や暗号生成プログラムを使用する電子機器、記憶媒体では、カオスノイズ発生手段は、一次微分値が1以上である関数を写像関数として用いることを特徴とする。これにより、隣接軌道が縮退を起こさない写像関数によりカオスノイズが得られる。
【0016】
本発明に係る暗号文復号装置は、前回のカオスノイズと関数パターンの値とに対し写像関数を適用してカオスノイズを発生し、発生毎に前記関数パターンの変数を歩進するステップを繰り返すカオスノイズ発生手段と、平文情報を所定の長さに分割した分割平文情報に対し、前記カオスノイズ発生手段により各ステップで発生されたカオスノイズを適用する演算を行って暗号を生成する暗号生成手段と、初期状態において暗号化の鍵データに基づき前記写像関数に対し当初に適用するカオスノイズ初期値及び初期関数パターンを決定し、当該カオスノイズ初期値及び初期関数パターンを前記カオスノイズ発生手段に与えてカオスノイズ発生を行わせる初期関数生成手段と、前記カオスノイズ発生手段によるカオスノイズ発生のステップ数をカウントし、カウントしたステップ数がそのとき使用している関数パターンの1周期となったかを検出し、1周期を検出する毎に当該関数パターンに基づき新たな写像関数を発生し、前記カオスノイズ発生手段に与えて次のカオスノイズ発生を行わせる次関数決定手段とを具備する暗号生成装置により生成された暗号文を復号化する暗号文復号装置において、
前回のカオスノイズと関数パターンの値とに対し写像関数を適用してカオスノイズを発生し、発生毎に前記関数パターンの変数を歩進するステップを繰り返すカオスノイズ発生手段と、暗号文情報を所定の長さに分割した分割暗号文情報に対し、前記カオスノイズ発生手段により各ステップで発生されたカオスノイズを適用する演算を行って暗号を復号する復号手段と、初期状態において復号化の鍵データに基づき前記写像関数に対し当初に適用するカオスノイズ初期値及び初期関数パターンを決定し、当該カオスノイズ初期値及び初期関数パターンを前記カオスノイズ発生手段に与えてカオスノイズ発生を行わせる初期関数生成手段と、前記カオスノイズ発生手段によるカオスノイズ発生のステップ数をカウントし、カウントしたステップ数がそのとき使用している関数パターンの1周期となったかを検出し、1周期を検出する毎に当該関数パターンに基づき新たな写像関数を発生し、前記カオスノイズ発生手段に与えて次のカオスノイズ発生を行わせる次関数決定手段とを具備することを特徴とする。これにより、カオスノイズを発生する写像関数の周期が拡散される。
【0017】
本発明に係る記憶媒体は、プログラムを実行することにより暗号文復号を行うコンピュータを、請求項16乃至請求項18のいずれか1項に記載の暗号文復号装置に具備された各手段として機能させる暗号生成プログラムを記憶したものである。これにより、カオスノイズを発生する写像関数の周期が拡散される。
【0018】
【発明の実施の形態】
以下本発明の実施の形態に係る暗号生成装置、暗号生成プログラムを使用する電子機器、記憶媒体を説明する。本実施の形態では、整数演算によりカオスノイズを発生する。
[整数演算化]
ロジスティック写像関数を示す(式a)は、図4に示すような幾何学的な反復構造を備えている。このロジスティック写像関数を縦、横ともに等倍した2次元空間においても反復構造は保たれる。そこで本実施の形態では、整数演算可能な範囲までロジスティック写像関数を拡大し、整数値への量子化を図る。これが整数演算化の原理である。例えば、本実施の形態において用いる32-bitプロセッサの場合には、2次式を計算する関係上、16-bit範囲:1〜65535までを写像範囲として扱っている。また、64-bitプロセッサの場合では、32-bit範囲:1〜4,294,967,295 までが写像範囲として有効である。このように64-bit演算では32-bit演算より多くのカオス状態数を用いることが可能となるため有利である。
【0019】
整数演算化の利点は、異なるプロセッサ間の浮動小数点演算特性差を意識しなくてよい点にある。従って、イコライズ操作過程が不要となり、汎用性が保てるなどの利点もある。また、整数演算による暗号生成装置(ディバイス)はLSI化が容易であり、比較的低コストでありながらセキュリティのレベルが高いチップへ応用すること等が見込めるものである。
【0020】
[原理]
本発明のような整数演算化、少数ビット演算化では、(式a)に示すロジスティック写像関数の係数aを固定した場合には(関数形を固定した場合には)、式(a)のxは「縮退」を起こし、最終的に数個のアトラクターに引き込まれる。つまり、少数パターン化を招くと共に早期周期性が顕著化する。また、整数値量子化過程(小数点以下切り捨て)による不意な周期点発生等が懸念される。従って、整数演算化では、[カオス暗号原理]で述べた手法をそのまま用いた暗号応用は見込めない。
【0021】
そこで、写像関数形をある時間間隔で変化させ、カオス軌道を積極的に交叉、撹乱する手法を本発明において採用する。つまり、写像関数の可変パターンを鍵より求めるという手法を用いる。カオス発生は、領域の「引き延ばし」と領域内への「折り畳み」の繰り返しを原理としている。一般に、「引き延ばし」過程では隣接間距離が離れ、一方「折り畳み」過程において離れた場所からの「縮退」を生じる。特にロジスティック写像では、「折り畳み縮退」以外に「隣接軌道の縮退」を起こす領域が存在する。
【0022】
「引き延ばし」過程での縮退は免れ得ないが、「隣接軌道の縮退」は、関数形を選ぶことより回避できる。従って、本実施の形態に係る整数演算型の暗号化処理では、縮退や早期周期性の発生を極力避ける意味でロジスティック写像関数の利用を避ける。また、ロジスティック写像には周期窓が多く存在するため、関数可変化にあたり、カオスコントロールパラメータ(ロジスティック写像の場合では(式a)における係数aの値)を連続的に配置できないため、関数を可変する場合のパラメータの配置(設定)が複雑になる。
【0023】
更に整数演算型では、写像範囲内においてX が取りうる状態数が極めて少ない。例えば、32-bitCPUを用いた演算の場合を考察すると、一般的に上記CPUを用いて数段の演算を行うことによって写像範囲を広げることができるのであるが、演算の段数を増やすことは処理ステップ数の増加を意味し、処理速度の低下を招くことになる。そこで本例では、できるだけ写像範囲を広くとるという要請と処理速度の低下をもたらさないという要請に鑑み、2段の演算によって16-bit範囲である1〜65535 までを考えることにより、処理速度の大きな低下がなく、且つできる限り広いカオス領域を持つ関数を採用する。上記の留意点を元に、(A−1)隣接軌道が縮退を起こさない、(A−2)可変化パラメータの配置(alloction) が容易である、(A−3)カオス領域ができるだけ広い、という(A−1)〜(A−3)からなる3つの命題を満たすような関数を選択し、整数演算型可変化設計を行う。
【0024】
[関数設計例]
「隣接軌道の縮退」は、写像関数の1階微分値が|f’|<1の領域で起こる。図5を参照するとロジスティック写像の場合には、隣接軌道の縮退発生領域は全体の25%以上にまでに及ぶことが概ね理解できる。従って、必ず|f’|≧1を満たすような写像関数の設計を行う必要がある。これよりリアプノフ指数(後述(h1)〜(h3))は反復毎で正となり、隣接軌道は発散関係を維持できる。
【0025】
設計関数において|f’|<1の領域を省くと、例えば図6に示すように頂点を境に1次導関数が不連続となる。ここで本実施の形態では、頂点を境に左側関数(左側)、右側関数(右側)と呼ぶことにする。次に具体的に一般解を求める。ここでは簡単のため、(式b1)のような2次の写像関数を考える。(式b1)の1次導関数は(式b2)に示される通りである。
f(x)=ax2 +bx+c (式b1)
f´(x)=2a+b (式b2)
【0026】
有効写像区間を0<x<2k+1 とし、頂点座標を(p,h)に取り、1次導関数f´(p)=rとすると、|f’|≧1を満たす条件は以下のようである。
(1)上に凸の2次関数の場合
(左側関数)
f(0) =0
f´(p) ≧1
f(p) =h
a<0 (式c1)
(右側関数)
f(p) =h
f´(p) ≦−1
f(2k+1 )=0
a<0 (式c2)
(2)下に凸の2次関数の場合
(左側関数)
f(0) =0
f´(p) ≧1
f(p) =h
a>0 (式c3)
(右側関数)
f(p) =h
f´(2k+1 ) ≦−1
f(2k+1 )=0
a<0 (式c4)
【0027】
上記(式c1〜c4)それぞれの連立方程式の解(不等式)が、係数a,b,cの取りうる範囲である。特に、上に凸の左側関数では、r=rr/pとした場合には、(r≧1より、rr≧p) が成り立ち、
a=−(h−rR/p2 ) (式d1)
b= (2h−rr)/p (式d2)
c=0 (式d3)
rr≧p (r= rr/ p≧1より) (式d4)
h>rr (a<0より) (式d5)
を得る。尚、rrはrとは別の1個のパラメータであり、1次導関数f´(p)=rの2乗等を意味するものではない。
【0028】
上記(式d1)〜(式d5)を用いて関数fを表現すると、
f(x,p,h,rr) =-{(h-rr)/p2 }x2 +{(2h-rr)/p}x (式e1)
h>rr≧p (式e2)
なる関数形(式e1)および条件式(式e2)を得る。
【0029】
この解を満たす全ての(p,h,rr)の組み合わせ(整数格子点の組)が有効関数形である。(式e2)(式d4)(|関数の傾き|≧1)により、p、hの取り得る範囲を示すと図7の網かけ表示の部分となる。
【0030】
上記に対応した右側関数は、左側関数と幾何学的に線対称を成すという理由によって
x=2k+1 −x (式f)
の変換後、f(0)=0 となる左側関数形と同様に扱える。
【0031】
ここに、左側関数と右側関数は、共にパラメータpは共通であるが、h,rrはそれぞれ左側(h1,rr1)、右側(h2,rr2)のように個別の値を採っても構わない。従って、以上をまとめて、関数形は以下の(式g)により表されるf(x,p,h1,rrl、h2,rr2)のように整理することができる。
(x<pの場合:左側関数)
f(x,p,h1,rr1,h2,rr2)=-{(h1-rr1 )/p2 }x2 +{(2h1-rr1)/p}x
(x>pの場合:右側関数)
x= xk+1 -1
f(x,p,h1,rr1,h2,rr2)=-{(h2-rr2 )/p2 }x2 +{(2h2-rr2)/p}x
ただし写像範囲は (0<x <2(k+1) ) 以上(式g)
【0032】
[設計関数例の評価]
ここで(式g)に係る整数演算型設計関数について考察を与える。分岐図(bifuration Diagram) 、およびリアプノフ指数(Lyapunov Index) より、ロジスティック写像関数との比較を試みる。整数演算化設計を行った(式g)において、写像範囲は16-bit:1〜65535の場合について考える。関数形は、(式g)が特に単純形式を取る場合を考察する。つまり、左右関数の分離点を写像範囲の中心(p=215)に置き、関数の左右で、h,rrを同値にした場合(h1=h2,rr=rr2)のhに対する分岐図を図8に示す。rrは、r=3/2*215に固定した。
【0033】
図9には、図8に対応した整数演算型ロジスティック写像の分岐図を示す。整数演算型設計関数のrrに対する分岐図(h=216に固定)を図10に示す。範囲は、(式e2)を考慮に入れ、215<rr<(3/2)*215としてある。分岐図の横軸は、本設計関数では可変パラメータh(図8)およびr(図10)であり、図9のロジスティック関数では(式a)の係数aを意味し、複数点プロットされ黒く表されている個所がカオス領域を示す。図8、図9を参照することにより、本整数演算化設計関数はロジスティック写像関数と比較し、カオス領域が広くなっており、周期窓の存在も見られないことが判る。よって、本整数演算化設計関数においては、可変化パラメータの再配置がより容易である。従って命題(A−2)を満たしていることが理解できる。
【0034】
次にリアプノフ指数について考える。本整数演算型設計関数(式g)のリアプノフ指数は図11に示される通りであり、これに対応する整数演算型ロジスティック写像関数でのリアプノフ指数は図12に示される通りである。これら、図11、図12のリアプノフ指数グラフは、分岐図と同じ範囲について算出し、示してある。
【0035】
リアプノフ指数は、近接する2点間の広がり具合(発散関係または収束関係)を示したもので、分岐図と同様にカオス状態を裏付ける指標である。
f(xn +Δx)−f(xn )=Δxeλ (式h1)
λ=ln|{f(xn +Δx)−f(xn )}/Δx| (式h2)
上記において(式h1)は1回の写像(反復)後に近接する2点、xおよびx+ΔxがΔx−eλ だけ広がったことを意味し、(式h1)を変形した(式h2)におけるλがその広がり具合を表す。
【0036】
λ>0 (2点は広がる関係:発散関係)
λ<0 (2点は狭まる関係:収束関係)
これを十分大きいステップに対し、(式h3)のように相加平均を取った値がリアプノフ指数であり、図11、図12のグラフのようになる。
【0037】
上記図8、図9、図10の分岐図、及び図11、図12のリアプノフ指数グラフより、分岐図でのカオス領域ではリアプノフ指数は正であり、非カオス領域では負となる様子がわかる。図11と図12より、本設計関数は写像範囲内で常に正となる。これは、初期の隣接2点は必ず広がっていく(発散する)ことを意味し、カオスの特徴を裏付ける重要な指標である。これより、隣接軌道は常に発散関係を維持するため、命題(A−1)を満たしていることが理解できる。更に、上記分岐図とリアプノフ指数より、本設計関数は、ロジスティック写像関数に比べカオス領域は非常に広く、整数演算化(少数状態数)には特に貴重なパターン数の確保が可能となることが理解できる。この点は命題(A−3)を満たしていることを示す。
【0038】
[設計関数例の状態数]
次に本関数の状態数(関数形の数)を見積もることにする。特に、ここでは簡単のため、それぞれ、p,h,rrの条件を与える(式e2)を以下のように割り振って考えることにする。
特にΔw=2k /5とした場合
2k −1×Δw<p<2k +1×Δw (幅2×Δw) (式i1)
2k +1×Δw<rr≦2k +3×Δw (幅2×Δw) (式i2)
2k +3×Δw<h≦2k +5×Δw (幅2×Δw) (式i3)
とし、(式g)にて表される関数のパラメータ(p,h1,rr1,h2,rr2) が取り得る状態数L(関数形の総数)は、最大で
L=(2×Δw)5 (式i4)
である。
特に32-bit演算では、k=15 の場合に相当し、写像範囲は0<x<2k+1 、従って写像範囲が0<x<216の場合には、
L=(2×215) /5)5 >>(213)5 =265[個] (式j1)
におよぶ。
【0039】
鍵より213の生成が困難な場合において、212( =28+4 )に範囲を制限した場合にあっても、
L=(212)5 =260[個] (式j2)
におよぶ。
【0040】
(式j1)、(式j2)は、本整数演算型の設計関数の総数(状態総数)である。暗号生成の過程における時間方向には、これら設計関数の組み合わせパターンは無限であり、これら設計関数というリソースを効率よく再配置(Re-Allocation )していけば常に適切な暗号化を図ることができる。また、鍵より(式j1)による数の設計関数を算出することが困難な場合には、(式j2)のように設計関数の算出が容易な範囲内に制限しても同様の効果を得ることができる。
【0041】
[設計関数例での可変化原理]
整数演算型で[カオス暗号原理]をそのまま適用した場合には、少数パターン化、早期周期化を招くことは既に述べた通りである。従って、(式g)に示されるような隣接軌道が縮退を起こさない設計関数と、(式i1)〜(式i3)に示される条件に従って、ある時間間隔で写像関数を変化させ積極的に軌道を交叉し撹乱させる手法が[本発明の原理]と言える。これら関数の可変パターンは鍵より求める。
【0042】
本整数演算型の設計関数の遷移は、(式g)により与えられる設計関数についてパラメータ(p,h1,rr1,h2,rr2) の組を変位することにより実現される。ここにそれぞれの可変範囲は(式i1)〜(式i3)に示される通りである。特にステップ毎に関数形を変化させる場合、nステツプ目の関数は
f(xn,p[n],h1[n],rr1[n],h2[n],rr2[n] )と表され、(式g)より、
(x<pの場合:左側関数)
xn+1=-{(h1[n]-rr1[n])/p[n] 2 } xn2 +{(2h1[n]-rr1[n])/p}xn
(x>pの場合:右側関数)
xn=p−xn の変換後
xn+1=-{(h2[n]-rr2[n])/p[n] 2 } xn2 +{(2h2[n]-rr2[n])/p}xn
以上(式k)
と表せられる。
【0043】
特に,nステップ目の関数パラメータを
(p[n],h1[n],rr1[n],h2[n],rr2[n])ΞA[n] (式l)
のようにベクトル表記すると、写像関数は
xn+1 =f(xn ,A[n]) (式m)
のように整理される。
【0044】
関数可変化は、ステップ毎(またはある時間間隔)で写像関数を以下の(式n)のように変化させる。
A[1],A[2],...,A[n]...A[m] (式n)
上記において、A[i]Ξ(p[i],h1[i],rr1[i],h2[i],rr2[i]))であり、ここではA[ ]のm変調を考えている。そして,A[ ]の可変パターンA[i] (i=1 〜m)を鍵より導く。
【0045】
本実施の形態では1ステップで、1byte 毎の平文を暗号化する。平文は通常においてA[ ]の最大周期mよりも多いバイト数を有するであろう。従って、関数可変化パターンAが最大のmに達したとき、A[i](i= 1〜m)の基本変調形を保持しつつ、A[i]+δAの変化を与えて単一パターンに陥らないよう対策を施すものである。つまり、
A[i]=A[i] +δA(i:1 〜m:A の1周期以降) (式o)
ここに、δA Ξ (δp,δh1, δrr1,δh2, δrr2)である。このようにA に対する変化の与え方は、単純に線形的に変化させても良い。その理由は、写像関数形の微妙な変位はカオス初期条件敏感性に相当するからである。
【0046】
また,A[i]の採り得る状態総数値を超えた場合を考えて、A[i]を以下のようにする。
上記(式o´)において、AMaxは、A[ ]の取りうる状態総数値を示す。このようにA[i]与え、δA を例えば素数値、かつ、AMax値(A[ ]の取りうる状態総数値)の因数でない値を与えることで、A[ ]の全ての状態値を効率よく走査できる。上記において、fmod(A,B) は、AをBで割った余りを意味する関数で、例えば、fmod(8,3)=2, fmod(13,6)=1 である。
【0047】
次に上記の原理に基づく暗号生成装置、暗号生成プログラムを使用する電子機器の実施の形態を説明する。この暗号生成装置、暗号生成プログラムを使用する電子機器は、例えば、パーソナルコンピュータ、ワークステーション等の各種電子計算機やLSI或いはネットワークによるシステムなどとして実現され、図1に示される機能ブロック図にて表すことができる。
【0048】
暗号生成装置または暗号生成プログラムを使用する電子機器は、カオスノイズ発生手段1、暗号生成手段2、次関数決定手段3を具備する。カオスノイズ発生手段1は、カオスノイズを発生する写像関数を用いて暗号化の鍵データに基づきカオスノイズを発生するものであり、鍵発生部11、初期関数生成部12、カオスノイズ発生部13を備える。暗号生成手段2は、平文情報を所定の長さに分割した分割平文情報に対し、カオスノイズ発生手段1により発生されたカオスノイズを適用する演算を行って暗号を生成するものであり、平文分割部21と暗号文生成部22とを具備する。次関数決定手段3は、分割平文情報に適用するカオスノイズを発生する写像関数を第1の周期毎に変更するものであり、周期検出部31と関数変更制御部32とを具備する。
【0049】
鍵発生部11は、鍵発生指示入力を受けて鍵情報を発生するものである。初期関数生成部12は、鍵発生部11により発生された鍵情報を用いて(式g)に係る関数の初期関数を生成してカオスノイズ発生部13へ送るものである。カオスノイズ発生部13は、上記初期関数を用いてカオスノイズを発生して出力するものである。
【0050】
平文分割部21は、平文(暗号化される以前の文)データを入力し1バイト単位に分割して出力する。暗号文生成部22は、分割された平文を平文分割部21から得ると共に、カオスノイズをカオスノイズ発生部13から受け取り、これらを演算により暗号化して出力する。
【0051】
周期検出部31は、A[i]のm変調分の周期を検出するものであり、関数変更制御部32は、周期検出部31がm変調分の周期を検出する毎に(式o´)による処理によりA[i]に変更を加えて写像関数自体を変更し、カオスノイズ発生部13へ提供するものである。カオスノイズ発生部13は、次の1サイクルについて変更された写像関数を用いてカオスノイズを発生することになる。
【0052】
以上のように構成される暗号生成装置、暗号生成プログラムを使用する電子機器は、実際には図2に示されているフローチャートに対応するプログラムにより動作するので、このフローチャートを用いて動作を説明する。尚、このプログラムは、ROM等のメモリ、CD−ROMやフロッピーディスク、その他の記憶媒体に記憶されてプロセッサに供される。
【0053】
さて、図2の処理が起動されると、鍵よりxの初期値及びA[i]の初期関数パターンを決定する(S1)。例えば、xが採り得る全ての値とA[i]が採り得る全てのパラメータを組み合わせて初期値候補(M個の候補)を用意する。一方、0〜9の数字、大小の英字、#,+,=等の記号により64キャラクタを定めて、この64キャラクタをいくつか組み合わせてMパターンのキャラクタ組み合わせを作り、Mパターンのキャラクタ組み合わせのいずれかと上記M個の候補のいずれかとを1対1に対応させたメモリテーブルを用意し、鍵発生部11とする。暗号作成に当たり、オペレータが64キャラクタのいくつかのキャラクタを選択入力すると、鍵発生部11はこれを受けて上記メモリテーブルから対応する1つの初期値候補を出力する。
【0054】
次に、iを1とすると共にxを初期値とし(式g)に適用して初期関数を生成する(S2)。さらに、平文の1バイトを読み込みレジスタcへセットし(S3)、ステップS2にて生成した(式g)の初期関数を用いてカオスノイズ値Xの算出を行い(S4)、算出したカオスノイズ値Xの下位1バイトを得て情報落ち1バイトノイズ(xadd)を生成する(S5)。このステップS5における演算をxadd=fred(x)と表記している。
【0055】
次に、レジスタcにセットした平文の1バイトと、情報落ち1バイトノイズ(xadd)との排他的論理和演算を行って1バイトの暗号文を生成する(S6)。更に、A[i]におけるiがA[i]の周期mより小さいかを検出し(S7)、小さい場合には、iを1インクリメントして写像関数を変調し(S8)、暗号化すべき平文が終了したか否かを検出する(S9)。ここで未終了であることが検出されると、ステップS3へ戻って平文の次の1バイトを読み出してレジスタcへセットし、以下ステップS4〜S9を繰り返す。このように動作を継続するうちに、A[i]におけるiがA[i]の周期m以上となり、ステップS7においてNOへ分岐して、(式o´)であるA[i]=g(A[i])より、次の関数パターンを生成する(S10)。そして、iを1として(S11)、ステップS9へ進み以降の動作を続けることにより平文の全てを暗号化してステップS9にてYESへ分岐して処理を終了する。
【0056】
以上のようにして作成された暗号文は受側において復号され元の平文へ戻される。この復号装置の構成例を図13に示す。図1と同一構成要素には同一符号を付して示すように、暗号生成装置に用いられたと同一構成のカオスノイズ発生手段1、次関数決定手段2が用いられる。復号化装置においては、復号化手段4が備えられる。
【0057】
復号化手段4は、暗号文分割部41と復号部42とを具備する。暗号文分割部41は暗号化された暗号文データを入力し1バイト単位に分割して出力する。復号部42は、分割された暗号文を暗号文分割部41から得ると共に、カオスノイズをカオスノイズ発生部13から受け取り、これらを演算して暗号文を復号化して出力する。
【0058】
以上のように構成される暗号文の復号装置は、実際には図14に示されているフローチャートに対応するプログラムにより動作するので、このフローチャートを用いて動作を説明する。尚、このプログラムは、ROM等のメモリ、CD−ROMやフロッピーディスク、その他の記憶媒体に記憶されてプロセッサに供される。
【0059】
図14の処理が起動されると、鍵よりxの初期値及びA[i]の初期関数パターンを決定する(S21)。この場合、鍵は暗号化の際の鍵が選択される。鍵発生の構成は暗号生成装置等の構成と同様である。次に、iを1とすると共にxを初期値とし(式g)に適用して初期関数を生成する(S22)。さらに、暗号文の1バイトを読み込みレジスタdへセットし(S23)、ステップS22にて生成した(式g)の初期関数を用いてカオスノイズ値Xの算出を行い(S24)、算出したカオスノイズ値Xの下位1バイトを得て情報落ち1バイトノイズ(xadd)を生成する(S25)。
【0060】
次に、レジスタdにセットした暗号文の1バイトと、情報落ち1バイトノイズ(xadd)との排他的論理和演算を行って1バイトの平文を生成する(S26)。更に、A[i]におけるiがA[i]の周期mより小さいかを検出し(S27)、小さい場合には、iを1インクリメントして写像関数を変調し(S28)、復号化すべき暗号文が終了したか否かを検出する(S29)。ここで未終了であることが検出されると、ステップS3へ戻って暗号文の次の1バイトを読み出してレジスタdへセットし、以下ステップS24〜S29を繰り返す。このように動作を継続するうちに、A[i]におけるiがA[i]の周期m以上となり、ステップS27においてNOへ分岐して、(式o´)であるA[i]=g(A[i])より、次の関数パターンを生成する(S30)。そして、iを1として(S31)、ステップS9へ進み以降の動作を続けることにより暗号文の全てを複号化してステップS29にてYESへ分岐して処理を終了する。
【0061】
上記暗号化及び復号化において、(式g)の設計関数式および(式i1)〜(式i3)のパラメータ割り当て条件下において、関数形総数(状態総数)は、k=15 、つまり写像範囲が0<x<216の場合には、(式j1)、(式j2)より、最大でL=265個となる。特に(式j2)の場合には、関数の総数はL=260である。従って、単純に関数可変べクトルA[ ]のm変調では、(260)m の暗号化パターンを有し、m=17変調では1024bit を超える暗号化パターンを有することになる。このように、暗号化と復号化において処理が進行するにつれて所定周期毎にに関数の可変パターンを与える方式では、mを大きく取ることで、原理的に莫大数乃至無限の暗号化パターンを発生できるポテンシャルを有している。実際にはA[ ]のm=9変調で512bit暗号化パターン、m=5変調で256bit暗号化パターンなど、強度を調整し使用する。また、本アルゴリズムの構成上、mの値を多くとっても(鍵長を増加させても)処理の低速化を生じることはない。
【0062】
しかし、同じA[ ]の状態を連続して与えることは、(式a)の係数aを固定する場合と変わらないので、左右の関数を独立した変位方式を与えるなどの対策が必要となる。またδAの与え方にも工夫が必要となる。具体的なパラメータ変動手法を次に示す。
【0063】
[具体事例1]
前述の[設計関数例での可変化原理]に従い、δA の変調方式を与える。以下、例を挙げ説明する。ここでは、A[ ]を1次元パラメータと考え(実際には(式g)より、(p,h1,rr1,h2,rr2 )の5つのパラメータが存在)て、
A[1] =1
A[2] =2
A[3] =3
A[4] =4
のように、16階調、m=4可変周期、とした場合、5番目(i=5)以降8番目(i=8)までを、A[i+4]=A[i]+δA (i=1〜4) とさせる。このとき、δA =1とすると、
A[5] =2
A[6] =3
A[7] =4
A[8] =5
となる。
【0064】
しかし、別途指定のA´[i] 系列のi=1〜4を
A´[1]=2
A´[2]=3
A´[3]=4
A´[4]=5
とした場合には、上記A[5〜8] と、A´ [1〜4] が一致することになる。このように例え一致しても、(式g)におけるxの値が異なれば別の軌道をたどることになるのであるが、写像範囲1/2k+1 の確率で軌道が一致する。更には、δA=δA´の条件が重なった場合、A[i]軌道とA´[i] 軌道は全く同軌道を歩むことになり、独立性を保てなくなる。
【0065】
そこで,新たにδA を次に示す(式p)により与え、A[i]の初期のパターンA0[i] に依存させる。
δA[i]ΞA0[i](i=1 〜m ) (A0[i] は初期の変位←鍵より求める)
以上(式p)
上記において、 fmod は既に説明した関数である。これより初期のA[i]パターンのオリジナリティーを保ちつつ変形できる。
【0066】
つまり、A[i]、A´[i] は以下のように変位し、しだいに離れていく。
A[i]:1234 2468 369c ・・・
これは、δA[i]が1234であることによっている。
A´[i]:2468 48a0 ・・・・
これはδA´[i] が2468であることによっている。
【0067】
しかし,δA が 1,3,5など,状態総数 (ここでは16) の因数でない場合、最大の16の周期をもつが、例えばδA が16の因数である2、4、8を指定した場合には、
2→4→ 6→ 8→a→ c→ e→ 0→ 2 (8の周期)
4→ 8→ c→ 0→4 (4の周期)
8→ 0→ 8 (2の周期)
のように、早いうちに元に戻り、周期にムラが生じる。
【0068】
従って、(式g)により示される設計関数(式g)の状態総数(関数形の総数)には素数値を与えることとする。つまり、(式g)により示される設計関数(式g)の状態総数(関数形の総数)の最大値を全て鍵として割り当てずに、(式j2)に示されるようにパラメータ配置範囲に余裕を持たせておき、例えば、変調数mが16より上の素数を用い、関数の最大可変周期を変調数mが17である場合とする。尚、この拡張領域は、直接鍵で指定することは不可能とする。
【0069】
従って、
要請:パラメータの状態総数は素数を起用 (文q)
という要請を満たすように(式g)により示される設計関数の状態総数(関数形の総数)を採用する。斯して、素数はそれ以下の数に因数をもたないために、全てのA[i]が16の周期をもつこととなる。図15に、A[1]とδA[i]による上記の例を示した。このように、関数の可変手法は(式p)に示した如く極めて単純である。これは、カオスのパラメータ及び初期値の推定困難性という初期条件敏感性を利用した結果である。つまり、カオスによれば、単純な関数を可変する手法を推測することが困難となるのである。これにより最小限の計算ステップの増加で処理が可能となる利点を有する。
【0070】
これよりベクトルA に関する16階調、つまり全て16の周期(17番目は使わない)を持つベクトルA を得ることができ、効率よくパラメータ配置範囲内を走査できるようになる。上記では例として1次元パラメータで考えたが、実際に(式g)では可変パラメータは(p,h1,rr1,h2,rr2という) 5つが存在する。従って個々のパラメータについて上記をあてはめる。
【0071】
より具体的には、(式i1)〜(式i4)より、2×Δw=212程度としたとき、パラメータ(p,h1,rr1,h2,rr2) のそれぞれ個々の状態総数は2×Δw=212個ということである。212=4096以上の素数は順に4099,4111,4127,4129,4133であり、上述(文q)に示された「パラメータ状態総数は素数であること」という要請に従って、上記各パラメータを
p Max =4099
h1 Max =4111
rr1 Max =4127
h2 Max=4129
rr2 Max=4133
以上 (式r)
のように確保する。
【0072】
これら組み合わせより、初期変調(鍵)のオリジナリティーを保ちつつ莫大周期の乱数列を確保できる。(式r)の場合には、概算でp Max ×h1 Max × rr1 Max ×h2 Max ×rr2 Max ×mが1.18E+18という長周期を確保できることになる。
【0073】
ところで、32−bit 演算の場合には、写像関数はステップ毎に16-bitのカオス乱数(ノイズ)xを生成する。
xadd=fred(x) =x & 255 (& はビットごとのAND 演算) (式s)
d= c(XOR)xadd (c:平文,d:暗号文) (式t)
のように下位8-bit(1byte)を抽出し、平文1byteとXOR (排他的論理和)を取り暗号文とする。暗号ノイズxaddは,元のカオス信号から上位8-bit の情報が落ちているため、平文、暗号文のペアからでも,正しいカオス信号は得られない。
【0074】
上記の [具体事例1] において説明した処理を盛り込んで、図2に示した暗号化のフローチャート及び図14に示した復号化のフローチャートを変更すると、それぞれ図16と図17に示されるようになる。図2、図14と異なる部分を説明する。まず、ステップS1−A(S21−A)では、鍵よりxの初期値及びA[i]の初期関数パターンを決定するのであるが、ここで決定した初期関数パターンの各パラメータの値を、後のステップS10−A(S30−A)におけるfmodによる計算のために、p[i],h1[i],rr1[i],h2[i],rr2[i]として保持する。
【0075】
次に、ステップS2−A(S22−A)では、iを1としxを初期値とし(式g)に適用して初期関数を生成し、後のステップS10−A(S30−A)におけるfmodによる計算のために、上記ステップS1−A(S21−A)で求めたパラメータ値p[i],h1[i],rr1[i],h2[i],rr2[i]を、δp[i], δh1[i],δrr1[i], δh2[i],δrr2[i]として保持する。
【0076】
そして、次の関数パターン生成するステップS10−A(S30−A)においては、各パラメータ状態数を素数として(式r)に示されるように確保し、(式p)による計算を行ってパラメータを得て、これを用いて次の関数パターンを生成する。
【0077】
[具体事例2]
この具体事例2では、左右の関数可変化方式に、それぞれ独立した可変方式を与える。左側関数については[具体事例1]と同様に与える。一方、右側は左側と関連性なしにステップ毎に一様なδright の変位を与える。従って、(式g)、(式k)のパラメータ(p,h1,rr1,h2,rr2) を次に示すように左右側の関数で分ける。
左側関数:f left(x,p,h1[ ],rr1[ ])=f left(x,A[ ]),また、
A[ ]=(p,h1[ ],rr1[ ]) ←鍵より求める。
右側関数:f right(x,p,h2,rr2)= f right(x,B), また、
B=(p,h2,rr2)←左側とは独立。
係る手法によって左側関数の初期パターンA[i]のi(1〜m )に全て同じ値が入った場合、つまり、鍵で同じ値を指定された場合にあっても、単調化、または、不意の周期点発生等を避け、積極的に軌道を交叉、撹乱させる効果がある。
【0078】
右側関数のδright=δB の与え方としては、素数かつ右側の各パラメータ状態総数の因数でない値を与えることとする。これより右側関数の取りうる関数変調領域全体を効率的に走査できる。
【0079】
[具体事例2]での関数設計例を以下に示す。
<1>(式g)におけるパラメータ(p,h1[ ],rr1[ ],h2,rr2[ ])
p=215固定
h1[ ],rr1[ ](左側関数パラメータ:初期変調)←鍵より指定
h2,rr2(右側関数パラメータ)←左側とは独立
<2>関数の状態総数Δw/2=4096(12-bit)を想定
h1 max=4099(素数) 範囲:32768+32768*3/5〜上の4099個分
rr1 max=4111(素数) 範囲:32768+32768*1/5〜上の4111個分
h2 max=8192(左側とは独立) 範囲:32768+32768*3/5〜上の8192個分
rr2 max=8192(左側とは独立) 範囲:32768+32768*1/5〜上の8192個分
<3>左側関数パラメータA[ ]は11変調周期とし、各初期変位を次の通りにする。
h1[i](i=1 〜11)δh1[i]=h10 [i] (初期のh1の意味)
rr1[i](i=1〜11) δrr1[i]=rr10 [i] (初期のrr1 の意味)
<4>右側関数パラメータB[ ]は、ここでは、h2=h1[1],rr2=rr1[1] とし、δh2=17 (素数),δrr2=19(素数)とした。
【0080】
以上のように設計した場合における暗号化ノイズ((式s)、(式t)におけるxadd)のデータを図18、図19に示す。両者は、鍵値(初期変位パターン)を1だけずらした場合(h1[10]成分のみ、わずかに1だけずらしたものを使用した場合)の例である。
【0081】
次に、上記[具体事例2]における関数設計例の評価を行う。上記[具体事例2]での関数設計例の場合、h1 max=4099、rr1 max=4111、初期の変調:11変調/周期より、
(4099×4111) 11>>(4096×4096) 11=(212×212)11=2264 (式u)
なので、256-bit 以上の暗号化パターンをもつ。また、最低限保証できる乱数周期は、
4099×4111×10=168,509,890= 約160MByteである。 (式v)
ここでは、(式g)中の2つのパラメータ(h1[ ],rr1[ ])を用いたが、更にpを可変することが可能である。
【0082】
pを可変する場合には、
(p Max ×h1 Max ×rr1 Max )m の暗号化パターン (式w)
および
p Max ×h1 Max ×rr1 Max ×m の乱数周期 (式x)
をもつ。
【0083】
具体的には、
p Max =4099(>212)
h1 Max =4111(>212)
rr1 Max =4127(>212)
m=10変調周期
の場合、
(式w)の(p Max ×h1 Max ×rr1 Max )m が(236)10となることから、360-bit を超える暗号化パターンとなる。
また、(式x)の p Max ×h1 Max ×rr1 Max ×m が640.0×109 となるから、約640GByteの乱数周期となる。
【0084】
そして、m=29変調周期で1024-bitを超える暗号化パターン、m=114変調周期で4096-bitを超える暗号化パターンとなり、本方式は初期の大きな変調パターンmを与えることで、暗号化を進める場合に莫大な暗号化パターンを発生できるポテンシャルを持つと共に、パラメータの最大変動範囲(関数状態総数)内を効率よく変化させることで、同時に長周期化を図り得る構成を有している。また、本アルゴリズムの構成上、mの値を多くとっても(鍵長を増加させても)処理の低速化を生じることはない。
【0085】
[具体事例2]による暗号化のフローチャートを図20に示し、復号化のフローチャートを図21に示した。ここでは簡略表記のため、左側関数について具体事例1と同様に5つのパラメータをA[ ]とべクトル表記した。また、右側関数のパラメータをBとべクトル表記した。左右関数とも、(式g)及び(式k)に基づいている。
【0086】
さて、図20の処理が起動されると、鍵よりxの初期値及びA[i]の初期関数パターンを決定する(S41)。ここで[具体事例2]についての鍵設計例を示す。
[具体事例2]の設計例において(式g)の写像関数形は、
f(x,p,h1[ ],rr1[ ], h2,rr2)であり、鍵は
xの初期値 (12-bit段階(4096))
h1[ ] 初期可変パターン (12-bit段階)
rr1[ ]初期可変パターン (12-bit段階)
を与える。ここで(文q)の条件より、h1[ ] は4099個、rr1[ ]は4111個の関数形をもつが、鍵で指定できる最大値は12-bit(4096個)である。
例えば、n変調周期を考える場合、
x,h1[1],rr1[1],h1[2],rr2[2],...,h1[n],rr1[n] (式y)
例示すると、3914,1021,534,1313,3127,...,4001,2731 の如き順に12-bit段階の数値を入れていく。これを例えば0〜9、a〜z、A〜Z、/、+の64段階からなる文字列より鍵を構成し、(式y)のような初期値/可変パターンへの数値変換操作を行う。その際に、既に説明した別途用意されたメモリテーブルからテーブル変換を行うとよい。
【0087】
次に、図20の処理においては、iを1とすると共にxを初期値とし(式g)に適用して初期関数を生成すると共に、δA[i]と右側関数のためBを用意する(S42)。さらに、平文の1バイトを読み込みレジスタcへセットし(S43)、xの範囲が215より小さいか否かを検出し(S44)、xの範囲が215より小さい場合には、ステップS42にて生成した(式g)の初期関数の内の左関数を用いてカオスノイズ値xの算出を行い(S45)、更に、A[i]におけるiがA[i]の周期mより小さいかを検出し(S46)、小さい場合には、iを1インクリメントして写像関数を変調し(S47)、算出したカオスノイズ値xの下位1バイトを得て情報落ち1バイトノイズ(xadd)を生成する(S48)。
【0088】
次に、レジスタcにセットした平文の1バイトと、情報落ち1バイトノイズ(xadd)との排他的論理和演算を行って1バイトの暗号文を生成する(S49)。更に、暗号化すべき平文が終了したか否かを検出する(S50)。ここで未終了であることが検出されると、ステップS43へ戻って平文の次の1バイトを読み出してレジスタcへセットし、以下ステップS44〜S50を繰り返す。このように動作を継続するうちに、A[i]におけるiがA[i]の周期m以上となり、ステップS46においてNOへ分岐して、(式o´)であるA[i]=g(A[i])より、次の関数パターンを生成する(S51)。そして、iを1として(S52)、ステップS48へ進み以降の動作を続ける。
【0089】
また、上記ステップS44においてxの範囲が215以上であることが検出された場合には、ステップS42にて生成した(式g)の初期関数の内の右側関数を用いてカオスノイズ値xの算出を行い(S53)、BにδB(既述のδright)の変位を与えて(S54)ステップS48へ進む。このような処理を継続することにより平文の全てを暗号化してステップS50にてYESへ分岐して処理を終了する。
【0090】
また、図21に示す復号化の処理が起動されると、鍵よりxの初期値及びA[i]の初期関数パターンを決定する(S61)。この場合、鍵は暗号化の際の鍵が選択される。鍵発生の構成は図20のステップS41にて説明の構成と同様である。次に、iを1とすると共にxを初期値とし(式g)に適用して初期関数を生成すると共に、δA[i]と右側関数のためBを用意する(S62)。さらに、暗号文の1バイトを読み込みレジスタdへセットし(S63)、xの範囲が215より小さいか否かを検出し(S64)、xの範囲が215より小さい場合には、ステップS62にて生成した(式g)の初期関数の内の左側関数を用いてカオスノイズ値xの算出を行い(S65)、更に、A[i]におけるiがA[i]の周期mより小さいかを検出し(S66)、小さい場合には、iを1インクリメントして写像関数を変調し(S67)、算出したカオスノイズ値xの下位1バイトを得て情報落ち1バイトノイズ(xadd)を生成する(S68)。
【0091】
次に、レジスタdにセットした平文の1バイトと、情報落ち1バイトノイズ(xadd)との排他的論理和演算を行って1バイトの暗号文を復号化する(S69)。更に、復号化すべき暗号文が終了したか否かを検出する(S70)。ここで未終了であることが検出されると、ステップS63へ戻って暗号文の次の1バイトを読み出してレジスタdへセットし、以下ステップS64〜S70を繰り返す。このように動作を継続するうちに、A[i]におけるiがA[i]の周期m以上となり、ステップS66においてNOへ分岐して、(式o´)であるA[i]=g(A[i])より、次の関数パターンを生成する(S71)。そして、iを1として(S72)、ステップS48へ進み以降の動作を続ける。
【0092】
また、上記ステップS64においてxの範囲が215以上であることが検出された場合には、ステップS62にて生成した(式g)の初期関数の内の右側関数を用いてカオスノイズ値xの算出を行い(S73)、BにδB(既述のδright)の変位を与えて(S74)ステップS48へ進む。このような処理を継続することにより暗号文の全てを復号化してステップS70にてYESへ分岐して処理を終了する。
【0093】
【発明の効果】
以上説明した通り本発明によれば、発生されるカオスノイズのパターンに周期性が表れにくく、また、隣接軌道が縮退を起こすことのない関数を設計することにより、連続的なカオス領域が確保でき写像関数の周期毎の変更が可能となり、適切な暗号化を行うことができる。
【0094】
また、本発明によれば一次微分値が1以上である関数を写像関数として用いるので、隣接軌道が縮退を起こさない写像関数によりカオスノイズが得られ、適切な暗号化を行うことができる。
【図面の簡単な説明】
【図1】本発明に係る暗号生成装置のブロック図。
【図2】本発明に係る暗号生成装置が採用する基本アルゴリズムを示すフローチャート。
【図3】カオスの初期条件敏感性を説明するための図であり、初期のごく微少のずれから出発した2つの軌道差を示した図。
【図4】ロジスティック写像の反復の幾何学的構造を説明するための図。
【図5】ロジスティック写像の隣接軌道縮退領域を示す図。
【図6】隣接軌道が縮退を起こさないような写像関数の例を示した図。
【図7】本発明による設計関数例における整数演算型関数での(p,h)の取りうる範囲を示す図。
【図8】関数設計例における整数演算型関数での分岐図。
【図9】ロジスティック写像関数(整数演算)の分岐図。
【図10】関数設計例における整数演算型関数でのrr分岐図。
【図11】関数設計例における整数演算型関数のリアプノフ指数を示す図。
【図12】ロジスティック写像関数(整数演算)のリアプノフ指数を示す図。
【図13】本発明に係る暗号文の復号装置のブロック図。
【図14】本発明に係る復号装置の基本アルゴリズムを示すフローチャート。
【図15】本発明の暗号生成装置において用いられる関数のパラメータの状態数の時間遷移を示す図。
【図16】具体事例1における暗号化のフローチャート。
【図17】具体事例1における復号化のフローチャート。
【図18】具体事例2の暗号化ノイズ発生例Aを示す図。
【図19】具体事例2の暗号化ノイズ発生例Bを示す図。
【図20】具体事例2における暗号化のフローチャート。
【図21】具体事例2における復号化のフローチャート。
【符号の説明】
1 カオスノイズ発生手段 2 暗号生成手段
3 次関数決定手段 4 復号手段
11 鍵発生部 12 初期関数生成部
13 カオスノイズ生成部 21 平文分割部
22 暗号文生成部 31 同期検出部
32 関数変更制御部 41 暗号分割部
42 復号部
Claims (19)
- 前回のカオスノイズと関数パターンの値とに対し写像関数を適用してカオスノイズを発生し、発生毎に前記関数パターンの変数を歩進するステップを繰り返すカオスノイズ発生手段と、
平文情報を所定の長さに分割した分割平文情報に対し、前記カオスノイズ発生手段により各ステップで発生されたカオスノイズを適用する演算を行って暗号を生成する暗号生成手段と、
初期状態において暗号化の鍵データに基づき前記写像関数に対し当初に適用するカオスノイズ初期値及び初期関数パターンを決定し、当該カオスノイズ初期値及び初期関数パターンを前記カオスノイズ発生手段に与えてカオスノイズ発生を行わせる初期関数生成手段と、
前記カオスノイズ発生手段によるカオスノイズ発生のステップ数をカウントし、カウントしたステップ数がそのとき使用している関数パターンの1周期となったかを検出し、1周期を検出する毎に当該関数パターンに基づき新たな写像関数を発生し、前記カオスノイズ発生手段に与えて次のカオスノイズ発生を行わせる次関数決定手段と
を具備したことを特徴とする暗号生成装置。 - 前記次関数決定手段は、カオスノイズ発生手段により発生されたカオスノイズが所定値より大きいか否かを検出し、カオスノイズが所定値以下であるときには、当初の写像関数によるカオスノイズの発生を行い、カオスノイズが所定値より大きい場合には、その写像関数を別の写像関数に変更することを特徴とする請求項1に記載の暗号生成装置。
- 初期関数生成手段は、複数の関数パターンと複数の初期値を予め用意し、暗号化を開始するに際して鍵データによって前記複数の関数パターンと複数の初期値の中から関数パターンと初期値を選択することを特徴とする請求項1または請求項2に記載の暗号生成装置。
- カオスノイズ発生手段は、写像関数を用いた整数演算によりカオスノイズを得ることを特徴とする請求項1乃至3のいずれか1項に記載の暗号生成装置。
- カオスノイズ発生手段は、一次微分値が1以上である関数を写像関数として用いることを特徴とする請求項1乃至4のいずれか1項に記載の暗号生成装置。
- プログラムを実行することにより暗号生成を行うコンピュータと、前記コンピュータを次の(a)〜(d)に記載の各手段として機能させる暗号生成プログラムを記憶した記憶媒体と、を具備する電子機器。
(a)前回のカオスノイズと関数パターンの値とに対し写像関数を適用してカオスノイズを発生し、発生毎に前記関数パターンの変数を歩進するステップを繰り返すカオスノイズ発生手段、
(b)平文情報を所定の長さに分割した分割平文情報に対し、前記カオスノイズ発生手段により各ステップで発生されたカオスノイズを適用する演算を行って暗号を生成する暗号生成手段、
(c)初期状態において暗号化の鍵データに基づき前記写像関数に対し当初に適用するカオスノイズ初期値及び初期関数パターンを決定し、当該カオスノイズ初期値及び初期関数パターンを前記カオスノイズ発生手段に与えてカオスノイズ発生を行わせる初期関数生成手段、
(d)前記カオスノイズ発生手段によるカオスノイズ発生のステップ数をカウントし、カウントしたステップ数がそのとき使用している関数パターンの1周期となったかを検出し、1周期を検出する毎に当該関数パターンに基づき新たな写像関数を発生し、前記カオスノイズ発生手段に与えて次のカオスノイズ発生を行わせる次関数決定手段。 - 前記次関数決定手段は、カオスノイズ発生手段により発生されたカオスノイズが所定値より大きいか否かを検出し、カオスノイズが所定値以下であるときには、当初の写像関数によるカオスノイズの発生を行い、カオスノイズが所定値より大きい場合には、その写像関数を別の写像関数に変更することを特徴とする請求項6に記載の電子機器。
- 初期関数生成手段は、複数の関数パターンと複数の初期値を予め用意し、暗号化を開始するに際して鍵データによって前記複数の関数パターンと複数の初期値の中から関数パターンと初期値を選択することを特徴とする請求項6または請求項7に記載の電子機器。
- カオスノイズ発生手段は、写像関数を用いた整数演算によりカオスノイズを得ることを特徴とする請求項6乃至8のいずれか1項に記載の電子機器。
- カオスノイズ発生手段は、一次微分値が1以上である関数を写像関数として用いることを特徴とする請求項6乃至9のいずれか1項に記載の電子機器。
- プログラムを実行することにより暗号生成を行うコンピュータを、次の(a)〜(d)に記載の各手段として機能させる暗号生成プログラムを記憶した記憶媒体。
(a)前回のカオスノイズと関数パターンの値とに対し写像関数を適用してカオスノイズを発生し、発生毎に前記関数パターンの変数を歩進するステップを繰り返すカオスノイズ発生手段、
(b)平文情報を所定の長さに分割した分割平文情報に対し、前記カオスノイズ発生手段により各ステップで発生されたカオスノイズを適用する演算を行って暗号を生成する暗号生成手段、
(c)初期状態において暗号化の鍵データに基づき前記写像関数に対し当初に適用するカオスノイズ初期値及び初期関数パターンを決定し、当該カオスノイズ初期値及び初期関数パターンを前記カオスノイズ発生手段に与えてカオスノイズ発生を行わせる初期関数生成手段、
(d)前記カオスノイズ発生手段によるカオスノイズ発生のステップ数をカウントし、カウントしたステップ数がそのとき使用している関数パターンの1周期となったかを検出し、1周期を検出する毎に当該関数パターンに基づき新たな写像関数を発生し、前記カオスノイズ発生手段に与えて次のカオスノイズ発生を行わせる次関数決定手段。 - 前記次関数決定手段は、カオスノイズ発生手段により発生されたカオスノイズが所定値より大きいか否かを検出し、カオスノイズが所定値以下であるときには、当初の写像関数によるカオスノイズの発生を行い、カオスノイズが所定値より大きい場合には、その写像関数を別の写像関数に変更することを特徴とする請求項11に記載の記憶媒体。
- 初期関数生成手段は、複数の関数パターンと複数の初期値を予め用意し、暗号化を開始するに際して鍵データによって前記複数の関数パターンと複数の初期値の中から関数パターンと初期値を選択することを特徴とする請求項11または請求項12に記載の記憶媒体。
- カオスノイズ発生手段は、写像関数を用いた整数演算によりカオスノイズを得ることを特徴とする請求項11乃至13のいずれか1項に記載の記憶媒体。
- カオスノイズ発生手段は、一次微分値が1以上である関数を写像関数として用いることを特徴とする請求項11乃至14のいずれか1項に記載の記憶媒体。
- 前回のカオスノイズと関数パターンの値とに対し写像関数を適用してカオスノイズを発生し、発生毎に前記関数パターンの変数を歩進するステップを繰り返すカオスノイズ発生手段と、平文情報を所定の長さに分割した分割平文情報に対し、前記カオスノイズ発生手段により各ステップで発生されたカオスノイズを適用する演算を行って暗号を生成する暗号生成手段と、初期状態において暗号化の鍵データに基づき前記写像関数に対し当初に適用するカオスノイズ初期値及び初期関数パターンを決定し、当該カオスノイズ初期値及び初期関数パターンを前記カオスノイズ発生手段に与えてカオスノイズ発生を行わせる初期関数生成手段と、前記カオスノイズ発生手段によるカオスノイズ発生のステップ数をカウントし、カウントしたステップ数がそのとき使用している関数パターンの1周期となったかを検出し、1周期を検出する毎に当該関数パターンに基づき新たな写像関数を発生し、前記カオスノイズ発生手段に与えて次のカオスノイズ発生を行わせる次関数決定手段とを具備する暗号生成装置により生成された暗号文を復号化する暗号文復号装置において、
前回のカオスノイズと関数パターンの値とに対し写像関数を適用してカオスノイズを発生し、発生毎に前記関数パターンの変数を歩進するステップを繰り返すカオスノイズ発生手段と、
暗号文情報を所定の長さに分割した分割暗号文情報に対し、前記カオスノイズ発生手段により各ステップで発生されたカオスノイズを適用する演算を行って暗号を復号する復号手段と、
初期状態において復号化の鍵データに基づき前記写像関数に対し当初に適用するカオスノイズ初期値及び初期関数パターンを決定し、当該カオスノイズ初期値及び初期関数パターンを前記カオスノイズ発生手段に与えてカオスノイズ発生を行わせる初期関数生成手段と、
前記カオスノイズ発生手段によるカオスノイズ発生のステップ数をカウントし、カウントしたステップ数がそのとき使用している関数パターンの1周期となったかを検出し、1周期を検出する毎に当該関数パターンに基づき新たな写像関数を発生し、前記カオスノイズ発生手段に与えて次のカオスノイズ発生を行わせる次関数決定手段と
を具備することを特徴とする暗号文復号装置。 - 前記次関数決定手段は、カオスノイズ発生手段により発生されたカオスノイズが所定値より大きいか否かを検出し、カオスノイズが所定値以下であるときには、当初の写像関数によるカオスノイズの発生を行い、カオスノイズが所定値より大きい場合には、その写像関数を別の写像関数に変更することを特徴とする請求項16に記載の暗号文復号装置。
- 初期関数生成手段は、複数の関数パターンと複数の初期値を予め用意し、暗号化を開始するに際して鍵データによって前記複数の関数パターンと複数の初期値の中から関数パターンと初期値を選択することを特徴とする請求項16または請求項17に記載の暗号文復号装置。
- プログラムを実行することにより暗号文復号を行うコンピュータを、請求項16乃至請求項18のいずれか1項に記載の暗号文復号装置に具備された各手段として機能させる暗号復号プログラムを記憶した記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000101402A JP3953253B2 (ja) | 2000-04-03 | 2000-04-03 | 暗号生成装置、暗号生成プログラムを使用する電子機器、記憶媒体、暗号文復号装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000101402A JP3953253B2 (ja) | 2000-04-03 | 2000-04-03 | 暗号生成装置、暗号生成プログラムを使用する電子機器、記憶媒体、暗号文復号装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004298279A Division JP3966875B2 (ja) | 2004-10-12 | 2004-10-12 | 暗号生成装置、暗号生成プログラムを使用する電子機器、記憶媒体、暗号文復号装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001285277A JP2001285277A (ja) | 2001-10-12 |
JP3953253B2 true JP3953253B2 (ja) | 2007-08-08 |
Family
ID=18615460
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000101402A Expired - Lifetime JP3953253B2 (ja) | 2000-04-03 | 2000-04-03 | 暗号生成装置、暗号生成プログラムを使用する電子機器、記憶媒体、暗号文復号装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3953253B2 (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003152706A (ja) | 2001-11-12 | 2003-05-23 | Toshiba Information Systems (Japan) Corp | 暗号生成装置、暗号復号装置、暗号生成プログラム、暗号復号プログラム、認証システム、電子装置 |
JP5396352B2 (ja) * | 2003-04-15 | 2014-01-22 | エヌ・ティ・ティ・コミュニケーションズ株式会社 | データ原本性確保方法およびシステム、ならびにデータ原本性確保用プログラム |
KR100605481B1 (ko) | 2004-10-22 | 2006-08-09 | 한국과학기술원 | 디지털 카오스 시퀀스 발생기 |
JP4644799B2 (ja) * | 2004-12-28 | 2011-03-02 | 国立大学法人神戸大学 | ブロードキャスト型コンテンツ配信システム、及び同システムに適用されるユーザ鍵管理方法 |
JP4910324B2 (ja) * | 2005-07-21 | 2012-04-04 | ソニー株式会社 | 情報処理装置及び情報処理方法、並びにコンピュータ・プログラム |
JP4896076B2 (ja) * | 2008-05-19 | 2012-03-14 | 東芝情報システム株式会社 | 暗号生成装置、暗号復号装置、暗号生成プログラム、暗号復号プログラム |
JP2009288758A (ja) * | 2008-05-30 | 2009-12-10 | Hironori Wakayama | 使い捨て変数を用い、処理過程における変数を情報理論的に不確定にすることよって暗号化と秘密鍵の秘匿に関し完全秘匿が成立するようにした暗号処理の装置および方法 |
JP7067338B2 (ja) * | 2018-07-25 | 2022-05-16 | 富士通株式会社 | 通信装置、光伝送装置、光伝送方法、および通信システム |
CN112084523A (zh) * | 2020-09-29 | 2020-12-15 | 深圳壹账通智能科技有限公司 | 文本加密方法及装置、终端设备、存储介质 |
-
2000
- 2000-04-03 JP JP2000101402A patent/JP3953253B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2001285277A (ja) | 2001-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2940647A1 (en) | Solving digital logic constraint problems via adiabatic quantum computation | |
JP3953253B2 (ja) | 暗号生成装置、暗号生成プログラムを使用する電子機器、記憶媒体、暗号文復号装置 | |
EP3474134A1 (en) | Generating randomness in neural networks | |
KR20080086476A (ko) | 암호 처리 장치, 및 암호 처리 방법, 및 컴퓨터 프로그램 | |
Farzam et al. | Implementation of supersingular isogeny-based Diffie-Hellman and key encapsulation using an efficient scheduling | |
US20070053506A1 (en) | Elliptic curve encryption processor, processing method of the processor using elliptic curves, and program for causing a computer to execute point scalar multiplication on elliptic curves | |
Song et al. | Grover on SM3 | |
JP3966875B2 (ja) | 暗号生成装置、暗号生成プログラムを使用する電子機器、記憶媒体、暗号文復号装置 | |
Potapov et al. | Vector reachability problem in SL (2, Z) | |
JP3551853B2 (ja) | αYa+βXb+1=0という形の定義方程式をもつ代数曲線暗号における安全なパラメータの生成装置、生成方法、および記録媒体 | |
Bakoev | Fast bitwise implementation of the algebraic normal form transform | |
JP2004530919A5 (ja) | ||
JP4629300B2 (ja) | 暗号学的擬似乱数発生装置及びプログラム | |
May et al. | Signature Algorithms on Non-commutative Algebras Over Finite Fields of Characteristic Two | |
Martins et al. | Arithmetical improvement of the round-off for cryptosystems in high-dimensional lattices | |
Raman | Parallel processing of chaos-based image encryption algorithms | |
CN116415271A (zh) | 数据处理的方法和计算平台 | |
Stehlé | On the randomness of bits generated by sufficiently smooth functions | |
Kiran et al. | A Scalable Approach to Performing Multiplication and Matrix Dot-Products in Unary | |
JP4193176B2 (ja) | 楕円曲線整数倍演算装置、ならびにその装置を利用可能な鍵生成装置、暗号化装置および復号装置 | |
CN117196053A (zh) | 多项式模平方运算器、运算方法及相关装置 | |
Foster | Accelerating homomorphic encryption in the cloud environment through high-level synthesis and reconfigurable resources | |
CN117196052A (zh) | 多项式模乘运算器、运算方法及相关装置 | |
JPS61281334A (ja) | 素数判定器 | |
JP4896076B2 (ja) | 暗号生成装置、暗号復号装置、暗号生成プログラム、暗号復号プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040427 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040628 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20040810 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041012 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20041124 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20050225 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070208 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070424 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 3953253 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100511 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110511 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120511 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120511 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130511 Year of fee payment: 6 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |