способ формирования ключа шифрования-дешифрования
Классы МПК: | H04L9/00 Устройство для секретной или скрытой связи |
Автор(ы): | Коржик В.И., Меринович Ю.В. |
Патентообладатель(и): | Военная академия связи |
Приоритеты: |
подача заявки:
1994-07-18 публикация патента:
10.09.1997 |
Изобретение относится к области криптографии, а именно к распределению ключей и, в частности, может быть использовано для построения систем распределения ключей, устойчивых к заданному числу компрометаций личных ключей пользователей, для обеспечения конфиденциальной связи между любой их парой. Техническим результатом является разработка способа формирования ключа шифрования/дешифрования, обеспечивающего более простую программно-аппаратную реализацию на базе одного типового микропроцессора быстродействующего устройства формирования сеансового ключа, снижение вероятностных обоев при вводе личного ключа, упрощение его хранения, повышения устойчивости к внешним механическим и электромагнитным воздействиям. Способ включает формирование конфиденциального ключа ЦРК путем выбора на основе датчика случайных чисел коэффициентов симметрических полиномов fi(x1, x2), выработку личного конфиденциального ключа пользователя - подстановкой в полиномы fi(x1, x2) идентификатора пользователя, получение сеансового ключа - подстановкой в личный ключ идентификатора пользователя. 2 табл.
Рисунок 1
Формула изобретения
Способ формирования ключа шифрования-дешифрования, включающий формирование конфиденциального ключа центра распределения ключей, присвоение идентификаторов YA, YB пользователям (A, B номера пользователей в системе обмена, AB), выработку личных конфиденциальных ключей пользователей и получение сеансных ключей, отличающийся тем, что формирование конфиденциального ключа центра распределения ключей осуществляют путем выбора на основе случайных чисел коэффициентов bi,sv, bi,mm симметричных полиномоввида
где bi,sv 0;
выработку личного конфиденциального ключа пользователя A в виде коэффициентов полиномов идентификатора YA вместо одного из аргументов полинома Х1 или Х2, получение сеансового ключа КAB подстановкой в полиномы коэффициентами которых является личный конфиденциальный ключ пользователя A, идентификатора YB вместо аргумента Х, при этом сеансовый ключ длиной n бит представляет собой конкатенацию элементов ключа по 16 бит каждый, где
r n/16;
gA,i(x) fi(X,YA) mod 216,
KAB,i gA,i(YB) mod 216, н
Описание изобретения к патенту
Изобретение относится к области криптографии, а именно к распределению ключей, и, в частности, может быть использовано для построения систем распределения ключей, устойчивых к заданному числу компрометаций личных ключей пользователей, для обеспечения конфиденциальной связи между любой парой пользователей, входящих в эту систему, без участия третьей стороны и необходимости передачи какой-либо информации по каналу связи. Известны способы формирования ключей шифрования/дешифрования [1] включающие формирование конфиденциального ключа центра распределения ключей (ЦРК), присвоение идентификаторов пользователям, выработку личных конфиденциальных ключей пользователей, получение сеансовых ключей для конфиденциальной связи любой пары корреспондентов. Однако, известные способы-аналоги являются лишь вычислительно стойкими и не позволяют получить безусловную стойкость к компрометациям личных и сеансовых ключей. Наиболее близким по своей технической сущности к заявляемому способу формирования ключа шифрования/дешифрования является способ [2] Способ-прототип включает формирование конфиденциального ключа ЦРК, присвоение идентификаторов пользователям, выработку личных конфиденциальных ключей пользователей и получение сеансовых ключей для любой пары корреспондентов. Формирование конфиденциального ключа ЦРК заключается в выборе случайным образом, например, при помощи датчика случайных чисел элементов симметричных матриц G1, G2, Gn размера mm в конечном поле GF (2n). Присвоение идентификаторов пользователям осуществляется следующим образом: i пользователю ставится в соответствие какое-то число yi такое, что yiyj, при ij, например, номер, под которым пользователь вводится в систему. Выработки личных конфиденциальных ключей заключается в выработке для каждого пользователя конфиденциального алгоритма Xi:Xi() = xiR()тmod(2n), I
для каждого yi I Здесь, I=y1, y2, множество идентификаторов всех пользователей, xi есть матрица размера (n, m) и определяется выражением
где R однонаправленная функция, которая преобразует идентификатор пользователя yi в матрицу R(yi) размера 1m. Сеансовый ключ длиной n бит между корреспондентами A и B вычисляется как
KAB=XA(yB) mod(2n)=XB(yA) mod(2n). Однако, учитывая, что для обеспечения гарантированной стойкости криптографической системы длина ключа n должна быть не менее 256 бит (ГОСТ 28147-89. Спесивцев А. В. и др. Защита информации в персональных ЭВМ. М. Радио и связь, 1992 г. с. 29-44), способ-прототип имеет недостатки. Для построения конечного поля GF(2n) необходимо выбрать неприводимый полином степени n (Лидл Р. Нидеррайтер Г. Конечные поля. М. Мир, 1988 г. с. 40-46). Процедура поиска таких полиномов заключается в случайном выборе полинома степени n и его тестирования на неприводимость. При этом тест дает лишь вероятностную оценку (Мафтик С. Механизмы защиты в сетях ЭВМ. М. Мир, 1993 г. с. 57-58). При программно-аппаратной реализации устройств, выполняющих процедуры получения личных и сеансовых ключей, требуется на выполнение этих процедур много времени из-за того, что арифметические операции осуществляются конечном поле GF(2n) над числами, разрядность которых в несколько раз превосходит разрядность типовых микропроцессоров, что вызывает проблемы при применении этих устройств для работы в реальном масштабе времени. Аппаратная реализация таких устройств наталкивается на значительные трудности из-за ее сложности и громозкости. При обеспечении стойкости от компрометаций личных ключей t>10 требуется большой объем памяти для хранения личного ключа пользователя, что приводит к эксплуатационным трудностям: увеличивается объем носителя, на котором хранится личный ключ, усложняются вопросы, связанные с его хранением, увеличивается вероятность cбоев при вводе хранящейся на нем информации, повышается чувствительность к механическим и электромагнитным воздействиям. Техническим результатом является разработка способа формирования ключа шифрования/дешифрования, обеспечивающего исключение процедуры поиска неприводимых полиномов степени n, более простую программно-аппаратную реализацию на базе одного типового микропроцессора быстродействующего устройства формирования сеансового ключа, снижение вероятностных сбоев при вводе личного ключа, упрощение его хранения, повышения устойчивости к внешним механическим и электромагнитным воздействиям. Технический результат достигается тем, что в известном способе формирования ключа шифрования/дешифрования, включающем формирование конфиденциального ключа ЦРК, присвоение идентификаторов пользователям, выработку личных конфиденциальных ключей пользователей и получение сеансовых ключей для конфиденциальной связи любой пары пользователей, формирование конфиденциального ключа ЦРК осуществляют путем выбора на основе датчика случайных чисел коэффициентов симметрических полиномов выработку личного конфиденциального ключа пользователя A в виде коэффициентов полиномов получаемых при подстановке в полиномы идентификатора yA, получение сеансового ключа KAB подстановкой в личный конфиденциальный ключ идентификатора корреспондента B, при этом сеансовый ключ длиной n бит представляет собой конкатенацию (последовательно присоединение друг к другу справа) т.е. может быть вычислен по формуле:
KAB=RAB,0+RAB,1(216)+RAB,2 (216)2+.+RAB,r-1(216)r-1,
где r=n/16,
При этом представление конфиденциального ключа ЦРК (личных конфиденциальных ключей пользователей) в виде конкатенации r=n/16 независимых частей, представляющих собой коэффициенты полиномов вида позволяет исключить процедуры поиска неприводимых полиномов степени n, заменив их табличным поиском неприводимых полиномов степени 15 (Питерсон У. Уэлдон Э. Коды, исправляющие ошибки. М. Мир, 1976 г. с. 519-523). Более простая программно-аппаратная реализация на базе одного микропроцессора быстродействующего устройства формирования сеансового ключа достигается путем уменьшения вычислительной сложности процедур получения сеансового ключа и личного ключа пользователя за счет использования вместо конечных полей GF(2n) поля GF(216), т.е. арифметические операции выполняются над числами, разрядность которых не превосходит разрядности типового микропроцессора, например КР1810ВМ86. Снижение вероятностных сбоев при вводе личного ключа, упрощение его хранения, повышения устойчивости к внешним механическим и электромагнитным воздействиям обеспечивается за счет уменьшения объема личного ключа. Возможность технической реализации заявляемого способа формирования ключа шифрования/дешифрования длиной n, например 256 бит,объясняется следующим. После того, как выбраны значения l требуемой стойкости системы обмена конфиденциальной информацией к компрометациям личных ключей пользователей и табличный полином степени 15, на ЦРК формируют конфиденциальный ключ в виде конкатенации коэффициентов симметрических полиномов которые выбирают на основе датчика случайных чисел. Можно показать, что для того, чтобы обеспечить наименьший объем конфиденциального ключа ЦРК и личных конфиденциальных ключей пользователей для заданной стойкости l к компрометациям личных конфиденциальных ключей пользователей, симметрические полиномы у которых все коэффициенты отличны от нуля, должны иметь вид:
где
После этого конфиденциальный ключ ЦРК записывается на носителе (перфоленту, магнитную ленту, магнитный диск и т.д.), содержится в секрете и известен только ЦРК. Присвоение идентификаторов пользователям осуществляется путем постановки им в соответствие какого-либо числа yi, такого, что yiyj, при ij, которое выбирают, например, либо на основе датчика случайных чисел, либо приравнивают номеру, под которым пользователь вводится в систему. Идентификаторы пользователей размещаются на носителе, в качестве которого может выступать, например, магнитный диск, справочник, книга. Данный носитель доступен всем пользователям. Выработку личного конфиденциального ключа, например пользователя A, осуществляют путем подстановки его идентификатора yA вместо одного из аргументов в симметрические полиномы . Тогда личный ключ представляет собой конкатенацию коэффициентов полиномов где
gA,i(x)=fi(x,yA),
и которые после преобразования имеют вид:
gA,i(x)=ai,0+ai,1x+ai,2x2 +ai,3x3+.+ai,1xi mod(216). После этого личный конфиденциальный ключ записывают на носителе (перфоленте, магнитной ленте, магнитном диске и т.д.), выдают пользователю, который хранит его в секрете. Теперь, если какие-либо пользователи, например A и B, хотят получить сеансовый ключ KAB, причем KAB=KBA,то для этого каждый из них, например пользователь A, выполняет подстановку идентификатора пользователя B полиномы коэффициенты которых являются личным ключом пользователя A. Сеансовый ключ KAB длиной 256 бит образуют как конкатенацию т.е. может быть вычислен по формуле
KAB=RAB,0+RAB,1(216)+ +RAB,2(216)2+.+RAB,r-1 (216)r-1,
где
Можно показать, что применение симметрических полиномов вместо матриц позволяет уменьшить объем личных конфиденциальных ключей пользователей более чем в 32 раза (табл. 1). Это влечет снижение вероятностных сбоев при вводе личного ключа, упрощение его хранения, повышение устойчивости к внешним механическим и электромагнитным воздействиям. Можно показать, что представление конфиденциального ключа ЦРК, личных конфиденциальных ключей пользователей и сеансовых ключей в виде конкатенации r независимых частей, сохраняет равновероятное распределение значения сеансового ключа в интервале (1, 2n), устойчивость к l компрометациям, также, если бы в качестве конфиденциального ключа ЦРК были выбраны коэффициенты одного полинома f(x1, x2) в конечном поле GF(2n), в качестве личного конфиденциального ключа коэффициенты полинома gA(x) в GF(2n). Такое представление позволяет, не изменяя общего объема конфиденциального ключа ЦРК, личных конфиденциальных ключей пользователей, уменьшить вычислительную сложность процедур получения сеансовых и личных конфиденциальных ключей более чем в 100 раз (табл. 2). Это позволит получить более простую программно-аппаратную реализацию быстродействующего устройства формирования сеансового ключа на базе одного типового микропроцессора, например в виде интеллектуальной карточки. Хотя это приводит к ограничению общего числа пользователей в системе с 2n до 216 (32000), но это вполне приемлемо для реально существующих систем.
Класс H04L9/00 Устройство для секретной или скрытой связи