Криптоаналіз

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

Криптоаналіз — розділ криптології, що займається математичними методами порушення конфіденційності і цілісності інформації без знання ключа.

Термін був введений американським криптографом Вільямом Ф. Фрідманом в 1920 році.

У більшості випадків під Криптоаналізом розуміється з'ясування ключа; криптоаналіз включає також методи виявлення уразливості криптографічних алгоритмів або протоколів.

Спочатку методи криптоаналізу грунтувалися на лінгвістичних закономірностях природного тексту і реалізовувалися з використанням тільки олівця та паперу. З часом в криптоаналізі наростає роль чисто математичних методів, для реалізації яких використовуються спеціалізовані криптоаналітичні комп'ютери.

Спробу розкриття конкретного шифру із застосуванням методів криптоаналізу називають криптографічною атакою на цей шифр. Криптографічну атаку, в ході якої розкрити шифр вдалося, називають зломом або розкриттям.[1]

Історія[ред.ред. код]

Основна стаття: Історія криптографії.

Криптоаналіз еволюціонував разом з розвитком криптографії: нові, більш досконалі шифри приходили на зміну вже зламаним системам кодування тільки для того, щоб криптоаналітики винайшли більш витончені методи злому систем шифрування. Поняття криптографії та криптоаналізу нерозривно пов'язані один з одним: для того, щоб створити стійку до злому систему, необхідно врахувати всі можливі способи атак на неї.

Класичний криптоаналіз[ред.ред. код]

Хоча поняття криптоаналізу було введено порівняно недавно, деякі методи злому були винайдені десятки століть тому. Першою відомою письмовою згадкою про криптоаналіз є «Манускрипт про дешифрування криптографічних повідомлень», написаний арабським вченим аль-Кінді ще в 9 столітті. У цій науковій праці міститься опис методу частотного аналізу.
Частотний аналіз - основний інструмент для злому більшості класичних шифрів перестановки або заміни. Даний метод грунтується на припущенні про існування нетривіального статистичного розподілу символів, а також їх послідовностей одночасно і у відкритому тексті, і в шифротексті. Причому даний розподіл буде зберігатися з точністю до заміни символів як в процесі шифрування, так і в процесі дешифрування. Варто відзначити, що за умови досить великої довжини шифрованого повідомлення моноалфавітні шифри легко піддаються частотному аналізу: якщо частота появи літери в мові та частота появи деякого присутнього в шифротексті символу приблизно рівні, то в цьому випадку з великою часткою ймовірності можна припустити, що даний символ і буде цієї самою літерою. Самим простим прикладом частотного аналізу може служити банальний підрахунок кількості кожного з зустрінутих символів, потім процедури ділення отриманого числа символів на кількість всіх символів в тексті і множення результату на сто, щоб представити остаточний відповідь у відсотках. Далі отримані процентні значення порівнюються з таблицею імовірнісного розподілу літер для передбачуваної мови оригіналу.

Методи криптоаналізу[ред.ред. код]

Брюс Шнайер виділяє 4 основних і 3 додаткових методи криптоаналізу, припускаючи знання криптоаналітиками алгоритму шифра:

Основні методи криптоаналізу:

  1. Атака на основі шифротексту
  2. Атака на основі відкритих текстів і відповідних шифротекстів
  3. Атака на основі підібраного відкритого тексту (можливість вибрати текст для шифрування)
  4. Атака на основі адаптивно підібраного відкритого тексту

Додаткові методи криптоаналізу:

  1. Атака на основі підібраного шифротексту
  2. Атака на основі підібраного ключа
  3. Бандитський криптоаналіз

Атаки на основі шифротексту[ред.ред. код]

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

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

Атака на основі відкритих текстів і відповідних шифротекстів[ред.ред. код]

Основна стаття: Атака з відомим відкритим текстом

Нехай у розпорядженні криптоаналітика є не тільки шифротексти, але і відповідні їм відкриті тексти.

Тоді існують два варіанти постановки задачі:

  • Знайти ключ, використаний для перетворення відкритого тексту в шифротекст
  • Створити алгоритм, здатний дешифрувати будь-яке повідомлення, закодоване за допомогою цього ключа

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

У разі злому листування можна зробити припущення, що лист має структуру типу:

  • «Привітання»
  • «Основний текст»
  • «Завершальне форма ввічливості»
  • «Підпис»

Отже, атака може бути організована шляхом підбору різних видів «Привітання» (наприклад, «Здрастуйте!», «Добрий день» і т. д.) та/або «Заключною форми ввічливості» (таких як «З повагою», «Щиро Ваш »і т. п.). Легко помітити, що дана атака сильніше атаки на основі одного лише шифротексту.

Атака на основі підібраного відкритого тексту[ред.ред. код]

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

Завдання криптоаналітика повторюють завдання для атаки на основі відкритого тексту, тобто отримати ключ шифрування, або створити дешифрувальний алгоритм для даного ключа.

Отримати вхідні дані для такого виду атаки можна, наприклад, таким чином:

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

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

Атаки на основі адаптивно підібраного відкритого тексту[ред.ред. код]

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

Примітки[ред.ред. код]

Див. також[ред.ред. код]

Посилання[ред.ред. код]

Криптоаналіз