數域
\(R\):實數
\(Z\):整數
\(C\):複數
\(Q\):有理數
空間
\(R^n\):n維實數
\(Z^n\):n維整數
\(C^n\):n維複數
\(Q^n\):n維有理數
集合
\(Z^+\):正整數
\(R^+\):非負實數
\(Z_q,q\geq 1\):商環\(Z/qZ\)
\(\left [ n \right ]\):表示\({1,...,n}\)
\(A/B\):B在A上的補集
\(|B|\):集合B中元素的個數
\(log\):以2爲底
\(M^T\):向量/矩陣的轉置
區間
(1)對於\(x,y\in R\),其中\(y>0\),\(\left \lfloor x \right \rfloor\)表示小於\(x\)的最大整數,\(x mod y =x-\left \lfloor x/y \right \rfloor y\)
(2)\(\left \lceil x \right \rfloor=\left \lfloor x+1/2 \right \rfloor\)
範數
(1)歐式範數(\(l_2\)範數)
向量:\(||v||=(\sum_{i}v_i^2)^{1/2}\)
矩陣:\(||M||=max_i||m_i||,m_i\)是\(M\)的第\(i\)列
分佈採樣
(1)D表示集合S上的一個概率分佈,\(x\leftarrow D\)表示根據概率D採樣\(x\in S\)
(2)\(U(S)\):S上的均勻分佈
(3)若D是一個概率算法,使用\(y\leftarrow D(x)\)表示在輸入x上運行算法D,最後賦值\(D(x)\)到輸出y上
最小熵(min entropy)
這裏\(X\)是集合中的分佈還是元素?
複雜度
漸進標準
多項式的(polynomial)
對於某個常數\(c\),若\(f(n)=O(n^c)\),則稱\(f(n)\)關於n是多項式的,記爲\(poly(n)\)。
可忽略的(hegligible)
對於任意常數\(c\),有\(f(n)=o(n^{-c})\),則稱\(f(n)\)關於n是可忽略的,記爲\(negl(n)\)
若一個事件以至少\(1-negl(n)\)的概率發生,則稱這件事發生的概率是壓倒性的(overwhelming)
語義安全
(1)\(ADV_Y^X\):算法\(A\)在攻擊基於安全定義\(X\)的方案\(Y\)時的優勢,可簡寫爲\(ADV(A)\)
(2)統計不可區分
若\(\Delta (D_1,D_2)\leq negl(n)\),則稱\(D_1\)和\(D_2\)是統計不可區分的,表示\(D_1\approx _s D_2\)。
(3)計算不可區分
對於任意可區分分佈\(D_1\)和\(D_2\)的概率多項式時間(PPT)算法A,若\(|Pr[A(1^n,D_1)=1]-Pr[A(1^n,D_2)=1]|\leq negl(n)\),則稱\(D_1\)和\(D_2\)是計算不可區分的,表示\(D_1\approx _c D_2\)
(4)分佈不可區分
一次一密(完美/理想保密)
一次一密,是理想情況下最安全的加密算法,但存在兩個重要問題:
(1)每加密一次,需要更換一個密鑰
(2)密鑰的長度和明文相當。
實際保密
攻擊者成功優勢
優勢的取值一般和加密算法的安全位數有關。
參考
1、https://www.zhihu.com/question/37203836/answer/70932036
2、格上不經意傳輸協議的分析與設計