Глава 3. Логарифмические подстановки
Глава 3. Логарифмические подстановки
В этой главе давайте отложим в сторону лирические и понятные всем отступления про обстановку в стране в то время. Мои рассуждения об этом субъективны, кто-то может соглашаться с ними, кто-то, наоборот, считать те времена образцом для подражания на фоне современной криминализации страны. В этой книге я старался следовать криптографически-философскому принципу Шеннона: в шифре чередовать не похожие друг на друга операции перемешивания и сдвига. В качестве операций сдвига – главы, отображающие общую ситуацию в СССР и в КГБ в те, теперь уже далекие времена, а в роли перемешивания выступают главы, в которых много говорится о математике, криптографии или программировании. Сейчас начнется очередная «перемешивающая» глава.
Шифратор «Ангстрем-3» был построен в полном соответствии с этим принципом Шеннона: регистр сдвига над Z/256 (операции сдвига), усложненный подстановкой из S256, типичным перемешивающим преобразованием. Перемешивающее преобразование дает столь необходимое в криптографии размножение различий в блоках открытого текста. В общефилософских книгах по криптографии, типа упоминавшейся выше книги Брюса Шнайера «Прикладная криптография», употребляется даже термин «лавинный эффект». Вот соответствующая цитата оттуда.
«… Это называется лавинным эффектом. DES спроектирован так, чтобы как можно быстрее добиться зависимости каждого бита шифртекста от каждого бита открытого текста и каждого бита ключа.»
Насколько я представляю себе DES, нигде, ни в одной книге, не было дано точных математических оценок этого «лавинного эффекта». DES так спроектирован и все. А почему он так спроектирован? Остается лишь догадываться, да строить статистические эксперименты, которые подтверждают: да «лавинный эффект» безусловно есть.
Вся прелесть «Ангстрема-3» в том, что в нем для оценки подобного «лавинного эффекта» на 4 факультете и в Спецуправлении еще в конце 70-х годов был разработан строгий математический аппарат, опирающийся на алгебру, на теорию групп, колец и полей. Об этих результатах я уже упоминал в предыдущей главе, посвященной шифрам на новой элементной базе, вот, вкратце, их суть.
1. В шифрах, использующих операции в кольце Z/256 и подстановки ? из S256, лавинный эффект определяется матрицей частот встречаемости разностей переходов ненулевых биграмм P(?) размера 255x255.
2. Лавинный эффект будет тем лучше, чем меньше нулей в этой матрице. Хорошими следует считать такие подстановки, матрицы которых, возведенные в квадрат, не содержат нулей.
3. При случайном и равновероятном выборе подстановки из всей симметрической группы S256, общее количество подстановок в которой составляет огромную величину 256! – произведение всех чисел от 1 до 256, вероятность выбрать хорошую подстановку стремится к 1.
4. Существуют примеры самых плохих подстановок, это линейные подстановки.
5. Теоретически подсчитано минимально возможное количество нулей в матрице P(?).
Вопрос же о том, существуют ли подстановки с минимально возможным числом нулей в матрице P(?), оставался открытым до конца 1983 года.
*****
– Работайте дома. Если Вы будете часто здесь появляться, то диссертации не напишите.
Так напутствовал меня мой научный руководитель Б.А., который сам заканчивал 4 факультет в числе первых его выпускников, а сейчас уже защитил докторскую диссертацию и жил в мире групп, колец и полей. Это был бальзам на мою душу! Нет этого бессмысленного высиживания до 6 часов вечера, пустых разговоров ни о чем, нет смертельно опасной столовой-травиловки. Мысли раскрепощены, нет интеллектуального насилия, все проблемы, казавшиеся неразрешимыми, вдруг как-то сами стали успешно разрешаться. А что за проблемы?
Итак, мои творческие планы связаны с шифрами на новой элементной базе. Это новая тема и непаханое поле для деятельности. Основное отличие этих шифров от традиционных балалаек – наличие в них подстановки (или даже нескольких подстановок) из S256. Эти подстановки определяют криптографические качества шифров, они же дают возможность строить очень простые и высокоскоростные схемы, поэтому фундаментальные исследования шифров на новой элементной базе нужно начинать с изучения подстановок. Нужно постараться получить наиболее полную картину их свойств, ответить на типовые вопросы, например:
– какие подстановки считать приемлемыми, а какие неприемлемыми для использования в шифрах на новой элементной базе и почему;
– как описать какие-то особенные классы подстановок и в чем будет их особенность;
– как лучше использовать подстановку в схеме, где ее целесообразнее расположить и почему;
И, наконец, надо попробовать дать ответ на конкретный практический вопрос: а что же делать со схемой «Ангстрем-3»? Как ее модернизировать, чтобы, сохранив простоту и высокую скорость реализации, обеспечить гарантированную стойкость?
Когда я поведал о своих замыслах Б.А., он сразу же стал пытаться приделывать к подстановкам теорию групп. Он витал в групповых облаках, а моей задачей было приземлять его фантазии на грешную подстановочную землю. И, в общем, такой дуэт оказался достаточно успешным.
Для начала мы попытались описать какой-нибудь класс подстановок ?, для которого было бы гарантировано, что показатель 2-транзитивности множества G? минимален и равен 3. Я надеюсь, что читатель припоминает упоминавшуюся ранее в этой книге матрицу частот встречаемости разностей переходов ненулевых биграмм P(?) и условие достижения 2-транзитивности за 3 шага: эта матрица, возведенная в квадрат, не должна содержать нулей. Я пытался описать класс подстановок, у которых полностью ненулевые средние строка и столбец, наличие такого «креста» дает гарантию того, что квадрат матрицы будет полностью положительным, без нулей. Б.А. сразу же стал пытаться найти и пристроить к этой ситуации какие-то аналогии из известных ему экзотических групп. Несколько попыток оказались безрезультатными и моей задачей было обоснование того, что этот класс групп совсем непригоден. Своего рода тотальное опробование всех подстановок, каким-то пусть даже косвенным образом связанных с изначальными. Б.А., как умудренный опытом рыболов, выискивал места, где могли водиться хорошие подстановки, а я закидывал в этих местах свою блесну.
И вот однажды клюнула такая подстановка, о которой даже сейчас, спустя 20 лет, я вспоминаю с нескрываемым удовольствием. Читатель, наверное, помнит про мое обещание привести один очень красивый результат про подстановки с минимальным числом нулей в матрице P(?). Настало время исполнить обещанное.
Пусть N – такое число, что N+1 – простое, ? - примитивный элемент в поле Галуа GF(N+1), т.е. образующий элемент циклической мультипликативной группы этого поля.
Пусть ? - преобразование множества Z/N вида:
?(х) = log?(?x+r??), если ?x+r???0,
?(х) = log??, если ?x+r??=0,
где ? - произвольный ненулевой элемент поля GF(N+1), r – произвольный элемент из Z/N, ? - операция сложения в поле GF(N+1). Тогда преобразование ? является взаимно-однозначным на множестве Z/N, т.е. является подстановкой из симметрической группы SN.
Это утверждение достаточно очевидно, поскольку ? - примитивный элемент поля GF(N+1), т.е. множество значений ?,?2,…,?N совпадает со множеством {1,2,…,N} – мультипликативной группой поля GF(N+1), а логарифмирование – операция, обратная возведению в степень. Все проблемы с нулем подправляются вторым условием: ?(х) = log??, если ?x+r??=0.
Такие подстановки естественно назвать логарифмическими, а точку х0, при которой ?(х0) = log?? – выколотой точкой логарифмической подстановки ?.
Здесь и всюду далее нам будут встречаться два разных типа арифметических операций сложения и вычитания: в кольце Z/N и в поле GF(N+1). Операции в кольце Z/N будем обозначать обычными символами “+” и “-“, а операции в поле GF(N+1) – ? и ? соответственно.
Теорема 1.
Пусть ? – логарифмическая подстановка, х1?х2, х1,х2? Z/N, i – произвольный ненулевой элемент кольца Z/N.
Тогда если ни одна из точек х1+i,x1,х2+i,x2 не является выколотой, то ?(х1+i)- ?(x1)? ?(х2+i)- ?(x2).
Доказательство.
Предположим, что ?(х1+i)- ?(x1)= ?(х2+i)- ?(x2), тогда ??(х1+i)- ?(x1)=??(х2+i)- ?(x2).
Поскольку все точки не являются выколотыми, то отсюда вытекает, что (?х1+i+r??)(?х2+r??)=(?х2+i+r??)(?х1+r??).
Раскрывая скобки и сокращая одинаковые члены в левой и правой частях равенства, получаем
? (?x1+i+r??x2+r)= ?(?x2+i+r??x1+r)
Поскольку ? - ненулевой элемент, то отсюда вытекает, что
?x1+r(?i? 1)= ?x2+r(?i? 1)
Поскольку i – произвольный ненулевой элемент Z/N, а ? - примитивный элемент GF(N+1), то ?i?1, откуда вытекает, что х1=х2.?
Теорема 2. Пусть ? – логарифмическая подстановка.
Тогда для любого ненулевого значения i?Z/N{0} из условия, что ни одна из точек x, x+i не является выколотой вытекает, что ?(х+i)- ?(x) ? i.
Доказательство.
Пусть ?(х+i)- ?(x) = i. Тогда ??(х+i)- ?(x)= ?i, откуда ?x+r+i??=?i(?x+r??)?, следовательно, ?=??i. Отсюда следует, что i=0. ?
Раскинулось поле широко! Операции возведения в степень и логарифмирования в конечном поле позволили ловко избавиться от неопределенности в разности значений подстановки и легко, просто элементарно решить задачу построения матрицы P(?) с минимальным числом нулей. Заметим, что если в определении логарифмических подстановок отказаться от условия, что ? - произвольный ненулевой элемент поля GF(N+1), то при ?=0 мы получаем обычные линейные подстановки, у которых число нулей в P(?) максимально!
Осталось совсем чуть-чуть: разобраться с выколотой точкой.
Для произвольного ненулевого фиксированного i?Z/N рассмотрим отображение множества Z/N в Z/N вида:
?i(х) = ?(х+i)- ?(х),
где ? - логарифмическая подстановка. Тогда, в силу теоремы 1, количество различных значений в множестве {?i(х), x?Z/N{x0,x0-i}}равно мощности этого множества, т.е.N-2, причем, в силу теоремы 2, это множество в точности совпадает с {Z/N{i}}. В частности, при любом i?N/2 существует такое значение х, x?Z/N{x0,x0-i}, что ?i(х)=N/2.
Теорема 3. Пусть ? – логарифмическая подстановка.
Тогда если при некотором i?N/2 в i-ой строке матрицы P(?) справедливо piN/2>1, то эта строка не содержит нулевых элементов.
Доказательство.
В силу теоремы 2 достаточно доказать, что pii?0. Условие piN/2>1означает, что либо ?i(х0)=N/2, либо ?i(х0-i)=N/2. Зафиксируем то, которое равно N/2, а другое оставшееся значение обозначим через ?. Суммируя, как и ранее мы уже делали в этой книге, значения ?i(х) по всем x?Z/N, получаем:
N/2(N-1) – i + ? + N/2 = 0.
Отсюда вытекает, что ?=i, следовательно, pii?0. ?
По коням! Пора заняться средней строчкой.
Начнем с самого любимого элемента – pN/2,N/2. Ранее мы уже отмечали, что этот элемент должен быть всегда четным (рассуждения для случая N=2n легко обобщаются для произвольного четного N). Следовательно, в логарифмической подстановке возможны только два значения pN/2,N/2: 0 или 2. Допустим, что pN/2,N/2=2. В силу теоремы 2 эти значения может давать только выколотая точка x0 и x0+N/2, т.е.
?(х0+N/2)- ?(х0)= ?(х0+N/2+N/2)- ?(х0+N/2)= ?(х0)- ?(х0+N/2)=N/2.
Отсюда вытекает, что 2?(х0+N/2)=2?(х0).
Рассмотрим два случая.
1. ?=1, следовательно, ?(х0)=0. Тогда ?(х0+N/2)=N/2. Имеем:
??(х0+N/2)= ?N/2? ?x0+N/2+r??=?N/2 ? ?N/2(1? ?x0+r)= ? ? ?N/2(1??)= ?? 2?N/2 = 1.
Возводя обе части последнего равенства в квадрат и учитывая, что ?N=1, получаем такое равенство возможно только в тривиальном поле из 3 элементов.
2. ??1, следовательно, ?(х0) =N/2, ?(х0+N/2)=0, откуда
??(х0+N/2)= 1? ?x0+N/2+r??=1 ? ?(1? ?N/2)= 1 ? ?N/2= 1? ?-1.
Возводя это равенство в квадрат, получаем значение ?:
?=2-1
С учетом условия ?(х0) =N/2 получаем: log?2-1 = N/2, откуда 2-1 =?N/2?2-2 =1. Такое также возможно только в тривиальном поле из 3 элементов.
Следовательно, во всех реальных практически значимых случаях pN/2,N/2=0. Тогда найдется по крайней мере одна строка i, в которой pN/2,i?2, и по теореме 3 в ней не будет нулей. Общее число нулей в такой матрице, с учетом уже упоминавшейся ее симметричности, будет равно N-3. Это минимально возможное количество нулей и оно оказалось достижимым!
Заметим, что подстановка, обратная к логарифмической, также будет логарифмической. Действительно, если ?(х) = log?(?x+r??), то ?? (х)= ?x+r??, откуда
х= log?(?? (х)-r??1), где ?1 = (? ?)?-r. Следовательно, ?-1?(х) = log?(?? (х)-r??1). При этом ?? (х)-r??1=(?x+r??)?-r??1=?x ? 0. Для случая х=х0 справедливо: ?(х0)= log??, при этом ?x0=(? ?)?-r, откуда х0 = ?-1?(х0) = log?((? ?)?-r) = log??1
Осталось построить в явном виде логарифмическую подстановку. Заметим, что условие N+1 – простое число выполняется для практически очень важного случая N=256, следовательно, логарифмические подстановки заведомо существуют при N=256. Условию N+1 - простое число удовлетворяет также N=16 и именно для этого значения мы сейчас и построим логарифмические подстановки, предоставляя заинтересованному читателю возможность построить логарифмические подстановки при N=256 самостоятельно.
В качестве примитивного элемента поля GF(17) выберем ?=3, а также положим ?=1, r=0. Составим таблицу степеней значения ?:
i 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ?i 1 3 9 10 13 5 15 11 16 14 8 7 4 12 2 6
Используя эту таблицу, построим логарифмическую подстановку ?
х 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ?(х) 14 12 3 7 9 15 8 13 0 6 2 10 5 4 1 11
и ее матрицу Р(?)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 0 1 2 1 1 2 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 3 2 1 0 1 1 1 1 1 1 2 1 1 1 1 1 4 1 1 1 0 2 1 2 1 1 1 1 1 1 1 1 5 1 1 1 2 0 1 1 1 2 1 1 1 1 1 1 6 2 1 1 1 1 0 1 1 1 1 1 1 2 1 1 7 1 1 1 2 1 1 0 1 1 1 2 1 1 1 1 8 1 2 1 1 1 1 1 0 1 1 1 1 1 2 1 9 1 1 1 1 2 1 1 1 0 1 1 2 1 1 1 10 1 1 2 1 1 1 1 1 1 0 1 1 1 1 2 11 1 1 1 1 1 1 2 1 1 1 0 2 1 1 1 12 1 1 1 1 1 1 1 1 2 1 2 0 1 1 1 13 1 1 1 1 1 2 1 1 1 1 1 1 0 1 2 14 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 15 1 1 1 1 1 1 1 1 1 2 1 1 2 1 0
Это подстановка с минимально возможным числом нулей в матрице Р(?).
Это был, пожалуй, мой самый красивый математический результат. Но, к большому сожалению, логарифмические подстановки так и не нашли достойного применения в криптографии. Почему? Да очень просто – их мало. Помните фразу про долговременные ключи-подстановки в дисковых шифраторах: «Их не опробуют. Их покупают.» Если в схемы типа «Ангстрем-3» мы будем ставить только логарифмические подстановки, то опробование всевозможных вариантов подобных подстановок сведется к опробованию всего лишь трех элементов: ? - примитивного элемента в поле Галуа GF(257), ? - произвольного ненулевого элемента поля GF(257) и r – произвольного элемента из Z/256. Это – копейки, совершенно ничтожная, по криптографическим меркам, величина. Если же выбирать подстановку случайно и равновероятно из всей симметрической группы S256, то общее число опробуемых вариантов будет совершенно астрономической величиной 256!, намного превосходящей психологически недосягаемую в криптографии величину 10100.
Но для шифров на новой элементной базе логарифмические подстановки позволили полнее представить общую картину того «лавинного эффекта», к достижению которого так стремятся криптографы всего мира.
Для меня же это означало еще и то, что путь к защите диссертации был открыт, несмотря на пессимистические прогнозы Степанова и проповедуемый им «патриотизм к отделу». Но на Степанова они подействовали не как на ученого, а как на администратора: красивый математический результат получен вышедшим из под его контроля сотрудником «на стороне», на кафедре криптографии Высшей Школы КГБ. Незамедлительно последовали выводы: наказать, чтобы не высовывался и чтобы другим неповадно было изменять родному отделу! Впрочем, об этом чуть ниже.