Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2. Часть 1.doc
Скачиваний:
103
Добавлен:
02.06.2015
Размер:
5.54 Mб
Скачать

Глава 3.

Поточные шифры

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

Открытый Шифра- Шифртекст Шифртекст Шифра-

текст тор тор

Канал связи

Отправитель Получатель

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

Обычно поточный шифр удобно представить в виде трех блоков

Узел выработки Канал

исходной информации связи

Узел усложнения

Открытый текст Узел наложения шифра Шифрованный

текст

Канал связи

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

Обычно первые два, а иногда и все три блока имеют внутреннюю память. То, что получается на выходе, зависит не только от входа, но и от предыстории, от внутреннего состояния.

Для математического описания работы узлов и блоков шифратора обычно используется терминология теории автоматов, т.е. шифратор – это конечный автомат.

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

Иногда в схеме присутствуют и некоторые несекретные параметры, называемые маркантами или синхропосылками. Делается это с той целью, чтобы усложнить задачу дешифрования. Если бы функционирование схемы зависело только от ключа, то все промежуточные последовательности (при отсутствии обратных связей) при, скажем, двукратном использовании ключа просто бы совпадали. Это – потенциальная криптографическая слабость. Термин «синхропосылка» обычно применяется для электронных шифраторов, а «маркант» – для дисковых шифраторов, о которых пойдет речь ниже.

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

Р1, Р2, ......, Рt, .......

и шифрование открытого текста

i1,i2, ........, it, .......

будем проводить по правилу

y1 = P1(i1), .........., yt = Pt(it),......

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

«Энигма» в переводе означает «Загадка». Шифратор изобретен в 1917 г. Эдваром Хеберном. Промышленная версия создана чуть позже берлинским инженером Артуром Кирхом (некоторые называют его Артуром Шербиусом). Активно шифратор «Энигма» и его модификации использовались в годы второй мировой войны. «Энигма» вначале представляла собой 4 вращающихся на одной оси барабана – диска.

Открытый

текст Шифрованный

текст

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

В процессе шифрования на один из контактов левого диска поступал электрический импульс. Так как барабаны соприкасались контактами, то электрический импульс попадал на выход, проходя через четыре диска и претерпевая четыре простые замены. Исполняющее устройство (пишущая машинка или перфоратор) фиксировало знак шифрованного текста в соответствии с тем, на какой контакт выходного диска поступал электрический импульс. Поскольку в каждый такт шифрования сдвигался на один шаг хотя бы один диск, подстановка – простая замена, по которой осуществлялось шифрование, менялась для каждого символа открытого текста. Ключом шифратора, который сменялся каждый сеанс, являлся набор начальных угловых положений дисков. Долговременным ключом, он менялся очень редко, служили коммутации дисков – соединение проводов внутри дисков. Для затруднения расшифрования диски день ото дня переставлялись местами или менялись, т.е. 4 диска выбирались из комплекта, состоящего из 10-20 дисков. Для того, чтобы не менять начальные установки на каждый сеанс связи, в некоторых сетях закрытой связи использовался маркант. Делалось это следующим образом: шифровальщик выбирал какую-то случайную начальную установку дисков. Далее шифровал на нем 4 заранее оговоренные буквы, например, АААА, Полученный шифрованный текст он не пересылал получателю, а использовал в качестве начальной установки дисков при шифровании. В начале шифрованного текста проставлялся маркант – выбранные шифровальщиком случайные начальные установки.

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

Уравнения шифрования, связывающие знаки открытого it и шифрованного текста, имеют вид

Zt=P1(t)P2([t/n]))P3([t/n2])P4([t/n3])it,

где Pi(t) – подстановка, которая реализуется при повороте i-го диска на t шагов;

n –число символов в алфавите открытого текста;

[x] – целая часть x.

Очевидно, что Pi(t + n)=Pi(t), если n – алфавит открытого текста или, что то же самое, число угловых положений диска.

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

