Примитивы криптосистем с открытым ключом: конечные некоммутативные группы четырехмерных векторов

X кодирование и передача информации

УДК 681.3

примитивы криптосистем с открытым ключом: конечные некоммутативные группы четырехмерных векторов

Д. Н. Молдовян1,

младший научный сотрудник

Санкт-Петербургский институт информатики и автоматизации РАН

Для синтеза производительных алгоритмов распределения открытых ключей и открытого шифрования вводится новая вычислительно трудная задача над конечными некоммутативными группами. Предложен подход к построению некоммутативных групп четырехмерных векторов над простым полем и выводится формула для порядка этих групп. Описана схема согласования общего секретного ключа двух удаленных абонентов и алгоритм открытого шифрования на основе новой трудной задачи.

Ключевые слова — криптография, криптосистемы с открытым ключом, протокол открытого согласования ключа, открытое шифрование, конечные группы, некоммутативные группы, группы векторов, трудная задача.

Введение

В последние годы возрос интерес к использованию некоммутативных групп в качестве примитивов криптосистем с открытым ключом [1], связанный с ожиданием разработки действующего квантового компьютера, с применением которого задачи факторизации и дискретного логарифмирования в циклической группе будут решаться за полиномиальное время [2]. Последнее означает, что все наиболее широко применяемые алгоритмы открытого распределения ключей, открытого шифрования и электронной цифровой подписи (ЭЦП) станут небезопасными, поскольку их стойкость основана на сверхполиномиаль-ной сложности указанных двух задач при их решении на имеющихся в настоящее время компьютерах. «Постквантовая» криптография связана с использованием новых трудных задач, сложность которых была бы сверхполиномиаль-на и в случае применения квантового вычислителя. В работах [3, 4] такие задачи сформулированы над бесконечными некоммутативными группами переплетения, а затем применены для построения алгоритмов открытого шифрования [4] и ЭЦП [5].

1 Научный руководитель — доктор технических наук, профессор, заместитель директора по научной работе СПИИРАН Б. В. Соколов.

В данной статье формулируется новая вычислительно трудная задача над конечными некоммутативными группами, рассматривается построение на ее основе алгоритмов открытого согласования общего секретного ключа двух удаленных абонентов и открытого шифрования, описывается подход к заданию конечных некоммутативных групп четырехмерных векторов и выводится формула для вычисления порядка таких групп.

Криптосхемы с открытым ключом на основе конечных некоммутативных групп

Одним из способов синтеза криптосистем с открытым ключом на основе некоммутативных конечных групп является использование их подгрупп, обладающих достаточно большим простым порядком. Такие подгруппы являются циклическими, а групповая операция в них коммутативна. В этом случае синтез криптосхем, основанных на сложности задачи дискретного логарифмирования, аналогичен синтезу в случае коммутативных групп. Обоснованием данного подхода является ожидание, что сведение задачи дискретного логарифмирования в циклической подгруппе некоммутативной группы к задаче дискретного логарифмирования в конечном поле или конечном кольце многочленов будет невозможно. В частных случаях такое сведение возможно, поэтому требуется выполнить выбор подгрупп, об-

ладающих соответствующим значением простого порядка [6].

Более интересным является подход, использующий задачу вычисления элемента некоммутативной группы X и числа х (пара этих элементов служит секретным ключом) в уравнении Y = = X ° Gx ° X-1, где Y — элемент группы, используемый в качестве открытого ключа; G — элемент достаточно большого простого порядка q (элементы Y и G считаются известными); X — элемент, для которого выполняются неравенства X ° G Ф Ф G ° X и Y ° G Ф G ° Y (при заданном числе х значение элемента X определяет значение Y). Операции умножения на взаимно обратные элементы X и X-1 реализуют операцию автоморфизма [7]. Решение указанного выше уравнения представляет собой самостоятельную трудную вычислительную задачу, отличную от задачи дискретного логарифмирования. При известном X можно вычислить Y' = X-1 ° Y ° X или G' = X ° G ° X-1, после чего число х можно найти из уравнения Y' = Gx или Y = G' х соответственно, т. е. решая задачу дискретного логарифмирования. Однако значение X является неизвестным, поэтому задача дискретного логарифмирования в циклической подгруппе не стоит. Можно ожидать, что в конечной некоммутативной группе при известном х сравнительно легко вычислить неизвестный элемент X, однако одновременное нахождение X и х является сложной задачей, несмотря на то, что существует очень большое число различных решений (если X и х — некоторое решение, то для произвольного элемента группы 0, коммутирующего со всеми другими элементами, пара (0X, х) также является решением).

