RSA 和 Diffie-Hellman 笔记
1. RSA 和 Diffie-Hellman 的数学背景
RSA
- Prime Factorization: 质因数分解问题。
- Diffie-Hellman: 离散对数问题。
令:
$$
s \in \mathbb{Z}_n^2, a_i \in \mathbb{Z}_2^n, e_i \in \mathbb{Z}^n
$$
定义:
$$
a_i \cdot s + e_i
$$
为某种加密形式。
例如:
$$
\mathbb{Z}_n^2 = {7, 11, 13, 15, 17, 19, 23, 27, 31}
$$
2. RSA 算法步骤
选择两个质数:
$$
p = 3, q = 11
$$则:
$$
n = p \cdot q = 3 \cdot 11 = 33
$$$$
\phi(n) = (p-1)(q-1) = 2 \cdot 10 = 20
$$(计算与n互质的数量个数)
- ∵ p, q为prime, ∴ $\forall a \in \mathbb{Z}^+, \ a < p \implies \gcd(a, p) = 1, \quad \text{其中 } p \text{ 是质数。}$
- ∴有$(p-1)$和$(q-1)$个 与PQ互质
- ∴有小于等于n的总数为 $n = p*q$, n能整除为q个, 被p整除为p个
- ∴与n个不互质的总数为$p+q-1$
- 所以有$\phi(n) = n-(q+p-1)=pq-q+p-q=(p-1)(q-1)$
选择公钥 $e$:
$$
1 < e < \phi(n), , \text{且} , \gcd(e, \phi(n)) = 1
$$例如:
$$
e = 7
$$计算私钥 $d$:
$$
d \cdot e \equiv 1 , (\text{mod} , \phi(n))
$$解出:
$$
d = 3
$$公私钥对:
- 公钥:$(e, n) = (7, 33)$
- 私钥:$(d, n) = (3, 33)$
3. 加解密过程
假设明文 $m = 4$,加密后得到密文 $c$:
$$
c = m^e , \text{mod} , n
$$计算:
$$
c = 4^7 , \text{mod} , 33 = 16
$$解密得到明文 $m$:
$$
m = c^d , \text{mod} , n
$$计算:
$$
m = 16^3 , \text{mod} , 33 = 4
$$
4. 证明解密的正确性
加密和解密的核心是以下等式成立:
$$
e \cdot d \equiv 1 ,(\text{mod}, \phi(n))
$$
所以我们有
$$
e \cdot d = 1 + k \cdot \phi(n)
$$
以加密公式为出口:
$$
c = m^e ,(\text{mod}, n)
$$将 $c$ 以解密公式进行计算:
$$
m = c^d ,(\text{mod}, n)
$$将 $c$ 以加密公式代入:
$$
m = (m^e)^d ,(\text{mod}, n)
$$统合为指数乘式:
$$
m = m^{e \cdot d} ,(\text{mod}, n)
$$与 $e \cdot d = 1 + k \cdot \phi(n)$ 进一步连续:
$$
m = m^{1 + k \cdot \phi(n)} ,(\text{mod}, n)
$$应用质数进度最大公式:
$$
m^{\phi(n)} \equiv 1 ,(\text{mod}, n)
$$分解为无需重复任务:
$$
m^{1 + k \cdot \phi(n)} \equiv m^1 \cdot (m^{\phi(n)})^k ,(\text{mod}, n)
$$因为 $m^{\phi(n)} \equiv 1$:
$$
m^{1 + k \cdot \phi(n)} \equiv m ,(\text{mod}, n)
$$
故证明解密正确。
LWD:
$\left{ \left(a_i, \langle a_i, s \rangle + e_i \right) : s \gets \mathbb{Z}_q^n, a_i \gets \mathbb{Z}q^n, e_i \gets \chi \right}{i=1}^m$
- $\mathbb{Z}$ = $\mathbb{Z}$/q $\mathbb{Z}$ 表示以q为Mod的Finite Ring
- $\chi$ 是$\mathbb{Z}$上的概率分布, 用来生成”小数字”(噪声)
- 均匀分布:如 χ 从区间[**−B,B](例如 [−5,5])中随机生成整数值,$B≪q/2B$ 表示生成的噪声范围比模数 q 的一半要小得多。
$B≪q/2B$的假设确保解密时,噪声 $e_i$不会造成模运算后的结果模糊不清。 - 离散高斯分布:这是另一种更常见的分布类型,记作 $D_{\mathbb{Z}, \sigma}$,具有标准差 σ,用来生成接近 0 的随机噪声值。
$a \gets D$: a 从概率分布 D 中随机抽取(或生成)。
$a \gets S$: 当 S 是一个有限集合时,a 是从 S 中随机、均匀抽取的一个值。
$a_i \in \mathbb{Z}_q^n$: 这是模 𝑞 的 n-维向量空间。它由长度为 𝑛 的向量组成,其中每个分量都来自$\mathbb{Z}_q$