説明

復号装置と復号プログラム及び暗号通信システム

【課題】 安全で情報化率の高い公開鍵暗号を提供する。
【解決手段】 ゴッパ符号等の符号化行列Gを左右に2回繰り返し、乱数ベクトルRを1行追加した行列Kを用いて、k+1次元のメッセージmを符号化し、Cとする。2n次元よりも短いベクトルeを非線形変換して加算しCを求め、Cと加算して暗号文Cとする。Cに置換行列P-1を作用させた後に、左半分と右半分とを加算し、これらの排他加算を行い、位置jでの成分からmk+1を求め、(C-1)(+)(C-1)を求める。
-1 =(X,Y,Y,X) かつ Y=αYとなるようにし、Gの訂正能力を用いてYを求め、C-1を決定する。またGの訂正能力を用いてmを復号する。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、公開鍵暗号に関し、特にその復号装置と復号プログラム、及び暗号通信装置に関する。
【背景技術】
【0002】
非特許文献1でMcElieceは、ゴッパ符号などを用いた公開鍵暗号システムを提案している。このシステムでは、k行n列の符号化行列をG、k×kの正則行列をS、n×nの置換行列をPとして、メッセージm、ノイズeを用いて、 mSGP(+)e を暗号文とする。復号側ではP-1が既知なことから、 mSG(+)eP-1 を求め、Pが置換行列で、eとeP-1とで0でない成分の数が増さないことから、mSG(+)eP-1がmSへ誤り訂正可能な範囲で有れば、mSを介してmへ復号できる。
非特許文献2のNiderreiterのシステムでは、n×(n−k)の検査行列Hと、(n−k)×(n−k)の正則行列Sと、n×nの置換行列Pを用い、PHSを公開鍵とする。メッセージmに対してmPHSを暗号文とする。復号側では、mPHSをmPHへ変換し、検査行列Hに対する誤り訂正でmPを求めて、メッセージmを復号する。
【非特許文献1】R.J.McEliece: "A public-key cryptosystem based on algebraic coding theory", Deep Space Network Progress Report 42-44,pp114-116, Jet Propulsion Lab., Pasadena,CA (1978)
【非特許文献2】H.Niderreiter: "Error-correcting codes and cryptography" in "Public-Key Cryptography and Computational Number Theory" edited by K.Alster, J.Urbanowicz and H.C.Williams, Walter de Gruyter,(2001)
【0003】
これらのシステムでの暗号強度は、符号化行列Gや検査行列Hの多様さ、言い換えるとこれらの曖昧さに依存し、行列G,Hが推定可能であれば安全ではない。そこで行列G,Hの推定困難性のみに根拠を置く暗号は、必ずしも安全とは言えない。McElieceのシステムでは乱数を加えて強度を高めているが、乱数は誤り訂正可能な範囲に限られ、例えばn次元のベクトルに対してn個の乱数成分を付加することはできない。また平文長と暗号文長との比を情報化率と呼ぶと、誤り訂正のために、これらのシステムでは情報化率を高くできない。
【発明の開示】
【発明が解決しようとする課題】
【0004】
この発明の基本的課題は、誤り訂正を用いたより安全な暗号システムのための復号装置と復号プログラム、及び暗号通信装置を提供することにある。
この発明での副次的課題は、暗号に用いるノイズの少なくとも一部をメッセージとして、情報化率を高めることにある。
【課題を解決するための手段】
【0005】
この発明は、メッセージmを誤り訂正可能な符号に符号化したものにノイズeを混合した暗号文を、前記符号の誤り訂正能力を用いて平文へ復号する復号装置において、
受信した暗号文Cに由来するベクトルCP-1から、例えばベクトルCP-1を左右に分割して、少なくとも2つのサブベクトルCP-1,CP-1を生成するための手段と、
前記少なくとも2つのサブベクトルCP-1,CP-1を組み合わせてベクトルBを求めるための手段と、
ベクトルBの特定の成分から、少なくともデータm~k+1を求めるための手段と、
既知の乱数とデータm~k+1とから、ベクトルBもしくはベクトルCP-1の、少なくとも一部の成分に対して、前記既知乱数に由来する成分を消去したデータを求めるための手段と、
前記既知乱数に由来する成分を除去したデータから、誤り訂正によりメッセージmを復号するための手段とを設けたことを特徴とする。
なおデータm~k+1をメッセージへと復号しても良く、あるいはそのまま中間変数として捨てても良い。
【0006】
好ましくは、既知乱数に由来する成分を除去したデータから、例えばメッセージmの復号の誤り訂正により、ノイズをメッセージとして復号するための手段を設ける。
特に好ましくは、メッセージmを復号する際の誤り訂正によりノイズの一部を復号すると共に、ベクトルBから既知乱数に由来する成分を除去したデータと組み合わせて、ノイズの他の部分を復号する手段を設ける。
【0007】
この発明は、メッセージmを誤り訂正可能な符号に符号化したものにノイズeを混合した暗号文を、前記符号の誤り訂正能力を用いて平文へ復号するための復号プログラムにおいて、
受信した暗号文Cに由来するベクトルCP-1から、少なくとも2つのサブベクトル
CP-1,CP-1を生成するための命令と、
前記少なくとも2つのサブベクトルCP-1,CP-1を組み合わせてベクトルBを求めるための命令と、
ベクトルBの特定の成分から、少なくともデータm~k+1を求めるための手段と、
既知の乱数とデータm~k+1とから、ベクトルBもしくはベクトルCP-1の、少なくとも一部の成分に対して、前記既知乱数に由来する成分を消去したデータを求めるための命令と、
前記既知乱数に由来する成分を除去したデータから、誤り訂正によりメッセージmを復号するための命令とを設けたことを特徴とする。
【0008】
この発明は、通信手段と、メッセージmを誤り訂正可能な符号に符号化したものにノイズeを混合して暗号化するための暗号化手段と、受信した暗号文を前記符号の誤り訂正能力を用いて平文へ復号するための復号手段とを備えた暗号通信装置において、
前記復号手段は、
受信した暗号文Cに由来するベクトルCP-1から、少なくとも2つのサブベクトル
CP-1,CP-1を生成するための手段と、
前記少なくとも2つのサブベクトルCP-1,CP-1を組み合わせてベクトルBを求めるための手段と、
ベクトルBの特定の成分から、少なくともデータm~k+1を求めるための手段と、
既知の乱数とデータm~k+1とから、ベクトルBもしくはベクトルCP-1、の少なくとも一部の成分に対して、前記既知乱数に由来する成分を消去したデータを求めるための手段と、
前記既知乱数に由来する成分を除去したデータから、誤り訂正によりメッセージmを復号するための手段とを備えていることを特徴とする。
【0009】
好ましくは、前記暗号通信装置は、符号化行列
K= |GA,GB|
| R |
に由来する変換を公開鍵とする。
ここにGA,GBは符号化行列で、GAで符号化した符号とGBで符号化した符号とは相互変換が自在である。Rは少なくとも1行の乱数ベクトルである。
【0010】
用語法
この明細書において、ベクトルは行列を含むものとし、例えば2行n列の行列はn成分のベクトルを上下に2つに重ねたベクトルと見なす。
特許請求の範囲等での記号は、実施例との対比を容易にするためだけのもので、特許請求の範囲を限定する意味を持たず、例えばベクトルCP-1との記号は、暗号文Cを変換P-1で処理したものを意味するのではなく、このベクトルを実施例でベクトルCP-1と呼んでいることを意味する。またサブベクトルCP-1,CP-1はCP-1が左側の成分,CP-1が右側の成分であることを意味せず、単に2つのサブベクトルの名前がCP-1とCP-1であることを意味する。
実施例を除き、また文脈上不自然な場合を除き、あるデータとそれから簡単に求めることができるデータとは同一視する。
また復号装置に関する記載は、復号プログラムや暗号通信装置にもそのまま当てはまるものとする。
【発明の効果】
【0011】
この発明では、符号化行列に乱数を例えば1行追加できるので安全性が高い。即ち一般に、符号化行列の自由度に比べて、乱数の自由度が高いので、安全性が向上する。
【0012】
ここでノイズの少なくとも一部をメッセージとすると、情報化率を高めることができる。この発明での情報化率は、例えば100%近くまで、あるいは情報化率をより小さくした場合でも7/8程度まで高めることができる。
【0013】
この発明での基本的な着眼点は、
K= |GA,GB|
| R |
に由来する公開鍵を用いる点にある。GA,GBは類似もしくは同一の符号化行列で、類似の符号化を2回行い、暗号文長を2倍に引き伸ばす。そして暗号文の左半部と右半部などの排他加算を行うと、メッセージmをGAで処理した部分とGBで処理した部分とが打ち消し合い、メッセージを乱数Rで処理したベクトルに暗号化側で付加したノイズが重なったものが残る。
【0014】
このデータが例えばn個の成分(排他加算によりデータ長を、例えば2nからnに圧縮済み)からなるものとし、ノイズの成分の個数を暗号文の長さよりも短くして、データ中の特定の個所に、ノイズが現れないようにする。その個所のデータは、メッセージの内で例えばGA,GBで処理されていない部分と、乱数データとで定まり、乱数データは受信側(復号側)に既知なので、前記の部分を決定できる。このデータが求まると、乱数データが既知なので、その影響を除くことができる。最も簡単には、乱数成分の影響を除いて、
McElieceと同様に復号すると良い。
【0015】
乱数データの影響を除いた際に、ノイズ成分相互の排他加算の値を求めることができ、例えば暗号文の長さを例えば2nとして、ノイズから約nの情報量を得ることができる。そして残るノイズと本来のメッセージとを誤り訂正で求めると、例えば本来のメッセージ長をn/2として、例えば n+n/2+n/4=7n/4 の情報量を復号できる。ここにnはノイズの排他加算で求めた情報量、n/2はメッセージに対応する情報量は、n/4は誤り訂正でノイズとして求めた情報量である。後に示すように、この発明で求めることができる情報量は、この記法での2nが上限で、暗号文長に対する平文長の比はほぼ1(情報化率)を高くできる。
【発明を実施するための最良の形態】
【0016】
以下に発明を実施するための最良の形態を示す。
【実施例】
【0017】
暗号通信システム
図1〜図8に実施例を示す。図1に、暗号通信システムの例を示すと、2はインターネットで、セキュアでない通信路の例であり、4,6はエンティティで、パーソナルコンピュータや各種のサーバなどを用い、資源としてCPUとRAM並びにROM及び入出力を備え、インターネット2と通信するための通信部を備えているものとする。8は暗号化部、10は復号部、12は鍵記憶部である。鍵記憶部12では、自己の公開鍵 M=SKP としてMを記憶し、ノイズeを非線形変換するための変換Aを記憶する。ただしノイズが文字通りのノイズであり、情報ではない場合、非線形変換Aは不要である。秘密鍵として、公開鍵Mに対する逆変換のP-1,S-1を記憶する。P,Sは例えば共に正則行列で、Pはここでは成分の転置を行う置換行列とし、その成分は0と1とに限られる。行列Kは、符号化行列Gを左右に繰り返し2回配置し、例えばその下部あるいはその上部などに、例えば1行あるいは2行以上の乱数ベクトルRを配置したものである。秘密鍵として、行列Kを記憶し、特に乱数ベクトルRと符号化行列Gの復号アルゴリズムを記憶する。ここでは符号化行列Gの生成行列をG(X)としてこれを記憶し、後述のファクタα並びに、公開鍵Aに対する逆変換A-1を記憶する。
【0018】
エンティティ4,6は、相手方の公開鍵M,Aを用いて、メッセージm、並びにノイズの形で用いるメッセージeを暗号化し、暗号文Cは、 C=mM(+)eA で与えられる。(+)は排他加算を示す記号である。復号部10では、Pの逆変換P-1とSの逆変換S-1、及びAの逆変換A-1並びに行列Kに関する知識、特に乱数ベクトルRやGの生成多項式G(X),αなどを用いて復号を行う。
【0019】
暗号通信プログラム
図2に、暗号通信プログラム20を示すと、このプログラムはエンティティ4,6が記憶し、暗号化部8や復号部10並びに鍵記憶部12を生成するために用いられる。22は鍵記憶命令で、自己の公開鍵と秘密鍵の値、並びにこれらの鍵を記憶するための命令とから成る。暗号化命令24は、暗号化部8でメッセージmとノイズeを暗号文Cに変換するための命令である。復号命令26は受信した暗号文を復号部10で復号するための命令である。暗号化命令24の内容は、以下の暗号化の説明から明らかになり、復号命令26の内容も、復号に関する説明から明らかになる。
【0020】
記号
図3に、実施例での記号の意味などを示す。なお各データは、拡大体F2のデータであるものとし、メッセージmは例えばk+1次元のベクトルで与えられ、ノイズeは純粋なノイズであることもあれば、長さが2nよりも短いメッセージであることもある。実施例ではノイズeをそのまま使うことによる暗号強度の低下を防止するため、eを非線形変換Aで処理してeAとして用いる。Cは暗号文で、例えば長さ2nのベクトルであり、メッセージmを暗号化した部分をC,ノイズeを暗号化した部分をCとすると、これらの排他加算により暗号文Cが与えられる。
【0021】
Kは実施例での中心となる行列で、交代式符号やゴッパ符号などの代数符号の、符号化行列Gを左右に2回重ね、例えばその下部に乱数ベクトルRを1行分あるいは複数行分追加したものである。符号化行列Gがn×k次の行列とすると(n>k)、行列Kは例えばk+1行で2n列の行列となる。前記の置換行列Pの逆変換P-1で暗号文Cを処理するところから復号が開始される。CP-1の例えば左半分と右半分とを排他加算すると、n次元のベクトルが得られる。このベクトルをBと呼ぶ。行列KでGを左右に2回繰り返して用いているため、ベクトルBではmSGに由来する成分が消去されている。即ちベクトルBの成分は、メッセージm中のk+1番目の最後の成分m~k+1と、乱数ベクトル、並びにeに由来する成分で構成されている。
【0022】
行列Kが2n列の行列であるのに対して、ノイズeの長さは、2nよりも短い長さ、例えば 2n−(n/4+2) 以下の長さとするので、CP-1にはノイズの寄与が既知の成分を設けることができる。例えばCP-1のj番目の成分とj+n番目の成分で、ノイズに由来する部分の値を0とすることができる。jの値は復号化部で既知なので、Bのj番目の成分はm~k+1(R(+)Rj+n)で定まり、m~k+1を求めることができる。そしてm~k+1が判明すると、CP-1やBからRに由来する成分を除去できる。 C=eA として、C-1を4分割し、(X,Y,Y,X)とする。ここでX〜Xは、例えば各々長さがn/2のベクトルとなる。C-1を直接求めることは困難であるが、Bから乱数ベクトルRに由来する成分を消去すると、X+Y及びY+Xを求めることができる。言い換えるとCの持つ情報量の約半分を求めることができる。また Y=αYとする。ここにαはFの元である。
【0023】
暗号化
図4,図5に暗号化のプロセスを示す。暗号化しようとするエンティティは公開鍵M,Aを取得し、メッセージmに対して公開鍵Mを用いて暗号文Cを作成する。なおメッセージの長さはk+1次元で、このうち元m〜mは符号化行列Gの作用を受け、元mk+1は乱数ベクトルRの作用を受ける。行列Kの長さを2n次元として、これよりも少なくとも2次元短いベクトルeを用意し、ベクトルeはノイズであっても、メッセージであっても良い。ベクトルeがメッセージである場合は、アフィン変換や符号などの非線形符号を用いた変換Aにより、ベクトルeを暗号文Cに変換する。この結果、暗号文Cには、簡単な規則性が見出しにくくなる。そして暗号文Cと暗号文Cとの排他加算を暗号文Cとする。暗号文Cは2n次元のベクトルで、各元はF(例えばP=2,qは素数や8などであるが、1でも良い)の元である。得られた暗号文を、インターネットなどを介して復号側のエンティティへと送信する。
【0024】
メッセージmやメッセージなどのベクトルeから、暗号文Cへの変換過程を図5に示すと、k+1次元のメッセージmは、(k+1)×(k+1)の正則行列Sにより変換され、m~へと変化する。これを符号化行列Kで処理することにより、2n次元のメッセージm~kへと変化する。行列Kの構造から明らかなように、m~kには符号化行列Gに由来する部分と、乱数ベクトルRに由来する部分があり、符号化行列Gの作用を受けるものは、ベクトルm~の1番目からk番目までの元で、乱数ベクトルRの作用を受けるのは、m~k+1である。
【0025】
メッセージeは、非線形変換Aを受けることによりCに変換される。この時ベクトルの長さは2n次元へと伸張される。暗号文CにはC-1において、既知の番号jに対し、(C-1),(C-1)j+nが共に既知であるとの条件がある。この性質は後にm~k+1の復号に用いられる。またC-1を長さがそれぞれn/2のサブベクトルX,Y,Y,Xに分割すると、 Y=αYとの関係があるようにする。なおYとYとを関係づけることに代えて、例えばXとYとの間に同様の関係を与えたり、YとXとの間に同様の関係を与えてもよい。これらのためベクトルeの次元は、例えば3n/2程度、あるいは2n−k程度が上限となる。そして暗号文Cと暗号文Cの排他加算が暗号文Cとなる。
【0026】
復号
図6〜図8に、復号アルゴリズムとその過程での処理を示す。復号するエンティティは暗号文Cを受信すると、転置行列Pの逆行列P-1を作用させ、 CP-1=m~k+C-1 を得る。CP-1の左半分と右半分とを排他加算したものをベクトルBとすると、その次元はn次元である。ベクトルBにおいて、符号化行列Gに由来する部分は排他加算で消去され、m~k+1と乱数ベクトルRに由来する部分、並びにC-1の左半分(C-1)と右半分(C-1)との排他加算が残る。ここで1〜nの特定の値jに対して、(C-1)Lj
(C-1)Rjの排他加算の値は既知なので、m~k+1を決定できる。さらに乱数ベクトルRは既知なので、これを用いてベクトルBから(C-1)Ljと(C-1)Rjの排他加算値を決定できる。ここに j=1〜n である。
【0027】
前記のようにC-1を4つの等長のサブベクトルに分割し、X,Y,Y,Xを各サブベクトルとすると、(C-1)と(C-1)j+nの排他加算値が j=1〜n に付いて既知なことから、XとYの排他加算値やYとXの排他加算値は既知となる。そこで
-1の例えば左半分にXとYの排他加算値を排他加算すると、m~G+(Y,Y)が得られる。
【0028】
ここでYとYには特別な関係があり、一方が定まれば他方が定まる関係にある。特に Y=αY としておくと、符号化行列Gに由来する誤り訂正能力を用いて、Y及び Yを決定できる。例えばYの0でない元の数を、符号化行列Gの誤り訂正能力の範囲にすると、Y,Yを決定できる。
【0029】
,Yを決定できると、同時にm~が決定でき、 m=m~S-1 なので、mを復号できる。YとYが分かると、XとYとの排他加算値が既知なので、Xが決定できる。同様にYとXの排他加算値も既知なので、Xも決定できる。これらによって、X,Y,Y,Xが求まり、eを復号できる。そしてメッセージmとベクトルeを復号できると、復号が終了する。
【0030】
図8に、復号過程でのデータの変化を示し、特にYとYとの関係を用いて、これらを決定する点を示す。符号化行列Gに対応する生成多項式をG(X)とし、
G(X)=Πi=1〜g(X−αi) とすると、Y(X)及びY(X)を図8のように表すことができる。そこでY(X)とY(X)を加算したものは、 Y(X)(1+αXn/2) に等しく、ここで因数(1+αXn/2)と生成多項式G(X)が互いに素ならば、Y(X)が判明する。
【0031】
図8の過程で、暗号文Cに含まれる2nの情報量の内、C-1の左半分とC-1の右半分の排他加算値を決定した時点で、ほぼnに相当する情報量を得ることができる。次にY,Yを決定する時点で、n/2〜n/4程度の情報量を求めることができ、復号した情報量の合計は3n/2〜5n/4となる。またm~の復号により、行列Kの行数程度、ここでは n/2=k 程度の情報量が求まり、合計約2nの情報量を復元できる。
【0032】
暗号システムの強度
暗号システムの強度は主として行列Kの曖昧さ、即ち行列Kの全体から成る集合の濃度で定まる。そこでこの濃度の対数により暗号の強度を評価できる。例えば体がFであるものとし、符号化行列Gが128×256の行列で、乱数ベクトルRが1行のベクトルであるとすると、行列Kのサイズは1032行×4096列となる。この結果、公開鍵Mのサイズは約4Mビットとなる。符号化行列Gは任意の値をとることができるわけではないので、その濃度の対数は約1000バイト程度と評価できる。これに対して乱数ベクトルR全体の集合の濃度の対数は、少なくとも4000バイトで、乱数ベクトルの付加により暗号強度が飛躍的に増していることが分かる。
【0033】
情報化率
行列Gのサイズがk×nで、kは約n/2と仮定する。すると長さ2nの暗号文に対し、メッセージ長はn/2、ベクトルeが持つことができる情報量はn+n/4〜n+n/2である。従って情報化率の上限は約1もしくは0.875の程度となる。このように高い情報化率が求められる。
【0034】
変形例
乱数ベクトルRは1行のベクトルである必要はなく、2行以上のベクトルでも良い。例えば乱数ベクトルが3行から成るものとし、これに対応して復号可能な元がm~k+1,m~k+2,m~k+3とする。これらの値を決定するには、ノイズに由来するデータの無い個所が3個所必要で、前記のjの他に、j’,j”において、ノイズに由来するデータがなければよい。
【0035】
行列Kでの符号化行列Gは、左右同じものを用いる必要はなく、例えばベクトルCP-1の左半分と右半分の排他加算を行った際に、左側の行列Gと右側の行列Gとに由来する部分の排他加算値が既知となればよい。
ベクトルeを単なるノイズとすれば、情報化率が低下する。例えば最も簡単には、ベクトルeの中で、0でない元の数w(e)が行列Gの誤り訂正能力の範囲内であるようにする。すると、m~k+1を決定した後に、行列Gによる符号訂正を用いて、ベクトルCP-1の左半分もしくは右半分により、メッセージm~を直ちに復号できる。また情報化率を3/4程度にする場合、メッセージeの長さを例えば5n/4程度とし、うちn個の元を実際のメッセージとし、n/4個の元をノイズとする。C-1では、n個の元がメッセージに由来し、これらがXとXの部分に分布し、n/4個の元がノイズに由来して、これらがYとYの部分に分布するようにすれば、行列Gの誤り訂正能力を用いて、ノイズに由来するn/4個の元を決定すると共に、メッセージm~を決定できる。そしてXとYの排他加算値や、YとXの排他加算値が既知なので、Y,Yの値から、XやXに含まれるメッセージを復号できる。