Схема открытого согласования ключа на основе предлагаемой задачи описывается следующим образом. Пусть два удаленных абонента имеют открытые ключи Y1 = Х-1 ° GXl ° X—1 и ^ = ^2 °

о Gx2 ° X—1, где (X!, х1) и ^2, х2) — личные секретные ключи первого и второго абонентов такие, что X1 ° X2 = X2 ° X1. После открытого обмена открытыми ключами первый абонент вычисляет общий секретный ключ по формуле К12 = Х-1 О а второй — по формуле К21 = Х2 ° У*2 ° ° X—1 = К-12- Комбинируя аналогичным образом операцию автоморфизма и операцию возведения в большую дискретную степень, можно построить алгоритмы коммутативного и открытого шифрования. Техническим вопросом является согласование выбора секретных значений X1 и X2 из одной и той же коммутативной подгруппы, который решается заданием дополнительного известного элемента ф такого, что ф ° G Ф G ° ф, также обладающего большим простым порядком. В этом случае открытые ключи вычисляются по формулам

Y1 = QWl о GXl о Q-wl и Y2 = Qw2 о Gx2 ° Q-u,2,

где пары (w1, х1) и (w2, х2) являются личным секретным ключом первого и второго абонентов соответственно. В случае, когда порядки элементов ф и G равны большому простому числу q, имеющему размер |q| бит, вычисление пары неизвестных (w, х) может быть выполнено методом, аналогичным методу больших и малых шагов [8], с трудоемкостью 21?1 операций возведения в степень. Из этой оценки следует, что рассмотренная схема открытого согласования ключа имеет приемлемую для практического применения криптостойкость при q > 280.

Алгоритм открытого шифрования можно построить по следующей схеме. Пусть некоторый пользователь желает послать секретное сообщение М владельцу открытого ключа Y = Qw ° Gx ° ° ф~и>, где (w, х) — личный секретный ключ получателя сообщения. Отправитель сообщения формирует разовый личный секретный ключ в виде пары чисел (и, V), вычисляет разовый открытый ключ Я = фи ° Gv ° Я~и, вычисляет разовый общий секретный ключ К = фи ° У ° ф~и, по ключу К зашифровывает сообщение и отправляет разовый открытый ключ и зашифрованное сообщение получателю. Получатель по разовому открытому ключу Я вычисляет разовый общий секретный ключ К = ° Ях ° ф~и>, затем по ключу К рас-

шифровывает сообщение М. Пусть в данной схеме используется алгоритм шифрования, представленный функцией шифрования ЕК, управляемой секретным ключом в виде элемента некоммутативной группы К. Тогда описанная выше схема реализуется следующим алгоритмом.

1. Отправитель генерирует пару случайных чисел (и, V), вычисляет элементы Я = фи ° Gv ° ф~и и К = фи ° У v ° ф~и некоммутативной группы, где У — открытый ключ получателя.

2. Используя значение К в качестве ключа шифрования, отправитель зашифровывает сообщение М: С = ЕК (М).

3. Отправитель направляет получателю криптограмму С и значение Я.

4. Получатель вычисляет значение К' = °

° Ях ° ф-1" = К, где (w, х) — личный секретный ключ получателя, и расшифровывает криптограмму С: М = DK (С), где DK — функция расшифрования, обратная ЕК.

