Современная криптография

Содержание

Слайд 2

Типы шифрования

Симметричное
Асимметричное

Типы шифрования Симметричное Асимметричное

Слайд 3

Симметричное шифрование

Ключ шифрования равен ключу расшифровки
Самые древние виды шифрования относятся к этому

Симметричное шифрование Ключ шифрования равен ключу расшифровки Самые древние виды шифрования относятся
типу
Самые известные представители – AES, DES, RC4
Для секретного ключа K
Encrypt(M,K) = C
Decrypt(C,K) = M

Слайд 4

Применения симметричного шифрования

Быстрое шифрование данных
Возможность потокового шифрования

Применения симметричного шифрования Быстрое шифрование данных Возможность потокового шифрования

Слайд 5

Асимметричное шифрование

Ключ шифрования НЕ равен ключу расшифровки
Изобретен 40 лет назад
Самые известные представители

Асимметричное шифрование Ключ шифрования НЕ равен ключу расшифровки Изобретен 40 лет назад
– RSA, ECC
Для секретной пары ключей K и K’
Encrypt(M,K) = C
Decrypt(C,K’) = M
K’!=K

Слайд 6

Применения асимметричного шифрования

Обмен ключами симметричного шифрования
Проверка подлинности

Применения асимметричного шифрования Обмен ключами симметричного шифрования Проверка подлинности

Слайд 7

Блочные шифры

Шифруют блоками постоянного размера
Все асимметричные шифры относятся к блочным
Популярные симметричные –

Блочные шифры Шифруют блоками постоянного размера Все асимметричные шифры относятся к блочным
тоже (AES, DES)
Идеальный блочный шифр являет собой шифр подстановки, заменяющий один блок текста на другой, причем взаимосвязь полностью задается ключом, однако восстановить по ней ключ невозможно

Слайд 8

Потоковые шифры

Генерируют ключевой поток
Позволяют шифровать буквально по одному биту
Шифрование часто совпадает с

Потоковые шифры Генерируют ключевой поток Позволяют шифровать буквально по одному биту Шифрование
расшифровкой
Операция шифрования обычно выглядит как
???????? – ключевой поток
⊕ – XOR (побитовое сложение по модулю 2)
MESSAGE – исходное сообщение
_____________
CIPHERTEXT – зашифрованное сообщение

Слайд 9

AES, DES и компания

Какая-то аццкая муть, является предметом изучения математиков, можно наблюдать

AES, DES и компания Какая-то аццкая муть, является предметом изучения математиков, можно наблюдать на NSUCRYPTO, например.
на NSUCRYPTO, например.

Слайд 10

Режим связывания блоков

Атаки, как правило, вообще можно осуществлять на любой блочный шифр,

Режим связывания блоков Атаки, как правило, вообще можно осуществлять на любой блочный
даже идеальный
И главное, совершенно не нужно разбираться как оно работает
Создан чтобы избежать поблочного анализа
Очевидно, что для каждого блока X для таблицы подстановки S
S(X1) == S(X2) тогда и только тогда когда X1==X2
Это беда

Слайд 11

Режим связывания блоков

ECB

CBC

PLAIN

Режим связывания блоков ECB CBC PLAIN

Слайд 12

Режим связывания блоков

В режиме CBC для шифрования:
Шифроблок Ci = E(Pi ⊕ Ci-1),

Режим связывания блоков В режиме CBC для шифрования: Шифроблок Ci = E(Pi
C0 = IV (случайный вектор инициализации)
Расшифровка Pi = Ci-1 ⊕ D(Ci)

Слайд 13

Режим связывания блоков

Напрямую из процедуры расшифровки получаем
Если Pi = Ci-1 ⊕ D(Ci)

Режим связывания блоков Напрямую из процедуры расшифровки получаем Если Pi = Ci-1
то заменяя Ci-1 мы заменяем Pi
То есть если нам известен некоторый текст скрытый за шифрованием, мы можем создать ЛЮБОЙ текст такой же длины как Pevil = Cevil ⊕ D(Ci), Cevil = Pi ⊕ Ci-1 ⊕ EVILTEXT
Вывод:
Симметричная криптография хреново подходит для проверки подлинности (еще бы)

Слайд 15

Как накосячить с модулем RSA

Использовать небольшое N (привет NSUCRYPTO)
Использовать N такое где

Как накосячить с модулем RSA Использовать небольшое N (привет NSUCRYPTO) Использовать N
|p-q| мало, тогда применяется алгоритм факторизации Ферма
Использовать N где p-1 имеет малые делители (гладкое) – применяется p-1 метод Полларда
Использовать N где p+1 имеет малые делители – метод p+1 Уильямса
Слить информацию о части бит p или q – Coppersmith method или “factoring with a hint” в CrypTool

Слайд 16

Как накосячить RSA (ещё)

 

Как накосячить RSA (ещё)

Слайд 17

Как накосячить RSA (и ещё)

Не проверять подлинность N при обмене ключами. Тогда

Как накосячить RSA (и ещё) Не проверять подлинность N при обмене ключами.
можно осуществить атаку “человек посередине” подменив N своим и расшифровывая-зашифровывая данные прозрачно для двух собеседников. Но это в CTF уже экзотика.

Слайд 18

Секундочку, но ведь RSA шифрует числа?

Ага, есть такое дело.
Чтобы перевести строку в

Секундочку, но ведь RSA шифрует числа? Ага, есть такое дело. Чтобы перевести
число достаточно просто взять составляющие ее байты и посчитать их байтами числа.
В языке Python это делается как int(‘stroka’.encode(‘hex’),16)
В обратную сторону hex(num)[2:].replace(‘L’,’’).decode(‘hex’)

Слайд 19

Полезные инструменты

Python, без него здесь почти никак
Libnum, позволяет выполнять разные математические операции,

Полезные инструменты Python, без него здесь почти никак Libnum, позволяет выполнять разные
близкие к CTF. Или gmpy/gmpy2 (как более общее решение).
Sagemath, для отчаянных. Обладает огромным списком возможностей, но странноват, большой и тормозит.
Google + site:github.com для поиска готовых скриптов
GIMP – позволяет открывать байты (расширение .data) как картинку, очень полезный инструмент для поверхностного анализа данных (энтропия “на глазок”)
Xortool, позволяет выполнять операцию xor над файлами
Имя файла: Современная-криптография.pptx
Количество просмотров: 286
Количество скачиваний: 2