Present — блочный шифр с размером блока 64 бита, длиной ключа 80 или 128 бит и количеством раундов 32.
Основное назначение данного шифра — использование в узкоспециализированных приборах, наподобие RFID-меток или сетей сенсоров.
Является одним из самых компактных криптоалгоритмов: существует оценка, что для аппаратной реализации PRESENT требуется приблизительно в 2,5 раза меньше логических элементов чем для AES или CLEFIA[1][2].
Основным критерием при разработке шифра была простота реализации при обеспечении средних показателей защищенности. Также важным моментом была возможность эффективной аппаратной реализации.
Представляет собой SP-сеть с 31 раундом шифрования. Каждый раунд состоит из операции XOR с раундовым ключом , состоящим из 64 бит, определяемых функцией обновления ключа.
Далее производится рассеивающее преобразование — блок пропускается через 16 одинаковых 4-битных S-блоков. Затем блок подвергается перемешивающему преобразованию (перестановке бит)[3].
S-layer
В шифре используются 16 одинаковых 4-битных S-блоков:
В качестве раундового ключа используются 64 левых бит из регистра , содержащего весь ключ. После получения раундового ключа регистр обновляется по следующему алгоритму:
round_counter
Криптоустойчивость
Дифференциальный криптоанализ
Данный шифр обладает свойством, что любая 5-раундовая дифференциальная характеристика затрагивает по меньшей мере 10 S-box`ов. Таким образом, например, для 25 раундов шифра будут задействованы как минимум 50 S-box, и вероятность характеристики не превышает . Атака на версии шифра с 16 раундами шифрования требует шифротекстов, доступов к памяти, 6-битных счетчиков и ячеек памяти для хеш-таблицы. Вероятность нахождения ключа
Линейный криптоанализ
Максимальный наклон аппроксимированной прямой для 4 раундов не превышает . Таким образом, для 28 раундов максимальный наклон будет . Поэтому, если учесть, что для взлома 31 раунда необходима аппроксимация для 28, то понадобится известных пар текст-шифротекст, что превышает размер возможного теста для шифрования.
Другие методы
Алгебраическая атака с использованием дифференциальных характеристик. Основная идея — представить шифр системой уравнений низкого порядка. Далее, для нескольких пар текст-шифротекст соответствующие им системы уравнений объединяются. Если в качестве этих пар выбрать пары, соответствующие некоторой характеристике с вероятностью p, то система будет верна с этой вероятностью p и решения может быть найдено при использовании пар. Ожидается, что решение такой системы проще, чем изначальной, соответствующей одной паре текст-шифротекст. Для Present-80 с 16 раундами данная атака позволяет узнать 4 бита ключа за секунд.
Метод статистического насыщения. В данной атаке используются недостатки блока перемешивания бит. Для взлома Present-80 с 24 раундами требуется пар текст-шифротекст вычислений .
Сравнение с другими шифрами
В таблице ниже приведена сравнительная характеристика шифра Present-80[4] по отношению к другим блочным и потоковым шифрам[5]: