RSA加密算法破解及原理
“?RSA加密算法是一種非對稱加密算法,目前被廣泛應(yīng)用。本文介紹RSA算法的基本原理和破解方法。”
RSA在互聯(lián)網(wǎng)上被廣泛應(yīng)用,典型的如各個網(wǎng)站的證書。
很多應(yīng)用數(shù)據(jù)的加密也是使用RSA。
本文介紹RSA算法的原理,并介紹其破解方法和工具。
01
—
RSA算法原理
RSA加密算法是一種非對稱加密算法,它能抵抗目前絕大多數(shù)密碼攻擊。RSA算法基于以下事實(shí):
兩個大素數(shù)相乘十分容易,但是對其乘積進(jìn)行因式分解卻極其困難,因此,RSA的安全性取決于對極大整數(shù)做因數(shù)分解的難度。
RSA加密體制中,有兩個密鑰,即一個公鑰,一個私鑰,它們組成一對密鑰,公鑰用來加密,私鑰用來解密,公鑰被公開,私鑰要藏好了,如果私鑰泄漏或者被爆破,則這對密鑰就基本沒用了。
加密的一般過程為:
02
—
公鑰和私鑰
RSA公鑰與私鑰的生成過程如下:
隨機(jī)選定兩個大素數(shù)p, q。
計算公鑰和私鑰的公共模數(shù) n = pq。
計算模數(shù)n的歐拉函數(shù)φ(n)=lcm(p-1,q-1).(即最小公倍數(shù)) 。
選定一個正整數(shù)e,使1 < e < φ(n) , 且e與φ(n)互質(zhì)。
計算e關(guān)于φ(n)的模反元素d, 滿足de ≡ 1?(mod φ(n) ). (計算方法de=xφ(n) +1)。
公鑰為(e,n),私鑰為(n,d)。
RSA成立的條件依賴于如下等式:
??
03
—
加密與解密
加密和解密的過程如下:
Bob先把X轉(zhuǎn)換為一個大數(shù)m < n, 再用Alice的公鑰(e,n)把m加密為另一個大數(shù):?
Alice收到Bob發(fā)來的大數(shù)c, 進(jìn)行解密。 通過自己的私鑰(p,q,d)得到大數(shù)m:?
再把m轉(zhuǎn)換為X, Alice即得到Bob的原始消息,轉(zhuǎn)換方法二人提前約定。
04
—
RSA暴力破解
RSA暴力破解,簡單理解,就是根據(jù)公鑰(e,n)獲取私鑰(n,d)的方法。
對一個RSA證書來說,公鑰是公開的,e及n值可以使用openssl庫進(jìn)行獲取,重要的是模數(shù)n值,假設(shè)公鑰文件問pub.pem,則模數(shù)n值其獲取命令如下:
openssl rsa -in pub.pem -pubin -modulus -noout
RSA爆破就是對大數(shù)n值使用工具分解成pq的過程,得到pq,就得到了d。
RSA爆破,是根據(jù)數(shù)學(xué)原理,按數(shù)學(xué)步驟進(jìn)行一步步計算,不是使用openssl這類通用的工具進(jìn)行的,具體的步驟,太專業(yè)了,這里不做描述。
目前,RSA-220 即729位的數(shù),已經(jīng)有破解成功的案例。對RSA-155即512位的數(shù),使用服務(wù)器集群很快就能得到結(jié)果。而對RSA-1024而言,已經(jīng)不夠安全了,所以現(xiàn)在SSL證書都升級到了2048位。
在互聯(lián)網(wǎng)大發(fā)展的時代,最幸福的是,目前已經(jīng)有很多開源的爆破工具供我們使用。
05
—
RSA爆破工具
RSA爆破的工具有很多,如:CADO-NFS,ggnfs,MSIEVE,yafu、sage等,還有在線破解的網(wǎng)站如cocalc.com。
有的工具可以在Linux,有的可以在Windows下使用。在線破解工具則是大伙玩的,實(shí)用性有限。
在爆破工具的選擇上,如果需要分解的數(shù)字不大,可以使用yafu等工具,如果需要爆破的是大數(shù),則需要使用CADO-NFS這類Linux平臺下可以并行運(yùn)算的爆破工具。
如CADO-NFS官方提供的實(shí)驗(yàn)結(jié)果如下:
實(shí)際上,如果服務(wù)器夠多,CPU夠多,破解速度會更快。
當(dāng)然,對協(xié)議分析而言,如果需要爆破,則這個數(shù)不會小,我推薦的爆破工具肯定就是CADO-NFS啦。
如果在RSA爆破過程中需要獲取幫助,可以留言找我進(jìn)行了解。
掃我關(guān)注。
總結(jié)
以上是生活随笔為你收集整理的RSA加密算法破解及原理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows下Python 3.6 安
- 下一篇: 干货,Wireshark使用技巧-过滤规