RU2584755C2 - Method of protecting availability and security of stored data and system for adjustable protection of stored data - Google Patents

Method of protecting availability and security of stored data and system for adjustable protection of stored data Download PDF

Info

Publication number
RU2584755C2
RU2584755C2 RU2014133133/08A RU2014133133A RU2584755C2 RU 2584755 C2 RU2584755 C2 RU 2584755C2 RU 2014133133/08 A RU2014133133/08 A RU 2014133133/08A RU 2014133133 A RU2014133133 A RU 2014133133A RU 2584755 C2 RU2584755 C2 RU 2584755C2
Authority
RU
Russia
Prior art keywords
data
sstor
storage
file
code
Prior art date
Application number
RU2014133133/08A
Other languages
Russian (ru)
Other versions
RU2014133133A (en
Inventor
Юрий Владимирович Косолапов
Original Assignee
Юрий Владимирович Косолапов
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Юрий Владимирович Косолапов filed Critical Юрий Владимирович Косолапов
Priority to RU2014133133/08A priority Critical patent/RU2584755C2/en
Publication of RU2014133133A publication Critical patent/RU2014133133A/en
Application granted granted Critical
Publication of RU2584755C2 publication Critical patent/RU2584755C2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • G06F7/584Pseudo-random number generators using finite field arithmetic, e.g. using a linear feedback shift register
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computational Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

FIELD: information security.
SUBSTANCE: group of inventions relates to protection of data recorded in storage with long-term memory, and can be used for protection of availability and security of data. Method of protecting availability and security of stored data for each information unit of plurality of reversible random conversions is selected randomly or pseudo-randomly number r one encoding rule, which is then used to code unit; received code word is broken into t parts, each of which is filled by part secret obtained on number of r using suitable separation circuit secretion, then produced parts are combined.
EFFECT: high data security.
9 cl, 20 dwg

Description

Способ защиты доступности и конфиденциальности хранимых данных и система настраиваемой защиты хранимых данныхA way to protect the availability and confidentiality of stored data and a system for custom protection of stored data

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

Настоящее изобретение относится к области защиты данных, а именно к области настраиваемой защиты доступности, конфиденциальности и целостности данных.The present invention relates to the field of data protection, and in particular to the field of customizable protection of data availability, confidentiality and integrity.

2 Уровень техники2 prior art

В настоящее время перед пользователями настольных компьютеров, серверов, ноутбуков, планшетных компьютеров, смартфонов (далее используется обобщающий термин - компьютеры) стоят различные задачи по защите хранящихся данных. Среди задач защиты особенно выделяются задача защиты доступности данных (защита от утраты данных), задача защиты конфиденциальности данных и защита целостности (защита от несанкционированного или случайного изменения). Объект защиты (защищаемые данные) и степень актуальности той или иной из обозначенных задач определяются, как правило, владельцем защищаемых данных на основании собственного опыта, существующих стандартов и практик в области защиты данных и информационной безопасности или на основе требований законодательства. Например, для обычных пользователей (физических лиц) объектами защиты обычно являются такие данные как список контактов с адресами и телефонами, номера банковских карт, PIN-коды, номер счетов,Currently, users of desktop computers, servers, laptops, tablets, smartphones (hereinafter referred to as the general term - computers) have various tasks to protect the stored data. Among the protection tasks, the task of protecting data availability (protection against data loss), the task of protecting data privacy and integrity protection (protection against unauthorized or accidental changes) are especially notable. The object of protection (protected data) and the degree of relevance of one or another of the indicated tasks are determined, as a rule, by the owner of the protected data on the basis of their own experience, existing standards and practices in the field of data protection and information security, or based on legal requirements. For example, for ordinary users (individuals), objects of protection are usually data such as a list of contacts with addresses and telephones, bank card numbers, PIN codes, account numbers,

личные фотографии, учетные данные для доступа к Интернет-банкингу и другим WEB-сервисам. Для организаций (юридических лиц) объектами защиты являются, например, данные, составляющие коммерческую тайну, персональные данные работников, клиентов и т.п. Далее под пользователями компьютеров понимаются как физические лица, так и юридические лица. В отношении однотипных данных для различных пользователей степень актуальности задач защиты может быть разная. Например, в отношении номеров банковских пластиковых карт для одних пользователей - физических лиц актуальна защита конфиденциальности и доступности, для других пользователей - физических лиц достаточно только защиты конфиденциальности номеров карт, а для юридического лица, перечисляющего заработную плату на пластиковые карты, особенно важна защита целостности данных.personal photos, credentials for access to Internet banking and other WEB services. For organizations (legal entities), objects of protection are, for example, data constituting a trade secret, personal data of employees, customers, etc. Further, computer users are understood as individuals and legal entities. Regarding the same type of data for different users, the degree of relevance of protection tasks can be different. For example, with regard to bank plastic card numbers, for some users - individuals, protection of confidentiality and accessibility is relevant, for other users - individuals, only protection of the confidentiality of card numbers is enough, and for a legal entity transferring salaries to plastic cards, data integrity protection is especially important .

Для пользователей компьютеров типичными причинами нарушения доступности хранящихся данных обычно являются: случайное стирание данных, преднамеренное стирание данных в результате несанкционированного доступа к компьютеру, потеря носителя данных, кража носителя данных, выход из строя носителя данных, шифрование данных вредоносной программой. К причинам нарушения конфиденциальности можно отнести несанкционированное копирование данных, потерю носителя данных, кражу носителя данных, ненадлежащее стирание данных при утилизации носителей или при их сервисном обслуживании (ремонте). Целостность данных нарушается обычно в результате преднамеренного несанкционированного изменения данных (например, посредством действия вредоносного кода) или выхода из строя части носителя (например, отдельных ячеек, секторов).For computer users, typical causes of violation of the availability of stored data are usually: accidental data erasure, intentional data erasure as a result of unauthorized access to a computer, loss of data carrier, data carrier theft, failure of data carrier, data encryption by malware. The reasons for violation of confidentiality include unauthorized copying of data, loss of data carrier, theft of data carrier, improper erasure of data during disposal of media or during their service (repair). The integrity of the data is usually violated as a result of a deliberate unauthorized modification of the data (for example, through the action of malicious code) or the failure of a part of the medium (for example, individual cells, sectors).

Как правило, указанные выше задачи защиты данных решаются с помощью различных средств защиты, а иногда и с помощью различных методов защиты. Далее для раскрытия сути изобретения приводится краткое описание существующих способов защиты данных от утраты, защиты конфиденциальности и целостности.As a rule, the above data protection tasks are solved with the help of various protection tools, and sometimes with the help of various protection methods. The following is a brief description of the existing methods for protecting data from loss, protecting confidentiality and integrity in order to disclose the essence of the invention.

Существующие способы защиты от утраты данных. Защита данных от утраты обеспечивается за счет средств резервного копирования данных, например, с использованием программно-аппаратной или исключительно программной реализации технологии RAID (Redundant Array of Independent Disks), описанной в различных патентных документах, например, патентах США №№7392458 (публ. 24.06.2008), 7437658 (публ. 14.10.2008), 7600176 (публ. 06.10.2009); в заявках на патент США №№2009/0132851 (публ. 21.05.2009), 20100229033, (публ. 09.09.2010), 201101145677 (публ. 16.06.2011), 20110167294 (публ. 07.07.2011), 20110264949 (публ. 27.10.2011). В технологии RAID в режимах, предназначенных для защиты данных от частичной утраты, применяется заранее подобранный помехоустойчивый код: в режиме RAID-1, например, применяется код двукратного повторения, а в режиме RAID-6 используется код Рида-Соломона. При этом закодированные данные распределяются между носителями (дисками), обычно находящимися в одном конструктивном блоке (RAID-массиве). В зависимости от реализации технологии RAID, один набор носителей, входящий в RAID-массив, может задействоваться для создания хранилища как только в одном режиме, так и для создания нескольких хранилищ, каждое из которых может иметь свой RAID-режим. В патенте RU 2502124 C1 (публ. 20.12.2013) предложен способ распределенного хранения данных по нескольким носителям, характеризующийся тем, что позволяет на базе набора носителей данных (жестких дисков, флэш-накопителей и т.п.) построить запоминающее устройство (хранилище), устойчивое к утрате данных даже при выходе из строя большого количества частей запоминающего устройства. Согласно описанию RU 2502124 C1, память носителей данных, входящих в состав защищенного запоминающего устройства, задействуется полностью, а сами носители размещены в одном конструктивном блоке.Existing ways to protect against data loss. Data protection against loss is ensured by means of data backup, for example, using software-hardware or exclusively software implementation of RAID technology (Redundant Array of Independent Disks), described in various patent documents, for example, US patents No. 7392458 (publ. 24.06 .2008), 7437658 (publ. 10/14/2008), 7600176 (publ. 10/06/2009); in applications for US patent No. 2009/0132851 (publ. 21.05.2009), 20100229033, (publ. 09/09/2010), 201101145677 (publ. 06/16/2011), 20110167294 (publ. 07/07/2011), 20110264949 (publ. 10/27/2011). In RAID technology, in modes designed to protect data from partial loss, a pre-selected error-correcting code is used: in RAID-1 mode, for example, a double-repeat code is used, and in RAID-6 mode, the Reed-Solomon code is used. In this case, the encoded data is distributed between the media (disks), usually located in the same structural unit (RAID-array). Depending on the implementation of the RAID technology, one set of media included in the RAID array can be used to create storage in only one mode, or to create several storages, each of which can have its own RAID mode. Patent RU 2502124 C1 (publ. 12/20/2013) proposes a method for distributed storage of data on several media, characterized in that it allows to build a storage device (storage) based on a set of data carriers (hard drives, flash drives, etc.) Resistant to data loss even when a large number of parts of the storage device fail. According to the description of RU 2502124 C1, the memory of data carriers that are part of a secure storage device is fully utilized, and the media themselves are located in one structural unit.

Кроме описанных выше способов, где защищенное хранилище (ЗХ) строится на базе носителей, размещенных предпочтительно в одном конструктивном блоке или в непосредственной близости друг от друга, имеются такжеIn addition to the methods described above, where a secure storage (ZX) is built on the basis of carriers located preferably in one structural unit or in close proximity to each other, there are also

способы построения сетевых хранилищ. Так, в патенте RU 2501072 C2 (публ. 10.12.2013) с целью защиты данных от утраты предложен способ распределенного хранения данных, согласно которому, хранилище представляет собой сеть узлов (сетевое хранилище), в которой выход из строя узла отслеживается специальным узлом (группой узлов), и на основе данных из доступных узлов генерируются данные для нового узла. В этом случае узлы, составляющие сетевое защищенное хранилище, могут быть географически разнесены. Отметим, что в RU 2501072 C2 узлы сети, могут быть задействованы только для создания одного сетевого хранилища.ways to build network storage. So, in patent RU 2501072 C2 (publ. 10.12.2013), in order to protect data from loss, a method for distributed data storage is proposed, according to which, the storage is a network of nodes (network storage), in which the failure of a node is monitored by a special node (group nodes), and based on the data from the available nodes, data is generated for the new node. In this case, the nodes that make up the network secure storage can be geographically dispersed. Note that in RU 2501072 C2 network nodes can only be used to create one network storage.

В патенте US 7418439 B2 (публ. 26.08.2008) предложен способ построения гибридной системы, защищенной от утраты данных, позволяющей защитить данные от утраты на базе как локальных носителей информации, так и на базе сетевых носителей. В US 7418439 B2 именно предложена виртуальная файловая система, предназначенная для создания хранилищ, защищенных от утраты данных. В основе изобретения US 7418439 B2 лежит способ построения файловой системы над файловыми системами существующих носителей (как локальных, так и сетевых) таким образом, что любой запрос к виртуальной файловой системе на изменение данных в файле дублируется (зеркалируется) для нижележащих файловых систем. За счет этого на разных носителях хранится идентичная копия файла. Этот способ позволяет на базе одного набора носителей создавать произвольное количество хранилищ с поддержкой зеркалирования. Недостатком описанного в US 7418439 B2 способа является то, что для защиты данных от утраты используется только зеркалирование, что, как отмечено, например, в RU 2501072 C2, часто не является оптимальной и дешевой стратегией защиты данных от утраты.US Pat. No. 7,418,439 B2 (published August 26, 2008) proposes a method for constructing a hybrid system that is protected from data loss, which allows protecting data from loss on the basis of both local storage media and network storage media. US 7418439 B2 specifically proposes a virtual file system designed to create repositories that are protected against data loss. The invention of US 7418439 B2 is based on a method of constructing a file system on file systems of existing media (both local and network) in such a way that any request to the virtual file system for changing data in a file is duplicated (mirrored) for underlying file systems. Due to this, an identical copy of the file is stored on different media. This method allows you to create an arbitrary number of storages based on a single set of media with support for mirroring. The disadvantage of the method described in US 7418439 B2 is that only mirroring is used to protect data from loss, which, as noted, for example, in RU 2501072 C2, is often not an optimal and cheap strategy to protect data from loss.

Существующие способы защиты от конфиденциальности и целостности данных. Защита конфиденциальности и целостности данных, как правило, обеспечивается применением криптографических преобразований к данным, таких как ГОСТ 21147-89, AES, 3DES, RSA, ГОСТ Р 34.11-2012, SHA. Кроме программных реализаций этих алгоритмов, существуют такжеExisting ways to protect against confidentiality and data integrity. The protection of confidentiality and data integrity is usually ensured by applying cryptographic transformations to data, such as GOST 21147-89, AES, 3DES, RSA, GOST R 34.11-2012, SHA. In addition to software implementations of these algorithms, there are also

и аппаратные решения. В частности, для защиты конфиденциальности данных, в US 8239690 В2 (публ. 07.08.2013) предложена конструкция защищенного съемного Flash-носителя, на котором выделяется специальная защищенная область, в которой хранится информация для аутентификации пользователя и доступ к которой может получить только специальным образом разработанная программа, хранящаяся на устройстве. Данные на Flash-носителе шифруются с использованием ключа, получаемого вычислением хэш-функции от пароля, который вводит владелец Flash-носителя при аутентификации на устройстве. Способы защиты конфиденциальности и целостности данных, в частности, средство, описанное в US 8239690 В2, в свою очередь, не решают задачу защиты доступности данных.and hardware solutions. In particular, to protect data privacy, in US 8239690 B2 (publ. 08/07/2013) the design of a secure removable Flash-media is proposed, which highlights a special protected area in which information for user authentication is stored and access to which can only be obtained in a special way developed program stored on the device. Data on the Flash media is encrypted using the key obtained by computing the hash function of the password that the owner of the Flash media enters when authenticating on the device. Ways to protect the confidentiality and integrity of data, in particular, the tool described in US 8239690 B2, in turn, do not solve the problem of protecting data availability.

Средства защиты конфиденциальности и целостности, основанные на программной или аппаратной реализации, в частности, отмеченных выше алгоритмов, используют секретные ключи или секретные пароли, на основе которых вырабатываются секретные ключи. Надежность защиты конфиденциальности и целостности в таких решениях основана на том допущении, что секретный ключ всегда остается в секрете, а пароль пользователем выбран так, что его вычислительно сложно подобрать. Однако на практике пользователями не всегда выполняются требования в отношении обеспечения секретности ключей или выбора сложных паролей, что может привести к ослаблению защиты конфиденциальности и целостности данных. В частности, если система парольной аутентификации настроена на использование только сложных паролей, например, в соответствии с рекомендациями из [?], то пользователь в часто не запоминает пароль, а записывает его [?]. При этом, в корпоративной среде пользователь в меньшей степени мотивирован на защиту корпоративных данных, поэтому записанный им пароль обычно оставляется, например, приклеенным к экрану монитора, или под клавиатурой. В случае же собственных информационных активов (учетные данные для доступа к Интернет-банкингу, переписка с партнерами и т.п.) пользователь заинтересован в их защите и, таким образом, либо запоминает сложный пароль, либо обеспечивает защиту записанного пароля:Confidentiality and integrity protection tools based on a software or hardware implementation, in particular, the algorithms noted above, use secret keys or secret passwords, on the basis of which secret keys are generated. The reliability of protecting confidentiality and integrity in such decisions is based on the assumption that the secret key is always kept secret, and the password is selected by the user in such a way that it is computationally difficult to select. However, in practice, users do not always fulfill the requirements for securing keys or choosing complex passwords, which can lead to weakening of the protection of confidentiality and data integrity. In particular, if the password authentication system is configured to use only complex passwords, for example, in accordance with the recommendations from [?], Then the user often does not remember the password, but writes it [?]. At the same time, in a corporate environment, the user is less motivated to protect corporate data, so the password recorded by him is usually left, for example, glued to the monitor screen, or under the keyboard. In the case of their own information assets (credentials for access to Internet banking, correspondence with partners, etc.), the user is interested in protecting them and, thus, either remembers a complex password or protects the recorded password:

хранит пароль, например, в личном кошельке или в личном телефоне. Таким образом, использование криптографических преобразований для надежной защиты конфиденциальности и целостности приводит к необходимости управлять жизненным циклом криптографических ключей или паролей, что приводит к необходимости пользователям запоминать сложные пароли. Это в свою очередь приводит к ослаблению защиты, так как из-за неудобств, связанных с запоминанием сложного пароля, пользователь обычно выбирает простой и, таким образом, легко подбираемый пароль. В то же время пользователь готов испытывать неудобства при использовании сложного пароля обычно с случае собственной заинтересованности в защите данных.stores a password, for example, in a personal wallet or in a personal phone. Thus, the use of cryptographic transformations to reliably protect confidentiality and integrity leads to the need to manage the life cycle of cryptographic keys or passwords, which leads to the need for users to remember complex passwords. This in turn leads to a weakening of protection, because due to the inconvenience associated with remembering a complex password, the user usually chooses a simple and thus easily matched password. At the same time, the user is ready to experience inconvenience when using a complex password, usually with his own interest in data protection.

Существующие решения комплексной защиты доступности, конфиденциальности и целостности данных. Одновременное решение задач защиты доступности, конфиденциальности и целостности обычно достигается за счет последовательного применения сначала криптографического преобразования к данным, а затем применения технологии резервного копирования данных. Защита конфиденциальности и целостности данных актуальна как для систем типа RAID, где все носители размещены в одном конструктивном блоке, так и для распределенных систем хранения, то есть для сетевых хранилищ. Так в патенте США US 20050081048 А1 (публ. 14.04.2005) предложен метод защиты данных в RAID-массивах, согласно которому перед записью на RAID-массив (после чтения с RAID-массива) данные шифруются (расшифровываются) специально выделенным устройством, подключенным к PCI-шине. Ключ шифрования/расшифрования считывается с внешнего запоминающего устройства и/или запрашивается у пользователя. В патенте США US 8209551 В2 (публ. 26.06.2012) предложен метод защиты информации для RAID-массивов, согласно которому перед записью в массив данные разбиваются на несколько сегментов, часть из которых шифруется, а часть остается в открытом виде, после чего от шифрованных и нешифрованных данных вычисляются контрольные суммы. Шифрованные сегменты, сегменты в открытом виде и контрольные суммы далееExisting solutions for comprehensive protection of accessibility, confidentiality and data integrity. The simultaneous solution of the problems of protecting accessibility, confidentiality and integrity is usually achieved by sequentially applying cryptographic conversion to the data first, and then applying the technology of data backup. Protection of confidentiality and data integrity is relevant both for systems such as RAID, where all media are located in one structural unit, and for distributed storage systems, that is, for network attached storage. So in US Pat. PCI bus. The encryption / decryption key is read from the external storage device and / or requested from the user. In US patent US 8209551 B2 (publ. 06/26/2012), a method for protecting information for RAID arrays is proposed, according to which before writing to the array, the data is divided into several segments, some of which are encrypted, and some remain open, and then from encrypted and unencrypted data checksums are calculated. Encrypted segments, clear segments and checksums more

распределяются по дискам RAID-массива. При этом восстановление незашифрованных данных невозможно без знания секретного ключа, известного легальному пользователю. В патенте США US 7752676 В2 (публ. 06.07.2010) предложен метод защиты данных в сетевом хранилище, согласно которому, пользовательский запрос на чтение(запись) данных сначала проходит процедуру авторизации, и только в случае разрешения операции выполняется соответственно расшифрование (шифрование) данных на сетевом хранилище. Ключи шифрования/расшифрования хранятся на стороне клиента.distributed across RAID disks. At the same time, recovery of unencrypted data is impossible without knowing the secret key known to the legal user. In US patent US 7752676 B2 (publ. 07/06/2010) a method for protecting data in a network storage is proposed, according to which, a user request to read (write) data first goes through the authorization procedure, and only if the operation is allowed, the data is decrypted (encrypted) accordingly on network attached storage. Encryption / decryption keys are stored on the client side.

Другой вариант комбинированной защиты предложен в патенте US 20110107103 A1 (публ. 05.05.2011), согласно которому данные хранятся в облаке, а модуль шифрования хранится не на стороне клиента, а на стороне провайдера облачного хранилища. Это решение предназначено, как правило, для защиты резервных копий данных в облаке, хотя оригинальные данные хранятся на стороне клиента в исходном виде. При этом для обеспечения защиты конфиденциальности данных файл с данными сначала разбивается на части, а затем каждая часть преобразуется с помощью криптографического алгоритма и записывается на один или несколько носителей в облаке. Защита от утраты обеспечивается в случае, когда данные утрачиваются на стороне клиента. В этом случае резервная копия восстанавливается из облака. Недостатком этого решения является то, что модуль шифрования находится на стороне провайдера, тем самым потенциально провайдер имеет возможность получить доступ к данным пользователя. Кроме этого, на стороне клиента данные от нарушения конфиденциальности не защищаются.Another combination protection option is proposed in US 20110107103 A1 (publ. 05/05/2011), according to which the data is stored in the cloud, and the encryption module is stored not on the client side, but on the cloud storage provider side. This solution is usually intended to protect data backups in the cloud, although the original data is stored on the client side in its original form. At the same time, to protect data privacy, the data file is first divided into parts, and then each part is converted using a cryptographic algorithm and written to one or more media in the cloud. Loss protection is provided when data is lost on the client side. In this case, the backup is restored from the cloud. The disadvantage of this solution is that the encryption module is located on the side of the provider, thereby potentially the provider has the ability to access user data. In addition, on the client side, data is not protected from privacy violations.

Отметим, что конфиденциальность в отмеченных выше комбинированных решениях обеспечивается также за счет использования шифрования на основе секретных ключей, которые генерируются или защищаются с помощью паролей, проблемы использования которых отмечены выше. Таким образом, обеспечение конфиденциальности данных в таких комбинированных решениях связано с использованием криптографических ключей илиNote that confidentiality in the combined solutions noted above is also ensured through the use of encryption based on secret keys that are generated or protected with passwords, the problems of using which are noted above. Thus, ensuring confidentiality of data in such combined solutions involves the use of cryptographic keys or

паролей, что приводит к введению дополнительных организационных мер в отношении либо использования носителей, на которых хранятся криптографические ключи, либо в отношении сложности паролей. Однако, запоминание сложных паролей создает неудобства у пользователей систем защиты, что приводит к послаблению системы защиты, так как пользователи часто игнорируют требования к сложности при выборе пароля.passwords, which leads to the introduction of additional organizational measures regarding either the use of media on which cryptographic keys are stored, or regarding the complexity of passwords. However, remembering complex passwords creates inconvenience for users of security systems, which leads to weakening of the security system, as users often ignore the complexity requirements when choosing a password.

Проблема запоминания сложного пароля или криптографического ключа может быть разрешена, например, с использованием методов распределения секрета, когда секрет (в данном случае пароль или криптографический ключ) распределяется между устройствами, принадлежащими пользователю.The problem of remembering a complex password or cryptographic key can be solved, for example, using secret distribution methods, when a secret (in this case, a password or cryptographic key) is distributed between devices belonging to the user.

Системы защищенного хранения данных без использования секретных ключей предложены, например, в патентах US 6363481 В1 (публ. 26.03.2002), US 7945784 В1 (публ. 17.05.2011) и US 8345861 В2 (публ. 01.01.2013). Общим принципом построения таких систем является использование (n,k)-схем разделения секрета. Защищаемые данные с помощью выбранной (n,k)-схемы разделения секрета разделяются на n частей, которые записываются на n носителей данных. При этом по любым k-1 частям нельзя получить какой-либо информации о защищаемых данных, а любые k частей дают возможность однозначно восстановить защищаемые данные. Таким образом, подобные системы защиты позволяют одновременно решать задачи защиты доступности и конфиденциальности данных: утрата не более чем n-k носителей (частей) позволяет однозначно восстановить данные по оставшимся k частям, а несанкционированный доступ (несанкционированное ознакомление, копирование) к не более чем k-1 носителям не дает возможности восстановить защищаемые данные. Общий принцип построения таких распределенных систем без привязки к конкретным схемам разделения секрета описан в US 6363481 В1, а в US 7945784 В1 и US 8345861 В2 описаны некоторые модификации этой системы и предложены конкретные (n,k)-схемы разделения секрета. Отметим, что в US 6363481 В1 рассматриваются различные варианты построенияSystems for secure data storage without the use of secret keys are proposed, for example, in patents US 6363481 B1 (publ. March 26, 2002), US 7945784 B1 (publ. 05.17.2011) and US 8345861 B2 (publ. 01.01.2013). The general principle of constructing such systems is the use of (n, k) -security sharing schemes. The data to be protected using the selected (n, k) secret sharing scheme is divided into n parts, which are recorded on n data carriers. Moreover, for any k-1 parts it is impossible to obtain any information about the protected data, and any k parts make it possible to unambiguously restore the protected data. Thus, such protection systems make it possible to simultaneously solve the problems of protecting the availability and confidentiality of data: the loss of no more than nk carriers (parts) allows you to uniquely restore data from the remaining k parts, and unauthorized access (unauthorized familiarization, copying) to no more than k-1 media does not allow recovery of protected data. The general principle of constructing such distributed systems without reference to specific secret sharing schemes is described in US 6363481 B1, and in US 7945784 B1 and US 8345861 B2 some modifications of this system are described and specific (n, k) secret sharing schemes are proposed. Note that in US 6363481 B1 various construction options are considered.

распределенного хранения с использованием секретных ключей: 1) шифрование защищаемых данных перед применением схемы разделения секрета, 2) шифрование отдельных частей после применения схемы разделения секрета, 3) шифрование защищаемых данных и использование схемы разделения секрета для ключа шифрования, 4) шифрование защищаемых данных с последующим применением схемы разделения секрета к шифрованным данным и использование схемы разделения секрета для ключа шифрования. Системы распределенного хранения, описанные в патентах US 6363481 B1, US 7945784 В1 и US 8345861 В2 могут быть применены на практике в том случае, если получение злоумышленником доступа к k частям и выход и строя n-k носителей являются маловероятными событиями. К недостатку этих систем можно отнести их применимость преимущественно для защиты статичных данных, например, архивных копий документов (см. US 7945784 B1). В частности, описанная в патенте US 6363481 B1 процедура записи данных в защищенное распределенное хранилище подходит для случая записи нового файла (блока данных). Однако процедура обновления данных в файле (в блоке данных) не описана и представляется нетривиальной. Так как в US 6363481 B1 допускается применение различных (n,k)-схем разделения секрета к различным частям одного файла, то процедура обновления становится еще более нетривиальной в случае, когда необходимо обновить часть файла, частично перекрывающуюся с частями, к которым применены различные (n,k)-схемы разделения секрета. Отметим, что в системах, использующих (n,k)-схемы распределения секрета, требуется n носителей, что однако не всегда осуществимо при большом значении n. Также отметим, что эти распределенные защищенные системы хранения данных предназначены только для защиты конфиденциальности и доступности данных, и не предусматривают защиту целостности данных.distributed storage using secret keys: 1) encryption of protected data before applying a secret sharing scheme, 2) encryption of individual parts after applying a secret sharing scheme, 3) encryption of protected data and use of a secret sharing scheme for an encryption key, 4) encryption of protected data followed by applying a secret sharing scheme to encrypted data; and using a secret sharing scheme for an encryption key. The distributed storage systems described in US Pat. The disadvantage of these systems is their applicability mainly for the protection of static data, for example, archival copies of documents (see US 7945784 B1). In particular, the procedure for writing data to a secure distributed storage described in US Pat. No. 6,336,481 B1 is suitable for writing a new file (data block). However, the procedure for updating data in a file (in a data block) is not described and seems nontrivial. Since in US 6363481 B1 it is allowed to use different (n, k) -security sharing schemes for different parts of one file, the update procedure becomes even more non-trivial when it is necessary to update a part of a file that partially overlaps with parts to which different ( n, k) -schemes of secret sharing. Note that in systems using (n, k) -security distribution schemes, n carriers are required, which, however, is not always feasible with a large value of n. Also note that these distributed, secure storage systems are designed only to protect the confidentiality and availability of data, and do not provide data integrity protection.

