1. 程式人生 > >格密碼學習筆記(一)

格密碼學習筆記(一)

格密碼學習筆記(一)

\qquad 隨著當下量子計算機的研製的迅速進展,量子演算法亦是相應得以巨大突破。在量子計算模型下,經典數論假設的密碼體系(如大整數分解,計算有限域/橢圓曲線上的離散對數問題等),存在多項式時間(PPT)的量子演算法,換而言之,經典數論密碼體系受到了極大的衝擊,將有可能成為舊時代的眼淚。因此,能夠抵抗量子計算機攻擊的密碼——“後量子”或“抗量子”密碼便應運而生。

\qquad 目前, 用於構建後量子密碼系統的常見數學技巧包括:
1.雜湊函式,多變數方程(在構造簽名方案時較有優勢)
2.糾錯碼(更合適構造加密方案)
3.格(最通用的一類, 幾乎所有經典密碼概念都可以在格密碼中實現)
4.超奇異橢圓曲線同源問題(當下較新的一類, 目前其中較受關注的有金鑰交換和簽名方案的構造,計算效率很低,還達不到實用性的要求)

一.格密碼的基本概念:

I.根據向量空間的概念,格的定義如下:

\qquad v 1 , , v n
R m , v_1,\dots,v_n\in{R^m},
為一組線性無關的向量。由 v 1 , , v n v_1,\dots,v_n 生成的格 L L 指的是向量 v 1 , , v n v_1,\dots,v_n 的線性組合構成的向量集合,且其所使用的係數均在 Z n Z^n 中,即
L = { a 1 v 1 + a 2 v 2 + + a n v n : a 1 , a 2 , , a n Z } \qquad\qquad L=\{a_1v_1+a_2v_2+\dots+a_nv_n:a_1,a_2,\dots,a_n\in{Z}\}
\qquad 任意一組可以生成格的線性無關的向量都稱為格的基,格的基中的向量個數稱為格的維度。任意兩組這樣的向量中,向量的個數相同。
\qquad 某種程度上,格可以理解成係數為整數的向量空間。

II.與格相關的基本計算性難題:
1.SVP: Shortest Vector Problem (在格中尋找最短的非零向量)
\qquad 最短向量問題(SVP):在格 L L 中尋找一個最短的非零向量,即尋找一個非零向量 v L v\in{L} ,使它的歐幾里得範數 v \|v\| 最小。

2.CVP: Closet Vector Problem(在格中尋找與指定非格向量最為接近的向量)
\qquad 最近向量問題(CVP):給定一個不在格 L L 中的向量 w R m w\in{R^m} ,尋找一個向量 v L v\in{L} ,使它最接近 w w ,即尋找一個向量 v L v\in{L} ,使歐幾里得範數 w v \|w-v\| 最小。

III.格密碼簡史:

時間 標誌事件
18世紀–1982年 格經典數學問題的討論,代表人物:Lagrange,Gues,Hermite,MInkowski等
1982年–1996年 期間標誌性事件是LLL演算法的提出(Lenstra-Lenstra-Lovasz)
1996年–2005年 第一代格密碼誕生(Ajtai96, AD97G, GH9)
2005年–2016年 第二代格密碼出現並逐步完善,並實用化格密碼演算法 (Regev05, GPV08,MP12 BLISS ,NewHope, Frodo)
2016年– 格密碼逐步得以標準化

IV.格密碼的發展大體分為兩條主線

從前 現在
具有悠久歷史的格經典數學問題的研究 \Longrightarrow 近30多年來高維格困難問題的求解演算法及其計算複雜性理論研究
使用格困難問題的求解演算法分析非格公鑰密碼體制的安全性 \Longrightarrow 基於格困難問題的密碼體制的設計

V.格密碼優勢:抗量子計算

格密碼 經典密碼
量子攻擊演算法 Shor演算法
矩陣乘法、多項式乘法 Shor演算法
Worst-case hardness Average-case hardnes
結構靈活、功能豐富 結構簡單、功能受限

VI .量子計算對經典密碼演算法的影響

密碼演算法 量子計算的影響
對稱密碼演算法(SM4,AES) 金鑰加倍(Grover)
雜湊函式(SM3,SHA-3) 輸出長度增加(Grover)
經典公鑰演算法(RSA,DSA,ECC) 多項式演算法(Shor)
格密碼 未找到有效演算法
多變數密碼(數字簽名) 未找到有效演算法
基於Hash的密碼(數字簽名) 未找到有效演算法
基於編碼的密碼(加密) 未找到有效演算法
超奇異同源 未找到有效演算法

二.LLL演算法

\qquad LLL演算法(Lenstra-Lenstra-Lovasz,lattice reduction)——以格規約(lattice)基數為輸入,輸出短正交向量基數。
\qquad 給定格 L L 的一組基為 { v 1 , v 2 , , v n } \{v_1,v_2,\dots,v_n\} ,然後對它進行約減。約減的主要目的是將這組任意給定的基轉化為一組正交性較好的優質基,並使得這個優質基中的各個向量儘量最短。也就是說,首先要得到能夠通過演算法找到的最短向量,然後找到比這個最短向量稍長一點的向量,依次類推,直到最後找到這組基中的最後一個向量為止。或者,要使得在這個優質基中的向量之間具有相當好的正交性,即兩個向量的點乘 v i v j v_i\cdot{v_j} 儘可能地接近於零。
I.基本概念
命題1 \quad B = { v 1 , v 2 , , v n } B=\{v_1,v_2,\dots,v_n\} 為格 L L 的一組基,且 B = { v 1 , v 2 , , v n } B^*=\{v_1^*,v_2^*,\dots,v_n^*\} 為相應的Gram-Schmidt正交基,則有 det L = i = 1 n v i \det{L}=\prod\limits^n_{i=1}\|v_i^*\|
定義1 \quad V V 表示一個向量空間啊, 是空間 W V W\subset{V} 的一個子空間, W W V V 中的正交分量為 W = { v V : v w = 0 , w W } W^{\perp}=\{v\in{V}:v\cdot{w}=0,\forall{w}\in{W}\}
定理1 \quad