СПОСОБ ФОРМИРОВАНИЯ КЛЮЧА ШИФРОВАНИЯ-ДЕШИФРОВАНИЯ
METHOD FOR FORMING KEY OF ENCRYPTION/DECRYPTION

Изобретение относится к области криптографии, а именно к распределению ключей, и может быть использовано для построения систем распределения ключей, устойчивых к заданному числу компрометаций личных ключей пользователей, для обеспечения конфиденциальной связи между любой парой пользователей, входящих в эту систему, без участия третьей стороны и необходимости передачи ключевой информации по каналу связи.
Известны способы формирования ключей шифрования/дешифрования (Okamoto Е. Key distribution Systems based on identification information. - Adwances in Cryptology. CKYPTO, 87, Leeture Notex in Computers Science, №293, Springer - Verlag, 1988, p. 194-202), заключающиеся в формировании конфиденциального ключа центра распределения ключей (ЦРК), присвоении идентификаторов пользователям, выработке личных конфиденциальных ключей пользователей, получении сеансовых ключей для конфиденциальной связи любой пары корреспондентов. Однако известные способы-аналоги являются лишь вычислительно стойкими и не позволяют получить безусловную стойкость к компрометациям личных и сеансовых ключей.
A
B
Наиболее близким по своей технической сущности к заявляемому является способ формирования ключа шифрования-дешифрования по патенту РФ №2090006, МПК H04L 9/00, опубл. 10.09.1997. Способ-прототип заключается в формировании конфиденциального ключа ЦРК как коэффициентов симметричного многочлена над заданным конечным полем, присвоение идентификаторов Y, Y пользователям (А и В номера пользователей в системе обмена, A≠В), выработку личных конфиденциальных ключей пользователей как коэффициентов многочленов над заданным полем и получение сеансовых ключей для любой пары корреспондентов как значения многочленов.
i,sν
i,mm
l
l
2
Пусть n - требуемая длина ключа, r=n/16 - количество блоков ключа, а  - число компрометаций личных ключей. Тогда формирование конфиденциального ключа ЦРК осуществляют путем выбора на основе случайных чисел коэффициентов b, b симметричных полиномов {ƒ(x,x)}, где , вида
,
i,sν
i,mm
A,i
1
2
A
1
2
АB
A,i
B
AB,i
АВ
AB,0
AB,1
AB,2
AB,r-1
A,i
i
A
AB,i
A,i
B
16
16
2
16
r-1
16
16
где b≠0, , , b≠0, , , выработку личного конфиденциального ключа пользователя А в виде коэффициентов полиномов {g(х,х)}, , полученных подстановкой идентификатора Y вместо одного из аргументов полинома Х или Х, получение сеансового ключа K подстановкой в полиномы {g(x)}, , коэффициентами которых является личный конфиденциальный ключ пользователя А, идентификатора Y вместо аргумента X, при этом сеансовый ключ длиной n бит представляет собой конкатенацию элементов ключа {K},  по 16 бит каждый, где K=K+K⋅(2)+K⋅(2)+K⋅(2), r=n/16, g(x)=ƒ(x,y)mod2, , K=g(y)mod2, .
Однако, учитывая, что для обеспечения гарантированной стойкости криптографической системы длина ключа n должна быть не менее 256 бит (ГОСТ 28147-89, ГОСТ Р 34.12-2015), способ-прототип имеет недостатки. При программно-аппаратной реализации устройств, выполняющих процедуры получения личных и сеансовых ключей, возникают проблемы при применении этих устройств для работы в реальном масштабе времени, так как на выполнение этих процедур требуется нерационально много процессорного времени. В частности, повышается вычислительная сложность процедур из-за того, что при использовании современных 64 разрядных микропроцессоров, таких как 1891ВМ8Я, происходит единовременное выполнение операций лишь над элементами, состоящими из 16 бит ключа.
Целью изобретения является снижение временных затрат на выполнение процедур получения личных и сеансовых ключей, снижение вычислительной сложности при выполнении процедур получения личных и сеансовых ключей, повышение количества пользователей в системе при поддержании требуемой вероятности сбоев при вводе личного ключа при построении систем распределения ключей, устойчивых к заданному числу компрометаций личных ключей пользователей, для обеспечения конфиденциальной связи между любой парой пользователей, входящих в эту систему, без участия третьей стороны и необходимости передачи какой-либо информации по каналу связи.
A
B
16
64
Поставленная цель достигается тем, что в способе формирования ключа шифрования-дешифрования, заключающемся в формировании конфиденциального ключа ЦРК как коэффициентов симметричного многочлена над заданным конечным полем, присвоении идентификаторов Y, Y пользователям (А и В номера пользователей в системе обмена, А≠В), выработке личных конфиденциальных ключей пользователей как коэффициентов многочленов над заданным полем и получении сеансовых ключей для любой пары корреспондентов как значения многочленов, согласно изобретению вместо конечного поля GF(2) используется поле GF(2).
Тогда алгоритм формирования ключа шифрования-дешифрования будет модифицирован следующим образом.
64
64
64
64
64
64
64
64
2
64
r-1
A
i
1
2
A,i
i
1
2
A
A,i
i
A
i
A
АВ
A,i
AB,i
B
АВ
AB,0
AB,1
AB,r-1
АВ
АВ,0
АВ,1
AB,2
AB,r-1
Пусть n - требуемая длина ключа, r=n/64 - количество блоков ключа, а  - число компрометаций личных ключей. Пусть F∈F[x] - некоторый неприводимый многочлен степени 64 над полем GF(2). Тогда на его основе строится факторкольцо F[x]/(F), являющееся полем Галуа GF(2). Каждому пользователю А по некоторому правилу ставится во взаимно-однозначное соответствие единственный элемент данного поля Y∈GF(2). Формирование конфиденциального ключа ЦРК осуществляют путем выбора на основе датчика случайных чисел коэффициентов симметрических полиномов {ƒ(x,x)},  над полем GF(2). Личный конфиденциальный ключ пользователя А вырабатывается в виде коэффициентов полиномов {g(x)}, , получаемых при подстановке в полиномы {ƒ(x,x)}, , идентификатора Y вместо одного из аргументов: g(x)=ƒ(x,Y)=ƒ(Y,x)mod(2). Сеансовый ключ K получен с помощью подстановки в личный конфиденциальный ключ {g(x)},  идентификатора корреспондента В: K=g(Y)mod(2). При этом сеансовый ключ длиной n бит представляет собой конкатенацию значений многочленов над полем GF(2) K=K||K||…||K, т.e. может быть вычислен по формуле K=К+К⋅(2)+K⋅(2)+K⋅(2).
Анализ уровня техники позволил установить, что аналоги, характеризующиеся совокупностью признаков, тождественных всем признакам заявленного технического решения, отсутствуют, что указывает на соответствие заявленного способа условию патентоспособности «новизна».
Результаты поиска известных решений в данной и смежных областях техники с целью выявления признаков, совпадающих с отличительными от прототипа признаками заявленного способа, показали, что они не следуют явным образом из уровня техники. Из уровня техники также не выявлена известность влияния предусматриваемых существенными признаками изобретения преобразований на достижение указанного технического результата. Следовательно, изобретение соответствует условию патентоспособности «изобретательский уровень».
16
64
64
16
16
1
2
A
Благодаря новой совокупности существенных признаков в заявленном способе уменьшение временных затрат на выполнение процедур получения личных и сеансовых ключей и вычислительной сложности данных процедур, повышение количества пользователей достигается за счет использования вместо конечного поля GF(2) поля GF(2), т.е. арифметические операции выполняются над числами, разрядность которых соответствует применяемым типовым 64-разрядным микропроцессорам, например 1891ВМ8Я, вместо ранее применяемого 16-разрядного типового микропроцессора, например КР1810ВМ86, что приводит к уменьшению количества конкатенаций элементов ключа. Представление конфиденциального ключа ЦРК, личных конфиденциальных ключей пользователей и сеансовых ключей в виде конкатенации r независимых частей сохраняет равновероятное распределение значения сеансового ключа в интервале (1, 2), устойчивость к  компрометациям, также, если бы в качестве конфиденциального ключа ЦРК были выбраны коэффициенты одного полинома ƒ(х,х) в конечном поле GF(2), в качестве личного конфиденциального ключа коэффициенты полинома g(x) в GF(2). Такое представление позволяет, не изменяя общего объема конфиденциального ключа ЦРК, личных конфиденциальных ключей пользователей, уменьшить вычислительную сложность процедур получения сеансовых и личных конфиденциальных ключей более чем в 4 раза.
Подобная вычислительная эффективность достигается следующим образом. Для формирования конфиденциального ключа ЦРК необходимо случайным образом получить коэффициенты r различных симметричных многочленов вида
,
i,sν
i,mm
16
64
16
64
где b≠0, , , b≠0, , . Тогда вычислительная сложность алгоритма получения ключа определяется как , где h - время выполнения одной операции (зависит от процессора). Для сравнения вычислительная сложность алгоритма-прототипа определяется как . Для вычисления личного ключа пользователей необходимо на основании симметрических многочленов рассчитать коэффициенты полиномов вида , . Вычислительная сложность данной задачи определяется как  для алгоритма-прототипа над полем GF(2) и  для представленного алгоритма над полем GF(2). Для вычисления сеансового ключа необходимо рассчитать значения r многочленов над заданным полем Галуа. Сложность этого алгоритма:  для случая GF(2) и  для случая GF(2), т.е. получаем уменьшение сложности в 4 раза по сравнению с прототипом. На основании ГОСТ Р 34.12-2015 сложность алгоритмов определяется как , ,  для формирования конфиденциального, личного и сеансового ключей соответственно. Для сравнения сложности данных алгоритмов в способе прототипе определяются как ,  и  соответственно.
i
1
2
i
l
2
Реализация заявленного способа формирования ключа шифрования/дешифрования длиной n, например 256 бит, объясняется следующим образом. После того, как выбраны значения  требуемой стойкости системы обмена конфиденциальной информацией к компрометациям личных ключей пользователей и неприводимый табличный полином степени 64, в ЦРК формируют конфиденциальный ключ в виде конкатенации коэффициентов симметрических полиномов {ƒ(x,x)}, , которые выбирают на основе датчика случайных чисел. Можно показать, что для того, чтобы сохранить объем конфиденциального ключа ЦРК и личных конфиденциальных ключей пользователей для заданной стойкости  к компрометациям личных конфиденциальных ключей пользователей, симметрические полиномы {ƒ(x,x)}, , у которых все коэффициенты отличны от нуля, должны иметь вид
,
isν
i,mm
i
i
j
A
i
1
2
A,i
A,i
i
A
64
где b≠0, , b≠0, , . После этого конфиденциальный ключ ЦРК записывается на носителе, содержится в секрете и известен только ЦРК. Присвоение идентификаторов пользователям осуществляется путем постановки им в соответствие некоторого элемента поля Галуа Y∈GF(2), такого, что Y≠Y, при i≠j, которое выбирают, например, либо на основе датчика случайных чисел, либо получают элемент по номеру, под которым пользователь вводится в систему, как степень этого элемента в мультипликативной группе поля Галуа. Идентификаторы пользователей размещаются на носителе. Данный носитель доступен всем пользователям. Выработку личного конфиденциального ключа, например пользователя А, осуществляют путем подстановки его идентификатора Y вместо одного из аргументов в симметрические полиномы {ƒ(х,х)}, . Тогда личный ключ представляет собой конкатенацию коэффициентов полиномов {g(x)}, , где g(x)=ƒ(x,Y) и которые после преобразования имеют вид:.
После этого личный конфиденциальный ключ записывают на носителе (перфоленте, магнитной ленте, магнитном диске и т.д.), выдают пользователю, который хранит его в секрете.
AB
АВ
ВА
A,i
AB,i
B
АВ
АВ
АВ,0
АВ,1
АВ,2
АВ,3
АВ
AB,0
AB,0
АВ,2
АВ,r-1
64
64
64
2
64
3
Теперь, если какие-либо пользователи, например А и В, хотят получить сеансовый ключ K, причем K=K, то для этого каждый из них, например пользователь А, выполняет подстановку идентификатора пользователя В в полиномы {g(x)}, , коэффициенты которых являются личным ключом пользователя A: K.=g(Y)mod(2). Сеансовый ключ K длиной, например, 256 бит образуют как конкатенацию К=K||K||K||K, или K=K+K⋅(2)+K⋅(2)+K⋅(2).
16
64
16
64
Таким образом, в рассмотренном способе за счет использования вместо конечного поля GF(2) поля GF(2) обеспечивается достижение сформулированного технического результата - снижение временных затрат на выполнение процедур получения личных и сеансовых ключей, уменьшение вычислительной сложности процедур получения сеансовых и личных конфиденциальных ключей и увеличение общего числа пользователей в системе с 2 (≈32000) до 2 (≈128000).