微小的非对称密码实现,以验证下载

时间:2010-07-21 18:31:43

标签: c++ rsa dsa

为了允许小型C ++应用程序在通过Internet连接的客户端进行自我更新,我需要一种基于公钥验证下载的机制。像DSA或RSA这样的算法似乎能够很好地完成这项工作。

但是,查看众所周知的可用库(Crypto ++,LibTomCrypt),他们最终都会生成我的二进制文件> 500k更大,而在我看来这样的逻辑可以实现几个k。是否有任何库在例如< 20k足迹?

中实施RSA / DSA哈希验证

6 个答案:

答案 0 :(得分:2)

由于我发现没有符合我特定需求的库,因此我为此创建了自己的库:http://github.com/paiq/dsa_verify。目前的实现具有大约50k的程序存储器占用空间,主要是由于包含的bignum数学库,但未来的版本可能会被剥夺更多。

答案 1 :(得分:1)

如果您只是Windows,只要您的应用程序部署在win2k或更高版本上,您就可以链接到Windows Crypto API。 Windows Crypto MSDN article.

编辑: 另一种可能的解决方案,如果你只需要验证下载没有被破坏,那么googleing就会找到this small implementation of MD5的源代码。根据上面3k编写的目标代码的read-me。

答案 2 :(得分:1)

你真的需要密码吗? 通常,要验证下载,可以使用MD5或SHA等哈希函数。也许你可以找到一个使用这些的小型图书馆。

无论哪种方式,您都可以尝试使用openssl库。但是我的机器上的.a大约是400K和250K剥离。

答案 3 :(得分:0)

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.143.3049&rep=rep1&type=pdf中描述了一个椭圆曲线库,据作者可以配置为在微控制器上只需要大约7k ROM和200字节以下的RAM

答案 4 :(得分:0)

我认为您可能会发现MIRACL库符合您的需求。

答案 5 :(得分:0)

校验和可以轻松处理这些验证工作。