RU2755672C1 - Method for secure storage and updating data in distributed register using quantum communication networks - Google Patents

Method for secure storage and updating data in distributed register using quantum communication networks Download PDF

Info

Publication number
RU2755672C1
RU2755672C1 RU2021108148A RU2021108148A RU2755672C1 RU 2755672 C1 RU2755672 C1 RU 2755672C1 RU 2021108148 A RU2021108148 A RU 2021108148A RU 2021108148 A RU2021108148 A RU 2021108148A RU 2755672 C1 RU2755672 C1 RU 2755672C1
Authority
RU
Russia
Prior art keywords
transaction
nodes
node
network
transactions
Prior art date
Application number
RU2021108148A
Other languages
Russian (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 Общество с ограниченной ответственностью «Международный центр квантовой оптики и квантовых вычислений» (ООО «МЦКТ»)
Priority to RU2021108148A priority Critical patent/RU2755672C1/en
Application granted granted Critical
Publication of RU2755672C1 publication Critical patent/RU2755672C1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems

Abstract

FIELD: computing.
SUBSTANCE: invention relates to the field of computing for data transmission in distributed systems. The effect is achieved through a method for secure distributed storage and updating of data in a distributed ledger based on a quantum communication network, in which all N network nodes, where N>2 are pairwise connected to each other by quantum key distribution devices and store a copy of the distributed ledger, containing the stages at which, using quantum cryptography devices, pairs of symmetric keys between all network nodes are created, the current allowable number of compromised nodes T is recorded in the distributed ledger, a transaction is formed by at least one of the network nodes, and the transaction is broadcast by the node that generated the transaction the rest of the network nodes, at least using the broadcast algorithm on pairwise authenticated messages, or using the broadcast algorithm on pseudosignatures, update their own copies of the registry by the network nodes that have accepted the transaction.
EFFECT: increasing the security of storing and updating data in a distributed ledger.
8 cl, 6 dwg

Description

ОБЛАСТЬ ТЕХНИКИFIELD OF TECHNOLOGY

[0001] Настоящее техническое решение, в общем, относится к области технологий передачи данных в распределенных системах, а более конкретно к безопасному хранению и обновлению данных распределенных реестров в сетях квантовой коммуникации (квантовой криптографии).[0001] The present technical solution generally relates to the field of data transmission technologies in distributed systems, and more specifically to the secure storage and updating of distributed ledger data in quantum communication networks (quantum cryptography).

УРОВЕНЬ ТЕХНИКИLEVEL OF TECHNOLOGY

[0002] В настоящее время большую популярность набирают технологии распределенных реестров, такие, как блокчейн (blockchain, или цепочка блоков). Технология распределенного реестра (Distributed Ledger Technology, или DLT) - это электронная система баз данных, распределенная между несколькими сетевыми узлами или устройствами. Указанная технология позволяет записывать и хранить информацию в сети, которая одновременно является распределенной и децентрализованной. Важной особенностью DLT является отсутствие центрального органа управления, совместное использование и синхронизация информации согласно алгоритму консенсуса и распределение этой базы данных в разных географических точках.[0002] Currently, technologies of distributed ledgers, such as blockchain (blockchain, or blockchain), are gaining popularity. Distributed Ledger Technology (DLT) is an electronic database system distributed across multiple network nodes or devices. This technology allows you to record and store information on a network that is both distributed and decentralized. An important feature of DLT is the absence of a central governing body, the sharing and synchronization of information according to the consensus algorithm, and the distribution of this database in different geographic locations.

[0003] DLT имеет ряд преимуществ, в числе которых высокий уровень прозрачности, эффективность, автоматизация (за счет контроля сети самими пользователями), отсутствие необходимости в посредниках, третьих лицах или центральном контролирующем органе, высокий уровень безопасности благодаря инновационной системе хранения информации в распределенной по всей сети базе данных. Именно за счет описанных преимуществ технологии DLT стали активно внедряться в такие сферы, как финансы, голосование, здравоохранение, цепочки поставок, сельское хозяйство и т.д.[0003] DLT has a number of advantages, including a high level of transparency, efficiency, automation (due to the control of the network by the users themselves), no need for intermediaries, third parties or a central regulatory authority, a high level of security due to an innovative storage system for information in distributed the entire network database. It is due to the described advantages that DLT technologies began to be actively implemented in such areas as finance, voting, healthcare, supply chains, agriculture, etc.

[0004] В основе технологий DLT лежит использование криптографии с открытым ключом, которая построена на так называемых односторонних функциях, для которых по известному аргументу достаточно просто найти значение функции, но обратная операция крайне сложна. На основе таких функций обеспечивается целостность базы данных у всех независимых пользователей, например, используются криптографические хэш-функции, электронно цифровые подписи и прочие математические приемы, затрудняющие подделку и взлом этого реестра.[0004] DLT technologies are based on the use of public key cryptography, which is based on the so-called one-way functions, for which it is quite easy to find the function value from a known argument, but the reverse operation is extremely difficult. Based on such functions, the integrity of the database is ensured for all independent users, for example, cryptographic hash functions, electronic digital signatures and other mathematical techniques are used to make it difficult to forge and break this registry.

[0005] Кроме того, другим основным компонентом распределенных реестров, предназначенным для обеспечения безопасного обновления данных, является алгоритм достижения консенсуса. Алгоритм достижения консенсуса - это процесс, который используется для достижения соглашения в отношении одного значения данных среди распределенных участников сети или систем. Узлы сети достигают согласия в отношении общего состояния реестра за счет использования специального механизма верификации предлагаемых обновлений (задействуются механизмы или алгоритмы, которые не позволяют приводить к возникновению конфликтов в реестре).[0005] In addition, the consensus algorithm is another major component of distributed ledgers for providing secure data updates. A consensus algorithm is a process that is used to reach agreement on a single data value among distributed participants in a network or systems. The nodes of the network reach agreement on the general state of the registry through the use of a special verification mechanism for the proposed updates (mechanisms or algorithms are used that do not allow leading to conflicts in the registry).

[0006] Однако с появлением квантовых компьютеров алгоритмы достижения консенсуса и алгоритмы электронной цифровой подписи могут оказаться под угрозой, поскольку такие компьютеры позволяют решать определенные математические задачи (на которых построена классическая криптография в том числе), решение которых ранее с помощью классических компьютеров не представлялось возможным.[0006] However, with the advent of quantum computers, consensus-building algorithms and digital signature algorithms may be under threat, since such computers allow solving certain mathematical problems (on which classical cryptography is built, among other things), the solution of which was previously not possible with classical computers. ...

[0007] Поэтому развитие технологий квантовой защиты информации и создание криптостойких к атакам с помощью квантового компьютера алгоритмов передачи данных и достижения консенсуса в распределенных реестрах являются актуальными и важными проблемами.[0007] Therefore, the development of technologies for quantum information security and the creation of cryptographically resistant to attacks using a quantum computer algorithms for data transmission and consensus achievement in distributed ledgers are relevant and important problems.

[0008] Так, из уровня техники известна технология обновления распределенного реестра в сети квантовой криптографии, описанная в заявке на патент Китая №CN 110602077А (CHANG YAN et al.), опубл. 20.12.2020. Указанная технология описывает возможность применения сети квантовой коммуникации для реализации анонимного голосования при помощи блокчейна и применение алгоритма достижения консенсуса для подтверждения честности результатов и сбора статистики.[0008] So, the prior art known technology for updating a distributed ledger in a quantum cryptography network, described in the Chinese patent application No. CN 110602077A (CHANG YAN et al.), Publ. 12/20/2020. This technology describes the possibility of using a quantum communication network to implement anonymous voting using the blockchain and the use of a consensus algorithm to confirm the integrity of the results and collect statistics.

[0009] К недостаткам указанного решения можно отнести его узконаправленность (применяется только в частном случае реализации системы распределенных реестров, а именно, только в технологии blockchain), что делает невозможным его использование в других системах распределенных реестров. Кроме того, алгоритм достижения консенсуса в указанном решении применим только в том случае, когда количество потенциально скомпрометированных узлов во всей сети меньше одной трети.[0009] The disadvantages of this solution can be attributed to its narrow focus (it is used only in the special case of the implementation of a distributed ledger system, namely, only in blockchain technology), which makes it impossible to use it in other distributed ledger systems. In addition, the consensus algorithm in this solution is applicable only when the number of potentially compromised nodes in the entire network is less than one third.

[0010] Общим недостатком существующих решений в данной области является отсутствие способа обновления и безопасного хранения данных в распределенном реестре, стойкого к атакам с помощью квантового компьютера. Кроме того, такой способ должен обеспечивать безопасность целостности данных при любом количестве скомпрометированных узлов.[0010] A common drawback of existing solutions in this area is the lack of a method for updating and securely storing data in a distributed ledger that is resistant to attacks using a quantum computer. In addition, such a method should ensure the security of data integrity for any number of compromised nodes.

СУЩНОСТЬ ТЕХНИЧЕСКОГО РЕШЕНИЯESSENCE OF THE TECHNICAL SOLUTION

[0011] Данное техническое решение направлено на устранение недостатков, присущих существующим решениям, известным из уровня техники.[0011] This technical solution is aimed at eliminating the disadvantages inherent in existing solutions known from the prior art.

[0012] Решаемой технической проблемой, присущей решениям из уровня техники, в данном техническом решении является создание нового способа безопасного хранения и обновления данных в распределенном реестре на основании сети квантовой коммуникации (квантовой криптографии).[0012] The technical problem inherent in the prior art solutions to be solved in this technical solution is to create a new method for securely storing and updating data in a distributed ledger based on a quantum communication network (quantum cryptography).

[0013] Основным техническим результатом, проявляющимся при решении вышеуказанной проблемы, является повышение защищенности хранения и обновления данных в распределенном реестре.[0013] The main technical result, which appears when solving the above problem, is to increase the security of storing and updating data in a distributed ledger.

[0014] Еще одним техническим результатом, проявляющимся при решении вышеуказанной проблемы, является возможность обеспечения целостности данных распределенного реестра при любом количестве скомпрометированных узлов.[0014] Another technical result manifested when solving the above problem is the ability to ensure the integrity of the distributed ledger data for any number of compromised nodes.

[0015] Заявленные технические результаты достигаются за счет реализации способа безопасного распределенного хранения и обновления данных в распределенном реестре на основании сети квантовой коммуникации, в которой все N узлов сети, где N>2, попарно связаны друг с другом устройствами квантового распределения ключей и хранят копию распределенного реестра, содержащего этапы, на которых:[0015] The claimed technical results are achieved by implementing a method for secure distributed storage and updating of data in a distributed ledger based on a quantum communication network, in which all N network nodes, where N> 2, are pairwise connected to each other by quantum key distribution devices and store a copy distributed ledger containing the stages at which:

a) создают, с помощью устройств квантовой криптографии, пары симметричных ключей между всеми узлами сети;a) create, using quantum cryptography devices, a pair of symmetric keys between all nodes of the network;

b) фиксируют текущее допустимое количество скомпрометированных узлов Т в распределенном реестре;b) record the current admissible number of compromised nodes T in the distributed ledger;

c) формируют, по меньшей мере одним из узлов сети, транзакцию;c) form, at least one of the network nodes, a transaction;

d) транслируют узлом, сформировавшим транзакцию, указанную транзакцию остальным узлам сети, по меньшей мере с помощью одного из следующих алгоритмов:d) broadcast by the node that generated the transaction, the specified transaction to the rest of the network nodes, using at least one of the following algorithms:

• с помощью алгоритма широковещания на попарно аутентифицированных сообщениях, в случае, если текущее допустимое количество скомпрометированных узлов Т меньше порогового значения Tcrit, или• using the broadcasting algorithm on pairwise authenticated messages, if the current admissible number of compromised nodes T is less than the threshold value T crit , or

• с помощью алгоритма широковещания на псевдоподписях, в случае, если текущее допустимое количество скомпрометированных узлов больше Т или равно допустимому пороговому значению Tcrit; • using the broadcasting algorithm on pseudo-signatures , if the current admissible number of compromised nodes is greater than T or equal to the admissible threshold value T crit;

е) обновляют собственные копии реестра узлами сети, принявшими транзакцию на этапе d).f) update their own copies of the ledger by the hosts that accepted the transaction in step d).

[0016] В одном из частных вариантов реализации пороговым значением допустимого количества скомпрометированных узлов Tcrit является количество узлов, равное одной трети от общего количества узлов.[0016] In one particular implementation, the threshold value of the allowable number of compromised nodes T crit is the number of nodes equal to one third of the total number of nodes.

[0017] В другом частном варианте реализации алгоритмом широковещания на попарно аутентифицированных сообщениях является алгоритм широковещания, содержащий этапы, на которых:[0017] In another particular implementation, the broadcast algorithm for pairwise authenticated messages is a broadcast algorithm comprising the steps of:

• посылают сообщение с транзакцией узлом, сформировавшим транзакцию, остальным узлам сети вместе с соответствующей имитовставкой;• send a message with a transaction by the node that generated the transaction to the rest of the network nodes together with the corresponding imitation insert;

• инициализируют каждым получателем транзакции два пустых набора транзакций;• two empty sets of transactions are initialized by each recipient of a transaction;

• проверяют каждым из узлов-получателей имитовставку для полученной транзакции и, в случае успешности проверки, сохраняют копию полученной транзакции в первый набор транзакций, и пересылают сообщение с транзакцией остальным участникам сети, за исключением узла-отправителя, добавляя к ней маркер получения транзакции, а также собственную имитовставку;• each of the receiving nodes checks the imitation insert for the received transaction and, if the verification is successful, save a copy of the received transaction to the first set of transactions, and forward the message with the transaction to the rest of the network participants, except for the sending node, adding a transaction receipt token to it, and also own imitation insert;

• при получении транзакции с одним или несколькими неповторяющимися маркерами и имитовставкой, проверяют имитовставку, и, в случае успешности проверки, выполняют сохранение транзакции вместе с полученными маркерами получения в первый набор транзакций, и осуществляют пересылку данной транзакции вместе с добавленным собственным маркером получения к имевшимся ранее маркерам и соответствующей имитовставкой всем узлам сети, кроме узла, сформировавшего данную транзакцию, и узлов сети, чьи маркеры содержались в полученном сообщении;• upon receipt of a transaction with one or more non-recurring tokens and an imitation insertion, the imitation insertion is checked, and, if the verification is successful, the transaction is saved together with the received receive tokens into the first set of transactions, and this transaction is sent along with the added own receive token to the existing ones. tokens and the corresponding imitation insertion to all nodes of the network, except for the node that generated this transaction, and the nodes of the network, whose tokens were contained in the received message;

• повторяют пересылку транзакций, описанную в предыдущем этапе, пока пересылаемые сообщения с транзакциями не будут содержать Т маркеров;• repeat the forwarding of transactions, described in the previous step, until the forwarded messages with transactions contain T tokens;

• переносят все транзакции с Т маркерами во второй набор транзакций;• transfer all transactions with T tokens to the second set of transactions;

• для каждой возможной последовательности маркеров ХK из К маркеров, где К последовательно принимает значения от Т-1 до 0, формируют транзакцию с последовательностью маркеров ХK во втором наборе транзакций как транзакцию, наиболее часто встречающуюся в подмножестве транзакций из транзакции с последовательностью маркеров ХK первого набора и транзакций с К+1 маркерами второго набора, в которых первые К маркеров совпадают с ХK;• for each possible sequence of tokens X K from K tokens, where K sequentially takes values from T-1 to 0, form a transaction with a sequence of tokens X K in the second set of transactions as a transaction that occurs most frequently in a subset of transactions from a transaction with a sequence of tokens X K of the first set and transactions with K + 1 tokens of the second set, in which the first K tokens coincide with X K ;

• принимают транзакцию из второго набора транзакций, не содержащую маркеров.• accept a tokenless transaction from the second set of transactions.

[0018] В другом частном варианте реализации имитовставка вычисляется на основе (почти-) строго универсального семейства функций 2-го порядка и пары симметричных ключей, распределенных между узлом-отправителем данного сообщения и соответствующим узлом-получателем.[0018] In another particular implementation, the impersonation is calculated based on a (almost-) strictly universal family of 2nd order functions and a pair of symmetric keys distributed between the sending node of the message and the corresponding receiving node.

[0019] В другом частном варианте реализации алгоритмом широковещания на псевдоподписях является алгоритм широковещания, содержащий этапы, на которых:[0019] In another particular implementation, the pseudo-signature broadcasting algorithm is a broadcasting algorithm comprising the steps of:

• генерируют узлом, сформировавшим транзакцию, по меньшей мере один секретный ключ псевдоподписи и набор соответствующих верифицирующих ключей для остальных узлов сети,• the node that generated the transaction generates at least one secret pseudo-signature key and a set of corresponding verification keys for the rest of the network nodes,

• генерируют остальными узлами сети по меньшей мере два секретных ключа псевдоподписи и набор соответствующих верифицирующих ключей по меньшей мере для всех остальных узлов сети, кроме узла, сформировавшего транзакцию;• generate by the rest of the network nodes at least two secret pseudo-signature keys and a set of corresponding verification keys for at least all other network nodes, except for the node that generated the transaction;

• генерируют остальными узлами сети пустой массив для новых транзакций; транслируют сформировавшим транзакцию узлом сообщение, содержащее транзакцию, подписанное псевдоподписью, сгенерированной с помощью секретного ключа указанного узла, остальным узлам сети;• generate an empty array for new transactions by the rest of the network nodes; a message containing a transaction signed with a pseudo-signature generated using the secret key of the specified node is broadcast by the node that generated the transaction to the rest of the network nodes;

• верифицируют каждым из узлов, получивших сообщение с транзакцией, псевдоподпись, и, в случае успешности проверки, добавляют транзакцию в свой массив новых транзакций;• each of the nodes that received the message with the transaction verify a pseudo-signature, and, if the verification is successful, add the transaction to their array of new transactions;

• подписывают каждым из узлов, получивших сообщение, проверенное на предыдущем шаге, указанное сообщение дополнительной псевдоподписью, созданной с помощью своего первого секретного ключа псевдоподписи;• each of the nodes that received the message verified in the previous step sign the specified message with an additional pseudosignature created using their first private pseudo-signature key;

• транслируют сообщение, подписанное на предыдущем шаге, с транзакцией остальным участникам сети;• broadcast the message signed at the previous step with the transaction to the rest of the network participants;

• если по прошествии времени, необходимого на последовательную пересылку сообщений количеству узлов сети Т+1, в наборе транзакций каждого узла все транзакции идентичны, то данная транзакция принимается этим узлом сети.• if after the time required for sequential transmission of messages to the number of network nodes T + 1, all transactions in the set of transactions of each node are identical, then this transaction is accepted by this network node.

[0020] В другом частном варианте реализации каждый узел, при получении сообщения с транзакцией и верифицированным набором псевдоподписей, проверяет, находится ли данная транзакция в его массиве новых транзакций, и, если полученная транзакция отсутствует в массиве, то указанный узел пересылает полученное сообщение с новой транзакцией всем остальным участникам сети, подписывая его своим вторым секретным ключом псевдоподписи, а также завершает обмен сообщениями и не принимает никакую транзакцию в рамках данного протокола широковещания.[0020] In another private implementation, each node, upon receipt of a message with a transaction and a verified set of pseudosignatures, checks whether this transaction is in its array of new transactions, and if the received transaction is not in the array, then the specified node forwards the received message with a new a transaction to all other network participants, signing it with their second secret pseudo-signature key, and also completes the exchange of messages and does not accept any transaction within this broadcast protocol.

[0021] В другом частном варианте реализации для генерации секретных ключей и набора верифицирующих ключей псевдоподписи используются попарные симметричные ключи, распределенные между всеми узлами сети.[0021] In another particular implementation, pairwise symmetric keys distributed among all network nodes are used to generate private keys and a set of pseudo-signature verification keys.

[0022] В другом частном варианте реализации попарные симметричные ключи формируются с помощью устройств квантовой криптографии.[0022] In another particular implementation, pairwise symmetric keys are generated using quantum cryptography devices.

ОПИСАНИЕ ЧЕРТЕЖЕЙDESCRIPTION OF DRAWINGS

[0023] Признаки и преимущества настоящего изобретения станут очевидными из приводимого ниже подробного описания изобретения и прилагаемых чертежей, на которых:[0023] Features and advantages of the present invention will become apparent from the following detailed description of the invention and the accompanying drawings, in which:

[0024] Фиг. 1 иллюстрирует общую схему построения распределенного реестра на основе сети квантовой коммуникации.[0024] FIG. 1 illustrates a general scheme for constructing a distributed ledger based on a quantum communication network.

[0025] Фиг. 2 иллюстрирует блок схему способа безопасного обновления и хранения данных в распределенном реестре.[0025] FIG. 2 illustrates a block diagram of a method for securely updating and storing data in a distributed ledger.

[0026] Фиг. 3 иллюстрирует пример реализации алгоритма широковещания на попарно аутентифицированных сообщениях.[0026] FIG. 3 illustrates an example of the implementation of the broadcast algorithm on pairwise authenticated messages.

[0027] Фиг. 4А-4Б иллюстрируют пример реализации алгоритма широковещания на псевдоподписях.[0027] FIG. 4A-4B illustrate an example implementation of a pseudo-signature broadcast algorithm.

[0028] Фиг. 5 иллюстрирует общий вид вычислительного устройства.[0028] FIG. 5 illustrates a general view of a computing device.

ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯCARRYING OUT THE INVENTION

[0029] Заявленное решение обеспечивает возможность безопасного хранения и обновления данных в распределенном реестре при любом количестве потенциально скомпрометированных узлов сети за счет нового алгоритма достижения консенсуса между узлами. Также указанное решение обеспечивает защиту сети от атак с помощью квантовых компьютеров.[0029] The claimed solution provides the ability to securely store and update data in a distributed ledger for any number of potentially compromised network nodes due to a new algorithm for reaching consensus between nodes. Also, this solution protects the network from attacks using quantum computers.

[0030] В нижеследующем описании с целью пояснения изложены многочисленные конкретные детали, чтобы обеспечить полное понимание различных вариантов осуществления заявленного технического решения. Однако специалисту в данной области техники будет очевидно, что различные варианты осуществления настоящего технического решения могут быть реализованы на практике без некоторых из этих конкретных деталей. Последующее описание предоставляет только примерные варианты осуществления и не предназначено для ограничения объема или применимости раскрытия. Также следует принять во внимание, что элементы заявленного решения могут быть реализованы на практике множеством способов помимо конкретных деталей, изложенных в данном документе.[0030] In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the various embodiments of the claimed technical solution. However, it will be apparent to a person skilled in the art that various embodiments of the present technical solution may be practiced without some of these specific details. The following description provides only exemplary embodiments and is not intended to limit the scope or applicability of the disclosure. It should also be appreciated that the elements of the claimed solution can be implemented in practice in a variety of ways in addition to the specific details set forth in this document.

[0031] Заявленное техническое решение может быть реализовано с помощью стандартных вычислительных устройств, известных на текущий момент в уровне техники, например, с помощью компьютера, смартфона, планшета, сервера и любого другого устройства, обеспечивающего исполнение требуемой программной логики.[0031] The claimed technical solution can be implemented using standard computing devices currently known in the prior art, for example, using a computer, smartphone, tablet, server and any other device that provides the execution of the required program logic.

[0032] На Фиг. 1 представлена общая схема сети 100 для реализации способа безопасного обновления и хранения данных в распределенном реестре.[0032] FIG. 1 is a general diagram of a network 100 for implementing a method for securely updating and storing data in a distributed ledger.

[0033] Указанная сеть 100 может состоять из двух уровней, например, первый уровень 105 - может представлять полносвязную сеть генерации симметричных ключей с помощью квантового распределения ключей (КРК, от англ. Quantum key distribution / QKD). Указанный уровень 105 в свою очередь может содержать устройства КРК 106 и квантовые каналы 107, с помощью которых происходит процесс квантового распределения ключей. В качестве квантовых каналов 107 может быть использовано, например, оптоволокно. Для специалиста в данной области техники должно быть очевидно, что квантовые каналы, необходимые для функционирования устройств КРК 106, могут быть построены любыми известными из уровня техники способами с применением соответствующего оборудования.[0033] The specified network 100 can consist of two levels, for example, the first level 105 - can represent a fully connected network for generating symmetric keys using quantum key distribution (QKD, from English. Quantum key distribution / QKD). The specified level 105, in turn, may contain QKD devices 106 and quantum channels 107, with the help of which the process of quantum key distribution takes place. As the quantum channels 107 can be used, for example, optical fiber. It should be obvious to a person skilled in the art that the quantum channels required for the operation of the QKD 106 devices can be constructed using any of the methods known in the art using appropriate equipment.

[0034] Все сгенерированные ключи 108 далее поступают на второй уровень сети 110, в котором происходит обмен исключительно классическими данными (сообщения между узлами сети). Под классическими данными в данном решении следует понимать данные, которые передаются по классическим каналам связи, построенным на передаче информации в виде битов и/или аналоговых сигналов (радиосвязь, кабельные каналы связи и т.д.). Стоит отметить, что разделение сети 100 на уровни может являться как логическим, так и физическим (как было описано выше) и не должно ограничивать варианты осуществления настоящего решения.[0034] All generated keys 108 are then sent to the second layer of the network 110, where only classical data is exchanged (messages between network nodes). In this solution, classical data should be understood as data that is transmitted through classical communication channels built on the transfer of information in the form of bits and / or analog signals (radio communication, cable communication channels, etc.). It should be noted that the division of the network 100 into layers can be both logical and physical (as described above) and should not limit the options for implementing the present solution.

[0035] КРК - это способ генерации ключей, который использует квантовые явления для гарантии безопасности генерируемых ключей. Этот способ позволяет двум сторонам, соединенным по открытому классическому каналу связи и квантовому каналу связи, создать пару идентичных случайных битовых последовательностей (ключей), которые известны только им, и использовать их в других криптографических протоколах.[0035] QKD is a key generation method that uses quantum phenomena to ensure the security of the generated keys. This method allows two parties, connected via an open classical communication channel and a quantum communication channel, to create a pair of identical random bit sequences (keys), which are known only to them, and use them in other cryptographic protocols.

[0036] КРК основывается на фундаментальных законах квантовой механики, утверждающих, что процесс измерения квантовой системы в общем случае изменяет ее состояние. Третьей стороне, пытающейся получить ключ, необходимо измерять передаваемые по квантовому каналу связи состояния, что ведет к их изменению и появлению ошибок. Таким образом, использование квантовых состояний позволяет обнаружить факт вмешательства в процесс передачи информации по квантовому каналу за счет появления ошибок. Если количество ошибок ниже определенного порога, то существует возможность генерации ключа между двумя пользователями. В противном случае секретный ключ не будет создан, и протокол генерации ключа прекращается.[0036] QKD is based on the fundamental laws of quantum mechanics, which state that the process of measuring a quantum system generally changes its state. A third party trying to obtain a key needs to measure the states transmitted over the quantum communication channel, which leads to their change and the appearance of errors. Thus, the use of quantum states makes it possible to detect the fact of interference in the process of information transmission over a quantum channel due to the appearance of errors. If the number of errors is below a certain threshold, then it is possible to generate a key between two users. Otherwise, the private key will not be generated and the key generation protocol is terminated.

[0037] Принцип работы способа квантового распределения ключей может быть основан на передаче одиночных фотонов, поляризованных в одном из двух базисов: прямоугольном или диагональном. Получатель измеряет поляризацию, выбирая базисы для измерения случайным образом, и записывает результаты измерений и базисы. Затем отправитель и получатель обмениваются информацией об использованных базисах (но не о результатах измерения) по открытому каналу, и данные, полученные при не совпавших базисах, сбрасываются.[0037] The principle of operation of the method of quantum key distribution can be based on the transmission of single photons, polarized in one of two bases: rectangular or diagonal. The recipient measures the polarization by choosing bases for measurement at random, and records the measurement results and bases. Then the sender and the receiver exchange information about the used bases (but not about the measurement results) over an open channel, and the data received when the bases did not match are discarded.

[0038] В качестве протоколов, применяющихся для передачи ключа, могут быть использованы, например, протокол ВВ84, протокол В92, протокол Е91 и т.д.[0038] As the protocols used for key transmission, for example, BB84 protocol, B92 protocol, E91 protocol, etc. can be used.

[0039] В качестве устройств квантовой криптографии 106 в сети 100 могут использоваться, например, устройства квантовой криптографии от таких компаний, как ID Quantique, QRate и т.д. Указанные устройства могут состоять из таких элементов (частей), как источники излучения одиночных фотонов, детекторы фотонов, квантовые генераторы случайных чисел, коммутаторы и других необходимых элементов.[0039] As the quantum cryptography devices 106 in the network 100, for example, quantum cryptography devices from companies such as ID Quantique, QRate, etc. may be used. These devices can consist of such elements (parts) as radiation sources of single photons, photon detectors, quantum generators of random numbers, switches and other necessary elements.

[0040] Для специалиста в данной области техники очевидно, что для генерации ключей между всеми парами узлов сети могут быть использованы любые известные из уровня техники устройства КРК.[0040] For a person skilled in the art, it is obvious that any QKD devices known from the prior art can be used to generate keys between all pairs of network nodes.

