ncix
@ncix
Предприниматель

Какой алгоритм шифрования оптимален для коротких блоков данных (меньше 32 бит)?

Сразу скажу, в криптографии я почти дилетант. Могу применять готовые алгоритмы.

Есть система, в которой некие данные шифруются на сервере а расшифровываются на контроллере Arduino. Зашифрованные данные пользователь вводит в контроллер с цифровой клавиатуры, ввод отображается на 8-разрядном цифровом дисплее. Чтобы не слишком мучить пользователя длину данных желательно ограничить тем же 8 разрядами, что меньше 32 бит. Ключ в данном случае будет секретным и зашитым в контроллер, его длина не слишком критична.

Абсолютное Большинство современных алгоритмов шифрования оперируют 64-битными блоками данных, что слишком много.

Посоветуйте пожалуйста алгоритм с 32-битным или даже меньше блоком и который заведется на Arduino. Или метод, как адаптировать 64-битные алгоритмы под задачу.
  • Вопрос задан
  • 3822 просмотра
Пригласить эксперта
Ответы на вопрос 4
Ocelot
@Ocelot
Раз пользователь вводит руками, поток данных совсем небольшой. Используйте одноразовые ключи (шифр Вернама). Четырехмегабайтной флешки хватит на миллион блоков. Это два года непрерывной работы, если вводить данные раз в минуту.
Ответ написан
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
Неудачная постановка задачи. Чтобы посоветовать что-то дельное нужна дополнительная информация, как минимум:
- какую цель преследует шифрование?
- как предполагается обрабатывать ошибочные данные? дублированные данные?
- какое состояние (кроме ключа) хранят/могут хранить сервер и контроллер? (например, количество зашифрованных/расшифрованных данных?)
Ответ написан
@vilgeforce
Раздолбай и программист
Сколько бит в ключе вас устроит? Вариант для <32 битов - RNG типа Mersenne twister и XOR данных с результатами его.
Ответ написан
@m0rd
Эм... Поправте меня если не так, у вас данные шифруются на сервере и расшифровываются на контроллере ключем, который там зашит. Получается ключ всегда один и не меняется?
Если не меняется, то от кого вы защищаете зашифрованные данные?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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