RSA1978 年,MIT 的Rivest、Shamir、Adleman 提出RSA 算法 非对称加密(公开密钥加密)密码学的一次革命,定义: KA≠ KB , KA、E 和 D 公开 特点: 基于数论原理(大数分解难题) 是目前应用最广泛的公钥加密算法 属于块加密算法 在数论,对正整数 n,欧拉函数是少于或等于 n 的数中与 n 互质的数的数目。此函数以其首名研究者欧拉命名,它又称为 Euler's totient function、φ 函数、欧拉商数等。 RSA 算法原理 l 定义:RSA 加密算法 确定密钥: 1. 找到两个大质数,p,q 2. Let n=pq 3. let m=(p-1)(q-1);Choose e and d such that de=1(%m). 4. Publish n and e as public key. Keep d and n as secret key. 加密: C=M^e(%n) 解密: M=(C^d)%n 其中 C=M^e(%n) 为 C%n=(M^e)%n 存在的主要问题是大数计算和大数存储的问题。 什么是 RSA RSA 算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。 RSA 是被研究得最广泛的公钥算法,从提出到现在已近二十年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。RSA 的安全性依赖于大数的因子分解,但并没有从理论上证明破译 RSA 的难度与大数分解难度等价。即 RSA 的重大缺陷是无法从理论上把握它的保密性能如何,而且密码学界多数人士倾向于因子分解不是 NPC 问题。 RSA 的缺点主要有:A)产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密。B)分组长度太大,为保证安全性,n 至少也要 600 bits 以上,使运算代价很高,尤其是速度较慢,较对称密码算法慢几个数量级;且随着大数分解技术的发展,这个长度还在增加,不利于数据格式的标准化。目前,SET(Secure Electronic Transaction)协议中要求 CA 采用 2048 比特长的密钥,其他实体使用 1024比特的密钥。 这种算法 1978 年就出现了,它是第一个既能用于数据加密也能用于数字签名的算法。它易于理解和操作,也很流行。算法的名字以发明者的名字命名:Ron Rivest, AdiShamir 和 Leonard Adleman。 RSA 算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密。 RSA 的算法涉及三个参数,n、e1、e2。 其中,n 是两个大质数 p、q 的积,n 的二进制表示时所占用的位数,就是所谓的密钥长度。 e1 和 e2 是一对相关的值,...