























【0001】
【発明の属する技術分野】
本発明は、容易に解読できないストリーム暗号を用いた暗号化方法、暗号化通信方法及び暗号化通信システムに関するものである。
【0002】
【従来の技術】
従来より、単純で高速処理が可能な暗号化方法としてストリーム暗号法が知られていた。
【0003】
ストリーム暗号法とは、ビット列{md}に対して乱数列{Ri}を生成して、Cd=md(xor)Riで暗号文{Cd}を生成する方法である。なお、この明細書中において、以下、dは自然数を意味する記号である。ここで、(xor)は排他的論理和を表す。
【0004】
然しながら、従来のストリーム暗号法は、既知平文攻撃に弱い。既知平文攻撃を回避する方法はいろいろ考案されているが、ストリーム暗号の既知平文攻撃に弱い点は解決されていなかった。
【0005】
更に、疑似乱数を使用してストリーム暗号を作ることが出来るが、安全性が確保できず、やはり既知平文攻撃によって暗号鍵を特定することが容易に出来た。
【0006】
例えば、乱数発生法の一つであるレーマー法(Lehmer法)は、整数(a,b,m)に対して、初期値をr0として乱数を
Rd=(aRd−1+b)(mod m)
で定義し、ストリーム暗号を作ることができた。この場合a,b,mが暗号鍵ということになる。
【0007】
しかし既知平文攻撃によって乱数列{Ri}を容易に特定でき、これを用いて整数a,b,mを確定することは容易であった。
【0008】
このように、特定の疑似乱数生成のアルゴリズムを使用しても、充分多くの暗号化のデータが存在すると未定係数などを確定して暗号鍵が割り出されてしまう。また整数の乗法一回だけでは安全な暗号を構成できていなかった。
【0009】
数年前から、以上のストリーム暗号の欠点に鑑みて カオス暗号と言われるものが登場してきた。このカオス暗号は安全性が高いという特徴を持つ方式であり、実数の初期値x0と実数a,b,cを用いて次数の乱数列{Xd}を次のように生成していた。
【0010】
xd=ax2d−1+bxd−1+c
よく知られているように,数列{xd}は極めて複雑な振る舞い(カオス)をすることが知られている。ここでは、a,b,cなどが暗号鍵と考えられる。
【0011】
このような乱数列{yd},{zd},・・・を複数準備し、文字列{md}に対して、その暗号化を
Cd=(xd)(xor)(yd)(xor)(zd)(xor)・・・(xor)md
のように定義していた。ここで(xd)はxdの整数部分である。
【0012】
この方法では、実数型の乱数列の一部をマスクし、部分的な情報だけを暗号化に使用して暗号鍵を特定することを困難にしていた。この暗号化方法によれば、DESのように特製チップを使用しなくても高速な暗号化がソフトウェアのみで実現されている利点があった。
【0013】
【発明が解決しようとする課題】
しかしながら、カオス暗号を採用しても、実数の乗法を2回以上使用しなければ暗号化できず、暗号化処理の演算に時間がかかるという欠点があった。また、実数演算はコンパイラや機種によって実装の仕方が異なるため、カオス暗号は本質的に機種依存性を有しており、汎用性に乏しいものであった。
【0014】
このため、高速で暗号化でき、かつ解読することができない暗号化が求められていた。更に、暗号化は汎用性を有するものであることが求められていた。
【0015】
本発明は上述した課題を解決することを目的として成されたものであり、高速で暗号化でき、かつ解読することができない汎用性のある暗号化方法及び暗号化システムを提供することを目的とする。
【0016】
【課題を解決するための手段】
本発明は、上記した目的を達成するべく以下のような形態をとるものである。
【0017】
課題を解決するための一実施形態として、
それぞれが、「複数の係数a,bと、使用回数cと、使用できる所定回数nとの少なくとも4つの整数で表され、K(x)=ax+b」で定義される複数のアファイン鍵データを、生成及び保持するアファイン鍵生成保持手段と、
前記アファイン鍵生成保持手段に保持されている複数のアファイン鍵データからi番目のアファイン鍵データを選択し、この選択されたi番目のアファイン鍵データに基づいて、乱数列データを生成する乱数発生手段と、
前記乱数発生手段が生成したi番目のアファイン鍵データの乱数列データの生成への使用回数cをカウントし、当該使用回数cが前記i番目のアファイン鍵データの所定回数n以上となったと判断した場合に、前記i番目のアファイン鍵データの使用回数cを0とし、前記アファイン鍵保持手段に保持されているj番目のアファイン鍵データに基づき、前記アファイン鍵生成保持手段に保持されている前記i番目のアファイン鍵データの係数a,bを更新する制御手段と、
を具備し、前記制御手段は、前記i番目のアファイン鍵データの更新後の係数bが0になる場合に、当該更新後の係数bを1とし、更に更新後の係数aが0となる場合に、当該更新後の係数aを原始根とすることを特徴とする乱数生成装置である。
【0018】
課題を解決するための一実施形態として、
それぞれが、「複数の係数a,bと、使用回数cと、使用できる所定回数nとの少なくとも4つの整数で表され、K(x)=ax+b」で定義される複数のアファイン鍵データを、生成及び保持するアファイン鍵生成保持手段と、
前記アファイン鍵生成保持手段に保持されている複数の複数のアファイン鍵データからi番目のアファイン鍵データを選択し、この選択されたi番目のアファイン鍵データに基づいて、乱数列データを生成する乱数発生手段と、
前記乱数発生手段が生成したi番目のアファイン鍵データの乱数列データの生成への使用回数cをカウントし、当該使用回数cが前記i番目のアファイン鍵データの所定回数n以上となったと判断した場合に、前記i番目のアファイン鍵データの使用回数cを0とし、前記アファイン鍵生成保持手段に保持されているj番目のアファイン鍵データに基づき、前記アファイン鍵保持手段に保持されている前記i番目のアファイン鍵データの係数a,bを更新する制御手段と、
平文を保持するメモリと、
前記乱数発生手段によって生成され乱数列データと、前記メモリに保持されている平文とを排他的論理和により演算し、暗号化文を作成し、前記暗号化文を記録媒体に記録する暗号化手段と、
を具備し、前記制御手段は、前記i番目のアファイン鍵データの更新後の係数bが0になる場合に、当該更新後の係数bを1とし、更に更新後の係数aが0となる場合に、当該更新後の係数aを原始根とすることを特徴とする暗号化システムである。
【0028】
【発明の実施の形態】
以下に、本発明に係る一発明の実施形態について添付図面を参照して詳細に説明する。以下に説明する本実施形態では、完全な乱数を一度だけ使用するストリーム暗号を提供することにより、高速に暗号化でき、かつ解読することができない汎用性のある暗号化方法、暗号化通信方法及び暗号化通信システムを提供する。
【0029】
本発明の第1実施形態から第12実施形態までが、以下に順に説明されている。
【0030】
第1〜第3実施形態は、暗号化・復号化の方法の実施形態である。
【0031】
第4〜第6実施形態は、この暗号化・復号化方法を用いた第1〜第3通信装置の実施形態である。
【0032】
第7実施形態は、この暗号化・復号化方法を用いた認証方法の実施形態である。
【0033】
第8実施形態は、この暗号化・復号化方法を用いたネットワークシステム(ルータ装置等)の実施形態である。
【0034】
第9実施形態は、この暗号化・復号化方法を用いたアプリケーション・コンピュータプログラムの実施形態である。
【0035】
第10実施形態は、この暗号化・復号化方法を用いたディスクドライブの実施形態である。
【0036】
第11実施形態は、この暗号化・復号化方法を用いた光ディスク記録再生装置の実施形態である。
【0037】
第12実施形態は、この暗号化・復号化方法を用いた携帯電話の実施形態である。
【0038】
<<第1の実施形態>>
第1実施形態は、本発明の多重アファイン鍵を用いた基本的な暗号化方法と復号化方法を特定するものである。
【0039】
[本実施形態の暗号化方法の概要]
本実施形態においては、従来のストリーム暗号の欠点を除去するため、ストリーム暗号化に適した乱数の発生原理を模索し、以下に説明する暗号化方法を採用して、解読が事実上不可能で、かつ高速の暗号化、復号化処理を可能とすることができた。以下、本実施形態の暗号化の概要を説明する。
【0040】
本実施形態においては、既知平文化攻撃に対して弱く、従来は用いられることが無かったストリーム暗号化を、乱数列と多重アファイン鍵(本発明の特徴であり、複数の多重アファイン鍵の係数を秘密鍵とするもので、所定使用回数ごとにその秘密鍵(係数)が書き換えられるため、解読しようとする第三者を排除することが可能)を用いて行なう。
【0041】
完全な乱数を一度だけ使用するストリーム暗号であるヴァーナム(Vernam)暗号には解読法が存在しないことがシャノン(Shanon)により証明されている。このことは、既知平文攻撃法を排除し、良質な乱数の生成法が見出されれば、安全で高速な暗号法が確立できることを示している。
【0042】
本発明はこの点に着目し、未定係数法が適用できないような疑似乱数生成法を考案し、この乱数を用いてストリーム暗号を生成することにより、信頼性の高い暗号化を実現した。
【0043】
具体的には、多重アファイン鍵を用いて良質な乱数を発生させるものであり、この時多重アファイン鍵を一定使用回数ごとにその係数を書き換えていくものである。つまり、一定使用回数ごとに書き換えられる多重アファイン鍵を、第三者の解読が困難な暗号化・復号化の鍵として使用し、更にこの多重アファイン鍵を複数用意することで、書換の際に複数の鍵が相互に参照し合い係数を自動的に更新していくことにより、第三者の未定係数法による暗号解読を排除するものである。
【0044】
つまり本発明は、鍵の寿命というものを定義し、古くなった鍵(多重アファイン鍵の係数)を自動的に書き替えていく方法、多重アファイン鍵を利用して、良質な乱数列{Ri}を発生しこれを暗号・復号に適用する暗号化方法を提供するものである。
【0045】
[アファイン鍵の説明]
本実施形態で用いるアファイン鍵を以下に説明する。
【0046】
本発明で用いられるアファイン鍵とは、暗号化に用いられる乱数列を発生するための多重アファイン鍵の係数に該当する。そして、このアファイン鍵は乱数列発生への所定使用回数ごとに自動更新されることにより、第三者の解読を完全に排除するものである。
【0047】
有限体Fを考えた時に、有限体Fは整数の集合とその上の演算を具体的に指定して実現できる。例えば、F=Z/(p)(p素数)、または標数pのガロア体として表わすことができる。この時の有限体Fの上のアファイン鍵Kは4個の整数K={a,b,c,n}で表わすことができる。 ここで整数x∈Fへのアファイン鍵Kの作用を次のように定義する。
【0048】
K(x)=ax+b
なお、cはアファイン鍵が何回使われたかをカウントするカウンタ、nはこの鍵を使用出来る回数の上限(寿命)である。そして、一つのアファイン鍵はレーマー法の疑似乱数を生成する。
【0049】
そして実際には一つのアファイン鍵を用いるのではなく複数のアファイン鍵を用いる多重アファイン鍵システムを採用する。
【0050】
多重アファイン鍵システムは、鍵の個数をMとすると、構造体の表現の意味において複数のアファイン鍵{K[i]}(0≦i≦M−1)と、鍵の書き換え処理を示す一つの手順:プロシージャ(procedure)w(i,j:integer)からなる。
【0051】
ここで、乗法と加法は、考えている有限体の演算を用いるものとする。
【0052】
このプロシージャにおいて、書き換えようとするi番目のアファイン鍵K[i]の係数aは、書換の参考となるj番目のアファイン鍵K[j]の係数aと係数bとに基づき、書き換えられることが判る。
【0053】
更に書き換えようとするi番目のアファイン鍵K[i]の係数bは、書換の参考となるj番目のアファイン鍵K[j]の係数aと係数bとに基づき、書き換えられることが判る。
【0054】
暗号化処理はソフトウェアで実現することが可能であり、ソフトウエアを起動した段階で各K[i]を何らかの方法で初期化する。後述する理由によって、特に断らない場合はK[i].n=3とする。このように暗号化処理の起動時にアファイン鍵を初期化するように制御しても、後述するように暗号文を解読することは事実上不可能である。
【0055】
[暗号文生成方法]
次に、本発明の第1実施形態である多重アファイン鍵による平文の暗号化・復号化の手順を、図6,図7のフローチャートを用いて以下に説明する。
【0056】
図6において、通信文である平文{mi}が暗号化され暗号文{ci}となる順が示される。ここで、乱数列の初期値x0を与え、次のルールで乱数列を生成する。即ち、最初は▲1▼から▲5▼のステップを実行し、その後は▲2▼から▲5▼のステップを繰り返して実行することにより、乱数列の生成および通信文のバイト列{mi}より暗号文ciを生成する処理を行う。
【0057】
ステップ▲1▼
i=0として、乱数列の初期値x0を付加する。
【0058】
即ち、最初に暗号文の先頭に乱数列の初期値x0を添付して互いの同期をとる。これにより、多重アファイン鍵Kの設定がなされ、Kd、xの初期化がなされる(S51)。
【0059】
ステップ▲2▼
次に平文miが読み込まれ(S52)、アファイン鍵k[i]を用いて以下の手順で乱数列{Ri}が生成される(S53,S54)。
【0060】
xd=K[i](xd−1),K[i].c=K[i].c+1
そして次にK[i].cは設定回数n以下であれば、まだ鍵の更新は必要がないため、このまま発生した乱数列{Ri}と平文miとが排他的論理和で演算されることで暗号化がなされ(S60,S61)、得られた暗号文Ciが出力される(S62)。
【0061】
ci=mi(xor)(xd and 255)
(3)のステップ
又、ここでjをxの上位8ビットとして、次に使用されるアファイン鍵Kを特定される(S55)。
【0062】
j=(xd shr 8)and(M−1)
但し、Mは鍵の個数を表わし、Mは2のべき乗とする。
【0063】
▲4▼のステップ
もしK[i].c≧K[i].nならばw(i,j)を実行し、K[i].c=0とする。
【0064】
つまり、書換の必要な回数に使用回数が至っていれば、上記した書換のためのプロシージャw(i,j)が実行され、多重アファイン鍵の係数a,bが書き換えられることになる(S57〜S59)。
【0065】
▲5▼のステップ
i=jとする。
【0066】
上記ステップ▲2▼に戻り、以降次の通信文に対してステップ▲2▼乃至▲5▼のステップを繰り返す。図6のフローチャートでは、ステップS62からステップS52へ処理がすすむ部分に該当する。即ち、以後の処理では互いに多重アファイン鍵、乱数列を自動的に書換えながら暗号化/復号化処理を行うことになる。
【0067】
この場合には、多重アファイン鍵{K[i]}は互いの通信相手共に全く同ように書き換えられていくため、互いの同期がとれているかぎりは共通の鍵情報を共有でき、互いの通信文中に暗号化鍵情報を含めることなく通信等を行うことができる。
【0068】
[暗号文解読方法]
本発明の多重アファイン鍵による暗号文の解読処理を図7のフローチャートを用いて説明する。基本的に、暗号文の生成方法とこの暗号文の解読方法の手順は、ほとんどが同一のものであると考えて良い。
【0069】
つまり、その暗号文を解読するには、暗号文が作成された場合と同様の乱数列を生成してやる必要があり、従って多重アファイン鍵Kの設定、Kd、xの初期化(S71)の初期化の処理は、暗号化のステップS51の処理と同一のものでなければ、同一の乱数列{Ri}は得られない。
【0070】
従って乱数列生成の手順(S72〜S75)も、暗号化の乱数列生成の手順(S52〜S55)と同一でなければならず、更にアファイン鍵の書換処理(S76〜S79)も暗号化のときの書換処理(S56〜S59)と同じでなければならない。
【0071】
最後に復号化の部分については、暗号化の際に平文miと乱数列{Ri}との排他的論理和を求める(S60〜S62)のに対して、復号化の際には暗号文Ciと得られた乱数列{Ri}との排他的論理和を求める(S80〜S82)ことで最初の平文miが得られるわけだが、これも非常に似ており、結局、暗号化処理と復号化処理はほぼ同一であると言っても間違えではない。
【0072】
[乱数列の性質]
以上の多重アファイン鍵による方法で生成される乱数列{Ri}は非常に長い周期を持っている。実験によると、2つのアファイン鍵の場合でもM2以上の周期となる。3個以上のアファイン鍵を使用すると、周期を測定することができないほどになる。また、レーマー法で問題となる乱数列の高次元疎結晶構造も存在しないことが確認できた。
【0073】
以上のことから、多重アファイン鍵を用いてストリーム暗号を生成する多重アファイン鍵暗号は非常に高い安全性を有していることが明らかである。
【0074】
また、このように、多重アファイン鍵による方法で生成される乱数列{Ri}は非常に良質の乱数列であり、繰り返し周期が無視できる長さとなり、この方法により生成した乱数列は暗号化に用いるのみではなく、各種の処理に適用して好結果を得ることができる。
【0075】
例えば、モンテカルロ法を用いた数値積分などでも良好な結果を得ることができ、一般の演算では膨大な時間が必要となる演算においても、上記方法で発生させた乱数による演算を所定回数行なってその演算結果を評価すれば、少ない演算量で誤差の少ない良質の結果が導き出せる。このため、乱数を利用する各種処理に適用することにより、片寄りのない良好な結果が得られる。
【0076】
本実施形態では、乱数列{Ri}を16ビット以上の整数値とする。そして、この下位8ビットを暗号化に使用し、上位8ビットは暗号化には関わらず、鍵の番号を選択するためのデータとして使用する。この上位8ビットのデータは、暗号鍵の外部から見ることができない情報となる。
【0077】
本実施形態の暗号化においては、鍵の個数は不定であり、鍵の個数を増加させても暗号化の速度にはほとんど影響が出ない。鍵の個数は通常2〜28=256個のいずれかになる。これらのアファイン鍵が、常時ある確率で更新されながら暗号化が行われる。このため暗号鍵を特定することが非常に困難である。暗号鍵が特定できなければ、本実施形態の暗号は解読が理論上不可能であるヴァーナム暗号(Vernam暗号)と同等と考えることができ、解読法が存在しない暗号ということができる。
【0078】
[暗号の高速化手法]
以下に説明する本実施形態では、以上のことを考慮に入れて、高速な暗号化、復号化を実現するために以下の手法を用いることとし、一個の乱数を生成するのに一回の整数の乗法を実行するのみで足りるようにしている。またある確率でのアファイン鍵の更新を2回の整数の乗法で実現可能とし、比較的時間のかかる除算を不要としている。
【0079】
鍵の更新の上限がN=K[i].nで一定ならば、平均して鍵の更新には2/N回の整数の乗法が使われる。すなわち1バイト当たりの整数の乗法の回数は平均では{1+(2/N)=(N+2)/N}となる。N=3のときこの値は1.666…程度である。すなわち暗号鍵を長くすると安全性が増すが、整数の乗法は1バイト当たり平均で2回未満となる。
【0080】
暗号の攻撃者から見てK[i].a,K[i].bは併せて4バイトの未知数であり、N=3のときは3バイトの乱数を暗号化で使用すると、この鍵は書き換えられてしまう。このため、この場合のアファイン鍵システムは極めて安全である。
【0081】
ni=K[i].nを秘密鍵の情報をもとにランダムに設定すると、平均して鍵の寿命は長くなり、暗号化は高速化される。その分、暗号が解読されやすくなるが、実際には以下のような理由で、解読することはできないと見なすことができる。
【0082】
鍵の中のいくつかはni=3という寿命を持つ。この鍵は比較的頻繁に書き換えられる。一個の鍵の書き換えは、直後の乱数の生成から、確率的に影響する。実際に、一度でもこの鍵が使用されれば、それから後は、アファイン鍵システム自体が、全く別の乱数列を生成するようになる。この場合の整数の乗法の回数は平均すると
となる。この値は、M=32,ni=3の鍵の個数が5個程度、乱数{ni}の範囲が3≦ni≦500の場合では1.0618といった値になる。この値は乱数{ni}の取り方に依存するが、実質的には1.1を超えることはない。すなわち、最も安全な上記の場合より50%程度高速化することができる。
【0083】
さらに、アファイン鍵の個数を増やした場合、最初の場合より鍵が増加して安全性が高まるが、暗号化の速度は逆に若千ではあるが高速になる。従ってCPUの一次キャッシュメモリに収まる範囲であれば、アファイン鍵の個数は多いほうが有利になる。
【0084】
以上に説明した暗号化方法を採用すると、安全性を高めても暗号処理速度は遅くならないという優れた作用効果を得ることができる。
【0085】
[暗号文の解読不可能性の証明]
以上に説明した本実施形態の暗号化方法の安全性を説明する。
【0086】
これまで、絶対に解読法が存在しないことが証明されている暗号は、上述したヴァーナム(Vernam)暗号だけである。しかしこのヴァーナム(Vernam)暗号は、平文と同じ長さの完全な乱数を秘密鍵として必要とするなど、実用的でない部分がある。この点を改良して実用的な暗号としたのが本実施形態の暗号であり、次のような意味で、完全守秘性を有している。
【0087】
即ち、本実施形態の暗号で使用する多重アフアイン鍵システムK={K[i]}を考え、すべてのアフアイン鍵の寿命K[i].nを例えば「3」とすると、このとき、3バイトの暗号文について完全守秘性が成立する。
【0088】
これは以下のような、実験によって確認できる。鍵は一個の場合を想定して守秘性が証明されれば多重鍵についても同ように守秘性が証明されるのは明らかである。
【0089】
今、アファイン鍵をKとして以下の処理を想定する。
【0090】
ステップ1
8ビットの整数の乱数列r1,r2,r3を任意にとる。この乱数を生成するアファイン鍵を以下のように作成する。
【0091】
ステップ2
K={a,b,c,n}とし、aの上位8ビットをa2、下位8ビットをa1とする。同ようにbの上位8ビットをb2、下位8ビットをb1とする。乱数の初期値x0についても同ように上位8ビットx02、下位8ビットx01を考える。つまり、
a=256*a2+a1, b=256*b2+b1, x0=256*x02+x01
とする(上位8ビットについては256を乗算して実質的に8ビット分シフトしている)。
【0092】
ステップ3
ここで、まったくランダムにa1,a2,b1,b2のいずれかの値を決めてしまう。例えば、a1=41などと特定の値を決めて以下の想定を行う。なお、x01=r1である。
【0093】
ステップ4
ステップ3で仮に決めたa1を除く残りのa2,b1,b2,x02を適宜うまく選んでアファイン鍵Kを作成すると、このKで生成される3個の乱数が上記のr1,r2,r3に一致するようにできる。このことは簡単なプログラムで実験的に確認できる。
【0094】
従って、上記アルゴリズムを用いて解読を試みても、事実上無限に近いいくつもの解が存在する結果となり、解読された解のうちのどの解が正解の解であるかを特定することは不可能になる。
【0095】
つまり、3バイトの暗号については、本実施形態の暗号を解読する手段はまったく存在しないことが証明されたことになる。
【0096】
さらに、一般の多重アフアイン鍵システムK={K[i]}を考え、ここですべてのアファイン鍵の寿命K[i].nを「3」とすると、この多重アフアイン鍵システムによる暗号には解読法が存在しないことも以下の手法で証明できる。。
【0097】
まずK[0]によって、3バイトの乱数が生成されたとする。この段階でK[0]を特定することはできない。これを特定するにはさらに何バイトかの乱数を調べる必要があることは明らかである。
【0098】
次にK[0]は3バイトの暗号化を行ったために鍵の寿命がきてK[1]によって書き換えられるとする。するとK[0]を特定するにはK[1]を特定する必要が生じる。しかし、K[1]も3回使用されると別の鍵で書き換えられてしまうので特定できない。
【0099】
K[1]がK[2]によって書き換えられるとする。するとK[1]を特定するにはK[2]を特定する必要がある。このようにして、この多重アフアイン鍵システムでは、すべてのアフアイン鍵を同時に特定する以外に鍵を特定する方法が存在しないことが分かる。結局、全部の鍵の可能性をしらみつぶしに詞べる方法以外に解読法が存在しない。
【0100】
ここで使用された多重アファイン鍵システムK={K[i]}の鍵の個数をeとすると、可能な多重アフアイン鍵システムの個数はp=65521の場合でもp2e個以上存在する。この値はe=32の場合でさえ、10308以上になる。
【0101】
従って、例えば多重アファイン鍵の中の一つの鍵のみがアファイン鍵の寿命K[i].nが「3」である場合であれば、事実上の解読法が存在せず、他の鍵の寿命にかかわらず本実施形態の上記暗号を解読することは事実上不可能である。
【0102】
[実用的なモデルについての説明]
以上の暗号化処理を実際の実用的なモデルについて説明する。
【0103】
実用的なモデルでは、最も安全な例では、有限体はF=Z/(p),p=65521、アファイン鍵の個数は32個、書き換えのタイミングはK[i].n=3,K[i].c=K[i].a(mod 3)という場合である。
【0104】
この場合における秘密鍵は16ビットの整数64個である。
【0105】
なお、乱数の初期値は、各暗号文の先頭に添付する方法を用いることが望ましい。そして、例えば一例としてこの初期乱数を元にして保有する多重アファイン鍵を使用して乱数を発生させる処理を所定回数実行させた後に、この時点の発生乱数と鍵の状態を暗号化に使用することをあらかじめ決めておけばよい。この方法を採用すれば、既知平文攻撃を有効に排除できる。
【0106】
この場合、アファイン鍵の総数は
となり、これは309桁の数である。これは宇宙全体の素粒子の数より多いと考えられる数であり、事実上の解読は不可能である。
【0107】
以上に説明した第1の実施形態においては、暗号文の先頭に乱数列の初期値x0を添付する方法を説明したが、本発明は以上の例に限定されるものではなく、グループ間の通信への適用をはかった以下のような方法によって同じ秘密鍵を安全に繰り返し使用できる。
【0108】
<<第2の実施形態>>
第2実施形態は、図8及び図9に示すように、最初から与えられた多重アファイン鍵で乱数を発生させるのでなく、秘密鍵Hや初期ベクトル値Vに基づいて生成された多重アファイン鍵で乱数列を発生する場合の暗号化・復号化方法を特定するものである。
【0109】
なお、第2実施形態においても、有限体は上述した第1実施形態と同じものを使用する場合を例として説明を行う。この場合、<第1の手法>と<第2の手法>とが考えられる。
【0110】
[グループ間の通信への適用]
以下に説明する方法は、通信者が複数の通信相手{Bobj}と通信する場合に適する方法である。この場合、通信者は共通の秘密鍵Hを通信相手{Bobj}たちと共有する。通信相手{Bobj}は、通信者と通信するために、暗号文の先頭に16進数の1つの数値である初期値vを含む初期ベクトル値Vを併せて添付する。そして次の手順で暗号文を作成する。
【0111】
<第1の手法>
ステップ▲1▼
図8は、本発明の第2実施形態に係る多重アファイン鍵の暗号化処理を説明する説明図である。
【0112】
図8において、通信相手{Bobj}は、共通の秘密鍵H(51)と初期ベクトルV(52)とに基づき、多重アファイン鍵K(54)の生成(53)を行う。
【0113】
ステップ▲2▼
この時点の乱数値x0を初期値として多重アファイン鍵Kを使用して、乱数列{Ri}を生成し(59,60)、これと排他的論理和(62)を行うことで通信文miを暗号化する。これにより、暗号文Ciが出力(63)される。
【0114】
▲3▼のステップ
その後、図8のように(V,Ci)を暗号文としてネットワーク等を介して通信者に送出される。
【0115】
本発明の特徴である多重アファイン鍵Kの書換処理(55,57)は、多重アファイン鍵の一定使用回数ごとに自動的に行われ、第三者の解読を不可能にする。
【0116】
この暗号文を受け取った通信者(Alice)は、次の手順で暗号を復号化する。
【0117】
図9は、本発明の第2実施形態に係る多重アファイン鍵の復号化処理を説明する説明図である。
【0118】
ステップ▲1▼
図9において、暗号解読の際には、初めに初期ベクトル値Vと暗号文Ciとを受信し(63)、そして暗号化の場合と同ように、秘密鍵H(51)と初期ベクトル値V(52)とに基づき、多重アファイン鍵K(54)が生成される(53)。
【0119】
ステップ▲2▼
次に、この多重アファイン鍵Kが生成された時点の乱数値x0を初期値として多重アファイン鍵Kを使用して乱数列{Ri}が生成される(59)。この乱数列{Ri}と、入力された暗号文Ciとの排他的論理和(71)とを求めることにより、暗号文の解読が行われ、解読された平文miが出力されることになる(61)。
【0120】
本発明の特徴である多重アファイン鍵Kの書換処理(55,57)は、解読処理においても暗号化処理と同ように、多重アファイン鍵の一定使用回数ごとに自動的に行われ、第三者の解読を不可能にしている。
【0121】
以上の処理により暗号文の復号化が行える。
【0122】
共通の秘密鍵Hを持たない部外者は、多重アファイン鍵Kを知ることが出来ないため、暗号文を解読することはできない。そしてこの方法では、毎回実質的に異なる鍵を使用するので、恒久的に安全性が保証される。しかし、暗号文の先頭に毎回、130バイトの初期ベクトル値Vが添付されることになる。
【0123】
この部分は用途によっては、次のように簡略化できる。即ち、暗号文Ciの先頭に、初期値x0と鍵変換の情報(α,β)を添付し、これを用いて共通の秘密鍵Hから新たな多重アファイン鍵Kを生成し、これによって暗号化を行うようにしても良い。この場合に通信制御手順を以下に示す。
【0124】
<第2の手法>
ステップ▲1▼
通信相手{Bobj}は、1個の16進数である初期値vと秘密鍵Hを用いて、2個の16進数である鍵変換の情報(α,β)を暗号化する。つまり、鍵変換情報(α,β)は、(mod p)で計算されて(α′,β′)に暗号化される。
【0125】
ステップ▲2▼
次に、秘密鍵Hから鍵変換情報(α′,β′)を用いて多重アファイン鍵Kを生成する。
【0126】
秘密鍵H={H1,…,H64}に対して多重アファイン鍵Ki=α′Hi十β′(mod p)とし、新たに多重アファイン鍵K={K1,…,K64}を作成する。
【0127】
▲3▼のステップ
次に生成された多重アファイン鍵Kを用いて同上のアルゴリズムによって乱数Riを発生し、平文miの暗号文Cを作成する。暗号文として〔v,α,β,C〕 をネットワークに流し、通信者に送信する。
【0128】
以上の暗号文の解読も、同ように共通の秘密鍵Hを鍵変換情報(α’,β’)により変換して生成したアファイン鍵を用いて、乱数Riを発生し復号化を行う。この場合は一つの秘密鍵Hはp3=281281747415761回使用できる。この第2の手法によれば、第1の手法とは異なり、鍵変換情報により元の暗号文がわずか6バイト長くなるだけで済む。
【0129】
<<第3の実施形態>>
第3実施形態は、乱数発生の際の計算方法を簡略化して処理速度の高速化を図った実施形態を特定するものである。つまり、ここでは、有限体としてZ/(p):(p=65521)を用いた場合、整数の乗法とともに、(mod p)の計算を行う。この計算は、整数の乗法一回分以上に遅い演算ではあるため、この(mod p)の計算を高速なand(216−1)などに置き換えられないかを考えてみる。置き換えられれば、実質的に(mod 216)で整数の計算を行うことを意味する。
【0130】
すべての計算をand(216−1)などに置き換える方法で実行すると、多重アファイン鍵システムが次第に退化していき、鍵の成分がすべて「0」になったりする。すなわちこの計算では、鍵の複雑さを維持できない可能性が極めて高い。ところが、乱数列Riを生成するときの整数の乗法のみを
xd=(K[i].a×xd−1+K[i].b)and(216−1)
で計算し、鍵の書き換えは、これまで通り、(mod p)で計算すると、生成される乱数は比較的良好である。
【0131】
しかし、上記方法でも、K[i].b=0の場合は上記の計算は、単なる整数の乗法になり、K[i].aが偶数であると、生成される乱数が「0」になる確率が高くなる。そこでK[i].b=0の場合は、強制的にK[i].b=1に書き直す。
【0132】
また、さらにK[i].a=0の場合、同じ鍵が繰り返し使用されることになるので、乗法に関する周期の長い「17」に変更する。17はp=65521に対する原始根である。この部分を改良したところ、さらに50%以上の高速化が実現できた。
【0133】
以下に、この場合の暗号化のアルゴリズムを段階的に説明する。
【0134】
[andを使用した暗号化アルゴリズム]
これまで通り、多重アファイン鍵システムK={K[i]},K[i]={a,b,c,n}を考える。{a,b,c,n}は(mod p)で計算した乱数を使用する。またp=65521とする。
【0135】
ここで、整数xに対するアファイン鍵K[i]の作用を
K[i](x)=(K[i].a×x+K[i].b)and(215−1)
とする。この計算を鍵の書き換えにまで適用すると、鍵の複雑さが維持できなくなることは既に述べた。また、少ない確率で、生成される乱数に不具合が発生する場合があるので、第3実施形態では鍵を書き換えるプロシージャw(α,β)を次のように変更する。
【0136】
以上のようにすると、暗号化が高速化され、多重アファイン鍵の複雑さも維持できる。なお、ここで17は、原始根の一つであり、他の原始根であっても同様の効果を有する。
【0137】
なお、以上の説明に処理の単位を16ビットとしているのは、制御部の(コンピュータの)処理の単位が16ビット(バイト単位)であるためであり、このために上位8ビット、下位8ビットに分けて処理しているためである。そしてビット中で最も大きな素数がp=65521であることよりこの値を利用したのである。処理の単位がバイト単位でない場合には以上の処理単位に限定されるものではない。
【0138】
[高速暗号化の手順]
最も高速な暗号化を可能とする第3実施形態の暗号化の手順を以下に示す。通信者(Alice)と通信相手(Bob)が秘密鍵Hを共有し、通信者から通信相手に通信文miを送る。以下では、アファイン鍵の個数は64個の場合を例として説明を行う。しかし、この個数に限定されないことは勿論である。
【0139】
ステップ▲1▼
通信者(Alice)は初期値としての1個の16進数の初期値vと乱数を成分とする128個の整数である初期ベクトルVを準備する。
【0140】
ステップ▲2▼
通信者は初期値vと暗号鍵Hとを用いて、初期ベクトル値Vを暗号化し、これを(mod p)で計算したものを多重アファイン鍵Kとする。
【0141】
また、多重アファイン鍵K[i].nは秘密鍵Hを用いて 次のように設定する。
【0142】
K[i].n=3(i=0,1,2,3,4)
K[i].n={K[i].a(mod 500)}+3(5≦i≦63)
▲3▼のステップ
通信者は、この時点での乱数の値x0を初期値として多重アファイン鍵Kを用いて、既に説明した暗号化方法に従って通信文miを暗号化し暗号文Ci作成する。
【0143】
▲4▼のステップ
最後に、通信者は通信相手にネットワークを介して{V,C}を送信する。
【0144】
このようにすると、通信者と通信相手以外の人間は鍵情報である秘密鍵Hを知らないので多重アファイン鍵Kを求めることができない。{初期ベクトル値V}は非常に多く存在するため、暗号を使用するたびに異なる多重アファイン鍵Kが使用されることになり、2つの異なるアファイン鍵Kが生成する乱数列{Ri}の間にはまったく相関が無いと考えられるので、既知平文攻撃は無意味になる。
【0145】
[高速復号化]
通信相手はこの通信文を受け取ったら、次の手順で暗号文を復号化する。
【0146】
ステップ▲1▼
通信相手(Bob)は初期値をx0とし、共通鍵Kを用いてK′を暗号化する。この結果、H=K(K′)(mod p)として、通信者(Alice)と同じ多重アファイン鍵Hを獲得できる。
【0147】
またH[i].nも上述のようにしてKを用いて設定する。
【0148】
ステップ▲2▼
CをHで暗号化すると通信文Mを得ることができる。
【0149】
このようにして、暗号化を高速化することができ、第1実施形態の安全性を重視した場合に比較して約2.5倍程度高速化することができる。例えば、最新の高速パーソナルコンピュータ(インテル製PentiumIIの動作クロック450MHZのCPU搭載)を用いて10485Kバイトのファイルを暗号化したところ、約0.84秒程度で暗号化処理を終了することが確認できた。これは一秒間に100メガビット程度を暗号化した計算になる。これは既存のすべての暗号と比較しても3倍以上高速であることを示している。
【0150】
以上に説明した各実施形態の多重アファイン鍵暗号化システムは、8ビットの乱数列を生成する装置を定義している。この装置は純粋にソフトウェアのみで実現されているが、100Mビット/秒の速さで乱数を生成できる。この乱数は次の点で優れている。
【0151】
・素数pによって(mod p)で実行されるレーマー(Lehmer)法より高速である。
【0152】
・レーマー法によって生成される乱数より良質である。
【0153】
・本アルゴリズムで生成される乱数は極めて長い周期を持っており、実質的に周期が無いと見なすことが可能である。
【0154】
・より複雑な乱数生成のために、アファイン鍵の個数を増やしても、処理速度 が低下しない。
【0155】
・アファイン鍵の一部を、より高次の多項式による鍵などに変更して、乱数を改良しても、実質的にはほとんど速度低下が起こらない。
【0156】
このような特徴のため、上述した各暗号化処理を実行するための特別なチップを作成した場合においても、そのチップは、高速な乱数生成用のチップとして転用することができ、リアルタイムにモンテカルロ法などを活用する道が開かれる。
【0157】
<<第4の実施形態>>
第4実施形態は、図1に示すように、既に説明した各暗号化方法を具体的に採用した暗号化システムの構成例を特定するものであり、特に第1実施形態の多重アファイン鍵を用いた基本的な暗号化・復号化方法を用いた構成である。図1は上述した暗号化方法によりデータ通信を実現するデータ通信システムの構成例を示す図である。
【0158】
図1において、通信者10は、通信相手20、30、40とネットワークNWを介して接続されている。通信者10、通信相手20、30、40はそれぞれ略同様の構成を備えているため、通信者10を例として詳細構成を示している。しかし、他の通信相手も同様の構成を備え、上述した各暗号化/復号化処理を実行可能である。
【0159】
通信者の通信装置10は、ROM12に格納されている制御手順に従って装置全体の制御を司る制御部11、ROM12、RAM13、通信データを保持するメモリ14、メモリ14に保持の通信文を暗号化すると共にレシーバ/ドライバ回路18よりの受信暗号化情報を復号化する暗号化回路15、暗号化処理におけるアファイン鍵を生成、保持するアファイン鍵保持部16、アファイン鍵保持部16に保持のアファイン鍵に従った乱数を発生する乱数発生回路17、暗号化回路15よりの暗号化文をネットワークNWを介して例えば他の通信相手に送信すると共に他の通信相手よりの暗号化情報などを受け取るレシーバ/ドライバ回路18などで構成されている。
【0160】
[第1の通信制御手順]
このような働きをもつ通信システムにおける第1の通信制御手順を図2に示す。図2に示す第1の通信制御手順は、高速な暗号化通信が可能な方法であり、自己書換によりアファイン鍵を継続的に利用していく方法である。この通信制手順は、企業の部署間、本店−支店間通信など1対1の通信に適した方法である。
【0161】
前提として互いのアファイン鍵生成部16で共通の多重アファイン鍵Kを保持しているものとし、乱数発生回路17は多重アファイン鍵Kにより乱数列{r1,r2,r3,・・・}が生成されるものとする。従って、データABCの暗号化/復号化は、X(ABC)={A(xor)r1},{B(xor)r2},{C(xor)r3}である。
【0162】
図2に示すように、多重アファイン鍵は通信を行う毎に書き換わっている。そして、送信側受信側ともに書き換わったアファイン鍵を保持しており、この互いに書き換えたアファイン鍵を用いて乱数列を生成して、生成した乱数列を用いて暗号化/復号化を行っている。
【0163】
即ち、通信を行う毎に多重アファイン鍵は書き換わっており書き換わった多重アファイン鍵は夫々のアファイン鍵生成部16で保持しておく。このように、鍵情報が固定でないため、安全性の極めて高い暗号化方法となっている。
【0164】
但し、通信上のトラブル時などには互いのアファイン鍵が共通でなくなることも考えられるため、双方のいずれかの要求でアファイン鍵の共通化のシーケンスを備えることが望ましい。
【0165】
これは、一方よりのアファイン鍵の送信であっても、互いに予め定めた初期設定されているアファイン鍵に設定し直されるものであっても良い。
【0166】
この方法によれば、送信側と受信側との通信に原則として鍵情報が伝送されることがなく、然も暗号化の鍵情報は通信の都度変更となるため、実質的には解読の不可能な、極めて信頼性の高い暗号化が実現する。然もこの場合においても、暗号化を上記方法で行うことにより、非常に高速に処理することができる。
【0167】
<<第5の実施形態>>
第5実施形態は、図3に示すように、予め格納してある多重アファイン鍵Kを通信の度に転送される初期ベクトル値Vとしての乱数列α、…等により変形されて与えられる多重アファイン鍵Kα、…等によって暗号・復号処理が行われる通信システムを特定するものである。
【0168】
[第2の通信制御手順]
このような働きをもつ通信システムにおける第2の通信制御手順を図3に示す。図3に示す第2の通信制御手順は、乱数による多重アファイン鍵を変形使用する例であり、ベースとなる多重アファイン鍵Kを送受信側双方で固定的に保持(例えばROM12に保持)し、通信する毎に乱数α、β、γで鍵情報の形を変えて暗号化する方法であり、例えば携帯電話の通信内容の暗号化など、不特定多数に対する通信の暗号化に適した方法である。
【0169】
前提として多重アファイン鍵Kを送信側、受信側共に固定的に保有している。そして、乱数列α、β、γを多重アファイン鍵Kで暗号化して得られている値をデータ暗号化に使用する多重アファイン鍵Kα、Kβ、Kγとして使用する。このため、送信側は、例えば通信文(ABC)の暗号化文(A’B’C’)とともに暗号化に用いる乱数列αを送信する。これにより、受信側ではこの乱数列αを多重アファイン鍵Kで暗号化した乱数列を新たな多重アファイン鍵Kαとしてこれを用いて更に暗号化文(A’B’C’)を復号化する。
【0170】
送信側では、乱数発生回路17での発生乱数を通信の都度変更しているため、乱数で鍵情報の形が変えられることになり、既知平文攻撃などに強い暗号化文とすることができる。また、暗号化も高速で行うことができる。なお、上述した実施形態のように、乱数列α、β、γを16ビット以上の整数値とした場合に、下位8ビットを暗号化に使用すれば良い。
【0171】
<<第6の実施形態>>
第6実施形態は、図4に示すように、送信側と受信側との間で秘密鍵Hと乱数α、βとを交わすことにより、通信毎に互いに多重アファイン鍵Kを交換する通信システムを特定している。
【0172】
[第3の通信制御手順]
このような働きをもつ通信システムにおける第3の通信制御手順を図4に示す。図4に示す第3の通信制御手順は、通信を開始するたび毎に最初に多重アファイン鍵Kを共有する手続を行い、共有した多重アファイン鍵Kを用いて暗号化を行う方法である。この方法は、鍵交換に時間はかかるが、WWWなどの情報プラウザの暗号化等に用いることで高い暗号化効果を得ることができる。
【0173】
第3の通信制御手順においては、通信を開始する最初にディッフィー−ヘルマン(Diffie-Hellman)の鍵交換を用いて多重アファイン鍵を共有する手続を行う。
【0174】
具体的には、秘密鍵Hを多倍長整数又はZ/pの有限次拡大体の元とみなして演算を定義し、乱数をα、βとすると、図4に示すように、まず送信側は秘密鍵Hαを生成し、秘密鍵H、Hαを受信側に送る。これを受取った受信側では、受信した秘密鍵H、Hαから多重アファイン鍵K=(Hα)βを生成する。
【0175】
そしてこの暗号化のための多重アファイン鍵Kを生成した秘密鍵Hβを送信側に返送する。送信側では、受信した秘密鍵Hβに基づき暗号化のための多重アファイン鍵K=(Hα)βを生成する。
【0176】
そして、以降各送信データABC,DEF,GHI,・・・をこの多重アファイン鍵Kで暗号化して送信し、受信側ではこれを多重アファイン鍵Kで復号化する。
【0177】
以上に述べた第3の通信制御手順においては、鍵交換処理に1ないし2秒の時間がかかるが、鍵情報が通信の度に毎回変更となるため、解読される可能性は低く、安全性が高い暗号化が提供できる。なお、この方法はさほど通信頻度が高くない通信に適している。
【0178】
なお、以上の説明においては、通信の都度多重アファイン鍵を通信する例について説明したが、通信の都度行う場合に限定されるものではなく、例えば毎日の通信の最初にのみ多重アファイン鍵を交換するように制御しても、あるいは一定周期毎に多重アファイン鍵を交換するように制御してもよい。
【0179】
更に、アファイン鍵をランダムにかえていくのではなく、予め定めた所定種類のアファイン鍵に順次替えていき一定周期で元の鍵に戻る循環方式でかえていくものであっても良い。即ち、一定周期で先に鍵と同じ鍵を繰り返し用いる方法であっても、事実上の解読は不可能であり、高い安全性が保てる。
【0180】
さらに、この方式を用いることにより、送信側と受信側のアファイン鍵の状態がずれたような場合であっても、容易に互いのアファイン鍵の整合性をとることができる。例えば、鍵に特定の番号を付加しておいてこの番号を通知しあうことで互いのアファイン鍵を整合させることも可能である。
【0181】
<<第7の実施形態>>
第7実施形態は、図5に示されるもので、上述した本発明の暗号化・復号化方法を、例えば通信回線を利用したクレジットカード等の個人認証に用いられる認証方法への応用を特定するものである。
【0182】
[本実施形態の暗号化方法を用いた認証方法]
このような暗号化方法及び暗号文の通信制御手順を用いる特定相手先の認証方法を以下に説明する。上述した多重アファイン鍵を用いた暗号化文には、実質的な解読法が存在しない。従って、上記暗号化文を利用して特定の相手先認証を行うことにより、部外者が認証内容を解読できない認証方法とすることができる。
【0183】
即ち、認証のためのキーワード等を上記暗号化に用いる多重アファイン鍵Kとして予め認証対象(認証先108)に付与しておき、この多重アファイン鍵Kを用いて暗号化した情報を認証元107に返送させ、これを複号化してすることにより、通信内容を部外者に知られても部外者が暗号化のための鍵を解読することができないことより、上記認証のためのキーワードが他に解読されることがなく、非常に信頼性の高い、かつ安全性の高い認証方法が提供できる。
【0184】
第1の認証方法として、例えば図5の場合のように、認証先108(例えばクレジットカードの会員)に予め所定の初期ベクトルVを付与しておき、認証元107は認証時に認証先108に前記所定の初期ベクトルVを用いて発生した乱数列HV及び通信情報Mを送信する。認証先108は受信した乱数列HVと予め付与された所定の初期ベクトルを用いて暗号化のための多重アファイン鍵Kを生成し、生成した多重アファイン鍵Kを用いて通信文Mを暗号化した暗号文M’を認証元107に返送する。一方、認証元107は乱数列HVと初期ベクトルVとを用いて暗号化のための多重アファイン鍵Kを生成し、生成した多重アファイン鍵Kを用いて認証先108から受けた暗号文M’を復号化し、正確に復号化できれば正しい認証先と認証する認証方法である。
【0185】
第2の認証方法として、認証元107は最初に初期ベクトルVと所定の通信文Mを認証先108に送る。認証先108は、この初期ベクトルVに基づき予め付与された多重アファイン鍵Kを用いて新たな乱数列Riを生成し、生成された乱数列Riを用いて通信文Mを暗号化して認証元107に返送する。認証元107は初期ベクトルVに基づき認証先108と同様の多重アファイン鍵Kを用いて新たな乱数列Riを生成し、生成された乱数列を用いて受けた暗号化文M’を復号化し、正確に復号化できれば正しい認証先と認証する認証方法である。
【0186】
具体例に基づいて以下に説明する。この認証の対象としては、例えば以下の各場合に適用可能である。なお、適用対象としては以下に示す例に限定されるものではなく、個人あるいは電子機器等の装置を特定するための認証であれば種々の場合に適用できることは勿論である。
【0187】
(1)インターネット等の通信手段を利用した電子商取引の認証情報に上記暗号化のための多重アファイン鍵を用いる。
【0188】
(2)有料テレビ放送の受信許可のためのキーワードに上記暗号化のための多重アファイン鍵を用いる。
【0189】
(3)電子機器内に機器ごとに固有の多重アファイン鍵を付与しておき、機器特定のための認証情報として用いる。例えば、携帯電話等の無線機器の通信許可のための認証に上記暗号化のための多重アファイン鍵を用いて無線機器の通信許可の安全性を図る。
【0190】
(4)予め個人ごとに固有の多重アファイン鍵を付与しておき、個人特定のための認証情報として用いる。
【0191】
具体的な認証のための通信制御手順を図5を参照して説明する。図5は上述した暗号化方法を利用した認証手順例を示す図である。基本的な通信制御手順は上述した実施例の第3の通信制御手順と同様の制御手順を用いる。
【0192】
認証の前提条件として、認証対象(認証先)108に固有の認証情報として初期ベクトルVを付与しておく。この初期ベクトルVは、例えば個人認証カードや認証対象の電子機器内に登録しておけばよい。あるいは、個人の指紋を読み取って例えばフーリエ変換して結果を初期ベクトルVとして用いてもよく、このようにすれば、機器内に認証情報を記憶する必要がなく、より安全性が高まる。
【0193】
認証対象である認証先108及び認証元107には予め共通の多重アファイン鍵Kが用意されているものとする。そして、認証元107は、図5に示す認証先108との認証手順実行開始前に、認証先108に付与した初期ベクトルVを検索しておき、例えばこの初期ベクトルVを多倍長整数又はZ/pの有限次拡大体の元とみなして演算を定義し、認証に用いる通信文をMとすると、図5に示すように、まず送信側である認証元107はHVを生成し、(V,M)を受信側である認証先108(認証対象)に送る。
【0194】
これを受取った認証先108では、受信した(V,M)の中のVから多重アファイン鍵Kを生成する。
【0195】
そしてこの多重アファイン鍵Kを通信文Mの暗号化のための多重アファイン鍵Kとして用いる。そして、生成した多重アファイン鍵Kで通信文Mを暗号化して暗号化文M´を認証元107に返送する。
【0196】
認証元107では、認証先108と同ようにして初期ベクトルVを用いて多重アファイン鍵Kを生成する。そして、認証先より受信した暗号化文M´を生成した多重アファイン鍵Kで復号化する。ここで、K(M)=M´であれば、認証先が正しかったと判断する。そうでなければ、認証先が正しくなかったと判断する。
【0197】
なお、以上に述べた認証のための通信制御手順に先だっての認証先の特定が困難である場合には、認証に先立つ通信制御手順として、認証先を特定する情報、例えば認証先のID番号情報を問合わせてこのID番号情報を受け取って受取ったID番号情報より認証先の多重アファイン鍵を検索してくる通信制御手順を行うようにしても良い。
【0198】
このように制御しても、ID番号情報のみが通信されるのみであり、認証手順でも多重アファイン鍵が通信されることがなく、多重アファイン鍵が解読されることがない暗号法を用いて認証を行うために、極めて安全性の高い認証が可能となる。
【0199】
また、他の認識方法として、認証元107は最初に初期ベクトルVと所定の通信文Mを認証先108に送る。認証先108は初期ベクトルVに基づき新たな乱数列{Ri}を生成し、生成された乱数列を用いて受信した通信文Mを暗号化して暗号化文M´を認証元に返送するように制御しても良い。
【0200】
そして、認証元108は初期ベクトルVを用いて新たな乱数列{Ri}を生成し、生成された乱数列を用いて受信した認証先よりの暗号化文M´を復号化して正確に復号化できれば正しい認証対象と認証する認証方法としても良い。
【0201】
上述した各暗号化方法により暗号化した文を同様の手順で復号化して正確に復号化できれば認証先が正しかったと認証するようにすれば、安全性の高い認証が可能となる。
【0202】
<<第8の実施形態>>
第8実施形態は、図10に示されるものであり、本発明の暗号化・復号化方法を適用したネットワークシステムに用いられるルータ装置を特定するものである。
【0203】
図10において、上述した多重アファイン鍵を用いた暗号化・復号化方法を用いたネットワークに接続される複数の通信装置171,172と、ルータ装置173とが示されている。通信装置171,172においては、所定の処理動作を行うアプリケーション174に接続される制御部175と、この制御部175の一部の機能としての暗号化制御部176、送受信制御部177、ネットワーク制御部178とがそれぞれ、多重アファイン鍵による乱数生成部179,暗号化/復号化部180,ネットワークコントローラに接続されている。そして、このネットワークコントローラ181は、一例として社内等の一定の領域に設けられたLANなどのネットワークNWに接続されている。
【0204】
このような構成による通信装置171,172は、上述したように様々な形式において本発明の多重アファイン鍵による乱数列に基づく情報の暗号化・復号化を行い、このネットワークNWを介して高いセキュリティを保ちながら、各データの送受信を可能としている。
【0205】
又更にルータ装置173においては、第1のネットワークNWに接続される第1ネットワークコントローラ181と更にこれとは異なる外部のネットワークNW2に接続される第2のネットワークインタフェース182と、これらの動作を制御している制御部175と、この制御部175の一部の機能としての暗号化制御部176、送受信制御部177、ネットワーク制御部178とがそれぞれ、多重アファイン鍵による乱数生成部179,暗号化/復号化部180,ネットワークコントローラ181に接続されている。
【0206】
このような構成において、ルータ装置173は、これらの異なるLAN同士を接続するものであり、制御部175の制御に基づいて、複数のネットワーク間の通信装置や経路の接続を制御するものである。このとき、このルータ装置にあっては、制御部の暗号化制御部176の制御の元に、本来のルータ装置の働きに加えて、与えられた所定の情報のみを設定に応じて上述したように本発明の多重アファイン鍵による乱数生成部179により発生した乱数列{Ri}に基づき暗号化し、この暗号化文を他の接続した通信装置171,172等、又、外部のネットワークNW2へ転送することが可能となる。又更に例えば外部のネットワークNW2に対する送受信情報については、必ず本発明の多重アファイン鍵による暗号化・復号化処理を行うことにより、内部のネットワークNWの情報を外部に対して機密を保つことが可能となる。この際の暗号化・復号化の行い方は、上述した第1〜第3実施形態に示された方法に限らず、多重アファイン鍵を用いた様々な形態が可能であり、迅速な処理により完全な機密保持を可能とする。
【0207】
<<第9の実施形態>>
第9実施形態は、図11乃至図21に示されるように、多重アファイン鍵を用いた暗号化・復号化方法をコンピュータ上で動作可能とするアプリケーション・コンピュータプログラムとして実現したコンピュータプログラム及びこれを格納する媒体更にこのコンピュータプログラムがロードされたコンピュータ装置を特定するものである。
【0208】
図11は、このアプリケーションプログラムの基本動作を示すフローチャート、図12は、このプログラムのメインメニュを示す画面、図13は、鍵ファイルの読込の画面、図14は、暗号化ファイルの読込の画面、図15は、暗号化処理の開始画面と終了画面を示す図、図16は、暗号化ファイルの作成の画面、図17は、複合化処理の対象とする暗号化ファイルの選択の画面、図18は、復号化処理の開始画面と終了画面を示す図、図19は、複合化ファイルの作成の画面、図20は、鍵ファイルの作成の画面、図21は、このプログラムが実行されるコンピュータシステムの外観図である。
【0209】
上述してきた本発明の多重アファイン鍵の暗号化・復号化方法は、例えばパーソナルコンピュータ上のアプリケーション・コンピュータプログラムとして非常に効率よく実現されるものである。それは、暗号化・復号化の各種の設定から暗号化し復号化したファイルの読出や格納を含めて必要な機能を持つものであり、例えばファイルの圧縮・解凍のアプリケーションにも似て容易に操作が可能である。
【0210】
以下、図11の基本動作を表すフローチャートを中心に、操作画面を参考にしながら順に説明していく。
【0211】
初期化がなされた当該プログラムは(S101)、例えば図21に示されたコンピュータシステム132,133,134の画面上131において、最初に図12に示すメインメニュが現れる(S102)。このメニュ画面において、鍵ファイルを読み込むためのリードキー102,暗号化処理を行うためのエンコードキー103,復号化処理を行うためのデコードキー104,鍵の数を設定するための安全鍵数105,鍵の書換回数106,新鍵ファイルを作成するためのメイクキー107,操作等の質問を行うためのクエッションキー108が表示され、入力があれば(S103)、このフローチャートに従ってそれぞれ処理されることになる。
【0212】
今、一つの文書ファイルをこのプログラムにより暗号化し復号化する手順に従ってこのプログラムの操作を説明する。初めに、暗号化・復号化のための多重アファイン鍵の鍵数105を入力し(S121)、本発明の多重アファイン鍵の自動書換のための使用制限回数106の入力を行う(S122)。次に、暗号・復号のための乱数生成のための鍵ファイルの指定を行うものであり、図13に示すようにキー情報のある場所を画面109により指定されることで(S104)、この指定された鍵ファイルが読み込まれる(S105)。次に、暗号化すべきファイルを図14に示す画面111より指定して読み込む(S107)。読み込みが完了すれば、図15の(a)の暗号化の開始指示を待つ画面が現れ、OKをクリックすることで、暗号化処理がなされ(S110)、次に図15の(b)のように処理時間と共に暗号が完了した画面が現れる(S111)。この暗号化処理の具体的な処理内容は先に詳述した第1実施形態等に示された処理に他ならない。
【0213】
更に図15に示すような暗号化済みのファイルを何処に保存するかを訪ねる画面114が現れるので、ここで場所を指定するすることで暗号化ファイルが書き込まれる(S113)。
【0214】
同様に復号化処理においても、復号化すべきファイルの指定を図17の画面121で指定し(S114)、暗号ファイルを読み込んだ後(S115)、図18の(a)の復号化開始表示をOKすると復号化処理(S117)がなされ(b)の処理時間の表示と共に終了が報告される(S118)。そして、復号化されたファイルを書き込む先を図19の画面124で指定されれば(S119)、復号化された平文ファイルは指定された場所に書き込まれる(S120)。
【0215】
更にこのプログラムは、多重アファイン鍵の新鍵を生成することも可能であり(S123)、作成された新鍵は図20の画面125により保存先が指定されれば、書き込みが行われる(S125)。
【0216】
以上のようにこのプログラムによれば、例えば図21のコンピュータシステム上で例えばファイルの圧縮解凍のプログラムのように容易な操作により、極めて処理動作が速く秘密保持性が非常に高い多重アファイン鍵の暗号・復号処理を実現することが可能となる。
【0217】
なおこのアプリケーション・プログラムは、例えばコンピュータシステムの読み込みが可能な媒体に格納されて設けられ、更に図21のコンピュータシステム132内のROM等の記憶領域に予め格納されて設けられていてもよい。又ネットワーク上にプログラムという形で存在するものであっても同等の作用・効果を示すものであることは言うまでもない。
【0218】
<<第10の実施形態>>
第10実施形態は、図22に示されるように、多重アファイン鍵を用いた暗号化・復号化方法を伴う記録媒体の記録再生装置を特定するものである。
【0219】
この記録媒体の記録再生装置は、例えばフロッピディスクやハードディスク、MO等の着脱可能又は不可能な記録媒体の記録再生装置であり、図22において、その基本構造が示されている。すなわち、外部に対するインタフェース部151と、これに接続され全体の動作を制御する制御部152であって、この制御部152は、それぞれ暗号化制御部153,書込制御部154,ドライブ制御部155,復号化制御部156,読出制御部157を有しており、それぞれに多重アファイン鍵による乱数生成部161,暗号化部162,ディスクドライバ165,多重アファイン鍵による乱数生成部163,復号化部164が接続されており、又更に暗号化部162には書込ヘッド167が、復号化部164には読出ヘッド168が接続されている。
【0220】
このような構成により、この媒体記録再生装置は、その記録処理において、所定回転数の回転がディスクドライバ165により加えられる記録媒体166に対して、制御部152の制御下において、インタフェース部151から与えられた所定情報が多重アファイン鍵による乱数生成部161により発生した乱数列に応じて暗号部162にて暗号化され、この暗号化情報の書込が書込ヘッド167によって行われる。
【0221】
更に読出処理においては、同様に、ディスクドライバ165により回転する記録媒体166から読出ヘッド168により上記の暗号化情報が読み出され、多重アファイン鍵による乱数生成部163による乱数列に応じて復号部164にて復号化され、更にインタフェース部151を介して外部へと出力される。
【0222】
この読出・書込時の暗号化・復号化処理の各形態においては、上述した第1実施形態乃至第3実施形態に限らず全ての実施形態を伴う様々な形態が可能であることは言うまでもない。つまり、多重アファイン鍵は予め格納されたものである場合もあれば、インタフェース部151から与えられた秘密鍵Hにより特定されるものであっても良い。
【0223】
更に上記した暗号化・復号化処理は読取・書込の際に常に自動的に行われるものであっても良いし、ユーザの設定により選択的に行われるものであっても良い。本発明によれば、どの場合でも自動書換される多重アファイン鍵によって、解読が不可能な極めて高い機密性をもった媒体記録再生装置を提供することが可能となる。
【0224】
<<第11の実施形態>>
第11実施形態は、図23に示されるものであり、本発明の多重アファイン鍵の暗号化復号化方法を伴う光ディスク媒体の記録再生装置を特定するものである。
【0225】
この実施形態はすなわち、記録媒体としての光ディスク(例えばDVD−RAM)340に対して集束光を用いてデータ(情報)を記録したり、上記光ディスク340に記録されているデータを再生する光ディスク記録再生装置について、本発明の暗号化復号化方法を適用させてものである。
【0226】
図23において、この光ディスク記録再生装置は、全体の動作を制御するCPU390と、これにデータバスを介して接続されるメモリ397と、D/A変換器391とを有しており、更に情報の記録系としては、多重アファイン暗号部394と、これに接続される多重アファイン鍵による乱数生成回路393と、データ生成回路374と、レーザ制御回路373を有しており、これらに接続される光学ヘッダ部365とを有している。更に情報の再生系としては、データ再生回路378とエラー訂正回路392と乱数発生回路395と復号化部396とを有している。更に駆動系としては、この光学ヘッダの移動を行うリニアモータ366と駆動コイル367とこのリニアモータを制御するリニアモータ制御回路368と、更にこの光学ヘッダの近傍に設けられ光ディスク340を保持し回転駆動させるモータを制御するモータ制御回路364を有している。更に光学系としては、この光学ヘッダ365のレーザの光ディスク340に対するフォーカシング制御を行うフォーカシング制御回路387と、トラッキングを行うトラッキング制御回路388とを有している。
【0227】
このような構成において、光ディスク340に対する情報の記録は以下のように行われる。つまり、モータ制御回路364により駆動されるモータにより所定回転数で回転される光ディスク340に対して、CPU390の制御下において、記録すべく入力された所定情報は、暗号化部394へと供給され、一定使用回数ごとに書き換えられる多重アファイン鍵に基づく乱数列により、暗号情報へと暗号化される。更にこの暗号情報は、データ生成回路374を経て、記録されるべきデータとして記録用のレーザに置き換えられる。そして、光ヘッダ365を用いて、光ディスクの所定の記録領域へ記録されるものである。
【0228】
この際の多重アファイン暗号部394の暗号化処理については、既に上述した本発明の各実施形態の特徴を伴う処理が可能であることは言うまでもない。例えば多重アファイン鍵は初めから与えられている場合に限らず、外部からの暗号鍵Hによってその度に生成されるものであっても良い。
【0229】
又更に光ディスク340に記録された情報の再生処理は以下のように行われる。つまり、上述した回転系と光学系との読み出し動作に基づき、光ディスク340の所定領域から光ヘッダ365を介して読み出された暗号化情報は、データ再生回路378を介して再生信号に置き換えられる。更に一定使用回数の度に書き換えられている多重アファイン鍵による乱数生成回路395における多重アファイン鍵により発生された乱数列に基づいて復号化され、再生信号として出力される。
【0230】
この場合の暗号化及び復号化処理の具体的な詳細については、既に説明した豊富な実施形態のそれぞれを用いて可能である。つまり一例として、乱数発生のための多重アファイン鍵は予めメモリ393等に格納されていても良いし、第2実施形態のように外部から与えられる秘密鍵H等から書込の度に設定されるものであっても良い。
【0231】
以上説明したように、光ディスク記録再生装置においても、本発明の自己書換機能を持った多重アファイン鍵による暗号化復号化処理により、迅速な暗号化によって第三者が読み取ることが困難な機密性の非常に高い光ディスク記録再生装置を提供することが可能である。
【0232】
<<第12の実施形態>>
第12実施形態は、図24に示されるものであり、いわゆる携帯電話等の無線送受信装置であって本発明の多重アファイン鍵による暗号化・復号化処理を伴うものを特定している。
【0233】
この無線送受信装置は、その基本的構成が図24により示され、この図において、この無線送受信装置は、アンテナ201と、デュプレクサ202と、RF受信利得可変増幅器203と、RF帯域制限フィルタ204と、周波数変換器205と、IF帯域制限フィルタ206と、IF受信利得可変増幅器207と、変調・復調部208と、IF送信利得可変増幅器211と、周波数変換器212と、RF帯域制限フィルタ213と、RF送信利得可変増幅器214と、電力増幅器215と、アイソレータ216と、ボコーダ287と、スピーカ288とを有している。
【0234】
この無線送受信機はこのような構成において、受信処理について説明すると、基地局から送信されるフォワードリンク信号はアンテナ201で受信、デュプレクサ202で受信信号帯域内の成分だけフィルタリング、RF受信利得可変増幅器203で増幅あるいは減衰、RF帯域制限フィルタ204で不要成分をフィルタリング、周波数変換器205でRF帯からIF帯へ周波数変換、IF帯域制限フィルタ206で不要成分をフィルタリング、IF受信利得可変増幅器207で増幅あるいは減衰され、変調・復調部208へ入力する。
【0235】
変調・復調部208は、例えば直交復調部281と、A/D変換部282と、情報信号復調部283と、情報信号変調部284と、D/A変換部285と、直交変調部286で構成される。この構成において、直交復調部281で直交復調された信号はA/D変換部282でA/D変換され信号復調部283で情報信号復調されると共に出力される。さらにこの出力信号は、多重アファイン鍵による乱数生成回路291により多重アファイン鍵から発生した乱数列に基づく復号化により、復号化部292において復号化信号として出力される。
【0236】
これにより、一定使用回数ごとに書き換えられる多重アファイン鍵による極めて機密性の高い暗号化情報の復号化を可能としている。更にこの際の復号処理化は、既に詳述した各実施形態に応じた形での実施が可能である。一例として、第2実施形態における場合であり、暗号文と共に秘密鍵Hと初期ベクトルVとを受信し、これらに応じたアファイン鍵をその度に生成しこれに応じた乱数列を生成し、この乱数列による複合化を行う場合である。これにより、通信毎に新たなアファイン鍵での復号処理が可能となる。
【0237】
又、更にこの無線送受信機の送信処理について以下に説明すると、移動局から送信されるリバースリンク信号はボコーダ287により与えられ、これを多重アファイン鍵による乱数生成回路290から与えられた多重アファイン鍵による乱数列によって、暗号化部289にて暗号化する。この暗号化された暗号化信号は、情報信号変調部284で変調されて出力されD/A変換部285でD/A変換、直交変調部286で直交変調され、IF送信利得可変増幅器211で増幅あるいは減衰され、周波数変換器212でIF帯からRF帯へ周波数変換、RF帯域制限フィルタ213で不要成分をフィルタリングして、RF送信利得可変増幅器214で増幅あるいは減衰、電力増幅器215で増幅、デュプレクサ202で送信信号帯域内の成分だけフィルタリングされて、アンテナ201で空間へ送信される。
【0238】
このようにして、一定使用回数ごとに自動書換が行われる多重アファイン鍵により暗号化された無線信号は、第三者の解読が不可能なものとして高い機密性を有している。又、この暗号化の際の形態については、既に詳述した各実施形態での暗号化が可能であることは言うまでもない。例えば、多重アファイン鍵は予めメモリ等に格納されているだけでなく、第2実施形態が特定するように、現在、通信している通信相手から供給された復調部283からの秘密鍵Hや初期ベクトルVに基づいて作成された新たな多重アファイン鍵であってもよい。この場合は、互いの通信相手同士の固有なアファイン鍵により暗号・復号を伴う通信を行うことが可能になり、極めて機密性の高い通信を実現することができる。
【0239】
以上、詳述したように、いわゆる携帯電話等の無線送受信装置においても、本発明の多重アファイン鍵による暗号化部、復号化部を設けることにより、迅速で極めて機密性の高い通話を実現することが可能になる。
【0240】
【発明の効果】
以上説明したように、本発明によれば、高速で暗号化でき、かつ解読することができない汎用性のある暗号化方法及び暗号化システムを提供する。
【0241】
また、乱数と多重アファイン鍵を用いてストリーム暗号化を行うことにより、既知平文攻撃法を排除し、安全で高速な暗号法を確立する。
【0242】
暗号文の通信に際しても、互いに暗号化のための多重アファイン鍵を通信相手間で共通に保持しておくことにより、暗号化の鍵情報を通信することなく暗号化文を通信することができ、安全性の高い解読ができない暗号化通信が可能となる。
【0243】
また、第5実施形態(図3)のように、通信毎にアファイン鍵を変更していき、変更したアファイン鍵で通信文の暗号化復号化を行うことにより、安全性の高い解読ができない暗号化通信が可能となる。
【0244】
更に、第6実施形態(図4)のように、通信に先立ち暗号化のための鍵情報を互いに共有するように制御して通信毎にアファイン鍵を変更することにより、安全性の高い解読ができない暗号化通信が可能となる。
【0245】
また、第7実施形態(図5)のように、認証先に予め付与した多重アファイン鍵を用いて認証元より送られてくる通信文を暗号化し、暗号化文を認証元に送り、認証元では同様の手順で通信文を復号化して正確に復号化できれば認証先が正しかったと認証するようにすれば、安全性の高い認証が可能となる。
【0246】
更に、第9実施形態(図11乃至21)のように、コンピュータプログラムで多重アファイン鍵の暗号化複合化を行うことにより、非常に容易な操作で、迅速で安全性の高い暗号・復号処理を実現することが可能になる。
【0247】
更に、第10及び11実施形態(図22,23)のように、媒体の記録再生装置の内部に、多重アファイン鍵の暗号化複合化回路を設けることで、安全性の非常に高い情報の記録再生を容易に実現することが出来る。
【0248】
更に、第12実施形態(図24)のように、多重アファイン鍵の暗号化複合化回路を携帯電話等の無線送受信機に設けることにより、極めて機密性の高い通話等を容易に実現することができる。
【図面の簡単な説明】
【図1】本発明の第1及び第4実施形態に係る一実施形態の暗号化通信システムのシステム構成を示す図である。
【図2】本発明の第1及び第4実施形態の暗号化通信制御手順を説明するための図である。
【図3】本発明の第5実施形態の暗号化通信制御手順を説明するための図である。
【図4】本発明の第6実施形態の暗号化通信制御手順を説明するための図である。
【図5】本発明の第7実施形態の暗号化方法を利用した認証手順例を示す図である。
【図6】本発明の第1実施形態に係る多重アファイン鍵の暗号化処理を説明するフローチャート。
【図7】本発明の第1実施形態に係る多重アファイン鍵の復号化処理を説明するフローチャート。
【図8】本発明の第2実施形態に係る多重アファイン鍵の暗号化処理を説明する説明図。
【図9】本発明の第2実施形態に係る多重アファイン鍵の復号化処理を説明する説明図。
【図10】本発明の第8実施形態に係る多重アファイン鍵の暗号化・復号化処理を伴うネットワーク通信を行う通信装置の構成を示すブロックダイアグラム。
【図11】本発明の第9実施形態に係る本発明に係る多重アファイン鍵の暗号・複合処理を行うアプリケーション・コンピュータプログラムの基本動作を示すフローチャート。
【図12】前記アプリケーション・プログラムのメインメニュを示す画面。
【図13】前記アプリケーション・プログラムの鍵ファイルの読込の画面。
【図14】前記アプリケーション・プログラムの暗号化ファイルの読込の画面。
【図15】前記アプリケーション・プログラムの暗号化処理の開始画面と終了画面を示す図。
【図16】前記アプリケーション・プログラムの暗号化ファイルの作成の画面。
【図17】前記アプリケーション・プログラムの複合化処理の対象とする暗号化ファイルの選択の画面。
【図18】前記アプリケーション・プログラムの復号化処理の開始画面と終了画面を示す図。
【図19】前記アプリケーション・プログラムの複合化ファイルの作成の画面。
【図20】前記アプリケーション・プログラムの鍵ファイルの作成の画面。
【図21】本発明の第9実施形態に係る多重アファイン鍵の暗号・複合処理を行うアプリケーション・コンピュータプログラムが実行されるコンピュータシステムの外観図。
【図22】本発明の第10実施形態に係る多重アファイン鍵の暗号化・復号化処理を伴うフロッピディスク等のディスク装置の構成を示すブロックダイアグラム。
【図23】本発明の第11実施形態に係る本発明に係る多重アファイン鍵の暗号化・復号化処理を伴う光学ディスク録画再生装置の構成を示すブロックダイアグラム。
【図24】本発明の第12実施形態に係る多重アファイン鍵の暗号化・復号化処理を伴う移動携帯電話の構成を示すブロックダイアグラム。[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an encryption method using a stream cipher that cannot be easily decrypted, an encryption communication method, and an encryption communication system.
[0002]
[Prior art]
Conventionally, a stream encryption method has been known as an encryption method capable of simple and high-speed processing.
[0003]
Stream encryption is a bit string {md} For a random number sequence {Ri} To generate Cd= Md(Xor) RiCiphertext {Cd} Is generated.In the following description, d is a symbol meaning a natural number.Here, (xor) represents an exclusive OR.
[0004]
However, conventional stream cryptography is vulnerable to known plaintext attacks. Various methods for avoiding known plaintext attacks have been devised, but the weaknesses against known plaintext attacks of stream ciphers have not been solved.
[0005]
Furthermore, although stream ciphers can be created using pseudo-random numbers, security cannot be ensured and encryption keys can easily be identified by known plaintext attacks.
[0006]
For example, the Römer method (Lehmer method), which is one of random number generation methods, sets an initial value r to an integer (a, b, m).0As a random number
Rd= (ARd-1+ B) (mod m)
I was able to create a stream cipher. In this case, a, b, and m are encryption keys.
[0007]
However, the random number sequence {Ri} Can be easily identified, and it was easy to determine the integers a, b, and m using this.
[0008]
As described above, even if a specific pseudo-random number generation algorithm is used, if a sufficiently large amount of encrypted data exists, an undetermined coefficient is determined and an encryption key is determined. Also, it was not possible to construct a secure cipher with only one multiplication of integers.
[0009]
Several years ago, in view of the shortcomings of the above stream ciphers, the so-called chaotic cipher has appeared. This chaotic cipher is a scheme having a high security feature, and the initial value x of a real number0And real numbers a, b, and c, and a random number sequence {Xd} Was generated as follows.
[0010]
xd= Ax2d-1+ Bxd-1+ C
As is well known, the sequence {xd} Is known to perform extremely complex behavior (chaos). Here, a, b, c, etc. are considered encryption keys.
[0011]
Such a random number sequence {yd}, {Zd}, ... and prepare a string {md} For the encryption
Cd= (Xd) (Xor) (yd) (Xor) (zd) (Xor) ... (xor) md
It was defined as Where (xd) Is xdIs the integer part of.
[0012]
In this method, it is difficult to specify a cryptographic key by masking a part of a real number type random number sequence and using only partial information for encryption. According to this encryption method, there is an advantage that high-speed encryption is realized only by software without using a special chip like DES.
[0013]
[Problems to be solved by the invention]
However, even if the chaos encryption is adopted, there is a drawback in that encryption cannot be performed unless the multiplication of the real number is used twice or more, and the computation of the encryption process takes time. In addition, since real number arithmetic is implemented differently depending on the compiler and model, the chaos cipher is essentially model-dependent and lacks versatility.
[0014]
For this reason, encryption that can be encrypted at a high speed and cannot be decrypted has been demanded. Furthermore, the encryption has been required to be versatile.
[0015]
The present invention has been made for the purpose of solving the above-mentioned problems, and aims to provide a versatile encryption method and encryption system that can be encrypted at high speed and cannot be decrypted. To do.
[0016]
[Means for Solving the Problems]
The present invention takes the following forms to achieve the above-described object.
[0017]
As one embodiment to solve the problem,
Each of the plurality of affine key data defined by “K (x) = ax + b” represented by “at least four integers of a plurality of coefficients a and b, the number of times of use c, and a predetermined number of times n that can be used” Affine key generation and holding means for generating and holding;
Random number generating means for selecting i-th affine key data from a plurality of affine key data held in the affine key generation holding means, and generating random number sequence data based on the selected i-th affine key data When,
The i-th affine key data generated by the random number generation means is counted for use c for generation of random number sequence data, and it is determined that the use count c is equal to or greater than the predetermined number n for the i-th affine key data. In this case, the use count c of the i-th affine key data is set to 0, and the i stored in the affine key generation and holding means is based on the j-th affine key data held in the affine key holding means. Control means for updating the coefficients a and b of the second affine key data;
And when the coefficient b after updating the i-th affine key data becomes 0, the updated coefficient b is set to 1, and the updated coefficient a is 0. In addition, the random number generation device is characterized in that the updated coefficient a is a primitive root.
[0018]
As one embodiment to solve the problem,
Each of the plurality of affine key data defined by “K (x) = ax + b” represented by “at least four integers of a plurality of coefficients a and b, the number of times of use c, and a predetermined number of times n that can be used” Affine key generation and holding means for generating and holding;
A random number that selects i-th affine key data from a plurality of affine key data held in the affine key generation holding means and generates random number sequence data based on the selected i-th affine key data Generating means;
The i-th affine key data generated by the random number generation means is counted for use c for generation of random number sequence data, and it is determined that the use count c is equal to or greater than the predetermined number n for the i-th affine key data. In this case, the number of uses c of the i-th affine key data is set to 0, and the i stored in the affine key holding unit is based on the j-th affine key data held in the affine key generation and holding unit. Control means for updating the coefficients a and b of the second affine key data;
Memory to hold plaintext,
Encryption means for calculating the random number sequence data generated by the random number generation means and the plaintext stored in the memory by exclusive OR, creating an encrypted text, and recording the encrypted text on a recording medium When,
And when the coefficient b after updating the i-th affine key data becomes 0, the updated coefficient b is set to 1, and the updated coefficient a is 0. Further, the encryption system is characterized in that the updated coefficient a is a primitive root.
[0028]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the present invention will be described below in detail with reference to the accompanying drawings. In the present embodiment described below, by providing a stream cipher that uses a complete random number only once, it can be encrypted at high speed and cannot be decrypted. An encrypted communication system is provided.
[0029]
The first to twelfth embodiments of the present invention are described in order below.
[0030]
The first to third embodiments are embodiments of the encryption / decryption method.
[0031]
The fourth to sixth embodiments are embodiments of the first to third communication devices using this encryption / decryption method.
[0032]
The seventh embodiment is an embodiment of an authentication method using this encryption / decryption method.
[0033]
The eighth embodiment is an embodiment of a network system (router device or the like) using this encryption / decryption method.
[0034]
The ninth embodiment is an embodiment of an application computer program using this encryption / decryption method.
[0035]
The tenth embodiment is an embodiment of a disk drive using this encryption / decryption method.
[0036]
The eleventh embodiment is an embodiment of an optical disc recording / reproducing apparatus using this encryption / decryption method.
[0037]
The twelfth embodiment is an embodiment of a mobile phone using this encryption / decryption method.
[0038]
<< First Embodiment >>
The first embodiment specifies the basic encryption method and decryption method using the multiple affine key of the present invention.
[0039]
[Outline of Encryption Method of this Embodiment]
In this embodiment, in order to eliminate the disadvantages of the conventional stream cipher, the principle of random number generation suitable for stream encryption is sought, and the encryption method described below is employed, so that decryption is virtually impossible. In addition, high-speed encryption / decryption processing can be realized. The outline of encryption according to this embodiment will be described below.
[0040]
In this embodiment, stream encryption, which is weak against known plain culture attacks and has not been used in the past, is performed by using a random number sequence and a multiple affine key (which is a feature of the present invention. This is a secret key, and the secret key (coefficient) is rewritten every predetermined number of times, so that it is possible to exclude a third party trying to decrypt.
[0041]
Shannon has proven that there is no cryptanalysis in Vernam ciphers, which are stream ciphers that use complete random numbers only once. This indicates that if a known plaintext attack method is eliminated and a high-quality random number generation method is found, a secure and high-speed encryption method can be established.
[0042]
The present invention pays attention to this point and devised a pseudo-random number generation method to which the undetermined coefficient method cannot be applied, and realized a highly reliable encryption by generating a stream cipher using this random number.
[0043]
Specifically, a high-quality random number is generated using a multiple affine key, and at this time, the coefficient of the multiple affine key is rewritten every certain number of times of use. In other words, multiple affine keys that can be rewritten after a certain number of times of use are used as encryption / decryption keys that are difficult for third parties to decrypt, and multiple multiple affine keys are prepared for rewriting. By mutually referring to each other's keys and automatically updating the coefficients, the decryption by the undetermined coefficient method by a third party is eliminated.
[0044]
That is, the present invention defines a key lifetime, a method of automatically rewriting an old key (multiple affine key coefficient), and using a multiple affine key, a high-quality random number sequence {Ri} And an encryption method for applying this to encryption / decryption.
[0045]
[Description of affine key]
The affine key used in this embodiment will be described below.
[0046]
The affine key used in the present invention corresponds to a coefficient of a multiple affine key for generating a random number sequence used for encryption. This affine key is automatically updated every predetermined number of times used to generate a random number sequence, thereby completely eliminating third party decryption.
[0047]
When the finite field F is considered, the finite field F can be realized by specifically designating a set of integers and an operation on it. For example, it can be expressed as F = Z / (p) (p prime number) or a Galois field of characteristic p. The affine key K on the finite field F at this time can be represented by four integers K = {a, b, c, n}. Here, the action of the affine key K on the integer xεF is defined as follows.
[0048]
K (x) = ax + b
Here, c is a counter that counts how many times the affine key has been used, and n is an upper limit (lifetime) of the number of times this key can be used. One affine key generates a pseudo-random number of the Laemer method.
[0049]
In practice, a multiple affine key system using a plurality of affine keys is employed instead of using one affine key.
[0050]
In the multiple affine key system, when the number of keys is M, a plurality of affine keys {K [i]} (0 ≦ i ≦ M−1) and one key rewriting process in terms of structure representation. Procedure: A procedure (procedure) w (i, j: integer).
[0051]
Here, the multiplication and the addition use the operation of the finite field considered.
[0052]
In this procedure, the coefficient a of the i-th affine key K [i] to be rewritten can be rewritten based on the coefficient a and the coefficient b of the j-th affine key K [j] to be rewritten. I understand.
[0053]
Further, it can be seen that the coefficient b of the i-th affine key K [i] to be rewritten is rewritten based on the coefficient a and the coefficient b of the j-th affine key K [j] to be rewritten.
[0054]
The encryption processing can be realized by software, and each K [i] is initialized by some method when the software is activated. For the reasons described later, K [i] .n = 3 unless otherwise specified. Even if control is performed so that the affine key is initialized when the encryption process is started, it is virtually impossible to decrypt the ciphertext as described later.
[0055]
[Ciphertext generation method]
Next, the plaintext encryption / decryption procedure using the multiple affine key according to the first embodiment of the present invention will be described below with reference to the flowcharts of FIGS.
[0056]
In FIG. 6, the plaintext {mi} Is shown in the order of encryption to ciphertext {ci}. Here, the initial value x of the random number sequence0And generate a random number sequence according to the following rules. That is, first, the steps (1) to (5) are executed, and then the steps (2) to (5) are repeatedly executed, thereby generating a random number sequence and a byte sequence {mi} From ciphertext ciProcess to generate.
[0057]
Step ▲ 1 ▼
i = 0, initial value x of random number sequence0Is added.
[0058]
That is, the initial value x of the random number sequence is first added to the beginning of the ciphertext.0To synchronize with each other. As a result, the multiple affine key K is set.d, X is initialized (S51).
[0059]
Step ▲ 2 ▼
Next, plaintext miIs read (S52), and a random number sequence {R using the affine key k [i] by the following procedure.i} Is generated (S53, S54).
[0060]
xd= K [i] (xd-1), K [i] .c = K [i] .
And then K [i]. If c is equal to or less than the set number n, it is not necessary to update the key yet, so the random number sequence {Ri} And plaintext miAre calculated by exclusive OR (S60, S61), and the obtained ciphertext CiIs output (S62).
[0061]
ci= Mi(Xor) (xd and 255)
Step (3)
Also herejIs the upper 8 bits of x, and the affine key K to be used next is specified (S55).
[0062]
j = (xd shr 8) and (M-1)
Here, M represents the number of keys, and M is a power of 2.
[0063]
Step (4)
If K [i] .c ≧ K [i] .n, w (i, j) is executed and K [i] .c = 0.
[0064]
That is, if the number of times of use has reached the required number of times of rewriting, the above-described rewriting procedure w (i, j) is executed, and the coefficients a and b of the multiple affine key are rewritten (S57 to S59). ).
[0065]
Step 5
Let i = j.
[0066]
Returning to step (2), the steps (2) to (5) are repeated for the next message. In the flowchart of FIG. 6, this corresponds to the part where the process proceeds from step S62 to step S52. That is, in the subsequent processing, the encryption / decryption processing is performed while automatically rewriting the multiple affine key and the random number sequence.
[0067]
In this case, since the multiple affine key {K [i]} is rewritten in exactly the same way for both communication partners, common key information can be shared as long as they are synchronized with each other. Communication or the like can be performed without including the encryption key information in the sentence.
[0068]
[Deciphering ciphertext]
The ciphertext decryption process using the multiple affine key according to the present invention will be described with reference to the flowchart of FIG. Basically, it can be considered that the ciphertext generation method and the procedure of the ciphertext decryption method are almost the same.
[0069]
That is, in order to decrypt the ciphertext, it is necessary to generate a random number sequence similar to the case where the ciphertext is created.d, X initialization (S71) is not the same as the encryption step S51, the same random number sequence {Ri} Cannot be obtained.
[0070]
Therefore, the random number sequence generation procedure (S72 to S75) must be the same as the encryption random number sequence generation procedure (S52 to S55), and the affine key rewrite process (S76 to S79) is also encrypted. Must be the same as the rewriting process (S56 to S59).
[0071]
Finally, for decryption, plaintext miAnd random number sequence {Ri} Is obtained (S60 to S62), while ciphertext C is used for decryption.iAnd the obtained random number sequence {Ri} To obtain the exclusive OR (S80 to S82), the first plaintext miHowever, this is also very similar. After all, it is not a mistake to say that the encryption process and the decryption process are almost the same.
[0072]
[Characteristics of random number sequence]
Random number sequence {R generated by the above method using multiple affine keysi} Has a very long period. According to experiments, even with two affine keys, M2It becomes the above period. If three or more affine keys are used, the period cannot be measured. It was also confirmed that there was no high-dimensional sparse crystal structure of random number sequences, which was a problem with the Laemer method.
[0073]
From the above, it is clear that the multiple affine key encryption that generates the stream cipher using the multiple affine key has very high security.
[0074]
Further, in this way, a random number sequence {R generated by a method using multiple affine keysi} Is a very good quality random number sequence, and the repetition cycle is negligible. The random number sequence generated by this method is not only used for encryption, but can be applied to various processes to obtain good results. .
[0075]
For example, good results can be obtained even by numerical integration using the Monte Carlo method, and even in operations that require enormous amounts of time in general operations, the random number generated by the above method is performed a predetermined number of times. If the calculation result is evaluated, a high-quality result with a small calculation amount and a small error can be derived. Therefore, by applying to various processes using random numbers, good results without deviation can be obtained.
[0076]
In the present embodiment, a random number sequence {Ri} Is an integer value of 16 bits or more. The lower 8 bits are used for encryption, and the upper 8 bits are used as data for selecting a key number regardless of encryption. The upper 8-bit data is information that cannot be seen from the outside of the encryption key.
[0077]
In the encryption of the present embodiment, the number of keys is indefinite, and even if the number of keys is increased, the encryption speed is hardly affected. The number of keys is usually 2 to 28= Any of 256. Encryption is performed while these affine keys are constantly updated with a certain probability. For this reason, it is very difficult to specify the encryption key. If the encryption key cannot be specified, the cipher of this embodiment can be considered equivalent to the Vernam cipher (Vernam cipher), which is theoretically impossible to decipher, and can be said to be a cipher having no decryption method.
[0078]
[Cryptographic acceleration method]
In the present embodiment described below, taking the above into consideration, the following technique is used to realize high-speed encryption and decryption, and an integer is used to generate one random number. It is sufficient to execute the multiplication of. In addition, it is possible to update an affine key with a certain probability by multiplying two integers, and a relatively time-consuming division is unnecessary.
[0079]
If the upper limit of key update is constant at N = K [i] .n, on average, 2 / N integer multiplication is used for key update. That is, the average number of multiplications per byte is {1+ (2 / N) = (N + 2) / N} on average. When N = 3, this value is about 1.666. That is, if the encryption key is lengthened, the security is increased, but the multiplication of integers is less than twice on average per byte.
[0080]
From the point of view of cryptographic attackers, K [i] .a and K [i] .b are 4 byte unknowns. When N = 3, when using a 3 byte random number for encryption, this key is It will be rewritten. For this reason, the affine key system in this case is extremely safe.
[0081]
niIf K [i] .n is randomly set based on the secret key information, the life of the key becomes longer on average and the encryption speeds up. As a result, it becomes easier to decipher the cipher, but it can be considered that it cannot be deciphered for the following reason.
[0082]
Some of the keys are ni= 3. This key is rewritten relatively frequently. The rewriting of one key has a probabilistic influence from the generation of a random number immediately after that. In fact, if this key is used even once, then the affine key system itself will generate a completely different random number sequence. In this case, the number of integer multiplications is averaged
It becomes. This value is M = 32, ni= The number of keys of 3 is about 5, random numbers {ni} Range is 3 ≦ niIn the case of ≦ 500, the value is 1.0618. This value is a random number {ni}, But it does not substantially exceed 1.1. That is, it can be about 50% faster than the safest case.
[0083]
Furthermore, when the number of affine keys is increased, the number of keys increases compared to the first case and the security is improved. However, the encryption speed is slightly higher, though it is young. Therefore, it is advantageous that the number of affine keys is large as long as it is within the range of the CPU's primary cache memory.
[0084]
By adopting the encryption method described above, it is possible to obtain an excellent effect that the encryption processing speed does not slow down even if the security is improved.
[0085]
[Proof of inability to decrypt ciphertext]
The security of the encryption method of the present embodiment described above will be described.
[0086]
Up to now, the above-mentioned Vernam cipher is the only cipher that has been proven to have no cryptanalysis. However, this Vernam cipher has some impractical parts, such as requiring a complete random number of the same length as plaintext as a secret key. The cipher of this embodiment is a practical cipher that improves on this point, and has complete confidentiality in the following sense.
[0087]
That is, considering the multiple Affine key system K = {K [i]} used in the encryption of this embodiment, and assuming that the lifetime K [i] .n of all Affine keys is “3”, for example, 3 bytes The complete confidentiality of the ciphertext is established.
[0088]
This can be confirmed by experiments as follows. If confidentiality is proved assuming a single key, it is clear that confidentiality is proved similarly for multiple keys.
[0089]
Assume that the affine key is K and the following processing is assumed.
[0090]
8-bit integer random number sequence r1, R2, R3Is taken arbitrarily. An affine key for generating this random number is created as follows.
[0091]
K = {a, b, c, n}, and the upper 8 bits of a are a2, Lower 8 bits a1And Similarly, the upper 8 bits of b are set to b2, Lower 8 bits b1And Initial value x of random number0Similarly, the upper 8 bits x02, Lower 8 bits x01think of. That means
a = 256 * a2+ A1, B = 256 * b2+ B1, X0= 256 * x02+ X01
(The upper 8 bits are multiplied by 256 and substantially shifted by 8 bits).
[0092]
Step 3
Where a is completely random1, A2, B1, B2One of the values will be determined. For example, a1= 41 etc. and a specific value are decided and the following assumptions are made. X01= R1It is.
[0093]
Step 4
Tentatively determined in step 31Except for a2, B1, B2, X02When the affine key K is created by appropriately selecting the three, the three random numbers generated by this K are the above r1, R2, R3Can match. This can be confirmed experimentally with a simple program.
[0094]
Therefore, trying to decipher using the above algorithm results in a number of solutions that are virtually infinite, and it is impossible to specify which of the deciphered solutions is the correct solution. become.
[0095]
That is, it has been proved that there is no means for decrypting the cipher of the present embodiment for the 3-byte cipher.
[0096]
Furthermore, considering a general multiple-affine key system K = {K [i]}, and assuming that the lifetime K [i] .n of all the affine keys is “3”, this multiple-affine key system can decrypt it. The fact that there is no law can be proved by the following method. .
[0097]
First, it is assumed that a 3-byte random number is generated by K [0]. At this stage, K [0] cannot be specified. Obviously, it is necessary to examine a few more random numbers to determine this.
[0098]
Next, it is assumed that K [0] is rewritten by K [1] after the lifetime of the key is reached because 3 bytes of encryption are performed. Then, in order to specify K [0], it is necessary to specify K [1]. However, if K [1] is also used three times, it will be rewritten with another key and cannot be specified.
[0099]
Assume that K [1] is rewritten by K [2]. Then, in order to specify K [1], it is necessary to specify K [2]. Thus, it can be seen that in this multiple affiliate key system, there is no method for specifying a key other than specifying all affiliate keys simultaneously. After all, there is no cryptanalysis method other than the method of singing all the possibilities of the key.
[0100]
The number of keys of the multiple affine key system K = {K [i]} used here iseThen, the number of possible multiple affiliate key systems is p even when p = 65521.2eThere are more than one. This value ise= 10 even when 32308That's it.
[0101]
Therefore, for example, if only one of the multiple affine keys has an affine key lifetime K [i] .n of “3”, there is no effective cryptanalysis and the lifetime of the other keys Regardless of this, it is practically impossible to decrypt the cipher of this embodiment.
[0102]
[Description of practical models]
The above-described encryption processing will be described with reference to an actual practical model.
[0103]
In a practical model, in the safest example, F = Z / (p), p = 65521, the number of affine keys is 32, and the rewrite timing is K [i] .n = 3, K [ In this case, i] .c = K [i] .a (mod 3).
[0104]
In this case, the secret keys are 64 16-bit integers.
[0105]
In addition, it is desirable to use a method of attaching the initial value of the random number to the head of each ciphertext. For example, after executing a predetermined number of times a process of generating a random number using a multiple affine key held based on the initial random number, the generated random number and the state of the key are used for encryption. Can be determined in advance. By adopting this method, known plaintext attacks can be effectively eliminated.
[0106]
In this case, the total number of affine keys is
This is a 309 digit number. This is a number that seems to be larger than the number of elementary particles in the entire universe, and is virtually impossible to decipher.
[0107]
In the first embodiment described above, the initial value x of the random number sequence is added to the beginning of the ciphertext.0However, the present invention is not limited to the above example, and the same secret key can be safely and repeatedly used by the following method applied to communication between groups.
[0108]
<< Second Embodiment >>
As shown in FIG. 8 and FIG. 9, the second embodiment does not generate a random number using a multi-affine key given from the beginning, but uses a multi-affine key generated based on the secret key H and the initial vector value V. The encryption / decryption method for generating a random number sequence is specified.
[0109]
In the second embodiment, the case where the same finite field as that in the first embodiment is used will be described as an example. In this case, <first method> and <second method> can be considered.
[0110]
[Application to communication between groups]
In the method described below, a communicator can communicate with a plurality of communication partners {Bobj} Is a suitable method. In this case, the communicator uses the common secret key H as the communication partner {Bobj} Share with us. Communication partner {Bobj}, In order to communicate with a communicator, an initial vector value V including an initial value v, which is one hexadecimal number, is attached to the beginning of the ciphertext. Then, the ciphertext is created by the following procedure.
[0111]
<First method>
Step ▲ 1 ▼
FIG. 8 is an explanatory diagram for explaining the encryption process of the multiple affine key according to the second embodiment of the present invention.
[0112]
In FIG. 8, the communication partner {Bobj} Generates (53) the multiple affine key K (54) based on the common secret key H (51) and the initial vector V (52).
[0113]
Step ▲ 2 ▼
Random value x at this point0Is a random number sequence {R using the multiple affine key K as an initial valuei} Is generated (59, 60), and an exclusive OR (62) is performed with this to generate a message miIs encrypted. As a result, the ciphertext CiIs output (63).
[0114]
Step 3)
Then, as shown in FIG.i) Is sent as a ciphertext to a communicator via a network or the like.
[0115]
The rewriting process (55, 57) of the multiple affine key K, which is a feature of the present invention, is automatically performed at a fixed number of times of use of the multiple affine key, making it impossible for a third party to decrypt.
[0116]
The communicator (Alice) who receives this ciphertext decrypts the cipher in the following procedure.
[0117]
FIG. 9 is an explanatory diagram illustrating a multiple affine key decryption process according to the second embodiment of the present invention.
[0118]
Step ▲ 1 ▼
In FIG. 9, at the time of decryption, first, an initial vector value V and a ciphertext Ci(63), and a multi-affine key K (54) is generated based on the secret key H (51) and the initial vector value V (52), as in the case of encryption (53). .
[0119]
Step ▲ 2 ▼
Next, the random value x when this multiple affine key K is generated0As an initial value and using a multiple affine key K, a random number sequence {Ri} Is generated (59). This random number sequence {Ri} And the input ciphertext CiThe ciphertext is decrypted by obtaining the exclusive OR (71) with, and the decrypted plaintext miIs output (61).
[0120]
The rewrite processing (55, 57) of the multiple affine key K, which is a feature of the present invention, is automatically performed at a predetermined number of times of use of the multiple affine key in the decryption processing as in the encryption processing. It is impossible to decipher.
[0121]
The ciphertext can be decrypted by the above processing.
[0122]
Since an outsider who does not have the common secret key H cannot know the multiple affine key K, the ciphertext cannot be decrypted. In this method, a substantially different key is used each time, so that security is guaranteed permanently. However, an initial vector value V of 130 bytes is attached to the beginning of the ciphertext each time.
[0123]
This part can be simplified as follows depending on the application. That is, the ciphertext CiAt the beginning of the initial value x0And key conversion information (α, β) may be attached, and a new multiple affine key K may be generated from the common secret key H by using this information, thereby performing encryption. In this case, the communication control procedure is shown below.
[0124]
<Second method>
Step ▲ 1 ▼
Communication partner {Bobj} Encrypts key conversion information (α, β) that is two hexadecimal numbers using an initial value v that is one hexadecimal number and a secret key H. That is, the key conversion information (α, β) is calculated by (mod p) and encrypted to (α ′, β ′).
[0125]
Step ▲ 2 ▼
Next, a multiple affine key K is generated from the secret key H using the key conversion information (α ′, β ′).
[0126]
Secret key H = {H1, ..., H64} For multiple affine keys Ki= Α'HiTen β ′ (mod p) and a new multiple affine key K = {K1, ..., K64}.
[0127]
Step 3)
Next, using the generated multiple affine key K, the random number R is generated by the above algorithm.iTo generate plaintext miThe ciphertext C is created. [V, α, β, C] is sent as a ciphertext to the network and transmitted to the communicator.
[0128]
Similarly, the ciphertext is decrypted by using a random number R by using an affine key generated by converting the common secret key H by the key conversion information (α ′, β ′).iIs generated and decrypted. In this case, one private key H is p3= 2812817474717561 can be used. According to this second method, unlike the first method, the original ciphertext only needs to be 6 bytes longer due to the key conversion information.
[0129]
<< Third Embodiment >>
The third embodiment specifies an embodiment in which the calculation method for generating random numbers is simplified to increase the processing speed. That is, here, when Z / (p) :( p = 65521) is used as a finite field, calculation of (mod p) is performed together with multiplication of integers. Since this calculation is an operation that is slower than one multiplication of an integer, this (mod p) calculation is performed at high speed and (216Consider whether it can be replaced with -1). If replaced, it is essentially (mod 216) Means integer calculation.
[0130]
All calculations and and (216-1), etc., the multiple affine key system gradually degenerates, and all key components become “0”. That is, in this calculation, it is very likely that the complexity of the key cannot be maintained. However, the random number sequence RiOnly the multiplication of integers when generating
xd= (K [i] .a × xd-1+ K [i] .b) and (216-1)
The rewriting of the key and the rewriting of the key as before will be relatively good when the calculation is performed with (mod p).
[0131]
However, even in the above method, when K [i] .b = 0, the above calculation is simply an integer multiplication. If K [i] .a is an even number, the generated random number is set to “0”. The probability of becoming higher. Therefore, when K [i] .b = 0, it is forcibly rewritten to K [i] .b = 1.
[0132]
Further, when K [i] .a = 0, the same key is repeatedly used, so the value is changed to “17”, which has a long cycle related to multiplication. 17 is a primitive root for p = 65521. When this part was improved, the speed could be further increased by 50% or more.
[0133]
Hereinafter, the encryption algorithm in this case will be described step by step.
[0134]
[Encryption algorithm using and]
As before, consider the multiple affine key system K = {K [i]}, K [i] = {a, b, c, n}. {a, b, c, n} uses the random numbers calculated in (mod p). Further, p = 65521.
[0135]
Where the affine key K [i] acts on the integer x
K [i] (x) = (K [i] .a × x + K [i] .b) and (215-1)
And It has already been mentioned that if this calculation is applied to key rewriting, the complexity of the key cannot be maintained. In addition, since a problem may occur in the generated random number with a small probability, the procedure w (α, β) for rewriting the key is changed as follows in the third embodiment.
[0136]
As described above, the encryption is accelerated and the complexity of the multiple affine key can be maintained. Here,
[0137]
The reason why the unit of processing is 16 bits in the above description is that the unit of processing (computer) of the control unit is 16 bits (byte unit). For this reason, the upper 8 bits and the lower 8 bits This is because they are processed separately. This value is used because the largest prime number in the bit is p = 65521. When the unit of processing is not a byte unit, it is not limited to the above processing unit.
[0138]
[High-speed encryption procedure]
The encryption procedure of the third embodiment that enables the fastest encryption will be described below. The communicator (Alice) and the communication partner (Bob) share the secret key H, and the message miSend. In the following description, the number of affine keys is 64 as an example. However, it is needless to say that the number is not limited.
[0139]
Step ▲ 1 ▼
The communicator (Alice) prepares an initial value V of one hexadecimal number as an initial value and an initial vector V which is 128 integers having random numbers as components.
[0140]
Step ▲ 2 ▼
The communicator encrypts the initial vector value V using the initial value v and the encryption key H, and uses this as a multi-affine key K calculated by (mod p).
[0141]
The multiple affine key K [i] .n is set using the secret key H as follows.
[0142]
K [i] .n = 3 (i = 0, 1, 2, 3, 4)
K [i] .n = {K [i] .a (mod 500)} + 3 (5 ≦ i ≦ 63)
Step 3)
The communicator determines the value of the random number x at this point0Using the multiple affine key K as an initial value and the message m according to the encryption method already described.iIs encrypted and ciphertext Cicreate.
[0143]
Step (4)
Finally, the communicator transmits {V, C} to the communication partner via the network.
[0144]
In this way, since a person other than the communicator and the communication partner does not know the secret key H that is key information, the multiple affine key K cannot be obtained. Since {initial vector value V} is very large, different multiple affine keys K are used every time cipher is used, and a random number sequence {R generated by two different affine keys K is used.i}, The known plaintext attack becomes meaningless.
[0145]
[High-speed decoding]
When the communication partner receives this message, it decrypts the ciphertext in the following procedure.
[0146]
Step ▲ 1 ▼
The communication partner (Bob) has an initial value of x0And K ′ is encrypted using the common key K. As a result, the same multiple affine key H as that of the communicator (Alice) can be acquired as H = K (K ′) (mod p).
[0147]
H [i] .n is also set using K as described above.
[0148]
Step ▲ 2 ▼
When C is encrypted with H, a message M can be obtained.
[0149]
In this way, the encryption can be speeded up, and can be speeded up by about 2.5 times compared with the case where the safety of the first embodiment is emphasized. For example, when a 10485 Kbyte file was encrypted using the latest high-speed personal computer (with an Intel Pentium II operating clock of 450 MHz), it was confirmed that the encryption process was completed in about 0.84 seconds. . This is a calculation that encrypts about 100 megabits per second. This indicates that it is three times faster than all existing ciphers.
[0150]
The multiple affine key encryption system of each embodiment described above defines an apparatus that generates an 8-bit random number sequence. This device is implemented purely with software, but can generate random numbers at a rate of 100 Mbit / s. This random number is excellent in the following points.
[0151]
• Faster than the Lehmer method performed with prime p (mod p).
[0152]
-Better than random numbers generated by the Laemer method.
[0153]
-The random number generated by this algorithm has a very long period, and can be regarded as having virtually no period.
[0154]
-Even if the number of affine keys is increased for more complex random number generation, the processing speed does not decrease.
[0155]
-Even if part of the affine key is changed to a higher-order polynomial key or the like to improve the random number, there is virtually no speed reduction.
[0156]
Because of such characteristics, even when a special chip for executing each encryption process described above is created, the chip can be diverted as a chip for high-speed random number generation, and the Monte Carlo method can be used in real time. The way to utilize is opened.
[0157]
<< Fourth Embodiment >>
As shown in FIG. 1, the fourth embodiment specifies a configuration example of an encryption system that specifically employs each of the encryption methods already described, and particularly uses the multiple affine key of the first embodiment. The basic encryption / decryption method is used. FIG. 1 is a diagram illustrating a configuration example of a data communication system that realizes data communication by the above-described encryption method.
[0158]
In FIG. 1, a
[0159]
The
[0160]
[First communication control procedure]
FIG. 2 shows a first communication control procedure in the communication system having such a function. The first communication control procedure shown in FIG. 2 is a method capable of high-speed encrypted communication, and is a method of continuously using an affine key by self-rewriting. This communication control procedure is a method suitable for one-to-one communication such as communication between departments of a company and communication between a head office and a branch.
[0161]
It is assumed that the mutual affine
[0162]
As shown in FIG. 2, the multiple affine key is rewritten every time communication is performed. Then, both the transmission side and the reception side hold the rewritten affine key, generate a random number sequence using the rewritten affine key, and perform encryption / decryption using the generated random number sequence. .
[0163]
That is, each time communication is performed, the multiple affine key is rewritten, and the rewritten multiple affine key is held in each affine
[0164]
However, since a mutual affine key may not be common when there is a communication problem, it is desirable to provide a common affine key sharing sequence for either request.
[0165]
This may be the transmission of an affine key from one side, or may be reset to an affine key that has been set in advance and is preset.
[0166]
According to this method, in principle, key information is not transmitted for communication between the transmission side and the reception side, and the key information for encryption is changed every time communication is performed. Realize highly reliable encryption possible. However, even in this case, the encryption can be performed at a very high speed by performing the above method.
[0167]
<< Fifth Embodiment >>
In the fifth embodiment, as shown in FIG. 3, a previously stored multiple affine key K is modified by a random number sequence α,... As an initial vector value V transferred at every communication and given. Key Kα,... Are used to specify a communication system in which encryption / decryption processing is performed.
[0168]
[Second communication control procedure]
FIG. 3 shows a second communication control procedure in the communication system having such a function. The second communication control procedure shown in FIG. 3 is an example in which a multiple affine key using random numbers is modified and used, and the base multiple affine key K is fixedly held on both the transmission and reception sides (for example, held in the ROM 12) for communication. This is a method of encrypting by changing the form of the key information with random numbers α, β, γ each time, for example, encryption of communication contents of a mobile phone, and a method suitable for communication encryption for an unspecified number.
[0169]
As a premise, the multiple affine key K is fixedly held on both the transmission side and the reception side. A multiple affine key K that uses a value obtained by encrypting the random number sequence α, β, γ with the multiple affine key K for data encryption.α, Kβ, KγUse as For this reason, for example, the transmission side transmits a random number sequence α used for encryption together with an encrypted text (A′B′C ′) of a communication text (ABC). As a result, on the receiving side, a random number sequence obtained by encrypting the random number sequence α with the multiple affine key K is converted into a new multiple affine key K.αAs a result, the ciphertext (A'B'C ') is further decrypted.
[0170]
On the transmission side, since the random number generated by the random
[0171]
<< Sixth Embodiment >>
As shown in FIG. 4, the sixth embodiment is a communication system that exchanges a multiple affine key K for each communication by exchanging a secret key H and random numbers α and β between the transmission side and the reception side. I have identified.
[0172]
[Third communication control procedure]
FIG. 4 shows a third communication control procedure in the communication system having such a function. The third communication control procedure shown in FIG. 4 is a method of performing a procedure for sharing the multiple affine key K first every time communication is started, and performing encryption using the shared multiple affine key K. Although this method takes time for key exchange, a high encryption effect can be obtained by using it for encryption of an information browser such as WWW.
[0173]
In the third communication control procedure, a procedure for sharing a multiple affine key is performed by using a Diffie-Hellman key exchange at the beginning of communication.
[0174]
Specifically, assuming that the secret key H is an element of a multiple-precision integer or a finite extension field of Z / p and defining the operation, and the random numbers are α and β, as shown in FIG. Is the secret key HαGenerate secret keys H, HαTo the receiver. Upon receiving this, the receiving side receives the received secret keys H, HαTo multiple affine keys K = (Hα)βIs generated.
[0175]
And the secret key H that generated the multiple affine key K for this encryptionβIs sent back to the sender. On the sending side, the received private key HβBased on the multiple affine key K = (Hα)βIs generated.
[0176]
Then, each transmission data ABC, DEF, GHI,... Is encrypted with this multiple affine key K and transmitted, and the receiving side decrypts it with the multiple affine key K.
[0177]
In the third communication control procedure described above, the key exchange process takes 1 to 2 seconds. However, since the key information is changed every time the communication is performed, the possibility of being decrypted is low. Can provide high encryption. Note that this method is suitable for communications that do not have a high communication frequency.
[0178]
In the above description, an example in which a multiple affine key is communicated for each communication has been described. However, the present invention is not limited to the case of performing each communication, and for example, a multiple affine key is exchanged only at the beginning of daily communication. Alternatively, the control may be performed so that multiple affine keys are exchanged at regular intervals.
[0179]
Further, instead of changing the affine key at random, it may be changed in a cyclic manner in which the affine key is sequentially changed to a predetermined type of affine key and returned to the original key at a constant cycle. In other words, even a method of repeatedly using the same key as the key first at a fixed period is virtually impossible to decipher and high security can be maintained.
[0180]
Furthermore, by using this method, it is possible to easily match the affine keys with each other even when the affine keys on the transmission side and the reception side are in a different state. For example, it is also possible to match each other's affine key by adding a specific number to the key and notifying this number.
[0181]
<< Seventh Embodiment >>
The seventh embodiment is shown in FIG. 5, and specifies the application of the above-described encryption / decryption method of the present invention to an authentication method used for personal authentication such as a credit card using a communication line. Is.
[0182]
[Authentication method using encryption method of this embodiment]
An authentication method for a specific destination using such an encryption method and a ciphertext communication control procedure will be described below. There is no substantial cryptanalysis in the encrypted text using the multiple affine key described above. Therefore, it is possible to provide an authentication method in which an outsider cannot decipher the authentication contents by performing a specific destination authentication using the encrypted text.
[0183]
That is, an authentication keyword or the like is previously given to an authentication target (authentication destination 108) as a multiple affine key K used for the encryption, and information encrypted using the multiple affine key K is sent to the
[0184]
As a first authentication method, for example, as in the case of FIG. 5, a predetermined initial vector V is assigned in advance to an authentication destination 108 (for example, a credit card member), and the
[0185]
As a second authentication method, the
[0186]
This will be described below based on a specific example. This authentication target is applicable to the following cases, for example. The application target is not limited to the example shown below, and it is needless to say that it can be applied to various cases as long as it is authentication for specifying a device such as an individual or an electronic device.
[0187]
(1) The multiple affine key for encryption is used as authentication information for electronic commerce using communication means such as the Internet.
[0188]
(2) The above-described multiple affine key for encryption is used as a keyword for permission to receive pay TV broadcasts.
[0189]
(3) A unique multiple affine key is assigned to each electronic device and used as authentication information for device identification. For example, the communication permission of the wireless device is secured by using the above-described multiple affine key for encryption for authentication for permission of communication of the wireless device such as a mobile phone.
[0190]
(4) A unique multiple affine key is assigned to each individual in advance and used as authentication information for identifying the individual.
[0191]
A specific communication control procedure for authentication will be described with reference to FIG. FIG. 5 is a diagram showing an example of an authentication procedure using the above-described encryption method. The basic communication control procedure uses a control procedure similar to the third communication control procedure of the above-described embodiment.
[0192]
As a precondition for authentication, an initial vector V is assigned as authentication information unique to the authentication target (authentication destination) 108. The initial vector V may be registered in, for example, a personal authentication card or an electronic device to be authenticated. Alternatively, a personal fingerprint may be read and, for example, Fourier transformed, and the result may be used as the initial vector V. In this way, it is not necessary to store authentication information in the device, and safety is further improved.
[0193]
It is assumed that a common multiple affine key K is prepared in advance for the
[0194]
Upon receiving this, the
[0195]
The multiple affine key K is used as a multiple affine key K for encrypting the communication text M. Then, the communication text M is encrypted with the generated multiple affine key K, and the encrypted text M ′ is returned to the
[0196]
The
[0197]
If it is difficult to specify an authentication destination prior to the communication control procedure for authentication described above, information for specifying the authentication destination, for example, ID number information of the authentication destination, is used as a communication control procedure prior to authentication. The ID number information is received and the communication control procedure for retrieving the authentication destination multiple affine key from the received ID number information may be performed.
[0198]
Even with this control, only the ID number information is communicated, and the authentication procedure does not communicate the multiple affine key and authenticates using an encryption method that does not decrypt the multiple affine key. Therefore, authentication with extremely high security is possible.
[0199]
As another recognition method, the
[0200]
Then, the
[0201]
If the sentence encrypted by each of the above-described encryption methods can be decrypted by the same procedure and correctly decrypted, if the authentication destination is authenticated, authentication with high safety becomes possible.
[0202]
<< Eighth Embodiment >>
The eighth embodiment is shown in FIG. 10, and specifies a router device used in a network system to which the encryption / decryption method of the present invention is applied.
[0203]
In FIG. 10, a plurality of
[0204]
As described above, the
[0205]
Further, the
[0206]
In such a configuration, the
[0207]
<< Ninth Embodiment >>
In the ninth embodiment, as shown in FIGS. 11 to 21, a computer program that realizes an encryption / decryption method using a multiple affine key as an application computer program that can operate on a computer, and the computer program are stored. Further, the medium for specifying the computer device loaded with the computer program is specified.
[0208]
11 is a flowchart showing the basic operation of this application program, FIG. 12 is a screen showing the main menu of this program, FIG. 13 is a screen for reading a key file, FIG. 14 is a screen for reading an encrypted file, 15 is a diagram showing a start screen and an end screen of encryption processing, FIG. 16 is a screen for creating an encrypted file, FIG. 17 is a screen for selecting an encrypted file to be decrypted, and FIG. FIG. 19 is a diagram illustrating a decryption processing start screen and an end screen, FIG. 19 is a composite file creation screen, FIG. 20 is a key file creation screen, and FIG. 21 is a computer system on which this program is executed. FIG.
[0209]
The above-described multi-affine key encryption / decryption method of the present invention can be realized very efficiently as an application computer program on a personal computer, for example. It has necessary functions including reading and storing of encrypted and decrypted files from various settings of encryption and decryption. For example, it can be operated easily like a file compression / decompression application. Is possible.
[0210]
In the following, description will be given in order with reference to the operation screen, focusing on the flowchart representing the basic operation of FIG.
[0211]
For the program that has been initialized (S101), for example, the main menu shown in FIG. 12 first appears on the
[0212]
Now, the operation of this program will be described according to the procedure for encrypting and decrypting one document file by this program. First, the
[0213]
Further, since a
[0214]
Similarly, also in the decryption process, designation of a file to be decrypted is designated on the
[0215]
Furthermore, this program can also generate a new key for multiple affine keys (S123), and the created new key is written if the save destination is designated on the
[0216]
As described above, according to this program, for example, a multi-affine key cipher with extremely high processing speed and extremely high confidentiality can be obtained by an easy operation such as a file compression / decompression program on the computer system of FIG. -Decoding processing can be realized.
[0217]
Note that this application program may be stored and provided in a medium that can be read by the computer system, for example, and may be stored in advance in a storage area such as a ROM in the
[0218]
<< Tenth Embodiment >>
In the tenth embodiment, as shown in FIG. 22, a recording / reproducing apparatus for a recording medium with an encryption / decryption method using multiple affine keys is specified.
[0219]
The recording / reproducing apparatus for recording media is a recording / reproducing apparatus for detachable or non-removable recording media such as a floppy disk, hard disk, and MO, for example, and its basic structure is shown in FIG. In other words, an
[0220]
With such a configuration, the medium recording / reproducing apparatus provides the
[0221]
Further, in the reading process, similarly, the above-mentioned encrypted information is read from the
[0222]
It goes without saying that each form of the encryption / decryption processing at the time of reading / writing is not limited to the first to third embodiments described above, and various forms involving all the embodiments are possible. . That is, the multiple affine key may be stored in advance, or may be specified by the secret key H given from the
[0223]
Further, the above-described encryption / decryption processing may always be automatically performed at the time of reading / writing, or may be selectively performed according to user settings. According to the present invention, it is possible to provide a medium recording / reproducing apparatus with extremely high confidentiality that cannot be decrypted by a multiple affine key that is automatically rewritten in any case.
[0224]
<< Eleventh Embodiment >>
The eleventh embodiment is shown in FIG. 23, and specifies an optical disk medium recording / reproducing apparatus with the multiple affine key encryption / decryption method of the present invention.
[0225]
That is, in this embodiment, data (information) is recorded on an optical disk (for example, DVD-RAM) 340 as a recording medium by using focused light, or data recorded on the
[0226]
In FIG. 23, this optical disc recording / reproducing apparatus has a
[0227]
In such a configuration, information is recorded on the
[0228]
Needless to say, the encryption process of the multiple
[0229]
Further, the reproduction process of information recorded on the
[0230]
Specific details of the encryption and decryption processes in this case are possible using each of the rich embodiments already described. In other words, as an example, a multiple affine key for generating random numbers may be stored in advance in the memory 393 or the like, or set every time writing is performed from a secret key H or the like given from the outside as in the second embodiment. It may be a thing.
[0231]
As described above, even in the optical disc recording / reproducing apparatus, the encryption / decryption processing using the multiple affine key having the self-rewriting function of the present invention makes it difficult to read by a third party by rapid encryption. It is possible to provide an extremely high optical disc recording / reproducing apparatus.
[0232]
<< Twelfth Embodiment >>
The twelfth embodiment is shown in FIG. 24, and specifies a wireless transmission / reception apparatus such as a so-called mobile phone, which is accompanied by encryption / decryption processing using a multiple affine key of the present invention.
[0233]
The basic configuration of this radio transmitting / receiving apparatus is shown in FIG. 24. In this figure, this radio transmitting / receiving apparatus includes an
[0234]
In this configuration, the radio transmitter / receiver will be described with respect to reception processing. A forward link signal transmitted from a base station is received by an
[0235]
The modulation /
[0236]
As a result, it is possible to decrypt encrypted information with extremely high confidentiality by using multiple affine keys that are rewritten every certain number of times of use. Further, the decoding process at this time can be performed in a form according to each of the embodiments already described in detail. As an example, this is the case in the second embodiment. The secret key H and the initial vector V are received together with the ciphertext, an affine key corresponding to these is generated each time, and a random number sequence corresponding to this is generated. This is a case of performing decryption using a random number sequence. As a result, decryption processing with a new affine key is possible for each communication.
[0237]
Further, the transmission processing of this wireless transceiver will be described below. The reverse link signal transmitted from the mobile station is given by the
[0238]
In this way, the radio signal encrypted with the multiple affine key that is automatically rewritten every certain number of times of use has high confidentiality because it cannot be decrypted by a third party. Further, it goes without saying that this encryption can be performed in each of the embodiments already described in detail. For example, the multiple affine key is not only stored in a memory or the like in advance, but as specified by the second embodiment, the secret key H or the initial key from the
[0239]
As described above, even in a wireless transmission / reception device such as a so-called mobile phone, by providing the encryption unit and the decryption unit using the multiple affine key of the present invention, it is possible to realize a quick and extremely confidential call. Is possible.
[0240]
【The invention's effect】
As described above, according to the present invention, there is provided a versatile encryption method and encryption system that can be encrypted at high speed and cannot be decrypted.
[0241]
In addition, stream encryption using random numbers and multiple affine keys eliminates the known plaintext attack method and establishes a safe and high-speed encryption method.
[0242]
Even when communicating ciphertext, by holding multiple affine keys for encryption in common between communication partners, encrypted text can be communicated without communicating encryption key information, Encrypted communication that cannot be decrypted with high security is possible.
[0243]
Also, as in the fifth embodiment (FIG. 3), the affine key is changed for each communication, and the encrypted message cannot be decrypted with high safety by performing the encryption / decryption of the communication text with the changed affine key. Communication becomes possible.
[0244]
Further, as in the sixth embodiment (FIG. 4), the key information for encryption is controlled to be shared with each other prior to communication, and the affine key is changed for each communication. Encrypted communication that cannot be performed.
[0245]
Further, as in the seventh embodiment (FIG. 5), the communication text sent from the authentication source is encrypted using the multiple affine key previously given to the authentication destination, and the encrypted text is sent to the authentication source. Then, if the communication text can be decrypted by the same procedure and correctly decrypted, if the authentication destination is authenticated, authentication with high safety becomes possible.
[0246]
Furthermore, as in the ninth embodiment (FIGS. 11 to 21), encryption / decryption of multiple affine keys is performed by a computer program, so that a quick and highly secure encryption / decryption process can be performed with a very easy operation. Can be realized.
[0247]
Furthermore, as in the tenth and eleventh embodiments (FIGS. 22 and 23), by providing a multiple affine key encryption / decryption circuit inside the medium recording / reproducing apparatus, it is possible to record highly secure information. Reproduction can be realized easily.
[0248]
Furthermore, as in the twelfth embodiment (FIG. 24), by providing an encryption / decryption circuit for multiple affine keys in a wireless transmitter / receiver such as a mobile phone, it is possible to easily realize an extremely confidential call or the like. it can.
[Brief description of the drawings]
FIG. 1 is a diagram showing a system configuration of an encrypted communication system according to an embodiment of the first and fourth embodiments of the present invention.
FIG. 2 is a diagram for explaining an encrypted communication control procedure according to the first and fourth embodiments of the present invention.
FIG. 3 is a diagram for explaining an encrypted communication control procedure according to a fifth embodiment of the present invention.
FIG. 4 is a diagram for explaining an encrypted communication control procedure according to a sixth embodiment of the present invention.
FIG. 5 is a diagram showing an example of an authentication procedure using the encryption method according to the seventh embodiment of the present invention.
FIG. 6 is a flowchart for explaining a multiple affine key encryption process according to the first embodiment of the present invention;
FIG. 7 is a flowchart for explaining a multiple affine key decryption process according to the first embodiment of the present invention;
FIG. 8 is an explanatory diagram illustrating a multiple affine key encryption process according to the second embodiment of the present invention.
FIG. 9 is an explanatory diagram for explaining a multiple affine key decryption process according to the second embodiment of the present invention;
FIG. 10 is a block diagram showing a configuration of a communication apparatus that performs network communication involving multiple affine key encryption / decryption processing according to an eighth embodiment of the present invention.
FIG. 11 is a flowchart showing a basic operation of an application computer program for performing encryption / combining processing of multiple affine keys according to the ninth embodiment of the present invention.
FIG. 12 is a screen showing a main menu of the application program.
FIG. 13 is a screen for reading a key file of the application program.
FIG. 14 is a screen for reading an encrypted file of the application program.
FIG. 15 is a diagram showing a start screen and an end screen of encryption processing of the application program.
FIG. 16 is a screen for creating an encrypted file of the application program.
FIG. 17 is a screen for selecting an encrypted file to be subjected to the decryption process of the application program.
FIG. 18 is a diagram showing a start screen and an end screen of the decryption process of the application program.
FIG. 19 is a screen for creating a composite file of the application program.
FIG. 20 shows a screen for creating a key file for the application program.
FIG. 21 is an external view of a computer system in which an application computer program for performing encryption / combining processing of multiple affine keys according to a ninth embodiment of the present invention is executed.
FIG. 22 is a block diagram showing a configuration of a disk device such as a floppy disk with encryption / decryption processing of a multiple affine key according to the tenth embodiment of the present invention.
FIG. 23 is a block diagram showing a configuration of an optical disc recording / reproducing apparatus with encryption / decryption processing of a multiple affine key according to the eleventh embodiment of the present invention.
FIG. 24 is a block diagram showing the configuration of a mobile cellular phone with multiple affine key encryption / decryption processing according to a twelfth embodiment of the present invention;
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2001069317AJP3923267B2 (en) | 1999-04-28 | 2001-03-12 | Random number generator and encryption system |
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP11-122866 | 1999-04-28 | ||
| JP12286699 | 1999-04-28 | ||
| JP2001069317AJP3923267B2 (en) | 1999-04-28 | 2001-03-12 | Random number generator and encryption system |
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP11216997ADivisionJP2001016196A (en) | 1999-04-28 | 1999-07-30 | Encryption / decryption method using multiple affine keys, authentication method, and devices using the same |
| Publication Number | Publication Date |
|---|---|
| JP2001308845A JP2001308845A (en) | 2001-11-02 |
| JP2001308845A5 JP2001308845A5 (en) | 2006-09-21 |
| JP3923267B2true JP3923267B2 (en) | 2007-05-30 |
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2001069317AExpired - Fee RelatedJP3923267B2 (en) | 1999-04-28 | 2001-03-12 | Random number generator and encryption system |
| Country | Link |
|---|---|
| JP (1) | JP3923267B2 (en) |
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3876324B2 (en) | 2004-03-31 | 2007-01-31 | 独立行政法人情報通信研究機構 | Random number sequence sharing system, random number sequence sharing device, encryption / decryption system, encryption device, decryption device, random number sequence sharing method, encryption method, decryption method, and program |
| GB2446199A (en) | 2006-12-01 | 2008-08-06 | David Irvine | Secure, decentralised and anonymous peer-to-peer network |
| JP2014048635A (en)* | 2012-09-04 | 2014-03-17 | Hitachi Solutions Ltd | Hard disk encryption program and hard disk encryption system |
| KR102523794B1 (en)* | 2020-11-17 | 2023-04-21 | 주식회사 한글과컴퓨터 | Electronic device that supports tree-structured cataloging of a table inserted into an electronic document and the operating method thereof |
| CN113630386B (en)* | 2021-07-15 | 2023-05-09 | 金杉 | Encryption and decryption method and device and communication system thereof |
| CN114969770B (en)* | 2021-11-01 | 2025-06-17 | 京东科技信息技术有限公司 | Data encryption method, device, computer readable storage medium and product |
| Publication number | Publication date |
|---|---|
| JP2001308845A (en) | 2001-11-02 |
| Publication | Publication Date | Title |
|---|---|---|
| JP2001016196A (en) | Encryption / decryption method using multiple affine keys, authentication method, and devices using the same | |
| JP7607599B2 (en) | Authenticated Key Exchange | |
| CN112398651B (en) | Quantum secret communication method and device, electronic equipment and storage medium | |
| US7221756B2 (en) | Constructions of variable input length cryptographic primitives for high efficiency and high security | |
| EP3476078B1 (en) | Systems and methods for authenticating communications using a single message exchange and symmetric key | |
| US6640303B1 (en) | System and method for encryption using transparent keys | |
| JP2013047822A (en) | Encryption method for message authentication | |
| CN1938980A (en) | Method and apparatus for cryptographically processing data | |
| JP2001007800A (en) | Encryption device and method | |
| JP2014531175A (en) | Dynamic encryption method | |
| Reyad et al. | Key-based enhancement of data encryption standard for text security | |
| JP4125564B2 (en) | Encryption / decryption key key generation method, encryption / decryption key key generation apparatus, encryption / decryption key key generation program, and computer-readable recording medium | |
| CN112104454A (en) | Data secure transmission method and system | |
| US8458452B1 (en) | System and method for encryption and decryption of data transferred between computer systems | |
| US11451518B2 (en) | Communication device, server device, concealed communication system, methods for the same, and program | |
| JP3923267B2 (en) | Random number generator and encryption system | |
| AU753951B2 (en) | Voice and data encryption method using a cryptographic key split combiner | |
| CN114726543B (en) | Method and device for key chain generation, message sending and receiving based on message chain | |
| US7231048B2 (en) | Key sharing system, public key cryptosystem, signature system, key sharing apparatus, encryption apparatus, decryption apparatus, signature apparatus, authentication apparatus, key sharing method, encryption method, decryption method, signature method, authentication method, and programs | |
| KR20060058789A (en) | Method and device for data security in home network system | |
| JP2000004223A (en) | Encryption/authentication system | |
| CN113923029A (en) | Internet of things information encryption method based on ECC (error correction code) hybrid algorithm | |
| Kumar et al. | A novel approach for enciphering data of smaller bytes | |
| KR100545628B1 (en) | Security association negotiation and key exchange system and method | |
| JP2002091305A (en) | Random number generation device and encryption / decryption device using multiple affine keys, and digital data processing device and method and program using the same |
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Written amendment | Free format text:JAPANESE INTERMEDIATE CODE: A523 Effective date:20060731 | |
| A621 | Written request for application examination | Free format text:JAPANESE INTERMEDIATE CODE: A621 Effective date:20060731 | |
| A871 | Explanation of circumstances concerning accelerated examination | Free format text:JAPANESE INTERMEDIATE CODE: A871 Effective date:20061006 | |
| A975 | Report on accelerated examination | Free format text:JAPANESE INTERMEDIATE CODE: A971005 Effective date:20061016 | |
| A131 | Notification of reasons for refusal | Free format text:JAPANESE INTERMEDIATE CODE: A131 Effective date:20061024 | |
| A521 | Written amendment | Free format text:JAPANESE INTERMEDIATE CODE: A523 Effective date:20061225 | |
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) | Free format text:JAPANESE INTERMEDIATE CODE: A01 Effective date:20070123 | |
| A61 | First payment of annual fees (during grant procedure) | Free format text:JAPANESE INTERMEDIATE CODE: A61 Effective date:20070221 | |
| R150 | Certificate of patent or registration of utility model | Free format text:JAPANESE INTERMEDIATE CODE: R150 | |
| FPAY | Renewal fee payment (event date is renewal date of database) | Free format text:PAYMENT UNTIL: 20110302 Year of fee payment:4 | |
| FPAY | Renewal fee payment (event date is renewal date of database) | Free format text:PAYMENT UNTIL: 20130302 Year of fee payment:6 | |
| FPAY | Renewal fee payment (event date is renewal date of database) | Free format text:PAYMENT UNTIL: 20140302 Year of fee payment:7 | |
| 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 | |
| LAPS | Cancellation because of no payment of annual fees |