iOS中的椭圆曲线加密

时间:2013-02-17 00:20:37

标签: ios objective-c cryptography elliptic-curve

我正在尝试将ECC整合到用于安全通信的iPhone应用程序中,但我很难找到关于如何在objective-c中执行此操作的正确库/教程。我看过这篇文章: How to use ECC in iOS 但它差不多一年前发布,没有任何回复。任何提示/建议将不胜感激

谢谢!

5 个答案:

答案 0 :(得分:1)

不幸的是,安全转换[1](iOS应该使用的内置框架和上面提到的帖子之一)似乎不支持内置的椭圆曲线。你必须依赖ECC的非Apple实现。

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

答案 1 :(得分:1)

我很遗憾找不到合适的文档,但也许您可以使用Apple的CommonCrypto框架?

这个标题有希望: http://opensource.apple.com/source/CommonCrypto/CommonCrypto-60027/Source/CommonCryptoSPI/CommonECCryptor.h

答案 2 :(得分:1)

在Mac库中快速搜索椭圆曲线加密产生EllipticLicense,这是使用EC加密的Mac的产品密钥生成/验证库。它正在使用OpenSSL对EC的支持,这也是你可以做的事情。

请注意,Apple已弃用其提供的OpenSSL动态库,因为兼容性问题阻止它们保持最新状态,因此您需要抓取OpenSSL from the source并自行将其与您的应用捆绑在一起。

答案 3 :(得分:1)

根据我的经验,您可以使用Nacl Library。该库具有curve25519椭圆曲线实现。这是最先进的,最快的图书馆。

您也可以使用crypto ++。

答案 4 :(得分:-2)

这不是你要求的答案。但是,我的偏执迫使我建议你花时间真正理解ECC实现的细节。请考虑NSA back door上的此出版物。

如果您从文章中删除了以下内容,请注意:“RSA Security公开放弃了Dual_EC_DRBG”。

我查看了list of vendors that had validated various DRBG算法。似乎Apple直接为大多数平台和操作系统验证了CRT_DRBG。明确吧?不必要。如果您仔细观察,似乎有供应商已经验证了Dual EC DRBG,其技术可能已经内置到Apple产品中。如何以及在何处使用?我无法确定这一点。

例如:向下滚动到验证码309.我不确定我是否正确阅读。但我认为Cummings是(或打算成为)与ARM A8核心和iOS 5.0一起发布的Apple移动设备的OEM供应商。他们验证了他们的加密通信模块,其中包括双EC DRBG。什么时候使用?我所知道的是它说它既“启用也未启用”。什么时候?!不知道。请注意,还有其他几种DRBG“启用和未启用”。这只能降低使用概率。

似乎底线是:

  • 双EC DRBG可用于使用的加密函数 在未知数量的方案中的合格平台上的SHA。

  • 我们必须等待调查的决心才能确定 这是当局怀疑的后门。

祝你有个愉快的一天。 :)

P.S。我忍不住要关注OpenSSL。我发现this post揭示了关于如何澄清OpenSSL是否使用黑名单随机数发生器的未知数。