В описанных выше криптосхемах используется отображение циклической подгруппы Г(?, порождаемой элементом G в некоторую другую (скрытую) циклическую подгруппу того же простого порядка q, задаваемого отображением фX(Gl) = = X ° Gl ° X-1, где I = 1, 2, ..., q, которое является автоморфизмом рассматриваемой конечной некоммутативной группы. При этом элемент X за-

дается в виде X = Qw. Возникает вопрос о различии циклических подгрупп, в которые отображается подгруппа Гс при различных значениях

1 < w < q', где q — порядок элемента Q. Ответ на этот вопрос дает следующая теорема.

Теорема 1. Пусть G и Q — элементы некоммутативной группы, имеющие простые порядки q и q соответственно, такие, что Q ° G Ф G ° Q и Z ° G Ф G ° Z, где Z = Q ° G ° Q-1. Тогда все элементы Zj = Q ° Gl ° Q-j, где i = 1, 2, ..., q - 1 и j = 1, 2, ..., q', попарно различны.

Доказательство: Очевидно, что при фиксированном j элементы Zj = Qj ° Gi ° Q-j, где i = 1, 2, ..., q, образуют циклическую подгруппу порядка q. Условие Z ° G Ф G ° Z означает, что элемент Z не принадлежит подгруппе Гс, порождаемой степенями элемента G (при предположении противного легко устанавливается противоречие). Пусть при некоторых i, i' Ф i, j и j' Ф j (для определенности положим j' > j) элементы Z- = Qj ° Gl ° Q-и Zj, = Qj' ° Gi' ° Q~j' равны, т. е. Qj ° Gi ° Q-j = Qj' ° ° Gi ° Q-j. Умножая обе части последнего выражения справа на Qj и слева на Q-j, получаем Gi = Qj-j ° Gi' ° Q~j'+ j. Так как Гс есть подгруппа простого порядка q, то любой неединичный элемент подгруппы Гс является порождающим, т. е. при 1 < i' < q - 1 элемент P =Gi является порождающим, а значит степени Pz (z = 1, 2, ..., q) пробегают все элементы подгруппы Гс. При этом для всех z имеет место соотношение

(Gi)z = (Qj'-j ° P ° Q-j'+ j)z = Qj'-j ° Pz ° Q-j'+j e rG,

т. е. отображение - (Pz) = Qj -j ° Pz о Q-j +j переводит любой элемент подгруппы rG в некоторый элемент этой же подгруппы. Это означает, что отображение ф^ - (Г G) отображает подгруппу rG в себя. Рассмотрим отображение ф^(Г(?). Поскольку порядок элемента Q есть простое число q', то для j' Ф j существует некоторое число u = (j-j)-1 mod q', для которого имеют место соотношения

Q = (Qj'-j)u

и

фд (Г g ) = ф(^''-j (Г g ) =

= Ф#'-j %j'-j (-Ф^'-j (ГG)-)),

где в правой части последнего выражения выполняется u последовательных отображений q>Qj- -j (ГG). Так как ф^-- (ГG) — это отображение подгруппы rG в себя, то и таких отображений также переводит подгруппу rG в себя, т. е. Z = = фQ(G) = Q ° G ° Q-1 e rG. Из сделанного предположения вытекает, что элемент Z принадлежит циклической подгруппе, порождаемой элементом G, следовательно, для элементов Z и G долж-

но выполняться свойство коммутативности, т. е. Z ° G = G ° Z, однако это противоречит условию Z ° G Ф G ° Z теоремы. Полученное противоречие доказывает теорему.

В соответствии с теоремой 1 число различных неединичных элементов Zj составляет (q - 1)q', и они образуют вместе с единичным элементом N подгрупп простого порядка q, где N = q', причем каждый неединичный элемент принадлежит только одной из этих подгрупп.

Построение конечных некоммутативных групп четырехмерных векторов

Рассмотрим множество векторов вида (a, b, c, d) = ae + bi + cj + dk, где e, i, j и k — формальные базисные векторы; a, b, c и d - целые числа, называемые координатами и принадлежащие конечному простому полю GF(p), где p — простое число. Выражения ae, bi, cj и dk обозначают векторы (a, 0, 0, 0), (0, b, 0, 0), (0, 0, c, 0) и (0, 0, 0, d) соответственно и называются компонентами вектора (a, b, c, d). Определим операцию сложения векторов как сложение одноименных координат: (a, b, c, d) + (x, y, z, w) = (a + x, b + y, c + z, d + w), где знак «+» применен для обозначения двух разных операций — сложения элементов поля GF(p) и сложения векторов, что не вносит неопределенности ввиду очевидности интерпретации знака в каждом случае его применения. Операцию умножения векторов ae + bi + cj + dk и xe + yi + zj + wk определим по правилу «умножения многочленов»:

(ae + bi + cj + dk) ° (xe + yi + zj + wk) =

= axe ° e + aye ° i + aze ° j + awe ° k + bxi ° e +

+ byi ° i + bzi ° j + bwi ° k + cxj ° e + cyj ° i +

+ czj ° j + cwj ° k + dxk ° e + dyk ° i +

+ dzk ° j + dwk ° k,

где координаты вектора умножаются как элементы поля GF(p), а операция ° имеет более высокий приоритет по сравнению со сложением, а произведения всевозможных пар базисных векторов заменяются базисным вектором или однокомпонентным вектором в соответствии с правилом умножения, задаваемым табл. 1, в которой пара-

Таблица 1. Правила умножения четырехмерных базисных векторов

Базисный вектор Базисный вектор

e i j k

e e i j k

i i -ee ek -j

j j -ek -ee i

k k j -i -e

йм^ 45

метр є є СЖ(р) называется структурным коэффициентом. Различным значениям є соответствуют формально различные операции умножения векторов. Определенная таким способом операция умножение векторов (а, Ь, с, d) и (х, у, z, w) выполняется по правилу

(а, Ь, с, d) ° (х, у, z, w) =

= (ах - єЬу - єcz - dw)e + (Ьх + ау - dz + cw)i +

+ (сх + dy + az - bw)j + ^х - єсу + єbz + аw)k.

Легко проверить, что определенная операция умножения обладает свойством ассоциативности и в общем случае является некоммутативной. Нейтральным элементом по умножению является вектор Е = (1, 0, 0, 0).

Множество всех векторов {А} такое, что каждому вектору А может быть сопоставлен обратный вектор А-1, для которого выполняется соотношение АА-1 = Е, образует конечную группу. Для вычисления порядка О построенной некоммутативной группы рассмотрим решение уравнения вида АХ = Е, которое можно представить следующим образом:

(ае + Ьі + с) + dk) ° (хе + уі + zj + wk) =

= ( ах - єЬу - єcz - dw)e +

+ (Ьх + ау - dz + cw)i + (сх + dy + az - bw)j +

+ ^х - єсу + єbz + aw)k = 1е + 0і + 0)+ 0к.

Из последней записи вытекает, что для определения обратных значений следует решать следующую систему из четырех линейных сравнений с четырьмя неизвестными:

ах — еЬу — есг — dw = 1 mod р

Ьх + ау — dz + cw = 0 mod р

сх + dy + ах — bw = 0 mod р

dx — есу + еЬг + aw = 0 mod р

Если главный определитель А(А) системы (1) не равен нулю, то существует решение, которое дает значение координат вектора, являющегося обратным к вектору А = (а, Ь, с, d). Если А(А) = 0, то вектор А необратим. Значение О определим как число всех четырехмерных векторов, равное р4, за вычетом числа необратимых векторов. Запишем значение определителя А(А):

a —eb — ге —d

a —d е

b a d е

A( А) = = a d a —b +

е d a —b

-ге єЬ a

d —ге eb a

b — d е b a е b a —d

+ eb е a —b ге е d —b + d е d a

d eb a d —ге a d -ге єЬ

Четыре слагаемых в правой части последнего выражения содержат одинаковый множитель:

—d с

a —b

—гс eb a

= a(a(a2 + eb2) + d(ad — ebc) +

+ c(ebd + eac)) = a2 (a2 + eb2 + ec2 + d2);

eb

b —d c

c a —b

d eb a

= eb(b(a2 + eb2) + d(ac + bd) +

+ c(ebc — ad)) = eb2 (a2 + eb2 + ec2 + d2);

—ec

b a c

c d —b

d —ec a

= —ec(b(ad — ebc) — a(ac + bd) -

- c(-ec2 - d2)) = ec2 (a2

eb2

ec2 + d2);

b a —d

c d a

d —ec eb

= d(b(ebd + eac) — a(ebc + ad) —

— d(—ec2 — d2)) = d2 (a2 + eb2 + ec2 + d2).

Складывая правые части последних четырех выражений, получаем

A( A) = {a2 + eb2 + ec2 + d2 )2,

откуда следует, что число необратимых векторов равно числу решений сравнения

-eb2

-ec2 + d2 = 0 mod p

относительно неизвестных (a, b, c, d). Рассмотрим следующее утверждение.

Утверждение 1. Пусть простое число p представляется в виде p = 4k + 1 при некотором натуральном k > 1. Тогда число решений сравнения (2) равно p3 + p2 - p при произвольных значениях

1 < е < p - 1.

Доказательство: Для рассматриваемых значений простого числа p число -1 является квадратичным вычетом. Действительно, в соответствии с критерием Эйлера имеем (-1)(p - 1)/2 = = (-1)2k = 1 mod p. Следовательно, существует квадратный корень из -1, т. е. для некоторого целого числа X < p - 1 имеем X2 = -1 mod p. Перепишем сравнение (2) в тождественном виде:

a2 - (kd)2 = -e(b2 + c2)modp;

(a + Xd)(a — Xd) = —e(b2 + c2) mod p;

a

d

аб = -e

где а = a + Xd mod p; 5 = a - Xd mod p; 0 < а < p - 1 и 0 < 5 < p - 1. Легко видеть, что между множеством пар (а, 5) и множеством пар (a, d) существует взаимно однозначное соответствие, следовательно, число решений сравнения (3) относительно неизвестных (а, b, c, 5) равно числу решений сравнения (2) относительно неизвестных (a, b, c, d). Подсчитаем число решений сравнения (3). Если т = b2 + c2 Ф 0 mod p, то а Ф 0 и 5 Ф 0. Сравнение b2 + c2 = 0 mod p имеет 2p - 1 решений относительно неизвестных b и c: одно решение имеет вид (b, c) = (0, 0) и 2(p - 1) решений имеют вид (b, c) = = (±Xc, c), где 1 < c < p - 1. Для каждого значения т Ф 0 (это имеет место для Nbc = p2 - 2p + 1 различных пар значений b и c) и каждого значения а Ф 0 (число различных значений а равно Na = p - 1) существует единственное 5, удовлетворяющее сравнению (3), т. е. случаю т Ф 0 соответствуют NT Ф 0 = = N6cNa = (p - 1)3 различных решений сравнения

(3). Каждому из 2p - 1 вариантов пар значений b и c, при которых имеет место случай т = 0, соответствуют p - 1 различных решений, образуемых парами значений а = 0 и 5 Ф 0 плюс p - 1 различных решений, образуемых парами значений а Ф 0 и 5 = 0 плюс решение (а, 5) = (0, 0), т. е. значению т = 0 соответствуют Nx = 0 = (2p - 1)2 различных решений сравнения (3). Таким образом, число различных решений сравнения (3), а значит и сравнения (2), равно

N Ф 0 + N=0 = (p - 1)3 + (2p - 1)2 = p3 + p2 - p,

что и требовалось доказать.

Утверждение 2. Пусть простое число p представляется в виде p = 4k + 1 при некотором натуральном k > 1. Тогда порядок некоммутативной группы четырехмерных векторов, групповая операция которой задана по табл. 1, равен Q = p(p - 1) х х (p2 - 1).

Доказательство: Число всех различных четырехмерных векторов над простым полем характеристики p равно N = p4. В соответствии с утверждением 1 число необратимых векторов равно N' = p3 + p2 - p. Порядок группы равен числу обратимых векторов Q = N - N' = p4 - p3 - p2 + + p = p(p2(p - 1) - (p - 1)) = p(p - 1)(p2 - 1), что требовалось доказать.

Утверждение 3. При е = 0 порядок некоммутативной группы четырехмерных векторов равен Q = p2(p2 - 1), если простое число p представляется в виде p = 4k + 3, или Q = p2(p - 1)2, если простое число p представляется в виде p = 4k + 1.

Доказательство: При е = 0 определитель системы сравнений (1), из которой вычисляются координаты обратного вектора, равен Д(А) = a2 +

+ d2 mod p. Для значений простого числа p, представимых в виде p = 4k + 3, число -1 является квадратичным невычетом. Действительно, в соответствии с критерием Эйлера имеем (-1)(p - 1)/2 = = (-1)2k + 1 = -1 mod p. Следовательно, не существует квадратный корень из -1, поэтому сравнение a2 + d2 = 0 mod p имеет решение только при (a, d) = (0, 0), т. е. все векторы вида (0, b, c, 0) являются необратимыми. Число таких векторов равно p2. В рассмотренном случае порядок группы векторов равен Q = p4 - p2 = p2(p2 - 1). Для значений простого числа p, представимых в виде p = 4k + 1, число -1 является квадратичным вычетом, поэтому сравнение a2 + d2 = 0 mod p имеет

2p - 1 различных решений (см. доказательство утверждения 1), которым соответствуют необратимые векторы вида (±(-d)1/2, b, c, d), где b и c — произвольные значения. Число необратимых векторов равно p2(2p - 1). В этом случае порядок группы векторов равен Q = p4 - p2(2p - 1) = = p2(p - 1)2. Утверждение 3 доказано.

Утверждение 4. Пусть простое число p представляется в виде p = 4k + 3 при некотором натуральном k > 1. Тогда если структурный коэффициент е является квадратичным невычетом, то порядок некоммутативной группы четырехмерных векторов, групповая операция которой задана по табл. 1, равен Q = p(p - 1)(p2 - 1).

Доказательство: Для рассматриваемых значений простого числа p число -1 является квадратичным невычетом. Действительно, в соответствии с критерием Эйлера имеем (-1)(p - 1)/2 = = (-1)2k + 1 = -1 mod p. Поскольку е - квадратичный невычет, то e(p - 1)/2= -1 mod p и (-e)(p - 1)/2 = = 1 mod p. Следовательно, число -е является квадратичным вычетом и существует квадратный корень из -е, т. е. для некоторого целого числа X < p - 1 имеем X2 = -е mod p. Перепишем сравнение (2) в тождественном виде:

a2 - (Xb)2 = -(d2 - (Xc)2)modp;

(a + Xb)(a - Xb) = -(d2 - (Xc)2) mod p;

a§ = -

где а = a + Xb mod p; 5 = a - Xb mod p; 0 < а < p - 1 и 0 < 5 < p - 1. Подсчитаем число решений сравнения (4) относительно неизвестных (a, b, c, d) аналогично тому, как это сделано в доказательстве утверждения 1. Если т = d2 - (Xc)2 Ф 0 mod p, то а Ф 0 и 5 Ф 0. Сравнение d2 - (Xc)2 = 0 mod p имеет

2p - 1 решений относительно неизвестных c и d: одно решение имеет вид (c, d) = (0, 0) и 2(p - 1) решений имеют вид (c, d) = (c, ±Xc), где 1 < c < p - 1. Для каждого значения т Ф 0 (это имеет место для Nbc = p2 - 2p + 1 различных пар значений c и d) и а Ф 0 (N, = p - 1 различных значений а) суще-

ствует единственное 5, удовлетворяющее сравнению (4), т. е. случаю т Ф 0 соответствуют N. Ф 0 = = NbcNa = (р - 1)3 различных решений сравнения

(4). Каждому из 2р - 1 вариантов пар значений с и d, при которых имеет место случай т = 0, соответствуют р - 1 различных решений, образуемых парой значений а = 0 и 5 Ф 0 плюс р - 1 различных решений, образуемых парой значений а Ф 0 и 5 = 0 плюс решение (а, 5) = (0, 0), т. е. случаю т = 0 соответствуют N. = 0 = (2р - 1)2 различных решений сравнения (4). Таким образом, число различных решений сравнения (4), а значит и сравнения (2), равно

V = N Ф 0 + Nт-n =

рз.

= (р - 1)3 + (2р - 1)2 = р3 + р2 - р.

Число всех различных четырехмерных векторов равно N = р4. Порядок О группы равен числу обратимых векторов, следовательно:

О = N - N = р4 -р3 - р2 + р = р(р - 1)(р2 - 1), что и требовалось доказать. Экспериментальные результаты

Доказанные выше утверждения о порядке конечной некоммутативной группы четырехмерных векторов для различных значений р и е были проверены экспериментально с помощью компьютерной программы, реализующей алгоритм вычисления строения группы (под строением группы понимается таблица, показывающая число векторов для каждого возможного значения их порядка). Типичные результаты, полученные в ходе вычислительного эксперимента, который подтвердил доказанные в предыдущем разделе утверждения, показывает табл. 2. Эксперимент также показал, что в утверждении 4 требование того, что структурный коэффициент является квадратичным невычетом, может быть удалено, т. е. во всех экспериментах порядок конечной некоммутативной группы четырехмерных векторов оказался равным О = р(р - 1)(р2 - 1) независимо от структуры простого числа р и значения коэффициента е Ф 0.

Рассмотрим пример выбора простых чисел р, С, с' и векторов G и Q, удовлетворяющих условиям Q ° G Ф G ° Q и Z ° G Ф G ° Z, где Z = Q ° G ° Q-1, и с = с', 1с1 “ |р|, где |с1 (|р|) — длина двоичной записи числа с (р):

р = 751788397; с = С = (р + 1)/2 =

=375894199;е=1;

G = (493205368, 605223810, 704049712, 215749841);

Таблица 2. Строение частных вариантов конечных групп четырехмерных векторов

II со 1 р = 11; е = 10 р = 11; е = 0 р = 13; е = 0

ю N0 ю N0 ю N0 ю

2 57 2 133 2 1 2 339

3 170 3 110 3 242 3 1016

4 42 4 110 4 242 4 1692

6 618 5 1324 5 4 6 3720

7 48 6 110 6 242 12 15552

8 84 8 220 8 484 13 168

12 84 10 4492 10 4 26 168

14 48 11 120 11 120 39 336

16 168 12 220 12 484 52 336

21 96 15 440 15 968 78 336

24 168 20 440 20 968 156 672

42 96 22 120 22 120 - -

48 336 24 440 24 968 - -

- - 30 440 30 968 - -

- - 40 880 40 1936 - -

- - 55 480 55 480 - -

- - 60 880 60 1936 - -

- - 110 480 110 480 - -

- - 120 1760 120 3872 - -

1+Е N = (0 2016 - 13200 - 14520 - 24336

О X II р р юр I 1 )) X X ' 1 ^ 3 II X а О = р2 х х (р2 - 1) О = р2 х х (р - 1)2

