2011-09-27 50 views
1

我已經給出了AES128或3DES加密客戶端的選擇。我不得不在iOS和Android上推出它。我應該在iOS Android應用上使用什麼加密方法:AES128或3DES

哪個更容易做到?

是否有用於iOS和Android的庫?

全部或部分答案將是巨大的(即,如果你只知道一個平臺)

+1

兩種設備都支持,請選擇您喜歡的設備。對於iOS查看[OpenSSL](http://www.openssl.org/docs/apps/ciphers.html) – Joe

+0

請參閱[本答案](http://stackoverflow.com/questions/1619212/is-des-or -3des仍然被使用今天/ 1619237#1619237)在SO上。使用AES。 – progrmr

回答

2

請閱讀這篇文章的全部,並隨時回來發表進一步的評論或新的問題。

Cryptographic Right Answers

特別是,回答非常第一個問題是:

加密數據:使用AES在CTR(計數器)模式,並追加一個HMAC。

AES的標準與您所能得到的一樣,並且在過去的十年中完成了抵禦密碼學攻擊的 。使用CTR模式 避免的ECB模式的弱點,填充和部分塊(或密文竊取)的去填充, 的複合物(和容易出錯的)工藝 和大大減少由於側信道攻擊的這樣的事實, 的風險輸入到AES的數據不敏感。但是,由於 CTR模式具有延展性,因此應始終添加HMAC以確認加密數據未被篡改。

,並回答了非常接下來的問題是:

AES密鑰長度:使用256位AES密鑰。

從理論上講,128位AES密鑰應該足夠用於 可預見的未來;但是對於大多數應用來說,使用256位密鑰而不是128位密鑰的 的增加成本是不重要的,並且增加密鑰長度提供了安全邊緣,以防通道攻擊泄漏一些但不是全部密鑰位。

[編輯1]此外,您已將「公鑰加密」標籤應用於您的問題,這意味着您對密碼學的理解可能會更好。請還請閱讀Ross Anderson的chapter 5 of Security Engineering(PDF);它是免費的,非常方便。

相關問題