Алгоритм RSA для шифрования 8битных данных для контроллера

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
demiurg301
Опытный кот
Сообщения: 812
Зарегистрирован: Ср мар 18, 2009 21:14:33

Алгоритм RSA для шифрования 8битных данных для контроллера

Сообщение demiurg301 »

Собственно сабж. Может кто поделится библиотекой или ссылочкой? Нужно кодировать ASCII и байтовые данные. Пытался сам разобраться, но чота ничо не понятно. А гуглы выводят всякую заумную хрень. И не одной привязки к контроллеру.
Реклама
Аватара пользователя
md5sum
Вымогатель припоя
Сообщения: 672
Зарегистрирован: Вт окт 27, 2009 22:39:19
Откуда: Москва

Re: Алгоритм RSA для шифрования 8битных данных для контролле

Сообщение md5sum »

— Не говорите мне что делать и я не скажу куда Вам идти...
Реклама
demiurg301
Опытный кот
Сообщения: 812
Зарегистрирован: Ср мар 18, 2009 21:14:33

Re: Алгоритм RSA для шифрования 8битных данных для контролле

Сообщение demiurg301 »

:shock: :shock: :shock: Спасибо
Вообще конечно ацкая штука, а как его добавить к проекту на CVAVR? Может пример использования есть?
Аватара пользователя
md5sum
Вымогатель припоя
Сообщения: 672
Зарегистрирован: Вт окт 27, 2009 22:39:19
Откуда: Москва

Re: Алгоритм RSA для шифрования 8битных данных для контролле

Сообщение md5sum »

Это просто пример того, что гугл разместил на первой странице поиска (правда в конце) по словам AVR RSA CRYPTO.
Указанный поект написан на avr-gcc - интерфейс, а основные вычисления на ассемблере.
Думаю CVAVR должен без проблем эту библиотеку подключить (ну или с небольшими взмахами напильником).
Про примеры:
Documentation and Source code is included and some test programs
:))
— Не говорите мне что делать и я не скажу куда Вам идти...
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Satyr
Друг Кота
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

Re: Алгоритм RSA для шифрования 8битных данных для контролле

Сообщение Satyr »

demiurg301 писал(а):Собственно сабж. Может кто поделится библиотекой или ссылочкой? Нужно кодировать ASCII и байтовые данные. Пытался сам разобраться, но чота ничо не понятно. А гуглы выводят всякую заумную хрень. И не одной привязки к контроллеру.
Вобще то RSA не для шифрования непосредственно.
В AVR засунуть можно, но в самые жирные (по озу).

RSA для PKI. ЭЦП и выработка сессионных ключей.
Последний раз редактировалось Satyr Ср июн 29, 2011 21:42:37, всего редактировалось 1 раз.
Реклама
demiurg301
Опытный кот
Сообщения: 812
Зарегистрирован: Ср мар 18, 2009 21:14:33

Re: Алгоритм RSA для шифрования 8битных данных для контролле

Сообщение demiurg301 »

Я скачал архив с кучей алгоритмов и файлов. Как их подключать там не написано. Таких сырцов я много видел когда искал, даже не имею понятия с какого бока их к проекту прицепить.
Реклама
demiurg301
Опытный кот
Сообщения: 812
Зарегистрирован: Ср мар 18, 2009 21:14:33

Re: Алгоритм RSA для шифрования 8битных данных для контролле

Сообщение demiurg301 »

Вобще то RSA не для шифрования непосредственно.
В AVR засунуть можно, но в самые жирные (по озу).
Ну мне надо протокол передачи скрыть. Для этого хотел RSA, чтобы не было повторных посылок и нельзя было вычислить последовательность. А чем тогда шифровать чтобы нельзя было найти всю последовательность (текста например) зная определённые части этой последовательности. Вообще была идея магическим квадратом текст перетасовать :)) - но чото... както ...
Пишу на мегу128 лишнего ОЗУ много - килобайта полтора, ну а флеша килобайт 90 :))
Последний раз редактировалось demiurg301 Ср июн 29, 2011 21:47:36, всего редактировалось 1 раз.
Аватара пользователя
Satyr
Друг Кота
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

Re: Алгоритм RSA для шифрования 8битных данных для контролле

Сообщение Satyr »

Если американским шифрованием увлекаться, то тебе надо, видимо, AED, RC5, DES и т.п.
Можно российский GOST 28147-89, он еще суровей -)) В реализации чрезвычайно прост.
Аватара пользователя
Satyr
Друг Кота
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

Re: Алгоритм RSA для шифрования 8битных данных для контролле

Сообщение Satyr »

