加密演算法

鄭斑發表於2017-06-07

編碼:base64 
摘要演算法:MD5、SHA-1 
對稱加密演算法:AES、DES、3EDS 
非對稱加密演算法:RSA、DSA、ECC 
數字簽名:DSA

參考連結: 
http://www.cnblogs.com/sunxuchu/p/5483956.html 
https://www.zhihu.com/question/20839365

MD5 嚴格意義上不算加密演算法,是摘要演算法

百度百科 
http://baike.baidu.com/link?url=r_Why3Aaatbp7CTLy3VLEHJv80GU2RJ0kiLiOkbfHLRewa_3Lsr2hMjS72sRtX9XToAertDN20FQXy4ENVv_Mq

訊息摘要演算法:http://baike.baidu.com/view/2313810.htm#3_1

關鍵數字:512、448、64、0、1、四輪、28

大端位元組序 A=0x01234567,B=0x89ABCDEF,C=0xFEDCBA98,D=0x76543210

1、一般用於客戶端對密碼MD5加密處理,傳給伺服器,即使黑客攻擊了伺服器,明文密碼也不會被洩露(伺服器的保護) 
2、客戶端保護(如果黑客通過反編譯手段則也有可能攻破),所以單獨進行MD5還是可以通過破解網站破解的 
所以可以如下方法 
1)多次MD5 (黑客逆向解密,還是一樣) 
2)加密後加鹽再加密 (加鹽就是在固定位置拼接上一段雜亂的字串) (有規律性) 
破解步驟:解密—》鹽有規律性—》去鹽 —》解密 明文獲得 
3)先加密,後亂序 破解難度增加 因為他不知道你怎麼換的位置

MD5被衝撞一次的時間

被設計專門用來搜尋MD5衝突的機器(這臺機器在1994年的製造成本大約是一百萬美元)可以平均每24天就找到一個衝突

2004年王小云和他的研發小組通過雜湊衝撞的方式兩個不同的明文可得到相同的MD5編碼 
注意:並非是真正的破解,只是加速了雜湊衝撞

2008年 每幾秒就可以找到一對碰撞

AES

百度百科 http://baike.baidu.com/item/aes/5903 
加密原理 http://www.2cto.com/article/201112/113465.html 
http://www.mamicode.com/info-detail-514466.html

http://ios.jobbole.com/84633/

1、字型代替 類似 密保卡樣式 
2、行移位 
3、列混淆 
4、輪金鑰加

塊加密 輪詢

CBC模式 優於 ECB模式

128 金鑰和初始向量

192

256 金鑰

AES相比同類對稱加密演算法速度算是非常快,比如在有AES-NI的x86伺服器至少能達到幾百M/s的速度。安全性在可預見的未來是基本等同的,因為即使是128位也足夠複雜無法被暴力破解。現在112位密碼還在商業應用,而128位是112位的幾萬倍,所以在實務中用128位比較划算(稍節約資源)。

AES256比128大概需要多花40%的時間,用於多出的4輪round key生成以及對應的SPN操作。另外,產生256-bit的金鑰可能也需要比128位金鑰多些開銷,不過這部分開銷應該可以忽略。

安全程度自然是256比128安全,因為目前除了暴力破解,並沒有十分有效的代數攻擊方法。

針對具體的AES-256或AES-128的軟/硬體實現有特定的攻擊方式,不好一概而論。

 AES128和AES256主要區別是金鑰長度不同(分別是128bits,256bits)、加密處理輪數不同(分別是10輪,14輪),後者強度高於前者。當前AES是較為安全的公認的對稱加密演算法。

現代密碼學分為對稱加密與非對稱加密(公鑰加密),代表演算法分別有DES(現在發展為3DES)、AES與RSA等。非對稱加密演算法的資源消耗大於對稱加密。一般是進行混合加密處理,例如使用RSA進行金鑰分發、協商,使用AES進行業務資料的加解密。

base64

百度百科 http://baike.baidu.com/link?url=ar9k3wXhF2nV9mEcyrkIstCwOwQqLxhTsbAWrew4S4ECChz0gxWEUlvOI9EwelWWjROY6ycHZDh31TPFS3jpAa

關於這個編碼的規則: 
①.把3個字元變成4個字元。 
②每76個字元加一個換行符。 
③.最後的結束符也要處理。

Base64編碼要求把3個8位位元組(3*8=24)轉化為4個6位的位元組(4*6=24),之後在6位的前面補兩個0,形成8位一個位元組的形式。 如果剩下的字元不足3個位元組,則用0填充,輸出字元使用‘=’,因此編碼後輸出的文字末尾可能會出現1或2個‘=’。

為了保證所輸出的編碼位可讀字元,Base64制定了一個編碼表,以便進行統一轉換。編碼表的大小為2^6=64,這也是Base64名稱的由來。

上傳圖片

RSA

ECC


相關文章