- •Министерство образования и науки Российской Федерации
- •В.И. Аверченков, м.Ю. Рытов, с.А. Шпичак
- •Брянск Издательство бгту
- •Isbn 978-5-89838-596-5
- •Редактор издательства т.И. Королева
- •Темплан 2011г., п. 57
- •1. Введение в криптографию 10
- •2. Стойкость криптографических систем 34
- •3. Принципы построения симметричных криптографических алгоритмов 61
- •4. Принципы построения асимметричных криптографических алгоритмов 98
- •5. Криптографические хэш-функции и электронно-цифровая подпись 133
- •6. Организация сетей засекреченной связи 160
- •7.Криптоанализ и перспективные направления в криптографии 183
- •Предисловие
- •1. Введение в криптографию
- •1.1. Краткая история развития криптографических методов.
- •1.2. Основные понятия криптографии
- •1.2.1. Термины и определения
- •1.2.2. Классификация шифров
- •1.2.3. Характер криптографической деятельности
- •Контрольные вопросы
- •2. Стойкость криптографических систем
- •2.1. Модели шифров и открытых текстов
- •2.1.1. Алгебраические модели шифров.
- •2.1.2. Вероятностные модели шифров.
- •2.1.3. Математические модели открытых сообщений.
- •2.2. Криптографическая стойкость шифров
- •2.2.1. Теоретико-информационный подход к оценке криптостойкости шифров
- •2.2.2. Практическая стойкость шифров.
- •2.3. Имитостойкость и помехоустойчивость шифров
- •2.3.1. Имитостойкость шифров. Имитация и подмена сообщения
- •2.3.2. Способы обеспечения имитостойкости
- •2.3.3. Помехостойкость шифров
- •2.3.4. Практические вопросы повышения надежности.
- •Контрольные вопросы
- •3. Принципы построения симметричных криптографических алгоритмов
- •3.1. Виды симметричных шифров. Особенности программной и аппаратной реализации.
- •3.2. Принципы построения блочных шифров
- •3.2.1. Базовые шифрующие преобразования
- •3.2.2. Сеть Файстеля
- •3.3. Современные блочные криптоалгоритмы
- •3.3.1. Основные параметры блочных криптоалгоритмов.
- •3.3.2. Алгоритм des
- •3.3.3. Блочный шифр tea
- •Var key:tLong2x2;
- •Var y,z,sum:longint; a:byte;
- •Inc(sum,Delta);
- •3.3.4. Международный алгоритм idea
- •3.3.5. Алгоритм aes (Rijndael)
- •InverseSubBytes(s);
- •InverseShiftRows(s);
- •InverseSubBytes(s) End;
- •3.4. Принципы построения поточных шифров
- •3.4.1. Синхронизация поточных шифрсистем
- •3.4.2. Структура поточных шифрсистем
- •3.4.3.Регистры сдвига с обратной связью
- •3.4.4. Алгоритм Берленкемпа-Месси
- •3.4.5. Усложнение линейных рекуррентных последовательностей
- •3.5. Современные поточные криптоалгоритмы
- •3.5.1. Алгоритм Гиффорда
- •3.5.2. Алгоритм a5
- •3.6. Режимы использования шифров
- •Контрольные вопросы
- •4. Принципы построения асимметричных криптографических алгоритмов
- •4.1. Математические основы асимметричной криптографии
- •4.1.1. Свойства операций
- •4.1.2. Функция Эйлера. Поле. Теоремы Эйлера - Лагранжа и Ферма
- •4.1.3. Конечные поля
- •4.1.4. Основные алгоритмы
- •Алгоритм разложения чисел на простые множители.
- •4.1.5. Алгоритмы нахождения нод и мультипликативного обратного по модулю
- •4.1.6. Китайская теорема об остатках
- •4.1.7. Символы Лежандра и Якоби. Извлечение корней
- •4.2. Примеры современных асимметричных шифров
- •4.2.1. Криптосистема rsa
- •4.2.2. Взаимосвязь компонентов rsa
- •Слабые моменты реализации rsa
- •4.2.3. Криптосистема Эль-Гамаля
- •4.2.4. Криптосистема Рабина
- •4.2.5. Рюкзачные криптосистемы
- •4.2.6. Шифрсистема Мак-Элиса
- •Контрольные вопросы
- •5. Криптографические хэш-функции и электронно-цифровая подпись
- •5.1. Криптографические хэш-функции
- •5.1.1. Блочно-итерационные и шаговые функции
- •5.1.2. Ключевые функции хэширования
- •5.1.3 Бесключевые функции хэширования
- •5.1.4. Схемы использования ключевых и бесключевых функций
- •5.2. Электронно-цифровая подпись
- •5.2.1. Задачи и особенности электронно-цифровой подписи
- •5.2.2. Асимметричные алгоритмы цифровой подписи на основе rsa
- •5.2.3. Алгоритм цифровой подписи Фиата – Фейге – Шамира
- •5.2.4. Алгоритм цифровой подписи Эль-Гамаля
- •5.2.5. Алгоритм цифровой подписи Шнорра
- •5.2.6. Алгоритм цифровой подписи Ниберга-Руппеля
- •5.2.7. Алгоритм цифровой подписи dsa
- •5.2.8. Симметричные (одноразовые) цифровые подписи
- •Контрольные вопросы
- •6. Организация сетей засекреченной связи
- •6.1. Протоколы распределения ключей
- •6.1.1. Передача ключей с использованием симметричного шифрования
- •6.1.2. Передача ключей с использованием асимметричного шифрования
- •6.1.3. Открытое распределение ключей
- •6.1.4. Предварительное распределение ключей
- •6.1.5. Схемы разделения секрета
- •6.1.6. Способы установления ключей для конференц-связи
- •6.2. Особенности использования вычислительной техники в криптографии
- •6.2.1. Методы применения шифрования данных в локальных вычислительных сетях
- •6.2.2. Обеспечение секретности данных при долгосрочном хранении.
- •6.2.4. Обеспечение секретности ключей при долгосрочном хранении
- •6.2.5. Защита от атак с использованием побочных каналов
- •7.1.2. Атаки на хэш-функции и коды аутентичности
- •7.1.3. Атаки на асимметричные криптосистемы
- •7.2. Перспективные направления в криптографии
- •7.2.1. Эллиптические кривые
- •7.2.2. Эллиптические кривые над конечными полями
- •7.2.3. Алгоритм цифровой подписи ec-dsa
- •7.2.4. Квантовая криптография
- •Контрольные вопросы
- •Приложение
- •Заключение
- •Список использованной и рекомендуемой литературы
- •Учебное издание
- •Аверченков Владимир Иванович Рытов Михаил Юрьевич Шпичак Сергей Александрович
6.1.5. Схемы разделения секрета
Схема разделения секрета представляет собой схему предварительного распределения ключей между уполномоченными группами пользователей, в которой ключ заранее определен и одинаков для каждой уполномоченной группы. При этом каждый пользователь получает свою долю или "часть секрета". Схема включает два протокола: протокол формирования долей (разделения секрета) и распределения их между пользователями и протокол восстановления секрета группой пользователей. Схема должна позволять восстанавливать ключ только тем группам пользователей, которые имеют на это полномочия, и никакая другая группа не должна иметь возможности для восстановления ключа или получения о нем какой-либо информации.
Основное назначение схемы разделения секрета — защита ключа от потери. Обычно для защиты от потери делают несколько копий ключа. С возрастанием числа копий ключа возрастает вероятность его компрометации. Если число копий мало, то велик риск потери ключа. Поэтому лучше "разделить" ключ между несколькими лицами так, чтобы допускалась возможность восстановления ключа при различных обстоятельствах несколькими уполномоченными группами с заранее оговоренным составом участников. Тем самым исключается риск безвозвратной потери ключа.
Еще одно положительное качество схем разделения секрета заключается в разделении ответственности за принятие решения, которое автоматически вводится при определении состава уполномоченных групп. Такая коллективная ответственность нужна для многих приложений, включая принятие важных решений, касающихся применения систем оружия, подписания корпоративных чеков или допуска к банковскому хранилищу.
В простейшем случае, когда имеется только одна группа, состоящая из t пользователей, уполномоченная формировать ключ, схему разделения секрета можно построить следующим образом. Предположим, к примеру, что ключ представляет собой двоичный вектор s длины т. Выберем случайным образом t векторов s1, ...,st так, чтобы их сумма совпадала с вектором s, и распределим их между пользователями. Теперь, собравшись вместе, они могут легко восстановить значение ключа s, в то время как никакая группа, состоящая из меньшего числа пользователей, не сможет этого сделать. Действительно, в данном случае отсутствие хотя бы одной доли приводит к полной неопределенности относительно значения секрета, поскольку для каждого значения искомого секрета найдется возможный вариант значения отсутствующей доли.
Заметим, что если бы мы в предыдущем примере просто разбили вектор на t частей, то такая схема не могла быть схемой разделения секрета, так как знание любой доли давало бы частичную информацию о секрете s.
Другой пример схемы разделения секрета дает пороговая схема Шамира. Пусть 1 < t ≤ п. Схема разделения секрета между п пользователями называется (n,t)-пороговой, если любая группа из t пользователей может восстановить секрет, в то время как никакая группа из меньшего числа пользователей не может получить никакой информации о секрете.
Для построения (n,t)-пороговой схемы А. Шамир предложил использовать многочлен степени t – 1 над конечным полем с достаточно большим числом элементов. Многочлен степени t - 1 можно однозначно восстановить по его значениям в t различных точках, но при этом меньшее число точек использовать для интерполяции нельзя.
Выберем поле F и зафиксируем п различных несекретных элементов r1,...,rnF, отличных от нуля. Каждый элемент ri, приписан i-му абоненту сети, . Выберем также t случайных элементов а0,...,аi-1 поля F и составим из них многочлен f(х) над полем F степени t - 1, 1< t ≤ n ,
Положим s = f(0) = а0. Вычислим теперь значения
s1 = f(r1),…, sn = f(rn)
и распределим в качестве долей между участниками наборы
Для восстановления секрета S можно воспользоваться интерполяционной формулой Лагранжа. Путь имеются t пар (хi, уi), где yi = f(xi). Тогда формула Лагранжа имеет вид
Так как s = f(0), то из формулы Лагранжа получаем равенства
причем коэффициенты с, не зависят от коэффициентов многочлена f(x) и могут быть вычислены заранее.
С помощью полученной формулы любая группа из t пользователей может легко восстановить секрет. В то же время можно показать, что никакая группа из меньшего числа пользователей не может получить никакой информации о секрете (докажите это самостоятельно).
Схема Шамира удобна тем, что она позволяет легко увеличивать число пользователей. Для этого не нужно ничего менять, кроме множества {r1,..., rп}, к которому следует добавить новые элементы rn+1,..., rn+ w. Компрометация одной доли делает из (n,t)-пороговой схемы (п -1, t -1)-пороговую схему.