[0041] Сеть передачи данных 100 может представлять, например, телекоммуникационную сеть и может содержать вычислительные устройства. В частных вариантах реализации сеть 100 может представлять локальную сеть (LAN), глобальную сеть (WAN), Интернет, одноранговую сеть, или их комбинацию. Сеть 100 может представлять проводную сеть, беспроводную сеть и их комбинацию, предназначенную для распределенного взаимодействия вычислительных устройств такой сети. Вычислительными устройствами могут являться, например, узлы связи 121, 122, 123, 124. Указанные узлы могут представлять сервера, облачные сервера, компьютеры, мобильные вычислительные устройства, смартфоны, ноутбуки и т.д. Вычислительные устройства обеспечивают возможность участия в качестве узлов 121, 122, 123, 124 в распределенной сети 100 для формирования распределенного реестра. Узлы 121-124 выполнены с возможностью взаимодействия с другими устройствами сети 100, а также выполнения предписанных им инструкций.[0041] Communication network 100 may represent, for example, a telecommunications network and may include computing devices. In private implementations, network 100 may represent a local area network (LAN), a wide area network (WAN), the Internet, a peer-to-peer network, or a combination thereof. Network 100 can represent a wired network, a wireless network, or a combination thereof for distributed communication between computing devices on such a network. Computing devices can be, for example, communication nodes 121, 122, 123, 124. Said nodes can represent servers, cloud servers, computers, mobile computing devices, smartphones, laptops, etc. Computing devices provide the ability to participate as nodes 121, 122, 123, 124 in the distributed network 100 to form the distributed ledger. Nodes 121-124 are configured to interact with other devices on the network 100, and to follow their instructions.

[0042] Термин «инструкции», используемый в этой заявке, может относиться, в общем, к командам в программе, которые написаны для осуществления конкретной функции, такой, как формирование транзакции, передача и прием сообщений и/или транзакций, хранение копии распределенного реестра, формирование подписи и т.д. Инструкции могут быть осуществлены множеством способов, включающих в себя, например, объектно-ориентированные методы. Например, инструкции могут быть реализованы, посредством языка программирования С++, Java, Python, различных библиотек (например, "MFC" - Microsoft Foundation Classes) и т.д. Инструкции, осуществляющие процессы, описанные в этом решении, могут передаваться как по проводным, так и по беспроводным линиям передачи.[0042] The term "instructions" as used in this application may refer generally to instructions in a program that are written to perform a specific function, such as generating a transaction, sending and receiving messages and / or transactions, storing a copy of a distributed ledger , signature formation, etc. Instructions can be implemented in a variety of ways, including, for example, object-oriented methods. For example, instructions can be implemented using the C ++ programming language, Java, Python, various libraries (for example, "MFC" - Microsoft Foundation Classes), etc. The instructions that carry out the processes described in this solution can be transmitted over both wired and wireless transmission lines.

[0043] Узлы 121-124, в общем, могут относиться к отдельной системе (например, компьютеру, серверу), которая подключена к сети 100 и состоит из указанных узлов, каждый из которых и/или часть из которых участвует в формировании, обновлении и хранении данных распределенного реестра. В примере по Фиг. 1, каждый участник сети соответствует каждому узлу 121-124, однако для специалиста в данной области техники очевидно, что участник может соответствовать нескольким узлам сети 100, равно как и несколько участников могут быть объединены в один узел. Кроме того, в одном частном варианте осуществления каждый узел сети 100 может участвовать в консенсусе (достижении согласия о принятии единого решения всеми участниками сети в отношении данных (транзакций), которыми предлагается обновить распределенный реестр).[0043] Nodes 121-124, in general, can refer to a separate system (eg, computer, server) that is connected to the network 100 and consists of the specified nodes, each of which and / or part of which is involved in the formation, updating and storage of distributed ledger data. In the example of FIG. 1, each network member corresponds to each node 121-124, however, it will be obvious to a person skilled in the art that a member can correspond to several nodes of the network 100, as well as several participants can be combined into one node. In addition, in one particular embodiment, each node of the network 100 can participate in a consensus (reaching agreement on a single decision by all network participants regarding the data (transactions) that are proposed to update the distributed ledger).

[0044] Возвращаясь к Фиг. 1, сеть 100 представляет собой одноранговую сеть, состоящую из узлов 121, 122, 123, 124, где в качестве узлов используются вычислительные устройства, которые участвуют в процессах обновления распределенного реестра. Узел 121, Узел 122, Узел 123 и узел 124 попарно связаны между собой и выполнены с возможностью обмена данными и хранения собственных копий реестра. Квантовые каналы связи, как описано выше, могут формироваться на существующих каналах связи сети 100 или быть обособленными и предназначены для попарного соединения узлов сети и распределения ключей между указанными узлами. Как описывалось выше, для попарного распределения ключей между узлами сети могут использоваться устройства квантовой криптографии и соответствующие протоколы, обеспечивающие безусловную безопасность. В изображенном примере каждый из узлов 121-124 представляет участника распределенного реестра и может выполнять набор функций или инструкций, содержащих последовательность действий, связанных с обновлением распределенного реестра и взаимодействием с другими узлами сети.[0044] Returning to FIG. 1, network 100 is a peer-to-peer network of nodes 121, 122, 123, 124, where the nodes are computing devices that participate in the distributed ledger update processes. Node 121, Node 122, Node 123 and Node 124 are connected in pairs and are configured to exchange data and store their own copies of the register. Quantum communication channels, as described above, can be formed on existing communication channels of the network 100 or be isolated and are intended for pairing network nodes and distributing keys between these nodes. As described above, for pairwise distribution of keys between network nodes, quantum cryptography devices and corresponding protocols can be used to ensure unconditional security. In the illustrated example, each of the nodes 121-124 represents a member of the distributed ledger and may execute a set of functions or instructions containing a sequence of actions associated with updating the distributed ledger and interacting with other nodes on the network.

[0045] На Фиг. 2 показана блок схема способа 200 безопасного обновления и хранения данных в распределенном реестре. Указанный способ может выполняться в сети 100, посредством элементов сети 100, описанных выше. Формирование системы распределенного хранения и обновления данных подразумевает взаимодействие в сети, такой, как сеть 100, набора независимых узлов, таких как узлы 121-124, для обеспечения функций распределенного реестра. Требованием к количеству узлов сети N является количество узлов N>2, для обеспечения условия формирования распределенного реестра, причем все узлы должны быть попарно связаны друг с другом устройствами КРК и хранить копию распределенного реестра.[0045] FIG. 2 shows a flow diagram of a method 200 for securely updating and storing data in a distributed ledger. This method may be performed on the network 100 by means of the elements of the network 100 described above. Formation of a distributed data storage and update system implies the interaction in a network, such as network 100, of a set of independent nodes, such as nodes 121-124, to provide distributed ledger functions. The requirement for the number of network nodes N is the number of nodes N> 2, to ensure the conditions for the formation of a distributed register, and all nodes must be connected in pairs with each other by QKD devices and store a copy of the distributed register.

[0046] На этапе 201 происходит создание пар симметричных ключей между всеми узлами сети. На указанном этапе 201 все узлы сети, попарно связанные между собой с помощью устройств КРК, генерируют симметричные ключи. Как указывалось выше, генерация ключей происходит с помощью квантовых каналов, соединяющих указанные узлы между собой. Указанный этап гарантирует, за счет законов квантовой механики, безусловную безопасность сгенерированных ключей. Далее способ 200 переходит к этапу 202.[0046] At step 201, symmetric key pairs are generated between all nodes in the network. At the specified step 201, all network nodes, pairwise connected to each other using QKD devices, generate symmetric keys. As mentioned above, keys are generated using quantum channels connecting these nodes to each other. This stage guarantees, due to the laws of quantum mechanics, the unconditional safety of the generated keys. Method 200 then proceeds to 202.

[0047] На этапе 202 фиксируют текущее допустимое количество скомпрометированных узлов Т в распределенном реестре. Указанный параметр Т фиксируется в данных распределенного реестра на каждом этапе его обновления. Начальное допустимое количество скомпрометированных узлов Т в распределенном реестре может быть задано на стадии формирования начального состояния реестра («генезисного блока») и обусловлено требованиями к будущему реестру.[0047] At step 202, the current allowed number of compromised nodes T is recorded in the distributed ledger. The specified parameter T is fixed in the data of the distributed registry at each stage of its updating. The initial allowable number of compromised nodes T in the distributed ledger can be set at the stage of forming the initial state of the ledger ("genesis block") and is determined by the requirements for the future ledger.

[0048] На этапе 203 формируют, по меньшей мере одним из узлов сети, транзакцию. Указанная транзакция формируется узлом сети для инициации внесения изменений в распределенный реестр. Узел сети формирует транзакцию, содержащую новые и/или измененные данные распределенного реестра, и предлагает указанное изменение всем остальным узлам сети (транслирует транзакцию всем остальным узлам сети). Под транзакцией в данном решении понимается раздел данных, который транслируется в сеть.[0048] At step 203, a transaction is generated by at least one of the network nodes. The specified transaction is generated by the host to initiate changes to the distributed ledger. The network node forms a transaction containing new and / or changed data of the distributed ledger, and proposes the specified change to all other network nodes (broadcasts the transaction to all other network nodes). A transaction in this solution refers to a section of data that is broadcast to the network.

[0049] На этапе 204 транслируют, узлом, сформировавший транзакцию, указанную транзакцию остальным узлам сети, по меньшей мере с помощью одного из следующих алгоритмов: с помощью алгоритма широковещания на попарно аутентифицированных сообщениях, в случае, если текущее допустимое количество скомпрометированных узлов Т меньше порогового значения Tcrit, или с помощью алгоритма широковещания на псевдоподписях, в случае, если текущее допустимое количество скомпрометированных узлов Т больше или равно допустимому пороговому значению Tcrit.[0049] At step 204, the node that generated the transaction, the specified transaction is broadcast to the rest of the network nodes using at least one of the following algorithms: using the broadcast algorithm on pairwise authenticated messages, if the current allowable number of compromised nodes T is less than the threshold values of T crit , or using the broadcasting algorithm on pseudo-signatures, in case the current allowed number of compromised nodes T is greater than or equal to the allowed threshold value T crit .

[0050] На указанном этапе 204 происходит процесс достижения консенсуса между всеми узлами распределенного реестра. Для сохранения целостности реестра, при его обновлении все узлы сети должны либо принять транзакцию, полученную от узла, инициировавшего обновление реестра (отправителя) и обновить, в соответствии с содержанием указанной транзакции, собственную копию реестра либо не принимать транзакцию в случае, если не удалось достигнуть консенсуса в отношении указанной транзакции. Однако, в связи с тем, что узлы не могут доверять друг другу и отправителю в том числе, для обновления распределенного реестра требуется удостовериться, что отправитель действительно транслировал одну и ту же транзакцию всем остальным узлам, а не разные транзакции каждому узлу, и, в случае обнаружения таких различий, независимо прекратить процесс принятия транзакции. Для обеспечения вышеуказанных требований в настоящем техническом решении были реализованы алгоритмы широковещания, описанные ниже.[0050] At this step 204, a process of reaching consensus between all nodes of the distributed ledger takes place. To maintain the integrity of the registry, when updating it, all network nodes must either accept the transaction received from the node that initiated the update of the register (the sender) and update, in accordance with the contents of the specified transaction, their own copy of the register, or not accept the transaction if it was not possible to reach consensus on the specified transaction. However, due to the fact that the nodes cannot trust each other and the sender, among other things, to update the distributed ledger, you need to make sure that the sender actually broadcast the same transaction to all other nodes, and not different transactions to each node, and, in If such differences are found, terminate the transaction commit process independently. To meet the above requirements, the present technical solution has implemented the broadcast algorithms described below.

[0051] Рассмотрим алгоритм широковещания на попарно аутентифицированных сообщениях. Принцип работы данного алгоритма основывается на способе решения задачи византийских генералов, известном из работы [3]. Так, если текущее допустимое количество скомпрометированных узлов Т меньше порогового значения Tcrit, то для достижения консенсуса применяется алгоритм широковещания на попарно аутентифицированных сообщениях. Как указывалось выше, значение параметра Т может быть получено каждым узлом сети из данных распределенного реестра. Пороговым значением допустимого количества скомпрометированных узлов Tcrit при выборе алгоритма широковещания может являться значение, не большее одной трети от общего количества узлов. Указанное пороговое значение выбрано на основании особенностей алгоритма. Алгоритм широковещания на попарно аутентифицированных сообщениях предназначен для согласования единой версии транзакции, которая будет принята всеми участниками сети.[0051] Consider the broadcasting algorithm on pairwise authenticated messages. The principle of operation of this algorithm is based on the method for solving the problem of Byzantine generals, known from [3]. So, if the current admissible number of compromised nodes T is less than the threshold value T crit , then the broadcasting algorithm on pairwise authenticated messages is used to reach consensus. As mentioned above, the value of the parameter T can be obtained by each host from the data of the distributed registry. The threshold value of the admissible number of compromised nodes T crit when choosing a broadcasting algorithm can be a value not exceeding one third of the total number of nodes. The specified threshold value was selected based on the features of the algorithm. The broadcasting algorithm based on pairwise authenticated messages is designed to agree on a single version of a transaction that will be accepted by all network participants.

[0052] Для обеспечения целостности передачи данных узел, сформировавший транзакцию (отправитель), для обновления реестра, формирует имитовставку, и посылает транзакцию вместе с имитовставкой остальным узлам сети (осуществляет широковещание указанной транзакции). Имитовставка обеспечивает целостность и защиту от фальсификации передаваемой транзакции. Имитовставка может быть сформирована для каждого получающего узла на основе (почти-) строго универсального семейства функций 2-го порядка и пары симметричных ключей, распределенных между узлом-отправителем данного сообщения и соответствующим узлом-получателем. (Почти-) строго универсальные семейства функций 2-го порядка более подробны раскрыты в источнике [1]. Таким образом, каждый узел сети получает версию транзакции от отправителя.[0052] To ensure the integrity of the data transmission, the node that generated the transaction (the sender) generates a dummy insert to update the register, and sends the transaction along with the dummy insert to the rest of the network nodes (broadcasts the specified transaction). Imitation insertion ensures the integrity and protection against falsification of the transmitted transaction. Imitation insertion can be generated for each receiving node based on the (almost) strictly universal family of 2nd order functions and a pair of symmetric keys distributed between the sending node of this message and the corresponding receiving node. (Almost-) strictly universal families of second-order functions are described in more detail in the source [1]. Thus, each node in the network receives a version of the transaction from the sender.

[0053] После получения узлами транзакции отправителя, каждый узел сети сохраняет полученную транзакцию в собственном первом наборе транзакций. Набор транзакций может быть инициализирован узлами сети в средстве хранения такого узла. Для специалиста в данной области техники очевидно, что может быть сформировано любое количество наборов транзакций. Указанный набор транзакций может представлять файл в памяти узла, таблицу, список и т.д.[0053] After the nodes receive the sender's transaction, each network node stores the received transaction in its own first set of transactions. A set of transactions can be initialized by nodes on a network in such a node's storage medium. It will be apparent to a person skilled in the art that any number of transaction sets can be generated. The specified set of transactions can represent a file in node memory, a table, a list, etc.

