在iOS中的椭圆曲线加密
我试图将ECC合并到正在用于安全通信的iPhone应用程序中,但我很难找到一个合适的库/教程来介绍如何在objective-c中执行此操作。我读过这篇文章: How to use ECC in iOS 但是它在大约一年前发布,没有任何回应。任何提示/建议将不胜感激在iOS中的椭圆曲线加密
谢谢!
不幸的是,安全性转换[1](iOS内置框架应该与上面提到的帖子一起使用)似乎不支持内置的椭圆曲线。您必须依赖在非苹果的ECC实现上。
你确定吗?苹果公司在iOS上使用ECC和AES的几乎所有加密技术。它绝对可以做到,唯一的问题是它们是否暴露给开发者。 – 2014-06-10 22:25:05
我很遗憾未能在寻找一个适当的文件,但也许你可以使用来自苹果CommonCrypto框架?
该标题是“SPI”,Apple的术语含义是专用接口。这些函数不会公开给客户端应用程序开发人员尽管如此,你可以向苹果公司提交[bug报告](http://bugreport.apple.com),如果你需要的话,他们会公开这些功能。 – 2013-05-10 08:05:10
在Mac库快速搜索椭圆曲线加密产生EllipticLicense,为Mac产品密钥生成/验证库使用EC加密。它使用OpenSSL对EC的支持,这也是你可以做的。
请注意,由于兼容性问题导致Apple停止使用其提供的OpenSSL动态库,因此Apple需要获取OpenSSL from the source并将其与您的应用程序捆绑在一起。
这不是你要求的答案。但是,我的偏执迫使我建议你花时间去真正了解你的ECC实施的细节。请在NSA back door上考虑此刊物。
如果您从文章中只看到这一点,请注意:“RSA安全公开放弃Dual_EC_DRBG”。
我回顾了list of vendors that had validated various DRBG算法。看起来好像Apple直接验证了大多数平台和操作系统的CRT_DRBG。在明确的权利?不必要。如果你仔细观察,似乎已经有供应商验证了双EC DRBG,其技术可能已经内置到Apple产品中。如何和在哪里使用?我无法确定这一点。
例如:向下滚动到验证编号309.我不确定自己是否正确阅读。但我的看法是,Cummings正在(或打算成为)以ARM A8内核和iOS 5.0分发的Apple移动设备的OEM供应商。他们验证了包含双EC DRBG的加密通信模块。何时使用?我所知道的是它说它是“启用和未启用”。什么时候?!不知道。请注意,还有其他几种DRBG“已启用且未启用”。这只能降低使用的可能性。
看来底线是:
双EC DRBG可以以在一个未知的数量的方案在符合条件的平台上使用 SHA密码功能中使用。
我们必须等待调查结果确定
这是当局怀疑的后门。
祝您有愉快的一天。 :)
P.S.我忍不住要关心OpenSSL。我发现了this post,它揭示了关于如何澄清OpenSSL是否使用黑名单随机数生成器的未知知识。
加上-1,因为NIST的发现对于一个(慢,可疑的)随机数发生器非常具体。它与例如ECIES。 – 2014-01-24 16:09:04
作为我的前辈,您可以使用Nacl Library。该库有curve25519椭圆曲线实现。这是最先进的和最快速的图书馆。
您也可以使用crypto ++。
它需要是Objective-C吗?你可以使用许多C ECC库之一吗? – 2013-02-17 01:01:48
乔尔说什么;只需使用C API并根据需要将其包装在Objective-C中即可。 NSData可以非常方便地访问缓冲区。 – bbum 2013-02-17 01:30:07
啊,这是完全合理的,只是发现这个: https://github.com/x2on/OpenSSL-for-iPhone/blob/master/include/openssl/ecdh.h 谢谢! – jrushing 2013-02-17 01:38:33