- •Криптографическая защита информации
- •Оглавление
- •Раздел 1. Общие подходы к криптографической защите информации
- •Тема 1. Теоретические основы криптографии
- •1.1. Криптография
- •1.2. Управление секретными ключами
- •1.3. Инфраструктура открытых ключей.
- •1.4. Формальные модели шифров
- •1.5. Модели открытых текстов
- •Тема 2. Простейшие и исторические шифры и их анализ
- •Тема 3. Математические основы криптографии
- •3.1. Элементы алгебры и теории чисел
- •3.1.1. Модулярная арифметика. Основные определения.
- •3.1.2. Алгоритм Евклида нахождения наибольшего общего делителя
- •3.1.3. Взаимно простые числа
- •3.1.4. Наименьшее общее кратное
- •3.1.5. Простые числа
- •3.1.6. Сравнения
- •3.1.7. Классы вычетов
- •3.1.8. Функция Эйлера
- •3.1.9. Сравнения первой степени
- •3.1.10. Система сравнений первой степени
- •3.1.11. Первообразные корни
- •3.1.12. Индексы по модулям рk и 2рk
- •3.1.13. Символ Лежандра
- •3.1.14. Квадратичный закон взаимности
- •3.1.15. Символ Якоби
- •3.1.16. Цепные дроби
- •3.1.17. Подходящие дроби
- •3.1.18. Подходящие дроби в качестве наилучших приближений
- •3.2. Группы
- •3.2.1. Понятие группы
- •3.2.2. Подгруппы групп
- •3.2.3. Циклические группы
- •3.2.4. Гомоморфизмы групп
- •3.2.5. Группы подстановок
- •3.2.6. Действие группы на множестве
- •3.3. Кольца и поля
- •3.3.1. Определения
- •3.3.2. Подкольца
- •3.3.3. Гомоморфизмы колец
- •3.3.4. Евклидовы кольца
- •3.3.5. Простые и максимальные идеалы
- •3.3.6. Конечные расширения полей
- •3.3.7. Поле разложения
- •3.3.8. Конечные поля
- •3.3.9. Порядки неприводимых многочленов
- •3.3.10. Линейные рекуррентные последовательности
- •3.3.11. Последовательности максимального периода
- •3.3.12. Задания
- •Тема 4. Классификация шифров
- •4.1. Классификация шифров по типу преобразования
- •4.2. Классификация шифров замены
- •4.3 Шифры перестановки
- •4.3.1. Маршрутные перестановки
- •4.3.2. Элементы криптоанализа шифров перестановки
- •4.4. Шифры замены
- •4.4.1. Поточные шифры простой замены
- •4.4.2. Криптоанализ поточного шифра простой замены
- •4.4.3. Блочные шифры простой замены
- •4.4.4. Многоалфавитные шифры замены
- •4.4.5. Дисковые многоалфавитные шифры замены
- •4.5. Шифры гаммирования
- •4.5.1. Табличное гаммирование
- •4.5.2. О возможности восстановления вероятностей знаков гаммы
- •4.5.3. Восстановление текстов, зашифрованных неравновероятной гаммой
- •5.5.4. Повторное использование гаммы
- •4.5.5. Криптоанализ шифра Виженера
- •Тема 5. Поточные шифры
- •5.1. Принципы построения поточных шифрсистем
- •Примеры поточных шифрсистем
- •5.3. Линейные регистры сдвига
- •5.4. Алгоритм Берлекемпа-Месси
- •5.5. Усложнение линейных рекуррентных последовательностей
- •5.6. Методы анализа поточных шифров
- •6. Блочные шифры
- •6.1. Принципы построения блочных шифров
- •6.2. Примеры блочных шифров
- •6.3. Режимы использования блочных шифров
- •6.4. Комбинирование алгоритмов блочного шифрования
- •6.5. Методы анализа алгоритмов блочного шифрования
- •6.6. Рекомендации по использованию алгоритмов блочного шифрования
- •7. Криптографические хэш-функции
- •7.1. Функции хэширования и целостность данных
- •7.2. Ключевые функции хэширования
- •7.3. Бесключевые функции хэширования
- •7.4. Целостность данных и аутентификация сообщений
- •7.5. Возможные атаки на функции хэширования
- •Тема 8. Криптосистемы с открытым ключом
- •8.1. Шифрсистема rsa
- •8.2. Шифрсистема Эль-Гамаля
- •8.3. Шифрсистема Мак-Элиса
- •8.4. Шифрсистемы на основе "проблемы рюкзака"
8.3. Шифрсистема Мак-Элиса
Идея, лежащая в основе данной системы, состоит в выборе корректирующего кода, исправляющего определенное число ошибок, для которого существует эффективный алгоритм декодирования. С помощью секретного ключа этот код "маскируется" под общий линейный код, для которого, как известно, задача декодирования не имеет эффективного решения.
В системе Мак-Элиса параметрами системы, общими для всех абонентов, являются целые числа k, п и t. Для получения открытого и соответствующего секретного ключа каждому из абонентов системы следует осуществить следующую последовательность действий:
1) выбрать порождающую матрицу G=Gk n двоичного (n,k) -линейного кода, исправляющего t ошибок, для которого известен эффективный алгоритм декодирования;
2) случайно выбрать двоичную невырожденную матрицу S = Sk k ;
3) случайно выбрать подстановочную матрицу Р = Рn n ;
4) вычислить произведение матриц G1 = S • G • Р .
Открытым ключом является пара (G1, t), секретным — тройка (S, G, Р).
Для того чтобы зашифровать сообщение М , предназначенное для абонента А, абоненту В следует выполнить следующие действия:
1) представить М в виде двоичного вектора длины k;
2) выбрать случайный бинарный вектор ошибок Z длины п, содержащий не более t единиц;
3) вычислить бинарный вектор С = М • GA + Z и направить его абоненту А.
Получив сообщение С, абонент А вычисляет вектор С1 = С • Р-1, с помощью которого, используя алгоритм декодирования кода с порождающей матрицей G, получает далее векторы М1 и М = М1 • S-1.
Чтобы убедиться в корректности приведенного алгоритма расшифрования, достаточно заметить, что
C1=C•P-1 =(M•CA+Z) •Р-1 =(M•S•G•P+Z)•P-1 =(M•S) •G+Z•P-1,
где Z•Р-1 – вектор, содержащий не более t единиц. Поэтому алгоритм декодирования кода с порождающей матрицей G декодирует С в М1 = М • S.
В качестве кода, исправляющего ошибки в системе Мак-Элиса, можно использовать код Гоппы (см., например, [Пит64]). Известно, что для любого неприводимого полинома g(x) степени t над полем GF(2m) существует бинарный код Гоппы длины п = 2m и размерности k п – mt, исправляющий до t ошибок включительно, для которого имеется эффективный алгоритм декодирования. В настоящее время не известны эффективные алгоритмы дешифрования системы Мак-Элиса, использующей код Гоппы, при правильном выборе параметров системы.
Вместе с тем рекомендуемые параметры для этой системы – п=1024, t=38, k>644 – приводят к тому, что открытый ключ имеет размер около 219 бит, а длина сообщения увеличивается при шифровании примерно в 1,6 раза, к связи с чем данная система не получила широкого распространения.
8.4. Шифрсистемы на основе "проблемы рюкзака"
''Проблема рюкзака" (или "ранца") может быть сформулирована следующим образом. Пусть задано множество натуральных чисел А={а1,а2,...,ап} и натуральное число S. Требуется установить, имеется ли такое подмножество множества А, сумма элементов которого была бы равна S. Эквивалентной является следующая формулировка: существует ли такой набор чисел хi{0,1}, in, для которого
Данная проблема получила свое название в связи с тем, что поставленная задача может быть переформулирована также в следующем виде. Имеется набор предметов с известными весами и рюкзак, который может выдержать вес, не превышающий заданной величины. Можно ли выбрать набор предметов для погрузки в рюкзак так, чтобы они в точности имели максимально возможный вес.
"Проблема рюкзака" является весьма сложной, ее решение с полиномиальной сложностью в настоящее время не известно.
Идея построения системы шифрования на основе "проблемы рюкзака" заключается в выделении некоторого подкласса задач об укладке рюкзака, решаемых сравнительно легко, и "маскировки" задач этого класса (с помощью некоторого преобразования параметров) под общий случай. Параметры подкласса определяют секретный ключ, а параметры модифицированной задачи – открытый ключ. В качестве легко решаемой задачи Р.Меркль и М.Хеллман в 1978г. предложили задачу об укладке "супервозрастающего" рюкзака. Изложим ее суть.
Назовем супервозрастающей последовательность натуральных чисел (b1,b2,...,bп), обладающую свойством
Можно убедиться в том, что "проблема рюкзака" для супервозрастающей последовательности может быть решена с помощью процедуры, состоящей в выполнении следующих шагов:
1. Положить i = п.
2. Если i > 1, то положить хi равным 1 и S равным S – bi, если S>bi, и положить хi равным 0 в противном случае.
3. Положить i равным i –1 и возвратиться к шагу 2.
В системе, основанной на проблеме рюкзака, величина п является параметром системы.
Для вычисления открытого и соответствующего секретного ключа каждый из абонентов системы осуществляет следующую последовательность действий.
-
Выбирает супервозрастающую последовательность (b1,b2,...,bп) и модуль т, такой, что
2. Выбирает случайное число W, 1<W <т-1, такое, что Н0Д(W,m)=1.
3. Выбирает случайную перестановку л чисел {1,2,...,n}.
4. Вычисляет ai=W b(i) mod m для i = 1,…,п.
Открытым ключом является набор (а1,а2,...,ап), секретным ключом – набор (,m,W,(b1,b2,...,bп)).
Чтобы зашифровать сообщение М, предназначенное для абонента А, абонент В осуществляет следующие шаги с помощью открытого ключа (а1,а2,...,ап) абонента А:
1. Представляет М в виде бинарной последовательности М=М1М2...Мп длины п.
2. Вычисляет С = и направляет его к А.
Абонент А, получив С, вычисляет Н =W-1•C mod m, a затем, решая "проблему рюкзака" для супервозрастающей " последовательности, находит числа zi {0,1}, такие, что
Биты последовательности М вычисляются по формуле
Мi= z(i) , i = 1,…,п.
Корректность проведенной процедуры расшифрования вытекает из следующих рассуждений. Поскольку
и 0 < Н < т, то Н= и, следовательно, алгоритм решения "проблемы рюкзака" действительно находит биты открытого текста, переставленные в соответствии с перестановкой л.
Вместе с тем доказано, что существует алгоритм полиномиальной сложности, который может быть использован противником для получения открытого текста М по шифртексту С. Этот алгоритм, исходя из аi , находит пару таких целых чисел и1 , т1, что отношение и1 /т1 близко к отношению и/т
(где u=W-1modm, a W,m являются частью секретного ключа). Кроме того, числа Вi=ui•ai(modm), 1<i<n, образуют супервозрастающую последовательность. Эта последовательность затем используется противником вместо (b1,b2,...,bп) для дешифрования сообщения.
Контрольные вопросы
1. В чем состоят преимущества систем с открытыми ключами перед симметричными шифрсистемами?
2. Сложностью какой математической задачи определяется стойкость системы RSA?
3. К какому типу принадлежит схема шифрования, используемая в системе Эль-Гамаля? В чем ее преимущества?
4. Чем вызваны трудности в практической реализации системы Мак-Элиса?
5. Придумайте алгоритм вычисления аd(тоd п), имеющий сложность 0(ln п).
6. Постройте пример шифра Эль-Гамаля для р = 127. Зашифруйте и расшифруйте выбранное Вами т 126.
Литература
-
А.В. Аграновский. Р.А. Хади. Практическая криптография. М., Солон-Р, 2002.
-
Алфёров, А.П., Зубов, А.Ю., Кузьмин, А.С., Черёмушкин, А.В. Основы криптографии. -М.: Гелиос АРВ, 2005.
-
Андрончик, А. Н. и др. Защита информации в компьютерных сетях. Практический курс: учебное пособие / А. Н. Андрончик, В. В. Богданов, Н. А. Домуховский, А. С. Коллеров, Н. И. Синадский, Д. А. Хорьков, М. Ю. Щербаков; Под ред. Н. И.Синадского – Екатеринбург: ГОУ ВПО УГТУ - УПИ, 2008. – 246 с.
-
Анохин М. И., Варновский Н. П., Сидельников В. М., Ященко В. В. Криптография в банковском деле. —М.: Изд-во МИФИ, 1997.
-
Аршинов М. Н., Садовский Л. Е. Коды и математика. — М.: Наука, 1983.
-
А.В. Бабаш, Г.П. Шанкин. Криптография. М., Солон-Р, 2002.
-
А.П. Баранов, Н.П. Борисенко, П.Д. Зегжда, С.С. Корт, А.Г. Ростовцев "Математические основы информационной безопасности" .
-
С. Баричев, Р. Серов "Основы современной криптографии"
-
A.A-Большаков, А.Б. Петряев, В.В. Платонов, Л.М. Ухлинов. "Основы обеспечения безопасности данных в компьютерных системах и сетях. Часть 1. Методы, средства и механизмы защиты данных", ВИККА им. Можайского, СПБ, 1995.
-
Брассар Ж. Современная криптология. М.: Полимед, 1999.
-
Бейкер А. Введение в теорию чисел. Мн.: Вышэйш. шк., 1995.
-
Березин Б. В., Дорошкевич П. В. Цифровая подпись на основе традиционной криптографии // Защита информации.— 1992.— Вып. 2.— С.148—167.
-
Болл У., Коксетер Г. Математические эссе и развлечения (криптография и криптографический анализ). —М.; Мир, 1986.
-
Брассар Ж. Современная криптология. — М.:Полимед,1999.
-
Варфоломеев А. А., Пеленицын М. Б. Методы криптографии и их применение в банковских технологиях. — М.: Изд-во МИФИ, 1995.
-
Варфоломеев А. А., Жуков А. Е., Пудовкина М. А. Поточные криптосистемы. Основные свойства и методы анализа стойкости. — М.: Изд-во МИФИ, 2000.
-
Варфоломеев А. А., Домнина О. С., Пеленицын М. Б, Управление ключами в системах криптографической защиты банковской информации. — М.: Изд-во МИФИ, 1996.
-
Введение в криптографию / Под ред. В.В. Ященко. М.: МЦНМО, 2001.
-
М. Вельшенбах. Криптография на Си и C++ в действии. Под редакцией П.В. Семьянова. М., Триумф, 2004.
-
Гайкович В., Першин А. Безопасность электронных банковских систем.— М.: Единая Европа, 1994.
-
Герасименкo В.А., Малюк A.A. Основы защиты информации: Учеб. пособие. М.:МИФИ, 1997.
-
Диффи У., Хеллман М. Э. Защищенность и имитостойкость. Введение в криптографию // ТИИЭР. — 1979. — Т. 67. — № 3.
-
Духан, Е. И. Применение программно-аппаратных средств защиты компьютерной информации: учеб. пособие / Е. И. Духан, И. Н. Синадский, Д. А. Хорьков. – Екатеринбург: ГОУ ВПО УГТУ-УПИ, 2007. – 174 с.
-
Жельников В. Криптография от папируса до компьютера. М.: ABF, 1996.
-
Зубов, А.Ю. Криптографические методы защиты информации. Совершенные шифры. -М.: Гелиос АРВ, 2005.
-
Дэвид Кан. Взломщики кодов. - М.: Центрполиграф, 2000.
-
Д.Кан "Разведчики и цензура"
-
Нил Коблиц, Курс теории чисел и криптографии, М. ТВП, 2001
-
Конхейм А. Г. Основы криптографии. — М.: Радио и связь, 1987.
-
Кузьминов Т. В. Криптографические методы защиты информации. — Новосибирск: Наука, 1998.
-
Лидл Р., Нидеррайтер Г. Конечные поля: В 2 т. М.: Мир, 1988.
-
Мельников В.В. Защита информации в компьютерных системах. М.: Финансы и статистика, 1997.
-
Молдовян Н.А. Проблематика и методы криптологии. СПб.: Изд-во СПбГУ, 1998.
-
Молдовян Н.А. Скоростные и блочные шифры. СПб.: Изд-во СПбГУ, 1998.
-
А.А. Молдовян, Н.А. Молдовян, Б.Я. Советов. Криптография. М.. Лань, 2001.
-
МэссиДж.Л. Современная криптология: введение // ТИИЭР. — 1988. — Т. 76. — № 5.
-
Нечаев В.И. Элементы криптографии. Основы теории защиты информации. М.: Высш. шк., 1999.
-
Ноден П., Китте К. Алгебраическая алгоритмика. М.: Мир, 1999.
-
ОрловВ.А., Филиппов Л.И. Теория информации в упражнениях и задачах. М.: Высш. шк., 1976.
-
Петров А. А. Компьютерная безопасность. Криптографические методы защиты. — М.:ДМК, 2000.
-
Романец Ю.В., Тимофеев П.А., Шаньгин В.Ф. Защита информации в компьютерных системах и сетях. -М.: Радио и связь, 1999.
-
Ростовцев А.Г., Матвеев В.А. Защита информации в компьютерных системах. Элементы криптологии. Под редакцией П. Д. Зегжды. Издание СПбГТУ, 1993.
40. Ростовцев А.Г. Алгебраические основы криптографии. СПб, Мир и Семья, 2000.
-
Ростовцев А.Г.. Маховенко Е.Б. Введение в криптографию с открытым ключом. СПб, Мир и Семья, 2001.
-
Саломаа А. Криптография с открытым ключом.—М.:Мир, 1996.
-
Сачков В.Н, Введение в комбинаторные методы дискретной математики. М.: Наука, 1982.
-
Сингх, С. Книга шифров. Тайная история шифров и их расшифровки. -М.: АСТ - Астрель, 2006.
-
Словарь криптографических терминов. Под ред. Погорелова Б.А., Сачкова В.Н. -М.: МЦНМО, 2006.
-
Соболева Т. А. Тайнопись в истории России. История криптографической службы России XVIII-начала XX в. -М.: Международные отношения, 1994.
-
Столлингс В. Криптография и защита сетей. Принципы и практика. -М.: Изд. Дом "Вильяме" 2-е изд., 2001.
-
Утешев А.Ю., Черкасов Т.М.. Шапошников А.А. Цифры и шифры. СПб.: Изд-во СПбГУ. 2001.
-
Фомичёв, В.М. Дискретная математика и криптология. 2-е изд. -М.: “ДИАЛОГ-МИФИ”, 2009.
-
Харин Ю.С., Агиевич С.В. Компьютерный практикум по математическим методам защиты информации. Мн.: БГУ, 2001.
-
Харин Ю.С., Берник В.И., Матвеев Г.А. Математические основы криптологии. Мн.: БГУ, 1999.
-
Хинчин А.Я. Цепные дроби. M.: Физматгиз, 1964.
-
Хоффман Л. Современные методы защиты информации. – М.:Мир,1970.
-
А.Чмора. Современная прикладная криптография. М., Гелиос, 2002.
-
Шеннон К. Теория связи в секретных системах//В кн.: Работы по теории информации и кибернетике.- М.: ИЛ,1963.
-
Брюс Шнайер. Прикладная криптография, 2-е издание: протоколы, алгоритмы. исходные тексты на языке Си. Под редакцией П.В. Семьянова. М., Триумф, 2002.
• Периодические издания
журнал "Защита информации. Конфидент"
журнал "Проблемы информационной безопасности. Компьютерные системы"
ИНТЕРНЕТ-ИСТОЧНИКИ
А. В. Бабаш, Г.П. Шанкин, Криптография, 2007, 511 стр., DJVU, 9.5 мб
http://ifolder.ru/19035938
Панасенко Сергей, Алгоритмы шифрования. Специальный справочник. 2009 г., 576 стр., djvu, 7,41Mb
http://ifolder.ru/14970991
Московский Государственный Технический Университет им. Н.Э. Баумана, Кафедра ИУ-8, Жуков А.Е. Системы блочного шифрования. Пособие по курсу «Криптографические методы защиты информации»
http://stream.ifolder.ru/13203588
Московский Государственный Технический Университет им. Н.Э. Баумана, Кафедра ИУ-8, Жуков А.Е. Системы поточного шифрования. Пособие по курсу «Криптографические методы защиты информации»
http://stream.ifolder.ru/13203676
Практическая Криптография, Нильс Фергюсон, Брюс Шнайер, Изд. Вильямс, 2005,416 стр.
http://www.onlinedisk.ru/file/41482/
"Handbook of Applied Cryptography".
http://www.cacr.math.uwaterloo.ca/hac/