Крошечная реализация асимметричного шифра для проверки загрузки

Чтобы позволить маленькому приложению C++ обновлять себя в клиентах, соединенных по Интернету, я нуждаюсь в механизме, который проверяет загрузку на основе открытого ключа. Алгоритмы, такие как DSA или RSA, кажется, могут сделать это приятно.

Однако смотря на известные доступные библиотеки для этого (Crypto ++, LibTomCrypt) они все заканчивают тем, что делали мой двоичный файл> 500k больше, в то время как это кажется мне, такая логика может быть реализована в нескольких k. Есть ли какие-либо библиотеки, которые реализуют проверку хеша RSA/DSA в, скажем, <20k место?

7
задан Emiel Mols 21 July 2010 в 18:31
поделиться

6 ответов

Поскольку я не нашел библиотек, которые соответствовали бы моим конкретным потребностям, я создал для этого свою собственную библиотеку: http://github.com/paiq/dsa_verify . Текущая реализация занимает около 50 КБ памяти программ, в основном из-за включенной математической библиотеки bignum, но будущие версии могут быть лишены еще больше.

2
ответ дан 7 December 2019 в 14:28
поделиться

Вам действительно нужны шифры? Вообще, для проверки загрузки можно использовать хэш-функцию типа MD5 или SHA. Возможно, вы сможете найти небольшую библиотеку, использующую их.

В любом случае, вы можете попробовать библиотеку openssl. Однако .a на моей машине имеет размер около 400K и 250K зачеркнуто.

1
ответ дан 7 December 2019 в 14:28
поделиться

Если вы используете только windows, вы можете использовать криптографический API для windows, если ваши приложения развернуты на win2k или выше. Статья Windows Crypto MSDN.

EDIT: Другое возможное решение, если вам просто нужно проверить, что загрузка не была повреждена. Немного погуглив, вы найдете исходники этой небольшой реализации MD5.

1
ответ дан 7 December 2019 в 14:28
поделиться

В http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.143.3049&rep=rep1&type=pdf описана библиотека эллиптических кривых, которая, по мнению авторов, может быть сконфигурирован так, чтобы на микроконтроллере требовалось всего около 7 КБ ПЗУ и менее 200 байт ОЗУ

0
ответ дан 7 December 2019 в 14:28
поделиться

контрольные суммы могут легко справиться с такими заданиями по проверке.

0
ответ дан 7 December 2019 в 14:28
поделиться

Я думаю, вы можете найти библиотеку MIRACL, отвечающую вашим потребностям.

0
ответ дан 7 December 2019 в 14:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: