RSA密码系统、素性测试与因数分解
1. 引言
区分素数与合数,以及将合数分解为素因数,是算术领域中极为重要且实用的问题。在密码学里,许多基本的密码协议的安全性通常依赖于数论和代数中某些问题的难解性。因此,要描述这些密码系统和协议并讨论相关安全问题,就需要运用数论、代数和复杂性理论的概念、方法与结果。
2. RSA密码系统
许多对称密码系统存在安全问题,例如仿射线性分组密码易受已知明文攻击,而且对称密码系统还面临密钥管理和分发的难题。而公钥密码学为这些问题提供了新的解决方案。
2.1 RSA公钥密码系统
RSA公钥密码系统由Rivest、Shamir和Adleman于1978年发明,是密码学历史上的一个里程碑,它是首个公开文献中的公钥密码系统,至今仍广泛应用于各种密码学场景,还可修改为数字签名方案。
其具体步骤如下:
1. 密钥生成 :
- Bob选择两个不同的大素数 ( p ) 和 ( q )(( p \neq q )),计算 ( n = pq )。
- 选择一个指数 ( e \in N ),满足 ( 1 < e < \phi(n) = (p - 1)(q - 1) ) 且 ( \gcd(e, \phi(n)) = 1 )。
- 使用扩展欧几里得算法确定 ( e ) 模 ( \phi(n) ) 的逆元 ( d ),即满足 ( 1 < d < \phi(n) ) 且 ( e \cdot d \equiv 1 \mod \phi(n) )。
- 此时,( (n, e) ) 是Bob的公钥,( d ) 是B
超级会员免费看
订阅专栏 解锁全文
412

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