[0054] Перед добавлением полученной копии транзакции каждый из узлов-получателей проверяет имитовставку для полученной транзакции и, в случае успешности проверки сохраняет копию полученной транзакции в первый набор транзакций, сформированный на предыдущем шаге. После чего пересылает полученную транзакцию остальным узлам сети, за исключением узла-отправителя, добавляя к ней маркер получения транзакции, а также собственную имитовставку. Маркер получения транзакции может быть предназначен для определения маршрута транзакции и может представлять собой код идентификации узла в сети, подтверждающий, что данный узел получил указанную транзакцию.[0054] Before adding the received copy of the transaction, each of the recipient nodes checks the impersonation for the received transaction and, if successful, saves a copy of the received transaction in the first set of transactions generated in the previous step. Then it sends the received transaction to the rest of the network nodes, with the exception of the sending node, adding to it a transaction receipt token, as well as its own imitation insert. The transaction receipt token can be designed to determine the route of the transaction and can be a node identification code in the network, confirming that this node has received the specified transaction.

[0055] Далее, все узлы сети, при получении транзакции с одним или несколькими неповторяющимися маркерами и имитовставкой, проверяют имитовставку, и, в случае успешности проверки, выполняют сохранение транзакции вместе с полученными маркерами получения в первый набор транзакций, и осуществляют пересылку данной транзакции вместе с добавленным собственным маркером получения к имевшимся ранее маркерам и соответствующей имитовставкой всем узлам сети, кроме узла, сформировавшего данную транзакцию, и узлов сети, чьи маркеры содержались в полученном сообщении. Указанный шаг обеспечивает возможность обмена версиями транзакции отправителя между всеми узлами сети.[0055] Further, all nodes of the network, upon receipt of a transaction with one or more non-recurring tokens and impersonation, check the impersonation, and, if the verification is successful, save the transaction along with the received tokens to the first set of transactions, and transfer this transaction together with a custom receive token added to the previously available tokens and the corresponding impersonation of all nodes in the network, except for the node that generated this transaction and the nodes in the network whose tokens were contained in the received message. This step provides the ability to exchange versions of the sender's transaction between all nodes in the network.

[0056] Повторяют пересылку транзакций, описанную в предыдущем этапе, пока пересылаемые сообщения с транзакциями не будут содержать Т маркеров;[0056] Repeat the forwarding of transactions described in the previous step until the forwarded transaction messages contain T tokens;

[0057] Переносят все транзакции с Т маркерами во второй набор транзакций;[0057] Transferring all transactions with T tokens to the second set of transactions;

[0058] Для каждой возможной последовательности маркеров ХK из К неповторяющихся маркеров, где К последовательно принимает значения от Т-1 до 0, формируют транзакцию с последовательностью маркеров ХK во втором наборе транзакций как транзакцию, наиболее часто встречающуюся в подмножестве транзакций из транзакции с последовательностью маркеров ХK первого набора и транзакций с К+1 маркерами второго набора, в которых первые К маркеров совпадают с ХK.[0058] For each possible sequence of tokens X K of K non-repeating tokens, where K sequentially takes values from T-1 to 0, form a transaction with a sequence of tokens X K in the second set of transactions as the transaction most frequently encountered in the subset of transactions from transaction with a sequence of markers X K of the first set and transactions with K + 1 markers of the second set, in which the first K tokens coincide with X K.

[0059] Принимают транзакцию из второго набора транзакций, не содержащую маркеров.[0059] A token-free transaction from the second set of transactions is received.

[0060] Для более ясного понимания работы указанного алгоритма рассмотрим пример его реализации, показанный на Фиг. 3. Указанный пример отображает принцип работы алгоритма на примере сети, содержащей семь узлов, попарно связанных между собой, для обновления и хранения данных распределенного реестра.[0060] For a clearer understanding of the operation of this algorithm, consider an example of its implementation shown in FIG. 3. This example reflects the principle of the algorithm on the example of a network containing seven nodes connected in pairs to update and store data from a distributed registry.

[0061] Будем рассматривать значение параметра Т=2, меньшее одной трети от общего числа узлов.[0061] We will consider the value of the parameter T = 2, less than one third of the total number of nodes.

[0062] Каждый из узлов 301, 302, 303, 304, 305, 306, 307 является участником распределенной сети и может выполнять свойственные для такой сети функции, такие, как формирование транзакции, хранение копии реестра, взаимодействие с другими узлами сети, обмен симметричными ключами, процесс верификации и подписи транзакций и т.д.[0062] Each of the nodes 301, 302, 303, 304, 305, 306, 307 is a member of a distributed network and can perform functions inherent to such a network, such as forming a transaction, storing a copy of the register, interacting with other network nodes, exchanging symmetric keys, the process of verifying and signing transactions, etc.

[0063] Как описывалось выше, поскольку в распределенной сети отсутствует доверенный орган, который может подтверждать честность отправителя и хранить результаты взаимодействия участников сети, то основной задачей такой сети является достижение консенсуса, т.е. достижение согласия по поводу единого решения всеми узлами сети относительно определенного набора данных, предлагаемого для внесения в распределенную систему. За счет консенсуса обеспечивается надежность в сети с участием нескольких ненадежных узлов (потенциально скомпрометированных).[0063] As described above, since there is no trusted authority in a distributed network that can confirm the sender's honesty and store the results of the interaction of network participants, the main task of such a network is to achieve consensus, i.e. reaching agreement on a single solution by all network nodes regarding a certain set of data proposed for entering into a distributed system. Consensus provides reliability in a network involving multiple untrusted nodes (potentially compromised).

[0064] Рассмотрим процесс достижения консенсуса на примере указанных узлов.[0064] Consider the process of reaching a consensus on the example of these nodes.

[0065] Указанный далее пример описан с учетом того, что процесс обмена является целостным и защищенным, т.е. каждая транзакция, отправленная и полученная любым из узлов сети в указанном примере, содержит имитовставку, сформированную на основе пары симметричных ключей между узлом-отправителем и получателем, а также проверена и является корректной.[0065] The following example is described with the understanding that the exchange process is complete and secure, i. E. each transaction sent and received by any of the network nodes in the above example contains an imitation insert formed on the basis of a pair of symmetric keys between the sending and receiving nodes, and is also verified and is correct.

[0066] Пусть, узел 301 сформировал транзакцию для обновления распределенного реестра. Для обновления всеми остальными узлами сети собственных копий реестра узел 301 транслирует транзакцию узлам 302, 303, 304, 305, 306, 307 соответственно (шаг 1). Для удобства введем обозначение транзакции как m. Поскольку узлы 302, 303, 304, 305, 306, 307 не могут быть уверены в том, что узел 301 является нескомпрометированным узлом и каждый из получателей имеет такую же версию транзакции, то каждый из узлов-получателей создает в локальном хранилище набор транзакций и сохраняет туда версию транзакции от получателя. Таким образом, в каждом из локальных наборов узлов-получателей имеется копия транзакции отправителя. Обозначим их как m1 - копия транзакции отправителя, полученная узлом 302, m2 - копия транзакции отправителя, полученная узлом 303, m3 - копия транзакции отправителя, полученная узлом 304, m4 - копия транзакции отправителя, полученная узлом 305, m5 - копия транзакции отправителя, полученная узлом 306, m6 - копия транзакции отправителя, полученная узлом 307.[0066] Suppose node 301 has generated a transaction to update the distributed ledger. To update all other network nodes on their own copies of the registry, node 301 broadcasts the transaction to nodes 302, 303, 304, 305, 306, 307, respectively (step 1). For convenience, we will denote a transaction as m. Since nodes 302, 303, 304, 305, 306, 307 cannot be sure that node 301 is an uncompromised node and each of the recipients has the same version of the transaction, each of the recipient nodes creates a set of transactions in local storage and stores there is the version of the transaction from the recipient. Thus, in each of the local set of recipient nodes, there is a copy of the sender's transaction. Let us denote them as m 1 - a copy of the sender's transaction received by node 302, m 2 is a copy of the sender's transaction received by node 303, m 3 is a copy of the sender's transaction received by node 304, m 4 is a copy of the sender's transaction received by node 305, m 5 - a copy of the sender's transaction received by node 306, m 6 is a copy of the sender's transaction received by node 307.

[0067] Далее происходит обмен версиями полученных транзакций между узлами-получателями 302, 303, 304, 305, 306, 307 (шаг 2). Каждый из узлов 302, 303, 304, 305, 306, 307 добавляет к версии транзакции, полученной от узла 301, маркер получения и отправляет ее остальным узлам сети. Указанный маркер служит для однозначной идентификации маршрута пересылки версии транзакции. После обмена версиями транзакции, каждый из узлов 302, 303, 304, 305, 306, 307 сохраняет все полученные версии в локальный набор транзакций. Так, узел 302 будет содержать следующие транзакции: m1, m12, m13, m14, m15, m16, где m12, m13, m14, m15 и m16, версии транзакций, полученные узлами 303, 304, 305, 306 и 307 соответственно и отправленные указанными узлами узлу 302. Аналогичным образом узел 303 будет содержать следующие транзакции: m2, m21, m23, m24, m25, m26, узел 304 будет содержать следующие транзакции: m3, m31, m32, m34, m35, m36, узел 305 будет содержать следующие транзакции: m4, m41, m42, m43, m45, m46, узел 306 будет содержать следующие транзакции: m5, m51, m52, m53, m54, m56, узел 307 будет содержать следующие транзакции: m6, m61, m62, m63, m64, m65.[0067] Next, the versions of the received transactions are exchanged between recipient nodes 302, 303, 304, 305, 306, 307 (step 2). Each of the nodes 302, 303, 304, 305, 306, 307 adds a receive token to the version of the transaction received from the node 301 and sends it to the rest of the nodes on the network. The specified token is used to uniquely identify the forwarding route of the transaction version. After exchanging transaction versions, each of the nodes 302, 303, 304, 305, 306, 307 saves all received versions to a local set of transactions. So, node 302 will contain the following transactions: m 1 , m 12 , m 13 , m 14 , m 15 , m 16 , where m 12 , m 13 , m 14 , m 15 and m 16 , the versions of the transactions received by the nodes 303, 304, 305, 306 and 307, respectively, and sent by the indicated nodes to node 302. Similarly, node 303 will contain the following transactions: m 2 , m 21 , m 23 , m 24 , m 25 , m 26 , node 304 will contain the following transactions: m 3 , m 31 , m 32 , m 34 , m 35 , m 36 , node 305 will contain the following transactions: m 4 , m 41 , m 42 , m 43 , m 45 , m 46 , node 306 will contain the following transactions: m 5 , m 51 , m 52 , m 53 , m 54 , m 56 , node 307 will contain the following transactions: m 6 , m 61 , m 62 , m 63 , m 64 , m 65 .

[0068] На следующем шаге (шаг 3) указанного алгоритма широковещания узлы сети, при получении транзакции с одним или несколькими неповторяющимися маркерами осуществляют пересылку данной транзакции, добавляя собственный маркер получения к имевшимся ранее маркерам, всем узлам сети, кроме узла, сформировавшего данную транзакцию, и узлов сети, чьи маркеры содержались в полученном сообщении. Указанная пересылка транзакций будет осуществляться до тех пор, пока пересылаемые транзакции не будут содержать Т=2 маркера.[0068] At the next step (step 3) of the specified broadcasting algorithm, the network nodes, when receiving a transaction with one or more non-repeating tokens, forward this transaction, adding their own receiving token to the previously available tokens, to all network nodes, except for the node that generated this transaction. and hosts whose tokens were contained in the received message. The specified forwarding of transactions will continue until the forwarded transactions contain T = 2 tokens.

[0069] Таким образом, локальный набор транзакций узла 302 будет содержать следующие транзакции: m1, m12, m13, m14, m15, m16, m123, m124, m125, m126, m132, m134, m135, m136, m142, m143, m145, m146, m152, m153, m154, m156, m162, m163, m164, m165, где m123, Например, транзакция, полученная узлом 303 от узла 301 и отправленная узлу 304, который в свою очередь отправил ее узлу 302, m124 - транзакция, полученная узлом 303 от узла 301 и отправленная узлу 305, который в свою очередь отправил ее узлу 302, m132 - транзакция, полученная узлом 304 от узла 301 и отправленная узлу 303, который в свою очередь отправил ее узлу 302 и т.д.[0069] Thus, the local set of transactions of node 302 will contain the following transactions: m 1 , m 12 , m 13 , m 14 , m 15 , m 16 , m 123 , m 124 , m 125 , m 126 , m 132 , m 134 , m 135 , m 136 , m 142 , m 143 , m 145 , m 146 , m 152 , m 153 , m 154 , m 156 , m 162 , m 163 , m 164 , m 165 , where m 123 , For example, a transaction received by node 303 from node 301 and sent to node 304, which in turn sent it to node 302, m 124 is a transaction received by node 303 from node 301 and sent to node 305, which in turn sent it to node 302, m 132 is a transaction received by node 304 from node 301 and sent to node 303, which in turn sent it to node 302, and so on.

[0070] Остальные узлы сети - 303, 304, 305, 306, 307 - будут содержать наборы транзакций, полученные по аналогичному принципу, что и узел 302.[0070] The rest of the nodes of the network - 303, 304, 305, 306, 307 - will contain sets of transactions received in a similar way as node 302.

[0071] После формирования указанных локальных наборов транзакций каждым узлом сети происходит независимый выбор транзакции, на основе которой будет обновлена копия распределенного реестра в узле.[0071] After the formation of the specified local sets of transactions by each node of the network, an independent selection of the transaction occurs, based on which the copy of the distributed ledger in the node will be updated.

[0072] Для этого каждый узел 302, 303, 304, 305 переносит все транзакции с Т=2 маркерами во второй локальный набор транзакций. Рассмотрим указанную операцию на примере узла 302. Так, узел 302 переносит транзакции со следующими маркерами: m123, m124, m125, m126, m132, m134, m135, m136, m142, m143, m145, m146, m152, m153, m154, m156, m162, m163, m164, m165. Указанные транзакции имеют неповторяющийся путь, характеризующийся маркерами узлов, через все узлы сети, кроме отправителя и непосредственно узла, отправлявшего эти транзакции (узла 302).[0072] To do this, each node 302, 303, 304, 305 transfers all transactions with T = 2 tokens to a second local set of transactions. Consider this operation using the example of node 302. So, node 302 transfers transactions with the following markers: m 123 , m 124 , m 125 , m 126 , m 132 , m 134 , m 135 , m 136 , m 142 , m 143 , m 145 , m 146 , m 152 , m 153 , m 154 , m 156 , m 162 , m 163 , m 164 , m 165 . These transactions have a non-repeating path, characterized by node markers, through all nodes of the network, except for the sender and directly the node that sent these transactions (node 302).