demiurg301 писал(а): Ну мне надо протокол передачи скрыть. Для этого хотел RSA, чтобы не было повторных посылок и нельзя было вычислить последовательность. А чем тогда шифровать чтобы нельзя было найти всю последовательность (текста например) зная определённые части этой последовательности.
Тебе чтото серьезное скрыть или так просто, от продвинутого дурака ?
Проблема обмена ключем не стоит ?
demiurg301
Опытный кот
Сообщения: 812
Зарегистрирован: Ср мар 18, 2009 21:14:33

Re: Алгоритм RSA для шифрования 8битных данных для контролле

Сообщение demiurg301 »

Защиту от продвинутого дурака.
Веду обмен между мегой и компом по GPRS. Если протокол "взломать" можно "завалить" сервак. Но кто захочет завалит и с DDoS. Но кому это надо. Предлагали реализовать SSL. Но в мегу его врятли всунешь. Даи не знаю я его.

Стоит проблема в повторяемости посылок. Т.е. можно снять и зашифрованый протокол, если анализировать ЛОГ. Т.е. в первый момент посылка А должна быть посылкой Б а во второй раз посылкой С. Т.е. нужно передавать еще и вариант шифрования. НУ или использовать открытый ключ и рендом. В теории шифрования не силён, но математику знаю :))
Аватара пользователя
md5sum
Вымогатель припоя
Сообщения: 672
Зарегистрирован: Вт окт 27, 2009 22:39:19
Откуда: Москва

Re: Алгоритм RSA для шифрования 8битных данных для контролле

Сообщение md5sum »

demiurg301 писал(а): Веду обмен между мегой и компом по GPRS. Если протокол "взломать" можно "завалить" сервак. Но кто захочет завалит и с DDoS. Но кому это надо.
GPRS модем или телефон?
Может подумать в сторону более стабильной серверной части? Что-б даже в случае публикации протокола сервак не падал?
DDoS не обсуждаем - это уже настройки огненной стены при помощи огненной воды.
Потенциальный взломщик имеет доступ к устройству или защита от "товарищей" на пути следования IP пакетов?
— Не говорите мне что делать и я не скажу куда Вам идти...
Аватара пользователя
md5sum
Вымогатель припоя
Сообщения: 672
Зарегистрирован: Вт окт 27, 2009 22:39:19
Откуда: Москва

Re: Алгоритм RSA для шифрования 8битных данных для контролле

Сообщение md5sum »

demiurg301 писал(а):Я скачал архив с кучей алгоритмов и файлов. Как их подключать там не написано. Таких сырцов я много видел когда искал, даже не имею понятия с какого бока их к проекту прицепить.
Пришел архив. Там проект для AVRStudio с winavr :) Можешь открыть и посмотреть примеры - у меня не установлена AVRStudio. С документацией там действительно слабовато.
— Не говорите мне что делать и я не скажу куда Вам идти...
demiurg301
Опытный кот
Сообщения: 812
Зарегистрирован: Ср мар 18, 2009 21:14:33

Re: Алгоритм RSA для шифрования 8битных данных для контролле

Сообщение demiurg301 »

Модем. Ну "товарищей" взять неоткуда в GPRS . Не будет же оператор или провайдер снифер для когото запускать. Протокол можно снять при передаче через UART. А потом наплодить "левых" посылок и забить БД всякой чушью.
Там проект для AVRStudio с winavr
Попробывал прицепить к пустому прожекту - "напильником" пилял пилял - а ровнее не становится :)) Нужно чтото менее привязанное среде.

ГОСТ 28147-89 - вот эта штука мне понравилась. Жестоко советских криптографоф шторило :)) Спасибо комрад Satyr попытаюсь её освоить хотябы для интереса.
Аватара пользователя
Satyr
Друг Кота
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

Re: Алгоритм RSA для шифрования 8битных данных для контролле

Сообщение Satyr »

demiurg301 писал(а): Веду обмен между мегой и компом по GPRS. Если протокол "взломать" можно "завалить" сервак. Но кто захочет завалит и с DDoS. Но кому это надо. Предлагали реализовать SSL. Но в мегу его врятли всунешь. Даи не знаю я его.
В AVRы TLS если только в атмега1280 и выше втиснется и то с существенными допущениями.
Стоит проблема в повторяемости посылок. Т.е. можно снять и зашифрованый протокол, если анализировать ЛОГ. Т.е. в первый момент посылка А должна быть посылкой Б а во второй раз посылкой С. Т.е. нужно передавать еще и вариант шифрования. НУ или использовать открытый ключ и рендом. В теории шифрования не силён, но математику знаю :))
Это достигается шифрованием с гаммированием и случайной синхропосылкой. Если на пальцах, то первым блоком в сеансе связи идет набивка с качественного датчика случайных чисел, а следующие блоки данных идут замешанные с прошлым блоком. Например
блок1 = ДСЧ()
блок2 = данные1 xor блок1
блок3 = данные2 xor блок2
и т.п.

