JP2006133380A - 復号装置と復号プログラム及び暗号通信システム - Google Patents
復号装置と復号プログラム及び暗号通信システム Download PDFInfo
- Publication number
- JP2006133380A JP2006133380A JP2004320579A JP2004320579A JP2006133380A JP 2006133380 A JP2006133380 A JP 2006133380A JP 2004320579 A JP2004320579 A JP 2004320579A JP 2004320579 A JP2004320579 A JP 2004320579A JP 2006133380 A JP2006133380 A JP 2006133380A
- Authority
- JP
- Japan
- Prior art keywords
- vector
- decoding
- random number
- message
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Abstract
【課題】 安全で情報化率の高い公開鍵暗号を提供する。
【解決手段】 ゴッパ符号等の符号化行列Gを左右に2回繰り返し、乱数ベクトルRを1行追加した行列Kを用いて、k+1次元のメッセージmを符号化し、C1とする。2n次元よりも短いベクトルeを非線形変換して加算しC2を求め、C1と加算して暗号文Cとする。Cに置換行列P-1を作用させた後に、左半分と右半分とを加算し、これらの排他加算を行い、位置jでの成分からmk+1を求め、(C2P-1)R(+)(C2P-1)Lを求める。
C2P-1 =(XL,YL,YR,XR) かつ YL=αYR となるようにし、Gの訂正能力を用いてYLを求め、C2P-1を決定する。またGの訂正能力を用いてmを復号する。
【選択図】 図8
【解決手段】 ゴッパ符号等の符号化行列Gを左右に2回繰り返し、乱数ベクトルRを1行追加した行列Kを用いて、k+1次元のメッセージmを符号化し、C1とする。2n次元よりも短いベクトルeを非線形変換して加算しC2を求め、C1と加算して暗号文Cとする。Cに置換行列P-1を作用させた後に、左半分と右半分とを加算し、これらの排他加算を行い、位置jでの成分からmk+1を求め、(C2P-1)R(+)(C2P-1)Lを求める。
C2P-1 =(XL,YL,YR,XR) かつ YL=αYR となるようにし、Gの訂正能力を用いてYLを求め、C2P-1を決定する。またGの訂正能力を用いてmを復号する。
【選択図】 図8
Description
この発明は、公開鍵暗号に関し、特にその復号装置と復号プログラム、及び暗号通信装置に関する。
非特許文献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を復号する。
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) 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)
非特許文献2のNiderreiterのシステムでは、n×(n−k)の検査行列Hと、(n−k)×(n−k)の正則行列Sと、n×nの置換行列Pを用い、PHSを公開鍵とする。メッセージmに対してmPHSを暗号文とする。復号側では、mPHSをmPHへ変換し、検査行列Hに対する誤り訂正でmPを求めて、メッセージmを復号する。
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) 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)
これらのシステムでの暗号強度は、符号化行列Gや検査行列Hの多様さ、言い換えるとこれらの曖昧さに依存し、行列G,Hが推定可能であれば安全ではない。そこで行列G,Hの推定困難性のみに根拠を置く暗号は、必ずしも安全とは言えない。McElieceのシステムでは乱数を加えて強度を高めているが、乱数は誤り訂正可能な範囲に限られ、例えばn次元のベクトルに対してn個の乱数成分を付加することはできない。また平文長と暗号文長との比を情報化率と呼ぶと、誤り訂正のために、これらのシステムでは情報化率を高くできない。
この発明の基本的課題は、誤り訂正を用いたより安全な暗号システムのための復号装置と復号プログラム、及び暗号通信装置を提供することにある。
この発明での副次的課題は、暗号に用いるノイズの少なくとも一部をメッセージとして、情報化率を高めることにある。
この発明での副次的課題は、暗号に用いるノイズの少なくとも一部をメッセージとして、情報化率を高めることにある。
この発明は、メッセージmを誤り訂正可能な符号に符号化したものにノイズeを混合した暗号文を、前記符号の誤り訂正能力を用いて平文へ復号する復号装置において、
受信した暗号文Cに由来するベクトルCP-1から、例えばベクトルCP-1を左右に分割して、少なくとも2つのサブベクトルCP-1 R,CP-1 Lを生成するための手段と、
前記少なくとも2つのサブベクトルCP-1 L,CP-1 Rを組み合わせてベクトルBを求めるための手段と、
ベクトルBの特定の成分から、少なくともデータm~k+1を求めるための手段と、
既知の乱数とデータm~k+1とから、ベクトルBもしくはベクトルCP-1の、少なくとも一部の成分に対して、前記既知乱数に由来する成分を消去したデータを求めるための手段と、
前記既知乱数に由来する成分を除去したデータから、誤り訂正によりメッセージmを復号するための手段とを設けたことを特徴とする。
なおデータm~k+1をメッセージへと復号しても良く、あるいはそのまま中間変数として捨てても良い。
受信した暗号文Cに由来するベクトルCP-1から、例えばベクトルCP-1を左右に分割して、少なくとも2つのサブベクトルCP-1 R,CP-1 Lを生成するための手段と、
前記少なくとも2つのサブベクトルCP-1 L,CP-1 Rを組み合わせてベクトルBを求めるための手段と、
ベクトルBの特定の成分から、少なくともデータm~k+1を求めるための手段と、
既知の乱数とデータm~k+1とから、ベクトルBもしくはベクトルCP-1の、少なくとも一部の成分に対して、前記既知乱数に由来する成分を消去したデータを求めるための手段と、
前記既知乱数に由来する成分を除去したデータから、誤り訂正によりメッセージmを復号するための手段とを設けたことを特徴とする。
なおデータm~k+1をメッセージへと復号しても良く、あるいはそのまま中間変数として捨てても良い。
好ましくは、既知乱数に由来する成分を除去したデータから、例えばメッセージmの復号の誤り訂正により、ノイズをメッセージとして復号するための手段を設ける。
特に好ましくは、メッセージmを復号する際の誤り訂正によりノイズの一部を復号すると共に、ベクトルBから既知乱数に由来する成分を除去したデータと組み合わせて、ノイズの他の部分を復号する手段を設ける。
特に好ましくは、メッセージmを復号する際の誤り訂正によりノイズの一部を復号すると共に、ベクトルBから既知乱数に由来する成分を除去したデータと組み合わせて、ノイズの他の部分を復号する手段を設ける。
この発明は、メッセージmを誤り訂正可能な符号に符号化したものにノイズeを混合した暗号文を、前記符号の誤り訂正能力を用いて平文へ復号するための復号プログラムにおいて、
受信した暗号文Cに由来するベクトルCP-1から、少なくとも2つのサブベクトル
CP-1 R,CP-1 Lを生成するための命令と、
前記少なくとも2つのサブベクトルCP-1 L,CP-1 Rを組み合わせてベクトルBを求めるための命令と、
ベクトルBの特定の成分から、少なくともデータm~k+1を求めるための手段と、
既知の乱数とデータm~k+1とから、ベクトルBもしくはベクトルCP-1の、少なくとも一部の成分に対して、前記既知乱数に由来する成分を消去したデータを求めるための命令と、
前記既知乱数に由来する成分を除去したデータから、誤り訂正によりメッセージmを復号するための命令とを設けたことを特徴とする。
受信した暗号文Cに由来するベクトルCP-1から、少なくとも2つのサブベクトル
CP-1 R,CP-1 Lを生成するための命令と、
前記少なくとも2つのサブベクトルCP-1 L,CP-1 Rを組み合わせてベクトルBを求めるための命令と、
ベクトルBの特定の成分から、少なくともデータm~k+1を求めるための手段と、
既知の乱数とデータm~k+1とから、ベクトルBもしくはベクトルCP-1の、少なくとも一部の成分に対して、前記既知乱数に由来する成分を消去したデータを求めるための命令と、
前記既知乱数に由来する成分を除去したデータから、誤り訂正によりメッセージmを復号するための命令とを設けたことを特徴とする。
この発明は、通信手段と、メッセージmを誤り訂正可能な符号に符号化したものにノイズeを混合して暗号化するための暗号化手段と、受信した暗号文を前記符号の誤り訂正能力を用いて平文へ復号するための復号手段とを備えた暗号通信装置において、
前記復号手段は、
受信した暗号文Cに由来するベクトルCP-1から、少なくとも2つのサブベクトル
CP-1 R,CP-1 Lを生成するための手段と、
前記少なくとも2つのサブベクトルCP-1 L,CP-1 Rを組み合わせてベクトルBを求めるための手段と、
ベクトルBの特定の成分から、少なくともデータm~k+1を求めるための手段と、
既知の乱数とデータm~k+1とから、ベクトルBもしくはベクトルCP-1、の少なくとも一部の成分に対して、前記既知乱数に由来する成分を消去したデータを求めるための手段と、
前記既知乱数に由来する成分を除去したデータから、誤り訂正によりメッセージmを復号するための手段とを備えていることを特徴とする。
前記復号手段は、
受信した暗号文Cに由来するベクトルCP-1から、少なくとも2つのサブベクトル
CP-1 R,CP-1 Lを生成するための手段と、
前記少なくとも2つのサブベクトルCP-1 L,CP-1 Rを組み合わせてベクトルBを求めるための手段と、
ベクトルBの特定の成分から、少なくともデータm~k+1を求めるための手段と、
既知の乱数とデータm~k+1とから、ベクトルBもしくはベクトルCP-1、の少なくとも一部の成分に対して、前記既知乱数に由来する成分を消去したデータを求めるための手段と、
前記既知乱数に由来する成分を除去したデータから、誤り訂正によりメッセージmを復号するための手段とを備えていることを特徴とする。
好ましくは、前記暗号通信装置は、符号化行列
K= |GA,GB|
| R |
に由来する変換を公開鍵とする。
ここにGA,GBは符号化行列で、GAで符号化した符号とGBで符号化した符号とは相互変換が自在である。Rは少なくとも1行の乱数ベクトルである。
K= |GA,GB|
| R |
に由来する変換を公開鍵とする。
ここにGA,GBは符号化行列で、GAで符号化した符号とGBで符号化した符号とは相互変換が自在である。Rは少なくとも1行の乱数ベクトルである。
用語法
この明細書において、ベクトルは行列を含むものとし、例えば2行n列の行列はn成分のベクトルを上下に2つに重ねたベクトルと見なす。
特許請求の範囲等での記号は、実施例との対比を容易にするためだけのもので、特許請求の範囲を限定する意味を持たず、例えばベクトルCP-1との記号は、暗号文Cを変換P-1で処理したものを意味するのではなく、このベクトルを実施例でベクトルCP-1と呼んでいることを意味する。またサブベクトルCP-1 L,CP-1 RはCP-1 Lが左側の成分,CP-1 Rが右側の成分であることを意味せず、単に2つのサブベクトルの名前がCP-1 LとCP-1 Rであることを意味する。
実施例を除き、また文脈上不自然な場合を除き、あるデータとそれから簡単に求めることができるデータとは同一視する。
また復号装置に関する記載は、復号プログラムや暗号通信装置にもそのまま当てはまるものとする。
この明細書において、ベクトルは行列を含むものとし、例えば2行n列の行列はn成分のベクトルを上下に2つに重ねたベクトルと見なす。
特許請求の範囲等での記号は、実施例との対比を容易にするためだけのもので、特許請求の範囲を限定する意味を持たず、例えばベクトルCP-1との記号は、暗号文Cを変換P-1で処理したものを意味するのではなく、このベクトルを実施例でベクトルCP-1と呼んでいることを意味する。またサブベクトルCP-1 L,CP-1 RはCP-1 Lが左側の成分,CP-1 Rが右側の成分であることを意味せず、単に2つのサブベクトルの名前がCP-1 LとCP-1 Rであることを意味する。
実施例を除き、また文脈上不自然な場合を除き、あるデータとそれから簡単に求めることができるデータとは同一視する。
また復号装置に関する記載は、復号プログラムや暗号通信装置にもそのまま当てはまるものとする。
この発明では、符号化行列に乱数を例えば1行追加できるので安全性が高い。即ち一般に、符号化行列の自由度に比べて、乱数の自由度が高いので、安全性が向上する。
ここでノイズの少なくとも一部をメッセージとすると、情報化率を高めることができる。この発明での情報化率は、例えば100%近くまで、あるいは情報化率をより小さくした場合でも7/8程度まで高めることができる。
この発明での基本的な着眼点は、
K= |GA,GB|
| R |
に由来する公開鍵を用いる点にある。GA,GBは類似もしくは同一の符号化行列で、類似の符号化を2回行い、暗号文長を2倍に引き伸ばす。そして暗号文の左半部と右半部などの排他加算を行うと、メッセージmをGAで処理した部分とGBで処理した部分とが打ち消し合い、メッセージを乱数Rで処理したベクトルに暗号化側で付加したノイズが重なったものが残る。
K= |GA,GB|
| R |
に由来する公開鍵を用いる点にある。GA,GBは類似もしくは同一の符号化行列で、類似の符号化を2回行い、暗号文長を2倍に引き伸ばす。そして暗号文の左半部と右半部などの排他加算を行うと、メッセージmをGAで処理した部分とGBで処理した部分とが打ち消し合い、メッセージを乱数Rで処理したベクトルに暗号化側で付加したノイズが重なったものが残る。
このデータが例えばn個の成分(排他加算によりデータ長を、例えば2nからnに圧縮済み)からなるものとし、ノイズの成分の個数を暗号文の長さよりも短くして、データ中の特定の個所に、ノイズが現れないようにする。その個所のデータは、メッセージの内で例えばGA,GBで処理されていない部分と、乱数データとで定まり、乱数データは受信側(復号側)に既知なので、前記の部分を決定できる。このデータが求まると、乱数データが既知なので、その影響を除くことができる。最も簡単には、乱数成分の影響を除いて、
McElieceと同様に復号すると良い。
McElieceと同様に復号すると良い。
乱数データの影響を除いた際に、ノイズ成分相互の排他加算の値を求めることができ、例えば暗号文の長さを例えば2nとして、ノイズから約nの情報量を得ることができる。そして残るノイズと本来のメッセージとを誤り訂正で求めると、例えば本来のメッセージ長をn/2として、例えば n+n/2+n/4=7n/4 の情報量を復号できる。ここにnはノイズの排他加算で求めた情報量、n/2はメッセージに対応する情報量は、n/4は誤り訂正でノイズとして求めた情報量である。後に示すように、この発明で求めることができる情報量は、この記法での2nが上限で、暗号文長に対する平文長の比はほぼ1(情報化率)を高くできる。
以下に発明を実施するための最良の形態を示す。
暗号通信システム
図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を記憶する。
図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を記憶する。
エンティティ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),αなどを用いて復号を行う。
暗号通信プログラム
図2に、暗号通信プログラム20を示すと、このプログラムはエンティティ4,6が記憶し、暗号化部8や復号部10並びに鍵記憶部12を生成するために用いられる。22は鍵記憶命令で、自己の公開鍵と秘密鍵の値、並びにこれらの鍵を記憶するための命令とから成る。暗号化命令24は、暗号化部8でメッセージmとノイズeを暗号文Cに変換するための命令である。復号命令26は受信した暗号文を復号部10で復号するための命令である。暗号化命令24の内容は、以下の暗号化の説明から明らかになり、復号命令26の内容も、復号に関する説明から明らかになる。
図2に、暗号通信プログラム20を示すと、このプログラムはエンティティ4,6が記憶し、暗号化部8や復号部10並びに鍵記憶部12を生成するために用いられる。22は鍵記憶命令で、自己の公開鍵と秘密鍵の値、並びにこれらの鍵を記憶するための命令とから成る。暗号化命令24は、暗号化部8でメッセージmとノイズeを暗号文Cに変換するための命令である。復号命令26は受信した暗号文を復号部10で復号するための命令である。暗号化命令24の内容は、以下の暗号化の説明から明らかになり、復号命令26の内容も、復号に関する説明から明らかになる。
記号
図3に、実施例での記号の意味などを示す。なお各データは、拡大体F2 Pのデータであるものとし、メッセージmは例えばk+1次元のベクトルで与えられ、ノイズeは純粋なノイズであることもあれば、長さが2nよりも短いメッセージであることもある。実施例ではノイズeをそのまま使うことによる暗号強度の低下を防止するため、eを非線形変換Aで処理してeAとして用いる。Cは暗号文で、例えば長さ2nのベクトルであり、メッセージmを暗号化した部分をC1,ノイズeを暗号化した部分をC2とすると、これらの排他加算により暗号文Cが与えられる。
図3に、実施例での記号の意味などを示す。なお各データは、拡大体F2 Pのデータであるものとし、メッセージmは例えばk+1次元のベクトルで与えられ、ノイズeは純粋なノイズであることもあれば、長さが2nよりも短いメッセージであることもある。実施例ではノイズeをそのまま使うことによる暗号強度の低下を防止するため、eを非線形変換Aで処理してeAとして用いる。Cは暗号文で、例えば長さ2nのベクトルであり、メッセージmを暗号化した部分をC1,ノイズeを暗号化した部分をC2とすると、これらの排他加算により暗号文Cが与えられる。
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に由来する成分で構成されている。
行列Kが2n列の行列であるのに対して、ノイズeの長さは、2nよりも短い長さ、例えば 2n−(n/4+2) 以下の長さとするので、CP-1にはノイズの寄与が既知の成分を設けることができる。例えばCP-1のj番目の成分とj+n番目の成分で、ノイズに由来する部分の値を0とすることができる。jの値は復号化部で既知なので、Bのj番目の成分はm~k+1(Rj(+)Rj+n)で定まり、m~k+1を求めることができる。そしてm~k+1が判明すると、CP-1やBからRに由来する成分を除去できる。 C2=eA として、C2P-1を4分割し、(XL,YL,YR,XR)とする。ここでXL〜XRは、例えば各々長さがn/2のベクトルとなる。C2P-1を直接求めることは困難であるが、Bから乱数ベクトルRに由来する成分を消去すると、XL+YR及びYL+XRを求めることができる。言い換えるとC2の持つ情報量の約半分を求めることができる。また YR=αYL とする。ここにαはF2 Pの元である。
暗号化
図4,図5に暗号化のプロセスを示す。暗号化しようとするエンティティは公開鍵M,Aを取得し、メッセージmに対して公開鍵Mを用いて暗号文C1を作成する。なおメッセージの長さはk+1次元で、このうち元m1〜mkは符号化行列Gの作用を受け、元mk+1は乱数ベクトルRの作用を受ける。行列Kの長さを2n次元として、これよりも少なくとも2次元短いベクトルeを用意し、ベクトルeはノイズであっても、メッセージであっても良い。ベクトルeがメッセージである場合は、アフィン変換や8C4符号などの非線形符号を用いた変換Aにより、ベクトルeを暗号文C2に変換する。この結果、暗号文C2には、簡単な規則性が見出しにくくなる。そして暗号文C1と暗号文C2との排他加算を暗号文Cとする。暗号文Cは2n次元のベクトルで、各元はFP q(例えばP=2,qは素数や8などであるが、1でも良い)の元である。得られた暗号文を、インターネットなどを介して復号側のエンティティへと送信する。
図4,図5に暗号化のプロセスを示す。暗号化しようとするエンティティは公開鍵M,Aを取得し、メッセージmに対して公開鍵Mを用いて暗号文C1を作成する。なおメッセージの長さはk+1次元で、このうち元m1〜mkは符号化行列Gの作用を受け、元mk+1は乱数ベクトルRの作用を受ける。行列Kの長さを2n次元として、これよりも少なくとも2次元短いベクトルeを用意し、ベクトルeはノイズであっても、メッセージであっても良い。ベクトルeがメッセージである場合は、アフィン変換や8C4符号などの非線形符号を用いた変換Aにより、ベクトルeを暗号文C2に変換する。この結果、暗号文C2には、簡単な規則性が見出しにくくなる。そして暗号文C1と暗号文C2との排他加算を暗号文Cとする。暗号文Cは2n次元のベクトルで、各元はFP q(例えばP=2,qは素数や8などであるが、1でも良い)の元である。得られた暗号文を、インターネットなどを介して復号側のエンティティへと送信する。
メッセージ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である。
メッセージeは、非線形変換Aを受けることによりC2に変換される。この時ベクトルの長さは2n次元へと伸張される。暗号文C2にはC2P-1において、既知の番号jに対し、(C2P-1)j,(C2P-1)j+nが共に既知であるとの条件がある。この性質は後にm~k+1の復号に用いられる。またC2P-1を長さがそれぞれn/2のサブベクトルXL,YL,YR,XRに分割すると、 YR=αYL との関係があるようにする。なおYRとYLとを関係づけることに代えて、例えばXLとYLとの間に同様の関係を与えたり、YRとXRとの間に同様の関係を与えてもよい。これらのためベクトルeの次元は、例えば3n/2程度、あるいは2n−k程度が上限となる。そして暗号文C1と暗号文C2の排他加算が暗号文Cとなる。
復号
図6〜図8に、復号アルゴリズムとその過程での処理を示す。復号するエンティティは暗号文Cを受信すると、転置行列Pの逆行列P-1を作用させ、 CP-1=m~k+C2P-1 を得る。CP-1の左半分と右半分とを排他加算したものをベクトルBとすると、その次元はn次元である。ベクトルBにおいて、符号化行列Gに由来する部分は排他加算で消去され、m~k+1と乱数ベクトルRに由来する部分、並びにC2P-1の左半分(C2P-1)Lと右半分(C2P-1)Rとの排他加算が残る。ここで1〜nの特定の値jに対して、(C2P-1)Ljと
(C2P-1)Rjの排他加算の値は既知なので、m~k+1を決定できる。さらに乱数ベクトルRは既知なので、これを用いてベクトルBから(C2P-1)Ljと(C2P-1)Rjの排他加算値を決定できる。ここに j=1〜n である。
図6〜図8に、復号アルゴリズムとその過程での処理を示す。復号するエンティティは暗号文Cを受信すると、転置行列Pの逆行列P-1を作用させ、 CP-1=m~k+C2P-1 を得る。CP-1の左半分と右半分とを排他加算したものをベクトルBとすると、その次元はn次元である。ベクトルBにおいて、符号化行列Gに由来する部分は排他加算で消去され、m~k+1と乱数ベクトルRに由来する部分、並びにC2P-1の左半分(C2P-1)Lと右半分(C2P-1)Rとの排他加算が残る。ここで1〜nの特定の値jに対して、(C2P-1)Ljと
(C2P-1)Rjの排他加算の値は既知なので、m~k+1を決定できる。さらに乱数ベクトルRは既知なので、これを用いてベクトルBから(C2P-1)Ljと(C2P-1)Rjの排他加算値を決定できる。ここに j=1〜n である。
前記のようにC2P-1を4つの等長のサブベクトルに分割し、XL,YL,YR,XRを各サブベクトルとすると、(C2P-1)jと(C2P-1)j+nの排他加算値が j=1〜n に付いて既知なことから、XLとYRの排他加算値やYLとXRの排他加算値は既知となる。そこで
C2P-1の例えば左半分にXLとYRの排他加算値を排他加算すると、m~G+(YR,YL)が得られる。
C2P-1の例えば左半分にXLとYRの排他加算値を排他加算すると、m~G+(YR,YL)が得られる。
ここでYRとYLには特別な関係があり、一方が定まれば他方が定まる関係にある。特に YR=αYL としておくと、符号化行列Gに由来する誤り訂正能力を用いて、YR及び YLを決定できる。例えばYRの0でない元の数を、符号化行列Gの誤り訂正能力の範囲にすると、YR,YLを決定できる。
YR,YLを決定できると、同時にm~が決定でき、 m=m~S-1 なので、mを復号できる。YRとYLが分かると、XLとYRとの排他加算値が既知なので、XLが決定できる。同様にYLとXRの排他加算値も既知なので、XRも決定できる。これらによって、XL,YL,YR,XRが求まり、eを復号できる。そしてメッセージmとベクトルeを復号できると、復号が終了する。
図8に、復号過程でのデータの変化を示し、特にYRとYLとの関係を用いて、これらを決定する点を示す。符号化行列Gに対応する生成多項式をG(X)とし、
G(X)=Πi=1〜g(X−αi) とすると、YL(X)及びYR(X)を図8のように表すことができる。そこでYL(X)とYR(X)を加算したものは、 YL(X)(1+αXn/2) に等しく、ここで因数(1+αXn/2)と生成多項式G(X)が互いに素ならば、YL(X)が判明する。
G(X)=Πi=1〜g(X−αi) とすると、YL(X)及びYR(X)を図8のように表すことができる。そこでYL(X)とYR(X)を加算したものは、 YL(X)(1+αXn/2) に等しく、ここで因数(1+αXn/2)と生成多項式G(X)が互いに素ならば、YL(X)が判明する。
図8の過程で、暗号文Cに含まれる2nの情報量の内、C2P-1の左半分とC2P-1の右半分の排他加算値を決定した時点で、ほぼnに相当する情報量を得ることができる。次にYL,YRを決定する時点で、n/2〜n/4程度の情報量を求めることができ、復号した情報量の合計は3n/2〜5n/4となる。またm~の復号により、行列Kの行数程度、ここでは n/2=k 程度の情報量が求まり、合計約2nの情報量を復元できる。
暗号システムの強度
暗号システムの強度は主として行列Kの曖昧さ、即ち行列Kの全体から成る集合の濃度で定まる。そこでこの濃度の対数により暗号の強度を評価できる。例えば体がF2 8であるものとし、符号化行列Gが128×256の行列で、乱数ベクトルRが1行のベクトルであるとすると、行列Kのサイズは1032行×4096列となる。この結果、公開鍵Mのサイズは約4Mビットとなる。符号化行列Gは任意の値をとることができるわけではないので、その濃度の対数は約1000バイト程度と評価できる。これに対して乱数ベクトルR全体の集合の濃度の対数は、少なくとも4000バイトで、乱数ベクトルの付加により暗号強度が飛躍的に増していることが分かる。
暗号システムの強度は主として行列Kの曖昧さ、即ち行列Kの全体から成る集合の濃度で定まる。そこでこの濃度の対数により暗号の強度を評価できる。例えば体がF2 8であるものとし、符号化行列Gが128×256の行列で、乱数ベクトルRが1行のベクトルであるとすると、行列Kのサイズは1032行×4096列となる。この結果、公開鍵Mのサイズは約4Mビットとなる。符号化行列Gは任意の値をとることができるわけではないので、その濃度の対数は約1000バイト程度と評価できる。これに対して乱数ベクトルR全体の集合の濃度の対数は、少なくとも4000バイトで、乱数ベクトルの付加により暗号強度が飛躍的に増していることが分かる。
情報化率
行列Gのサイズがk×nで、kは約n/2と仮定する。すると長さ2nの暗号文に対し、メッセージ長はn/2、ベクトルeが持つことができる情報量はn+n/4〜n+n/2である。従って情報化率の上限は約1もしくは0.875の程度となる。このように高い情報化率が求められる。
行列Gのサイズがk×nで、kは約n/2と仮定する。すると長さ2nの暗号文に対し、メッセージ長はn/2、ベクトルeが持つことができる情報量はn+n/4〜n+n/2である。従って情報化率の上限は約1もしくは0.875の程度となる。このように高い情報化率が求められる。
変形例
乱数ベクトルRは1行のベクトルである必要はなく、2行以上のベクトルでも良い。例えば乱数ベクトルが3行から成るものとし、これに対応して復号可能な元がm~k+1,m~k+2,m~k+3とする。これらの値を決定するには、ノイズに由来するデータの無い個所が3個所必要で、前記のjの他に、j’,j”において、ノイズに由来するデータがなければよい。
乱数ベクトルRは1行のベクトルである必要はなく、2行以上のベクトルでも良い。例えば乱数ベクトルが3行から成るものとし、これに対応して復号可能な元がm~k+1,m~k+2,m~k+3とする。これらの値を決定するには、ノイズに由来するデータの無い個所が3個所必要で、前記のjの他に、j’,j”において、ノイズに由来するデータがなければよい。
行列Kでの符号化行列Gは、左右同じものを用いる必要はなく、例えばベクトルCP-1の左半分と右半分の排他加算を行った際に、左側の行列GLと右側の行列GRとに由来する部分の排他加算値が既知となればよい。
ベクトルeを単なるノイズとすれば、情報化率が低下する。例えば最も簡単には、ベクトルeの中で、0でない元の数w(e)が行列Gの誤り訂正能力の範囲内であるようにする。すると、m~k+1を決定した後に、行列Gによる符号訂正を用いて、ベクトルCP-1の左半分もしくは右半分により、メッセージm~を直ちに復号できる。また情報化率を3/4程度にする場合、メッセージeの長さを例えば5n/4程度とし、うちn個の元を実際のメッセージとし、n/4個の元をノイズとする。C2P-1では、n個の元がメッセージに由来し、これらがXLとXRの部分に分布し、n/4個の元がノイズに由来して、これらがYRとYLの部分に分布するようにすれば、行列Gの誤り訂正能力を用いて、ノイズに由来するn/4個の元を決定すると共に、メッセージm~を決定できる。そしてXLとYRの排他加算値や、YLとXRの排他加算値が既知なので、YL,YRの値から、XLやXRに含まれるメッセージを復号できる。
ベクトルeを単なるノイズとすれば、情報化率が低下する。例えば最も簡単には、ベクトルeの中で、0でない元の数w(e)が行列Gの誤り訂正能力の範囲内であるようにする。すると、m~k+1を決定した後に、行列Gによる符号訂正を用いて、ベクトルCP-1の左半分もしくは右半分により、メッセージm~を直ちに復号できる。また情報化率を3/4程度にする場合、メッセージeの長さを例えば5n/4程度とし、うちn個の元を実際のメッセージとし、n/4個の元をノイズとする。C2P-1では、n個の元がメッセージに由来し、これらがXLとXRの部分に分布し、n/4個の元がノイズに由来して、これらがYRとYLの部分に分布するようにすれば、行列Gの誤り訂正能力を用いて、ノイズに由来するn/4個の元を決定すると共に、メッセージm~を決定できる。そしてXLとYRの排他加算値や、YLとXRの排他加算値が既知なので、YL,YRの値から、XLやXRに含まれるメッセージを復号できる。
2 インターネット
4,6 エンティティ
8 暗号化部
10 復号部
12 鍵記憶部
20 暗号通信プログラム
22 鍵記憶命令
24 暗号化命令
26 復号命令
4,6 エンティティ
8 暗号化部
10 復号部
12 鍵記憶部
20 暗号通信プログラム
22 鍵記憶命令
24 暗号化命令
26 復号命令
Claims (6)
- メッセージmを誤り訂正可能な符号に符号化したものにノイズeを混合した暗号文を、前記符号の誤り訂正能力を用いて平文へ復号する復号装置において、
受信した暗号文Cに由来するベクトルCP-1から、少なくとも2つのサブベクトル
CP-1 R,CP-1 Lを生成するための手段と、
前記少なくとも2つのサブベクトルCP-1 L,CP-1 Rを組み合わせてベクトルBを求めるための手段と、
ベクトルBの特定の成分から、少なくともデータm~k+1を求めるための手段と、
既知の乱数とデータm~k+1とから、ベクトルBもしくはベクトルCP-1の、少なくとも一部の成分に対して、前記既知乱数に由来する成分を消去したデータを求めるための手段と、
前記既知乱数に由来する成分を除去したデータから、誤り訂正によりメッセージmを復号するための手段とを設けたことを特徴とする、復号装置。 - 既知乱数に由来する成分を除去したデータから、ノイズをメッセージとして復号するための手段を設けたことを特徴とする、請求項1の復号装置。
- メッセージmを復号する際の誤り訂正によりノイズの一部を復号すると共に、ベクトルBから既知乱数に由来する成分を除去したデータと組み合わせて、ノイズの他の部分を復号する手段を設けたことを特徴とする、請求項2の復号装置。
- メッセージmを誤り訂正可能な符号に符号化したものにノイズeを混合した暗号文を、前記符号の誤り訂正能力を用いて平文へ復号するための復号プログラムにおいて、
受信した暗号文Cに由来するベクトルCP-1から、少なくとも2つのサブベクトル
CP-1 R,CP-1 Lを生成するための命令と、
前記少なくとも2つのサブベクトルCP-1 L,CP-1 Rを組み合わせてベクトルBを求めるための命令と、
ベクトルBの特定の成分から、少なくともデータm~k+1を求めるための手段と、
既知の乱数とデータm~k+1とから、ベクトルBもしくはベクトルCP-1の、少なくとも一部の成分に対して、前記既知乱数に由来する成分を消去したデータを求めるための命令と、
前記既知乱数に由来する成分を除去したデータから、誤り訂正によりメッセージmを復号するための命令とを設けたことを特徴とする、復号プログラム。 - 通信手段と、メッセージmを誤り訂正可能な符号に符号化したものにノイズeを混合して暗号化するための暗号化手段と、受信した暗号文を前記符号の誤り訂正能力を用いて平文へ復号するための復号手段とを備えた暗号通信装置において、
前記復号手段は、
受信した暗号文Cに由来するベクトルCP-1から、少なくとも2つのサブベクトル
CP-1 R,CP-1 Lを生成するための手段と、
前記少なくとも2つのサブベクトルCP-1 L,CP-1 Rを組み合わせてベクトルBを求めるための手段と、
ベクトルBの特定の成分から、少なくともデータm~k+1を求めるための手段と、
既知の乱数とデータm~k+1とから、ベクトルBもしくはベクトルCP-1、の少なくとも一部の成分に対して、前記既知乱数に由来する成分を消去したデータを求めるための手段と、
前記既知乱数に由来する成分を除去したデータから、誤り訂正によりメッセージmを復号するための手段とを備えていることを特徴とする、暗号通信装置。 - 前記暗号通信装置は、符号化行列
K= |GA,GB|
| R |
に由来する変換を公開鍵とすることを特徴とする、請求項5の暗号通信装置。
ここにGA,GBは符号化行列で、GAで符号化した符号とGBで符号化した符号とは相互変換が自在である。Rは少なくとも1行の乱数ベクトルである。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004320579A JP2006133380A (ja) | 2004-11-04 | 2004-11-04 | 復号装置と復号プログラム及び暗号通信システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004320579A JP2006133380A (ja) | 2004-11-04 | 2004-11-04 | 復号装置と復号プログラム及び暗号通信システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006133380A true JP2006133380A (ja) | 2006-05-25 |
Family
ID=36726998
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004320579A Withdrawn JP2006133380A (ja) | 2004-11-04 | 2004-11-04 | 復号装置と復号プログラム及び暗号通信システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006133380A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009152838A (ja) * | 2007-12-20 | 2009-07-09 | Sumitomo Electric Ind Ltd | 通信システム |
JP2010530990A (ja) * | 2007-06-22 | 2010-09-16 | サントル ナシオナル ドゥ ラ ルシェルシェサイアンティフィク(セエヌエールエス) | 公開行列に基づき、エラー補正コードのデコーディングを用いて認証を行う方法 |
JP2011509433A (ja) * | 2008-01-11 | 2011-03-24 | フランス・テレコム | 確率的対称暗号化のための方法およびエンティティ |
JP2022520675A (ja) * | 2018-12-21 | 2022-04-01 | 01 コミュニーク ラボラトリー インコーポレイテッド | 暗号システムおよび方法 |
-
2004
- 2004-11-04 JP JP2004320579A patent/JP2006133380A/ja not_active Withdrawn
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010530990A (ja) * | 2007-06-22 | 2010-09-16 | サントル ナシオナル ドゥ ラ ルシェルシェサイアンティフィク(セエヌエールエス) | 公開行列に基づき、エラー補正コードのデコーディングを用いて認証を行う方法 |
JP2009152838A (ja) * | 2007-12-20 | 2009-07-09 | Sumitomo Electric Ind Ltd | 通信システム |
JP2011509433A (ja) * | 2008-01-11 | 2011-03-24 | フランス・テレコム | 確率的対称暗号化のための方法およびエンティティ |
JP2014142663A (ja) * | 2008-01-11 | 2014-08-07 | Orange | 確率的対称暗号化のための方法およびエンティティ |
JP2022520675A (ja) * | 2018-12-21 | 2022-04-01 | 01 コミュニーク ラボラトリー インコーポレイテッド | 暗号システムおよび方法 |
JP7328969B2 (ja) | 2018-12-21 | 2023-08-17 | 01 コミュニーク ラボラトリー インコーポレイテッド | 暗号システムおよび方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5564434B2 (ja) | 確率的対称暗号化のための方法およびエンティティ | |
KR101246490B1 (ko) | 갈루아 폐체 암호 시스템 | |
KR101809386B1 (ko) | 인증 암호 장치, 인증 암호 방법 및 컴퓨터 판독가능한 기록 매체 | |
KR100561846B1 (ko) | 가중된 비밀 공유 및 복원 방법 | |
JPH09230786A (ja) | データの暗号化方法及び装置 | |
KR101942030B1 (ko) | 메시지에 대한 무결성 검증이 지원되는 부호 기반의 암호화가 가능한 전자 장치 및 그 동작 방법 | |
KR100561847B1 (ko) | 공개키를 이용한 데이터 암호화 및 복호화 방법 | |
JP2009116348A (ja) | データの非相関化方法 | |
JP2010524014A (ja) | レートレス符号によってコード化された内容のための低複雑性暗号化方法 | |
JP2008099243A (ja) | 誤り訂正符号化装置、誤り訂正符号化方法及びプログラム | |
KR101978684B1 (ko) | 재생 공격 방지가 가능한 부호 기반 암호화 장치 및 방법 | |
JP2001282103A (ja) | 暗号化方法 | |
JP2006133380A (ja) | 復号装置と復号プログラム及び暗号通信システム | |
JP7136226B2 (ja) | 認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法、認証暗号化プログラムおよび認証復号プログラム | |
GB2413465A (en) | Signing and encryption using a unique message string | |
NL9202284A (nl) | Bloksgewijze vercijfering op basis van algebraische coderingsmethoden. | |
US11502818B2 (en) | System to secure encoding and mapping on elliptic curve cryptography (ECC) | |
KR101984297B1 (ko) | 메시지 인코딩 방법, 메시지 암호화 방법 및 장치 | |
JP5293612B2 (ja) | 暗号化装置、復号装置、暗号化方法、復号方法およびプログラム | |
Elder | Quantum resistant Reed Muller codes on McEliece cryptosystem | |
Moldovyan et al. | New Modes of Using Block Ciphers: Error Correction and Pseudo-probabilistic Encryption | |
Patra et al. | Data Reduction by Huffman Coding and Encryption by Insertion of Shuffled Cyclic Redundancy Code | |
JPH11327436A (ja) | 暗号化装置 | |
JPH11161164A (ja) | 公開鍵暗号方式と暗号化装置および復号装置 | |
JP5062643B2 (ja) | 誤り訂正符号化装置、誤り訂正符号化方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Effective date: 20070817 Free format text: JAPANESE INTERMEDIATE CODE: A621 |
|
A761 | Written withdrawal of application |
Effective date: 20090619 Free format text: JAPANESE INTERMEDIATE CODE: A761 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090708 |