Заперечне шифрування

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

Заперечне шифрування (англ. deniable encryption, також двозначне шифрування) — спосіб криптографічного перетворення, в якому зашифровуються спільно два або більше різних повідомлення на двох або більше різних ключах[1]. Цей метод забезпечує можливість правдоподібного заперечення наявності одного або групи повідомлень як таких. Сам термін «двозначне шифрування» придуманий Джуліаном Ассанджем і Ральфом Вайманном в ході роботи над Rubberhose[2] у 1997-2000 роках.

Мета[ред. | ред. код]

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

Стійкість до атак з примусом забезпечується тим, що, принаймні, одне з повідомлень не є секретним і атакуючому надається ключ, за яким розшифрування криптограми веде до розкриття цього повідомлення. При цьому процедура розшифрування виконується таким чином, що у атакуючого немає обґрунтованих доводів вважати, що з криптограммою були пов'язані ще якісь інші повідомлення. Двозначне шифрування дозволяє прочитати зашифроване повідомлення кількома осмисленими способами в залежності від використаного ключа. Іншими словами, воно дає користувачеві шанс приховати секретне повідомлення, навіть якщо його змусили розкрити один з ключів.[3]

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

Сценарій[ред. | ред. код]

Можливий сценарій виглядає так:

  1. Аліса — дружина Боба, який підозрює її у зраді. Вона хоче передати повідомлення своєму таємному коханому Карлу. Вона конструює 2 ключа: один для того, щоб зберігати в секреті, і другий, яким можна пожертвувати в критичній ситуації. Потім вона передає цей ключ (а може бути і обидва) Карлу.
  2. Слідом за цим вона пише Карлу нешкідливе повідомлення M1 про особливості життєдіяльності равликів — це повідомлення можна показати Бобу у разі, якщо він виявить їх листування, а також лист M2 Карлу, повне гарячих почуттів. Після цього вона комбінує ці два повідомлення і посилає одержаний шифротекст Карлу.
  3. Карл, використовуючи дані йому ключі, розшифровує вихідне повідомлення M2 і, при бажанні, M1.
  4. Боб виявляє повідомлення, надіслане Алісою Карлу. У пориві ревнощів він змушує Алісу розшифрувати лист.
  5. Аліса відновлює відкритий текст M1, використовуючи жертовний ключ. Таким чином у руки Бобу потрапляє нудний текст про равликів, і, так як наявність ще одного ключа тримається в таємниці, він вважає, що ніякого підозрілого змісту повідомлення не несло.

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

Реалізація[ред. | ред. код]

Алгоритми реалізації[ред. | ред. код]

Приклад 1.

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


яку ми запишемо у вигляді


відповідно до китайської теореми про залишки рішення обчислюється за наступною формулою:

нехай для розкриття при атаці призначене повідомлення . Тоді атакуючому представляються в якості ключа шифрування трійка значень . Дешифрування виконується за формулою

.

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

Приклад 2

Ключ шифрування являє собою набір підключів  та два простих числа . Шифруються два повідомлення  чисел , обчислення значення , обчислення значення за формулою , котра є рішенням системи порівнять, що в ключає в себе три порівняння:

.

Цю систему можна записати у вигляді


Відповідно до китайської теореми про залишки рішення цієї системи порівнянь обчислюється за формулою:

При атаці, атакуючому представляється в якості ключа шифрування трійка значень , за яким розшифрування виконується за формулою:

.

Виявлення[ред. | ред. код]

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

На користь наявності додаткових повідомлень у криптограммі атакуючим можуть бути пред'явлені наступні доводи:

  • Неповне використання криптограми в процесі розшифровки;
  • Наявність розгалужень у процедурі розшифрування, керованих ключем;
  • Ознаки сортування бітів криптограми у процедурі розшифрування;
  • Порушення однаковості процесу розшифрування за всіх можливих значень секретного ключа;
  • Нерівномірність впливу бітів криптограми на біти розшифрованого тексту.

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

