説明

暗号化装置、復号化装置、暗号化方法及び復号化方法

【課題】 McEliece暗号方式において、暗号文を平文に対して冗長化する割合を低減することのできる暗号化装置を提供する。
【解決手段】 Nビットの平文pを公開鍵PGSで符号化してM(>N)ビットの冗長化ベクトルを生成する符号化手段15を有したMcEliece暗号方式の暗号化装置10において、M×M型の置換行列をP、M×N型の生成行列をG、N×N型の可逆行列をS、縦長のM×Y(N<Y<M)型の圧縮行列をHとしたときに、式(1)に基づいて、圧縮行列Hで冗長化ベクトルを歪みあり圧縮することにより、暗号文cを生成し、この暗号文cを生成する際に、歪みあり圧縮で生じる歪みを示すベクトルnとして、復号時に公開鍵PGSで訂正できるレベルのベクトルを選択する圧縮手段16を備える構成とした。
(PGS)p+n=Hc…(1)

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、McEliece暗号方式を改良した暗号方式を利用する暗号化装置、復号化装置、暗号化方法及び復号化方法に関する。
【背景技術】
【0002】
公開鍵暗号方式として有名なRSA(Rivest Shamir Adleman)暗号方式では、素因数分解が困難であることに、安全性の基礎を置いている。この素因数分解に費やす計算量は、通常の計算機で実行すると膨大な時間を要するものである。したがって、この素因数分解は現実的には実行不可能と言われている。しかし、RSA暗号方式には、他の攻撃法が存在する可能性が指摘されている。また、将来、飛躍的に計算速度の速い量子計算機などが開発された場合、安全性の基礎である素因数分解が容易に実行されてしまう危惧がある。そこで、RSA暗号方式を代替する有望な公開暗号方式として、McEliece(マクリース)暗号方式が提案されている(例えば非特許文献1、非特許文献2)。
【0003】
このMcEliece暗号方式は、RSA暗号方式とは全く異なった立場で構成されており、Goppa(ゴッパ)符号やLDPC(Low Density Parity Check Code)符号と呼ばれる線形の誤り訂正符号を利用したものである。具体的には、McEliece暗号方式は、暗号文の形式が所定の条件を満足する場合にだけ復号でき、暗号化の際に、平文を公開鍵で符号化した後、復号時に訂正できる範囲でノイズを付加して暗号文を生成する。なお、このノイズはある程度小さい(ノイズを表すベクトルの要素として「1」の個数が少ない)ものである。
【0004】
また、McEliece暗号方式は、線形符号の復号が困難であることに、安全性の基礎を置いている。このMcEliece暗号方式では、(1)線形符号である公開鍵の因数分解が困難(構造的攻撃)である、(2)公開鍵のままでの復号が困難(復号攻撃)であるという2つの側面から研究されているが、どちらも現実的な計算資源による攻撃法が発見されていない。
【非特許文献1】R. McEliece, A public-key cryptosystem based on algebraic coding theory, DSN Progress Report, 1978,vol.42-44,114-116
【非特許文献2】R. L. Rivest, A. Shamir,and L. M. Adleman, A method for obtaining digital signatures and public-key cryptosystems, Communications of the ACM,21(2):120-126,February 1978
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、従来のMcEliece暗号方式では、暗号化する際に冗長化される割合が非常に大きい。つまり、暗号文が平文より極端に長くなるという問題がある。そして、McEliece暗号方式では、圧縮そのものができなかった。
【0006】
そこで、本発明では、前記した問題を解決し、McEliece暗号方式において、暗号文を平文に対して冗長化する割合を低減することのできる暗号化装置及び暗号化方法を提供することを目的とする。
また、本発明では、前記した暗号化装置または暗号化方法で暗号化された暗号文を復号することのできる復号化装置及び復号化方法を提供することを他の目的とする。
【課題を解決するための手段】
【0007】
前記課題を解決するため、請求項1に記載の暗号化装置は、第1のビット長を有する平文を線形符号で符号化することにより、前記第1のビット長よりも長い第2のビット長を有する符号化データを生成する符号化手段と、前記符号化データに基づいて暗号文を生成する暗号文生成手段とを有したMcEliece暗号方式の暗号化装置において、前記第1のビット長をN、前記第2のビット長をM、前記平文をp、M×M型の置換行列をP、M×N型の生成行列をG、N×N型の可逆行列をS、前記線形符号をPGS、前記符号化データを(PGS)p、縦長のM×Y(N<Y<M)型の圧縮行列をHとしたときに、前記暗号文生成手段は、式(1)に基づいて、前記圧縮行列Hで前記符号化データ(PGS)pを歪みあり圧縮することにより、暗号文cを生成し、この暗号文cを生成する際に、前記歪みあり圧縮で生じる歪みを示すベクトルnとして、復号時に前記線形符号PGSで訂正できるレベルのベクトルを選択することを特徴とする。
(PGS)p+n=Hc …(1)
【0008】
かかる構成によれば、暗号化装置は、符号化手段によって、第1のビット長(N)を有する平文を、線形符号で符号化することにより、第1のビット長(N)よりも長い第2のビット長(M)を有する符号化データを生成する。そして、暗号化装置は、暗号文生成手段によって、予め定められている圧縮行列を用いて符号化データを歪みあり圧縮して、暗号文を生成する。生成される暗号文のビット長は圧縮行列の列数と等しいのでYビットとなる。
その結果、従来の暗号化装置が、符号化データに対してこの符号化データと同じビット数のノイズを加えて第2のビット長(M)を有する暗号文を生成する場合と比較して、本発明の暗号化装置は、暗号文のビット長(Y)を小さくすることができる。
【0009】
ここで、式(1)は、暗号文cの定義式となっている。この式(1)における線形符号PGSは、公開鍵として公開されるが、この公開鍵を構成する行列要素であるP,G,Sは、それぞれ復号側以外には秘密にされる。
また、式(1)において、符号化データ(PGS)pと歪みnは共にMビットであり、暗号文cに圧縮行列Hを作用させて生成するHcもMビットである。この圧縮行列Hは縦長行列なので、圧縮行列Hを作用させると暗号文cは冗長化する(ビット数が大きくなる)ことになる。換言すれば、暗号化装置で生成される暗号文cは、圧縮行列Hに基づいて歪みあり圧縮されることとなる。
【0010】
また、暗号文生成手段は、式(1)に基づいて、符号化データ(PGS)pと圧縮行列Hとを利用して暗号文cを生成する際に、歪みあり圧縮で生じる歪みを示すベクトルnとして、復号時に線形符号で訂正できるレベルのベクトルを選択する。このとき、歪みを示すベクトルnは零ベクトルに近似して「0」の要素を多数含むものであり、暗号文生成手段は、歪みnと暗号文cとの最適な組を選択する。また、このようにできるように、圧縮行列の次元(行数、列数)や要素を予め定めておく。また、ベクトルnができるだけ零ベクトルに近似するようにするための距離の尺度としてハミング距離を利用する。なお、訂正とは、従来のMcEliece暗号方式で付加するノイズに相当する「歪み」を訂正することを意味する。また、歪みあり圧縮は、不可逆圧縮または損失性圧縮を意味する。
【0011】
請求項2に記載の暗号化装置は、請求項1に記載の暗号化装置において、前記暗号文生成手段が、前記符号化データの要素の値をイジング型の値に変換する第1データ変換手段と、前記イジング型の値に変換された要素、前記圧縮行列、及び、前記歪みあり圧縮で生じる歪みがランダムに分布するように予め最適化された所定値に基づいて、前記符号化データを圧縮した1次元配列データの要素である圧縮要素をそれぞれ算出する圧縮要素算出手段と、前記圧縮要素の符号をイジング型の値に変換する符号変換手段と、前記イジング型の値として変換された符号を論理型の値に変換する第2データ変換手段とを備えることを特徴とする。
【0012】
かかる構成によれば、暗号化装置において、暗号文生成手段は、第1データ変換手段によって、符号化データの要素として例えば2進の論理値で表された「0」と「1」を、統計力学で用いるイジング型のアップスピン及びダウンスピンの値に対応した「+1」と「−1」にそれぞれ変換する。そして、暗号文生成手段は、圧縮要素算出手段によって、イジング型の値に変換された要素、圧縮行列、及び、所定値に基づいて、符号化データを圧縮した1次元配列データの要素である圧縮要素をそれぞれ算出する。ここで、所定値は、歪みあり圧縮で生じる歪みがランダムに分布するように予め最適化されている。このように最適化するためには、例えばスピングラスなどにおいて、自由エネルギー等を算出する際の統計力学的な手法を用いることができる。そして、暗号文生成手段は、符号変換手段によって、圧縮要素の符号をイジング型の値に変換する。この符号変換手段は、例えば入力値の符号が正ならば「+1」、入力値の符号が負ならば「−1」をそれぞれ出力する。そして、暗号文生成手段は、第2データ変換手段によって、イジング型の値として変換された符号を論理型の値に変換する。これによって、歪みあり圧縮された暗号文を生成することができる。
【0013】
請求項3に記載の復号化装置は、請求項1または請求項2に記載の暗号化装置を用いて圧縮行列で歪みあり圧縮により生成された暗号文を復号化する復号化装置であって、前記暗号文に前記圧縮行列を作用させた復元データを生成することにより、前記暗号文のビット長を、前記符号化データのビット長に復元する復元手段と、前記復元されたビット長の復元データを、前記線形符号で復号化する復号化手段とを有することを特徴とする。
【0014】
かかる構成によれば、復号化装置は、復元手段によって、暗号文に圧縮行列を作用させた復元データを生成することにより、暗号文のビット長(Y)を、符号化データのビット長(M)に復元する。そして、復号化装置は、復号化手段によって、復元されたビット長(M)の復元データを、線形符号で復号化する。これにより、線形符号で暗号化される前の平文を生成することができる。ここで、暗号文に圧縮行列を作用させるには、前記した式(1)に基づいて、圧縮行列Hを暗号文cに左からかける。この演算により容易に圧縮を解除することができる。
【0015】
請求項4に記載の暗号化方法は、第1のビット長を有する平文を線形符号で符号化することにより、前記第1のビット長よりも長い第2のビット長を有する符号化データを生成する符号化ステップと、前記符号化データに基づいて暗号文を生成する暗号文生成ステップとを有したMcEliece暗号方式の暗号化装置の暗号化方法において、前記第1のビット長をN、前記第2のビット長をM、前記平文をp、M×M型の置換行列をP、M×N型の生成行列をG、N×N型の可逆行列をS、前記線形符号をPGS、前記符号化データを(PGS)p、縦長のM×Y(N<Y<M)型の圧縮行列をHとしたときに、前記暗号文生成ステップは、式(1)に基づいて、前記圧縮行列Hで前記符号化データ(PGS)pを歪みあり圧縮することにより、暗号文cを生成し、この暗号文cを生成する際に、前記歪みあり圧縮で生じる歪みを示すベクトルnとして、復号時に前記線形符号PGSで訂正できるレベルのベクトルを選択することを特徴とする。
(PGS)p+n=Hc …(1)
【0016】
このような手順によれば、暗号化装置は、符号化ステップで、第1のビット長(N)を有する平文を、線形符号で符号化することにより、第1のビット長(N)よりも長い第2のビット長(M)を有する符号化データを生成する。そして、暗号化装置は、暗号文生成ステップで、予め定められている圧縮行列を用いて符号化データを歪みあり圧縮して、暗号文を生成する。生成される暗号文のビット長は圧縮行列の列数と等しいのでYビットとなる。
その結果、従来の暗号化方法において、符号化データに対してこの符号化データと同じビット数のノイズを加えて第2のビット長(M)を有する暗号文を生成する場合と比較して、本発明の暗号化方法は、暗号文のビット数(Y)を小さくすることができる。
【0017】
請求項5に記載の暗号化方法は、請求項4に記載の暗号化方法において、前記暗号文生成ステップが、前記符号化データの要素の値をイジング型の値に変換する第1データ変換ステップと、前記イジング型の値に変換された要素、前記圧縮行列、及び、前記歪みあり圧縮で生じる歪みがランダムに分布するように予め最適化された所定値に基づいて、前記符号化データを圧縮した1次元配列データの要素である圧縮要素をそれぞれ算出する圧縮要素算出ステップと、前記圧縮要素の符号をイジング型に変換する符号変換ステップと、前記イジング型の値として変換された符号を論理型の値に変換する第2データ変換ステップとをさらに有することを特徴とする。
【0018】
このような手順によれば、暗号化装置は、暗号文生成ステップにおいて、第1データ変換ステップで、符号化データの要素として例えば2進の論理値で表された「0」と「1」を、統計力学で用いるイジング型のアップスピン及びダウンスピンの値に対応した「+1」と「−1」に変換する。続いて、暗号化装置は、圧縮要素算出ステップで、イジング型の値に変換された要素、圧縮行列、及び、所定値に基づいて、符号化データを圧縮した1次元配列データの要素である圧縮要素をそれぞれ算出する。そして、暗号化装置は、符号変換ステップで、圧縮要素の符号をイジング型の値に変換する。続いて、暗号化装置は、第2データ変換ステップで、イジング型の値として変換された符号を論理型の値に変換する。これによって、歪みあり圧縮された暗号文を生成することができる。
【0019】
請求項6に記載の復号化方法は、請求項4または請求項5に記載の暗号化方法を用いて圧縮行列で歪みあり圧縮により生成された暗号文を復号化する復号化装置の復号化方法であって、前記暗号文に前記圧縮行列を作用させた復元データを生成することにより、前記暗号文のビット長を、前記符号化データのビット長に復元する復元ステップと、前記復元されたビット長の復元データを、前記線形符号で復号化する復号化ステップとを有することを特徴とする。
【0020】
このような手順によれば、復号化装置は、復元ステップで、暗号文に圧縮行列を作用させた復元データを生成することにより、暗号文のビット長(Y)を、符号化データのビット長(M)に復元する。続いて、復号化ステップで、復元されたビット長(M)の復元データを、線形符号で復号化する。これにより、線形符号で暗号化される前の平文を生成することができる。
【発明の効果】
【0021】
本発明によれば、McEliece暗号方式において、暗号文を平文に対して冗長化する割合を低減することができる。その結果、暗号文を送信する際の通信コストを低減することができる。また、本発明によれば、平文に対して冗長化する割合を低減した暗号文を容易に復号することができる。
【発明を実施するための最良の形態】
【0022】
以下、本発明の実施形態について、適宜図面を参照しながら説明する。図1は、本発明の実施形態に係る暗号化装置と復号化装置とを含む通信システムの構成例を示す図である。
[通信システムの構成]
図1に示すように、この通信システム1では、例えばインターネット等の通信路2を介して、暗号化装置10と、復号化装置20とが接続されている。これらの各装置10,20は、一般的なコンピュータ(計算機)であり、例えば、CPU(Central Processing Unit)と、RAM(Random Access Memory)と、ROM(Read Only Memory)と、HDD(Hard Disk Drive)と、KB/CRT(Key Board/Cathode Ray Tube)と、通信インタフェースとを含んで構成されている。以下に、各装置10,20の機能を詳細に説明する。
【0023】
[暗号化装置の機能]
暗号化装置10は、次式(1)に基づいて、式(2)で示される暗号化演算fを実行し、平文pから暗号文cを生成するものである。
(PGS)p+n=Hc …(1)
f(p|PGS,H)∈{∃n,(PGS)p+n=Hc}…(2)
ここで、平文pのビット長(第1のビット長)をN、Nより大きいビット長(第2のビット長)をM、M×M型の置換行列をP、M×N型の生成行列をG、N×N型の可逆行列をS、線形符号をPGS、縦長のM×Y(N<Y<M)型の圧縮行列をH、歪みあり圧縮で生じる歪みをnとした。
【0024】
暗号化装置10は、図1に示すように、入力手段11と、記憶手段(RAM等)12と、制御手段(CPU等)13と、出力手段14とを備える。
入力手段11は、平文pを入力し、制御手段13に出力するものである。
記憶手段12は、半導体メモリや磁気メモリなどの書き換え可能な記憶手段であり、制御手段13による演算処理等に利用されると共に、入力手段11を介して取得した情報等を記憶するものである。
制御手段13は、前記した入力手段11、記憶手段12及び出力手段14を制御すると共に、平文pから暗号文cを生成するものである。
出力手段14は、生成された暗号文cを復号化装置20に送信するものである。
【0025】
制御手段13は、図1に示すように、符号化手段15と、圧縮手段16とを備える。
符号化手段15は、入力された平文pを公開鍵G′(=線形符号PGS)で符号化することによりビット長が長くなった(冗長化された)冗長化ベクトル(符号化データ)Aを生成するものである。この冗長化ベクトルAは、前記した式(1)の(PGS)pと等しいものである。ここで、公開鍵G′は例えばGoppa符号やLDPC(Low Density Parity Check Code)符号等である。なお、公開鍵G′はLDPC符号の場合、疎行列(行列内の多くの要素が「0」である行列)である。
【0026】
圧縮手段(暗号文生成手段)16は、予め定められた圧縮行列Hに基づいて、冗長化ベクトルAを歪みあり圧縮することにより、暗号文cを生成する(圧縮処理を実行する)ものである。この圧縮手段16は、暗号文cを生成する際に、歪みあり圧縮で生じる歪みを示すベクトルnとして、復号時に公開鍵G′で訂正できるレベルのベクトルを選択する。
なお、前記した符号化手段15及び圧縮手段16は、CPUが記憶手段12のROMに格納された所定のプログラムをRAMに展開して実行することにより実現されるものである。
【0027】
[圧縮手段の機能]
次に、図1に示した圧縮手段16の機能を説明する。この圧縮手段16は、前記した式(1)の別の表現である式(1a)で示される方程式で、暗号文cを生成する。
Hc=A+n …(1a)
式(1a)に示した冗長化ベクトルAは、現実的には例えば数千〜数万ビットの長さを有している。しかしながら、式(1a)を簡単に説明するために、以下では、暗号化装置10は、符号化手段15によって、2ビット(N=2)の平文pを符号化して4ビット(N=4)の冗長化ベクトルAを生成したと仮定する場合を例示する。ここで、圧縮行列Hは、式(3)で示されるように要素「1」が配置された4×3型の行列とする(Y=3)。また、冗長化ベクトルAは式(4)で示される。
【0028】
【数1】

