Крошечная реализация асимметричного шифра для проверки загрузки - PullRequest
7 голосов
/ 21 июля 2010

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

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

Ответы [ 6 ]

2 голосов
/ 23 июля 2010

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

1 голос
/ 21 июля 2010

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

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

1 голос
/ 21 июля 2010

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

РЕДАКТИРОВАТЬ: еще одно возможное решение, если вам просто нужно убедиться, что загрузка не была повреждена, быстрый поиск в Google нашел источник такой небольшойреализация MD5 .согласно read-me в верхней части 3k скомпилированного объектного кода.

0 голосов
/ 22 июля 2010

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

0 голосов
/ 22 июля 2010

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

0 голосов
/ 21 июля 2010

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

...