Поскольку защита от продвинутого дурака, нагрузку на ключ и необходимость его смены не учитываем.

Да и простенького и шустрого (а так же старенького и слабенького по современным меркам) RC5 будет вполне адекватно задаче.

Ключ, я так понимаю, между приемником и передатчиком обменивается заранее доверенным образом, проблема организации этого не стоит ?
Аватара пользователя
Satyr
Друг Кота
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

Re: Алгоритм RSA для шифрования 8битных данных для контролле

Сообщение Satyr »

demiurg301 писал(а): ГОСТ 28147-89 - вот эта штука мне понравилась. Жестоко советских криптографоф шторило :))
Он многораундовый + еще S-боксы, на AVR он может стать узким местом даже при GPRS канале.
RC5 будет в несколько раз производительнее.
demiurg301
Опытный кот
Сообщения: 812
Зарегистрирован: Ср мар 18, 2009 21:14:33

Re: Алгоритм RSA для шифрования 8битных данных для контролле

Сообщение demiurg301 »

Это достигается шифрованием с гаммированием и случайной синхропосылкой. Если на пальцах, то первым блоком в сеансе связи идет набивка с качественного датчика случайных чисел, а следующие блоки данных идут замешанные с прошлым блоком. Например
блок1 = ДСЧ()
блок2 = данные1 xor блок1
блок3 = данные2 xor блок2
и т.п.

Поскольку защита от продвинутого дурака, нагрузку на ключ и необходимость его смены не учитываем.

Да и простенького и шустрого (а так же старенького и слабенького по современным меркам) RC5 будет вполне адекватно задаче.

Ключ, я так понимаю, между приемником и передатчиком обменивается заранее доверенным образом, проблема организации этого не стоит ?
Впринципе так и хотел сделать, только не знал как это называется и откуда начать :))

Нет не стоит. Думаю можно целую таблицу ключей и функций напридумывать.

Спасибо за так сказать "оформление" мысли.
Последний раз редактировалось demiurg301 Ср июн 29, 2011 23:38:25, всего редактировалось 1 раз.
Аватара пользователя
Satyr
Друг Кота
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

Re: Алгоритм RSA для шифрования 8битных данных для контролле

Сообщение Satyr »

Да, еще необходима имитовставка.
Блок то мы расшифруем, но надо еще убедиться, что расшифрован он правильно.

4-8 байт от MD5 от блока размером до ~1-16кб вполне хватит.
demiurg301
Опытный кот
Сообщения: 812
Зарегистрирован: Ср мар 18, 2009 21:14:33

Re: Алгоритм RSA для шифрования 8битных данных для контролле

Сообщение demiurg301 »

Satyr писал(а):Да, еще необходима имитовставка.
Блок то мы расшифруем, но надо еще убедиться, что расшифрован он правильно.

4-8 байт от MD5 от блока размером до ~1-16кб вполне хватит.
ээээээээ.... может CRC16 хватит ?
Аватара пользователя
Satyr
Друг Кота
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

Re: Алгоритм RSA для шифрования 8битных данных для контролле

Сообщение Satyr »

demiurg301 писал(а):
Satyr писал(а):Да, еще необходима имитовставка.
Блок то мы расшифруем, но надо еще убедиться, что расшифрован он правильно.

4-8 байт от MD5 от блока размером до ~1-16кб вполне хватит.
ээээээээ.... может CRC16 хватит ?
Если блоки небольшие - хватит.
demiurg301
Опытный кот
Сообщения: 812
Зарегистрирован: Ср мар 18, 2009 21:14:33

Re: Алгоритм RSA для шифрования 8битных данных для контролле

Сообщение demiurg301 »

Столкнулся с проблемой в шифровании через RC5. Насколько я понял он минимум для 32битных блоков, тогда как я шифрую текст, который передаю потоком и заранее не знаю размер блока данных. Т.е. ввести разбиение на блоки проблемно. Может есть алгоритм для шифрования 8 битных блоков с достаточной степенью криптостойкости?

Усё допёр как сделать. Введу отдельную процедуру логгирования с блоком в 32 байта.
Только как сделать чтобы каждый сеанс был разный ключ ? т.е. в сеансе 1 - блок данных А=abcdef , а в сеансе 2 - A=fedcba. Двусторонний протокол в связь вводить?

Чото мне это уже напоминает SSL :))
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»