
- •Тема 39н_работа№_Щукавицкий
- •2.2. Первая система с открытым ключом — система Диффи—Хеллмана
- •Изучение криптографии на уроках информатики
- •Аффинные криптосистемы.
- •Система Хилла.
- •Криптографическая система с открытым ключом.
- •Электронная подпись.
- •Задания для дешифровки текстов, зашифрованных методами перестановки
Пр. раб. №5. Шифрование информации. Дешифрование.
Цель работы
Студент должен
знать: - способы и методы шифрования;
- нормативные документы по шифрованию;
уметь: - пользоваться способами и методами шифрования.
План работы:
Теория.
ЗАДАНИЕ1. Перечислите основные определения и теоремы с примерами. (Ваши знания оцениваются удовлетворительно)
ЗАДАНИЕ2. Изучите и запишите в виде таблицы ответы на:
Контрольные задания
Привести результат выражений 5, 27, 16, -7, -13, 3+8, 3-9, 3*8, 3*8*5:
По модулю 10,
По модулю 11.
Вычислить, используя быстрые алгоритмы возведения в степень 28 mod 10, 37 mod 10, 719 mod 100, 757 mod 100.
Разложить на простые множители числа 108, 77, 65, 30, 159.
Определить, какие из пар чисел (25,12), (25,15), (39,13), (40,27) взаимно-просты?
Найти значения функции Эйлера φ(14), φ(20)
Используя свойства функции Эйлера, вычислить φ(53), φ(21), φ(159)
Используя теорему Ферма, вычислить 313 mod 13, 522 mod 11, 317 mod 5
Используя теорему Эйлера, вычислить 39 mod 20, 214 mod 21, 2107 mod 159.
С помощью алгоритма Евклида найти значения gcd(21,12), gcd(30,12), gcd(24,40), gcd(33,16).
(Ваши знания оцениваются хорошо)
ЗАДАНИЕ3. Оформите по изученному тексту теории и учебника названия шифров и методов шифрования с примерами (Ваши знания оцениваются отлично)
Оформленную работу отправить по электронной почте вложением
по адресу 209-17@credcol.ru
Тема 39н_работа№_Щукавицкий
Ход работы
Теория КРИПТОСИСТЕМЫ С ОТКРЫТЫМ ключом
Предыстория и основные идеи
Рассмотрим три задачи, решение которых поможет нам лучше понять идеи и методы криптографии с открытым ключом. Все эти задачи имеют важное практическое значение.
Первая задача — хранение паролей в компьютере. Мы знаем, что каждый пользователь в сети имеет свой секретный пароль. При входе в сеть пользователь указывает свое имя (несекретное) и затем вводит пароль. Проблема состоит в следующем: если хранить пароль на диске компьютера, то Ева может прочитать его, а затем использовать для несанкционированного доступа (особенно легко это сделать, если Ева работает системным администратором этой сети). Поэтому необходимо организовать хранение паролей в компьютере так, чтобы такой «взлом» был невозможен.
Вторая задача возникла с появлением радиолокаторов и системы ПВО. При пересечении самолетом границы радиолокатор спрашивает пароль. Если пароль верный, то самолет «свой», в противном случае — «чужой». Здесь возникает такая проблема: так как пароль должен передаваться по открытому каналу (воздушной среде), то противник может прослушивать все переговоры и узнавать правильный пароль. Затем «чужой» самолет в случае запроса повторит перехваченный ранее «правильный» пароль в качестве ответа локатору и будет пропущен.
Третья задача похожа на предыдущую и возникает в компьютерных сетях с удаленным доступом, например, при взаимодействии банка и клиента. Обычно в начале сеанса банк запрашивает у клиента имя, а затем секретный пароль, но Ева может узнать пароль, так как линия связи открытая.
Сегодня все эти проблемы решаются с использованием криптографических методов. Решение всех этих задач основано на важном понятии односторонней функции (one-way function).
Определение 2.1. Пусть дана функция
определенная на конечном множестве А (х 6 а), для которой существует обратная функция
Функция называется односторонней если вычисление по формуле (2 1) — простая задача, требующая немного времени, а вычисление по (2 2) — задача сложная, требующая привлечения массы вычислительных ресурсов, например, 106 —1010 лет работы мощного суперкомпьютера
Данное определение, безусловно, неформально Строгое определение односторонней функции может быть найдено в [26, 28], но для наших целей достаточно и вышеприведенного
В качестве примера односторонней функции рассмотрим следующую:
где р — некоторое простое число (re такое, которое делится без остатка только па себя и на единицу), a- целое число из множества {1,2, … , р — 1}
Обратная функция называется дискретным логарифмом и обозначается
Для того чтобы обеспечить трудность вычисления по (2 4) при использовании лучших современных компьютеров, в настоящее время используются числа размером более 512 бит. На практике часто применяются и другие односторонние функции, например, так называемые хеш функции, оперирующие с существенно более короткими числами порядка 60-120 бит (они будут рассмотрены далее)
Сначала мы покажем, что вычисление но (2 3) может быть выполнено достаточно быстро. Начнем с примера вычисления числа
Используем одностороннюю функцию (2.3) для решения всех трех задач, описанных в начале данного раздела, не забывая, однако, что точно так же может быть использована и любая другая односторонняя функция.
Начнем с хранения паролей в памяти компьютера. Решение задачи основано на том, что пароли вообще не хранятся! Точнее, при регистрации в сети пользователь набирает свое имя и пароль; пусть, например, его имя — «фрукт», а пароль — «абрикос». Компьютер рассматривает слово «абрикос» как двоичную запись числа х и вычисляет (2.3), где аир— два несекретные числа, возможно даже, всем известные. После этого в памяти компьютера заводится пара (имя, у), где у вычислено по (2.3) при х = пароль. При всех дальнейших входах этого пользователя после ввода пары («фрукт», «абрикос»), компьютер вычисляет по (2.3) новое значение унов с х = «абрикос» и сравнивает с хранящимся в памяти ранее вычисленным значением у. Если t/нов совпадает с хранящимся в памяти у, соответствующим данному имени, то это законный пользователь. В противном случае это Ева.
Ева могла бы попытаться найти х по у. Однако мы видели, что уже при 90-значных числах для этого потребуется более чем 1022 лет. Таким образом, представленная система хранения пароля весьма надежна и в настоящее время используется во многих реальных операционных системах.
Рассмотрим решение второй задачи (ПВО и самолет). Можно использовать следующий метод. Каждому «своему» самолету присваивается секретное имя, известное системе ПВО и летчику, точнее, бортовому компьютеру. Пусть, например, одному из самолетов присвоено секретное имя СОКОЛ, и этот самолет приближается к границе 01 февраля 2005 года в 12 час.45 мин. Тогда перед приближением к границе бортовой компьютер самолета формирует слово
Другими словами, компьютер на самолете и станция ПВО прибавляют к секретному слову сведения о текущем времени и, рассматривая полученное слово как число х, вычисляют у = ах mod р, где а и р не секретны. Затем самолет сообщает число у станции ПВО. Станция сравнивает вычисленное ею число у с полученным от самолета. Если вычисленное и полученное значения совпали, то самолет признается как «свой». Противник не может взломать эту систему. Действительно, с одной стороны, он не знает секретного слова СОКОЛ и не может найти его по у, так как вычисление х по у занимает, скажем, 1022 лет. С другой стороны, он не может просто скопировать у и использовать его в качестве ответа в будущем, так как время пересечения границы никогда не повторяется и последующие значения у будут отличаться от первоначального.
Рассмотренный вариант решения «задачи ПВО» требует точной синхронизации часов в самолете и в локаторе. Эта проблема достаточно легко решается. Например, служба навигации постоянно передает метки времени в открытом виде (время не секретно), и все самолеты и локаторы используют эти метки для синхронизации своих часов. Но есть более тонкие проблемы. Метка времени добавляется в слово х для того, чтобы все вычисляемые значения у были различны, и противник не мог их повторно использовать. Однако противник может попытаться мгновенно повторить у в пределах текущей минуты. Как предотвратить эту возможность? Это первый вопрос. Другое затруднение возникает в ситуации, когда самолет посылает число у в конце 45-й минуты, а локатор принимает его в начале 46-й. Мы предоставляем читателю возможность самостоятельно предложить вариант решения этих проблем.
Другой способ решения «задачи ПВО» возможен, если мы будем использовать дополнительный открытый канал передачи данных от локатора к самолету. Как и выше, каждый «свой» самолет и локатор знают секретное слово (типа СОКОЛ), которое не заменяется. Обнаружив цель, локатор посылает ей случайно сгенерированное число а («вызов»). Самолет вычисляет у = ах mod p, где х — секретное слово («СОКОЛ»), и сообщает число у локатору. Локатор воспроизводит те же вычисления и сравнивает вычисленное у и принятое. В этой схеме не нужно синхронизировать часы, но, как и ранее, противник не может повторить число у, так как локатор всякий раз посылает разные вызовы (а). Интересно, что эта задача, по-видимому, была исторически первой, при решении которой использовались односторонние функции.
Третья задача решается совершенно аналогично, и оба рассмотренных метода формирования пароля применимы и используются в реальных сетевых протоколах.