Криптографические протоколы весна 2020 — различия между версиями

Материал из CSC Wiki
Перейти к:навигация, поиск
(Домашние задания)
 
(не показано 11 промежуточных версий 2 участников)
Строка 1: Строка 1:
 
Преподаватель: Афанасьева Александра
 
Преподаватель: Афанасьева Александра
 +
 +
alra@k36.org
 +
 +
'''Объявление! Дистанционный экзамен.'''
 +
 +
Завтра 25.03 на 10:30 назначен экзамен по курсу "Криптографические протоколы". Экзамен будет проходить удаленно через видео чат по skype (alra_afa) или google(alraafa@gmail.com), смотря где у вас есть аккаунт.
 +
В начале экзамена пишите мне в чат номер билета (с 1 по 18), я вышлю вам задание, когда будете готовы отвечать, напишите мне сообщение и ждите вызов. Убедительная просьба не пользоваться доп. материалами при подготовке!
 +
Результаты решения практической части всем выслала на почту.
  
 
== Лекции ==
 
== Лекции ==
 +
Лекция 1.
 +
 +
Основные понятия криптографии. Предмет и задачи. Определение шифра, понятие стойкости, предположения об исходных условиях криптоанализа, симметричные и асимметричные криптосистемы, хэш-функции, криптографические протоколы. История криптографии. Принцип Керкгоффса. Понятие абсолютной стойкости или теоретико-информационной стойкости.
 +
 +
Слайды: [[Медиа:Лекция1.pdf]]
 +
 +
Лекции 2 и 3. Симметричные криптосистемы. Потоковые шифры.
 +
 +
Одноразовый блокнот. Понятие псевдослучайности. Требования к поточным шифрам: Постулаты Голомба, профиль линейной сложности. Методы построения больших периодов в поточных шифрах. Статистические тесты. Применение к известным генераторам. Понятие псевдослучайного генератора (PRG) и его криптографическая стойкость. Семантическая стойкости криптосистемы.
 +
 +
Слайды: [[Медиа:Лекция2-3.pdf]]
 +
 +
 +
Лекция 4. Симметричные криптосистемы. Блоковые шифры 1.
 +
 +
Определение блокового шифра. Требования к блоковым шифрам. Различие понятий PRP и PRF. Определение стойкости. Способы построение блоковых шифров: подстановки, перестановки, сети Фейстеля. Алгоритм DES.
 +
 +
Слайды: [[Медиа:Лекция_4.pdf]]
 +
 +
 +
Лекция 5 . Симметричные криптосистемы. Блоковые шифры 2.
 +
 +
Режимы использования блочных шифров (“электронная кодовая книга”, режимы с зацеплением, режимы использования блочных шифров для получения поточных шифров). Детерминированные и недерминированные алгоритмы шифрования. Влияние случайности на стойкость. Слабости блочных шифров.
 +
 +
Слайды: [[Медиа:Лекция_5.pdf]]
 +
 +
'''Лекция 6 '''. Контроль целостности.
 +
 +
MAC. Определение, модель безопасности. Построение на базе Блоковых шифров: BCB-MAC, NMAC, PMAC.
 +
 +
Слайды: [[Медиа:Лекция6.pdf]]
 +
 +
'''Лекция 7 '''.  Хэш-функции.
 +
 +
Стойкость к колизиям. Требования к хэш-функциям. Парадокс ДР. Примеры хэш-функций. HMAC. CCA модель атак и аутентифицированное шифрование.
 +
Способы построения AE. Стандарты.
 +
 +
Слайды:  [[Медиа:Лекция7.pdf]]
 +
 +
 +
'''Лекция 8 '''. Основные алгоритмы с открытым ключом 1.
 +
 +
Схема RSA. Атаки на RSA. Базовые задачи, допущение Диффи и Хелмана. Возможность реализации систем на мультипликативной группе точек эллиптических кривых.
 +
 +
Слайды: [[Медиа:Лекция8.pdf]]
 +
 +
'''Лекция 9 '''. Основные алгоритмы с открытым ключом 2.
 +
 +
Схема шифрования ElGamal. Базовые задачи, допущение Диффи и Хелмана. Схема шифрования Меркла-Хелмана. Электронная цифровая подпись. Основные понятия, требования. Определение безопасности.
 +
 +
