русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Системы шифрования с открытым ключом


Дата добавления: 2014-11-27; просмотров: 896; Нарушение авторских прав


Наряду с традиционным шифрованием на основе секретного ключа в последние годы все большее признание получают системы шифрования с открытым ключом. В таких системах используются два ключа. Информация шифруется с помощью открытого ключа, а расшифровывается с использованием секретного ключа.

В основе применения систем с открытым ключом лежит использование необратимых или односторонних функций . Эти функции обладают следующим свойством. По известному х легко определяется функция у = f(х). Но по известному значению у практически невозможно получить х. В криптографии используется односторонние функции, имеющие так называемый потайной ход. Эти функции с параметром z обладают следующими свойствами. Для определенного z могут быть найдены алгоритмы Ez и Dz. С помощью Ez легко получить функцию fz(х) для всех х из области определения. Так же просто с помощью алгоритма Dz получается и обратная функция х = f-1(y) для всех у из области допустимых значений. В то же время практически для всех z и почти для всех у из области допустимых значений нахождение f-1(y) при помощи вычислений невозможно даже при известном Ez. В качестве открытого ключа используется у, а в качестве закрытого - х.

При шифровании с использованием открытого ключа нет необходимости в передаче секретного ключа между взаимодействующими субъектами, что существенно упрощает криптозащиту передаваемой информации.

Криптосистемы с открытыми ключами различаются видом односторонних функций. Среди них самыми известными являются системы RSA, Эль-Гамаля и Мак-Элиса. В настоящее время наиболее эффективным и распространенным алгоритмом шифрования с открытым ключом является алгоритм RSA, получивший свое название от первых букв фамилий его создателей: Rivest, Shamir и Adleman.

Алгоритм основан на использовании операции возведения в степень модульной арифметики. Его можно представить в виде следующей последовательности шагов.



Шаг 1. Выбираются два больших простых числа р и q. Простыми называются числа, которые делятся только на самих себя и на 1 . Величина этих чисел должна быть больше 200.

Шаг 2. Получается открытая компонента ключа n:

n = р * q.

Шаг 3. Вычисляется функция Эйлера по формуле:

f(p, q) = (p-1) * (q-1).

Функция Эйлера показывает количество целых положительных чисел от 1 до n, которые взаимно просты с n. Взаимно простыми являются такие числа, которые не имеют ни одного общего делителя, кроме 1.

Шаг 4. Выбирается большое простое число d, которое является взаимно простым со значением f(p, q).

Шаг 5. Определяется число е, удовлетворяющее условию:

e * d = 1(modf(p, q)).

Данное условие означает, что остаток от деления (вычет) произведения е*d на функцию f(р, q) равен 1. Число е принимается в качестве второй компоненты открытого ключа. В качестве секретного ключа используются числа p и q.

Шаг 6. Исходная информация, независимо от ее физической природы, представляется в числовом двоичном виде. Последовательность бит разделяется на блоки длиной L бит, где L - наименьшее целое число, удовлетворяющее условию: L≥lоg2(n+1). Каждый блок рассматривается как целое положительное число Х(i), принадлежащее интервалу [0, n-1]. Таким образом, исходная информация представляется последовательностью чисел Х(i), i= . Значение I определяется длиной шифруемой последовательности.

Шаг 7. Зашифрованная информация получается в виде последовательности чисел Y(i), вычисляемых по формуле:

Y(i) = (Х(i))e(mod n).

Шаг 8. Для расшифрования информации используется следующая зависимость:

X(i) = (Y(i))d(mod n).

Пример применения метода RSA для криптографического закрытия информации. Примечание: для простоты вычислений использованы минимально возможные числа.

Пусть требуется зашифровать сообщение на русском языке "ГАЗ".

Для зашифрования и расшифрования сообщения необходимо выполнить следующие шаги.

Шаг 1. Выбирается p = 3 и q = 11.

Шаг 2. Вычисляется n = 3 * 11 = 33.

Шаг 3. Определяется функция Эйлера

f(p, q) = (3-1)*(11-1) = 20.

Шаг 4. В качестве взаимно простого числа выбирается число

Шаг 5. Выбирается такое число е, которое удовлетворяло бы ношению: (е*3) (mod 20) = 1. Пусть е = 7.

Шаг 6. Исходное сообщение представляется как последовательность целых чисел. Пусть букве А соответствует число 1, букве Г - число 4, букве З - число 9. Для представления чисел в двоичном коде требуется 6 двоичных разрядов, так как в русском алфавите используются 33 буквы (случайное совпадение с числом n). Исходная информация в двоичном коде имеет вид:

000100 000001 001001.

Длина блока L определяется как минимальное число из целых чисел, удовлетворяющих условию: L≥log2(33+1), так как n=33. Отсюда L = 6. Тогда исходный текст представляется в виде кортежа Х(i) = <4, 1, 9>.

Шаг 7. Кортеж Х(i) зашифровывается с помощью открытого ключа {7, 33}:

Y(1) = (47) (mod 33) = 16384 (mod 33) = 16;

Y(2) = (17) (mod 33) = 1 (mod 33) = 1;

Y(3) = (97) (mod 33) = 4782969 (mod 33) = 15.

Получено зашифрованное сообщение Y(i) = <16, 1, 15>.

Шаг 8. Расшифровка сообщения Y(i) = <16, 1, 15> осуществляется с помощью секретного ключа {3, 33}:

Х(1) = (163) (mod 33) = 4096 (mod 33) = 4;

Х(2) = (13) (mod 33) = 1 (mod 33) = 1;

Х(3) = (153) (mod 33) = 3375 (mod 33) = 9.

Исходная числовая последовательность в расшифрованном виде X(1) = <4, 1, 9> заменяется исходным текстом "ГАЗ".

Система Эль-Гамаля основана на сложности вычисления дискретных логарифмов в конечных полях. Основным недостатком систем RSA и Эль-Гамаля является необходимость выполнения трудоемких операций в модульной арифметике, что требует привлечения значительных вычислительных ресурсов.

 



<== предыдущая лекция | следующая лекция ==>
Аддитивные методы шифрования | Стандарты шифрования.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.177 сек.