Q = (204543067, 267966222, 209297175, 161608828);

Q-1 = (204543067, 483822175, 542491222, 590179569);

Z = (493205368, 638573510, 56561748, 103277561);

Q° G= (478445912,349091248, 194139031, 297937680);

G° Q = (478445912, 529600113, 62144304, 36127512);

Z ° G = (325816345;478721415; 216264816; 409136505);

G° Z = (325816345; 196930991;

521380191; 144664353).

Алгоритм вычисления секретного ключа

В схемах открытого согласования ключа и открытого шифрования, описанных в первом разделе, используется открытый ключ Y, который вычисляется по личному секретному ключу (w, х) по формуле Y = Qw ° Gx ° Q-w, где Q и G — известные элементы некоммутативной группы достаточно большого простого порядка с и с' соответственно. Сложность вычисления секретного ключа по открытому задает верхнюю границу стойкости предложенных криптосхем. Для вычисления секретного ключа по открытому может быть использован алгоритм, аналогичный алгоритму больших и малых шагов, применяемому для решения задачи дискретного логарифмирования [8]. Рассмотрим вычисление секретного ключа в случае с = с' (алгоритм может быть легко адаптирован для с Ф с )•

1. Для всех значений w = 1, 2, ..., с вычислить таблицу значений T

2. Упорядочить таблицу, вычисленную на шаге 1.