Слайды: [[Медиа:Лекция9.pdf]]
 +
 +
'''Лекция 10 '''. Управление ключами 1.
 +
 +
Попарные ключи. Использование мастер-ключей. Система Диффи и Хелмана. Человек посередине. Протоколы обмена ключами. С сервером, без сервера. Известные атаки на протоколы обмена ключами.
 +
 +
Слайды:  [[Медиа:Лекция10.pdf]]
 +
 +
 +
'''Лекция 11 '''. Управление ключами 2.
 +
 +
K-надежные схемы распределения ключей. Протоколы разделения секрета. Пороговая криптография.
 +
 +
Слайды:  [[Медиа:Лекция11.pdf]]
 +
 +
 +
'''Лекция 12 '''. Протоколы цифровых денег и электронного голосования.
 +
 +
Протоколы электронного голосования. Криптографическая реализация. Слепая подпись.
 +
Требования безопасности. Защищенные распределенные вычисления. Доказательства с нулевым разглашением. Примеры систем.
 +
 +
Слайды:  [[Медиа:Лекция12.pdf]]
 +
 +
Слайды:  [[Медиа:Лекция12a.pdf]]
 +
 +
Слайды:  [[Медиа:Лекция12b.pdf]]
 +
 +
Слайды:  [[Медиа:Лекция12c.pdf]]
 +
 +
 +
 +
'''Лекция 13 '''. ПРОТОКОЛЫ ИДЕНТИФИКАЦИИ + личностная криптография.
 +
 +
Схема идентификации Schnorr – Shamir. Схема идентификации Feige – Fiat – Shamir. Инфраструктура открытых ключей и альтернативные подходы(ID-based распределенные системы).
 +
 +
 +
Слайды:  [[Медиа:Лекция13.pdf]]
 +
 +
 +
'''Лекция 14 '''. Пост-квантовая криптография.
 +
 +
Понятия квантовых вычислений. Построение криптосистем на доказано сложных задачах. Линейные коды. Способы задания. Декодирование линейных кодов как «трудная» задача. Декодирование линейных кодов как «простая» задача. NP- полные задачи кодирования. Системы Макэлиса и  Нидерайтора.
 +
 +
 +
Слайды:  [[Медиа:Лекция14.pdf]]
 +
 +
 +
----
 +
 +
'''[[Вопросы по курсу]]''':[[Медиа:Вопросы по курсу_Криптографические протоколы.pdf]]
 +
 +
 +
----
 +
 +
== Список литературы ==
 +
 +
1) D. Boneh and V. Shoup. A Graduate Course in Applied Cryptography. [https://crypto.stanford.edu/~dabo/courses/OnlineCrypto/]
 +
 +
2) ван Тилборг. Основы криптологии. [http://bwbooks.net/books/kriptologiya/tilborg-xka/2006/files/osnovikriptologiyi2006.pdf]
 +
 +
3) Van Tilborg Henk C.A., Jajodia Sushil (Eds.) Encyclopedia of Cryptography and Security.
 +
 +
4) Menezes A.J., Van Oorschot P.C., Vanstone S.A. Handbook of Applied Cryptography.
 +
 +
5) Б. Шнайер. Прикладная криптография.
  
 
== Домашние задания ==
 
== Домашние задания ==
 +
 +
'''Баллы за задачи суммируются в каждом задании. Общий результат равен среднему баллу по 4 заданиям.'''
 +
 +
 
'''Задание 1. Исторические шифры и частотный криптоанализ.'''
 
'''Задание 1. Исторические шифры и частотный криптоанализ.'''
  
Задача 1.  
+
Задача 1.[4 балла]
  
 
Оценить теоретически количество зашифрованного текста (в символах) для успешного частотного криптоанализа и подтвердить результаты экспериментально, если известно, что открытый текст – это осмысленный текст на русском языке и была использована следующая система шифрования:
 
Оценить теоретически количество зашифрованного текста (в символах) для успешного частотного криптоанализа и подтвердить результаты экспериментально, если известно, что открытый текст – это осмысленный текст на русском языке и была использована следующая система шифрования:
Строка 19: Строка 146:
  
  
Задача 2.  
+
Задача 2.[4 балла]
  
 
Простым перестановочным шифром зашифрован некий текст, при этом известно, что в качестве открытого текста использован палиндром, в котором все пробелы и знаки препинания опущены. В результате шифрования получен следующий текст: МТИССЛАИЛПНАОЛМУИЛОПИТУ
 