Шифратор Хагелин (рис. 1). В качестве иллюстрации механических машин мы обсудим машину С-36 известного разработчика криптографических машин Бориса Хагелина. Она известна также как М-209 Converter и использовалась в армии США еще в начале пятидесятых годов. При описании шифратора Хагелин мы используем следующие работы.

  1. Саломаа А. Криптография с открытым ключом. Пер. с англ. А.А.Болотова и И.А.Вихлянцева под редакцией А.Е.Андреева и А.А.Болотова. М.: Мир, 1996.

  2. Barker, W.G. Cryptanalysis of the Hagelin Cryptograph, Aegean Park Press, 1977.

  3. Beker, Henry and Piper, Fred. Cipher Systems. The Protection of Communications. Northwood Books, London. 1982.

  4. D. Kahn, The Codebreakers: The Story of Secret Writing, New York: Macmillan Publishing Co., 1967.

  5. Technical Manual for Converter M-209. US War Department, 1942 (http://www.maritime.org/ csp1500.htm).

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

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

Рассмотрим 6 х 27-матрицу М, элементами которой являются 0 и 1. Потребуем также, чтобы в каждом из 27 столбцов матрицы М было не более двух единиц. Такие матрицы называются кулачковыми матрицами.

Матрица

0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1

1 0 0 0 1 0 0 0 1 0 0 1 1 0 0 0 1 0 0 1 0 0 1 0 1 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

М = 0 0 1 1 0 0 0 1 0 1 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 1 1

0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0

является примером кулачковой матрицы.

Очевидно, что если v является 6-разрядной строкой из нулей и единиц, то vM (произведение вектора v на матрицу М) является 27-разрядной строкой с элементами из множества {0,1,2}. К примеру, если v = (1, 0,1,1, 0, 0), то

vM = (0, 0, 1, 2, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 2, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 2) .

(Здесь мы использовали матрицу М, написанную выше). Число элементов вектора vM, отличных от нуля, называется числом выталкиваний зубцов v относительно М. В нашем примере оно равно 16. Обычно, данное число является натуральным числом от 0 до 27

Пошаговая матрица конструируется следующим образом. Построим 6 последовательностей чисел из множества {0,1}. Эти последовательности имеют соответствующие длины 17, 19, 21, 23, 25, 26 и начинаются с одной позиции.

К примеру,

0 1 1 0 0 0 1 0 0 0 0 0 0 0 1 1 0

0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1

1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1

есть ступенчатая матрица. В отличие от кулачковой матрицы, для ступенчатой матрицы нет ограничений на позиции единиц.

Пошаговая матрица генерирует бесконечную последовательность 6-разрядных (строк) векторов следующим образом. Первые 17 векторов читаются прямо из столбцов. Таким образом,

(0, 0, 0, 0, 1, 1) и (1, 1, 0, 0, 0, 1)

являются первыми двумя векторами, порожденными с помощью написанной выше ступенчатой матрицы. Когда некоторая строка заканчивается, она стартует с начала. Таким образом, векторами с 17-го по 47-й являются:

(0, 0, 0, 0, 0, 0) (0, 0, 0, 0, 0, 0) (1, 0, 0, 1, 0, 1) (1, 0, 0, 0, 0, 0)

(0, 1, 0, 0, 0, 0) (0, 1, 0, 0, 0, 0) (0, 1, 0, 1, 0, 0) (1, 1, 1, 0, 0, 0)

(0, 1, 0, 0, 0, 0) (0, 0, 0, 0, 1, 1) (0, 0, 0, 0, 0, 1) (0, 0, 0, 0, 1, 1)

(0, 0, 0, 0, 0, 0) (0, 0, 1, 0, 0, 0) (0, 0, 0, 0, 0, 0) (1, 0, 0, 0, 0, 0)

(1, 0, 0, 0, 0, 0) (0, 0, 0, 0, 0, 0) (0, 0, 0, 1, 0, 0) (1, 0, 0, 0, 0, 0)

(1, 0, 0, 0, 0, 0) (0, 0, 0, 0, 0, 0) (0, 0, 0, 1, 0, 0) (1, 0, 0, 0, 0, 0)

(1, 1, 0, 0, 0, 1) (0, 1, 0, 1, 0, 0) (0, 1, 0, 0, 0, 0) (0, 1, 0, 0, 0, 0)

(0, 0, 1, 0, 0, 1) (0, 0, 0, 1, 0, 0) (0, 0, 0, 0, 0, 0)

Имея определенные кулачковую и ступенчатую матрицы, мы теперь можем сказать, как получается криптотекст. Для букв используют числовые коды: А получает номер 0, В получает номер 1 и т.д. Z получает номер 25. Сложение и вычитание чисел будет вестись по модулю 26.

Обозначим через  i-ую букву исходного сообщения, а через h — число выталкиваний зубцов i-гo вектора, порожденного ступенчатой матрицей, относительно кулачковой матрицы. Тогда  переводится в букву криптотекста

=h--1.

Для примера рассмотрим исходное сообщение

GOVERNMENTOFTHEPEOPLEBYTHEPEOPLEANDFORTHEPEOPLE

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

6, 14, 21, 4, 17, 13, 12, 4, 13, 19, 14, 5, 19, 7, 4, 15, 4, 14, 15, 11, 4, 1, 24, 19, 7, 4, 15, 4, 14, 15, 11, 4, 0, 13, 3, 5, 14, 17, 19, 7, 4, 15, 4, 14, 15, 11, 4.

Длина сообщения равна 47. Вычисляется число выталкиваний зубцов для первых 47 векторов, порожденных ступенчатой матрицей. Это делается просто, так как первые 17 векторов можно увидеть непосредственно из этой матрицы, а остальные уже найдены выше. Числа выталкиваний зубцов равны:

10, 17, 16, 9, 9, 9, 7, 0, 0, 0, 0, 12, 0, 0, 18, 7, 0, 0, 18, 7, 9, 9, 19, 14, 9, 10, 5, 10, 0, 0, 0, 7, 7, 0, 12, 7, 7, 12, 0, 9, 17, 19, 9, 9, 5, 12, 0 .

По формуле =h--1 вычисляются числовые коды букв криптотекста:

3, 2, 20, 4, 17, 21, 20, 21, 12, 6, 11, 6, 6, 18, 13, 17, 21, 11, 2, 21,

4, 7, 20, 20, 1, 5, 15, 5, 11, 10, 14, 3, 6, 12, 8, 1, 18, 20, 6, 1, 12, 3,

4, 20, 15, 0, 21.

Поэтому мы получаем следующий криптотекст:

DCUERVUVMGLGGSNRVLCVEHUUBEPFLKODGMIBSUGBМD EUРАV .

Три появления PEOPLE в исходном тексте шифруются как RVLCVE, PELKOD и DEUPAV, тогда как 3 появления THE шифруются как GSN, UBF и GBM.

Дадим несколько дополнительных замечаний, касающихся машины С-36. Роторы и клетки соответствуют ступенчатой и кулачковой матрицам. Любое переопределение ступенчатой матрицы осуществляется активизацией подходящих штифтов в роторах. Аналогично, любое переопределение кулачковой матрицы получается позиционированием зубцов.

Кулачковая и ступенчатая матрицы образуют ключ для шифровки с помощью С-36. Машина может быть рассмотрена как физическая реализация криптосистемы, описанной выше: она оперирует с переопределенным ключом после того, как активизируются подходящие штифты и позиционируются подходящие зубцы. Уравнение =h--1 может быть записано также в виде

=h--1. Это означает, что процесс шифрования и расшифрования идентичен.

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

Очевидно, что ступенчатая матрица генерирует векторы периодически. Следовательно, шифровка с помощью С-36 может быть рассмотрена как использование квадрата Бофора с ключевым словом. Но какова длина ключевого слова? Обычно она намного длиннее любого допустимого сообщения. Следовательно, периодичность в криптотексте может и не появиться.

Действительно, длины строк в ступенчатой матрице попарно взаимно просты. Это означает, что только после

17 19  21 23  25 26 = 101.405.850

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

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

Теперь должно быть очевидно, что метод Казиски или любой другой подобный подход не приведет к успеху в криптоанализе С-36. Для изучения других криптоаналитических подходов читатель может обратиться к [Beker H. and Piper F. Cipher systems. Northwood Books, London, 1982].

Некоторые известные криптографические машины, такие как немецкая ENIGMA (описание приведено ранее), американская SIGABA и японские RED и PURPLE времен второй мировой войны, являются электромеханическими. Основным блоком в них является диск в виде кодового колеса с проволочными перемычками внутри, называемый также ротором, по внешней и внутренней поверхностям которого равномерно распределены электрические контакты. Эти контакты позволяют объединять роторы. Как и для С-36, результирующая подстановка может меняться от буквы к букве.

Ниже мы кратко обсудим роторные машины. Результирующие криптографические отображения для них являются несколько более общими чем в случае С-36. Для более подробного изучения читатель может обратиться к [Beker H. and Piper F. Cipher systems. Northwood Books, London, 1982].

Роторные машины. В 20-х годах ХХ века были изобретены электромеханические устройства шифрования, автоматизирующие процесс шифрования по некоторых поточных шифров. Принцип действия таких машин основан на многоалфавитной замене символов исходного текста по длинному ключу согласно версии Виженера. Другими словами эти устройства реализовывали последовательность подстановок алфавита, с помощью которой шифровалась последовательность букв открытого текста. Наверно первым примером роторной машины служит шифратор Джефферсона. Кроме того, примерами таких устройств являются: описанный выше шифратор Хагелин, немецкая машина «Энигма-ENIGMA», американская машина SIGABA (M-134), английская TYPEX, японская PURPLE и др. Главной деталью таких машин являлся ротор. Ряд таких машин (а именно дисковые шифраторы) в роторах – дисках имели проволочные перемычки внутри и контакты расположенные по окружности двух сторон дисков. Каждый контакт с одной стороны диска был соединен с одним контактом другой стороны диска. Контакты отождествлялись с буквами алфавита. В соответствии с внутренним соединением контактов электрический сигнал, представляющий букву алфавита – номер контакта переставляется в соответствии с тем, как он проходит через диск. Если П – подстановка букв, осуществляемая диском в некотором фиксированном положении, то при повороте диска на j шагов осуществляется новая подстановка ТjПТ-j, где Т – подстановка циклического вида kk+1 (mod |I|), I – алфавит текста.

Последовательное прохождение тока через контакты от первого диска до n-го моделируется подстановкой – произведением подстановок П1П2…Пn, соответствующих дискам 1,2,…,n. Если же первый диск провернется на j1, позиций, второй на j2 позиций , …, n-й на jn позиций, то реализуемая дисками подстановка (схема токопрохождения) математически записывается в виде подстановки Тj1П1T-j1 Тj2П2T-j2 … ТjnПnT-jn . Роторные машины – шифраторы отличались количеством дисков, их коммутацией, схемой совместного движения дисков.

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