симетричні шифри

Cімметрічние шифри

Cімметрічние шифр - спосіб шифрування, в якому для шифрування і розшифрування застосовується один і той же криптографічний ключ.
До винаходу схеми асиметричного шифрування єдиним існуючим способом було симетричне шифрування.
Ключ алгоритму повинен зберігатися в секреті обома сторонами. Ключ алгоритму вибирається сторонами до початку обміну повідомленнями.

вимоги

Повна втрата всіх статистичних закономірностей вихідного повідомлення є важливою вимогою до симетричного шифру.
Для досягнення такого шифр повинен мати «ефект лавини» - сильна зміна шіфроблока при 1бітном зміні вхідних
даних (в ідеалі повинні змінюватися значення 1/2 біт шіфроблока).

Також важливою вимогою є відсутність лінійності (тобто умови f (a) xor f (b) == f (a xor b)), в іншому випадку
полегшується застосування диференціального криптоаналізу до шифру.

Загальна схема

В даний час симетричні шифри - це:

  • блокові шифри. Обробляють інформацію блоками певної довжини (зазвичай 64, 128 біт), застосовуючи до блоку ключ в
    встановленому порядку, як правило, декількома циклами перемішування і підстановки, званими раундами.
    Результатом повторення раундів є лавинний ефект - наростаюча втрата відповідності бітів між блоками відкритих і зашифрованих даних.

  • потокові шифри, в яких шифрування проводиться над кожним бітом або байтом вихідного (відкритого) тексту з використанням гаммірованія.Поточний шифр може бути легко створений на основі блочного (наприклад, ГОСТ 28147-86 в режимі гамування), запущеного в спеціальному режимі.

    Більшість симетричних шифрів використовують складну комбінацію великої кількості підстановок і перестановок. Багато такі шифри виконуються в кілька (іноді до 80) проходів, використовуючи на кожному проході «ключ проходу». Безліч «ключів проходу» для всіх проходів називається «розкладом ключів» (key schedule). Як правило, воно створюється з ключа виконанням над ним деяких операцій, в тому числі перестановок і підстановок.

    Типовим способом побудови алгоритмів симетричного шифрування є мережа Фейстеля. Алгоритм будує схему шифрування на основі функції F (D, K), де D - порція даних, розмірів вдвічі менше блоку шифрування, а K - «ключ проходу» для даного проходу. Від функції не потрібно оборотність - зворотна їй функція може бути невідома. Переваги мережі Фейстеля - майже повний збіг дешифрування з шифруванням (єдина відмінність - зворотний порядок «ключів проходу» в розкладі), що сильно полегшує апаратну реалізацію.

    Операція перестановки перемішує біти повідомлення по якомусь закону. В апаратних реалізаціях вона тривіально реалізується як перепутиваніе провідників. Саме операції перестановки дають можливість досягнення «ефекту лавини». Операція перестановки лінійна - f (a) xor f (b) == f (a xor b)

    Операції підстановки виконуються як заміна значення якоїсь частини повідомлення (часто в 4, 6 або 8 біт) на стандартне, жорстко вбудоване в алгоритм інше число шляхом звернення до константного масиву. Операція підстановки привносить в алгоритм нелінійність.

    Найчастіше стійкість алгоритму, особливо до диференціального криптоаналізу, залежить від вибору значень в таблицях підстановки (S-блоках). Як мінімум вважається небажаним наявність нерухомих елементів S (x) = x, а також відсутність впливу якогось біта вхідного байта на якийсь біт результату - тобто випадки, коли біт результату однаковий для всіх пар вхідних слів, що відрізняються тільки в даному бите .

    параметри алгоритмів

    параметри:
  • стійкість
  • довжина ключа
  • число раундів
  • довжина оброблюваного блоку
  • складність апаратної / програмної реалізації

    Схожі статті