В патенте RU 2485584 С2 (публ. 20.06.2013) предложен другой способ построения комбинированной защиты, не требующий управления жизненным циклом секретных ключей или паролей. Этот способ является наиболее близким к предлагаемому способу одновременной защиты доступностиIn the patent RU 2485584 C2 (publ. 06/20/2013) another method is proposed for building combined protection that does not require the life cycle management of secret keys or passwords. This method is the closest to the proposed method for simultaneously protecting accessibility.

и конфиденциальности хранящихся данных. Описанный в патенте RU 2485584 С2 способ обеспечивает одновременную защиту доступности и конфиденциальности данных за счет разделения кодового слова на две части, одна из которых (конфиденциальная), состоящая из символов полезных данных и случайных символов, помещается в защищенную область (например, в чип на смарт-карте), а вторая часть - контрольная сумма - помещается в незащищенную область. Согласно RU 2485584 С2, несанкционированный доступ к контрольной сумме в незащищенной области не несет какой-либо информации за счет вставки блоков случайных данных в блок полезных данных перед кодированием. Способ организации защиты, описанный в RU 2485584 С2, предпочтительно предусматривает явное выделение защищенной (и тем самым, более дорогой) области и незащищенной области, что не позволяет применять этот метод в среде, где заранее неизвестно, какая область хранения является защищенной, а какая не является таковой. Например, этот способ не подходит, когда в качестве областей хранения конфиденциальной информации и контрольной суммы должны быть выбраны два одинаково используемых ("равноправных") Flash-носителя. Использование способа, описанного в RU 2485584 С2, в таком случае приводит к необходимости применения особых организационных защитных мер при обращении с Flash-носителем, на котором сохраняется конфиденциальная информация, что меняет его статус "равноправности" у используемых носителей. Также, согласно описанию RU 2485584 С2, способ кодирования подходит для устройств, в которых из строя выходят отдельные ячейки памяти. Таким образом, выход из строя полностью незащищенной области не позволяет обнаруживать и исправлять ошибки в защищенной области, а выход из строя полностью защищенной области приводит к полной потере полезных данных.and confidentiality of stored data. The method described in patent RU 2485584 C2 provides simultaneous protection of data accessibility and confidentiality by dividing the code word into two parts, one of which (confidential), consisting of useful data characters and random characters, is placed in a protected area (for example, in a smart chip card), and the second part - the checksum - is placed in an unprotected area. According to RU 2485584 C2, unauthorized access to a checksum in an unprotected area does not carry any information by inserting random data blocks into the payload block before encoding. The method of organizing protection described in RU 2485584 C2 preferably provides for the explicit allocation of a protected (and thereby more expensive) area and an unprotected area, which does not allow this method to be applied in an environment where it is not known in advance which storage area is protected and which is not is such. For example, this method is not suitable when two identically used ("equal") Flash media should be selected as storage areas for confidential information and checksum. The use of the method described in RU 2485584 C2, in this case, leads to the need for special organizational protective measures when handling a Flash media on which confidential information is stored, which changes its status of "equal rights" in the media used. Also, according to the description of RU 2485584 C2, the encoding method is suitable for devices in which individual memory cells fail. Thus, the failure of a completely unprotected area does not allow the detection and correction of errors in a protected area, and the failure of a fully protected area leads to a complete loss of useful data.

К общему минусу комбинированных решений можно отнести и то, что комбинированные решения применимы в том случае, когда пользователь заранее знает, какая информация будет храниться в защищенных хранилищах и какие требования к каждому из этих хранилищ предъявляются.The common disadvantage of combined solutions is the fact that combined solutions are applicable when the user knows in advance what information will be stored in protected storages and what requirements are presented to each of these storages.

Однако часто заранее пользователь не может предугадать, какая информация будет храниться, и какие требования к ней предъявляются. Обычно на компьютере хранится разнородная информация, к которой предъявляются различные требования по защите. Например, в отношении собранной на компьютере видеотеки предъявляется требование по обеспечению защиты только доступности данных (защита от утраты); в отношении информации о банковских счетах/PIN-кодах необходимо обеспечить защиту конфиденциальности, а в отношении фотографий обычно необходимо обеспечить защиту доступности данных и защиту конфиденциальности, возможно менее строгую, нежели в отношении банковских счетов/PIN-кодов. Если заранее пользователь может определить типы хранимой информации, требования к защите, то в этом случае подходящим вариантом будет одно из комбинированных средств защиты на основе технологии RAID. Но такие решения подходят в случае, когда хранимые объемы информации достаточно велики, чтобы выделять для них защищенные разделы в RAID-массивах. Если же информация небольшого объема, то выделять целый раздел под такую информацию не имеет смысла. Предпочтительнее в этом случае использовать средства шифрования отдельных файлов. Также, если нужно обеспечить гарантированное удаление определенных данных, то предпочтительнее использовать средства гарантированного удаления отдельных файлов, а не шифрованные разделы RAID-массивов. Эту задачу обычно решают специальные средства, которые реализуют алгоритмы гарантированного удаления файлов, например, алгоритм, описанный в ГОСТ Р 50739-95.However, often in advance the user cannot predict what information will be stored and what requirements are imposed on it. Typically, heterogeneous information is stored on a computer, to which various protection requirements are presented. For example, in relation to a video library collected on a computer, a requirement is made to ensure that only data availability is protected (protection against loss); with regard to bank account / PIN information, confidentiality protection is necessary, and with photographs it is usually necessary to provide data access protection and privacy protection, possibly less strict than with bank accounts / PIN codes. If in advance the user can determine the types of information stored, the requirements for protection, then in this case one of the combined security measures based on RAID technology would be a suitable option. But such solutions are suitable when the stored amounts of information are large enough to allocate protected sections for them in RAID arrays. If the information is small, then allocating a whole section for such information does not make sense. In this case, it is preferable to use the encryption of individual files. Also, if you want to ensure guaranteed deletion of certain data, it is preferable to use the means of guaranteed deletion of individual files, rather than encrypted sections of RAID arrays. This problem is usually solved by special tools that implement algorithms for guaranteed file deletion, for example, the algorithm described in GOST R 50739-95.

Все это приводит к тому, что если владельцу данных необходимо в отношении одних данных применять резервное копирование, в отношении других - шифрование и/или контроль целостности, а в отношении третьих - гарантированное удаление, то для решения поставленных задач необходимо применять три средства защиты, реализующие соответственно функции RAID-массива, функции вычисления криптографических преобразований и функции гарантированного удаления. Таким образом, нерешенной является задача разработки единого технического решения, позволяющегоAll this leads to the fact that if the data owner needs to use backup for some data, for others - encryption and / or integrity control, and for the third - guaranteed deletion, then to solve the tasks it is necessary to use three means of protection that implement respectively, the functions of the RAID array, the functions of computing cryptographic conversions and the functions of guaranteed deletion. Thus, the unsolved problem is the development of a single technical solution that allows

пользователю в зависимости от его потребностей в степени защиты от утраты данных, степени защиты конфиденциальности и целостности данных, в зависимости от имеющихся носителей данных, а также в зависимости от удобства использования гибко управлять защищенными хранилищами. При этом актуальным является решение, во-первых, позволяющее обеспечивать конфиденциальность данных, не применяя секретных ключей для криптографического преобразования, таким образом, не требующее затрат на управление жизненным циклом криптографических ключей, и, во-вторых, не накладывающее жестких ограничений на тип и количество носителей, на основе которых строится защищенное хранилище.depending on his needs, the user is protected from loss of data, the degree of protection of confidentiality and data integrity, depending on the available storage media, as well as depending on ease of use to flexibly manage protected storage. At the same time, the solution is relevant, firstly, to ensure data confidentiality, without using secret keys for cryptographic conversion, thus, not requiring the cost of managing the life cycle of cryptographic keys, and, secondly, not imposing strict restrictions on the type and quantity media on the basis of which the secure storage is built.

Анализ предшествующего уровня техники и возможностей, которые возникают при совместном использовании существующих технических решений, позволяет получить новый результат: способ защиты доступности, конфиденциальности и целостности хранимых данных (СЗДиКХД) и систему настраиваемой защиты хранимых данных (СНЗХД).An analysis of the prior art and the possibilities that arise when sharing existing technical solutions allows us to obtain a new result: a way to protect the availability, confidentiality and integrity of stored data (SZDiKHD) and a system of customizable protection of stored data (SNZHD).

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

3.1 Сущность изобретения3.1 Summary of invention

Предлагается способ защиты доступности и конфиденциальности хранимых данных (СЗДиКХД), основанный на предварительном случайном кодировании данных, разделении кодовых слов на части и распределении частей по имеющимся носителям данных. В качестве метода случайного кодирования используется обобщенный метод кодового зашумления [2]. С целью повышения конфиденциальности данных предлагается регулярная смена кодеков путем выбора используемого кодека из заранее известного множества кодеков с использованием генератора псевдослучайных или случайных чисел. Это позволяет усилить защиту от статистических атак (см., например, [4], [5]) и атак многократного перехвата (см. [6], [7]), которым подвержен классический метод кодового зашумления (см., например, [1], [2]). После кодирования полученные кодовые слова разделяютсяA method is proposed for protecting the accessibility and confidentiality of stored data (SZDiKHD), based on preliminary random coding of data, the division of code words into parts and the distribution of parts on existing data carriers. As a random coding method, a generalized code noise method is used [2]. In order to increase data confidentiality, it is proposed to regularly change codecs by selecting the codec to be used from a previously known set of codecs using a pseudo-random or random number generator. This allows you to strengthen the protection against statistical attacks (see, for example, [4], [5]) and multiple interception attacks (see [6], [7]), which are subject to the classical method of code noise (see, for example, [ 12]). After encoding, the resulting codewords are separated

на произвольное количество частей, каждая из которых записывается на соответствующий носитель.on an arbitrary number of parts, each of which is recorded on the appropriate medium.

Также предлагается система настраиваемой защиты хранимых данных (СНЗХД) на основе последовательного применения преобразования данных, разделения на части преобразованных данных и распределения частей по носителям данных. В системе может использоваться любой алгоритм преобразования данных, как для защиты доступности данных, так и для защиты конфиденциальности и целостности данных. Преобразованные данные могут разделяться на произвольное число частей, которое ограничено только количеством доступных носителей данных. При этом система позволяет на базе одного набора носителей данных создавать различные защищенные распределенные хранилища, в которых используются разнотипные алгоритмы преобразования данных.It also offers a system of customizable protection of stored data (SNZHD) based on the consistent application of data conversion, separation of the converted data into parts and distribution of parts across data carriers. The system can use any data conversion algorithm, both to protect data availability and to protect data privacy and integrity. The converted data can be divided into an arbitrary number of parts, which is limited only by the number of available storage media. At the same time, the system allows creating various protected distributed storages on the basis of a single set of storage media in which heterogeneous data conversion algorithms are used.

3.2 Технический результат3.2 Technical result

Технический результат СЗДиКХД заключается в повышении защищенности конфиденциальности данных за счет применения случайного кодирования с регулярной псевдослучайной сменой кодеков и за счет распределения частей кодовых слов по нескольким носителям данных. Технический результат СНЗХД заключается в повышении конфиденциальности данных, при использовании блока усиленной защиты, и в оптимальном использовании носителей данных за счет возможности создания на базе одного набора носителей нескольких защищенных хранилищ с разными требованиями к защищенности доступности, конфиденциальности и целостности данных.The technical result of SZDiKHD is to increase the security of data confidentiality through the use of random coding with regular pseudorandom codecs and by distributing parts of code words across multiple data carriers. The technical result of SZKhD is to increase data confidentiality when using the enhanced protection unit, and to optimize the use of data carriers due to the possibility of creating several protected storages on the basis of one set of carriers with different requirements for the availability, confidentiality and data integrity.

4 Краткое описание чертежей4 Brief Description of the Drawings

Изобретение поясняется чертежами:The invention is illustrated by drawings:

На Фиг. 1 изображены функциональные блоки, задействованные в СЗДиКХД.In FIG. 1 shows the functional blocks involved in the SZDiKHD.

На Фиг. 2 изображена схема кодирования данных в СЗДиКХД.In FIG. 2 shows a data coding scheme in SZDiKHD.

На Фиг. 3 изображена схема декодирования данных в СЗДиКХД.In FIG. 3 shows a data decoding scheme in SZDiKHD.

На Фиг. 4 изображен компьютер с типичным набором подключаемых носителей данных.In FIG. 4 shows a computer with a typical set of pluggable storage media.

На Фиг. 5 изображена структура древовидной системы хранения файлов на защищенном хранилище и вспомогательных хранилищах, на основе которых строится защищенное хранилище.In FIG. Figure 5 shows the structure of the tree-based file storage system on the protected storage and auxiliary storages, on the basis of which the protected storage is built.

На Фиг. 6 изображена структура СНЗХД.In FIG. Figure 6 shows the structure of SZHKD.

На Фиг. 7 изображены некоторые примеры разбиения кодового слова.In FIG. 7 illustrates some examples of codeword partitioning.

На Фиг. 8 изображены функциональные блоки агента распределенной защиты СНЗХД.In FIG. 8 depicts the functional blocks of the SNCHD distributed protection agent.

На Фиг. 9 изображена последовательность записи данных на защищенное хранилище.In FIG. 9 shows the sequence of writing data to the secure storage.

На Фиг. 10 изображена последовательность чтения данных с защищенного хранилища.In FIG. 10 shows the sequence of reading data from the secure storage.

На Фиг. 11 изображено соответствие между считываемыми/записываемыми данными и представлением данных в защищенном хранилище в виде последовательности информационных блоков.In FIG. 11 shows the correspondence between the data being read / written and the data representation in the secure storage as a sequence of information blocks.

На Фиг. 12 изображены варианты применения СНЗХД для организации защищенных хранилищ.In FIG. 12 depicts the application of SNZHD for the organization of secure storage.

На Фиг. 13 изображена схема типичного компьютера, на базе которого могут быть осуществлены СЗДиКХД и СНЗХД.In FIG. 13 shows a diagram of a typical computer, on the basis of which SZDiKHD and SNZHD can be implemented.

На Фиг. 14 изображена последовательность операций открытия защищенного хранилища.In FIG. 14 depicts a process for opening a secure vault.

На Фиг. 15 изображена последовательность операций закрытия защищенного хранилища.In FIG. 15 depicts a process for closing a secure vault.

На Фиг. 16 изображена последовательность операций сброса данных из кэша.In FIG. 16 shows a flow of data from the cache.

На Фиг. 17 изображена последовательность операций открытия файла на защищенном хранилище.In FIG. 17 shows a flowchart of opening a file on a secure storage.

На Фиг. 18 изображена последовательность операций закрытия файла на защищенном хранилище.In FIG. 18 shows a flowchart for closing a file on a secure vault.

На Фиг. 19 изображена последовательность операций чтения данных из файла на защищенном хранилище.In FIG. 19 depicts a process for reading data from a file on a secure storage.

На Фиг. 20 изображена последовательность операций записи данных в файл на защищенном хранилище.In FIG. 20 depicts a process for writing data to a file on a secure storage.

4.1 Подробное описание изобретения4.1 Detailed Description of the Invention

4.1.1 Способ защиты доступности и конфиденциальности хранимых данных4.1.1 Method of protecting the availability and confidentiality of stored data

Вариант применения кодового зашумления для распределения данных по носителям описан в работе [8]. Этот метод позволяет обеспечить защиту от частичного наблюдения данных и от частичной утраты данных. Для полноты раскрытия сути изобретения приведем описание метода кодового зашумления, который, в отличие от классических алгоритмов шифрования, типа ГОСТ 21147-89, AES, 3DES, RSA, на практике пока не используется для защищенного хранения данных. Пусть

Figure 00000001
- линейный [n, l,
Figure 00000002
]-код длины n, размерности l (над полем Галуа F, |F|=q, q - степень простого числа) с кодовым расстоянием
Figure 00000003
; С - линейный [n, m, d]-код, являющийся подкодом кода
Figure 00000004
. Кодирование выполняется блоками по k:=l-m символов поля F в блоки по n символов того же поля. В дальнейшем предполагается, что в памяти компьютера, где адресуемой ячейкой памяти обычно является байт (восемь двоичных разрядов), k символов поля F занимают k1 байтов, а n символов поля F занимают n1 байтов. Для простоты реализации на компьютере предпочтительно использовать линейные коды
Figure 00000005
и С над полями Галуа характеристики 2 такие, для которых размерности соответственно m и l и длина n в битовом представлении кратны 8. Не ограничивая список вариантов, примерами подходящих пар кодов (
Figure 00000006
, С) являются: пара (RM(5,5), RM(2,5)), где RM(r,w) - двоичный код Рида-Маллера, размерности
Figure 00000007
и длины 2w; множество пар
Figure 00000008
, где
Figure 00000009
- код Рида-Соломона длины N и размерности L над полем F мощности 256, а
Figure 00000010
- его подкод размерности М.A variant of the use of code noise for data distribution among carriers is described in [8]. This method provides protection against partial data observation and partial data loss. To complete the disclosure of the essence of the invention, we give a description of the code noise method, which, unlike classical encryption algorithms, such as GOST 21147-89, AES, 3DES, RSA, is not used in practice for secure data storage. Let be
Figure 00000001
- linear [n, l,
Figure 00000002
] -code of length n, dimension l (over the Galois field F, | F | = q, q is the prime power) with a code distance
Figure 00000003
; C - linear [n, m, d] -code, which is a subcode of the code
Figure 00000004
. Encoding is performed in blocks of k: = lm characters of the field F into blocks of n characters of the same field. It is further assumed that in the computer memory, where the addressable memory cell is usually a byte (eight binary bits), k characters of the field F occupy k 1 bytes, and n characters of the field F occupy n 1 bytes. For ease of implementation on a computer, it is preferable to use linear codes
Figure 00000005
and C over Galois fields of characteristic 2 are such for which the dimensions m and l, respectively, and the length n in the bit representation are multiples of 8. Without limiting the list of options, examples of suitable pairs of codes (
Figure 00000006
, C) are: a pair (RM (5.5), RM (2.5)), where RM (r, w) is the Reed-Muller binary code, dimensions
Figure 00000007
and length 2 w ; many pairs
Figure 00000008
where
Figure 00000009
- Reed-Solomon code of length N and dimension L over field F of power 256, and
Figure 00000010
- its subcode of dimension M.

Опишем правила кодирования и декодирования данных. Пусть

Figure 00000011
- порождающая матрица кода
Figure 00000012
,
Figure 00000013
- соответствующая проверочная матрица, G и Н - соответственно порождающая и проверочная матрицы базового кода С. Так как С - подкод кода
Figure 00000014
, то, без потери общности, матрицы
Figure 00000015
и Н представимы в виде:We describe the rules for encoding and decoding data. Let be
Figure 00000011
- generating code matrix
Figure 00000012
,
Figure 00000013
is the corresponding verification matrix, G and H are the generating and verification matrices of the base code C, respectively. Since C is the code subcode
Figure 00000014
, then, without loss of generality, the matrices
Figure 00000015
and H are representable in the form:

Figure 00000016
Figure 00000016

где G* - (k×n)-матрица,

Figure 00000017
- (k×n)-матрица. Кодирование информационного вектора S=(s1, …, sk)∈Fk выполняется по правилу:where G * is the (k × n) -matrix,
Figure 00000017
- (k × n) -matrix. The coding of the information vector S = (s 1 , ..., s k ) ∈F k is performed according to the rule:

Figure 00000018
Figure 00000018

где V∈Fm - случайный (или псевдослучайный) вектор, а запись (а, b) для векторов над одним полем обозначает приписывание справа вектора b к вектору а. Код С принято называть базовым кодом, а пару (

Figure 00000019
,С) - факторным кодом [факторным, кодеком) [9]. Матрицу
Figure 00000020
будем называть порождающей матрицей факторного кода (
Figure 00000021
,С). Генерация псевдослучайного вектора V длины m выполняется любым криптографически стойким генератором псевдослучайных чисел, например, проходящим все тесты NIST [3] на проверку случайности генерируемой последовательности. Предпочтительными в использовании являются генераторы, требующие небольшое число тактов процессора для генерации очередного значения псевдослучайной последовательности. Не ограничивая список вариантов, возможными генераторами могут быть алгоритмы ISAAK, ISAAK+, RC4. Так как для декодирования данных в методе кодового зашумления не используется генерируемая псевдослучайная последовательность, то ре-инициализация (повторная инициализация) генератора псевдослучайных чисел может производиться в любое время по усмотрению кодирующей стороны. Это позволяет повысить стойкость кодового зашумления и исключить возможную атаку анализа данных, закодированных периодической последовательностью.where V∈F m is a random (or pseudo-random) vector, and the notation (a, b) for vectors over one field means assigning the vector b to the vector a to the right. The code C is usually called the base code, and the pair (
Figure 00000019
, C) - factor code [factor codec) [9]. Matrix
Figure 00000020
will be called the generating matrix of the factor code (
Figure 00000021
,FROM). A pseudo-random vector V of length m is generated by any cryptographically robust pseudo-random number generator, for example, passing all the NIST tests [3] to check the randomness of the generated sequence. Generators that require a small number of processor clocks to generate the next pseudo-random sequence value are preferred. Without limiting the list of options, ISAAK, ISAAK +, RC4 algorithms can be possible generators. Since the generated pseudo-random sequence is not used to decode data in the code noise method, the reinitialization (reinitialization) of the pseudo-random number generator can be performed at any time at the discretion of the coding side. This makes it possible to increase the robustness of code noise and to eliminate a possible attack on the analysis of data encoded by a periodic sequence.

При передаче по каналу кодовое слово С может быть испорчено, то есть получатель вместо С получит испорченное слово С′. Здесь и далее под каналом передачи данных понимаются как пространственно-временные каналы передачи данных (системы связи), так и временные каналы (системы хранения). В системах хранения, например, могут выйти из строя отдельные ячейки памяти, что можно рассматривать как помеху типа стирания. Если количество стертых символов кодового слова не превышает

Figure 00000022
, то исходное кодовое слово может быть восстановлено однозначно. В общем случае для декодирования имеющегося слова С′, возможно испорченного, сначала применяется алгоритм декодирования кода
Figure 00000023
для восстановления по слову С′ истинного кодового слова С. Далее, согласно [7], матрицу Н вида (1) всегда можно выбрать так, что извлечение информационного вектора S из соответствующего декодированного кодового вектора С выполняется по правилу:When transmitting over a channel, the codeword C may be corrupted, that is, the recipient will receive the corrupted word C ′ instead of C. Hereinafter, a data transmission channel refers to both spatio-temporal data transmission channels (communication systems) and temporary channels (storage systems). In storage systems, for example, individual memory cells may fail, which can be considered as an obstacle such as erasure. If the number of erased characters of the code word does not exceed
Figure 00000022
, then the original codeword can be unambiguously restored. In general, to decode an existing word C, possibly corrupted, the code decoding algorithm is first applied
Figure 00000023
to restore the true code word C. from the word С ′. Further, according to [7], a matrix H of the form (1) can always be chosen so that the extraction of the information vector S from the corresponding decoded code vector C is performed according to the rule:

Figure 00000024
Figure 00000024

Показателем защищенности от частичного наблюдения является количество возможных информационных слов, которые может получить наблюдатель по подслушанным данным. Это количество определяется следующим образом. Для кода K и его подкода L последовательностьThe indicator of protection from partial observation is the number of possible information words that an observer can receive from the overheard data. This quantity is determined as follows. For the code K and its subcode L, the sequence

Figure 00000025
, i=0, …, n
Figure 00000025
, i = 0, ..., n

называется относительным обратным профилем размерность/длина [10], где PJ[М] - проекция кода М на множество номеров координат J. Известно, что если количество нестертых символов µ такое, что

Figure 00000026
, то по нестертым данным восстановить данные невозможно в теоретико-информационном смысле, где С и
Figure 00000027
- дуальные коды соответственно к кодам С и
Figure 00000028
. В общем случае количество претендентов при подслушивании не более µ символов определяется как
Figure 00000029
.is called the relative inverse dimension / length profile [10], where P J [M] is the projection of the code M onto the set of coordinate numbers J. It is known that if the number of non-erased characters µ is such that
Figure 00000026
, then from non-erased data it is impossible to restore data in the information-theoretical sense, where С and
Figure 00000027
- dual codes respectively to codes C and
Figure 00000028
. In the general case, the number of applicants when eavesdropping is not more than µ characters is defined as
Figure 00000029
.

Отметим, что если защита данных от частичной утраты не требуется (например, вероятность стирания символа пренебрежимо мала), код

Figure 00000030
может быть размерности n, тогда матрица
Figure 00000031
будет квадратной, и, согласно,Note that if data protection against partial loss is not required (for example, the probability of erasing a character is negligible), the code
Figure 00000030
can be of dimension n, then the matrix
Figure 00000031
will be square, and according to

[1], будет обеспечена защита данных в теоретико-информационном смысле, если злоумышленнику будет доступно менее d(C) символов каждого кодового слова, где d(С) - кодовое расстояние для кода C.[1], data protection in the information-theoretical sense will be provided if the attacker has access to less than d (C ) characters of each codeword, where d (C ) is the code distance for the code C .

Метод кодового зашумления в ряде случаев подвержен статистической атаке и атак многократного перехвата (см. [4], [5], [6], [7]). С целью защиты от таких атак повышения конфиденциальности предлагается обобщение метода кодового зашумления. Пусть FCq(n, k, µ, ν) - конечное множество факторных кодеков мощности L, преобразующих информационные векторы длины k (над полем F) в кодовые векторы длины n так, что утрата не более ν символов кодового слова позволяет однозначно восстановить информационное слово, а подслушивание не более µ символов кодового слова не дает наблюдателю какой-либо информации о закодированном сообщении. Примером набора FCq(n, k, µ, ν) может быть подмножество кодеков, соответствующих кодам, комбинаторно-эквивалентным (полученным перестановкой столбцов в проверочной матрице) какому-то помехоустойчивому коду. Отличием от классического метода кодового зашумления является то, что в предлагаемом методе для каждого информационного блока длины k факторный кодек не фиксирован, а выбирается случайно или псевдослучайно из набора FCq(n, k, µ, ν). Далее поясняется эта идея для построения способа защиты доступности и конфиденциальности данных в системах хранения.The code noise method in some cases is subject to statistical attack and multiple interception attacks (see [4], [5], [6], [7]). In order to protect against such attacks to increase confidentiality, a generalization of the code noise method is proposed. Let FC q (n, k, µ, ν) be a finite set of factor codecs of cardinality L that transform information vectors of length k (over the field F) into code vectors of length n so that the loss of at most ν characters of the code word allows us to uniquely recover the information word , and eavesdropping on no more than µ characters of the code word does not give the observer any information about the encoded message. An example of a set of FC q (n, k, µ, ν) can be a subset of codecs corresponding to codes that are combinatorially equivalent (obtained by rearranging the columns in the check matrix) to some noise-resistant code. The difference from the classical code noise method is that in the proposed method, for each information block of length k, the factor codec is not fixed, but is selected randomly or pseudo-randomly from the set FC q (n, k, μ, ν). Next, this idea is explained to build a way to protect the availability and confidentiality of data in storage systems.

Пусть имеется t(>0) носителей данных (хранилищ), из которых к любым ttap(≥0) имеет доступ несанкционированный наблюдатель (т.е. на этих хранилищах данные могут быть подсмотрены) и из которых любые terr(≥0) могут выйти из строя (т.е. данные на этих хранилищах могут быть утрачены).Let there be t (> 0) data carriers (storages), from which an unauthorized observer has access to any t tap (≥0) (i.e. data can be spied on these storages) and from which any t err (≥0) may fail (i.e., data on these storages may be lost).

На основе тройки (t, ttap, terr) выбирается такой набор кодеков FCq(n, k, µ, ν) и такое правило разбиения кодовых слов на t частей, чтобы:On the basis of triples (t, t tap, t err) is selected such codecs FC q (n, k, μ , ν) and the rule partitioning codewords t pieces to:

- объединение t частей давало возможность однозначно восстановить все кодовое слово;- the union of t parts made it possible to unambiguously restore the entire codeword;

- любые ttap частей в совокупности содержали не более µ различных- any t tap parts together contained no more than µ different

кодовых символов;code characters;

- любые terr частей в совокупности содержали не более ν различных кодовых символов.- any t err parts in total contained no more than ν different code symbols.

Предпочтительно для ускорения операций использовать такие кодеки (и соответственно, такое поле F) и такие правила разбиения, чтобы длина кодового слова, а также длины частей кодового слова (после разбиения) при машинном представлении в виде последовательности нулей и единиц были кратны 8. Однако другие значения этих параметров не должны представлять сложностей для специалистов, компетентных в области прикладного программирования.It is preferable to speed up operations using such codecs (and, accordingly, such a field F) and such partitioning rules that the length of the codeword, as well as the lengths of the parts of the codeword (after the splitting), are machine multiples of 8. However, others the values of these parameters should not be difficult for specialists competent in the field of applied programming.

Не ограничивая других вариантов разбиения, возможно разбиение на равные части поWithout limiting other splitting options, it is possible to split into equal parts by

Figure 00000032
Figure 00000032

символов поля F, если

Figure 00000033
. В случае, если n не делится нацело на w, то
Figure 00000034
частей будут иметь длину w символов, а одна часть будет иметь длину
Figure 00000035
символов. Отметим, что если ttap=0 и/или terr=0, то это означает, что угрозы нарушения конфиденциальности нет и/или нет угрозы утраты данных. В частности, если ttap=terr=0, то w=n.characters of field F if
Figure 00000033
. If n is not completely divisible by w, then
Figure 00000034
parts will have length w characters, and one part will have length
Figure 00000035
characters. Note that if t tap = 0 and / or t err = 0, then this means that there is no threat of privacy violation and / or there is no threat of data loss. In particular, if t tap = t err = 0, then w = n.

Набор кодеков FCq(n, k, µ, ν) показан на Фиг. 1 в виде блока 100; кодеки в этом наборе могут быть реализованы как на программном уровне, так и на программно-аппаратном уровне. Настройка конкретных параметров n, k, µ, ν и кодеков в наборе осуществляется на основе конфигурации кодеков 108, поступаемой от пользователя. Отметим, что все компоненты блока защиты 111 настраиваются посредством модуля управления 112. Кодеки должны реализовывать единый интерфейс кодирования блока данных (encode_data), декодирования блока данных (decode_data), чтения (get_codec_config) и настройки параметров кодеков (set_codec_config). Единство интерфейса предпочтительно для цели универсальности модуля факторного кодирования 102. Пусть факторные кодеки уникальным образом занумерованы натуральными числами из диапазона [1, L]: FCq(n, k, µ, ν)={ƒ1; …; ƒL}. Перед кодированием очередного информационногоThe set of codecs FC q (n, k, µ, ν) is shown in FIG. 1 as a block 100; codecs in this set can be implemented both at the software level and at the software and hardware level. The specific parameters n, k, µ, ν and codecs in the set are configured based on the configuration of the codecs 108 received from the user. Note that all components of the protection block 111 are configured through the control module 112. Codecs must implement a single interface for encoding a data block (encode_data), decoding a data block (decode_data), reading (get_codec_config) and setting codec parameters (set_codec_config). Unity of the interface is preferable for the purpose of universality of the factor coding module 102. Let factor codecs be uniquely numbered by natural numbers from the range [1, L]: FC q (n, k, µ, ν) = {ƒ 1 ; ...; ƒ L }. Before coding the next information

слова S(∈Fk) (101.1 на Фиг. 2), поступившего от источника запросов ввода/вывода 101, модуль факторного кодирования 102 запрашивает у генератора псевдослучайных чисел (ПСЧ) 103 число r (103.1 на Фиг. 2) из диапазона натуральных чисел [1, L]. На основе полученного числа r модуль 102 выбирает в наборе 100 кодек ƒr с номером r и кодирует информационный блок S с помощью кодека ƒr в кодовый блок С. Кодовое слово С (102.1 на Фиг. 2) поступает на блок разбиения данных 104, а номер факторного кодека r поступает на блок разделения секрета 105, где реализуется какая-либо (t, t-terr)-схема разделения секрета. Алгоритм схемы разделения секрета может быть любым, например это может быть схема Шамира (алгоритм 109 схемы разделения секрета задается пользователем). В блоке 104 кодовое слово разбивается на t частей: C1, …, Ct (104.1 на Фиг. 2). Разбиение может выполняться как на равные части, так и на части различной длины. В общем случае допускается также разбиение и на частично пересекающиеся части. Параметры разбиения настраиваются на основе конфигурации 110, задаваемой пользователем. В блоке 105 с помощью (t, t-terr)-схемы разделения секрета номеру факторного кодека r в соответствие ставится t частей: R1, …, Rt (105.1 на Фиг. 2), при этом предпочтительно, чтобы в битовом представлении каждая часть Ri имела длину, кратную 8. Части C1, …, Ct и части R1, …, Rt поступают на блок слияния 106, выходом которого является вектор вида: (С1, R1, С2, R2, …, Ct, Rt) (106.1 на Фиг. 2). который получается путем приписывания битовых представлений частей Ci и Ri друг к другу, i=1, …, t. Далее в модуле распределения по хранилищам 107 пары вида (Ci, Ri) (i=1, …, n) (107.1-107.t на Фиг. 2) записываются соответственно на t хранилищ 113.1, …, 113.t.of the word S (∈F k ) (101.1 in Fig. 2) received from the input / output request source 101, the factor coding module 102 requests the pseudo random number generator (PSC) 103 the number r (103.1 in Fig. 2) from the range of natural numbers [1, L]. Based on the received number r, the module 102 selects the codec ƒ r with number r in the set 100 and encodes the information block S with the codec ƒ r into the code block C. The code word C (102.1 in Fig. 2) is sent to the data splitting block 104, and the factor codec number r goes to the secret sharing unit 105, where any (t, tt err ) secret sharing scheme is implemented. The algorithm for the secret sharing scheme can be any, for example, it can be a Shamir scheme (the algorithm 109 for the secret sharing scheme is set by the user). In block 104, the codeword is divided into t parts: C 1 , ..., C t (104.1 in Fig. 2). Splitting can be performed both in equal parts, and into parts of different lengths. In the general case, splitting into partially intersecting parts is also allowed. Split parameters are configured based on a user-defined configuration 110. In block 105, using the (t, tt err ) secret separation scheme, the factor codec number r is assigned t parts: R 1 , ..., R t (105.1 in Fig. 2), while it is preferable that each part in the bit representation R i had a length that is a multiple of 8. Parts C 1 , ..., C t and parts R 1 , ..., R t go to the merger 106, the output of which is a vector of the form: (C 1 , R 1 , C 2 , R 2 , ..., C t , R t ) (106.1 in Fig. 2). which is obtained by attributing bit representations of the parts C i and R i to each other, i = 1, ..., t. Further, in the distribution module for the storages 107, pairs of the form (C i , R i ) (i = 1, ..., n) (107.1-107.t in Fig. 2) are recorded respectively on t storages 113.1, ..., 113.t.

При считывании данных (см. Фиг. 3), из хранилищ 113.1, …, 113.t считываются пары (Ci, Ri) [i=1, …, t). По любым не менее t-terr частям из набора R1, …, Rt в модуле 105 восстанавливается номер r факторного кодека, а далее в модуле 102 по номеру r выбирается факторный кодек ƒr, который в дальнейшем используется для извлечения информационного вектора из слова, собранного из соответствующих считанных частей Ci,When reading data (see Fig. 3), pairs (C i , R i ) [i = 1, ..., t) are read from the storages 113.1, ..., 113.t. For any minimum tt err parts of a set of R 1, ..., R t in module 105 recovers number r factorial codec, and then in module 102 the number r is selected factor codec ƒ r, which is subsequently used to retrieve information vector of words, assembled from the corresponding read parts C i ,

i∈{1; …; t}.i∈ {1; ...; t}.

Например, пусть FCq(n, k, µ, ν) - множество из ста кодеков, комбинаторно-эквивалентных факторному (

Figure 00000036
, С), где
Figure 00000037
- код Рида-Соломона
Figure 00000038
размерности 160 и длины 240 над полем
Figure 00000039
, С - код Рида-Соломона
Figure 00000040
размерности 80 и длины 240 над тем же полем. В этом случае n=240, k=80, µ=80, ν=80, L=100. Если t=2, при этом ttap=1 или terr=1, то указанное множество FCq(n, k, µ, ν) не подходит для данной тройки (t, ttap, terr), так как кодовое слово длины 240 нельзя разбить на две части так, чтобы кража любой из них не несла какой-либо информации укравшему о закодированном слове. Зато множество FCq(n, k, µ, ν) подходит, например, для тройки (3, 1, 1): в этом случае кодовое слово можно разбить на 3 части по 80 символов, и потеря одной части или несанкционированное ознакомление с одной частью не приведут соответственно к утрате данных или нарушению конфиденциальности данных. Так как L=100, то для схемы разделения секрета можно использовать, например, (3,2)-схему Шамира, при этом каждая часть будет представлена не более чем одним символом поля
Figure 00000039
, для представления которого в памяти требуется не более одного байта.For example, let FC q (n, k, µ, ν) be a set of one hundred codecs combinatorially equivalent to factor (
Figure 00000036
, C), where
Figure 00000037
- Reed-Solomon code
Figure 00000038
dimension 160 and length 240 over the field
Figure 00000039
, С - Reed-Solomon code
Figure 00000040
dimension 80 and length 240 over the same field. In this case, n = 240, k = 80, μ = 80, ν = 80, L = 100. If t = 2, while t tap = 1 or t err = 1, then the indicated set FC q (n, k, μ, ν) is not suitable for this triple (t, t tap , t err ), since the codeword length 240 cannot be divided into two parts so that the theft of any of them does not carry any information to the stolen about the encoded word. But a plurality of FC q (n, k, μ , ν) is suitable, e.g., for the triple (3, 1, 1) in this case, the code word can be divided into 3 parts of 80 characters, and loss of one part or unauthorized introduction to one part will not lead respectively to loss of data or violation of data privacy. Since L = 100, for the secret sharing scheme it is possible to use, for example, the (3,2) -shamir scheme, with each part being represented by no more than one symbol of the field
Figure 00000039
, to represent which in memory requires no more than one byte.

4.1.2 Система настраиваемой защиты хранимых данных4.1.2 Custom Protected Storage System

Далее, как и ранее, под компьютером понимается любое устройство, имеющее, как минимум, один процессор с программным управлением, запоминающее устройство для долговременного и оперативного хранения программы и промежуточных результатов, а также интерфейсы для подключения носителей данных и сетевые интерфейсы для подключения к сети передачи данных. На Фиг. 4. в качестве примера показан настольный компьютер 400, включающий, кроме периферийных устройств ввода данных (на Фиг. 4 не показаны), монитор 401 и системный блок 402. Устройства хранения данных, подключаемые к компьютеру 400, здесь условно делятся на встроенные устройства хранения данных 403, съемные устройства хранения данных 405, подключаемые не по сети устройства 411, одной из функций которыхFurther, as before, a computer is understood to mean any device that has at least one programmable processor, a memory device for long-term and operational storage of the program and intermediate results, as well as interfaces for connecting storage media and network interfaces for connecting to a transmission network data. In FIG. 4. As an example, a desktop computer 400 is shown including, in addition to peripheral data input devices (not shown in FIG. 4), a monitor 401 and system unit 402. The storage devices connected to the computer 400 are conventionally divided into integrated storage devices 403, removable storage devices 405, not connected via network devices 411, one of the functions of which

является хранение данных, и сетевые хранилища 414. Набор встроенных устройств 403, как правило, состоит из внутренних жестких дисков 404, подключаемых, например, по интерфейсам ATA, SATA, SAS, Fibre Channel и т.п.. К встроенным устройствам хранения относится также встроенная память, которая не предполагается к извлечению при штатной работе компьютера (встроенная память планшетного компьютера, смартфона и т.п.). К съемным устройствам 405, в частности, относятся съемные жесткие диски 406, подключаемые, в частности, по интерфейсам USB, eSATA, SCSI, FireWire; Flash-накопители, подключаемые по USB-интерфейсу 407, но SD-интерфейсу 408 и по mini- или microSD-интерфейсам (на Фиг. 4 не показаны); гибкие магнитные диски 409; оптические диски 410. Приведенный перечень съемных устройств не является окончательным и может быть расширен устройствами хранения данных, подключаемыми к внешним интерфейсам компьютера. К подключаемым не по сети устройствам 411 относятся устройства, хранение данных для которых не является единственной функцией. К таким устройствам могут относиться, например, смартфоны 412, планшетные компьютеры 413, устройства для чтения электронных книг, аудиоплееры (на Фиг. 4 не показаны). Набор сетевых хранилищ, например, включает в себя файловые серверы (NAS - network area storage) 415, сети хранения (SAN - storage area network, на Фиг. 4 не показана), облачные хранилища 416, доступные по локальной сети передачи данных или по сети передачи данных общего пользования.is data storage and network storage 414. The set of built-in devices 403, as a rule, consists of internal hard drives 404, connected, for example, via ATA, SATA, SAS, Fiber Channel interfaces, etc. The built-in storage devices also include built-in memory, which is not supposed to be removed during normal operation of the computer (built-in memory of a tablet computer, smartphone, etc.). Removable devices 405, in particular, include removable hard drives 406, connected, in particular, via USB, eSATA, SCSI, FireWire; Flash drives connected via USB-interface 407, but SD-interface 408 and mini- or microSD-interfaces (not shown in Fig. 4); floppy disks 409; optical disks 410. The above list of removable devices is not final and can be expanded by storage devices that are connected to external computer interfaces. Non-network connected devices 411 include devices for which data storage is not the only function. Such devices may include, for example, smartphones 412, tablet computers 413, e-readers, audio players (not shown in FIG. 4). A set of network storages, for example, includes file servers (NAS - network area storage) 415, storage networks (SAN - storage area network, not shown in Fig. 4), cloud storages 416, accessible via a local data network or a network public data transmission.

На базе компьютера и имеющегося набора носителей данных предлагается построить систему настраиваемой защиты хранимых данных (СНЗХД). Для построения какого-нибудь защищенного хранилища, которое будем обозначать SStor, необходимо TSStor(≥1) носителей данных. Под носителями данных далее понимаются, не ограничивая использование других вариантов, системы хранения, такие как, локальные файловые системы, сетевые файловые системы, реестр операционной системы Windows и другие системы, в которых хранение организовано на базе структур, логически совпадающих со структурой хранения данных в файловых системах. ПриOn the basis of a computer and an existing set of storage media, it is proposed to build a system of customizable protection of stored data (SNZHD). To build some kind of secure storage, which we denote SStor, you need T SStor (≥1) storage media. Storage media is further understood, without limiting the use of other options, storage systems such as local file systems, network file systems, the Windows operating system registry and other systems in which storage is organized on the basis of structures that logically coincide with the structure of storing data in file systems. At

этом реестр операционной системы рассматривается как встроенный носитель данных (входит в группу 403). Каждому защищенному хранилищу SStor ставится в соответствие tSStor(≥1) хранилищ, каждое из которых представляет собой выделенную область на одном из TSStor носителей данных. Каждая такая область адресуется структурой, специфичной для носителя данных. Например, если носителем данных является локальная или сетевая файловая система, то такой структурой может быть каталог. Если носителем данных является, например, реестр операционной системы Windows, то такой структурой может являться ветка реестра. Адрес выделенной области на носителе будем называть точкой монтирования хранилища. В рамках одного защищенного хранилища SStor из tSStor хранилищ выбирается одно хранилище, называемое в дальнейшем базовым хранилищем защищенного хранилища SStor), которое будет адресовать защищенное хранилище SStor. Другими словами, с точки зрения пользователя, работа с защищаемыми данными в защищенном хранилище SStor выполняется посредством отправки запросов ввода/вывода к базовому хранилищу. Остальные tSStor-1 хранилищ называются вспомогательными хранилищами защищенного хранилища SStor. Числа tSStor и TSStor связаны только неравенством TSStor≤tSStor. Таким образом, на базе одного носителя данных может быть выделено несколько хранилищ. В этом случае области, адресуемые точками монтировал хранилищ в рамках одного защищенного хранилища SStor, не должны пересекаться.This registry of the operating system is considered as a built-in storage medium (included in group 403). Each SStor protected storage is associated with t SStor (≥1) storages, each of which represents a dedicated area on one of the T SStor storage media. Each such area is addressed by a structure specific to the data carrier. For example, if the storage medium is a local or network file system, then such a structure may be a directory. If the storage medium is, for example, the registry of the Windows operating system, then such a structure may be a registry branch. The address of the selected area on the media will be called the mount point of the storage. Within one SStor protected storage, from one t SStor storage, one storage is selected, hereinafter referred to as the basic storage of SStor protected storage), which will address the SStor protected storage. In other words, from the point of view of the user, work with the protected data in the SStor protected storage is performed by sending I / O requests to the base storage. The remaining t SStor -1 storages are called auxiliary storage of the SStor protected storage. The numbers t SStor and T SStor are related only by the inequality T SStor ≤t SStor . Thus, on the basis of one data carrier several storages can be allocated. In this case, the areas addressed by the mounted mount points within the same SStor protected storage should not overlap.

Далее под защищенным, хранилищем, понимается система, состоящая из точки монтирования базового хранилища и точек монтирования вспомогательных хранилищ, в которой пользовательские запросы ввода/вывода направляются в адрес базового хранилища, а данные преобразуются и распределяются по вспомогательным хранилищам в соответствии с конфигурацией, описывающей защищенное хранилище.Further, protected storage means a system consisting of a mount point for the basic storage and mount points for auxiliary storage, in which user I / O requests are sent to the address of the basic storage, and data is converted and distributed to auxiliary storage in accordance with the configuration that describes the protected storage .

При размещении защищаемого файла в защищенном хранилище SStor выполняется преобразование данных защищаемого файла с помощью заданного в конфигурации защищенного хранилища алгоритма преобразования,When placing the protected file in the SStor protected storage, the data of the protected file is converted using the conversion algorithm specified in the protected storage configuration,

