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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
Abstract
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
[0033] Указанная сеть 100 может состоять из двух уровней, например, первый уровень 105 - может представлять полносвязную сеть генерации симметричных ключей с помощью квантового распределения ключей (КРК, от англ. Quantum key distribution / QKD). Указанный уровень 105 в свою очередь может содержать устройства КРК 106 и квантовые каналы 107, с помощью которых происходит процесс квантового распределения ключей. В качестве квантовых каналов 107 может быть использовано, например, оптоволокно. Для специалиста в данной области техники должно быть очевидно, что квантовые каналы, необходимые для функционирования устройств КРК 106, могут быть построены любыми известными из уровня техники способами с применением соответствующего оборудования.[0033] The specified
[0034] Все сгенерированные ключи 108 далее поступают на второй уровень сети 110, в котором происходит обмен исключительно классическими данными (сообщения между узлами сети). Под классическими данными в данном решении следует понимать данные, которые передаются по классическим каналам связи, построенным на передаче информации в виде битов и/или аналоговых сигналов (радиосвязь, кабельные каналы связи и т.д.). Стоит отметить, что разделение сети 100 на уровни может являться как логическим, так и физическим (как было описано выше) и не должно ограничивать варианты осуществления настоящего решения.[0034] All generated
[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
[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]
[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
[0044] Возвращаясь к Фиг. 1, сеть 100 представляет собой одноранговую сеть, состоящую из узлов 121, 122, 123, 124, где в качестве узлов используются вычислительные устройства, которые участвуют в процессах обновления распределенного реестра. Узел 121, Узел 122, Узел 123 и узел 124 попарно связаны между собой и выполнены с возможностью обмена данными и хранения собственных копий реестра. Квантовые каналы связи, как описано выше, могут формироваться на существующих каналах связи сети 100 или быть обособленными и предназначены для попарного соединения узлов сети и распределения ключей между указанными узлами. Как описывалось выше, для попарного распределения ключей между узлами сети могут использоваться устройства квантовой криптографии и соответствующие протоколы, обеспечивающие безусловную безопасность. В изображенном примере каждый из узлов 121-124 представляет участника распределенного реестра и может выполнять набор функций или инструкций, содержащих последовательность действий, связанных с обновлением распределенного реестра и взаимодействием с другими узлами сети.[0044] Returning to FIG. 1,
[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
[0046] На этапе 201 происходит создание пар симметричных ключей между всеми узлами сети. На указанном этапе 201 все узлы сети, попарно связанные между собой с помощью устройств КРК, генерируют симметричные ключи. Как указывалось выше, генерация ключей происходит с помощью квантовых каналов, соединяющих указанные узлы между собой. Указанный этап гарантирует, за счет законов квантовой механики, безусловную безопасность сгенерированных ключей. Далее способ 200 переходит к этапу 202.[0046] At
[0047] На этапе 202 фиксируют текущее допустимое количество скомпрометированных узлов Т в распределенном реестре. Указанный параметр Т фиксируется в данных распределенного реестра на каждом этапе его обновления. Начальное допустимое количество скомпрометированных узлов Т в распределенном реестре может быть задано на стадии формирования начального состояния реестра («генезисного блока») и обусловлено требованиями к будущему реестру.[0047] At
[0048] На этапе 203 формируют, по меньшей мере одним из узлов сети, транзакцию. Указанная транзакция формируется узлом сети для инициации внесения изменений в распределенный реестр. Узел сети формирует транзакцию, содержащую новые и/или измененные данные распределенного реестра, и предлагает указанное изменение всем остальным узлам сети (транслирует транзакцию всем остальным узлам сети). Под транзакцией в данном решении понимается раздел данных, который транслируется в сеть.[0048] At
[0049] На этапе 204 транслируют, узлом, сформировавший транзакцию, указанную транзакцию остальным узлам сети, по меньшей мере с помощью одного из следующих алгоритмов: с помощью алгоритма широковещания на попарно аутентифицированных сообщениях, в случае, если текущее допустимое количество скомпрометированных узлов Т меньше порогового значения Tcrit, или с помощью алгоритма широковещания на псевдоподписях, в случае, если текущее допустимое количество скомпрометированных узлов Т больше или равно допустимому пороговому значению Tcrit.[0049] At
[0050] На указанном этапе 204 происходит процесс достижения консенсуса между всеми узлами распределенного реестра. Для сохранения целостности реестра, при его обновлении все узлы сети должны либо принять транзакцию, полученную от узла, инициировавшего обновление реестра (отправителя) и обновить, в соответствии с содержанием указанной транзакции, собственную копию реестра либо не принимать транзакцию в случае, если не удалось достигнуть консенсуса в отношении указанной транзакции. Однако, в связи с тем, что узлы не могут доверять друг другу и отправителю в том числе, для обновления распределенного реестра требуется удостовериться, что отправитель действительно транслировал одну и ту же транзакцию всем остальным узлам, а не разные транзакции каждому узлу, и, в случае обнаружения таких различий, независимо прекратить процесс принятия транзакции. Для обеспечения вышеуказанных требований в настоящем техническом решении были реализованы алгоритмы широковещания, описанные ниже.[0050] At this
[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
[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
[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
[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
[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
[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
[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
[0075] Узлы 303, 304, 305, 306, 307 также совершают указанную последовательность действий.[0075]
[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
[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 (
[0091] Так, на шаге 1 узел 401, являющийся в данном примере отправителем, генерирует свой секретный ключ Sk401, а каждый получающий узел 402-405 генерирует свой набор верифицирующих ключей Vk. Секретный и верифицирующие ключи генерируются на основе пар симметричных ключей, распределенных между узлами сети при помощи устройств квантовой криптографии. Таким образом, каждый узел 402-405 получает свой верифицирующий ключ Vk, с помощью которого происходит проверка подлинности сообщения, отправленного узлом 401 и подписанное его секретным ключом. Узел 402 получает верифицирующий ключ , где верхний индекс ключа показывает номер узла, сообщение которого должно верифицироваться ключом, а нижний индекс показывает номер узла, который совершает верификацию сообщения, которое было отправлено узлом, чей номер находится в верхнем индексе. Аналогичным образом верифицирующие ключи распределяются между остальными узлами сети. Так, узел 403 получает верифицирующий ключ узел 404 получает верифицирующий ключ узел 405 получает верифицирующий ключ [0091] So, in
[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 и , и, соответственно, два набора верифицирующих ключей Vk для всех остальных узлов сети (узлы 403-405). Секретные и верифицирующие ключи узла 402 генерируются таким же образом, как и ключи узла 401. Кроме того, каждый получающий узел 403-405 также генерирует два секретных ключа Sk и , и два набора верифицирующих ключей Vk. По итогу генерации всеми получающими узлами сети 402-405 собственных секретных ключей Sk и , а также наборов верифицирующий ключей Vk и дальнейшего обмена верифицирующими ключами Vk между друг другом, каждый узел сети будет иметь следующий локальный набор секретных и верифицирующих ключей: локальный набор ключей узла 402 будет содержать следующие ключи: , Sk402, , , , , , , , где, соответственно, верифицирующие ключи , , ,, , , являются ключами, предназначенными для верификации сообщений, подписанных первым или вторым собственным секретным ключом каждого из узлов 403-405. Локальный набор ключей узла 403 будет содержать следующие ключи:, Sk403, , , , , , , , локальный набор узла 404 будет соответственно содержать следующие ключи: , Sk404, , , , , , , , и локальный набор ключей узла 405 будет содержать: , Sk405, , ,,,,,.[0093] So, at the specified step of the algorithm, the
[0094] Таким образом, на вышеописанных шаге 1 и шаге 2 алгоритма широковещания на псевдоподписях происходит генерация и обмен ключами для реализации псевдоподписи. Для специалиста в данной области техники очевидно, что при увеличении количества узлов, участвующих в обновлении реестра и достижении консенсуса, количество верифицирующих ключей будет возрастать пропорционально количеству узлов.[0094] Thus, in the
[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
[0097] Как, указывалось выше, поскольку узлы 402-405 не могут быть уверены в том, что узел 401 транслировал одно и то же сообщение всем узлам сети, то будем обозначать сообщение с транзакцией, предлагаемое узлом 401, как mn, где индекс n характеризует версию сообщения, получаемую n-ым узлом. Таким образом, узел 402 получает сообщение m402, узел 403 получает сообщение m403, узел 404 получает сообщение m404, узел 405 получает сообщение m405. Далее каждый из узлов 402-405 проверяет своим верифицирующим ключом , , , псевдоподпись отправляющего узла, и, в случае успешной проверки, сохраняет полученную транзакцию в собственный локальный массив транзакций. Как упоминалось выше, массив транзакций может храниться в локальном средстве хранения узла.[0097] As indicated above, since nodes 402-405 cannot be sure that
[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
[0099] Для этого на шаге 4 каждый из узлов 402-405 подписывает своим секретным ключом Skn, где n - номер узла, свою версию проверенного сообщения mn. Таким образом, на указанном шаге узел 402 подписывает транзакцию m402 своим первым ключом Sk402, узел 403 подписывает транзакцию m403 своим первым ключом Sk403, узел 404 подписывает транзакцию m404 своим первым ключом Sk404 и узел 405 подписывает транзакцию т405 своим первым ключом Sk405.[0099] To do this, at
[0100] Соответственно, каждый из узлов 402-405 далее транслирует свою версию транзакции, подписанную своим секретным ключом остальным узлам сети (шаг 5). При этом каждый узел, получающий транзакцию, содержащую псевдоподпись другого узла, проверяет верифицирующим ключом ее подлинность. Таким образом, каждый из узлов 402-405 формирует следующий набор транзакций: узел 402 будет содержать следующие транзакции: m402, m403, m404, m405. Причем, транзакции т403, т404, т405 при получении были подписаны ключами Sk403, Sk404 и Sk405 соответственно и проверены на подлинность указанным узлом 402 с помощью верифицированных ключей , , . Также, стоит отметить, что для получения транзакций 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:
[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
[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 (
[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
[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,
[0107] Рассмотрим более подробно шаг 7 на примере узла 402, получившего от узла 403 версию сообщения, отличающуюся от версий узлов 404 и 405 (m402=m404=m405 ≠ m403). Поскольку версии транзакций отличаются друг от друга, то узлу 402 необходимо завершить алгоритм и не принимать указанную транзакцию, однако, для того, чтобы остальные узлы сети также приняли аналогичное решение, необходимо оповестить их о том, что происходит подлог, т.к. узлы 403-405 потенциально могли получить локальные наборы транзакций, где все транзакции будут одинаковы.[0107] Consider
[0108] Следовательно, для того чтобы остальные узлы сети также получили информацию от узла 402, что версии транзакций отличаются, узел 402 подписывает своим вторым ключом транзакцию m403 и транслирует ее остальным участникам сети. Введем обозначение указанной транзакции как (транзакция m403 подписанная вторым ключом ).[0108] Therefore, in order for the rest of the network nodes to also receive information from the
[0109] Каждый из узлов сети верифицирует транзакцию m403, отправленную узлом 402 соответствующим ключом , и подписывает своим вторым секретным ключом , указанную верифицированную транзакцию , т.к. указанные узлы не могут доверять узлу 402. После подписи узлами 404, 405, каждый из указанных узлов транслирует сообщение всем остальным узлам.[0109] Each of the network nodes verifies transaction m403, sent by
[0110] Далее, каждый получающий узел 404, 405 верифицирует своим ключом , транзакцию и проверяет, совпадает ли транзакция, полученная от узла 402 и подписанная его вторым секретным ключом, с транзакцией, которую указанные узел 402 также отослал другим узлам. За счет дополнительной пересылки транзакции узлами, получившими ее от узла 402 (в нашем примере узлы 404, 405), указанные узлы определяют находится ли узел 402 в сговоре, и, следовательно, честно ли он разослал всем участникам сети транзакцию .[0110] Next, each receiving
[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
[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
[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,
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)
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)
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 |
-
2021
- 2021-03-26 RU RU2021108148A patent/RU2755672C1/en active
Patent Citations (5)
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 |