在速度和安全性方面,iPhone的最佳加密算法是什么?

时间:2010-01-04 12:51:08

标签: encryption key

iPhone支持以下加密算法

enum {
    kCCAlgorithmAES128 = 0,
    kCCAlgorithmDES,            
    kCCAlgorithm3DES,           
    kCCAlgorithmCAST,           
    kCCAlgorithmRC4,
    kCCAlgorithmRC2 
};

我想只使用对称算法,因为非对称加密需要更多的计算开销。

所以我想知道列出的哪一个是最好的算法,以及为了避免过多的计算开销,还有什么是密钥长度。

3 个答案:

答案 0 :(得分:4)

密钥长度

Bruce Schneier在1999年写道:

  

更长的键长度更好,但是   只有一点。 AES会有   128位,192位和256位密钥   长度。这远远超过   在可预见的未来需要。在   事实上,我们甚至无法想象一个世界   256位强力搜索的位置   可能。它需要一些基础   物理学和我们的突破   了解宇宙。对于   公钥加密,2048位密钥   有同样的财产;更长的是   无意义的。

分组密码

AES

这是当前的标准加密算法。它被大多数人认为是安全的。如果你对密码学没有很深的了解,那就是你应该使用的。

DES

DES是AES的前身,因其密钥长度短而被视为已损坏。

3DES

是DES的变体,密钥长度更长。它仍然在使用,但有一些已知的攻击。它还没有被打破。

RC2

It's considered to be weak.

流密码

RC4

它有一些已知的漏洞,但至今仍在使用,例如在SSL中。我建议不要在新产品中使用它。

结论

使用RC4或AES,具体取决于您是否需要流或分组密码。

答案 1 :(得分:0)

在你列出的那些算法中,我相信RC4是最快的。此外,RC4的速度一旦初始化就不依赖于密钥长度。因此,您应该能够使用该密钥的最大密钥大小,而无需担心运行时成本。

答案 2 :(得分:0)

RC4可能是最快的,但它有一些安全问题。 如果安全性是一个重要因素,我建议选择AES128。 AES是标准的解决方案,并且在出色的安全性之上,您可能希望随着时间的推移实现更快,因为人们仍在积极地开展工作。也许未来的CPU也将包括对它的支持,就像新的英特尔台式机处理器一样。