разбиение преобразованных данных на части выбранного размера и распределение частей по вспомогательным хранилищам (и, возможно, на базовое хранилище). Чтение данных из защищаемого файла, размещенного в защищенном хранилище, выполняется в обратном порядке: чтение частичных данных на вспомогательных хранилищах (и, возможно, с базового хранилища), сбор частей данных в единое целое, обратное преобразование данных. Обычно алгоритмы преобразования данных в системах хранения выполняют преобразование поблочно. Однако в СНЗХД могут быть применены и алгоритмы, не ориентированные на преобразование данных поблочно. Для простоты, но не ограничивая при этом других вариантов алгоритмов преобразования, далее изобретение раскрывается применительно к блочным алгоритмам. Таким образом, защищаемый файл представим в виде последовательности информационных блоков. Преобразованные информационные блоки с помощью выбранного алгоритма преобразования будем называть кодовыми блоками.splitting the converted data into parts of a selected size and distributing the parts to auxiliary repositories (and, possibly, to the basic repository). Reading data from a protected file located in a protected storage is performed in the reverse order: reading partial data on auxiliary storages (and, possibly, from the basic storage), collecting parts of the data into a single whole, reverse data conversion. Typically, data conversion algorithms in storage systems perform block conversion. However, algorithms that are not block-oriented data conversion algorithms can be applied in SZKhD. For simplicity, but not limiting the other options for the conversion algorithms, the invention is further disclosed in relation to block algorithms. Thus, the protected file can be represented as a sequence of information blocks. The converted information blocks using the selected conversion algorithm will be called code blocks.

Предпочтительным вариантом организации данных на вспомогательных хранилищах является реализация, при которой на вспомогательных хранилищах 500.2-500.tSStor (см. Фиг. 5), начиная соответственно с точек монтирования 501.2-501.tSStor, полностью повторяется структура файловой системы (или ее аналога), имеющаяся на базовом хранилище 500.1, начиная с точки монтирования 501.1. Таким образом, каждому размещаемому в защищенном хранилище файлу соответствует один файл в базовом хранилище, начиная с точки монтирования 501.1 и по одному файлу на вспомогательных хранилищах. Файлы, размещаемые в защищенном хранилище (но до помещения в защищенное хранилище), называются здесь защищаемыми файлами; файлы, размещенные в защищенном хранилище, называются защищенными файлами; файлы, размещаемые в базовом хранилище защищенного хранилища SStor, называются базовыми файлами, а соответствующие файлы на вспомогательных хранилищах - вспомогательными файлами. Таким образом, каждому защищенному файлу соответствует один базовый файл и несколько вспомогательных.The preferred option for organizing data on auxiliary storages is the implementation in which, on auxiliary storages 500.2-500.t SStor (see Fig. 5), starting from mount points 501.2-501.t SStor , respectively , the structure of the file system (or its analogue) is completely repeated ), available on the base storage 500.1, starting at mount point 501.1. Thus, each file located in the protected storage corresponds to one file in the basic storage, starting from the mount point 501.1 and one file per auxiliary storage. Files placed in a protected storage (but before being placed in a protected storage) are called protected files here; files located in the secure storage are called protected files; files located in the basic storage of the SStor protected storage are called basic files, and the corresponding files on auxiliary storages are called auxiliary files. Thus, each protected file corresponds to one base file and several auxiliary files.

В базовом файле могут храниться либо только метаданные, либо метаданные и данные, подвергнутые преобразованию. Метаданные представляют собой служебные данные, например, об истинном размере защищаемого файла, времени последней модификации и т.п. Метаданные о размере файла необходимы, например, в том случае, когда преобразование выполняется блоками, размер которых больше одного байта. Если не хранить истинный размер файла, то размер защищенного файла будет всегда кратен длине кодового слова, то есть будут утеряны данные об истинном размере файла (в случае, если бы он не размещался в защищенном хранилище). Предпочтительной является реализация, когда в начале базового файла на защищенном хранилище выделяется область фиксированного размера для хранения метаданных.In the base file can be stored either only metadata, or metadata and data subjected to conversion. Metadata is ancillary data, for example, about the true size of the protected file, time of the last modification, etc. File size metadata is needed, for example, when the conversion is performed in blocks that are larger than one byte in size. If you do not store the true file size, then the size of the protected file will always be a multiple of the length of the code word, that is, data about the true file size will be lost (if it would not be located in the protected storage). The preferred implementation is when a fixed-size area is allocated for storing metadata at the beginning of the base file on the protected storage.

Если базовое хранилище не выступает в роли одного из вспомогательных хранилищ, то базовые файлы содержат только метаданные. Если же базовое хранилище выступает в качестве одного из вспомогательных хранилищ, то базовые файлы кроме метаданных содержат данные, подвергнутые преобразованию.If the underlying repository does not act as one of the auxiliary repositories, then the base files contain only metadata. If the underlying repository acts as one of the auxiliary repositories, then the base files, in addition to metadata, contain data that has been converted.

Допускается реализация защищенного хранилища, когда носитель данных для хранилищ 500.1-500.tSStor один и тот же (т.е. TSStor=1). Такая реализация, например, имеет смысл в случае, когда необходимо дублирование данных в нескольких каталогах на одном носителе данных.It is allowed to implement secure storage when the storage medium for storage 500.1-500.t SStor is the same (i.e., T SStor = 1). Such an implementation, for example, makes sense when duplication of data in several directories on the same storage medium is necessary.

Далее для простоты, но не ограничивая общности, полагается, что точки монтирования защищенных и вспомогательных хранилищ представляют собой каталоги файловых систем.Further, for simplicity, but without limiting generality, it is assumed that the mount points of the protected and auxiliary stores are directories of file systems.

СНЗХД состоит из двух подсистем (см. Фиг. 6): клиентский агент 600 и агент распределенной защиты 601. Каждая из подсистем 600 и 601 представляет собой программное средство, устанавливаемое на компьютер. Возможны два варианта: обе подсистемы устанавливаются на один компьютер, либо каждая из подсистем устанавливается на отдельный компьютер. Подсистемы 600 и 601 взаимодействуют посредством канала связи 602. Канал связи 602, в случае установки подсистем на разные компьютеры, можетSNZHD consists of two subsystems (see Fig. 6): a client agent 600 and a distributed protection agent 601. Each of the subsystems 600 and 601 is a software tool installed on a computer. Two options are possible: both subsystems are installed on one computer, or each of the subsystems is installed on a separate computer. Subsystems 600 and 601 interact via communication channel 602. Communication channel 602, in the case of installing subsystems on different computers, can

представлять собой любой канал связи, посредством которого два компьютера могут обмениваться данными, например, через Wi-Fi, Bluetooth, USB-кабель, через проводную локальную сеть. В случае установки подсистем: на один компьютер роль канала связи 602 может выполнять прикладной программный интерфейс, посредством которого взаимодействуют подсистемы 600 и 601. Клиентский агент 600 включает модуль перехвата данных 603 и модуль управления 604. Модуль 603 перехватывает запросы 606 чтения/записи защищаемых данных, адресованные защищенному хранилищу SStor и отправляет их по каналу связи 602 агенту распределенной защиты 601. Модуль 603 может быть реализован как программная компонента (например, как драйвер), встраиваемая в реализуемый операционной системой процесс обработки запросов ввода/вывода, или реализована как программная компонента, использующая прикладной программный интерфейс операционной системы по работе с системами хранения данных и реализующая пользовательский графический и/или командный интерфейс работы с файлами на защищенных хранилищах. Модуль управления 604 получает конфигурацию 605 защищенного хранилища SStor, на основе которой настраиваются модуль перехвата данных 603 и агент распределенной защиты 601.represent any communication channel through which two computers can exchange data, for example, via Wi-Fi, Bluetooth, a USB cable, through a wired LAN. In the case of installing subsystems: on one computer, the role of the communication channel 602 can be performed by an application program interface through which subsystems 600 and 601 interact. Client agent 600 includes a data capture module 603 and a control module 604. Module 603 intercepts read / write requests 606 of protected data, they are addressed to the secure store SStor and sends them via the communication channel 602 to the distributed protection agent 601. Module 603 can be implemented as a software component (for example, as a driver) embedded in an implemented opera ion processing system I / O request process, or implemented as a software component, using an application programming interface for the operating system, storage systems and implements custom graphics and / or command line interface to work with files on secure storage. The control module 604 obtains the SStor secure storage configuration 605, based on which the data capture module 603 and the distributed protection agent 601 are configured.

В агенте распределенной защиты модуль получения данных 607 (при операции записи данных в защищенное хранилище SStor) принимает запросы ввода/вывода от модуля перехвата данных 603 и далее передает их модулю защиты 608, где по указанному в конфигурации 605 алгоритму защиты происходит обработка запроса. Данные, в зависимости от конфигурации 605, могут также подвергаться усиленной защите в блоке 609. В блоке 610 реализуется схема распределения данных по tSStor хранилищам. В случае, когда подсистемы 600 и 601 устанавливаются на разные компьютеры, то в подсистеме 600 необходим модуль 613, принимающий от агента распределенной защиты 601 запросы на чтение/запись данных в защищенном хранилище, так как базовое хранилище защищенного хранилища SStor предпочтительно расположено на компьютере, где установлен клиентскийIn the distributed protection agent, the data receiving module 607 (during the write operation to the SStor secure storage) receives I / O requests from the data interception module 603 and then passes them to the protection module 608, where the request is processed using the security algorithm specified in configuration 605. Data, depending on configuration 605, may also be subject to enhanced protection at block 609. At block 610, a data distribution scheme for t SStor repositories is implemented . In the case when the subsystems 600 and 601 are installed on different computers, then the subsystem 600 requires a module 613 that receives requests for reading / writing data from the distributed protection agent 601 in the protected storage, since the basic storage of the protected storage SStor is preferably located on the computer where client installed

агент.agent.

Конфигурация 605 защищенного хранилища SStor содержит пять основных разделов:SStor Secure Store Configuration 605 contains five main sections:

- параметры базового хранилища 605.1, где описываются такие параметры, как точка монтирования базового хранилища, признак того, может ли базовое хранилище выступать в качестве вспомогательного хранилища (содержать части кодовых блоков);- parameters of the basic storage 605.1, which describes such parameters as the mount point of the basic storage, a sign of whether the basic storage can act as auxiliary storage (contain parts of code blocks);

- параметры преобразования данных 605.2, где описываются такие параметры, как название алгоритма преобразования, длина информационного блока k; длина кодового блока n; длина ключа, ключевой контейнер, если алгоритм преобразования использует секретные ключи; в общем случае, предлагаемое изобретение позволяет использовать любой метод, преобразующий информационный блок данных длины k (k≥1) в кодовый блок данных длины n (n≥k) независимо от других блоков с использованием или без использования ключа; в частности, такими алгоритмами преобразования могут быть и традиционные алгоритмы симметричного или асимметричного преобразования, такие как ГОСТ 21147-89, AES, 3DES, RSA, алгоритмы контроля целостности типа SHA, ГОСТ Р 34.11-2012 и другие, алгоритмы защиты от ошибок и утраты данных, например, основанные на помехоустойчивых кодах Рида-Соломона, и другие;- data conversion parameters 605.2, which describes such parameters as the name of the conversion algorithm, the length of the information block k; code block length n; key length, key container, if the conversion algorithm uses secret keys; in general, the present invention allows the use of any method that converts an information block of data of length k (k≥1) into a code block of data of length n (n≥k) regardless of other blocks with or without a key; in particular, such transformation algorithms can be traditional symmetric or asymmetric transformation algorithms, such as GOST 21147-89, AES, 3DES, RSA, SHA type integrity control algorithms, GOST R 34.11-2012 and others, error protection and data loss protection algorithms , for example, based on noise-resistant Reed-Solomon codes, and others;

- параметр усиленной защиты 605.3: число Q - количество перестановок битов в байте (Q≤250), алгоритм P генерации перестановок на основе целого числа из диапазона от 0 до Q и алгоритм Г генерации n псевдослучайных символов поля F по целому числу из диапазона от 0 до Q; усиленная защита может применяться для защиты от статистической атаки; если входным параметром алгоритма P является число 0, то алгоритм P генерирует перестановки, которые не приводят к изменению порядка бит, т.е. тождественные перестановки.- enhanced protection parameter 605.3: the number Q is the number of permutations of bits in a byte (Q≤250), the algorithm P generates permutations based on an integer from the range from 0 to Q, and the algorithm G generates n pseudorandom characters of the field F by an integer from the range from 0 to Q; enhanced protection can be used to protect against statistical attacks; if the input parameter of the algorithm P is the number 0, then the algorithm P generates permutations that do not lead to a change in the order of the bits, i.e. identical permutations.

- параметры схемы разделения секрета 605.4, где описывается алгоритм схемы разделения секрета (могут использоваться, например, схемы, описанные в патентах US 7945784 B1, US 8345861 В2 и другие);- parameters of the secret sharing scheme 605.4, which describes the algorithm for the secret sharing scheme (for example, the schemes described in US Pat. Nos. 7,945,784 B1, US 8,345,861 B2 and others can be used);

- параметры разбиения данных 605.5, где описываются количество вспомогательных хранилищ tSStor, правило П разбиения кодовых блоков на части, а также точки монтирования вспомогательных хранилищ.- data splitting parameters 605.5, which describes the number of auxiliary storages t SStor , rule П of breaking code blocks into parts, and also the mounting points of auxiliary storages.

В модуле защиты 608 имеется набор (база) 608.1 алгоритмов защиты данных (см. Фиг. 8). Каждый из этих алгоритмов характеризуется четверкой (n, k, µ, ν), где k - длина (в символах поля F) информационного блока, n - длина кодового блока после применения защиты, µ - максимальное количество символов кодового блока, по которым нельзя получить какой-либо информации об исходном информационном блоке, ν - максимальное число такое, что по любым n-ν кодовым символам однозначно за полиномиальное время (от n) восстанавливается информационный блок.In the protection module 608 there is a set (base) 608.1 of data protection algorithms (see. Fig. 8). Each of these algorithms is characterized by a quadruple (n, k, µ, ν), where k is the length (in characters of the field F) of the information block, n is the length of the code block after applying protection, µ is the maximum number of characters of the code block that cannot be obtained any information about the initial information block, ν is the maximum number such that for any n-ν code symbols, the information block is uniquely restored in polynomial time (from n).

У пользователя, создающего защищенное хранилище SStor, имеется tSStor хранилищ, из которых любые ttap могут быть украдены/скопированы и terr могут выйти из строя или быть потеряны (вероятности этих событий таковы, что ими нельзя пренебречь). Тогда для пользователя с его набором условий (tSStor, ttap, terr) подходящим алгоритмом защиты является один из алгоритмов в наборе 608.1 с параметрами (n, k, µ, ν) такой, что при разбиении кодового вектора на tSStor частей:The user creating the SStor secure store has t SStor stores from which any t tap can be stolen / copied and t err can fail or be lost (the probabilities of these events are such that they cannot be neglected). Then, for the user with his set of conditions (t SStor , t tap , t err ), the appropriate protection algorithm is one of the algorithms in the set 608.1 with parameters (n, k, μ, ν) such that when breaking the code vector into t SStor parts:

- объединение tSStor частей давало возможность однозначно восстановить все кодовое слово длины n;- the union of t SStor parts made it possible to uniquely recover the entire codeword of length n;

- любые ttap частей в совокупности содержат не более µ различных кодовых символов;- any t tap parts in the aggregate contain no more than µ different code symbols;

- любые terr частей в совокупности содержат не более ν различных кодовых символов.- any t err parts in the aggregate contain no more than ν different code symbols.

Предпочтительно для ускорения операций использовать такие кодеки (и соответственно, поле F) и такие правила разбиения, чтобы длина кодового слова, а также длины частей кодового слова (после разбиения)при машинном представлении в виде последовательности нулей и единиц были кратны 8. Однако другие значения этих параметров не должны представлять сложностей для специалистов, компетентных в области прикладного программирования.It is preferable to speed up operations using such codecs (and, accordingly, the F field) and such partitioning rules that the length of the codeword, as well as the lengths of the parts of the codeword (after the splitting), are machine multiples of 8. However, other values these parameters should not present difficulties for specialists competent in the field of applied programming.

По заданной тройке (tSStor, ttap, terr) пользователь может сам выбирать подходящий алгоритм защиты. Например, при формировании параметров хранилища SStor, после задания тройки (tSStor, ttap, terr), в модуле 601 может формироваться список подходящих алгоритмов и передаваться в модуль 600, где пользователь из списка выбирает один алгоритм защиты. Выбранный алгоритм сохраняется в разделе 605.2 конфигурации 605 при создании защищенного хранилища SStor. Отметим, что возможна реализация, когда на разных хранилищах хранятся части разной длины, если количество хранилищ tSStor позволяет это сделать. После выбора подходящего алгоритма защиты выбирается схема разбиения кодового слова и сохраняется в разделе 605.5 конфигурации 605. Параметры разбиения на части, в частности, описывают состав каждой части, а именно указываются номера символов кодового слова, из значений которых образуется каждая часть. Если, например, tSStor=4, ttap=1, terr=0, то подходящим алгоритмом преобразования может быть, например, алгоритм, для которого n=8, k=4, µ=4, ν=0. В этом случае разбиение кодового слова, не ограничивая других возможных вариантов, например, может быть выполнено, как показано на Фиг. 7. Оба эти варианта не будут нарушать того условия, что несанкционированный доступ к любым ttap хранилищам не дает какой-либо информации злоумышленнику об информационном блоке. В частности, на Фиг. 7а кодовое слово 700 разбивается на две непересекающиеся части: одному вспомогательному хранилищу соответствует часть 700.1, состоящая из первого, третьего, четвертого и шестого кодовых символов; второму хранилищу соответствует часть 700.2, состоящая из второго, пятого, седьмого и восьмого кодовых символов. Разбиение того же кодового слова на Фиг. 7б выполнено таким образом, что все три части 701.1, 701.2 и 701.3 имеют один общий кодовый символ, при этом часть 701.2 длиннее остальных на один кодовый символ. Параметры разбиения в конфигурации 605 предпочтительно описываются в разделе описания каждого задействованного вспомогательного хранилища и задают правило разбиения П. Так. для разбиения, показанного на Фиг. 7А, в конфигурации защищенногоFor a given triple (t SStor , t tap , t err ), the user can choose the appropriate protection algorithm. For example, when forming SStor storage parameters after setting triplets (t SStor, t tap, t err), the module 601 may form a list of suitable algorithms and passed to module 600 where the user selects one from the list of security algorithm. The selected algorithm is stored in section 605.2 of configuration 605 when creating SStor secure storage. Note that implementation is possible when parts of different lengths are stored on different storages, if the number of storages t SStor allows this. After selecting the appropriate protection algorithm, the codeword partitioning scheme is selected and stored in section 605.5 of configuration 605. The partitioning parameters, in particular, describe the composition of each part, namely, the symbol code numbers of the codeword are determined, from the values of which each part is formed. If, for example, t SStor = 4, t tap = 1, t err = 0, then a suitable transformation algorithm can be, for example, an algorithm for which n = 8, k = 4, μ = 4, ν = 0. In this case, the splitting of the codeword without limiting other possible options, for example, can be performed as shown in FIG. 7. Both of these options will not violate the condition that unauthorized access to any t tap repositories does not provide any information to the attacker about the information block. In particular, in FIG. 7a, the codeword 700 is divided into two disjoint parts: one auxiliary storage corresponds to a part 700.1 consisting of the first, third, fourth and sixth code symbols; the second repository corresponds to part 700.2, consisting of the second, fifth, seventh and eighth code symbols. The splitting of the same codeword in FIG. 7b is designed in such a way that all three parts 701.1, 701.2 and 701.3 have one common code symbol, while part 701.2 is longer than the rest by one code symbol. The partition parameters in configuration 605 are preferably described in the description section of each involved auxiliary storage and define the partition rule P. Thus. for the partition shown in FIG. 7A, in a secure configuration

хранилища для первого вспомогательного хранилища будет указано множество {1; 3; 4; 6}, а для второго - {2; 5; 7; 8}. При использовании разбиения, показанного на Фиг. 7Б, в конфигурации защищенного хранилища для первого, второго и третьего вспомогательного хранилища будут указаны соответственно множества {1; 3; 4}, {2; 4; 5; 8} и {4; 6; 7}.storages for the first auxiliary storages the set {1; 3; four; 6}, and for the second - {2; 5; 7; 8}. Using the tiling shown in FIG. 7B, in the configuration of the secure storage for the first, second and third auxiliary storage, the sets {1; 3; 4}, {2; four; 5; 8} and {4; 6; 7}.

Опишем схему защиты данных. Все функциональные блоки агента распределенной защиты настраиваются на параметры из конфигурации 605 через модуль управления 611. При записи данных в защищенный файл каждый информационный блок S 800 (см. Фиг. 9), принятый модулем 607, передается в модуль защиты данных 608. На основе параметров 605.2 из конфигурации 605 модуль преобразования 608.2 настраивается на один из алгоритмов А защиты из набора 608.1. Информационный блок S проходит процедуру защиты 801 и, таким образом, преобразуется в кодовый блок С, который далее в модуле 608.3 на основе параметров разбиения данных 605.5 проходит этап разбиения 802 на tSStor частей:

Figure 00000041
, каждая из которых имеет длину li байт при представлении частей в виде последовательностей нулей и единиц, i=1, …, tSStor. Далее выполняется проверка на равенство нулю параметра Q из раздела 605.3 конфигурации 605. Если Q=0, то блок усиленной защиты не применяется. Например, блок усиленной защиты не имеет смысла применять, если алгоритм A реализует СЗДиКХД, в который защита от статистических атак уже заложена. Если Q>0, то в модуле 609.1 с помощью генератора 601.1 генерируется случайно или псевдослучайно число r из диапазона от 0 до 250 (занимает в памяти 1 байт), по которому однозначным образом генерируется tSStor перестановок
Figure 00000042
, каждая из которых переставляющая биты внутри li байтов частей
Figure 00000041
(стадия 804 на блок-схеме). К каждому байту (в машинном представлении) блока Ci применяется перестановка πr,i, i=1, …, tSStor (стадия 805 на блок-схеме). Применение перестановки πr,i к байтам части Ci будем обозначать πr,i(Ci). На выходе стадии 805 получаем блок
Figure 00000043
, i=1, …, tSStor.We describe the data protection scheme. All functional blocks of the distributed protection agent are configured for parameters from configuration 605 via the control module 611. When data is written to a protected file, each information block S 800 (see Fig. 9) received by module 607 is transmitted to data protection module 608. Based on the parameters 605.2 from the configuration 605, the conversion module 608.2 is configured to one of the protection algorithms A from the set 608.1. The information block S goes through the security procedure 801 and, thus, is converted to a code block C, which then goes on to the partitioning module 608.3 on the basis of the data splitting parameters 605.5 the step of splitting 802 into t SStor parts:
Figure 00000041
, each of which has a length l i bytes when representing parts in the form of sequences of zeros and ones, i = 1, ..., t SStor . Next, a check is made that the parameter Q from section 605.3 of configuration 605 is equal to zero. If Q = 0, then the enhanced protection block is not applied. For example, the enhanced protection unit does not make sense to apply if Algorithm A implements SZDiKHD, in which protection against statistical attacks is already in place. If Q> 0, then in module 609.1, using generator 601.1, randomly or pseudo-randomly generates a number r from the range from 0 to 250 (it occupies 1 byte in memory), according to which t SStor permutations are uniquely generated
Figure 00000042
, each of which permutes bits inside l i bytes of parts
Figure 00000041
(step 804 in a flowchart). For each byte (in the machine representation) of the block C i , a permutation π r, i , i = 1, ..., t SStor is applied (stage 805 in the block diagram). The application of the permutation π r, i to the bytes of the part C i will be denoted by π r, i (C i ). At the output of stage 805, we obtain a block
Figure 00000043
, i = 1, ..., t SStor .

Для каждой части

Figure 00000044
, состоящей из li байт:
Figure 00000045
в модулеFor each piece
Figure 00000044
consisting of l i bytes:
Figure 00000045
in the module

609.2 выполняется стадия гаммирования 805. Именно, по числу r с помощью алгоритма Г вырабатывается псевдослучайная последовательность Г(r)=(Г(r)1, .…, F(r)tSStor) длиной

Figure 00000046
байт, где каждый блок Г(r)i имеет длину li байтов, i=1, …, tSStor. Затем выполняется побитовая операция XOR векторов (
Figure 00000047
) и Г(r), образуя при этом вектор вида:609.2, the gamming stage 805 is performed. Namely, according to the number r, using the algorithm Г, a pseudo-random sequence Г (r) = (Г (r) 1, ..., F (r) tSStor ) of length
Figure 00000046
byte, where each block G (r) i has a length l i bytes, i = 1, ..., t SStor . Then the bitwise operation of XOR vectors (
Figure 00000047
) and Г (r), thus forming a vector of the form:

Figure 00000048
.
Figure 00000048
.

По числу r в модуле разделения секрета 609.3 выполняется стадия разделения секрета 807 (реализующая, например, алгоритм Шамира над полем F251), где генерируется tSStor частей (каждая длины 1 байт):

