デジタル署名は、デジタル情報を意図的な変更から保護し、デジタル情報のソースを認証する手段です。公開鍵暗号は、デジタル署名を作成するためのさまざまな暗号化アルゴリズムの豊富なセットを提供します。しかし、現在使用されている主要な公開鍵署名(RSA署名と楕円曲線署名)は、科学者が中規模の量子コンピュータ を構築できれば、完全に安全ではなくなります。[ 1 ]ポスト量子暗号は、量子暗号による攻撃に耐えられるように設計された暗号化アルゴリズムの一種です。格子の難しい問題に基づくいくつかのポスト量子デジタル署名アルゴリズムが、一般的に使用されているRSA署名と楕円曲線署名に取って代わるものとして作成されています。これらの格子ベースのスキームのサブセットは、エラー付きリング学習と呼ばれる問題に基づいています。エラー付きリング学習に基づくデジタル署名は、公開鍵と署名のサイズが最も小さいポスト量子署名の1つです。
過去10年間の量子コンピューティングの発展と、20年以内に真の量子コンピュータが実現するという楽観的な見通しは、インターネットを保護する基本的な暗号技術を脅かし始めています。 [ 2 ] [ 3 ]わずか1万ビットの情報しか処理できない 比較的小型の量子コンピュータは、インターネット上のプライバシー保護や情報へのデジタル署名に使用されている、広く使用されている公開鍵暗号アルゴリズムをすべて簡単に破ってしまうでしょう。[ 1 ] [ 4 ]
デジタル署名を作成するために使用される最も広く使用されている公開鍵アルゴリズムの1つは、RSAとして知られています。そのセキュリティは、2つの大きな未知の素数の積を、構成する素数に因数分解することの古典的な困難さに基づいています。素数がランダムに選択され、十分に大きい場合、整数の因数分解問題は、従来のコンピュータでは解決不可能であると考えられています。しかし、2つのnビットの素数の積を因数分解するには、約6nビットの論理量子ビットメモリを持ち、ショアのアルゴリズムと呼ばれるプログラムを実行できる量子コンピュータは、このタスクを簡単に達成します。[ 5 ]ショアのアルゴリズムは、離散対数問題や、より難解な楕円曲線離散対数問題 として知られる問題に基づくデジタル署名を迅速に解読することもできます。実際、ショアのアルゴリズムを実行する比較的小さな量子コンピュータは、今日インターネット上の情報のプライバシーと整合性を保証するために使用されているすべてのデジタル署名を迅速に解読できます。
RSAやその他のデジタル署名アルゴリズムを破る量子コンピュータがいつ登場するかは不明ですが、過去10年間、攻撃者が量子コンピュータのリソースを自由に使える場合でも安全な暗号アルゴリズムを作成するための研究が活発に行われてきました。[ 1 ] [ 6 ]この新しい暗号分野は、耐量子暗号または量子安全暗号と呼ばれています。[ 1 ] [ 6 ]本稿では、これらのアルゴリズムの一種である、リング学習エラー問題に基づくデジタル署名について考察します。暗号における一般的な学習エラー問題 の応用は、2005年にOded Regevによって導入され、多くの暗号設計の源泉となっています。[ 7 ]
リングベース誤り学習(RLWE)暗号基盤の考案者は、この誤り学習に基づくアルゴリズムの重要な特徴は、既知の難問への証明可能な還元であると考えている。[ 8 ] [ 9 ]以下に説明する署名は、理想的な格子における最短ベクトル問題 への証明可能な還元を持つ。[ 10 ] これは、リングLWE暗号システムへの攻撃が発見されれば、想定される一連の計算難問の全てが解決されることを意味する。[ 11 ]
最初のRLWEベースの署名は、リュバシェフスキーの論文「アボート付きフィアット・シャミール:格子および因数分解ベース署名への応用」[ 12 ]で開発され、2011年に「トラップドアなしの格子署名」 [ 13 ]で改良されました。その後、多くの改良と派生が行われました。本稿では、RLWE署名の基本的な数学的構造に焦点を当て、リュバシェフスキーのオリジナルの研究と、グネイシュ、リュバシェフスキー、ポップルマン(GLP)の研究を踏襲します。[ 10 ]本発表は、2017年にGLPスキームが更新されたGLYPHに基づいています。[ 14 ]
RLWE-SIGは、奇素数qに対する有限体Zqを係数とするn次多項式Φ(x)を法とする商環(すなわち、環Zq [ x]/Φ(x))において作用する。[ 13 ] 多項式の乗算と加算は、乗算結果をmod Φ(x)で簡約したものを用いて、通常の方法で行われる。この説明では、典型的な多項式は次のように表される。
体 Z q は、{ -(q-1)/2, ...-1, 0, 1, ... (q-1)/2 } の集合に代表元を持ちます。n が 2 のべき乗の場合、多項式 Φ(x) は円分多項式x n + 1 となります。n は他の値を取ることも可能ですが、対応する円分多項式はより複雑になるか、その安全性が十分に研究されていません。
RLWE署名は、「無限大ノルム」と呼ばれる尺度に関して「小さい」と見なされる多項式を使用します。多項式の無限大ノルムとは、多項式の係数をZ qではなくZの整数と見なした場合の、係数の絶対値の最大値です。[ 10 ] 署名アルゴリズムは、特定の無限大ノルムの境界に関して小さいランダムな多項式を作成します。これは、多項式のすべての係数(a 0、…、a n-1 )を、この境界以下になることが保証されるか、非常に高い確率でランダムに生成することで簡単に実行できます。エラー付きリング学習に関する文献では、これを行うための一般的な方法が2つあります。[ 13 ]
以下の例で使用されるRLWEシグネチャGLYPHでは、「小さな」多項式の係数には均一サンプリング法が使用され、値bは値qよりもはるかに小さくなります。[ 10 ]
ほとんどのRLWE署名アルゴリズムでは、任意のビット文字列を何らかの分布に従って小さな多項式に暗号的にハッシュする機能も必要です。以下の例では、ハッシュ関数POLYHASH(ω)を使用しています。この関数は、ビット文字列ωを入力として受け取り、n個の係数を持つ多項式を出力します。これらの係数のうち、k個の係数の絶対値は0より大きく、かつ整数境界bより小さい値を持ちます(上記参照)。
RLWE署名アルゴリズムの重要な特徴は、拒絶サンプリングと呼ばれる手法の使用です。[ 13 ] [ 12 ]この手法では、署名多項式の無限大ノルムが固定の境界βを超える場合、その多項式は破棄され、署名プロセスが再開されます。このプロセスは、署名多項式の無限大ノルムが境界以下になるまで繰り返されます。拒絶サンプリングにより、出力署名が署名者の秘密鍵の値と悪用可能な相関関係を持たないことが保証されます
以下の例では、境界βは(b - k)となる。ここで、bは前述の均一サンプリングの範囲であり、kは「受け入れられる」多項式で許容される非ゼロ係数の数である[ 10 ]。
GLYPH に従い、前述のとおり、多項式の最大次数は n-1 なので、係数は n 個になります。[ 10 ] n の一般的な値は 512 と 1024 です。[ 10 ]これらの多項式の係数は、体 F qから取得されます。ここで、q は 1 mod 4 に合同な奇数の素数です。n=1024 の場合、GLYPH は q = 59393、b=16383、Polyhash の出力の非ゼロ係数の数 k を 16 に設定します。[ 14 ] ハッシュ関数によって生成される非ゼロ係数の数 k は、どちらの場合も 32 です。[ 10 ] 署名方式のセキュリティは、n、q、b、k の相対的なサイズに密接に関係しています。これらのパラメータの設定の詳細については、以下の参考文献 5 と 6 を参照してください。[ 13 ] [ 10 ] [ 14 ]
前述の通り、使用される多項式環を定義する多項式Φ(x)はx n + 1となります。最終的に、a(x)は{-(q-1)/2から(q-1)/2}の範囲の係数を持つ、ランダムに選択された固定多項式となります。多項式a(x)は、「秘密にしておくこと」を徹底した方法で選択する必要があります。例えば、真のノイズ乱数生成器(TRNG)の出力を一方向ハッシュする、あるいはπやeといったよく知られた数学定数のデジタル展開を用いるなどです。署名者と署名検証者はすべて、n、q、b、k、Φ(x)、a(x)、β = bkを知っています。
メッセージに署名したい主体は、以下の手順で公開鍵を生成します
多項式s(x)とe(x)は秘密鍵として機能し、t(x)は対応する公開鍵です。この署名方式の安全性は、次の問題に基づいています。多項式t(x)が与えられたとき、a(x)·f 1 (x) + f 2 (x) = t(x)を満たす小さな多項式f 1 (x)とf 2 (x)を求めます。
この問題を解決するのが困難であれば、署名方式の偽造も困難になります。[この問題の理論的な難しさに関する詳細は、 Wikipediaの「エラー付きリング学習」または「理想格子暗号」の記事を参照してください。]
GLYPH [ 14 ]に従って、ビット文字列として表現されたメッセージmに署名するために、署名エンティティは次のことを行います
GLYPH [ 14 ]に従って、ビット列として表現されたメッセージmを検証するには、検証者は署名者の公開鍵(t(x))、署名(c(x), z1(x), z2(x))、およびメッセージmを所有している必要があります。検証者は以下のことを行います
次のことに注意してください。
a(x)·z 1 (x) + z 2 (x) - t(x)c(x) = a(x)·[s(x)·c(x) + y 1 (x)] + z 2 (x) - [a(x)·s(x) + e(x)]c(x)
= a(x)·y 1 (x) + z 2 (x) - e(x)·c(x)
= a(x)y 1 (x) + e(x)·c(x) + y 2 (x) - e(x)·c(x)
= a(x)y 1 (x) + y 2 (x) = w(x) (上記の定義どおり)
この簡単な導出は、署名が改ざんされていない場合、検証プロセスで c'(x) = c(x) となることを示しています。
この文書で説明されているGLYPH署名スキームは、2011年と2012年のLyubashevsky、Gunesyu、Popplemenの研究に密接に従っています。彼らの研究には他にも多くのバリエーションがあります。これらには以下が含まれます
リング上の格子に基づく署名へのもう一つのアプローチは、特許取得済みの格子ベース暗号NTRUファミリーの派生です。このアプローチの代表的な例は、二峰性格子署名方式(BLISS)と呼ばれる署名です。これはDucas、Durmas、Lepoint、Lyubashevskyによって開発され、論文「格子署名と二峰性ガウス分布」に記載されています。[ 17 ] BLISS署名方式を参照
{{cite web}}: CS1 maint: bot: 元のURLステータス不明(リンク)