Простым перестановочным шифром зашифрован некий текст, при этом известно, что в качестве открытого текста использован палиндром, в котором все пробелы и знаки препинания опущены. В результате шифрования получен следующий текст: МТИССЛАИЛПНАОЛМУИЛОПИТУ
Строка 33: Строка 160:
 
4) Позволяет ли успешный криптоанализ данного сообщения раскрыть ключ шифрования?
 
4) Позволяет ли успешный криптоанализ данного сообщения раскрыть ключ шифрования?
  
Задача 3.
+
Задача 3.[2 балла]
  
 
Шифром простой замены зашифровано некоторое стихотворение, при этом сохранены все пробелы и знаки препинания, одинаковые символы заменены одинаковыми, а различные -- различными. В результате шифрования получился следующий текст:
 
Шифром простой замены зашифровано некоторое стихотворение, при этом сохранены все пробелы и знаки препинания, одинаковые символы заменены одинаковыми, а различные -- различными. В результате шифрования получился следующий текст:
Строка 45: Строка 172:
  
 
2) Позволяет ли успешный криптоанализ данного сообщения раскрыть ключ шифрования?
 
2) Позволяет ли успешный криптоанализ данного сообщения раскрыть ключ шифрования?
 +
 +
  
  
 
'''Задание 2. Потоковые шифры'''
 
'''Задание 2. Потоковые шифры'''
  
Задача 1.
+
Задача 1. [5 баллов]
  
 
Рассмотреть генератор псевдослучайной последовательности. Вначале выбираются два больших простых числа p и q. Числа p и q должны быть оба сравнимы с 3 по модулю 4. Далее вычисляется число M = p* q, называемое целым числом Блюма. Затем выбирается другое случайное целое число х, взаимно простое с М. Вычисляем <math> x_0= x^2 mod M </math>. <math> x_0 </math> называется стартовым числом генератора.
 
Рассмотреть генератор псевдослучайной последовательности. Вначале выбираются два больших простых числа p и q. Числа p и q должны быть оба сравнимы с 3 по модулю 4. Далее вычисляется число M = p* q, называемое целым числом Блюма. Затем выбирается другое случайное целое число х, взаимно простое с М. Вычисляем <math> x_0= x^2 mod M </math>. <math> x_0 </math> называется стартовым числом генератора.
Строка 70: Строка 199:
  
  
Задача 2.
+
Задача 2. [2 балла]
  
 
Доказать, что одноразовый блокнот является семантически стойким алгоритмом шифрования.
 
Доказать, что одноразовый блокнот является семантически стойким алгоритмом шифрования.
  
Задача 3.
+
Задача 3. [5 баллов]
  
Пусть <math> G:K->{0,1}^n</math> криптографически стойкий псевдослучайный генератор (PRG), тогда потоковый шифр, основанный на нем, будет семантически стойким.
+
Пусть <math> G:K->left\{0,1 right\}^n</math> криптографически стойкий псевдослучайный генератор (PRG), тогда потоковый шифр, основанный на нем, будет семантически стойким.
  
 
Чтобы подтвердить это утверждение докажите, что для любого атакующего шифр алгоритма A, существует алгоритм B для функции G, такой что:
 
Чтобы подтвердить это утверждение докажите, что для любого атакующего шифр алгоритма A, существует алгоритм B для функции G, такой что:
  
<math> Adv_{SS} [A,E] ≤ 2Adv_{PRG} [B,G] </math>
+
<math> Adv_{SS} [A,E] ≤ 2Adv_{PRG} [B,G]</math>
  
'''Занятие 3. Блоковые шифры.'''
 
  
Задача 1.
+
'''Задание 3. Блоковые шифры.'''
 +
 
 +
Задача 1. [2 балла]
  
 
Оценить во сколько раз увеличится длина передаваемого сообщения в 1 байт, если оно зашифровано:
 
Оценить во сколько раз увеличится длина передаваемого сообщения в 1 байт, если оно зашифровано:
Строка 97: Строка 227:
  
  
Задача 2.
+
Задача 2. [4 балла]
  
 
Пусть заданы множества X={0,1} и K={0,1}.
 
