СПОСОБ БЕЗОПАСНОГО ХРАНЕНИЯ И ОБНОВЛЕНИЯ ДАННЫХ В РАСПРЕДЕЛЕННОМ РЕЕСТРЕ С ПОМОЩЬЮ СЕТЕЙ КВАНТОВЫХ КОММУНИКАЦИЙ
METHOD FOR SECURE STORAGE AND UPDATING DATA IN DISTRIBUTED REGISTER USING QUANTUM COMMUNICATION NETWORKS

ОБЛАСТЬ ТЕХНИКИ
[0001] Настоящее техническое решение, в общем, относится к области технологий передачи данных в распределенных системах, а более конкретно к безопасному хранению и обновлению данных распределенных реестров в сетях квантовой коммуникации (квантовой криптографии).
УРОВЕНЬ ТЕХНИКИ
[0002] В настоящее время большую популярность набирают технологии распределенных реестров, такие, как блокчейн (blockchain, или цепочка блоков). Технология распределенного реестра (Distributed Ledger Technology, или DLT) - это электронная система баз данных, распределенная между несколькими сетевыми узлами или устройствами. Указанная технология позволяет записывать и хранить информацию в сети, которая одновременно является распределенной и децентрализованной. Важной особенностью DLT является отсутствие центрального органа управления, совместное использование и синхронизация информации согласно алгоритму консенсуса и распределение этой базы данных в разных географических точках.
[0003] DLT имеет ряд преимуществ, в числе которых высокий уровень прозрачности, эффективность, автоматизация (за счет контроля сети самими пользователями), отсутствие необходимости в посредниках, третьих лицах или центральном контролирующем органе, высокий уровень безопасности благодаря инновационной системе хранения информации в распределенной по всей сети базе данных. Именно за счет описанных преимуществ технологии DLT стали активно внедряться в такие сферы, как финансы, голосование, здравоохранение, цепочки поставок, сельское хозяйство и т.д.
[0004] В основе технологий DLT лежит использование криптографии с открытым ключом, которая построена на так называемых односторонних функциях, для которых по известному аргументу достаточно просто найти значение функции, но обратная операция крайне сложна. На основе таких функций обеспечивается целостность базы данных у всех независимых пользователей, например, используются криптографические хэш-функции, электронно цифровые подписи и прочие математические приемы, затрудняющие подделку и взлом этого реестра.
[0005] Кроме того, другим основным компонентом распределенных реестров, предназначенным для обеспечения безопасного обновления данных, является алгоритм достижения консенсуса. Алгоритм достижения консенсуса - это процесс, который используется для достижения соглашения в отношении одного значения данных среди распределенных участников сети или систем. Узлы сети достигают согласия в отношении общего состояния реестра за счет использования специального механизма верификации предлагаемых обновлений (задействуются механизмы или алгоритмы, которые не позволяют приводить к возникновению конфликтов в реестре).
[0006] Однако с появлением квантовых компьютеров алгоритмы достижения консенсуса и алгоритмы электронной цифровой подписи могут оказаться под угрозой, поскольку такие компьютеры позволяют решать определенные математические задачи (на которых построена классическая криптография в том числе), решение которых ранее с помощью классических компьютеров не представлялось возможным.
[0007] Поэтому развитие технологий квантовой защиты информации и создание криптостойких к атакам с помощью квантового компьютера алгоритмов передачи данных и достижения консенсуса в распределенных реестрах являются актуальными и важными проблемами.
[0008] Так, из уровня техники известна технология обновления распределенного реестра в сети квантовой криптографии, описанная в заявке на патент Китая №CN 110602077А (CHANG YAN et al.), опубл. 20.12.2020. Указанная технология описывает возможность применения сети квантовой коммуникации для реализации анонимного голосования при помощи блокчейна и применение алгоритма достижения консенсуса для подтверждения честности результатов и сбора статистики.
[0009] К недостаткам указанного решения можно отнести его узконаправленность (применяется только в частном случае реализации системы распределенных реестров, а именно, только в технологии blockchain), что делает невозможным его использование в других системах распределенных реестров. Кроме того, алгоритм достижения консенсуса в указанном решении применим только в том случае, когда количество потенциально скомпрометированных узлов во всей сети меньше одной трети.
[0010] Общим недостатком существующих решений в данной области является отсутствие способа обновления и безопасного хранения данных в распределенном реестре, стойкого к атакам с помощью квантового компьютера. Кроме того, такой способ должен обеспечивать безопасность целостности данных при любом количестве скомпрометированных узлов.
СУЩНОСТЬ ТЕХНИЧЕСКОГО РЕШЕНИЯ
[0011] Данное техническое решение направлено на устранение недостатков, присущих существующим решениям, известным из уровня техники.
[0012] Решаемой технической проблемой, присущей решениям из уровня техники, в данном техническом решении является создание нового способа безопасного хранения и обновления данных в распределенном реестре на основании сети квантовой коммуникации (квантовой криптографии).
[0013] Основным техническим результатом, проявляющимся при решении вышеуказанной проблемы, является повышение защищенности хранения и обновления данных в распределенном реестре.
[0014] Еще одним техническим результатом, проявляющимся при решении вышеуказанной проблемы, является возможность обеспечения целостности данных распределенного реестра при любом количестве скомпрометированных узлов.
[0015] Заявленные технические результаты достигаются за счет реализации способа безопасного распределенного хранения и обновления данных в распределенном реестре на основании сети квантовой коммуникации, в которой все N узлов сети, где N>2, попарно связаны друг с другом устройствами квантового распределения ключей и хранят копию распределенного реестра, содержащего этапы, на которых:
a) создают, с помощью устройств квантовой криптографии, пары симметричных ключей между всеми узлами сети;
b) фиксируют текущее допустимое количество скомпрометированных узлов Т в распределенном реестре;
c) формируют, по меньшей мере одним из узлов сети, транзакцию;
d) транслируют узлом, сформировавшим транзакцию, указанную транзакцию остальным узлам сети, по меньшей мере с помощью одного из следующих алгоритмов:
crit
• с помощью алгоритма широковещания на попарно аутентифицированных сообщениях, в случае, если текущее допустимое количество скомпрометированных узлов Т меньше порогового значения T, или
crit
• с помощью алгоритма широковещания на псевдоподписях, в случае, если текущее допустимое количество скомпрометированных узлов больше Т или равно допустимому пороговому значению T;
е) обновляют собственные копии реестра узлами сети, принявшими транзакцию на этапе d).
crit
[0016] В одном из частных вариантов реализации пороговым значением допустимого количества скомпрометированных узлов T является количество узлов, равное одной трети от общего количества узлов.
[0017] В другом частном варианте реализации алгоритмом широковещания на попарно аутентифицированных сообщениях является алгоритм широковещания, содержащий этапы, на которых:
• посылают сообщение с транзакцией узлом, сформировавшим транзакцию, остальным узлам сети вместе с соответствующей имитовставкой;
• инициализируют каждым получателем транзакции два пустых набора транзакций;
• проверяют каждым из узлов-получателей имитовставку для полученной транзакции и, в случае успешности проверки, сохраняют копию полученной транзакции в первый набор транзакций, и пересылают сообщение с транзакцией остальным участникам сети, за исключением узла-отправителя, добавляя к ней маркер получения транзакции, а также собственную имитовставку;
• при получении транзакции с одним или несколькими неповторяющимися маркерами и имитовставкой, проверяют имитовставку, и, в случае успешности проверки, выполняют сохранение транзакции вместе с полученными маркерами получения в первый набор транзакций, и осуществляют пересылку данной транзакции вместе с добавленным собственным маркером получения к имевшимся ранее маркерам и соответствующей имитовставкой всем узлам сети, кроме узла, сформировавшего данную транзакцию, и узлов сети, чьи маркеры содержались в полученном сообщении;
• повторяют пересылку транзакций, описанную в предыдущем этапе, пока пересылаемые сообщения с транзакциями не будут содержать Т маркеров;
• переносят все транзакции с Т маркерами во второй набор транзакций;
K
K
K
K
• для каждой возможной последовательности маркеров Х из К маркеров, где К последовательно принимает значения от Т-1 до 0, формируют транзакцию с последовательностью маркеров Х во втором наборе транзакций как транзакцию, наиболее часто встречающуюся в подмножестве транзакций из транзакции с последовательностью маркеров Х первого набора и транзакций с К+1 маркерами второго набора, в которых первые К маркеров совпадают с Х;
• принимают транзакцию из второго набора транзакций, не содержащую маркеров.
[0018] В другом частном варианте реализации имитовставка вычисляется на основе (почти-) строго универсального семейства функций 2-го порядка и пары симметричных ключей, распределенных между узлом-отправителем данного сообщения и соответствующим узлом-получателем.
[0019] В другом частном варианте реализации алгоритмом широковещания на псевдоподписях является алгоритм широковещания, содержащий этапы, на которых:
• генерируют узлом, сформировавшим транзакцию, по меньшей мере один секретный ключ псевдоподписи и набор соответствующих верифицирующих ключей для остальных узлов сети,
• генерируют остальными узлами сети по меньшей мере два секретных ключа псевдоподписи и набор соответствующих верифицирующих ключей по меньшей мере для всех остальных узлов сети, кроме узла, сформировавшего транзакцию;
• генерируют остальными узлами сети пустой массив для новых транзакций; транслируют сформировавшим транзакцию узлом сообщение, содержащее транзакцию, подписанное псевдоподписью, сгенерированной с помощью секретного ключа указанного узла, остальным узлам сети;
• верифицируют каждым из узлов, получивших сообщение с транзакцией, псевдоподпись, и, в случае успешности проверки, добавляют транзакцию в свой массив новых транзакций;
• подписывают каждым из узлов, получивших сообщение, проверенное на предыдущем шаге, указанное сообщение дополнительной псевдоподписью, созданной с помощью своего первого секретного ключа псевдоподписи;
• транслируют сообщение, подписанное на предыдущем шаге, с транзакцией остальным участникам сети;
• если по прошествии времени, необходимого на последовательную пересылку сообщений количеству узлов сети Т+1, в наборе транзакций каждого узла все транзакции идентичны, то данная транзакция принимается этим узлом сети.
[0020] В другом частном варианте реализации каждый узел, при получении сообщения с транзакцией и верифицированным набором псевдоподписей, проверяет, находится ли данная транзакция в его массиве новых транзакций, и, если полученная транзакция отсутствует в массиве, то указанный узел пересылает полученное сообщение с новой транзакцией всем остальным участникам сети, подписывая его своим вторым секретным ключом псевдоподписи, а также завершает обмен сообщениями и не принимает никакую транзакцию в рамках данного протокола широковещания.
[0021] В другом частном варианте реализации для генерации секретных ключей и набора верифицирующих ключей псевдоподписи используются попарные симметричные ключи, распределенные между всеми узлами сети.
[0022] В другом частном варианте реализации попарные симметричные ключи формируются с помощью устройств квантовой криптографии.
ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0023] Признаки и преимущества настоящего изобретения станут очевидными из приводимого ниже подробного описания изобретения и прилагаемых чертежей, на которых:
[0024] Фиг. 1 иллюстрирует общую схему построения распределенного реестра на основе сети квантовой коммуникации.
[0025] Фиг. 2 иллюстрирует блок схему способа безопасного обновления и хранения данных в распределенном реестре.
[0026] Фиг. 3 иллюстрирует пример реализации алгоритма широковещания на попарно аутентифицированных сообщениях.
[0027] Фиг. 4А-4Б иллюстрируют пример реализации алгоритма широковещания на псевдоподписях.
[0028] Фиг. 5 иллюстрирует общий вид вычислительного устройства.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
[0029] Заявленное решение обеспечивает возможность безопасного хранения и обновления данных в распределенном реестре при любом количестве потенциально скомпрометированных узлов сети за счет нового алгоритма достижения консенсуса между узлами. Также указанное решение обеспечивает защиту сети от атак с помощью квантовых компьютеров.
[0030] В нижеследующем описании с целью пояснения изложены многочисленные конкретные детали, чтобы обеспечить полное понимание различных вариантов осуществления заявленного технического решения. Однако специалисту в данной области техники будет очевидно, что различные варианты осуществления настоящего технического решения могут быть реализованы на практике без некоторых из этих конкретных деталей. Последующее описание предоставляет только примерные варианты осуществления и не предназначено для ограничения объема или применимости раскрытия. Также следует принять во внимание, что элементы заявленного решения могут быть реализованы на практике множеством способов помимо конкретных деталей, изложенных в данном документе.
[0031] Заявленное техническое решение может быть реализовано с помощью стандартных вычислительных устройств, известных на текущий момент в уровне техники, например, с помощью компьютера, смартфона, планшета, сервера и любого другого устройства, обеспечивающего исполнение требуемой программной логики.
[0032] На Фиг. 1 представлена общая схема сети 100 для реализации способа безопасного обновления и хранения данных в распределенном реестре.
[0033] Указанная сеть 100 может состоять из двух уровней, например, первый уровень 105 - может представлять полносвязную сеть генерации симметричных ключей с помощью квантового распределения ключей (КРК, от англ. Quantum key distribution / QKD). Указанный уровень 105 в свою очередь может содержать устройства КРК 106 и квантовые каналы 107, с помощью которых происходит процесс квантового распределения ключей. В качестве квантовых каналов 107 может быть использовано, например, оптоволокно. Для специалиста в данной области техники должно быть очевидно, что квантовые каналы, необходимые для функционирования устройств КРК 106, могут быть построены любыми известными из уровня техники способами с применением соответствующего оборудования.
[0034] Все сгенерированные ключи 108 далее поступают на второй уровень сети 110, в котором происходит обмен исключительно классическими данными (сообщения между узлами сети). Под классическими данными в данном решении следует понимать данные, которые передаются по классическим каналам связи, построенным на передаче информации в виде битов и/или аналоговых сигналов (радиосвязь, кабельные каналы связи и т.д.). Стоит отметить, что разделение сети 100 на уровни может являться как логическим, так и физическим (как было описано выше) и не должно ограничивать варианты осуществления настоящего решения.
[0035] КРК - это способ генерации ключей, который использует квантовые явления для гарантии безопасности генерируемых ключей. Этот способ позволяет двум сторонам, соединенным по открытому классическому каналу связи и квантовому каналу связи, создать пару идентичных случайных битовых последовательностей (ключей), которые известны только им, и использовать их в других криптографических протоколах.
[0036] КРК основывается на фундаментальных законах квантовой механики, утверждающих, что процесс измерения квантовой системы в общем случае изменяет ее состояние. Третьей стороне, пытающейся получить ключ, необходимо измерять передаваемые по квантовому каналу связи состояния, что ведет к их изменению и появлению ошибок. Таким образом, использование квантовых состояний позволяет обнаружить факт вмешательства в процесс передачи информации по квантовому каналу за счет появления ошибок. Если количество ошибок ниже определенного порога, то существует возможность генерации ключа между двумя пользователями. В противном случае секретный ключ не будет создан, и протокол генерации ключа прекращается.
[0037] Принцип работы способа квантового распределения ключей может быть основан на передаче одиночных фотонов, поляризованных в одном из двух базисов: прямоугольном или диагональном. Получатель измеряет поляризацию, выбирая базисы для измерения случайным образом, и записывает результаты измерений и базисы. Затем отправитель и получатель обмениваются информацией об использованных базисах (но не о результатах измерения) по открытому каналу, и данные, полученные при не совпавших базисах, сбрасываются.
[0038] В качестве протоколов, применяющихся для передачи ключа, могут быть использованы, например, протокол ВВ84, протокол В92, протокол Е91 и т.д.
[0039] В качестве устройств квантовой криптографии 106 в сети 100 могут использоваться, например, устройства квантовой криптографии от таких компаний, как ID Quantique, QRate и т.д. Указанные устройства могут состоять из таких элементов (частей), как источники излучения одиночных фотонов, детекторы фотонов, квантовые генераторы случайных чисел, коммутаторы и других необходимых элементов.
[0040] Для специалиста в данной области техники очевидно, что для генерации ключей между всеми парами узлов сети могут быть использованы любые известные из уровня техники устройства КРК.
[0041] Сеть передачи данных 100 может представлять, например, телекоммуникационную сеть и может содержать вычислительные устройства. В частных вариантах реализации сеть 100 может представлять локальную сеть (LAN), глобальную сеть (WAN), Интернет, одноранговую сеть, или их комбинацию. Сеть 100 может представлять проводную сеть, беспроводную сеть и их комбинацию, предназначенную для распределенного взаимодействия вычислительных устройств такой сети. Вычислительными устройствами могут являться, например, узлы связи 121, 122, 123, 124. Указанные узлы могут представлять сервера, облачные сервера, компьютеры, мобильные вычислительные устройства, смартфоны, ноутбуки и т.д. Вычислительные устройства обеспечивают возможность участия в качестве узлов 121, 122, 123, 124 в распределенной сети 100 для формирования распределенного реестра. Узлы 121-124 выполнены с возможностью взаимодействия с другими устройствами сети 100, а также выполнения предписанных им инструкций.
[0042] Термин «инструкции», используемый в этой заявке, может относиться, в общем, к командам в программе, которые написаны для осуществления конкретной функции, такой, как формирование транзакции, передача и прием сообщений и/или транзакций, хранение копии распределенного реестра, формирование подписи и т.д. Инструкции могут быть осуществлены множеством способов, включающих в себя, например, объектно-ориентированные методы. Например, инструкции могут быть реализованы, посредством языка программирования С++, Java, Python, различных библиотек (например, "MFC" - Microsoft Foundation Classes) и т.д. Инструкции, осуществляющие процессы, описанные в этом решении, могут передаваться как по проводным, так и по беспроводным линиям передачи.
[0043] Узлы 121-124, в общем, могут относиться к отдельной системе (например, компьютеру, серверу), которая подключена к сети 100 и состоит из указанных узлов, каждый из которых и/или часть из которых участвует в формировании, обновлении и хранении данных распределенного реестра. В примере по Фиг. 1, каждый участник сети соответствует каждому узлу 121-124, однако для специалиста в данной области техники очевидно, что участник может соответствовать нескольким узлам сети 100, равно как и несколько участников могут быть объединены в один узел. Кроме того, в одном частном варианте осуществления каждый узел сети 100 может участвовать в консенсусе (достижении согласия о принятии единого решения всеми участниками сети в отношении данных (транзакций), которыми предлагается обновить распределенный реестр).
[0044] Возвращаясь к Фиг. 1, сеть 100 представляет собой одноранговую сеть, состоящую из узлов 121, 122, 123, 124, где в качестве узлов используются вычислительные устройства, которые участвуют в процессах обновления распределенного реестра. Узел 121, Узел 122, Узел 123 и узел 124 попарно связаны между собой и выполнены с возможностью обмена данными и хранения собственных копий реестра. Квантовые каналы связи, как описано выше, могут формироваться на существующих каналах связи сети 100 или быть обособленными и предназначены для попарного соединения узлов сети и распределения ключей между указанными узлами. Как описывалось выше, для попарного распределения ключей между узлами сети могут использоваться устройства квантовой криптографии и соответствующие протоколы, обеспечивающие безусловную безопасность. В изображенном примере каждый из узлов 121-124 представляет участника распределенного реестра и может выполнять набор функций или инструкций, содержащих последовательность действий, связанных с обновлением распределенного реестра и взаимодействием с другими узлами сети.
[0045] На Фиг. 2 показана блок схема способа 200 безопасного обновления и хранения данных в распределенном реестре. Указанный способ может выполняться в сети 100, посредством элементов сети 100, описанных выше. Формирование системы распределенного хранения и обновления данных подразумевает взаимодействие в сети, такой, как сеть 100, набора независимых узлов, таких как узлы 121-124, для обеспечения функций распределенного реестра. Требованием к количеству узлов сети N является количество узлов N>2, для обеспечения условия формирования распределенного реестра, причем все узлы должны быть попарно связаны друг с другом устройствами КРК и хранить копию распределенного реестра.
[0046] На этапе 201 происходит создание пар симметричных ключей между всеми узлами сети. На указанном этапе 201 все узлы сети, попарно связанные между собой с помощью устройств КРК, генерируют симметричные ключи. Как указывалось выше, генерация ключей происходит с помощью квантовых каналов, соединяющих указанные узлы между собой. Указанный этап гарантирует, за счет законов квантовой механики, безусловную безопасность сгенерированных ключей. Далее способ 200 переходит к этапу 202.
[0047] На этапе 202 фиксируют текущее допустимое количество скомпрометированных узлов Т в распределенном реестре. Указанный параметр Т фиксируется в данных распределенного реестра на каждом этапе его обновления. Начальное допустимое количество скомпрометированных узлов Т в распределенном реестре может быть задано на стадии формирования начального состояния реестра («генезисного блока») и обусловлено требованиями к будущему реестру.
[0048] На этапе 203 формируют, по меньшей мере одним из узлов сети, транзакцию. Указанная транзакция формируется узлом сети для инициации внесения изменений в распределенный реестр. Узел сети формирует транзакцию, содержащую новые и/или измененные данные распределенного реестра, и предлагает указанное изменение всем остальным узлам сети (транслирует транзакцию всем остальным узлам сети). Под транзакцией в данном решении понимается раздел данных, который транслируется в сеть.
crit
crit
[0049] На этапе 204 транслируют, узлом, сформировавший транзакцию, указанную транзакцию остальным узлам сети, по меньшей мере с помощью одного из следующих алгоритмов: с помощью алгоритма широковещания на попарно аутентифицированных сообщениях, в случае, если текущее допустимое количество скомпрометированных узлов Т меньше порогового значения T, или с помощью алгоритма широковещания на псевдоподписях, в случае, если текущее допустимое количество скомпрометированных узлов Т больше или равно допустимому пороговому значению T.
[0050] На указанном этапе 204 происходит процесс достижения консенсуса между всеми узлами распределенного реестра. Для сохранения целостности реестра, при его обновлении все узлы сети должны либо принять транзакцию, полученную от узла, инициировавшего обновление реестра (отправителя) и обновить, в соответствии с содержанием указанной транзакции, собственную копию реестра либо не принимать транзакцию в случае, если не удалось достигнуть консенсуса в отношении указанной транзакции. Однако, в связи с тем, что узлы не могут доверять друг другу и отправителю в том числе, для обновления распределенного реестра требуется удостовериться, что отправитель действительно транслировал одну и ту же транзакцию всем остальным узлам, а не разные транзакции каждому узлу, и, в случае обнаружения таких различий, независимо прекратить процесс принятия транзакции. Для обеспечения вышеуказанных требований в настоящем техническом решении были реализованы алгоритмы широковещания, описанные ниже.
crit
crit
[0051] Рассмотрим алгоритм широковещания на попарно аутентифицированных сообщениях. Принцип работы данного алгоритма основывается на способе решения задачи византийских генералов, известном из работы [3]. Так, если текущее допустимое количество скомпрометированных узлов Т меньше порогового значения T, то для достижения консенсуса применяется алгоритм широковещания на попарно аутентифицированных сообщениях. Как указывалось выше, значение параметра Т может быть получено каждым узлом сети из данных распределенного реестра. Пороговым значением допустимого количества скомпрометированных узлов T при выборе алгоритма широковещания может являться значение, не большее одной трети от общего количества узлов. Указанное пороговое значение выбрано на основании особенностей алгоритма. Алгоритм широковещания на попарно аутентифицированных сообщениях предназначен для согласования единой версии транзакции, которая будет принята всеми участниками сети.
[0052] Для обеспечения целостности передачи данных узел, сформировавший транзакцию (отправитель), для обновления реестра, формирует имитовставку, и посылает транзакцию вместе с имитовставкой остальным узлам сети (осуществляет широковещание указанной транзакции). Имитовставка обеспечивает целостность и защиту от фальсификации передаваемой транзакции. Имитовставка может быть сформирована для каждого получающего узла на основе (почти-) строго универсального семейства функций 2-го порядка и пары симметричных ключей, распределенных между узлом-отправителем данного сообщения и соответствующим узлом-получателем. (Почти-) строго универсальные семейства функций 2-го порядка более подробны раскрыты в источнике [1]. Таким образом, каждый узел сети получает версию транзакции от отправителя.
[0053] После получения узлами транзакции отправителя, каждый узел сети сохраняет полученную транзакцию в собственном первом наборе транзакций. Набор транзакций может быть инициализирован узлами сети в средстве хранения такого узла. Для специалиста в данной области техники очевидно, что может быть сформировано любое количество наборов транзакций. Указанный набор транзакций может представлять файл в памяти узла, таблицу, список и т.д.
[0054] Перед добавлением полученной копии транзакции каждый из узлов-получателей проверяет имитовставку для полученной транзакции и, в случае успешности проверки сохраняет копию полученной транзакции в первый набор транзакций, сформированный на предыдущем шаге. После чего пересылает полученную транзакцию остальным узлам сети, за исключением узла-отправителя, добавляя к ней маркер получения транзакции, а также собственную имитовставку. Маркер получения транзакции может быть предназначен для определения маршрута транзакции и может представлять собой код идентификации узла в сети, подтверждающий, что данный узел получил указанную транзакцию.
[0055] Далее, все узлы сети, при получении транзакции с одним или несколькими неповторяющимися маркерами и имитовставкой, проверяют имитовставку, и, в случае успешности проверки, выполняют сохранение транзакции вместе с полученными маркерами получения в первый набор транзакций, и осуществляют пересылку данной транзакции вместе с добавленным собственным маркером получения к имевшимся ранее маркерам и соответствующей имитовставкой всем узлам сети, кроме узла, сформировавшего данную транзакцию, и узлов сети, чьи маркеры содержались в полученном сообщении. Указанный шаг обеспечивает возможность обмена версиями транзакции отправителя между всеми узлами сети.
[0056] Повторяют пересылку транзакций, описанную в предыдущем этапе, пока пересылаемые сообщения с транзакциями не будут содержать Т маркеров;
[0057] Переносят все транзакции с Т маркерами во второй набор транзакций;
K
K
K
K
[0058] Для каждой возможной последовательности маркеров Х из К неповторяющихся маркеров, где К последовательно принимает значения от Т-1 до 0, формируют транзакцию с последовательностью маркеров Х во втором наборе транзакций как транзакцию, наиболее часто встречающуюся в подмножестве транзакций из транзакции с последовательностью маркеров Х первого набора и транзакций с К+1 маркерами второго набора, в которых первые К маркеров совпадают с Х.
[0059] Принимают транзакцию из второго набора транзакций, не содержащую маркеров.
[0060] Для более ясного понимания работы указанного алгоритма рассмотрим пример его реализации, показанный на Фиг. 3. Указанный пример отображает принцип работы алгоритма на примере сети, содержащей семь узлов, попарно связанных между собой, для обновления и хранения данных распределенного реестра.
[0061] Будем рассматривать значение параметра Т=2, меньшее одной трети от общего числа узлов.
[0062] Каждый из узлов 301, 302, 303, 304, 305, 306, 307 является участником распределенной сети и может выполнять свойственные для такой сети функции, такие, как формирование транзакции, хранение копии реестра, взаимодействие с другими узлами сети, обмен симметричными ключами, процесс верификации и подписи транзакций и т.д.
[0063] Как описывалось выше, поскольку в распределенной сети отсутствует доверенный орган, который может подтверждать честность отправителя и хранить результаты взаимодействия участников сети, то основной задачей такой сети является достижение консенсуса, т.е. достижение согласия по поводу единого решения всеми узлами сети относительно определенного набора данных, предлагаемого для внесения в распределенную систему. За счет консенсуса обеспечивается надежность в сети с участием нескольких ненадежных узлов (потенциально скомпрометированных).
[0064] Рассмотрим процесс достижения консенсуса на примере указанных узлов.
[0065] Указанный далее пример описан с учетом того, что процесс обмена является целостным и защищенным, т.е. каждая транзакция, отправленная и полученная любым из узлов сети в указанном примере, содержит имитовставку, сформированную на основе пары симметричных ключей между узлом-отправителем и получателем, а также проверена и является корректной.
1
2
3
4
5
6
[0066] Пусть, узел 301 сформировал транзакцию для обновления распределенного реестра. Для обновления всеми остальными узлами сети собственных копий реестра узел 301 транслирует транзакцию узлам 302, 303, 304, 305, 306, 307 соответственно (шаг 1). Для удобства введем обозначение транзакции как m. Поскольку узлы 302, 303, 304, 305, 306, 307 не могут быть уверены в том, что узел 301 является нескомпрометированным узлом и каждый из получателей имеет такую же версию транзакции, то каждый из узлов-получателей создает в локальном хранилище набор транзакций и сохраняет туда версию транзакции от получателя. Таким образом, в каждом из локальных наборов узлов-получателей имеется копия транзакции отправителя. Обозначим их как m - копия транзакции отправителя, полученная узлом 302, m - копия транзакции отправителя, полученная узлом 303, m - копия транзакции отправителя, полученная узлом 304, m - копия транзакции отправителя, полученная узлом 305, m - копия транзакции отправителя, полученная узлом 306, m - копия транзакции отправителя, полученная узлом 307.
1
12
13
14
15
16
12
13
14
15
16
2
21
23
24
25
26
3
31
32
34
35
36
4
41
42
43
45
46
5
51
52
53
54
56
6
61
62
63
64
65
[0067] Далее происходит обмен версиями полученных транзакций между узлами-получателями 302, 303, 304, 305, 306, 307 (шаг 2). Каждый из узлов 302, 303, 304, 305, 306, 307 добавляет к версии транзакции, полученной от узла 301, маркер получения и отправляет ее остальным узлам сети. Указанный маркер служит для однозначной идентификации маршрута пересылки версии транзакции. После обмена версиями транзакции, каждый из узлов 302, 303, 304, 305, 306, 307 сохраняет все полученные версии в локальный набор транзакций. Так, узел 302 будет содержать следующие транзакции: m, m, m, m, m, m, где m, m, m, m и m, версии транзакций, полученные узлами 303, 304, 305, 306 и 307 соответственно и отправленные указанными узлами узлу 302. Аналогичным образом узел 303 будет содержать следующие транзакции: m, m, m, m, m, m, узел 304 будет содержать следующие транзакции: m, m, m, m, m, m, узел 305 будет содержать следующие транзакции: m, m, m, m, m, m, узел 306 будет содержать следующие транзакции: m, m, m, m, m, m, узел 307 будет содержать следующие транзакции: m, m, m, m, m, m.
[0068] На следующем шаге (шаг 3) указанного алгоритма широковещания узлы сети, при получении транзакции с одним или несколькими неповторяющимися маркерами осуществляют пересылку данной транзакции, добавляя собственный маркер получения к имевшимся ранее маркерам, всем узлам сети, кроме узла, сформировавшего данную транзакцию, и узлов сети, чьи маркеры содержались в полученном сообщении. Указанная пересылка транзакций будет осуществляться до тех пор, пока пересылаемые транзакции не будут содержать Т=2 маркера.
1
12
13
14
15
16
123
124
125
126
132
134
135
136
142
143
145
146
152
153
154
156
162
163
164
165
123
124
132
[0069] Таким образом, локальный набор транзакций узла 302 будет содержать следующие транзакции: m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, где m, Например, транзакция, полученная узлом 303 от узла 301 и отправленная узлу 304, который в свою очередь отправил ее узлу 302, m - транзакция, полученная узлом 303 от узла 301 и отправленная узлу 305, который в свою очередь отправил ее узлу 302, m - транзакция, полученная узлом 304 от узла 301 и отправленная узлу 303, который в свою очередь отправил ее узлу 302 и т.д.
[0070] Остальные узлы сети - 303, 304, 305, 306, 307 - будут содержать наборы транзакций, полученные по аналогичному принципу, что и узел 302.
[0071] После формирования указанных локальных наборов транзакций каждым узлом сети происходит независимый выбор транзакции, на основе которой будет обновлена копия распределенного реестра в узле.
123
124
125
126
132
134
135
136
142
143
145
146
152
153
154
156
162
163
164
165
[0072] Для этого каждый узел 302, 303, 304, 305 переносит все транзакции с Т=2 маркерами во второй локальный набор транзакций. Рассмотрим указанную операцию на примере узла 302. Так, узел 302 переносит транзакции со следующими маркерами: m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m. Указанные транзакции имеют неповторяющийся путь, характеризующийся маркерами узлов, через все узлы сети, кроме отправителя и непосредственно узла, отправлявшего эти транзакции (узла 302).
K
K
K
K
[0073] Далее, каждый узел сети, для каждой возможной последовательности маркеров Х из К маркеров, где К последовательно принимает значения от Т-1 до 0, формирует транзакцию с последовательностью маркеров Х во втором наборе транзакций как транзакцию, наиболее часто встречающуюся в подмножестве транзакций из транзакции с последовательностью маркеров Х первого набора и транзакций с К+1 маркерами второго набора, в которых первые К маркеров совпадают с Х. В качестве функции, выполняющей такое сравнение и выборку, может использоваться, например, мажоритарный элемент и т.д. Для специалиста в данной области техники очевидно, что может быть использована любая функция, обеспечивающая сравнение входных значений и выбирающая то, которое встречается в большинстве входов.
12
12
123
124
125
126
12
12
13
14
15
16
13
14
15
16
1
12
13
14
15
16
[0074] Рассмотрим указанный шаг на примере узла 302. Рассмотрим сообщения с Т-1=1 маркером. Выберем сообщение m, с маркером получения узла 303. В качестве подмножества транзакций, для формирования транзакции во втором наборе будет выступать подмножество {m, m, m, m, m}. Обозначим наиболее часто встречающуюся транзакцию среди этого набора как m'. Тогда во второй набор транзакций заносится транзакция m' с маркером получения узла 303. Аналогичная процедура повторяется для других транзакций с Т-1=1 маркером: m, m, m, m. В результате во втором наборе транзакций появляются соответствующие транзакции m', m', m', m'. Далее для формирования транзакции без маркеров рассматривается подмножество транзакций {m, m', m', m', m', m'}. В результате во втором наборе получается транзакция m'i, не содержащая маркеров.
[0075] Узлы 303, 304, 305, 306, 307 также совершают указанную последовательность действий.
[0076] Указанный шаг завершается получением каждым из узлов сети, участвовавших в достижении консенсуса, транзакции из второго набора транзакций, которая не содержит маркеров. Данная транзакция является результатом достижения консенсуса.
crit
[0077] Теперь рассмотрим более подробно алгоритм широковещания на псевдоподписях. Указанный алгоритм обеспечивает достижение консенсуса при любом потенциальном количестве скомпрометированных узлов, однако зависит от скорости генерации и количества требуемых ключей для псевдоподписей устройствами КРК, поэтому его применение целесообразнее только в случаях, когда количество потенциально скомпрометированных узлов Т больше значения T, которое в свою очередь меньше или равно одной трети от общего количества узлов. Для специалиста из данной области техники будет очевидно, что указанный алгоритм применим при любом количестве скомпрометированных узлов и выбор алгоритма широковещания обусловлен лишь скоростью генерации ключей устройствами КРК.
[0078] Алгоритм псевдоподписи функционирует на основе специально сгенерированных ключей. Так, для генерации псевдоподписи для данного сообщения необходим секретный ключ, которым обладает только автор сообщения. Для верификации псевдоподписи сообщения каждый из потенциальных получателей использует свой собственный верифицирующий ключ, который должен быть неизвестен остальным участниками сети. Совокупность секретного ключа генерации псевдоподписи и соответствующих ему верифицирующих ключей будем называть набором ключей псевдоподписи. Корректность псевдоподписи сообщения гарантирует, что автором этого сообщения был узел, обладающий соответствующим секретным ключом. Псевдоподпись носит одноразовый характер, поэтому для генерации и верификации каждого нового сообщения необходимы новые ключи. В отличие от обычных алгоритмов подписи, алгоритм псевдоподписи обладает информационно-теоретической стойкостью и неуязвим к атакам с использованием квантовых компьютеров. Указанный алгоритм известен из уровня техники и более подробный принцип его работы раскрыт в источнике информации [2].
[0079] Для реализации алгоритма широковещания на псевдоподписях необходимо распределить один набор ключей псевдоподписи, в котором секретный ключ принадлежит узлу, формирующему транзакцию, и 2(N-1) набора ключей псевдоподписей, в которых каждому узлу-получателю транзакции принадлежит два ключа генерации псевдоподписи.
[0080] Так, генерируют узлом, сформировавшим транзакцию, по меньшей мере один секретный ключ псевдоподписи и набор соответствующих верифицирующих ключей для остальных узлов сети.
[0081] В свою очередь, остальные узлы сети генерируют по меньшей мере два секретных ключа псевдоподписи и набор соответствующих верифицирующих ключей по меньшей мере для всех остальных узлов сети кроме узла, сформировавшего транзакцию. [0082] Для формирования секретных ключей и набора верифицирующих ключей псевдоподписи используются попарные симметричные ключи, распределенные между всеми узлами сети.
[0083] Далее, узел, сформировавший транзакцию, транслирует сообщение, содержащее транзакцию, подписанное псевдоподписью, остальным узлам сети;
[0084] верифицируют каждым из узлов, получивших сообщение с транзакцией, псевдоподпись, и, в случае успешности проверки, добавляют транзакцию в свой массив новых транзакций;
[0085] подписывают каждым из узлов, получивших сообщение, проверенное на предыдущем шаге, указанное сообщение дополнительной псевдоподписью, созданной с помощью своего первого секретного ключа псевдоподписи;
[0086] транслируют сообщение, подписанное на предыдущем шаге, с транзакцией остальным участникам сети;
[0087] если по прошествии времени, необходимого на последовательную пересылку сообщений количеству узлов сети Т+1, в наборе транзакций каждого узла все транзакции идентичны, то данная транзакция принимается этим узлом сети.
[0088] Если же в наборе транзакций хотя бы одна транзакция отличается, то узел сети пересылает полученное сообщение с новой транзакцией всем остальным участникам сети, подписывая его своим вторым секретным ключом псевдоподписи, а также завершает обмен сообщениями и не принимает никакую транзакцию в рамках данного протокола широковещания. Более подробно указанный принцип раскрыт на фиг. 4Б.
[0089] Рассмотрим более подробно принцип указанного алгоритма на примере сети, показанной на фиг. 4А. Указанная сеть в данном примере состоит из пяти узлов 401, 402, 403, 404, 405, которые являются участниками распределенного реестра и могут выполнять функции, предписанные им для обновления, хранения и выполнения процесса достижения консенсуса в соответствии с описываемым алгоритмом. Как указывалось выше, для реализации псевдоподписи узлу, формирующему транзакцию, необходим секретный ключ, а каждому получающему узлу необходимо по два ключа генерации псевдоподписи и соответственно верифицирующие ключи для каждого ключа генерации псевдоподписи.
[0090] Как указывалось выше, для обеспечения работы алгоритма широковещания на псевдоподписях перед инициацией обновления реестра отправляющим узлом требуется сгенерировать секретные и верифицирующие ключи псевдоподписей для всех узлов сети, участвующих в достижении консенсуса (шаг 1 и шаг 2). Для генерации ключей псевдоподписи может использоваться протокол, в ходе которого для каждого узла создаются секретные ключи (один секретный ключ для отправляющего узла, и по меньшей мере два секретных ключа для каждого получающего узла) и наборы верифицирующих ключей для каждого созданного секретного ключа каждого узла. В ходе указанного процесса узлы взаимодействуют между собой таким образом, что по итогу создания набора верифицирующих ключей узел, подписывающий транзакцию секретным ключом, не знает, какой именно верифицирующий ключ находится у конкретного узла-получателя. Указанный алгоритм известен из уровня техники и более подробный принцип его работы раскрыт в источнике информации [2].
401
[0091] Так, на шаге 1 узел 401, являющийся в данном примере отправителем, генерирует свой секретный ключ Sk, а каждый получающий узел 402-405 генерирует свой набор верифицирующих ключей Vk. Секретный и верифицирующие ключи генерируются на основе пар симметричных ключей, распределенных между узлами сети при помощи устройств квантовой криптографии. Таким образом, каждый узел 402-405 получает свой верифицирующий ключ Vk, с помощью которого происходит проверка подлинности сообщения, отправленного узлом 401 и подписанное его секретным ключом. Узел 402 получает верифицирующий ключ , где верхний индекс ключа показывает номер узла, сообщение которого должно верифицироваться ключом, а нижний индекс показывает номер узла, который совершает верификацию сообщения, которое было отправлено узлом, чей номер находится в верхнем индексе. Аналогичным образом верифицирующие ключи распределяются между остальными узлами сети. Так, узел 403 получает верифицирующий ключ  узел 404 получает верифицирующий ключ  узел 405 получает верифицирующий ключ
[0092] На следующем шаге алгоритма (шаг 2) каждый получающий узел 402-405 генерирует по меньшей мере два секретных ключа и соответственно два набора верифицирующих ключей для остальных узлов. Указанные секретные ключи предназначены для однозначной идентификации и соблюдения целостности сообщения, которое в дальнейшем будет пересылаться узлами 402-405. Таким образом, генерирование собственного набора секретных ключей и наборов верифицирующих ключей для остальных узлов обеспечивает невозможность изменения сообщения, получаемого от отправляющего узла одним из получающих узлов. Так, например, если получающий узел попытается подменить сообщение с транзакцией и подпишет его своим ключом, то любой следующий узел, кому будет перенаправлено сообщение, обнаружит отсутствие предыдущей подписи (например, отправителя), и, следовательно, заметит подлог.
402
402
403
404
405
[0093] Так, на указанном шаге алгоритма, узел 402 сгенерирует два секретных ключа Sk и , и, соответственно, два набора верифицирующих ключей Vk для всех остальных узлов сети (узлы 403-405). Секретные и верифицирующие ключи узла 402 генерируются таким же образом, как и ключи узла 401. Кроме того, каждый получающий узел 403-405 также генерирует два секретных ключа Sk и , и два набора верифицирующих ключей Vk. По итогу генерации всеми получающими узлами сети 402-405 собственных секретных ключей Sk и , а также наборов верифицирующий ключей Vk и дальнейшего обмена верифицирующими ключами Vk между друг другом, каждый узел сети будет иметь следующий локальный набор секретных и верифицирующих ключей: локальный набор ключей узла 402 будет содержать следующие ключи: , Sk, , , , , , , , где, соответственно, верифицирующие ключи , , ,, , , являются ключами, предназначенными для верификации сообщений, подписанных первым или вторым собственным секретным ключом каждого из узлов 403-405. Локальный набор ключей узла 403 будет содержать следующие ключи:, Sk, , , , , , , , локальный набор узла 404 будет соответственно содержать следующие ключи: , Sk, , , , , , , , и локальный набор ключей узла 405 будет содержать: , Sk, , ,,,,,.
[0094] Таким образом, на вышеописанных шаге 1 и шаге 2 алгоритма широковещания на псевдоподписях происходит генерация и обмен ключами для реализации псевдоподписи. Для специалиста в данной области техники очевидно, что при увеличении количества узлов, участвующих в обновлении реестра и достижении консенсуса, количество верифицирующих ключей будет возрастать пропорционально количеству узлов.
[0095] После генерации необходимого количества ключей и обмена такими ключами между узлами сети узел, инициирующий обновление реестра, подписывает своим секретным ключом сообщение с транзакцией и транслирует указанное сообщение остальным узлам сети (шаг 3).
401
[0096] Рассмотрим указанный шаг 3 на примере узла 401, который в нашем случае является отправителем сообщения с транзакцией. Стоит отметить, что в качестве отправителя транзакции может выступать любой узел сети. Так, узел 401 подписывает сообщение ключом Sk и транлирует его узлам 402-405.
n
402
403
404
405
[0097] Как, указывалось выше, поскольку узлы 402-405 не могут быть уверены в том, что узел 401 транслировал одно и то же сообщение всем узлам сети, то будем обозначать сообщение с транзакцией, предлагаемое узлом 401, как m, где индекс n характеризует версию сообщения, получаемую n-ым узлом. Таким образом, узел 402 получает сообщение m, узел 403 получает сообщение m, узел 404 получает сообщение m, узел 405 получает сообщение m. Далее каждый из узлов 402-405 проверяет своим верифицирующим ключом , , ,  псевдоподпись отправляющего узла, и, в случае успешной проверки, сохраняет полученную транзакцию в собственный локальный массив транзакций. Как упоминалось выше, массив транзакций может храниться в локальном средстве хранения узла.
n
402
403
404
405
402
403
404
405
[0098] Для достижения консенсуса между получающими узлами 402-405 требуется принять единое решение по транзакции отправителя, т.е. если отправитель 401 является честным, то каждый узел 402-405 должен получить одну и ту же транзакцию m (m=m=m=m), если же отправитель 401 является скомпрометированным и хотя бы одна из версий транзакций т, т, т или т отличается от других, то узлы 402-405 должны прекратить процесс принятия транзакции и завершить алгоритм, то есть достичь консенсуса в прекращении алгоритма.
n
n.
402
402
403
403
404
404
405
405
[0099] Для этого на шаге 4 каждый из узлов 402-405 подписывает своим секретным ключом Sk, где n - номер узла, свою версию проверенного сообщения mТаким образом, на указанном шаге узел 402 подписывает транзакцию m своим первым ключом Sk, узел 403 подписывает транзакцию m своим первым ключом Sk, узел 404 подписывает транзакцию m своим первым ключом Sk и узел 405 подписывает транзакцию т своим первым ключом Sk.
402
403
404
405
403
404
405
403
404
405
403
404
405
[0100] Соответственно, каждый из узлов 402-405 далее транслирует свою версию транзакции, подписанную своим секретным ключом остальным узлам сети (шаг 5). При этом каждый узел, получающий транзакцию, содержащую псевдоподпись другого узла, проверяет верифицирующим ключом ее подлинность. Таким образом, каждый из узлов 402-405 формирует следующий набор транзакций: узел 402 будет содержать следующие транзакции: m, m, m, m. Причем, транзакции т, т, т при получении были подписаны ключами Sk, Sk и Sk соответственно и проверены на подлинность указанным узлом 402 с помощью верифицированных ключей , , . Также, стоит отметить, что для получения транзакций m, m, m, после их проверки узлом 402 соответствующими верифицирующими ключами, узел 402 также проверяет псевдоподпись узла 401, которая хранится в каждом из указанных сообщений. Такая проверка исключает любую попытку подлога узлом, осуществляющим пересылку транзакции, и сохраняет целостность отправляемого сообщения.
[0101] Соответственно узлы 403-405 по аналогичному принципу формируют свои локальные наборы транзакций.
[0102] На последнем шаге алгоритма (шаг 6), каждый из узлов 402-405 сравнивает транзакции из локального набора транзакций между собой. Причем, сравнение происходит только после прошествия времени, необходимого на последовательную пересылку сообщений количеству узлов сети Т+1. Так, после осуществления такого сравнения, если все транзакции в каждом из узлов 402-405 идентичны, то узлы 402, 403, 404, 405, принимают начальную версию транзакции и обновляют собственные копии реестра и алгоритм завершается.
[0103] В одном частном варианте осуществления, если хотя бы одна версия транзакции у по меньшей мере одного узла 402-405 будет отличаться от остальных, то алгоритм выполняет последовательность шагов, направленных на достижение консенсуса о прекращении процесса принятия транзакции всеми узлами сети. Указанные шаги более подробно раскрываются на фиг. 4Б.
[0104] Таким образом, вышеописанные шаги алгоритма (шаг 1- шаг 6) позволяют достичь консенсуса по транзакции, предлагаемой на обновление реестра, причем использование псевдоподписей, построенных на симметричных ключах, распределенных с помощью устройств квантовой криптографии обеспечивает защиту от атак с помощью квантовых компьютеров и делает невозможным подмену транслируемого сообщения без обнаружения другими узлами сети.
[0105] Теперь рассмотрим более подробно пример реализации алгоритма, показанного на Фиг. 4Б. Указанный пример раскрывает случай, когда версии транзакций у хотя бы одного узла 402-405 на шаге 6 отличаются от остальных версий. Указанный пример является частным случаем реализации фиг. 4А, и отображает сеть передачи данных, в которой узел 403 может быть скомпрометирован.
402
403
404
405
[0106] Так, на шаге 6 описанного выше алгоритма, при обнаружении в локальном наборе транзакций m, m, m, m, например, узла 402, хотя бы одной версии транзакции, отличающейся от других транзакций, алгоритм переходит к шагу 7. Аналогично с узлом 402, при обнаружении хотя бы одной версии транзакции, отличающейся от других в любом другом узле 403, 404, 405 алгоритм также переходит к шагу 7.
402
404
405
403
[0107] Рассмотрим более подробно шаг 7 на примере узла 402, получившего от узла 403 версию сообщения, отличающуюся от версий узлов 404 и 405 (m=m=m ≠ m). Поскольку версии транзакций отличаются друг от друга, то узлу 402 необходимо завершить алгоритм и не принимать указанную транзакцию, однако, для того, чтобы остальные узлы сети также приняли аналогичное решение, необходимо оповестить их о том, что происходит подлог, т.к. узлы 403-405 потенциально могли получить локальные наборы транзакций, где все транзакции будут одинаковы.
403
403
[0108] Следовательно, для того чтобы остальные узлы сети также получили информацию от узла 402, что версии транзакций отличаются, узел 402 подписывает своим вторым ключом  транзакцию m и транслирует ее остальным участникам сети. Введем обозначение указанной транзакции как  (транзакция m подписанная вторым ключом ).
403
[0109] Каждый из узлов сети верифицирует транзакцию m,отправленную узлом 402 соответствующим ключом ,  и подписывает своим вторым секретным ключом ,  указанную верифицированную транзакцию , т.к. указанные узлы не могут доверять узлу 402. После подписи узлами 404, 405, каждый из указанных узлов транслирует сообщение всем остальным узлам.
[0110] Далее, каждый получающий узел 404, 405 верифицирует своим ключом ,  транзакцию  и проверяет, совпадает ли транзакция, полученная от узла 402 и подписанная его вторым секретным ключом, с транзакцией, которую указанные узел 402 также отослал другим узлам. За счет дополнительной пересылки транзакции узлами, получившими ее от узла 402 (в нашем примере узлы 404, 405), указанные узлы определяют находится ли узел 402 в сговоре, и, следовательно, честно ли он разослал всем участникам сети транзакцию .
[0111] По итогу такой пересылки и дальнейшей верификации соответствующими ключами каждый узел сети становится уведомлен, а также подтверждает, путем подписания своим вторым секретным ключом, что в ходе попытки обновления реестра была совершена попытка подмены транзакции, и, следовательно, необходимо прекратить широковещание и завершить алгоритм (достичь консенсуса в завершении алгоритма).
[0112] Для специалиста в данной области техники очевидно, что указанный алгоритм может быть применен и при большем количестве скомпрометированных узлов.
[0113] Таким образом, на фиг. 4А- фиг. 4Б был раскрыт алгоритм широковещания на псевдоподписях, обеспечивающий возможность консенсуса в сети с любым количеством скомпрометированных узлов.
[0114] Далее способ 200, после применения одного из описанных выше алгоритмов широковещания, переходит к этапу 205.
[0115] На этапе 205 происходит обновление собственных копий реестра узлами сети, принявшими транзакцию. По итогам трансляции транзакции с помощью одного из алгоритмов широковещания, если узлы достигли консенсуса, то все узлы, принявшие указанную транзакцию, обновляют собственные копии распределенного реестра на основе информации, содержащейся в транзакции и, следовательно, обновляют состояние распределенного реестра.
[0116] Таким образом, в настоящих материалах заявки описан безопасный способ обновления распределенного реестра с любым количеством скомпрометированных узлов, стойкий к атакам с помощью квантового компьютера, который может применяться для нарушения целостности данных, содержащихся в распределенном реестре.
[0117] На Фиг. 5 представлен пример общего вида вычислительного устройства 500.
[0118] В общем случае, вычислительное устройство (500) содержит объединенные общей шиной информационного обмена один или несколько процессоров (501), средства памяти, такие как ОЗУ (502) и ПЗУ (503), интерфейсы ввода/вывода (504), устройства ввода/вывода (505), и устройство для сетевого взаимодействия (506).
[0119] Процессор (501) (или несколько процессоров, многоядерный процессор и т.п.) может выбираться из ассортимента устройств, широко применяемых в настоящее время, например, таких производителей, как Intel™, AMD™, Apple™, Samsung Exynos™, MediaTEK™, Qualcomm Snapdragon™ и т.п. Под процессором или одним из используемых процессоров в устройстве (500) также необходимо учитывать графический процессор, например, GPU NVIDIA или Graphcore, тип которых также является пригодным для полного или частичного выполнения исполнения модуля управления, а также может применяться для обучения и применения моделей машинного обучения в различных информационных системах.
[0120] ОЗУ (502) представляет собой оперативную память и предназначено для хранения исполняемых процессором (501) машиночитаемых инструкций для выполнения необходимых операций по логической обработке данных. ОЗУ (502), как правило, содержит исполняемые инструкции операционной системы и соответствующих программных компонент (приложения, программные модули и т.п.). При этом, в качестве ОЗУ (502) может выступать доступный объем памяти графической карты или графического процессора.
[0121] ПЗУ (503) представляет собой одно или более устройств постоянного хранения данных, например, жесткий диск (HDD), твердотельный накопитель данных (SSD), флэш-память (EEPROM, NAND и т.п.), оптические носители информации (CD-R/RW, DVD-R/RW, BlueRay Disc, MD) и др.
[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.
[0123] Для обеспечения взаимодействия пользователя с вычислительным устройством (500) применяются различные средства (505) В/В информации, например, клавиатура, дисплей (монитор), сенсорный дисплей, тач-пад, джойстик, манипулятор мышь, световое перо, стилус, сенсорная панель, трекбол, динамики, микрофон, средства дополненной реальности, оптические сенсоры, планшет, световые индикаторы, проектор, камера, средства биометрической идентификации (сканер сетчатки глаза, сканер отпечатков пальцев, модуль распознавания голоса) и т.п.
[0124] Средство сетевого взаимодействия (506) обеспечивает передачу данных посредством внутренней или внешней вычислительной сети, например, Интранет, Интернет, ЛВС и т.п. В качестве одного или более средств (506) может использоваться, но не ограничиваться: Ethernet карта, GSM модем, GPRS модем, LTE модем, 5G модем, модуль спутниковой связи, NFC модуль, Bluetooth и/или BLE модуль, Wi-Fi модуль и др. [0125] Представленные материалы заявки раскрывают предпочтительные примеры реализации технического решения и не должны трактоваться как ограничивающие иные, частные примеры его воплощения, не выходящие за пределы испрашиваемой правовой охраны, которые являются очевидными для специалистов соответствующей области техники.
[0126] Модификации и улучшения вышеописанных вариантов осуществления настоящего технического решения будут ясны специалистам в данной области техники. Предшествующее описание представлено только в качестве примера и не несет никаких ограничений для целей осуществления иных частных вариантов воплощения заявленного технического решения, не выходящего за рамки испрашиваемого объема правовой охраны. Конструктивные элементы, такие, как микроконтроллеры, блоки, модули и т.д., описанные выше и используемые в данном техническом решении, могут быть реализованы с помощью стандартных электронных компонентов, используемых для создания цифровых интегральных схем или аналогичных решений, обеспечивающих реализацию заданных функций с помощью процессов программирования.
Источники информации:
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-279
2. 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.