【问题标题】: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 的库?

完整或部分答案会很好(即,如果您只了解一个平台)

【问题讨论】:

  • 两种设备都支持,选择你喜欢的。对于 iOS,请查看 OpenSSL
  • 请参阅 SO 上的 this answer。使用 AES。

标签: android iphone ios encryption public-key-encryption


【解决方案1】:

首选 AES128 而不是 3DES。 3DES 提供 112 位的有效密钥大小,而 AES 128 使用 128 位的密钥空间。

http://en.wikipedia.org/wiki/Aes128

http://en.wikipedia.org/wiki/Triple_DES

【讨论】:

    【解决方案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);它是免费的,而且非常容易访问。

    【讨论】:

      猜你喜欢
      • 2010-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-07
      • 2013-01-13
      • 1970-01-01
      • 2021-10-31
      • 1970-01-01
      相关资源
      最近更新 更多