(Очень) кратко о криптографии План лекции – Отчет с RuCTF Quals 2012, пример задачи – Биты и ключи – RSA – Взлом RSA(по известному public key) – Base64(Radix-64)

Презентация:



Advertisements
Похожие презентации
RSA RSA RSA (буквенная аббревиатура от фамилий Rivest, Shamir и Adleman) криптографический алгоритм с открытым ключом, основывающийся на вычислительной.
Advertisements

Криптография: алгоритм RSA
АЛГОРИТМ RSA Шифрование с открытым ключом. Содержание Симметричный шифр Ассиметричный шифр Виды ассиметричных шифров Алгоритм RSA Алгоритм RSA Теоретические.
Шифрование с открытым ключом: Криптосистема RSA Докладчик: Евгений Сеппель (344 гр. 5/6 у.г.) Математико-механический факультет СПбГУ.
Асимметричная криптография. Проблемы и идеи. Проблемы, связанные с использованием симметричных шифров Симметричные алгоритмы обеспечивают эффективное.
ЕГЭ Урок 4 Кодирование текстовой информации. Двоичное кодирование текстовой информации в компьютере Для представления текстовой информации (прописные.
Криптосистемы с открытым ключем
Модуль 2. Математичні основи криптографії 1. Лекция 6 Криптография с использованием эллиптических кривых 1. Основные понятия 2. Способы использования.
Представление чисел в компьютере автор: Хайманова Т.Я. май 2008 г.
Применение теории кодирования в криптографии Лось Антон Васильевич.
А1 А1 (базовый уровень, время – 1 мин) Тема: Системы счисления и двоичное представление информации в памяти компьютера. Что нужно знать: перевод чисел.
ЧИСЛА В ПАМЯТИ КОМПЬЮТЕРА "Все есть число", говорили пифагорийцы, подчеркивая необычайно важную роль чисел в практической деятельности.
Выполнил студент группы 9ИнфБ101 Фоминцев.А.И. Криптография и шифрование Шифрование это способ изменения сообщения или другого документа, обеспечивающее.
Муниципальное общеобразовательное учреждение «Лицей города Троицка» Y=2*X Y=2*X+5.
Измерение информации. Алфавитный подход. Алфавитный (объемный) подход к измерению информации применяется в цифровых (компьютерных) системах хранения и.
Информация и информационные процессы. Кодирование и декодирование Для обмена информацией с другими людьми человек использует естественные языки. Наряду.
Информационные процессы Информационный процесс - совокупность последовательных действий, производимых над информацией, для получения какого-либо результата.
Представление числовой информации в ПК Мясникова О.К.
Кодирование информации Подготовила: учитель информатики Ефимова Н.Ю.
Алфавитный подход к измерению информации позволяет определить количество информации, заключенной в тексте. Множество символов, используемых при записи.
Транксрипт:

(Очень) кратко о криптографии План лекции – Отчет с RuCTF Quals 2012, пример задачи – Биты и ключи – RSA – Взлом RSA(по известному public key) – Base64(Radix-64) Арыков Никита,

RuCTF Российский CTF 70 команд предпринимало активные попытки сдать задачи Мы заняли 24 место. Сдали 9 задач: joy100, joy200 ppc200, ppc300 admin100, admin400 stegano200 reverse200 forensics400

Биты и ключи 1 Byte 8 bit, может принимать одно из 2^8 = 256 значений. Ключ Ключ секретная информация. Длина ключа Длина ключа - количество бит в ключе Если ключ десятичное число = => длина ключа 34бита Вопрос: 128-битный ключ в два раза устойчивее к взлому, чем 64-битный?

Биты и ключи НЕТ! Это распространенная ошибка. Каждый дополнительный бит удваивает количество возможных ключей и затраты на полный перебор. Ключ длиной 128 бит является в 2^64 = раз более сложным для подбора, по сравнению с ключом длиной 64 бита. Что такое brute force? Если длина ключа составляет 55 битов, это означает, что необходимо провести 2^55 итераций, что составит

RSA RSA RSA (буквенная аббревиатура от фамилий Rivest, Shamir и Adleman) криптографический алгоритм с открытым ключом, основывающийся на вычислительной сложности задачи факторизации больших целых чисел. Факторизацией натурального числа Факторизацией натурального числа называется его разложение в произведение простых множителей Криптографическая система с открытым ключом Криптографическая система с открытым ключом (Асимметричное шифрование) система шифрования, при которой public key передаётся по открытому каналу. Для расшифровки сообщения используется private key.

RSA Криптографические системы с открытым ключом используют complexity function, которые обладают следующим свойством: 1) Если известно x, то f(x) вычислить относительно просто 2) Если известно y = f(x), то для вычисления x нет простого (эффективного) пути. Задача факторизации имеет ~ экспоненциальную сложность от размера факторизуемого числа (Класс EXPTIME).