Пусть заданы множества X={0,1} и K={0,1}.
Строка 106: Строка 236:
  
 
Будет ли предложенная функция псевдослучайной функцией PRF?
 
Будет ли предложенная функция псевдослучайной функцией PRF?
 +
 +
 +
-----
 +
 +
'''Задание 4. MAC и хэш-функции.'''
 +
 +
'''Задача 1.'''[1,5 балла]
 +
 +
Рассмотрим MAC Картера-Вегмана (Carter-­‐Wegman MAC) <math>I_{CW}=(S_{CW},V_{CW})</math>, который строится на основе стойкого одноразового MAC I=(S,V) и стойкой PRF функции F(k,m).
 +
Проверочное значение tag формируется по правилу:
 +
<math>tag=S_{CW} ((k_1,k_2 ),m)=(r,F(k_1,r) \ XOR \  S(k_2,m)),r <-R- \left\{ 0,1 \right\} ^n )</math>
 +
 +
Построить функцию верификации для проверки сообщения V_CW (m,tag).
 +
 +
'''Задача 2.'''[5 баллов]
 +
 +
Предложить хэш-функцию, стойкую к коллизиям h(H,m), на основе стойкого блокового шифра <math>E:K×\left\{ 0,1 \right\}^n ->\left\{ 0,1 \right\}^n.</math>
 +
Предложенная хэш-функция должна отображать <math>h: \left\{0,1 \right\} ^n × \left\{ 0,1 \right\}^n -> \left\{ 0,1 \right\}^n.</math>
 +
 +
Какое максимальное количество различных конструкций с данными свойствами  вы можете предложить?
 +
 +
'''Задача 3.'''[3 балла]
 +
 +
Будет ли стойкой к коллизиям хэш-функция, на основе стойкого блокового шифра <math>E:K× \left\{ 0,1 \right\} ^n -> \left\{ 0,1\right\}^n</math>, следующего вида: <math>h(H,m) = E(m,H) \ XOR \ m </math>? Ответ обосновать.

Текущая версия на 11:14, 24 марта 2020

Преподаватель: Афанасьева Александра

alra@k36.org

Объявление! Дистанционный экзамен.

Завтра 25.03 на 10:30 назначен экзамен по курсу "Криптографические протоколы". Экзамен будет проходить удаленно через видео чат по skype (alra_afa) или google(alraafa@gmail.com), смотря где у вас есть аккаунт. В начале экзамена пишите мне в чат номер билета (с 1 по 18), я вышлю вам задание, когда будете готовы отвечать, напишите мне сообщение и ждите вызов. Убедительная просьба не пользоваться доп. материалами при подготовке! Результаты решения практической части всем выслала на почту.

Лекции

Лекция 1.

Основные понятия криптографии. Предмет и задачи. Определение шифра, понятие стойкости, предположения об исходных условиях криптоанализа, симметричные и асимметричные криптосистемы, хэш-функции, криптографические протоколы. История криптографии. Принцип Керкгоффса. Понятие абсолютной стойкости или теоретико-информационной стойкости.

Слайды: Медиа:Лекция1.pdf

Лекции 2 и 3. Симметричные криптосистемы. Потоковые шифры.

Одноразовый блокнот. Понятие псевдослучайности. Требования к поточным шифрам: Постулаты Голомба, профиль линейной сложности. Методы построения больших периодов в поточных шифрах. Статистические тесты. Применение к известным генераторам. Понятие псевдослучайного генератора (PRG) и его криптографическая стойкость. Семантическая стойкости криптосистемы.

Слайды: Медиа:Лекция2-3.pdf


Лекция 4. Симметричные криптосистемы. Блоковые шифры 1.

Определение блокового шифра. Требования к блоковым шифрам. Различие понятий PRP и PRF. Определение стойкости. Способы построение блоковых шифров: подстановки, перестановки, сети Фейстеля. Алгоритм DES.

Слайды: Медиа:Лекция_4.pdf


Лекция 5 . Симметричные криптосистемы. Блоковые шифры 2.

Режимы использования блочных шифров (“электронная кодовая книга”, режимы с зацеплением, режимы использования блочных шифров для получения поточных шифров). Детерминированные и недерминированные алгоритмы шифрования. Влияние случайности на стойкость. Слабости блочных шифров.

