Present — блочний шифр з розміром блоку 64 біта, довжиною ключа 80 або 128 біт і кількістю раундів 32.
Основне призначення даного шифру — використання в спеціальних приладах, на зразок RFID міток або мереж сенсорів.
Є одним з найбільш компактних криптоалгоритмів, існує оцінка, що для апаратної реалізації PRESENT потрібно приблизно в 2.5 рази менше логічних елементів ніж для AES або CLEFIA.[1][2]
Основним критерієм при розробці шифру була простота реалізації при забезпеченні середнього рівня захищеності. Також важливим моментом була можливість ефективної апаратної реалізації.
Являє собою SP-мережу з 31 раундом шифрування. Кожен раунд складається з операції XOR з раундовим ключем , що складається з 64 біт, які визначають функцію оновлення ключа.
Далі проводиться розсіююче перетворення — блок пропускається через 16 однакових 4-бітних S-скринь. Потім блок піддається перемішуючому перетворенню (перестановка біт).[3]
S-скрині
У шифрі використовуються 16 однакових 4-бітних S-скринь:
, де — будь-які можливі вхідні і вихідні диференціали не рівні нулю.
, де .
Що таке P і ?
P-скриня
Блок, що перемішує біти, заданий наступною матрицею:
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
Зміна ключів
Як ключ раунду використовуються 64 лівих біт з регістра , який містить ввесь ключ. Після отримання ключа раунду регістр оновлюється за наступним алгоритмом:
лічильник_раунду
Криптостійкість
Диференціальний криптоаналіз
Даний шифр володіє властивістю, що будь-яка 5-раундова диференційна характеристика зачіпає щонайменше 10 S-скриньок. Таким чином, наприклад, для 25 раундів шифру будуть задіяні як мінімум 50 S-скриньок, і ймовірність характеристики не перевищує . Атака на версії шифру з 16 раундів шифрування вимагає шифротексту, доступів до пам'яті, 6-бітних лічильників і осередків пам'яті для геш-таблиці. Ймовірність знаходження ключа .
Лінійний криптоаналіз
Максимальний нахил апроксимованої прямої для чотирьох раундів не перевищує . Таким чином, для 28 раундів максимальний нахил становитиме . Тому, якщо врахувати, що для злому 31 раунду необхідна апроксимація для 28, то знадобиться відомих пар текст-шифротекст, що перевищує розмір можливого тесту для шифрування.
Інші методи
Алгебраїчна атака з використанням диференціальних характеристик. Основна ідея — представити шифр системою рівнянь нижчого порядку. Далі, для декількох пар текст-шифротекст відповідні їм системи рівнянь об'єднуються. Якщо як ці пари вибрати пари, відповідні деякій характеристиці з імовірністю p, то система справджуватиметься з цією ймовірністю p і рішення може бути знайдене при використанні пар. Очікується, що вирішення такої системи простіше, ніж початкової, відповідній одній парі текст-шифротекст. Для Present-80 з 16 раундами дана атака дозволяє дізнатися чотири біти ключа за секунд.
Метод статистичного насичення. В даній атаці використовуються недоліки блоку перемішування бітів. Для злому Present-80 з 24 раундами потрібна пара текст-шифротекст обчислень .
Порівняння з іншими шифрами
У таблиці нижче наведене порівняння характеристик шифру Present-80 з характеристиками інших блочних і потокових шифрів.[4]