Функция Эйлера Функция Эйлера phi(n) Функция Эйлера phi(n), где n натуральное число, равна количеству натуральных чисел, меньших и взаимно простых с ним. взаимно простыми Целые числа называются взаимно простыми, если они не имеют никаких общих делителей, кроме ±1. 1) phi(p) = p 1, если p простое(то есть все натуральные числа кроме него самого) 2) phi(pq) = phi(p)*phi(q) = (p-1)*(q-1) если p и q взаимно простые

Расширенный алгоритм Евклида Расширенный алгоритма Евклида находит НОД(p,q) = GCD(p, q) = d и такие числа u, v, что p * u + q * v = d. Числа u, v - целые Если числа p и q взаимно простые, то p*u + q*v = 1

Алгоритм создания public и private keys RSA 1) Выбираются два различных случайных простых числа p и q заданного размера (например, 1024 бита каждое). 2) Вычислить их произведение n=pq, которое называется modulus(модулем). 3) Вычислить функцию Эйлера от числа n: phi(n) = (p-1)(q-1) 4) Выбирается целое число e(public key exponent) 1 < e < phi(n), взаимно простое со значением функции phi(n). 5) Вычислить число d(private key exponent), такое что e*d = 1 mod phi(n) (взаимно простое по модулю phi(n)). Вычисляется с помощью расширенного алгоритма Евклида 6) Пара {e,n} RSA public key 7) Пара {d,n} RSA private key

Пример: Алгоритм создания public и private keys RSA

RSA encrypt/decrypt Для шифрования используется RSA public key {e,n}. Для расшифрования RSA private key {d,n}.

Взлом RSA по известному public key Задача с RuCTF Quals 2012, crypto300 Условие: расшифровать 2 текста, зашифрованных алгоритмом RSA. Известно два public key и два зашифрованных сообщения Фаилы: {Huian, Siao}.mess - зашифрованные сообщения(числа в десятичной системе счисления). {Huian, Siao}.pub public keys содержащие модуль n и экспоненту e.

Взлом RSA по известному public key Huian.pub: n = e1 = Siao.pub: n = e2 = Huian.mess: Siao.mess:

Взлом RSA по известному public key 1) Производим факторизацию модуля n Используем ( не затащил) Factor( ) = * Теперь мы знаем p = q = e1 = e2 =

Взлом RSA по известному public key 2) Вычисляем функцию Эйлера sage: phi = (p-1)(q-1) phi(pq) = ) Вычисляем приватные экспоненты d1, d2 sage: d1 = e1.inverse_mod(phi) sage: d2 = e2.inverse_mod(phi) d1 = d2 = Собственно говоря всё взломали =) Осталось расшифровать

RSA восстановление исходного сообщения sage: R = IntegerModRing(n) sage: c1 = R( ) sage: c2 = R( ) sage: c2^d sage: c1^d исходное сообщение Исходное сообщение m = c^d mod n, где с зашифрованное, d приватная экспонента, n - модуль

Crypto300 В задаче необходимо было расшифровать сообщение и открыть архив, в архиве был Central Park.