Слайды: Медиа:Лекция_5.pdf

Лекция 6 . Контроль целостности.

MAC. Определение, модель безопасности. Построение на базе Блоковых шифров: BCB-MAC, NMAC, PMAC.

Слайды: Медиа:Лекция6.pdf

Лекция 7 . Хэш-функции.

Стойкость к колизиям. Требования к хэш-функциям. Парадокс ДР. Примеры хэш-функций. HMAC. CCA модель атак и аутентифицированное шифрование. Способы построения AE. Стандарты.

Слайды: Медиа:Лекция7.pdf


Лекция 8 . Основные алгоритмы с открытым ключом 1.

Схема RSA. Атаки на RSA. Базовые задачи, допущение Диффи и Хелмана. Возможность реализации систем на мультипликативной группе точек эллиптических кривых.

Слайды: Медиа:Лекция8.pdf

Лекция 9 . Основные алгоритмы с открытым ключом 2.

Схема шифрования ElGamal. Базовые задачи, допущение Диффи и Хелмана. Схема шифрования Меркла-Хелмана. Электронная цифровая подпись. Основные понятия, требования. Определение безопасности.

Слайды: Медиа:Лекция9.pdf

Лекция 10 . Управление ключами 1.

Попарные ключи. Использование мастер-ключей. Система Диффи и Хелмана. Человек посередине. Протоколы обмена ключами. С сервером, без сервера. Известные атаки на протоколы обмена ключами.

Слайды: Медиа:Лекция10.pdf


Лекция 11 . Управление ключами 2.

K-надежные схемы распределения ключей. Протоколы разделения секрета. Пороговая криптография.

Слайды: Медиа:Лекция11.pdf


Лекция 12 . Протоколы цифровых денег и электронного голосования.

Протоколы электронного голосования. Криптографическая реализация. Слепая подпись. Требования безопасности. Защищенные распределенные вычисления. Доказательства с нулевым разглашением. Примеры систем.

Слайды: Медиа:Лекция12.pdf

Слайды: Медиа:Лекция12a.pdf

Слайды: Медиа:Лекция12b.pdf

Слайды: Медиа:Лекция12c.pdf


Лекция 13 . ПРОТОКОЛЫ ИДЕНТИФИКАЦИИ + личностная криптография.

Схема идентификации Schnorr – Shamir. Схема идентификации Feige – Fiat – Shamir. Инфраструктура открытых ключей и альтернативные подходы(ID-based распределенные системы).


Слайды: Медиа:Лекция13.pdf


Лекция 14 . Пост-квантовая криптография.

Понятия квантовых вычислений. Построение криптосистем на доказано сложных задачах. Линейные коды. Способы задания. Декодирование линейных кодов как «трудная» задача. Декодирование линейных кодов как «простая» задача. NP- полные задачи кодирования. Системы Макэлиса и Нидерайтора.


Слайды: Медиа:Лекция14.pdf



Вопросы по курсу:Медиа:Вопросы по курсу_Криптографические протоколы.pdf



Список литературы

1) D. Boneh and V. Shoup. A Graduate Course in Applied Cryptography. [1]

2) ван Тилборг. Основы криптологии. [2]

3) Van Tilborg Henk C.A., Jajodia Sushil (Eds.) Encyclopedia of Cryptography and Security.

4) Menezes A.J., Van Oorschot P.C., Vanstone S.A. Handbook of Applied Cryptography.

5) Б. Шнайер. Прикладная криптография.

Домашние задания

Баллы за задачи суммируются в каждом задании. Общий результат равен среднему баллу по 4 заданиям.


Задание 1. Исторические шифры и частотный криптоанализ.

Задача 1.[4 балла]

Оценить теоретически количество зашифрованного текста (в символах) для успешного частотного криптоанализа и подтвердить результаты экспериментально, если известно, что открытый текст – это осмысленный текст на русском языке и была использована следующая система шифрования:

1) Шифр Цезаря;

2) Аффинный шифр;

3) Шифр Вижинера с известной длиной ключа (показать зависимость от длины ключа);

4) Шифр Вижинера с неизвестной длиной ключа (показать зависимость от длины ключа).


Задача 2.[4 балла]

