Шифрование данных

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

ê Физическая изоляция компьютера.— Пожалуй, это наиболее надёжный способ.

ê Логический барьер – т.е. система паролей, регистрации и идентификации пользователей. Борьба между хакерами и системами идёт с переменным успехом.

ê Закодировать данные так, чтобы даже в случае несанкционированного доступа к ним злоумышленник не смог бы нанести ущерба.

Шифрование – это кодирование с целью защиты от несанкционированного доступа. Также называется процесс кодирования, а процесс декодирования – расшифровыванием (расшифровкой).

Основное требование к шифру состоит в том, чтобы расшифровка была возможно только при наличии санкции, т.е. некоторой дополнительной информации (или устройства), которая называется ключом шифра. Процесс декодирования шифровки без ключа называется дешифрованием. Криптостойкость – надёжность – обычно оценивается сложностью алгоритма дешифрации.

Симметричное шифрование. Пусть имеется датчик псевдослучайных чисел, работающий по некоторому алгоритму (книга, «Энигма», шифровальные таблицы). Часто используют алгоритм

Ti+1 = (a×Ti +b) mod c,

где a, b, c постоянны, обычно c=2n, где n – разрядность процессора, a×mod 4 =1, b нечётное. В этом случае последовательность чисел имеет период с. Процесс шифрования определяется следующим образом. Шифруемое сообщение представляется в виде последовательности слов S0, S1, …, каждое длины n, которые складываются по модулю 2 со словами последовательности T0, T1,…, т.е. Ci = Si Å2 Ti. Процесс расшифровки очевиден: необходимо сложить полученную последовательность с той же самой гаммой шифра: Si = Ci Å2 Ti.

Недостатком данного метода шифрования является возможность расшифровки по одному известному слову: Ti = Ci Å2 Si, и вся гамма шифра восстанавливается по формуле датчика псевдослучайных чисел (т.е. эту машинку тоже нужно знать).

Шифрование с открытым ключом не является симметричным. – Для зашифровки и расшифровки используются разные ключи.

Шифрование происходит следующим образом.

1. Получателем сообщений производится генерация открытого ключа (пара чисел n и е) и закрытого ключа (число d). Для этого:

· выбираются два простых числа p и q;

· определяется первая часть открытого ключа: n=pq;

· Определяется вторая часть открытого ключа – выбирается небольшое нечётное число е, взаимно простое с числом (p–1)(q–1) (=pq(1–1/p)(1–1/q)=j(n));

· определяется закрытый ключ: d= e–1mod((p–1)(q–1)).

После чего открытый ключ (числа n и е) сообщается всем отправителям сообщений.

2. Отправитель шифрует сообщение (разбивая его, если нужно, на слова длиной менее log2n разрядов):

Ci = (Si)e mod n

и отправляет получателю.

3. Получатель расшифровывает сообщение с помощью закрытого ключа d:

Pi = (Ci)d mod n

Шифры с открытым ключом сравнительно просты в реализации, но при этом обладают величайшей надёжностью. Для дешифровки необходимо разложить открытое число n на множители, подобрать числа р и q, и далее можно легко вычислить секретный ключ d. Но дело в том, что в настоящее время известны эффективные алгоритмы определения простоты чисел, которые позволяют быстро подобрать пару очень больших простых чисел (по 100 и больше цифр в десятичной записи). И в то же время неизвестны эффективные алгоритмы разложения очень больших чисел на множители. Разложение числа в 200 цифр потребовало бы сотен лет работы суперкомпьютера.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: