Методи сучасної криптографії
Матеріал з USIC Wiki
Зміст |
Лекція 1
Вимоги до безпеки інформації:
- конфіденційність
- цілісність
- аутентифікація
- контроль доступу
- мітка часу
- підпис
- неспростовність (неможливість відмови від дії)
Криптографія
Вивчення математичних технік, пов'язаних із такими аспектами безпеки інформації:
- конфінденційність
- цілісність
- аутентифікація об'єктів та походження даних
- невідмовність від дій
- не має бути прив'язки до носія інформації.
Характеристики алгоритмів:
- 1. Рівень безпеки
- 2. Функціональність
- 3. Методи використання
- 4. Продуктивність
- 5. Легкість реалізації
DES використовується для шифрування даних, генератор випадкових числел, хеш-функція.
Функції
, x - прообраз
f(x) = x2mod1050 + 1
Визнач. f - ін'єкція, якщо x1 ≠ x2 ->
f(x1) ≠ f(x2)
Визнач. f - сюр'єкція, якщо Im(f)=Y
Визнач. f - бієкція, якщо вона є сюр'єкцією і ін'єкцією
f - бієкція,
g(f(x)) = x
f − 1
Визнач. Перестановка -
3 не є дільником p-1
-
p - просте число
-
f(x) = x3modp - перестановка
Визнач. Важкооборотна функція
обчислити "легко", існує поліноміальний
алгоритм, але для "суттєво усіх"
жоден ефективний
алгоритм не в змозі знайти x':f(x') = y
Визнач. Важкооборотна функція з скеретом
f(x) обчислити "легко"
f − 1(x), якщо відома додаткова інформація (секрет), то
існує легкий алгоритм обчислення
f − 1(y)
f(x) = axmodp
- 2 11: 2 -> 22 -> 24 -> 28, (11=8+2+1), 211=28*22*21
log2(x) операцій (2 -> 22 -> 24 -> 28)
- 1)
- дискретне логарифмування
- 2) Розклад числа на прості множники
: p = 48611, q = 53993, n = 2624653723
f(x) = x3modn
- A - скінченний алфавіт
- {0; 1}, {0; 1, ..., 255}, {0, ..., 28}
- M -простір повідомлень складається з рядків символів з алфавіту A
- Елемент
-відкритий текст
- C - простір криптотекстів,
- криптотекст
- K - простір ключів
бієкція із M в C
- Ee - функція шифрування
- дешифруюча функція
- (e,d) - ключова пара
-криптосистема, весь набір є відомим
- секретною э лише пара ключів (e,d)
- Захищений канал - не можна читати, модифікувати, видаляти інформацію, що йде по ньому.
Незахищений канал - є можливість усіх або деяких з цих дій.
1. Безумовна безпека
- Довжина k ≥ довжини відкритого тексту
- m1, m2, ..., mn
- m1, m2, ..., mn
- k1, k2, ..., kn
- c1, c2, ..., cn
- ci = mi + ki mod p
2. Теоретико-складносна безпека (ідеалізація)
- O(n20)
3. Безпека, яку можна довести
- Процедура: Шифрований Текст -> Відкритий Текст є еквівалентна якійсь складній задачі
4. Обчислювана безпека
- Атаки на криптосистеми
- 1. Атака за ШТ
- 2. Атака за відомим ВТ (DES - 253)
- 3. Атака за вибраним ВТ (DES - 248)
- 4. Атака адаптивним вибором ВТ
- 5. Атака з вибраним ШТ
Лекція від 21.09.2009
Симетричні шифри
1.Шифри заміни
- Деяке повідомлення m1m2...mn
- f(mi)=ci, f:A->A
2.Шифр перестановки
- m1m2...mkmk+1...mn
- (m1m2...mkmk+1) ... mn
2.Аффіний шифр
- 0...m-1 - літери нашого алфавіту
f(mi)=(a mi + b) mod m
- Розкодування:
(ei - b)a-1 mod m, a та m взаємнопрості
- Відкритий текст (ВТ) -> Шифрований текст (ШТ)
2n -> 2n, n-біт
- 1. Взаємно однозначне відображення
- 2. Компроміс між швидкістю та ефективністю
- 3. Розсіювання (За Шенноном)
- 4. Перемішування (За Шенноном)
- Розсіювання - зміна хоча б одного біта повідомлення на вході має призводити до зміни принаймні половини бітів вихідного повідомлення.
- Перемішування - кожен біт шифрованого тексту має залежати від кожного біту Відкритого тексту та ключа.
- S - деяке лінійне перетворення якщо
, в іншому разі воно не лінійне
- Приклади лінійних перетворень
- 1. mod 2
- 2. перестановка бітів
- 3. циклічний зсув
- 4. множення двійкових векторів на невироджену матрицю
- Нелінійні перетворення
- 1. довільна заміна за таблицею
- 2. додавання двійкових векторів за модулем 2n
- 3. множення за mod 2n+1
- 4. оперований зсув x << y
- 5. обчислення оберненого елемента в скынченному полі
- 5. високочастотний ступінь нелінійності
- 6. кореляційний імунітет
- P(m & 00102)= a ≠ 1/2
- P(Ek(m) & 001002)= 1/2
- 7. відсутність особливостей шифрування
- Ek(m)=m, повернули те ж повідомлення
- fk(m)=k, повернули ключ
- 8. ітеративність
Алгоритм Rijndaell AES-2002 FIP-197
- Властивості
- 1. блочний шифр
- 2. 3 блоки довжинами 128, 192, 256
- 3. 3 ключі 128, 192, 256
a00 a10 a01 a11 a02 a12 a03 a13
Nb=4, 6, 8 - кількість стовпчиків у блоці даних Nk=4, 6, 8 - кількість стовпчиків у блоці ключів
- 1. Byte sub
- 2. Shift now
- 3. Fix column
- 4. add round key
- 5. XOR (key)
- [023, 024, 025].jpg
Лекція n-1
Хеш-функція h:
умови-Властивості:
- 1) Компресія, тобто h відображає вхід x довільної довжини у вихід Y фіксованої довжини
- 2) Ефестивність обчислення:
- хеш функція обчислюється швидше ніж m^e
Для криптографії:
підпис повідомлення: m-> h(m)->SIGN(h(m))
вимога
- а) однобічність - "стійкість прообразу"
якщо відомо Y - якийсь хеш, то має бути обчислювально нереально знайти таке повідомлення X, хеш від якого дорівнює Y. x: h(x)=y
- б) стійкість другого прообразу. Нехай відома пара: y=h(x). Має бути нереально знайти другий прообраз x'!=x: h(x)=h(x')
- в) стійкість до колізії. - Має бути нереальним знайти такі повідомлення, хеш яких збігається: x,x': h(x)=h(x')
2^(m/2) ≥ 2^80 ≥ 160
Типи функцій:
- а) х.ф-ції без ключа
- - 1. потрібна для перевірки цілісності,
- - 2. генератор псевдовипадкових бітів: h(1), h(2)... має кращі властивості від rand(2)...
- - 3. генерація ключів: k->h(k)->h(h(k)), приклад - POS - термінал
- - 4. зберігання паролів на сайтах (сіль, пассворд)
Перевірка цілісності - MDC (message detection codes)
- б) з ключем (Mac - message authentification codes)
Стандартні хеш функції та їх параметри:
MD5 (128 біт) - вихідний блок - використовується на цілісність, а не шифрування
SHA-1 (secure hash algorithm ) - блоки по 512 біт (вхід), вихід - 160 біт
SHA-256
SHA-384
SHA-512
Цифровий підпис
вимоги:
- а) незмінність документу
- б) ідентифікувати особу, що підписала документ
- в) невідмовність
З допомогою системи RSA:
дві особи - Аліса та Боб.
Для ідентифікації використаємо закритий ключ
- (E_A, D_A)
- (E_Bob, D_Bob)
Аліса обчислює C=E_Bob(D_A(M)) E_Bob() - Шифрування відкритим ключем боба
Боб дешифрує повідомлення: 1. D_Bob(C) 2.M=E_A(D_Bob(C))
Потрібно мати три об'єкти:
- Ймовірніний алгоритм генерування ключів
A: K_A - open key, K_A` - таємний ключ
- SiGN: S=SiGN(M,K_A`)
- функція перевірки підпису CHECK: CHECK(K_A, M,S)=1 -> підпис вірний
умова: CHECK(K_A, M, SIGN(M,K_A`))=1
Загрози
- а) екзистенційне фальшування - зловмисник може побудувати два повідомлення, підписи від яких збігаються: m',m : SIGN(m)=SIGN(m')
- б) вибіркове фальшування - зловмисник може підробити підпис повідомлення за власним вибором.
- в) універсальне фальшування
- г) повний злам секретного ключа
Система цифрового підпису з допомогою системи Ель-Гамаля
Потрібно зробити дешифрування з допомогою секретного ключа
- Генерування ключів:
p - просте, g: 1<g<p-1, в ідеалі - первісний корінь
a- випадкове, 1<a<p-1. h=g^a mod p
Відкритий ключ: (p,g,h) Закритий ключ: a
- Підписування:
- вибрати випадкове число r \in Z_{p=-1}^*
- обчислити s_1=g^r mod p
- обчислити r'=r^-1 mod (p-1)
- обчислити s_2=(M-a*s-1) r' mod (p-1)
(s1,s2)-підпис
- Перевірка підпису:
g^M ?= h^{s_1} s_1^{s_2} (mod p)
h^{s_1}s_1^{s_2}=g^{a*s_1}g^{r(M-a*s_1)r^-1}=a^{M+l(p-1)}=g^M mod p