[0073] Далее, каждый узел сети, для каждой возможной последовательности маркеров ХK из К маркеров, где К последовательно принимает значения от Т-1 до 0, формирует транзакцию с последовательностью маркеров ХK во втором наборе транзакций как транзакцию, наиболее часто встречающуюся в подмножестве транзакций из транзакции с последовательностью маркеров ХK первого набора и транзакций с К+1 маркерами второго набора, в которых первые К маркеров совпадают с ХK. В качестве функции, выполняющей такое сравнение и выборку, может использоваться, например, мажоритарный элемент и т.д. Для специалиста в данной области техники очевидно, что может быть использована любая функция, обеспечивающая сравнение входных значений и выбирающая то, которое встречается в большинстве входов.[0073] Further, each network node, for each possible sequence of tokens X K from K tokens, where K sequentially takes values from T-1 to 0, forms a transaction with a sequence of tokens X K in the second set of transactions as a transaction that occurs most frequently in a subset of transactions from a transaction with a sequence of tokens X K of the first set and transactions with K + 1 tokens of the second set, in which the first K tokens coincide with X K. As a function that performs such comparison and selection, for example, a majority element, etc. can be used. It will be apparent to one of ordinary skill in the art that any function that compares input values and selects one that occurs in most inputs can be used.

[0074] Рассмотрим указанный шаг на примере узла 302. Рассмотрим сообщения с Т-1=1 маркером. Выберем сообщение m12, с маркером получения узла 303. В качестве подмножества транзакций, для формирования транзакции во втором наборе будет выступать подмножество {m12, m123, m124, m125, m126}. Обозначим наиболее часто встречающуюся транзакцию среди этого набора как m'12. Тогда во второй набор транзакций заносится транзакция m'12 с маркером получения узла 303. Аналогичная процедура повторяется для других транзакций с Т-1=1 маркером: m13, m14, m15, m16. В результате во втором наборе транзакций появляются соответствующие транзакции m'13, m'14, m'15, m'16. Далее для формирования транзакции без маркеров рассматривается подмножество транзакций {m1, m'12, m'13, m'14, m'15, m'16}. В результате во втором наборе получается транзакция m'i, не содержащая маркеров.[0074] Consider this step for the example of node 302. Consider messages with a T-1 = 1 token. Let us select message m 12 , with the receiving token of node 303. The subset {m 12 , m 123 , m 124 , m 125 , m 126 } will act as a subset of transactions to form a transaction in the second set. Denote the most frequently occurring transaction among this set as the m '12. Then a second set of transactions entered transaction m '12 to receive marker assembly 303. A similar procedure is repeated for the other transactions with T 1 = 1 marker: m 13, m 14, m 15, m 16. As a result, the second set of transactions appear related transactions m '13, m' 14, m '15, m' 16. Further, for forming a transaction without markers considered subset transaction {m 1, m '12, m' 13, m '14, m' 15, m '16}. As a result, in the second set, transaction m'i is obtained, which does not contain tokens.

[0075] Узлы 303, 304, 305, 306, 307 также совершают указанную последовательность действий.[0075] Nodes 303, 304, 305, 306, 307 also perform the specified sequence of actions.

[0076] Указанный шаг завершается получением каждым из узлов сети, участвовавших в достижении консенсуса, транзакции из второго набора транзакций, которая не содержит маркеров. Данная транзакция является результатом достижения консенсуса.[0076] This step ends with the receipt by each of the network nodes involved in reaching the consensus, a transaction from the second set of transactions that does not contain tokens. This transaction is the result of a consensus.

[0077] Теперь рассмотрим более подробно алгоритм широковещания на псевдоподписях. Указанный алгоритм обеспечивает достижение консенсуса при любом потенциальном количестве скомпрометированных узлов, однако зависит от скорости генерации и количества требуемых ключей для псевдоподписей устройствами КРК, поэтому его применение целесообразнее только в случаях, когда количество потенциально скомпрометированных узлов Т больше значения Tcrit, которое в свою очередь меньше или равно одной трети от общего количества узлов. Для специалиста из данной области техники будет очевидно, что указанный алгоритм применим при любом количестве скомпрометированных узлов и выбор алгоритма широковещания обусловлен лишь скоростью генерации ключей устройствами КРК.[0077] Let us now consider in more detail the pseudo-signature broadcasting algorithm. This algorithm ensures consensus at any potential number of compromised nodes, but depends on the generation rate and the number of required keys for pseudo- signatures by QKD devices, so its use is more expedient only in cases where the number of potentially compromised nodes T is greater than the T crit value, which in turn is less or equal to one third of the total number of nodes. For a person skilled in the art, it will be obvious that this algorithm is applicable for any number of compromised nodes and the choice of the broadcasting algorithm is only dictated by the speed of key generation by the QKD devices.

[0078] Алгоритм псевдоподписи функционирует на основе специально сгенерированных ключей. Так, для генерации псевдоподписи для данного сообщения необходим секретный ключ, которым обладает только автор сообщения. Для верификации псевдоподписи сообщения каждый из потенциальных получателей использует свой собственный верифицирующий ключ, который должен быть неизвестен остальным участниками сети. Совокупность секретного ключа генерации псевдоподписи и соответствующих ему верифицирующих ключей будем называть набором ключей псевдоподписи. Корректность псевдоподписи сообщения гарантирует, что автором этого сообщения был узел, обладающий соответствующим секретным ключом. Псевдоподпись носит одноразовый характер, поэтому для генерации и верификации каждого нового сообщения необходимы новые ключи. В отличие от обычных алгоритмов подписи, алгоритм псевдоподписи обладает информационно-теоретической стойкостью и неуязвим к атакам с использованием квантовых компьютеров. Указанный алгоритм известен из уровня техники и более подробный принцип его работы раскрыт в источнике информации [2].[0078] The pseudo-signature algorithm operates based on specially generated keys. So, to generate a pseudo-signature for a given message, a secret key is required, which only the author of the message possesses. To verify the pseudo-signature of the message, each of the potential recipients uses their own verification key, which must be unknown to the rest of the network participants. The collection of the pseudo-signature generation secret key and the corresponding verification keys will be called the set of pseudo-signature keys. The correctness of the pseudo-signature of the message ensures that the author of the message was the node in possession of the corresponding secret key. The pseudo-signature is one-time, so new keys are needed to generate and verify each new message. Unlike conventional signature algorithms, the pseudo-signature algorithm is information-theoretical and immune to attacks using quantum computers. The specified algorithm is known from the prior art and a more detailed principle of its operation is disclosed in the information source [2].

[0079] Для реализации алгоритма широковещания на псевдоподписях необходимо распределить один набор ключей псевдоподписи, в котором секретный ключ принадлежит узлу, формирующему транзакцию, и 2(N-1) набора ключей псевдоподписей, в которых каждому узлу-получателю транзакции принадлежит два ключа генерации псевдоподписи.[0079] To implement the broadcasting algorithm on pseudosignatures, it is necessary to distribute one set of pseudo-signature keys, in which the secret key belongs to the node generating the transaction, and 2 (N-1) sets of pseudo-signature keys, in which each node-recipient of the transaction owns two keys for generating the pseudo-signature.

[0080] Так, генерируют узлом, сформировавшим транзакцию, по меньшей мере один секретный ключ псевдоподписи и набор соответствующих верифицирующих ключей для остальных узлов сети.[0080] Thus, the node that generated the transaction generates at least one secret pseudo-signature key and a set of corresponding verification keys for the rest of the network nodes.

[0081] В свою очередь, остальные узлы сети генерируют по меньшей мере два секретных ключа псевдоподписи и набор соответствующих верифицирующих ключей по меньшей мере для всех остальных узлов сети кроме узла, сформировавшего транзакцию. [0082] Для формирования секретных ключей и набора верифицирующих ключей псевдоподписи используются попарные симметричные ключи, распределенные между всеми узлами сети.[0081] In turn, the rest of the network nodes generate at least two secret pseudo-signature keys and a set of corresponding verification keys for at least all other network nodes except for the node that generated the transaction. [0082] To generate secret keys and a set of pseudo-signature verification keys, pairwise symmetric keys are used, distributed among all network nodes.

[0083] Далее, узел, сформировавший транзакцию, транслирует сообщение, содержащее транзакцию, подписанное псевдоподписью, остальным узлам сети;[0083] Next, the node that generated the transaction broadcasts a message containing the transaction, signed with a pseudo-signature, to the rest of the network nodes;

[0084] верифицируют каждым из узлов, получивших сообщение с транзакцией, псевдоподпись, и, в случае успешности проверки, добавляют транзакцию в свой массив новых транзакций;[0084] verifies a pseudo-signature by each of the nodes that received the transaction message, and, if the verification is successful, add the transaction to their array of new transactions;

[0085] подписывают каждым из узлов, получивших сообщение, проверенное на предыдущем шаге, указанное сообщение дополнительной псевдоподписью, созданной с помощью своего первого секретного ключа псевдоподписи;[0085] each of the nodes that received the message, verified in the previous step, sign the specified message with an additional pseudo-signature created using their first secret key of the pseudo-signature;

[0086] транслируют сообщение, подписанное на предыдущем шаге, с транзакцией остальным участникам сети;[0086] broadcasting the message signed in the previous step with the transaction to the rest of the network participants;

[0087] если по прошествии времени, необходимого на последовательную пересылку сообщений количеству узлов сети Т+1, в наборе транзакций каждого узла все транзакции идентичны, то данная транзакция принимается этим узлом сети.[0087] if, after the time required for sequential transmission of messages to the number of network nodes T + 1, all transactions in the set of transactions of each node are identical, then this transaction is accepted by this network node.

[0088] Если же в наборе транзакций хотя бы одна транзакция отличается, то узел сети пересылает полученное сообщение с новой транзакцией всем остальным участникам сети, подписывая его своим вторым секретным ключом псевдоподписи, а также завершает обмен сообщениями и не принимает никакую транзакцию в рамках данного протокола широковещания. Более подробно указанный принцип раскрыт на фиг. 4Б.[0088] If in the set of transactions at least one transaction differs, then the network node forwards the received message with a new transaction to all other network participants, signing it with its second secret pseudo-signature key, and also completes the exchange of messages and does not accept any transaction within the framework of this protocol broadcasting. This principle is disclosed in more detail in FIG. 4B.

[0089] Рассмотрим более подробно принцип указанного алгоритма на примере сети, показанной на фиг. 4А. Указанная сеть в данном примере состоит из пяти узлов 401, 402, 403, 404, 405, которые являются участниками распределенного реестра и могут выполнять функции, предписанные им для обновления, хранения и выполнения процесса достижения консенсуса в соответствии с описываемым алгоритмом. Как указывалось выше, для реализации псевдоподписи узлу, формирующему транзакцию, необходим секретный ключ, а каждому получающему узлу необходимо по два ключа генерации псевдоподписи и соответственно верифицирующие ключи для каждого ключа генерации псевдоподписи.[0089] Let us consider in more detail the principle of this algorithm using the example of the network shown in FIG. 4A. The specified network in this example consists of five nodes 401, 402, 403, 404, 405, which are members of the distributed ledger and can perform the functions prescribed to them for updating, storing and executing the process of reaching consensus in accordance with the described algorithm. As mentioned above, to implement a pseudo-signature, a node forming a transaction needs a secret key, and each receiving node needs two pseudo-signature generation keys and, accordingly, verification keys for each pseudo-signature generation key.

[0090] Как указывалось выше, для обеспечения работы алгоритма широковещания на псевдоподписях перед инициацией обновления реестра отправляющим узлом требуется сгенерировать секретные и верифицирующие ключи псевдоподписей для всех узлов сети, участвующих в достижении консенсуса (шаг 1 и шаг 2). Для генерации ключей псевдоподписи может использоваться протокол, в ходе которого для каждого узла создаются секретные ключи (один секретный ключ для отправляющего узла, и по меньшей мере два секретных ключа для каждого получающего узла) и наборы верифицирующих ключей для каждого созданного секретного ключа каждого узла. В ходе указанного процесса узлы взаимодействуют между собой таким образом, что по итогу создания набора верифицирующих ключей узел, подписывающий транзакцию секретным ключом, не знает, какой именно верифицирующий ключ находится у конкретного узла-получателя. Указанный алгоритм известен из уровня техники и более подробный принцип его работы раскрыт в источнике информации [2].[0090] As noted above, in order for the broadcast algorithm to work on pseudo signatures, before initiating a registry update, the sending node needs to generate secret and verification keys for pseudo signatures for all nodes participating in the consensus (step 1 and step 2). To generate pseudo-signature keys, a protocol can be used that generates secret keys for each node (one secret key for the sending node, and at least two secret keys for each receiving node) and sets of verification keys for each generated secret key of each node. In the course of this process, the nodes interact with each other in such a way that, as a result of the creation of a set of verification keys, the node signing the transaction with the secret key does not know which verification key is in the particular recipient node. The specified algorithm is known from the prior art and a more detailed principle of its operation is disclosed in the information source [2].

[0091] Так, на шаге 1 узел 401, являющийся в данном примере отправителем, генерирует свой секретный ключ Sk401, а каждый получающий узел 402-405 генерирует свой набор верифицирующих ключей Vk. Секретный и верифицирующие ключи генерируются на основе пар симметричных ключей, распределенных между узлами сети при помощи устройств квантовой криптографии. Таким образом, каждый узел 402-405 получает свой верифицирующий ключ Vk, с помощью которого происходит проверка подлинности сообщения, отправленного узлом 401 и подписанное его секретным ключом. Узел 402 получает верифицирующий ключ

Figure 00000001
, где верхний индекс ключа показывает номер узла, сообщение которого должно верифицироваться ключом, а нижний индекс показывает номер узла, который совершает верификацию сообщения, которое было отправлено узлом, чей номер находится в верхнем индексе. Аналогичным образом верифицирующие ключи распределяются между остальными узлами сети. Так, узел 403 получает верифицирующий ключ
Figure 00000002
узел 404 получает верифицирующий ключ
Figure 00000003
узел 405 получает верифицирующий ключ
Figure 00000004
[0091] So, in step 1, the node 401, which is the sender in this example, generates its secret key Sk 401 , and each receiving node 402-405 generates its own set of verification keys Vk. The secret and verification keys are generated based on pairs of symmetric keys distributed between network nodes using quantum cryptography devices. Thus, each node 402-405 receives its own verification key Vk, which is used to verify the authenticity of the message sent by the node 401 and signed with its secret key. Node 402 receives a verification key
Figure 00000001
, where the superscript of the key shows the number of the node whose message is to be verified by the key, and the subscript shows the number of the node that verifies the message that was sent by the node whose number is in the superscript. In a similar way, verification keys are distributed among the rest of the network nodes. So, node 403 receives a verification key
Figure 00000002
node
404 receives a verification key
Figure 00000003
node
405 receives a verification key
Figure 00000004

[0092] На следующем шаге алгоритма (шаг 2) каждый получающий узел 402-405 генерирует по меньшей мере два секретных ключа и соответственно два набора верифицирующих ключей для остальных узлов. Указанные секретные ключи предназначены для однозначной идентификации и соблюдения целостности сообщения, которое в дальнейшем будет пересылаться узлами 402-405. Таким образом, генерирование собственного набора секретных ключей и наборов верифицирующих ключей для остальных узлов обеспечивает невозможность изменения сообщения, получаемого от отправляющего узла одним из получающих узлов. Так, например, если получающий узел попытается подменить сообщение с транзакцией и подпишет его своим ключом, то любой следующий узел, кому будет перенаправлено сообщение, обнаружит отсутствие предыдущей подписи (например, отправителя), и, следовательно, заметит подлог.[0092] In the next step of the algorithm (step 2), each receiving node 402-405 generates at least two secret keys and, accordingly, two sets of verification keys for the remaining nodes. These secret keys are designed to uniquely identify and maintain the integrity of the message, which will be further sent by nodes 402-405. Thus, the generation of its own set of secret keys and sets of verification keys for other nodes makes it impossible to change the message received from the sending node by one of the receiving nodes. So, for example, if the receiving node tries to spoof a message with a transaction and signs it with its own key, then any next node to whom the message is forwarded will detect the absence of a previous signature (for example, the sender), and, therefore, will notice the forgery.

[0093] Так, на указанном шаге алгоритма, узел 402 сгенерирует два секретных ключа Sk402 и

Figure 00000005
, и, соответственно, два набора верифицирующих ключей Vk для всех остальных узлов сети (узлы 403-405). Секретные и верифицирующие ключи узла 402 генерируются таким же образом, как и ключи узла 401. Кроме того, каждый получающий узел 403-405 также генерирует два секретных ключа Sk и
Figure 00000006
, и два набора верифицирующих ключей Vk. По итогу генерации всеми получающими узлами сети 402-405 собственных секретных ключей Sk и
Figure 00000007
, а также наборов верифицирующий ключей Vk и дальнейшего обмена верифицирующими ключами Vk между друг другом, каждый узел сети будет иметь следующий локальный набор секретных и верифицирующих ключей: локальный набор ключей узла 402 будет содержать следующие ключи:
Figure 00000008
, Sk402,
Figure 00000009
,
Figure 00000010
,
Figure 00000011
,
Figure 00000012
,
Figure 00000013
,
Figure 00000014
,
Figure 00000015
, где, соответственно, верифицирующие ключи
Figure 00000016
,
Figure 00000017
,
Figure 00000018
,
Figure 00000019
,
Figure 00000020
,
Figure 00000021
, являются ключами, предназначенными для верификации сообщений, подписанных первым или вторым собственным секретным ключом каждого из узлов 403-405. Локальный набор ключей узла 403 будет содержать следующие ключи:
Figure 00000022
, Sk403,
Figure 00000023
,
Figure 00000024
,
Figure 00000025
,
Figure 00000026
,
Figure 00000027
,
Figure 00000028
,
Figure 00000029
, локальный набор узла 404 будет соответственно содержать следующие ключи:
Figure 00000030
, Sk404,
Figure 00000031
,
Figure 00000032
,
Figure 00000033
,
Figure 00000034
,
Figure 00000035
,
Figure 00000036
,
Figure 00000037
, и локальный набор ключей узла 405 будет содержать:
Figure 00000038
, Sk405,
Figure 00000039
,
Figure 00000040
,
Figure 00000041
,
Figure 00000042
,
Figure 00000043
,
Figure 00000044
,
Figure 00000045
.[0093] So, at the specified step of the algorithm, the node 402 will generate two secret keys Sk 402 and
Figure 00000005
, and, accordingly, two sets of verification keys Vk for all other network nodes (nodes 403-405). The secret and verification keys of the node 402 are generated in the same way as the keys of the node 401. In addition, each receiving node 403-405 also generates two secret keys Sk and
Figure 00000006
, and two sets of verification keys Vk. As a result of the generation by all receiving nodes of the network 402-405 their own secret keys Sk and
Figure 00000007
, as well as sets of verification keys Vk and further exchange of verification keys Vk between each other, each network node will have the following local set of secret and verification keys: the local set of keys of node 402 will contain the following keys:
Figure 00000008
, Sk 402 ,
Figure 00000009
,
Figure 00000010
,
Figure 00000011
,
Figure 00000012
,
Figure 00000013
,
Figure 00000014
,
Figure 00000015
, where, respectively, verification keys
Figure 00000016
,
Figure 00000017
,
Figure 00000018
,
Figure 00000019
,
Figure 00000020
,
Figure 00000021
are keys for verifying messages signed by the first or second own private key of each of the nodes 403-405. The local keyset of node 403 will contain the following keys:
Figure 00000022
, Sk 403 ,
Figure 00000023
,
Figure 00000024
,
Figure 00000025
,
Figure 00000026
,
Figure 00000027
,
Figure 00000028
,
Figure 00000029
, the local set of node 404 will accordingly contain the following keys:
Figure 00000030
, Sk 404 ,
Figure 00000031
,
Figure 00000032
,
Figure 00000033
,
Figure 00000034
,
Figure 00000035
,
Figure 00000036
,
Figure 00000037
, and the local keyset of node 405 will contain:
Figure 00000038
, Sk 405 ,
Figure 00000039
,
Figure 00000040
,
Figure 00000041
,
Figure 00000042
,
Figure 00000043
,
Figure 00000044
,
Figure 00000045
...

[0094] Таким образом, на вышеописанных шаге 1 и шаге 2 алгоритма широковещания на псевдоподписях происходит генерация и обмен ключами для реализации псевдоподписи. Для специалиста в данной области техники очевидно, что при увеличении количества узлов, участвующих в обновлении реестра и достижении консенсуса, количество верифицирующих ключей будет возрастать пропорционально количеству узлов.[0094] Thus, in the above step 1 and step 2 of the pseudo-signature broadcast algorithm, keys are generated and exchanged to implement the pseudo-signature. For a person skilled in the art, it is obvious that as the number of nodes involved in updating the registry and reaching consensus increases, the number of verification keys will increase in proportion to the number of nodes.

[0095] После генерации необходимого количества ключей и обмена такими ключами между узлами сети узел, инициирующий обновление реестра, подписывает своим секретным ключом сообщение с транзакцией и транслирует указанное сообщение остальным узлам сети (шаг 3).[0095] After generating the required number of keys and exchanging such keys between the network nodes, the node initiating the registry update signs the transaction message with its secret key and broadcasts the specified message to the rest of the network nodes (step 3).

[0096] Рассмотрим указанный шаг 3 на примере узла 401, который в нашем случае является отправителем сообщения с транзакцией. Стоит отметить, что в качестве отправителя транзакции может выступать любой узел сети. Так, узел 401 подписывает сообщение ключом Sk401 и транлирует его узлам 402-405.[0096] Consider the specified step 3 on the example of node 401, which in our case is the sender of the message with the transaction. It should be noted that any node in the network can act as the sender of the transaction. Thus, node 401 signs the message with the key Sk 401 and broadcasts it to nodes 402-405.

[0097] Как, указывалось выше, поскольку узлы 402-405 не могут быть уверены в том, что узел 401 транслировал одно и то же сообщение всем узлам сети, то будем обозначать сообщение с транзакцией, предлагаемое узлом 401, как mn, где индекс n характеризует версию сообщения, получаемую n-ым узлом. Таким образом, узел 402 получает сообщение m402, узел 403 получает сообщение m403, узел 404 получает сообщение m404, узел 405 получает сообщение m405. Далее каждый из узлов 402-405 проверяет своим верифицирующим ключом

Figure 00000046
,
Figure 00000047
,
Figure 00000048
,
Figure 00000049
псевдоподпись отправляющего узла, и, в случае успешной проверки, сохраняет полученную транзакцию в собственный локальный массив транзакций. Как упоминалось выше, массив транзакций может храниться в локальном средстве хранения узла.[0097] As indicated above, since nodes 402-405 cannot be sure that node 401 has broadcast the same message to all nodes on the network, we will denote the transaction message offered by node 401 as m n , where index n characterizes the version of the message received by the n-th node. Thus, node 402 receives message m 402 , node 403 receives message m 403 , node 404 receives message m 404 , node 405 receives message m 405 . Further, each of the nodes 402-405 checks with its own verification key
Figure 00000046
,
Figure 00000047
,
Figure 00000048
,
Figure 00000049
pseudo-signature of the sending node, and, if successful, saves the received transaction to its own local array of transactions. As mentioned above, the array of transactions can be stored in the local storage of the node.

[0098] Для достижения консенсуса между получающими узлами 402-405 требуется принять единое решение по транзакции отправителя, т.е. если отправитель 401 является честным, то каждый узел 402-405 должен получить одну и ту же транзакцию mn (m402=m403=m404=m405), если же отправитель 401 является скомпрометированным и хотя бы одна из версий транзакций т402, т403, т404 или т405 отличается от других, то узлы 402-405 должны прекратить процесс принятия транзакции и завершить алгоритм, то есть достичь консенсуса в прекращении алгоритма.[0098] To achieve consensus between receiving nodes 402-405, a single decision is required on the sender's transaction, i. E. if the sender 401 is honest, then each node 402-405 must receive the same transaction m n (m 402 = m 403 = m 404 = m 405 ), if the sender 401 is compromised and at least one of the versions of transactions m 402 , t 403 , t 404 or t 405 is different from the others, then the nodes 402-405 must stop the process of accepting the transaction and complete the algorithm, that is, reach a consensus to terminate the algorithm.

[0099] Для этого на шаге 4 каждый из узлов 402-405 подписывает своим секретным ключом Skn, где n - номер узла, свою версию проверенного сообщения mn. Таким образом, на указанном шаге узел 402 подписывает транзакцию m402 своим первым ключом Sk402, узел 403 подписывает транзакцию m403 своим первым ключом Sk403, узел 404 подписывает транзакцию m404 своим первым ключом Sk404 и узел 405 подписывает транзакцию т405 своим первым ключом Sk405.[0099] To do this, at step 4, each of the nodes 402-405 signs with its secret key Sk n , where n is the node number, its version of the verified message m n. Thus, at this step, node 402 signs transaction m 402 with its first key Sk 402 , node 403 signs transaction m 403 with its first key Sk 403 , node 404 signs transaction m 404 with its first key Sk 404 and node 405 signs transaction m 405 with its first key Sk 405 .

[0100] Соответственно, каждый из узлов 402-405 далее транслирует свою версию транзакции, подписанную своим секретным ключом остальным узлам сети (шаг 5). При этом каждый узел, получающий транзакцию, содержащую псевдоподпись другого узла, проверяет верифицирующим ключом ее подлинность. Таким образом, каждый из узлов 402-405 формирует следующий набор транзакций: узел 402 будет содержать следующие транзакции: m402, m403, m404, m405. Причем, транзакции т403, т404, т405 при получении были подписаны ключами Sk403, Sk404 и Sk405 соответственно и проверены на подлинность указанным узлом 402 с помощью верифицированных ключей

Figure 00000050
,
Figure 00000051
,
Figure 00000052
. Также, стоит отметить, что для получения транзакций m403, m404, m405, после их проверки узлом 402 соответствующими верифицирующими ключами, узел 402 также проверяет псевдоподпись узла 401, которая хранится в каждом из указанных сообщений. Такая проверка исключает любую попытку подлога узлом, осуществляющим пересылку транзакции, и сохраняет целостность отправляемого сообщения.[0100] Accordingly, each of the nodes 402-405 then broadcasts its version of the transaction, signed by its secret key to the rest of the network nodes (step 5). In this case, each node receiving a transaction containing a pseudo-signature of another node verifies its authenticity with a verification key. Thus, each of the nodes 402-405 generates the following set of transactions: node 402 will contain the following transactions: m 402 , m 403 , m 404 , m 405 . Moreover, transactions t 403 , t 404 , t 405 upon receipt were signed with the keys Sk 403 , Sk 404 and Sk 405, respectively, and verified for authenticity by the specified node 402 using verified keys
Figure 00000050
,
Figure 00000051
,
Figure 00000052
... It is also worth noting that in order to receive transactions m 403 , m 404 , m 405 , after being verified by node 402 with the appropriate verification keys, node 402 also checks the pseudo-signature of node 401, which is stored in each of these messages. This verification eliminates any attempt at forgery by the forwarding node and preserves the integrity of the message being sent.

[0101] Соответственно узлы 403-405 по аналогичному принципу формируют свои локальные наборы транзакций.[0101] Accordingly, the nodes 403-405 form their local sets of transactions in a similar manner.

[0102] На последнем шаге алгоритма (шаг 6), каждый из узлов 402-405 сравнивает транзакции из локального набора транзакций между собой. Причем, сравнение происходит только после прошествия времени, необходимого на последовательную пересылку сообщений количеству узлов сети Т+1. Так, после осуществления такого сравнения, если все транзакции в каждом из узлов 402-405 идентичны, то узлы 402, 403, 404, 405, принимают начальную версию транзакции и обновляют собственные копии реестра и алгоритм завершается.[0102] In the last step of the algorithm (step 6), each of the nodes 402-405 compares transactions from a local set of transactions with each other. Moreover, the comparison takes place only after the lapse of the time required for the sequential transmission of messages to the number of network nodes T + 1. So, after making such a comparison, if all transactions in each of the nodes 402-405 are identical, then the nodes 402, 403, 404, 405 receive the initial version of the transaction and update their own copies of the registry and the algorithm ends.

[0103] В одном частном варианте осуществления, если хотя бы одна версия транзакции у по меньшей мере одного узла 402-405 будет отличаться от остальных, то алгоритм выполняет последовательность шагов, направленных на достижение консенсуса о прекращении процесса принятия транзакции всеми узлами сети. Указанные шаги более подробно раскрываются на фиг. 4Б.[0103] In one particular embodiment, if at least one version of the transaction in at least one node 402-405 is different from the others, then the algorithm performs a sequence of steps aimed at reaching a consensus that the process of accepting the transaction by all nodes in the network is terminated. These steps are discussed in more detail in FIG. 4B.

[0104] Таким образом, вышеописанные шаги алгоритма (шаг 1- шаг 6) позволяют достичь консенсуса по транзакции, предлагаемой на обновление реестра, причем использование псевдоподписей, построенных на симметричных ключах, распределенных с помощью устройств квантовой криптографии обеспечивает защиту от атак с помощью квантовых компьютеров и делает невозможным подмену транслируемого сообщения без обнаружения другими узлами сети.[0104] Thus, the above steps of the algorithm (step 1 through step 6) allow reaching a consensus on the transaction proposed for updating the registry, and the use of pseudosignatures built on symmetric keys distributed using quantum cryptography devices provides protection against attacks using quantum computers and makes it impossible to spoof a broadcast message without being detected by other nodes on the network.

[0105] Теперь рассмотрим более подробно пример реализации алгоритма, показанного на Фиг. 4Б. Указанный пример раскрывает случай, когда версии транзакций у хотя бы одного узла 402-405 на шаге 6 отличаются от остальных версий. Указанный пример является частным случаем реализации фиг. 4А, и отображает сеть передачи данных, в которой узел 403 может быть скомпрометирован.[0105] Let us now consider in more detail an example implementation of the algorithm shown in FIG. 4B. The above example reveals the case when the transaction versions of at least one node 402-405 in step 6 differ from the other versions. This example is a special case of the implementation of Fig. 4A, and depicts a communications network in which node 403 could be compromised.

[0106] Так, на шаге 6 описанного выше алгоритма, при обнаружении в локальном наборе транзакций m402, m403, m404, m405, например, узла 402, хотя бы одной версии транзакции, отличающейся от других транзакций, алгоритм переходит к шагу 7. Аналогично с узлом 402, при обнаружении хотя бы одной версии транзакции, отличающейся от других в любом другом узле 403, 404, 405 алгоритм также переходит к шагу 7.[0106] So, at step 6 of the above algorithm, when it detects in the local set of transactions m 402 , m 403 , m 404 , m 405 , for example, node 402, at least one version of a transaction that differs from other transactions, the algorithm goes to step 7. Similarly with node 402, if it detects at least one version of the transaction that is different from the others in any other node 403, 404, 405, the algorithm also goes to step 7.

[0107] Рассмотрим более подробно шаг 7 на примере узла 402, получившего от узла 403 версию сообщения, отличающуюся от версий узлов 404 и 405 (m402=m404=m405 ≠ m403). Поскольку версии транзакций отличаются друг от друга, то узлу 402 необходимо завершить алгоритм и не принимать указанную транзакцию, однако, для того, чтобы остальные узлы сети также приняли аналогичное решение, необходимо оповестить их о том, что происходит подлог, т.к. узлы 403-405 потенциально могли получить локальные наборы транзакций, где все транзакции будут одинаковы.[0107] Consider step 7 in more detail using the example of node 402, which received from node 403 a version of the message that differs from the versions of nodes 404 and 405 (m 402 = m 404 = m 405 ≠ m 403 ). Since the versions of the transactions differ from each other, the node 402 needs to complete the algorithm and not accept the specified transaction; nodes 403-405 could potentially receive local sets of transactions where all transactions would be the same.

[0108] Следовательно, для того чтобы остальные узлы сети также получили информацию от узла 402, что версии транзакций отличаются, узел 402 подписывает своим вторым ключом

Figure 00000053
транзакцию m403 и транслирует ее остальным участникам сети. Введем обозначение указанной транзакции как
Figure 00000054
(транзакция m403 подписанная вторым ключом
Figure 00000055
).[0108] Therefore, in order for the rest of the network nodes to also receive information from the node 402 that the transaction versions are different, the node 402 signs with its second key
Figure 00000053
transaction m 403 and broadcasts it to the rest of the network participants. Let us introduce the designation of the indicated transaction as
Figure 00000054
(transaction m 403 signed with the second key
Figure 00000055
).

[0109] Каждый из узлов сети верифицирует транзакцию m403, отправленную узлом 402 соответствующим ключом

Figure 00000056
,
Figure 00000057
и подписывает своим вторым секретным ключом
Figure 00000058
,
Figure 00000059
указанную верифицированную транзакцию
Figure 00000060
, т.к. указанные узлы не могут доверять узлу 402. После подписи узлами 404, 405, каждый из указанных узлов транслирует сообщение всем остальным узлам.[0109] Each of the network nodes verifies transaction m403, sent by node 402 with the corresponding key
Figure 00000056
,
Figure 00000057
and signs with his second secret key
Figure 00000058
,
Figure 00000059
the specified verified transaction
Figure 00000060
since these nodes cannot trust node 402. After being signed by nodes 404, 405, each of these nodes broadcasts the message to all other nodes.

[0110] Далее, каждый получающий узел 404, 405 верифицирует своим ключом

Figure 00000061
,
Figure 00000062
транзакцию
Figure 00000063
и проверяет, совпадает ли транзакция, полученная от узла 402 и подписанная его вторым секретным ключом, с транзакцией, которую указанные узел 402 также отослал другим узлам. За счет дополнительной пересылки транзакции
Figure 00000064
узлами, получившими ее от узла 402 (в нашем примере узлы 404, 405), указанные узлы определяют находится ли узел 402 в сговоре, и, следовательно, честно ли он разослал всем участникам сети транзакцию
Figure 00000065
.[0110] Next, each receiving node 404, 405 verifies with its key
Figure 00000061
,
Figure 00000062
transaction
Figure 00000063
and checks if the transaction received from node 402 and signed by its second secret key matches the transaction that said node 402 has also sent to other nodes. Due to additional forwarding of the transaction
Figure 00000064
nodes that received it from node 402 (in our example, nodes 404, 405), these nodes determine whether node 402 is in collusion, and, therefore, whether it honestly sent a transaction to all network participants
Figure 00000065
...

[0111] По итогу такой пересылки и дальнейшей верификации соответствующими ключами каждый узел сети становится уведомлен, а также подтверждает, путем подписания своим вторым секретным ключом, что в ходе попытки обновления реестра была совершена попытка подмены транзакции, и, следовательно, необходимо прекратить широковещание и завершить алгоритм (достичь консенсуса в завершении алгоритма).[0111] As a result of such transfer and further verification with the corresponding keys, each network node becomes notified, and also confirms, by signing with its second secret key, that during the attempt to update the registry, an attempt was made to spoof the transaction, and, therefore, it is necessary to stop broadcasting and complete algorithm (reach consensus at the end of the algorithm).

[0112] Для специалиста в данной области техники очевидно, что указанный алгоритм может быть применен и при большем количестве скомпрометированных узлов.[0112] For a person skilled in the art it is obvious that the specified algorithm can be applied to a larger number of compromised nodes.

[0113] Таким образом, на фиг. 4А- фиг. 4Б был раскрыт алгоритм широковещания на псевдоподписях, обеспечивающий возможность консенсуса в сети с любым количеством скомпрометированных узлов.[0113] Thus, in FIG. 4A to FIG. 4B, a pseudo-signature broadcasting algorithm was disclosed that allows consensus in a network with any number of compromised nodes.

[0114] Далее способ 200, после применения одного из описанных выше алгоритмов широковещания, переходит к этапу 205.[0114] Next, method 200, after applying one of the broadcast algorithms described above, proceeds to block 205.

[0115] На этапе 205 происходит обновление собственных копий реестра узлами сети, принявшими транзакцию. По итогам трансляции транзакции с помощью одного из алгоритмов широковещания, если узлы достигли консенсуса, то все узлы, принявшие указанную транзакцию, обновляют собственные копии распределенного реестра на основе информации, содержащейся в транзакции и, следовательно, обновляют состояние распределенного реестра.[0115] At block 205, the hosts that have accepted the transaction update their own copies of the registry. As a result of broadcasting a transaction using one of the broadcast algorithms, if the nodes have reached a consensus, then all the nodes that have accepted the specified transaction update their own copies of the distributed ledger based on the information contained in the transaction and, therefore, update the state of the distributed ledger.

[0116] Таким образом, в настоящих материалах заявки описан безопасный способ обновления распределенного реестра с любым количеством скомпрометированных узлов, стойкий к атакам с помощью квантового компьютера, который может применяться для нарушения целостности данных, содержащихся в распределенном реестре.[0116] Thus, the present application materials describe a secure method for updating a distributed ledger with any number of compromised nodes, resistant to attacks using a quantum computer, which can be used to violate the integrity of data contained in the distributed ledger.

[0117] На Фиг. 5 представлен пример общего вида вычислительного устройства 500.[0117] FIG. 5 illustrates an example of a general view of computing device 500.

[0118] В общем случае, вычислительное устройство (500) содержит объединенные общей шиной информационного обмена один или несколько процессоров (501), средства памяти, такие как ОЗУ (502) и ПЗУ (503), интерфейсы ввода/вывода (504), устройства ввода/вывода (505), и устройство для сетевого взаимодействия (506).[0118] In the General case, the computing device (500) contains one or more processors (501) united by a common bus of information exchange, memory means such as RAM (502) and ROM (503), input / output interfaces (504), devices input / output (505), and a device for networking (506).

[0119] Процессор (501) (или несколько процессоров, многоядерный процессор и т.п.) может выбираться из ассортимента устройств, широко применяемых в настоящее время, например, таких производителей, как Intel™, AMD™, Apple™, Samsung Exynos™, MediaTEK™, Qualcomm Snapdragon™ и т.п. Под процессором или одним из используемых процессоров в устройстве (500) также необходимо учитывать графический процессор, например, GPU NVIDIA или Graphcore, тип которых также является пригодным для полного или частичного выполнения исполнения модуля управления, а также может применяться для обучения и применения моделей машинного обучения в различных информационных системах.[0119] The processor (501) (or multiple processors, multi-core processor, etc.) can be selected from a range of devices currently widely used, for example, manufacturers such as Intel ™, AMD ™, Apple ™, Samsung Exynos ™ , MediaTEK ™, Qualcomm Snapdragon ™, etc. Under the processor or one of the processors used in the device (500), it is also necessary to take into account the graphics processor, for example, NVIDIA GPU or Graphcore, the type of which is also suitable for full or partial execution of the execution of the control module, and can also be used for training and applying machine learning models in various information systems.

[0120] ОЗУ (502) представляет собой оперативную память и предназначено для хранения исполняемых процессором (501) машиночитаемых инструкций для выполнения необходимых операций по логической обработке данных. ОЗУ (502), как правило, содержит исполняемые инструкции операционной системы и соответствующих программных компонент (приложения, программные модули и т.п.). При этом, в качестве ОЗУ (502) может выступать доступный объем памяти графической карты или графического процессора.[0120] RAM (502) is a random access memory and is intended for storing machine-readable instructions executed by the processor (501) for performing necessary operations for logical data processing. RAM (502), as a rule, contains executable instructions of the operating system and corresponding software components (applications, software modules, etc.). In this case, the available memory of the graphics card or graphics processor can act as RAM (502).

[0121] ПЗУ (503) представляет собой одно или более устройств постоянного хранения данных, например, жесткий диск (HDD), твердотельный накопитель данных (SSD), флэш-память (EEPROM, NAND и т.п.), оптические носители информации (CD-R/RW, DVD-R/RW, BlueRay Disc, MD) и др.[0121] ROM (503) is one or more persistent storage devices, such as a hard disk drive (HDD), solid state data storage (SSD), flash memory (EEPROM, NAND, etc.), optical storage media ( CD-R / RW, DVD-R / RW, BlueRay Disc, MD), etc.

[0122] Для организации работы компонентов вычислительного устройства (500) и организации работы внешних подключаемых устройств применяются различные виды интерфейсов В/В (504). Выбор соответствующих интерфейсов зависит от конкретного исполнения вычислительного устройства, которые могут представлять собой, не ограничиваясь: PCI, AGP, PS/2, IrDa, FireWire, LPT, COM, SATA, IDE, Lightning, USB (2.0, 3.0, 3.1, micro, mini, type C), TRS/Audio jack (2.5, 3.5, 6.35), HDMI, DVI, VGA, Display Port, RJ45, RS232ht.h.[0122] Various types of I / O interfaces (504) are used to organize the operation of the components of the computing device (500) and to organize the operation of external connected devices. The choice of the appropriate interfaces depends on the specific version of the computing device, which can be, but are not limited to: PCI, AGP, PS / 2, IrDa, FireWire, LPT, COM, SATA, IDE, Lightning, USB (2.0, 3.0, 3.1, micro, mini, type C), TRS / Audio jack (2.5, 3.5, 6.35), HDMI, DVI, VGA, Display Port, RJ45, RS232ht.h.

[0123] Для обеспечения взаимодействия пользователя с вычислительным устройством (500) применяются различные средства (505) В/В информации, например, клавиатура, дисплей (монитор), сенсорный дисплей, тач-пад, джойстик, манипулятор мышь, световое перо, стилус, сенсорная панель, трекбол, динамики, микрофон, средства дополненной реальности, оптические сенсоры, планшет, световые индикаторы, проектор, камера, средства биометрической идентификации (сканер сетчатки глаза, сканер отпечатков пальцев, модуль распознавания голоса) и т.п.[0123] To ensure user interaction with the computing device (500), various I / O means (505) are used, for example, a keyboard, display (monitor), touch display, touch pad, joystick, mouse manipulator, light pen, stylus, touch panel, trackball, speakers, microphone, augmented reality, optical sensors, tablet, light indicators, projector, camera, biometric identification (retina scanner, fingerprint scanner, voice recognition module), etc.

[0124] Средство сетевого взаимодействия (506) обеспечивает передачу данных посредством внутренней или внешней вычислительной сети, например, Интранет, Интернет, ЛВС и т.п. В качестве одного или более средств (506) может использоваться, но не ограничиваться: Ethernet карта, GSM модем, GPRS модем, LTE модем, 5G модем, модуль спутниковой связи, NFC модуль, Bluetooth и/или BLE модуль, Wi-Fi модуль и др. [0125] Представленные материалы заявки раскрывают предпочтительные примеры реализации технического решения и не должны трактоваться как ограничивающие иные, частные примеры его воплощения, не выходящие за пределы испрашиваемой правовой охраны, которые являются очевидными для специалистов соответствующей области техники.[0124] The networking tool (506) provides data transmission via an internal or external computer network, for example, Intranet, Internet, LAN, and the like. One or more means (506) may be used, but not limited to: Ethernet card, GSM modem, GPRS modem, LTE modem, 5G modem, satellite communication module, NFC module, Bluetooth and / or BLE module, Wi-Fi module, and etc. [0125] The submitted application materials disclose preferred examples of the implementation of the technical solution and should not be interpreted as limiting other, particular examples of its implementation, not going beyond the scope of the claimed legal protection, which are obvious to specialists in the relevant field of technology.

[0126] Модификации и улучшения вышеописанных вариантов осуществления настоящего технического решения будут ясны специалистам в данной области техники. Предшествующее описание представлено только в качестве примера и не несет никаких ограничений для целей осуществления иных частных вариантов воплощения заявленного технического решения, не выходящего за рамки испрашиваемого объема правовой охраны. Конструктивные элементы, такие, как микроконтроллеры, блоки, модули и т.д., описанные выше и используемые в данном техническом решении, могут быть реализованы с помощью стандартных электронных компонентов, используемых для создания цифровых интегральных схем или аналогичных решений, обеспечивающих реализацию заданных функций с помощью процессов программирования.[0126] Modifications and improvements to the above-described embodiments of the present technical solution will be apparent to those skilled in the art. The foregoing description is presented only as an example and does not imply any restrictions for the purpose of implementing other particular embodiments of the claimed technical solution, which does not go beyond the scope of the claimed scope of legal protection. Structural elements, such as microcontrollers, blocks, modules, etc., described above and used in this technical solution, can be implemented using standard electronic components used to create digital integrated circuits or similar solutions that provide the implementation of specified functions with using programming processes.

Источники информации:Sources of information:

1. М.N. Wegman, J.L. Carter. New hash functions and their use in authentication and set equality. // Journal of Computer and System Sciences, Volume 22, Issue 3, June 1981, Pages 265-2791. M.N. Wegman, J.L. Carter. New hash functions and their use in authentication and set equality. // Journal of Computer and System Sciences, Volume 22, Issue 3, June 1981, Pages 265-279

2. Pfitzmann et al. Information-Theoretic Pseudosignatures and Byzantine Agreement for t≥n/3 // IBM Research Report RZ 2882 (#90830) 11/18/962. Pfitzmann et al. Information-Theoretic Pseudosignatures and Byzantine Agreement for t≥n / 3 // IBM Research Report RZ 2882 (# 90830) 11/18/96

3. Lamport et al. The Byzantine Generals Problem // ACM Transactions on Programming Languages and Systems, Vol.4, No. 3, July 1982, Pages 382-401.3. Lamport et al. The Byzantine Generals Problem // ACM Transactions on Programming Languages and Systems, Vol. 4, No. 3, July 1982, Pages 382-401.

Claims (30)

1. Способ безопасного распределенного хранения и обновления данных в распределенном реестре на основании сети квантовой коммуникации, в которой все N узлов сети, где N>2, попарно связаны друг с другом устройствами квантового распределения ключей и хранят копию распределенного реестра, содержащий этапы, на которых:1. A method for secure distributed storage and updating of data in a distributed ledger based on a quantum communication network, in which all N network nodes, where N> 2, are pairwise connected to each other by quantum key distribution devices and store a copy of the distributed ledger containing the stages at which : a) создают, с помощью устройств квантовой криптографии, пары симметричных ключей между всеми узлами сети;a) create, using quantum cryptography devices, a pair of symmetric keys between all nodes of the network; b) фиксируют текущее допустимое количество скомпрометированных узлов T в распределенном реестре;b) record the current allowed number of compromised nodes T in the distributed ledger; c) формируют по меньшей мере одним из узлов сети транзакцию; c) form at least one of the network nodes a transaction; d) транслируют узлом, сформировавшим транзакцию, указанную транзакцию остальным узлам сети по меньшей мере с помощью одного из следующих алгоритмов:d) broadcast by the node that generated the transaction, the specified transaction to the rest of the network nodes using at least one of the following algorithms: - с помощью алгоритма широковещания на попарно аутентифицированных сообщениях, в случае, если текущее допустимое количество скомпрометированных узлов T меньше порогового значения Tcrit, или- using the broadcasting algorithm on pairwise authenticated messages, if the current admissible number of compromised nodes T is less than the threshold value T crit , or - с помощью алгоритма широковещания на псевдоподписях, в случае, если текущее допустимое количество скомпрометированных узлов T больше или равно допустимому пороговому значению Tcrit; - using a pseudosignature broadcasting algorithm, if the current admissible number of compromised nodes T is greater than or equal to the admissible threshold value T crit ; e) обновляют собственные копии реестра узлами сети, принявшими транзакцию на этапе d). e) updating their own copies of the ledger by the hosts that committed the transaction in step d). 2. Способ по п. 1, характеризующийся тем, что пороговым значением допустимого количества скомпрометированных узлов Tcrit является количество узлов, равное одной трети от общего количества узлов.2. The method according to claim 1, characterized in that the threshold value of the allowable number of compromised nodes T crit is the number of nodes equal to one third of the total number of nodes. 3. Способ по п. 1, характеризующийся тем, что алгоритмом широковещания на попарно аутентифицированных сообщениях является алгоритм широковещания, содержащий этапы, на которых: 3. The method according to claim 1, characterized in that the broadcasting algorithm for pairwise authenticated messages is a broadcasting algorithm containing the stages at which: - посылают сообщение с транзакцией узлом, сформировавшим транзакцию, остальным узлам сети вместе с соответствующей имитовставкой;- a message with a transaction is sent by the node that formed the transaction to the rest of the network nodes along with the corresponding imitation insert; - инициализируют каждым получателем транзакции два пустых набора транзакций;- two empty sets of transactions are initialized by each recipient of a transaction; - проверяют, каждым из узлов-получателей, имитовставку для полученной транзакции, и в случае успешности проверки сохраняют копию полученной транзакции в первый набор транзакций, и пересылают сообщение с транзакцией остальным участникам сети, за исключением узла-отправителя, добавляя к ней маркер получения транзакции, а также собственную имитовставку;- check, by each of the receiving nodes, an imitation insert for the received transaction, and if the verification is successful, save a copy of the received transaction in the first set of transactions, and send the message with the transaction to the rest of the network participants, except for the sending node, adding a transaction receipt token to it, as well as its own imitation insert; - при получении транзакции с одним или несколькими неповторяющимися маркерами и имитовставкой проверяют имитовставку, и в случае успешности проверки выполняют сохранение транзакции вместе с полученными маркерами получения в первый набор транзакций, и осуществляют пересылку данной транзакции вместе с добавленным собственным маркером получения к имевшимся ранее маркерам и соответствующей имитовставкой всем узлам сети, кроме узла, сформировавшего данную транзакцию, и узлов сети, чьи маркеры содержались в полученном сообщении;- upon receipt of a transaction with one or more non-recurring tokens and imitation insertion, the imitation insertion is checked, and if the verification is successful, the transaction is saved together with the received receive tokens into the first set of transactions, and this transaction is sent along with the added own receive token to the previously available tokens and the corresponding imitation insertion to all nodes of the network, except for the node that generated this transaction, and the nodes of the network, whose tokens were contained in the received message; - повторяют пересылку транзакций, описанную в предыдущем этапе, пока пересылаемые сообщения с транзакциями не будут содержать T маркеров;- repeat the forwarding of transactions described in the previous step until the forwarded messages with transactions contain T tokens; - переносят все транзакции с T маркерами во второй набор транзакций;- transfer all transactions with T tokens to the second set of transactions; - для каждой возможной последовательности маркеров XK из K маркеров, где K последовательно принимает значения от T-1 до 0, формируют транзакцию с последовательностью маркеров XK во втором наборе транзакций как транзакцию, наиболее часто встречающуюся в подмножестве транзакций из транзакций с последовательностью маркеров XK первого набора и транзакций с K+1 маркерами второго набора, в которых первые K маркеров совпадают с XK;- for each possible sequence of tokens X K of K tokens, where K sequentially takes values from T-1 to 0, form a transaction with a sequence of tokens X K in the second set of transactions as a transaction that occurs most frequently in a subset of transactions from transactions with a sequence of tokens X K of the first set and transactions with K + 1 tokens of the second set, in which the first K tokens coincide with X K ; - принимают транзакцию из второго набора транзакций, не содержащую маркеров.- accept a transaction from the second set of transactions that does not contain tokens. 4. Способ по п. 3, характеризующийся тем, что имитовставка вычисляется на основе (почти-) строго универсального семейства функций 2-го порядка и пары симметричных ключей, распределенных между узлом отправителем данного сообщения и соответствующим узлом-получателем.4. The method according to claim 3, characterized in that the simulated insertion is calculated on the basis of a (almost-) strictly universal family of 2nd order functions and a pair of symmetric keys distributed between the sender node of the given message and the corresponding recipient node. 5. Способ по п. 1, характеризующийся тем, что алгоритмом широковещания на псевдоподписях является алгоритм широковещания, содержащий этапы, на которых:5. The method according to claim 1, characterized in that the broadcasting algorithm on pseudosignatures is a broadcasting algorithm, comprising the stages at which: - генерируют узлом, сформировавшим транзакцию, по меньшей мере один секретный ключ псевдоподписи и набор соответствующих верифицирующих ключей для остальных узлов сети, - generate by the node that generated the transaction, at least one secret pseudo-signature key and a set of corresponding verification keys for the rest of the network nodes, - генерируют остальными узлами сети по меньшей мере два секретных ключа псевдоподписи и набор соответствующих верифицирующих ключей по меньшей мере для всех остальных узлов сети, кроме узла, сформировавшего транзакцию;- generate by the rest of the network nodes at least two secret pseudo-signature keys and a set of corresponding verification keys for at least all other network nodes, except for the node that generated the transaction; - генерируют остальными узлами сети пустой массив для новых транзакций; транслируют сформировавшим транзакцию узлом сообщение, содержащее транзакцию, подписанное псевдоподписью, сгенерированной с помощью секретного ключа указанного узла, остальным узлам сети;- the rest of the network nodes generate an empty array for new transactions; a message containing a transaction signed with a pseudo-signature generated using the secret key of the specified node is broadcast by the node that generated the transaction to the rest of the network nodes; - верифицируют каждым из узлов, получивших сообщение с транзакцией, псевдоподпись и в случае успешности проверки добавляют транзакцию в свой массив новых транзакций;- a pseudo-signature is verified by each of the nodes that received a message with a transaction, and if the verification is successful, the transaction is added to its array of new transactions; - подписывают каждым из узлов, получивших сообщение, проверенное на предыдущем шаге, указанное сообщение дополнительной псевдоподписью, созданной с помощью своего первого секретного ключа псевдоподписи; - each of the nodes that received the message verified in the previous step sign the specified message with an additional pseudo-signature created using their first secret key of the pseudo-signature; - транслируют сообщение, подписанное на предыдущем шаге, с транзакцией остальным участникам сети;- broadcast the message signed at the previous step with the transaction to the rest of the network participants; - если по прошествии времени, необходимого на последовательную пересылку сообщений количеству узлов сети T+1, в наборе транзакций каждого узла все транзакции идентичны, то данная транзакция принимается этим узлом сети.- if after the time required for sequential transmission of messages to the number of network nodes T + 1, all transactions in the set of transactions of each node are identical, then this transaction is accepted by this network node. 6. Способ по п. 5, характеризующийся тем, что каждый узел при получении сообщения с транзакцией и верифицированным набором псевдоподписей проверяет, находится ли данная транзакция в его массиве новых транзакций, и если полученная транзакция отсутствует в массиве, то указанный узел пересылает полученное сообщение с новой транзакцией всем остальным участникам сети, подписывая его своим вторым секретным ключом псевдоподписи, а также завершает обмен сообщениями и не принимает никакую транзакцию в рамках данного протокола широковещания.6. The method according to claim 5, characterized in that each node, upon receipt of a message with a transaction and a verified set of pseudosignatures, checks whether this transaction is in its array of new transactions, and if the received transaction is not in the array, then the specified node forwards the received message with a new transaction to all other network participants, signing it with their second secret pseudo-signature key, and also completes the exchange of messages and does not accept any transaction within the framework of this broadcast protocol. 7. Способ по п. 5, характеризующийся тем, что для генерации секретных ключей и набора верифицирующих ключей псевдоподписи используются попарные симметричные ключи, распределенные между всеми узлами сети.7. The method according to claim 5, characterized in that pairwise symmetric keys distributed between all network nodes are used to generate secret keys and a set of pseudo-signature verification keys. 8. Способ по п. 7, характеризующийся тем, что попарные симметричные ключи формируются с помощью устройств квантовой криптографии.8. The method according to claim 7, characterized in that pairwise symmetric keys are generated using quantum cryptography devices.
RU2021108148A 2021-03-26 2021-03-26 Method for secure storage and updating data in distributed register using quantum communication networks RU2755672C1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2021108148A RU2755672C1 (en) 2021-03-26 2021-03-26 Method for secure storage and updating data in distributed register using quantum communication networks

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2021108148A RU2755672C1 (en) 2021-03-26 2021-03-26 Method for secure storage and updating data in distributed register using quantum communication networks