3. Установить счетчик I = 1 и значение вектора

V = (1, 0, ..., 0).

4. Вычислить вектор V = V ° G.

5. По отсортированной таблице проверить, имеется ли в ней значение V. Если в таблице имеется значение T(w/) = V, то вывести значение секретного ключа (w, х) = (w', I) и СТОП, в противном случае перейти к шагу 6.

6. Если I Ф с, то прирастить значение счетчика

I ^ I + 1 и перейти к шагу 4, в противном случае — СТОП и вывести сообщение «условия некорректны».

Если условия корректны, т. е. решение задачи имеется, то приведенный алгоритм при некотором значении счетчика I' найдет значение вектора V в таблице, т. е. в этот момент будет выполняться соотношение T(w/) = V = Gl. Поскольку T(w') = Q~w' ° Y ° Qw', то Y = Qw' ° Gl' ° Q-w, т. е. при корректно заданных условиях алгоритм действительно найдет решение. Трудоемкость алгоритма 5 составляет 3с операций умножения плюс 2сlog2с операций сравнения, т. е. 5 = О(с), где О(с) — обозначение порядка. Если принять достаточной верхнюю границу стойкости, равную О(280) операций (как в случае 1024-битовой криптосистемы RSA), то в предложенных в первом

разделе криптосхемах следует выбрать некоммутативную группу, для которой значение порядка элементов Q и G равно с ^