Figure 00000049
, каждая из которых в модуле 609.4 на этапе 808 приписывается справа к соответствующему вектору
Figure 00000050
XOR Г(r)i, образуя пару вида
Figure 00000051
длиной li+1 байтов, i=1, …, tSStor.According to the number r, in the secret separation module 609.3, the secret separation stage 807 is performed (implementing, for example, the Shamir algorithm over the field F 251 ), where t SStor parts are generated (each 1 byte long):
Figure 00000049
, each of which in module 609.4 at step 808 is assigned to the right of the corresponding vector
Figure 00000050
XOR G (r) i , forming a pair of the form
Figure 00000051
length l i +1 bytes, i = 1, ..., t SStor .

После этого, а равно также после того, как в проверке 803 установлено, что Q=0, итоговые части

Figure 00000041
передаются в модуль распределения по вспомогательным хранилищам 610, где выполняется процедура 809 записи частей на хранилища.After this, as well as after it was established in test 803 that Q = 0, the final parts
Figure 00000041
transferred to the distribution module for auxiliary storages 610, where the procedure 809 of writing parts to storages is performed.

Отметим, что применение модуля усиленной защиты 609 особенно представляется полезным в случае, когда в наборе алгоритмов защиты 608.1 ни один из алгоритмов не обеспечивает должной защиты от статистической атаки. Например, если в наборе 608.1 имеется только алгоритм простого факторного кодирования (который, как показано, например, в [6] и [7], не устойчив к атаке многократного перехвата), то используя модуль усиленной защиты, где для каждого кодового слова генерируется свой набор перестановок битов, то можно усилить защиту конфиденциальности данных от статистических атак. При этом использование схемы разделения секрета не позволяет при несанкционированном доступе к ttap частям (хранилищам) восстановить число, по которому генерируется набор перестановок. Такая конфигурация СНЗХД фактически является одной версией реализации СЗДиКХД. Злоумышленнику, в случае использования модуля усиленнойNote that the use of enhanced protection module 609 is especially useful when, in the set of protection algorithms 608.1, none of the algorithms provides adequate protection against a statistical attack. For example, if the set 608.1 contains only a simple factor coding algorithm (which, as shown, for example, in [6] and [7], is not resistant to multiple interception attacks), then using the enhanced protection module, where for each codeword its own a set of permutations of bits, you can strengthen the protection of data privacy from statistical attacks. At the same time, the use of a secret sharing scheme does not allow for unauthorized access to t tap parts (repositories) to restore the number by which a set of permutations is generated. This configuration of SZKhD is actually one version of the implementation of SZDiKHD. To an attacker, in the case of using the enhanced module

защиты, для проведения статистической атаки необходимо будет накапливать (перехватывать) существенно больший объем, что усложняет статистическую атаку.protection, for carrying out a statistical attack it will be necessary to accumulate (intercept) a significantly larger volume, which complicates the statistical attack.

Не ограничивая возможных вариантов алгоритмов Р генерации по числу r набора перестановок бит, здесь приводится следующий простой в реализации алгоритм P. Пусть r=(r1, …, r8) - битовая запись числа r. Тогда в байте b=(b1, …, b8) биты bi и bi+1 меняются местами, если ri не равен ri+1; в противном случае биты bi и bi+1 остаются на месте, i∈{1; 3; 5; 8}. Отметим, что этот алгоритм переставляет биты только внутри каждого байта, но не переставляет биты между байтами в рамках одной части Ci, i=1, …, tSStor. Для специалиста, компетентного в области программирования, разработка других алгоритмов перестановки бит, в том числе переставляющих биты между байтами, не должна вызвать затруднения.Without limiting the possible variants of the P generation algorithms by the number r of a set of permutations of bits, the following simple algorithm P is presented here. Let r = (r 1 , ..., r 8 ) be a bit notation of the number r. Then in byte b = (b 1 , ..., b 8 ) bits b i and b i + 1 are interchanged if r i is not equal to r i + 1 ; otherwise, bits b i and b i + 1 remain in place, i∈ {1; 3; 5; 8}. Note that this algorithm permutes bits only within each byte, but does not rearrange bits between bytes within the same part C i , i = 1, ..., t SStor . For a specialist competent in the field of programming, the development of other algorithms for swapping bits, including swapping bits between bytes, should not cause difficulties.

Декодирование при чтении данных из защищаемого файла выполняется по следующему алгоритму (см. Фиг. 10). При запросе на считывание информационного блока из защищенного файла модуль распределения данных по хранилищам 610 выполняет процедуру считывания 901, в результате выполнения которой с t′(≥tSStor-terr) хранилищ считываются части кодового слова. Без потери общности полагаем, что считываются первые t′ частей: C1, …, Ct′. (Хотя, по возможности, для ускорения операции снятия защиты считывание должно выполняться со всех tSStor хранилищ.) Размеры частей и их порядковые номера при этом задаются в разделе 605.5 конфигурации 605. На основе значения Q из раздела 605.3 конфигурации 605 выполняется проверка 902 относительно использования модуля усиленной защиты 609. Если усиленная защита используется (Q>0), то от частей C1, …, Ct′ отделяются справа приписанные части

Figure 00000052
(этап 903 на, блок-схеме фиг. 9), по которым в модуле разделения секрета 609.3 восстанавливается число r (этап 904 на блок-схеме). По полученному числу r в модуле гаммирования 609.2 снимается гамма с частей кодовых слов (стадия 905 на блок-схеме) и применяются обратные перестановки бит в первых байтах частей Ci, i=1, …, t′ (этапы 906 и 907 на блок-схеме). Далее на этапеDecoding when reading data from a protected file is performed according to the following algorithm (see Fig. 10). When a request is made to read an information block from a protected file, the data distribution module for storages 610 performs a read procedure 901, as a result of which parts of the codeword are read from t ′ (≥t SStor -t err ) storages. Without loss of generality, we assume that the first t ′ parts are read: C 1 , ..., C t ′. (Although, if possible, reading should be performed from all t SStor storages to speed up the unprotecting operation.) The sizes of the parts and their serial numbers are set in section 605.5 of configuration 605. Based on the Q value from section 605.3 of configuration 605, a check 902 is performed regarding the use enhanced protection module 609. If enhanced protection is used (Q> 0), then the assigned parts are separated from the parts C 1 , ..., C t
Figure 00000052
(step 903 on, the block diagram of FIG. 9), by which the number r is restored in the secret sharing module 609.3 (step 904 on the block diagram). Using the obtained number r in gamma module 609.2, the gamma is removed from the parts of the code words (step 905 in the block diagram) and the reverse permutations of bits in the first bytes of the parts C i , i = 1, ..., t ′ are applied (steps 906 and 907 to the block scheme). Further on stage

908 в блоке 608.3 выполняется сбор кодового слова из полученных частей

Figure 00000053
(кодовое слово может быть при этом восстановлено не полностью из-за отсутствия части хранилищ) и на основе алгоритма защиты в блоке 608.2 на этапе 909 восстанавливается информационный блок S (если стерто не более ν символов).908, in block 608.3, codeword is collected from the received parts
Figure 00000053
(the code word may not be completely restored due to the lack of some storage) and, based on the protection algorithm, in block 608.2, at step 909, the information block S is restored (if no more than ν characters are deleted).

Запись и чтение данных могут выполняться не только по одному информационному блоку, а также последовательностями информационных блоков. В этом случае при записи операция защиты данных 801 выполняется итеративно для всех информационных слов из последовательности, формируя набор кодовых слов. Для каждого кодового слова из сформированной последовательности кодовых слов итеративно выполняются операции с 802 по 808. Результатом этого являются tSStor наборов частей кодовых слов. Каждый из наборов записывается на соответствующее вспомогательное хранилище в ходе выполнения этапа 809. При чтении набора информационных слов сначала со вспомогательных хранилищ считываются наборы частей кодовых слов (процедура 901), далее, путем итеративного применения операций с 902 по 908 формируется набор кодовых слов, а затем для каждого кодового слова из этого набора итеративно применяется блок снятия защиты 909 для формирования набора информационных слов.Writing and reading data can be performed not only on one information block, but also on sequences of information blocks. In this case, when writing, the data protection operation 801 is performed iteratively for all information words from the sequence, forming a set of code words. For each codeword from the generated codeword sequence, operations 802 through 808 are iteratively performed. The result of this is t SStor sets of codeword parts. Each of the sets is written to the corresponding auxiliary storage during step 809. When reading a set of information words, first, sets of parts of code words are read from auxiliary stores (procedure 901), then, by iteratively applying operations from 902 to 908, a set of code words is generated, and then for each codeword from this set, the deprotection unit 909 is iteratively applied to form a set of information words.

Операции чтения/записи данных в СНЗХД выполняются блоками. Поэтому запросы чтения или записи, поступающие от инициатора запроса и адресованные защищенному хранилищу, должны быть подвергнуты процедуре выравнивания данных на границу блока (см. Фиг. 11). На защищенном хранилище, адресуемом точкой монтирования 1106 базового хранилища, работа с защищаемым файлом, представленным в рамках защищенного хранилища базовым файлом 1100, организована так, что, с точки зрения инициатора запросов ввода/вывода данных (которым, не ограничивая других вариантов, может быть, например, программа пользовательского уровня), работа с таким файлом ни чем не отличается от работы с файлом с использованием прикладного программного интерфейса операционной системы. Хотя при этом фактически в базовом файле 1100, размещенном вRead / write operations in the data storage system are performed in blocks. Therefore, read or write requests received from the initiator of the request and addressed to the secure storage should be subjected to the procedure of aligning data to the block boundary (see Fig. 11). On the protected storage, addressed by the mount point 1106 of the base storage, the work with the protected file represented within the protected storage by the base file 1100 is organized in such a way that, from the point of view of the initiator of data input / output requests (which, without limiting other options, may be for example, a user-level program), working with such a file is no different from working with a file using the application program interface of the operating system. Although in this case, in fact, in the base file 1100, located in

базовом хранилище 1106, данные в исходном виде могут и не храниться. Базовый файл 1100 фактически содержит метаданные и, возможно, преобразованные данные, если базовое хранилище может выступать в роли вспомогательного хранилища. Далее рассматривается случай, когда базовый файл содержит только метаданные. Работа по преобразованию данных, считанных из вспомогательных файлов или записываемых во вспомогательные файлы, выполняется незаметно для пользователя. Если записываемый блок данных 1104 не выровнен на границу информационного блока, то перед записью из защищенного файла считываются информационные блоки 1102 и 1103. Считывание информационных блоков 1102 и 1103 реализуется путем считывания соответствующих частей кодовых слов: для получения информационного блока 1102 со вспомогательных хранилищ, адресуемых точками монтирования 1108.1, … ,1108.tSStor, из соответствующих вспомогательных файлов 1107.1, …, 1107.tSStor соответственно считываются части 1109.1, …, 1109.tSStor кодового блока, соответствующего информационному блоку 1102, а затем собранное кодовое слово преобразуется (декодируется) в информационное слово; для получения информационного слова 1103 со вспомогательных хранилищ, адресуемых точками монтирования 1108.1, …, 1108.tSStor из соответствующих вспомогательных файлов 1107.1, …, 1107.tSStor соответственно считываются части 1110.1, …, 1110.tSStor кодового блока, соответствующего информационному слову 1103, а затем собранное кодовое слово преобразуется в информационное слово. К блоку 1104 в начале приписывается часть 1105 из блока 1102, а в конце блока 1104 дописывается часть 1101 из блока 1103. Блок данных, состоящий из последовательно сцепленных блоков 1105, 1104 и 1101 далее подвергается преобразованию (возможно, с применением усиленной защиты) и распределению частей кодовых слов по соответствующим вспомогательным файлам. При считывании с защищенного хранилища с точкой монтирования 1106 блока данных 1104, невыровненного на границу информационного слова, считываются блоки 1102, 1103, а также блоки, размещенные между ними. Считывание информационных блоков выполняется по описанной вышеbasic storage 1106, the data in its original form may not be stored. The base file 1100 actually contains metadata and possibly transformed data, if the base store can act as a secondary store. The following is a case where the base file contains only metadata. The work of converting data read from auxiliary files or written to auxiliary files is performed invisibly to the user. If the recordable data block 1104 is not aligned with the border of the information block, then information blocks 1102 and 1103 are read from the protected file before reading. The information blocks 1102 and 1103 are read by reading the corresponding parts of the code words: to obtain the information block 1102 from auxiliary stores addressed by points mount 1108.1, ..., 1108.t SStor, from the corresponding auxiliary file 1107.1, ..., 1107.t SStor respectively read portion 1109.1, ..., 1109.t SStor code block corresponding to the information b CCCH 1102 and then assembled codeword is converted (decoded) into the information word; to obtain the information word 1103 from auxiliary stores addressed by mount points 1108.1, ..., 1108.t SStor from the corresponding auxiliary files 1107.1, ..., 1107.t SStor, respectively, parts 1110.1, ..., 1110.t SStor of the code block corresponding to information word 1103 are read and then the collected codeword is converted into an information word. To block 1104, at the beginning, part 1105 from block 1102 is assigned, and at the end of block 1104, part 1101 from block 1103 is added. A data block consisting of series-linked blocks 1105, 1104, and 1101 is further converted (possibly using enhanced protection) and distributed parts of code words for the corresponding auxiliary files. When reading from a secure storage with a mount point 1106 of a data block 1104 that is not aligned with the boundary of an information word, blocks 1102, 1103, as well as blocks placed between them are read. Reading information blocks is performed as described above

схеме считывания блока 1102 или 1103. Инициатору запроса на чтение данных возвращается только требуемый в запросе участок данных 1104; блоки 1105 и 1101 не возвращаются.the reading scheme of block 1102 or 1103. Only the data section 1104 required in the request is returned to the requestor for reading data; blocks 1105 and 1101 are not returned.

Рассмотрим пример организации защищенных хранилищ для детального раскрытия сути изобретения. Пример рассмотрим для случая, когда базовое хранилище также может содержать закодированные данные. Программно реализованная СНЗХД в виде модулей 600 и 601 полностью копируется в долговременную память компьютера 400. После запуска клиентский агент 600 перехватывает запросы ввода/вывода, адресованные защищенным хранилищам и передает агенту распределенной защиты 601. Если на компьютере 400 в отношении хранящихся видеофильмов, например, в каталоге С:\films необходимо обеспечить резервное копирование, то для этого можно организовать защищенное от утраты хранилище 1200 (см. Фиг. 12), где в качестве базового хранилища используется каталог С:\films на встроенном жестком диске 404 компьютера 400, а в качестве резервного хранилища используется, например, каталог \\server\films_copy на файловом сервере server 415. В качестве алгоритма защиты в этом случае выступает алгоритм зеркалирования данных (код двукратного повторения) и усиленная защита для такого хранилища не используется. Если также необходимо обеспечить конфиденциальность аутентификационных данных (например, паролей доступа к сервисам Интернет-банкинга, личной почте и т.п.), хранящихся на компьютере, то эти данные можно зашифровать и хранить на любом из устройств хранения, а пароль/ключ шифрования надежно хранить, например, в аппаратном криптографически защищенном токене. Для этих целей может быть организовано защищенное хранилище 1202 на основе выбранного на носителе 406 каталога, например, С:\auth_data. В качестве алгоритма защиты в этом случае может быть, например, один из классических алгоритмов, типа ГОСТ 21147-89, AES, 3DES, RSA, при этом блок усиленной защиты 609 использовать не имеет смысла, так как хранилище всего одно. Если пользователь не имеет возможности применять шифратор по каким-либо причинам (например,Consider the example of organizing secure repositories for a detailed disclosure of the invention. We will consider an example for the case when the basic storage may also contain encoded data. The software-implemented SNCHD in the form of modules 600 and 601 is completely copied to the long-term memory of the computer 400. After starting, the client agent 600 intercepts the I / O requests addressed to the secure storages and transfers it to the distributed protection agent 601. If the computer 400 has stored video films, for example, in If you need to back up the C: \ films directory, then you can organize a loss-free storage 1200 (see Fig. 12), where the C: \ films directory on the built-in storage is used ohm hard drive 404 of computer 400, and as a backup storage, for example, the \\ server \ films_copy directory on the server 415 file server is used. The protection algorithm in this case is the data mirroring algorithm (double repetition code) and enhanced protection for such storage not used. If it is also necessary to ensure the confidentiality of authentication data (for example, access passwords to Internet banking services, personal mail, etc.) stored on a computer, then this data can be encrypted and stored on any storage device, and the password / encryption key is reliable store, for example, in a hardware cryptographically secure token. For these purposes, a secure storage 1202 can be organized based on the directory selected on the medium 406, for example, C: \ auth_data. In this case, for example, one of the classical algorithms, such as GOST 21147-89, AES, 3DES, RSA, can be used as a security algorithm, while the enhanced protection unit 609 does not make sense, since there is only one storage. If the user is not able to use the encryptor for any reason (for example,

нет аппаратно защищенного токена и/или неудобно запоминать сложный ключ/пароль), то он (пользователь) может, например, на базе смартфона 412 (представленного в операционной системе Windows, например, буквой диска D), Flash-носителя 407 (представленного в операционной системе Windows, например, буквой диска Е) и встроенного жесткого диска 404 с применением кодового зашумления [2] или СЗДиКХД организовать распределенное защищенное от несанкционированного ознакомления хранилище 1201, в котором закодированные данные разбиты на части, распределенные по вспомогательным хранилищам. (В частности, если для защиты используется классическое кодовое зашумление, то для защиты от статистических атак имеет смысл использовать блок усиленной защиты 609.) В этом случае, например, каталог С:\auth_data_dist полагается базовым хранилищем, а на смартфоне 412 и Flash-носителе 407 выбираются вспомогательные хранилища соответственно, например, D:\auth_data и Е:\auth_data. Так как пользователь заинтересован в осторожном обращении со своими устройствами (Flash-носителем 407 и смартфоном 412), то их потеря или их бесконтрольное оставление маловероятны. А несанкционированный доступ к частичным данным, например, хранящимся на встроенном жестком диске 404 компьютера 400, либо на смартфоне 412, либо на Flash-носителе 407, при подходящем выборе параметров кодового зашумления или СЗДиКХД не даст возможности получить полезную информацию о закодированных данных. По тем же причинам потеря одного из носителей не приводит к нарушению конфиденциальности данных. Одновременная потеря двух носителей (Flash-носителя 407 и смартфона 412) представляется крайне маловероятной, поэтому такое хранение обеспечивает защиту конфиденциальности данных. Отличительной особенностью использования описанного способа обеспечения конфиденциальности на основе кодового зашумления данных (или на основе СЗДиКХД) с последующим распределением данных по хранилищам на разных носителях данных является отсутствие необходимости в применении криптографических ключей и паролей, что не создает дополнительных нагрузок на пользователя,if there is no hardware protected token and / or it is inconvenient to remember a complex key / password), then it (the user) can, for example, be based on a 412 smartphone (represented in the Windows operating system, for example, drive letter D), Flash media 407 (represented in the operating room) Windows, for example, the drive letter E) and the built-in hard drive 404 using code noise [2] or SZDiKHD to organize distributed tamper-proof storage 1201, in which the encoded data is divided into parts distributed by auxiliary tion storage. (In particular, if classical code-based noise is used for protection, then it is reasonable to use the enhanced protection block 609 to protect against statistical attacks.) In this case, for example, the C: \ auth_data_dist directory is assumed to be the base storage, and on the smartphone 412 and Flash media 407 auxiliary stores are selected, for example, D: \ auth_data and E: \ auth_data. Since the user is interested in the careful handling of their devices (Flash-media 407 and smartphone 412), their loss or their uncontrolled abandonment is unlikely. And unauthorized access to partial data, for example, stored on the built-in hard drive 404 of computer 400, either on a smartphone 412, or on a flash media 407, with a suitable choice of code noise or SZDiKHD storage options will not allow you to get useful information about the encoded data. For the same reasons, the loss of one of the media does not violate data privacy. The simultaneous loss of two media (Flash-media 407 and smartphone 412) seems extremely unlikely, so this storage protects data privacy. A distinctive feature of using the described method for ensuring confidentiality based on code data noise (or based on SZDiKHD) with subsequent distribution of data across storages on different data carriers is the absence of the need for cryptographic keys and passwords, which does not create additional burdens on the user,

часто возникающих при использовании паролей. Конфиденциальные данные могут быть раскодированы, когда будет подключено минимально необходимое количество хранилищ, среди которых распределены закодированные данные. Отметим, что параметры метода кодового зашумления (а также СЗДиКХД) могут быть выбраны так, что кража/потеря некоторых носителей не нарушат конфиденциальности данных в целом, но при этом легальному пользователю предоставляется возможность по оставшимся данным восстановить закодированные данные.often arising when using passwords. Confidential data can be decoded when the minimum required number of storages is connected, among which the encoded data is distributed. Note that the parameters of the code noise method (as well as SZDiKHD) can be selected so that the theft / loss of some media does not violate the confidentiality of the data in general, but the legal user is given the opportunity to recover the encoded data from the remaining data.

Таким образом, для рассмотренной в примере конфигурации, не ограничивая вариантов кодеков, для организации защищенного хранилища 1200, может быть выбран кодек двукратного повторения с длиной кодируемого блока 1 байт. Выходом такого кодека будет кодовое слово длины 2 байта, каждый из которых повторяет входной байт данных; первый байт, например, записывается в файл на базовом хранилище С:\films, а второй - в файл на вспомогательное хранилище \\server\films_сору. Хранилище 1202 (каталог С:\auth_data) полагается базовым и в его файлах, кроме полезных для пользователя данных, хранятся также и метаданные о защищаемых файлах; в качестве алгоритма защиты может быть выбран, например, алгоритм ГОСТ 21147-89. Для организации защищенного хранилища 1201, не ограничивая вариантов кодеков, может быть выбран кодек кодового зашумления, построенный на основе пары кодов (

Figure 00000054
,С), где
Figure 00000055
- код Рида-Соломона
Figure 00000056
, С - код Рида-Соломона
Figure 00000057
. Выходом кодека будет кодовое слово длины 240 байт, поставленное в соответствие информационному блоку длины 80 байт. Первые 80 байт кодового слова, например, записываются на вспомогательное хранилище С:\auth_data_dist, вторые 80 байт - на вспомогательное хранилище Е:\auth_data, а оставшиеся 80 байт - на вспомогательное хранилище D:\auth_data. Так как
Figure 00000058
, то утрата (потеря/кража) любого одного вспомогательного хранилища (носителя данных) дает возможность владельцу оставшихся двух вспомогательных хранилищ восстановить закодированные данные. При этом по данным любого одного хранилища приThus, for the configuration considered in the example, without limiting the codec options, for organizing the secure storage 1200, a double-repeat codec with the length of the encoded block of 1 byte can be selected. The output of such a codec will be a codeword of length 2 bytes, each of which repeats the input data byte; the first byte, for example, is written to a file on the base storage C: \ films, and the second byte is written to the file on the auxiliary storage \\ server \ films_soru. Storage 1202 (directory C: \ auth_data) is assumed to be basic and in its files, in addition to data useful to the user, metadata about protected files is also stored; as a protection algorithm, for example, the algorithm GOST 21147-89 can be selected. To organize a secure storage 1201, without limiting the codec options, a code noise codec can be selected based on a pair of codes (
Figure 00000054
, C), where
Figure 00000055
- Reed-Solomon code
Figure 00000056
, С - Reed-Solomon code
Figure 00000057
. The output of the codec will be a code word of length 240 bytes, which is mapped to an information block of length 80 bytes. The first 80 bytes of the codeword, for example, are written to the auxiliary storage C: \ auth_data_dist, the second 80 bytes to the auxiliary storage E: \ auth_data, and the remaining 80 bytes to the auxiliary storage D: \ auth_data. As
Figure 00000058
, the loss (loss / theft) of any one auxiliary storage (data carrier) enables the owner of the remaining two auxiliary storage to recover the encoded data. Moreover, according to the data of any one storage at

указанном разбиении нельзя восстановить закодированные данные [8]. Таким образом, утрата одного из вспомогательных хранилищ не нарушает конфиденциальности данных и при этом обеспечена защита от утраты одного хранилища. Если для организации защищенного хранилища 1201 задействуется блок усиленной защиты, то в этом случае подходит, например, (3,2)-схема разделения секрета Шамира. Указанное в примере разбиение не является единственно возможным и не ограничивает другие варианты разбиения. Разбиение может быть как на равные части, так и не на равные. Размер части кодового слова для вспомогательного хранилища, например, может быть определен, исходя из вероятности утраты (потери/кражи) этого вспомогательного хранилища или вспомогательного хранилища этого типа. В возможности такого выбора проявляется гибкость в настройке степени защиты данных с использованием системы настраиваемой защиты хранимых данных.the specified partition cannot restore the encoded data [8]. Thus, the loss of one of the auxiliary repositories does not violate the confidentiality of the data, and at the same time, protection against the loss of one repository is provided. If an enhanced protection unit is used to organize the secure storage 1201, then, for example, the (3.2) -sharing scheme for sharing Shamir's secret is suitable. The tiling indicated in the example is not the only possible one and does not limit other tiling options. The division can be either equal parts, or not equal. The size of a part of the code word for auxiliary storage, for example, can be determined based on the probability of loss (loss / theft) of this auxiliary storage or auxiliary storage of this type. The possibility of such a choice shows flexibility in setting the degree of data protection using a system of customizable protection of stored data.

