Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kodirovanie_dlya_Filiala_v_g_Izhevske.doc
Скачиваний:
4
Добавлен:
01.04.2025
Размер:
390 Кб
Скачать
☆

2. Шифрование.

$ 2.1. Понятие шифрования.

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

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

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

► Хранить данные таким образом, чтобы они могли «сами за себя постоять». Другими словами, так закодировать данные, чтобы даже получив их, злоумыш­ленник не смог бы нанести ущерба.

Этот раздел посвящен обсуждению методов кодирования, применяемых в по­следнем случае.

Криптография

Шифрование— это кодирование данных с целью защиты от несанкционирован­ного доступа.

Процесс кодирования сообщения называется шифрованием (или зашифровкой), а процесс декодирования — расшифровыванием (или расшифровкой). Само коди­рованное сообщение называется шифрованным (или просто шифровкой), а при­меняемый метод называется шифром.

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

Область знаний о шифрах, методах их создания и раскрытия называется кри­птографией (или тайнописью).

Свойство шифра противостоять раскрытию называется криптостойкостью (или надежностью) и обычно измеряется сложностью алгоритма дешифрации.

Примечание.

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

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

Шифрование с помощью случайных чисел(закрытым ключем).

Пусть имеется датчик псевдослучайных чисел, работающий по некоторому опре­деленному алгоритму. Часто используют следующий алгоритм:

Ti+1=(aTi + b) mod c,

где Ti - предыдущее псевдослучайное число, Ti+1 — следующее псевдослучайное число, а коэффициенты а, b, с постоянны и хорошо известны. Обычно с = 2n, где п — разрядность процессора, a mod 4 = 1 и a, b — нечетные.

В этом случае последовательность псевдослучайных, чисел имеет период с.

Процесс шифрования определяется следующим образом. Шифруемое сообще­ние представляется в виде последовательности слов S0,S1,..., каждое длины п, которые складываются по модулю 2 со словами последовательности T0,T1,..., то есть Ci=Si+2Ti.

Последовательность To, T1,... называется гаммой шифра.

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

Ключом шифра является начальное значение То, которое является секретным и должно быть известно только отправителю и получателю шифрованного сооб­щения.

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

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

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

Криптостойкость

Описанный выше метод шифрования обладает существен­ным недостатком. Если известна хотя бы часть исходного сообщения, то все сообщение может быть легко дешифровано. Действительно, пусть известно одно исходное слово Si. Тогда Ti= Ci +2 Si

и далее вся правая часть гаммы шифра определяется по указанной формуле дат­чика псевдослучайных чисел.

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

Для повышения криптостойкости симметричных шифров применяют различные приемы:

1) вычисление гаммы шифра по ключу более сложным (или секретным) спосо­бом;

2)применение вместо +2 более сложной (но обратимой) операции для вычисле­ния шифровки;

3)предварительное перемешивание битов исходного сообщения по фиксирован­ному алгоритму.

Наиболее надежным симметричным шифром считается DES (Data Encryption Standard), в котором используется сразу несколько методов повышения криптостойкости.

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

Для описания метода шифрования с открытым ключом нужны некоторые факты из теории чисел, изложенные (без доказательств) в следующем подразделе.

$2.2. Шифрование с открытым ключом

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

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

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

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

3) определяется вторая часть открытого ключа — выбирается небольшое не­четное число е, взаимно простое с числом (р - 1)(q - 1) (заметим, что (р - 1)(q - 1) = pq(1 - 1/р)(1 - 1/q) =F(п)- фукнкция Эйлера);

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

Пояснение: d есть такое число, что e*d сравнимо с 1 по mod ((p-1)(q-1)).

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

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

Ci=(Si)e mod n

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

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

Pi=(Ci)d mod n.

ТЕОРЕМА Шифрование с открытым ключом корректно, то есть в предыдущих обозначениях Pi= Si.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]