Для открытого обмена секретными ключами
ОПИСАНИЕ ПРОГРАММЫ ЛАБОРАТОРНОЙ РАБОТЫ «NEWCRY21»
Программа, реализующая алгоритмы шифрования Цезаря и Виженера, реализована в виде файла NEWCRY21.EXE, который находится на лабораторном компьютере в папке «Криптография-2». Порядок работы с программой следующий.
1. Запусти исполняемый файл программы NEWCRY21.EXE.
2. После открытия программы для входа в меню, нажми Enter, Enter, Enter, (т.е. три раза) не обращая внимание на то, что там написано о возможных настройках.
Откроется меню вида:
Шифр Цезаря
Шифp Виженеpа
ПОДСТАНОВКИ:
- на алфавите
- криптоалгоритм
ПЕРЕСТАНОВКИ:
- общие сведения
- криптоалгоритм
КРИПТОАЛГОРИТМ Диффи-Хэллмана (теория)
Криптоалгоритм Д-Х (эксперимент)
КРИПТОАЛГОРИТМ RSA
ВОПРОСЫ И ЗАДАЧИ для зачета
В Ы Х О Д ИЗ П Р О Г Р А М М Ы
ПРИЛОЖЕНИЕ: шифратор txt-файлов
Изменение настроек (доступ ограничен)
РЕГИСТРАЦИЯ ПОЛЬЗОВАТЕЛЯ
Архив сеанса (доступ ограничен)
ДОПОЛНЕНИЕ 1: Элементы теории чисел
ДОПОЛНЕНИЕ 2: Элементы криптоанализа
3. Далее работаешь в соответствии с этим меню открывая то задание, которое тебе надо.
4. Внимание: Ввод осуществляется большими русскими буквами. Для этого надо предварительно нажать правый Ctrl+Shift или Левый Shift +Правый Shift.
5. Твердый знак Ъ набирается клавишей Ё.
6. Ниже приведены все данные, которые высвечиваются в каждой из работ, оформленных как
КОМПЬЮТЕРНОЕ ПОСОБИЕ ПО УЧЕБНОЙ ДИСЦИПЛИНЕ
<ТЕОРИЯ И МЕТОДЫ ЗАЩИТЫ ИНФОРМАЦИИ>
|
|
Часть 1 - 'ОСНОВЫ КРИПТОГРАФИИ'
Раздел первый: ВВЕДЕНИЕ В ПРЕДМЕТ
Для лабораторно-практических занятий и самостоятельной работы
студентов в элективных курсах 'ТИМЗИ','КМЗИ','МЗИвКСиСО'
*************************************************************
Автор - ПАРАМОНОВ Юлий Васильевич, кафедра ТЭС, МТУСИ, Москва
Программа CRYPTO, ver. 1 (ноя 1996); CRYP6Vx (март 2001)
************************************************************
УЧТЁННЫЕ копии программы имеют лишь ОГРАНИЧЕННЫЙ срок работы
ПРЕДИСЛОВИЕ
ШИФР - форма представления сообщений для защиты от перехвата
КРИПТОАЛГОРИТМ - способ преобразования сообщения в КРИПТОГРАММУ
КРИПТОГРАММА - шифрованное сообщение, передаваемое по каналу
КЛЮЧ - секретная информация, необходимая для КРИПТОАЛГОРИТМА
КРИПТОАНАЛИЗ - общее название методов 'взлома' криптосистем
ЭНТРОПИЯ КЛЮЧА - двоичный логарифм общего числа РАЗНЫХ ключей
ЭНТРОПИЯ СООБЩЕНИЯ - то же, что и ЭНТРОПИЯ ИСТОЧНИКА СООБЩЕНИЙ
КОНФИДЕНТ - адресат КРИПТОГРАММЫ, знающий КЛЮЧ
ДИВЕРСАНТ - всякий нехороший любопытный человек, который интересуется
КРИПТОГРАММОЙ не зная КЛЮЧА и не имея на это права
ПОДСТАНОВКИ и ПЕРЕСТАНОВКИ - основные и ЕДИНСТВЕННЫЕ преобразования,
|
|
из которых конструируются сложные КРИПТОАЛГОРИТМЫ.
Ваша задача - понять физико-математический СМЫСЛ простейших криптоалгоритмов.
Программа предоставляет Вам возможность ЭКСПЕРИМЕНТАЛЬНОГО ИССЛЕДОВАНИЯ криптопреобразований.
Вы можете по своему усмотрению задавать сообщения и ключи шифров и наблюдать порождаемые ими криптограммы.
Если Вам ясна суть изучаемых преобразований, то для Вас не составит труда ответить на 'ВОПРОСЫ И ЗАДАЧИ' и получить ЗАЧЕТ.
Если Вы используете ЛЕГАЛЬНУЮ (учтенную) КОПИЮ программы, то зачет может быть документирован именной квитанцией на Вашей дискете с рабочим экземпляром файла CRYPTO
К Р И П Т О А Л Г О Р И Т М Ц Е З А Р Я
(Гай Юлий Цезаpь, pимский импеpатоp, 1-й век до н.э.)
a(i), a(j), i,j=0,1,...N-1 - символы N-ичного алфавита;
k, m - ПРЯМОЙ и ОБРАТНЫЙ К Л Ю Ч И (любые целые числа).
Если a=a(i) - с о о б щ е н и е, то к р и п т о г р а м м а c=a(j), где j = (i + k) mod N.
Если c=a(j) - к р и п т о г р а м м а, то с о о б щ е н и е a=a(i), где i=(j + m) mod N.
ИСХОДНОЕ СООБЩЕНИЕ: ПРЕДИСЛОВИЕ
ПРЯМОЙ КЛЮЧ (шифрование): 3
ОБРАТНЫЙ КЛЮЧ (дешифр.): -3
В Ы Х О Д ¦
К Р И П Т О Г Р А М М А: ТУИЗЛФОСЕЛИ
ДЕШИФРОВАННОЕ СООБЩЕНИЕ: ПРЕДИСЛОВИЕ
|
|
исходный алфавит: _АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ
пpеобpазованный алфавит: ВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ АБ_ N=33.
К Р И П Т О А Л Г О Р И Т М В И Ж Е Н Е Р А
(n-ключевой криптоалгоритм Цезаря)
КЛЮЧ шифра Виженера - это n-буквенное СЛОВО k1k2...kn. Первые n букв СООБЩЕНИЯ a1a2...an преобразуются в первые n букв КРИПТОГРАММЫ c1c2...cn по правилу: cj=(aj+kj) mod N (j от 1 до n, а суммируются порядковые номера букв в алфавите).
Эта процедура повторяется для каждого очередного отрезка сообщения длиной n букв.
____________________В ключа ключ: ВОВА
____________________В
____________________О
____________________Д сообщ сообщение: КРИПТОГРАФИЯ
Я=32 - буква сообщения
А= 1 - буква ключа
0= - буква кpиптогpаммы криптограмма: НЯЛРХЭЖСГВЛ
ЛВГСЖЭХРЛЯН
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
АБ В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я
ПОДСТАНОВКА на алфавите
Это взаимно однозначное отображение алфавита на себя. Применяемое в шифрах Цезаря и Виженера сложение по модулю N есть частный случай такого отображения (ЭНДОМОРФИЗМА). В общем случае подстановка на алфавите задается одной из N! к о д о в ы х т а б л и ц. КЛЮЧ ШИФРА ПОДСТАНОВКИ - это НОМЕР (в принципе произвольный: как договорились Алекс с Юстасом) ИСПОЛЬЗУЕМОЙ КОДОВОЙ ТАБЛИЦЫ.
|
|
Вот как выглядят 26 из 32! (>>10^32) таких таблиц:
0_АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ___13_НМПОЙИЛКЕДЗЖБАГВЭЬЯЮЩШЫЪХФЧЦСРУТ
1_БАГВЕДЗЖЙИЛКНМПОСРУТХФЧЦЩШЫЪЭЬЯЮ___14_ОПМНКЛИЙЖЗДЕВГАБЮЯЬЭЪЫШЩЦЧФХТУРС
2_ВГАБЖЗДЕКЛИЙОПМНТУРСЦЧФХЪЫШЩЮЯЬЭ___15_ПОНМЛКЙИЗЖЕДГВБАЯЮЭЬЫЪЩШЧЦХФУТСР
3_ГВБАЗЖЕДЛКЙИПОНМУТСРЧЦХФЫЪЩШЯЮЭЬ___16_РСТУФХЦЧШЩЪЫЬЭЮЯАБВГДЕЖЗИЙКЛМНОП
4_ДЕЖЗАБВГМНОПИЙКЛФХЦЧРСТУЬЭЮЯШЩЪЫ___17_СРУТХФЧЦЩШЫЪЭЬЯЮБАГВЕДЗЖЙИЛКНМПО
5_ЕДЗЖБАГВНМПОЙИЛКХФЧЦСРУТЭЬЯЮЩШЫЪ___18_ТУРСЦЧФХЪЫШЩЮЯЬЭВГАБЖЗДЕКЛИЙОПМН
6_ЖЗДЕВГАБОПМНКЛИЙЦЧФХТУРСЮЯЬЭЪЫШЩ___19_УТСРЧЦХФЫЪЩШЯЮЭЬГВБАЗЖЕДЛКЙИПОНМ
7_ЗЖЕДГВБАПОНМЛКЙИЧЦХФУТСРЯЮЭЬЫЪЩШ___20_ФХЦЧРСТУЬЭЮЯШЩЪЫДЕЖЗАБВГМНОПИЙКЛ
8_ИЙКЛМНОПАБВГДЕЖЗШЩЪЫЬЭЮЯРСТУФХЦЧ___21_ХФЧЦСРУТЭЬЯЮЩШЫЪЕДЗЖБАГВНМПОЙИЛК
9_ЙИЛКНМПОБАГВЕДЗЖЩШЫЪЭЬЯЮСРУТХФЧЦ___22_ЦЧФХТУРСЮЯЬЭЪЫШЩЖЗДЕВГАБОПМНКЛИЙ
10_КЛИЙОПМНВГАБЖЗДЕЪЫШЩЮЯЬЭТУРСЦЧФХ___23_ЧЦХФУТСРЯЮЭЬЫЪЩШЗЖЕДГВБАПОНМЛКЙИ
11_ЛКЙИПОНМГВБАЗЖЕДЫЪЩШЯЮЭЬУТСРЧЦХФ___24_ШЩЪЫЬЭЮЯРСТУФХЦЧИЙКЛМНОПАБВГДЕЖЗ
12_МНОПИЙКЛДЕЖЗАБВГЬЭЮЯШЩЪЫФХЦЧРСТУ___25_ЩШЫЪЭЬЯЮСРУТХФЧЦЙИЛКНМПОБАГВЕДЗЖ
КРИПТОАЛГОРИТМ ПОДСТАНОВКИ
КЛЮЧ - это условный номер одной из кодовых таблиц.
Данная программа принимает любой трехзначный десятичный ключ, но эффективно обеспечивает лишь 31 кодовую таблицу.
кодовая таблица: АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ
ПЕРЕСТАНОВКА
Это изменение порядка следования элементов конечного множества.
Если n - общее число элементов множества и они занумерованы: 1,2,...,n, то n-ПЕРЕСТАНОВКА есть последовательность k1k2...kn НОВЫХ номеров элементов, - элемент, имевший номер 1, становится элементом с новым номером k1 и т.д. Таким образом, n-перестановка ПЕРЕМЕШИВАЕТ множество мощности n. ЛЮБАЯ N-перестановка на АЛФАВИТЕ мощности N равносильна КАКОЙ-ТО подстановке, а ее описание рядом чисел k1k2...kN можно считать ОБОБЩЕННЫМ НОМЕРОМ кодовой таблицы, задающей эту подстановку.
Основная цель применения перестановки к сообщению (или криптограмме, полученной другим алгоритмом) - РАЗРУШИТЬ ВЕРОЯТНОСТНЫЕ СВЯЗИ в последовательности букв (ДЕКОРРЕЛИРОВАТЬ сообщение или криптограмму).
КРИПТОАЛГОРИТМ ПЕРЕСТАНОВКИ
КЛЮЧ - это n-ПЕРЕСТАНОВКА первых натуральных чисел 1,2,...,n. Сообщение разбивается на блоки по n букв, и внутри каждого блока начальный порядок букв заменяется на новый, задаваемый КЛЮЧОМ-ПЕРЕСТАНОВКОЙ: первая буква блока переходит на позицию, определенную первой цифрой ключа, вторая буква - на позицию, определенную второй цифрой ключа, и так далее. Наша программа работает со всеми ключами-перестановками при n<10.
КРИПТОАЛГОРИТМ ДИФФИ – ХЕЛЛМАНА(W.Diffi, M.Hellman, 1976)
для открытого обмена секретными ключами
Большое ПРОСТОЕ число p (модуль) и число r (основание) известны всем. Числа Xа и Xб, выбираемые из диапазона 1<X<p, - СЕКРЕТНЫЕ, а числа Yа = r^Xа (mod p) и Yб = r^Xб (mod p) - ОТКРЫТЫЕ КЛЮЧИ Алисы и Боба. Когда они нуждаются в ОБЩЕМ СЕКРЕТНОМ КЛЮЧЕ Z, каждый из них вычисляет его, возводя ЧУЖОЙ ОТКРЫТЫЙ ключ в степень СВОЕГО СЕКРЕТНОГО ключа, т.е.
Алиса: Z = (Yб)^(Xа) (mod p) = r^(Xб*Xа) (mod p),
Боб: Z = (Yа)^(Xб) (mod p) = r^(Xа*Xб) (mod p).
Число-основание r должно быть ПРИМИТИВНЫМ ЭЛЕМЕНТОМ поля Галуа GF(p) (иначе: ПЕРВООБРАЗНЫМ КОРНЕМ в ПРИВЕДЕННОЙ СИСТЕМЕ ВЫЧЕТОВ по модулю p). Как ПРОВЕРИТЬ, что выбранное число r - первообразный корень по модулю p? Разложить p-1 на ПРОСТЫЕ множители: p-1=g*f*...*q; ЕСЛИ выполнены УСЛОВИЯ:
r^([p-1]/g) <> 1 (mod p), r^([p-1]/f) <> 1 (mod p), ...... , r^([p-1]/q) <> 1 (mod p), то r - ПЕРВООБРАЗНЫЙ КОРЕНЬ по простому модулю p.
Дата добавления: 2018-04-05; просмотров: 259; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!