Comments 14
Однако судя по статье [7] алгоритмы Hummingbird и PRESENT очень медленные.
В тех же микроконтроллерах MSP430, на которые портировались эти алгоритмы есть встроенные модули шифрования AES256, работающие на порядок быстрее.
Вызывает беспокойство, что авторы базируются на симуляции работы Enigma, которая была взломана почти век назад. При этом они прямо пишут, что делали резистентность алгоритма только к двум типам распространенных атак.
Где найти информацию о коде Дарвина?
Небольшое примечание: малоресурсность малоресурсности рознь. Шифры, заявленные как «малоресурсные» без уточнений, чаще подразумевают под этим аппаратную реализацию, и далеко не факт, что в программном виде всё будет так же хорошо (вот и выше упомянута низкая производительность на MSP430). Некоторые примитивы отлично ложатся на аппаратуру, но не очень - на софт, пример: DES и его производные полны битовых перестановок, в софте в общем случае (таблица перестановок без удобных закономерностей) такое требует O(кол-во битов) времени (достаём каждый бит и вставляем на новое место), а в железе - ровно ноль (это просто «провода соединены крест-накрест»).
«Малоресурсность в софте» - отдельный подкласс алгоритмов, основанных на операциях с байтами/словами, а не с битами, например LEA, Speck, основанные на сложении/сдвиге/xor (ARX, add/rotate/xor).
Мифриловая кольчужка — это вряд ли про малоресурсность — мифрил редок, дорог и слишком близок к балрогу, к тому же его обработка требует «очень высоких температур» — намёк на не всем доступный уровень технологий. Тут напрашивается сравнение скорее с квантовыми технологиями — также дорогими, по крайней мере в период зарождения, но дающими надежды на некоторое превосходство для тех, кто вовремя спохватится. Но балрог уже пробуждается.
AES вполне себе малоресурсный, имеет байтовую структуру и требует на 8-битной машине минимум 1 лукап-табличку на 256 байт, а если таких табличек можно взять несколько, то производительность улучшается. Ему даже удавалось обогнать на 8-битке speck и blowfish (оба с 64-битными блоками).
Ещё одна важная часть в статье совсем не рассмотрена: дело в том, что просто шифрование мало когда нужно, ещё требуется аутентификация, т.е. подтверждение того, что по пути сообщение никто не испортил. И тут в случае применения традиционных HMAC, основанных на хешах типа MD5 -- уже получается сильное снижение производительности на 8-битках, в разы от просто шифрования. CMAC, основанный на том же алгоритме, что и само шифрование -- в 2 раза.
И тут-то возникает такая вещь, как https://en.wikipedia.org/wiki/Authenticated_encryption -- причём желательно в рамках одного алгоритма и быстро. На такую роль для 8-биток вполне может претендовать алгоритмы на базе 'криптографических губок', таких как например https://keccak.team/index.html (на чём сделан и SHA-3, например).
Смарт-карты вполне себе поддерживают многие "стандартные" алгоритмы, например, спецификация PIV-карт SP 800-78-4 предусматривает AES-128, AES-192, AES-256.
Чем ГОСТ 28147-89 не угодил? На 8-битных МК летает даже с гаммированием и имитовставками. Если памяти много (килобайты), то AES будет быстрее. Если же памяти мало (сотни байт) - ГОСТ 28147-89 выигрывает.
Малоресурсное шифрование