Плутанина і поширення

У криптографії, плутанина і поширення (англ. confusion and diffusion) — це дві властивості дій стійкого шифру, які було означені Клодом Шенноном в його роботі Теорія зв'язку в системах з секретністю, оприлюдненій 1949.

В первинному визначені Шеннона, плутанина позначає перетворення зв'язку між відкритим текстом і шифротекстом настільки складним і заплутаним наскільки можливо; поширення посилається до тої властивості, що надлишковість у статистиці відкритого тексту «розпорошується» в статистиці шифротексту. Інакше кажучи, нерівномірність у розподілі окремих букв (і пар сусідніх букв) у відкритому тексті повинна бути перерозподілена на значно більші утворення шифротексту, тоді її буде набагато складніше виявити.

Поширення означає, що біти на виході мають залежати від бітів на вході дуже складним способом. У шифрах з хорошим поширенням, зміни одного біту відкритого тексту повинна спричиняти повну зміну шифротексту непередбачуваним і псевдовипадковим чином. Зокрема, для довільних даних на вході, за зміни i-го біту, імовірність зміни j-го біту вихідних даних має бути половиною, для будь-яких i та j — це називається суворою умовою лавиновості. Загальніше, можна вимагати, щоб зміна набору бітів на вході змінювала кожен біт на виході з імовірністю в половину. За поширення відповідають лінійні функції.

Однією з цілей плутанини є зробити дуже складним знаходження ключа навіть, якщо розшифрувальник має велику кількість пар відкритий текст-шифротекст отриманих за допомогою одного ключа. Відповідно, кожен біт шифротексту має залежати від всього ключа, при чому різним способом від різних бітів ключа. Зокрема, зміна одного біта ключа повинна змінювати шифротекст повністю. За плутанину відповідають нелінійні функції.

Найпростіший спосіб досягти плутанини і поширення це SP-мережа. В цих системах, відкритий текст і ключ часто мають подібну роль в утворені вихідних даних, отже цей підхід гарантує плутанину і розпорошення.

Джерела ред.

  • Claude E. Shannon, "Communication Theory of Secrecy Systems", Bell System Technical Journal, vol.28-4, page 656--715, 1949. [1] [Архівовано 5 червня 2007 у Wayback Machine.]
  • Wade Trappe and Lawrence C. Washington, Introduction to Cryptography with Coding Theory. Second edition. Pearson Prentice Hall, 2006.
  • William Stallings, Cryptography and Network Security, 3rd Edition, Prentice Hall, 2003