Present

From CryptoWiki
Jump to: navigation, search

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

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

Является одним из самых компактных криптоалгоритмов, существуют оценка, что для аппаратной реализации PRESENT требуется приблизительно в 2.5 раза меньше, чем для AES или CLEFIA.

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

Contents

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

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

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

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

S-layer

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

x 0 1 2 3 4 5 6 7 8 9 A B C D E F
S[x] C 5 6 B 9 0 A D 3 E F 8 4 7 1 2

S-box составлена таким образом, чтобы увеличить сопротивляемость линейному и дифференциальному криптоанализу. В частности: 1 formule.png — любые возможные входные и выходные дифференциалы не равные 0.

2 formule.png, где 3 formule.png.

P-layer

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

i 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
P(i) 0 16 32 48 1 17 33 49 2 18 34 50 3 19 35 51
i 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
P(i) 4 20 36 52 5 21 37 53 6 22 38 54 7 23 39 55
i 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
P(i) 8 24 40 56 9 25 41 57 10 26 42 58 11 27 43 59
i 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
P(i) 12 28 44 60 13 29 45 61 14 30 46 62 15 31 47 63

Key schedule

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

4 formule.png

5 formule.png

6 formule.pnground_counter


Раунд алгоритма изображен на рисунке.

Present.jpg

Назад