АВТОМАТИКА, УПРАВЛЕНИЕ И ТЕХНИЧЕСКАЯ КИБЕРНЕТИКА
УДК 519.72
МОДИФИКАЦИЯ КРИПТОАНАЛИТИЧЕСКОГО АЛГОРИТМА СИДЕЛЬНИКОВА - ШЕСТАКОВА ДЛЯ ОБОБЩЕННЫХ КОДОВ РИДА - СОЛОМОНА И ЕЕ ПРОГРАММНАЯ РЕАЛИЗАЦИЯ
© 2006 г. В.М. Деундяк, М.А. Дружинина, Ю.В. Косолапое
Введение
Передача данных по каналам связи сопровождается применением различных средств защиты, в частности, средств защиты от несанкционированного доступа (НСД). Для организации канала передачи конфиденциальной информации широко используются криптосистемы с отрытым ключом, позволяющие эффективно решить проблему распространения ключей между абонентами и обладающие достаточно высокой криптостойкостью. К таковым относятся и системы открытого шифрования Мак-Элиса [1, 2], в основе которых лежат коды, корректирующие ошибки. Криптостойкость таких систем основана на том, что декодирование кодов «общего положения» является ЖР-полной задачей, в то время как сложность декодирования некоторых алгебраических кодов относительно невелика.
Шифросистемы Мак-Элиса, основанные на обобщенных кодах Рида - Соломона (ОРС-кодах), будем называть шифросистемами МЭРС. Так как ОРС-коды над полем Галуа ^ могут иметь длину q - 1, q, д + 1, то, вообще говоря, можно построить три различные шифросистемы. Естественно возникает задача проверки стойкости этих шифросистем к различным атакам, среди которых наиболее опасными являются атаки на секретный ключ. Замечательные результаты в этом направлении были получены В.М. Сидельни-ковым и С.О. Шестаковым в [3] для шифросистемы МЭРС с длиной кода п = д + 1. Алгоритм Сидельни-кова - Шестакова - единственный известный алгоритм полиномиальной сложности, осуществляющий атаку на секретный ключ шифросистем Мак-Элиса (см. [2, 4]). Вопросы программной реализации этого криптоалгоритма рассмотрены в [5, 6].
На случай п = д - 1, д алгоритм Сидельникова -Шестакова непосредственно распространить не удается, так как он основан на том, что группа автоморфизмов ОРС-кода длины п = д + 1 содержит подгруппу, изоморфную группе дробно-линейных преобразований, в то время как при п = д - 1, д группа автоморфизмов ОРС-кода такой подгруппы не содержит. В настоящей работе построен алгоритм, который на основе редукции к некоторой модификации криптоал-
горитма Сидельникова - Шестакова позволяет осуществить атаку на секретный ключ шифросистемы МЭРС с длиной кода д - 1 и д. Полное обоснование алгоритма публикуется отдельно. На основе алгоритма Сидельникова - Шестакова и предложенного нами алгоритма построена и программно реализована общая модель, позволяющая осуществлять атаки на секретный ключ шифросистемы МЭРС с п = д - 1, д, д + 1.
1. Шифросистема МЭРС. Для того чтобы определить эту шифросистему, приведем необходимые сведения о ОРС-кодах и введем некоторые обозначения. Пусть - поле Галуа, где д = рг, р - простое число, г - целое число. Мультипликативную группу поля будем обозначать через . Пусть ¥ = = и
Обобщенным (п, к, ё)-кодом Рида - Соломона (ОРС-кодом) называют линейный код длины п, размерности к, с кодовым расстоянием ё и порождающей матрицей ь ^ь* ={£*}, ] =\ш, где Гпхп - перестановочная
матрица, ОпХп = (51,52,...,sn) - диагональная матрица с ненулевыми элементами на главной диагонали, а вид матрицы Акхп зависит от п: при п = д - 1
( 1
а,
A
k X(q-1)
1
а-
1 ^
а
k-1 а k-1 1 Ut о
а
а
q -1
k-1 q-1
где а 1 = а , а2 = а ,..., а -1 = а
-n,q-2
а - фиксиро-
ванный примитивный элемент поля; при п = д к матрице АкХ(д-1) добавляется справа столбец (1,0,...,0)т , соответствующий элементу 0 из а при п = д + 1 добавляется еще один столбец (0,0,...,1)т , соответствующий элементу «> [7]. Матрица АкХп является порождающей матрицей кода Рида - Соломона (РС-кода). Для удобства элементам 0 и «> поставим в соответствие формальные степени примитивного элемента: аи а ; отметим, что этим элементам
соответствуют самые простые столбцы кодовой матрицы, что далее будет существенно использоваться в криптоалгоритме Сидельникова - Шестакова. Для обобщенных кодов Рида - Соломона построены различные декодеры, позволяющие гарантированно исправлять t ошибок, где 0 < t < _(п - к)/2_.
Пусть К - множество невырожденных матриц размера к х к над полем 3 - множество перестановочных матриц размера п х п, А - множество невырожденных диагональных матриц размера п х п над полем Рассмотрим ансамбль Т, состоящий из матриц вида Вкхп = НкхкАкхпГ пхпВпхп ' где нкхк - случайная матрица из К, Гпхп - случайная матрица из 3, Опхп - случайная матрица из А. Отметим, что любая
матрица из ансамбля Т является порождающей некоторого ОРС-кода.
Опишем теперь шифросистему МЭРС [2]. Открытым ключом (ключом расшифрования) Кр шифроси-стемы является пара (ВД где ВеТ, t = _(п - к)/2_|; секретным ключом (ключом зашифрования) К является тройка (Нкхк, Г пхп, Бпхп). Чтобы зашифровать
сообщение а из , необходимо выбрать вектор
ошибок е, веса не больше t, и вычислить Ь = аВ + е.
Расшифровать Ь может только владелец секретного ключа К, для этого ему необходимо вычислить вектор ЬО-хп Г ~х„ и декодировать его в вектор V. Из равенства
ЬВпхп Г пхп = аН кхкВкхп + еВпхп Г пхп
получаем, что V = аН кхк , так как веса у векторов е и
ё°-хпГ-хп равны. Тогда а = т^к . Шраметр п будем называть длиной ключа.
2. Криптоаналитический алгоритм Сидельни-кова-Шестакова для шифросистемы МЭРС при
п = q + 1. В [2, 3] доказано, что для взлома шифросистемы МЭРС при п = q + 1 по открытому ключу В
вместо секретного КЛюча = (Нкхк, Г пхп, Впхп )
достаточно найти такие матрицы Нкхк (е К),
Гпхп (е3), Впхп (еА), что Вкхп = НкхкАкхпГпхпВпхп
и использовать их для дешифрования. Тройку К,, = (Нкхк, Г пхп, Бпхп) назовем подходящим секретным ключом. Таким образом, цель атаки на ключ -нахождение подходящего секретного ключа К,.
На первом этапе алгоритма Сидельникова - Шестакова отыскивается матрица Г пхп, но для этого сначала вычисляется произведение Акхп Г пхп , имеющее вид
A Г
xn^ nxn
( 1
ю,
1
Юч
1 ^
ю
ю
k -1
ю
k-1
ю
k -1
где ю 1 = аР1,ю2 = ар2,...,юп = аРп - все элементы множества Е. Далее множество чисел {р1,р2,...,рп} упорядочивается по возрастанию. Перестановке п, переводящей {р 1,р2,...,рп} в упорядоченный набор чисел, соответствует перестановка столбцов, переводящая единичную матрицу Епхп в матрицу Г пхп. Отметим, что нахождение матрицы Акхп Г пхп сводится к нахождению ее второй строки - (ю 1,ю2,...,юп). Предложенный В.М. Сидельниковым и С.О. Шеста-ковым способ при п = q + 1 заключается в фиксировании в (ю 1, ю 2,..., ю п) на трех произвольных позициях элементов 1, 0, ^ и последующем нахождении позиций оставшихся элементов множества Е \{1,0,^} посредством решения специальной системы линейных уравнений. Подчеркнем, что, как отмечалось выше, элементам 0 и ^ отвечают самые простые столбцы кодовой матрицы. Анализ алгоритма показывает, что элементы 1, 0, ^ необязательно фиксировать на первых трех позициях, так как выбор позиций не влияет на алгоритм вычисления элементов ю1,ю2,...,юп , а
влияет лишь на выбор столбцов, из которых строятся системы линейных уравнений. Ниже подробно рассмотрен случай, когда 1, 0 и ^ фиксируются в качестве первых трех элементов. Алгоритм Сидельникова -Шестакова разобьем на блоки, конец блока будем обозначать символом «€». Схема алгоритма в показана на рис. 1.
Алгоритм Сидельникова-Шестакова. Вход: п = q + 1, В = ф1}) г=1_к; ;=1,. ,п .
Выход: К, = (Нкхк, Гпхп, Впхп ).
Блок А. Вычисление элементов ю 1, ю 2,..., ю п :
1) найти такие с,-1-1, сг-2) е ^, где I = 1,...,к , что
^с^Ь, = 0, , = 1, к + 1,...,2к - 2, ¿с(2)Ьу. = 0, 1=1 , =1
, = 2, к + 1,...,2к - 2;
2) для , = 3,..., к, 2 к - 1,..., п вычислить
к к в (!) в= 2^Ь, , в(/> = 1^% , а, = , ,=1 ,=1 в(
3) найти с(3), с(4) е ^ , I = 1,...,к такие, что
¿сг(3)Ьу. = 0, , = 1,3,...,к , ¿с,(% = 0, , = 2,3,...,к ; 1=1 , =1
к
4) для , = к + 1,...,2к-2 в^гчислить в(;3) =Ес^Ь, ,
1=1
к в(3) в (4)
в. 1 Ьг1 , а. в(4) в (п3) п ;
5) положить ю 1 = 1, ю 2 = 0, ю 3 = ^, а для
■ * а 3
, = 4,...,п вычислить ю , =
а з-а j
Перейти на блок Б. €
Блок Б. Построение матрицы Г nxn.
Выход
Рис. 1. Схема алгоритма Сидельникова - Шестакова Зная порядок элементов ш 1;ш2,...,шn , найти упорядочивающую перестановку п и построить Г nxn. Перейти на В.€
Блок В. Вычисление матрицы H kxk = (hj ) ^ j=l.j-и первых k + 1 элементов s1, s 2,..., sk+1 диагональной матрицы Dnxn :
k+i
1) найти c1, c2, .., ck+1 eFq, такие, что £ cibij = 0 ,
i=1
i = 1,...,k ;
2) положить s1 = 1 и найти s 2,..., sk+1 из системы
k+1
линейных уравнений £CjOyjsj = 0, i = 1,...,k +1;
j=1
3) для всех i = 1,...,k найти hi1, ..., hik такие, что
£ ш j = s-j lbij , j = Ъ — k .
Перейти на блок Г.€
Блок Г. Вычисление оставшихся элементов
k
£
г=1
Sk+2 ,. ■ ■, sn и матрицы Dn
Найти = (hj) i, j =1,...,k
= £h1ibi: , j = k + 2,...,n . По элементам s1,
j " у
i=1
>2,--, Jn
3. Криптоаналитический алгоритм для шифросистемы МЭРС при любом n. Как отмечалось выше, алгоритм Сидельникова - Шестакова основан на том, что группа автоморфизмов ОРС-кода длины n = q + 1 содержит подгруппу, изоморфную группе дробно-линейных преобразований, в то время как при n = q - 1, q группа автоморфизмов ОРС-кода такой подгруппы не содержит. Поэтому при n = q - 1, q алгоритм Сидельникова-Шестакова непосредственно применить не удается, однако можно провести редукцию криптоанализа шифросистемы МЭРС при n = q - 1, q к случаю n = q + 1. Для этого необходимо внести ряд изменений в исходный алгоритм и добавить новые блоки. Схема модифицированного алгоритма показана на рис. 2.
В случае n = q - 1, q так же, как и в случае n = q + 1, доказывается, что для взлома шифросистемы достаточно по открытому ключу B найти подходящий секретный
ключ т е. такую тротку Ks = (HkXk, Гnxn, Dnxn ^ для
когорот B = HkxkAkxnГnxnDnxn , и использовать его
для дешифрования.
Далее для определенности будем считать, что n = = q - 1, а для случая n = q редукция строится аналогично с некоторыми естественными упрощениями. Идея редукции заключается в построении по известному открытому ключу B шифросистемы МЭРС длины n = q - 1 вспомогательного открытого ключа B0 длины n = q + 1, нахождении некоторого подходящего секретного ключа длины n = q + 1 и последующем переходе к искомому подходящему секретному ключу длины n = q - 1.
Вспомогательный открытый ключ B0 длины q + 1 строится по открытого ключу B длины q - 1 путем добавления к матрице B двух специальным образом вычисленных столбцов b0 и b„, соответствующих элементам 0 и т.е. B0 = (B | b0 | b^). При вычислении этих столбцов используется модификация алгоритма Сидельникова - Шестакова, состоящая в добавлении блока 8 и ряда проверок. Отметим, что при вычислении столбцов b0 и b^ блок Г не используется.
По ключу B0 с помощью исходного алгоритма Сидельникова - Шестакова строится версия вспомогательного секретного ключа
K S = ( H k x k , Г
D (
и вычислить
построить матрицу Dnxn . € Конец алгоритма.
к Х к'1 (д+1)Х (дд+1)х (д+1)
Потом проверяется правильность выбора в блоке 8 недостающих элементов ю и ю д+1 для построения
столбцов Ь0 и Ь^. Если был сделан правильный выбор этих элементов, то по
К 5 = (НкХк , Г(д+1)Х(дВ (д+1)х(д+1)) строится искомый подходящий секретный ключ
= (Н к Хк , Г пХп , ВпХ п ) , в противном случае элементы ю д и ю д+2 меняются местами.
С
Вход
n - fix, n £ {q -1, q, q + 1}
B = (Йу ) j =1,...,n
1 Г л Г
Блок S
Выход: при Л=1: fflj,Ю2,. при Х=2: Юj,Ю2,. ., Ю q 1, Ю ' q 1' •> Ю q-1> Ю q,Ю q+1 Ю
Рис. 2. Модель криптоанализа шифросистемы МЭРС для любого n
Алгоритм атаки на ключ шифросистемы МЭРС при п = д - 1.
Вх°д: п = д - 1 В = (Ь1}) г=1_к. ;=1, п . Выход: К, = (Нкхк, Г
пхп ' Б пх п ) .
Блок А. Выгаисление элементов ю1;ю2,...,юп.
Установить X = 1 (введение переменной X позволяет отслеживать, какой этап алгоритма выполняется: построение вспомогательного открытого или вспомогательного секретного ключа) и, используя блок А алгоритма Сидельникова - Шестакова, вычислить ю^ю2,...,юп. Перейти на проверку 1. €
Проверка 1. Если п = д + 1, то перейти на блок Б, иначе - на блок 8.
Блок 8. Выбор недостающих элементов ю , ю +1.
Если X = 1, то выбрать значения для ю , ю +1 и
добавить их к вычисленным в блоке А элементам ю1,ю2,...,юд-1; если X = 2, то значения ю и юд+1
поменять (напомним, что при вычислении элементов множества ^ важен их порядок). Перейти на блок Б.€
Блок Б. Найти Г (д+1)х( д + 1) .
Этот блок совпадает с блоком Б алгоритма Сидельникова - Шестакова. Перейти на В.€
Блок В. Вычисление матрицы Н кхк = (И^)^ =1.к и первых к + 1 элементов 51,5 2,..., +1 диагональной
матрЩЫ Б ( д +1)х( д+1) .
Этот блок совпадает с блоком В алгоритма Си-дельникова - Шестакова. Перейти на проверку 2.€
Проверка 2. Если X = 1 или X = 3, то перейти на проверку 3, иначе - на блок Г1.
Проверка 3. Если п Ф д + 1, то перейти на блок Д, иначе - на блок Г.
Блок Д. Выгаисление матрицы В0 размерности к х (д +1).
пРи ^^ = 1 ^ижлтъ Ьо = Нкхк(1, юд, юдюдч)т, Ь- = Нкхк(1юд+1,юд+1,...,юд-1)т ; при X = 3 выгаис-
ЛИТь Ьо = Нкхк (1, ю д+1, ю 2+1— ю д-1) Т , Ь- = Нкхк
в ш . Положить В 0 = (В | Ь 0| Ь ^). Перейти на блок А1 €.
Блок А1. Выгаисление элементов ю1, ю2,...,юд+1.
Этот блок по существу совпадает с блоком А алгоритма Сидельникова - Шестакова. Отличие состоит только в том, что при нахождении элементов ю1, ю2,...,юд+1 полагается юд-1 = 1, ю = 0, юд+1 = —.
Положить X = X + 1 и перейти на блок Б € Блок Г. Выгаисление матрицы Б (д+1)х( д+1).
Этот блок сработает только при X = 1, т.е. при п = = д + 1, поэтому, он совпадает с блоком Г алгоритма Сидельникова - Шестакова. Перейти на выход. Блок Г1. Выгаисление матрицы Б (д+1)х( д+1).
Штп Н^ = {к')г, ]=1_к и югажотта s} = %h'^lbl] ,
i=1
j = к + 2,...,q . Элемент sq+1 выгаислить по формуле
к
S q+1 =Е h'kibi(q+1) . П0 элементам s l, s 2 S q+1 П0" i=1
строить D( +1)X(q+1). Перейти на проверку 4. (Отметим, что этот блок практически совпадает с блоком Г, но имеет отличие при выгаислении sq+1). €
q+1
Проверка 4. Если П si = 0 , то перейти на блок 8.
i=1
q+1
Если же П si ф 0 , то перейти в блок Е.
i=1
Блок Е. Построение матриц Г nXn и DnXn.
В матриЦах Г (q+1)x( q+1) и D (q+1)x( q+1) УДаЛЯЮтсЯ
последние q + 1 - n строк и последние q + 1 - n столбцов, в результате этого определяются матрицы Г nXn, Dnxn и делается вывод о том, что тройка
= (Нкxk, Г nxn, Dnxn ) является искомым годход^
щим секретным ключом. € Конец алгоритма.
Заметим, что построенная модель подходит для криптоанализа всех трех шифросистем МЭРС: при n = q - 1, q и q + 1. Введение дважды проверки «n = q + + 1» в схему на рис.2 позволяет отслеживать, секретный ключ какой шифросистемы МЭРС вычисляется. При n = q блок 8 используется только один раз при X = 1, где фиксируется недостающий элемент ю q+1.
Последовательность выполнения блоков при различных n запишем в виде слов. При n = q - 1: «Вход» А8БВДА1БВГ1XE «Выгсод», где X = 8БВДА1БВГ1 при
q+1
П si = 0 и X равно пустому слову в противном слу-
i =1
чае; при n = q: «Вход» А8БВДА1БВГ1Е «Выход»; при n = q + 1: «Вход» АБВГ «Выход».
Как уже отмечалось, программная модель криптоанализа шифросистемы МЭРС на основе алгоритма Сидельникова - Шестакова (n = q + 1) была разработана в [6], где подробно описаны способы представления элементов поля, методы реализаций арифметических операций и основные модули программного средства. Программная реализация построенной в настоящей работе модели разработана на основе этого программного средства с дополнением необходимых компонентов согласно схеме на рис. 2. С помощью полученной программы для различных полей Галуа проведены эксперименты, подтверждающие корректность разработанного криптоалгоритма. В частности, для поля F256 и открытых матричных ключей с параметрами n = 255, 256, 257 и к = 40 подходящий секретный ключ на ПЭВМ с процессором Mobile AMD
Sempron 3000 + и оперативной памятью 256 M был
найден за 4с.
Литература
1. McEliece R.J. A Public-Key Cryptosystem Based on Algebraic Theory // DGN Progress Rep. 42-44, Jet Propulsion Lab, Pasadena, CA, J-F. 1978. P. 114-116.
2. Сидельников В.М. Криптография и теория кодирования // Московский университет и развитие криптографии в России. М., 2002. С. 49-84.
3. Сидельников В.М., Шестаков С.О. О системе шифрования, построенной на основе обобщенных кодов Рида-Соломона // Дискр. матем. 1992. Т. 4. № 3 С. 57-63.
Донской государственный технический университет
4. Gibson J.K. The security of the Gabidulin version of McEliece public key cryptosystem // Designs, Codes and Cryptography. 1996. P. 212-223.
5. Деундяк В.М., Дружинина М.А. Косолапое Ю.В. К вопро-
су о применении криптоаналитического алгоритма Си-дельникова-Шестакова // Материалы междунар. науч.-практ. конф. «Теория, методы проектирования, программно-техническая платформа корпоративных информационных систем». Новочеркасск, 2003. С. 101-102.
6. Косолапов Ю.В. О программной реализации криптоана-литического алгоритма Сидельникова-Шестакова // Вестн. ДГТУ. 2004. Т. 4. № 4 (22). С. 447-454.
7. Мак-Вильямс Ф. Дж., Слоэн Н. Дж. А. Теория кодов, исправляющих ошибки. М., 1979.
30 мая 2006 г.
УДК 007:631.2
НЕЧЕТКАЯ МОДЕЛЬ ВЫБОРА РЕГУЛИРОВОЧНЫХ ПАРАМЕТРОВ КОМБАЙНА ПРИ ИНДУКТИВНОМ ЛОГИЧЕСКОМ ВЫВОДЕ
© 2006 г. Л.В. Борисова, В.П. Димитров
Введение
Зерноуборочный комбайн можно рассматривать как нечеткую систему, функционирующую в изменчивых условиях внешней среды. Данная система, взаимосвязи между ее входами и выходами характеризуются полным пространством состояний, включающим факторы внешней среды (Ф), состояние регулировочных параметров (РП) и показатели качества технологического процесса (ПК)
ЗК = {Ф; РП; ПК}.
Показатели качества процесса уборки в определяющей степени зависят от состояния регулировочных параметров машины, выбор значений которых зависит от конкретных значений факторов внешней среды. Характерной особенностью рассматриваемой задачи является то, что как значения факторов уборки, так и регулируемых параметров машины нельзя определить с заданной точностью. Знания об этих признаках являются нечеткими. Кроме того, используемые на практике рекомендации по проведению регулировки рабочих органов комбайна, т.е. описание отношений между рассматриваемыми признаками, обладают ярко выраженной нечеткостью. Таким образом, задачу принятия решений по корректировке технологических регулировок можно рассматривать как задачу принятия решения в нечетких условиях [1].
Методика решения задачи. Для принятия решений по корректировке технологических регулировок при появлении внешнего признака нарушения технологического процесса, например «повышенное дроб-
ление зерна», и установления значений регулируемых параметров, которые обусловливают появление этого признака, используется индуктивная схема вывода вида [2]:
L =
L1 :< ЕСЛИ L 2 :< ЕСЛИ
B1 В 2
ТО A1 >; ТО A 2 >;
(1)
L т :< ЕСЛИ В т, ТО А т >;
А' - истинно;
В' - истинно.
Здесь В, A - нечеткие высказывания, а четкие высказывания А' и В' имеют вид
А ':<ß^ есть w' >; В ':<ßV есть v' >; w' = (x,y,z,...) e XX YXZ X..., v'e V.
Рассмотрим методику решения задачи на основе нечеткого правила modus ponens. В схеме нечеткого вывода (1) высказывания о значениях входных параметров являются посылкой для самой схемы (высказывание А') и следствием внутри системы L (высказывания А j), а высказывания о значениях выходных
параметров являются следствием для схемы вывода (1) (высказывание В'), но посылкой внутри системы L (высказывания В j). Поэтому для выбора значений
выходного параметра V на основе правила modus ponens необходимо преобразовать систему высказы-