椭圆曲线encryption在iOS中

我正在尝试将ECC整合到用于安全通信的iPhone应用程序中,但是我很难find一个合适的库/教程来介绍如何在objective-c中执行此操作。 我读了这篇文章: 如何在iOS中使用ECC但是大概在一年前发布,没有任何回应。 任何提示/build议将不胜感激

谢谢!

不幸的是,安全性转换[1](iOS内置的框架应该去和上面提到的post使用)似乎不支持内置的椭圆曲线。您将不得不依靠非转换苹果执行ECC。

[1] http://developer.apple.com/library/mac/#documentation/Security/Conceptual/SecTransformPG/SecurityTransformsBasics/SecurityTransformsBasics.html

不幸的是,我找不到合适的文档,但也许你可以使用Apple的CommonCrypto框架?

这头接缝有前途: http : //opensource.apple.com/source/CommonCrypto/CommonCrypto-60027/Source/CommonCryptoSPI/CommonECCryptor.h

在Mac库中快速search椭圆曲线密码,得到了EllipticLicense ,一个使用ECencryption的Mac产品密钥生成/validation库。 它使用OpenSSL对EC的支持,这也是你可以做的事情。

请注意,由于兼容性问题,苹果已经不推荐使用他们提供的OpenSSLdynamic库,因此您需要从源代码抓取OpenSSL ,并将其与您的应用程序捆绑在一起。

作为我的前辈,你可以使用Nacl Library。 这个库有curve25519椭圆曲线的实现。 这是最先进的和最快速的图书馆。

你也可以使用crypto ++。

这不是你要求的答案。 但是,我的偏执迫使我build议你花时间去真正了解你的ECC实施的细节。 考虑这个出版物在国家安全局后门 。

如果您从这篇文章中除了这一点以外,请注意:“RSA安全公开放弃Dual_EC_DRBG”。

我回顾了已经validation了各种DRBGalgorithm的供应商列表 。 看起来好像苹果直接validation了大多数平台和操作系统的CRT_DRBG。 在明确的权利? 不必要。 如果仔细观察,似乎已经有供应商validation了双EC DRBG,其技术可能已经内置到Apple产品中。 如何和在哪里使用? 我无法确定这一点。

例如:向下滚动到validation号码309.我不确定我是否正确阅读。 但我的看法是,Cummings是(或打算成为)以ARM A8内核和iOS 5.0分发的Apple移动设备的OEM供应商。 他们validation了包含双重EC DRBG的encryption通信模块。 什么时候使用? 我所知道的是它说它是“启用和不启用”。 什么时候?! 不知道。 请注意,还有其他几种DRBG的“已启用和未启用”。 这只能降低使用的可能性。

看来底线是:

  • 双重EC DRBG可用于未知数量场景中在合格平台上使用SHA的encryption函数。

  • 我们必须等待调查的结果
    这是当局怀疑的后门。

祝你今天愉快。 🙂

PS我不禁要关心OpenSSL。 我发现这篇文章揭示了一些关于如何澄清OpenSSL是否使用黑名单随机数生成器的未知知识。

    Interesting Posts