[英]What encryption method should I use on iOS Android Apps: AES128 or 3DES
客户端给我选择了AES128或3DES加密。
我必须在iOS和Android上都推出它。
哪个会更容易做到?
是否有适用于iOS和Android的库?
全部或部分答案将是不错的选择(即,如果您只知道一个平台)
在3DES上优先使用AES128。 3DES提供的有效密钥大小为112位,而AES 128使用128位的密钥空间。
请完整阅读本文,并随时返回发表更多评论或新问题。
特别是,回答的第一个问题是:
加密数据:在CTR(计数器)模式下使用AES,然后附加HMAC。
AES尽可能地成为标准,并且在过去十年中很好地抵抗了密码攻击。 使用CTR模式可避免ECB模式的弱点,即部分块的填充和取消填充(或密文窃取)的复杂过程(以及容易出错的过程),并且由于输入了数据,因此大大降低了旁道攻击的风险对AES不敏感。 但是,由于CTR模式是可延展的,因此您应始终添加HMAC来确认加密数据未被篡改。
回答的下一个问题是:
AES密钥长度:使用256位AES密钥。
从理论上讲,在可预见的将来,128位AES密钥应该足够了。 但是对于大多数应用程序而言,使用256位密钥而不是128位密钥的增加成本微不足道,并且增加的密钥长度提供了安全余量,以防侧信道攻击泄漏了部分但不是全部密钥位。
[编辑1]另外,您对问题应用了“公共密钥加密”标签这一事实意味着您对密码学的理解可能会更好。 还请阅读Ross Anderson撰写的Security Engineering (PDF)的第5章 ; 它是免费的,并且非常易于访问。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.