密码学 - 公钥加密公式整理
公钥加密的公式分类整理
RSA 公钥加密
RSA 加密方案
密钥生成:
- 选择两个大素数 $ p $ 和 $ q $
- 计算 $ n = pq $
- 计算 $ \phi(n) = (p-1)(q-1) $
- 选择一个整数 $ e $(满足 $ 1 < e < \phi(n) $ 且 $ \gcd(e, \phi(n)) = 1 $)
- 计算私钥 $ d $(满足 $ ed \equiv 1 \pmod{\phi(n)} $)
- 公钥为 $ (e, n) $,私钥为 $ (d, n) $
加密:
- 明文 $ m $
- 密文 $ c = m^e \mod n $
解密:
- 密文 $ c $
- 明文 $ m = c^d \mod n $
基于离散对数的公钥加密
ElGamal 加密方案
密钥生成:
- 选定大素数 $ p $ 和生成元 $ g $
- 选择私钥 $ x $(随机数),计算公钥 $ y = g^x \mod p $
- 公钥为 $ (p, g, y) $,私钥为 $ x $
加密:
- 明文 $ m $
- 选择随机数 $ k $(满足 $ 1 < k < p-1 $)
- 计算 $ c_1 = g^k \mod p $
- 计算 $ c_2 = m \cdot y^k \mod p $
- 密文为 $ (c_1, c_2) $
解密:
- 密文 $ (c_1, c_2) $
- 计算 $ s = c_1^x \mod p $
- 计算明文 $ m = c_2 \cdot s^{-1} \mod p $
基于椭圆曲线离散对数的公钥加密
椭圆曲线 ElGamal 加密方案
密钥生成:
- 选定椭圆曲线 $ E $ 和基点 $ G $
- 选择私钥 $ d $(随机数),计算公钥 $ Q = dG $
- 公钥为 $ (E, G, Q) $,私钥为 $ d $
加密:
- 明文点 $ P_m $
- 选择随机数 $ k $
- 计算 $ C_1 = kG $
- 计算 $ C_2 = P_m + kQ $
- 密文为 $ (C_1, C_2) $
解密:
- 密文 $ (C_1, C_2) $
- 计算 $ P_m = C_2 - dC_1 $
总结
RSA 公钥加密:
- 基于大整数分解难题,公钥用于加密,私钥用于解密。
基于离散对数的公钥加密:
- ElGamal 加密方案基于离散对数问题,使用生成元和大素数进行加密和解密。
基于椭圆曲线离散对数的公钥加密:
- 椭圆曲线 ElGamal 加密方案,使用椭圆曲线上的点和基点进行加密和解密。提供更高的安全性和效率。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Moyuan"s website!
