RU2765238C2 - Устройство и способ совместного использования матрицы для использования в криптографическом протоколе - Google Patents

Устройство и способ совместного использования матрицы для использования в криптографическом протоколе Download PDF

Info

Publication number
RU2765238C2
RU2765238C2 RU2019131369A RU2019131369A RU2765238C2 RU 2765238 C2 RU2765238 C2 RU 2765238C2 RU 2019131369 A RU2019131369 A RU 2019131369A RU 2019131369 A RU2019131369 A RU 2019131369A RU 2765238 C2 RU2765238 C2 RU 2765238C2
Authority
RU
Russia
Prior art keywords
matrix
sequence
values
network node
shared
Prior art date
Application number
RU2019131369A
Other languages
English (en)
Other versions
RU2019131369A3 (ru
RU2019131369A (ru
Inventor
Оскар ГАРСИЯ МОРЧОН
Людовикус Маринус Герардус Мария ТОЛХЭЙЗЕН
Рональд РИТМАН
Саувик БХАТТАЧАРЯ
Original Assignee
Конинклейке Филипс Н.В.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Конинклейке Филипс Н.В. filed Critical Конинклейке Филипс Н.В.
Publication of RU2019131369A publication Critical patent/RU2019131369A/ru
Publication of RU2019131369A3 publication Critical patent/RU2019131369A3/ru
Application granted granted Critical
Publication of RU2765238C2 publication Critical patent/RU2765238C2/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • H04W12/047Key management, e.g. using generic bootstrapping architecture [GBA] without using a trusted network node as an anchor
    • H04W12/0471Key exchange

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

Изобретение относится к области криптографии. Технический результат заключается в повышении надежности передачи данных. Технический результат достигается за счет того, что сетевой узел, сконфигурированный для криптографического протокола на основе совместно используемой матрицы, выполнен с возможностью формировать совместно используемую матрицу (A) в соответствии с данными выбора и совместно используемой последовательностью значений, множественные записи совместно используемой матрицы назначаются множественным значениям последовательности данных, назначенным посредством данных выбора. 4 н. 14 з.п. ф-лы, 9 ил.

Description

Область техники, к которой относится изобретение
Изобретение относится к электронному сетевому узлу, к электронному способу для электронного сетевого узла, сконфигурированного для криптографического протокола на основе совместно используемой матрицы, к машиночитаемому носителю.
Уровень техники
Существует определенное число криптографических протоколов, которые основаны на матрице, совместно используемой двумя узлами, которые выполняют протокол. Хотя совместно используемая матрица типично является открытой, обе стороны работают с совместно используемой матрицей с данными, которые являются закрытыми для стороны, которая выполняет вычисление, например, с использованием секретной информации. Атака таких криптографических протоколов приводит к проблемам на основе решеток, например, взломщик должен разрешать проблему решеток, к примеру, проблему кратчайшей векторной решетки, для того чтобы атаковать протокол. Проблемы решеток предположительно должны быть квантово безопасными, и, соответственно, они представляют собой активную область исследования.
В дальнейшем в данном документе кратко описываются несколько из этих протоколов в качестве поясняющего примера. Тем не менее, в общих словах, узлы типично комбинируют совместно используемую матрицу с собственной закрытой информацией. Например, сетевой узел может вычислять матричное произведение между совместно используемой матрицей и закрытым вектором или матрицей сетевого узла в качестве части криптографического протокола. Например, шум может добавляться в результат вычисления, например, в форме вектора или матрицы шума, который добавляется в результат умножения, либо в форме округления или масштабирования результата. После добавления шума, результат по-прежнему содержит достаточную информацию относительно закрытого ключа для того, чтобы выполнять полезные операции для другого узла, например, подписание, шифрование, согласование ключей и т.д., но недостаточную информацию для того, чтобы восстанавливать закрытые данные другого узла. Сверка ключей может использоваться для того, чтобы корректировать аддитивный шум.
Начальная точка такой криптографии на основе решеток заключается в том, что обе стороны, например, сетевые узлы 110 и 111, имеют доступ к совместно используемой матрице. Эта матрица типично выбирается произвольно и является довольно большой. Совместно используемая матрица имеет множественные записи, и каждая запись имеет значение. Например, совместно используемая матрица может иметь размерности, скажем, 500 раз по 500 или даже больше. В примерных вычислениях, используется квадратная совместно используемая матрица с размерностью 512=29. Записи в совместно используемой матрице типично задаются по модулю математический модуль q, что может составлять, скажем, 210. Таким образом, совместно используемая матрица может представлять примерно 29⋅29⋅210=228 битов информации.
Хотя совместно используемая матрица зачастую является открытой и может передаваться как простые данные, очевидно, что такие большие объемы информации является проблематичными, в частности, с учетом того факта, что важный вариант применения криптографических протоколов предположительно должен представлять собой Интернет вещей, в котором узлы с ограничением по ресурсам работают с данными, которые должны криптографически защищаться. Например, узлы могут формировать сенсорную сеть.
Первый способ уменьшать объем служебной информации, вызываемый посредством такого требования, чтобы большая матрица должна совместно использоваться двумя узлами, состоит в том, чтобы многократно использовать одну и ту же матрицу много раз. К сожалению, это приводит к криптографическим проблемам. Взломщик может выполнять обширные предварительные вычисления для совместно используемой матрицы, если он знает, что матрица используется в будущем криптографическом обмене. Примеры такой атаки на основе предварительных вычислений, например, представляют собой атаку по принципу тупика в алгоритме Диффи-Хеллмана конечного поля. С другой стороны, если свежая совместно используемая матрица используется для каждого выполнения криптографического протокола, то взломщику должна представляться свежая проблема решеток для каждого выполнения; в силу этого предпочтительно не использовать многократно одну и ту же матрицу.
Второй способ уменьшать объем служебной информации, вызываемый посредством большой совместно используемой матрицы, состоит в том, чтобы отправлять случайное начальное число вместо совместно используемой матрицы. Случайное начальное число затем используется для того, чтобы инициализировать детерминированный генератор случайных чисел, который в свою очередь формирует совместно используемую матрицу. Известно множество детерминированных генераторов случайных чисел. К сожалению, в силу этого необходимо находить компромисс между объемом служебной информации при передаче и объемом вычислительных затрат. Ресурсоограниченные устройства должны вычислять в течение длительного времени для того, чтобы формировать совместно используемую матрицу. Проблема может быть настолько же серьезной и для крупного сервера, который обрабатывает множество одновременных вычислений одновременно. Кроме того, если взломщик может инструктировать такому серверу выполнять множество генерирований случайных чисел, это должно приводить к атакам по принципу отказа в обслуживании. Взломщик может начинать множество соединений с сервером и отменять их после того, как сервер настраивается на формирование совместно используемой матрицы из случайного начального числа.
Сущность изобретения
Предусмотрен электронный сетевой узел, сконфигурированный для криптографического протокола на основе совместно используемой матрицы, который решает эти и другие проблемы. Совместно используемая матрица имеет множественные записи, и каждая запись имеет значение. Для простоты ссылки, сетевой узел идентифицируется в качестве первого сетевого узла, что отличает его от второго сетевого узла, с которым он обменивается данными. Прилагательные "первый" и "второй" не имеют дополнительного смысла.
Первый сетевой узел содержит:
- интерфейс связи, выполненный с возможностью цифровой связи со вторым сетевым узлом,
- процессорную схему, выполненную с возможностью:
- получать последовательность значений для записей совместно используемой матрицы, причем последовательность значений совместно используется со вторым сетевым узлом,
- принимать данные выбора из второго сетевого узла или определять данные выбора и отправлять данные выбора во второй сетевой узел, причем данные выбора указывают множественные позиции в последовательности значений и назначают множественным записям совместно используемой матрицы значение из последовательности значений, указываемых посредством данных выбора,
- формировать совместно используемую матрицу в соответствии с данными выбора с заданием упомянутых множественных записей совместно используемой матрицы равными множественным значениям, назначаемым посредством данных выбора,
- применять совместно используемую матрицу в криптографическом протоколе.
Данные выбора могут описываться с помощью гораздо меньшего числа битов, чем последовательность значений. Например, в варианте осуществления, размер в битах данных выбора меньше значений последовательности значений, которые указываются посредством данных выбора и назначаются записям совместно используемой матрицы, предпочтительно меньше половины, предпочтительно меньше 1/10. Например, в некоторых вариантах осуществления, объем данных выбора, требуемых для того, чтобы назначать данные для группы записей в совместно используемой матрице, меньше 1/100 объема данных, требуемых для того, чтобы описывать непосредственно данные. Если данные выбора формируются из генератора случайных чисел, то должен формироваться меньший объем данных, чем при формировании непосредственно значений в совместно используемой матрице, независимо от того, происходит это в узле, который отправляет данные выбора, или в узле, который принимает данные выбора. В частности, для узла, например, сервера, с множеством соединений со вторыми узлами, это приводит к существенным различиям в работе сетевого узла. По сравнению с требуемой полосой пропускания для отправки непосредственно данных, также получается существенное уменьшение.
В варианте осуществления, узел кэширует последовательность значений и использует ее для множественных соединений. Например, в варианте осуществления, узел может отправлять или принимать идентификатор последовательности, чтобы идентифицировать последовательность значений, которую следует использовать. Идентификатор, например, может представлять собой хэш для последовательности значений, но в преимущественном варианте осуществления, идентификатор последовательности содержит случайное начальное число, из которого может формироваться последовательность значений. Таким образом, приемное устройство идентификатора последовательности может либо извлекать идентификатор последовательности из кэш-памяти, либо формировать последовательность значений.
Решетки, которые взломщик должен получать для разных матриц, которые совместно используются таким способом, отличаются, даже если базовая последовательность значений является одной и той же. В частности, если число разных решеток больше, преимущество взломщика значительно уменьшается.
Сетевой узел представляет собой электронное устройство. Сетевой узел может представлять собой мобильное электронное устройство, такое как мобильный телефон. Сетевой узел может представлять собой абонентскую приставку, смарт-карту, компьютер и т.п.
Способ совместного использования матрицы, описанный в данном документе, может применяться в широком диапазоне практических вариантов применения. Такие практические варианты применения включают в себя финансовые приложения, например, чтобы совместно использовать информацию кредитных карт, приложения для повышения конфиденциальности, например, приложения для обмена сообщениями, медицинские приложения и т.д.
Способ согласно изобретению может реализовываться на компьютере в качестве машинореализованного способа или в выделенных аппаратных средствах либо в комбинации вышеозначенного. Исполняемый код для способа согласно изобретению может сохраняться на компьютерном программном продукте. Примеры компьютерных программных продуктов включают в себя запоминающие устройства, оптические устройства хранения данных, интегральные схемы, серверы, онлайновое программное обеспечение и т.д. Предпочтительно, компьютерный программный продукт содержит невременный программный код, сохраненный на машиночитаемом носителе для осуществления способа согласно изобретению, когда упомянутый программный продукт выполняется на компьютере.
В предпочтительном варианте осуществления, компьютерная программа содержит компьютерный программный код, выполненный с возможностью осуществлять все этапы способа согласно изобретению, когда компьютерная программа выполняется на компьютере. Предпочтительно, компьютерная программа осуществляется на машиночитаемом носителе.
Другой аспект изобретения предоставляет способ обеспечения доступности компьютерной программы для загрузки. Этот аспект используется, когда компьютерная программа выгружается, например, в Apple App Store, Google Play Store или Microsoft Windows Store, и когда компьютерная программа доступна для загрузки из такого магазина.
Краткое описание чертежей
В дальнейшем описываются дополнительные подробности, аспекты и варианты осуществления изобретения, только в качестве примера, со ссылкой на чертежи. Элементы на чертежах проиллюстрированы для простоты и ясности и не обязательно нарисованы в масштабе. На чертежах, элементы, которые соответствуют уже описанным элементам, могут иметь одни и те же ссылочные позиции. На чертежах:
Фиг. 1 схематично показывает пример варианта осуществления криптографической системы,
Фиг. 2a, 2b, 2c схематично показывают примеры варианта осуществления данных выбора,
Фиг. 3a схематично показывает пример варианта осуществления криптографической системы,
Фиг. 3b схематично показывает пример варианта осуществления подробности криптографического протокола,
Фиг. 4 схематично показывает пример варианта осуществления способа для совместного использования матрицы,
Фиг. 5a показывает машиночитаемый носитель, имеющий записываемую часть, содержащую компьютерную программу согласно варианту осуществления,
Фиг. 5b схематично показывает представление процессорной системы согласно варианту осуществления.
Подробное описание предпочтительных вариантов осуществления
Хотя это изобретение допускает вариант осуществления во многих различных формах, один или более конкретных вариантов осуществления показаны на чертежах и подробно описываются в данном документе с пониманием того, что настоящее раскрытие сущности должно рассматриваться в качестве примера принципов изобретения и не имеет намерение ограничивать изобретение конкретными показанными и описанными вариантами осуществления.
Далее, для понимания, элементы вариантов осуществления описываются при работе. Тем не менее, должно быть очевидным то, что соответствующие элементы выполнены с возможностью осуществлять функции, описанные как выполняемые посредством них. Дополнительно, изобретение не ограничено вариантами осуществления, и изобретение заключается в каждом новом признаке или в комбинации признаков, описанных в данном документе или изложенных во взаимно разных зависимых пунктах формулы изобретения.
Фиг. 1 схематично показывает пример варианта осуществления криптографической системы 100. Криптографическая система 100 содержит множественные сетевые узлы. На фиг. 1 показаны первый сетевой узел 110 и второй сетевой узел 111. По большей части, узлы 110 и 111 имеют идентичную структуру за исключением того, что они имеют взаимосвязь "отправитель/приемник". Сетевые узлы в системе 100 выполнены с возможностью выполнять криптографический протокол на основе совместно используемой матрицы; в частности, первый сетевой узел 110 и второй сетевой узел 111 сконфигурированы для такого криптографического протокола. Предпочтительно свежая совместно используемая матрица используется для каждого выполнения криптографического протокола.
Сетевой узел 110 содержит криптографический модуль 150. Криптографический модуль 150 выполнен с возможностью выполнять криптографический протокол с использованием совместно используемой матрицы. Как указано в разделе "Уровень техники", существует множество таких криптографических протоколов, и все требуют большой матрицы, которая совместно используется двумя сторонами. Зачастую матричное произведение вычисляется между совместно используемой матрицей и закрытым вектором или матрицей сетевого узла в качестве части криптографического протокола. Например, криптографический модуль 150 может содержать модуль 152 матричного умножения, выполненный с возможностью вычислять упомянутое матричное умножение.
Первый пример криптографического протокола с использованием совместно используемой матрицы представляет собой протокол обмена ключами. Например, первый узел может быть выполнен с возможностью:
- формировать матрицу (Sl) закрытых ключей,
- формировать матрицу (Pl) открытых ключей, причем упомянутое формирование содержит по меньшей мере:
- вычисление матричного произведения между совместно используемой матрицей (A) и матрицей (Sl) закрытых ключей для получения матричного произведения,
- отправку матрицы открытых ключей первого сетевого узла во второй сетевой узел,
- прием матрицы (PR) открытых ключей второго сетевого узла,
- вычисление необработанного ключа в качестве матричного произведения между принимаемым открытым ключом второго узла и матрицей закрытых ключей первого сетевого узла, при этом первый сетевой узел дополнительно выполнен с возможностью вычислять совместно используемый ключ из по меньшей мере необработанного ключа.
За счет введения шума во время формирования матрицы (Pl) открытых ключей, исключается то, что взломщик может реконструировать закрытые ключи из знания открытых ключей и совместно используемого ключа. Этот протокол согласования ключей основан на том факте, что, за исключением аддитивного шума,
Figure 00000001
является идентичным для первого и второго сетевого узла. Вычисление матричного произведения между совместно используемой матрицей (A) и матрицей (Sl) закрытых ключей осуществляется по модулю математический модуль. Один из узлов может вычислять сверочные данные ключей и отправлять их в другой узел, чтобы обеспечивать то, что оба из них вычисляют один и тот же совместно используемый ключ из матричных произведений. Более подробное описание протокола согласования ключей на основе решеток приведено в статье авторов J. Bos, C. Costello, L. Ducas, I. Mironov, M. Naehrig, V. Nikolaenko, A. Raghunathan, D. Stebila. "Frodo: Take off the ring! Practical, Quantum-Secure Key Exchange from LWE" (включена в данный документ по ссылке и называется "Frodo").
Второй пример криптографического протокола на основе решеток представляет собой алгоритм шифрования/дешифрования с открытым ключом. Например, сетевой узел может быть выполнен с возможностью
- получать открытый ключ второго сетевого узла, причем упомянутый открытый ключ содержит данные выбора и дополнительную матрицу (B) открытых ключей, причем дополнительная матрица открытых ключей заранее получается из совместно используемой матрицы и матрицы (S) закрытых ключей,
- выбирать случайный вектор r и вычислять два матричных произведения (например,
Figure 00000002
,
Figure 00000003
) между случайным вектором (r) и совместно используемой матрицей и между случайным вектором (r) и дополнительной матрицей открытых ключей,
- вычислять зашифрованное сообщение из сообщения простым текстом посредством добавления вектора сокрытия данных, вычисленного из первого из двух матричных произведений, причем зашифрованное сообщение дополнительно включает в себя информацию дешифрования, вычисленную из второго из двух матричных произведений.
Также в этом примере, шум может добавляться, например, в форме масштабирования. Подробный пример протокола шифрования с открытым ключом на основе решеток содержится в статье авторов J. H. Cheon, D. Kim, J. Lee, Y. Song: "Lizard: Cut off the Tail! Practical Post-Quantum Public-Key Encryption from LWE and LWR" (содержится в данном документе по ссылке).
Вернемся к фиг. 1. В силу этого имеется проблема в том, как получать матрицу, совместно используемую двумя узлами. Совместно используемая матрица имеет множественные записи, причем каждая запись имеет значение. Следует обратиться к строке и столбцам матрицы. В примере по меньшей мере одно из числа строк и числа столбцов превышает 50, 100, 500 и т.д. Совместно используемая матрица может быть квадратной для удобства, хотя это необязательно. Матрица может представлять собой вектор, например, когда одна из размерностей равна 1; тем не менее, большинство преимуществ получаются, когда обе размерности являются большими, например, когда число строк и число столбцов превышают 50, 100, 500 и т.д.
Первый и второй сетевой узел содержат интерфейс 120 связи. Интерфейс 120 связи первого сетевого узла 210 выполнен с возможностью цифровой связи со вторым сетевым узлом 211. Типично, интерфейс 120 связи выполнен с возможностью обмениваться данными со многими из других узлов в системе 100.
Интерфейсы связи могут быть выполнены с возможностью цифровой связи с другими узлами в системе согласования ключей. Тем не менее, необязательно, что все узлы в системе могут достигаться в любой момент времени. Интерфейс 120 связи выполнен с возможностью цифровой связи. Например, интерфейсы связи могут быть выполнены с возможностью обмениваться данными по компьютерной сети. Например, интерфейс связи может быть выполнен с возможностью беспроводной связи, например, Wi-Fi, ZigBee, Bluetooth и т.п., и/или проводной связи, например, Ethernet, USB и т.п. Связь между узлами 110 и 111 также может представлять собой комбинацию проводных и беспроводных соединений. Например, узлы в системе 100, включающей в себя узлы 110 и 111, могут содержать электронное устройство хранения данных, которое содержит идентификатор связи, который уникально идентифицирует узел в системе 100. Например, идентификатор связи может быть включен в цифровые сообщения, которыми обмениваются между узлами 110 и 111, например, чтобы адресовать сообщение. Например, идентификатор связи может представлять собой IP-адрес, MAC-адрес и т.п.
Электронные сетевые узлы сконфигурированы для криптографического протокола, такого как примеры протокола обмена ключами или шифрования с открытым ключом, приведенные выше. Криптографический протокол заключает в себе обмен сообщениями между узлами 110 и 111 по интерфейсам 120 связи и выполнение вычислений, например, для данных, принимаемых из другого узла. Выполнение протоколов реализуется в процессорной схеме, примеры которой показаны ниже. Фиг. 1 показывает функциональные модули, которые могут представлять собой функциональные модули процессорной схемы. Например, фиг. 1 может использоваться в качестве рабочего проекта возможной функциональной организации процессорной схемы. Процессорная схема не показана отдельно от модулей на фиг. 1. Например, функциональные модули, показанные на фиг. 1, также могут полно или частично реализовываться в компьютерных инструкциях, которые сохраняются в сетевых узлах и выполняются посредством микропроцессора сетевого узла. В гибридных вариантах осуществления, функциональные модули реализуются частично в аппаратных средствах, например, в качестве сопроцессоров, например, криптосопроцессоров, и частично в программном обеспечении, сохраненном и выполняемом в сетевом узле.
Сетевой узел 110 содержит диспетчер 130 базовых данных, выполненный с возможностью получать последовательность значений для записей совместно используемой матрицы, причем последовательность значений совместно используется со вторым сетевым узлом. Сетевой узел 110 также содержит запоминающее устройство 170 базовых данных, выполненное с возможностью сохранять совместно используемую последовательность значений, например, после того, как она получена.
Аналогично записям в совместно используемой матрице A, значения в последовательности значений могут выбираться по модулю математический модуль. Последовательность значений также упоминается как базовые данные или базовые значения и т.д. Последовательность значений используется для того, чтобы заполнять совместно используемую матрицу. Понимание авторов изобретения заключается в том, что преобразование из последовательности значений в записи совместно используемой матрицы может передаваться в гораздо меньшем числе битов или может вычисляться из гораздо меньшего количества псевдослучайных выводов, чем непосредственно последовательность значений. Посредством варьирования способа, в котором совместно используемая матрица формируется из последовательности значений, большое число разных совместно используемых матриц может получаться из одних и тех же базовых данных. Таким образом, криптографические преимущества использования другой совместно используемой матрицы каждый раз комбинируются с низким объемом служебной информации при повторном использовании одной и той же последовательности значений.
Предусмотрен ряд способов, которыми диспетчер 130 базовых данных может получать базовые данные, которые совместно используются со вторым сетевым узлом.
В первом примере, запоминающее устройство 170 базовых данных предварительно сохраняет последовательность значений. Например, множественные сетевые узлы в системе 100 могут содержать последовательность в некоторой точке, например, при первом использовании, во время изготовления, в доверенном местоположении и т.д. Совместно используемая последовательность значений может представлять собой фиксированную последовательность, например, фиксированную в стандарте и т.п. В этом случае, базовый диспетчер 130, должен выполнять и другие функции, помимо предоставления доступа к запоминающему устройству 170 базовых данных, в которой последовательность значений. Варианты осуществления этого типа для запоминающего устройства 170 базовых данных либо его части, в которой сохраняется совместно используемая последовательность значений, могут представлять собой запоминающее ROM-устройство.
Во втором примере, последовательность значений получается от доверенной третьей стороны. Например, периодически, диспетчер 130 базовых данных контактирует с доверенной третьей стороной, например, по компьютерной сети, чтобы получать новую последовательность значений. Например, диспетчер 130 базовых данных может быть выполнен с возможностью получать такую новую последовательность периодически, например, один раз в 30 дней, например, в начале каждого нового месяца и т.д.
Чтобы уменьшать объем служебной информации при передаче, диспетчер 130 базовых данных может получать совместно используемую последовательность значений в качестве случайного начального числа. Например, первый сетевой узел 110 может содержать детерминированный генератор 160 псевдослучайных чисел. Генератор псевдослучайных чисел может инициализироваться случайным начальным числом и использоваться для того, чтобы вычислять последовательность значений. Начальное число может получаться из разных источников, например, предварительно программируемых, например, во время изготовления, например, приниматься из второго сетевого узла, например, приниматься от доверенной третьей стороны и т.д. Данные выбора также могут формироваться в первом сетевом узле и отправляться во второй сетевой узел.
Последовательность значений используется для множественных выполнений криптографического протокола, например, последовательность значений используется по меньшей мере дважды, чтобы формировать по меньшей мере две разных совместно используемых матрицы, совместно используемые со вторым сетевым узлом. В варианте осуществления, последовательность значений совместно используется с множественными сетевыми узлами, например, с каждым из множественных сетевых узлов системы 100. Последнее не является обязательным, хотя, например, конкретная последовательность значений может использоваться только посредством первого и второго сетевого узла; например, в первый раз, когда первый и второй сетевой узел взаимодействуют, они могут обмениваться случайным начальным числом, чтобы формировать последовательность значений, которая используется между ними в дальнейшем. Ниже описываются дополнительные варианты осуществления с использованием кэширования последовательностей.
Генератор 160 псевдослучайных чисел может представлять собой генератор с быстрой линейной обратной связью, такой как вихрь Мерсенна. Тем не менее, предпочтительным является криптографически защищенный генератор случайных чисел. Например, генератор 160 псевдослучайных чисел может удовлетворять так называемому тесту следующего бита. Таким образом, с учетом первых k битов случайной последовательности, отсутствует полиномиально-временной алгоритм, который может прогнозировать (k+1)-ый бит с вероятностью успешности, не пренебрежимо мало превышающей 50%. Имеется множество известных криптографически защищенных генераторов случайных чисел, например, блочный шифр, выполняемый в режиме счетчика, например, усовершенствованный стандарт шифрования в режиме счетчика. Защищенный генератор случайных чисел также может получаться посредством выполнения хэш-функции в режиме счетчика, например, SHA-256 и т.д. Вихрь Мерсенна также может защищаться, например, посредством базирования пары криптографических поточных шифров на выводе из вихря Мерсенна. Дополнительные примеры включают в себя генератор Блюма-Блюма-Шуба, генератор Блюма-Микали и т.д.
Сетевой узел 110 содержит модуль 140 формирования матриц. Модуль 140 формирования матриц выполнен с возможностью формировать совместно используемую матрицу (A) в соответствии с данными выбора с заданием упомянутых множественных записей совместно используемой матрицы равными множественным значениям, назначаемым посредством данных выбора. Данные выбора в силу этого описывают преобразование между совместно используемой последовательностью значений и записями в совместно используемой матрице. Данные выбора могут получаться из второго сетевого узла, например, через интерфейс 120 связи. Последовательность значений трансформируется в фактическую совместно используемую матрицу A посредством данных выбора.
Модуль 140 формирования также может определять непосредственно данные выбора и отправлять данные выбора во второй сетевой узел. Например, если данные выбора содержат кортежи, перестановки, параметры поворота и т.п., как проиллюстрировано в разных вариантах осуществления, то модуль 140 формирования может выбирать их произвольно в качестве сформированных данных выбора. Сформированные данные выбора могут отправляться во второй сетевой узел. Если данные выбора извлекаются из вывода детерминированного генератора случайных чисел, то начальное число генератора вместо этого может отправляться во второй сетевой узел.
Данные выбора в силу этого указывают множественные значения в последовательности значений и назначают множественным записям совместно используемой матрицы значение из последовательности значений, указываемых посредством данных выбора. В варианте осуществления, все записи совместно используемой матрицы принимают свое значение из последовательности значений; тем не менее, необязательно то, что каждая запись должна принимать это значение из местоположения в последовательности значений, которое указывается посредством данных выбора; некоторые записи в совместно используемой матрице могут принимать свое значение из фиксированного местоположения в последовательности значений. В дальнейшем поясняется ряд примеров со ссылкой на фиг. 2a, 2b и 2c.
Фиг. 2a схематично показывает пример варианта осуществления данных выбора. Данные выбора идентифицируют местоположения в последовательности 210 значений, показаны значения 221 и 222, которые должны назначаться местоположениям в совместно используемой матрице 230, показаны записи 231 и 232.
Например, данные выбора могут содержать последовательность кортежей, причем каждый кортеж содержит индекс в последовательности значений и индекс в совместно используемой матрице. Например, последовательность значений может индексироваться линейно, например, подсчитываться последовательно, например, с использованием натуральных чисел. Например, совместно используемая матрица также может индексироваться с одним числом, например, нумероваться последовательно, но также может индексироваться посредством координаты X и Y, например, указывающей столбец и строку, соответственно. Данные выбора, например, могут содержать{(4, (2,5)), (7, (3,3)), …,}, чтобы указывать то, что значение с индексом 4 в последовательности значений должно быть размещено в позиции (2,5) совместно используемой матрицы, и т.д. Данные выбора не содержат фактические значения записи в совместно используемой матрице, вместо этого фактические значения совместно используемой матрицы выбираются из последовательности значений. В варианте осуществления, данные выбора могут дополняться данными для изменения. Например, данные для изменения могут содержать данные, которые указывают то, как значения в совместно используемой матрице должны изменяться, например, посредством включения приращения или постепенного уменьшения или включения нового значения. Такие данные для изменения могут применяться посредством модуля 140 формирования также. Данные для изменения считаются менее преимущественными: отправка новых значений требует множества битов, и каждый элемент в данных для изменения оказывает влияние только на один элемент совместно используемой матрицы, и при этом данные выбора могут указываться только с небольшим числом битов, но могут оказывать влияние на большое число записей совместно используемой матрицы. Небольшие постепенные приращения/постепенные уменьшения могут указываться с меньшим числом битов, но они имеют сравнительно маленькое влияние на результирующую решетку и фактически могут исчезать в шуме, добавленном после матричного умножения с совместно используемой матрицей.
Может возникать такая ситуация, что некоторая позиция (i, j) совместно используемой матрицы не появляется в данных выбора. Она может разрешаться посредством предоставления позиции значения по умолчанию, например, предварительно определенного значения. Она также может разрешаться посредством предоставления позиции значения из местоположения по умолчанию в последовательности значений.
Например, данные выбора могут содержать перестановку. Назначение затем может работать посредством перестановки последовательности значений согласно перестановке и назначения перестановочной последовательности значений записям совместно используемой матрицы согласно назначению по умолчанию. Например, если перестановка обозначается как биективная функция σ, которая преобразуется из местоположений 1-mn в последовательности значений в записи в матрице A mxn, для некоторого способа по умолчанию нумерации записей в совместно используемой матрице A, например, по строкам или по столбцам и т.д. Данные выбора могут содержать представление перестановки σ, и назначение может работать посредством назначения, индексу i согласно способу по умолчанию индексации A, значения последовательности 210 в местоположении σ(i). Перестановка также может использоваться наоборот, например, значение с индексом i в последовательности может назначаться записи σ(i) в матрице.
Часть матрицы A может соответствовать фиксированным элементам последовательности, так что необязательно полностью указывать преобразование между последовательностью 210 и матрицей 230, в кортежах или в перестановке. Достаточно того, что имеется достаточное число разных матриц, которые могут получаться с использованием данных выбора.
Фиг. 2b схематично показывает первый пример варианта осуществления данных выбора. Предусмотрены разные способы уменьшать число битов, требуемых для того, чтобы указывать преобразование между последовательностью 210 и матрицей 230, один из которых проиллюстрирован относительно фиг. 2b. В последовательности 210 значений, задаются одна или более первых групп, показаны первые группы 241 и 242. В матрице 230 задаются одна или более вторых групп, показаны вторые группы 251 и 252. Каждой первой группе в последовательности 210 соответствует вторая группа в матрице 230. Преобразование между записями последовательности 210 и записями матрицы 230 может ограничиваться преобразованиями, которые преобразуют элементы первой группы в элементы соответствующей второй группы. Первые и вторые группы могут выбираться произвольно. На фиг. 2b, первые группы выбираются последовательно, но вторые группы выбираются произвольно. Другие варианты выбора являются возможными. Например, вторые группы также могут быть последовательными, например, строки или столбцы и т.д.
Преобразования, которые могут указываться посредством данных выбора, могут быть дополнительно ограничены посредством ограничения числа разрешенных преобразований. Например, в примере, преобразование представляет собой циклическую перестановку.
Фиг. 2c схематично показывает первый пример варианта осуществления данных выбора. В этом примере, базовые данные формируют базовую матрицу 260, например, число элементов последовательности значений является идентичным числу записей в совместно используемой матрице и может индексироваться аналогично. В этом случае, данные выбора могут указывать совместно используемую матрицу посредством задания перестановки в базовой матрице. Например, данные выбора могут указывать циклическую перестановку строки и/или столбца базовой матрицы посредством указания числа записей, на которое поворачивается упомянутая строка и/или столбцы. Например, данные выбора могут содержать последовательность чисел, причем каждое число последовательности указывает поворот на количество мест строки базовой матрицы, соответствующее числу.
В варианте осуществления, данные выбора представляют собой информацию, которая обеспечивает возможность приемной стороне находить измененную матрицу; например, последовательность чисел, i-ое число которой указывает то, на сколько позиций поворачивается i-ая матрица-строка A; или последовательность пар (индекс строки, порядок поворота). Использование меньшего количества чисел является возможным.
Следует отметить, что объем данных для того, чтобы указывать совместно используемую матрицу из базовых данных в последовательности, например, в базовой матрице, может быть гораздо меньше объема данных непосредственно в совместно используемой матрице. Например, рассмотрим фиг. 2c, для квадратной матрицы размерности 512 и по модулю 2048. Только 9 битов необходимы для того, чтобы указывать циклическую перестановку в строке, тогда как 512*12 битов необходимы для того, чтобы указывать данные непосредственно в строке. Таким образом, в этом примере, часть данных выбора, которые указывают то, какие значения в строке базовой матрицы направляются в какое местоположение в совместно используемой матрице, составляет 9 битов, что составляет 9/(512*12)<1/100, размер данных в строке.
Каждый из способов выше допускает формирование большего количества раных совместно используемых матриц из одной последовательности значений. Например, использование системы для того, чтобы поворачивать строки базовой матрицы, требует только параметра поворота для 8 строк, чтобы формировать (29)9раных совместно используемых матриц для случайной последовательности 210 значений. Упомянутое число (29)9превышает 264, которое может рассматриваться в качестве параметра безопасности. Согласно этому примеру, достаточно отправлять восемь пар (индекс строки, порядок циклической перестановки), приводя всего к 8*(9+9) битов. Если строки, которые должны поворачиваться, предварительно определены, необходимый объем данных еще дополнительно уменьшается на 8*9 битов. Тем не менее, большие числа разных матриц A легко являются возможными с использованием дополнительных параметров в данных выбора, например, большие 2128, большие 2256и т.д., с использованием 15 и 29 параметров поворота для 15 и 29 строк или столбцов, соответственно. В варианте осуществления, часть параметров поворота поворачивает строки, тогда как часть параметров поворота поворачивает столбцы. Это имеет такое преимущество, что поворот является одинаково несовместимым с матричными умножениями для обоих узлов, например, в ситуации, в которой один из узлов использует левое умножение, а другой - правое умножение. В еще одном другом варианте осуществления, с квадратными матрицами, поворота осуществляются по (циклическим) диагоналям матрицы.
Некоторые значения в совместно используемой матрице могут иметь значения по умолчанию последовательности. Например, некоторые строки могут всегда быть равны некоторым предварительно определенным значениям последовательности.
Данные выбора могут передаваться по меньшей мере двумя разными способами. В первом варианте, данные выбора непосредственно представляют то, какая запись последовательности преобразуется в какую запись совместно используемой матрицы. Это может быть очень эффективным способом формировать матрицу A. Например, чтобы вычислять из параметра в данных выбора по меньшей мере одна запись в последовательности значений и по меньшей мере одна запись в совместно используемой матрице могут быть линейными в параметре. Он представляет собой экспоненту p, возникающую при преобразовании из последовательности значений в совместно используемую матрицу, самое большее равную 1. С использованием представлений по фиг. 2b и 2c, вычисление нового местоположения для строки по модулю число записей в строке базовой матрицы или вычисление индекса в случайной первой или второй группе представляет собой одно вычисление.
Например, пусть первая группа в последовательности значений представляет собой записи, пронумерованные
Figure 00000004
, предполагается, что строка совместно используемой матрицы имеет m элементов. Пусть p представляет собой параметр в данных выбора, который указывает то, что число записей в этой группе поворачивается. Пусть вторая группа представляет собой k-ую строку матрицы. Записи в A пронумерованы по строкам, начиная с нуля. Строки также подсчитаны, начиная с нуля. В этом случае, запись
Figure 00000005
в последовательности может преобразовываться в запись
Figure 00000006
. Вышеуказанное вычисление является линейным в p. Можно обобщать это преобразование таким образом, что i-ый элемент в первой группе j, имеющей
Figure 00000007
элементов, преобразуется в
Figure 00000008
, при этом
Figure 00000009
представляет собой таблицу, например, таблицу поиска. Здесь j работает на основе числа групп. В варианте осуществления, можно рассматривать
Figure 00000010
для всех j. Число групп может быть равно числу строк, но это не является обязательным. Например, можно рассматривать значение по умолчанию, например, 0 для некоторых параметров
Figure 00000011
. Таблицы
Figure 00000009
могут представлять собой строки, например, простое добавление первого индекса строки, как описано выше, но они также могут преобразовывать первую группу в более сложные наборы. В варианте осуществления,
Figure 00000009
преобразуется в нерегулярные структуры. Пример должен представлять собой независимый набор мошеннического графа матрицы (только для квадратных матриц). Фактически,
Figure 00000009
может даже формировать план на латинском квадрате.
Альтернативный способ для того, чтобы представлять данные выбора, представляет собой случайное начальное число. Например, детерминированный генератор 160 псевдослучайных чисел может инициализироваться случайным начальным числом, и получение из вывода детерминированного генератора псевдослучайных чисел индикатора множественных значений в последовательности значений и/или множественных записей совместно используемой матрицы. Любой из вышеуказанных способов представления данных выбора может использоваться вместе с представлением начального числа, поскольку можно формировать данные выбора из вывода генератора случайных чисел. Например, в варианте осуществления, данные выбора могут поворачивать, скажем, строки 1, 5, 13, 27 и 37 базовой матрицы на величину, указываемую в данных выбора. В этом случае, данные выбора могут непосредственно содержать индексы строки или столбца и величины поворота, или данные выбора могут содержать случайное начальное число. Во втором случае, величина поворота может приниматься из вывода генератора 160 случайных чисел.
Следует отметить, что во всех этих примерах, данные выбора могут приниматься из второго узла 111, причем в этом случае узел 110 формирует совместно используемую матрицу из последовательности значений в соответствии с данными выбора. Альтернативно, узел 110 может формировать данные выбора, например, случайно, например, из начального числа и затем отправлять данные выбора, либо в качестве прямых данных, либо в качестве случайного начального числа, во второй узел.
Фиг. 3a схематично показывает пример варианта осуществления криптографической системы 300. Система 300 содержит сервер 310 и множественных клиентов. Показаны клиенты 320.1, 320.2 и 320.3. Может быть предусмотрено гораздо большее число клиентов. Например, сервер 310 может представлять собой компьютер, который доставляет цифровые услуги по цифровой сети клиентам. Например, сервер 310 может представлять собой веб-магазин. Клиенты могут использовать веб-браузер, чтобы просматривать веб-узел, управляемый посредством сервера 310, и заказ из веб-магазина. Связь между сервером и клиентами может шифроваться и/или аутентифицироваться. Например, сервер и клиенты могут выполнять протокол обмена ключами. Система 300 организуется с возможностью уменьшать объем служебной информации, ассоциированный с вычислением множества разных совместно используемых матриц для сервера 310.
Сервер 310 может организовываться в качестве первой сети 110, показанной на фиг. 1, за исключением того, что запоминающее устройство 170 базовых данных сконфигурировано в качестве кэш-памяти, выполненной с возможностью кэшировать последовательность значений (A1, A2) вместе с соответствующим идентификатором последовательности, который идентифицирует упомянутую кэшированную последовательность значений. Кэш-память 170 может сохранять множественные последовательности значений с ассоциированным идентификатором последовательности. Например, может быть предусмотрено две или более базовых матриц A1, A2 и т.д., но это не является обязательным.
Диспетчер 130 базовых данных выполнен с возможностью получать последовательность посредством приема идентификатора последовательности из второго сетевого узла и проверять, кэшируется или нет последовательность значений, соответствующих принимаемому идентификатору последовательности, в кэш-памяти, и если такая последовательность значений не кэшируется в матрице кэша, получать последовательность значений из второго сетевого узла. Получение последовательности может осуществляться любым из способов, проиллюстрированных выше. В этом варианте осуществления, второй сетевой узел, например, клиент затем может быть выполнен с возможностью отправлять идентификатор последовательности на сервер, соответствующий последовательности значений, кэшированных в кэш-памяти. В варианте осуществления, если из второго сетевого узла принимается сообщение касательно того, что базовая матрица с этим идентификатором не кэшируется посредством второго сетевого узла, сетевой узел может быть выполнен с возможностью совместно использовать базовую матрицу (A) со вторым сетевым узлом, например, посредством отправки матрицы или начального числа, чтобы формировать матрицу.
Эта компоновка уменьшает нагрузку на сервер 310 в определенной степени, например, если связь выполняется дважды с одним и тем же узлом, либо если множество узлов используют одну и ту же последовательность значений. Тем не менее, в варианте осуществления, роли меняются местами, и диспетчер 130 базовых данных выполнен с возможностью выбирать идентификатор последовательности для второго сетевого узла, соответствующий последовательности значений, кэшированных в кэш-памяти 170. Таким образом, объем служебной информации, ассоциированный с формированием базовой матрицы, например, из случайного начального числа, в большей степени исключается на сервере 310.
Данные выбора, которыми затем обмениваются между сервером 310 и клиентами и 320, в таком случае могут использовать последовательность значений, идентифицированных посредством идентификатора последовательности, чтобы формировать совместно используемую матрицу.
В варианте осуществления, идентификатор последовательности содержит дополнительное случайное начальное число. Детерминированный генератор псевдослучайных чисел инициализируется дополнительным случайным начальным числом. Последовательность значений получается из вывода инициализированного детерминированного генератора псевдослучайных чисел. Посредством включения дополнительного случайного начального числа в идентификатор последовательности, сторона, которая не имеет кэшированной последовательности, может вычислять при необходимости.
Некоторые из этих опций проиллюстрированы на фиг. 3b, который схематично показывает пример варианта осуществления подробности криптографического протокола, выполняемого между сервером 310 и клиентом 320, например, одним из клиентов, показанных на фиг. 3a.
Первое сообщение 331, отправленное из клиента 320 на сервер 310, содержит запрос сообщения. Оно может содержать дополнительную информацию, такую как идентификатор для клиента 320. В ответ, сервер 310 отправляет второе сообщение 332 в клиент 320. Второе сообщение 332 содержит идентификатор последовательности, например, содержащий дополнительное случайное начальное число. Сервер 310 кэширует соответствующую последовательность значений, например, после ее вычисления в определенный момент из дополнительного случайного начального числа. Последовательность значений может иметь форму базовой матрицы. Сообщение 332 также может содержать данные выбора, сформированные посредством сервера 310. Данные выбора в сообщении 332 могут иметь форму случайного начального числа или нет. Сообщение 332 также может содержать протокольную информацию, сформированную посредством сервера 310, которая является возможной, поскольку сервер 310 в этот момент имеет доступ к совместно используемой матрице. Например, в протоколе обмена ключами, как описано выше, сообщение 332 может содержать открытый ключ, сформированный для этого выполнения обмена ключами. После приема сообщения 332, клиент 320 может извлекать последовательность значений из своей кэш-памяти, либо, если последовательность значений не присутствует в кэш-памяти, формировать последовательность значений из дополнительного случайного начального числа в идентификаторе последовательности. Кроме того, клиент 320 может формировать совместно используемую матрицу из последовательности значений и данных выбора. С использованием сформированной совместно используемой матрицы, клиент 320 может формировать дополнительные значения в протоколе и возвращать их с сообщением 333. Например, если он представляет собой протокол обмена ключами, то сообщение 333 может содержать открытый ключ, сформированный посредством клиента 320 из совместно используемой матрицы и закрытого ключа клиента 320. Сообщение 320 также может содержать зашифрованную информацию, зашифрованную с помощью ключа, полученного из собственного закрытого ключа и открытого ключа, полученного в сообщении 332. Например, зашифрованные данные могут содержать, скажем, номер кредитной карты пользователя клиента 320. Сервер 310, когда он принимает сообщение 333, может использовать открытый ключ и собственную матрицу закрытых ключей, чтобы получать ключ шифрования и дешифровать зашифрованные данные, например, получать номер кредитной карты.
Для вышеуказанного протокола возможно множество разновидностей; например, в первом варьировании, данные выбора не выбираются или выбираются не только посредством сервера 310 и отправляются в сообщении 320, но выбираются или выбираются также посредством клиента 320 и отправляются в сообщении 333 на сервер 310. Во втором случае, преимущественно, если данные выбора в сообщении 3333 непосредственно определяют преобразование между последовательностью значений, идентифицированных посредством идентификатора последовательности, и совместно используемой матрицей без использования случайного начального числа, чтобы формировать его. Например, каждый узел может указывать перестановку базовой матрицы. Конкретный, скажем, инициирующий узел протокола может применять свою перестановку с последующей перестановкой отвечающего узла.
В разных вариантах осуществления, интерфейс связи может выбираться из разных альтернатив. Например, интерфейс ввода может представлять собой сетевой интерфейс с локальной или глобальной вычислительной сетью, например, с Интернетом, интерфейс хранения данных с внутренним или внешним устройством хранения данных и т.д.
Запоминающее устройство 170 базовых данных может реализовываться как электронное запоминающее устройство, скажем, флэш-память, или магнитное запоминающее устройство, скажем, жесткий диск и т.п. Запоминающее устройство 170 базовых данных может содержать множественные дискретные запоминающие устройства, вместе составляющие запоминающее устройство 170 базовых данных. Запоминающее устройство 170 базовых данных также может представлять собой временное запоминающее устройство, скажем, RAM. В случае временного запоминающего устройства 170 базовых данных, запоминающее устройство 170 базовых данных содержит некоторое средство для того, чтобы получать параметры перед использованием, скажем, посредством их получения по необязательному сетевому соединению (не показано).
Типично, устройство 110 и 111 содержат микропроцессор (отдельно не показан), который выполняет надлежащее программное обеспечение, сохраненное в устройстве 110 и 111; например, это программное обеспечение, возможно, загружено и/или сохранено в соответствующем запоминающем устройстве, например, в энергозависимом запоминающем устройстве, к примеру, в RAM, или в энергонезависимом запоминающем устройстве, к примеру, во флэш-памяти (отдельно не показана). Устройства 310 и 320.1-3 также могут быть оснащены микропроцессорами и запоминающими устройствами (отдельно не показаны). Альтернативно, устройства 110 и 111 могут, полностью или частично, реализовываться в программируемой логике, например, в качестве программируемой пользователем вентильной матрицы (FPGA). Устройства 110 и 111 могут реализовываться, полностью или частично, в качестве так называемой специализированной интегральной схемы (ASIC), т.е. интегральной схемы (IC), специально разработанной для конкретного использования. Например, схемы могут реализовываться в CMOS, например, с использованием языка описания аппаратных средств, такого как Verilog, VHDL и т.д.
В варианте осуществления, первый сетевой узел 110 содержит интерфейсную схему связи, схему диспетчера базовых данных, схему модуля формирования матриц, схему криптографического модуля, схему модуля матричного умножения, схему генератора псевдослучайных чисел и т.д. Устройство 100 может содержать дополнительные схемы, например, схему кэша и т.д. Схемы реализуют соответствующие модули, описанные в данном документе. Схемы могут представлять собой процессорную схему и схему хранения данных, причем процессорная схема выполняет инструкции, представленные электронно в схемах хранения.
Процессорная схема может реализовываться распределенным способом, например, в качестве множественных подпроцессорных схем. Устройство хранения данных может быть распределено по множественным распределенным подустройствам хранения данных. Часть или все запоминающее устройство может представлять собой электронное запоминающее устройство, магнитное запоминающее устройство и т.д. Например, устройство хранения данных может иметь энергозависимую и энергонезависимую часть. Часть устройства хранения данных может быть неперезаписываемой. Схемы также могут представлять собой FPGA, ASIC и т.п.
Ниже описываются определенное число дополнительных вариантов осуществления, которые уменьшают требования по полосе пропускания и вычислениям в схемах обмена ключами и т.п., которые основываются на больших матрицах. Это является, в частности, полезным для серверов, которые должны решать проблемы, связанные с множеством соединений, поскольку они могут использоваться для того, чтобы уменьшать вычислительные затраты на серверной стороне, если этот сервер должен обрабатывать множество соединений. В варианте осуществления, предлагается:
- Иметь открытую статическую последовательность значений P длины
Figure 00000012
- Обмениваться начальным числом между инициатором и сервером, чтобы получать перестановку r{1, …, L}; r затем используется для того, чтобы получать открытую матрицу A mxn, используемую в обмене ключами. Верхняя строка A равна (
Figure 00000013
, ее вторая строка равна
Figure 00000014
, ..., и ее нижняя строка равна
Figure 00000015
.
Производительность выше, поскольку элементы в r меньше элементов в A и в силу этого могут вычисляться быстрее и более эффективно. Последовательность значений может получаться рядом способов. Например:
Вариант 0 осуществления: она может представлять собой статический параметр.
Вариант 1 осуществления: инициатор публикует значение начального числа в день для всей связи.
Вариант 2 осуществления: инициатор публикует матрицу A в день для всей связи.
Вариант 3 осуществления: инициатор публикует seed_long для длительного периода времени, из которого могут вычисляться начальные числа для более коротких периодов времени, к примеру, начальное число=PRF(seed_long|time).
В некоторых окружениях, более целесообразно, если ответчик публикует начальное число, поскольку зачастую может случаться то, что ответчик представляет собой сервер, обрабатывающий множество соединений. Это начальное число также может вычисляться доверенной третьей стороной, независимой от сервера и клиента, согласно любому из вышеописанных вариантов осуществления. Инициатор и ответчик могут рассматриваться в качестве первого и второго сетевого узла, или наоборот. Например, инициатор может представлять собой сетевой узел, который инициирует криптографический протокол. Тем не менее, могут использоваться другие критерии, например, инициатор может задаваться как сетевой узел, который использует сверочные данные ключей, в то время как ответчик формирует сверочные данные ключей (сверочные данные ключей представляют собой данные, используемые для того, чтобы обеспечивать то, что обе стороны достигают одного и того же общего ключа).
Вариант 4 осуществления описывает дополнительный вариант осуществления, который предоставляет хороший компромисс между запоминающим устройством и CPU.
Инициатор или ответчик, или третья сторона публикует первое начальное число, используемое для того, чтобы вычислять матрицу A0 mxn. Инициатор вычисляет второе начальное число' и применяет псевдослучайную функцию (PRF), чтобы получать случайную перестановку r чисел [0, …, mn-1].
Инициатор отправляет начальное число' в ответчик.
Ответчик получает r и перекомпонует записи A0 согласно перестановке, чтобы получать A.
После того, как инициатор и ответчик получают A, остальная часть протокола выполняется так, как описано выше.
Дальнейшие расширения варианта 4 осуществления:
Формирование открытой последовательности P, например, последовательности значений или базовой матрицы длины
Figure 00000012
. Обмен начальным числом между инициатором и сервером, чтобы получать перестановку r {1.., L}; r затем используется для того, чтобы получать открытую матрицу A mxn, используемую в обмене ключами. Верхняя строка A равна (
Figure 00000013
, ее вторая строка равна
Figure 00000014
, ..., и ее нижняя строка равна
Figure 00000015
.
Не требуется строго то, что r является перестановкой. Достаточно того, что для
Figure 00000016
, справедливо то, что
Figure 00000017
.
В варианте осуществления, PRF используется для того, чтобы формировать последовательность битов, которая затем трансформируется в перестановку.
Например, можно формировать A битов, где
Figure 00000018
. Можно интерпретировать A битов в качестве целого числа и использовать код Лемера для того, чтобы определять соответствующую перестановку. Код Лемера представляет собой математический алгоритм для того, чтобы кодировать перестановку.
Для большого L, это может быть громоздким, и меньший набор перестановок может быть предпочтительным с точки зрения реализации. Например, рассмотрим
Figure 00000019
. Битовая последовательность сегментируется на m блоков, каждый из которых имеет длину B, и блок i рассматривается как метка для перестановки для записей
Figure 00000020
P. Например, если
Figure 00000021
, перестановка, соответствующая блоку, представляет собой циклический сдвиг на i позиций для некоторого
Figure 00000022
. Если
Figure 00000023
, любая перестановка на n позиций может помечаться B-битовой меткой. Соответствие между метками и перестановками может либо сохраняться явно (для достаточно небольшого n), либо вычисляться с использованием кода Лемера.
В варианте осуществления, перестановка является такой, что она оставляет множество позиций на месте. Это уменьшает количество требуемых перекомпоновок и обеспечивает возможность того, что относительно небольшое число битов из PRF должно формироваться. В качестве конкретного примера, рассмотрим
Figure 00000019
Набор чисел
Figure 00000024
сегментируется на m поднаборов размера n, например, на наборы формы
Figure 00000025
. Первые
Figure 00000026
битов PRF используются для того, чтобы указывать s поднаборов, в которых должна осуществляться перестановка. Следующие
Figure 00000027
битов используются для того, чтобы выбирать то, на сколько позиций должны сдвигаться записи в каждом из s выбранных поднаборов.
В варианте осуществления, перестановка представляет собой последовательность s замещений (иначе транспозиций). Битовая последовательность рассматривается как последовательность (
Figure 00000028
целых чисел длины в битах
Figure 00000029
, и перестановка состоит из последовательности замещений (транспозиций) записей P в позициях
Figure 00000030
, с последующим замещением записей P в позициях
Figure 00000031
, с последующим замещением записей P в позициях
Figure 00000032
.
Предусмотрены разные способы, которыми может получаться открытая последовательность P. Например, открытая последовательность, в одном варианте осуществления, может указываться в отраслевом стандарте. В другом варианте осуществления, она формируется посредством сервера S. Клиент C, желающий обмениваться данными с S, принимает P или параметры, например, начальное число и способ для того, чтобы вычислять P из S. Таким образом, сервер использует P для множественных сеансов и клиентов и не должен обязательно повторно вычислять его. В еще одном другом варианте осуществления, P формируется и распределяется доверенной третьей стороной (TTP). Сервер может сохранять P и использовать его для связи с множественными клиентами. Последовательность P может быть допустимой только в течение периода времени, указываемого посредством TTP. В еще одном другом варианте осуществления, имеются множественные TTP, каждая из которых формирует собственную открытую последовательность Pi. Сервер S сохраняет все такие матрицы. Клиент C выбирает последовательности из TTP, которой он фактически доверяет, комбинирует их некоторым предварительно указанным способом и применяет перестановку к этой комбинации. Он отправляет в S индексы выбранных TTP и начальное число таким образом, что S может получать упомянутую перестановку. Посредством комбинирования матриц и перестановки записей, S может находить матрицу, фактически используемую посредством C.
Псевдослучайная функция (PRF) может задаваться, например, следующим образом:
PRF1: Рекурсивная хэш-функция, вывод которой разделяется на группы из
Figure 00000033
битов. Каждая группа затем используется для того, чтобы подбирать другой элемент.
PRF2: PRF1 должна иметь коллизии, поскольку
Figure 00000033
является относительно небольшим числом. Альтернатива заключается в том, чтобы отслеживать используемые числа и отбрасывать числа, которые уже возникают.
PRF3: другая альтернатива состоит в
Figure 00000034
, где
Figure 00000035
, где p является простым числом, и g является генератором; k должно быть начальным числом, и эта PRF итеративно проходится посредством увеличения
Figure 00000036
.
Применение вышеописанных вариантов осуществления, в конкретном варианте осуществления 4, к другим схемам может заключаться в следующем. Например, для криптографического протокола на основе решеток, описанного в работе "Post-quantum key exchange - the new hope", авторов Erdem Alkim и др., можно модифицировать их схему следующим образом. С учетом вектора a и секретов s и e, в таком случае b вычисляется как
Figure 00000037
. Генерирование в этом случае является менее затратным, поскольку оно содержит только n элементов, но оно по-прежнему может быть затратным для сервера, если он должен вычислять множество векторов из начального числа. Альтернатива заключается в том, чтобы иметь статический p (набор элементов) и вычислять случайный вектор r перестановки. Таким образом, вычисление должно заключаться в следующем:
Figure 00000038
где
Figure 00000039
представляет перестановочную версию согласно r. Поскольку r имеет меньше элементов, чем a, оно может вычисляться с меньшими затратами, чем a.
В схемах шифрования с открытым ключом на основе решеток, открытый ключ, например, LWE, открытый ключ задается посредством пары (b, A). Матрица A может занимать значительное пространство для хранения данных, либо альтернативно, она, возможно, должна формироваться динамически. Альтернатива заключается в том, чтобы иметь набор открытых значений P; и иметь, в качестве открытого ключа, (b, начальное число') таким образом, что начальное число' используется для того, чтобы получать вектор r перестановки, который определяет то, как элементы в P преобразуются в матрицу A, используемую для того, чтобы получать b в качестве b=As+e. Преимущество состоит в том, что потребности в хранении на сервере являются гораздо более низкими, и вычислительные потребности также являются гораздо более низкими.
Фиг. 4 схематично показывает пример варианта осуществления способа для совместного использования матрицы 400. Способ 400 представляет собой электронный способ для первого электронного сетевого узла, сконфигурированного для криптографического протокола на основе совместно используемой матрицы, например, такого как сетевой узел 110. Совместно используемая матрица имеет множественные записи, причем каждая запись имеет значение. Способ 400 содержит:
- установление (410) цифровой связи между первым сетевым узлом и вторым сетевым узлом (111),
- получение (420) последовательности значений для записей совместно используемой матрицы, причем последовательность значений совместно используется со вторым сетевым узлом,
- прием (430) данных выбора из второго сетевого узла или определение данных выбора и отправку данных выбора во второй сетевой узел, причем данные выбора указывают множественные позиции в последовательности значений и назначают множественным записям совместно используемой матрицы значение из последовательности значений, указываемых посредством данных выбора,
- формирование (440) совместно используемой матрицы (A) в соответствии с данными выбора с заданием упомянутых множественных записей совместно используемой матрицы равными множественным значениям, назначаемым посредством данных выбора, и
- применение (450) совместно используемой матрицы в криптографическом протоколе.
Специалистам в данной области техники должно быть очевидным, что возможно множество разных вариантов осуществления способа. Например, порядок этапов может варьироваться, либо некоторые этапы могут выполняться параллельно. Кроме того, между этапами могут вставляться другие этапы способа. Вставленные этапы могут представлять уточнения способа, к примеру, как описано в данном документе, либо могут быть не связаны со способом. Кроме того, данный этап может не заканчиваться полностью до того, как начинается следующий этап.
Способ согласно изобретению может осуществляться с использованием программного обеспечения, которое содержит инструкции для инструктирования процессорной системе осуществлять способ 400. Программное обеспечение может включать в себя только этапы, выполняемые посредством конкретного подобъекта системы. Программное обеспечение может сохраняться на подходящем носителе хранения данных, к примеру, на жестком диске, на дискете, в запоминающем устройстве, на оптическом диске и т.д. Программное обеспечение может отправляться в качестве сигнала проводным или беспроводным способом либо с использованием сети передачи данных, например, Интернета. Программное обеспечение может становиться доступным для загрузки и/или для удаленного использования на сервере. Способ согласно изобретению может осуществляться с использованием потока битов, выполненного с возможностью конфигурировать программируемую логику, например, программируемую пользователем вентильную матрицу (FPGA), с тем чтобы осуществлять способ.
Следует принимать во внимание, что изобретение также применимо к компьютерным программам, в частности, к компьютерным программам на носителе, приспособленном для осуществления изобретения на практике. Программа может иметь форму исходного кода, объектного кода, кода, промежуточного между исходным и объектным кодом, к примеру, частично компилированную форму, либо любую другую форму, подходящую для использования при реализации способа согласно изобретению. Вариант осуществления, связанный с компьютерным программным продуктом, содержит машиноисполняемые инструкции, соответствующие каждому из этапов обработки по меньшей мере одного из изложенных способов. Эти инструкции могут подразделяться на подпрограммы и/или сохраняться в одном или более файлов, которые могут быть связаны статически или динамически. Другой вариант осуществления, связанный с компьютерным программным продуктом, содержит машиноисполняемые инструкции, соответствующие каждому из средств по меньшей мере одной из изложенных систем и/или продуктов.
Фиг. 5a показывает машиночитаемый носитель 1000, имеющий записываемую часть 1010, содержащую компьютерную программу 1020, причем компьютерная программа 1020 содержит инструкции для инструктирования процессорной системе осуществлять способ совместного использования матрицы, согласно варианту осуществления. Компьютерная программа 1020 может быть осуществлена на машиночитаемом носителе 1000 в качестве физических меток либо посредством намагничивания машиночитаемого носителя 1000. Тем не менее, также возможен любой другой подходящий вариант осуществления. Кроме того, следует принимать во внимание, что хотя машиночитаемый носитель 1000 показан здесь в качестве оптического диска, машиночитаемый носитель 1000 может представлять собой любой подходящий машиночитаемый носитель, такой как жесткий диск, полупроводниковое запоминающее устройство, флэш-память и т.д., и может быть незаписываемым или записываемым. Компьютерная программа 1020 содержит инструкции для инструктирования процессорной системе осуществлять упомянутый способ совместного использования матрицы.
Фиг. 5b показывает схематичное представление процессорной системы 1140 согласно варианту осуществления. Процессорная система содержит одну или более интегральных схем 1110. Архитектура одной или более интегральных схем 1110 схематично показана на фиг. 5b. Схема 1110 содержит модуль 1120 обработки, например, CPU, для выполнения компьютерных программных компонентов, чтобы осуществлять способ согласно варианту осуществления и/или реализовывать его модули или блоки. Схема 1110 содержит запоминающее устройство 1122 для сохранения программного кода, данных и т.д. Часть запоминающего устройства 1122 может быть неперезаписываемой. Схема 1110 может содержать элемент 1126 связи, например, антенну, разъемы либо и то, и другое и т.п. Схема 1110 может содержать специализированную интегральную схему 1124 для выполнения части или всей обработки, заданной в способе. Процессор 1120, запоминающее устройство 1122, специализированная IC 1124 и элемент 1126 связи могут соединяться между собой через межкомпонентное соединение 1130, скажем, шину. Процессорная система 1110 может быть выполнена с возможностью контактной и/или бесконтактной связи, с использованием антенны и/или разъемов, соответственно.
Например, в варианте осуществления, первый сетевой узел может содержать процессорную схему и запоминающую схему, причем процессор выполнен с возможностью выполнять программное обеспечение, сохраненное в запоминающей схеме. Например, процессорная схема может представлять собой процессор Intel Core i7, ARM Cortex-R8 и т.д. В варианте осуществления, процессорная схема может представлять собой ARM Cortex M0. Запоминающая схема может представлять собой ROM-схему или энергонезависимое запоминающее устройство, например, флэш-память. Запоминающая схема может представлять собой энергозависимое запоминающее устройство, например, запоминающее SRAM-устройство. Во втором случае, устройство может содержать энергонезависимый программный интерфейс, например, жесткий диск, сетевой интерфейс и т.д., выполненный с возможностью предоставления программного обеспечения.
Следует отметить, что вышеуказанные варианты осуществления иллюстрируют, а не ограничивают изобретение, и что специалисты в данной области техники должны иметь возможность разрабатывать множество альтернативных вариантов осуществления.
В формуле изобретения, все ссылочные позиции, помещенные в круглые скобки, не должны рассматриваться как ограничивающие формулу изобретения. Использование глагола "содержит" и его спряжений не исключает наличия элементов или этапов, отличных от элементов или этапов, изложенных в формуле изобретения. Элемент в единственном числе не исключает наличия множества таких элементов. Изобретение может реализовываться посредством аппаратных средств, содержащих несколько отдельных элементов, и посредством надлежащим образом запрограммированного компьютера. В пункте формулы изобретения на устройство, перечисляющем несколько средств, некоторые из этих средств могут быть осуществлены посредством одного и того же элемента аппаратных средств. Простой факт того, что определенные меры упомянуты в разных зависимых пунктах формулы изобретения, не означает того, что комбинация этих мер не может использоваться с выгодой.
В формуле изобретения, ссылки в круглых скобках означают ссылочные позиции на чертежах примерных вариантов осуществления либо формулы вариантов осуществления, за счет этого повышая понятность формулы изобретения. Эти ссылки не должны истолковываться как ограничивающие формулу изобретения.
Список ссылочных позиций на фиг. 1-3b
100 - криптографическая система
110 - первый электронный сетевой узел
111 - второй электронный сетевой узел
120 - интерфейс связи
130 - диспетчер базовых данных
140 - модуль формирования матриц
150 - криптографический модуль
152 - модуль матричного умножения
160 - генератор псевдослучайных чисел
170 - запоминающее устройство базовых данных
210 - последовательность значений
221, 222 - значение
230 - совместно используемая матрица
231, 232 - запись в совместно используемой матрице
233 - данные выбора
241, 242 - первая группа
251, 252 - вторая группа
260 - базовая матрица
261-263 - строка
300 - криптографическая система
310 - сервер
320 - клиент
320.1-320.3
331-333 - передача

Claims (50)

1. Первый электронный сетевой узел (110), сконфигурированный для криптографического протокола на основе совместно используемой матрицы и закрытого вектора, причем совместно используемая матрица имеет множественные записи, причем каждая запись имеет значение, причем первый сетевой узел содержит:
- интерфейс (120) связи, выполненный с возможностью цифровой связи со вторым сетевым узлом (111),
- кэш-память, выполненную с возможностью кэшировать последовательность значений (A1, A2), при этом множественным записям совместно используемой матрицы назначается значение из последовательности значений, как кэшировано в кэш–памяти,
- процессорную схему, выполненную с возможностью:
- получать последовательность значений, из которых выбираются значения для совместно используемой матрицы, причем последовательность значений совместно используется со вторым сетевым узлом, и кэшировать последовательность значений для использования с множеством соединений,
- принимать данные выбора из второго сетевого узла или определять данные выбора и отправлять данные выбора во второй сетевой узел, причем данные выбора указывают множественные позиции в последовательности значений и назначают множественным записям совместно используемой матрицы значение из кэшированной последовательности значений, указываемых посредством данных выбора,
- формировать совместно используемую матрицу (A) в соответствии с данными выбора и последовательностью значений с заданием упомянутых множественных записей совместно используемой матрицы, равными множественным значениям, назначаемым посредством данных выбора,
- применять совместно используемую матрицу в криптографическом протоколе, содержащем вычисление матричного произведения между совместно используемой матрицей и закрытым вектором.
2. Первый сетевой узел (110) по п. 1, в котором процессорная схема выполнена с возможностью выбирать предварительно определенную первую группу значений в последовательности значений для соответствующей предварительно определенной второй группы записей совместно используемой матрицы, причем данные выбора указывают множественные позиции в первой группе для записей во второй группе таким образом, что каждой записи во второй группе назначается значение из первой группы, причем вторая группа имеет меньше записей, чем совместно используемая матрица.
3. Первый сетевой узел (110) по п. 2, в котором часть данных выбора, которые указывают множественные значения в первой группе для записей во второй группе, имеет размер в битах меньше 1/100 от полного размера в битах значений во второй группе.
4. Первый сетевой узел (110) по любому из предшествующих пунктов, в котором данные выбора содержат множественные параметры, процессорная схема выполнена с возможностью вычислять из параметра в данных выбора по меньшей мере одну запись в последовательности значений и по меньшей мере одну запись в совместно используемой матрице, причем упомянутое вычисление является линейным в параметре и назначает значение упомянутой вычисленной записи в последовательности значений упомянутой записи в совместно используемой матрице.
5. Первый сетевой узел (110) по п. 2, 3 или 4, в котором последовательность значений образует базовую матрицу, причем данные выбора указывают циклическую перестановку по меньшей мере одной строки и/или столбца базовой матрицы посредством указания числа записей, на которое поворачивается упомянутая строка и/или столбец.
6. Первый сетевой узел (110) по любому из предшествующих пунктов, в котором данные выбора содержат случайное начальное число, причем процессорная схема выполнена с возможностью инициализировать детерминированный генератор псевдослучайных чисел случайным начальным числом и получать из вывода детерминированного генератора псевдослучайных чисел индикатор множественных значений в последовательности значений и/или множественных записей совместно используемой матрицы.
7. Первый сетевой узел (110) по любому из предшествующих пунктов, в котором данные выбора содержат перестановку, причем процессорная схема выполнена с возможностью переставлять последовательность значений согласно перестановке и назначать перестановочную последовательность значений записям совместно используемой матрицы согласно назначению по умолчанию.
8. Первый сетевой узел (110) по любому из предшествующих пунктов, в котором процессорная схема выполнена с возможностью вычислять матричное произведение между совместно используемой матрицей (A) и закрытым вектором или матрицей (r; Sl) первого сетевого узла в качестве части криптографического протокола.
9. Первый сетевой узел (110) по п. 8, в котором первый и второй сетевые узлы сконфигурированы для протокола обмена ключами и процессорная схема выполнена с возможностью:
- формировать матрицу (Sl) закрытых ключей,
- формировать матрицу (Pl) открытых ключей, причем упомянутое формирование содержит по меньшей мере:
- вычисление матричного произведения между совместно используемой матрицей (A) и матрицей (Sl) закрытых ключей для получения матричного произведения,
- отправку матрицы открытых ключей первого сетевого узла во второй сетевой узел,
- прием матрицы (PR) открытых ключей второго сетевого узла,
- вычисление необработанного ключа в качестве матричного произведения между принимаемым открытым ключом второго узла и матрицей закрытых ключей первого сетевого узла, при этом первый сетевой узел дополнительно выполнен с возможностью вычислять совместно используемый ключ из по меньшей мере необработанного ключа.
10. Первый сетевой узел (110) по п. 8, в котором первый и второй сетевые узлы сконфигурированы для протокола шифрования с открытым ключом, процессорная схема выполнена с возможностью:
- получать открытый ключ второго сетевого узла, причем упомянутый открытый ключ содержит данные выбора и дополнительную матрицу (B) открытых ключей, причем дополнительная матрица открытых ключей заранее получается из совместно используемой матрицы и матрицы (S) закрытых ключей,
- выбирать случайный вектор r и вычислять два матричных произведения между случайным вектором (r) и совместно используемой матрицей и между случайным вектором (r) и дополнительной матрицей открытых ключей,
- вычислять зашифрованное сообщение из сообщения простым текстом посредством добавления вектора сокрытия данных, вычисленного из первого произведения из двух матричных произведений, причем зашифрованное сообщение дополнительно включает в себя информацию дешифрования, вычисленную из второго произведения из двух матричных произведений.
11. Первый сетевой узел (110) по любому из предшествующих пунктов, содержащий:
- кэш–память, выполненную с возможностью кэшировать последовательность значений (A1, A2) вместе с соответствующим идентификатором последовательности, который идентифицирует упомянутую кэшированную последовательность значений, при этом
- процессорная схема выполнена с возможностью:
- принимать идентификатор последовательности из второго сетевого узла и проверять, кэшируется или нет последовательность значений, соответствующих принимаемому идентификатору последовательности, в кэш–памяти, и если такая последовательность значений не кэшируется в матрице кэша, получать последовательность значений из второго сетевого узла и/или отправлять идентификатор последовательности во второй сетевой узел, соответствующий последовательности значений, кэшированных в кэш–памяти,
- использовать последовательность значений, идентифицированных посредством идентификатора последовательности, чтобы формировать совместно используемую матрицу.
12. Первый сетевой узел (110) по п. 11, в котором идентификатор последовательности содержит дополнительное случайное начальное число, получение или совместное использование последовательности значений содержат инициализацию детерминированного генератора псевдослучайных чисел дополнительным случайным начальным числом и получение последовательности значений из вывода инициализированного детерминированного генератора псевдослучайных чисел.
13. Первый сетевой узел по любому из предшествующих пунктов, в котором последовательность значений получается от доверенной третьей стороны.
14. Первый сетевой узел по любому из предшествующих пунктов, в котором число разных совместно используемых матриц, получаемых из одиночной последовательности значений с использованием разных данных выбора, составляет по меньшей мере 264.
15. Первый сетевой узел по любому из предшествующих пунктов, выполненный с возможностью принимать зашифрованные сетевые соединения от множественных вторых сетевых узлов, причем первый сетевой узел выполнен с возможностью принимать запрос на установление соединения от второго узла посредством отправки ответного сообщения, причем упомянутое ответное сообщение содержит случайное начальное число, причем упомянутое случайное начальное число указывает последовательность значений, сохраненных в кэш-памяти первого сетевого узла, причем второй сетевой узел отправляет данные выбора в первый сетевой узел.
16. Электронная сетевая система совместного использования матрицы в криптографическом протоколе, содержащая первый сетевой узел (110) по любому из предшествующих пунктов и второй сетевой узел, при этом второй сетевой узел сконфигурирован для криптографического протокола на основе совместно используемой матрицы и закрытого вектора, причем второй сетевой узел содержит:
- интерфейс (120) связи, выполненный с возможностью цифровой связи с первым сетевым узлом,
кэш–память, выполненную с возможностью кэшировать последовательность значений (A1, A2), при этом множественным записям совместно используемой матрицы назначается значение из последовательности значений, как кэшировано в кэш-памяти,
- процессорную схему, выполненную с возможностью:
- получать ту же последовательность значений, что и первый узел, причем значения для совместно используемой матрицы выбираются из последовательности, и кэшировать последовательность значений для использования с множественными соединениями,
- определять данные выбора и отправлять данные выбора в первый сетевой узел или принимать данные выбора из первого сетевого узла, причем данные выбора указывают множественные позиции в последовательности значений и назначают множественным записям совместно используемой матрицы значение из последовательности значений, указанных данными выбора,
- формировать ту же совместно используемую матрицу (A), что и первый сетевой узел, в соответствии с данными выбора и последовательностью значений с заданием упомянутых множественных записей совместно используемой матрицы, равными множественным значениям, назначенным посредством данных выбора,
- применять совместно используемую матрицу в криптографическом протоколе, содержащем вычисление матричного произведения между совместно используемой матрицей и закрытым вектором.
17. Электронный способ совместного использования матрицы в криптографическом протоколе для первого электронного сетевого узла на основе совместно используемой матрицы и закрытого вектора, причем совместно используемая матрица имеет множественные записи, причем каждая запись имеет значение, при этом упомянутый способ содержит этапы, на которых:
- устанавливают (410) цифровую связь между первым сетевым узлом и вторым сетевым узлом (111),
- получают (420) последовательность значений, из которых выбирают значения для совместно используемой матрицы, причем последовательность значений совместно используют со вторым сетевым узлом, и кэшируют последовательность значений для использования с множественными соединениями,
- принимают (430) данные выбора из второго сетевого узла или определяют данные выбора и отправляют данные выбора во второй сетевой узел, причем данные выбора указывают множественные позиции в последовательности значений и назначают множественным записям совместно используемой матрицы значение из последовательности значений, указываемых посредством данных выбора,
- формируют (440) совместно используемую матрицу (A) в соответствии с данными выбора с заданием упомянутых множественных записей совместно используемой матрицы, равными множественным значениям, назначенным посредством данных выбора, и
- применяют (450) совместно используемую матрицу в криптографическом протоколе, содержащем вычисление матричного произведения между совместно используемой матрицей и закрытым вектором.
18. Машиночитаемый носитель (1000), содержащий временные или невременные данные (1020), представляющие инструкции, чтобы инструктировать процессорной системе осуществлять способ по п. 17.
RU2019131369A 2017-03-06 2018-02-27 Устройство и способ совместного использования матрицы для использования в криптографическом протоколе RU2765238C2 (ru)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP17159296.7A EP3373505A1 (en) 2017-03-06 2017-03-06 Device and method for sharing a matrix for use in a cryptographic protocol
EP17159296.7 2017-03-06
PCT/EP2018/054731 WO2018162272A1 (en) 2017-03-06 2018-02-27 Device and method sharing a matrix for use in a cryptographic protocol

Publications (3)

Publication Number Publication Date
RU2019131369A RU2019131369A (ru) 2021-04-07
RU2019131369A3 RU2019131369A3 (ru) 2021-08-06
RU2765238C2 true RU2765238C2 (ru) 2022-01-27

Family

ID=58231495

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2019131369A RU2765238C2 (ru) 2017-03-06 2018-02-27 Устройство и способ совместного использования матрицы для использования в криптографическом протоколе

Country Status (6)

Country Link
US (1) US11212098B2 (ru)
EP (2) EP3373505A1 (ru)
JP (1) JP7159183B2 (ru)
CN (1) CN110603782B (ru)
RU (1) RU2765238C2 (ru)
WO (1) WO2018162272A1 (ru)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11337651B2 (en) 2017-02-03 2022-05-24 Bruin Biometrics, Llc Measurement of edema
EP3698515B1 (en) 2017-10-17 2021-02-17 Koninklijke Philips N.V. Configurable device for lattice-based cryptography
EP3474484A1 (en) 2017-10-17 2019-04-24 Koninklijke Philips N.V. Cryptographic device with updatable shared matrix
CN109889321B (zh) * 2019-02-26 2020-09-18 清华大学 一种用于格公钥密码的错误采样方法
EP3742663B1 (en) * 2019-05-20 2024-02-07 Nokia Technologies Oy Shared secret generation
US11477016B1 (en) 2019-09-10 2022-10-18 Wells Fargo Bank, N.A. Systems and methods for post-quantum cryptography optimization
US11343270B1 (en) 2019-09-10 2022-05-24 Wells Fargo Bank, N.A. Systems and methods for post-quantum cryptography optimization
US11240014B1 (en) 2019-09-10 2022-02-01 Wells Fargo Bank, N.A. Systems and methods for post-quantum cryptography optimization
US11626983B1 (en) 2019-09-10 2023-04-11 Wells Fargo Bank, N.A. Systems and methods for post-quantum cryptography optimization
US11943348B1 (en) * 2019-12-11 2024-03-26 Q-Net Security, Inc. Method and system for secure cryptographic exchanges using a five-pass protocol
AU2020202883B1 (en) * 2020-01-10 2021-01-07 Mesinja Pty Ltd Systems and computer-implemented methods for generating pseudo random numbers
CN111464289B (zh) * 2020-01-13 2021-07-27 华中科技大学 一种后量子密钥交换协议的实现方法、设备及系统
EP4095828A4 (en) * 2020-01-20 2023-10-18 Nippon Telegraph And Telephone Corporation SAFE EXPONENTIAL FUNCTION CALCULATION SYSTEM, SAFE EXPONENTIAL FUNCTION CALCULATION METHOD, SAFE CALCULATION DEVICE AND PROGRAM
US11449799B1 (en) 2020-01-30 2022-09-20 Wells Fargo Bank, N.A. Systems and methods for post-quantum cryptography optimization
US11322050B1 (en) 2020-01-30 2022-05-03 Wells Fargo Bank, N.A. Systems and methods for post-quantum cryptography optimization
US11533175B1 (en) 2020-01-30 2022-12-20 Wells Fargo Bank, N.A. Systems and methods for post-quantum cryptography on a smartcard
US11838410B1 (en) 2020-01-30 2023-12-05 Wells Fargo Bank, N.A. Systems and methods for post-quantum cryptography optimization
DE102020112102B3 (de) 2020-05-05 2021-05-20 Infineon Technologies Ag Verfahren und Vorrichtungen zur Erzeugung eines symmetrischen Sitzungsschlüssels für die verschlüsselte Kommunikation
WO2021258109A1 (en) * 2020-06-17 2021-12-23 The Regents Of The University Of California Extra-compact key with reusable common key for encryption
US11294929B1 (en) 2021-06-09 2022-04-05 Aeec Smart water data analytics
CN114095170B (zh) * 2022-01-20 2022-05-27 北京信安世纪科技股份有限公司 数据处理方法、装置、系统及计算机可读存储介质
US12101401B2 (en) * 2022-07-28 2024-09-24 Brax Kinsey Digital forge systems and methods
CN115134475B (zh) * 2022-08-31 2022-11-08 智联信通科技股份有限公司 一种衡器鉴重智能管理系统
CN118400102A (zh) * 2024-04-16 2024-07-26 中国人民解放军国防科技大学 动态无人机群身份认证密钥协商方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040062390A1 (en) * 2002-09-30 2004-04-01 Micron Technology, Inc. Public key cryptography using matrices
US20040258240A1 (en) * 2003-05-02 2004-12-23 Singh Mukesh K. Cryptosystems
US20080069345A1 (en) * 2006-10-11 2008-03-20 Frank Rubin Device, System and Method for Cryptographic Key Exchange
RU2433560C2 (ru) * 2007-03-27 2011-11-10 Квэлкомм Инкорпорейтед Проверка синхронизации для аутентификации устройства
US20120166809A1 (en) * 2010-12-28 2012-06-28 Authernative, Inc. System and method for cryptographic key exchange using matrices
EA019411B1 (ru) * 2009-07-03 2014-03-31 Келисек Аб Способ формирования шифровального/дешифровального ключа

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001211153A (ja) * 2000-01-25 2001-08-03 Murata Mach Ltd 秘密鍵生成方法
JP2002217884A (ja) 2001-01-19 2002-08-02 Murata Mach Ltd 暗号通信方法と暗号化装置、復号装置及び記録媒体
US7073067B2 (en) * 2003-05-07 2006-07-04 Authernative, Inc. Authentication system and method based upon random partial digitized path recognition
WO2006092960A1 (ja) * 2005-02-28 2006-09-08 National University Of Corporation Hiroshima University 認証装置
US8098815B2 (en) * 2006-10-11 2012-01-17 Frank Rubin Device, system and method for cryptographic key exchange
KR100966071B1 (ko) * 2007-12-18 2010-06-28 한국전자통신연구원 겹선형 사상을 이용한 다자간 키 공유 방법 및 그 시스템
KR101595994B1 (ko) 2008-09-17 2016-02-22 코닌클리케 필립스 엔.브이. 네트워크에서 통신하기 위한 방법, 통신 디바이스 및 그를 위한 시스템
JP5143049B2 (ja) * 2009-02-13 2013-02-13 三菱電機株式会社 符号化通信方法および符号化通信装置
EP2348725A1 (en) 2010-01-26 2011-07-27 Irdeto Access B.V. Computational efficiently obtaining a control word in a receiver using transformations
CN102164367B (zh) * 2011-04-14 2014-04-16 北京理工大学 一种用于无线传感器网络的密钥管理方法
US9230103B2 (en) * 2011-10-03 2016-01-05 Zoosk, Inc. System and method for registering users for communicating information on a web site
CN102412971B (zh) * 2011-11-30 2015-04-29 西安西电捷通无线网络通信股份有限公司 基于sm2密钥交换协议的密钥协商方法及装置
TWI502947B (zh) * 2012-04-12 2015-10-01 Jintai Ding New cryptographic system and method based on mismatching
US9215072B1 (en) * 2012-10-23 2015-12-15 Authernative, Inc. Back-end matching method supporting front-end knowledge-based probabilistic authentication systems for enhanced credential security
JP6169028B2 (ja) 2014-03-18 2017-07-26 株式会社東芝 通信装置、通信システムおよび通信方法
US9948460B2 (en) * 2015-08-28 2018-04-17 City University Of Hong Kong Multivariate cryptography based on clipped hopfield neural network

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040062390A1 (en) * 2002-09-30 2004-04-01 Micron Technology, Inc. Public key cryptography using matrices
US20040258240A1 (en) * 2003-05-02 2004-12-23 Singh Mukesh K. Cryptosystems
US20080069345A1 (en) * 2006-10-11 2008-03-20 Frank Rubin Device, System and Method for Cryptographic Key Exchange
RU2433560C2 (ru) * 2007-03-27 2011-11-10 Квэлкомм Инкорпорейтед Проверка синхронизации для аутентификации устройства
EA019411B1 (ru) * 2009-07-03 2014-03-31 Келисек Аб Способ формирования шифровального/дешифровального ключа
US20120166809A1 (en) * 2010-12-28 2012-06-28 Authernative, Inc. System and method for cryptographic key exchange using matrices

Also Published As

Publication number Publication date
RU2019131369A3 (ru) 2021-08-06
RU2019131369A (ru) 2021-04-07
CN110603782A (zh) 2019-12-20
US20190386828A1 (en) 2019-12-19
EP3373505A1 (en) 2018-09-12
JP2020511832A (ja) 2020-04-16
CN110603782B (zh) 2022-12-27
EP3593485A1 (en) 2020-01-15
JP7159183B2 (ja) 2022-10-24
US11212098B2 (en) 2021-12-28
EP3593485B1 (en) 2021-04-07
WO2018162272A1 (en) 2018-09-13

Similar Documents

Publication Publication Date Title
RU2765238C2 (ru) Устройство и способ совместного использования матрицы для использования в криптографическом протоколе
US11991275B2 (en) System and method for quantum-safe authentication, encryption and decryption of information
CN111492616B (zh) 用于基于晶格的密码学的可配置设备
US11212099B2 (en) Cryptographic device with updatable shared matrix
US11824999B2 (en) Chosen-plaintext secure cryptosystem and authentication
US20030076959A1 (en) Method and system for secure key exchange
CN108833117B (zh) 一种私钥存储和读取方法、装置及硬件设备
Sarkar et al. Role of cryptography in network security
JP7229778B2 (ja) 鍵管理システム及び方法
CN117155615A (zh) 数据加密传输方法、系统、电子设备及存储介质
WO2015008623A1 (ja) 鍵保管装置、鍵保管方法、及びそのプログラム
Moataz et al. Chf-oram: a constant communication oram without homomorphic encryption
Román et al. Post-quantum Secure Communication with IoT Devices Using Kyber and SRAM Behavioral and Physical Unclonable Functions
CN110249334B (zh) 设备间高效安全通信的系统和方法
CN112187462B (zh) 数据处理方法、装置、电子设备及计算机可读介质
CN116074090A (zh) 一种基于oprf的多用户顺序揭示加密方法及系统
CN113923029A (zh) 基于ecc混合算法的物联网信息加密方法