【図面の簡単な説明】
【0036】
【図1】実施例の暗号通信装置を用いたシステムのブロック図
【図2】実施例の暗号通信プログラムのブロック図
【図3】実施例で用いる記号の意味を示す図
【図4】実施例での暗号化手続を示すフローチャート
【図5】実施例での、暗号化過程でのデータの変化を示す図
【図6】実施例での復号手続の前半を示すフローチャート
【図7】実施例での復号手続の後半を示すフローチャート
【図8】実施例での、復号過程でのデータの変化を示す図
【符号の説明】
【0037】
2 インターネット
4,6 エンティティ
8 暗号化部
10 復号部
12 鍵記憶部
20 暗号通信プログラム
22 鍵記憶命令
24 暗号化命令
26 復号命令

【特許請求の範囲】
【請求項1】
メッセージmを誤り訂正可能な符号に符号化したものにノイズeを混合した暗号文を、前記符号の誤り訂正能力を用いて平文へ復号する復号装置において、
受信した暗号文Cに由来するベクトルCP-1から、少なくとも2つのサブベクトル
CP-1,CP-1を生成するための手段と、
前記少なくとも2つのサブベクトルCP-1,CP-1を組み合わせてベクトルBを求めるための手段と、
ベクトルBの特定の成分から、少なくともデータm~k+1を求めるための手段と、
既知の乱数とデータm~k+1とから、ベクトルBもしくはベクトルCP-1の、少なくとも一部の成分に対して、前記既知乱数に由来する成分を消去したデータを求めるための手段と、
前記既知乱数に由来する成分を除去したデータから、誤り訂正によりメッセージmを復号するための手段とを設けたことを特徴とする、復号装置。
【請求項2】
既知乱数に由来する成分を除去したデータから、ノイズをメッセージとして復号するための手段を設けたことを特徴とする、請求項1の復号装置。
【請求項3】
メッセージmを復号する際の誤り訂正によりノイズの一部を復号すると共に、ベクトルBから既知乱数に由来する成分を除去したデータと組み合わせて、ノイズの他の部分を復号する手段を設けたことを特徴とする、請求項2の復号装置。
【請求項4】
メッセージmを誤り訂正可能な符号に符号化したものにノイズeを混合した暗号文を、前記符号の誤り訂正能力を用いて平文へ復号するための復号プログラムにおいて、
受信した暗号文Cに由来するベクトルCP-1から、少なくとも2つのサブベクトル
CP-1,CP-1を生成するための命令と、
前記少なくとも2つのサブベクトルCP-1,CP-1を組み合わせてベクトルBを求めるための命令と、
ベクトルBの特定の成分から、少なくともデータm~k+1を求めるための手段と、
既知の乱数とデータm~k+1とから、ベクトルBもしくはベクトルCP-1の、少なくとも一部の成分に対して、前記既知乱数に由来する成分を消去したデータを求めるための命令と、
前記既知乱数に由来する成分を除去したデータから、誤り訂正によりメッセージmを復号するための命令とを設けたことを特徴とする、復号プログラム。
【請求項5】
通信手段と、メッセージmを誤り訂正可能な符号に符号化したものにノイズeを混合して暗号化するための暗号化手段と、受信した暗号文を前記符号の誤り訂正能力を用いて平文へ復号するための復号手段とを備えた暗号通信装置において、
前記復号手段は、
受信した暗号文Cに由来するベクトルCP-1から、少なくとも2つのサブベクトル
CP-1,CP-1を生成するための手段と、
前記少なくとも2つのサブベクトルCP-1,CP-1を組み合わせてベクトルBを求めるための手段と、
ベクトルBの特定の成分から、少なくともデータm~k+1を求めるための手段と、
既知の乱数とデータm~k+1とから、ベクトルBもしくはベクトルCP-1、の少なくとも一部の成分に対して、前記既知乱数に由来する成分を消去したデータを求めるための手段と、
前記既知乱数に由来する成分を除去したデータから、誤り訂正によりメッセージmを復号するための手段とを備えていることを特徴とする、暗号通信装置。
【請求項6】
前記暗号通信装置は、符号化行列
K= |GA,GB|
| R |
に由来する変換を公開鍵とすることを特徴とする、請求項5の暗号通信装置。
ここにGA,GBは符号化行列で、GAで符号化した符号とGBで符号化した符号とは相互変換が自在である。Rは少なくとも1行の乱数ベクトルである。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2006−133380(P2006−133380A)
【公開日】平成18年5月25日(2006.5.25)
【国際特許分類】
【出願番号】特願2004−320579(P2004−320579)
【出願日】平成16年11月4日(2004.11.4)
【出願人】(000006297)村田機械株式会社 (4,916)
【出願人】(597008636)
【Fターム(参考)】