
- •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
Лекция 7. Цифровые подписи.
1. Неотрицаемые цифровые подписи
Обычные цифровые подписи могут быть точно скопированы. Иногда это свойство полезно, например, при распространении публичных заявлений. В другой раз это может оказаться проблемой. Вообразите личное или деловое письмо, подписанное цифровой подписью. Если распространяется множество копий этого документа, каждая из которых может быть проверена кем угодно, то это может привести к замешательству или шантажу. Лучшим решением является цифровая подпись, правильность которой может быть доказана получателю, но которая не позволит получателю показать третьей стороне полученное сообщение без согласия разрешения лица, подписавшего сообщение.
Alice Software Company (Компания программного обеспечения Алисы) распространяет продукт DEW (Do-Everything-Word, Делая со словом что угодно). Для гарантии отсутствия вирусов каждая копия содержит цифровую подпись. Однако, создатели хотят, чтобы только легальные покупатели продукта, а не компьютерные пираты могли проверить подпись. В то же время, если обнаруживаются копии DEW, содержащие вирус, у Alice Software Company не должно быть возможности отрицать правильную подпись.
Неотрицаемые подписи [343,327] удобны для решения подобных задач. Как и обычная цифровая подпись, неотрицаемая цифровая подпись зависит от подписанного документа и закрытого ключа человека, подписавшего документ. Но, в отличие от обычных цифровых подписей, неотрицаемая подпись не может быть проверена без разрешения подписавшего. Хотя для этих подписей можно было бы подобрать название получше, например, "непередаваемые подписи", существующее название обусловлено тем обстоятельством, что если Алисе придется либо подтвердить, либо отрицать подпись - может быть в суде - она не сможет ложно отрицать свою настоящую подпись. Несмотря на сложность математики основная идея проста:
(1) Алиса предъявляет Бобу подпись.
(2) Боб создает случайное число и посылает его Алисе.
(3) Алиса выполняет вычисления, используя случайное число и свой закрытый ключ, и посылает Бобу результат. Алиса может выполнить эти вычисления только, если подпись правильна.
(4) Боб проверяет это.
Также существует дополнительный протокол, позволяющий Алисе доказать, что она не подписывала документ, и не допускающий возможности ложно отказаться от подписи.
Боб не может повернуться и убедить Кэрол, что подпись Алисы правильна, потому что Кэрол не знает, что числа Боба случайны. Он может легко без помощи Алисы изложить протокол на бумаге и послать результат Кэрол. Кэрол может удостовериться в правильности подписи Алисы только, если она сама выполнит этот протокол с Алисой. Сейчас кажется, что в этом немного смысла, но он появится, когда вы взглянете на математику раздела 23.4.
Это решение не совершенно. Иво Десмедт и Моти Юнг (Moti Yung) показали, что в некоторых случаях Боб может убедить Кэрол в правильности подписи Алисы [489].
Например, Боб покупает легальную копию DEW. Он может подтвердить подпись под программным продуктом, когда захочет. Тогда, Боб может убедить Кэрол, что он работает на Alice Software Company, и продать ей пиратскую копию DEW. Когда Кэрол попытается подтвердить подпись Боба, он одновременно подтверждает подпись у Алисы. Когда Кэрол посылает ему случайное число, он отправляет его Алисе. Ответ Алисы он пересылает Кэрол. Кэрол убеждается в том, что она - легальный покупатель, хотя она таковым не является. Такое вскрытие является прмером проблемы великого гроссмейстера и подробно рассматривается в разделе 5.2.
Несмотря на это у неотрицаемых подписей множество применений, во многих случаях Алиса не хочет, чтобы кто угодно мог проверить ее подпись. Она может не хотеть, чтобы подпись под ее личной корреспонденцией могла быть проверена журналистами, чтобы ее письма были опубликованы и подтверждены независимо от контекста, или просто, чтобы нельзя было обнаружить изменения в письмах, сделанные ею позже. Если она подписывает информацию, которую она продает, то она не хочет, чтобы кто-то, не заплатив за информацию, мог подтвердить ее достоверность. Защитить свои права Алиса может контролируя тех, кто проверяет ее подпись.
Ряд вариантов неотрицаемых подписей отделяет связь между подписавшим и сообщением от связи между подписавшим и подписью [910]. В одной схеме кто угодно может проверить, что подпись действительно была создана ее автором, а для проверки правильности подписи для данного сообщения требуется сотрудничество подписавшего.
Близким понятием является доверительная неотрицаемая подпись [1229]. Представьте, что Алиса работает на Toxins, Inc., и передает обличающие документы в газету, используя протокол неотрицаемой подписи. Алиса может подтвердить свою подпись только репортеру газеты и никому больше. Однако, негодяй Боб подозревает, что источником документов является Алиса. Он требует, чтобы Алиса использовала протокол снятия подлиси, чтобы очистить свое имя, а Алиса отказывается. Боб настаивает, что единственной причиной отказа Алисы является ее виновность, и убивает ее.
Доверительные неотрицаемые подписи похожи на обычные неотрицаемые подписи за исключением протокола снятия подписи, который может быть запущен только Трентом. Только Трент, а не Боб может потребовать от Алисы использовать протокол снятия. И если Трент представляет судебную систему, то он использует этот протокол только для разрешения формального спора.