9. 公钥密码学与RSA
- 概述公钥密码体制的基本原理:利用数学算法生成两个密钥用于加密和解密。
- 阐述公钥密码体制的两个不同应用:数字签名和密钥交换(加解密)。
- 列举和解释公钥密码体制的要求:
- 一般要求:
- 加解密算法唯一,密钥不同。
- 发送方有一个加(解)密钥接收方有另一个。
- 安全要求:
- 有一个密钥保密。
- 无其他信息,无法解密。
- 知道算法和密钥无法推出另一个密钥。
- 一般要求:
- 概述RSA算法:选大素数 p , q p,q p,q,通过 ϕ ( n ) = ( p − 1 ) ( q − 1 ) \phi(n) = (p-1)(q-1) ϕ(n)=(p−1)(q−1) 变为模,公私钥 e , d e,d e,d 在 ϕ ( n ) \phi(n) ϕ(n) 下模乘 等于 1。
- 计时攻击:通过记录计算机解密消息所用的时间确定私钥。
- 单向陷门函数:计算函数值容易,==缺少条件(陷门)==时计算函数的逆不可行。
9.1 公钥密码体制的原理
利用数学算法生成两个密钥用于加密和解密。
主要步骤:
- 每个用户生成一对密钥用于加解密。
- 每人其中一个密钥公布(公钥),一个不公布(私钥)。
- Bob和Alice发消息,用Alice的公钥加密。
- Alice用私钥解密。
9.2 RSA加密算法
基于因数分解困难问题。
主要步骤:
- 随机选择不同素数 p p p、 q q q。
- n n n = p × q p \times q p×q。(解密关键)
- 计算 n n n 的欧拉函数 ϕ ( n ) = ( p − 1 ) ( q − 1 ) \phi(n) = (p-1)(q-1) ϕ(n)=(p−1)(q−1) 。
- 随机选择整数 e e e,满足 e e e 与 ϕ ( n ) \phi(n) ϕ(n) 互质, 1 < e < ϕ ( n ) 1 < e < \phi(n) 1<e<ϕ(n)
- 找到 d d d , 使得 e d = 1 m o d ϕ ( n ) ed = 1 \mod \phi(n) ed=1modϕ(n) 。
- 将 ( e , n ) (e,n) (e,n)封装为公钥, ( d , n ) (d,n) (d,n) 封装为私钥。
RSA的安全性:
- 穷举攻击
- 数学攻击
- 计时攻击
- 基于硬件故障的攻击
- 选择密文攻击