iOS常用加密演算法和比較

2021-06-29 03:49:07 字數 1564 閱讀 6769

對稱加密演算法

對稱加密演算法用來對敏感資料等資訊進行加密,常用的演算法包括:

des(data encryption standard):資料加密標準,速度較快,適用於加密大量資料的場合。

3des(triple des):是基於des,對一塊資料用三個不同的金鑰進行三次加密,強度更高。

aes(advanced encryption standard):高階加密標準,是下一代的加密演算法標準,速度快,安全級別高;

非對稱加密演算法

rsa:由 rsa 公司發明,是乙個支援變長金鑰的公共金鑰演算法,需要加密的檔案塊的長度也是可變的;

dsa(digital signature algorithm):數字簽名演算法,是一種標準的 dss(數字簽名標準);

ecc(elliptic curves cryptography):橢圓曲線密碼編碼學。

ecc和rsa相比,在許多方面都有對絕對的優勢,主要體現在以下方面:

抗攻擊性強。相同的金鑰長度,其抗攻擊性要強很多倍。

計算量小,處理速度快。ecc總的速度比rsa、dsa要快得多。

儲存空間占用小。ecc的金鑰尺寸和系統引數與rsa、dsa相比要小得多,意味著它所佔的存貯空間要小得多。這對於加密演算法在ic卡上的應用具有特別重要的意義。

頻寬要求低。當對長訊息進行加解密時,三類密碼系統有相同的頻寬要求,但應用於短訊息時ecc頻寬要求卻低得多。頻寬要求低使ecc在無線網路領域具有廣泛的應用前景。

加密演算法的選擇

由於非對稱加密演算法的執行速度比對稱加密演算法的速度慢很多,當我們需要加密大量的資料時,建議採用對稱加密演算法,提高加解密速度。

對稱加密演算法不能實現簽名,因此簽名只能非對稱演算法。

由於對稱加密演算法的金鑰管理是乙個複雜的過程,金鑰的管理直接決定著他的安全性,因此當資料量很小時,我們可以考慮採用非對稱加密演算法。

在實際的操作過程中,我們通常採用的方式是:採用非對稱加密演算法管理對稱演算法的金鑰,然後用對稱加密演算法加密資料,這樣我們就整合了兩類加密演算法的優點,既實現了加密速度快的優點,又實現了安全方便管理金鑰的優點。那採用多少位的金鑰呢?rsa建議採用1024位的數字,ecc建議採用160位,aes採用128為即可。

總結

1.通過簡單的urlencode + base64編碼防止資料明文傳輸

2 對普通請求、返回資料,生成md5校驗(md5中加入動態金鑰),進行資料完整性(簡單防篡改,安全性較低,優點:快速)校驗。 

3 對於重要資料,使用rsa進行數字簽名,起到防篡改作用。

4 對於比較敏感的資料,如使用者資訊(登陸、註冊等),客戶端傳送使用rsa加密,伺服器返回使用des(aes)加密。

原因:客戶端傳送之所以使用rsa加密,是因為rsa解密需要知道伺服器私鑰,而伺服器私鑰一般盜取難度較大;如果使用des的話,可以通過破解客戶端獲取金鑰,安全性較低。而伺服器返回之所以使用des,是因為不管使用des還是rsa,金鑰(或私鑰)都儲存在客戶端,都存在被破解的風險,因此,需要採用動態金鑰,而rsa的金鑰生成比較複雜,不太適合動態金鑰,並且rsa速度相對較慢,所以選用des)

常用加密演算法比較

對稱加密演算法 加解密金鑰相同 名稱 金鑰長度 運算速度 安全性 資源消耗 des56位較快低中 3des 112位或168位慢中 高aes 128 192 256位快高 低非對稱演算法 加密金鑰和解密金鑰不同 名稱 成熟度 安全性 取決於金鑰長度 運算速度 資源消耗 rsa高高 慢高dsa高高慢 ...

常用加密演算法比較

對稱加密演算法 加解密金鑰相同 名稱 金鑰長度 運算速度 安全性 資源消耗 des56位較快低中 3des 112位或168位慢中 高aes 128 192 256位快高 低非對稱演算法 加密金鑰和解密金鑰不同 名稱 成熟度 安全性 取決於金鑰長度 運算速度 資源消耗 rsa高高 慢高dsa高高慢 ...

各種加密演算法比較

演算法選擇 對稱加密 aes,非對稱加密 ecc,訊息摘要 md5,數字簽名 dsa 對稱加密演算法 加解密金鑰相同 名稱 金鑰長度 運算速度 安全性資源消耗 des56位較快低中 3des 112位或168位慢中 高aes 128 192 256位快高 低非對稱演算法 加密金鑰和解密金鑰不同 名稱...