Слід відмітити, що Зловмисник має додаткову можливість для того, щоб поліпшити результати свого вгадування: Учасник підкидає ідеальну монету. Формула обчислення переваги (2.1.1) не указує явно на те, як Зловмисник може скористатися цим фактом, хоча неявно відомо, що кожна з імовірності, що входить у формулу (2.1.1), ніколи не перевищить
, наприклад, імовірность події с* = Yk(m0) складає рівно . Необхідно явно вказати, як саме Зловмисник використовує додатковий ключ у формулі обчислення переваги. Застосовуючи умовну імовірность і помічаючи, що імовірность обох результатів при підкиданні ідеальної монети рівна , можна переписати формулу (2.1.1) в наступному виглядіAdv = |
Prob[0 ¬ Зловмисник(с* = Yk(m0))] –-
Prob[0 ¬ Зловмисник(с*=Yk(m1))]|. (2.2)Згідно з правилами гри Зловмиснику не дозволяється давати відповіді, які відрізняються від 0 та 1, тому неправильна відповідь є подією, додатковою по відношенню до правильної відповіді. З цього випливає наступна формула
Adv = |
Prob[0 ¬ Зловмисник(с* = Yk(m0))] –-
(1 – Prob[0 ¬ Зловмисник(с*=Yk(m0))] )|.Тобто
Prob[0 ¬ Зловмисник(с* = Yk(m0))] =
± Adv. (2.3)Формула (2.3) часто застосовується для виразу переваги алгоритму при вгадуванні результатів підкидання ідеальної монети. Отже, якщо Adv = 0, то випадкова відповідь Зловмисника має такий самий розподіл, як і результати підкидання ідеальної монети. Проте слід враховувати, що перевага завжди більше нуля. Очевидно, що формула (2.1.3) також справедлива, якщо в результатах жеребкування всі нулі замінити одиницями.
З формули (2.3) виходить, що перевага Зловмисника ніколи не перевищує
, оскільки імовірність завжди лежить в інтервалі [0,1]. Дійсно, якщо Учасник шифрує обидва початкові тексти з імовірністю , перевагу Adv, що задана формулою (2.1), є різниця імовірності сумісних подій і ніколи не перевищує . Можна відмітити, що формула (2.1.3) виглядає так, ніби Учасник підкидає несиметричну монету, наприклад, Учасник з імовірністю шифрує повідомлення m0 і з імовірністю - повідомлення m1.Досліджувана криптосистема стійка по відношенню до ігрової атаки, якщо експеримент Yk(m0) не можливо відрізнити від експерименту Yk(m1). Це означає, що при будь-якій значущій перевазі Adv не повинно існувати жодного поліноміального алгоритму розпізнавання. Інакше кажучи, перевага, з якою Зловмисник може розрізняти результати шифрування, повинна бути дуже малою величиною в порівнянні з параметром безпеки схеми шифрування, яким, як правило, є довжина ключа шифрування. Можна вважати, що перевага будь-якого поліноміального алгоритму розпізнавання, що вживається Зловмисником, задається функцією, що повільно росте, залежною від об'єму обчислювальних ресурсів. Тут термін «повільно росте» означає, що, навіть якщо Зловмисник різко збільшить об'єм своїх обчислювальних ресурсів, перевага збільшиться украй трохи.
Стійкість розглянутої системи називається семантичною стійкістю. Тобто зашифрований текст не допускає ніякого витоку корисної інформації про вихідний текст( якщо не вважати корисною інформацією довжину самого вихідного тексту) жодному зловмиснику, який має поліноміально обмежені обчислювальні ресурси.
Як і у випадку криптографічних алгоритмів, головне питання полягає в тому, наскільки стійким є той чи інший криптопротокол. Відповідь на нього можна знайти при зрівнянні цілого ряду факторів. Однак, оскільки в основі багатьох криптопротоколів лежать криптографічні алгоритми, зрозуміло, що остаточна стійкість буде не більше стійкості використовуваних криптографічних алгоритмів. Вона може бути понижена в наступних випадках:
- використання слабких криптографічних алгоритмів і некоректна реалізація деяких його складових;
- некоректна логіка роботи криптопротокола;
- некоректне використання криптографічних алгоритмів.
Труднощі першої категорії вирішуються в межах класичної криптографії. Типовим прикладом у цьому сенсі є використання слабких генераторів випадкових чисел.
Проблеми, що відносяться до другої категорії, найбільш поширені. На практиці саме по цих «больових крапках» звичайно проводяться атаки на криптопротоколи. Активний порушник може робити вплив на функціонування криптопротоколу шляхом наступних атак:
- атака з відомим ключем. Зловмисник, одержавши ключ попередньої сесії, намагається дізнатися ключ нової сесії;
- повторна передача. Перехопивши в попередніх сесіях певну порцію інформації, зловмисник передає її в подальших сесіях;
- підміна сторони інформаційного обміну. В процесі встановлення сеансу зв'язку між легальними користувачами зловмисник у разі подібної атаки намагається видати себе за одного з них або ініціювати від імені легального користувача встановлення зв'язку;
- атака із словником. Полягає в підборі пароля, що містить слова, що найбільш часто зустрічаються, або комбінацію буква/цифра. Звичайно перетворені за допомогою неключової хэш-функції паролі зберігаються у файлах на комп'ютері. Завдання зловмисника полягає в тому, щоб одержати шуканий файл, перетворити свій словник за допомогою даної хэш-функції і провести порівняння з метою знайти співпадаючі значення;
- підміна повідомлень. Проводиться шляхом заміни під час роботи криптопротокола повідомлень або даних.
Як приклад успішної атаки такого типу розглянемо криптопротокол розподілу секретних сеансових ключів між двома учасниками інформаційного обміну. Авторами цього методу є Нідхем і Шредер. Уразливість цього криптопротоколуа вперше була виявлена Денінгом і Сакко. Кожен учасник даного протоколу повинен розділити знання свого секретного ключа з сервером аутентифікації. Протокол складається з наступних кроків:
1. А → S: А, В, Na. Учасник А посилає запит серверу S, в якому він указує, що необхідно встановити сеанс зв'язку з учасником В. У даному запиті присутні наступні значення:
- А і В – імена або ідентифікатори учасників;
- N – унікальне для даного сеансу число; використовується для запобігання повторним передачам шляхом включення його в подальші повідомлення.
2. S → A: { Na, В, Кab, { Кab, А}Kbs}Kas.Сервер відповідає повідомленням, зашифрованим на секретному ключі сервер-учасник А (Кas), в якому знаходиться сеансовий ключ (Кab), а також ще одна копія цього ключа, зашифрованого на секретному ключі сервер-учасник В (Кbs).
3. А → B: { Кab, А}Кbs Учасник В розшифровує дане повідомлення, оскільки йому відомий ключ Кbs; в результаті він одержує ключ Кab.
4. B → A: {Nb}Kab. Дане повідомлення учасник В посилає для того, щоб переконатися, що А володіє ключем Кab, і показати учаснику А своє знання Кab.
5. А → B: {Nb – 1} Кab. Учасник А доводить своє володіння ключем Кab, і на цьому протокол закінчує свою роботу, в результаті учасники А і В одержують загальний секретний сеансовий ключ Кab.
Уразливість даного криптопротокола полягає в тому, що якщо сеансовий ключ К1ab із попередньої сесії був скомпрометований, то зловмисник (позначимо його через З), що дістав можливість контролю мережевого трафіку на кроці 3 нової (нескомпрометованої) сесії, перехоплює повідомлення (А → В: { Кab, A}Kbs) і замість нього посилає повідомлення (З → В: { К1ab, A}Кbs). Учасник B відповідає повідомленням (B → A: {Nb}К1ab), вважаючи, що А бажає встановити з ним нову сесію з ключем К1ab. З, одержуючи дане повідомлення, розшифровує його і відправляє В повідомлення (З → В: {Nb – 1}К1ab). Таким чином, З встановлює сесію з В від імені А.
З погляду розуміння можливих наслідків, що виникають при виявленні недоробок в логіці роботи криптопротокола, цей приклад є дуже показовим. Для усунення подібних проблем були спеціально розроблені засоби і методи аналізу коректності побудови логіки роботи криптопротоколів. Застосування формальних методів дозволяє також виявити комунікаційну надмірність в крип-топротоколах, що є важливим плюсом в умовах постійно зростаючих вимог до оперативності обробки інформації в сучасних мережах передачі даних.
Третя група атак, що істотно знижують рівень безпеки при використанні криптопротоколів, є найменш поширеною. Про це, принаймні, можна судити по частоті їх використання зловмисниками. Але з іншого боку, через їх важке виявлення, такі спроби є найбільш небезпечними, оскільки вони багато в чому залежать від математичних властивостей використовуваних криптографічних алгоритмів. Подібні вразливі місця не піддаються формальному аналізу і тому не можуть виявлятися навіть при використанні добре вивчених криптопротоколів. Особливо характерний поява «слабких крапок» при використанні асиметричних алгоритмів, оскільки вони в основному побудовані на неможливості ефективного рішення деяких математичних задач і не піддаються строгим математичним доказам і дослідженням за допомогою формальних методів.