Криптографічна стійкість
Криптографі́чна сті́йкість — здатність криптографічного алгоритму протистояти криптоаналізу. Стійким вважається алгоритм, який для успішної атаки вимагає від противника недосяжних обчислювальних ресурсів, недосяжного обсягу перехоплених відкритих і зашифрованих повідомлень чи ж такого часу розкриття, що по його закінченню захищена інформація буде вже не актуальна, і т. д. У більшості випадків крипостійкість не можна математично довести, можна тільки довести уразливості криптографічного алгоритму.
Типи криптостійких систем шифрування
Абсолютно стійкі системи
Доказ існування абсолютно стійких алгоритмів шифрування було виконано Клодом Шенноном і опубліковано в роботі «Теорія зв'язку в секретних системах».[1] Там же визначено вимоги до такого роду систем:
- ключ генерується для кожного повідомлення (кожен ключ використовується один раз)
- Ключ статистично надійний (тобто ймовірності появи кожного з можливих символів рівні, символи в ключовий послідовності незалежні і випадкові)
- Довжина ключа дорівнює або більше довжини повідомлення
- Вихідний (відкритий) текст має деяку надмірність (є критерієм оцінки правильності розшифрування)
Стійкість цих систем не залежить від того, якими обчислювальними можливостями володіє криптоаналітик. Практичне застосування систем, що задовольняють вимогам абсолютної стійкості, обмежене міркуваннями вартості і зручності користування.
Деякими аналітиками стверджується, що Шифр Вернама є одночасно абсолютно криптографічно стійким і до того ж єдиним шифром, який задовольняє цій умові.
Досить стійкі системи
В основному застосовуються практично стійкі або обчислювально стійкі системи. Стійкість цих систем залежить від того, якими обчислювальними можливостями володіє криптоаналітик. Практична стійкість таких систем базується на теорії складності і оцінюється виключно на якийсь певний момент часу і послідовно із двох позицій:
- Обчислювальна складність повного перебору
- Відомі на даний момент слабкості (уразливості) та їх вплив на обчислювальну складність.
У кожному конкретному випадку можуть існувати додаткові критерії оцінки стійкості.
Оцінка криптостійкості систем шифрування
Початкова оцінка
Оскільки атака методом грубої сили (повним перебором всіх ключів) можлива для всіх типів криптографічних алгоритмів, крім абсолютно стійких «по Шеннону», для новоствореного алгоритму вона може бути єдиною існуючою. Способи її оцінки ґрунтуються на обчислювальній складності, яка потім може бути виражена у часу, грошах, і необхідній продуктивності обчислювальних ресурсів, наприклад, в MIPS. Ця оцінка поки є максимальною і мінімальною одночасно.
Поточна оцінка
Подальше дослідження алгоритму з метою пошуку слабкостей (вразливостей) (криптоаналіз) додає оцінки стійкості по відношенню до відомих криптографічних атак (Лінійний криптоаналіз, диференціальний криптоаналіз і більш специфічні) і можуть знизити відому стійкість.
Наприклад, для багатьох симетричних шифрів існують слабкі ключі та S-блоки, застосування яких знижує криптографічну стійкість. Також важливим способом перевірки стійкості є атаки на реалізацію, що виконуються для конкретного програмно-апаратно-людського комплексу.
Важливість тривалої перевірки і відкритого обговорення
Чим більш тривалим і експертним є аналіз алгоритму і реалізацій, тим більше достовірної можна вважати його стійкість. У кількох випадках тривалий і уважний аналіз приводив до зниження оцінки стійкості нижче прийнятного рівня (наприклад, в чорнових версіях FEAL). Недостатня перевірка (на думку багатьох криптографів — штучне ослаблення) алгоритму потокового шифрування А5/1 привела до успішної атаки.
Посилання
- Переклад статті Брюса Шнайера, присвяченій атакам на різні блокові шифри;
- Детально про A5/1.
Література
- Книга: Мао В.: Сучасна криптографія. Теорія і практика
- Книга: Фергюсон Н., Шнайер Б.: Практична криптографія