Рассмотрим еще один пример использования СНЗХД. Пусть у пользователя имеются часто создаваемые/удаляемые данные, которые не имеет смысла шифровать (например, из-за крайне малой вероятности несанкционированного доступа к компьютеру, или из-за нежелания пользователя запоминать пароли/ключи), но которые не должны быть восстановлены после их удаления штатными средствами операционной системы. В этом случае с использованием СНЗХД можно организовать защищенное хранилище с гарантированным удалением незашифрованных данных за одну перезапись. Такое защищенное хранилище можно организовать на базе одного вспомогательного хранилища (оно же и базовое); например, на носителе 406 выделить для таких данных каталог С:\sensative_data. Так как известно, что восстановление перезаписанных данных происходит с ошибками [12], то в качестве алгоритма защиты предлагается использовать кодек кодового зашумления с кодом

Figure 00000059
размерности и длины n. Тогда восстановление данных по испорченным кодовым словам может быть крайне затруднено при подборе параметров кодового зашумления [2]. Согласно [12], вероятность правильного восстановления стертого бита примерно равна 0,92, поэтомуConsider another example of the use of NWSS. Let the user have frequently created / deleted data that does not make sense to encrypt (for example, because of the extremely low probability of unauthorized access to the computer, or because of the reluctance of the user to remember passwords / keys), but which should not be restored after they are deleted regular means of the operating system. In this case, using SNZHD, it is possible to organize a secure storage with guaranteed deletion of unencrypted data in one rewrite. Such secure storage can be organized on the basis of one auxiliary storage (it is also the base); for example, on media 406, allocate the C: \ sensative_data directory for such data. Since it is known that the recovery of overwritten data occurs with errors [12], it is proposed to use a code noise codec with a code as a protection algorithm
Figure 00000059
dimension and length n. Then data recovery from corrupted code words can be extremely difficult when selecting code noise parameters [2]. According to [12], the probability of correct recovery of the erased bit is approximately 0.92, therefore

для обеспечения надежного стирания данных за одну итерацию можно перед записью данных на носитель кодировать их с помощью факторного кода

Figure 00000060
с базовым кодом С Рида-Маллера RM(2,5).to ensure reliable erasure of data in one iteration, it is possible to encode them using a factor code before writing data to a medium
Figure 00000060
with Reed-Muller base code C RM (2.5).

Отметим, что СНЗХД может быть распределена между двумя компьютерами 400 и 1203 (см. Фиг. 12), когда на компьютер 400 устанавливается только клиентский агент 600, а на компьютер 1203 устанавливается агент распределенной защиты 601. В качестве компьютера 1203 может выступать любое устройство, поддерживающее интерфейсы подключения съемных устройств хранения данных, сетевые интерфейсы, а также поддерживающее работу с локальными и сетевыми файловыми системами. Такой компьютер 1203 может не иметь устройств отображения данных (например, отсутствует дисплей).Note that SZHD can be distributed between two computers 400 and 1203 (see Fig. 12), when only the client agent 600 is installed on the computer 400, and the distributed protection agent 601 is installed on the computer 1203. Any device can act as the computer 1203, supporting interfaces for connecting removable storage devices, network interfaces, as well as supporting working with local and network file systems. Such a computer 1203 may not have data display devices (e.g., no display).

Также отметим, что в СНЗХД вспомогательное хранилище может быть в свою очередь защищенным хранилищем, построенным на основе СНЗХД. Таким образом, может быть организован каскад (иерархия) произвольного количества защищенных хранилищ.We also note that in SZHKD auxiliary storage can in turn be a protected storage built on the basis of SZKhD. Thus, a cascade (hierarchy) of an arbitrary number of protected repositories can be organized.

5 Осуществление изобретения5 The implementation of the invention

На Фиг. 13 показана типичная схема компьютера 400. На базе таких компьютеров могут быть осуществлены СЗДиКХД и СНЗХД. Компьютер представляет собой систему функциональных блоков - процессор 400.1, оперативную память 400.3, статическую память 400.7, сетевые интерфейсы 400.8, устройство отображения данных 400.9, устройства ввода данных 400.10 и интерфейсы подключения носителей данных 400.11 -, взаимодействующих по алгоритмам, известным специалисту в этой области, посредством системной шины 400.12. Процессор 400.1 выполняет инструкции 400.2, загруженные из оперативной памяти 400.3. В оперативную память инструкции загружаются или из статической памяти 400.7 (например, во время загрузки операционной системы), или с носителей данных (не показаны), подключенных через интерфейсы в наборе 400.11. В оперативную память загружается (частично или полностью) операционная системаIn FIG. 13 shows a typical diagram of a computer 400. Based on such computers, SZDiKHD and SNZHD can be implemented. A computer is a system of functional blocks — a processor 400.1, random access memory 400.3, static memory 400.7, network interfaces 400.8, a data display device 400.9, data input devices 400.10, and media connection interfaces 400.11 - interacting using algorithms known to a person skilled in the art by system bus 400.12. The processor 400.1 executes instructions 400.2 loaded from random access memory 400.3. Instructions are loaded into RAM either from static memory 400.7 (for example, during loading of the operating system) or from storage media (not shown) connected via interfaces in set 400.11. The operating system is loaded (partially or fully) into the RAM

400.4 (например, Windows, Linux, QNX), и другие программные модули 400.5 (драйверы файловых систем, драйверы устройств, приложения пользовательского уровня и т.п.). Также в оперативной памяти 400.3 хранятся данные 400.6, используемые программными модулями. В наборе сетевых интерфейсов 400.8 могут быть, например, такие интерфейсы как RJ-45, Wi-Fi-модуль, СОМ-порт, USB и другие интерфейсы, посредством которых возможен прием/передача данных между компьютерами.400.4 (for example, Windows, Linux, QNX), and other software modules 400.5 (file system drivers, device drivers, user-level applications, etc.). Also, in memory 400.3, data 400.6 used by program modules is stored. The set of network interfaces 400.8 can include, for example, interfaces such as RJ-45, Wi-Fi module, COM port, USB and other interfaces through which data can be transmitted / received between computers.

5.1 Осуществление СЗДиКХД5.1 Implementation of CPA & QCD

В показанной на Фиг. 1 схеме СЗДиКХД компоненты 100, 102-107, 112 блока 111 могут быть реализованы как аппаратно (например, с помощью программируемой аппаратной логики), так и программно в виде программных модулей, выполняемых на компьютере 400. Данные конфигурации 108-110, которые в предпочтительной реализации представляют собой структурированный файл с параметрами (например, в XML-формате), загружаются в блок 111 либо через аппаратный интерфейс (при аппаратной реализации), посредством которого блок 111 подключен к источнику запросов 101, либо через прикладной программный интерфейс, предоставляемый блоком 111 (при программной реализации). При аппаратной реализации блок 111 подключается к источнику запросов 101, например, через USB-интерфейс. Отметим, что интерфейсом подключения может быть любой другой стандартный интерфейс: COM, LPT, RJ-45, SCSI, PCI и т.п. В качестве источника запросов 101 в одном примерном варианте реализации может быть компьютер 400. В этом случае устройство 111, с точки зрения компьютера 400, представляет собой носитель данных, например, Flash-носитель. Работа с устройством 111 выполняется как с обычным Flash-носителем. За реализацию логики представления блока 111 как носителя данных отвечает блок управления 112. К блоку 111 (при его аппаратной реализации) носители данных подключаются также по стандартным интерфейсам, например, по USB-интерфейсам. За распределение данных по этим носителям отвечает блок 107. Этот же блок 107 взаимодействует с блоком 112 и сигнализируетIn the embodiment shown in FIG. 1 of the SZDiKHD scheme, components 100, 102-107, 112 of block 111 can be implemented both hardware (for example, using programmable hardware logic) and programmatically in the form of software modules running on computer 400. Configuration data 108-110, which is preferred implementations are a structured file with parameters (for example, in XML format), are loaded into block 111 either through a hardware interface (with a hardware implementation), through which block 111 is connected to a query source 101, or through an application software inter face provided by block 111 (in software implementation). In a hardware implementation, block 111 is connected to a query source 101, for example, via a USB interface. Note that the connection interface can be any other standard interface: COM, LPT, RJ-45, SCSI, PCI, etc. As a source of requests 101, in one exemplary embodiment, there may be a computer 400. In this case, the device 111, from the point of view of the computer 400, is a storage medium, for example, a Flash medium. The operation of the device 111 is performed as with a conventional Flash-drive. The control unit 112 is responsible for the implementation of the logic of representing block 111 as a storage medium. To the block 111 (with its hardware implementation), storage media are also connected via standard interfaces, for example, via USB interfaces. Block 107 is responsible for the distribution of data on these media. The same block 107 interacts with block 112 and signals

о подключенных носителях данных. Например, если подключены все необходимые носители данных, то блок 111 представляется инициатору запросов (в примере - компьютеру 400), как один носитель данных. Если же подключены не все носители данных, то блок 111 не должен определяться как носитель данных.About connected storage media. For example, if all the necessary storage media are connected, then block 111 is presented to the requester (in the example, computer 400) as one storage medium. If not all storage media are connected, then block 111 should not be defined as a storage medium.

При программной реализации в среде Windows версии не ниже 4.0 блок 111 может быть реализован в виде, например, фильтрующего драйвера файловой системы, перехватывающего запросы от менеджера ввода-вывода операционной системы. Менеджер ввода-вывода в этом случае представляется как источник запросов 101. Модуль 107 в этом случае также может реализовываться как драйвер, использующий интерфейсы файловых систем, интерфейсы сетевой подсистемы и интерфейсы других систем, позволяющих организовать хранение данных по типу файловых систем. Кодеки 100 при этом могут быть реализованы как программные сервисы уровня ядра или пользовательского уровня с интерфейсом доступа из режима ядра. Для специалиста в данной области не должна представлять труда программная реализация блока 111 и на прикладном уровне (не на уровне ядра), а также в другой операционной среде.With a software implementation in Windows environment version 4.0 or later, block 111 can be implemented as, for example, a filtering file system driver that intercepts requests from an operating system I / O manager. In this case, the I / O manager appears as the source of requests 101. Module 107 in this case can also be implemented as a driver using file system interfaces, network subsystem interfaces, and interfaces of other systems that make it possible to organize data storage by the type of file systems. Codecs 100 can be implemented as kernel-level or user-level software services with an access interface from kernel mode. For a specialist in this field, the software implementation of block 111 should not be difficult at the application level (not at the kernel level), as well as in another operating environment.

5.2 Осуществление СНЗХД5.2 Implementation of NWSS

Модули 600 и 601 представляют собой программные модули, исполняемые на компьютере типа 400. Ранее отмечалось, что эти модули могут быть размещены на разных компьютерах. Отметим, что для модуля 601 компьютер 400 может не содержать дисплей 400.9 и/или устройств ввода данных 400.10. Каждый из модулей 603, 604 и 613 может реализовываться в виде одного из программных модулей 400.5, как на прикладном уровне, так и на уровне ядра операционной системы. Для прозрачной работы агента 600 предпочтительным вариантом реализации является реализация модуля 603 в виде драйвера, перехватывающего файловые операции создания, записи, чтения, закрытия, удаления, переименования файла, например, в виде фильтрующего драйвера операционной системы Windows версииModules 600 and 601 are software modules executable on a type 400 computer. It was previously noted that these modules can be located on different computers. Note that for module 601, computer 400 may not include a display 400.9 and / or data input devices 400.10. Each of the modules 603, 604, and 613 can be implemented as one of the software modules 400.5, both at the application level and at the kernel level of the operating system. For transparent operation of Agent 600, the preferred implementation option is to implement module 603 as a driver that intercepts file operations of creating, writing, reading, closing, deleting, renaming a file, for example, as a filtering driver for the Windows operating system

не ниже 4.0. Другим вариантом реализации модуля 603 может быть программная компонента прикладного уровня, использующая прикладной программный интерфейс операционной системы по работе с системами хранения данных и реализующая пользовательский графический и/или командный интерфейс работы с файлами на защищенных хранилищах. Модуль доступа к локальным хранилищам 613 предпочтительно реализуется как сетевой модуль, принимающий и передающий данные по протоколу, например, TCP/IP, и взаимодействующий посредством программного интерфейса (прикладного уровня или уровня ядра) с драйверами локальных файловых систем и другими модулями, которые позволяют организовать хранение данных.not lower than 4.0. Another embodiment of module 603 may be an application-level software component that uses the application program interface of the operating system for working with data storage systems and implements a user graphic and / or command interface for working with files on protected storages. The local storage access module 613 is preferably implemented as a network module that receives and transmits data via a protocol, for example, TCP / IP, and interacts via a software interface (application or kernel level) with local file system drivers and other modules that allow organizing storage data.

Набор алгоритмов защиты 608.1 может включать любое количество кодеков, реализующих любые алгоритмы преобразования данных по заранее установленному интерфейсу. Интерфейс кодеков состоит из функций выполнения прямого и обратного преобразования данных, функции загрузки ключа и функций создания кодера и декодера по заданным из конфигурации 605 параметрам.The set of security algorithms 608.1 may include any number of codecs that implement any data conversion algorithms over a predefined interface. The codec interface consists of the functions of performing forward and reverse data conversion, the key loading function, and the functions of creating an encoder and decoder according to the parameters specified in the 605 configuration.

Конфигурация 605 защищенного хранилища SStor содержит следующие обязательные параметры: точку монтирования защищенного хранилища - базовое хранилище; количество tSStor вспомогательных хранилищ; точки монтирования вспомогательных хранилищ; параметры алгоритма преобразования; параметры разбиения кодового слова на части; параметры схемы разделения секрета; параметры алгоритма гаммирования данных.SStor secure storage configuration 605 contains the following required parameters: secure storage mount point - basic storage; number t SStor auxiliary storage; auxiliary storage mount points; transformation algorithm parameters; parameters for splitting the code word into parts; secret sharing scheme parameters; parameters of the data gamma algorithm.

СНЗХД позволяет на базе одного набора носителей информации создавать любое количество защищенных хранилищ с различными алгоритмами защиты. Модуль 600 подключается к инициатору запросов ввода/вывода с помощью используемого в компьютере программного интерфейса ввода/вывода данных. В момент подключения или загрузки модуля 600 в модуле 603 инициализируются список открытых защищенных хранилищ 603.1, а также кэш 603.2 для хранения метаданных об открытых/созданных в недавнее время файлах на базовых хранилищах. Назначение кэша объясняетсяSNZKhD allows to create any number of protected storages with various protection algorithms on the basis of one set of storage media. Module 600 connects to the I / O request initiator using the data input / output software interface used on the computer. At the time of connecting or loading module 600, module 603 initializes the list of open protected storages 603.1, as well as the cache 603.2 for storing metadata about recently opened / recently created files on basic storages. The purpose of the cache is explained

далее.Further.

В набор алгоритмов защиты 608.1 добавляется информация о новом алгоритме защиты в момент получения модулем 608 от соответствующего модуля реализации алгоритма защиты запроса на регистрацию. Если в наборе 608.1 такого модуля нет, то в список добавляется интерфейс нового алгоритма. Запрос на регистрацию интерфейса алгоритма инициируется модулем, реализующим этот интерфейс, после того, как этим модулем будет установлено, что модуль 608 загружен и готов принимать запросы. Поиск алгоритма защиты в модуле 608 в списке 608.1 может осуществляться по любому набору свойств алгоритма, уникально его идентифицирующего, предпочтительно, по имени алгоритма (например, RM_CODEC - название кодека для кода Рида-Маллера), длине информационного блока, длине кодового блока.Information about the new protection algorithm is added to the set of protection algorithms 608.1 at the time the module 608 receives the registration request protection algorithm implementation module from the corresponding module. If there is no such module in the 608.1 set, then the interface of the new algorithm is added to the list. The request to register the algorithm interface is initiated by the module that implements this interface, after this module determines that the module 608 is loaded and ready to receive requests. The search for the security algorithm in module 608 in list 608.1 can be performed by any set of properties of the algorithm that uniquely identifies it, preferably by the name of the algorithm (for example, RM_CODEC is the name of the codec for the Reed-Muller code), the length of the information block, the length of the code block.

В список защищенных хранилищ 603.1 включаются вновь открываемые хранилища, каждое из которых должно иметь уникальный набор свойств для однозначного нахождения хранилища, например, уникальное имя хранилища. Модуль 603, при перехвате запросов ввода/вывода использует список 603.1 для того, чтобы определить, к какому хранилищу адресован запрос. В структуре, описывающей защищенное хранилище, кроме списка, вспомогательных хранилищ, из которых оно состоит, содержится признак, сигнализирующий, в каком режиме находится защищенное хранилище: в режиме "только чтение" или в режиме "чтение/запись". На основе значения этого признака в модуле 603 принимается решение о возможности выполнения операции записи на защищенное хранилище. Операция записи данных может быть запрещена в случае, когда не все вспомогательные хранилища подключены, однако параметры используемого кодека таковы, что по имеющемуся набору вспомогательных хранилищ данные можно однозначно восстановить (считать). Модуль кэша 603.2 предназначен для ускорения обработки запросов на открытие файлов. Так как при открытии файла необходимо считывать метаданные, а операции открытия файла могут выполняться довольно часто, то предпочтительно метаданные некоторое времяThe list of protected vaults 603.1 includes newly opened vaults, each of which must have a unique set of properties for uniquely finding the vault, for example, a unique vault name. Module 603, when intercepting I / O requests, uses list 603.1 to determine which store the request is addressed to. In the structure that describes the protected storage, in addition to the list, auxiliary stores of which it consists, contains a sign that indicates whether the protected storage is in read-only or read / write mode. Based on the value of this feature, a decision is made in module 603 about the possibility of writing to the secure storage. The data recording operation may be prohibited in the case when not all auxiliary stores are connected, however, the parameters of the codec used are such that data can be unambiguously restored (read) from the existing set of auxiliary stores. The cache module 603.2 is designed to speed up the processing of requests for opening files. Since it is necessary to read metadata when opening a file, and file open operations can be performed quite often, it is preferable to have metadata for some time

хранить в кэше 603.2. Кэш 603.2 предпочтительно реализуется в виде хранилища в оперативной памяти 400.3, например, в виде однонаправленного списка, каждый элемент которого кроме ссылки на следующий элемент в списке содержит метаданные о соответствующем файле. Для повышения скорости работы кэшируемые данные могут храниться в виде дерева, повторяющего древовидную структуру размещения файлов на защищенном хранилище, начиная с точки монтирования базового хранилища.store in cache 603.2. Cache 603.2 is preferably implemented as storage in RAM 400.3, for example, in the form of a unidirectional list, each element of which, in addition to a link to the next element in the list, contains metadata about the corresponding file. To increase the speed of work, cached data can be stored in the form of a tree repeating the tree-like structure of placing files on the protected storage, starting from the mount point of the base storage.

Создание или открытие существующего защищенного хранилища инициируется отправкой конфигурации 605 модулю управления 604 СНЗХД, который проводит разбор параметров конфигурации и выполняет ряд проверок перед созданием защищенного хранилища (см. Фиг. 14). Среди основных проверок должны быть проверка 1402 на наличие точки монтирования защищенного хранилища на базовом хранилище. В случае отсутствия такой точки монтирования сигнализируется ошибка создания/открытия защищенного хранилища. В противном случае выполняется поверка 1404 наличия указанного в конфигурации алгоритма защиты в списке зарегистрированных в системе алгоритмов 608.1. Если соответствующий модуль отсутствует, то сообщается об ошибке создания/открытия защищенного хранилища. В противном случае выполняется проверка 1403 о наличии вспомогательных хранилищ, указанных в конфигурации, и интерфейсов доступа к ним. При отсутствии хотя бы одного хранилища пользователю должно быть отправлено сообщение об ошибке открытия хранилища в штатном режиме. При этом, на основе параметров алгоритма защиты из конфигурации выполняется проверка 1410, могут ли данные быть восстановлены без отсутствующих вспомогательных хранилищ. Фактически выполняется проверка, что число отсутствующих хранилищ не больше terr. Если данные могут быть восстановлены, то для защищенного хранилища устанавливается признак "только чтение" (блок 1409) и далее предпочтительно в памяти 400.3 компьютера 400, на котором установлен клиентский агент 600, создается структура, описывающая параметры защищенного хранилища, которая добавляется в список открытых/созданных защищенных хранилищThe creation or opening of an existing secure storage is initiated by sending the configuration 605 to the control module 604 of the SZKhD, which analyzes the configuration parameters and performs a series of checks before creating a secure storage (see Fig. 14). Among the main checks should be a check 1402 for the presence of a mount point for a secure vault on the underlying vault. In the absence of such a mount point, an error of creating / opening a secure storage is signaled. Otherwise, verification is performed 1404 of the presence of the protection algorithm specified in the configuration in the list of algorithms 608.1 registered in the system. If the corresponding module is not available, an error is reported about the creation / opening of the protected storage. Otherwise, a check is performed 1403 about the availability of auxiliary storages specified in the configuration and access interfaces to them. In the absence of at least one repository, the user should be sent a message about the error of opening the repository in normal mode. At the same time, based on the parameters of the protection algorithm from the configuration, a check is performed 1410 on whether the data can be restored without missing auxiliary storage. In fact, it checks that the number of missing repositories is at most t err . If the data can be restored, the read-only flag is set for the secure storage (block 1409) and then preferably in the memory 400.3 of the computer 400 on which the client agent 600 is installed, a structure is created that describes the parameters of the secure storage and is added to the open / created secure vaults

603.1. В таком режиме пользователю предоставляется возможность восстановить все данные, которые ранее были записаны на защищенном хранилище. Если при проверке 1403 выяснится, что все вспомогательные хранилища и интерфейсы к ним имеются, то защищенное хранилище создается/открывается с возможностью чтения и записи данных (блок 1405). После добавления хранилища в список открытых/созданных хранилищ пользователю сообщается об успехе открытия/создания хранилища (блок 1406) и открытие хранилища завершается 1408. Отправка сообщения об ошибке создания и причине ошибки создания выполняется в блоке 1407.603.1. In this mode, the user is given the opportunity to recover all the data that was previously recorded on the protected storage. If, during verification 1403, it turns out that all auxiliary repositories and their interfaces are available, then a secure repository is created / opened with the ability to read and write data (block 1405). After adding the storage to the list of open / created storages, the user is informed about the success of opening / creating the storage (block 1406) and the opening of the storage is completed 1408. A message about the creation error and the reason for the creation error is sent in block 1407.

Закрытие защищенного хранилища начинается с отправки запроса на закрытие 1501 (см. Фиг. 15). Модуль управления 604 СНЗХД определяет в проверке 1502, имеется ли в списке открытых/созданных защищенных хранилищ закрываемое защищенное хранилище. При этом поиск хранилища выполняется по точке монтирования, хотя уникальный набор признаков хранилища, по которому осуществляется поиск, может быть и другим. Перед удалением, в зависимости от реализации, могут также выполняться операции по завершению всех текущих операций с файлами и выполняется проверка 1507, не является ли защищенное хранилище вспомогательным для какого-либо другого открытого/созданного хранилища. Закрытие хранилища предпочтительно выполнять только тогда, когда оно не является вспомогательным для некоторых других открытых хранилищ. Если хранилище найдено и оно не является вспомогательным для других, то соответствующая структура защищенного хранилища удаляется (блок 1503) из списка 603.1, размещенного в оперативной памяти, а пользователю возвращается результат успешного удаления хранилища. Если же закрываемого хранилища нет в списке или оно является вспомогательным для какого-то другого хранилища, то пользователю возвращается на этапе 1504 сообщение об ошибке закрытия хранилища и причина ошибки; алгоритм закрытия защищенного хранилища заканчивается 1506.Closing a secure vault begins by sending a close request 1501 (see FIG. 15). The SNCHD control module 604 determines in check 1502 whether there is a locked secure storage in the list of open / created secure vaults. At the same time, the search for the storage is performed by the mount point, although the unique set of features of the storage used to search can be different. Before deletion, depending on the implementation, operations can also be performed to complete all current file operations and check 1507 whether the protected storage is auxiliary to any other open / created storage. Closing a vault is preferred only when it is not auxiliary to some other open vaults. If the storage is found and it is not auxiliary to others, then the corresponding structure of the protected storage is deleted (block 1503) from the list 603.1 located in the main memory, and the result of the successful removal of the storage is returned to the user. If the repository to be closed is not in the list or it is auxiliary to some other repository, then at step 1504 a message is returned to the user about the repository closing error and the cause of the error; The closed vault closing algorithm ends 1506.

Так как операция открытия/создания в отношении одного файла выполняется часто, то, как выше указывалось, считывание и записываниеSince the open / create operation with respect to a single file is often performed, then, as indicated above, reading and writing

