(57)【特許請求の範囲】
【請求項１】
次元(k, n)で、k>1、n>1である行列(M)の形態で表すことのできる秘密鍵を用いた、平文メッセージ要素(x)の確率的対称暗号化をする確率的対称暗号化装置の動作方法であって、
前記確率的対称暗号化装置は、エンコードする手段と、暗号化する手段と、計算手段とを備え、
前記エンコードする手段が、所与の訂正能力(t)を有する誤り訂正符号(C)を用いて、前記平文メッセージ要素(x)を符号語(C(x))としてエンコードするステップ(E1)と、
前記暗号化する手段が、前記秘密行列(M)と次元kのランダムベクトル(a)との積の結果をその間に前記符号語(C(x))に付加する、前記符号語(C(x))を暗号化するステップ(E4)と、
前記計算手段が、前記ランダムベクトル(a)に結び付けられた暗号化されたメッセージ要素
【数１】
0005564434.tif 000026
を得るために、前記暗号化された符号語
【数２】
0005564434.tif 000027
にノイズベクトル(ε)をその間に付加する、計算ステップ(E6)とを含んでおり、
前記確率的対称暗号化装置が、前記誤り訂正符号および前記ノイズベクトル(ε)を、前記ノイズベクトル(ε)のハミング重みが前記訂正符号の前記訂正能力(t)以下となるように構成するステップをさらに含む、確率的対称暗号化装置の動作方法。
【請求項２】
前記確率的対称暗号化装置が、前記ノイズベクトル(ε)を、前記ノイズベクトル(ε)の前記ハミング重みが前記訂正能力(t)よりも大きくなる確率が予め定義された閾値(Σ)未満となるようにパラメータ化された、ノイズソース(B、13)を用いて生成する、請求項1に記載の確率的対称暗号化装置の動作方法。
【請求項３】
前記確率的対称暗号化装置が、生成された前記ノイズベクトル(ε)の前記ハミング重みが前記訂正能力(t)以下であるかどうかを確認するテストステップが設けられており、そのテストがネガティブである場合、前記確率的対称暗号化装置は、新しいノイズベクトルを生成する、請求項1に記載の確率的対称暗号化装置の動作方法。
【請求項４】
tが、前記誤り訂正符号の前記訂正能力を表しており、ηが、前記ノイズベクトル(ε)のビットが1に等しい確率を表しており、nが、前記誤り訂正符号長を表しており、前記パラメータt、η、およびnが、条件t>η・nを満たすように構成される、請求項1に記載の確率的対称暗号化装置の動作方法。
【請求項５】
前記行列(M)がテプリッツ行列である、請求項1に記載の確率的対称暗号化装置の動作方法。
【請求項６】
次元(k, n)で、k>1、n>1である行列(M)の形態で表すことのできる秘密鍵を使用する、請求項1に記載の確率的対称暗号化装置の動作方法を平文メッセージ要素(x)に適用することによって決定された、暗号化されたメッセージ要素(y)を復号する復号装置の動作方法において、前記復号装置が、前記暗号化されたメッセージ要素(y)と、前記メッセージ要素(x)を暗号化するために使用される次元kのランダムベクトル(a)とから構成されるペア((a,y))を受け取り、
前記復号装置が、受け取った前記ランダムベクトル(a)と前記行列(M)との積を計算するステップ(E9)、および、前記復号装置が、前記積の結果を、受け取った前記暗号化されたメッセージ要素(y)に付加するステップ(E10)を含む、計算フェーズと、次いで、
前記復号装置が、前記平文メッセージ要素(x)を得るために、前記暗号化中に使用された前記誤り訂正符号を用いて前記計算フェーズの結果のデコーディングをその間に実行する、デコーディングフェーズ(E11)とが実行される、復号装置の動作方法。
【請求項７】
次元(k, n)で、k>1、n>1である行列(M)の形態で表すことのできる秘密鍵を用いた、確率的対称暗号化のためのエンティティであって、
所与の訂正能力(t)を有する誤り訂正符号を用いて、平文メッセージ要素(x)を符号語(C(x))としてエンコードする手段(11)と、
前記行列(M)と次元kのランダムベクトル(a)との積の結果を前記符号語(C(x))に付加するように設計された、前記符号語(C(x))を暗号化する手段(14)と、
前記ランダムベクトル(a)に結び付けられた暗号化されたメッセージ要素
【数３】
0005564434.tif 000028
を得るために、前記暗号化された符号語
【数４】
0005564434.tif 000029
に、ノイズベクトル(ε)を付加するように構成された計算手段(15)とを含んでおり、
前記誤り訂正符号および前記ノイズベクトル(ε)が、前記ノイズベクトル(ε)のハミング重みが前記訂正符号の前記訂正能力(t)以下となるように構成される、エンティティ。
【請求項８】
請求項7の前記エンティティを組み込んだ、通信機器。
【請求項９】
確率的対称暗号化エンティティ(1)と、対応する復号エンティティ(2)とを含む、暗号化および復号システムであって、前記2つのエンティティが、次元(k, n)で、k>1、n>1である行列(M)によって表すことのできる秘密鍵を共有しており、前記暗号化エンティティ(1)が、暗号化されたメッセージ要素(y)と、前記暗号化されたメッセージ要素(y)を決定するために使用される次元kのランダムベクトル(a)とから構成されるペア((a,y))を、前記復号エンティティ(2)に提供することが意図されている、前記システムにおいて、前記暗号化エンティティ(1)が、請求項7のエンティティであり、前記復号エンティティ(2)が、受け取った前記ランダムベクトル(a)と前記行列(M)との積を計算し、前記積の結果を、受け取った前記暗号化されたメッセージ要素(y)に付加するように構成された、計算手段(21)と、平文メッセージ要素(x)を得るために、前記暗号化されたメッセージ要素(y)の決定に使用された誤り訂正符号を用いて、前記計算手段(21)によって実施された前記計算の結果をデコードするように設計された、デコーディング手段(22)とを含む、システム。
【請求項１０】
請求項1に記載のステップをプロセッサに実行させるためのプログラムであって、
前記プロセッサは、請求項1に記載の確率的対称暗号化装置に含まれている、プログラム。
【請求項１１】
請求項6に記載の計算フェーズおよびデコーディングフェーズの手順をプロセッサに実行させるためのプログラムであって、
前記プロセッサは、請求項6に記載の復号装置に含まれている、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、秘密鍵を用いたメッセージの確率的暗号化方法、および関連した復号方法に関する。
【０００２】
本発明は、低コストの、それでも高い安全性を必要とする、暗号法(cryptography)の分野、特に、RFIDタグに利用される。
【０００３】
対称暗号法では、メッセージの送信側および受取側は、同一の秘密鍵Kの情報を共有する。その秘密鍵によって、送信側は、平文メッセージを暗号文または暗号化されたメッセージへと変換することができ、受取側は、暗号化されたメッセージから平文メッセージを復元することができる。
【０００４】
本発明は、より詳細には、対称暗号化のための確率的スキーム(probabilistic schemes)に関する。暗号化スキームは、それが暗号化の際にランダム項目(random item)に関わるときには、「確率的(probabilistic)」と呼ばれる。このことから、同じ平文メッセージが2回暗号化された場合、高い確率で、異なる2つの暗号化されたメッセージが得られることになる。実際、暗号化されたメッセージは、平文メッセージだけではなく、ランダム項目にも依存する。確率的暗号化スキームは、所与の平文メッセージおよび所与の鍵について常に同じ暗号を提供する、決定的暗号化スキームとは対照的である。
【背景技術】
【０００５】
確率的対称暗号化スキームの典型的な一例は、CBC(暗号ブロック連鎖(Cipher Block Chaining))動作モードと組み合わせて、AES(新暗号化標準(Advanced Encryption Standard))やDES(データ暗号化標準(Data Encryption Standard))などのブロック暗号化アルゴリズムを使用する、暗号化スキームである。定義によれば、「動作モード(operative mode)」または「動作のモード(mode of operation)」は、ブロック暗号化アルゴリズム内で平文および暗号化されたテキストブロックを処理する方法である。CBCモードでは、平文は、ブロックM1|M2|...|Mnに分割され、暗号C0|C1|C2|...|Cnは、Ci=Ek(Mi+Ci-1)によって定義され、C0=IVであり、ここで、IV(初期ベクトル(Initialization Vector))は、暗号化に確率的特性を与えるランダムブロックである。CFB(暗号フィードバック(Cipher Feedback))、OFB(出力フィードバック(Output Feedback))、CTR(カウンタ(Counter))など、確率的対称暗号化に適した他の動作モードがいくつか存在する。
【０００６】
したがって、ほとんどの対称暗号化スキームは、ブロック暗号化アルゴリズムを特定の動作モードとともに使用する。このような暗号化スキームの安全性は、2つのステージで分析される:
初めに、ブロック暗号化によって生成された、ランダム鍵に関係した置換が、完全にランダムな置換と区別できないことを確認する目的で、ブロック暗号化アルゴリズムの安全性が、擬似ランダム置換に見せかけてその挙動を調査することによって分析され、
続いて、ブロック暗号化が完全に安全な擬似ランダム置換であると仮定することによって、動作モードの安全性が分析される。
【０００７】
一般に、動作モードの安全性は、厳密な方式で証明することができる。例として、CTRおよびCBC動作モードは、使用されるブロック暗号化自体が解読不可能であるときにはそれらの動作モードが解読不可能であることを実証可能であるという意味で、安全と証明される。
【０００８】
他方で、ブロック暗号化アルゴリズムの安全性を証明することは、より慎重を要する。
【０００９】
一般的な方法では、暗号システムの安全性を特徴づける、当業者に周知の2つの概念、すなわち:
無条件安全性、および、
計算量的安全性が存在する。
【００１０】
定義によれば、その計算能力がどんなものであろうと、攻撃者が暗号文から平文について何の情報も復元できない場合、アルゴリズムは、無条件に安全である。
【００１１】
対称分野では、無条件安定性しか証明することができない。このことから、既知の暗号化アルゴリズムの安全性は、現時点では、経験的基盤に基づくことになる。攻撃の複雑性に関する下限を決定する数学的議論は、既知のブロック暗号化アルゴリズムには利用できない。ブロック暗号化アルゴリズムの安全性に関する現在の議論は、本質的に、以下のものである:
所望の安全性レベルよりも複雑性の低い既知の攻撃が存在しないこと、
特定の攻撃スキームに対する証明可能な抵抗力、例えば、差分暗号解析および線形暗号解析に対する抵抗力、
DESなどの特定のアルゴリズムの場合に、真のアルゴリズムの特定の構成要素が完全にランダムな理想関数で置き換えられる、いわゆるLuby-Rackoff安全性モデルにおける攻撃に対する抵抗力の証明の存在。
【００１２】
現在、ブロック暗号化アルゴリズムと動作モードとを使用する確率的対称暗号化のための既知のスキームには、以下の2つの要件を調和させるものがない:
暗号化の計算量的安全性を強化する、したがって、平文/暗号文ペアの多項式数を獲得可能な攻撃者が、さらなる暗号から対応する平文について何の情報も推定できないことを証明する、数学的議論の存在、
その速度がAESやDESなどの現在使用されているブロックアルゴリズムの速度に近い暗号化スキームを実施する、現実的な計算資源を必要とする、ソフトウェア手段の存在。
【発明の概要】
【発明が解決しようとする課題】
【００１３】
したがって、安全性を、既知の問題を解く困難性についての仮定へと転換することにある、還元主義的アプローチによって、それについての安全性を証明可能な、確率的対称暗号化スキームが必要とされている。この仮定が満たされた場合、スキームは、安全である。別の言い方をすれば、その暗号化スキームの安全性を破るためには、困難とされる既知の問題を攻撃者が解くことが可能でなければならないことをそれについて証明可能な、確率的対称暗号化スキームが必要とされている。
【課題を解決するための手段】
【００１４】
この目的で、本発明は、次元(k, n)で、k>1、n>1である行列の形態で表すことのできる秘密鍵を用いた、平文メッセージ要素の確率的対称暗号化方法であって:
所与の訂正能力を有する誤り訂正符号を用いて、平文メッセージ要素を符号語としてエンコードするステップと、
秘密行列と次元kのランダムベクトルとの積の結果がその間に符号語に付加される、符号語を暗号化するステップと、
ランダムベクトルに結び付けられた暗号化されたメッセージ要素を得るために、暗号化された符号語にノイズベクトルがその間に付加される、計算ステップとを含んでおり、
誤り訂正符号およびノイズベクトルが、ノイズベクトルのハミング重み(Hamming weight)が訂正符号の訂正能力以下となるように構成されている、確率的対称暗号化方法に関する。
【００１５】
最初から、定義によれば、「メッセージ要素」がメッセージのすべてまたは一部を含むことに気付かれよう。ランダムベクトルと暗号化されたメッセージ要素とから構成されるペアは、その後、復号エンティティに提供される。復号エンティティが、行列によって表される秘密鍵を知っている場合、その復号エンティティは、ランダムベクトルおよび暗号化されたメッセージ要素から、ノイズベクトルによってノイズ付加された符号語を推定する。これで、復号エンティティが誤り訂正符号を用いてデコーディングを始めるのに十分となる。ノイズベクトルのハミング重みが訂正符号の訂正能力よりも小さいので、デコーディングによって、直接、平文メッセージ要素が提供される。
【００１６】
本発明は、誤り訂正符号によるエンコーディングと、ノイズの付加との組合せに頼っている。この組合せの効果は、誤り訂正符号のデコーディングによって自然に削除されるのに適したものでありながら、敵対者が暗号を復号するのをより困難にすることである。
【００１７】
本発明の暗号化方法の安全性は、明確に定義された周知の問題、すなわち、LPN(ノイズを含むパリティの推定(Learning Parity with Noise))問題を解く際の困難性の仮定に頼っている。
【００１８】
kビットのランダム行ベクトルを「ai」とし、k行n列のバイナリ行列を「M」とし、そのビットが確率ηで1に等しく、
【００１９】
【数１】
0005564434.tif 000002
【００２０】
である、nビットの行ノイズベクトルを「εi」とする。「行列」形態のLPN問題は、次のように定式化することができる:複数の添え字iについてのペア(ai, yi=ai・M+εi)が敵対者に提供されるので、その敵対者は、提供される新しいランダムベクトル「ai」に基づいて、ai・Mの値を推測しなければならない。ノイズベクトルεiをベクトルai・Mに付加すると、多数の異なるペア(ai, yi=ai・M+εi)に基づいたとしても、この問題を解くのがきわめて困難になることが証明されている。
【００２１】
ペア(a, y)の受取側が、秘密鍵Mは知らないが、平文メッセージ要素と符号化(coded)されたメッセージ要素とから構成されるペア(x, C(x))を知る敵対者である場合、その敵対者は、ノイズベクトルεによって全体にノイズ付加されたランダムベクトルaによってパラメータ化された行列M、別の言い方をすれば、a・M+εを入手することができる。したがって、本発明の暗号化方法の安全性を破るためには、敵対者は、LPN問題を解くことが可能でなければならない。
【００２２】
特定の一実施形態では、ノイズベクトルは、ノイズベクトルεのハミング重みが訂正能力よりも大きくなる確率が予め定義された閾値未満となるようにパラメータ化された、ノイズソースを用いて生成される。この事例では、ノイズベクトルは、ほとんどの事例でデコーディング中に自然に除去される条件を満たしており、いくつかのまれな事例ではこれが当てはまらないことが認められている。
【００２３】
生成されたノイズベクトルのハミング重みが訂正能力以下であるかどうかを確認するテストステップを設けることができ、そのテストがネガティブ(negative)である場合、新しいノイズベクトルが生成される。この事例では、ノイズベクトルが、デコーディング中に除去されるという条件を満たすことが、体系的に確認される。それが当てはまらない場合、新しいノイズベクトルが生成される。
【００２４】
有利には、tが、誤り訂正符号の訂正能力を表しており、ηが、ノイズベクトルεのビットが1に等しい確率を表しており、nが、誤り訂正符号長を表しており、前記パラメータt、η、およびnが、条件t>η・nを満たすように構成される。したがって、非常に単純な方式で、デコーディングによって平文メッセージ要素を復元可能となることが、高い確率で保証される。
【００２５】
秘密鍵を表す行列Mは、テプリッツ(Toeplitz)行列とすることができる。テプリッツ行列を使用すると、行列の第1行および第1列の係数を記憶すればその行列からすべての係数を推定するのに十分であるので、必要な記憶容量を低減することが可能となる。
【００２６】
本発明は、また、次元(k, n)で、k>1、n>1である行列の形態で表すことのできる秘密鍵を使用する、定義したばかりの暗号化方法を平文メッセージ要素に適用することによって決定された、暗号化されたメッセージ要素を復号する方法に関する。暗号化されたメッセージ要素と、前記メッセージ要素を暗号化するために使用される次元kのランダムベクトルとから構成されるペアが提供され、本復号方法は、
受け取ったランダムベクトルと行列との積を計算するステップ、および、前記積の結果を、受け取った暗号化されたメッセージ要素に付加するステップを含む、計算フェーズと、次いで、
平文メッセージ要素を得るために、暗号化中に使用された誤り訂正符号を用いて計算フェーズの結果のデコーディングがその間に操作される、デコーディングフェーズとを含む。
【００２７】
本発明は、添付図面に即して、本発明の暗号化方法および復号方法ならびに対応する暗号化および復号エンティティの特定の実施形態についての以下の説明を用いれば、よりよく理解される。
【図面の簡単な説明】
【００２８】
【図１】ここに記載の特定の実施形態による暗号化方法の様々なステップのフローチャートである。
【図２】図1の方法を用いて暗号化されたメッセージの復号中に実施される様々なステップのフローチャートである。
【図３】図1の方法を実施するのに適した暗号化エンティティの特定の実施形態の機能的ブロック図である。
【図４】図2の方法を実施するのに適した復号エンティティの特定の実施形態の機能的ブロック図である。
【発明を実施するための形態】
【００２９】
図1には、本発明の暗号化方法の特定の実施形態の様々なステップが示されている。
【００３０】
図1の暗号化方法は、それぞれ1および2で参照される、一方は暗号化のため、他方は復号のための2つのエンティティによって共有される秘密鍵を使用するので、対称と呼ばれる。暗号化エンティティ1は、暗号化方法を実施可能であり、復号エンティティ2は、復号方法、または暗号化エンティティ1によって提供される暗号化されたメッセージに基づいて平文メッセージを復元する方法を実施可能である。秘密鍵は、k行n列の行列Mの形態で表すことができ、1≦k、1≦nである。
【００３１】
暗号化エンティティ1および復号エンティティ2は、ここでは、それぞれ、図示していないが、ここでは無線通信によって互いに通信可能な、送信側通信機器の品目および受信側通信機器の品目に組み込まれる。送信側機器は、RFIDタグとすることができ、受信側機器は、関連した読取装置とすることができる。
【００３２】
図1の暗号化方法は、また、平文メッセージに基づいて暗号化されたメッセージを計算するためにランダム項目を使用するので、確率的と呼ばれる。
【００３３】
ここで、暗号化エンティティ1による平文メッセージの暗号化について、図1に即して説明する。xで示された平文メッセージは、Rビットのバイナリベクトルによって表される。
【００３４】
図1に表された特定の実施形態による本発明の暗号化方法は、誤り訂正符号を用いてメッセージxをエンコードするステップE1を含む。
【００３５】
誤り訂正符号は、冗長性に基づく、当業者に周知の符号化技術である。その通常の目的は、信頼性のない通信チャンネルを通じたメッセージの送信の誤りを訂正することである。このチャンネルを通じて送信されるメッセージの情報は、実際、改変される危険性がある。誤り訂正符号の役割は、メッセージが送信される前に、そのメッセージに冗長な情報を付加することである。この冗長な情報によって、送信中に改変された、受け取ったメッセージの情報を、訂正することが可能となる。
【００３６】
この場合、誤り訂正符号は、Cで示される線形ブロック符号である。この誤り訂正符号Cは、長さn、次元r、訂正能力tである。別の言い方をすれば、訂正符号Cは、次元nのバイナリ空間{0, 1}n内の次元rのバイナリ空間{0, 1}rの関数である。この関数は、冗長ビットを付加することによって、rビットのメッセージをnビットの符号語へと変換するのに適しており、n>rである。さらに、符号Cは、訂正能力tよりも小さい数の誤りが符号に付加された場合にデコーディングが元のメッセージを復元可能にすることを、保証するのに適している。
【００３７】
ここに記載の特定の例では、メッセージxのビット数Rが訂正符号の次元rに等しいものと仮定する。
【００３８】
したがって、メッセージxをエンコードするステップE1は、C(x)で示されるnビットベクトルによって表される符号語を提供する。
【００３９】
その方法は、ランダム項目aを生成するステップE2を含む。この説明の特定の例では、ランダム項目aは、ビットの擬似ランダムソースSによって作り出されるkビットバイナリベクトルである。
【００４０】
ステップE2に続いて、列ベクトル形態のランダムベクトルaと、秘密鍵を表す行列Mとの積を計算するステップE3が実施される。積a・Mの結果は、nビットのベクトルによって表される。
【００４１】
ステップE1およびE3が実施された後、方法は、その間に積a・Mの結果が符号語C(x)に付加される、計算ステップE4を実施する。別の言い方をすれば、ステップE4は、次の操作:
【００４２】
【数２】
0005564434.tif 000003
【００４３】
を行う。このステップE4の役割は、符号語C(x)を暗号化することである。
【００４４】
方法は、また、ベルヌーイ(Bernoullian)ノイズソースBに基づいて、nビットのバイナリノイズベクトルεを生成するステップE5を含む。そのベルヌーイノイズソースBは、確率ηで1に等しい独立ビット、および確率1-ηで0に等しい独立ビットを作り出すのに適しており、
【００４５】
【数３】
0005564434.tif 000004
【００４６】
である。さらに、ノイズソースBは、ノイズベクトルεのハミング重みが訂正符号の訂正能力tよりも大きい確率δが非常に小さく、予め定義された閾値Σ未満となるように構成される。一例として、この閾値は、10-3に等しいものとすることができる。使用するフレームワークによっては、この値未満とすることができる。定義によれば、バイナリベクトルのハミング重みは、このベクトルの、0とは異なる、別の言い方をすれば1に等しい、ビット数である。したがって、ソースBによって生成されるノイズベクトルεのほとんどにおいて、Hwt(ε)で示されるベクトルεのハミング重みは、訂正符号の訂正能力t以下である。ここに記載の特定の例では、確率δに関する条件を満たすために、パラメータt、η、およびnは、関係: t>η*nを満たす。
【００４７】
ステップE4およびE5が実施された後、方法は、ノイズベクトルεが、次の操作:
【００４８】
【数４】
0005564434.tif 000005
【００４９】
の結果に付加される、計算ステップE6を実施する。別の言い方をすれば、ステップE6は、次の操作:
【００５０】
【数５】
0005564434.tif 000006
【００５１】
を実施する。この操作E6の結果は、暗号化されたメッセージに相当する、yで示されたnビットベクトルとなる。その暗号化されたメッセージは、結局のところ、エンコードされ、暗号化され、ノイズ付加された、符号語C(x)、すなわち、メッセージxである。
【００５２】
最後に、方法は、送信側通信機器の品目から、受信側通信機器の品目へと、ペア(a, y)、すなわち、
【００５３】
【数６】
0005564434.tif 000007
【００５４】
をディスパッチするステップE7を含む。
【００５５】
ペア(a, y)は、図２に表されるステップE8の間に、受信側機器によって受け取られるまで、通信チャンネル、ここでは無線通信を通じて移動する。受信側機器が、平文メッセージxを取り出すために、受け取った暗号化されたメッセージyを復号可能な復号エンティティを組み込んでいることを思い出されたい。
【００５６】
図2には、ペア(a, y)からメッセージxを取り出す、復元または復号方法の、復号エンティティ2によって実施される様々なステップが示されている。
【００５７】
復号エンティティ2が行列Mによって表される秘密鍵を知っていることを思い出されたい。
【００５８】
復元方法は、初めに、2つの計算ステップE9およびE10を含む計算フェーズを含む。
【００５９】
第1の計算ステップE9の間に、受け取ったペア(a, y)からランダムベクトルaが取り出され、積a・Mが計算され、aは、行ベクトルの形態で表される。
【００６０】
計算ステップE10の間に、積a・Mの結果として得られるnビットベクトルは、受け取ったベクトルyに付加され、別の言い方をすれば、次の計算操作:
【００６１】
【数７】
0005564434.tif 000008
【００６２】
が実施される。2進法では、この操作は、受け取ったベクトルyから積a・Mの結果を減じることに相当する。
【００６３】
yが、暗号化された、ノイズを含む符号語、すなわち、
【００６４】
【数８】
0005564434.tif 000009
【００６５】
に等しいので、計算ステップE10の結果が、ノイズを含む符号語、すなわち、
【００６６】
【数９】
0005564434.tif 000010
【００６７】
にちょうど相当することに気付かれよう。
【００６８】
方法は、その後、暗号化中に使用された誤り訂正符号を用いてステップE10の結果がその間にデコードされる、デコーディングフェーズE11を含む。ノイズベクトルεのハミング重みが誤り訂正符号の訂正能力t以下であるので、デコーディングによって、直接、平文メッセージxが提供される。
【００６９】
説明のための非限定例として、ここで、具体的なパラメータを用いて、暗号化方法のいくつかの例示的な実施形態について説明する。
【００７０】
ここで、本発明の暗号化システムの安全性が、LPN問題を解く困難性によって決まることが思い出される。ここで、この困難性は、ランダムベクトルaのビット数、およびこのランダムベクトルaのビットが1に等しい確率にそれぞれ対応する、パラメータkおよびηに頼っている。したがって、これらのパラメータについて、システムの良好な安全性を保証できるようにする適切な値を選択すべきである。これらのパラメータkおよびηに適切な値の2つの例は、次の通りである:
k=512、η=0.125
k=768、η=0.05
【００７１】
平文メッセージxのサイズがrビットである場合、ペア(a, y)に対応する、送信される暗号化されたメッセージの全体のサイズは、(n+k)ビットであることに気付かれよう。実際、ランダムベクトルaは、kビットを含み、暗号yは、nビットを含む。したがって、暗号化は、メッセージの特定の拡張を伴う。我々は、拡張率(expansion factor)を、
【００７２】
【数１０】
0005564434.tif 000011
【００７３】
によって示し、rは、暗号化された平文(メッセージまたはメッセージブロック)のサイズを表す。この拡張を制限するためには、固定されたkについて、rの可能な最大値およびnの可能な最小値を選択することが適切である。さらに、ほとんどの場合にメッセージの正確な復号を保証するために、パラメータt、η、およびnが以下の条件:t>η*nを満たさなければならないことが思い出される。
【００７４】
誤り訂正符号のパラメータのトリプルは、[n, r, d]で示される。これらのパラメータn、r、およびdは、それぞれ、符号の長さ、寸法、および最小距離に相当する。符号の最小距離dは、次の関係:
【００７５】
【数１１】
0005564434.tif 000012
【００７６】
によって、訂正能力tに依存する。
【００７７】
ここで、エンコーディングおよび暗号化プロパーについて具体的なパラメータを用いた例示的な4つの実施形態を与える:
パラメータk=512、η=0.125の場合、以下を使用可能である:
10個の誤りを訂正可能なトリプル[80, 27, 21]によってパラメータ化された線形符号、その場合、拡張パラメータσは、21に等しくなる;
20個の誤りを訂正可能なトリプル[160, 42, 42]によってパラメータ化された線形符号、その場合、拡張パラメータσは、16に等しくなる。
パラメータk=768、η=0.05の場合、以下を使用可能である:
4個の誤りを訂正可能なトリプル[80, 53, 9]によってパラメータ化された線形符号、その場合、拡張パラメータσは、16に等しくなる;
8個の誤りを訂正可能なトリプル[160, 99, 17]によってパラメータ化された線形符号、その場合、拡張パラメータσは、8.8に等しくなる。
【００７８】
したがって、拡張率σを最適化するためには、ランダムベクトルについて大きなサイズk、このランダムベクトルの各ビットが1に等しい低い確率η、ならびに、大きな長さnおよび大きな次元rの符号を使用することが望ましい。
【００７９】
ただし、また、行列Mのサイズを増大させることによって拡張率σを減少させることも可能である。実際、Nが厳密に2よりも大きい整数である、k行N*n列の行列を採用することによって、kビットの同じランダムベクトルでrビットのNブロックを同時に暗号化可能となる。その場合、拡張率は、単に、
【００８０】
【数１２】
0005564434.tif 000013
【００８１】
にすぎない。
【００８２】
これまでに記載してきた例では、平文メッセージのビット数Rは、訂正符号の次元rに等しい。言うまでもなく、平文メッセージxのビット数Rは、訂正符号の次元rよりも小さいものとすることもでき、またははるかに大きいものとすることもできる。
【００８３】
Rがrよりも大きい場合、任意で「パディング(padding)」、すなわち、メッセージxのR番目の後のビットおよび最後のビットについて、情報値をもたない0に等しいビットで最後のブロックを埋めることを用いて、メッセージxは、rビットのブロックまたはメッセージ要素へと分割される。この場合、ステップE1〜E7が、rビットのブロックそれぞれに繰り返され、rビットのメッセージブロックが存在するのと同じ数だけの、ランダムベクトルaiと暗号yiとから構成されるペア(ai, yi)が得られる。
【００８４】
Rがrよりも小さい場合、その最初のRビットがメッセージxのビットであり、このR番目のビットの後のビットが情報値をもたない0に等しい充填ビットである、rビットのメッセージ要素x'を得るために、やはり「パディング」が実施される。
【００８５】
ブロック線形訂正符号の代わりに、他のタイプの誤り訂正符号、特に、畳み込み符号を使用することが可能である。
【００８６】
使用される符号の性質が、暗号化の安全性には影響を与えず、訂正に関するその有効性だけに影響を与えることを繰り返しておく。
【００８７】
本発明の暗号化方法が、暗号法の分野で周知の、LPN問題を解く想定される困難性に基づいた安全性の証明の恩恵を受けることを繰り返しておく。さらに、本発明の暗号化方法は、大きな計算資源およびメモリ資源を必要としない。実際、実施される計算操作は、単なる加算または単純な乗算である。したがって、本発明の暗号化方法は、計算資源およびメモリ資源において、セキュアであると同時に安価である。
【００８８】
以上の説明では、ノイズソースBは、1-δに等しい高い確率で訂正能力t以下のハミング重みHwt(ε)を有する、ノイズベクトルεを生成するのに適している。このおかげで、満足のいく割合の事例で、デコーディングによって、エンコードされたノイズを含むメッセージ
【００８９】
【数１３】
0005564434.tif 000014
【００９０】
から平文メッセージxを取り出すことが可能になることが保証される。他の実施形態では、暗号化プロセス中に、ノイズベクトルεを生成するステップE5の後で実施されるテストステップが設けられる。このテストステップの間、ノイズベクトルεのハミング重みHwt(ε)が実際に誤り訂正符号の訂正能力t以下であるかどうかを確認するために、チェックが行われる。訂正能力t以下である場合、ノイズベクトルεは、ノイズ付加ステップE6に提供される。訂正能力t以下でない場合、新しいノイズベクトルを生成するために、ノイズベクトルを生成するステップE5が繰り返され、その新しいノイズベクトル自体がテストステップによってチェックされる。
【００９１】
ここで、暗号化エンティティ1について、図3に即して説明する。
【００９２】
暗号化エンティティ1は、行列Mの形態の秘密鍵を記憶するメモリ10と、エンコーディングモジュール11と、擬似ランダムビットのソースSである12と、ベルヌーイノイズのソースBである13と、暗号化モジュール14と、ノイズを付加するモジュール15とを含む。メモリ10およびソースS 12は、暗号化モジュール14につながれる。暗号化モジュール14は、入力部でエンコーディングモジュール11に、出力部でノイズ付加モジュール15に接続されており、ノイズ付加モジュール15は、ノイズソースB 13につながれる。操作中には、平文メッセージが、エンコーディングモジュール11に入力として提供され、それぞれがランダム項目と対応する暗号(暗号化されたメッセージまたはメッセージブロック)とから構成される1つまたは複数のペアが、モジュール15からの出力として作り出される。
【００９３】
メモリ10は、暗号化エンティティ1および復号エンティティ2によって共有される秘密鍵を記憶するためのものである。この鍵は、k行n列の行列Mの形態で表される。この場合、それは、テプリッツ行列である。定義によれば、これは、左から右へと下降する対角線上の係数が同一である行列である。したがって、それは、以下の形:
【００９４】
【数１４】
0005564434.tif 000015
【００９５】
を有する。
【００９６】
テプリッツ行列の以上の表示から、そのような行列の係数の組を、行列の第1行および第1列の係数だけから推定できることがわかる。したがって、行列の係数の組全体を得るには、行列の第1行および第1列の係数だけを記憶すれば十分である。
【００９７】
ここでは、したがって、メモリ10は、行列の第1行の係数および第1列の係数だけを記憶する。テプリッツ行列を使用すると、行列Mの係数を記憶するために必要な記憶容量を制限することが可能となる。
【００９８】
エンコーディングモジュール11は、線形誤り訂正符号を用いて、メッセージxを符号語C(x)へとエンコードするように設計される。以上で説明したように、この誤り訂正符号Cは、長さn、次元r、訂正能力tである。それは、冗長ビットを付加することによってrビットの符号をnビットの符号語(n>r)へと変換するのに適した関数である。rビット符号は、メッセージのビット数Rがrに等しい場合、符号化されるべきメッセージxとすることができ、または、メッセージxのビット数Rがrよりも大きい場合、複数のブロックへと分割される、メッセージxのrビットのメッセージブロックxiとすることができ、あるいは、メッセージxのビット数Rがrよりも小さい場合、0に等しい充填ビットでパディングされたメッセージxとすることができる。したがって、エンコーディングモジュール11は、また、メッセージxのサイズRと、符号の次元rとを比較し、
R>rの場合、メッセージxをrビットのブロックへと分割し、同時に、適切であれば、Rがrの倍数ではない場合、0に等しい充填ビットで最後のビットをパディングするように、
R<rの場合、メッセージxを0に等しい充填ビットでパディングして、rビットのメッセージx'を得るように、設計される。
【００９９】
ビットの擬似ランダムソースSは、暗号化操作ごとにkビットのランダムベクトルaを生成するように設計される。
【０１００】
暗号化モジュール14は、
行ベクトルの形態で得られたランダムベクトルaと、秘密鍵を表す行列Mとの積、すなわち、積a・Mを計算し、
積a・Mの結果を、エンコードされたメッセージxであるC(x)(または、エンコードされたメッセージブロックxi、あるいはエンコードされパディングされたメッセージx')に付加するのに適している。
【０１０１】
したがって、暗号化モジュール14は、秘密鍵およびランダム項目を用いて暗号化された符号語C(x)、すなわち、
【０１０２】
【数１５】
0005564434.tif 000016
【０１０３】
を出力として提供する。
【０１０４】
ノイズを付加するモジュール15は、13で参照される、ベルヌーイノイズソースBを含む。このノイズソース13の役割は、各暗号化操作においてnビットのノイズベクトルεを生成することである。以上で説明したように、このソース13は、確率ηで1に等しい、独立ビットを作り出すのに適しており、
【０１０５】
【数１６】
0005564434.tif 000017
【０１０６】
である。さらに、ノイズベクトルεのハミング重みが訂正符号の訂正能力tよりも大きい確率δは、非常に小さく、予め定義された閾値Ｓ未満である。ここに記載の特定の例では、デコーディングによって高い確率で平文メッセージを復元可能となることを保証するために、パラメータt、η、およびnは、条件:t>η*nを満たす。モジュール15の役割は、ノイズベクトルεを生成し、それを暗号化モジュールから出てくる暗号化された符号語に付加すること、あるいは、
【０１０７】
【数１７】
0005564434.tif 000018
【０１０８】
を計算することである。
【０１０９】
ここに記載の例では、エンコーディングモジュール11、擬似ランダムビットのソースSである12、ベルヌーイノイズのソースBである13、暗号化モジュール14、およびノイズを付加するモジュール15は、ソフトウェア手段である。したがって、暗号化エンティティ1によって実施される前述の暗号化方法を実施する命令を含むコンピュータプログラムが、図示していないが、暗号化エンティティ1のプロセッサによって実行されるときには、本発明は、また、このコンピュータプログラムにも関する。このプログラムは、データ媒体内に記憶することもでき、またはデータ媒体によって送信することもできる。データ媒体は、ハードウェア記憶媒体、例えば、CD-ROM、磁気ディスケット、またはハードディスク、あるいは、電気信号、光信号、無線信号などの送信可能媒体とすることができる。
【０１１０】
ここで、復号エンティティ2について、図4に即して説明する。復号エンティティ2は、受信モジュール20と、計算モジュール21と、デコーディングモジュール22と、メモリ23とを含む。
【０１１１】
メモリ23は、暗号化エンティティ1と復号エンティティ2との間で共有される秘密鍵を記憶する。より精確には、メモリ23は、行列Mの係数を記憶する。この場合、Mがテプリッツ行列であるので、行列Mの第1行の係数および第1列の係数だけが実際に記憶される。
【０１１２】
受信モジュール20の役割は、ランダムベクトルaと、平文メッセージxおよびランダム項目aに基づいて行列Mを用いた暗号化によって得られる、対応する暗号化されたメッセージyとをそれぞれが含む、ペア(a, y)を受け取ることである。
【０１１３】
計算モジュール21の役割は、ペア(a, y)を受け取った場合に、
受け取ったベクトルaと、メモリ23内に記憶された行列Mとを用いて、積a・Mを計算し、
次いで、受け取った暗号化されたメッセージyと、計算された積a・Mの結果とを用いて、次の操作:
【０１１４】
【数１８】
0005564434.tif 000019
【０１１５】
を実施して、受け取った暗号化されたメッセージyからベクトルa・Mを導き出すことである。
【０１１６】
yが、
【０１１７】
【数１９】
0005564434.tif 000020
【０１１８】
に等しいので、
【０１１９】
【数２０】
0005564434.tif 000021
【０１２０】
の計算結果が、
【０１２１】
【数２１】
0005564434.tif 000022
【０１２２】
に相当することに気付かれよう。モジュール21によって実施される計算は、次のベクトル:
【０１２３】
【数２２】
0005564434.tif 000023
【０１２４】
から、ベクトルa・Mを導き出すことに相当する。
【０１２５】
デコーディングモジュール22は、モジュール21によって実施された計算の結果、すなわち、
【０１２６】
【数２３】
0005564434.tif 000024
【０１２７】
に相当する、
【０１２８】
【数２４】
0005564434.tif 000025
【０１２９】
を、誤り訂正符号Cを用いてデコードするのに適している。ノイズベクトルεが、訂正符号の訂正能力t以下のハミング重みを有するので、デコーディング操作によって、直接、平文メッセージxが提供される。
【０１３０】
さらに、暗号化エンティティ2は、メッセージxが暗号化されるためにrビットのブロックx1, x2, ...へと分解されている場合に、デコーディングモジュール22によって提供される平文ブロックx1, x2, ...からメッセージxを再構成するのに適した、メッセージ再構成モジュール24を含む。
【０１３１】
計算モジュール21は、入力部で受信モジュール20およびメモリ23に接続され、出力部でデコーディングモジュール22に接続される。復元モジュール24は、デコーディングモジュール22の出力に接続される。
【０１３２】
ここに記載の例では、計算モジュール21、デコーディングモジュール22、および再構成モジュール24は、ソフトウェア手段である。したがって、復号エンティティ2によって実施される前述の復号方法を実施する命令を含むコンピュータプログラムが、図示していないが、復号エンティティのプロセッサによって実行されるときには、本発明は、また、このコンピュータプログラムにも関する。このプログラムは、データ媒体内に記憶することもでき、またはデータ媒体によって送信することもできる。データ媒体は、ハードウェア記憶媒体、例えば、CD-ROM、磁気ディスケット、またはハードディスク、あるいは、電気信号、光信号、無線信号などの送信可能な媒体とすることができる。
【０１３３】
本発明は、特に、低コストの暗号法の分野、例えば、RFIDタグに利用される。
【符号の説明】
【０１３４】
1  暗号化エンティティ
2  復号エンティティ
10  メモリ
11  エンコーディングモジュール
12  擬似ランダムビットソースS
13  ベルヌーイノイズソースB
14  暗号化モジュール
15  ノイズ付加モジュール
20  受信モジュール
21  計算モジュール
22  デコーディングモジュール
23  メモリ
24  メッセージ再構成モジュール
【図１】
0005564434.tif 000030
【図２】
0005564434.tif 000031
【図３】
0005564434.tif 000032
【図４】
0005564434.tif 000033