Простым перестановочным шифром зашифрован некий текст, при этом известно, что в качестве открытого текста использован палиндром, в котором все пробелы и знаки препинания опущены. В результате шифрования получен следующий текст: МТИССЛАИЛПНАОЛМУИЛОПИТУ

Необходимо:

1) Расшифровать текст,

2) Оценить, насколько можно уменьшить сложность перебора, используя информацию об исходном сообщении;

3) При программной реализации минимизировать количество возвращаемых вариантов ответа.

4) Позволяет ли успешный криптоанализ данного сообщения раскрыть ключ шифрования?

Задача 3.[2 балла]

Шифром простой замены зашифровано некоторое стихотворение, при этом сохранены все пробелы и знаки препинания, одинаковые символы заменены одинаковыми, а различные -- различными. В результате шифрования получился следующий текст:

Э рсдх ыъсг, фрьыя сяы тцорт срэдт
 Юрь нфурсау уцир нэръ, мрьыя
 Нрусиъ рнмясяэуцэяуц нурэрт,
 Нурэрт оячолжяуц ьрорыя.

1) Расшифровать текст,

2) Позволяет ли успешный криптоанализ данного сообщения раскрыть ключ шифрования?



Задание 2. Потоковые шифры

Задача 1. [5 баллов]

Рассмотреть генератор псевдослучайной последовательности. Вначале выбираются два больших простых числа p и q. Числа p и q должны быть оба сравнимы с 3 по модулю 4. Далее вычисляется число M = p* q, называемое целым числом Блюма. Затем выбирается другое случайное целое число х, взаимно простое с М. Вычисляем . называется стартовым числом генератора.

На каждом n-м шаге работы генератора вычисляется . Результатом n-го шага является бит чётности числа , то есть сумма по модулю 2 единиц в двоичном представлении элемента.

Для данного генератора оценить статистические свойства при помощи следующих тестов:

1) (monobit test) равно ли количество нулей и единиц;

2) (two-bit test) равно ли количество 00, 01, 10 и 11;

3) (poker test) равно ли количество разных последовательностей длины m;

4) (runs test) подходящее ли количество последовательностей идущих подряд нулей и единиц той или иной длины;

5) (autocorrelation test) одинаковая ли автокорреляция на разных сдвигах;

Построить для генератора профиль линейной сложности (+5 баллов)


Задача 2. [2 балла]

Доказать, что одноразовый блокнот является семантически стойким алгоритмом шифрования.

Задача 3. [5 баллов]

Пусть криптографически стойкий псевдослучайный генератор (PRG), тогда потоковый шифр, основанный на нем, будет семантически стойким.

Чтобы подтвердить это утверждение докажите, что для любого атакующего шифр алгоритма A, существует алгоритм B для функции G, такой что:


Задание 3. Блоковые шифры.

Задача 1. [2 балла]

Оценить во сколько раз увеличится длина передаваемого сообщения в 1 байт, если оно зашифровано:

• алгоритмом шифрования АES в режиме CBC со случайным IV.

• алгоритмом шифрования АES в режиме CTR.

• алгоритмом шифрования АES в режиме OFB со случайным IV.

• алгоритмом шифрования 3DES в режиме CBC со случайным IV.


Задача 2. [4 балла]

Пусть заданы множества X={0,1} и K={0,1}.

Определим псевдослучайную перестановку PRP следующим образом: .

Будет ли эта перестановка криптографически стойкой PRP?

Будет ли предложенная функция псевдослучайной функцией PRF?



Задание 4. MAC и хэш-функции.

Задача 1.[1,5 балла]

Рассмотрим MAC Картера-Вегмана (Carter-­‐Wegman MAC) , который строится на основе стойкого одноразового MAC I=(S,V) и стойкой PRF функции F(k,m). Проверочное значение tag формируется по правилу:

Построить функцию верификации для проверки сообщения V_CW (m,tag).

Задача 2.[5 баллов]

Предложить хэш-функцию, стойкую к коллизиям h(H,m), на основе стойкого блокового шифра Предложенная хэш-функция должна отображать

Какое максимальное количество различных конструкций с данными свойствами вы можете предложить?

Задача 3.[3 балла]

Будет ли стойкой к коллизиям хэш-функция, на основе стойкого блокового шифра , следующего вида: ? Ответ обосновать.