Learning With Errors(LWE)の基礎
HE方式の基盤となるLWE困難問題を理解します。
「Learning With Errors(LWE)の基礎」はCoddyKit上の無料Cryptology Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCryptology Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cryptology Academyコースには全4レッスンが含まれています。
困難問題の直感
Regev(2005)によるLearning With Errors(LWE)では、Z_q上の多数のノイズを含む線形方程式が与えられたとき、秘密ベクトルsを求めます。ノイズeは小さいものの、ガウス消去法を妨げます。ノイズがなければ連立方程式は簡単に解けますが、ごく小さなノイズでも計算上は困難になります。
LWEの定義
秘密s ∈ Z_q^n。攻撃者は、a_i ∈ Z_q^nがランダムで、b_i =
ノイズが不可欠な理由
ノイズがない場合: b_i =
LWEの困難性
Regevは、量子還元によってLWEが最悪時の格子問題(SIVP、GapSVP)に帰着できることを証明しました。つまり、LWEが破られると、多くの困難な格子問題も解かれることになります。しかし、格子問題に対する量子アルゴリズムはまだ知られていません。LWEは耐量子安全です。
Ring-LWE(RLWE)
RLWEでは、Z_q^nを円分多項式fに対する環Z_q[x]/(f(x))で置き換えます。1つのRLWEサンプルにn個の方程式を組み込めるため、はるかに効率的です。RLWEは、Kyber(KEM)、Dilithium(署名)、BFV/BGV/CKKS HE方式の基盤です。
LWEのパラメータ
セキュリティは、n(次元、通常は512-2048)、q(法、1024-2^60)、σ(ノイズの標準偏差)に依存します。nが大きいほど、またσ/q比が小さいほど、問題は困難になります。NISTの耐量子標準では、k個のモジュール(k=2,3,4)を持つn=256(モジュール次元)が使用されています。
LWE暗号化
公開鍵: (A, b=As+e)。ビットmを暗号化するには、ランダムなrを選び、暗号文(u=A^T r, v = b^T r + m*q/2)を計算します。復号では、v - s^T u = e^T r + m*q/2 ≈ m*q/2となります。最も近いmに丸めます。ノイズeによって、暗号化中は暗号文に含まれるmが隠されます。
判定LWE
Decision-LWEでは、(a, As+e)と、uが一様ランダムな(a, u)を識別します。LWEの困難性を仮定すると、これらは計算量的に識別不能です。これは意味論的安全性の基盤であり、秘密鍵を持たない攻撃者から見ると、暗号文はランダムなノイズのように見えます。
格子簡約攻撃
既知の最良の攻撃は、BKZ(Block Korkine-Zolotarev)格子簡約です。計算量は準指数時間ですが、多項式時間ではありません。BKZ-βには2^{0.292β}回の操作が必要です。LWE-512のBKZに対するセキュリティは約128ビットです。BKZに対する量子高速化は知られていません。
Module-LWE
Module-LWE(Kyberで使用)は、ランクkのモジュール上のRLWEです。k=2では512ビット、k=3では768ビット、k=4では1024ビットのセキュリティに対応できる柔軟性があります。セキュリティと性能はkに応じて変化します。NISTはKyber(ML-KEMに改称)をPQC標準として選定しました。
RSA/ECCとの比較
RSA/ECCのセキュリティは、整数因数分解や離散対数に基づいており、Shorによって量子計算に対して脆弱です。LWEのセキュリティは、最悪時の格子問題に基づいており、既知の量子高速化はありません。鍵サイズは、LWEが約1 KBであるのに対し、RSA-2048は256バイトです。LWEはより大きいものの、耐量子性があります。
理解度チェック
多数のサンプルがあってもLWEを解くことが難しいのはなぜですか?
まとめ
LWEは、ノイズを含む線形方程式から秘密sを求める問題であり、量子計算でも困難です。RLWEは効率化のために多項式環を使用します。Kyber、Dilithium、HE方式の基盤となっています。次は、整数演算用のBGVおよびBFV HE方式について学びます。
よくある質問
「Learning With Errors(LWE)の基礎」レッスンは無料ですか?
はい。「Learning With Errors(LWE)の基礎」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cryptology Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cryptology Academyコースには全4レッスンが含まれています。
「Learning With Errors(LWE)の基礎」で何を学びますか?
HE方式の基盤となるLWE困難問題を理解します。 ブラウザで直接実行するハンズオンコードでCryptology Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cryptology Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCryptology Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「Learning With Errors(LWE)の基礎」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCryptology Academyレッスンでコードを書いて実行できますか?
はい。すべてのCryptology Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 準同型暗号とは
- Learning With Errors(LWE)の基礎
- 整数演算のためのBGVとBFV方式
- 近似算術と機械学習のためのCKKS