
- •Оглавление
- •Понятие информационной безопасности
- •Виды, факторывозникновения, способы воздействия и защитыот угроз информационным объектам
- •Методы и средства защиты информации
- •Подходы к обеспечению информационной безопасности
- •Основные понятия криптологии
- •Симметричные криптосистемы
- •Асимметричные криптосистемы
- •Предыстория вопроса
- •Односторонние функции
- •Сравнение вычислений прямой и обратной функций
- •Использование односторонней функции для решения задач
- •Электронная цифровая подпись (эцп)
- •Шифр rsa
- •Электронная цифровая подписьRsa
- •Передача секретной информации по открытым каналам
- •Система Диффи-Хеллмана
- •Шифр Шамира
- •Шифр Эль-Гамаля
- •Электронные деньги
- •Механизм электронных наличных
- •Преимущества электронных денег
- •Компьютерные вирусы
- •Правовая защита программных продуктов и бд
- •Общие положения
- •Авторское право.
- •Лицензии
- •Авторское право
- •Стандарты информационной безопасности
- •Международные стандарты
- •Защита в Интернет
- •Государственные российские стандарты
Сравнение вычислений прямой и обратной функций
Для вычисления
дискретного логарифма одним из самых
быстрых методов является метод “шаг
младенца-шаг великана”. Он позволяет
найти дискретный логарифм за 2
умножений.
Покажем, что для больших чисел
pвычислениеобратной
функции по сравнению с вычислением
прямой функции происходит значительно
труднее. Т.е. функция y=axmod p
является односторонней. Составим
следующую таблицу.
Табл. 7.1.
Количество десятичных цифр в числе р |
Количество умножений для вычисления прямой функции, 2*log2p |
Количество умножений для вычисления обратной функции, 2* |
12 |
2*40=80 |
2*106 |
60 |
2*200=400 |
2*1030 |
90 |
2*300=600 |
2*1045 |
90 десятичных цифр соответствует 298 двоичным цифрам или 37 символам.
Рассмотрим компьютер, который способен умножить два 90-значных числа за 10-14 секунды или 100 триллионов пар чисел за одну секунду. Таких компьютеров пока не существует.
Тогда прямая функция вычисляется за tпр = 600*10-14 = 6*10-12секунд.
Обратная функция вычисляется за tобр = 2*1045*10-14 =2*1031секунд = 1022лет.
Видно, что вычисление обратной функции для 90-значных десятичных чисел (37-символьных паролей) практически невозможно.
Использование односторонней функции для решения задач
Расскажем, как решаются поставленные в пункте 7.1 задачи.
Хранение паролей в компьютере.
Идея состоит в том, чтобы пароли в явном виде вообще не хранить в компьютере. Пусть имя пользователя «Конфета», а пароль «Тузик». Компьютер рассматривает слово «Тузик» как число «х» и вычисляет y=axmod p, где «а» и «р» известные всем числа. После первого ввода в памяти компьютера заводится пара («Конфета»;у). При дальнейших входах после ввода пары («Конфета»; «Тузик») компьютер вычисляет «у новое» и сравнивает с хранящимися у него в памяти. Если у новое=у, то это легальный пользователь. Злоумышленник может прочитать «у» и попытаться по нему вычислить пароль «х», но для 37-символьных паролей на это уйдет 1022 лет.
Банк-клиент.
Здесь имеется два варианта.
Вариант а. Пусть клиент банка имеет секретное имя «Титан», известное только банку и клиенту. Клиент посылает финансовый документ в 11.56 12 октября 2012 года. Компьютер клиента формирует слово «Титан 11561210 2012», рассматривает его как число «х», вычисляет y=axmod p, посылает «у» в банк по телефону. Банк вычисляет соответствующие «у» для всех зарегистрированных клиентов (с учетом времени). Если полученный от клиента «у» совпадает с одним из вычисленных, то клиент свой. Если клиент свой, то банк принимает сопутствующий финансовый документ.
Противник не может взломать эту систему, т.к.:
он не знает секретного слова «Титан»,
он не может найти его по перехваченному «у», т.к. это практически невозможно,
он не может скопировать «у» и повторить, т.к. время все же разное и от одного клиента поступают разные «у».
У этого варианта есть проблемы:
требуется точная синхронизация часов клиента и банка. Решается приемом меток мирового времени.
Противник может перехватить «у» и повторить его в течение одной минуты.
Клиент посылает «у» в конце 56 минуты, а банк получает его в начале 57-й.
Вариант б. Пусть имеется дополнительный открытый канал связи от банка к клиенту, та же самая телефонная сеть. Каждый клиент имеет секретное имя, например, «Титан». Получив сигнал клиента о необходимости связи, банк посылает ему случайное слово «а» (вызов). Клиент вычисляет y=axmod p, где х = «Титан», и посылает «y» в банк. Банк проводит те же вычисления для всех зарегистрированных клиентов и сравнивает вычисленные «у» с полученным. Здесь не нужно синхронизировать часы. Противник не может повторить «у», т.к. вызов «а» все время разный. Противник не может вычислить «у», т.к. не знает «х». Противник не может вычислить секретный «х» по известным ему «a,p,y».
Свой-чужой самолет.
Решается аналогично второй задаче. Оба рассмотренных варианта формирования пароля применяются в реальных системах «свой-чужой». В решении Банк заменяется на ПВО, Клиент заменяется Самолетом, Телефон – воздушной средой.
Вариант а. Пусть свой самолет имеет свое секретное имя, например, «Орел», известное только ПВО и самолету. Самолет приближается к границе в 17.35 31\03\2012. Бортовой компьютер формирует слово «Орел 17 35 31 03 2012», рассматривает его как число х, вычисляет y=axmod p, посылает у на ПВО. ПВО вычисляет соответствующие удля всех зарегистрированных самолетов (с учетом времени). Если полученный у совпадает с одним из вычисленных, то самолет свой. Противник не может взломать эту систему, т.к.:
он не знает секретного слова «Орел».
он не может найти его по перехваченному у, т.к. это практически невозможно.
он не может скопировать у и повторить, т.к. время все же разное.
У этого варианта есть проблемы:
Требуется точная синхронизация часов самолета и ПВО.
Противник может перехватить у и повторить его в течение одной минуты.
Самолет посылает «у» в конце 35 минуты, а ПВО получает его в начале 36минуты.
Вариант б. Вариант возникает при наличии дополнительного открытого канала связи от ПВО к самолету. Каждый свой самолет имеет секретное имя, например, «Орел». Обнаружив самолет, ПВО посылает ему случайное слово «а» (вызов), самолет вычисляет y=axmod p, где х = «Орел», и посылает на ПВО. ПВО проводит те же вычисления для всех своих самолетов и сравнивает вычисленное«у» с полученным. Здесь не нужно синхронизировать часы. Противник не может повторить у, т.к. вызов а все время разный. Противник не может вычислить секретный х по известным ему a,p,y.
Задача «свой-чужой» была исторически первой, где использовались односторонние функции.