Крипто-форум crprogram.16mb.com

Програмування на Object Pascal, Lazarus, криптографія, криптоаналіз, шифри, вихідні коди, вирішення задач, приклади програм

Часовий пояс: UTC десь + 2 години




Розпочати нову тему Відповісти  [ 6 повідомлень ] 
Автор Повідомлення
 Заголовок повідомлення: Практичний криптоаналіз
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 26
Давно искал ресурс в укрнете, посвященный целиком криптографии.
Посмотрим, обоснуюсь пока тут на некоторое время.

И так, закинем парочку статей.
Это давняя статья, которую я писал для одного форума.
Написанная на русском, и тут гугл-перевод, сильно не пинать. :)


Востаннє редагувалось Konrad в 21 жов 2012, 14:57, всього редагувалось 1 раз.

Повернутися наверх
  
 
 Заголовок повідомлення: Re: Практичний криптоаналіз
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 26
0. Для початку трохи теорії з педівікії:

"Криптоаналіз" (від др.-грецької мови Κρυπτός - прихований і аналіз) - наука про способи та методи отримання вхідного значення (відкритого тексту) зашифрованої інформації, не маючи доступу до секретної інформації (ключа), необхідної для цього. У більшості випадків під цим мається на увазі знаходження ключа.
В нетехнічних термінах, криптоаналіз є злам шифру (коду).
Термін був введений американським криптографом Вільямом Ф. Фрідманом у 1920 році. "


До речі, особистість досить таки суперечлива.
Просто свого часу один письменник назвав його "найбільшим фахівцем" і пішло поїхало.
Він вивів формулу ІС, його команда зламала пурпурний код (такий собі японський напів-варіант Енігми) і мабуть все ... Якщо порівнювати з досягненнями того періоду в області криптоаналізу, то в той час була зламана німецька Енігма ... як на мене більш видатна подія.

1. Що таке практичний криптоаналіз ...
Уявіть собі що ви летите в Нью-Йорк приватним літаком, стюардеси носять вам пиво ... ви летите тим маршрутом яким хочете ... ось це все теоритичний криптоаналіз.
А якщо замість польоту літаком ви опинилися серед ночі у пробитій ванні біля берегів Сомалі і по вам палить з усіх гармат 5-й флот - ось це практичний криптоаналіз.

Наприклад, для DES довжина ключа 56 біт, для повного перебору всіх можливих ключів досить перебрати 2 ^ 55 різних ключів = 36028797018963968 ~ 10 ^ 16.
Нехай є "звичайний домашній ПК".
Нехай за 1 секунду можна перебрати 100 000 000 ключів.
Тоді нам знадобиться 10 ^ 16/10 ^ 8 / (365 * 24 * 60 * 60) ~ 12 років ...
Хоча чисто теоритично ми можемо знайти 1200 інших комп'ютерів і тоді перебирати паролі будемо всього-4 дні ...

Тобто в теорії може бути багато чого, але на практиці доводиться стикатися з деякими труднощами.
Ось про методи їх подолання і хочеться поговорити. А так само написати про реально працюючі програми і методи, які кожен може застосувати на практиці.

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

3. Де можуть бути зашифровані дані?
Звичайно ж вони можуть бути всюди, але питання в тому де можемо ми їх побачити ...
Програм шифрування досить таки багато.
Наберемо в гуглі "шифрування програма скачати" і завантажити декілька для аналізу.

Цитата:
1. Ciphers all - Програма "Ciphers all 5.7" шифрує надійно і швидко будь-які файли при цьому кожен байт файлу буде зашифровано (спотворений, в залежності від коду, в якості коду використовуються від 30 до 8000 символів). Зашифрований файл можна перетворити в текстовий файл.

2. Криптосистема ГОСТ - Шифрування даних за алгоритмом ГОСТ. Закодований файл неможливо зламати ні повним перебором (тисячоліття потрібні), ні криптоаналізом. Інформація для розкодування зберігається у файли, без яких не отримати доступ до даних.


3. AES-шифрувальщик 1.0 - Програма шифрує і розшифровує файли шифром AES (Rijndael). Простенький і зрозумілий інтерфейс .. Завантажуємо.


Востаннє редагувалось Konrad в 21 жов 2012, 14:57, всього редагувалось 2 разів.

Повернутися наверх
  
 
 Заголовок повідомлення: Re: Практичний криптоаналіз
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 26
До нас може потрапити зашифрований файл, ми можемо продивитись сніфером зашифроване листування і т.д.

4. З чого почати?

І так, припустимо нам потрапив на очі зашифрований файл.
З чого почати практичний аналіз?


Є таке поняття як "бритва Оккама". Якщо перетворити його для нашого випадку, то вийде: "не треба вигадувати того що не знадобиться на даний момент, для даної задачі".
Це як слідчий, спочатку потрібно перевірити самі прості версії, а вже потім думати про причетність інопланетян.

Для початку збираємо всю інформацію, яку можемо зібрати.

Дуже важливо дізнатися алгоритм шифрування.

Дивимося на розмір файлу, якщо він один і його довжина менше 2Кб, закидаємо безглузде заняття.

ax) Для початку перевіряємо чи не закодований наш файл у невідомому нам кодуванні, тобто чи він перейменованої в скажемо ". txt" картинкою '". jpg", або ". exe" в ". pdf". Перевіряємо чи не є він битим, системним, "сміттям" від якоїсь програми, тимчасовим мотлохом або частиною якогось іншого файлу.
Припустимо отримали негативний результат, переходимо до БХ).

