Перейти к содержанию

Present (шифр)

Материал из Википедии — свободной энциклопедии
Present
Опубликован CHES, 2007-08-23;
Размер ключа 80 бит (Present-80), 128 бит (Present-128)
Размер блока 64 бит
Число раундов 31
Тип SP-сеть

Present — блочный шифр с размером блока 64 бита, длиной ключа 80 или 128 бит и количеством раундов 32.

Основное назначение данного шифра — использование в узкоспециализированных приборах, наподобие RFID-меток или сетей сенсоров.

Является одним из самых компактных криптоалгоритмов: существует оценка, что для аппаратной реализации PRESENT требуется приблизительно в 2,5 раза меньше логических элементов чем для AES или CLEFIA[1][2].

Данный шифр был представлен на конференции CHES 2007. Авторы: Богданов, Кнудсен, Леандр, Паар, Пошманн, Робшо, Соа, Викельсоа. Авторы работают в Orange Labs, Рурском университете в Бохуме и Датском техническом университете.

Схема шифрования

[править | править код]
Схема шифрования

Основным критерием при разработке шифра была простота реализации при обеспечении средних показателей защищенности. Также важным моментом была возможность эффективной аппаратной реализации.

Представляет собой SP-сеть с 31 раундом шифрования. Каждый раунд состоит из операции XOR с раундовым ключом Ki, состоящим из 64 бит, определяемых функцией обновления ключа.

Далее производится рассеивающее преобразование — блок пропускается через 16 одинаковых 4-битных S-блоков. Затем блок подвергается перемешивающему преобразованию (перестановке бит)[3].

В шифре используются 16 одинаковых 4-битных S-блоков:

x0123456789ABCDEF
S[x]C56B90AD3EF84712

S-box составлена таким образом, чтобы увеличить сопротивляемость линейному и дифференциальному криптоанализу. В частности:

  1. P(∀x∈[0,F]:S(x)+S(x+Δi)=Δo)<=4, где Δi,Δo — любые возможные входные и выходные дифференциалы не равные 0.
  1. P(∀x∈[0,F]:S(x)+S(x+Δi)=Δo)=0, где wt(Δi)=wt(Δo)=1.

Блок, перемешивающий биты, задан следующей матрицей:

i0123456789101112131415
P(i)0163248117334921834503193551
i16171819202122232425262728293031
P(i)4203652521375362238547233955
i32333435363738394041424344454647
P(i)824405692541571026425811274359
i48495051525354555657585960616263
P(i)12284460132945611430466215314763

В качестве раундового ключа Ki используются 64 левых бит из регистра K, содержащего весь ключ. После получения раундового ключа регистр K обновляется по следующему алгоритму:

  1. [k79k78...k1k0]=[k18k17...k20k19]
  2. [k79k78k77k76]=S[k79k78k77k76]
  3. [k19k18k17k16k15]=[k19k18k17k16k15]⊕round_counter

Криптоустойчивость

[править | править код]

Дифференциальный криптоанализ

[править | править код]

Данный шифр обладает свойством, что любая 5-раундовая дифференциальная характеристика затрагивает по меньшей мере 10 S-box`ов. Таким образом, например, для 25 раундов шифра будут задействованы как минимум 50 S-box, и вероятность характеристики не превышает 2−100. Атака на версии шифра с 16 раундами шифрования требует 264 шифротекстов, 264 доступов к памяти, 232 6-битных счетчиков и 224 ячеек памяти для хеш-таблицы. Вероятность нахождения ключа P≈0.999

Линейный криптоанализ

[править | править код]

Максимальный наклон аппроксимированной прямой для 4 раундов не превышает 127. Таким образом, для 28 раундов максимальный наклон будет 26∗(127)7=2−43. Поэтому, если учесть, что для взлома 31 раунда необходима аппроксимация для 28, то понадобится 284 известных пар текст-шифротекст, что превышает размер возможного теста для шифрования.

Другие методы

[править | править код]
  • Алгебраическая атака с использованием дифференциальных характеристик. Основная идея — представить шифр системой уравнений низкого порядка. Далее, для нескольких пар текст-шифротекст соответствующие им системы уравнений объединяются. Если в качестве этих пар выбрать пары, соответствующие некоторой характеристике δ с вероятностью p, то система будет верна с этой вероятностью p и решения может быть найдено при использовании 1p пар. Ожидается, что решение такой системы проще, чем изначальной, соответствующей одной паре текст-шифротекст. Для Present-80 с 16 раундами данная атака позволяет узнать 4 бита ключа за ≈6∗212 секунд.
  • Метод статистического насыщения. В данной атаке используются недостатки блока перемешивания бит. Для взлома Present-80 с 24 раундами требуется пар текст-шифротекст ≈260 вычислений ≈220.

Сравнение с другими шифрами

[править | править код]

В таблице ниже приведена сравнительная характеристика шифра Present-80[4] по отношению к другим блочным и потоковым шифрам[5]:

НазваниеРазмер ключаРазмер блокаПропускная способность(Kpbs)Площадь (в GE)
Present-80806411.71075
AES-12812812812.43400
Camelia12812864011350
DES566444.42309
DESXL1846444.42168
Trivium8011002599
Grain8011001294

Применение

[править | править код]

В 2012 году организации ISO и IEC включили алгоритмы PRESENT и CLEFIA в международный стандарт облегченного шифрования ISO/IEC 29192-2:2012[1][6][7].

На базе PRESENT была создана компактная хеш-функция H-PRESENT-128[8][9].

Примечания

[править | править код]
  1. 1 2 Katholieke Universiteit Leuven. Ultra-lightweight encryption method becomes international standard. Дата обращения: 28 февраля 2012. Архивировано из оригинала 6 апреля 2013 года.
  2. ↑ Masanobu Katagi, Shiho Moriai, Lightweight Cryptography for the Internet of Things Архивная копия от 23 июня 2018 на Wayback Machine, 2011
  3. ↑ Панасенко, Смагин, Облегченные алгоритмы шифрования // 2011
  4. ↑ Axel York Poschmann. Lightweight Cryptography: Cryptographic Engineering for a Pervasive World. — 2009. — [Архивировано 8 марта 2021 года.]
  5. ↑ PRESENT: An Ultra-Lightweight Block Cipher, Table 2
  6. ↑ ISO. ISO/IEC 29192-2:2012. Дата обращения: 28 февраля 2012. Архивировано из оригинала 5 апреля 2013 года.
  7. ↑ Алгоритм шифрования, предложенный как «более легкая» альтернатива AES, стал стандартом ISO Архивная копия от 27 апреля 2018 на Wayback Machine // Osp.ru, 02-2012
  8. ↑ LW-КРИПТОГРАФИЯ: ШИФРЫ ДЛЯ RFID-СИСТЕМ Архивировано 28 июля 2013 года., С. С. Агафьин // Безопасность информационных технологий № 2011-4
  9. ↑ Observations on H-PRESENT-128 Архивная копия от 17 мая 2017 на Wayback Machine, Niels Ferguson (Microsoft)