метаданных может приводить к замедлению в работе с файлами на защищенном хранилище. В СНЗХД, а именно в модуле перехвата запросов ввода/вывода 603 для уменьшения операций чтения/записи метаданных предусмотрен блок кэширования 603.2 метаданных об открываемых файлах. Алгоритм его работы показан на Фиг. 16. При операции открытия файла (эта операция описывается далее подробно) модуль перехвата запросов ввода/вывода 603 сначала проверяет, имеются ли для соответствующего файла метаданные в кэше, и только если таких данных в кэше нет, выполняется считывание метаданных из базового файла. Каждому открываемому/создаваемому файлу на защищенном хранилище соответствует запись в кэше, хранящая метаданные (например, истинный размер файла, время последней модификации и т.п.). Кроме метаданных, запись о файле в кэше содержит счетчик ссылок на данный файл. Этот счетчик увеличивается на единицу каждый раз, когда открывается соответствующий файл, и уменьшается при закрытии файла. Время жизни каждой записи в кэше задается (например, в секундах) параметром из конфигурации 605 защищенного хранилища и определяется как интервал времени, в течение которого к файлу не было обращений. Периодически модуль перехвата запросов ввода/вывода 603, предпочтительно в фоновом режиме, проводит поиск в кэше записей с истекшим временем жизни и выполняет их сброс. При программной реализации такая периодическая проверка может быть реализована в виде потока уровня ядра или прикладного уровня. Не ограничивая других вариантов реализации, начало работы 1600 потока инициируется, например, при создании/открытии защищенного хранилища. Поток в цикле с началом 1601 и окончанием 1610 выполняет поиск 1602 в кэше всех записей с истекшим временем жизни. Не ограничивая вариантов реализации, кэш может быть организован в соответствии со структурой размещения файлов в файловой системе, например, в виде дерева. Для каждой такой найденной записи в цикле 1603 выполняется проверка 1604 равенства нулю количества ссылок на запись. Если количество ссылок не равно нулю, то осуществляется переход к следующей записи. В противном случае изmetadata can slow down the operation of files on protected storage. In SZKHD, namely in the module for intercepting I / O requests 603 to reduce read / write operations of metadata, a cache block 603.2 of metadata about opened files is provided. The algorithm of its operation is shown in FIG. 16. During the file open operation (this operation is described below in detail), the I / O request interception module 603 first checks whether metadata is in the cache for the corresponding file, and only if there is no such data in the cache, metadata is read from the base file. Each opened / created file on the secure storage has a cache entry that stores metadata (for example, the true file size, time of the last modification, etc.). In addition to metadata, an entry about a file in the cache contains a counter of links to this file. This counter is incremented by one each time the corresponding file is opened, and decreases when the file is closed. The lifetime of each cache entry is specified (for example, in seconds) by the parameter from the configuration 605 of the secure storage and is defined as the time interval during which the file was not accessed. Periodically, the I / O request intercept module 603, preferably in the background, searches the cache for expired entries and flushes them. In a software implementation, such a periodic check can be implemented as a kernel-level or application-level thread. Without limiting other implementation options, the start of a 1600 stream is initiated, for example, when creating / opening a secure store. A thread in a loop starting at 1601 and ending at 1610 searches 1602 in the cache of all records with an expired lifetime. Without limiting the implementation options, the cache can be organized in accordance with the structure of placing files in the file system, for example, in the form of a tree. For each such record found, in a loop 1603, a check 1604 is performed of the vanishing of the number of references to the record. If the number of links is not equal to zero, then go to the next record. Otherwise from

записи в кэше в базовый файл на защищенном хранилище сбрасываются (записываются) метаданные (фаза 1605) и из кэша удаляется соответствующая запись (фаза 1606). После отработки цикла 1603 выполняется проверка 1607: получен ли сигнал на закрытие защищенного хранилища. Если такой сигнал получен, то выполняется принудительный сброс всех записей из кэша и осуществляется выход из цикла с границами 1601 и 1610; работа потока по сбросу данных из кэша завершается 1611. Если сигнала на закрытие защищенного хранилища не получено, то осуществляется приостановка потока на время, заданное в конфигурации 605 при создании/открытии защищенного хранилища; далее процедура сброса данных повторяется.entries in the cache to the base file on the protected storage are dumped (recorded) metadata (phase 1605) and the corresponding record is deleted from the cache (phase 1606). After running cycle 1603, a check 1607 is performed: whether a signal has been received to close the protected storage. If such a signal is received, then a forced reset of all entries from the cache is performed and the loop is exited with boundaries 1601 and 1610; the work of flushing data from the cache ends 1611. If there is no signal to close the secure storage, the flow is suspended for the time specified in configuration 605 when creating / opening the secure storage; then the data reset procedure is repeated.

Далее, не ограничивая вариантов реализации, рассматриваются алгоритмы создания/открытия и закрытия файлов на защищенных хранилищах, когда в базовом хранилище базовые файлы содержат только метаданные. То есть в базовых файлах не содержатся преобразованные данные или их части.Further, without limiting the implementation options, we consider algorithms for creating / opening and closing files on protected storages, when the basic files contain only metadata in the basic repository. That is, the base files do not contain converted data or parts thereof.

При отработке открытия/создания файла (см. Фиг. 17) модуль перехвата запросов ввода/вывода 603 анализирует запрос 1701 и выполняет проверку 1702: адресован ли запрос какому-либо защищенному хранилищу. Например, в среде Windows версии не ниже 4.0, где модуль 603 реализуется, например, в виде фильтрующего драйвера, запрос 1701 представляется в виде IRP-запроса (Input/output Request Packet). При этом фактически выполняется поиск защищенного хранилища в списке 603.1. Если запрос не адресован ни одному защищенному хранилищу, то запрос отправляется далее без промежуточной обработки (например, следующему драйверу в стэке драйверов). В противном случае на базовом хранилище выполняется попытка 1704 открытия/создания файла. Создание/открытие файла предпочтительно выполняется с использованием штатных функций операционной среды (операционной системы). Если файл в базовом хранилище не создан или не открыт, то открытие/создание файла в защищенном хранилище завершается с ошибкой. Если файл создан/открыт, то проверяетсяWhen processing opening / creating a file (see Fig. 17), the I / O request interception module 603 analyzes the request 1701 and performs a check 1702: whether the request is addressed to any protected storage. For example, in a Windows environment version no lower than 4.0, where module 603 is implemented, for example, as a filter driver, request 1701 is presented as an IRP request (Input / output Request Packet). In this case, the protected storage is actually searched in the list 603.1. If the request is not addressed to any protected storage, the request is sent further without intermediate processing (for example, to the next driver in the driver stack). Otherwise, an attempt is made on the underlying storage 1704 to open / create a file. Creating / opening a file is preferably performed using the standard functions of the operating environment (operating system). If the file in the basic storage is not created or is not open, then opening / creating a file in the protected storage fails. If the file is created / opened, then it is checked

1706 наличие в кэше записи с метаданными об открываемом файле. Если такой записи в кэше нет, то такая запись создается (фаза 1707) и счетчик ссылок на запись устанавливается равным 0. Далее выполняется проверка 1709, где определяется, открывается существующий файл или создается новый. Если открывается существующий файл, то метаданные считываются из базового файла в базовом хранилище и заносятся в созданную ранее запись в кэше. Если при проверке 1709 определено, что создается новый файл, или при проверке 1706 выяснится, что запись в кэше имеется, то выполняется блок 1708 создания и отправки запросов на создание/открытие соответствующих вспомогательных файлов на вспомогательных хранилищах. Блок 1708 выполняется в модуле 601. После того, как в блоке 1710 получен сигнал, что запросы к вспомогательным хранилищам обработаны, выполняется проверка 1713, где определяется статус завершения обработки этих запросов. Если не на всех вспомогательных хранилищах файлы успешно открыты/созданы, то выполняется проверка 1717, в ходе которой определяется, может ли используемый в защищенном хранилище алгоритм защиты по имеющемуся набору данных восстановить исходные данные. Если алгоритм защиты не может однозначно восстановить данные (для каждого кодового слова количество недостающих кодовых символов больше ν), то необходимо закрыть/удалить файл (блок 1716) на базовом хранилище и вспомогательных хранилищах (удаление выполняется в случае, когда создавался новый файл) и завершить (в блоке 1712) обработку запроса с ошибкой, вернуть причину неуспеха открытия/создания файла на вспомогательных хранилищах. Отметим, что функции блока 1716 частично выполняются в модуле 600 (при закрытии/удалении базового файла), а частично - в модуле 601 (при закрытии/удалении вспомогательных файлов). При создании/открытии файла на защищенном хранилище предпочтительно создается специальная структура, описывающая этот файл. Такая структура создается каждый раз в модуле перехвата 603 запросов ввода/вывода, когда приходит запрос на создание/открытие файла, и удаляется при поступлении запроса на закрытие файла; структура содержит1706 cache entry with metadata about the file being opened. If there is no such entry in the cache, then such an entry is created (phase 1707) and the reference count for the entry is set to 0. Next, check 1709 is performed, where it is determined whether an existing file is opened or a new one is created. If an existing file is opened, the metadata is read from the base file in the base storage and stored in the previously created cache entry. If, when checking 1709, it was determined that a new file was being created, or if checking 1706 it turned out that there was an entry in the cache, then block 1708 was created and sent requests to create / open the corresponding auxiliary files on auxiliary storages. Block 1708 is executed in module 601. After a signal is received in block 1710 that requests to auxiliary stores have been processed, a check 1713 is performed, where the status of completion of processing of these requests is determined. If files are not successfully opened / created on all auxiliary storages, then check 1717 is performed, during which it is determined whether the protection algorithm used in the protected vault can restore the original data using the existing data set. If the protection algorithm cannot unambiguously recover the data (for each codeword, the number of missing code characters is greater than ν), then it is necessary to close / delete the file (block 1716) on the basic storage and auxiliary storages (deletion is performed when a new file was created) and complete (in block 1712) processing the request with an error, return the reason for the failure to open / create the file on auxiliary storages. Note that the functions of block 1716 are partially performed in module 600 (when closing / deleting the base file), and partially in module 601 (when closing / deleting auxiliary files). When creating / opening a file on the protected storage, a special structure is preferably created that describes this file. Such a structure is created every time in the module for intercepting 603 input / output requests when a request to create / open a file arrives, and is deleted when a request to close a file is received; structure contains

ссылку на объект, описывающий открытый файл на защищенном хранилище. Если алгоритм защиты может восстановить исходные данные по неполному набору вспомогательных файлов, то пометить структуру, описывающую открываемый на защищенном хранилище файл атрибутом "только чтение" и увеличить на единицу количество ссылок на запись в кэше. Если при проверке 1713 установлено, что на всех вспомогательных хранилищах файлы созданы/открыты успешно, то увеличить на единицу количество ссылок на запись в кэше и завершить обработку запроса (фаза 1715).A link to an object that describes an open file on protected storage. If the protection algorithm can restore the original data from an incomplete set of auxiliary files, then mark the structure that describes the file opened on the protected storage with the read-only attribute and increase the number of cache write links by one. If during the verification of 1713 it was established that the files were created / opened successfully on all auxiliary storages, then increase the number of links to the cache entry by one and complete the processing of the request (phase 1715).

При закрытии файла (см. Фиг. 18) модуль перехвата запросов ввода/вывода 603 для запроса 1801 на закрытие файла выполняет проверку 1802: адресован ли запрос какому-либо защищенному хранилищу. В случае, если запрос не адресован защищенному хранилищу, запрос отправляется в блоке 1803 далее без обработки в модуле перехвата запросов ввода/вывода. Если запрос адресован защищенному хранилищу, то для всех вспомогательных хранилищ создаются в блоке 1804 (выполняется в модуле 601) запросы на закрытие соответствующих файлов. После отправки запросов, в блоке 1705 ожидается завершение обработки запросов вспомогательными хранилищами. Далее в блоке 1808 закрывается базовый файл на базовом хранилище и уменьшается на единицу в блоке 1809 количество ссылок на запись в кэше. Если на всех хранилищах (и вспомогательных, и базовом) закрытие выполнено успешно, завершить обработку запроса с успехом. В противном случае сигнализировать о том, что не на всех хранилищах файлы закрыты успешно, вернуть причину неуспеха и завершить обработку запроса (фаза 1810).When a file is closed (see Fig. 18), the I / O request interception module 603 for the request 1801 to close the file performs a check 1802: whether the request is addressed to any protected storage. If the request is not addressed to the secure storage, the request is sent in block 1803 further without processing in the I / O request interception module. If the request is addressed to the secure vault, then requests for closing the corresponding files are created in block 1804 (executed in module 601) for all auxiliary vaults. After sending the requests, in block 1705, completion of processing of requests by auxiliary repositories is expected. Next, in block 1808, the basic file on the basic storage is closed and the number of references to the cache entry decreases by one in block 1809. If the closure is successful at all storages (both auxiliary and basic), complete the request processing with success. Otherwise, to signal that the files were not closed successfully on all storages, return the reason for the failure and complete the request processing (phase 1810).

При поступлении запроса 1901 на чтение данных (см. Фиг. 19) в модуле 603 выполняется проверка 1902, в ходе которой выясняется, адресован ли запрос какому-либо защищенному хранилищу. Если запрос не адресован ни одному защищенному хранилищу, то запрос отправляется в блоке 1903 без промежуточной обработки далее (по стеку отработки запросов). Если же запрос адресован какому-то базовому файлу на каком-то защищенном хранилище, то для каждого соответствующего вспомогательного файла вUpon receipt of a request for reading data 1901 (see FIG. 19), a check 1902 is performed in module 603, during which it is determined whether the request is addressed to any secure storage. If the request is not addressed to any protected storage, the request is sent in block 1903 without further processing further (along the request processing stack). If the request is addressed to some basic file on some protected storage, then for each corresponding auxiliary file in

блоке 1904 создается запрос на чтение данных: при этом считываемые данные на вспомогательных хранилищах соответствующим образом выравниваются, если это необходимо; блок 1904 выполняется в модуле 601. Далее в блоке 1905 ожидается завершение обработки этих запросов. В проверке 1906 проверяется статус завершения обработки запросов. Если не со всех вспомогательных файлов чтение завершено успешно, то в проверке 1908 (на основе конфигурации 605.2) проверяется возможность извлечь данные (информационные блоки) из имеющихся данных. Если такой возможности нет, то в блоке 1910 инициатору запроса возвращается ошибка с указанием причины ошибки; обработка запроса на чтение завершается 1913. Если со всех вспомогательных файлов данные успешно считаны (проверка 1906), то выполняется переход на блок 1907. На этот же блок выполняется переход и в случае истинности выражения в проверке 1908. В блоке 1907 считанные данные объединяются в массив кодовых слов (возможно, частичных кодовых слов) в соответствии с параметрами разбиения и далее извлекаются информационные блоки (снимается защита с кодовых блоков). Если в ходе проверке 1911 выясняется, что декодирование выполнено с ошибкой, то выполняется переход на блок 1910, в котором обработка запроса на чтение завершается с ошибкой и возвращается причина ошибки; алгоритм обработки запроса на чтение завершается 1913. Если в ходе проверки 1911 выясняется, что данные декодированы корректно, то в блоке 1912 из декодированных данных формируется буфер (требуемого объема и размещенный по требуемому смещению от начала файла) и возвращается инициатору запроса; алгоритм обработки запроса на чтение завершается (фаза 1913).block 1904 creates a request to read data: in this case, the read data on auxiliary storages are aligned accordingly, if necessary; block 1904 is executed in module 601. Next, in block 1905, processing of these requests is expected to complete. Check 1906 checks the status of the completion of request processing. If not all the auxiliary files have been read successfully, then in test 1908 (based on configuration 605.2), the ability to extract data (information blocks) from existing data is checked. If this is not possible, then in block 1910, an error is returned to the requestor indicating the cause of the error; processing of the read request completes 1913. If the data was successfully read from all the auxiliary files (check 1906), then the block 1907 is transferred to the same block. If the expression is true in the check 1908. In block 1907, the read data is combined into an array code words (possibly partial code words) in accordance with the parameters of the partition information blocks are further extracted (the protection is removed from the code blocks). If during the check 1911 it turns out that the decoding was performed with an error, then a transition is made to block 1910, in which the processing of the read request ends with an error and the cause of the error is returned; the reading request processing algorithm ends 1913. If, during the verification of 1911, it turns out that the data is decoded correctly, then in block 1912 a buffer is generated from the decoded data (of the required size and placed at the required offset from the beginning of the file) and returned to the requestor; the read request processing algorithm ends (phase 1913).

Не ограничивая вариантов реализации записи данных, далее для примера описан алгоритм записи данных (см. Фиг. 20) без поддержки атомарности операции записи: при ошибке записи данных в какой-либо вспомогательный файл во вспомогательных файлах, в которые данные были записаны успешно, перезаписанные данные не восстанавливаются. Полагается, что возникновение ошибки при записи в какой-либо вспомогательныйWithout limiting the options for implementing data recording, the following describes an example of an algorithm for recording data (see Fig. 20) without supporting atomicity of the write operation: if there is an error in writing data to any auxiliary file in auxiliary files to which data was written successfully, the overwritten data not restored. It is believed that the occurrence of an error while writing to any auxiliary

файл является маловероятной. Для смягчения последствий от возникновения такой ошибки в СНЗХД предусмотрен, как показано в алгоритме 2000, механизм создания резервных копий вспомогательных файлов на вспомогательных хранилищах.file is unlikely. To mitigate the consequences of the occurrence of such an error, the SZKhD provides, as shown in algorithm 2000, a mechanism for creating backup copies of auxiliary files on auxiliary repositories.

При получении модулем перехвата 603 запросов ввода/вывода запроса на запись 2001, в проверке 2002 выясняется, кому адресован запрос. Если запрос адресован ни одному защищенному хранилищу, то в блоке 2003 запрос отправляется далее по стеку обработки запросов и алгоритм завершается (фаза 2013). Если же запрос адресован какому-либо защищенному хранилищу, то выполняется проверка 2008, в ходе которой выясняется, сколько времени Δbackup (в секундах) прошло с момента последнего резервного копирования вспомогательных файлов, соответствующих базовому файлу, которому адресован запрос на изменение данных. Если Δbackup больше периода резервного копирования, указанного в конфигурации 605 при создании защищенного хранилища, то в блоке 2009 выполняется операция создания резервных копий соответствующих вспомогательных файлов. Период создания резервных копий выбирается пользователем, исходя из степени критичности данных и объемов данных, хранящихся на защищенных хранилищах. Большие объемы данных могут привести к ощутимым задержкам при создании резервных копий, поэтому период резервного копирования предпочтительно должен быть выбран так, чтобы подобные задержки не создавали неудобств пользователю. На вспомогательных хранилищах, не ограничивая вариантов реализации, имя файла резервной копии состоит из имени копируемого файла, даты/времени копирования и истинного объема данных на защищенном хранилище на момент копирования. Такой формат имен файлов позволяет восстановить данные, находившиеся в защищенном хранилище на момент резервного копирования. В другом варианте реализации резервного копирования в резервные копии вспомогательных файлов заносятся метаданные из базового файла и к имени вспомогательных файлов дописывается дата и время создания копии. После создания резервных копий осуществляется переход на блок 2004. НаUpon receipt by the interception module of 603 I / O requests for a write request 2001, the 2002 check reveals to whom the request is addressed. If the request is addressed to no protected storage, then in block 2003 the request is sent further along the request processing stack and the algorithm ends (phase 2013). If the request is addressed to some secure storage, then the 2008 check is performed, during which it is determined how much time Δ backup (in seconds) has passed since the last backup of auxiliary files corresponding to the base file to which the data change request is addressed. If Δ backup is longer than the backup period specified in configuration 605 when creating a secure storage, then in block 2009 the operation of creating backup copies of the corresponding auxiliary files is performed. The backup period is selected by the user based on the degree of criticality of the data and the amount of data stored in the secure storage. Large amounts of data can lead to noticeable delays in creating backups, so the backup period should preferably be chosen so that such delays do not create inconvenience to the user. On auxiliary storages, without limiting the implementation options, the name of the backup file consists of the name of the file to be copied, the date / time of the copy, and the true amount of data on the protected storage at the time of copying. This format of file names allows you to restore data that was in protected storage at the time of the backup. In another implementation of the backup, metadata from the base file is entered into backup copies of auxiliary files, and the date and time of the backup creation are added to the name of auxiliary files. After creating the backups, the transition to block 2004 is performed.

этот же блок выполняется переход после проверки 2008, если в ходе нее выяснилось, что время создания резервных копий не наступило. В блоке 2004 выполняется преобразование (кодирование) информационных блоков в кодовые блоки по алгоритму, заданному в конфигурации G05 защищенного хранилища. Далее в блоке 2005 закодированные данные разбиваются на tSStor-1 массивов в соответствии с конфигурацией, указанной при создании защищенного хранилища. В блоке 2006 создаются запросы для записи полученных массивов данных в tSStor-1 соответствующих вспомогательных файлов. После окончания ожидания в блоке 2007 обработки запросов на вспомогательных хранилищах, в проверке 2010 выясняется, на все ли хранилища запись проведена успешно: если да, то в блоке 2012 обработка запроса завершается с успехом, если нет, то в блоке 2011 обработка завершается с ошибкой и указывается причина ошибки: алгоритм обработки запроса на залгись данных заканчивается 2013.the same block is executed after the 2008 check, if during it it turned out that the time for creating backups had not arrived. In block 2004, information blocks are converted (encoded) into code blocks according to the algorithm specified in the secure storage configuration G05. Then, in block 2005, the encoded data is divided into t SStor -1 arrays in accordance with the configuration specified when creating the secure storage. In block 2006, requests are created to record the received data arrays in t SStor -1 of the corresponding auxiliary files. After the wait in block 2007 for processing requests on auxiliary storages ends, in 2010 check it is found out whether the records were successfully written to all storages: if so, then in block 2012 the request processing completes successfully, if not, then in block 2011 the processing fails and the cause of the error is indicated: the algorithm for processing the request for data burden ends 2013.

Список литературыBibliography

[1] Ozarov Н., Wyner A.D. Wire-Тар Channel II. // BLTj, 63, - 1984, - pp. 2135-2157.[1] Ozarov N., Wyner A.D. Wire-Tar Channel II. // BLTj, 63, - 1984, - pp. 2135-2157.

[2] Яковлев В.А. Защита информации на основе кодового зашумления. Под ред. В.И. Коржика. - СПб., 1993. - 244 с.[2] Yakovlev V.A. Information protection based on code noise. Ed. IN AND. Korzhika. - SPb., 1993 .-- 244 p.

[3] A Statistical Test Suite for Random and Pseudorandom Number Generators for Cryptographic Applications. // http://csrc.nist.gov/publications/nistpubs/800-22-rev1a/SP800-22rev1a.pdf. Последнее обращение 17.06.2016.[3] A Statistical Test Suite for Random and Pseudorandom Number Generators for Cryptographic Applications. // http://csrc.nist.gov/publications/nistpubs/800-22-rev1a/SP800-22rev1a.pdf. Last appeal 06/17/2016.

[4] Иванов В.А. Статистические методы оценки эффективности кодового зашумления // Труды по дискретной математике. М.: ФИЗМАТЛИТ, 2002. Том 6. сс. 48-63.[4] Ivanov V.A. Statistical methods for evaluating the effectiveness of code noise // Transactions in discrete mathematics. M .: FIZMATLIT, 2002. Volume 6. ss. 48-63.

[5] Деундяк В.М., Косолапов Ю.В. О стойкости кодового зашумления к статистическому анализу наблюдаемых данных многократного повторения.[5] Deundyak V.M., Kosolapov Yu.V. On the resistance of code noise to statistical analysis of observed data of repeated repetition.

// Моделирование и анализ информационных систем. Т. 19, №4 (2012), сс. 110-127.// Modeling and analysis of information systems. T. 19, No. 4 (2012), ss. 110-127.

[6] Газарян Ю.О., Винничук И.И., Косолапов Ю.В. Стойкость кодового зашумления в рамках модели многократного частичного наблюдения кодовых сообщений. // В сб. "Материалы XII Международной научно-практической конференции "Информационная безопасность", ч. 3, Таганрог: ЮФУ, 2012., сс. 258-263.[6] Gazaryan Yu.O., Vinnichuk II, Kosolapov Yu.V. Code noise immunity in the framework of the model of multiple partial observation of code messages. // Sat "Materials of the XII International scientific-practical conference" Information Security ", part 3, Taganrog: SFU, 2012., pp. 258-263.

[7] Деундяк В.М., Косолапов Ю.В. Об одном методе снятия неопределенности в канале с помехами в случае применения кодового зашумления. II Известия ЮФУ. Технические науки. №2(151), - 2014, сс. 197-208.[7] Deundyak V.M., Kosolapov Yu.V. About one method of removing uncertainty in a channel with interference in the case of code noise. II Izvestia SFU. Technical science. No. 2 (151), - 2014, ss. 197-208.

[8] Arunkumar Subramanian, Steven W. McLaughlin. MDS codes on the erasure-erasure wiretap channel. // arXv:0902.3286v1 [cs.IT] 19 Feb. 2009. P. 1-4. Последнее обращение 13.11.2013.[8] Arunkumar Subramanian, Steven W. McLaughlin. MDS codes on the erasure-erasure wiretap channel. // arXv: 0902.3286v1 [cs.IT] 19 Feb. 2009.P. 1-4. Last appeal 11/13/2013.

