Устройство совместного использования ключа и система для его конфигурации

Иллюстрации

Показать все

Изобретение относится к области сетевой связи. Технический результат – обеспечение безопасности между двумя сетевыми устройствами за счет ключа совместного использования. Система для конфигурирования сетевого устройства для совместного использования ключа, содержащая: средство получения материала ключей для получения в электронной форме личного модуля (122, p1), открытого модуля (110, N) и симметрического многочлена (124, f1) от двух переменных, имеющего целочисленные коэффициенты, причем двоичное представление открытого модуля и двоичное представление личного модуля одинаковы в по меньшей мере последовательных битах длины (b) ключа, генератор (200) для генерирования локального материала ключей для сетевого устройства, содержащий средство (250) управления сетевыми устройствами для получения в электронной форме идентификационного номера (A) для сетевого устройства и для электронного сохранения генерируемого локального материала ключей в сетевом устройстве и сохранения открытого модуля в сетевом устройстве, и устройство (240) манипуляции многочленами для определения многочлена от одной переменной из многочлена от двух переменных путем подстановки идентификационного номера в многочлен от двух переменных, редукции по личному модулю результата подстановки. 5 н. и 9 з.п. ф-лы, 6 ил.

Реферат

Область техники, к которой относится изобретение

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

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

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

Уровень техники

В сети связи, содержащей множество сетевых устройств, представляет проблему установление защищенных соединений между парами таких сетевых устройств. Один способ достижения этого описан в работе C. Blundo, A. De Santis, A. Herzberg, S. Kutten, U. Vaccaro и M. Yung "Perfectly-Secure Key distribution for Dynamic Conferences" ("Идеально защищенное распределение ключей для динамических конференций") в журнале "Lecture Notes in Mathematics" издательства Springer, том 740, стр. 471-486, 1993 г. (упоминаемой как "Blundo").

Он предполагает центральную администрацию, также называемую администрацией сети или доверенной третьей стороной (TTP), которая генерирует симметрический многочлен f(x, y) от двух переменных с коэффициентами в конечном поле F с p элементами, где p - простое число или степень простого числа. Каждое устройство имеет идентификационный номер в F и обеспечено локальным материалом ключей от TTP. Для устройства с идентификатором η локальным материалом ключей являются коэффициенты многочлена f(η, y).

