Глава 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.
Но для шифров на новой элементной базе логарифмические подстановки позволили полнее представить общую картину того «лавинного эффекта», к достижению которого так стремятся криптографы всего мира.
Для меня же это означало еще и то, что путь к защите диссертации был открыт, несмотря на пессимистические прогнозы Степанова и проповедуемый им «патриотизм к отделу». Но на Степанова они подействовали не как на ученого, а как на администратора: красивый математический результат получен вышедшим из под его контроля сотрудником «на стороне», на кафедре криптографии Высшей Школы КГБ. Незамедлительно последовали выводы: наказать, чтобы не высовывался и чтобы другим неповадно было изменять родному отделу! Впрочем, об этом чуть ниже.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
Глава 21
Глава 21 21.1.Если запустить программу, то она не выведет ничего. Для предотвращения получения многоадресных дейтаграмм сервером, не ожидающим их, ядро не доставляет дейтаграммы на сокет, не выполнявший никаких многоадресных операций (в частности, не присоединявшийся к
5.7.5 Арифметичеcкие подстановки (Arithmetic Expansion)
5.7.5 Арифметичеcкие подстановки (Arithmetic Expansion) Арифметические подстановки позволяют вычислить значение арифметического выражения и подставить вместо него результат. Существует две формы задания арифметических подстановок:$[expression]$((expression)), где expression трактуется так, как
8.2. Подстановки
8.2. Подстановки Кроме подстановки обычных переменных (п.3.4.4) и раскрытия шаблонов имен файлов (п.3.4.5), оболочка bash умеет выполнять еще и такие подстановки:? Подстановка тильды:~ заменяется на имя домашнего каталога пользователя, запустившего сценарий;~+ заменяется на путь к
Глава 4
Глава 4 Комитет ANSI Til: http://www.tll.org (комитет курирует разработку всех протоколов, связанных с интерфейсом Fibre Channel).CERN Fibre Channel: http://hsi. web. cern. ch/HSI/fcs.Clark T.Designing Storage Area Networks. – Reading, MA: Addison-Wesley, 1999.Fibre Channel – учебники и ресурсы лаборатории Interoperability Lab.: www.iol. unh.
Глава 14
Глава 14 1. Нужно изменить только одну строку:13с13< id = Shmget(Ftok(argv[1], 0), 0, SVSHM_MORE);…> id =
R.16.3.3 Повторный просмотр и дальнейшие подстановки
R.16.3.3 Повторный просмотр и дальнейшие подстановки После того, как в строке замены произошла подстановка всех параметров макровызова, получившаяся строка просматривается повторно для обнаружения дополнительных макроопределений. Если в процессе повторных просмотров
12.5.3. Алгоритмы удаления и подстановки
12.5.3. Алгоритмы удаления и подстановки Рассмотрим последовательность из трех символов: {a,b,c}. Для нее существует шесть различных перестановок: abc, acb, bac, bca, cab и cba, лексикографически упорядоченных на основе оператора “меньше”. Таким образом, abc – это первая перестановка,
Пример 10-6. Создание списка аргументов в цикле for с помощью операции подстановки команд
Пример 10-6. Создание списка аргументов в цикле for с помощью операции подстановки команд #!/bin/bash# уЩЫЬ for гЯ [гаЩгЫЯЭ], гЯкФСЮЮйЭ г аЯЭЯниР аЯФгдСЮЯзЫЩ ЫЯЭСЮФ.NUMBERS="9 7 3 8 37.53"for number in `echo $NUMBERS` # for number in 9 7 3 8 37.53do echo -n "$number "doneecho exit 0Более сложный пример использования подстановки
12.2. Шифр простой подстановки
12.2. Шифр простой подстановки В шифре простой подстановки производится замена каждой буквы сообщения некоторым заранее определенным символом (обычно это также буква). В результате сообщение, имеющее видМ = т1т2 тЗт4…, где т1, тп2…. – последовательность букв, переходит в
Создание и использование полей подстановки
Создание и использование полей подстановки В ряде случаев поле может включать лишь определенные значения, которые иногда содержатся в заранее заданном списке, а иногда – в самом поле, вместе с произвольно вводимыми данными. Бывают ситуации, когда ввод данных можно
Создание подстановки из фиксированного набора значений
Создание подстановки из фиксированного набора значений После ввода нескольких записей в таблицу Заказы становится ясно, что в поле СостояниеЗаказаприходится вводить одни и те же значения. Для упрощения ввода данных в это поле можно создать еще одну связанную таблицу,