Publications (1)

Publication Number Publication Date
RU2755672C1 true RU2755672C1 (en) 2021-09-20

Family

ID=77745844

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2021108148A RU2755672C1 (en) 2021-03-26 2021-03-26 Method for secure storage and updating data in distributed register using quantum communication networks

Country Status (1)

Country Link
RU (1) RU2755672C1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030169880A1 (en) * 2002-02-22 2003-09-11 Nec Corporation Quantum cryptography key distribution system and method
US20110126011A1 (en) * 2009-11-24 2011-05-26 Electronics And Telecommunications Research Institute Method of user-authenticated quantum key distribution
US20130251145A1 (en) * 2010-12-02 2013-09-26 Qinetiq Limited Quantum key distribution
US20170230174A1 (en) * 2014-10-31 2017-08-10 Sk Telecom Co., Ltd. Method and device for synchronizing quantum data start points in quantum key distribution system
RU2739135C1 (en) * 2020-09-23 2020-12-21 Олег Дмитриевич Гурин Method and system for secure management of backup copies of states of remote computing devices, with the function of encryption of random access memory on a central processing unit, using quantum key distribution

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030169880A1 (en) * 2002-02-22 2003-09-11 Nec Corporation Quantum cryptography key distribution system and method
US20110126011A1 (en) * 2009-11-24 2011-05-26 Electronics And Telecommunications Research Institute Method of user-authenticated quantum key distribution
US20130251145A1 (en) * 2010-12-02 2013-09-26 Qinetiq Limited Quantum key distribution
US20170230174A1 (en) * 2014-10-31 2017-08-10 Sk Telecom Co., Ltd. Method and device for synchronizing quantum data start points in quantum key distribution system
RU2739135C1 (en) * 2020-09-23 2020-12-21 Олег Дмитриевич Гурин Method and system for secure management of backup copies of states of remote computing devices, with the function of encryption of random access memory on a central processing unit, using quantum key distribution

