
- •230100 «Информатика
- •Лекция 1. Основные понятия
- •1.1 Терминология
- •1.2 Стеганография
- •Лекция 2. Докомпьютерные шифры
- •2.1 Подстановочные и перестановочные шифры
- •1.4 Простое xor
- •1.5 Одноразовые блокноты
- •Лекция 3. Криптографические протоколы
- •1 Введение в протоколы
- •2.2 Передача информации с использованием симметричной криптографии
- •2.3 Однонаправленные функции
- •2.4 Однонаправленные хэш-функции
- •2.5 Передача информации с использованием криптографии с открытыми ключами
- •Лекция 4. Цифровые подписи
- •1. Подпись документа с использованием симметричных криптосистем и посредника
- •2.7 Цифровые подписи и шифрование
- •2.8. Генерация случайных и псевдослучайных последовательностей
- •Лекция 5. Основные протоколы
- •1 Обмен ключами
- •Лекция 6. Алгоритмы аутентификации пользователей (Удостоверение подлинности)
- •3.3 Удостоверение подлинности и обмен ключами
- •3.4 Формальный анализ протоколов проверки подлинности и обмена ключами
- •Лекция 7. Цифровые подписи.
- •1. Неотрицаемые цифровые подписи
- •4.4 Подписи уполномоченного свидетеля
- •4.5 Подписи по доверенности
- •4.6 Групповые подписи
- •4.7 Подписи с обнаружением подделки
- •Лекция 8. Длина ключа
- •1 Длина симметричного ключа
- •7.2 Длина открытого ключа
- •7.3 Сравнение длин симметричных и открытых ключей
- •7.4 Вскрытие в день рождения против однонаправленных хэш-функций
- •7.5 Каков должны быть длина ключа?
- •Лекция 9. Управление ключами
- •1 Генерация ключей
- •8.2 Нелинейные пространства ключей
- •8.3 Передача ключей
- •8.4 Проверка ключей
- •8.5 Использование ключей
- •8.6 Обновление ключей
- •8.7 Хранение ключей
- •8.8 Резервные ключи
- •8.9 Скомпрометированные ключи
- •8.10 Время жизни ключей
- •8.11 Разрушение ключей
- •8.12 Управление открытыми ключами
- •Лекция 10. Типы алгоритмов и криптографические режимы
- •9.1 Режим электронной шифровальной книги
- •9.2 Повтор блока
- •9.3 Режим сцепления блоков шифра
- •9.4 Потоковые шифры
- •9.5 Самосинхронизирующиеся потоковые шифры
- •9.6 Режим обратной связи по шифру
- •9.7 Синхронные потоковые шифры
- •9.8 Режим выходной обратной связи
- •9.9 Режим счетчика
- •9.10 Другие режимы блочных шифров
- •Лекции 12. Математические основы
- •11.1 Теория информации
- •Энтропия и неопределенность
- •Норма языка
- •Безопасность криптосистемы
- •Расстояние уникальности
- •Практическое использование теории информации
- •Путаница и диффузия
- •11.2 Теория сложности
- •Сложность алгоритмов
- •Сложность проблем
- •11.3 Теория чисел
- •Арифметика вычетов
- •Простые числа
- •Наибольший общий делитель
- •Обратные значения по модулю
- •Решение для коэффициентов
- •Малая теорема Ферма
- •Функция Эйлера
- •Китайская теорема об остатках
- •Квадратичные вычеты
- •Символ Лежандра
- •Символ Якоби
- •Целые числа Блюма
- •Генераторы
- •Вычисление в поле Галуа
- •11.4 Разложение на множители
- •Квадратные корни по модулю п
- •11.5 Генерация простого числа
- •Практические соображения
- •Сильные простые числа
- •11.6 Дискретные логарифмы в конечном поле
- •Вычисление дискретных логарифмов в конечной группе
- •Лекция 13. Стандарт шифрования данных des (Data Encryption Standard)
- •12.1 Введение
- •Разработка стандарта
- •Принятие стандарта
- •Проверка и сертификация оборудования des
- •12.2 Описание des
- •Начальная перестановка
- •Преобразования ключа
- •Перестановка с расширением
- •Подстановка с помощью s-блоков
- •Перестановка с помощью р-блоков
- •Заключительная перестановка
- •Дешифрирование des
- •Режимы des
- •Аппаратные и программные реализации des
- •15.1 Двойное шифрование
- •15.3 Удвоение длины блока
- •15.4 Другие схемы многократного шифрования
- •15.5 Уменьшение длины ключа в cdmf
- •15.6 Отбеливание
- •15.7 Многократное последовательное использование блочных алгоритмов
- •15.8 Объединение нескольких блочных алгоритмов
- •16.1 Линейные конгруэнтные генераторы
- •Константы для линейных конгруэнтных генераторов
- •16.2 Сдвиговые регистры с линейной обратной связью
- •16.3 Проектирование и анализ потоковых шифров
- •16.4 Потоковые шифры на базе lfsr
- •18.1 Основы
- •18.7 Алгоритм безопасного хэширования (Secure Hash Algorithm, sha)
- •Лекция 17. Алгоритмы с открытыми ключами
- •19.2 Алгоритмы рюкзака
- •Иностранные патенты на алгоритм рюкзака Меркла-Хеллмана
- •Шифрование rsa
- •Скорости rsa для различных длин модулей при 8-битовом открытом ключе (на sparc II)
- •Лекция 19. Безопасность вычислительных сетей Атакуемые сетевые компоненты
- •Уровни сетевых атак согласно модели osi
4.6 Групповые подписи
Эта проблема была введена Дэвидом Чаумом (David Chaum) в [330]:
У компании есть несколько компьютеров, подсоединенных к локальной сети. В каждом отделе компании есть свой принтер (также присоединенный к сети), и только один человек в отделе имеет право печатать на принтере своего отдела. Перед печатью, следовательно, принтер должен проверять, что данный сотрудник работает в этом отделе В то же время, компания хочет обеспечить тайну, имя пользователя не должно раскрываться. Если, однако, кто-то в конце дня обнаружит, что принтер используется слишком часто, у директора должна быть возможность найти того, кто использует принтер не по назначению и послать ему чек.
Решение этой проблемы называется групповой подписью. Групповые подписи обладают следующими свойствами:
— Только члены группы могут подписывать сообщения.
— Получатель подписи может убедиться, что это - правильная подпись группы.
— Получатель подписи не может определить, кто именно из членов группы подписал документ.
— при споре подпись будет раскрыта для определения личности подписавшего.
Групповые подписи с надежным посредником
Следующий протокол использует заслуживающего посредника:
(1) Трент создает большую кучу пар открытый ключ/закрытый ключ и выдает каждому члену группы индивидуальный список уникальных закрытых ключей. Одинаковых ключей в списках нет. (Если в группе п членов, и каждый из них получает т пар ключей, то общее число пар ключей составит п*т.)
(2) Трент публикует главный список всех открытых ключей для группы в случайном порядке, сохраняя в секрете, какой ключ кому принадлежит.
(3) Когда член группы хочет подписать документ, он случайным образом выбирает ключ из своего списка.
(4) Когда кто-то хочет убедиться, что подпись принадлежит члену данной группы, он перебирает главный список в поисках подходящего открытого ключа и проверяет подпись.
(5) В случае споров обращаются к Тренту, который знает, какие ключи использует каждый член группы.
Проблема протокола состоит в том, что для него необходим надежный посредник. Трент знает закрытые ключи каждого и может подделывать подписи. Кроме того, должно быть достаточно велико, чтобы помешать попыткам анализа с целью поиска владельца каждого ключа.
Чаум [330] перечислил ряд других протоколов, в некоторых из них Трент не может подделать подписи, а в других от и не нужен вовсе. Еще один протокол [348] не только прячет личность подписывающего, но и позволяет добавлять новых членов в группу. И еще один протокол можно найти в [1230].
4.7 Подписи с обнаружением подделки
Пусть Ева является могучим противником. У нее есть обширные компьютерные сети и залы, набитые компьютерами Крэй, на много порядков более мощных, чем доступные Алисе. Все эти компьютеры днем и ночью пыхтят, пытаясь взломать закрытый ключ Алисы. Наконец - успех. Теперь Ева может выдавать себя за Алису, при желании подделывая ее подпись под документами.
Подписи с обнаружением подделки, введенные Биржитом Пфицманом (Birgit Pfitzmann) и Майклом Уэйднером (Michael Wai drier) [1240] предотвращают подобное мошенничество. Если после грубого взлома Ева подделывает подписи Алисы, Алиса сможет доказать подлог. Если Алиса подпишет документ, а потом объявит свою подпись подложной, правда может быть доказана судом.
Основная идея, стоящая за подписями с обнаружением подделки, состоит в том, что каждому возможному открытому ключу соответствует множество возможных закрытых ключей. Каждый из этих закрытых ключей дает множество различных цифровых подписей. Однако, у Алисы есть только один закрытый ключ, и она может рассчитать только одну подпись. Другие закрытые ключи ей неизвестны.
Ева хочет взломать закрытый ключ Алисы. (Ева также сможет быть Алисой, вычислив для себя второй закрытый ключ.) Она собирает подписанные сообщения и, используя множество своих суперкомпьютеров, пытается раскрыть ключ Алисы. Даже если ей удастся раскрыть подходящий закрытый ключ, таких ключей настолько много, что, скорее всего, она получит иной, чем у Алисы, ключ. Вероятность раскрытия ключа, принадлежащего именно Алисе, настолько мала, что ею можно пренебречь.
Теперь, когда Ева подделает подпись под документом, используя найденный закрытый ключ, подделанная подпись будет отличаться от той подписи, которую поставила бы сама Алиса. При обращении в суд Алиса
предъявит две различных подписи под одним и тем же сообщением и открытый ключ (соответствующий ее закрытому ключу и закрытому ключу, найденному Евой), чтобы доказать подлог. С другой стороны, если Алиса не может предъявить две различные подписи, то подлога не было и Алиса должна отвечать за свою подпись.
Эта схема подписей противостоит взлому Евой подписи Алисы с помощью необычайно мощных вычислительных средств. Она ничего не сможет сделать с более вероятной попыткой Мэллори вломиться в дом Алисы и стащить ее закрытый ключ или с попыткой Алисы подписать документ, а затем "случайно" потерять свой закрытый ключ. Чтобы защититься от упомянутой попытки Мэллори, Алисе стоит купить себе хорошую сторожевую собаку, но подобные рекомендации выходят за рамки криптографии.
Дополнительную теорию и применения подписей с обнаружением подделки можно найти в [1239, 1241, 730, 731].