Изначально для передачи электронной почты в Интернет использовался только текст (RFC822). Затем, с развитием компьютерных девайсов, потребовалась возможность передачи нетекстовой информации: аудио, видео, графических файлов, файлов приложений и т.д. Однако почтовые сервера как понимали только текст, так и остались понимать только его. Поэтому появилась необходимость каким-то образом преобразовать двоичный файл в текстовый. Тут-то и появился способ кодирования - base64. Этот способ используется в спецификации MIME (RFC ). Base64

MIME(Multipurpose Internet Mail Extension) MIME - это стандарт описания заголовков сообщений. Используя этот стандарт, в одном письме можно отправить сразу несколько различных вложений. Например, можно положить в аттачмент письма архивы, фильмы, картинки и т.д. И все это отправить получателю. Почтовая программа- получатель, понимающая MIME, совершенно свободно из файла электронной почты (который на самом деле является "обычным" текстовым файлом) сможет извлечь все фаилы. Некоторые почтовики, например Outlook Express, на радость хакерам без спроса пользователя еще и запустят вложенные в HTML-страницу скрипты.

Base64 Base64 позиционная система счисления с основанием 64. Base64, используют символы A-Z, a-z и 0-9, что составляет 62 знака, для недостающих двух знаков в разных системах используются различные символы(обычно + и /). Результирующие закодированные по Base64 данные имеют длину, большую оригинальной в соотношении 4:3, и напоминают по виду случайные символы. Здесь 64 это наибольшая степень двойки 2^6. На один символ приходится 6 бит.

Base64 Один байт цифр, от 0 до 255. Если вместо восьми бит использовать только шесть, то объем вложенной информации уменьшается до 64 цифр, от 0 до 63. Любую цифру 6-ти битового байта можно представить в виде печатного символа. Берутся три последовательных байта по восемь бит(24 бита), и побитово делятся на четыре 6-ти битных байта (24 бита). Используются только 6 младших бит, два старших бита игнорируются. В примере три числа 103, 193 и 58 были закодированы в base64 формат. В результате получили 4-х символьный string Z8E6.Двоичная информация перешла в текст по принципу 3 к 4.

Base64 Что делать, если у нас нет трех байтов? Есть только один или два! В этом случае в конец четырех символьного string'а добавляется символ =. Если не хватает (до трех) одного байта, то добавляется один символ "равно": Z8E= Если не хватает двух байт, то добавляются два символа "равно": Z8== Что радует: с символами "равно" надо разбираться только один раз - при чтении конца файла.

Radix-64 Radix-64 разновидность кодирования Base64 двоичных данных в текстовый формат, используемая в PGP. От Base64 отличается тем, что в конец добавляется контрольная сумма в 24 бита.

Пример message Subject: =?UTF-8?B?VGVzdCBiYXNlNjQ=?= Mime-Version: 1.0 X-Mailer: mPOP Web-Mail 2.19 X-Originating-IP: [ ] Date: Sun, 25 Mar :07: Content-Type: multipart/mixed; boundary="----d5UPrCVe-8Qvv7CTyheUJXp52: " d5UPrCVe-8Qvv7CTyheUJXp52: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 SGVsbG8hCgpJIGF0dGFjaGVkIGltYWdlIGFuZCB6aXAgYXJjaGl2ZSAlKQoKLS0tLS0tLS0tLS0t LS0KSGFja2Vy d5UPrCVe-8Qvv7CTyheUJXp52: Content-Type: image/png; name="=?UTF-8?B?YXR0YWNoZXJJbWFnZS5wbmc=?=" Content-Disposition: attachment Content-Transfer-Encoding: base64 iVBORw0KGgoAAAANSUhEUgAAAWkAAAHOCAIAAADVAG9PAAAAAXNSR0IArs4c6QAAAARnQU1BAACx МНОГА БУКАФ ВЫРЕЗАНО HackQuest4: Расшифровать мое послание =) Полный текст на

Литература Шнайер, Брюс. Прикладная криптография (Applied Cryptography), 2-е издание