Similar Documents

Publication Publication Date Title
CN111448579A (en) Quantum certified block chains
US20210344500A1 (en) Computer-implemented system and method for transferring access to digital resource
US10887104B1 (en) Methods and systems for cryptographically secured decentralized testing
US20230412358A1 (en) Blockchain-implemented security systems and methods for blinded outcome selection
US11838405B1 (en) Blockchain delegation
US20220368539A1 (en) Computer implemented method and system for storing certified data on a blockchain
US20230237437A1 (en) Apparatuses and methods for determining and processing dormant user data in a job resume immutable sequential listing
CN115885498A (en) Threshold signature
CN115211073A (en) Public key generation method
CN113939821A (en) System and method for non-parallel mining on a workload justification blockchain network
CN115885497A (en) Digital signature
US20230316241A1 (en) Partitioning a request into transactions for a blockchain
US20220278843A1 (en) Computer implemented method and system for knowledge proof in blockchain transactions
CN115244894A (en) Hash message authentication code generation method
CN113228075A (en) Computer-implemented system and method for controlling or enforcing transfers made on a blockchain
RU2755672C1 (en) Method for secure storage and updating data in distributed register using quantum communication networks
CN112384939B (en) Computer-implemented system and method for out-of-chain exchange of distributed ledger-related transactions
Bari et al. Generalized Immutable Ledger (GILED) using Blockchain Technology
CN112970227A (en) Computer-implemented system and method including public key combination verification
Len et al. ELEKTRA: Efficient Lightweight multi-dEvice Key TRAnsparency
Michelagnoli Quantum-resistant Blockchain
Doshi Blockchain as a service
CN116547942A (en) Key derivation method