bx) Тепер нам потрібно перевірити файл на "випадковість". Програм, які аналізують дані на випадковість повно в інтернеті. Скачуємо якусь більш-менш нормальну з них. Для цього пункту нам не потрібен "супер-пупер" аналіз.
Якщо файл випадковий, то як правило без знання алгоритму у нас практично нульові шанси щось прочитати.
Припустимо, дані у файлі досить таки не випадкові.
Наприклад, як прикладі 2:
Цитата:
1. nm┘Аыфm├≤лв⌡Шp.4цдHтOб_⌠╔[cc,Е╬КEUЪТ7YСi┬^Kk▐-ц╔!О^╢ннЙuAХ║a░LторШ |XвРЯЗu

Цитата:
2. UЛГ╠¤n╗'ИЧ█}kUЛГ╠¤n╗'ИЧ█}kUЛГ╠¤n╗'ИЧ█}kUЛ Г╠¤n╗'ИЧ█


Востаннє редагувалось Konrad в 21 жов 2012, 14:48, всього редагувалось 1 раз.

Повернутися наверх
  
 
 Заголовок повідомлення: Re: Практичний криптоаналіз
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 26
сх) допустимо ми не знаємо алгоритм, але дані у файлі не випадкові.
Тоді є сенс (а мало що, а раптом) перевірити файл на поширені прості шифри.
Як показує досвід, це всім гаряче улюблений XOR і (набагато рідше) проста підстановка.
Як не парадоксально, але якщо набрати в гуглі "злом КСОР" то крім сміття, практично ніякої корисної інформації ..
Стійкість КСОР залежить від довжини і випадковості ключа.
Якщо довжина ключа дорівнює довжині повідомлення, і ключ абсолютно випадковий, такий шифр = шифр одноразового блокнота, і як доведено Клодом Шенном - абсолютно незламний. Але і непрактичний в реальних системах.
Для початку нам потрібно знайти довжину ключа, для цього можна використовувати ІС.
Далі кожен алфавіт розглядається як проста підстановка.
Наприклад якщо ключ к1-к2-к3:
к1-к2-к3-к1-к2-к3
p1-p2-p3-p4-p5-p6
c1-c2-c3-c4-c5-c6

Як бачимо р1 і р4 зашифровані одним і тим же байтом ключа к1;
Для досить довгого тексту все що зашифровано на позиції к1 - буде зашифровано шифром простої підстановки.
Це в загальному випадку для поліалфавітних шифрів.

Ще спосіб:
отримано n повідомлень, зашифрованних одним і тим же ключем.
довжину ключа не знаю, та й вона не потрібна в такому випадку.
Тоді всі перші символи всіх повідомлень будуть зашифровані одним і тим же символом ключа і отримаємо шифр простої підстановки.
таким методом можна зламати наприклад вище згаданий мега стійкий "Ciphers all". Там в залежності від ключа виходить гамма довжиною пару кБ. Розглядати алгоритм її отримання в загальному випадку не потрібно.
Достатньо всього то 20-30 повідомлень.

Так як такі маніпуляції в реальності доводиться робити раз на 1000 років, детально опишу пізніше.

Зазвичай, досить таки часто відомий частими шифротекст.
Наприклад, нехай до нас потрапила зашифрована КСОР картинка в форматі. Jpg:

Цитата:
/·⌠sg%4->xy;ппswo█┬xi<LЁ╩srwkrdxDx9/>a}2 x╦9пп`▄╗wКrb|||<тжdvu~iwbqsp?жьjy}dxntht5ээmc{a }twvt*цдu``kti и т.д.


Відксоримо її з першою яка потрапить на очі картинкою такому ж форматі:

Цитата:
ппasswordxxx:япeswworixy4зщs;>ArlxDx9/>a}2ЛшBx╬?вжe└╞pЛ{ktvp(

Щось перші літери нагадують :)


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


5. Отже ми перевірили прості шифри.
Зрозуміло що їх для чогось вартого ніхто використовувати не буде.

Отже переходимо на наступний етап.

Сучасний (і недуже) блокові і потокові шифри.
(АЕС, Туфіш, RС4 і подібні)

6. Помилки реалізації.
Як правило,
для блокових шифрів
-Використання ECB.
для поточних і блокових
-Використання одного і того ж ВІ (вектора ініціалізації, термін перекочував з англомовної літератури IV)

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

=== Криптосистема ГОСТ
- Шифрування даних за алгоритмом ГОСТ.

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

=== AES - шифрувальщик 1.0

Використовує ECB. Не особливо критично, але ми зможемо міняти місцями блоки, використовувати раніше отримані блоки і т.д.

Зазвичай для серйозних програм такі "дитячі" помилки не характерні.


Востаннє редагувалось Konrad в 21 жов 2012, 14:54, всього редагувалось 1 раз.

Повернутися наверх
  
 
 Заголовок повідомлення: Re: Практичний криптоаналіз
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 26
7. Переходимо на наступний рівень.
Коли система обміну повідомленнями та їх захист організовані без грубих помилок.

Найважча частина ... Зазвичай з домашнім комп'ютером та за прийнятний час ми не зможемо зламати такі шифри.
Але не все так безнадійно як малюють деякі товариші на форумах.

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


Востаннє редагувалось Konrad в 21 жов 2012, 14:54, всього редагувалось 1 раз.

Повернутися наверх
  
 
 Заголовок повідомлення: Re: Практичний криптоаналіз
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 26
8. "Якщо довго дивитися в безодню, безодня починає дивитися в тебе ..."


Повернутися наверх
  
 
Показати повідомлення за:  Сортувати по:  
Розпочати нову тему Відповісти  [ 6 повідомлень ] 

Часовий пояс: UTC десь + 2 години



cron
Роwеrеd bу рhрВB® аnd Hostinger web hosting