gpt4 book ai didi

可以在具有 32Kb 内存的 8 位设备上实现 RSA 加密吗?

转载 作者:太空宇宙 更新时间:2023-11-03 23:26:21 25 4
gpt4 key购买 nike

关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。












想改进这个问题?将问题更新为 on-topic对于堆栈溢出。

7年前关闭。




Improve this question




我正在开发一个用于 RSA 加密的库,用于微 Controller 等小型设备。我想知道是否有人已经有过做这种事情的经验。

到目前为止我已经尝试过:

我尝试的第一件事是从这个库中获取一些代码 http://axtls.sourceforge.net/ .我不想要任何 TLS 特性,因为它太复杂(而且太大)。我在从内存中加载字节时遇到问题,也许我应该使用来自它们的加载程序例程,DER 读起来很无聊,ASN1 是二进制 XML,我已经完成了 XML,我没有空间来解码 XML也。

也许我不应该使用 openssl 转储工具来获取字节,因为我不知道互操作性问题。

第二次尝试是使用库中的代码 https://github.com/wernerd/ZRTPCPP/blob/master/bnlib/bn16.c .问题是 CRT 算法太大而无法适应,即使它提供了一些性能提升,但我不需要它,因为我的数据包很小,我不会使用更长的 key 。我不能有更长的 key ,因为我没有足够的 RAM 内存。

我更喜欢有一些小图书馆。这个库也做了太多的指针间接。
从 Stackoverflow 阅读更多内容,我找到了这段代码,但我从中得到了除零,我不确定在加载大数字时是否有字节序问题。 https://github.com/Coder-666/uRSAlib/blob/master/uRSA/BN.c

这些库看起来很有希望,但我没有时间测试它们:
http://cryptopp.com/#download .
https://github.com/jedisct1/libsodium/tree/master/src/libsodium

就是这样,我需要尽快完成,因为我几乎没有时间了,如果有人知道一些真正适用于 8 位小东西的小型 RSA 库,我将不胜感激,否则我将只使用 AES 和固定 key ,但这对安全性来说不是最理想的。 (更新:现在我正在探索使用 ECC 曲线,因为它们使用固定数量的内存并且也需要更少的内存,根据本文 http://eprint.iacr.org/2013/375.pdf )

问题:

是否可以在不到 15Kb 的 PIC 十六进制代码中实现 RSA 加密,或者是否有一些已知的库可以做到这一点?

引用:

encryption : RSA algorithm

How to encrypt a string using public key cryptography

Library for RSA implementation in pure C

Are there any very simple RSA implementation in C++

Implementation of RSA without dynamic allocation

implementing a bignum library for rsa encryption

http://en.wikipedia.org/wiki/RSA

http://www.di-mgt.com.au/rsa_alg.html#encryption
我还从 PGP 项目中查看了这个库,但它太复杂了。

http://fossies.org/dox/pgpsrc658unix-gnu/dir_d8387bb0a43f1d00e085a9a2c8a94120.html

http://www.math.mtu.edu/mathlab/COURSES/holt/dnt/phi4.html

http://cacr.uwaterloo.ca/hac/ (应用密码学,这个看起来很有前途,我正在读)。

ftp://ftp.cs.pdx.edu/smn/ipsec/skip/
值得一看的东西。

http://www.codeproject.com/Articles/14462/Build-your-own-cryptographically-safe-server-clien

http://www.codeproject.com/script/Articles/ViewDownloads.aspx?aid=8536

http://www.codeproject.com/script/Articles/ViewDownloads.aspx?aid=5266

http://www.codeproject.com/Articles/60108/BigInteger-Library

最佳答案

BigDigits图书馆 + Wikipedia为我工作。 BigDigit 库非常小(我只使用其中的 1 个头文件和 1 个源文件),但速度非常快,并且已经实现了“求幂和取模”功能,因此编码和解码非常简单。不过,我没有在微 Controller 上生成 key 。

我的代码大小(在 ARMv7 上)在 38 到 27 KB 之间,具体取决于优化。

关于可以在具有 32Kb 内存的 8 位设备上实现 RSA 加密吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26433815/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com