[go: up one dir, main page]

RU2782153C2 - Method and system for organization of protected information exchange, using blockchain technology and distributed data storage systems - Google Patents

Method and system for organization of protected information exchange, using blockchain technology and distributed data storage systems Download PDF

Info

Publication number
RU2782153C2
RU2782153C2 RU2021103201A RU2021103201A RU2782153C2 RU 2782153 C2 RU2782153 C2 RU 2782153C2 RU 2021103201 A RU2021103201 A RU 2021103201A RU 2021103201 A RU2021103201 A RU 2021103201A RU 2782153 C2 RU2782153 C2 RU 2782153C2
Authority
RU
Russia
Prior art keywords
transaction
file
blockchain
database
hash
Prior art date
Application number
RU2021103201A
Other languages
Russian (ru)
Other versions
RU2021103201A (en
Inventor
Сергей Сергеевич Тарасенко
Original Assignee
Сергей Сергеевич Тарасенко
Filing date
Publication date
Application filed by Сергей Сергеевич Тарасенко filed Critical Сергей Сергеевич Тарасенко
Publication of RU2021103201A publication Critical patent/RU2021103201A/en
Application granted granted Critical
Publication of RU2782153C2 publication Critical patent/RU2782153C2/en

Links

Images

Abstract

FIELD: information protection.
SUBSTANCE: invention relates to a method and a system for organization of protected information exchange, using a blockchain technology and distributed data storage systems. In the method, a name of a database is entered, while additionally entering a password to this database. The presence of the database on a device is checked. In case of the presence of the database, it is decrypted using symmetric AES-256 encryption, the correctness of a database file is checked. In case of the absence of the database, a new database is created, while forming a password to the new database, required to encrypt and decrypt a file with the new database, using the AES-256 algorithm. The work with the database is completed, while, after checking for the correctness of the database file or after creating a new database, network services are launched, at least a client for requests from a central server for an up-to-date list of IP addresses on a network and sending a “hello message” is launched. A request processing server is launched to receive a hash of the last transaction and an up-to-date copy of the blockchain. A transaction processing server is launched to participate in the consensus process. After that, transaction hashes are requested from servers of all IP addresses available on the network. The current hash of the last transaction is selected according to the majority rule. A request is made to receive an up-to-date copy of the blockchain from one of senders of the current hash of the last transaction. An algorithm for analyzing the received up-to-date copy of the blockchain is launched. A list of added users is displayed. At least one of functions is selected: addition of a new user, view of the history of correspondence with the specified user and sending to this user of a text message, view of the history of correspondence with the specified user and sending to this user of a text file up to 1 KB in size, update of an encryption key for the specified user, sending of a file to a distributed storage, request for a file from the distributed storage, update of an information display interface, safe logout of a system, which the system needs to perform. The fact that the safe logout function is selected is checked. If this function is not selected, then, the selected function is performed, while, after performing the selected function, a new function is selected. If the safe logout function is selected, then, the database is encrypted using the previously entered password, using the AES-256 algorithm.
EFFECT: provision of protected information exchange.
10 cl, 14 dwg

Description

Область техникиTechnical field

Изобретение относится к области защиты информации, в частности, к способам конфиденциальной передачи информации с использованием распределенных систем хранения данных и технологии блокчейн.The invention relates to the field of information security, in particular, to methods for the confidential transmission of information using distributed data storage systems and blockchain technology.

Уровень техникиState of the art

Современные технологии, которыми обладают большие IT-компании, например, владельцы популярных бесплатных систем мгновенного обмена текстовыми сообщениями - мессенджеров и приложениями для обмена фотографиями и видеозаписями с элементами социальных сетей, позволяют отслеживать различную информацию о пользователях: круг общения, интересы, историю запросов, истории сообщений и т.д. В связи с этим можно утверждать, что имеется теоретическая возможность подмены переписки, а также отправки сообщений от имен пользователей. Данный тезис основан на том, что часть исходного кода вышеперечисленных приложений является закрытой, и заявления компаний об использовании «end-to-end», т.е. «сквозного», шифрования не исключает возможность сбора пользовательских данных, в том числе личных сообщений, аудио- и видеоразговоров и др. Также, данные компании имеют возможность блокировки пользователей. К тому же, нельзя исключать возможности взлома центрального сервера, и как следствие утечки данных, таких как, например, фотографий документов пользователей, номеров банковских карт, паролей т.д. При условии аутентификации пользователей через номер мобильного телефона говорить об анонимности также не приходится. Учитывая все перечисленное, можно с уверенностью сказать, что использование классических, в основе архитектуры которых лежат централизованные серверы обработки данных, мессенджеров и социальных сетей не обеспечивает анонимность пользователей и не дает гарантии конфиденциальности личных данных.Modern technologies possessed by large IT companies, for example, owners of popular free instant messaging systems - instant messengers and applications for sharing photos and videos with elements of social networks, allow you to track various information about users: social circle, interests, request history, history messages, etc. In this regard, it can be argued that there is a theoretical possibility of spoofing correspondence, as well as sending messages from usernames. This thesis is based on the fact that part of the source code of the above applications is closed, and companies' statements about the use of "end-to-end", i.e. End-to-end encryption does not exclude the possibility of collecting user data, including personal messages, audio and video conversations, etc. Also, these companies have the ability to block users. In addition, the possibility of hacking the central server, and as a result of data leakage, such as, for example, photos of user documents, bank card numbers, passwords, etc., cannot be ruled out. Provided that users are authenticated through a mobile phone number, there is also no need to talk about anonymity. Considering all of the above, it is safe to say that the use of classic messengers and social networks, based on the architecture of which are centralized data processing servers, does not ensure the anonymity of users and does not guarantee the confidentiality of personal data.

Повышение защищенности коммуникаций между пользователями сети Интернет и их анонимизация возможны путем создания мессенджера с открытым исходным кодом, использующего технологию блокчейн и распределенную систему хранения данных, а также теоретически недешифруемую (ТНДШ) систему для шифрования информации.Improving the security of communications between Internet users and their anonymization is possible by creating an open source messenger using blockchain technology and a distributed data storage system, as well as a theoretically indecipherable (TNDS) system for encrypting information.

Для удобства описания способа и системы защищенного обмена информацией с использованием технологии блокчейн и распределенных систем хранения данных введем ряд определений.For the convenience of describing the method and system of secure information exchange using blockchain technology and distributed data storage systems, we introduce a number of definitions.

Блокчейн- выстроенная по определенным правилам непрерывная последовательная цепочка блоков, содержащих информацию (см. https://ru.wikipedia.org/wiki/Блокчейн).Blockchain is a continuous sequential chain of blocks containing information built according to certain rules (see https://ru.wikipedia.org/wiki/Blockchain).

Майнинг - деятельность по созданию новых структур, обычно речь идет о новых блоках в блокчейне, для обеспечения функционирования криптовалютных платформ (см. https://ru.wikipedia.org/wiki/Майнинг).Mining is the activity of creating new structures, usually new blocks in the blockchain, to ensure the functioning of cryptocurrency platforms (see https://ru.wikipedia.org/wiki/Mining).

Майнер - объект, участвующий в майнинге (см. https://ru.wikipedia.org/wiki/Майнер).Miner - an object participating in mining (see https://ru.wikipedia.org/wiki/Miner).

Хеш-функция - функция, осуществляющая преобразование массива входных данных произвольной длины в выходную битовую строку установленной длины, выполняемое определенным алгоритмом (см. https://ru.wikipedia/org/wiki/Хэш-функция).A hash function is a function that converts an array of input data of arbitrary length into an output bit string of a set length, performed by a certain algorithm (see https://ru.wikipedia/org/wiki/Hash function).

Хэш (Хеш-сумма) - значение хеш-функции (см. https://ru.wikipedia.org/wiki/Хэш).Hash (Hash sum) - the value of the hash function (see https://ru.wikipedia.org/wiki/Hash).

Транзакция - группа последовательных операций с базой данных, которая представляет собой логическую единицу работы с данными (см. https://ru.wikipedia/org/wiki/Транзакция_(информатика)).A transaction is a group of sequential operations with a database, which is a logical unit of work with data (see https://ru.wikipedia/org/wiki/Transaction_(computer science)).

Мессенджер - службы мгновенных сообщений, программы онлайн-консультанты и программы-клиенты для обмена сообщениями в реальном времени через Интернет (см. https://ru.wikipedia/org/wiki/Система_мгновенного_обмена_сообщениям).Messenger - instant messaging services, online consultant programs and client programs for real-time messaging over the Internet (see https://ru.wikipedia/org/wiki/Instant_messaging_system).

Proxy-сервер - промежуточный сервер или комплекс программ в компьютерных сетях, выполняющий роль посредника между пользователем и целевым сервером, при этом о посредничестве могут как знать, так и не знать обе стороны, позволяющий клиентам как выполнять косвенные запросы, принимая и передавая их через прокси-сервер, к другим сетевым службам, так и получать ответы (см. https://ru.wikipedia.org/wiki/Проксисервер).Proxy server - an intermediate server or a set of programs in computer networks that acts as an intermediary between the user and the target server, while mediation may or may not be known to both parties, allowing clients to both make indirect requests, receiving and transmitting them through a proxy -server, to other network services, and receive responses (see https://ru.wikipedia.org/wiki/Proxyserver).

Виртуальная частная сеть (Virtual Private Network, VPN) - технология, которая расширяет частную сеть через общедоступную сеть Интернет и позволяет пользователям отправлять и получать данные через общие сети или сети общего пользования, как если бы их вычислительные устройства были подключены к частной сети (см. https://en.wikipedia.org/wiki/Virtual_private_network).A Virtual Private Network (VPN) is a technology that extends a private network over the public Internet and allows users to send and receive data over public or public networks as if their computing devices were connected to a private network. https://en.wikipedia.org/wiki/Virtual_private_network).

Метаинформация (метаданные) - информация о другой информации, или данные, относящиеся к дополнительной информации о содержимом или объекте (см. https://ru.wikipedia.org/wiki/Метаданные).Meta information (metadata) - information about other information, or data related to additional information about the content or object (see https://ru.wikipedia.org/wiki/Metadata).

Консенсус - принятие решения на основе общего согласия без проведения голосования, если против него никто не выступает, либо при исключении мнения немногих несогласных участников (см. https://ru.wikipedia.org/wiki/Консенсус).Consensus - making a decision based on general agreement without a vote, if no one opposes it, or with the exception of the opinion of a few dissenting participants (see https://ru.wikipedia.org/wiki/Consensus).

Под мажоритарным правилом выбора какого-либо решения путем голосования будем понимать правило, согласно которому избранным считается решение, получившее большинство голосов.Under the majority rule for choosing a decision by voting, we mean the rule according to which the decision that receives the majority of votes is considered elected.

Под файлом-ссылкой будем понимать файл, генерируемый предлагаемой системой, содержащий в себе часть зашифрованного исходного целевого файла, ссылки на серверы, хранящие остальные части зашифрованного исходного целевого файла, а также необходимую метаинформацию для осуществления корректной сборки файла при запросе этого файла из распределенного хранилища.By a link file we mean a file generated by the proposed system that contains a part of the encrypted source target file, links to servers that store the remaining parts of the encrypted source target file, as well as the necessary meta-information to correctly assemble the file when this file is requested from the distributed storage.

Под глобальным блокчейном будем понимать версию блокчейна, которая находится у большинства участников блокчейн-коммуникации в текущий момент времени.Under the global blockchain, we mean the version of the blockchain that is in the possession of the majority of participants in the blockchain communication at the current time.

Известен способ и система «Method and system for storage and retrieval of blockchain blocks using galois fields» (патент US 9569771 B2 от 03.11.2016 г. ), включающие в себя один или несколько блоков блокчейна, которые хранятся и извлекаются с помощью модифицированных полей Галуа в облачной или одноранговой, (например, Р2Р), сети связи. Модифицированное поле Галуа обеспечивает, как минимум, дополнительные уровни безопасности и конфиденциальности для блокчейнов.There is a known method and system "Method and system for storage and retrieval of blockchain blocks using galois fields" (patent US 9569771 B2 dated 03.11.2016), including one or more blocks of the blockchain, which are stored and retrieved using modified Galois fields in a cloud or peer-to-peer (for example, P2P) communication network. The modified Galois field provides, at a minimum, additional layers of security and privacy for blockchains.

Известен способ «Способ и система распределенного хранения восстанавливаемых данных с обеспечением целостности и конфиденциальности информации» (патент RU 2680350 С2 от 19.02.2019 г. ), который заключается в том, что осуществляется замена отказавшего узла, хранящего данные, относящиеся к части файла данных, при этом каждым из множества доступных узлов хранения данных принимается указание от блока управления на замену отказавшего узла новым узлом хранения данных, каждый из доступных узлов хранения данных содержит множество контрольных сумм, сформированных из файла данных, которые могут быть сформированы на основании частей файла данных, используя методики кодирования со стиранием, при этом заменяющая контрольная сумма формируется на каждом из множества доступных узлов хранения данных посредством создания линейной комбинации контрольных сумм на каждом узле хранения данных, используя случайные коэффициенты, в дальнейшем эти заменяющие контрольные суммы используются для восстановления утерянного файла данных, отличающийся тем, что каждый из доступных блоков обработки данных с соответствующими узлами хранения данных содержит множество данных, сформированных из файлов, соответствующих блокам обработки данных с узлами хранения данных, при этом множество данных предварительно подвергается процедуре блочного шифрования с нелинейными биективными преобразованиями, а сформированное множество блоков криптограмм блоков обработки данных с узлами хранения данных распределяется между доступными узлами хранения данных, в которых, используя методы многозначного помехоустойчивого кодирования, формируется соответствующее множество избыточных данных, далее поступившие от других блоков обработки данных с узлами хранения данных блоки криптограмм удаляются с целью сокращения общей избыточности, при этом сформированное множество избыточных данных с блоками криптограмм блока обработки данных с узлом хранения данных, осуществлявшего их формирование, используется для восстановления утерянных файлов данных, при этом блок восстановления данных получает информацию от блока управления в отношении того, какие блоки обработки данных с соответствующими узлами хранения данных в настоящий момент доступны и, соответственно, имеют множество информационных и избыточных данных файла, затем блок восстановления данных получает множество информационных и избыточных данных от указанных блоков обработки данных с узлами хранения данных, блок восстановления данных выполняет полное восстановление утраченных файлов данных, данные, восстановленные блоком восстановления данных, совместно с данными доступных блоков обработки данных с соответствующими узлами хранения данных передаются на вновь введенный блоком управления блок обработки данных с узлом хранения данных для формирования блоков избыточных данных.There is a known method "Method and system for distributed storage of recoverable data while ensuring the integrity and confidentiality of information" (patent RU 2680350 C2 dated February 19, 2019), which consists in replacing a failed node that stores data related to part of the data file, whereby each of the plurality of available data storage nodes receives an instruction from the control unit to replace the failed node with a new data storage node, each of the available data storage nodes contains a set of checksums generated from the data file, which can be generated based on parts of the data file using erasure coding techniques, wherein a replacement checksum is generated at each of the many available storage nodes by creating a linear combination of checksums at each storage node using random coefficients, these replacement checksums are then used to recover the lost an explicit data file, characterized in that each of the available data processing units with the corresponding data storage nodes contains a set of data formed from files corresponding to the data processing units with data storage nodes, while the set of data is previously subjected to a block encryption procedure with non-linear bijective transformations, and the generated set of blocks of cryptograms of data processing units with data storage nodes is distributed among the available data storage nodes, in which, using the methods of multivalued error-correcting coding, the corresponding set of redundant data is formed, then the blocks of cryptograms received from other data processing units with data storage nodes are removed in order to reducing the overall redundancy, while the generated set of redundant data with blocks of cryptograms of the data processing unit with the data storage node that generated them is used to restore the lost files data files, while the data recovery unit receives information from the control unit regarding which data processing units with the corresponding data storage nodes are currently available and, accordingly, have a lot of information and redundant file data, then the data recovery unit receives a lot of information and redundant data from the specified data processing units with data storage nodes, the data recovery unit performs a complete recovery of lost data files, the data restored by the data recovery unit, together with the data of the available data processing units with the corresponding data storage nodes, is transferred to the newly introduced data processing unit by the control unit with a data storage node to form blocks of redundant data.

Наиболее близкими по технической сущности к заявленным способу и системе является «Discrete blockchain and blockchain communications» (патент WO 2019/195691 A1 от 10.10.2019 г. ), заключающийся в том, что шифруют и расшифровывают сигналы между устройствами, чтобы гарантировать, что сообщения, использующие технологии блокчейн, могут быть обнаружены только назначенными третьими сторонами или не обнаруживаются вообще. Для обеспечения работоспособности сети необходимы майнеры - участники сети с высокими уровнями вычислительной мощности, которые конкурируют за подтверждение транзакций путем вычисления хэшей транзакции. В данном способе могут использоваться различные виды практически недешифруемых систем симметричного шифрования и асимметричного шифрования (ПНДШ), и «Data security» (патент US 2005/0081048 A1 от 14.04.2005 г.), заключающийся в том, что шифруют по меньшей мере на одном ключе, по меньшей мере одну или несколько частей входных данных для генерации по меньшей мере одной или нескольких соответствующих частей выходных данных, которые будут храниться в одном или нескольких местах хранения, а также могут создавать по меньшей мере на одной или нескольких соответствующих частях выходных данных проверочные данные, которые должны быть сохранены в хранилище или нескольких хранилищах, находящихся в запоминающем устройстве.The closest in technical essence to the claimed method and system is "Discrete blockchain and blockchain communications" (patent WO 2019/195691 A1 dated 10/10/2019), which consists in the fact that they encrypt and decrypt signals between devices to ensure that messages using blockchain technology can only be discovered by designated third parties or not at all. To keep the network running, miners are needed - network participants with high levels of computing power that compete to confirm transactions by computing transaction hashes. In this method, various types of practically indecipherable symmetric encryption and asymmetric encryption systems (PNDS) can be used, and "Data security" (patent US 2005/0081048 A1 dated April 14, 2005), which consists in the fact that they encrypt at least one key, at least one or more parts of the input data to generate at least one or more corresponding parts of the output data, which will be stored in one or more storage locations, and can also create checks on at least one or more corresponding parts of the output data. data to be stored in a storage or multiple storages located in a storage device.

Технической проблемой данных аналогов и прототипов является угроза компрометации адресной информации и пользовательских данных, хранящихся в блокчейне, а также существует угроза идентификации отправителей и получателей файлов в распределенных системах хранения данных.The technical problem of these analogues and prototypes is the threat of compromise of address information and user data stored in the blockchain, as well as the threat of identifying senders and recipients of files in distributed data storage systems.

Причины, по которым это может происходить следующие:The reasons why this might happen are:

- в рассмотренных аналогах предполагается, что информация в блокчейне является либо открытой, либо зашифрованной с помощью асимметричного шифрования или симметричного шифрования с использованием ПНДШ систем, что в конечном итоге не гарантирует абсолютную стойкость информации к дешифрованию;- in the considered analogues, it is assumed that the information in the blockchain is either open or encrypted using asymmetric encryption or symmetric encryption using PNDS systems, which ultimately does not guarantee the absolute resistance of information to decryption;

- возможность сбора статистической информации о передаваемом трафике в каналах связи, что может привести к компрометации отправителей и получателей файлов в распределенной системе хранения данных, а также к возможности сбора всех частей зашифрованного файла и, следовательно, к его дешифрованию.- the ability to collect statistical information about the transmitted traffic in communication channels, which can lead to the compromise of senders and recipients of files in a distributed data storage system, as well as the ability to collect all parts of an encrypted file and, consequently, to decrypt it.

Техническим результатом является то, что настоящее изобретение направлено на предотвращения угрозы компрометации адресной информации и пользовательских данных, хранящихся в блокчейне, за счет использования распределенной системы хранения данных, в которой часть данных из файлов, предназначенных для отправки в удаленные хранилища данных, хранятся на локальном запоминающем устройстве. При этом генерируются ложные части этих файлов, что позволяет обмениваться транзакциями в блокчейн-коммуникации зашифрованными с использованием ТНДШ системы, исключая тем самым возможность однозначного дешифрования транзакций. Все файлы, отправляемые в распределенное хранилище, в том числе и ключи для ТНДШ систем, предварительно зашифровываются на алгоритме aes-256 в режиме гаммирования с обратной связью CFB (cipher feed back mode), в котором каждая часть зашифрованных данных зависит от другой, что исключает возможность расшифрования файла при отсутствии какой-либо части зашифрованного файла.The technical result is that the present invention is aimed at preventing the threat of compromise of address information and user data stored in the blockchain through the use of a distributed data storage system in which part of the data from files intended to be sent to remote data storages is stored on a local storage device. At the same time, false parts of these files are generated, which makes it possible to exchange transactions in blockchain communications encrypted using the TNDS system, thereby excluding the possibility of unambiguous decryption of transactions. All files sent to the distributed storage, including keys for TNDS systems, are pre-encrypted using the aes-256 algorithm in cipher feed back mode (CFB), in which each part of the encrypted data depends on the other, which excludes the ability to decrypt a file in the absence of any part of the encrypted file.

Другим техническим результатом является решение технической проблемы компрометации информации об отправителях и получателях файлов в распределенной системе хранения данных за счет того, что при отправке файла в распределенное хранилище данных устройство-участник блокчейн-коммуникации зашифровывает файл с помощью симметричного шифрования с использованием ПНДШ системы с применением алгоритма aes-256 в режиме CFB. При этом распределенное хранилище данных может состоять из любых сторонних хранилищ данных. Отправляемый файл разбивается на несколько частей, вводятся ложные части, перемешиваются файлы перед отправкой, назначают каждому файлу, который содержит часть зашифрованного файла или ложную часть файла, серверы, на которых будут храниться эти файлы. Вышеперечисленные меры, с одной стороны, значительно усложняют задачу сбора статистики об отправляемых файлах, а с другой стороны, гарантируют невозможность дешифрования файлов, хранящихся в распределенной системе хранения данных. С целью невозможности определения отправителя и получателя частей зашифрованного файла, все соединения осуществляют либо через механизмы подмены IP-адресов, либо через Proxy-серверы, либо через VPN.Another technical result is the solution of the technical problem of compromising information about senders and recipients of files in a distributed data storage system due to the fact that when sending a file to a distributed data storage, the device participating in the blockchain communication encrypts the file using symmetric encryption using the PNDS system using the algorithm aes-256 in CFB mode. At the same time, a distributed data warehouse can consist of any third-party data stores. The sent file is split into several parts, false parts are introduced, files are mixed before sending, each file that contains a part of the encrypted file or a false part of the file is assigned the servers on which these files will be stored. The above measures, on the one hand, greatly complicate the task of collecting statistics on sent files, and on the other hand, guarantee the impossibility of decrypting files stored in a distributed storage system. In order to make it impossible to determine the sender and recipient of parts of the encrypted file, all connections are made either through IP address spoofing mechanisms, or through Proxy servers, or through VPN.

Раскрытие изобретенияDisclosure of invention

В заявленном способе эта техническая проблема решается тем, что в способе организации защищенного обмена информацией с использованием технологии блокчейн и распределенных систем хранения данных, заключающемся в том, что вводят название базы данных, вводят пароль к этой базе данных, проверяют наличие базы данных на устройстве, при наличии базы данных осуществляют ее расшифрование с использованием симметричного шифрования, проверяют корректность файла базы данных, при отсутствии базы данных создают новую базу данных, при этом формируют пароль к новой базе данных, необходимый для шифрования и расшифрования файла новой базы данных по алгоритму aes-256, завершают работу с базой данных. Дополнительно после проверки на корректность файла с базой данных, либо после создания новой базы данных, запускают сетевые сервисы, при этом как минимум, запускают клиент для запросов у центрального сервера актуального списка IP-адресов в сети и отправки «hello»-сообщения, запускают сервер обработки запросов на получение хэша последней транзакций и актуальной копии блокчейна, запускают сервер обработки транзакций, а именно, для участия в процессе консенсуса. После запуска сетевых сервисов запрашивают хэши транзакций у серверов всех доступных в сети IP-адресов, выбирают по мажоритарному правилу актуальный хэш последней транзакции, осуществляют запрос на получение актуальной копии блокчейна у одного из отправителей актуального хэша последней транзакции. Запускают алгоритм анализа принятой актуальной копии блокчейна и отображают список добавленных пользователей. Осуществляют выбор одной из функций: добавление нового пользователя, просмотр истории переписки с указанным пользователем и отправка этому пользователю текстового сообщения, просмотр истории переписки с указанным пользователем и отправка этому пользователю текстового файла размером до 1 Кбайта, обновление ключа шифрования для указанного пользователя, отправка файла в распределенное хранилище, запрос файла из распределенного хранилища, обновление интерфейса отображения информации, безопасный выход из системы, которую необходимо выполнить системе. Проверяют факт того, что выбрана функция безопасного выхода из системы, если данная функция не выбрана, то осуществляют выполнение выбранной функции, при этом после выполнения выбранной функции осуществляют выбор новой функции, если выбрана функция безопасного выхода из системы, то осуществляют шифрование базы данных с использование введенного ранее пароля по алгоритму aes-256.In the claimed method, this technical problem is solved by the fact that in the method of organizing a secure exchange of information using blockchain technology and distributed data storage systems, which consists in entering the name of the database, entering the password for this database, checking the presence of the database on the device, if there is a database, it is decrypted using symmetric encryption, the correctness of the database file is checked, if there is no database, a new database is created, and a password for the new database is generated, which is necessary for encrypting and decrypting the new database file using the aes-256 algorithm , exit the database. Additionally, after checking the correctness of the file with the database, or after creating a new database, network services are launched, at the same time, at least, the client is launched to query the central server for an up-to-date list of IP addresses on the network and send a "hello" message, the server is launched processing requests for a hash of the last transaction and an up-to-date copy of the blockchain, start the transaction processing server, namely, to participate in the consensus process. After starting the network services, transaction hashes are requested from the servers of all IP addresses available on the network, the current hash of the last transaction is selected by the majority rule, a request is made to receive the current copy of the blockchain from one of the senders of the current hash of the last transaction. Run the algorithm for analyzing the received current copy of the blockchain and display a list of added users. They select one of the functions: adding a new user, viewing the history of correspondence with the specified user and sending a text message to this user, viewing the history of correspondence with the specified user and sending this user a text file up to 1 KB in size, updating the encryption key for the specified user, sending the file to distributed storage, requesting a file from distributed storage, updating the information display interface, a safe logout that the system needs to perform. The fact that the secure logout function is selected is checked, if this function is not selected, then the selected function is executed, and after the selected function is executed, a new function is selected, if the secure logout function is selected, then the database is encrypted using previously entered password using the aes-256 algorithm.

Согласно одному из частных вариантов реализации при запуске сервера обработки запросов на получение хэша последней транзакций и актуальной копии блокчейна принимают сервером обработки запросов сообщения клиента с запросом. Проверяют вид запроса сервером, если поступает запрос на получение хэша последней транзакции копии блокчейна сервера, то извлекают из базы данных хэш последней транзакции, если поступает запрос на получение актуальной копии блокчейна сервера, то извлекают из базы данных актуальную копию блокчейна сервера. Формируют правильное сообщение для отправки клиенту с учетом характеристики информации, извлеченной из базы данных и отправляют сформированный ответ клиенту.According to one of the private implementation options, when starting the server for processing requests to obtain the hash of the last transaction and the current copy of the blockchain, the request processing server receives messages from the client with the request. The type of the request is checked by the server, if a request is received to obtain the hash of the last transaction of the server blockchain copy, then the hash of the last transaction is retrieved from the database, if a request is received to obtain the current copy of the server blockchain, then the current copy of the server blockchain is retrieved from the database. The correct message is formed to be sent to the client, taking into account the characteristics of the information extracted from the database, and the generated response is sent to the client.

Согласно одному из частных вариантов реализации при запуске сервера обработки транзакций принимают сервером обработки транзакций транзакции от клиента. Извлекают из транзакции предлагаемый клиентом ID и хэш последней транзакции из локальной копии блокчейна клиента. Проверяют последний ID локальной копии блокчейна сервера обработки транзакций, при этом ID должен быть на единицу меньше, предлагаемого клиентом. Осуществляют проверку правильности ID, если проверка дала отрицательный результат, то отправляют клиенту сообщение об отказе данным сервером обработки транзакций подтверждать принятую от клиента транзакцию. Если проверка прошла успешно, то проверяют хэш последней транзакции локальной копии блокчейна клиента, содержащийся в присланной клиентом транзакции, и хэш последней транзакции локальной копии блокчейна сервера обработки транзакций. При этом хэш должен совпадать, если хэш не совпадает, то отправляют клиенту сообщение об отказе данным сервером обработки транзакций подтверждать принятую от клиента транзакцию. Если хэш совпадает, то отправляют клиенту ответ с положительным решением, о подтверждении данным сервером обработки транзакций принятую от клиента транзакцию. Добавляют принятую от клиента транзакцию сервером обработки транзакций в свою локальную копию блокчейна. Запускают алгоритм анализа содержимого на наличие входящих сообщений от одного из добавленных пользователей на этом сервере обработки транзакций.According to one particular implementation, when the transaction processing server starts up, the transaction processing server receives transactions from the client. The ID offered by the client and the hash of the last transaction from the local copy of the client's blockchain are extracted from the transaction. The last ID of the local copy of the blockchain of the transaction processing server is checked, and the ID must be one less than that offered by the client. The correctness of the ID is checked, if the check gave a negative result, then a message is sent to the client about the refusal by this transaction processing server to confirm the transaction received from the client. If the verification is successful, then the hash of the last transaction of the local copy of the client's blockchain, contained in the transaction sent by the client, and the hash of the last transaction of the local copy of the transaction processing server's blockchain are checked. In this case, the hash must match, if the hash does not match, then a message is sent to the client about the refusal by this transaction processing server to confirm the transaction received from the client. If the hash matches, then a response with a positive decision is sent to the client, confirming the transaction received from the client by this transaction processing server. They add the transaction received from the client by the transaction processing server to their local copy of the blockchain. Run the content analysis algorithm for incoming messages from one of the added users on this transaction processing server.

Согласно одному из частных вариантов реализации при запуске алгоритма анализа содержимого на наличие входящих сообщений от одного из добавленных пользователей на сервере обработки транзакций извлекают из всей транзакции зашифрованную часть транзакции путем выделения, предлагаемого клиентом ID и хэша последней транзакции из клиентской копии блокчейна. Расшифровывают закрытую часть транзакции путем наложения ключа каждого добавленного сервером обработки транзакций пользователя на зашифрованную часть транзакции с учетом смещения ключа, при этом зашифрованная часть транзакции расшифруется только в случае, если в поле отправителя, которое также зашифровано, будет имя пользователя на чьем ключе производится расшифровка, а в поле получателя будет имя пользователя, чей сервер обработки транзакций выполняет расшифрование данной транзакции. Проверяют получилось ли расшифровать сообщение на одном из ключей добавленных пользователей. В случае, если получилось, то расшифрованную часть транзакции разбивают на логические элементы как минимум, время отправки, имя отправителя, имя получателя, передаваемое сообщение, которое может являться либо текстовым файлом размером до 1 Кбайта, либо текстовым сообщением, и заносят в локальную базу данных сервера обработки транзакций в открытом виде. В случае, если не получилось расшифровать сообщение на одном из ключей добавленных пользователей, то транзакция не предназначена для пользователя данного сервера обработки транзакций.According to one of the private implementation options, when starting the content analysis algorithm for incoming messages from one of the added users on the transaction processing server, the encrypted part of the transaction is extracted from the entire transaction by extracting the ID offered by the client and the hash of the last transaction from the client copy of the blockchain. The private part of the transaction is decrypted by overlaying the key of each user added by the transaction processing server to the encrypted part of the transaction, taking into account the key offset, while the encrypted part of the transaction is decrypted only if the sender field, which is also encrypted, contains the name of the user on whose key the decryption is performed, and the recipient field will be the name of the user whose transaction processing server is decrypting this transaction. Check whether it was possible to decrypt the message on one of the keys of the added users. If it succeeds, then the decrypted part of the transaction is divided into logical elements at least, the time of sending, the name of the sender, the name of the recipient, the transmitted message, which can be either a text file up to 1 KB in size, or a text message, and entered into the local database transaction processing server in open form. If it was not possible to decrypt the message on one of the keys of the added users, then the transaction is not intended for the user of this transaction processing server.

Согласно одному из частных вариантов реализации при выполнении запроса на получение актуальной копии блокчейна удаляют из базы данных предыдущую локальную копию блокчейна и записывают в базу данных, принятую от сервера обработки запросов на получение хэша последней транзакций и актуальной копии блокчейна копию локального блокчейна. Проверяют количество транзакций предыдущей локальной копии блокчейна с принятой копией. Если у предыдущей локальной копии блокчейна число транзакций больше, чем у принятой копии, то значит произошло обновление глобального блокчейна, при этом обнуляют смещения ключей для всех добавленных пользователей. В случае, когда обновление глобального блокчейна не произошло, тогда оставляют значения смещения ключей для всех добавленных пользователей без изменений. Анализируют каждую транзакцию на наличие входящих сообщений, при этом извлекают из всей транзакции зашифрованную часть транзакции путем выделения предлагаемого клиентом ID и хэша последней транзакции из клиентской копии блокчейна. Расшифровывают закрытую часть транзакции путем наложения ключа каждого добавленного сервером обработки транзакций пользователя на зашифрованную часть транзакции с учетом смещения ключа, при этом зашифрованная часть транзакции расшифруется только в случае, если в поле отправителя, которое также зашифровано, будет имя пользователя, на чьем ключе производится расшифровка, а в поле получателя будет имя пользователя, чей сервер обработки транзакций выполняет расшифрование данной транзакции.According to one of the private implementation options, when executing a request to obtain an up-to-date copy of the blockchain, the previous local copy of the blockchain is deleted from the database and the copy of the local blockchain is written to the database received from the server for processing requests to obtain the hash of the last transactions and the actual copy of the blockchain. Check the number of transactions of the previous local copy of the blockchain with the accepted copy. If the previous local copy of the blockchain has more transactions than the accepted copy, then the global blockchain has been updated, while resetting the key offsets for all added users. In the case when the update of the global blockchain did not occur, then the key offset values for all added users are left unchanged. Each transaction is analyzed for the presence of incoming messages, while extracting the encrypted part of the transaction from the entire transaction by extracting the ID offered by the client and the hash of the last transaction from the client copy of the blockchain. The private part of the transaction is decrypted by overlaying the key of each user added by the transaction processing server to the encrypted part of the transaction, taking into account the key offset, while the encrypted part of the transaction is decrypted only if the sender field, which is also encrypted, contains the name of the user on whose key the decryption is performed , and the recipient field will be the name of the user whose transaction processing server is decrypting this transaction.

Согласно одному из частных вариантов реализации, в котором выбирают одну из функций: добавление нового пользователя, при этом вводят имя нового пользователя и указывают путь к файлу с ключом для этого пользователя, просмотр истории переписки с указанным пользователем и отправка этому пользователю текстового сообщения, просмотр истории переписки с указанным пользователем и отправка этому пользователю текстового файла размером до 1 Кбайта, обновление ключа шифрования для указанного пользователя, отправка файла в распределенное хранилище, запрос файла из распределенного хранилища, обновление интерфейса отображения пользовательской информации, безопасный выход из системы, которую необходимо выполнить системе.According to one of the private implementation options, in which one of the functions is selected: adding a new user, while entering the name of the new user and specifying the path to the file with the key for this user, viewing the history of correspondence with the specified user and sending a text message to this user, viewing the history correspondence with the specified user and sending this user a text file up to 1 KB in size, updating the encryption key for the specified user, sending the file to distributed storage, requesting a file from distributed storage, updating the interface for displaying user information, safe logout that the system needs to perform.

Согласно одному из частных вариантов реализации при запросе отправки файла в распределенное хранилище вводят путь к исходному файлу. Зашифровывают исходный файл алгоритмом шифрования «Advanced Encryption Standard» с длинной ключа 256 бит, т.е. aes-256, в режиме гаммирования с обратной связью, при этом ключ шифрования помещают в файл-ссылку. Вычисляют хэш зашифрованного файла, при этом помещают хэш в файл-ссылку. Разбивают зашифрованный файл на N частей, являющихся отдельными файлами, случайного размера, при этом всю метаинформацию и одну из N частей случайного размера, которая не отправляется в сеть, помещают в файл-ссылку. Добавляют К ложных частей, при этом всю метаинформацию помещают в файл-ссылку. Назначают каждому из (N-1+K) файлов R серверов в распределенной системе хранения данных и вычисляют хэш каждого из этих файлов, при этом всю метаинформацию помещают в файл-ссылку. Перемешивают (N-1+K) файлов, при этом всю метаинформацию помещают в файл-ссылку. Отправляют каждый из (N-1+K) файлов на R серверов в распределенной системе хранения данных с использованием Proxy-серверов, VPN или системы подмены IP-адресов. Формируют окончательный вариант файл-ссылки.According to one of the private implementation options, when requesting to send a file to a distributed storage, the path to the source file is entered. The source file is encrypted with the Advanced Encryption Standard encryption algorithm with a key length of 256 bits, i.e. aes-256, in the feedback gamma mode, while the encryption key is placed in the link file. The hash of the encrypted file is calculated, and the hash is placed in the link file. The encrypted file is split into N parts, which are separate files, of random size, while all meta-information and one of the N parts of random size, which is not sent to the network, is placed in the link file. K false parts are added, while all meta-information is placed in the link file. Each of (N-1+K) files of R servers in a distributed data storage system is assigned and a hash of each of these files is calculated, with all meta-information being placed in a link file. Mix (N-1+K) files, while all meta-information is placed in the link file. Each of the (N-1+K) files is sent to R servers in a distributed storage system using proxy servers, VPN or IP address spoofing system. Form the final version of the link file.

Согласно одному из частных вариантов реализации при запросе файла из распределенного хранилища вводят путь к файлу-ссылке на исходный файл, извлекают из файла-ссылки метаинформацию об исходном файле: количество частей, на которые был разбит исходный файл, количество ложных частей, имена файлов на удаленных серверах, правила перемешивания файлов перед отправкой, IP-адреса серверов хранения файлов, ключ шифрования, на котором зашифрован весь файл, хэши частей файла, хэш всего файла; запрашивают с серверов части файлов с использованием Proxy-серверов, VPN или системы подмены IP-адресов, проверяют хэши частей файла таким образом, что если с серверов в распределенной системе хранения данных пришла как минимум одна правильная копия каждой части файла и ее хэш правильный, то переходят к следующему шагу, если хоть одно условие не выполняется, то выдают сообщение об ошибке и прекращают работу сбора исходного файла, перемешивают принятые части файла, отделяют ложные части файла, выполняют сборку зашифрованного исходного файла, проверяют хэш всего зашифрованного файла, если проверка отрицательная, то выдают сообщение об ошибке и прекращают работу сбора исходного файла, если проверка прошла успешно, то выполняют расшифрование зашифрованного файла.According to one of the private implementation options, when requesting a file from a distributed storage, the path to the link file to the source file is entered, meta-information about the source file is extracted from the link file: the number of parts into which the source file was split, the number of false parts, file names on remote servers, rules for mixing files before sending, IP addresses of file storage servers, encryption key on which the entire file is encrypted, hashes of parts of the file, hash of the entire file; request parts of files from the servers using Proxy servers, VPN or IP address spoofing system, check the hashes of the parts of the file in such a way that if at least one correct copy of each part of the file came from the servers in the distributed storage system and its hash is correct, then go to the next step, if at least one condition is not met, then give an error message and stop collecting the source file, mix the received parts of the file, separate the false parts of the file, assemble the encrypted source file, check the hash of the entire encrypted file, if the check is negative, then they issue an error message and stop collecting the source file, if the check was successful, then the encrypted file is decrypted.

Согласно одному из частных вариантов реализации при просмотре истории переписки с указанным пользователем и отправке ему текстового сообщения отображают предыдущую переписку с данным пользователем из базы данных. Вводят новое сообщение для пользователя и добавляют к сообщению как минимум поле времени отправки сообщения, поле имени отправителя, поле имени получателя. Выполняют шифрование этих полей на ключе данного пользователя. Извлекают из базы данных ID последней транзакции и увеличивают на единицу данное значение. Формируют новый ID для транзакции. Извлекают из базы данных хэш последней транзакции локальной копии блокчейна отправителя. При этом хэш любой транзакции, за исключением первой, формируется путем вычисления хэша от двух значений: хэша транзакции, записанной в локальной копии блокчейна отправителя до текущей транзакции и текущей транзакции в локальной копии блокчейна отправителя. Создают транзакцию для передачи, в которую входит новый ID, хэш последней транзакции локальной копии блокчейна отправителя и зашифрованные данные, зашифрованные на шифре Вернама с использованием ключа пользователя. Следовательно, при условии, что пользовательский ключ представлен в виде одноразового блокнота, состоящего из случайного набора бит и на каждое сообщение, отводится своя последовательность бит ключа, которая в дальнейшем не может быть использована повторно в качестве ключа для другого сообщения, то можно утверждать, что выполняется условие для ТНДШ системы шифрования. Отправляют всем доступным IP-адресам из списка актуальных IP-адресов, присланным центральным сервером, находящимся в рассматриваемой нами системе, сформированную транзакцию. Принимают от всех доступных IP-адресов из списка актуальных IP-адресов, присланным центральным сервером, находящихся в рассматриваемой нами системе, ответ о готовности подтверждения серверами обработки транзакций сформированной транзакции. Проверяют по мажоритарному правилу факт подтверждения транзакции, если проверка не прошла успешно, то выполняют запрос актуальной копии блокчейна, если проверка прошла успешно, то добавляют транзакцию в локальную копию блокчейна отправителя. Добавляют в незашифрованном виде поле - время отправки транзакции, поле - имя отправителя, поле - имя получателя и передаваемое сообщение в базу данных. Выполняют смещение ключа для данного пользователя на длину зашифрованных данных.According to one of the private implementation options, when viewing the history of correspondence with the specified user and sending him a text message, the previous correspondence with the given user from the database is displayed. Enter a new message for the user and add to the message at least the time the message was sent, the sender's name field, the recipient's name field. These fields are encrypted on the key of the given user. The ID of the last transaction is retrieved from the database and this value is increased by one. Form a new ID for the transaction. The hash of the last transaction of the local copy of the sender's blockchain is retrieved from the database. In this case, the hash of any transaction, except for the first one, is formed by calculating a hash from two values: the hash of the transaction recorded in the local copy of the sender's blockchain before the current transaction and the current transaction in the local copy of the sender's blockchain. A transaction is created for transmission, which includes a new ID, a hash of the last transaction of the local copy of the sender's blockchain, and encrypted data encrypted in the Vernam cipher using the user's key. Therefore, provided that the user key is represented as a one-time pad consisting of a random set of bits and each message has its own sequence of key bits, which cannot be reused later as a key for another message, then it can be argued that the condition for the TNDSH encryption system is satisfied. They send a generated transaction to all available IP addresses from the list of current IP addresses sent by the central server located in the system we are considering. They receive from all available IP addresses from the list of current IP addresses sent by the central server located in the system under consideration, a response about the readiness of confirmation of the generated transaction by the transaction processing servers. According to the majority rule, the fact of confirmation of the transaction is checked, if the verification was not successful, then the request for the current copy of the blockchain is performed, if the verification was successful, then the transaction is added to the local copy of the sender's blockchain. A field is added in unencrypted form - the time the transaction was sent, a field - the name of the sender, a field - the name of the recipient and the message to be sent to the database. The key is shifted for the given user by the length of the encrypted data.

Новая совокупность существенных признаков позволяет достичь технического результата невозможности компрометации отправителей и получателей файлов в распределенной системе хранения данных за счет того, что при запросе отправки файла в распределенное хранилище вводят путь к исходному файлу, зашифровывают исходный файл с применением алгоритма шифрования «Advanced Encryption Standard» с длинной ключа 256 бит в режиме гаммирования с обратной связью CFB, при этом ключ шифрования помещают в файл-ссылку, вычисляют хэш зашифрованного файла, помещают хэш в файл-ссылку, разбивают зашифрованный файл на N частей (файлов) случайного размера, при этом всю метаинформацию и одну из N частей случайного размера, которая не отправляется в сеть, помещают в файл-ссылку, добавляют K ложных частей, при этом всю метаинформацию помещают в файл-ссылку, назначают каждому из (N-1+K) файлов R серверов в распределенной системе хранения данных и вычисляют хэш каждого из этих файлов, при этом всю метаинформацию помещают в файл-ссылку, перемешивают (N-1+K) файлов, при этом всю метаинформацию помещают в файл-ссылку, отправляют каждый из (N-1+K) файлов на R серверов в распределенной системе хранения данных с использованием механизма подмены IP-адресов, либо через Proxy-серверы, либо через VPN, формируют окончательный вариант файл-ссылки; при запросе файла из распределенного хранилища вводят путь к файлу-ссылке на исходный файл, извлекают из файла-ссылки метаинформацию об исходном файле: количество частей, на которые был разбит исходный файл, количество ложных частей, имена файлов на удаленных серверах, правила перемешивания файлов перед отправкой, IP-адреса серверов хранения файлов, ключ шифрования, на котором зашифрован весь файл, хэши частей файла, хэш всего файла, запрашивают с серверов части файлов с использованием механизма подмены IP-адресов, либо через Proxy-серверы, либо через VPN, проверяют хэши частей файла с учетом того, что если с серверов в распределенной системе хранения данных получена, как минимум, одна копия каждой части файла и ее хэш прошел проверку на правильность, то переходят к следующему шагу, если хоть одно условие не выполняется, то выдают сообщение об ошибке и прекращают работу сбора исходного файла, перемешивают принятые части файла, отделяют ложные части файла, выполняют сборку зашифрованного исходного файла, проверяют хэш всего зашифрованного файла, если проверка отрицательная, то выдают сообщение об ошибке и прекращают работу сбора исходного файла, если проверка прошла успешно, то выполняют расшифрование зашифрованного (принятого) файла.A new set of essential features allows you to achieve the technical result of the impossibility of compromising senders and recipients of files in a distributed storage system due to the fact that when you request to send a file to a distributed storage, you enter the path to the source file, encrypt the source file using the "Advanced Encryption Standard" encryption algorithm with key length is 256 bits in CFB feedback gamma mode, while the encryption key is placed in the link file, the hash of the encrypted file is calculated, the hash is placed in the link file, the encrypted file is split into N parts (files) of random size, while all meta-information and one of N parts of random size that is not sent to the network is placed in the link file, K false parts are added, while all meta-information is placed in the link file, assigned to each of the (N-1 + K) files of R servers in the distributed storage system and calculate the hash of each of these files, with all meta-information placed put into a link file, mix (N-1 + K) files, while all meta-information is placed in a link file, send each of the (N-1 + K) files to R servers in a distributed data storage system using the IP spoofing mechanism -addresses, either through Proxy servers or through VPN, form the final version of the link file; when requesting a file from a distributed storage, enter the path to the file-link to the source file, extract meta-information about the source file from the link file: the number of parts into which the source file was split, the number of false parts, file names on remote servers, rules for mixing files before sending, the IP addresses of the file storage servers, the encryption key on which the entire file is encrypted, the hashes of the parts of the file, the hash of the entire file, request parts of the files from the servers using the IP address spoofing mechanism, either through Proxy servers or through VPN, check hashes of the file parts, taking into account the fact that if at least one copy of each part of the file is received from the servers in the distributed data storage system and its hash has been checked for correctness, then go to the next step, if at least one condition is not met, then a message is displayed about an error and stop collecting the source file, shuffle the received parts of the file, separate the false parts of the file, assemble the encrypted about the source file, check the hash of the entire encrypted file, if the check is negative, then issue an error message and stop collecting the source file, if the check was successful, then decrypt the encrypted (received) file.

В заявленной системе эта задача решается тем, что в системе организации защищенного обмена информацией с использованием технологии блокчейн и распределенных систем хранения данных, состоящей как минимум, из одного центрального сервера, включающего модуль приема/передачи информации в сети связи для приема и передачи данных по каналам связи, общую шину обмена информацией для обмена информацией между модулями устройства, модуль обработки «hello-сообщений» для приема от устройств-участников блокчейн-коммуникации «hello-сообщений» и обновление актуального списка доступных в текущий момент времени IP-адресов в сети, модуль обработки запросов на получение актуальной копии списка в текущий момент времени IP-адресов в сети для отправки актуального списка доступных в текущий момент времени IP-адресов в сети по запросу, модуль памяти для хранения актуального списка доступных на данный момент времени IP-адресов в сети, модуль питания устройства для обеспечения электроэнергией всех модулей устройства и, как минимум, трех устройств - участников блокчейн-коммуникации, включающие модуль приема/передачи информации в сети связи для приема и передачи данных по каналам связи, общую шину обмена информацией для обмена информацией между модулями устройства, модуль отправки запросов на серверы для отправки запросов на серверы обработки запросов на получение хэша последней транзакции и актуальной копии блокчейна и на серверы обработки транзакций, модуль клиента для запросов у центрального сервера актуального списка IP-адресов в сети и отправки «hello-сообщения» для идентификация устройства в сети как доступного посредством отправки на центральный сервер «hello-сообщения» и получение актуального списка доступных на данный момент времени IP-адресов в сети, модуль сервера обработки запросов на получение хэша последней транзакции и актуальной копии блокчейна для отправки хэша последней транзакции по запросу и отправки копии локального блокчейна по запросу, модуль сервера обработки транзакций для участия в процессе консенсуса для обработки транзакций и отправки ответа на запрос о ее подтверждении или отклонении, модуль базы данных для хранения и предоставления доступа модулям ко всей необходимой информации, модуль памяти для хранения файлов и файлов-ссылок, а так же базы данных, модуль ввода/вывода информации для осуществления ввода/вывода информации в устройство, модуль питания устройства для обеспечения электроэнергией всех модулей устройства, причем каждое устройство-участник блокчейн-коммуникации взаимодействует с центральным сервером либо через механизмы подмены IP-адресов, либо через Proxy-серверы, либо через VPN.In the claimed system, this problem is solved by the fact that in the system for organizing secure information exchange using blockchain technology and distributed data storage systems, consisting of at least one central server, including a module for receiving / transmitting information in a communication network for receiving and transmitting data over channels communication, a common information exchange bus for exchanging information between device modules, a "hello-message" processing module for receiving "hello-messages" from devices participating in the blockchain communication and updating the current list of currently available IP addresses in the network, the module processing requests for obtaining an up-to-date copy of the list of currently available IP addresses on the network to send an up-to-date list of currently available IP addresses on the network upon request, a memory module for storing an up-to-date list of currently available IP addresses on the network, device power supply module to provide power to all device modules wa and at least three devices participating in blockchain communication, including a module for receiving / transmitting information in a communication network for receiving and transmitting data via communication channels, a common information exchange bus for exchanging information between device modules, a module for sending requests to servers for sending requests to servers for processing requests to receive a hash of the last transaction and an up-to-date copy of the blockchain and to transaction processing servers, a client module for inquiring the central server for an up-to-date list of IP addresses on the network and sending a “hello message” to identify a device on the network as available by sending to the central “hello-message” server and receiving an up-to-date list of currently available IP addresses on the network, a server module for processing requests to receive the hash of the last transaction and the current copy of the blockchain to send the hash of the last transaction on request and send a copy of the local blockchain on request , a transaction processing server module for I participate in the consensus process for processing transactions and sending a response to a request for its confirmation or rejection, a database module for storing and providing access to modules to all necessary information, a memory module for storing files and link files, as well as a database module input/output of information for input/output of information to the device, the power supply module of the device for providing electricity to all modules of the device, and each device participating in the blockchain communication interacts with the central server either through IP address spoofing mechanisms, or through proxy servers, or via VPN.

Новая совокупность существенных признаков позволяет достичь технического результата предотвращения угрозы компрометации адресной информации и пользовательских данных, хранящихся в блокчейне, за счет системы организации защищенного обмена информацией с использованием технологии блокчейн и распределенных систем хранения данных, которая содержит как минимум, один центральный сервер, включающий модуль приема/передачи информации в сети связи, общую шину обмена информацией, модуль обработки «hello-сообщений», модуль обработки запросов на получение актуальной копии списка в текущий момент времени IP-адресов в сети, модуль памяти, модуль питания устройства, и, как минимум, три устройства - участника блокчейн-коммуникации, включающие модуль приема/передачи информации в сети связи, общую шину обмена информацией, модуль отправки запросов на серверы, модуль клиента для запросов у центрального сервера актуального списка IP-адресов в сети и отправки «hello-сообщения», модуль сервера обработки запросов на получение хэша последней транзакции и актуальной копии блокчейна, модуль сервера обработки транзакций для участия в процессе консенсуса, модуль базы данных, модуль памяти, модуль ввода/вывода информации, модуль питания устройства, причем каждое устройство-участник блокчейн-коммуникации взаимодействует с центральным сервером либо через механизмы подмены IP-адресов, либо через Proxy-серверы, либо через VPN.A new set of essential features makes it possible to achieve the technical result of preventing the threat of compromise of address information and user data stored in the blockchain, through a system for organizing secure information exchange using blockchain technology and distributed data storage systems, which contains at least one central server, including a reception module / transfer of information in the communication network, a common bus for information exchange, a module for processing "hello messages", a module for processing requests for obtaining an up-to-date copy of the list of IP addresses in the network at the current time, a memory module, a device power module, and, at least, three devices - a participant in blockchain communication, including a module for receiving / transmitting information in a communication network, a common bus for information exchange, a module for sending requests to servers, a client module for requesting an up-to-date list of IP addresses on the network from the central server and sending a "hello message" , request processing server module ov to receive the hash of the last transaction and the current copy of the blockchain, a transaction processing server module to participate in the consensus process, a database module, a memory module, an information input / output module, a device power module, and each device participating in the blockchain communication interacts with the central server either through IP address spoofing mechanisms, or through Proxy servers, or through VPN.

Проведенный анализ уровня техники позволил установить, что аналоги, характеризующиеся совокупностью признаков, тождественных всем признакам заявленного способа организации защищенного обмена информацией с использованием технологии блокчейн и распределенных систем хранения данных, отсутствуют. Следовательно, заявленное изобретение соответствует условию патентоспособности «новизна».The analysis of the prior art made it possible to establish that there are no analogues characterized by a set of features identical to all the features of the claimed method of organizing secure information exchange using blockchain technology and distributed data storage systems. Therefore, the claimed invention meets the condition of patentability "novelty".

Результаты поиска известных решений в данной и смежных областях техники с целью выявления признаков, совпадающих с отличительными от прототипа признаками заявленного объекта, показали, что они не следуют явным образом из уровня техники. Из уровня техники также не выявлена известность влияния предусматриваемых существенными признаками заявленного изобретения преобразований на достижение указанного технического результата. Следовательно, каждое из заявленных изобретений соответствует условию патентоспособности «изобретательский уровень».The results of the search for known solutions in this and related fields of technology in order to identify features that match the distinguishing features of the prototype of the claimed object showed that they do not follow explicitly from the prior art. From the prior art, the influence of the transformations provided for by the essential features of the claimed invention on the achievement of the specified technical result has not been revealed either. Therefore, each of the claimed inventions meets the condition of patentability "inventive step".

Для более понятной иллюстрации технических решений согласно вариантам осуществления настоящего изобретения ниже приведено краткое описание сопроводительных чертежей.To more clearly illustrate the technical solutions according to the embodiments of the present invention, a brief description of the accompanying drawings is given below.

На фиг. 1 - способ организации защищенного обмена информацией с использованием технологии блокчейн и распределенных систем хранения данных;In FIG. 1 - a method for organizing a secure exchange of information using blockchain technology and distributed data storage systems;

на фиг. 2 - схема работы сервера обработки запросов на получение хэша последней транзакции и актуальной копии блокчейна;in fig. 2 - scheme of the server for processing requests to receive the hash of the last transaction and the current copy of the blockchain;

на фиг. 3 - схема работы сервера обработки транзакций, принимающего участие в процессе консенсуса;in fig. 3 is a diagram of the operation of a transaction processing server that takes part in the consensus process;

на фиг. 4 - анализ транзакции на наличие входящих сообщений;in fig. 4 - analysis of the transaction for the presence of incoming messages;

на фиг. 5 - логика расшифрования транзакции;in fig. 5 - transaction decryption logic;

на фиг. 6 - анализ принятой копии блокчейна;in fig. 6 - analysis of the received copy of the blockchain;

на фиг. 7 - логика выбора одной из функций, реализованных в системе;in fig. 7 - the logic of choosing one of the functions implemented in the system;

на фиг. 8 - функции отображения истории переписки с указанным пользователем и отправке ему текстового сообщения;in fig. 8 - functions for displaying the history of correspondence with the specified user and sending him a text message;

на фиг. 9 - схема взаимодействия с распределенной системой хранения данных;in fig. 9 is a diagram of interaction with a distributed data storage system;

на фиг. 10 - схема отправки файла в распределенное хранилище; in fig. 10 - scheme for sending a file to a distributed storage;

на фиг. 11 - схема запроса файла из распределенного хранилища; in fig. 11 - a diagram of a file request from a distributed storage;

на фиг. 12 - схема взаимодействия устройств системы;in fig. 12 - diagram of the interaction of the devices of the system;

на фиг. 13 - схема центрального сервера;in fig. 13 - scheme of the central server;

на фиг. 14 - схема устройства-участника процесса блокчейн-коммуникации.in fig. 14 is a diagram of a device participating in the blockchain communication process.

Ниже будут полностью и четко описаны технические решения для вариантов осуществления настоящего изобретения со ссылками на сопроводительные чертежи. Должно быть, очевидно, что варианты осуществления, описанные ниже, являются только частью настоящего изобретения, а не всеми возможными вариантами осуществления настоящего изобретения. Все другие варианты осуществления, полученные специалистами в данной области техники на основе вариантов осуществления настоящего изобретения и не использующие творческий подход, попадают под объем охраны настоящего изобретения.The technical solutions for the embodiments of the present invention will be fully and clearly described below with reference to the accompanying drawings. It should be obvious that the embodiments described below are only a part of the present invention and not all possible embodiments of the present invention. All other embodiments obtained by those skilled in the art based on the embodiments of the present invention and not using creativity fall within the protection scope of the present invention.

Реализация заявленного способа заключается в следующем (фиг. 1):The implementation of the claimed method is as follows (Fig. 1):

1. Вводят название базы данных, в которой будет храниться вся необходимая для работы системы информация.1. Enter the name of the database, which will store all the information necessary for the operation of the system.

2. Вводят пароль к этой базе данных, для ее защиты от несанкционированного доступа.2. Enter a password for this database to protect it from unauthorized access.

3. Проверяют наличие базы данных - файла, содержащего базу данных.3. Check for the presence of a database - a file containing a database.

4. Создают базу данных и формируют к ней пароль на основе введенного ранее.4. Create a database and generate a password for it based on the previously entered one.

5. Осуществляют расшифрование базы данных на введенном ранее пароле.5. The database is decrypted using the previously entered password.

6. Проверяют корректность файла с базой данных - правильность расшифрования базы данных по сигнатуре.6. Check the correctness of the file with the database - the correctness of the decryption of the database by signature.

7. При расшифровании файла базы данных запускают клиентскую программу, для отправки запросов центральному серверу, который отвечает за поддержание работоспособности сети путем ведения актуального списка IP-адресов доступных на данный момент в сети, на получение актуальной копии списка активных в сети на текущий момент IP-адресов, а также отправки ему «hello-сообщения», факт отправки которого означает, что клиент, отправивший это сообщение, на данный момент времени является активным участником сети.7. When decrypting the database file, the client program is launched to send requests to the central server, which is responsible for maintaining the network by maintaining an up-to-date list of IP addresses currently available on the network, to receive an up-to-date copy of the list of IP addresses currently active on the network. addresses, as well as sending him a “hello message”, the fact of sending which means that the client who sent this message is currently an active member of the network.

8. Запускают сервер обработки запросов на получение хэша последней транзакции и актуальной копии блокчейна. Хэш последней транзакции позволяет осуществить проверку всего предыдущего блокчейна на изменение, т.к. хэш каждой новой транзакции формируется из самой транзакции и хэша предыдущей транзакции. Актуальная копия блокчейна позволяет запрашивающему проанализировать все транзакции, происходившие в сети во время его отсутствия - когда запрашивающий не участвовал в процессе консенсуса.8. Launch the server for processing requests to receive the hash of the last transaction and the current copy of the blockchain. The hash of the last transaction allows you to check the entire previous blockchain for a change, because. the hash of each new transaction is formed from the transaction itself and the hash of the previous transaction. An up-to-date copy of the blockchain allows the requester to analyze all the transactions that took place on the network during his absence - when the requester did not participate in the consensus process.

В качестве примера поясним принцип работы сервера обработки запросов на получение хэша последней транзакции и актуальной копии блокчейна (фиг. 2):As an example, let us explain the principle of operation of the server for processing requests to obtain the hash of the last transaction and the current copy of the blockchain (Fig. 2):

8.1. Принимают сервером обработки запросов сообщения клиента с запросом.8.1. The request processing server receives a client message with a request.

8.2. Проверяют вид запроса: запрос на получение актуальной копии блокчейна или запрос на получение хэша последней транзакции.8.2. They check the type of request: a request for an up-to-date copy of the blockchain or a request for a hash of the last transaction.

8.3. Извлекают из базы данных актуальную копию блокчейна сервера, если пришедший запрос является запросом на получение актуальной копии блокчейна.8.3. An up-to-date copy of the server blockchain is retrieved from the database if the incoming request is a request for an up-to-date copy of the blockchain.

8.4. Извлекают из базы данных хэш последней транзакции сервера, если пришедший запрос является запросом на получение хэша последней транзакции.8.4. The hash of the last transaction of the server is retrieved from the database if the incoming request is a request to obtain the hash of the last transaction.

8.5. Формируют и отправляют клиенту ответ в соответствии с принятым запросом.8.5. A response is formed and sent to the client in accordance with the received request.

9. Запускают сервер обработки транзакций для участия в процессе консенсуса. На этом сервере обрабатываются транзакции на добавление новых записей, которые инициализируют другие участники сети.9. Start the transaction processing server to participate in the consensus process. This server processes transactions for adding new records that are initialized by other network members.

Более подробно объясним принцип работы сервера обработки транзакций, принимающего участие в процессе консенсуса (фиг. 3):Let us explain in more detail the principle of operation of the transaction processing server that takes part in the consensus process (Fig. 3):

9.1. Принимают сервером обработки транзакций транзакции, поступившей от клиента.9.1. The transaction processing server receives the transaction received from the client.

9.2. Извлекают из транзакции предлагаемый клиентом ID и хэш последней транзакции из локальной копии блокчейна клиента.9.2. The ID offered by the client and the hash of the last transaction from the local copy of the client's blockchain are extracted from the transaction.

9.3. Проверяют последний ID локальной копии блокчейна сервера обработки транзакций, при этом ID должен быть на единицу меньше, предлагаемого клиентом.9.3. The last ID of the local copy of the blockchain of the transaction processing server is checked, and the ID must be one less than that offered by the client.

9.4. Осуществляют проверку правильности ID.9.4. Perform validation of the ID.

9.5. Проверяют хэш последней транзакции локальной копии блокчейна клиента, содержащийся в присланной клиентом транзакции, и хэш последней транзакции локальной копии блокчейна сервера обработки транзакций, при этом хэш должен совпадать.9.5. The hash of the last transaction of the local copy of the client's blockchain, contained in the transaction sent by the client, and the hash of the last transaction of the local copy of the transaction processing server's blockchain are checked, and the hash must match.

9.6. Проверяют равенство хэшей.9.6. Checking for hash equality.

9.7. Отправляют клиенту ответ с положительным решением о подтверждении данным сервером обработки транзакций принятую от клиента транзакцию.9.7. A response is sent to the client with a positive decision to confirm the transaction received from the client by this transaction processing server.

9.8. Если по результатам проверки на этапах 94 или 96 получен отрицательный результат, то отправляют клиенту сообщение об отказе данным сервером обработки транзакций подтверждать принятую от клиента транзакцию. На этом этапе обработка транзакции сервером обработки транзакций завершается.9.8. If a negative result is obtained as a result of the check at steps 94 or 96, then a message is sent to the client about the refusal by this transaction processing server to confirm the transaction received from the client. At this point, the processing of the transaction by the transaction processing server is completed.

9.9. Добавляют принятую от клиента транзакцию сервером обработки транзакций в свою локальную копию блокчейна.9.9. They add the transaction received from the client by the transaction processing server to their local copy of the blockchain.

9.10. Запускают алгоритм анализа содержимого на наличие входящих сообщений от одного из добавленных пользователей на этом сервере обработки транзакций.9.10. Run the content analysis algorithm for incoming messages from one of the added users on this transaction processing server.

Далее более подробно описываем принцип, по которому производится анализ транзакции на наличие входящих сообщений (фиг.4):Next, we describe in more detail the principle by which the transaction is analyzed for the presence of incoming messages (Fig.4):

9.10.1. Извлекают из всей транзакции зашифрованную часть транзакции путем выделения, предлагаемого клиентом ID и хэша последней транзакции из клиентской копии блокчейна.9.10.1. The encrypted part of the transaction is extracted from the entire transaction by extracting the ID and hash of the last transaction offered by the client from the client copy of the blockchain.

9.10.2. Расшифровывают закрытую часть транзакции путем наложения ключа каждого добавленного сервером обработки транзакций пользователя на зашифрованную с использованием шифра Вернама часть транзакции с учетом смещения ключа, при этом зашифрованная часть транзакции будет считаться расшифрованной только в случае, если в поле отправителя, которое также зашифровано с использованием шифра Вернама, будет имя пользователя, на чьем ключе производится расшифровка, а в поле получателя будет имя пользователя, чей сервер обработки транзакций выполняет расшифрование данной транзакции (фиг. 5).9.10.2. The private part of the transaction is decrypted by overlaying the key of each user added by the transaction processing server to the part of the transaction encrypted using the Vernam cipher, taking into account the key offset, while the encrypted part of the transaction will be considered decrypted only if in the sender field, which is also encrypted using the Vernam cipher , there will be the name of the user on whose key the decryption is performed, and in the recipient field there will be the name of the user whose transaction processing server performs the decryption of this transaction (Fig. 5).

9.10.3. Проверяют получилось ли расшифровать сообщение на одном из ключей добавленных пользователей, если получилось, то расшифрованная часть транзакции разбивается на логические элементы: время отправки, имя отправителя, имя получателя и передаваемое сообщение, которое может являться либо текстовым файлом размером до 1 Кбайта, либо текстовым сообщением; и заносится в локальную базу данных сервера обработки транзакций в открытом виде, если не получилось расшифровать сообщение на одном из ключей добавленных пользователей, то транзакция не предназначена для пользователя данного сервера обработки транзакций.9.10.3. They check whether it was possible to decrypt the message on one of the keys of the added users, if it succeeded, then the decrypted part of the transaction is divided into logical elements: the time of sending, the name of the sender, the name of the recipient and the transmitted message, which can be either a text file up to 1 KB in size, or a text message ; and is entered in the local database of the transaction processing server in clear text, if it was not possible to decrypt the message on one of the keys of the added users, then the transaction is not intended for the user of this transaction processing server.

10. Запрашивают хэши транзакций у серверов всех доступных на данный момент времени в сети IP-адресов.10. Request transaction hashes from the servers of all currently available IP addresses in the network.

11. Выбирают по мажоритарному правилу актуальный хэш последней транзакции.11. The current hash of the last transaction is selected by the majority rule.

12. Осуществляют запрос на получение актуальной копии блокчейна у одного из отправителей актуального хэша последней транзакции.12. A request is made to obtain an up-to-date copy of the blockchain from one of the senders of the up-to-date hash of the last transaction.

13. Запускают алгоритм анализа принятой копии блокчейна. Этот алгоритм необходим для выбора из всего множества транзакций, которые произошли в сети во время отсутствия запрашивающего, тех транзакций, которые относятся к запрашивающему и дальнейшей обработки этих транзакций и запись в базу данных извлеченных из этих транзакций сведений.13. The algorithm for analyzing the received copy of the blockchain is launched. This algorithm is necessary to select from the entire set of transactions that occurred in the network during the absence of the requester, those transactions that relate to the requester and further process these transactions and record the information extracted from these transactions in the database.

Более подробно объясним принцип, по которому производится анализ принятой копии блокчейна (фиг. 6):Let us explain in more detail the principle by which the analysis of the received copy of the blockchain is performed (Fig. 6):

13.1. Удаляют из базы данных предыдущую локальную копию блокчейна и записывают в базу данных, принятую от сервера обработки запросов на получение хэша последней транзакций и актуальной копии блокчейна, копию локального блокчейна.13.1. The previous local copy of the blockchain is deleted from the database and a copy of the local blockchain is written to the database received from the server for processing requests for obtaining the hash of the last transaction and the current copy of the blockchain.

13.2. Проверяют количество транзакций предыдущей локальной копии блокчейна с принятой копией, если у предыдущей локальной копии блокчейна число транзакций больше, чем у принятой копии, то значит произошло обновление глобального блокчейна.13.2. The number of transactions of the previous local copy of the blockchain with the accepted copy is checked, if the previous local copy of the blockchain has more transactions than the accepted copy, then the global blockchain has been updated.

13.3. Проверяют, произошло ли обновление глобального блокчейна. Если да, то обнуляют смещения ключей для всех добавленных пользователей, если не произошло, все смещения оставляют со старыми значениями.13.3. Check if the global blockchain has been updated. If yes, then reset the key offsets for all added users, if not, all offsets are left with the old values.

13.4. Анализируют каждую транзакцию на наличие входящих сообщений.13.4. Analyze each transaction for incoming messages.

14. Отображают список добавленных пользователей с количеством непрочитанных сообщений от каждого из них.14. Display a list of added users with the number of unread messages from each of them.

15. Осуществляют выбор одной из функций, реализованных в рассматриваемой системе, для выполнения.15. One of the functions implemented in the system under consideration is selected for execution.

Далее подробно описываем выбор одной из функций, реализованных в системе (фиг. 7):Next, we describe in detail the choice of one of the functions implemented in the system (Fig. 7):

15.1. Выбор номера функции для выполнения.15.1. Selecting the function number to be executed.

15.2. Проверяют выбрана ли функция №1. Если выбрана, то добавляют нового пользователя, при этом вводят имя нового пользователя и указывают путь к файлу с ключом для этого пользователя.15.2. Check if function #1 is selected. If selected, then a new user is added, while entering the name of the new user and specifying the path to the file with the key for this user.

15.3. Проверяют выбрана ли функция №2. Если выбрана, то отображают переписку с конкретным пользователем и отправляют ему текстовое сообщение.15.3. Check if function #2 is selected. If selected, then display the correspondence with a specific user and send him a text message.

Далее приведено описании функции отображения истории переписки с указанным пользователем и отправке ему текстового сообщения (фиг. 8):The following is a description of the function of displaying the history of correspondence with the specified user and sending him a text message (Fig. 8):

15.3.1. Отображают предыдущую переписку с данным пользователем из базы данных.15.3.1. Display the previous correspondence with the given user from the database.

15.3.2. Вводят новое сообщение для пользователя.15.3.2. Enter a new message for the user.

15.3.3. Добавляют к сообщению, как минимум, поле времени отправки сообщения, поле имени отправителя, поле имени получателя и выполняют шифрование этих полей на ключе данного пользователя.15.3.3. Add to the message, at least, the field of the time of sending the message, the sender's name field, the recipient's name field and encrypt these fields on the key of the given user.

15.3.4. Извлекают из базы данных ID последней транзакции и увеличивают на единицу данное значение и формируют новый ID для транзакции.15.3.4. The ID of the last transaction is retrieved from the database and this value is increased by one and a new ID for the transaction is generated.

15.3.5. Извлекают из базы данных хэш последней транзакции локальной копии блокчейна отправителя, причем, необходимо отметить, что хэш любой транзакции, за исключением первой, формируется путем вычисления хэша от двух значений: хэша транзакции, записанной в локальной копии блокчейна отправителя до текущей транзакции и текущей транзакции в локальной копии блокчейна отправителя.15.3.5. The hash of the last transaction of the local copy of the sender's blockchain is retrieved from the database, and it should be noted that the hash of any transaction, except for the first one, is formed by calculating the hash from two values: the hash of the transaction recorded in the local copy of the sender's blockchain before the current transaction and the current transaction in local copy of the sender's blockchain.

15.3.6. Создают транзакцию для передачи, в которую входит новый ID, хэш последней транзакции локальной копии блокчейна отправителя и зашифрованные данные на пользовательском ключе с использованием шифра Вернама, что является ТНДШ системой при условии, что пользовательский ключ - абсолютно случайный набор бит.15.3.6. A transaction is created for transmission, which includes a new ID, a hash of the last transaction of the local copy of the sender's blockchain, and encrypted data on the user key using the Vernam cipher, which is the TNDS system, provided that the user key is a completely random set of bits.

15.3.7. Отправляют всем доступным IP-адресам из списка актуальных IP-адресов, присланным центральным сервером, т.е. находящимся в рассматриваемой нами системе, сформированную транзакцию.15.3.7. Sent to all available IP addresses from the list of current IP addresses sent by the central server, i.e. located in the system we are considering, the generated transaction.

15.3.8. Принимают от всех доступных IP-адресов из списка актуальных IP-адресов, присланным центральным сервером, т.е. находящихся в рассматриваемой нами системе, ответ о готовности подтверждения серверами обработки транзакций сформированной транзакции.15.3.8. Accepted from all available IP addresses from the list of actual IP addresses sent by the central server, i.e. located in the system we are considering, a response about the readiness to confirm the generated transaction by the transaction processing servers.

15.3.9. Проверяют по мажоритарному правилу факт подтверждения транзакции.15.3.9. They check the fact of confirmation of the transaction according to the majority rule.

15.3.10. Если проверка прошла успешно, то добавляют транзакцию в локальную копию блокчейна отправителя.15.3.10. If the verification is successful, then the transaction is added to the local copy of the sender's blockchain.

15.3.11. Если проверка не прошла успешно, то выполняют запрос актуальной копии блокчейна.15.3.11. If the verification was not successful, then a request for an up-to-date copy of the blockchain is performed.

15.3.12. Добавляют в незашифрованном виде поле - время отправки транзакции, поле - имя отправителя, поле - имя получателя и передаваемое сообщение в базу данных.15.3.12. A field is added in unencrypted form - the time the transaction was sent, a field - the name of the sender, a field - the name of the recipient and the message to be sent to the database.

15.3.13. Выполняют смещение ключа для данного пользователя на длину зашифрованных данных.15.3.13. The key is shifted for the given user by the length of the encrypted data.

15.4. Проверяют выбрана ли функция №3. Если выбрана, то отображают переписку с конкретным пользователем и отправляют этому пользователю текстовый файл размером до 1 Кбайта, причем, необходимо отметить, что размер 1 Кбайт был определен эмпирическим способом как наиболее рациональный максимальный размер транзакции для хранения в блокчейне. Максимальный размер транзакции может быть заменен на любой другой.15.4. Check whether function #3 is selected. If selected, then the correspondence with a specific user is displayed and a text file up to 1 Kb in size is sent to this user, and it should be noted that the size of 1 Kb was determined empirically as the most rational maximum transaction size for storage in the blockchain. The maximum transaction size can be changed to any other.

15.5. Проверяют выбрана ли функция №4. Если выбрана, то обновляют ключ шифрования для конкретного пользователя. Для обновления необходимо ввести имя пользователя и путь к файлу, содержащему новый ключ. Смещение для ключа будет помещено в нулевое значение.15.5. Check if function #4 is selected. If selected, then update the encryption key for a specific user. To update, you must enter the username and path to the file containing the new key. The offset for the key will be set to zero.

15.6. Проверяют выбрана ли функция №5. Если выбрана, то отправляют файл в распределенное хранилище данных (фиг. 9).15.6. Check whether function #5 is selected. If selected, the file is sent to the distributed data store (FIG. 9).

Далее представлено более подробное описание отправки файла в распределенное хранилище (фиг. 10):The following is a more detailed description of sending a file to distributed storage (Fig. 10):

15.6.1. Вводят путь к исходному файлу.15.6.1. Enter the path to the source file.

15.6.2. Зашифровывают исходный файл алгоритмом шифрования «Advanced Encryption Standard» с длинной ключа 256 бит, в режиме гаммирования с обратной связью CFB, при этом ключ шифрования помещают в файл-ссылку. Режим шифрования гаммирование с обратной связью выбран для того, чтобы при отсутствии одной из частей зашифрованного файла, или неправильном порядке следования частей зашифрованного файла, невозможно было расшифровать ни файл целиком, ни его часть.15.6.2. The source file is encrypted with the Advanced Encryption Standard encryption algorithm with a key length of 256 bits, in the CFB feedback gamma mode, while the encryption key is placed in the link file. Encryption mode gamming with feedback is chosen so that in the absence of one of the parts of the encrypted file, or the wrong order of the parts of the encrypted file, it would be impossible to decrypt either the entire file or its part.

15.6.3. Вычисляют хэш зашифрованного файла, при этом помещают хэш в файл-ссылку.15.6.3. The hash of the encrypted file is calculated, and the hash is placed in the link file.

15.6.4. Разбивают зашифрованный файл на N частей, каждая из которых записывается в отдельный файл, случайного размера, при этом всю метаинформацию и одну из N частей случайного размера, которая не отправляется в сеть, чтобы исключить возможность сбора всего зашифрованного файла, помещают в файл-ссылку.15.6.4. The encrypted file is split into N parts, each of which is written to a separate file, of random size, while all meta-information and one of the N parts of random size, which is not sent to the network, is placed in a link file to exclude the possibility of collecting the entire encrypted file.

15.6.5. Добавляют К ложных частей, для того, чтобы увеличить энтропию об исходном зашифрованном файле, при этом всю метаинформацию, необходимую для корректного восстановления зашифрованного файла, помещают в файл-ссылку.15.6.5. K false parts are added in order to increase the entropy about the original encrypted file, while all the meta-information necessary for the correct recovery of the encrypted file is placed in the link file.

15.6.6. Назначают каждому из (N-1+K) файлов R серверов в распределенной системе хранения данных - для организации дублирования и повышения отказоустойчивости системы, и вычисляют хэш каждого из этих файлов, при этом всю метаинформацию помещают в файл-ссылку.15.6.6. Each of (N-1+K) files of R servers in a distributed data storage system is assigned to organize duplication and increase system fault tolerance, and calculate the hash of each of these files, while all meta-information is placed in a link file.

15.6.7. Перемешивают (N-1+K) файлов - меняют очередь отправки в сеть частей зашифрованного файла, при этом всю метаинформацию помещают в файл-ссылку.15.6.7. Shuffle (N-1+K) files - change the queue for sending parts of the encrypted file to the network, while all meta-information is placed in the link file.

15.6.8. Отправляют каждый из (N-1+K) файлов на R серверов в распределенной системе хранения данных с использованием Proxy-серверов, VPN или системы подмены IP-адресов - для затруднения выявления отправителя каждого из файлов.15.6.8. Send each of the (N-1+K) files to R servers in a distributed storage system using Proxy servers, VPN or IP address spoofing system - to make it difficult to identify the sender of each of the files.

15.6.9. Формируют окончательный вариант файла-ссылки.15.6.9. Form the final version of the link file.

15.7. Проверяют выбрана ли функция №6. Если выбрана, то запрашивают файл из распределенного хранилища данных (фиг. 9).15.7. Check whether function #6 is selected. If selected, the file is requested from the distributed data store (FIG. 9).

Далее представлено более подробное описание запроса файла из распределенного хранилища (фиг. 11):The following is a more detailed description of a file request from distributed storage (Fig. 11):

15.7.1. Вводят путь к файлу-ссылке на исходный файл.15.7.1. Enter the path to the file-link to the source file.

15.7.2. Извлекают из файла-ссылки метаинформацию об исходном файле: количество частей, на которые был разбит исходный файл, количество ложных частей, имена файлов на удаленных серверах, правила перемешивания файлов перед отправкой, IP-адреса серверов хранения файлов, ключ шифрования, на котором зашифрован весь файл, хэши частей файла, хэш всего файла.15.7.2. Meta-information about the source file is extracted from the link file: the number of parts into which the source file was split, the number of false parts, file names on remote servers, rules for mixing files before sending, IP addresses of file storage servers, encryption key on which the entire file, hashes of parts of the file, hash of the entire file.

15.7.3. Запрашивают с серверов части файлов с использованием Proxy-серверов, VPN или системы подмены IP-адресов с целью затруднить определение получателя частей зашифрованного файла.15.7.3. They request parts of files from servers using proxy servers, VPNs, or an IP address spoofing system in order to make it difficult to determine the recipient of parts of an encrypted file.

15.7.4. Проверяют хэши частей файла таким образом, что если с серверов в распределенной системе хранения данных пришла, как минимум, одна правильная копия каждой части файла и ее хэш правильный, то переходят к следующему шагу, если хоть одно из вышеперечисленных условий не выполняется, то выдают сообщение об ошибке и прекращают работу сбора исходного файла.15.7.4. The hashes of the file parts are checked in such a way that if at least one correct copy of each part of the file has come from the servers in the distributed storage system and its hash is correct, then proceed to the next step, if at least one of the above conditions is not met, then a message is displayed about an error and stop collecting the source file.

15.7.5. Перемешивают принятые части файла, чтобы выстроить их в правильном порядке, причем, необходимо отметить, что вся необходимая метаинформация содержится в файле-ссылке.15.7.5. The received parts of the file are shuffled in order to arrange them in the correct order, and it should be noted that all the necessary meta-information is contained in the link file.

15.7.6. Отделяют ложные части файла.15.7.6. Separate the false parts of the file.

15.7.7. Выполняют сборку зашифрованного исходного файла.15.7.7. Build the encrypted source file.

15.7.8. Проверяют хэш всего зашифрованного файла, если проверка неудачная, то выдают сообщение об ошибке и прекращают работу сбора исходного файла.15.7.8. They check the hash of the entire encrypted file, if the check fails, they issue an error message and stop collecting the source file.

15.7.9. Выполняют расшифрование зашифрованного файла.15.7.9. Perform decryption of the encrypted file.

15.8. Проверяют выбрана ли функция №7. Если выбрана, то обновляют интерфейс отображения пользовательской информации.15.8. Check whether function No. 7 is selected. If selected, the user information display interface is updated.

15.9. Проверяют выбрана ли функция №8. Если выбрана, то осуществляют безопасный выход из системы.15.9. Check whether function #8 is selected. If selected, perform a secure logout.

16. Проверяют факт того, что выбрана функция безопасного выхода из системы.16. Verify that the secure logout feature is selected.

17. Если не выбрана функция безопасного выхода из системы, то осуществляют выполнение выбранной функции. После выполнения данной функции снова осуществляется выбор функции для выполнения (этап 15).17. If the secure logout function is not selected, then the selected function is executed. After this function is executed, the function to be executed is again selected (step 15).

18. Если выбрана функция безопасного выхода из системы, или результат проверки корректности расшифрования файла базы данных в пункте 6 отрицательный - файл базы данных не был корректно расшифрован, то осуществляется шифрование базы данных на введенном ранее корректном пароле.18. If the secure logout function is selected, or the result of checking the correctness of the decryption of the database file in paragraph 6 is negative - the database file was not decrypted correctly, then the database is encrypted using the previously entered correct password.

19. Завершают работу с базой данных.19. Finish working with the database.

Заявленный способ организации защищенного обмена информацией с использованием технологии блокчейн и распределенных систем хранения данных позволяет достичь технического результата невозможности компрометации отправителей и получателей файлов в распределенной системе хранения данных за счет того, что при отправке файла в распределенное хранилище данных устройство-участник блокчейн-коммуникации зашифровывает файл с помощью симметричного шифрования на алгоритме aes-256 в режиме CFB. При этом распределенное хранилище данных может состоять из любых сторонних хранилищ данных. Отправляемый файл разбивается на несколько частей, вводятся ложные части, перемешиваются файлы перед отправкой, назначают каждому файлу, который содержит часть зашифрованного файла или ложную часть файла, серверы, на которых будут храниться эти файлы. Вышеперечисленные меры, с одной стороны, значительно усложняют задачу сбора статистики об отправляемых файлах, а с другой стороны, гарантируют невозможность дешифрования файлов, хранящихся в распределенной системе хранения данных. С целью невозможности определения отправителя и получателя частей зашифрованного файла, все соединения осуществляют либо через механизмы подмены IP-адресов, либо через Proxy-серверы, либо через VPN.The claimed method of organizing a secure exchange of information using blockchain technology and distributed data storage systems makes it possible to achieve the technical result of the impossibility of compromising senders and recipients of files in a distributed data storage system due to the fact that when sending a file to a distributed data storage, the device participating in the blockchain communication encrypts the file using symmetric encryption on the aes-256 algorithm in CFB mode. At the same time, a distributed data warehouse can consist of any third-party data stores. The sent file is split into several parts, false parts are introduced, files are mixed before sending, each file that contains a part of the encrypted file or a false part of the file is assigned the servers on which these files will be stored. The above measures, on the one hand, greatly complicate the task of collecting statistics on sent files, and on the other hand, guarantee the impossibility of decrypting files stored in a distributed storage system. In order to make it impossible to determine the sender and recipient of parts of the encrypted file, all connections are made either through IP address spoofing mechanisms, or through Proxy servers, or through VPN.

Система защищенного обмена информацией с использованием технологии блокчейн и распределенных систем хранения данных (фиг. 12) состоит из одного центрального сервера 101 (фиг. 13) и, как минимум, трех устройств-участников блокчейн-коммуникации 102 (фиг. 14).The secure information exchange system using blockchain technology and distributed data storage systems (Fig. 12) consists of one central server 101 (Fig. 13) and at least three devices participating in the blockchain communication 102 (Fig. 14).

Центральный сервер (фиг. 13) содержит модуль приема/передачи информации в сети связи для приема и передачи данных по каналам связи, общую шину обмена информацией для обмена информацией между модулями устройства, модуль обработки «hello-сообщений» для приема от устройств-участников блокчейн-коммуникации (фиг. 14) «hello-сообщений» и обновление актуального списка доступных в текущий момент времени IP-адресов в сети, модуль обработки запросов на получение актуальной копии списка в текущий момент времени IP-адресов в сети для отправки актуального списка доступных в данный момент времени IP-адресов в сети по запросу, модуль памяти для хранения актуального списка доступных на текущий момент времени IP-адресов в сети, модуль питания устройства для обеспечения электроэнергией всех модулей устройства.The central server (Fig. 13) contains a module for receiving / transmitting information in a communication network for receiving and transmitting data via communication channels, a common information exchange bus for exchanging information between device modules, a module for processing "hello messages" for receiving from devices participating in the blockchain - communications (Fig. 14) of "hello messages" and updating the current list of currently available IP addresses in the network, a module for processing requests for obtaining an up-to-date copy of the list of IP addresses in the network at the current time to send an up-to-date list of IP addresses available in the network a given point in time of IP addresses in the network upon request, a memory module for storing an up-to-date list of currently available IP addresses in the network, a device power module to provide power to all device modules.

Устройство-участник блокчейн-коммуникации (фиг. 14) содержит модуль приема/передачи информации в сети связи для приема и передачи данных по каналам связи, общую шину обмена информацией для обмена информацией между модулями устройства, модуль отправки запросов на серверы для отправки запросов на серверы обработки запросов на получение хэша последней транзакции и актуальной копии блокчейна и на серверы обработки транзакций, модуль клиента для запросов у центрального сервера актуального списка IP-адресов в сети и отправки «hello-сообщения» для идентификация устройства в сети как доступного посредством отправки на центральный сервер «hello-сообщения» и получение актуального списка доступных на данный момент времени IP-адресов в сети, модуль сервера обработки запросов на получение хэша последней транзакции и актуальной копии блокчейна для отправки хэша последней транзакции по запросу и отправки копии локального блокчейна по запросу, модуль сервера обработки транзакций для участия в процессе консенсуса для обработки транзакций и отправки ответа на запрос о ее подтверждении или отклонении, модуль базы данных для хранения и предоставления доступа модулям ко всей необходимой информации, модуль памяти для хранения файлов и файлов-ссылок, а так же базы данных, модуль ввода/вывода информации для осуществления ввода/вывода информации в устройство, модуль питания устройства для обеспечения электроэнергией всех модулей устройства.The device participating in the blockchain communication (Fig. 14) contains a module for receiving/transmitting information in a communication network for receiving and transmitting data via communication channels, a common information exchange bus for exchanging information between device modules, a module for sending requests to servers for sending requests to servers processing requests to obtain a hash of the last transaction and an up-to-date copy of the blockchain and to transaction processing servers, a client module for requesting the central server for an up-to-date list of IP addresses on the network and sending a “hello message” to identify the device on the network as available by sending it to the central server “hello messages” and getting an up-to-date list of currently available IP addresses on the network, a server module for processing requests to receive a hash of the last transaction and an up-to-date copy of the blockchain to send a hash of the last transaction on request and send a copy of the local blockchain on request, server module processing transactions to participate in the process consensus for processing transactions and sending a response to a request for its confirmation or rejection, a database module for storing and providing access to modules to all necessary information, a memory module for storing files and link files, as well as databases, an information input / output module for input/output of information to the device, the power supply module of the device to provide electricity to all modules of the device.

Центральный сервер может быть реализован по известной схеме, например, как персональный компьютер (ПК) на базе процессора Intel Corei3-10100 с тактовой частотой 3.6 МГц, оперативной памятью DDR4 объемом 2 ГБ и установленной операционной системой (ОС) Ubuntu 16.04 LTS.The central server can be implemented according to a well-known scheme, for example, as a personal computer (PC) based on an Intel Corei3-10100 processor with a clock speed of 3.6 MHz, 2 GB DDR4 RAM and an installed operating system (OS) Ubuntu 16.04 LTS.

Устройство-участник блокчейн-коммуникации может быть реализовано по известной схеме, например, как персональный компьютер (ПК) на базе процессора Intel Core i3-10100 с тактовой частотой 3.6 МГц, оперативной памятью DDR4 объемом 2 ГБ и установленной операционной системой Ubuntu 16.04 LTS.A device participating in blockchain communication can be implemented according to a well-known scheme, for example, as a personal computer (PC) based on an Intel Core i3-10100 processor with a clock frequency of 3.6 MHz, 2 GB DDR4 RAM and an installed Ubuntu 16.04 LTS operating system.

Интерактивный процесс системы защищенного обмена информацией с использованием технологии блокчейн и распределенных систем хранения данных описан ниже.The interactive process of a secure information exchange system using blockchain technology and distributed data storage systems is described below.

При входе в систему устройство-участник блокчейн-коммуникации отправляет центральному серверу «hello-сообщение», в ответ получает подтверждение приема «hello-сообщения» центральным сервером, после чего запрашивает у центрального сервера актуальный список доступных в сети IP-адресов. Вышеперечисленные действия периодически повторяются, т.к. устройства-участники блокчейн-коммуникации выходят из сети и заходят в сеть.When entering the system, the device participating in the blockchain communication sends a “hello message” to the central server, in response receives confirmation of the receipt of the “hello message” by the central server, and then requests the central server for an up-to-date list of IP addresses available on the network. The above actions are periodically repeated, because. devices participating in the blockchain communication leave the network and enter the network.

Далее устройству-участнику блокчейн-коммуникации необходимо получить актуальную копию глобального блокчейна сети, т.к. за время его отсутствия в сети глобальный блокчейн мог измениться. Для этого устройство-участник блокчейн-коммуникации запрашивает у всех доступных IP-адресов, а именно у серверов обработки запросов на хэш последней транзакции или на получение актуальной копии блокчейна, в сети хэш последней транзакции из их локальной копии блокчейна и выбирает по мажоритарному признаку актуальный хэш последней транзакции и запрашивает у одного из отправителей актуального хэша последней транзакции его локальную копию блокчейна, принимая ее актуальной. Далее выполняет анализ на входящие сообщения в этом блокчейне.Next, the device participating in the blockchain communication needs to receive an up-to-date copy of the global blockchain of the network, because during his absence from the network, the global blockchain could change. To do this, the device participating in the blockchain communication asks all available IP addresses, namely the servers for processing requests for the hash of the last transaction or for obtaining the current copy of the blockchain, in the network the hash of the last transaction from their local copy of the blockchain and selects the current hash by majority of the last transaction and asks one of the senders of the current hash of the last transaction for its local copy of the blockchain, accepting it as up-to-date. Then it performs analysis on incoming messages in this blockchain.

При отправке устройством-участником блокчейн-коммуникации одному из добавленных пользователей текстового сообщения или текстового файла размером до 1 Кбайта оно отправляет всем доступным IP-адресам в сети передаваемую транзакцию в виде: «предлагаемый ID хэш последней транзакции из своей локальной копии блокчейна зашифрованное на пользовательском ключе для ТНДШ системы сообщение». В него входят: поля времени отправки, отправителя, получателя и самой передаваемой информации.When a device participating in a blockchain communication sends a text message or a text file up to 1 Kbyte in size to one of the added users, it sends to all available IP addresses in the network the transmitted transaction in the form: for TNDSH system message". It includes: fields of sending time, sender, recipient and the transmitted information itself.

Данная транзакция обрабатывается всеми серверами обработки транзакций и если они согласны подтвердить принятую транзакцию, то они отсылают в ответ «YES» и добавляют в свою локальную копию блокчейна присланную транзакцию, а если не согласны, то отсылают «NO». Если большинство принятых от серверов обработки транзакций ответов будут «YES», то происходит добавление транзакции в локальную копию блокчейна устройства-участника блокчейн-коммуникации, отправлявшего транзакцию в сеть, если большинство ответов будут «NO», то транзакция не добавляется и производиться запрос актуальной копии блокчейна, т.к. если большинство IP-адресов в сети не подтвердили транзакцию, значит на данный момент у отправлявшего транзакцию устройства-участника блокчейн-коммуникации содержится неправильная копия блокчейна.This transaction is processed by all transaction processing servers, and if they agree to confirm the accepted transaction, then they send “YES” in response and add the sent transaction to their local copy of the blockchain, and if they do not agree, they send “NO”. If the majority of the responses received from the transaction processing servers are “YES”, then the transaction is added to the local copy of the blockchain of the device participating in the blockchain communication that sent the transaction to the network, if the majority of the responses are “NO”, then the transaction is not added and the actual copy is requested blockchain, because if most of the IP addresses in the network did not confirm the transaction, then the device participating in the blockchain communication that sent the transaction currently contains an incorrect copy of the blockchain.

Организация удаленного обмена очередными ключами для ТНДШ системы, а также любых других файлов, без угрозы их компрометации осуществляется следующим образом.The organization of a remote exchange of regular keys for the TNDSH system, as well as any other files, without the threat of their compromise, is carried out as follows.

При отправке файла в распределенное хранилище данных, которое может состоять из любых сторонних хранилищ данных 103, устройство-участник блокчейн-коммуникации зашифровывает файл с помощью симметричного шифрования с использованием алгоритма aes-256 в режиме CFB на ключе для ПНДШ системы. Разбивает отправляемый файл на несколько частей, вводит ложные части, перемешивает файлы перед отправкой, назначает каждому файлу, который содержит часть настоящего зашифрованного файла или ложную часть файла, серверы, где будут храниться эти файлы. Для того, чтобы затруднить определение получателя частей зашифрованного файла, все соединения происходят либо через механизмы подмены IP-адресов, либо через Proxy-серверы, либо через VPN.When sending a file to a distributed data store, which may consist of any third-party data stores 103, the device participating in the blockchain communication encrypts the file using symmetric encryption using the aes-256 algorithm in CFB mode on the key for the PNDS system. Splits the file being sent into several parts, introduces false parts, shuffles files before sending, assigns each file that contains part of a real encrypted file or a false part of a file to the servers where these files will be stored. In order to make it difficult to determine the recipient of parts of an encrypted file, all connections occur either through IP address spoofing mechanisms, or through Proxy servers, or through VPN.

Для того чтобы дешифровать зашифрованный исходный файл необходимо собрать зашифрованный файл целиком и в правильном порядке. Для того, чтобы это было невозможно сделать, одну или несколько из реальных частей зашифрованного исходного файла помещаем в файл-ссылку, который находится на устройстве-участнике блокчейн-коммуникации и в будущем будет передаваться по сети только в зашифрованном на пользовательском ключе для ТНДШ системы виде, а следовательно, если не произойдет компрометация пользовательского ключа - однозначно дешифровать его будет невозможно, а следовательно невозможно получить недостающую часть исходного зашифрованного файла, а значит, даже при условии, что злоумышленник соберет воедино все части файла, отделит ложные части от настоящих, выстроит их в правильном порядке, определит какой части не хватает, то не сможет однозначно дешифровать файл, т.к. у него не будет недостающей части исходного зашифрованного файла.In order to decrypt an encrypted source file, it is necessary to assemble the encrypted file in its entirety and in the correct order. To make this impossible, we place one or more of the real parts of the encrypted source file in a link file that is located on the device participating in the blockchain communication and in the future will be transmitted over the network only in the form encrypted with the user key for the TNDS system , and therefore, if the user key is not compromised, it will be impossible to unambiguously decrypt it, and therefore it will be impossible to obtain the missing part of the original encrypted file, which means that even if the attacker puts together all parts of the file, separates the false parts from the real ones, builds them in the correct order, will determine which part is missing, then it will not be able to unambiguously decrypt the file, because it will not have the missing part of the original encrypted file.

Вся метаинформация о каждом отправляемом файле в распределенную систему хранения заносится в файл-ссылку: на какие серверы, или несколько серверов - для дублирования, отправлен каждый маленький файл - файл, являющийся частью исходного зашифрованного файла, хэш каждого маленького файла, хэш всего файла, часть зашифрованного исходного файла, ключ шифрования на котором был зашифрован исходный файл, правило перемешивания маленьких файлов, сколько ложных, а сколько реальных файлов и т.п.All meta-information about each file sent to a distributed storage system is entered in a link file: to which servers, or several servers - for duplication, each small file is sent - a file that is part of the original encrypted file, a hash of each small file, a hash of the entire file, part the encrypted source file, the encryption key on which the source file was encrypted, the rule for mixing small files, how many false and how many real files, etc.

При необходимости запроса файла из распределенного хранилища устройство-участник блокчейн-коммуникации выполняет вышеперечисленные действия в обратном порядке: обращается к файлу-ссылке, запрашивает с серверов части исходного зашифрованного файла, проверяет хэши принятых маленьких файлов, перемешивает в правильном порядке, отделяет ложные части от реальных, собирает исходный зашифрованный файл целиком путем добавления недостающих частей из файла-ссылки, проверяет хэш всего зашифрованного файла и расшифровывает.If it is necessary to request a file from a distributed storage, the device participating in the blockchain communication performs the above actions in reverse order: accesses the link file, requests parts of the original encrypted file from the servers, checks the hashes of the received small files, mixes them in the correct order, separates the false parts from the real ones , collects the original encrypted file in its entirety by adding the missing parts from the link file, checks the hash of the entire encrypted file and decrypts it.

Благодаря новой совокупности существенных признаков достигается указанный технический результат за счет использования системы организации защищенного обмена информацией с использованием технологии блокчейн и распределенных систем хранения данных, которая содержит как минимум, один центральный сервер, включающий модуль приема/передачи информации в сети связи для приема и передачи данных по каналам связи, общую шину обмена информацией для обмена информацией между модулями устройства, модуль обработки «hello-сообщений» для приема от устройств-участников блокчейн-коммуникации «hello-сообщений» и обновление актуального списка доступных в текущий момент времени IP-адресов в сети, модуль обработки запросов на получение актуальной копии списка в текущий момент времени IP-адресов в сети для отправки актуального списка доступных в текущий момент времени IP-адресов в сети по запросу, модуль памяти для хранения актуального списка доступных на данный момент времени IP-адресов в сети, модуль питания устройства для обеспечения электроэнергией всех модулей устройства и, как минимум, три устройства - участника блокчейн-коммуникации, включающие модуль приема/передачи информации в сети связи для приема и передачи данных по каналам связи, общую шину обмена информацией для обмена информацией между модулями устройства, модуль отправки запросов на серверы для отправки запросов на серверы обработки запросов на получение хэша последней транзакции и актуальной копии блокчейна и на серверы обработки транзакций, модуль клиента для запросов у центрального сервера актуального списка IP-адресов в сети и отправки «hello-сообщения» для идентификация устройства в сети как доступного посредством отправки на центральный сервер «hello-сообщения» и получение актуального списка доступных на данный момент времени IP-адресов в сети, модуль сервера обработки запросов на получение хэша последней транзакции и актуальной копии блокчейна для отправки хэша последней транзакции по запросу и отправки копии локального блокчейна по запросу, модуль сервера обработки транзакций для участия в процессе консенсуса для обработки транзакций и отправки ответа на запрос о ее подтверждении или отклонении, модуль базы данных для хранения и предоставления доступа модулям ко всей необходимой информации, модуль памяти для хранения файлов и файлов-ссылок, а так же базы данных, модуль ввода/вывода информации для осуществления ввода/вывода информации в устройство, модуль питания устройства для обеспечения электроэнергией всех модулей устройства, причем каждое устройство-участник блокчейн-коммуникации взаимодействует с центральным сервером либо через механизмы подмены IP-адресов, либо через Proxy-серверы, либо через VPN.Thanks to a new set of essential features, the specified technical result is achieved through the use of a secure information exchange organization system using blockchain technology and distributed data storage systems, which contains at least one central server, including a module for receiving / transmitting information in a communication network for receiving and transmitting data via communication channels, a common information exchange bus for exchanging information between device modules, a “hello-message” processing module for receiving “hello-messages” from devices participating in the blockchain communication and updating the current list of currently available IP addresses in the network , a module for processing requests for obtaining an up-to-date copy of the list of currently available IP addresses on the network to send an up-to-date list of currently available IP addresses on the network upon request, a memory module for storing an up-to-date list of currently available IP addresses in networks, power module devices for providing electricity to all modules of the device and at least three devices participating in blockchain communication, including a module for receiving / transmitting information in a communication network for receiving and transmitting data via communication channels, a common information exchange bus for exchanging information between device modules, a module sending requests to servers to send requests to servers for processing requests to obtain a hash of the last transaction and an up-to-date copy of the blockchain and to transaction processing servers, a client module for requests from the central server for an up-to-date list of IP addresses on the network and sending a “hello message” to identify the device on the network as available by sending a “hello message” to the central server and receiving an up-to-date list of currently available IP addresses on the network, a server module for processing requests to receive the hash of the last transaction and an up-to-date copy of the blockchain to send the hash of the last transaction upon request, and sending a copy locally on request, a transaction processing server module for participating in the consensus process for processing transactions and sending a response to a request for its confirmation or rejection, a database module for storing and providing access to modules to all necessary information, a memory module for storing files and files - links, as well as a database, an information input/output module for input/output of information to the device, a device power supply module for providing electricity to all device modules, and each device participating in the blockchain communication interacts with the central server or through IP substitution mechanisms. addresses, either through Proxy servers or through VPN.

Согласно теореме Шеннона о совершенном шифре (см. Зубов А.Ю. Совершенные шифры: Вступительное слово чл.-корр. РАН Б.А. Севастьянова. - М.: Гелиос АРВ, 2003. - 160 с. ) ТНДШ системы шифрования требуют, чтобы используемые ключи шифрования были равновероятны между собой - являлись случайными последовательностями бит, и, чтобы количество вариантов ключей было больше либо равно количеству вариантов передаваемой информации, предназначенной для шифрования на данном ключе.According to Shannon's theorem on the perfect cipher (see Zubov A.Yu. Perfect ciphers: Introductory speech by Corresponding Member of the Russian Academy of Sciences B.A. Sevastyanov. - M .: Helios ARV, 2003. - 160 p.) TNDSH encryption systems require, so that the used encryption keys are equally probable among themselves - they are random sequences of bits, and so that the number of key options is greater than or equal to the number of options for the transmitted information intended for encryption on a given key.

В предлагаемом способе выполнение условия равновероятности ключей шифрования возлагается на пользователя системы (участника блокчейн-коммуникации), позволяя ему самостоятельно генерировать ключи наиболее приемлемым для него способом. Выполнение второго условия заключается в том, что для каждого отправляемого сообщения существует отдельный одноразовый блокнот, представленный в виде набора бит длиною равной длине передаваемого сообщения в бинарном виде, а, следовательно, количество вариантов ключа равно количеству вариантов передаваемой информации, который используется один лишь раз для шифрования этого сообщения. Использование этой же последовательности бит для повторного шифрования другого сообщения не допускается.In the proposed method, the fulfillment of the condition of equiprobability of encryption keys is assigned to the user of the system (participant of blockchain communication), allowing him to independently generate keys in the most appropriate way for him. The fulfillment of the second condition is that for each sent message there is a separate one-time pad, represented as a set of bits with a length equal to the length of the transmitted message in binary form, and, therefore, the number of key options is equal to the number of options for the transmitted information, which is used only once for encrypt this message. Using the same bit sequence to re-encrypt another message is not allowed.

В частности, в данном способе используется «XOR-шифрование» -Шифр Вернама, который обладает абсолютной криптографической стойкостью при определенных условиях (см. Зубов А.Ю. Совершенные шифры: Вступительное слово чл.-корр. РАН Б.А. Севастьянова. - М.: Гелиос АРВ, 2003.- 160 с).In particular, this method uses "XOR-encryption" - the Vernam Cipher, which has absolute cryptographic strength under certain conditions (see A.Yu. Zubov. Perfect ciphers: Opening speech by Corresponding Member of the RAS B.A. Sevastyanov. - M.: Helios ARV, 2003.- 160 p.).

Но для того, чтобы безопасно обменяться ключами для данного алгоритма шифрования, нужен либо абсолютно надежный канал связи, а это только канал, который уже защищен ТНДШ системой, либо личная встреча. Однако, передача 1 Гбайта нового ключа для ТНДШ системы по абсолютно надежному каналу, защищенного ТНДШ системой, с израсходованием 1 Гбайта текущего ключа для ТНДШ системы, теряет здравый смысл.But in order to securely exchange keys for this encryption algorithm, you need either an absolutely reliable communication channel, and this is only a channel that is already protected by the TNDS system, or a personal meeting. However, transmitting 1 GB of a new TNDS system key over a completely secure channel, protected by the TNDS system, while using up 1 GB of the current TNDS system key, makes no sense.

Предлагаемая распределенная система хранения файлов решает проблему безопасной передачи ключевой информации для ТНДШ систем по каналам связи. При отправке файла в распределенное хранилище данных, которое может состоять из любых сторонних хранилищ данных, устройство-участник блокчейн-коммуникации зашифровывает файл с помощью симметричного шифрования с использованием алгоритма aes-256 в режиме CFB на ключе для ПНДШ системы. Разбивает отправляемый файл на несколько частей, вводит ложные части, перемешивает файлы перед отправкой, назначает каждому файлу, который содержит часть настоящего зашифрованного файла или ложную часть файла, серверы, где будут храниться эти файлы. Для того, чтобы затруднить процесс сборки частей зашифрованного исходного файла и процесс идентификации отправителей файлов злоумышленником, все соединения происходят либо через механизмы подмены IP-адресов, либо через Proxy-серверы, либо через VPN. Так как в распределенном хранилище данных содержатся лишь зашифрованные части файла, причем, одна или несколько частей исходного зашифрованного файла содержаться только в файле-ссылке, а исходный файл зашифрован методом гаммирования с обратной связью, следовательно, без всех частей исходного зашифрованного файла дешифрование будет бессмысленно. Причем, файл-ссылка будет передаваться уже по каналу связи, защищенному ТНДШ системой шифрования. Исходя их этого, можно сделать вывод, что передавая по каналу связи, защищенному ТНДШ системой шифрования, файл-ссылку размером не более 1 Кбайта, будем получать полноценный ключ для ТНДШ системы любого размера. В качестве метода шифрования в предлагаемом способе организации защищенного обмена информацией с использованием технологии блокчейн и распределенных систем хранения данных выбран метод шифрования Вернама. Таким образом, снижается к минимуму угроза дешифрования сообщений в будущем. Однако, чтобы начать процесс коммуникации, пользователям предлагаемой системы необходимо один раз встретиться лично и обменяться ключами шифрования. Таким образом, при использовании предлагаемого способа и системы, количество личных встреч или иных способов абсолютно надежной передачи ключей шифрования для ТНДШ систем уменьшается от неопределенного количества раз, в зависимости от объема информации, которой будут обмениваться пользователи системы (участники блокчейн-коммуникации), до одного раза.The proposed distributed file storage system solves the problem of secure transmission of key information for TNDS systems via communication channels. When sending a file to a distributed data store, which can consist of any third-party data stores, the device participating in the blockchain communication encrypts the file using symmetric encryption using the aes-256 algorithm in CFB mode on the key for the system's PNDS. Splits the file being sent into several parts, introduces false parts, shuffles files before sending, assigns each file that contains part of a real encrypted file or a false part of a file to the servers where these files will be stored. In order to hinder the process of assembling parts of the encrypted source file and the process of identifying file senders by an attacker, all connections occur either through IP address spoofing mechanisms, or through Proxy servers, or through VPN. Since the distributed data storage contains only encrypted parts of the file, and one or more parts of the original encrypted file are contained only in the link file, and the original file is encrypted using the feedback gamma method, therefore, without all parts of the original encrypted file, decryption will be meaningless. Moreover, the link file will be transmitted over a communication channel protected by the TNDSH encryption system. Based on this, we can conclude that by transmitting a link file no larger than 1 KB over a communication channel protected by the TNDSH encryption system, we will receive a full-fledged key for the TNDSH system of any size. The Vernam encryption method was chosen as the encryption method in the proposed method for organizing secure information exchange using blockchain technology and distributed data storage systems. Thus, the threat of decrypting messages in the future is minimized. However, to start the communication process, users of the proposed system need to meet in person once and exchange encryption keys. Thus, when using the proposed method and system, the number of personal meetings or other methods of absolutely reliable transmission of encryption keys for TNDS systems is reduced from an indefinite number of times, depending on the amount of information that users of the system (participants of blockchain communication) will exchange, to one times.

Для обеспечения анонимности в сети был изменен классический процесс консенсуса - отсутствует необходимость подтверждать правильность данных транзакций: информация - зашифрована, отправитель и получатель - зашифрованы;To ensure anonymity in the network, the classic consensus process has been changed - there is no need to confirm the correctness of transaction data: information is encrypted, the sender and recipient are encrypted;

Это позволяет свести консенсус к упорядочиванию всего множества транзакций всеми пользователями, доступными на данный момент времени в сети. Философия предлагаемой системы - каждый пользователь может отправлять любую информацию любому другому пользователю, но расшифровать входящее сообщение и понять, что оно адресовано ему сможет лишь пользователь, у которого есть такой же ключ шифрования, на котором зашифровано сообщение. Таким образом, имеется блокчейн, где неизвестны ни отправители, ни получатели, ни содержание сообщений, что решает вопрос анонимности пользователей и конфиденциальности передаваемых данных.This allows consensus to be reduced to the ordering of the entire set of transactions by all users currently available on the network. The philosophy of the proposed system is that each user can send any information to any other user, but only the user who has the same encryption key on which the message is encrypted can decrypt the incoming message and understand that it is addressed to him. Thus, there is a blockchain where neither senders, nor recipients, nor the content of messages are known, which solves the issue of anonymity of users and confidentiality of transmitted data.

Claims (10)

1. Способ организации защищенного обмена информацией с использованием технологии блокчейн и распределённых систем хранения данных, заключающийся в том, что вводят название базы данных, при этом дополнительно вводят пароль к этой базе данных, проверяют наличие базы данных на устройстве, при наличии базы данных осуществляют ее расшифрование с использованием симметричного шифрования AES-256, проверяют корректность файла с базой данных, при отсутствии базы данных создают новую базу данных, при этом формируют пароль к новой базе данных, необходимый для шифрования и расшифрования файла с новой базой данных по алгоритму AES-256, завершают работу с базой данных, отличающийся тем, что после проверки на корректность файла с базой данных либо после создания новой базы данных запускают сетевые сервисы, как минимум запускают клиент для запросов у центрального сервера актуального списка IP-адресов в сети и отправки «hello-сообщения», запускают сервер обработки запросов на получение хэша последней транзакции и актуальной копии блокчейна, запускают сервер обработки транзакций для участия в процессе консенсуса, после этого запрашивают хэши транзакций у серверов всех доступных в сети IP-адресов, выбирают по мажоритарному правилу актуальный хэш последней транзакции, осуществляют запрос на получение актуальной копии блокчейна у одного из отправителей актуального хэша последней транзакции, запускают алгоритм анализа принятой актуальной копии блокчейна, отображают список добавленных пользователей, осуществляют выбор как минимум одной из функций: добавление нового пользователя, просмотр истории переписки с указанным пользователем и отправка этому пользователю текстового сообщения, просмотр истории переписки с указанным пользователем и отправка этому пользователю текстового файла размером до 1 Кбайта, обновление ключа шифрования для указанного пользователя, отправка файла в распределенное хранилище, запрос файла из распределенного хранилища, обновление интерфейса отображения информации, безопасный выход из системы, которую необходимо выполнить системе, проверяют факт того, что выбрана функция безопасного выхода из системы, если данная функция не выбрана, то осуществляют выполнение выбранной функции, при этом после выполнения выбранной функции осуществляют выбор новой функции, если выбрана функция безопасного выхода из системы, то осуществляют шифрование базы данных с использование введенного ранее пароля по алгоритму AES-256.1. A method for organizing a secure exchange of information using blockchain technology and distributed data storage systems, which consists in entering the name of the database, while additionally entering a password for this database, checking the presence of the database on the device, if the database is available, it is carried out decryption using AES-256 symmetric encryption, check the correctness of the file with the database, in the absence of a database, create a new database, while generating a password for the new database, which is necessary to encrypt and decrypt the file with the new database using the AES-256 algorithm, complete work with the database, characterized in that after checking the correctness of the file with the database or after creating a new database, they start network services, at least start the client to query the central server for an up-to-date list of IP addresses on the network and send a “hello message ”, start the server for processing requests for the hash of the last tr transactions and the current copy of the blockchain, launch the transaction processing server to participate in the consensus process, then request transaction hashes from the servers of all IP addresses available on the network, select the current hash of the last transaction according to the majority rule, make a request to receive the current copy of the blockchain from one of the senders of the current hash of the last transaction, run the algorithm for analyzing the received current copy of the blockchain, display a list of added users, select at least one of the functions: adding a new user, viewing the history of correspondence with the specified user and sending a text message to this user, viewing the history of correspondence with the specified user and sending this user a text file up to 1 KB in size, updating the encryption key for the specified user, sending the file to distributed storage, requesting a file from distributed storage, updating the information display interface, without safe exit from the system that the system needs to perform, check the fact that the safe exit function is selected, if this function is not selected, then the selected function is executed, while after the selected function is executed, a new function is selected if the safe exit function is selected from the system, then the database is encrypted using the previously entered password according to the AES-256 algorithm. 2. Система защищенного обмена информацией с использованием технологии блокчейн и распределённых систем хранения данных, состоящая из как минимум одного центрального сервера, включающего модуль приема/передачи информации в сети связи для приема и передачи данных по каналам связи, общую шину обмена информацией для обмена информацией между модулями устройства, модуль обработки «hello-сообщений» для приема от устройств-участников блокчейн-коммуникации «hello-сообщений» и обновление актуального списка доступных в текущий момент времени IP-адресов в сети, модуль обработки запросов на получение актуальной копии списка доступных в текущий момент времени IP-адресов в сети для отправки актуального списка доступных в текущий момент времени IP-адресов в сети по запросу, модуль памяти для хранения актуального списка доступных на текущий момент времени IP-адресов в сети, модуль питания устройства для обеспечения электроэнергией всех модулей устройства и как минимум трех устройств-участников блокчейн-коммуникации, включающие модуль приема/передачи информации в сети связи для приема и передачи данных по каналам связи, общую шину обмена информацией для обмена информацией между модулями устройства, модуль отправки запросов на серверы для отправки запросов на модуль сервера обработки запросов на получение хэша последней транзакции и актуальной копии блокчейна и на модуль сервера обработки транзакций для участия в процессе консенсуса, модуль клиента для запросов у центрального сервера актуального списка IP-адресов в сети связи и отправки «hello-сообщения» для идентификации устройства в сети как доступного посредством отправки на центральный сервер «hello-сообщения» и получения актуального списка доступных на текущий момент времени IP-адресов в сети, модуль сервера обработки запросов на получение хэша последней транзакции и актуальной копии блокчейна для отправки хэша последней транзакции по запросу и отправки копии локального блокчейна по запросу, модуль сервера обработки транзакций для участия в процессе консенсуса для обработки транзакций и отправки ответа на запрос об ее подтверждении или отклонении, модуль базы данных для хранения данных как минимум о транзакциях, пользовательских ключах шифрования, истории сообщений, модуль памяти для хранения файлов и файлов-ссылок, а также базы данных, модуль ввода/вывода информации для осуществления ввода/вывода информации в устройство, модуль питания устройства для обеспечения электроэнергией всех модулей устройства, причем каждое устройство-участник блокчейн-коммуникации взаимодействует с центральным сервером либо через механизмы подмены IP-адресов, либо через Proxy-серверы, либо через VPN.2. A secure information exchange system using blockchain technology and distributed data storage systems, consisting of at least one central server, including a module for receiving / transmitting information in a communication network for receiving and transmitting data over communication channels, a common information exchange bus for exchanging information between modules of the device, a module for processing “hello messages” for receiving “hello messages” from devices participating in the blockchain communication and updating the current list of currently available IP addresses in the network, a module for processing requests to receive an up-to-date copy of the list of currently available point in time of IP addresses on the network to send an up-to-date list of currently available IP addresses on the network upon request, a memory module to store an up-to-date list of currently available IP addresses on the network, a device power supply module to provide power to all device modules and at least three devices participating in the blockchain - communications, including a module for receiving / transmitting information in a communication network for receiving and transmitting data over communication channels, a common information exchange bus for exchanging information between device modules, a module for sending requests to servers for sending requests to the server module for processing requests to receive the hash of the last transaction and the actual copy of the blockchain and the transaction processing server module to participate in the consensus process, the client module to query the central server for an up-to-date list of IP addresses in the communication network and send a "hello message" to identify the device on the network as available by sending it to the central server "hello-messages" and obtaining an up-to-date list of currently available IP addresses on the network, a server module for processing requests to receive a hash of the last transaction and an up-to-date copy of the blockchain to send a hash of the last transaction upon request and send a copy of the local blockchain upon request, a server module transaction processing for I participate in a consensus process to process transactions and send a response to a request for confirmation or rejection, a database module for storing data on at least transactions, user encryption keys, message history, a memory module for storing files and reference files, and databases data, an information input/output module for input/output of information to the device, a device power supply module for providing electricity to all device modules, and each device participating in the blockchain communication interacts with the central server either through IP address spoofing mechanisms or through Proxy- servers, or through a VPN. 3. Способ по п.1, в котором при запуске сервера обработки запросов на получение хэша последней транзакции и актуальной копии блокчейна: принимают сервером обработки запросов сообщения клиента с запросом, проверяют вид запроса сервером, если поступает запрос на получение хэша последней транзакции копии блокчейна сервера, то извлекают из базы данных хэш последней транзакции, если поступает запрос на получение актуальной копии блокчейна сервера, то извлекают из базы данных актуальную копию блокчейна сервера, формируют сообщение для отправки клиенту с учетом характеристики информации извлеченной из базы данных, отправляют сформированный ответ клиенту.3. The method according to claim 1, in which when starting the server for processing requests to obtain the hash of the last transaction and the current copy of the blockchain: the request processing server receives the client's messages with the request, checks the type of request by the server, if a request is received to obtain the hash of the last transaction of the server's blockchain copy , then the hash of the last transaction is retrieved from the database, if a request is received to obtain an up-to-date copy of the server blockchain, then an up-to-date copy of the server blockchain is retrieved from the database, a message is generated to be sent to the client, taking into account the characteristics of the information extracted from the database, the generated response is sent to the client. 4. Способ по п.1, в котором при запуске сервера обработки транзакций: принимают сервером обработки транзакций транзакции от клиента, извлекаютиз транзакции предлагаемый клиентом ID и хэш последней транзакции из локальной копии блокчейна клиента, проверяют последний ID локальной копии блокчейна сервера обработки транзакций, при этом ID должен быть на единицу меньше предлагаемого клиентом, осуществляют проверку правильности ID, если проверка дала отрицательный результат, то отправляют клиенту сообщение об отказе данным сервером обработки транзакций подтверждать принятую от клиента транзакцию, если проверка прошла успешно, то проверяют хэш последней транзакции локальной копии блокчейна клиента, содержащийся в присланной клиентом транзакции, и хэш последней транзакции локальной копии блокчейна сервера обработки транзакций, при этом хэш должен совпадать, если хэш не совпадает, то отправляют клиенту сообщение об отказе данным сервером обработки транзакций подтверждать принятую транзакцию от клиента, если хэш совпадает, то отправляют клиенту ответ с положительным решением о подтверждении данным сервером обработки транзакций принятую транзакцию от клиента, добавляют принятую от клиента транзакцию сервером обработки транзакций в свою локальную копию блокчейна, запускают алгоритм анализа содержимого на наличие входящих сообщений от одного из добавленных пользователей на этом сервере обработки транзакций.4. The method according to claim 1, wherein when the transaction processing server is started: the transaction processing server receives transactions from the client, extracts from the transaction the ID offered by the client and the hash of the last transaction from the local copy of the client's blockchain, checks the last ID of the local copy of the transaction processing server's blockchain, when this ID must be one less than the one offered by the client, the correctness of the ID is checked, if the check gave a negative result, then the client is sent a message about the refusal by this transaction processing server to confirm the transaction received from the client, if the check was successful, then the hash of the last transaction of the local copy of the blockchain is checked of the client, contained in the transaction sent by the client, and the hash of the last transaction of the local copy of the blockchain of the transaction processing server, while the hash must match, if the hash does not match, then send the client a message that this transaction processing server refuses to confirm the accepted transaction from client, if the hash matches, then send a response to the client with a positive decision on confirmation by this transaction processing server of the accepted transaction from the client, add the transaction received from the client by the transaction processing server to its local copy of the blockchain, run the content analysis algorithm for incoming messages from one of the added users on this transaction processing server. 5. Способ по п.4, в котором при запуске алгоритма анализа содержимого на наличие входящих сообщений от одного из добавленных пользователей на этом сервере обработки транзакций: извлекают из всей транзакции зашифрованную часть транзакции путем выделения предлагаемого клиентом ID и хэша последней транзакции из клиентской копии блокчейна, расшифровывают закрытую часть транзакции путем наложения ключа каждого добавленного сервером обработки транзакций пользователя на зашифрованную часть транзакции с учетом смещения ключа, при этом зашифрованная часть транзакции расшифруется только в случае, если в поле отправителя, которое также зашифровано, будет имя пользователя, на чьем ключе производится расшифровка, а в поле получателя будет имя пользователя, чей сервер обработки транзакций выполняет расшифрование данной транзакции, проверяют, получилось ли расшифровать сообщение на одном из ключей добавленных пользователей, если получилось, то расшифрованная часть транзакции разбивается на логические элементы: время отправки, имя отправителя, имя получателя и передаваемое сообщение, которое может являться либо текстовым файлом размером до 1 Кбайта, либо текстовым сообщением, и заносится в локальную базу данных сервера обработки транзакций в открытом виде, если не получилось расшифровать сообщение на одном из ключей добавленных пользователей, то транзакция не предназначена для пользователя данного сервера обработки транзакций.5. The method according to claim 4, in which, when running the content analysis algorithm for incoming messages from one of the added users on this transaction processing server: extracting the encrypted part of the transaction from the entire transaction by extracting the ID offered by the client and the hash of the last transaction from the client copy of the blockchain , decrypt the private part of the transaction by overlaying the key of each user added by the transaction processing server to the encrypted part of the transaction, taking into account the key offset, while the encrypted part of the transaction is decrypted only if the sender field, which is also encrypted, contains the name of the user on whose key the decryption, and the recipient field will contain the name of the user whose transaction processing server decrypts this transaction, check whether it was possible to decrypt the message using one of the keys of the added users, if so, then the decrypted part of the transaction is divided into logical elements: send time, sender's name, recipient's name and the message to be sent, which can be either a text file up to 1 KB in size, or a text message, and is entered in the local database of the transaction processing server in clear text if the message could not be decrypted on one of the keys of added users, then the transaction is not intended for the user of this transaction processing server. 6. Способ по п.1, в котором при выполнении запроса на получение актуальной копии блокчейна: удаляют из базы данных предыдущую локальную копию блокчейна и записывают в базу данных принятую от сервера обработки запросов на получение хэша последней транзакции и актуальной копии блокчейна копию локального блокчейна, проверяют количество транзакций предыдущей локальной копии блокчейна с принятой копией, если у предыдущей локальной копии блокчейна число транзакций больше, чем у принятой копии, то значит произошло обновление глобального блокчейна, при этом обнуляют смещения ключей для всех добавленных пользователей, в случае, когда обновление глобального блокчейна не произошло, тогда оставляют значения смещения ключей для всех добавленных пользователей прежними, анализируют каждую транзакцию на наличие входящих сообщений, при этом извлекают из всей транзакции зашифрованную часть транзакции путем выделения предлагаемого клиентом ID и хэша последней транзакции из клиентской копии блокчейна, расшифровывают закрытую часть транзакции путем наложения ключа каждого добавленного сервером обработки транзакций пользователя на зашифрованную часть транзакции с учетом смещения ключа, при этом зашифрованная часть транзакции расшифруется только в случае, если в поле отправителя, которое также зашифровано, будет имя пользователя, на чьем ключе производится расшифрование, а в поле получателя будет имя пользователя, чей сервер обработки транзакций выполняет расшифрование данной транзакции, если получилось расшифровать сообщение на одном из ключей добавленных пользователей, то расшифрованная часть транзакции разбивается на логические элементы, такие как время отправки, имя отправителя, имя получателя и передаваемое сообщение, которое может являться либо текстовым файлом размером до 1 Кбайта, либо текстовым сообщением, и заносится в локальную базу данных сервера обработки транзакций в открытом виде, если не получилось расшифровать сообщение на одном из ключей добавленных пользователей, то транзакция не предназначена для пользователя данного сервера обработки транзакций.6. The method according to claim 1, in which, when executing a request to obtain an up-to-date copy of the blockchain: the previous local copy of the blockchain is deleted from the database and the copy of the local blockchain received from the server for processing requests for obtaining the hash of the last transaction and the current copy of the blockchain is written to the database, check the number of transactions of the previous local copy of the blockchain with the accepted copy, if the previous local copy of the blockchain has more transactions than the accepted copy, then the global blockchain has been updated, while resetting the key offsets for all added users, in the case when the global blockchain is updated did not happen, then leave the key offset values for all added users the same, analyze each transaction for incoming messages, while extracting the encrypted part of the transaction from the entire transaction by extracting the ID and hash of the last transaction offered by the client from the client copy of the blockchain, distributing encrypt the private part of the transaction by overlaying the key of each user added by the transaction processing server to the encrypted part of the transaction, taking into account the key offset, while the encrypted part of the transaction is decrypted only if the sender field, which is also encrypted, contains the name of the user on whose key the decryption is performed , and the recipient field will contain the name of the user whose transaction processing server is decrypting this transaction, if it was possible to decrypt the message using one of the keys of the added users, then the decrypted part of the transaction is a message, which can be either a text file up to 1 KB in size, or a text message, and is entered into the local database of the transaction processing server in cleartext, if it was not possible to decrypt the message using one of the keys of the added users, then tra The transaction is not intended for a user of this transaction processing server. 7. Способ по п.1, в котором выбирают как минимум одну из функций: добавление нового пользователя, при этом вводят имя нового пользователя и указывают путь к файлу с ключом для этого пользователя, просмотр истории переписки с указанным пользователем и отправка этому пользователю текстового сообщения, просмотр истории переписки с указанным пользователем и отправка этому пользователю текстового файла размером до 1 Кбайта, обновление ключа шифрования для указанного пользователя, отправка файла в распределенное хранилище, запрос файла из распределенного хранилища, обновление интерфейса отображения пользовательской информации, безопасный выход из системы, которую необходимо выполнить системе.7. The method according to claim 1, in which at least one of the functions is selected: adding a new user, while entering the name of the new user and specifying the path to the file with the key for this user, viewing the history of correspondence with the specified user and sending this user a text message , viewing the history of correspondence with the specified user and sending to this user a text file up to 1 KB in size, updating the encryption key for the specified user, sending the file to distributed storage, requesting a file from distributed storage, updating the interface for displaying user information, safely logging out of the system that you need execute the system. 8. Способ по п.1, в котором при запросе отправки файла в распределенное хранилище вводят путь к исходному файлу, зашифровывают исходный файл с применением алгоритма шифрования «Advanced Encryption Standard» с длиной ключа 256 бит в режиме гаммирования с обратной связью CFB, при этом ключ шифрования помещают в файл-ссылку, вычисляют хэш зашифрованного файла, помещают хэш в файл-ссылку, разбивают зашифрованный файл на N частей (файлов) случайного размера, при этом всю метаинформацию и одну из N частей случайного размера, которая не отправляется в сеть, помещают в файл-ссылку, добавляют К ложных частей, при этом всю метаинформацию помещают в файл-ссылку, назначают каждому из (N-1+K) файлов R серверов в распределённой системе хранения данных и вычисляют хэш каждого из этих файлов, при этом всю метаинформацию помещают в файл-ссылку, перемешивают (N-1+K) файлов, при этом всю метаинформацию помещают в файл-ссылку, отправляют каждый из (N-1+K) файлов на R серверов в распределённой системе хранения данных с использованием механизма подмены IP-адресов либо через Proxy-серверы, либо через VPN, формируют окончательный вариант файл-ссылки.8. The method according to claim 1, in which, when requesting to send a file to a distributed storage, the path to the source file is entered, the source file is encrypted using the "Advanced Encryption Standard" encryption algorithm with a key length of 256 bits in the gamma mode with CFB feedback, while the encryption key is placed in the link file, the hash of the encrypted file is calculated, the hash is placed in the link file, the encrypted file is split into N parts (files) of random size, with all meta-information and one of the N parts of random size, which is not sent to the network, are placed in the link file, K false parts are added, while all meta-information is placed in the link file, each of the (N-1 + K) files of R servers in the distributed storage system is assigned and the hash of each of these files is calculated, while all meta-information is placed in a link file, (N-1 + K) files are mixed, while all meta-information is placed in a link file, each of the (N-1 + K) files is sent to R servers in a distributed storage system data exchange using the mechanism of IP address spoofing, either through Proxy servers or through VPN, form the final version of the link file. 9. Способ по п.1, в котором при запросе файла из распределенного хранилища вводят путь к файлу-ссылке на исходный файл, извлекают из файла-ссылки метаинформацию об исходном файле: количество частей, на которые был разбит исходный файл, количество ложных частей, имена файлов на удаленных серверах, правила перемешивания файлов перед отправкой, IP-адреса серверов хранения файлов, ключ шифрования, на котором зашифрован весь файл, хэши частей файла, хэш всего файла, запрашивают с серверов части файлов с использованием механизма подмены IP-адресов либо через Proxy-серверы, либо через VPN, проверяют хэши частей файла с учетом того, что если с серверов в распределённой системе хранения данных получена как минимум одна копия каждой части файла и ее хэш прошел проверку на правильность, то переходят к следующему шагу, если хоть одно условие не выполняется, то выдают сообщение об ошибке и прекращают работу сбора исходного файла, перемешивают принятые части файла, отделяют ложные части файла, выполняют сборку зашифрованного исходного файла, проверяют хэш всего зашифрованного файла, если проверка отрицательная, то выдают сообщение об ошибке и прекращают работу сбора исходного файла, если проверка прошла успешно, то выполняют расшифрование зашифрованного (принятого) файла.9. The method according to claim 1, in which, when requesting a file from a distributed storage, the path to the file-link to the source file is entered, meta-information about the source file is extracted from the link file: the number of parts into which the source file was split, the number of false parts, file names on remote servers, rules for shuffling files before sending, IP addresses of file storage servers, encryption key on which the entire file is encrypted, hashes of parts of the file, hash of the entire file, request parts of files from the servers using the IP address spoofing mechanism or through Proxy servers, or through a VPN, check the hashes of the file parts, taking into account the fact that if at least one copy of each part of the file is received from the servers in the distributed storage system and its hash has been checked for correctness, then they proceed to the next step, if at least one the condition is not met, then they issue an error message and stop collecting the source file, mix the received parts of the file, separate the false parts of the file, execute assemble the encrypted source file, check the hash of the entire encrypted file, if the check is negative, then issue an error message and stop collecting the source file, if the check was successful, then decrypt the encrypted (received) file. 10. Способ по п.6, в котором при просмотре истории переписки с указанным пользователем и отправке ему текстового сообщения отображают предыдущую переписку с данным пользователем из базы данных, вводят новое сообщение для пользователя, добавляют к сообщению как минимум поле времени отправки сообщения, поле имени отправителя, поле имени получателя, выполняют шифрование этих полей на ключе данного пользователя, извлекают из базы данных ID последней транзакции и увеличивают на единицу текущее значение, формируют новый ID для транзакции, извлекают из базы данных хэш последней транзакции локальной копии блокчейна отправителя, создают транзакцию для передачи, в которую входит новый ID, хэш последней транзакции локальной копии блокчейна отправителя и зашифрованные данные на шифре Вернама с применением пользовательского ключа, отправляют всем доступным IP-адресам из списка актуальных IP-адресов, присланным центральным сервером, сформированную транзакцию, принимают от всех доступных IP-адресов из списка актуальных IP-адресов, присланных центральным сервером, ответ о готовности подтверждения серверами обработки транзакций сформированной транзакции, проверяют по мажоритарному правилу факт подтверждения транзакции, если проверка отрицательная, то выполняют запрос актуальной копии блокчейна согласно п.6, если проверка прошла положительно, то добавляют транзакцию в локальную копию блокчейна отправителя, добавляют в незашифрованном виде поля: время отправки транзакции, имя отправителя, имя получателя, передаваемое сообщение в базу данных, выполняют смещение ключа для данного пользователя на длину зашифрованных данных.10. The method according to claim 6, in which, when viewing the history of correspondence with the specified user and sending him a text message, display the previous correspondence with this user from the database, enter a new message for the user, add to the message at least the message sending time field, the name field sender, recipient name field, encrypt these fields on the key of this user, extract the ID of the last transaction from the database and increase the current value by one, form a new ID for the transaction, extract the hash of the last transaction of the local copy of the sender's blockchain from the database, create a transaction for transmission, which includes a new ID, a hash of the last transaction of the local copy of the sender's blockchain and encrypted data on the Vernam cipher using a user key, is sent to all available IP addresses from the list of actual IP addresses sent by the central server, the generated transaction is received from all available IP addresses and from the list of current IP addresses sent by the central server, the response about the readiness to confirm the generated transaction by the transaction processing servers, check the fact of transaction confirmation according to the majority rule, if the check is negative, then the request for the current copy of the blockchain is performed according to clause 6, if the check was positive, then add a transaction to the local copy of the sender's blockchain, add the fields in clear form: the time the transaction was sent, the name of the sender, the name of the recipient, the message to be sent to the database, perform a key shift for this user by the length of the encrypted data.
RU2021103201A 2021-02-09 Method and system for organization of protected information exchange, using blockchain technology and distributed data storage systems RU2782153C2 (en)

Publications (2)

Publication Number Publication Date
RU2021103201A RU2021103201A (en) 2022-08-09
RU2782153C2 true RU2782153C2 (en) 2022-10-21

Family

ID=

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9569771B2 (en) * 2011-04-29 2017-02-14 Stephen Lesavich Method and system for storage and retrieval of blockchain blocks using galois fields
RU2680350C2 (en) * 2017-05-02 2019-02-19 федеральное государственное казенное военное образовательное учреждение высшего образования "Краснодарское высшее военное училище имени генерала армии С.М. Штеменко" Министерства обороны Российской Федерации Method and system of distributed storage of recoverable data with ensuring integrity and confidentiality of information
US20190132350A1 (en) * 2017-10-30 2019-05-02 Pricewaterhousecoopers Llp System and method for validation of distributed data storage systems
WO2019195691A1 (en) * 2018-04-05 2019-10-10 Daniel Maurice Lerner Discrete blockchain and blockchain communications
WO2020072659A1 (en) * 2018-10-02 2020-04-09 Mutualink, Inc. Consensus-based voting for network member identification employing blockchain-based identity signature mechanisms
WO2020097277A1 (en) * 2018-11-09 2020-05-14 American Express Travel Related Services Co., Inc. Secondary fraud detection during transaction verifications
WO2020190720A1 (en) * 2019-03-15 2020-09-24 Madisetti Vijay Method and system for exchange of value or tokens between blockchain networks
US20200374343A1 (en) * 2019-05-25 2020-11-26 International Business Machines Corporation Optimization of delivery of blocks
US10867057B1 (en) * 2017-06-01 2020-12-15 Massachusetts Mutual Life Insurance Company Decentralized encryption and decryption of blockchain data

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9569771B2 (en) * 2011-04-29 2017-02-14 Stephen Lesavich Method and system for storage and retrieval of blockchain blocks using galois fields
RU2680350C2 (en) * 2017-05-02 2019-02-19 федеральное государственное казенное военное образовательное учреждение высшего образования "Краснодарское высшее военное училище имени генерала армии С.М. Штеменко" Министерства обороны Российской Федерации Method and system of distributed storage of recoverable data with ensuring integrity and confidentiality of information
US10867057B1 (en) * 2017-06-01 2020-12-15 Massachusetts Mutual Life Insurance Company Decentralized encryption and decryption of blockchain data
US20190132350A1 (en) * 2017-10-30 2019-05-02 Pricewaterhousecoopers Llp System and method for validation of distributed data storage systems
WO2019195691A1 (en) * 2018-04-05 2019-10-10 Daniel Maurice Lerner Discrete blockchain and blockchain communications
WO2020072659A1 (en) * 2018-10-02 2020-04-09 Mutualink, Inc. Consensus-based voting for network member identification employing blockchain-based identity signature mechanisms
WO2020097277A1 (en) * 2018-11-09 2020-05-14 American Express Travel Related Services Co., Inc. Secondary fraud detection during transaction verifications
WO2020190720A1 (en) * 2019-03-15 2020-09-24 Madisetti Vijay Method and system for exchange of value or tokens between blockchain networks
US20200374343A1 (en) * 2019-05-25 2020-11-26 International Business Machines Corporation Optimization of delivery of blocks

Similar Documents

Publication Publication Date Title
US11144411B2 (en) Transaction consensus processing method and apparatus for blockchain and electronic device
US11218312B2 (en) Secure file sharing method and system
US10673626B2 (en) Threshold secret share authentication proof and secure blockchain voting with hardware security modules
US11233637B2 (en) System and method for validating an entity
JP5650348B2 (en) System and method for securing data in motion
CN102932136B (en) Systems and methods for managing cryptographic keys
HK1219550A1 (en) Improved tape backup method
CN105743930A (en) Secure data parser method and system
CN106452737A (en) Systems and methods for secure multi-tenant data storage
EP2984781A1 (en) Secure backup and recovery system for private sensitive data
CN101569132A (en) System and method for distributing data and securing data
Venukumar et al. A survey of applications of threshold cryptography—proposed and practiced
RU2782153C2 (en) Method and system for organization of protected information exchange, using blockchain technology and distributed data storage systems
Kara et al. File system for aircraft maintenance records based on blockchain and IPFS
KR102258064B1 (en) System and method for providing hybrid blockchain based aircraft control service
Ganorkar et al. An information security scheme for cloud based environment using 3DES encryption algorithm
Yan et al. An Efficient Attribute-Based Multi-Keyword Searchable Encryption with Access Policy Hiding in IoT using Blockchain
Kacsmar et al. Mind the gap: Ceremonies for applied secret sharing
Ramya Proficient Public Attestation of Data Veracity for Storage of Cloud Across Dual Protection
CN103190129B (en) System and method for protecting data in motion
Ganorkar Achieve Date Integrity and Security on Cloud Storage using 3DES Encryption Algorithm
PANTH et al. A Secure Lockbox Technique Forenhanced Shared Sharing for Users Information Packets Access Control in Cloud Computing
HK1184244A (en) Systems and methods for securing data in motion
HK1184285B (en) Systems and methods for securing data in motion
HK1195830A (en) Secure file sharing method and system