【0029】
【数2】

【0030】
この場合に、圧縮手段16は、歪みあり圧縮で生じる歪みを示すベクトルnとして、復号時に公開鍵G′で訂正できるレベルのベクトルを選択するために、式(1a),式(3)及び式(4)に基づいて、暗号文cを示すベクトルと共に、歪みを示すベクトルnとして、零ベクトルに近似して「0」の要素を多数含むものを選択する。すなわち、ベクトルnができるだけ零ベクトルに近づくようにする。そして、圧縮手段16は、最適な組として、式(5)で示される暗号文cと、式(6)で示される歪みnとを選択する。この場合、ベクトルnの大きさ(「1」の個数)が冗長化ベクトルAと、式(1a)の左辺のベクトルHcとのハミング距離(Hamming distance)になっている。
【0031】
【数3】

【0032】
【数4】

【0033】
つまり、圧縮手段16は、4ビットの冗長化ベクトルAから、3ビット(Y=3)に圧縮された暗号文cを生成する。そして、この圧縮された暗号文cが復号化装置20に送信される。
この例では、式(1a)は、式(7)のように表現されることになる。
【0034】
【数5】

【0035】
一方、この例では、従来のMcEliece暗号方式は、4ビットの冗長化ベクトルAに対して、式(6)で示した4ビットのノイズを付加するものに相当する。すなわち、式(7)の最右辺で表される4ビットのベクトルを暗号文として送信することになる。なお、従来のMcEliece暗号方式において付加するノイズと、本実施形態において歪みあり圧縮で生じる歪みnとは、同一視できるが、それぞれの候補は複数あり、単純に一対一に対応しているものではない。
【0036】
したがって、式(2)で特徴付けられる暗号化演算fを実行する暗号化装置10は、暗号文cを平文pに対して冗長化する割合を、従来のMcEliece暗号方式で暗号化する場合と比較して低減することができる。その結果、暗号文を送信する際の通信コストを低減できるという効果を奏する。
【0037】
[圧縮手段の構成例]
次に、図1に示した圧縮手段16の構成例を説明する。図2は、図1に示した圧縮手段の構成例を示すブロック図である。
この例では、圧縮手段16は、前記した式(1a)の方程式を統計力学的手法を用いて解くことにより、入力する冗長化ベクトルAから最適な暗号文cを生成するものであり、図2に示すように、第1データ変換手段31と、圧縮要素算出手段32と、符号変換手段33と、第2データ変換手段34とを備える。
【0038】
第1データ変換手段31は、符号化手段15の出力する冗長化ベクトルAの要素として例えば2進の論理値で表された「0」と「1」を、統計力学で用いるイジング型のアップスピン及びダウンスピンの値に対応した「+1」と「−1」にそれぞれ変換するものである。なお、冗長化ベクトルAの変換されたi番目の要素をqiと表記する。
【0039】
圧縮要素算出手段32は、イジング型の値に変換された要素、圧縮行列H、及び、歪みあり圧縮で生じる歪みがランダムに分布するように予め最適化された所定値β,γに基づいて、冗長化ベクトルAを圧縮した1次元配列データmの要素である圧縮要素をそれぞれ算出するものである。ここで、1次元配列データmのj番目の圧縮要素をmjと表記する。また、所定値βを最適化するとは、前記した式(1a)においてベクトルnが零ベクトルに最も近似する形に最適化されていることに相当する。
【0040】
具体的には、この圧縮要素算出手段32は、1次元配列データの圧縮要素mjを算出するために、式(8),(9)でそれぞれ示される変数
【数6】

