出生時間:1973年
出生過程
RSA是1977年由羅納德·李維斯特(Ron Rivest)、阿迪·薩莫爾(Adi Shamir)和倫納德·阿德曼
(Leonard Adleman)一起提出的儒老。當(dāng)時他們?nèi)硕荚诼槭±砉W(xué)院工作牲剃。RSA就是他們?nèi)诵?
氏開頭字母拼在一起組成的,1973年抬闷,在英國政府通訊總部工作的數(shù)學(xué)家克利福德·柯克斯
Clifford Cocks在一個內(nèi)部文件中提出了一個相同的算法缸逃,但他的發(fā)現(xiàn)被列入機(jī)密,一直到1997
年才被發(fā)表
1983年麻省理工學(xué)院在美國為RSA算法申請了專利,這個專利2000年9月21日失效耐齐。
由于該算法在申請專利前就已經(jīng)被發(fā)表了,在世界上大多數(shù)其它地區(qū)這個專利權(quán)不被承認(rèn)
2002年圖靈獎獲獎?wù)?*Ronald Linn Rivest**.png
簡介
RSA加密算法**是一種非對稱加密算法 對極大整數(shù)做因數(shù)分解的難度決定了RSA算法的可靠性,換言之,對一極大整數(shù)做因數(shù)分解愈困難埠况,RSA算法愈可靠 今天只有短的RSA鑰匙才可能被強(qiáng)力方式解破耸携。到2016年為止,世界上還沒有任何可靠的攻擊RSA算法的方式辕翰。 只要其鑰匙的長度足夠長夺衍,用RSA加密的信息實(shí)際上是不能被解破的
使用過程
1 公鑰和私鑰的產(chǎn)生
如果Alice想要通過一個不可靠的媒體接收到Bob的一條信息,可以先自己生成一個公鑰和私鑰
公鑰和私鑰的產(chǎn)生.png
2 加密信息
如果Bob想要給Alice發(fā)送一個信息m,由于他已經(jīng)知道了Alice的公鑰 首先喜命,使用已經(jīng)事先和Alice約定好的格式將m轉(zhuǎn)化成 一個小于N,且與N互質(zhì)的整數(shù)n沟沙,比如他可以將每一個字轉(zhuǎn)換為這個字的[Unicode](https://zh.wikipedia.org/wiki/Unicode)碼,然后將這些數(shù)字連在一起組成一個數(shù)字 假如他的信息非常長的話壁榕,他可以將這個信息分為幾段矛紫,然后將每一段轉(zhuǎn)換為n Bob算出c后就可以將它傳遞給Alice,完成信息的加密傳遞
加密消息.png
3 解密信息
解密信息.png
4簽名消息
假如Alice想給Bob傳遞一個署名的消息的話 (1)將需要發(fā)送消息計算出一個散列值message digest (2)用私鑰加密散列值并將署名加在消息后面 (3)Bob獲取消息后,使用Alice的公鑰解密散列值 (4)將獲取數(shù)據(jù)與Bob自己計算的散列值做對比牌里,如果相同颊咬,知曉發(fā)信人是Alice,而且消息安全
安全性能
至今為止還沒有人找到一個多項(xiàng)式時間的算法來分解一個大的整數(shù)的因子,
同時也還沒有人能夠證明這種算法不存在
因此今天一般認(rèn)為只要N足夠大牡辽,那么黑客就沒有辦法了
針對RSA最流行的攻擊一般是基于大數(shù)因數(shù)分解喳篇。1999年,RSA-155 (512 bits)被成功分解态辛,
花了五個月時間(約8000 MIPS年)和224 CPU hours在一臺有3.2G中央內(nèi)存的Cray C916
計算機(jī)上完成
2002年麸澜,RSA-158也被成功因數(shù)分解
2009年12月12日,編號為RSA-768(768 bits, 232 digits)數(shù)也被成功分解,
這一事件威脅了現(xiàn)通行的1024-bit密鑰的安全性奏黑,普遍認(rèn)為用戶應(yīng)盡快升級到2048-bit或以上