Все |0-9 |А |Б |В |Г |Д |Е |Ж |З |И |К |Л |М |Н |О |П |Р |С |Т |У |Ф |Х |Ц |Ч |Ш |Щ |Э |Ю |Я

Каталог статей Новости Новости науки и техники

Поиск по тегам : на границе с космосом, серебристые облака, изменения в нижних слоях атмосферы, Озеро Восток, подледный бассейн, жизнь подо льдом


«Энигма» в новом исполнении PDF Печать E-mail

Рейтинг 1.8/5 (31 голосов)

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

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

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

 

Стойкость такого шифра оказалась не по зубам даже первым в мире электронным вычислителям Colossus, построенным в Англии А. Тьюрингом.

Досадно то, что до сих пор не опубликовано описание ни одного из последних образцов «Энигмы». Вероятнее всего, что подобные бумаги хранятся под грифом «Совершенно секретно» либо были уничтожены немцами ещё до капитуляции Германии.

По разным данным, алфавит «Энигмы» содержал 25 или 26 латинских букв. Однако в программной реализации число символов алфавита удобнее считать равным 256, по числу различных значений байта.

Число дисков обозначим как n=11.

Каждому из дисков в электронной реализации соответствует своя, не изменяемая в процессе работы таблица перестановок Tab[i]=Tab[i][j], j=0..255, i=0..n-1 чисел 0..255, склеенная в кольцо. Пусть положение текущего начала каждой таблицы определяется с помощью указателя Ptr[i], i=0..n-1, причем 0<= Ptr[i]<n, i=0..n-1.

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

1.      Пусть i=0;

2.      В цикле со счетчиком i вычисляем n раз:

    a.       M = Tab[i, M];

    b.      i = i + 1;

    c.       Конец цикла i;

3.      Пусть k=1;

4.      В цикле со счетчиком i вычисляем n раз:

    a.       Ptr[i] = (Ptr[i]+k) mod256;

    b.      Если k=0, уходим на 4.e.;

    c.       Если Ptr[i]=0, уходим на 4.e.;

    d.      Пусть k=0;

    e.       i=i+1;

    f.       Конец цикла i.

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

1.      Пусть i=0;

2.      В цикле со счетчиком i вычисляем n раз:

a.       M = Tab[i, M];

b.      i = i + 1;

c.       Конец цикла i;

3.      Пусть k=1;

4.      В цикле со счетчиком i вычисляем n раз:

a.       Ptr[i] = (Ptr[i]*i+1) mod256;

b.      i=i+1;

c.       Конец цикла i.

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

Обратимость описанных шифрующих преобразований не вызывает сомнений и сводится к смене порядка использования таблиц подстановок Tab[i],i=0..n-1 на противоположный и замене таких инверсными им InvTab[i],i=0..n-1 с использованием соотношения InvTab[i,Tab[i,j]]=j,j=0..255,i=0..n-1.

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

Очень важный вопрос связан с инициализацией таблиц перестановок  Tab[i],i=0..n-1 и указателей Ptr[i], i=0..n-1 к ним. В этом случае применен алгоритм, частично позаимствованный из описания шифра RC4 Рона Ривеста. Сначала таблицу Tab[0]=Tab[0,i],i=[0..255] заполняем линейным образом Tab[0,i]=i,i=0..255. Затем ее элементы переставляем в соответствии со значением ключа, циклически повторяя по мере необходимости короткий ключ. Этот процесс точно соответствует процедуре ключа RC4. Далее выполняем отсутствующий в RC4 процесс рандомизации таблицы Tab[0], осуществляемый следующим образом.

1.      Пусть i=0;

2.      В цикле со счетчиком i вычисляем 256 раз:

a.       j = (Tab[0, i] + Tab[0, Tab[0,i]]) mod256;

b.      Меняем местами элементы Tab[0,i] и Tab[0,j];

c.       i = i + 1;

d.      Конец цикла i.

Каждая из последующих десяти таблиц Tab[i],i=1..n получается применением описанной процедуры к предыдущей таблице.

Начальные значения указателей Ptr[i], i=0..n-1 вычисляются следующим образом:

1.      Пусть i=0;

2.      В цикле со счетчиком i вычисляем n раз:

    a.       Ptr[i] = (Tab[i, 0] + Tab[i, Tab[i,0]]) mod256 или Ptr[i] =

    = (Tab[i, 0] + Tab[i, Tab[i,Tab[i,0]]) mod n;

    b.      i = i + 1;

    c.       Конец цикла i.

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

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

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



 
Добавить в избранное | Сделать стартовой

Rambler's Top100 Рейтинг@Mail.ru

(c)