(mijハット)及びmijと共に利用される式(10)を逐次更新的に用いる。
【0041】
【数7】

【0042】
【数8】

【0043】
【数9】

【0044】
式(8)〜(10)において、mj,mij,およびmij(ハット)は毎回更新される動的変数である。所定値β,γは、歪みあり圧縮で生じる歪みがランダムに分布するように予め最適化されている。このように最適化するためには、例えばスピングラスなどにおいて、自由エネルギー等を算出する際の統計力学的な手法を用いることができる。
【0045】
圧縮要素算出手段32で利用する圧縮行列Hは、LDPC行列であり、そのi行j列の要素をhijと表記する。圧縮行列Hは、非ゼロ要素として各行K個の「1」と、各列C個の「1」だけを有し、その他の要素は「0」である。すなわち、圧縮率RはK/Cである。
また、前記した式(8)において、集合M(i)は、次式(11)で定義されている。なお、記号\(バックスラッシュ)は要素の排除を意味する。
【0046】
M(i)={j|hij=1} …(11)
【0047】
また、前記した式(9)及び(10)において、集合L(j)は、次式(12)で定義されている。なお、記号\(バックスラッシュ)は要素の排除を意味する。
【0048】
L(j)={i|hij=1} …(12)
【0049】
符号変換手段33は、次式(13)に基づいて、1次元配列データの圧縮要素mjの符号をイジング型の値にそれぞれ変換するものである。圧縮要素mjはそれぞれ、「−1」と「1」の間の任意の値をとる。ここで、変換されたj番目の要素をwjと表記する。また、関数signは、引数の符号が正ならば「+1」、引数の符号が負ならば「−1」をそれぞれ出力するものである。
【0050】
j=sign(mj) …(13)
【0051】
第2データ変換手段34は、イジング型の値として変換された要素wjの値「+1」及び「−1」を、論理型の値「0」と「1」にそれぞれ変換し、暗号文c(ベクトル)の要素(暗号文cのj番目の要素をcjと表記する)を生成するものである。
【0052】
[復号化装置の機能]
図1に戻って、復号化装置20の機能を説明する。
復号化装置20は、暗号化装置10を用いて圧縮行列Hで歪みあり圧縮により生成された暗号文cを復号化して平文pを生成するものであり、入力手段21と、記憶手段(RAM等)22と、制御手段(CPU等)23と、出力手段24とを備える。
入力手段21は、暗号文cを入力し、制御手段23に出力するものである。
記憶手段22は、半導体メモリや磁気メモリなどの書き換え可能な記憶手段であり、制御手段23による演算処理等に利用されると共に、入力手段21を介して取得した情報等を記憶するものである。
制御手段23は、前記した入力手段21、記憶手段22及び出力手段24を制御すると共に、暗号文cから平文pを生成するものである。
出力手段24は、生成された平文pを出力するものである。
【0053】
制御手段23は、図1に示すように、復元手段25と、復号化手段26とを備える。
復元手段25は、受信した暗号文cに圧縮行列Hをかけて、冗長化ベクトルAの次元に復元することにより、暗号文cのビット長(Y)を、冗長化ベクトルAのビット長(M)に復元するものである。この復元手段25は、具体的には、前記した式(1a)の左辺で示される演算を実行する。
復号化手段26は、復元されたビット長(M)のベクトル(復元データ)Hcを、公開鍵G′で復号化し、元のビット長(N)の平文pを生成するものである。
なお、前記した復元手段25及び復号化手段26は、CPUが記憶手段22のROMに格納された所定のプログラムをRAMに展開して実行することにより実現されるものである。
【0054】
[暗号化装置の動作]
次に、暗号化装置の動作について図3を参照(適宜図1参照)して説明する。図3は、図1に示した暗号化装置の動作を示すフローチャートである。
暗号化装置10は、入力手段11によって、平文pを入力し(ステップS1)、符号化手段15によって、入力された平文pを公開鍵G′で冗長化し、冗長化ベクトルAを生成し(ステップS2:符号化ステップ)、圧縮手段16に出力する。
【0055】
続いて、暗号化装置10は、圧縮手段16によって、圧縮処理を実行する(ステップS3:暗号文生成ステップ)。すなわち、圧縮手段16は、冗長化ベクトルAを歪みあり圧縮することにより、Yビットの暗号文cを生成する。そして、暗号化装置10は、出力手段14によって、暗号文cを復号化装置20に送信する(ステップS4)。
【0056】
[圧縮手段の動作]
次に、前記したステップS3の圧縮処理について図4を参照(適宜図2参照)して説明する。図4は、図3に示した圧縮処理を示すフローチャートである。
圧縮手段16は、第1データ変換手段31によって、入力データ(冗長化ベクトルA)の要素の値(0,1)をイジング型の値(−1,1)に変換し(ステップS11:第1データ変換ステップ)、圧縮要素算出手段32に出力する。
【0057】
圧縮要素算出手段32は、イジング型の値に変換された要素qi、圧縮行列H、及び、所定値β,γに基づいて、冗長化ベクトルAを圧縮した1次元配列データの要素である圧縮要素mjをそれぞれ算出し(ステップS12:圧縮要素算出ステップ)、符号変換手段33に出力する。このとき、圧縮要素算出手段32は、前記した式(8)〜式(10)で示されるmijハット,mij及び圧縮要素mjを逐次更新的に用いて圧縮要素mjをそれぞれ算出する。
【0058】
そして、符号変換手段33は、入力した1次元配列データの圧縮要素mjの符号をそれぞれ、前記した式(13)に基づいて、イジング型の値(−1,1)に変換し(ステップS13:符号変換ステップ)、第2データ変換手段34に出力する。そして、第2データ変換手段34によって、イジング型の値(−1,1)に変換された符号(−1,1)を論理型の値(0,1)に変換し、暗号文c(ベクトル)の要素を生成する(ステップS14:第2データ変換ステップ)。
【0059】
[復号化装置の動作]
次に、復号化装置の動作について図5を参照(適宜図1参照)して説明する。図5は、図1に示した復号化装置の動作を示すフローチャートである。
復号化装置20は、入力手段21によって、暗号文cを入力し(ステップS21)、復元手段25によって、受信した暗号文cに圧縮行列Hをかけて、冗長化ベクトルAの次元に復元することにより、暗号文cのビット長(Y)を、冗長化ベクトルAのビット長(M)に復元し(ステップS22:復元ステップ)、復号化手段26に出力する。このとき、復元手段25は、前記した式(1a)の左辺の演算を実行し、例えば前記した式(7)の最右辺で表されるようなベクトルを生成する。
【0060】
続いて、復号化装置20は、復号化手段26によって、復元されたビット長(M)のベクトル(復元データ)Hcを公開鍵G′で復号化し、元のビット長(N)の平文pを生成する(ステップS23:復号化ステップ)。そして、復号化装置20は、出力手段24によって、生成した平文pを出力する(ステップS24)。
【0061】
なお、ベクトルHcを公開鍵G′で復号化する操作g′は公知の手法を用いて以下のように実行される。まず、第1段階では次式(14)の関係式で示される操作を実行する。すなわち、MビットのベクトルHcを、公開鍵G′の構成要素である置換行列Pで前処理してベクトル(P-1Hc)を生成する。なお、この前処理(置換行列Pによる操作)は、歪みnのレベルを保存する。
【0062】
-1Hc=G(Sp)+P-1n …(14)
【0063】
次に、第2段階では次式(15)の関係式で示される操作を実行する。すなわち、前記した式(14)の左辺で示した生成ベクトル(P-1Hc)を、公開鍵G′の構成要素である生成行列Gによって復号する復号操作gを実行することによって所定範囲で歪みnを除去し、さらに、公開鍵G′の構成要素である生成行列Gによって元のビット数(N)の平文pを逆算する。なお、この復号操作gは非公開の生成行列Gにのみ有効である。
【0064】
p=g′(Hc|G′)=S-1[g(P-1Hc|G)] …(15)
【0065】
以上、本発明の実施形態について説明したが、本発明はこれに限定されるものではなく、その趣旨を変えない範囲で実施することができる。例えば、本実施形態では、暗号化装置10の符号化手段15は、公開鍵G′をGoppa符号やLDPC符号等で符号化するものとして説明したが、例示した従来から実装される線形符号に限定されず、任意の線形符号を利用することができる。
また、暗号化装置10の圧縮手段16は、圧縮要素算出手段32によって、予め最適化された所定値βを利用して1次元配列データの圧縮要素mjを算出するものとして説明したが、所定値βを最適化する処理を実行する構成を付加するようにしてもよい。
【図面の簡単な説明】
【0066】
【図1】本発明の実施形態に係る暗号化装置と復号化装置とを含む通信システムの構成例を示す図である。
【図2】図1に示した圧縮手段の構成例を示すブロック図である。
【図3】図1に示した暗号化装置の動作を示すフローチャートである。
【図4】図3に示した圧縮処理を示すフローチャートである。
【図5】図1に示した復号化装置の動作を示すフローチャートである。
【符号の説明】
【0067】
1 通信システム
2 通信路
10 暗号化装置
11 入力手段
12 記憶手段
13 制御手段
14 出力手段
15 符号化手段
16 圧縮手段(暗号文生成手段)
20 復号化装置
21 入力手段
22 記憶手段
23 制御手段
24 出力手段
25 復元手段
26 復号化手段
31 第1データ変換手段
32 圧縮要素算出手段
33 符号変換手段
34 第2データ変換手段