280.

Заключение

В качестве примитива протоколов открытого согласования секретного ключа и открытого шифрования предложена новая вычислительно трудная задача над конечными некоммутативными группами, которую можно назвать задачей дискретного логарифмирования в скрытой циклической подгруппе. На основе данной задачи построена схема согласования по открытому каналу общего секретного ключа двух удаленных абонентов и алгоритм открытого шифрования. В основе этих построений лежит процедура, комбинирующая функцию, задающую автоморфизм конечной некоммутативной группы, и операцию возведения элемента достаточно большого простого порядка в большую целочисленную степень. Разработан алгоритм решения рассматриваемой задачи, из которого дана оценка стойкости предложенных криптосхем. Однако данная задача является новой, поэтому требуются другие независимые исследования для более полной оценки безопасности этих криптосхем. Доказанная теорема 1 имеет общее значение для конечных некоммутативных групп различных типов. Эта теорема отражает «локальное» строение некоммутативной группы, а именно строение в той ее части, которая используется в построении криптосхем на основе новой задачи.

Предложенные криптосхемы могут быть реализованы над построенными конечными некоммутативными группами четырехмерных векторов, над конечными некоммутативными группами векторов других размерностей [9] или над конечными группами невырожденных матриц [10]. Выбор конкретного варианта некоммутативной группы для построения криптографических алгоритмов и протоколов будет определяться вычислительной эффективностью алгоритмов и протоколов при заданном уровне стойкости. Сравнительный анализ быстродействия криптосхем на основе конечных некоммутативных групп различного типа представляет самостоятельный интерес.

