出生時(shí)間:1973年
出生過(guò)程
RSA是1977年由羅納德·李維斯特(Ron Rivest)、阿迪·薩莫爾(Adi Shamir)和倫納德·阿德曼
(Leonard Adleman)一起提出的。當(dāng)時(shí)他們?nèi)硕荚诼槭±砉W(xué)院工作。RSA就是他們?nèi)诵?
氏開(kāi)頭字母拼在一起組成的,1973年,在英國(guó)政府通訊總部工作的數(shù)學(xué)家克利福德·柯克斯
Clifford Cocks在一個(gè)內(nèi)部文件中提出了一個(gè)相同的算法,但他的發(fā)現(xiàn)被列入機(jī)密,一直到1997
年才被發(fā)表
1983年麻省理工學(xué)院在美國(guó)為RSA算法申請(qǐng)了專利,這個(gè)專利2000年9月21日失效。
由于該算法在申請(qǐng)專利前就已經(jīng)被發(fā)表了,在世界上大多數(shù)其它地區(qū)這個(gè)專利權(quán)不被承認(rèn)

簡(jiǎn)介
RSA加密算法**是一種非對(duì)稱加密算法 對(duì)極大整數(shù)做因數(shù)分解的難度決定了RSA算法的可靠性,換言之,對(duì)一極大整數(shù)做因數(shù)分解愈困難,RSA算法愈可靠 今天只有短的RSA鑰匙才可能被強(qiáng)力方式解破。到2016年為止,世界上還沒(méi)有任何可靠的攻擊RSA算法的方式。 只要其鑰匙的長(zhǎng)度足夠長(zhǎng),用RSA加密的信息實(shí)際上是不能被解破的
使用過(guò)程
1 公鑰和私鑰的產(chǎn)生
如果Alice想要通過(guò)一個(gè)不可靠的媒體接收到Bob的一條信息,可以先自己生成一個(gè)公鑰和私鑰

2 加密信息
如果Bob想要給Alice發(fā)送一個(gè)信息m,由于他已經(jīng)知道了Alice的公鑰 首先,使用已經(jīng)事先和Alice約定好的格式將m轉(zhuǎn)化成 一個(gè)小于N,且與N互質(zhì)的整數(shù)n,比如他可以將每一個(gè)字轉(zhuǎn)換為這個(gè)字的[Unicode](https://zh.wikipedia.org/wiki/Unicode)碼,然后將這些數(shù)字連在一起組成一個(gè)數(shù)字 假如他的信息非常長(zhǎng)的話,他可以將這個(gè)信息分為幾段,然后將每一段轉(zhuǎn)換為n Bob算出c后就可以將它傳遞給Alice,完成信息的加密傳遞

3 解密信息

4簽名消息
假如Alice想給Bob傳遞一個(gè)署名的消息的話 (1)將需要發(fā)送消息計(jì)算出一個(gè)散列值message digest (2)用私鑰加密散列值并將署名加在消息后面 (3)Bob獲取消息后,使用Alice的公鑰解密散列值 (4)將獲取數(shù)據(jù)與Bob自己計(jì)算的散列值做對(duì)比,如果相同,知曉發(fā)信人是Alice,而且消息安全
安全性能
至今為止還沒(méi)有人找到一個(gè)多項(xiàng)式時(shí)間的算法來(lái)分解一個(gè)大的整數(shù)的因子,
同時(shí)也還沒(méi)有人能夠證明這種算法不存在
因此今天一般認(rèn)為只要N足夠大,那么黑客就沒(méi)有辦法了
針對(duì)RSA最流行的攻擊一般是基于大數(shù)因數(shù)分解。1999年,RSA-155 (512 bits)被成功分解,
花了五個(gè)月時(shí)間(約8000 MIPS年)和224 CPU hours在一臺(tái)有3.2G中央內(nèi)存的Cray C916
計(jì)算機(jī)上完成
2002年,RSA-158也被成功因數(shù)分解
2009年12月12日,編號(hào)為RSA-768(768 bits, 232 digits)數(shù)也被成功分解,
這一事件威脅了現(xiàn)通行的1024-bit密鑰的安全性,普遍認(rèn)為用戶應(yīng)盡快升級(jí)到2048-bit或以上