(57)【特許請求の範囲】
【請求項１】
多次多変数暗号を用いた暗号システムに用いる復号処理装置において、
暗号文Ｋに秘密の行列Ｂ−１を作用させることにより、暗号文Ｋを中間的に復号して、中間的な暗号データを得るための中間復号手段と、
前記中間的な暗号データを秘密の多項式に代入することにより、該代入で得られた値を係数とする新たな多項式Ｒj(X)を得るための評価手段と、
得られた多項式Ｒj(X)の係数と前記中間的な暗号データとから、前記中間的な暗号データを復号するための、第２の復号手段とを設けたことを特徴とする、復号処理装置。
【請求項２】
前記秘密の多項式は、前記新たな多項式Ｒj(X)の係数多項式  ｒij(X)であることを特徴とする、請求項１の復号処理装置。
【請求項３】
前記評価手段では、得られた中間的な暗号データの一部を用いて前記新たな多項式を得、
前記第２の復号手段では、得られた多項式と中間的な暗号データの他の部分とを用いて、該他の部分をさらに復号するようにしたことを特徴とする、請求項１または２の復号処理装置。
【請求項４】
前記秘密の多項式を複数記憶すると共に、
a：  前記評価手段では、中間復号手段で得られた中間的な暗号データの一部を用いて、一部の秘密の多項式に対して新たな多項式を得、
b:  得られた多項式の係数と中間的な暗号データの他の部分とを用いて、前記第２の復号手段で、該他の部分をさらに復号し、  かつ
c：  前記処理bで他の部分をさらに復号して得られたデータを、前記処理aでの中間的な暗号データの一部に加えて、前記評価手段で他の秘密の多項式に対して新たな多項式を得、該他の秘密の多項式に対して得られた新たな多項式と、中間的な暗号データの更に他の部分とを用いて、前記第２の復号手段で該更に他の部分をさらに復号することにより、前記a,bの処理を繰り返して復号を進めるようにしたことを特徴とする、請求項３の復号処理装置。
【発明の詳細な説明】
【０００１】
【発明の利用分野】
この発明は、多次多変数の暗号システムに用いる復号処理装置に関し、特に安全性と高速性とを両立させたものに関する。
【０００２】
【従来技術】
【０００３】
【特許文献１】
特開２００２−１４９０５９号公報
【０００４】
多次多変数の連立方程式の求解困難性を用いた、暗号システムが知られている。このようなシステムでは、連立方程式にメッセージの値を代入することにより暗号化がなされる。連立方程式は公開鍵として公開され、安全性の基礎は連立方程式の求解困難性である。しかしながらこのような暗号システムでは、安全性の根拠が特殊なクラスに属していることから、充分な安全性を確保することが困難であった。このため発明者は、メッセージを非還元性の非線形符号へ符号化して、縮退した暗号文に暗号化することを提案した（特許文献１）。
【０００５】
【発明の課題】
この発明の課題は、高速で暗号化や復号ができ、しかも安全性の高い、多次多変数多項式を用いた公開鍵暗号システムに用いる復号処理装置を提供することにある。
【０００６】
【用語法他】
この明細書において、紛らわしくない場合、多項式Ｙ(X)等から変数の表記を省略して多項式Ｙ等のように表記することがある。
特許請求の範囲等での記号は、図面との対象の便宜のためのもので、特許請求の範囲の解釈のためのものではない。
また暗号システムに関する記載は他のカテゴリーの復号処理装置や復号方法、復号プログラムなどにも当てはまり、逆に復号処理装置に関する記載は、暗号システムや復号方法、復号プログラムなどにも当てはまる。
多項式と中間的な暗号データの組み合わせは、実施例での加算に限らず、乗算等でも良い。
【０００７】
【発明の構成】
この発明の復号処理装置は、多次多変数暗号を用いた暗号システムに用いる復号処理装置において、
暗号文Ｋに秘密の行列Ｂ−１を作用させることにより、暗号文Ｋを中間的に復号して、中間的な暗号データを得るための中間復号手段と、
前記中間的な暗号データを秘密の多項式に代入することにより、該代入で得られた値を係数とする新たな多項式Ｒj(X)を得るための評価手段と、
得られた多項式Ｒj(X)の係数と前記中間的な暗号データとから、前記中間的な暗号データを復号するための、第２の復号手段とを設けたことを特徴とする。
【０００８】
好ましくは、前記評価手段では、前記秘密の多項式は、前記新たな多項式Ｒj(X)の係数多項式である。
【０００９】
また好ましくは、前記評価手段では、得られた中間的な暗号データの一部を用いて前記新たな多項式を得、
前記第２の復号手段では、得られた多項式と中間的な暗号データの他の部分とを用いて、該他の部分をさらに復号する。
【００１０】
更に好ましくは、前記秘密の多項式を複数記憶すると共に、
a：  前記評価手段では、中間復号手段で得られた中間的な暗号データの一部を用いて、一部の秘密の多項式に対して新たな多項式を得、
b:  得られた多項式の係数と中間的な暗号データの他の部分とを用いて、前記第２の復号手段で、該他の部分をさらに復号し、  かつ
c：  前記処理bで他の部分をさらに復号して得られたデータを、前記処理aでの中間的な暗号データの一部に加えて、前記評価手段で他の秘密の多項式に対して新たな多項式を得、該他の秘密の多項式に対して得られた新たな多項式と、中間的な暗号データの更に他の部分とを用いて、前記第２の復号手段で該更に他の部分をさらに復号することにより、前記a,bの処理を繰り返して復号を進める。
【００１２】
【発明の作用と効果】
この発明で用いる公開鍵暗号システムでは、暗号化の過程をまとめて、公開多項式にメッセージを代入することで実現できる。このため暗号化を高速で行える。また公開多項式からは、秘密の多項式を秘密に保つことができる。この秘密の多項式が暗号化アルゴリズムの中心となるので、暗号強度が高い。復号は、中間的な暗号データの一部を得て、これにより多項式Ｒj(X)を得て、他の部分を中間的な暗号データに戻すことにより行われ、高速で行うことができる。これらのため、暗号化／復号処理とも高速で行え、しかも安全性の高い暗号システムが得られる。
【００１３】
この発明の復号処理装置では、安全性の高い暗号を高速で復号できるので、暗号通信や電子署名、認証などに適している。また比較的少ない計算量で復号できるので、ＩＣカードなどへの実装が容易である。
【００１４】
また秘密の多項式を新たな多項式の係数多項式とすると、新たな多項式が露呈しても秘密の多項式は露呈しにくく安全性が増す。
【００１５】
得られた中間データの一部を用いて新たな多項式を得て、これと中間データの他の部分を組み合わせて、他の部分を更に復号するようにすると、中間データの他の部分の安全性が中間データの一部で強化される。
【００１６】
また、前記秘密の多項式を複数記憶し、
a：  前記評価では、中間復号で得られた中間的な暗号データの一部を用いて、一部の秘密の多項式に対して新たな多項式を得、
b:  得られた多項式の係数と中間的な暗号データの他の部分とを用いて、前記第２の復号で、該他の部分をさらに復号し、  かつ
c：  前記処理bで他の部分をさらに復号して得られたデータを、前記処理aでの中間的な暗号データの一部に加えて、前記評価で他の秘密の多項式に対して新たな多項式を得、該他の秘密の多項式に対して得られた新たな多項式と、中間的な暗号データの更に他の部分とを用いて、前記第２の復号で該更に他の部分をさらに復号することにより、前記a,bの処理を繰り返して復号を進めるようにすると、暗号の安全性をさらに高くできる。
【００１７】
特に暗号文Ｋを行列Ｂ−１で処理して得られたデータをN分割してN個のブロックとし、上記a,bの処理を、中間的な暗号データの各ブロック毎に繰り返すと、暗号の安全性を極めて高くできる。
【００１８】
【実施例】
図１〜図１１に、実施例とその変形とを示す。これらの図において、２は暗号システムで、４,６は第１及び第２の情報処理装置で、パーソナルコンピュータやセキュリティサーバ、あるいはＩＣカードなどとする。情報処理装置４,６間の入出力は、通信によるものでも、あるいはＩＣカードリーダとＩＣカードとのように、単なる入出力で結ばれたものでも良い。ここでは情報処理装置４に入力メッセージｘが入力され、これを情報処理装置４で暗号文Ｋに変換し、第２の情報処理装置６で復号する場合を説明する。
【００１９】
情報処理装置４,６の構成はは同様とし、８は暗号化処理部で、１０は復号処理部であり、１２は鍵記憶部で、公開鍵である各m次の多項式ｋ1(X)〜ｋn(X)を記憶し、これ以外に秘密鍵として原始多項式Ｇj(X),d,ej,正則行列Ａ,Ｂ,秘密の多項式の係数となる多項式ｒjiを記憶する。これ以外に実施例では定数Ｊを記憶する。１４は電子署名処理部で、電子署名や認証などに用い、メッセージを暗号化する代わりに、署名や認証すべきデータを暗号化したものを復号する。電子署名や認証では、署名や認証すべきデータを暗号文と見なして、復号処理部１０で復号したものを、電子署名、あるいは認証として出力する。１６はプログラム記憶部で、暗号化のプログラムや復号プログラム並びに鍵の管理に関するプログラムや、電子署名や認証に関するプログラムを、適宜の記憶媒体に記憶させたものである。
【００２０】
表１に、実施例で用いる記号の意味を示す。図２に、変形例での暗号化過程の原理を示す。この変形例での暗号化をやや単純にしたものが実施例である。また図２では、ボックスの数を実際よりも少なく示す。入力メッセージｘをアフィン変換処理部２０でアフィン変換し、出力ｙを例えば９ブロックに分割し、各ブロックを多項式表現して、ボックス２１〜２９に格納する。ボックス２１〜２３のブロックＹ1〜Ｙ3は、そのまま新たな多項式Ｚ1〜Ｚ3として、ボックス３０〜３２に格納する。またボックス２４〜２６の多項式Ｙ4〜Ｙ6を、ボックス３３〜３５に、Ｚ4〜Ｚ6として格納する。同様にボックス２７〜２９の多項式Ｙ7〜Ｙ9を、ボックス３６〜３８に、多項式Ｚ7〜Ｚ9として格納する。
【００２１】
【表１】
実施例での記号                                
ｘ＝(ｘ1,ｘ2,…ｘn)      入力メッセージ
ｘiは拡大体Ｆq＝Ｆpa の元,pは素数
ｙ＝(ｙ1,ｙ2,…ｙn)      ｙT＝ＡｘT ,ｘをアフィン変換したデータ
Ａは正則で、n×nあるいは(n+1)×(n+1)行列
Ｙ＝(Ｙ1(X)〜ＹN(X))    ｙをＮブロックに分割し、各ブロックを多項
式表現したもの
ブロック長を添字ｔやtjで示し(j=1〜N)、ブロック
長は一定でも良く、ブロック毎に異なっても良い
Ｇj(X)                  Ｙj(X)への多項式表現に用いた原始多項式
j=1〜N  Ｇj(X)は各jに対して一定でも良い
Ｇj(X)の次数は、Ｙj(X)の次数+1  以上
θj                      Ｇj(X)の周期
ｄ                      {Ｙj(X)｝d≡Ｚj(X)  modＧj(X)の変換に用いた定数
ej                      d×ej≡１  modθj  を充たす定数
Ｒj(X)                  秘密の多項式  j=J+1〜N または j=2〜N
係数ｒijがｍ次の多項式で、変数はy11〜yJtJ
または y11〜yj-1tj-1
Ｂ                      アフィン変換用の正則行列
Ｋ                      暗号文  Ｋ=(ｋ1,…,kn)
(ｋ1(X),…,kn(X))        メッセージｘを変数とする多項式の組で、メッセ
ージｘを代入すると、暗号文Ｋが得られるもの
ｋj(X)=ｋj  (j=1〜n)
【００２２】
多項式Ｙ1〜Ｙ3を、秘密の多項式Ｒ4〜Ｒ6の評価手段４０へ入力する。なお評価手段４０は、秘密の多項式Ｒ4〜Ｒ6の各係数を記憶している。この係数は多項式で、多項式として記憶され、その変数は多項式Ｙ1〜Ｙ3の各係数である。以下では説明の便宜のために、秘密の多項式Ｒ4〜Ｒ6の係数となる多項式を係数多項式と呼ぶ。係数多項式の変数は多項式Ｙ1〜Ｙ3の係数なので、多項式Ｙ1〜Ｙ3の係数が定まると係数多項式が定まり、このため秘密の多項式Ｒ4〜Ｒ6が定まる。従って、多項式Ｙ1〜Ｙ3を評価手段４０へ入力することにより、秘密の多項式Ｒ4〜Ｒ6の各係数を評価して、新たな多項式Ｒ4(X)〜Ｒ6(X)を得ることができる。多項式の係数の値を評価、即ち決定することを、この明細書では多項式を評価する、もしくは多項式の値を求める、多項式を定める等と呼ぶことがある。これは評価後の多項式Ｒ4(X)〜Ｒ6(X)の変数Xは、多項式表現に伴う形式的な変数だからである。得られた多項式Ｒ4(X)を排他加算器４１へ出力し、ボックス３３の多項式Ｚ4と排他加算して、ボックス４４に中間暗号文のデータΓ4として出力する。同様に排他加算器４２でＲ5(X)とＺ5とを排他加算し、ボックス４５にΓ5として記憶する。さらに多項式Ｒ6(X)とＺ6とを排他加算器４３で排他加算してボックス４６に記憶させる。ここで排他加算としたのは、メッセージｘ等が標数２の体上の元である場合を想定したからで、標数が２でなければ、排他加算以外の演算を用いればよい。
【００２３】
このようにして多項式Ｚ4〜Ｚ6までの処理が終了すると、多項式Ｙ1〜Ｙ6を利用して秘密の多項式Ｒ7〜Ｒ9の各係数を評価し、多項式Ｒ7(X)〜Ｒ9(X)を発生させる。４８は秘密の多項式Ｒ7〜Ｒ9の評価手段で、同様に秘密の多項式Ｒ7〜Ｒ9の各係数を記憶する。そして多項式Ｒ7(X)〜Ｒ9(X)と、多項式Ｚ7〜Ｚ9とを排他加算器４９〜５１で排他加算し、ボックス５２〜５４に中間的な暗号文Γ7〜Γ9として格納する。
【００２４】
多項式Ｚ1〜Ｚ3を多項式ではなくベクトルと見なし、同様にボックス４４〜４６,５２〜５４のデータΓ4〜Γ9を、多項式ではなくベクトルと見なし、これらを所定の順序で並べて１つのベクトルを構成する。これをアフィン変換処理部５６に入力しアフィン変換する。アフィン変換したベクトルが、暗号文Ｋとなる。暗号文Ｋは入力メッセージｘと等長である。
【００２５】
図３,図４に、実施例での暗号化の原理を示す。また図５に、実施例を変形して暗号強度を高めた変形例を示す。図５の変形例では、図３,図４のアルゴリズムに対する変更部のみを示す。
【００２６】
図３のステップ１で、メッセージｘを入力し、ステップ２で正則行列Ａを用いてアフィン変換する。なおメッセージｘの元の数がn個である場合、実施例ではアフィン変換行列Ａもn行n列の行列とするが、行列Ａをn+1行×n+1列の行列とし、メッセージｘの末尾に乱数や定数の項を追加して形式的にn+1次元と見なしても良い。以下同様にデータｙもn+1次元としても良い。また各図において、大文字Ｔは転置を表す。
【００２７】
アフィン変換したメッセージｙをＮ個のブロックに分割する(ステップ３)。表１等に示すように、メッセージｙは拡大体Ｆqの元をｎ個並べたデータであり、これをＮ分割した各ブロックはデータのブロックである。原始多項式Ｇj(X)を用いて、各ｙj（各ブロック）を多項式表現する(ステップ４)。用いる原始多項式Ｇj(X)はＮ個のブロックに対して共通でも良く、あるいはブロック毎に異ならせても良い。また原始多項式の次数Ｇj(X)は、tj次以上とする。なおtjはj番目のブロックの元の数である。そしてステップ５で、秘密の指数dを用いて、多項式表現したＹj(X)をＧj(X)を法としてd乗する。その結果をＺj(X)とする。
【００２８】
実施例の場合、jが1〜Jまでの範囲で、Ｚj(X)をΓj(X)に代入する(ステップ６)。続いて結合子１から図４に移り、多項式Ｒj(X)の各係数ｒjiを評価する。係数ｒjiはアフィン変換したメッセージｙの一部(ｙ1〜ｙJ)のm次の多項式であり、ブロックＹ1〜ＹJのm次の多項式である。ｒjiは多項式Ｒj(X)の例えばi次係数を意味し、ｒjiは秘密である。そしてＲj(X)は法Ｇj(X)上の多項式なので、その次数は例えばtj-1次以下とする。また係数ｒjiをＹ1〜ＹJの多項式と見なした場合、その次数mは例えば２以上５以下が好ましい(ステップ７)。Ｒj(X)が求まると、ステップ８でΓj(X)を求め、ステップ９で中間的な暗号データΓを得る。続いてステップ１０でアフィン変換行列Ｂを用いてアフィン変換すると、ステップ１１の出力暗号文Ｋが得られる。なおＢはn行n列の正則行列であるが、行列Ａと同様に、n+1行×n+1列の正則行列としても良い。この場合、暗号文Ｋ中のn+1番目の要素は意味のない要素で、削除しても良い。
【００２９】
図５に変形例の処理を示すと、図３の結合子２から分岐して、ステップ１２でＺ1(X)をΓ1(X)とし、Ｙ1を用いて多項式Ｒ2(X)の各係数を評価して、多項式Ｒ2(X)を決定する(ステップ１３)。次にＹ1,Ｙ2を用いて、多項式Ｒ3(X)の各係数を評価し、多項式Ｒ3(X)を決定する。以下同様にして、Ｙ1〜Ｙjを用いて多項式Ｒj+1(X)を決定し、最後の多項式ＲN(X)をＹ1〜ＹN-1により決定する(ステップ１５)。次にj=2〜Nに対して、Ｚj(X)＋Ｒj(X)＝Γj(X)により、Γjを決定する。そして結合子３から、図４のステップ１０に移る。
【００３０】
図６に、メッセージｘから暗号文Ｋまでの暗号化を写像として説明する。アフィン変換Ａを用いて、ｘをｙに変換し、ｙをブロック化し、各ブロックを多項式表現してＹに変換する。なお原始多項式Ｇj(X)の次数は各ブロックの元の数以上である。多項式表現した各ブロックを、秘密の定数dでべき乗し、原始多項式Ｇj(X)を法とした多項式をＺJ(X)とする。このようにしてＹをＺに変換する。
【００３１】
Ｚ1(X)〜ＺN(X)を、例えば左半分のＺ1(X)〜ＺJ(X)と右半分のＺJ+1(X)〜ＺN(X)に分割し、左半分のＺ1(X)〜ＺJ(X)をそのままΓ1(X)〜ΓJ(X)とする。なおNはブロックの数である。そしてＹ1〜ＹJを用いて、秘密の多項式ＲJ+1〜ＲNを評価し、この秘密の多項式ＲJ+1〜ＲNとＺJ+1〜ＺNとを各々加算して、ΓJ+1〜ΓNを求める。次にΓ1〜ΓNを集めて１つのベクトルとし、これを行列Ｂによりアフィン変換して出力暗号文Ｋとする。
【００３２】
ここでＹ1〜ＹJを用いて、秘密の多項式ＲJ+1〜ＲNを一括して評価する代わりに、Ｙ1を用いて多項式Ｒ2を評価し、Ｙ1,Ｙ2を用いて多項式Ｒ3を評価し、以下同様にＹ1〜ＹN-1を用いて多項式ＲNを評価するようにすると、図５の変形例となる。またＹ1〜ＹNを３分割し、例えばＹ1〜Ｙ3をそのままΓ1〜Γ3とし、同時にＹ1〜Ｙ3で多項式Ｒ4〜Ｒ6を評価し、Ｙ1〜Ｙ6でＲ7〜Ｒ9を評価すると、図２の変形例となる。
【００３３】
図７に、実施例での暗号化の手順を示す。図６の各処理をまとめて１つの合成写像と考えると、これはメッセージｘを変数とする連立多項式と考えることができる。なおデータｙはメッセージｘに対して線形(その要素がメッセージｘの要素の線形和)であり、Ｙを用いて多項式Ｒj(X)等の係数を定めると、メッセージｘを用いて係数を定めたことになる。そこで暗号化の手順を、ｎ個の公開のm次多項式ｋ1(x)〜ｋn(x)に、メッセージｘを代入することと表現することができる。このため暗号化は簡単かつ高速で行える。
【００３４】
図８に、実施例での復号アルゴリズムを示す。暗号文Ｋをn行n列の逆アフィン変換行列Ｂ-1で処理し、中間復号文(中間的な暗号データ)Γに変換する(ステップ２１)。i=1〜Jに対しては、Γi(X)=Ｚj(X)である(ステップ２２)。アフィン変換Ｂ自体の秘匿強度は低いので、｛Ｚj(X)｝ej≡Ｙj(X)  modＧj(X)  により  Ｙj(X)に変換し、離散対数問題を利用して中間的な暗号データＹj(X)の安全性を高める(ステップ２３)。次いで、Ｙ1(X)〜ＹJ(X)からＲJ+1(X)〜ＲN(X)を求めて(ステップ２４)、ステップ２５でＺJ+1(X)〜ＺN(X)を復号する。
【００３５】
ステップ２６で、ステップ２３と同様にして、
｛Ｚj(X)｝ej≡Ｙj(X)  modＧj(X)  によりＹj(X)を求める。N個のブロックのデータを多項式表現、即ち多項式Ｙ1(X)〜ＹN(X)の係数で表現したものから、ベクトル表現、即ちベクトルの成分で表現したものｙ1〜ｙNに変更し、要素を順に配列するとベクトルｙが得られる。ベクトルｙに対して、行列Ａ-1 を作用させると、入力メッセージｘを復号できる(ステップ２７)。
【００３６】
図９は、図８のステップ２２〜２６に代わる変形例を示し、ステップ３０で  Γ1(X)をＺ1(X)に代入し、ステップ３２でＹ1(X)を求める。作業変数jの初期値を２にセットし(ステップ３２)、Ｙ1(X)〜Ｙj-1(X)を用いてＲj(X)を決定する(ステップ３３)。ステップ３４でＺj(X)を決定し、ステップ３５でＹj(X)を求め、ステップ３６でjの値を１増して、全てのブロックＹ1(X)〜ＹN(X)が得られるまで、処理を繰り返す。次いで結合子５から図８のステップ２７を実行し、メッセージｘを求める。
【００３７】
実施例ではアフィン変換を用いて、メッセージｘやΓ1〜ΓNを秘匿し、Ｚj(X)からＹj(X)を秘匿するために離散対数問題を用いた。暗号の信頼性を補強するため、例えば別の多次多項式暗号システムを補助的に用いても良い。図１０,図１１にこのような例を示す。
【００３８】
図１０では、指数ｄでのべき乗に代えて、多次多変数連立多項式への代入を実行する。ブロックＹ1(X)〜ＹN(X)をベクトル表現したものをｙ1'〜ｙN'とし、これをｎ個の多変数多項式に入力して、ベクトルデータＺ1'〜ＺN'を得る。なお各ブロックＹ1(X)〜ＹN(X)の次数をｔj-1とすると、各ブロックにtj個の多項式を割り当てる。ベクトルデータＺ1'〜ＺN'を多項式表現して、Ｚ1(X)〜ＺN(X)とする。多次多変数連立多項式の求解は困難なので、復号時には例えばN個の復号テーブルを用意し、ベクトルデータＺ1'〜ＺN'で復号テーブルを参照し、ｙ1'〜ｙN'を求める。
【００３９】
実施例の暗号システムでは、Ｚ1(X)〜ＺJ(X)は多次多変数での処理で秘匿されていないので、Ｚ1(X)〜ＺJ(X)を介しての攻撃が考えられる。Ｚ1(X)〜ＺJ(X)をそのままΓ1(X)〜ΓJ(X)とせずに、多次多変数の連立多項式で補強した例を図１１に示す。Ｚ1(X)〜ＺJ(X)をベクトル表現して、ベクトルデータＺ1'〜ＺJ'とし、これを多次多変数の連立多項式ｆ11〜ｆJtJで処理して、多項式Ｚ1''〜ＺJ''とし、これを多項式Γ1〜ΓJに変換する。この場合、復号時にはJ枚の復号テーブルを用意してＺ1(X)〜ＺJ(X)へ復号する。またＺ1(X)のみをそのままΓ内のブロックΓ1に変換する変形例の場合、Ｚ1(X)をベクトル表現したものを多変数多項式ｆ1に代入してΓ1とし、復号テーブルを１枚用意して、Γ1をＺ1に復号すればよい。この場合は、復号テーブルを記憶するためのスペースを少なくしながら、Ｚ1(X)の安全性を補強できる。
【００４０】
実施例での暗号化は、公開鍵の連立多変数多項式へのメッセージの入力で実行でき、高速で実行できる。復号処理は、アフィン変換や多項式Ｒj(X)の算出、多項式Ｒj(X)とΓj(X)との排他加算などを、複数のパイプラインで並列処理すると簡単に実行できる。発明者の評価では、共通鍵暗号に匹敵する速度で、復号処理が行えるはずである。
【図面の簡単な説明】
【図１】    実施例の暗号システムの構成を示すブロック図
【図２】    変形例での暗号化過程の原理を示すブロック図
【図３】    実施例での暗号化過程の原理を示すフローチャート
【図４】    図３の結合子１以下のアルゴリズムを示すフローチャート
【図５】    暗号化過程の一部を変更した、変形例のアルゴリズムを示すフローチャート
【図６】    実施例での暗号化過程を写像として示す図
【図７】    実施例での暗号化のアルゴリズムを示す図
【図８】    実施例での復号アルゴリズムを示すフローチャート
【図９】    変形例の復号アルゴリズムを示すフローチャート
【図１０】  他の変形例での暗号化の原理と復号手続の変更箇所を、写像として示す図
【図１１】  図１０の変形例を、Ｚ1(X)〜ＺJ(X)の秘匿強度の向上に用いた例を示す図
【符号の説明】
２          暗号システム
４,６      情報処理装置
８          暗号化処理部
１０        復号処理部
１２        鍵記憶部
１４        電子署名処理部
１６        プログラム記憶部
２０,５６  アフィン変換処理部
２１〜２９  中間的な暗号文Ｙ=(Ｙ1(X),…ＹN(X))の各要素Ｙjを記憶するためのボックス
３０〜３８  中間的な暗号文Ｚ=(Ｚ1(X),…ＺN(X))の各要素Ｚjを記憶するためのボックス
４０,４８  秘密の多項式Ｒ4〜Ｒ6,Ｒ7〜Ｒ9の評価手段
４１〜４３  排他加算器
４９〜５１  排他加算器
４４〜４６  中間的な暗号文Γ4(X),…Γ6(X)を記憶するためのボックス
５２〜５４  中間的な暗号文Γ7(X),…Γ9(X)を記憶するためのボックス
【図１】
0004141773.tif 000002
【図２】
0004141773.tif 000003
【図３】
0004141773.tif 000004
【図４】
0004141773.tif 000005
【図５】
0004141773.tif 000006
【図６】
0004141773.tif 000007
【図７】
0004141773.tif 000008
【図８】
0004141773.tif 000009
【図９】
0004141773.tif 000010
【図１０】
0004141773.tif 000011
【図１１】
0004141773.tif 000012