Предложенная вычислительно трудная задача может быть применена и для построения криптосхем других типов, например для разработки быстродействующих алгоритмов коммутативного шифрования и протоколов аутентификации с нулевым разглашением. Эти вопросы также представляют интерес как тема отдельного исследования.

Работа поддержана грантом РФФИ № 08-07-00096-а.

Литература /

1. Anshel I., Anshel M., Goldfeld D. An Algebraic Method for Public Key Cryptography // Mathematical Research Letters. 1999. Vol. 6. P. 287-291.

2. Shor P. W. Polynomial-time algorithms for prime factorization and discrete logarithms on quantum computer // SIAM Journal of Computing. 1997. Vol. 26. P. 1484-1509.

3. Ko K. H. et al. New Public-Key Cryptosystems Using Braid Groups // Advances in Cryptology — Crypto 2000: Lecture Notes in Computer Science. Spring-er-Verlag, 2000. Vol. 1880. P. 166-183.

4. Lee E., Park J. H. Cryptanalysis of the Public Key Encryption Based on Braid Groups // Advances in Cryptology — Eurocrypt 2003: Lecture Notes in Computer Science. Springer-Verlag, 2003. Vol. 2656. P. 477489.

5. Verma G. K. A Proxy Blind Signature Scheme over Braid Groups // Int. Journal of Network Security. 2009. Vol. 9. N 3. P. 214-217.

