PGP与S/MIME:电子邮件加密与签名的实现与应用
1. PGP的实现
1.1 利用错误RSA签名分解n
在某些情况下,可以借助单个错误的RSA签名来分解模数 (n)。具体步骤如下:
1. 计算 (\sigma’ \leftarrow s_p + p \cdot h’)。
2. 令 (y \leftarrow (\sigma’)^e \mod n)。
3. 可以证明 (p \leftarrow \gcd((y - m), n))。证明过程如下:
- 因为 (\sigma’ \equiv s_p \equiv m^d \pmod{p}),所以 (y \equiv (\sigma’)^e \equiv (m^d)^e \equiv m \pmod{p}),这表明 (p) 能整除 (y - m)。
- 另一方面,由于若 (\sigma’) 与 (m^d) 在模 (q) 下同余则意味着 (\sigma’) 是有效签名,而实际并非如此,即 (\sigma’ \not\equiv m^d \pmod{q}),所以 (y \not\equiv m \pmod{q}),这说明 (q) 不能整除 (y - m)。
- 因为 (p) 能整除 (y - m),但 (n = pq) 不能整除 (y - m),所以 (\gcd(y - m, n) = p)。
1.2 调整校验和
1.2.1 密钥包版本3
在密钥包版本3中,校验和未加密:
- DSA :加密部分不变,可通过计算更改引入的16位和的差值来计算新的校验和。
-
超级会员免费看
订阅专栏 解锁全文
34

被折叠的 条评论
为什么被折叠?



