是否有任何可在嵌入式系统或其他受内存限制的地方(例如引导ROM)中使用的开源密码库?我正在寻找仅可以编译所需算法的库,而将其余的排除在外。要说说包括在启动ROM中的加密实现的标准过程是什么?

我正在寻找这些实现,以便可以验证签名的二进制文件,


RSA,
DSA或
ECDSA


评论

另请参见是否存在可以为嵌入式应用程序执行RSA-2048加密的轻量级库? (我不会重复,因为要求不完全相同,并且每个问题都接受不适合另一个问题的答案)

#1 楼

您可以从此处下载OpenSSL libcrypto的源代码,并使用-带有适当的署名-启动ROM中所需的部分。

支持的算法,(根据Wikipedea):


密码



AES,河豚,山茶,SEED,CAST-128,DES,IDEA,RC2,RC4,RC5,三重DES,GOST 28147-89


加密哈希函数


MD5,MD4,MD2,SHA-1,SHA-2,RIPEMD-160,MDC-2,GOST R 34.11-94


公共密钥加密




RSA,DSA,Diffie–Hellman密钥交换,椭圆曲线,GOST R 34.10-2001



它已获得Apache / BSD许可,因此您可以在其他产品中使用它,但请注意某些国家的密码/加密技术出口限制。

评论


人们通常会这样做吗?我希望会有专门的RSA或EC库。

–user220201
15年7月30日在12:46

这取决于项目的性质和预算等,如果您正在执行“开源”,则几乎总是在预算高的商业项目中使用VxWorks或QNX之类的东西,那么它们中就有可用的库。

–史蒂夫·巴恩斯(Steve Barnes)
15年7月30日在17:22

#2 楼

Easy-ecc为我工作,在简单性方面,它比其他一切都快两个数量级。

https://github.com/esxgx/easy-ecc

我的第二个选择是libtomcrypt(+ libtommath),尽管上次尝试使用它时,我无法在32位DSP上将它迅速切成小于100 kB的二进制文件,因此对于引导程序来说可能不可行。 />

#3 楼

我将临时建议mbed TLS,以前称为PolarSSL。暂时尝试一下,因为我从未在嵌入式项目中实际使用过它。

它是由ARM维护的,旨在很好地适合于低端平台。源代码相当干净,可移植C。您可以轻松选择感兴趣的源文件,而忽略其余文件。支持RSA和ECDSA,但不支持传统的DSA。

对于开源项目,该库是根据GNU GPL(不是LGPL)许可的,这是限制性的,但是有一些例外情况允许与非GPL开源代码。还可以付费使用允许进行闭源分发的许可证。