我正在尝试将ECC整合到用于安全通信的iPhone应用程序中,但我很难找到关于如何在objective-c中执行此操作的正确库/教程。我看过这篇文章: How to use ECC in iOS 但它差不多一年前发布,没有任何回复。任何提示/建议将不胜感激
谢谢!
答案 0 :(得分:1)
不幸的是,安全转换[1](iOS应该使用的内置框架和上面提到的帖子之一)似乎不支持内置的椭圆曲线。你必须依赖ECC的非Apple实现。
答案 1 :(得分:1)
我很遗憾找不到合适的文档,但也许您可以使用Apple的CommonCrypto框架?
答案 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是否使用黑名单随机数发生器的未知数。