Если устройству η нужно связаться с устройством η', оно использует свой материал ключей для генерирования ключа K(η, η')=f(η, η'). Поскольку f является симметрическим, генерируется один и тот же ключ.

Проблема этой схемы совместного использования ключа возникает, если злоумышленнику известен материал ключей t+1 или более устройств, где t является степенью многочлена от двух переменных. Тогда злоумышленник может восстановить многочлен f(x, y). В этот момент безопасность системы полностью нарушается. Благодаря идентификационным номерам любых двух устройств, злоумышленник может восстановить ключ, совместно используемый этой парой устройств.

Делается ссылка на работу "A Permutation-Based Multi-Polynomial Scheme for Pairwise Key Establishment in Sensor Networks" ("Схема с множеством многочленов на основе перестановок для установления парного ключа в сенсорных сетях") авторов Song Guo, Victor Leung и Zhuzhong Qian с Международной конференции по связи IEEE, 2010 г. Она представляет схему с множеством многочленов на основе перестановок для установления парного ключа в беспроводных сенсорных сетях. В отличие от Blundo, схема, представленная в Song, дает каждому узлу не всего одну долю симметрического многочлена, а группу долей после перестановки.

Сущность изобретения

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

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

Многочлен от двух переменных может или может не быть симметрическим. Если многочлен или многочлены от двух переменных являются симметрическими, любые два сетевых устройства могут выводить ключ совместного использования. Интересно, что использование асимметрических многочленов от двух переменных или одного или нескольких асимметрических многочленов от двух переменных среди множественных многочленов от двух переменных в качестве корневого ключевого материала обеспечивает возможность предусмотреть создание двух групп устройств, таких как устройства; два устройства, принадлежащих к одной и той же группе, не могут генерировать общий ключ, но два устройства в различных группах могут.

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

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

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

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

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

Даже если никакая обфускация не была использована, сложность атаки остается, поскольку открытый модуль и личный модуль (или модули) неравны. Редукция по открытому модулю увеличивает вероятность выведения одного и того же ключа совместного использования, даже без обфускации.

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

Поскольку выведение локального материала ключей использует личный модуль, который отличен от открытого модуля, математические зависимости, которые присутствовали бы при работе, например, в единственном конечном поле, искажены. Это означает, что обычные математические инструменты для анализа многочленов, например конечномерная алгебра, более неприменимы. В лучшем случае злоумышленник может использовать гораздо менее эффективные структуры, такие как решетки. Также при выведении ключа совместного использования комбинируются две операции по модулю, которые несовместимы в обычном математическом смысле; так что математическая структура избегается в двух местах. Способ обеспечивает возможность непосредственного попарного генерирования ключей и является устойчивым к захвату очень большого числа, например порядка 10^5 или даже выше, сетевых устройств. С другой стороны, поскольку личный и открытый модуль перекрываются в некотором количестве последовательных бит, два сетевых устройства, которые имеют локальный материал ключей, с большой вероятностью будут иметь возможность вывести один и тот же ключ совместного использования.

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

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

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

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

Позволительно, чтобы личный модуль из множественных личных модулей был равен открытому модулю; однако, если только один личный модуль используется, то это нежелательно.

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

Сетевое устройство может быть электронным устройством, оборудованным электронной связью и вычислительным средством. Сетевое устройство может быть присоединено, например, в форме RFID-метки, к любому неэлектронному объекту. Например, этот способ будет подходить для "Интернета вещей". Например, объекты, в частности объекты низкой стоимости, могут быть оборудованы радио-метками, через которые они могут осуществлять связь, например, могут быть идентифицированы. Может производиться инвентаризация таких объектов, например, посредством электронных средств, таких как компьютер. Украденные или сломанные единицы легко отследить и обнаружить. Одним особенно перспективным приложением является лампа, содержащая сетевое устройство, сконфигурированное для определения ключа совместного использования. Такая лампа может безопасно передавать по связи свое состояние; такой лампой может осуществляться безопасное управление, например включение и/или выключение. Сетевое устройство может быть одним из множественных сетевых устройств, каждое из которых содержит электронное средство связи для отправки и приема идентификационного номера и для отправки сообщения электронного состояния, и каждое из которых содержит интегральную цепь, сконфигурированную для выведения ключа совместного использования следуя способу согласно изобретению.

В одном варианте осуществления способ в изобретении может быть использован как криптографический способ для протоколов безопасности, таких как IPSec, (D)TLS, HIP или ZigBee. В частности, устройство, использующее один из этих протоколов, ассоциировано с идентификатором. Второе устройство, желающее осуществить связь с первым устройством, может генерировать общий парный ключ с первым устройством с учетом его идентификатора, и парный ключ (или ключ, найденный из этого посредством, например, функции выведения ключа) может быть использован в способе вышеупомянутых протоколов на основе предварительно выданного ключа. В частности, идентификатором устройства, как определено в настоящем изобретении, может быть сетевой адрес, такой как короткий адрес ZigBee, IP-адрес или идентификатор хоста. Идентификатором также может быть IEEE-адрес устройства или собственная битовая строка, ассоциированная с устройством, так, чтобы устройство принимало некоторый локальный ключевой материал, ассоциированный с IEEE-адресом во время изготовления.

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

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

В одном варианте осуществления открытый модуль N выбирается так, чтобы он удовлетворял 2(a+2)b-1≤N≤2(a+2)b-1, где a представляет степень многочлена от двух переменных, а b представляет длину ключа. Например, в одном варианте осуществления N=2(a+2)b-1. Операция по модулю для последнего упомянутого выбора может осуществляться особенно эффективно.

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

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

Если личный модуль выбран таким образом, что число "длины ключа" младших значащих битов двоичного представления открытого модуля минус личный модуль все являются нулевыми битами, увеличивается вероятность того, что ключ совместного использования в первом сетевом устройстве пары сетевых устройств близок к ключу совместного использования, выведенному на втором сетевом устройстве из пары сетевых устройств; то есть двоичное представление личного модуля имеет те же самые биты в младших значащих позициях "длины ключа", что и двоичное представление открытого модуля. Например, если длина ключа равна 64, личный модуль может быть выбран путем вычитания величины, кратной 2^64, из открытого модуля. В одном варианте осуществления открытый модуль минус личный модуль, деленный на два в степени длины ключа, меньше двух в степени длины ключа.

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

Наличие другого личного модуля и, в частности, множественных личных модулей, усложнит анализ. Для дополнительного увеличения безопасности возможно дополнительное управление коэффициентами. В одном варианте осуществления администрация, складывающая множественные получающиеся в результате многочлены от одной переменной множественных редукций вместе, проверяет, является ли значение каждого из получающихся в результате коэффициентов либо слишком малым, либо слишком большим, например меньше минимального порога или больше максимального порога. Это улучшает безопасность еще больше, поскольку в любом из двух случаев злоумышленник может выяснить компоненты множественных редукций, если они слишком велики или слишком малы. Например, если значение коэффициента, получающегося в результате после сложения, равно 1 и есть только два многочлена от одной переменной, то злоумышленник знает, что либо соответствующий коэффициент, ассоциированный с первым многочленом, равен 1, а ассоциированный со вторым многочленом равен 0, или наоборот. В частности, администрация, генерирующая локальный материал ключей для устройства, может проверять, является ли значение каждого из получающихся в результате коэффициентов локального ключевого материала по меньшей мере "минимальным значением" и по большей мере "максимальным значением". Эта проверка может быть опущена, в частности, если открытый модуль относительно близок ко всем личным модулям и все элементы материала ключей находятся между 0 и N-1. Если TTP имеет возможность назначить идентификационные номера, она также может назначить другой идентификационный номер устройству, если TTP обнаруживает малые или большие коэффициенты.

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

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

Например, можно определить делитель строки нулевых битов, который является степенью двух, так, чтобы каждый конкретный личный модуль был такой, чтобы биты длины (b) ключа двоичного представления открытого модуля минус конкретный личный модуль, деленные на делитель строки нулевых битов, все были нулевыми битами. Если младшие значащие биты являются нулевыми, делитель строки нулевых битов может быть взят равным 1. В одном варианте осуществления делитель строки нулевых битов больше 1. Деление на степень двух следует интерпретировать как целочисленное деление, дающее тот же самый результат, что и смещение битов в направлении младших значащих битов. Любой остаток от деления игнорируется.

Для генерирования ключа совместного использования из бит длины ключа сетевые устройства сначала применяют этап дополнительного деления. Первое сетевое устройство оценивает ключевой материал для идентификационного номера второго устройства по открытым модулям, деля на 2^s и осуществляя редукцию по модулю два в степени длины ключа. Следует заметить, что это равносильно применению сначала модуля 2^(s+длина ключа) после открытого модуля и затем делению на 2^s. Здесь "деление" включает в себя округление в меньшую сторону.

В одном варианте осуществления личный модуль генерируется с использованием генератора случайных чисел. В одном варианте осуществления множественные личные модули генерируются так, чтобы они были попарно взаимно простыми. Например, множественные личные модули могут генерироваться итерационно с проверкой для каждого нового личного модуля, что они все еще попарно взаимно простые, и если нет, последний сгенерированный личный модуль отбрасывается. Вариант осуществления содержит итерационное генерирование модуля-кандидата с использованием генератора случайных чисел так, чтобы последовательные биты длины (b) ключа двоичного представления открытого модуля минус модуль-кандидат все были нулевыми битами, например младшими значащими битами длины ключа, пока модуль-кандидат не удовлетворяет тесту простоты с использованием устройства теста простоты, причем таким образом полученный модуль-кандидат, удовлетворяющий тесту простоты, используется в качестве личного модуля. Тестом простоты может быть, например, тест простоты Миллера-Рабина или тест простоты Соловея-Штрассена.

Симметрический многочлен от двух переменных с переменными x и y степени a имеет только одночлены формы xiyj, где i≤a, j≤a. Кроме того, коэффициент, соответствующий xiyj, является тем же самым, что и коэффициент xjyi. Это может быть использовано для уменьшения количества сохраненных коэффициентов примерно вдвое. Следует заметить, что используется более мягкое определение степени. Мы определяем степень одночлена как максимальную степень переменных в одночлене. То есть степень xjyi равна max(i,j), где i≤a, j≤a. Так что, например, то, что мы называем многочленом степени 1, имеет общую форму a+bx+cy+dxy, (следует заметить, что, поскольку считаются только симметрические многочлены, мы имеем то, что b=c). Следует заметить, что при желании можно наложить дополнительные ограничения на многочлен от двух переменных, в том числе, например, то, что только одночлены с i+j≤a используются, но в этом нет необходимости.

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

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

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

В одном варианте осуществления некоторое количество младших значащих битов ключа совместного использования удаляются; например, количество удаленных бит может быть 1, 2 или более, 4 или более, 8 или более, 16 или более, 32 или более, 64 или более. Путем удаления большего количества младших значащих битов вероятность получения ключей, которые не равны, уменьшается; в частности, она может быть уменьшена до любого желаемого порога. Вероятность, что ключи совместного использования равны, может быть вычислена путем следования математическим зависимостям, она может также быть определена опытным путем.

Также может осуществляться управление выбором осуществляющих обфускацию чисел, в одном варианте осуществления диапазон, из которого выбирается осуществляющее обфускацию число, уменьшен для коэффициентов, соответствующих одночленам более высоких степеней. В частности, можно потребовать, чтобы |∈A,i|<2(a+1-i)b, где ∈A,i обозначает осуществляющее обфускацию число для i-го одночлена, i обозначает степень одночлена, соответствующего коэффициенту, a представляет степень многочлена от двух переменных, и b представляет длину ключа. A представляет сетевое устройство, для которого генерируется локальный материал ключей. В одном варианте осуществления осуществляющее обфускацию число генерируется для каждого коэффициента, например с использованием вышеприведенной формулы. Другая обфускация может применяться для других сетевых устройств. Например, даже если присутствует 3 или более сетевых устройств, то для каждого сетевого устройства могут генерироваться различные осуществляющие обфускацию числа.

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

Количество бит в идентификационном номере для сетевого устройства обычно выбирается как меньшее или равное длине ключа. Идентификационный номер может быть битовой строкой, например 32 или 64, или более длинной, битовой строкой. Длина ключа может быть 32 или более, 48 или более, 64 или более, 96 или более, 128 или более, 256 или более. Длиной ключа может быть выбрано некоторое более высокое количество бит для того, чтобы уменьшить соответствующее количество младших значащих бит определяемого ключа совместного использования. С другой стороны, в одном варианте осуществления длина идентификационного номера длиннее, чем длина ключа. В этом случае эффект модулярных операций может приводить к большему эффекту на младших значащих битах из битов длины ключа генерируемого ключа так, чтобы эти биты не могли быть равными для пары устройств, желающих сгенерировать общий ключ. Наличие большей длины для идентификатора может иметь, однако, положительный эффект в безопасности, поскольку больше битов смешано вместе, когда производятся соответствующие вычисления.

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

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