В «Блочных шифрах Simon и Speck на 8-битных микроконтроллерах AVR» Beaulieu et al. исследовать реализацию SIMON и SPECK на младшем 8-битном микроконтроллере и сравнить производительность с другими шифрами. Atmel ATmega128 используется с 128 Кбайт программируемой флэш-памяти, 4 Кбайт SRAM и тридцатью двумя 8-битными регистрами общего назначения.
Три реализации шифрования сравниваются:
- RAM-сведение к минимуму
Эти реализации избегают использования оперативной памяти для хранения круглых клавиш путем включения предварительно развернутых круглых клавиш во флэш-память программ. Расписание обновления ключа для обновления этого расширенного ключа не предусмотрено, что делает эти реализации подходящими для приложений, в которых ключ является статическим.
- Высокая пропускная способность / низкоэнергетическая
Эти реализации включают в себя расписание ключей и развертывание достаточного количества копий функции округления в процедуре шифрования для достижения пропускной способности в пределах примерно 3% от полностью развернутой реализации. Ключ, хранящийся во флэш-памяти, используется для генерации круглых ключей, которые впоследствии сохраняются в оперативной памяти.
- Флэш-минимизирующий
Ключевое расписание включено здесь. Ограничения пространства означают, что мы можем предоставить только неполное описание этих реализаций. Однако следует отметить, что предыдущие два типа реализаций уже имеют очень скромные размеры кода.
Для того, чтобы сравнить различные шифры мера эффективности работы - ранг - используется. Ранг пропорционален пропускной способности, деленной на использование памяти.
SPECK занимает первое место для каждого блока и размера ключа, которые он поддерживает. За исключением 128-битного размера блока, SIMON занимает второе место для всех размеров блоков и ключей.
...
Неудивительно, что AES-128 имеет очень хорошую производительность на этой платформе, хотя для SPECK при одинаковом размере блоков и ключей производительность примерно в два раза выше. При одинаковом размере ключа, но с 64-битным размером блока, SIMON и SPECK достигают в два и четыре раза большей общей производительности соответственно, чем AES.
Сравнивая SPECK 128/128 с AES-128, авторы обнаруживают, что объем памяти SPECK значительно сокращается (460 байт против 970 байт), а пропускная способность лишь незначительно уменьшается (171 цикл / байт против 146 циклов / байт). Таким образом, производительность SPECK (в выбранной метрике) выше, чем у AES. Учитывая, что скорость коррелирует с потреблением энергии, авторы приходят к выводу, что «AES-128 может быть лучшим выбором в приложениях, критичных к энергии, чем SPECK 128/128 на этой платформе». Однако авторы не уверены, являются ли интенсивное использование доступа к ОЗУ (высокоскоростные реализации AES) более энергоэффективными, чем реализация SPECK на основе регистров. В любом случае может быть достигнуто значительное сокращение использования флэш-памяти, что может иметь значение для микроконтроллеров низкого уровня.
Если приложение требует высокой скорости и использование памяти не является приоритетом, AES имеет самую быструю реализацию (с использованием 1912 байт флэш-памяти, 432 байт ОЗУ) среди всех блочных шифров со 128-битным блоком и ключом, о которых мы знаем, с стоимость всего 125 циклов / байт. Ближайшим конкурентом AES является SPECK 128/128 со стоимостью 138 циклов / байт для полностью развернутой реализации. Поскольку скорость коррелирует с потреблением энергии, AES-128 может быть лучшим выбором в приложениях, критичных к энергопотреблению, чем SPECK 128/128 на этой платформе. Однако если 128-битный блок не требуется, как можно ожидать для многих приложений на 8-битном микроконтроллере, то более энергоэффективным решением (с использованием 628 байт флэш-памяти, 108 байт ОЗУ) является SPECK 64/128 с тот же размер ключа, что и у AES-128, и стоимость шифрования всего 122 такта / байт,
Кроме того, в этом выступлении есть фигура Enigma , кто мог бы противостоять шифру, который ссылается на Enigma ?