出生时间:1973年
出生过程
RSA是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼
(Leonard Adleman)一起提出的。当时他们三人都在麻省理工学院工作。RSA就是他们三人姓
氏开头字母拼在一起组成的,1973年,在英国政府通讯总部工作的数学家克利福德·柯克斯
Clifford Cocks在一个内部文件中提出了一个相同的算法,但他的发现被列入机密,一直到1997
年才被发表
1983年麻省理工学院在美国为RSA算法申请了专利,这个专利2000年9月21日失效。
由于该算法在申请专利前就已经被发表了,在世界上大多数其它地区这个专利权不被承认
简介
RSA加密算法**是一种非对称加密算法 对极大整数做因数分解的难度决定了RSA算法的可靠性,换言之,对一极大整数做因数分解愈困难,RSA算法愈可靠 今天只有短的RSA钥匙才可能被强力方式解破。到2016年为止,世界上还没有任何可靠的攻击RSA算法的方式。 只要其钥匙的长度足够长,用RSA加密的信息实际上是不能被解破的
使用过程
1 公钥和私钥的产生
如果Alice想要通过一个不可靠的媒体接收到Bob的一条信息,可以先自己生成一个公钥和私钥
2 加密信息
如果Bob想要给Alice发送一个信息m,由于他已经知道了Alice的公钥 首先,使用已经事先和Alice约定好的格式将m转化成 一个小于N,且与N互质的整数n,比如他可以将每一个字转换为这个字的[Unicode](https://zh.wikipedia.org/wiki/Unicode)码,然后将这些数字连在一起组成一个数字 假如他的信息非常长的话,他可以将这个信息分为几段,然后将每一段转换为n Bob算出c后就可以将它传递给Alice,完成信息的加密传递
3 解密信息
4签名消息
假如Alice想给Bob传递一个署名的消息的话 (1)将需要发送消息计算出一个散列值message digest (2)用私钥加密散列值并将署名加在消息后面 (3)Bob获取消息后,使用Alice的公钥解密散列值 (4)将获取数据与Bob自己计算的散列值做对比,如果相同,知晓发信人是Alice,而且消息安全
安全性能
至今为止还没有人找到一个多项式时间的算法来分解一个大的整数的因子,
同时也还没有人能够证明这种算法不存在
因此今天一般认为只要N足够大,那么黑客就没有办法了
针对RSA最流行的攻击一般是基于大数因数分解。1999年,RSA-155 (512 bits)被成功分解,
花了五个月时间(约8000 MIPS年)和224 CPU hours在一台有3.2G中央内存的Cray C916
计算机上完成
2002年,RSA-158也被成功因数分解
2009年12月12日,编号为RSA-768(768 bits, 232 digits)数也被成功分解,
这一事件威胁了现通行的1024-bit密钥的安全性,普遍认为用户应尽快升级到2048-bit或以上