【问题标题】:What encryption method should I use on iOS Android Apps: AES128 or 3DES我应该在 iOS Android 应用上使用什么加密方法:AES128 或 3DES
【发布时间】:2011-11-26 01:35:06
【问题描述】:
客户让我选择 AES128 或 3DES 加密。
我必须在 iOS 和 Android 上推出它。
哪个更容易做?
是否有适用于 iOS 和 Android 的库?
完整或部分答案会很好(即,如果您只了解一个平台)
【问题讨论】:
标签:
android
iphone
ios
encryption
public-key-encryption
【解决方案2】:
请完整阅读本文,并随时回来发布更多 cmets 或新问题。
Cryptographic Right Answers
特别是,回答的第一个问题是:
加密数据:在 CTR(计数器)模式下使用 AES,并附加 HMAC。
AES 几乎是您所能获得的标准,并且在以下方面做得很好
在过去十年中抵抗密码攻击。使用点击率模式
避免了 ECB 模式的弱点,复杂(且容易出错)的过程
部分块的填充和取消填充(或密文窃取),
并大大降低了侧信道攻击的风险,这要归功于
输入到 AES 的数据不敏感。然而,由于
CTR 模式具有延展性,您应始终添加 HMAC 以确认
加密数据未被篡改。
回答的下一个问题是:
AES 密钥长度:使用 256 位 AES 密钥。
从理论上讲,128 位 AES 密钥对于
可预见的未来;但对于大多数应用程序的成本增加
使用 256 位密钥而不是 128 位密钥是无关紧要的,并且
增加的密钥长度提供了安全边际,以防一方
通道攻击会泄露一些但不是全部的关键位。
[编辑 1] 此外,您在问题中应用了“公钥加密”标签这一事实意味着您对密码学的理解可能会更好。另请阅读罗斯·安德森的chapter 5 of Security Engineering (PDF);它是免费的,而且非常容易访问。