首先感謝網易公開課提供的華南理工大學《計算機網絡安全》。。鏈接地址:http://v.163.com/movie/2012/3/F/8/M7STN23RH_M7SUA3OF8.html
在很久以前,加密和解密是一個可逆的過程(對稱的),只要知道加密方法,就能夠解密,這樣的話,发送方不能通知接收方解密的密码是什么然后建立加密通信,因为通信系统可能一开始就被黑客监听着。这样几乎不能实现安全的通信,通信安全受到威脅,因此,有三個名字合稱為 RSA 的教授提出了RSA算法,被稱為3000年密碼史上最重大的成果。它是屬於非對稱加密。
RSA怎么用?
假如某A要与B通信,B将他的公钥放在网络上让任何想跟他通信的人使用,然后A下载这个公钥用来加密消息然后发送给B,B收到后就用私钥解密得到消息。A用公钥加密的信息不怕被黑客监听到,因为黑客不能够用B的公钥解密消息。
这就是非对称加密。
目前最流行的對稱加密為DES,非對稱的為RSA。由于RSA算法复杂,会降低通信速度,因此往往用于传送密码,然后用密码建立对称加密加密通信。
RSA原理是基於大整數分解。接下來講一個例子。
在上面這個例子中,187就是那個大整數,在實際應用中,這是個很大的數,為10的100-200次方。
步驟如下:
1,選取兩個素數 p和q
2,計算N=p*q
3,計算F=(p-1)*(q-1)
4,隨便選取一個e,這個e要與F互質,就是e和F的最小公約數為1
5,讓e*d=F+1,求出d
6,得到公鑰(e,N)私鑰(d,N)
done!——by 9crk in HHTC |