СПОСОБ ФОРМИРОВАНИЯ ОБЩЕГО СЕКРЕТНОГО КЛЮЧА В ГРУППЕ АБОНЕНТОВ
METHOD OF GENERATING SHARED SECRET KEY IN GROUP OF SUBSCRIBERS

Область техники, к которой относится изобретение
Изобретение относится к области криптографии, а именно к способам создания общих ключей шифрования-расшифрования для группы узлов сети. Техническим результатом является снижение временных затрат на выполнение процедур получения абонентами групповых ключей, используемых для шифрования и расшифрования передаваемых сообщений. Технический результат достигается за счет выработки общего ключа шифрования-расшифрования за одну итерацию между неограниченным количеством узлов сети.
Уровень техники
В сетевом оборудовании и различных приложениях, например, при построении виртуальных частных сетей (VPN), необходимо обеспечить конфиденциальность информации, передаваемой по каналам связи. Возникает задача выработки общего секретного параметра для группы участников информационного обмена - общего секретного ключа. С помощью такого ключа осуществляется защита данных симметричными криптографическими алгоритмами, а именно - зашифрование и расшифрование информации, передаваемой между участниками информационного обмена. Далее такой общий ключ будет называться также ключом шифрования-расшифрования, а участники информационного обмена - абонентами или узлами связи.
Способы выработки ключей шифрования-расшифрования можно условно разделить на 2 группы:
- выработка ключей с использованием доверенной стороны - центра распределения ключей;
- выработка ключей абонентами без участия центра распределения ключей.
Существующий уровень техники предоставляет различные способы выработки общего ключа шифрования-расшифрования между неограниченным количеством узлов без использования центра распределения ключей. Примером такой схемы является алгоритм Хьюза ([1], стр. 575, [2]), который заключается в следующем.
Абонент А выбирает случайное большое целое число х и вычисляет закрытый ключ , где g - случайное число из диапазона от 1 до -1,  - простое число. Абонент В выбирает случайное большое целое число у и посылает абоненту А значение . Абонент А посылает абоненту В значение . Абонент В вычисляет  и . Если все процедуры выполнены, то закрытый ключ k=k'.
Достоинством алгоритма Хьюза является возможность формирования общего секретного ключа без использования центра распределения ключей. Алгоритм оперирует с числами в полях Галуа, поэтому требуется использовать длину модулей не менее 1024 бит [см. [4]). Однако использование алгоритма Хьюза не позволяет выработать общий ключ шифрования-расшифрования, если узлов более двух и хоть один узел не может передавать или принимать данные. Использование нового способа формирования секретного ключа позволяет формировать общий ключ за одну итерацию, передавать секретный параметр для генерации общего ключа вместе с первым зашифрованным пакетом. Для этого требуется переместить максимум операций на предварительный этап, например, на этап регистрации узла в сети. Использование чисел в группах точек эллиптической кривой позволяет уменьшить размер модуля до 256 бит (см., [5]). Уменьшение размера модуля позволяет сократить необходимый размер памяти, уменьшить количество вычислений.
Существующий уровень техники предоставляет различные способы формирования общего ключа для группы узлов. При этом формирование ключа по предлагаемому способу не требует использования центра распределения ключей, не задает ограничений на количество пользователей ключей, не требует предварительного распределения секретных ключей по доверенному каналу связи, в отличие от способов, описанных в патентах: RU №2642806, МПК H04L 9/00, RU 2090006 С1, МПК H04L 9/00, 18.07.1994, US 5838792 А, МПК H04L 9/08; H04L 9/30, 17.11.1998, WO 03013052 (А1), МПК H04L 9/30; H04L 9/32, 2003-02-13, US 2004156498 (А1), МПК G09C 1/00; H04L 9/28; H04L 9/30, 2004-08-12.
Предлагаемый способ позволяет сформировать ключ в группе из произвольного числа абонентов, в то время как в патентах РФ № RU 2286022 С2, RU 2175465 С2 способы предусматривают формирование общего ключа только для двух абонентов. Кроме того, криптографическая стойкость предлагаемого способа построена на решении задачи дискретного логарифмирования что безопаснее, чем задача разложения на множители больших чисел, которая использована в патенте РФ №RU 2286022 С2.
Наиболее близким к заявленному техническому решению является способ формирования ключа шифрования-дешифрования по патенту РФ №2642806, МПК H04L 9/00.
Указанный способ выбран за прототип. Способ-прототип заключается в
i
1
2
A,i
i
1
2
A,
A,i
i
A
i
A
AB
A,i
B
AB,i
B
64
64
64
64
формировании пользователем общего ключа шифрования-расшифрования для узлов связи в группе абонентов, выполнении сеанса взаимодействия пользователя с электронным устройством, задании общих системных параметров для всех узлов сети, формировании конфиденциального ключа центра распределения ключей, которое осуществляют путем выбора на основе датчика случайных чисел коэффициентов симметрических полиномов {ƒ{x,x)}, i=0,…,r-1 над полем GF(2), личный конфиденциальный ключ абонента А вырабатывается в виде коэффициентов полиномов {g(x)}, i=0,…,r-1, получаемых при подстановке в полиномы {ƒ(x,x)} идентификатора Y идентификатор представлен в цифровой форме, вместо одного из аргументов: g(x)=ƒ(x,Y)=ƒ(Y,x)mod(2), сеансовый ключ K получается с помощью подстановки в личный конфиденциальный ключ {g(x)}, i=0,…,r-1, идентификатора Y абонента В: K=g(Y)mod(2), при этом сеансовый ключ длиной  бит представляет собой конкатенацию значений многочленов над полем GF(2):
т.е. может быть вычислен по формуле
Несмотря на достоинства, прототип имеет недостатки. Указанный способ требует наличия центра распределения ключей в сети узлов.
Целями заявленного изобретения является создание способа формирования общего секретного ключа шифрования-расшифрования для произвольного числа узлов связи за одну итерацию обмена параметрами и уменьшение размера модуля, по которому выполняются операции в поле.
В отличие от патентов-аналогов предлагаемое изобретение описывает новый способ выработки общего ключа в группе узлов, который позволяет получить общий секретный ключ с использованием меньшего количества оперативной памяти узла сети и за меньшее число операций по сравнению с аналогами.
Предлагаемая новая схема выработки общего секретного ключа обладает необходимым уровнем безопасности, аналогичным криптографическим алгоритмам, построенным на невозможности решения задачи дискретного логарифмирования за полиномиальное время и с полиномиальными ресурсами. Она может применяться при условии предварительной идентификации собственников открытых ключей.
Технический результат описываемого изобретения заключается в снижении временных затрат на выполнение процедуры получения общего секретного ключа шифрования-расшифрования в группе абонентов и уменьшении количества оперативной памяти, необходимой для осуществления операций с модулем. Снижение времени достигается за счет переноса этапа выбора эллиптической кривой и обмена открытыми ключами на предварительный этап, например, на этап регистрации узла в сети и формирования общего секретного ключа за одну итерацию обмена параметрами в момент начала передачи данных при произвольном количестве узлов связи и вне зависимости от того, находятся ли все узлы на связи одновременно или нет. Уменьшение количества оперативной памяти достигается за счет уменьшения размеров модуля. При использовании групп точек эллиптической кривой требования к размеру модуля существенно снижаются (не менее чем в 10 раз).
Раскрытие изобретения
Технический результат достигается за счет использования нового способа формирования общего секретного ключа шифрования-расшифрования в группе абонентов, который характеризуется следующими существенными признаками:
1) Способ предполагает формирование общего секретного ключа для произвольного числа абонентов.
2) Способ предполагает вычисление общего секретного ключа в группах точек эллиптических кривых.
3) Способ предполагает наличие предварительного этапа обмена открытыми ключами и основного этапа выработки общего секретного ключа.
4) Способ позволяет сформировать общий секретный ключ даже при условии, что некоторые из узлов могут быть недоступными для отправки и получения информации.
Сущность изобретения как технического решения выражается в новом способе формирования общего секретного клоча шифрования-расшифрования для произвольного количества узлов связи в группе с использованием вычислений в группах точек эллиптических кривых без использования центра распределения ключей. Предлагаемый способ требует в десять раз меньшего объема памяти для операций с модулем по сравнению с аналогами.
Описываемый способ формирования общего секретного ключа в группе абонентов осуществляет формирование пользователем общего ключа шифрования-расшифрования для узлов связи в группе абонентов, выполнение сеанса взаимодействия пользователя с электронным устройством, задание общих системных параметров для всех узлов сети. В этом способе осуществляют обмен открытыми ключами узлов сети, используют вычисление в группах точек эллиптических кривых, создают параметр Qx каждого узла х, формируют общий секретный ключ для произвольного числа абонентов в группах точек эллиптических кривых, при этом формируют ключ с использованием криптографически качественного датчика случайных или псевдослучайных чисел на каждом узле сети, выполняют предварительный этап обмена через каналы связи в сети открытыми ключами Yi и основной этап выработки общего секретного ключа, а общий секретный ключ формируют при условии, что некоторые из узлов могут быть недоступными для отправки и получения информации, при этом пользователь одного из узлов включает его, начиная сеанс взаимодействия через каналы связи с узлом сети, на котором он работает. Пользователь этого узла принимает решение осуществить защищенный обмен между всеми узлами сети, для чего предварительно должны быть заданы общие системные параметры для всех узлов сети, так же каждый узел должен вычислить и обменяться своими открытыми ключами, затем пользователь создает для каждого узла сети свой параметр Qx, рассылает параметр Qx всем узлам сети, каждому свой и вычисляет общий секретный ключ.
В способе может быть использован датчик случайных чисел для создания секретного ключа и вычисления в полях Галуа. При этом не требуется наличие в сети центра распределения ключей и выполняются вычисления в группах точек эллиптических кривых, что позволяет за один этап вычислений выработать общий секретный ключ без взаимодействия со всеми узлами сети.
В этом способе также выполняют вычисления в группах точек эллиптических кривых с использованием вычисления с модулем меньшим по размеру. Выполняют вычисления в группах точек эллиптических кривых с использованием вычисления за один этап и вычисляют общий секретный ключ без взаимодействия со всеми узлами сети. В этом способе в вычислении общего ключа участвуют все узлы сети.
Снижение временных затрат на выполнение процедуры получения общего секретного ключа шифрования-расшифрования в группе абонентов и уменьшение количества оперативной памяти, требуемого для операций, достигается за счет вычислений в группах точек эллиптической кривой, так как в этом случае для хранения и операций над модулем требуется порядка 165-200 бит оперативной памяти, в то время, как для аналогичных операций в поле целых чисел требуется модуль не менее 1024 бит для получения криптографически качественного ключа.
Задача, на решение которой направлено данное изобретение, состоит в формировании секретного ключа шифрования-расшифрования с участием произвольного количества узлов связи за одну итерацию обмена параметрами для вычисления ключа, при условии, что некоторые из узлов могут быть недоступными для отправки и получения информации. С использованием предлагаемого способа достигается существенное снижение временных затрат на выполнение процедур получения ключей в группе абонентов.
Изобретение иллюстрируется следующими рисунками.
Фиг. 1 - блок-схема метода выработки общего ключа в группе узлов;
Фиг. 2 - блок-схема взаимодействия узлов сети.
Здесь и далее термин «абонент» является синонимом термина «узел сети».
Способ формирования общего секретного ключа в группе абонентов заключается в том, что осуществляется формирование общего ключа шифрования-расшифрования 6 для узлов связи в группе абонентов, в ходе сеанса 2 взаимодействия пользователя с электронным устройством, инициируется задание 3 общих системных параметров для всех узлов сети для чего используют вычисления в группах точек эллиптических кривых, после чего узлами сети осуществляется обмен 4 открытыми ключами узлов сети, создаются 5 параметры Qx каждого узла х, формируют 6 общий секретный ключ для произвольного числа абонентов в группах точек эллиптических кривых, при этом формируют ключ с использованием криптографически качественного датчика случайных или псевдослучайных чисел на каждом узле (9, 12, 13, 14, 15, 16, 17, 18) сети, выполняют предварительный этап обмена 3 и 4 через каналы связи 10 в сети 11 открытыми ключами Yi и основной этап выработки общего секретного ключа, а общий секретный ключ формируют при условии, что некоторые из узлов могут быть недоступными для отправки и получения информации, при этом пользователь одного из узлов включает 2 его, начиная сеанс взаимодействия через каналы связи 10 с узлом сети 11, на котором он работает, осуществляет защищенный обмен между всеми узлами сети, для чего предварительно должны быть заданы общие системные параметры для всех узлов сети 3 и 4, так же каждый узел должен вычислить и обменяться своими открытыми ключами, затем пользователь создает для каждого узла сети свой параметр Qx, рассылает параметр Qx всем узлам сети 5, каждому свой и вычисляет общий секретный ключ 6.
В способе также может быть использован датчик случайных чисел для создания секретного ключа и вычисления в полях Галуа (при этом не требуется наличия в сети центра распределения ключей), выполняют вычисления в группах точек эллиптических кривых, что позволяет за один этап вычислений выработать общий секретный ключ без взаимодействия со всеми узлами сети.
В этом способе также выполняют вычисления в группах точек эллиптических кривых с использованием вычисления с модулем меньшим по размеру. Выполняют также вычисления в группах точек эллиптических кривых с использованием вычисления за один этап и вычисляют общий секретный ключ без взаимодействия со всеми узлами сети. В этом способе в вычислении общего ключа участвуют все узлы сети.
При подключении узла (9, 12, 13, 14, 15, 16, 17, 18) в сеть 11 при первом взаимодействии (включении) пользователя с узлом 2 осуществляется выбор некоторой эллиптической кривой Вейерштрасса в краткой форме Е (F р) (пункт 3 на фиг. 1). Эллиптическая кривая содержит циклическую группу точек G порядка q, где q - простое число, Р - образующий элемент группы G,  - порядок образующего элемента G. После того, как выбрана конкретная группа точек эллиптических кривых происходит вычисление и обмен открытыми ключами 4.
Предварительный этап (шаг 0).
i
i
i
Пусть в системе присутствуют t узлов сети (на фиг. 2 это узлы 9, 12, 13, 14, 15, 16, 17, 18), для которых необходимо сформировать общий секретный ключ. Каждый узел с номером i, где i=1,…,t, вычисляет свой открытый ключ Y=y⋅P, где y - случайное или псевдослучайное секретное число, которое генерируется при помощи криптографически качественного датчика случайных или псевдослучайных чисел, расположенного на узле, и удовлетворяет следующему требованию:
i
НОД(y,р-1)=1.
i
i
Операция «⋅» - является умножением в группе точек эллиптической кривой. На фиг. 1 это реализуется на этапе 1, 2, 3. После чего, узлы сети 9, 12, 13, 14, 15, 16, 17, 18 используя каналы связи 10 в сети 11 обмениваются своими открытыми Y=y⋅P ключами каждый с каждым (этап 4, фиг. 1).
i
Секретный ключ S каждого узла вычисляется следующим образом (5 фиг. 1)
1
1
Инициатор (любой из узлов 9, 12, 13, 14, 15, 16, 17, 18 фиг. 2) создания группы защищенного обмена данными X генерирует случайный параметр х с использованием датчика случайных или псевдослучайных чисел, такой что выполняется условие НОД (х, р-1)=1, и вычисляет сессионный ключ K по следующей формуле (6 фиг. 1):
i
1
где x ∍ [1, t] и х⋅Р - являются секретными параметрами. Операция + - является сложением в группе точек эллиптической кривой.
Основной этап. Выработка общего секрета (шаг 1).
x
1
j
Инициатор X (любой из узлов 9, 12, 13, 14, 15, 16, 17, 18 фиг. 2) отправляет по открытому каналу связи каждому j-му узлу в группе узлов отдельный параметр Q=x⋅Y (пункт 5 на фиг. 1).
i
x
И получив все параметры Y и Q, каждый узел 9, 12, 13, 14, 15, 16, 17, 18 (фиг. 2) может вычислить общий секретный ключ
что равнозначно:
Общий секретный ключ записывается каждым узлом на физический носитель (пункт 6 фиг. 1).
Если этапы 1, 2, 3, 4, 5, 6 выполнены правильно, и ключ K сформирован, то на все узлы на этапе 7 принимают решение о переходе на этап 8, после чего используют общий ключ для шифрования передаваемых и принимаемых данных. Если по каким-либо причинам произошел сбой и ключ K не сформирован, то на этапе 7 принимается решение о повторной генерации всех параметров начиная с этапа 2.
На фиг. 1 приведена схема формирования общего ключа для узлов сети 9, 12, 13, 14, 15, 16, 17, 18 фиг. 2, в роли которых могут выступать компьютеры, роутеры, маршрутизаторы, датчики различных типов и прочее оборудование или программное обеспечение, установленное на оборудовании, объединенном в общую сеть связи.
На фиг. 2 приведены предварительный и основной этапы формирования общего ключа на примере сети из восьми узлов 9, 12, 13, 14, 15, 16, 17, 18 фиг. 2, состоящей из компьютеров, серверов, смартфонов или любых других вычислительных устройств. Общий ключ будет формироваться следующим образом.
Пользователь одного из узлов включает его (этап 1 фиг. 1), начиная сеанс взаимодействия с узлом сети, например, 9 (фиг. 2), на котором он работает (этап 2 фиг. 1), пользователь этого узла принимает решение осуществить защищенный обмен между всеми узлами сети 9, 12, 13, 14, 15, 16, 17, 18 (фиг. 2), для чего предварительно должны быть заданы общие системные параметры (этапы 1, 2, 3 фиг. 1) для всех узлов сети 9, 12, 13, 14, 15, 16, 17, 18 (фиг. 2), так же каждый узел должен вычислить и обменяться своими открытыми ключами на этапе 4 (фиг. 1). В случае, если пользователь использует в качестве своего узла узел номер 9 (фиг. 2), то он создает для каждого узла сети свой параметр Qx на этапе 5 (фиг 1), рассылает параметр Qx всем узлам сети, каждому свой Qx и вычисляет общий секретный ключ на этапе 6 (фиг 1). Этапы 2, 3, 4 (фиг. 1) выполняются до начала передачи информации между узлами.
Для иллюстрации выбрано восемь различных узлов сети, в качестве которых выступают различные электронные сетевые устройства - сервера, компьютеры, ноутбуки, смартфоны, телефоны.
При первом подключении в сеть 11, на этапах 2, 3, 4 каждый из узлов (9, 12, 13, 14, 15, 16, 17, 18) по каналу связи 10 передает остальным узлам свой открытый ключ Yi.
Если один из узлов сети, например, 9 (фиг. 2), хочет передать данные по защищенному каналу связи 10 он выполняет этапы 5 и 6 (фиг. 1), отправляет всем узлам 9, 12, 13, 14, 15, 16, 17, 18 (фиг. 2) в сети 11 свой параметр Qx и данные зашифрованные на ключе K. Каждый из узлов выполняет этап 6 (фиг. 1) и таким образом получает K, используя который может расшифровать все полученные и зашифрованные на данном ключе сообщения от других узлов.
Вывод
Предлагаемое изобретение достигает технической цели формирования общего секретного ключа за один цикл обмена информацией путем соблюдения указанного порядка создания ключей. Предлагаемый способ позволяет выполнить обмен открытыми ключами заранее, например, в момент, когда узел добавляется в сеть, в результате создание общего секретного ключа может происходить одновременно с передачей первого зашифрованного пакета от инициатора общения.
Изменение количества узлов сети в защищенном обмене информацией никак не влияет на количество шагов алгоритма выработки общего секрета. Данная схема позволяет выработать общий секрет и вести обмен информацией даже при условии временной недоступности части узлов обмена информацией. Применение новой схемы выработки общего секрета может быть эффективнее существующих алгоритмов в различных системах: при построении виртуальных частных сетей (VPN), защищенных мессенджерах и в иных системах, где необходимо обеспечить конфиденциальность информации.
Технический результат описываемого изобретения заключался в снижении временных затрат на выполнение процедуры получения общего секретного ключа шифрования-расшифрования в группе абонентов и уменьшении количества оперативной памяти, необходимой для осуществления операций с модулем.
Таким образом, повышается эффективность сетевых узлов при выработке общего секретного ключа в группе узлов, так как для выработки общего ключа требуется меньше времени и меньше ресурсов.
В результате предлагаемого способа формирования общего секретного ключа в группе абонентов решены следующие задачи:
1) минимизировано количество пересылок данных между узлами сети;
2) повышен уровень безопасности;
3) снижено количество требуемой для вычислений оперативной памяти каждого узла;
4) снижено количество операций вычисления общего секретного ключа в группе абонентов.
Источники информации.
1. Шнайер Б. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си / Б. Шнайер. - М.: Триумф, 2002. - 816 с.
2. Hughes Е. An Encrypted Key Transmission Protocol» CRYPTO 94, 1994.
3. Патент RU 2642806 C1, МПК H04L 9/08, 26.01.2018. - Способ формирования ключа шифрования-дешифрования.
4. Патент RU 2090006 С1, МПК H04L 9/00, 18.07.1994. - Способ формирования ключа шифрования-дешифрования.
5. Патент RU 2420892 С1, МПК H04L 9/00, 10.06.2011. - Способ формирования общего секретного ключа двух удаленных абонентов.
6. Патент RU 2286022 С2, МПК H04L 9/30, H04K 1/00, 20.10.2006. - Способ формирования общего секретного ключа двух удаленных абонентов.
7. Патент RU 2175465 С2, МПК H04L 9/00, 27.10.2001. - Способ обмена криптографическими ключами между компьютерным блоком пользователя и сетевым компьютерным блоком.
8. Патент US 5838792 А, МПК H04L 9/08; H04L 9/30, 17.11.1998. - Computer system for centralized session key distribution, privacy enhanced messaging and information distribution using a split private key public cryptosystem. Компьютерная система для централизованного распределения сеансовых ключей, повышения конфиденциальности обмена сообщениями и распространения информации с использованием разделенного закрытого ключа публичной криптосистемы.
9. Патент WO 03013052 (А1), МПК H04L 9/30; H04L 9/32, 2003-02-13. - CRYPTOSYSTEMS BASED ON NON-COMMUTATITY. Криптосистемы, основанные на коммутативных подмножествах полугрупп.
10. Патент US 2004156498 (А1), МПК G09C 1/00; H04L 9/28; H04L 9/30, 2004-08-12. - Public key cryptosystem using finite non abelian groups.
Криптосистема с открытым ключом с использованием конечных неабелевых групп.