RAS RC4 AES 加密 MD5
RAS RC4 AES 加密 MD5
這兩者唯一的相同點是設(shè)計者中都包含了MIT的Ron Revist教授。
RSA是公鑰密碼算法,優(yōu)點:不用事先通過秘密信道傳遞密鑰,可以用于數(shù)字簽名。缺點:速度慢
RC4是序列密碼算法,優(yōu)點:速度快,缺點:需要事先秘密地傳遞密鑰。
?
RAS是不對稱加密,用一個公鑰加密,用另一個私鑰解密,或者反過來。理論上不可被破解
RC4是對稱加密,用同一個密鑰進(jìn)行加密解密。理論上暴力破解有很大可能,且已經(jīng)有工具可以破解。
?
RC4算法原來是商業(yè)機密不公開的,但后來泄漏了,現(xiàn)在大家都知道了。
RAS加密的算法是公開的,大家都知道,但外人想要破解它卻不可能的:
【
RSA的安全性依賴于大數(shù)分解。公鑰和私鑰都是兩個大素數(shù)?
(?大于?100個十進(jìn)制位)的函數(shù)。據(jù)猜測,從一個密鑰和密文?
推斷出明文的難度等同于分解兩個大素數(shù)的積。???
??密鑰對的產(chǎn)生:選擇兩個大素數(shù),p?和q?。計算:???
n?=?p?*?q?
然后隨機選擇加密密鑰e,要求?e?和?(?p?-?1?)?*?(?q?-?1?)?
互質(zhì)。最后,利用Euclid?算法計算解密密鑰d,?滿足???
???????e?*?d?=?1?(?mod?(?p?-?1?)?*?(?q?-?1?)?)?
其中n和d也要互質(zhì)。數(shù)e和?
n是公鑰,d是私鑰
】
判定一個超大的數(shù)為素數(shù)是世界難題,如上若采用100位的大數(shù)作公鑰或私鑰,計算機暴力破解的時間復(fù)雜度約為O(10的200次方)
?
下面摘自新浪博客:http://blog.sina.com.cn/s/blog_65db998401012ahq.html
RC4的破解與防范
RC4算法是對稱的加密算法,加密和解密的步驟都是眾所周知的、固定不變的。唯一的保密性來自于初始的key。這個key理論上來說只有通訊雙方知道,但是如果第三方從某種途徑獲得了這個key,那么第三方可以毫不費力地用RC4來解密他截獲到的加密字符串了。
? ? 第三方如何得到這個key呢?家賊難防,有人泄露給競爭對手,那實在是沒辦法的事情,趕緊換key吧;同時,第三方也可以不依賴于間諜,直接暴力破解,成功率應(yīng)該不低。 ? ? 暴力破解的前提是,需要知道一些正確的解密結(jié)果。就是知道:若干加密串(或是加密串片段)對應(yīng)的原文,這樣才可以驗證暴力破解是否成功。如果RC4只是用于有限個個體間通訊,那么破解方要獲得這些先驗的正確結(jié)果可能比較困難,但如果你提供服務(wù)的對象是整個互聯(lián)網(wǎng)用戶,那么想破解你的人自然可以合法地方便地獲取到很多先驗正確結(jié)果來輔助暴力破解。 ? ? 理論上來說,RC4算法是很難被破解的。RC4中用到的key是長度在[1,256]的unsigned char字符串,可能性就是256+256^2+256^3+....256^256≈256^256次方種可能性,量級在10^600以上。如果你真的設(shè)置了一個256byte(不是bit哦)的key,別人想要暴力破解幾乎是不可能的。要知道,“天河一號”每秒也不過千萬億次(10^15)運算。但是設(shè)置這么長的key,加密解密的時間也是線性增長的,所以一般使用的key至多是幾十byte而已。那這個復(fù)雜度就大大降低了,特別是現(xiàn)在分布式計算這么普及的情況下。 ? ? 最囧的是網(wǎng)上有些論文,不過是暴力破解了40bit(5byte)的RC4,居然也可以發(fā)到《計算機工程與科學(xué)》這類期刊上去,我只能呵呵了。 ? ? 那怎么樣在不顯著增加key長度的情況下,提高被人破解的難度呢? ? ? 1.定時更換key,就像網(wǎng)民應(yīng)該定時更換自己的密碼一樣。 ? ? 2.在真實原文里混雜一些隨機字符串再加密。 ? ? 3.并不把加密串直接暴露給公眾,可以對加密串做二次加密。(循環(huán)移位、字符-字符映射、按某種規(guī)則打散、再做一次RC4、等等)?http://blog.csdn.net/youxijishu/article/details/52653248
5.4 協(xié)議完整性驗證
?盡管我們對消息做了加密,但也不是萬無一失的,為了進(jìn)一步確保消息沒有被篡改,我們需要對消息的完整性進(jìn)行檢測,使用數(shù)字摘要的方式,首先客戶端對userid及之后的協(xié)議信息進(jìn)行AES加密,加密之后取它的md5值,md5值用于驗證數(shù)據(jù)的完整性。這個md5值會被傳送到服務(wù)器,如果協(xié)議信息被修改了,那個md5就會不同。
5.5 保證md5數(shù)字摘要的值的安全
為了防止非法用戶修改協(xié)議內(nèi)容后,模擬客戶端操作重新生成新的數(shù)字摘要信息,我們對生成的數(shù)字摘要信息進(jìn)行二次加密,這次使用RSA的公鑰對md5的值進(jìn)行加密,將加密的內(nèi)容和其它信息一起發(fā)送到服務(wù)器。服務(wù)器根據(jù)ip向登陸服務(wù)器拿到AES的公鑰和RSA的私鑰,先用RSA 私鑰取出客戶端加密的md5值,服務(wù)器端計算userid后面的數(shù)據(jù)的md5值,如果兩個md5值一樣,說明安全的。如果不一樣,說明用戶是非法的,加入黑名單。因為RAS使用公鑰加密,必須使用對應(yīng)的私鑰才能解密,而且不同的公鑰對應(yīng)的私鑰不同,這樣就算非法用戶重新生成了數(shù)字摘要,在服務(wù)器端也是驗證不通過的。
5.6 取出明文信息
?當(dāng)服務(wù)器收到報文后,對報文進(jìn)行數(shù)子摘要驗證通過之后,服務(wù)器端使用用戶自己對應(yīng)的AES的公鑰,解密數(shù)據(jù),獲得明文數(shù)據(jù)。為了保證安全,每個用戶的AES公鑰可能不一樣。
?
?
Message Digest Algorithm MD5(中文名為消息摘要算法第五版)為計算機安全領(lǐng)域廣泛使用的一種散列函數(shù),用以提供消息的完整性保護(hù)。該算法的文件號為RFC 1321(R.Rivest,MIT Laboratory for Computer Science and RSA Data Security Inc. April 1992)。?
MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于確保信息傳輸完整一致。是計算機廣泛使用的雜湊算法之一(又譯摘要算法、哈希算法),主流編程語言普遍已有MD5實現(xiàn)。將數(shù)據(jù)(如漢字)運算為另一固定長度值,是雜湊算法的基礎(chǔ)原理,MD5的前身有MD2、MD3和MD4。?
MD5算法具有以下特點:?
1、壓縮性:任意長度的數(shù)據(jù),算出的MD5值長度都是固定的。?
2、容易計算:從原數(shù)據(jù)計算出MD5值很容易。?
3、抗修改性:對原數(shù)據(jù)進(jìn)行任何改動,哪怕只修改1個字節(jié),所得到的MD5值都有很大區(qū)別。?
4、強抗碰撞:已知原數(shù)據(jù)和其MD5值,想找到一個具有相同MD5值的數(shù)據(jù)(即偽造數(shù)據(jù))是非常困難的。?
MD5的作用是讓大容量信息在用數(shù)字簽名軟件簽署私人密鑰前被"壓縮"成一種保密的格式(就是把一個任意長度的字節(jié)串變換成一定長的十六進(jìn)制數(shù)字串)。除了MD5以外,其中比較有名的還有sha-1、RIPEMD以及Haval等。?
posted on 2016-11-10 12:24 時空觀察者9號 閱讀(...) 評論(...) 編輯 收藏
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的RAS RC4 AES 加密 MD5的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 公钥(Public Key)与私钥(Pr
- 下一篇: C#字符格式化占位符