[9] Деундяк B.M., Косолапов Ю.В. Математическая модель канала с перехватом второго типа. // Известия высших учебных заведений, Северо-Кавказский регион, серия Естественные науки, 3(145), - 2008, сс. 3-8.[9] Deundyak B.M., Kosolapov Yu.V. The mathematical model of the channel with the interception of the second type. // Proceedings of higher educational institutions, North Caucasian region, a series of Natural Sciences, 3 (145), - 2008, ss. 3-8.

[10] Yuan Luo, Chaichana Mitrpant, A.J. Hav Vinck, Kefei Chen. Some New characters on the wire-tap channel of type II. // IEEE Transactions on information theory, vol. 51, No. 3, 2005. P. 1222-1229.[10] Yuan Luo, Chaichana Mitrpant, A.J. Hav Vinck, Kefei Chen. Some New characters on the wire-tap channel of type II. // IEEE Transactions on information theory, vol. 51, No. 3, 2005. P. 1222-1229.

[11] Mihir Bellare, Stefano Tessaro, Alexander Vardy A Cryptographic Treatment of the Wiretap Channel. // arXiv:1201.2205, http://arxiv.org/abs/1201.2205, 2012. Последнее обращение 10.01.2014.[11] Mihir Bellare, Stefano Tessaro, Alexander Vardy A Cryptographic Treatment of the Wiretap Channel. // arXiv: 1201.2205, http://arxiv.org/abs/1201.2205, 2012. Last appeal 01/10/2014.

[12] Wright С, Kleiman D., Shyaam Sundhar R.S. Overwriting Hard Drive Data: The Great Wiping Controversy. // ICISS ′08 Proceedings of the 4th International Conference on Information Systems Security, - 2008, pp. 243-257.[12] Wright C, Kleiman D., Shyaam Sundhar R.S. Overwriting Hard Drive Data: The Great Wiping Controversy. // ICISS ′08 Proceedings of the 4th International Conference on Information Systems Security, - 2008, pp. 243-257.

Claims (9)

1. Способ защиты доступности и конфиденциальности хранимых данных, характеризующийся тем, что при операции записи данных:
• каждый информационный блок S длины k символов конечного поля F кодируют в кодовый блок С длины n символов поля F с помощью кодека ƒr, случайным или псевдослучайным образом выбранным из занумерованного набора кодеков FCq(n, k, µ, ν), преобразующих информационные векторы длины k (над полем F) в кодовые векторы длины n (над тем же полем F) так, что утрата не более ν символов кодового слова позволяет однозначно восстановить информационное слово, а подслушивание (наблюдение) не более µ символов кодового слова не дает наблюдателю какой-либо информации о закодированном сообщении;
• кодовый блок С разбивают на Т частей (C1, …, CT) таким образом, чтобы объединение любых terr частей в совокупности давало не более ν различных кодовых символов, а объединение любых ttap частей в совокупности давало не более µ различных кодовых символов;
• по номеру r выбранного кодека, используя (Т, T-terr)-схему разделения секрета, получают Т частей: R1, …, RT;
• пары (Ci, Ri), где i=1, …, Т, по порядку объединяются в блок (С1, R1,, CT, RT);
• каждую пару (Ci, Ri), где i=1, …, T, записывают на одно из Т хранилищ так, чтобы на одно хранилище была записана только одна пара указанного вида,
а при чтении защищаемых данных
• с, по крайней мере, T-terr хранилищ считывают пары вида (Ci, Ri), где i∈{1; …; Т};
• по считанным частям Ri, используя (T, Т-terr)-схему разделения секрета, получают номер r использованного при кодировании кодека ƒr;
• по считанным частям Ci формируют (в порядке встречаемости кодовых символов) частичный кодовый блок С′, в котором неизвестно, самое многое, ν кодовых символов;
• из блока С′, используя обратное преобразование k ƒr(∈FCq(n, k, µ, ν)), извлекают информационный блок S.
1. A method of protecting the availability and confidentiality of stored data, characterized in that during the data recording operation:
• each information block S of length k characters of the final field F is encoded into a code block C of length n characters of the field F using the codec ƒ r randomly or pseudo-randomly selected from a numbered set of codecs FC q (n, k, µ, ν) that transform the information vectors of length k (over the field F) into code vectors of length n (over the same field F) so that the loss of no more than ν characters of the code word allows the information word to be uniquely restored, and eavesdropping (observation) of no more than µ characters of the code word does not give the observer any information about encoded message;
• code block C is divided into T parts (C 1 , ..., C T ) so that the combination of any t err parts together gives no more than ν different code symbols, and the union of any t tap parts together gives no more than µ different code characters
• by the number r of the selected codec, using the (T, Tt err ) secret sharing scheme, T parts are obtained: R 1 , ..., R T ;
• pairs (C i, R i), where i = 1, ..., T, are combined in order unit (G 1, R 1, ..., C T, R T );
• each pair (C i , R i ), where i = 1, ..., T, is written to one of T storages so that only one pair of the specified type is recorded on one store,
while reading protected data
• with at least Tt err storages read pairs of the form (C i , R i ), where i∈ {1; ...; T};
• for the read parts of R i , using the (T, T-t err ) secret sharing scheme, get the number r of the codec при r used for encoding;
• on the read parts C i form (in the order of occurrence of code symbols) a partial code block C ′, in which, at most, ν code symbols are unknown;
• from block C, using the inverse transformation k ƒ r (∈FC q (n, k, µ, ν)), the information block S is extracted
2. Способ защиты доступности и конфиденциальности хранимых данных по п. 1, в котором в качестве набора FCq(n, k, µ, ν) выступает множество кодеков, построенных путем всевозможных перестановок столбцов порождающей матрицы G ˜
Figure 00000061
факторного кода, с помощью которого кодируются информационные блоки длины k символов конечного поля F в кодовые блоки длины n символов конечного поля F и с помощью которого обеспечивается защита от наблюдения не более µ любых символов кодового блока и защита от утраты (стирания) не более ν любых символов кодового блока.
2. A way to protect the accessibility and confidentiality of stored data according to claim 1, in which the set of FC q (n, k, µ, ν) is a set of codecs constructed by various permutations of the columns of the generating matrix G ˜
Figure 00000061
factor code, with the help of which information blocks of length k characters of the final field F are encoded into code blocks of length n characters of the final field F and with which protection from observation is not more than µ of any characters of the code block and protection from loss (erasure) of not more than ν code block characters.
3. Система настраиваемой защиты хранимых данных, характеризующаяся тем, что она состоит из:
• компьютера, на котором установлен клиентский агент, включающий подмодуль перехвата данных, подмодуль управления и модуль доступа к носителям данных, подключаемым к компьютеру;
• компьютера, на котором установлен агентский модуль распределенной защиты, включающий подмодуль защиты данных (содержащий базу алгоритмов защиты), подмодуль усиленной защиты данных (включающий набор алгоритмов схем разделения секрета, алгоритмов генерации последовательностей и алгоритмов генерации перестановок) и модуль распределения данных по носителям данных;
• канала, связывающего клиентский агент и агент распределенной защиты;
• множества конфигураций защищенных хранилищ, где конфигурация каждого защищенного хранилища SStor включает:
- точки монтирования (каталоги) tSStor (∈N) хранилищ на носителях данных;
- нумерацию хранилищ числами от 1 до tSStor;
- базовое хранилище защищенного хранилища SStor (одно из tSStor хранилищ);
- число ttap хранилищ, несанкционированный доступ к которым не должен компрометировать закодированные данные;
- число terr хранилищ, утрата которых не должна приводить к потере закодированных данных;
- наименование алгоритма S для (tSStor, tSStor-terr)-схемы разделения секрета;
- наименование алгоритма A преобразования информационных блоков длины k символов поля F (в машинном представлении k1 байтов) в кодовые блоки длины n символов поля F (в машинном представлении n1 байтов), подходящий для тройки параметров (tSStor, ttap, terr);
- количество перестановок Q(∈{0; 250}), используемых для усиления защиты от статистических атак;
- наименование алгоритма P генерации по числу r(∈{0; …; Q})tSStor перестановок бит в байте; при этом алгоритм P при Q=0 генерирует перестановки, которые не приводят к изменению порядка бит в байтах (тождественные перестановки);
- правило П разбиения кодовых блоков длины n символов поля F (n1 байтов соответственно) на tSStor частей, каждая из которых в машинном представлении занимает li байтов, i=1, …, tSStor.
- наименование алгоритма Г генерации последовательности псевдослучайных чисел, который по числу r(∈{0; …; Q}) генерирует псевдослучайную последовательность Г(r) длиной i = 1 t S S t o r l i
Figure 00000062
байтов; алгоритм Г при Q=0 генерирует нулевую последовательность;
и что каждому файлу FILE, размещаемому в защищенном хранилище SStor, ставят в соответствие tSStor файлов: один файл FILEm на базовом хранилище (базовый файл), и по одному файлу на каждом из оставшихся tSStor-1 хранилищ (вспомогательные файлы); при этом в начале базового файла резервируют область фиксированной длины для метаданных о защищаемом файле FILE (об истинном размере файла, времени последней модификации);
3. The system of customizable protection of stored data, characterized in that it consists of:
• a computer on which a client agent is installed, including a data interception submodule, a control submodule, and an access module to the storage media connected to the computer;
• a computer on which an agent-based distributed protection module is installed, including a data protection submodule (containing a database of protection algorithms), a data protection enhanced submodule (including a set of secret sharing algorithms, sequence generation algorithms and permutation generation algorithms) and a data distribution module for data carriers;
• a channel connecting the client agent and the distributed protection agent;
• many secure storage configurations, where the configuration of each SStor secure storage includes:
- mount points (directories) t SStor ( ∈N ) of storages on data carriers;
- numbering of storages with numbers from 1 to t SStor ;
- basic storage lockbox SStor (t SStor one of storage);
- the number t tap of storages for which unauthorized access to which should not compromise the encoded data;
- the number t err of storages, the loss of which should not lead to the loss of encoded data;
- the name of the algorithm S for (t SStor , t SStor -t err ) -secret sharing scheme;
- the name of the algorithm A for converting information blocks of length k characters of the field F (in the machine representation k 1 bytes) into code blocks of length n characters of the field F (in the machine representation n 1 bytes) suitable for the three parameters (t SStor , t tap , t err );
- the number of permutations Q (∈ {0; 250}) used to enhance protection against statistical attacks;
- the name of the generation algorithm P by the number r (∈ {0; ...; Q}) t SStor permutations of bits in a byte; in this case, the algorithm P for Q = 0 generates permutations that do not lead to a change in the order of bits in bytes (identical permutations);
- rule P of breaking code blocks of length n characters of the field F (n 1 bytes, respectively) into t SStor parts, each of which in the machine representation occupies l i bytes, i = 1, ..., t SStor .
- the name of the algorithm G for generating a sequence of pseudo-random numbers, which generates a pseudo-random sequence G (r) of length r (∈ {0; ...; Q}) i = one t S S t o r l i
Figure 00000062
bytes algorithm G for Q = 0 generates a zero sequence;
and that each FILE file located in the SStor protected storage is assigned t SStor files: one FILE m file on the basic storage (base file), and one file on each of the remaining t SStor -1 storages (auxiliary files); at the same time, at the beginning of the base file, a fixed-length area is reserved for metadata about the FILE file to be protected (about the true file size, time of the last modification);
4. Система настраиваемой защиты хранимых данных по п. 3, характеризующаяся тем, что при записи файла в защищенное хранилище SStor (или при записи блока данных в файл, размещенный в защищенном хранилище SStor):
• при необходимости записываемые данные выравнивают на границу информационного блока длины k1 байтов;
• записываемые данные представляют в виде последовательности k1-байтных информационных блоков (k1≥1);
• каждый информационный блок S преобразуют с помощью алгоритма A в соответствующий n1-байтный кодовый блок (n1≥k1);
• для каждого кодового блока С:
- используя правило разбиения П, разбивают блок С на tSStor частей:
C 1 , ..., C t S S t o r
Figure 00000041
, каждая из которых в машинном представлении занимает li байтов, i=1, …, tSStor;
- случайно или псевдослучайно выбирают число r(∈{0; …; Q}), по которому генерируют tSStor перестановок: π r ,1 , ..., π r , t S S t o r
Figure 00000063
;
- с помощью перестановки πr,i переставляют биты всех li байтов части Ci, i=1, …, tSStor, в результате получают блок πr,i(Ci);
- выполняют операцию побитового XOR векторов ( π r ,1 ( C 1 ) , ..., π r , t S S t o r ( C t S S t o r ) )
Figure 00000064
и Г(r), представленных в виде двоичных векторов;
- по числу r, используя схему разделения секрета S, генерируют tSStor частей, каждая из которых занимает один байт: P 1 , ..., P t S S t o r
Figure 00000065
, которые приписывают справа к соответствующим частям πr,i(Ci) XOR Г(r)i, i=1, …, tSStor, образуя таким образом пары (πr,i(Ci) XOR Г(r)i, Pi) длины li+1 байтов в машинном представлении, где Г(r)i - часть псевдослучайной последовательности Г(r), наложенная на πr,i(Ci), i=1, …, tSStor;
- в файл на i-м хранилище (i=1, …, tSStor) записывают соответствующую пару (πr,i(Ci) XOR Г(r)i, Pi);
4. The system of customizable protection of stored data according to claim 3, characterized in that when writing a file to the SStor secure storage (or when writing a data block to a file located in the SStor secure storage):
• if necessary, the recorded data is aligned to the border of the information block of length k 1 bytes;
• the recorded data is represented as a sequence of k 1- byte information blocks (k 1 ≥1);
• each information block S is transformed using algorithm A into the corresponding n 1- byte code block (n 1 ≥k 1 );
• for each code block C:
- using the partition rule P, break block C into t SStor parts:
C one , ..., C t S S t o r
Figure 00000041
, each of which in machine representation occupies l i bytes, i = 1, ..., t SStor ;
- randomly or pseudo-randomly select the number r (∈ {0; ...; Q}), by which t SStor permutations are generated: π r ,one , ..., π r , t S S t o r
Figure 00000063
;
- using the permutation π r, i permutes the bits of all l i bytes of the part C i , i = 1, ..., t SStor , as a result, the block π r, i (C i ) is obtained;
- perform the operation of bitwise XOR vectors ( π r ,one ( C one ) , ..., π r , t S S t o r ( C t S S t o r ) )
Figure 00000064
and G (r) represented as binary vectors;
- according to the number r, using the secret secretion scheme S, t SStor parts are generated, each of which occupies one byte: P one , ..., P t S S t o r
Figure 00000065
which are attributed on the right to the corresponding parts π r, i (C i ) XOR Г (r) i , i = 1, ..., t SStor , thus forming the pairs (π r, i (C i ) XOR Г (r) i , P i ) of length l i + 1 bytes in the machine representation, where Г (r) i is the part of the pseudo-random sequence Г (r) superimposed on π r, i (C i ), i = 1, ..., t SStor ;
- the corresponding pair (π r, i (C i ) XOR Г (r) i , P i ) is written to the file on the i-th storage (i = 1, ..., t SStor );
5. Система настраиваемой защиты хранимых данных по п. 3, характеризующаяся тем, что при чтении данных из файла FILE, размещенного в защищенном хранилище SStor:
• границы буфера считываемых данных выравнивают на границу информационного блока длины k1 байтов;
• для каждого информационного блока S длины k символом поля F (k1 байтов в машинном представлении), считываемого в выровненный буфер:
- из, по крайней мере, t′≥tSStor-terr файлов, размещенных на хранилищах, считывают соответствующие информационному блоку S пары (πr,i(Ci) XOR Г(r)i, Pi) в машинном представлении занимающие соответственно li+1 байтов, i∈{1; …; tSStor};
- по совокупности, по меньшей мере, t′ частей Pi, используя схему разделения секрета S, находят число r;
- по числу r, используя алгоритм Г, находят последовательность псевдослучайных чисел Г(r), с помощью которой снимают гамму и получают блоки πr,i(Ci), i∈{1; …; tSStor};
- по числу r, используя алгоритм P, находят необходимые перестановки πr,i битов в байтах и получают блоки Ci;
- используя алгоритм A и алгоритм разбиения П, по имеющемуся набору частей кодового блока восстанавливают информационный блок S;
• из декодированных информационных блоков S формируют буфер считанных данных и инициатору возвращают буфер в рамках тех границ, которые заданы инициатором.
5. The system for configuring the protection of stored data according to claim 3, characterized in that when reading data from a FILE file located in the SStor secure storage:
• the boundaries of the buffer of read data are aligned to the border of the information block of length k 1 bytes;
• for each information block S of length k with a field symbol F (k 1 bytes in the machine representation) read in a aligned buffer:
- from at least t′≥t SStor -t err files located in the storages, the pairs (π r, i (C i ) XOR Г (r) i , P i ) in the machine representation occupying respectively l i +1 bytes, i∈ {1; ...; t SStor };
- from the set of at least t ′ parts P i , using the secret secretion scheme S, find the number r;
- by the number r, using the algorithm G, find the sequence of pseudo-random numbers G (r), with which the gamma is removed and blocks π r, i (C i ), i∈ {1; ...; t SStor };
- by the number r, using the algorithm P, find the necessary permutation π r, i bits in bytes and receive blocks C i ;
- using algorithm A and partitioning algorithm P, information block S is restored from the existing set of parts of the code block;
• a buffer of read data is formed from decoded information blocks S, and a buffer is returned to the initiator within the boundaries specified by the initiator.
6. Система настраиваемой защиты хранимых данных по любому из пп. 3-5, отличающаяся тем, что используется (tSStor-1, tSStor-1-terr)-схема разделения секрета S, алгоритм P генерирует tSStor-1 перестановок, правило П разбивает кодовое слово на tSStor-1 частей, алгоритм Г генерирует последовательность длины i = 1 t S S t o r 1 l i
Figure 00000066
, в базовый файл записываются только метаданные.
6. A system of customizable protection of stored data according to any one of paragraphs. 3-5, characterized in that it uses (t SStor -1, t SStor -1-t err ) -second secret sharing scheme S, algorithm P generates t SStor -1 permutations, rule P splits the codeword into t SStor -1 parts, algorithm D generates a sequence of length i = one t S S t o r - one l i
Figure 00000066
, only metadata is written to the base file.
7. Система настраиваемой защиты хранимых данных по п. 3, отличающаяся тем, что при создании защищенного хранилища задают период времени в секундах, по истечении которого с момента последней модификации защищенного файла FILE должны создаваться резервные копии соответствующих файлов на базовом и вспомогательных хранилищах.7. The system of customizable protection of stored data according to claim 3, characterized in that when creating a secure storage, a time period in seconds is set, after which, from the moment of the last modification of the protected FILE file, backup copies of the corresponding files on the base and auxiliary stores should be created. 8. Машиночитаемый носитель, на котором сохранен компьютерный программный продукт, который при выполнении процессором с программным управлением побуждает процессор осуществлять способ по одному из пп. 1-2.8. A machine-readable medium on which a computer program product is stored, which, when executed by a processor with program control, causes the processor to implement the method according to one of claims. 1-2. 9. Машиночитаемый носитель, на котором сохранен компьютерный программный продукт, который при выполнении процессором с программным управлением побуждает процессор осуществлять систему по одному из пп. 3-7. 9. A machine-readable medium on which a computer program product is stored, which, when executed by a processor with program control, causes the processor to implement the system according to one of claims. 3-7.
RU2014133133/08A 2014-08-12 2014-08-12 Method of protecting availability and security of stored data and system for adjustable protection of stored data RU2584755C2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2014133133/08A RU2584755C2 (en) 2014-08-12 2014-08-12 Method of protecting availability and security of stored data and system for adjustable protection of stored data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2014133133/08A RU2584755C2 (en) 2014-08-12 2014-08-12 Method of protecting availability and security of stored data and system for adjustable protection of stored data

Publications (2)

Publication Number Publication Date
RU2014133133A RU2014133133A (en) 2016-03-10
RU2584755C2 true RU2584755C2 (en) 2016-05-20

Family

ID=55483765

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2014133133/08A RU2584755C2 (en) 2014-08-12 2014-08-12 Method of protecting availability and security of stored data and system for adjustable protection of stored data

Country Status (1)

Country Link
RU (1) RU2584755C2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018147827A1 (en) * 2017-02-07 2018-08-16 Hewlett-Packard Development Company, L.P. Determining cash drawer access
RU2665899C1 (en) * 2016-11-22 2018-09-04 Федеральное государственное бюджетное образовательное учреждение высшего образования "Юго-Западный государственный университет" (ЮЗГУ) High-speed device for generating unique sequence used for depersonalizing data
RU2749502C1 (en) * 2020-07-10 2021-06-11 Публичное акционерное общество "Авиационная холдинговая компания "Сухой" Method for ensuring information security of an on-board computer system

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112000979B (en) * 2019-06-21 2023-07-04 华控清交信息科技(北京)有限公司 Database operation method, system and storage medium for private data

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6363481B1 (en) * 1998-08-03 2002-03-26 Nortel Networks Limited Method and apparatus for secure data storage using distributed databases
RU2356170C2 (en) * 2003-07-08 2009-05-20 Квэлкомм Инкорпорейтед Method and device for protection in system of data processing
RU2399087C2 (en) * 2005-05-13 2010-09-10 Нокиа Корпорейшн Safe data storage with integrity protection
US7945784B1 (en) * 2005-08-19 2011-05-17 Adobe Systems Incorporated Method and system to perform secret sharing
RU2485584C2 (en) * 2007-09-10 2013-06-20 Континенталь Аутомотиве Гмбх Method and device for coding data words

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6363481B1 (en) * 1998-08-03 2002-03-26 Nortel Networks Limited Method and apparatus for secure data storage using distributed databases
RU2356170C2 (en) * 2003-07-08 2009-05-20 Квэлкомм Инкорпорейтед Method and device for protection in system of data processing
RU2399087C2 (en) * 2005-05-13 2010-09-10 Нокиа Корпорейшн Safe data storage with integrity protection
US7945784B1 (en) * 2005-08-19 2011-05-17 Adobe Systems Incorporated Method and system to perform secret sharing
RU2485584C2 (en) * 2007-09-10 2013-06-20 Континенталь Аутомотиве Гмбх Method and device for coding data words

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2665899C1 (en) * 2016-11-22 2018-09-04 Федеральное государственное бюджетное образовательное учреждение высшего образования "Юго-Западный государственный университет" (ЮЗГУ) High-speed device for generating unique sequence used for depersonalizing data
WO2018147827A1 (en) * 2017-02-07 2018-08-16 Hewlett-Packard Development Company, L.P. Determining cash drawer access
RU2749502C1 (en) * 2020-07-10 2021-06-11 Публичное акционерное общество "Авиационная холдинговая компания "Сухой" Method for ensuring information security of an on-board computer system

Also Published As

Publication number Publication date
RU2014133133A (en) 2016-03-10

Similar Documents

Publication Publication Date Title
US7581118B2 (en) Disk sanitization using encryption
US9043614B2 (en) Discarding sensitive data from persistent point-in-time image
EP1766492B1 (en) Method, system and securing means for data archiving with automatic encryption and decryption by fragmentation of keys
CN102945355B (en) Fast Data Encipherment strategy based on sector map is deferred to
US7792300B1 (en) Method and apparatus for re-encrypting data in a transaction-based secure storage system
US6993661B1 (en) System and method that provides for the efficient and effective sanitizing of disk storage units and the like
JP5647754B1 (en) Computerized system, method, computer program, and data storage medium for deletion of content in storage system (deletion of content in storage system)
KR100749428B1 (en) Distributed data archive device, system and recording medium
US8892905B2 (en) Method and apparatus for performing selective encryption/decryption in a data storage system
CN102855452B (en) Fast Data Encipherment strategy based on encryption chunk is deferred to
Peterson et al. Secure Deletion for a Versioning File System.
US7814318B1 (en) Scalable file system configured to make files permanently unreadable
US20100215175A1 (en) Methods and systems for stripe blind encryption
US20070226809A1 (en) Method and apparatus for constructing a storage system from which digital objects can be securely deleted from durable media
US9749132B1 (en) System and method for secure deletion of data
JP3871996B2 (en) Data division management method and program
GB2463078A (en) Data storage and transmission using parity data
US8200964B2 (en) Method and apparatus for accessing an encrypted file system using non-local keys
JP2006012192A (en) Distributed data archive system
RU2584755C2 (en) Method of protecting availability and security of stored data and system for adjustable protection of stored data
Zhang et al. Ensuring data confidentiality via plausibly deniable encryption and secure deletion–a survey
KR101467227B1 (en) Method for managing encrypted files based on password with secure file deleting function suitable for ssd and system for managing encrypted files using the same
US11288382B2 (en) Removing information from data
EP3346414A1 (en) Data filing method and system
CN111949606A (en) File fragmentation encryption engine and technique thereof

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20160813

MM4A The patent is invalid due to non-payment of fees

Effective date: 20180813