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

Шифры побитовой обработки

С наступлением ХIХ века и шквалом изобретений в области электричества, а затем и радио криптография перешла на качественно новый уровень - началась эра цифровой криптографии. Представление символов сначала в виде чисел из некоторого диапазона, а затем и в виде двоичных сигналов (код Морзе: “точка/тире” “единица/ноль”. “сиг­нал/пауза’) открыло огромные возможности для шифрования.

Революционным шагом в криптографии стало предложение сотрудника телефон­ной компании Г. Вернама в 20 годах ХХ века автоматизировать шифрование телетайпных посланий по следующей схеме. Информация на телетайпной ленте представляла собой последовательность отверстий и не пробитых участков, соответствующих нулям и едини­цам. Вернам предложил на передающей стороне разместить замкнутую в кольцо ленту с довольно длинной последовательностью подобных же нулей и единиц — она играла роль пароля. В момент передачи очередного импульса в канал связи лента- пароль сдвигалась на одну позицию и с нее считывалось текущее двоичное значение. Если был считан 0, то исходный двоичный сигнал не изменялся, если на ленте-пароле в этом месте оказывалась 1, то исходный сигнал инвертировался. На приемной стороне должна была присутствовать точно такая же лента и, причем в том же начальном положении, как у отправителя. Про­цедура дешифрования точно соответствует процедуре шифрования.

Помимо того, что шифровальный аппарат Вернамабыл, по-видимому, первым полностью автоматическим электрическим шифратором, данная схема содержала две очень интересные идеи. Во-первых, в ней была применена операция сложения по модулю 2, ставшая базовой в цифровой криптографии. Заметим, что если примененную Вернамом операцию изменения одного бита в замости от значения другого представить, как сложе­ние двух двоичных чисел с отбрасыванием старшего бита, то правило выполнится для всех четырех возможных комбинаций: 0Å0=0, 0Å1=1, 1Å0=1, 1Å1=0. Подобная операция имеет еще одно название — исключающее ИЛИ - и записывается двумя обозначениями: «Å» и ХОR– английским сокращением от исключающее ИЛИ (англ. eXclusiveOR). В от­ношении сложения по модулю 2 интересен еще один факт — обратной к нему , т.е. вос­станавливающей операцией является кроме вычитания по модулю 2 еще и сама эта опера­ция, т. е. для любых Х и У выполняется (ХÅУ)ÅУ=Х - это очень удобное свойство не­редко используется в различных современных шифрах и схемах.

Вернам предполагал использовать ключ только один раз. Длина ключа равна длине шифруемого открытого текста. Впоследствии К. Шеннон доказал что такой шифр не рас­крываем. Однако сложности формирования, хранения и передачи ключа, длина которого равна длине открытого текста, делают такой метод очень непрактичным и дорогостоящим.

Вторым интересным моментом оказалось то, что если ленту, склеенную у Вернама в кольцо, сделать потенциально бесконечно длинной, и равной длине сообщения, то дан­ный шифр станет, абсолютно стойким. Не имея информации о ленте-пароле, третья сто­рона не сможет сделать никаких предположений о содержании исходного сообщения. Ведь, сам факт взлома шифра может быть установлен только в том случае, когда дешиф­ровщик получит из перехваченного послания какое-либо осмысленное сообщение. А если пароль по длине равен самому сообщению, то существует огромное множество потенци­альных паролей, которые при наложении на шифровку будут давать осмысленный текст — и все время разный. Из одного и того же послания, подбирая разные пароли, можно про­честь и «Я Вас люблю» “Уходи прочь”.

Недостатком такой системы является неудобство хранения большого пароля, а главное — одноразовость его использования. Ведь получается, что для каждого послания необходим свой пароль, а значит, отправителю и получателю нужно предварительно им обменяться. Решение состоит в заблаговременном обмене большим объемом ключей и надежном хра­нении их «до поры до случая». Естественно, в современном мире роль ленты пароля иг­рает уже двоичная информация на цифровом носителе, а само преобразование выполня­ется вычислительной техникой. Но одноразовый блокнот, как теперь называют данную схему, все еще имеет очень широкое применение именно из-за своей 100%-й стойкости к взлому при перехвате шифровок третьей стороной.

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

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

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

AND OR NOT XOR

Простейший и наименее стойкий шифр использует только опера­тор NOT (напомним, что оператор NOTвызывает инверсию каждого би­та в байте: 1 переходит в 0, а 0 в 1). Следовательно, байт, ин­вертированный дважды, равен исходному.

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

В улучшенном методе кодирования с помощью побитовой обработ­ки используется оператор XOR. Оператор XOR имеет следующую табли­цу истинности:

XOR

0

0

0

0

1

1

1

0

1

1

1

0

Результат операции XOR равен TRUE (истина) тогда и только тогда, когда один оператор равен TRUE, а второй - false (ложь). Это дает XOR уникальные свойства: если выполнить операцию XOR над двумя байтами, один из которых называется ключем, а затем взять результат и ключ и снова применить к ним операцию XOR, то в ре­зультате получим исходный байт, как показано ниже:

1101 1001

XOR 0101 0011 /ключ/

1000 1010

равны

1000 1010

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