Следствием теоремы 1 и данного метода синтеза является следующая теорема.
Теорема 2. Система функций полна в <2-
Синтез 5-формул для монотонных функций в базисах, содержащих функции из {у}и7<,)
/мне** тшиг^е, и л^у/х^лль'
другой стороны, так как
^(сШ^^АФ^М- Следовательно, /(^ откуда получаем: . ЛвММа ДО-
казана.
Лемма 10. Пусть / - произвольная функция из
Введем в рассмотрение специальный класс Вм моно-тоных функций: произвольная функция / из М принадлежит Вм, если и только если найдутся элементы ев Е, с в С »{¡в такие, что е<с, У/={е, с} и для любого элемента Я из DfЩмofícty=c<z>d'Ы
Для произвольных е из Е, с из С таких, что е<с, и для произвольного (1 из С при некотором т обозначим /¿'с функцию из Вм, определенную на Сг, такую, что для каждого (¡' из С":ДсГ)=с если ¿"><1, и _ДйГ)=е в противном случае.
Лемма 9. Пусть/,/0 - функции из М и Д/о. Тогда найдется число г, функции $1,..., а, из 5 и функции из
/1.....из Вм такие, что
Доказательство. Случай/^о - Тривиален. ПусЛъ /¿/о. Тогда Обозначим £»о={^еЛД^>/о(й0}. Пусть Дг ={с1\.....с1г}. Зафиксируем указанную нумерацию элементов в Д>. Для произвольного / в {1,..., г} пусть е, -произвольный элемент из множествами) и ИгА4)- Д™ каждого элемента < из {1,..., г} возьмем функцию И,} в Вмтакую, что/г/<*"'Ы- Пусть при любом / из {1,..., г) sí - функция из 5 такая, что з{е,)=0. Для любого /)с£>/постоим функцию У/ для произвольного (Г в йр положив (Я)=№сГУг1Ас0, где суммирование ведется по всем ¿1 из Д содержащимся в элементе (Г. Заметим, что/^/при £>=Д) и /® = /0. Пусть
¿е {1,..., г} и £*сД г-<4 Тогда/^/Ч/- Покажем это.
Пусть и не реализуется <4 Тогда и, следовательно, ^^гД^^лДсО^Г'^А^«/«/)55
Пусть <£>4. Тогда
ЛИТЕРАТУРА
Агибалов Г.П. Дискретные автоматы на полурешетках.Томск: Изд-во Том. ун-та, 1993.227 с.
2. Агибалов Г.П. О полных системах операций и синтезе схем для квазимонотонных функций на конечных полурешетках // Новые
информационные технологии в исследовании дискретных структур. Екатеринбург: Из-во УрО РАН, 1998. С. 149-152.
3. Агибалов Г.П. О полных системах функций на полурешетке подмножеств конечного множества // Всесибирские чтения по матема-
тике и механике: Математика. Томск: Изд-во Том. ун-та, 1997. Т. 1. С. 148-149.
4. Агибалов Г.П. К синтезу схем, реализующих квазимонотонные функции на полурешетке подмножеств двухэлементного множества.
//Там же. С. 147-148.
Статья представлена кафедрой защиты информации и криптографии факультета прикладной математики и кибернетики Томского государственного университета, поступила в научную редакцию 1 марта 2000 г.
УДК 621.391.7
И. В. Пронина, Г.П. Агибалов
НЕКОТОРЫЕ АЛГОРИТМЫ КРИПТАНАЛИЗА ДЛЯ КОДОВЫХ КРИПТОСИСТЕМ
Предлагаются алгортмы криптанализа для кодовых криптосистем с закрытым ключом с целью нахождения ключа при возможности выбора сообщений и для кодовых криптосистем с открытым ключом с целью нахождения сообщения, если известны открытый ключ и криптограмма.
Bjm). Тогда существуют функции S0>—> sm в Вм ' такие, что/хь-, ^mHoCi^iV-Vi^).
Доказательство. /еВд* поэтому существуют элементы е в Е, с в С, <Hdh..., dm) в Df такие, что е<с и/принимает значение с на аргументах, реализуемых 4 и значение е на остальных аргументах.
Пусть А={А—1,0) - элемент из С. Положим s0^fh'с и SrfjT1, * для всех /е{1,..., т). Можно показать, что Дхь..., jc^soCsiX]v.. .vs^J. Лемма доказана
Леммы 9, 10 позволяют нам сформулировать следующий метод синтеза 5-формул для функций из М в базисе {v]^1)\jBJ1\
1. Любым известным способом получим реализацию f0 функции /
2. Способом, описанным в доказательстве леммы 9,
находим функции sh..., sr в функции b/J.....fr из Вм и
представляем/в формеfi^s/i^afi-^s/r-
3. Способом, описанным в доказательстве леммы
10, для каждой f mfi.....f, находим функции s0,n..., зт, в
В0* такие, чт Дх...... xmy=s0l£siAxiy/...vsmil(xm)), и представляем функцию / в форме ß%vsfivaf2-vsfr =^oV,1t5o,i(S|,,(jCi)v...VSmjlW)]vJ2[jo^|i2(Xi)V...VSmj2W)]
Описанный метод синтеза является доказательством следующей теоремы.
Теорема 3. Система функций {v}<j7<1)(jBm0) s-полна в М.
Введение
Кодовые криптосистемы строятся на основе линейных кодов, исправляющих ошибки. Как и все крипто-
системы, они делятся на два класса - симметричные, или с закрытым ключом, и несимметричные, или с открытым ключом. Криптанализу последних посвящены работы [1,2, 3], где для некоторых кодовых криптоси-
стем с открытым ключом решена задача нахождения закрытого ключа по соответствующему открытому ключу. В данной работе рассматриваются двоичные (на основе двоичных кодов) кодовые криптосистемы. Для таких криптосистем первого класса решается задача криптанализа с целью нахождения закрытого ключа при возможности выбора открытого текста (сообщений). Предлагается вероятностный алгоритм, доставляющий решение задачи с вероятностью, близкой к 1. Приводятся результаты испытаний алгоритма на компьютере. Для кодовых криптосистем второго класса решается задача криптанализа с целью нахождения сообщения, если известны открытый ключ и криптограмма По существу это есть задача декодирования для произвольного кода, исправляющего ошибки, для которой в настоящее время не известны алгоритмы решения с полиномиальной сложностью. В данной работе предлагается эвристический алгоритм поиска её решения путём перебора возможных кандидатов на решение с использованием некоторых правил сокращения перебора. В отдельных случаях это сокращение может оказываться значительным и приводить к решению задачи за полиномиальное время.
Криптанализ симметричных систем
Шифрование в симметричной двоичной кодовой криптосистеме над полем вР(2) описывается следующим уравнением:
•7=*>е©«.# О)"
где х - булев вектор с к компонентами, являющийся сообщением; у - булев вектор с п компонентами, являющийся криптограммой; б - булева матрица размера кхп, которая является закрытым ключом и представляет собой порождающую матрицу некоторого двоичного линейного (л, А)-кода, исправляющего ошибок; е - случайный булев вектор с п компонентами, который содержит не более / единиц и играет роль вектора ошибок.
Задача криптанализа для нахождения закрытого ключа при возможности выбирать открытый текст заключается в данном случае в том, что требуется так выбрать значения вектора х, чтобы по этим значениям и по соответствующим значениям вектора у=хСФе, при случайных значениях вектора е можно было бы найти матрицу б.
Предлагается следующий подход к решению этой задачи. Будем выбирать в качестве значений вектора х единичные векторы (100.. .0), (010.. .0),.. .,(00.. .01), причем каждый такой вектор может браться некоторое число $ раз, 5>3. Тогда рассматриваемая здесь задача криптанализа сводится к решению к раз следующей частной задачи: пусть булевы векторы %,у\,уг> •••,>'» еь Зь •••> е» одной и той же длины п удовлетворяют уравнениям
УгШ®е1,1= 1,2.....5, (2)
и вес каждого вектора е, не превосходит заданного числа »>1; требуется, зная векторы_уь_Х2,.. ,,у„ найти векторы g, еь еъ ..., е3. В самом деле, если в уравнении (1) вектору х придать 5 раз значение одного и того же единичного вектора с 1 в у'-й компоненте, то получим соотношение (2), где g естьу-я строка искомой матрицы б.
Заметим, что есть много других практических ситуаций, в которых возникает эта частная задача. Вот только два примера.
Пример 1. Здесь: g — сигнал в форме двоичного вектора, многократно (s раз) передаваемый по симметричному двоичному каналу с шумом; е, - вектор ошибки, случающейся в нем при /-й передаче; t -максимально возможная кратность ошибки; задача приемника состоит в определении сигнала g путем исключения неизвестных ошибок в], е2,..., е., из принимаемых векторовyi, у2, ...,ys.
Пример 2. Здесь: конкатенация e=e\e2...es - это некоторое сообщение, конкатенация у=у1уг-■ у, - это криптограмма, полученная из е по ключу g методом Виженера; задача криптоаналитика заключается в определении по у ключа g и сообщения е.
Предлагается следующий алгоритм решения частной задачи. Векторы е, однозначно определяются по >>/ и g, поэтому достаточно найти g. Пусть у,= =У1\Уа-Ут, i" 1,2,-, s. Для каждого у'= 1,2, ..., п подсчитаем вес Wj вектора y\jyy...ysj, и полагаем g'y=l, если Wj>s/2, и g'/=0, если w,<[s/2]. Полученный вектор g' является результатом работы алгоритма.
Данный алгоритм следует считать вероятностным алгоритмом решения задачи, т.к. полученный вектор g' совпадает с искомым вектором g лишь с некоторой вероятностью Р, зависящей от соотношения между параметрами /, п и s.
Теор$мд..ЦриМ<л£2, «=2/1-1. C^J У -Р вероят-. ность принятия компонентой вектора е значения 1, то вероятность P=liмС,р\\-рУ''.
Доказательство. Допустим, известны векторы е,~ =елеа...ет /=1,2,..., s. Для каждогоу=1,2,..., п подсчитаем вес Wj вектора и положим е'/=1, если wj>sl2, и
е'у=0, если Wj<\st2\ Если wf^sil] для любого/=1,2,..., п, то е'=(00...0) и g'=g. Следовательно, вероятность получения алгоритмом решения задачи равна вероятности того, что е'=(00.. .0). Найдем эту вероятность.
Рассмотрим множество О. всех булевых векторов длины и и веса w<t. Мощность этого множества равна C„0+Cn'+...+Cn'. Будем проводить опыты, каждый из которых состоит в извлечении из множества ft некоторого вектора е с возвратом. Пусть А - случайное событие, которое состоит в том, что значение некоторой компоненты извлеченного вектора е равно 1. Вероятность р этого события равна
(C^+Cj'+.. .+С„м)/( Сл0+Ся'+...+С„').
Можно рассматривать р как функцию переменной t при фиксированном значении п. Если t изменяется от 1 до п, то р возрастает и принимает значения 1/(л+1).....1/2. Известно [4]: вероятность того,
что в к опытах событие А наступит ровно ц раз, будет /^(nJK^V'i 1 Вероятность того, что в s= =2г+1 опытах событие А наступит меньше либо равно г раз, будет P=Ps(0)+Ps( 1)+...+Р,(г). Таким образом, вероятность получения алгоритмом решения задачи равна Р=Ъг^С^р,{\-р)''>. Теорема доказана.
Приведем значения вероятности Р в таблице, где строкам соответствует число проводимых опытов s, столбцам - максимальный вес векторов /. Длина векторов п= 19.
1 2 3 4 5 6 7 8 9 I
I 3 0,993 0,972 0,94 0,899 0,852 0,799 0,744 0,689 0,637
1 5 0,999 0,991 0,974 0,945 0,904 0,852 0,793 0,731 0,67
111 0,999 0,999 0,997 0,989 0,97 0,934 0,881 0,813 0,737
115 0,999 0,999 0,999 0,996 0,985 0,96 0,915 0,849 0,769
21 0,999 0,999 0,999 0,999 0,995 0,98 0,947 0,888 0,807
1 29 0,999 0,999 0,999 0,999 0,998 0,992 0,971 0,923 0,845
Алгоритм и установленные соотношения тривиальным образом переносятся на случай, когда вес каждого вектора е, не меньше заданного Л
На компьютере проводились испытания с целью выяснить реальные значения $ при различных значениях параметров п, /. Генерировалась случайная последовательность булевых векторов е, размерности п и веса < / до тех пор, пока из них не получался вектор е'=(00...0), и фиксировалось число 5 сгене-
рированных векторов. Для каждой пары п, t эксперимент повторялся 1024 раза. Среди этого множества значений s выбиралось минимальное, максимальное и вычислялось среднее арифметическое значение. В следующей таблице строкам соответствует максимальный вес векторов t, столбцам - длина векторов л и на пересечении указана пара (í максимальное; s среднее). Из таблицы видно, что отношение sin убывает с ростом п.
32 64 128 256 512 |
/=и/32 6 3 8 3 6; 3 6; 3 6 3
/=л/16 6 3 8 3 8; 3 8; 3 10 3
8 12 3 12 3 12; 4 10; 4 " Ú
t=n/4 16 4 18 5 20; 5 22; 6 24 8
| t=n/2 50 10 50 12 57; 15 61; 18 70 JU
Криптанализ систем с открытым ключом
Здесь мы рассматриваем несимметричные кодовые криптосистемы, в которых в качестве открытого ключа выступает некоторая порождающая матрица б произвольного двоичного (л,А)-кода, исправляющего ошибки кратности меньшей либо равной /, а криптограмма у и сообщение х являются булевыми векторами длины п и к соответственно и связаны между собой уравнением (1). Примером такой криптосистемы может быть криптосистема Мак-Элиса [5,6], в которой секретным ключом является тройка (С, 5, Р), открытым ключом - матрица Р, где С - порождающая матрица (и,А)-кода Гоппы с исправлением /-кратных ошибок, 5 - невырожденная матрица размера (кхк), Р - перестановочная матрица размера (ихя).
Исследуем задачу криптанализа, состоящую в нахождении секретного сообщения по открытому ключу и криптограмме, т.е. для заданной матрицы й и заданного вектора у требуется найти вектор х, удовлетворяющий уравнению (1), при некотором (заранее неизвестном) булевом векторе е, м>(е)Я. Это есть задача декодирования для кода, порожденного матрицей й, и она является КР-полной. Это значит, что в настоящее время не существует алгоритма полиномиальной сложности, решающего еб для произвольной матрицы б. Ниже предлагается эвристический алгоритм, который в некоторых случаях (для некоторых матриц С7) решает данную задачу за полиномиальное время.
Искомый вектор х будем называть решением поставленной задачи и трактовать как набор значений булевых переменных хи х2,..., *ь полагая, что /-я компонента в нем равна значению переменной х„ /=1, 2,..., к. Его префикс любой длины ¡<к будем
называть частичным решением задачи и трактовать как набор значений первых / из этих переменных. Частичным решением считаем также и пустой вектор X.. Частичное решение а =а\а2...^ для ¡<к называется квазиполным, если не превосходит величины / вес вектора г(а)=уф а^Ф ...Ф где & для_/=1, 2,..., к есть у'-я строка матрицы й. В этом случае, очевидно, вектор а0*"где 0я - набор из т нулей, будет (полным) решением задачи, оправдывая название для а.
Будем искать решение задачи переборным методом, использующим дерево поиска. Вершины в последнем суть вектор X и всевозможные булевы векторы длин 1, 2.....к, распределенные по (А+1) ярусам так, что корнем дерева (и вершиной 0-го яруса) служит вектор X, а вершинами /-го яруса для /=1,..., к являются все векторы длины /. Ребра в дереве расположены между соседними ярусами, причем для каждого /=0, 1.....Ы вершина а /-го яруса соединена ребром с вершиной Р (/+1)-го яруса, если и только если р=аст для сте{0,1}. По определению, каждая вершина /-го яруса смежна двум вершинам (/+1)-го яруса и каждая вершина (/+1>го яруса смежна одной вершине /-го яруса. Полным решением задачи является некоторый лист (вершина Л-го яруса) дерева поиска. Все частичные решения лежат (в качестве вершин) на пути из корня в этот лист.
Понятие частичного решения не является конструктивным, и нам неизвестен тест, позволяющий для любого булева вектора а длины г<к или, что одно и то же, для любой вершины а /-го яруса эффективно проверять, является ли а частичным решением задачи. Вместе с тем можно указать (это будет сделано ниже) некоторые легко проверяемые условия, при которых а заведомо не будет частич-
ным решением. Располагая такими условиями, можно для нахождения решения задачи предложить следующий алгоритм поиска с возвращением (по дереву).
Алгоритм моделирует процесс перехода из корня дерева в искомый лист путем выполнения серии подъемов и спусков, осуществляемых при определенных условиях. Подъем - это перемещение из достигнутой вершины /-го яруса в смежную вершину (/+1)-го яруса для /<А, а спуск - возвращение из текущей вершины /-го яруса в смежную вершину (/—1)-го яруса для />0. Подъем может выполняться только в вершину, в которую до этого еще не поднимались. В отсутствие таковой или, если достигнутая вершина не может быть частичным решением задачи, осуществляется спуск. По достижению вершины дерева, являющейся квазиполным решением задачи, алгоритм останавливается. Ниже дается строгое описание данного алгоритма. В нем через а[/] и а]/ обозначены соответственно /-я компонента и префикс длины / вектора а.
1. (Начальная установка) а:=Х, /:=0, г{сс)=у.
2. /=/+1 и
3. (Подъем).
3.1. а:=аО, и если а не может быть частичным решением, то п. 3.2, иначе - п. 2.
3.2. a:=al, z(a):=z(a)®gh и если а не может быть частичным решением, то п. 4, в противном случае, если а-квазиполное, то п. 5, иначе п. 2.
4. (Спуск) z(a):=z(a)®g,, /:=М, a:=a]„ и если а[/]-1, то п. 4, иначе a:=a],.i и п. 3.2.
5. Вектор a0*'f есть решение.
Сформулируем условия, при которых булев
вектор а=а1а2...а1 для i<k не может быть частичным решением задачи. Вычислим вектор z(a)=ziz2...z„. Пусть матрица Я получена из G вычеркиванием первых / строк и /0 обозначает количество таких г в {1, 2,..., и}, что zr=l и r-й столбец матрицы Я состоит из одних нулей (является нулевым). Разобьем множество всех ненулевых столбцов матрицы Я на классы одинаковых столбцов. Пусть число классов равно т, и s-й из них, j=l, 2,..., т, состоит из столбцов с номерами ги...,гр. Обозначим ¡¡о и tsi количество нулей и единиц соответственно среди компонент вектора z(a), имеющих номера ги..., гр. Пусть, наконец, t„ есть наименьшее из и tsl, а t' равно сумме всех t„ s= 1,..., т.
Теорема. Вектор а не может быть частичным решением задачи, если /о+/">/.
Утверждение справедливо, так как в противном случае вектор е в уравнении (1) должен иметь вес больше t.
ЛИТЕРАТУРА«
1. Сидельников В.М. Открытое шифрование на основе двоичных кодов Рида-Маллера // Дискретная математика. 1994. Вып. 2.
2. Сидельников В.М., Шестаков С.О. О системе шифрования, построенной на основе обобщенных кодов Рида-Соломона // Дискретная
математика. 1992. Вып. 3.
3. Брикет Э.Ф., Одлижко Э.М. Криптоанализ: Обзор новейших результатов // ТИИЭР. 1998. № 5.
4. РадюкЛ.Е., Терпугов А.Ф. Теория вероятностей и случайных процессов. Томск: Изд-во Том. ун-та, 1988.
5. Аснис И.Л., Федоренко C.B., Шабунов К.Б. Краткий обзор криптосистем с открытым ключом // Зашита информации. 1994. № 2.
6. Агибалов Г.П. Адекватные модели полурешеток, функций и автоматов на полурешетках // Вестник ТГУ. 2000. № 271.
Статья представлена кафедрой защиты информации и криптографии факультета прикладной математики и кибернетики Томского государственного университета, поступила в научную редакцию 1 марта 2000 г.
УДК 519.7
Г.П. Агибалов
АДЕКВАТНЫЕ МОДЕЛИ ПОЛУРЕШЕТОК, ФУНКЦИЙ И АВТОМАТОВ НА ПОЛУРЕШЕТКАХ
Работа выполнена при финансовой поддержке РФФИ, грант № 98-01-00288
Определяются понятия адеквгггной модели и ее точности для конечной верхней полурешежи, для функции и автомага на таких полурешетках и для полурепкггочно упорядоченной алгебры. В этих определениях элементами адекватной модели полурешетки служат все наибольшие элементы смежных классов некоторой конгруэнции, которая, в свою очередь, характеризует точность модели. Изучаются свойства и даются метод ы построения адекватных моделей для полурешегок, функций и автоматов на них.
Введение
Важнейшими характеристиками всякой математической модели являются ее адекватность и степень точности. В случае дискретных моделей первая понимается как безошибочность в том смысле, что результат адекватного моделирования всегда содержит в себе истинное значение моделируемой величины, а вторая - как степень неопределенности этого результата [1]. Для управляющих систем на конечных верхних полурешетках удается формализовать эти понятия, а утверждения о них сделать доказательными [2]. Это достигается определением адекватной модели на полурешетках, составленных из наибольших элементов смежных классов полурешеток заданной системы по некоторым конгруэнци-ям, которыми и характеризуется степень точности модели.
В данной работе понятия адекватной модели и ее точности определяются для полурешеток, функций и автоматов на полурешетках и для полурешеточно упорядоченных алгебр. Указан метод построения адекватных моделей для полурешеток подмножеств и интервалов с точностью до эквивалентности на множестве минимальных элементов полурешетки. Показано, что свойства монотонности и квазимонотонности функции на полурешетках передаются любой ее адекватной модели, а свойство аддитивности - лишь модели, точность которой сохраняется данной функцией. Установлено, что адекватная модель суперпозиции монотонных функций реализует суперпозицию их адекватных моделей и совпадает с ней в случае сохранения функциями точностей их моделей. В терминах стабильных троек конгруэнций охарактеризованы всевозможные адекватные модели произвольного конечного автомата на полурешетках. Показано, что свойства аддитивности, монотонности и квазимонотонности автомата на полурешетках сохраняются в его адекватных моделях.