A.F.Ronzhin.  Problems  of  Security  in  Information  Processing
Systems//В  сб.: 2.5.
РАНЦЕВЫЕ  АЛГОРИТМЫ Эти алгоритмы основаны на классической задаче
теории  чисел  (Merkle,  Hellman,  1978). Пусть X=(x(1),...,x(n))
будет  секретным  двоичным  вектором,  который  является открытым
текстом,  а A=(a(1),...,a(n)) будет несекретным вектором с целыми
компонентами.   Тогда   зашифрованная   информация  -  это  число
Y=(A,X)=a(1)x(1)  +...+  a(n)x(n).  Простота шифрования очевидна.
Возможность  восстановления  X  с  помощью  Y может быть получена
благодаря   соответствующему  выбору  A.  Единственной  проблемой
является   введение   секретного   значения,  позволяющего  легко
дешифровать   принятую  скрытую  информацию.  Это  можно  сделать
следующим      образом.      Выбирается      секретный     вектор
A'=(a'(1),...,a'(n))    такой,    что    a'(l+1)>a'(1)+...+a'(l),
l=1,...,n-1. Для такого вектора легко решается задача определения
X  из  Y'=(A',X)=a'(1)x(1)+...+a'(n)x(n),  поскольку x(n)=1, если
Y'>=a'(1)+...+a'(n-1), x(n-1)=1, если Y'-a'(n)>=a'(1)+...+a'(n-2)
и  т.д.  Ведем  секретные  взаимно простые числа r и t и найдем s
такое,  что  st=1  mod  r.  Теперь  шифрование можно организовать
следующим   образом.   Определим  несекретное  A  с  координатами
a(i)=a'(i)t  mod  r  и  выберем  Y=(A,X)  в  качестве шифртекста,
оставляя  все  сложности  дешифрования  на  A.  Для  дешифрования
преобразуем  Y  в Y'=Ys mod r и учитывая, что Y'=(A',X), уменьшим
сложность  восстановления  X.  Оценки  соответствующих сложностей
можно  найти  у  (Shamir, 1982). 2.6. Последовательное шифрование
Пусть   открытый  текст  будет  двоичной  последовательностью,  и
существуют  автономные  автоматы  A(k), k K, с выходным алфавитом
{0,1}.  Тогда  для  открытого текста X=(x(1),...,x(n)) и выходной
последовательности    R(k)=(r(1,k),...,r(n,k))    автомата   A(k)
шифртекст  Y=(y(1),...,y(n)) определяется как y(i)=x(i) + r(i,k),
i=1,...,n.   Обычно,  хотя  и  не  необходимо,  ключ  k  является
начальным  состоянием  автомата.  Поскольку  x(i)=y(i)  - r(i,k),
i=1,...,n,  шифрование  и дешифрование реализуются одной и той же
схемой.   Такая  схема  шифрования-дешифрования  имеет  следующие
важные  черты: если ключ k используется для шифрования нескольких
открытых  текстов (например, если открытый текст разбит на блоки,
и    каждый    блок    шифруется    отдельно    той    же   самой
последовательностью),  и один из этих открытых текстов становится
известным    нарушителю,    то    он    может    легко   получить
последовательность   R(k)=X+Y   и   затем   без  знания  ключа  k
дешифровать   все   остальные  записи,  добавляя  соответствующие
шифртексты  и  R(k).  Это происходит потому, что автомат A(k) для
одинаковых  начальных  состояний  каждый  раз выдает тот же самый
выход.  Этого  недостатка  можно  избежать, если каждый раз перед
шифрованием  изменять  начальное  состояние  автомата.  Начальным
состоянием  можно  управлять  с  помощью  некоторого параметра Z.
Параметр  вводится  только  для  перевода  автомата  с ключом k в
различные    начальные   состояния,   но   не   для   обеспечения
криптографической  надежности.  По этой причине требования к Z не
так  сильны,  как  к ключам K. 2.7. Алгоритм DES Опишем алгоритм,
известный  как  Data  Encryption  Standard  (Стандарт  шифрования
данных).   Перед   обсуждением   технической   стороны  процедуры
обратимся  к  законодательству  США  по  вопросам секретности и к
истории  разработки  DES.  Ясно,  что такая информация может быть
полезной   для   осуществления   организационных  мер  по  защите
информации.  Для сохранения тайны в системах обработки информации
необходимо   следовать   ряду  правил,  регулирующих  возможности
пользователей  по  выбору,  хранению  и  изменению  информации по
своему  желанию.  Кроме того, пользователи должны иметь авторское
право  на  свою  информацию.  В настоящее время в США эти правила
регулируются  актом  1974  года  (Privacy  Act, 1974). Касательно
криптографических  мер  защиты данных, их применение регулируется
актом  1997  года  (Public  Law 95-213). Более подробное описание
законодательства  США по защите вычислительных систем можно найти
в  (Hoffman,  1977). В 1973 году Национальное бюро стандартов США
опубликовало  статью  (Cryptographic Algorithms, 1973), в которой
предлагалось   разработать   унифицированный  криптоалгоритм  для
обработки   компьютерных   данных   в  коммерческой  и  оборонной
областях.  Были  сформулированы следующие требования к алгоритму:
1.   Алгоритм   должен   быть  полностью  описан  без  какой-либо
неопределенности. 2. Он должен обеспечить соответствующий уровень
безопасности,  который  можно  естественным  образом  оценить  по
времени  или  количеству операций, требуемых для раскола системы.
3.  Его стойкость должна быть основана только на стойкости ключа.
4.    Он    может    без   каких-либо   ограничений   применяться
пользователями.  6  августа  1974  года  IBM предложила алгоритм,
разработанный   научной   группой  под  руководством  W.L.Tuchman
(Ehrsan  et  al.,  1976),  как  удовлетворяющий этим требованиям.
Алгоритм  основывался  на  криптосистеме  Lucifer  (IBM  Research
Report,   1971),   разработанной   Файстелем   (Feistel,   1974).
Американским   экспертом   в  криптологии  и  безопасности  связи
является  Агентство национальной безопасности (АНБ). Национальное
бюро  стандартов  совместно с АНБ оценило стойкость предложенного
алгоритма  (Report  Workshop  on  Cryptography,  1977), который и
составил  основу  DES, опубликованного АНБ 17 марта 1975 года; 15
июля   1975  года  алгоритм  был  официально  принят  в  качестве
федерального   стандарта.  DES  позволено  применять  федеральным
агентствам и Государственному департаменту для шифрования данных,
не  попадающих под классификацию Акта о национальной безопасности
(1974)  и  Акта  о  ядерной  энергии  (1954).  Более того, он был
рекомендован  для  применения  промышленным  корпорациям. DES был
адаптирован  Американским  национальным  институтом по стандартам
(АНИС)  к  требованиям  CCIP(X3) и принят в качестве стандартного
промышленного  алгоритма  DEC  X3.92 (American National Standard,
1981).  Требования  к  стойкости, физической и электронной защите
DES-оборудования были одобрены в (Proposed Federal Standard 1026,
1980;  Proposed  Federal Standard 1027, 1980). Там же можно найти
более  подробную  информацию  о  разработке  DES. В (Unclassified
Summary,  1978) даны следующие официальные характеристики DES: 1.
DES  более,  чем  приемлем  в своих областях применения. 2. IBM -
изобретатель  и  создатель  DES.  3.  АНБ  не принимало участия в
разработке.  4.  АНБ  проверило  стойкость  DES против атак всеми
известными  статистическими  методами.  5.  АНБ рекомендовало ФБР
использоватиь  DES  для  передачи  данных  с  помощью электронных
средств. Алгоритм DES - это типичный представитель класса блочных
шифров.   Дадим   его  описание,  следуя  (DES,  1977).  Алгоритм
используется  для  шифрования и дешифрования блоков данных длиной
64  бита и управляется ключом длиной 64 бита. Как видно из рис.1,
шифрование  выполняется следующим образом. 64 бита входного блока
преставляются  в соответствии с начальной перестановкой (НП). Эта
перстановка ставит на первую позицию 58-ой бит, на вторую позицию
-  50-ый  бит  и  т.д.  Выход  этой  перестановки  идет  на  вход
процессора,  который  зависит от ключа. Выход процессора называют
предварительным  выходом;  он  переставляется  в  соответствии  с
подстановкой,  обратной  НП.  Процессор  выполняет  16 итераций с
функцией  f,  которая зависит от двух 32-битных блоков предыдущей
итерации и 48 бит ключа. Функция f называется функцией шифрования
и  принимает  значения  на множестве 32-битных блоков. Для каждой
итерации  64 бита входного блока разбиваются на 32-битные блоки L
и  R.  Пусть  k  будет 48-битным блоком, выбираемым из 64-битного
блока  ключа, тогда выход итерации состоит из 32-битного блока L'
и  32-битного  блока  R'  таких,  что L'=R, R'=L+f(R,k). В каждой
итерации  ключ  k  выбирается  из  ключевой последовательности K,
которая является 64-битным блоком. Выбор выполняется функцией Ks,
зависящей    от    числа    итераций    n=1,...,16   и   ключевой
последовательности  K.  Ключ  k  ,  используемый в n-ой итерации,
равен  k  =Ks(n,K). Дешифрование выполняется по тому же алгоритму
лишь  с тем различием, что ключи k ,...,k используются в обратном
порядке.   Функцию   шифрования   f   можно  представить  схемой,
показанной  на рис.2. Функция Е на схеме размещает 32-битный блок
R на 48 позициях по предписанному правилу. Каждая из восьми групп
B   ,...,B   из   6   последовательных   битов   является  входом
соответствующей   функции   выбора  Si,  i=1,...,8,  c  4-битными
выходами.  Для  каждого i функция Si определяется (16х4)-матрицей
Ai  с  элементами  a , принимающими значения 0,1,...,15. Первый и
последний   биты   входа   рассматриваются  как  двоичное  число,
определяющее  число  r,  а  4  средних  бита  рассматриваются как
двоичное  число6  определяющее  s.  Тогда  выход  Si  равен  a  ,
представленному  в  двоичном  счислении.  Выход  Si преобразуется
перестановкой P. Таким образом, если входы функции f равны R и k,
то  f(R,k)=P(S  (B ),...,S (B )), где B B ...B = k+E(R). Отметим,
что  мы рассматриваем g-блоки А и h-блок В записанными вместе как
единый  блок  АВ  длиной  g+h.  Процесс  построения  ключа  k  из
64-битного блока KEY показан на рис.3. Из 64 бит KEY функция PC-1
выбирает  56  бит  и  делит их на 28-битные блоки C и D. В каждой
итерации i, i=1,...,16, выполняется циклический сдвиг содержимого
регистров  Ci и Di на l(i) бит влево, и с помощью функции PC-2 из
полученного   блока  CiDi  выбирается  48-битный  блок  k  .  Для
завершения  описания  алгоритма остается задать значения НП, Е, S
,...,S , PC-1, PC-2 и L=(l(1),...,l(16)). Функции S ,...,S и PC-2
можно  найти  в  (DES,  1977).  Все  они  не  имеют  определенной
структуры,  и  мы  не  даем  здесь их описание. Таким образом, мы
видим,  что  DES  выполняет  16  итераций  и зависит от 16 ключей
длиной  48  бит  каждый. Эти ключи, как следует из описания PC-1,
выбираются из одного установленного ключа. Кроме того, содержимое
регистров  Ci,  Di  сдвигается,  поэтому  С  =Со  и  D  =Dо.  При
дешифровании  функция выбора ключа действует точно так же, только
сдвиг  регистров  выполняется вправо. Завершим описание алгоритма
DES  матрицей  для  выбора ключей k ,...,k k = 10 51 ... 41 22 28
...    31    k    =    2    43    ...    33    14   20   ...   23
..................................  k  = 18 59 ... 49 30 5 ... 39
Среди  этих чисел нет битов из разрядов 8,16,...,64, используемых
для  управления  на  начальном  этапе  построения  ключа. Отметим
некоторые черты алгоритма DES. 1. Слабые ключи (Meyer and Matyas,
1982).  Существуют  ключи, для которых k =...=k , т.е. ключи, для
которых  содержимое  регистров  C  и  D  состоит  только из нулей
(толлько  из единиц), либо из последовательностей вида 0101...01;
1010...10;  0011...0011;  0110...0110;  1001...1001; 1100...1100.
Хотя  число  таких  ключей очень мало по сравнению с общим числом
ключей,  равным  7*10^17,  и  вероятность  того,  что  такой ключ
появится  при  случайной генерации ключей, очень мала, необходимо
исключать  такие  ключи  путем специального контроля. 2. Критерии
выбора  математических  преобразований.  Первый этап DES длился 5
лет.  В  результате  были предложены некоторые критерии, часть из
которых   строго   сформулирована   и   может   использоваться  в
криптоанализе.  В  частности,  для выбора перестановок был принят
принцип,  что  каждый  выходной бит должен фактически зависеть от
каждого  бита  ключа  и открытого текста, а преобразование должно
включать  минимум итераций (Meyer, 1978). Другим важным принципом
является  требование,  что  функции  в  DES  для своей реализации
используют  минимальное  число  логических  операций (Honget al.,
1974).
 

Оставит комментарий