Новиков Ф. А., Иванов Д. Ю.

Моделирование на UML. Теория, практика, видеокурс. — СПб.: Профессиональная литература, Наука и Техника, 2010. — 640 с.: ил. + цв. вклейки (+2 DVD) ISBN 978-5-94387-610-3.

Книга содержит полное описание всех основных версий унифицированного языка моделирования UML и набор рекомендаций по применению языка для моделирования программных систем. При этом высокий уровень понимания авторами UML, умение его использовать вкупе с блестящими педагогическими навыками и хорошим, доступным языком позволяют сделать из учебника (которым книга, несомненно, является) нечто большее, чем просто учебник. Передаваемый опыт и идеи, которыми авторы щедро делятся на страницах книги, делают ее интересной как для читателя уже знакомого с UML, так и для читателя, которому просто интересно узнать, что такое UML и как его применять в своей практике.

В конце книги размещены сводные таблицы, толковый словарь и развитый предметный указатель, что позволяет использовать книгу в качестве справочника. На цветной вклейке дается графическая нотация-шпаргалка, представляющая собой квинтэссенцию нотации UML с необходимыми пояснениями. К книге прилагается видеокурс по UML на двух DVD.

Книга предназначена для практикующих разработчиков программного обеспечения, руководителей 1Т-проектов и их заказчиков, системных архитекторов, студентов высших и средних специальных учебных заведений, а также всех желающих освоить унифицированный язык моделирования UML или познакомиться с ним.

Книгу можно приобрести на официальном сайте данного издания: www.umlmanual.ru

6. Молдовяну П. А., Дернова Е. С., Костина А. А., Молдовян Н. А. Гомоморфизм конечных групп векторов малой размерности и синтез схем цифровой подписи // Информационно-управляющие системы. 2009. № 4. С. 26-32.

7. Каргаполов М. И., Мерзляков Ю. И. Основы теории групп. — М.: Физматлит, 1996. — 287 с.

8. Menezes A. J., Van Oorschot P. C., Vanstone S. A. Handbook of Applied Cryptography. — Boca Raton, FL: CRC Press, 1997. — 780 p.

9. Молдовян Д. Н., Куприянов А. И., Костина А. А., Захаров Д. В. Задание некоммутативных конечных групп векторов для синтеза алгоритмов цифровой подписи // Вопросы защиты информации. 2009. № 4. С. 13-18.

10. Дернова Е. С., Костина А. А., Молдовяну П. А. Конечные группы матриц как примитив алгоритмов цифровой подписи // Вопросы защиты информации. 2008. № 3(82). С. 8-12.

50 f ИНФОРМАЦИОННО-УПРАВЛЯЮЩИЕ СИСТЕМЫ

№ 5, 2010