Сучасні способи двозначного шифрування[ред. | ред. код]

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

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

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

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

Існування прихованого тома може бути виявлено з причини помилкових реалізацій, що залежать від передбачуваних криптографічних величин[4][5], або з допомогою деяких інструментів, що використовуються в юридичних цілях, здатних виявляти невипадкові зашифровані дані.[6][7] Також було припущено, що існує вразливість до тестування псевдовипадкових послідовностей за допомогою критерію Хі-квадрат (критерію Пірсона): після кожної зміни зашифровані дані повинні бути видозмінені таким чином, щоб їх розподіл правдоподібно відповідав випадковому розподілу.[8]

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

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

Контейнери без сигнатур[ред. | ред. код]

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

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

Приховані контейнери[ред. | ред. код]

Деякі продукти дозволяють створювати контейнери всередині вже існуючої суцільний випадкової послідовності даних. Наприклад, TrueCrypt може створити контейнер всередині вільного простору файлової системи іншого контейнера (вільний простір файлової системи будь-якого контейнера TrueCrypt спочатку заповнено випадковими даними).

Приховані контейнери можуть бути виявлені в деяких випадках на стадії аналізу вимкнутої системи, наприклад:

  • У разі витоку інформації про вміст схованого контейнера на незашифровані файлові системи:
    • Витоку в файл підкачки, файл сну і дампи пам'яті (crash dump);
    • Інші витоку (наприклад, списки MRU);
  • У разі витоку криптографічних ключів або паролів у файл підкачки, файл сну і дампи пам'яті;
  • У разі наявності повної або часткової копії (декількох копій) зовнішнього контейнера з ключем / паролем;
  • У випадку використання слабких ключів / паролів для схованого контейнера.

Гнучке шифрування[ред. | ред. код]

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

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

Програмне забезпечення[ред. | ред. код]

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

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

  1. Cannetti R., Dwork C., Naor M. Deniable Encryption. — Advances in Cryptology. — CRYPTO, 1997. — С. 90-104.
  2. Rubberhose cryptographically deniable transparent disk encryption system. Архів оригіналу за 2 вересня 2006. Процитовано 13 квітня 2018.
  3. А.Р.Биричевский., Н.А.Молдавян. Способ отрицаемого шифрования : []. — 2013. — № 101(2). — С. 18-21. — ISSN 2703-2600.
  4. Adal Chiriliuc. BestCrypt IV generation flaw : [арх. 21 липня 2006] : []. — 2003. — 23 October.
  5. Encrypted hard drives may not be safe: Researchers find that encryption is not all it claims to be. Архів оригіналу за 30 березня 2013. Процитовано 13 квітня 2018.
  6. TrueCrypt is now Detectable. Архів оригіналу за 8 березня 2012. Процитовано 13 квітня 2018.
  7. TCHunt, Search For TrueCrypt Volumes. Архів оригіналу за 3 квітня 2013. Процитовано 13 квітня 2018.
  8. MultiObfuscator — Manual: Architecture and chi-squared self-defense (PDF). Архів оригіналу (PDF) за 15 травня 2012. Процитовано 13 квітня 2018.
  9. Julian Assange: Physical Coercion. Архів оригіналу за 23 липня 2013. Процитовано 13 квітня 2018.
  10. Adal Chiriliuc. BestCrypt IV generation flaw : [арх. 21 липня 2006] : []. — 2003. — 23 October.
  11. Plausible Deniability. Архів оригіналу за 24 січня 2013. Процитовано 13 квітня 2018.
  12. TrueCrypt - Free Open-Source On-The-Fly Disk Encryption Software for Windows Vista/XP, Mac OS X, and Linux - Hidden Volume. Архів оригіналу за 15 жовтня 2013. Процитовано 13 квітня 2018.
  13. TrueCrypt - Free Open-Source Disk Encryption Software - Documentation - Plausible Deniability. Архів оригіналу за 16 квітня 2013. Процитовано 13 квітня 2018.

Література[ред. | ред. код]

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