【特許請求の範囲】
【請求項1】
第1のビット長を有する平文を線形符号で符号化することにより、前記第1のビット長よりも長い第2のビット長を有する符号化データを生成する符号化手段と、前記符号化データに基づいて暗号文を生成する暗号文生成手段とを有したMcEliece暗号方式の暗号化装置において、
前記第1のビット長をN、前記第2のビット長をM、前記平文をp、M×M型の置換行列をP、M×N型の生成行列をG、N×N型の可逆行列をS、前記線形符号をPGS、前記符号化データを(PGS)p、縦長のM×Y(N<Y<M)型の圧縮行列をHとしたときに、
前記暗号文生成手段は、
式(1)に基づいて、前記圧縮行列Hで前記符号化データ(PGS)pを歪みあり圧縮することにより、暗号文cを生成し、この暗号文cを生成する際に、前記歪みあり圧縮で生じる歪みを示すベクトルnとして、復号時に前記線形符号PGSで訂正できるレベルのベクトルを選択する、
ことを特徴とする暗号化装置。
(PGS)p+n=Hc …(1)
【請求項2】
前記暗号文生成手段は、
前記符号化データの要素の値をイジング型の値に変換する第1データ変換手段と、
前記イジング型の値に変換された要素、前記圧縮行列、及び、前記歪みあり圧縮で生じる歪みがランダムに分布するように予め最適化された所定値に基づいて、前記符号化データを圧縮した1次元配列データの要素である圧縮要素をそれぞれ算出する圧縮要素算出手段と、
前記圧縮要素の符号をイジング型の値に変換する符号変換手段と、
前記イジング型の値として変換された符号を論理型の値に変換する第2データ変換手段と、
を備えることを特徴とする請求項1に記載の暗号化装置。
【請求項3】
請求項1または請求項2に記載の暗号化装置を用いて圧縮行列で歪みあり圧縮により生成された暗号文を復号化する復号化装置であって、
前記暗号文に前記圧縮行列を作用させた復元データを生成することにより、前記暗号文のビット長を、前記符号化データのビット長に復元する復元手段と、
前記復元されたビット長の復元データを、前記線形符号で復号化する復号化手段と、
を有することを特徴とする復号化装置。
【請求項4】
第1のビット長を有する平文を線形符号で符号化することにより、前記第1のビット長よりも長い第2のビット長を有する符号化データを生成する符号化ステップと、前記符号化データに基づいて暗号文を生成する暗号文生成ステップとを有したMcEliece暗号方式の暗号化装置の暗号化方法において、
前記第1のビット長をN、前記第2のビット長をM、前記平文をp、M×M型の置換行列をP、M×N型の生成行列をG、N×N型の可逆行列をS、前記線形符号をPGS、前記符号化データを(PGS)p、縦長のM×Y(N<Y<M)型の圧縮行列をHとしたときに、
前記暗号文生成ステップは、
式(1)に基づいて、前記圧縮行列Hで前記符号化データ(PGS)pを歪みあり圧縮することにより、暗号文cを生成し、この暗号文cを生成する際に、前記歪みあり圧縮で生じる歪みを示すベクトルnとして、復号時に前記線形符号PGSで訂正できるレベルのベクトルを選択する、
ことを特徴とする暗号化方法。
(PGS)p+n=Hc …(1)
【請求項5】
前記暗号文生成ステップは、
前記符号化データの要素の値をイジング型の値に変換する第1データ変換ステップと、
前記イジング型の値に変換された要素、前記圧縮行列、及び、前記歪みあり圧縮で生じる歪みがランダムに分布するように予め最適化された所定値に基づいて、前記符号化データを圧縮した1次元配列データの要素である圧縮要素をそれぞれ算出する圧縮要素算出ステップと、
前記圧縮要素の符号をイジング型の値に変換する符号変換ステップと、
前記イジング型の値として変換された符号を論理型の値に変換する第2データ変換ステップと、
をさらに有することを特徴とする請求項4に記載の暗号化方法。
【請求項6】
請求項4または請求項5に記載の暗号化方法を用いて圧縮行列で歪みあり圧縮により生成された暗号文を復号化する復号化装置の復号化方法であって、
前記暗号文に前記圧縮行列を作用させた復元データを生成することにより、前記暗号文のビット長を、前記符号化データのビット長に復元する復元ステップと、
前記復元されたビット長の復元データを、前記線形符号で復号化する復号化ステップと、
を有することを特徴とする復号化方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2006−330266(P2006−330266A)
【公開日】平成18年12月7日(2006.12.7)
【国際特許分類】
【出願番号】特願2005−152395(P2005−152395)
【出願日】平成17年5月25日(2005.5.25)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】