Способ защиты доступности и конфиденциальности хранимых данных и система настраиваемой защиты хранимых данных
Иллюстрации
Показать всеГруппа изобретений относится к области защиты данных, записанных в хранилище с долговременной памятью, и может быть использована для защиты доступности и конфиденциальности данных. Техническим результатом является повышение защищенности данных. В способе защиты доступности и конфиденциальности хранимых данных для каждого информационного блока из множества обратимых случайных преобразований выбирается случайным или псевдослучайным образом номер r одного кодирующего правила, которое затем применяется к кодовому блоку; полученное кодовое слово разбивается на t частей, к каждой из которых дописывается часть секрета, полученная по числу r с помощью подходящей схемы разделения секрета, после чего полученные части объединяются. 4 н. и 5 з.п. ф-лы, 20 ил.
Реферат
Способ защиты доступности и конфиденциальности хранимых данных и система настраиваемой защиты хранимых данных
1 Область техники
Настоящее изобретение относится к области защиты данных, а именно к области настраиваемой защиты доступности, конфиденциальности и целостности данных.
2 Уровень техники
В настоящее время перед пользователями настольных компьютеров, серверов, ноутбуков, планшетных компьютеров, смартфонов (далее используется обобщающий термин - компьютеры) стоят различные задачи по защите хранящихся данных. Среди задач защиты особенно выделяются задача защиты доступности данных (защита от утраты данных), задача защиты конфиденциальности данных и защита целостности (защита от несанкционированного или случайного изменения). Объект защиты (защищаемые данные) и степень актуальности той или иной из обозначенных задач определяются, как правило, владельцем защищаемых данных на основании собственного опыта, существующих стандартов и практик в области защиты данных и информационной безопасности или на основе требований законодательства. Например, для обычных пользователей (физических лиц) объектами защиты обычно являются такие данные как список контактов с адресами и телефонами, номера банковских карт, PIN-коды, номер счетов,
личные фотографии, учетные данные для доступа к Интернет-банкингу и другим WEB-сервисам. Для организаций (юридических лиц) объектами защиты являются, например, данные, составляющие коммерческую тайну, персональные данные работников, клиентов и т.п. Далее под пользователями компьютеров понимаются как физические лица, так и юридические лица. В отношении однотипных данных для различных пользователей степень актуальности задач защиты может быть разная. Например, в отношении номеров банковских пластиковых карт для одних пользователей - физических лиц актуальна защита конфиденциальности и доступности, для других пользователей - физических лиц достаточно только защиты конфиденциальности номеров карт, а для юридического лица, перечисляющего заработную плату на пластиковые карты, особенно важна защита целостности данных.
Для пользователей компьютеров типичными причинами нарушения доступности хранящихся данных обычно являются: случайное стирание данных, преднамеренное стирание данных в результате несанкционированного доступа к компьютеру, потеря носителя данных, кража носителя данных, выход из строя носителя данных, шифрование данных вредоносной программой. К причинам нарушения конфиденциальности можно отнести несанкционированное копирование данных, потерю носителя данных, кражу носителя данных, ненадлежащее стирание данных при утилизации носителей или при их сервисном обслуживании (ремонте). Целостность данных нарушается обычно в результате преднамеренного несанкционированного изменения данных (например, посредством действия вредоносного кода) или выхода из строя части носителя (например, отдельных ячеек, секторов).
Как правило, указанные выше задачи защиты данных решаются с помощью различных средств защиты, а иногда и с помощью различных методов защиты. Далее для раскрытия сути изобретения приводится краткое описание существующих способов защиты данных от утраты, защиты конфиденциальности и целостности.
Существующие способы защиты от утраты данных. Защита данных от утраты обеспечивается за счет средств резервного копирования данных, например, с использованием программно-аппаратной или исключительно программной реализации технологии 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, память носителей данных, входящих в состав защищенного запоминающего устройства, задействуется полностью, а сами носители размещены в одном конструктивном блоке.
Кроме описанных выше способов, где защищенное хранилище (ЗХ) строится на базе носителей, размещенных предпочтительно в одном конструктивном блоке или в непосредственной близости друг от друга, имеются также
способы построения сетевых хранилищ. Так, в патенте RU 2501072 C2 (публ. 10.12.2013) с целью защиты данных от утраты предложен способ распределенного хранения данных, согласно которому, хранилище представляет собой сеть узлов (сетевое хранилище), в которой выход из строя узла отслеживается специальным узлом (группой узлов), и на основе данных из доступных узлов генерируются данные для нового узла. В этом случае узлы, составляющие сетевое защищенное хранилище, могут быть географически разнесены. Отметим, что в RU 2501072 C2 узлы сети, могут быть задействованы только для создания одного сетевого хранилища.
В патенте US 7418439 B2 (публ. 26.08.2008) предложен способ построения гибридной системы, защищенной от утраты данных, позволяющей защитить данные от утраты на базе как локальных носителей информации, так и на базе сетевых носителей. В US 7418439 B2 именно предложена виртуальная файловая система, предназначенная для создания хранилищ, защищенных от утраты данных. В основе изобретения US 7418439 B2 лежит способ построения файловой системы над файловыми системами существующих носителей (как локальных, так и сетевых) таким образом, что любой запрос к виртуальной файловой системе на изменение данных в файле дублируется (зеркалируется) для нижележащих файловых систем. За счет этого на разных носителях хранится идентичная копия файла. Этот способ позволяет на базе одного набора носителей создавать произвольное количество хранилищ с поддержкой зеркалирования. Недостатком описанного в US 7418439 B2 способа является то, что для защиты данных от утраты используется только зеркалирование, что, как отмечено, например, в RU 2501072 C2, часто не является оптимальной и дешевой стратегией защиты данных от утраты.
Существующие способы защиты от конфиденциальности и целостности данных. Защита конфиденциальности и целостности данных, как правило, обеспечивается применением криптографических преобразований к данным, таких как ГОСТ 21147-89, AES, 3DES, RSA, ГОСТ Р 34.11-2012, SHA. Кроме программных реализаций этих алгоритмов, существуют также
и аппаратные решения. В частности, для защиты конфиденциальности данных, в US 8239690 В2 (публ. 07.08.2013) предложена конструкция защищенного съемного Flash-носителя, на котором выделяется специальная защищенная область, в которой хранится информация для аутентификации пользователя и доступ к которой может получить только специальным образом разработанная программа, хранящаяся на устройстве. Данные на Flash-носителе шифруются с использованием ключа, получаемого вычислением хэш-функции от пароля, который вводит владелец Flash-носителя при аутентификации на устройстве. Способы защиты конфиденциальности и целостности данных, в частности, средство, описанное в US 8239690 В2, в свою очередь, не решают задачу защиты доступности данных.
Средства защиты конфиденциальности и целостности, основанные на программной или аппаратной реализации, в частности, отмеченных выше алгоритмов, используют секретные ключи или секретные пароли, на основе которых вырабатываются секретные ключи. Надежность защиты конфиденциальности и целостности в таких решениях основана на том допущении, что секретный ключ всегда остается в секрете, а пароль пользователем выбран так, что его вычислительно сложно подобрать. Однако на практике пользователями не всегда выполняются требования в отношении обеспечения секретности ключей или выбора сложных паролей, что может привести к ослаблению защиты конфиденциальности и целостности данных. В частности, если система парольной аутентификации настроена на использование только сложных паролей, например, в соответствии с рекомендациями из [?], то пользователь в часто не запоминает пароль, а записывает его [?]. При этом, в корпоративной среде пользователь в меньшей степени мотивирован на защиту корпоративных данных, поэтому записанный им пароль обычно оставляется, например, приклеенным к экрану монитора, или под клавиатурой. В случае же собственных информационных активов (учетные данные для доступа к Интернет-банкингу, переписка с партнерами и т.п.) пользователь заинтересован в их защите и, таким образом, либо запоминает сложный пароль, либо обеспечивает защиту записанного пароля:
хранит пароль, например, в личном кошельке или в личном телефоне. Таким образом, использование криптографических преобразований для надежной защиты конфиденциальности и целостности приводит к необходимости управлять жизненным циклом криптографических ключей или паролей, что приводит к необходимости пользователям запоминать сложные пароли. Это в свою очередь приводит к ослаблению защиты, так как из-за неудобств, связанных с запоминанием сложного пароля, пользователь обычно выбирает простой и, таким образом, легко подбираемый пароль. В то же время пользователь готов испытывать неудобства при использовании сложного пароля обычно с случае собственной заинтересованности в защите данных.
Существующие решения комплексной защиты доступности, конфиденциальности и целостности данных. Одновременное решение задач защиты доступности, конфиденциальности и целостности обычно достигается за счет последовательного применения сначала криптографического преобразования к данным, а затем применения технологии резервного копирования данных. Защита конфиденциальности и целостности данных актуальна как для систем типа RAID, где все носители размещены в одном конструктивном блоке, так и для распределенных систем хранения, то есть для сетевых хранилищ. Так в патенте США US 20050081048 А1 (публ. 14.04.2005) предложен метод защиты данных в RAID-массивах, согласно которому перед записью на RAID-массив (после чтения с RAID-массива) данные шифруются (расшифровываются) специально выделенным устройством, подключенным к PCI-шине. Ключ шифрования/расшифрования считывается с внешнего запоминающего устройства и/или запрашивается у пользователя. В патенте США US 8209551 В2 (публ. 26.06.2012) предложен метод защиты информации для RAID-массивов, согласно которому перед записью в массив данные разбиваются на несколько сегментов, часть из которых шифруется, а часть остается в открытом виде, после чего от шифрованных и нешифрованных данных вычисляются контрольные суммы. Шифрованные сегменты, сегменты в открытом виде и контрольные суммы далее
распределяются по дискам RAID-массива. При этом восстановление незашифрованных данных невозможно без знания секретного ключа, известного легальному пользователю. В патенте США US 7752676 В2 (публ. 06.07.2010) предложен метод защиты данных в сетевом хранилище, согласно которому, пользовательский запрос на чтение(запись) данных сначала проходит процедуру авторизации, и только в случае разрешения операции выполняется соответственно расшифрование (шифрование) данных на сетевом хранилище. Ключи шифрования/расшифрования хранятся на стороне клиента.
Другой вариант комбинированной защиты предложен в патенте US 20110107103 A1 (публ. 05.05.2011), согласно которому данные хранятся в облаке, а модуль шифрования хранится не на стороне клиента, а на стороне провайдера облачного хранилища. Это решение предназначено, как правило, для защиты резервных копий данных в облаке, хотя оригинальные данные хранятся на стороне клиента в исходном виде. При этом для обеспечения защиты конфиденциальности данных файл с данными сначала разбивается на части, а затем каждая часть преобразуется с помощью криптографического алгоритма и записывается на один или несколько носителей в облаке. Защита от утраты обеспечивается в случае, когда данные утрачиваются на стороне клиента. В этом случае резервная копия восстанавливается из облака. Недостатком этого решения является то, что модуль шифрования находится на стороне провайдера, тем самым потенциально провайдер имеет возможность получить доступ к данным пользователя. Кроме этого, на стороне клиента данные от нарушения конфиденциальности не защищаются.
Отметим, что конфиденциальность в отмеченных выше комбинированных решениях обеспечивается также за счет использования шифрования на основе секретных ключей, которые генерируются или защищаются с помощью паролей, проблемы использования которых отмечены выше. Таким образом, обеспечение конфиденциальности данных в таких комбинированных решениях связано с использованием криптографических ключей или
паролей, что приводит к введению дополнительных организационных мер в отношении либо использования носителей, на которых хранятся криптографические ключи, либо в отношении сложности паролей. Однако, запоминание сложных паролей создает неудобства у пользователей систем защиты, что приводит к послаблению системы защиты, так как пользователи часто игнорируют требования к сложности при выборе пароля.
Проблема запоминания сложного пароля или криптографического ключа может быть разрешена, например, с использованием методов распределения секрета, когда секрет (в данном случае пароль или криптографический ключ) распределяется между устройствами, принадлежащими пользователю.
Системы защищенного хранения данных без использования секретных ключей предложены, например, в патентах 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 рассматриваются различные варианты построения
распределенного хранения с использованием секретных ключей: 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. Также отметим, что эти распределенные защищенные системы хранения данных предназначены только для защиты конфиденциальности и доступности данных, и не предусматривают защиту целостности данных.
В патенте RU 2485584 С2 (публ. 20.06.2013) предложен другой способ построения комбинированной защиты, не требующий управления жизненным циклом секретных ключей или паролей. Этот способ является наиболее близким к предлагаемому способу одновременной защиты доступности
и конфиденциальности хранящихся данных. Описанный в патенте RU 2485584 С2 способ обеспечивает одновременную защиту доступности и конфиденциальности данных за счет разделения кодового слова на две части, одна из которых (конфиденциальная), состоящая из символов полезных данных и случайных символов, помещается в защищенную область (например, в чип на смарт-карте), а вторая часть - контрольная сумма - помещается в незащищенную область. Согласно RU 2485584 С2, несанкционированный доступ к контрольной сумме в незащищенной области не несет какой-либо информации за счет вставки блоков случайных данных в блок полезных данных перед кодированием. Способ организации защиты, описанный в RU 2485584 С2, предпочтительно предусматривает явное выделение защищенной (и тем самым, более дорогой) области и незащищенной области, что не позволяет применять этот метод в среде, где заранее неизвестно, какая область хранения является защищенной, а какая не является таковой. Например, этот способ не подходит, когда в качестве областей хранения конфиденциальной информации и контрольной суммы должны быть выбраны два одинаково используемых ("равноправных") Flash-носителя. Использование способа, описанного в RU 2485584 С2, в таком случае приводит к необходимости применения особых организационных защитных мер при обращении с Flash-носителем, на котором сохраняется конфиденциальная информация, что меняет его статус "равноправности" у используемых носителей. Также, согласно описанию RU 2485584 С2, способ кодирования подходит для устройств, в которых из строя выходят отдельные ячейки памяти. Таким образом, выход из строя полностью незащищенной области не позволяет обнаруживать и исправлять ошибки в защищенной области, а выход из строя полностью защищенной области приводит к полной потере полезных данных.
К общему минусу комбинированных решений можно отнести и то, что комбинированные решения применимы в том случае, когда пользователь заранее знает, какая информация будет храниться в защищенных хранилищах и какие требования к каждому из этих хранилищ предъявляются.
Однако часто заранее пользователь не может предугадать, какая информация будет храниться, и какие требования к ней предъявляются. Обычно на компьютере хранится разнородная информация, к которой предъявляются различные требования по защите. Например, в отношении собранной на компьютере видеотеки предъявляется требование по обеспечению защиты только доступности данных (защита от утраты); в отношении информации о банковских счетах/PIN-кодах необходимо обеспечить защиту конфиденциальности, а в отношении фотографий обычно необходимо обеспечить защиту доступности данных и защиту конфиденциальности, возможно менее строгую, нежели в отношении банковских счетов/PIN-кодов. Если заранее пользователь может определить типы хранимой информации, требования к защите, то в этом случае подходящим вариантом будет одно из комбинированных средств защиты на основе технологии RAID. Но такие решения подходят в случае, когда хранимые объемы информации достаточно велики, чтобы выделять для них защищенные разделы в RAID-массивах. Если же информация небольшого объема, то выделять целый раздел под такую информацию не имеет смысла. Предпочтительнее в этом случае использовать средства шифрования отдельных файлов. Также, если нужно обеспечить гарантированное удаление определенных данных, то предпочтительнее использовать средства гарантированного удаления отдельных файлов, а не шифрованные разделы RAID-массивов. Эту задачу обычно решают специальные средства, которые реализуют алгоритмы гарантированного удаления файлов, например, алгоритм, описанный в ГОСТ Р 50739-95.
Все это приводит к тому, что если владельцу данных необходимо в отношении одних данных применять резервное копирование, в отношении других - шифрование и/или контроль целостности, а в отношении третьих - гарантированное удаление, то для решения поставленных задач необходимо применять три средства защиты, реализующие соответственно функции RAID-массива, функции вычисления криптографических преобразований и функции гарантированного удаления. Таким образом, нерешенной является задача разработки единого технического решения, позволяющего
пользователю в зависимости от его потребностей в степени защиты от утраты данных, степени защиты конфиденциальности и целостности данных, в зависимости от имеющихся носителей данных, а также в зависимости от удобства использования гибко управлять защищенными хранилищами. При этом актуальным является решение, во-первых, позволяющее обеспечивать конфиденциальность данных, не применяя секретных ключей для криптографического преобразования, таким образом, не требующее затрат на управление жизненным циклом криптографических ключей, и, во-вторых, не накладывающее жестких ограничений на тип и количество носителей, на основе которых строится защищенное хранилище.
Анализ предшествующего уровня техники и возможностей, которые возникают при совместном использовании существующих технических решений, позволяет получить новый результат: способ защиты доступности, конфиденциальности и целостности хранимых данных (СЗДиКХД) и систему настраиваемой защиты хранимых данных (СНЗХД).
3 Раскрытие изобретения
3.1 Сущность изобретения
Предлагается способ защиты доступности и конфиденциальности хранимых данных (СЗДиКХД), основанный на предварительном случайном кодировании данных, разделении кодовых слов на части и распределении частей по имеющимся носителям данных. В качестве метода случайного кодирования используется обобщенный метод кодового зашумления [2]. С целью повышения конфиденциальности данных предлагается регулярная смена кодеков путем выбора используемого кодека из заранее известного множества кодеков с использованием генератора псевдослучайных или случайных чисел. Это позволяет усилить защиту от статистических атак (см., например, [4], [5]) и атак многократного перехвата (см. [6], [7]), которым подвержен классический метод кодового зашумления (см., например, [1], [2]). После кодирования полученные кодовые слова разделяются
на произвольное количество частей, каждая из которых записывается на соответствующий носитель.
Также предлагается система настраиваемой защиты хранимых данных (СНЗХД) на основе последовательного применения преобразования данных, разделения на части преобразованных данных и распределения частей по носителям данных. В системе может использоваться любой алгоритм преобразования данных, как для защиты доступности данных, так и для защиты конфиденциальности и целостности данных. Преобразованные данные могут разделяться на произвольное число частей, которое ограничено только количеством доступных носителей данных. При этом система позволяет на базе одного набора носителей данных создавать различные защищенные распределенные хранилища, в которых используются разнотипные алгоритмы преобразования данных.
3.2 Технический результат
Технический результат СЗДиКХД заключается в повышении защищенности конфиденциальности данных за счет применения случайного кодирования с регулярной псевдослучайной сменой кодеков и за счет распределения частей кодовых слов по нескольким носителям данных. Технический результат СНЗХД заключается в повышении конфиденциальности данных, при использовании блока усиленной защиты, и в оптимальном использовании носителей данных за счет возможности создания на базе одного набора носителей нескольких защищенных хранилищ с разными требованиями к защищенности доступности, конфиденциальности и целостности данных.
4 Краткое описание чертежей
Изобретение поясняется чертежами:
На Фиг. 1 изображены функциональные блоки, задействованные в СЗДиКХД.
На Фиг. 2 изображена схема кодирования данных в СЗДиКХД.
На Фиг. 3 изображена схема декодирования данных в СЗДиКХД.
На Фиг. 4 изображен компьютер с типичным набором подключаемых носителей данных.
На Фиг. 5 изображена структура древовидной системы хранения файлов на защищенном хранилище и вспомогательных хранилищах, на основе которых строится защищенное хранилище.
На Фиг. 6 изображена структура СНЗХД.
На Фиг. 7 изображены некоторые примеры разбиения кодового слова.
На Фиг. 8 изображены функциональные блоки агента распределенной защиты СНЗХД.
На Фиг. 9 изображена последовательность записи данных на защищенное хранилище.
На Фиг. 10 изображена последовательность чтения данных с защищенного хранилища.
На Фиг. 11 изображено соответствие между считываемыми/записываемыми данными и представлением данных в защищенном хранилище в виде последовательности информационных блоков.
На Фиг. 12 изображены варианты применения СНЗХД для организации защищенных хранилищ.
На Фиг. 13 изображена схема типичного компьютера, на базе которого могут быть осуществлены СЗДиКХД и СНЗХД.
На Фиг. 14 изображена последовательность операций открытия защищенного хранилища.
На Фиг. 15 изображена последовательность операций закрытия защищенного хранилища.
На Фиг. 16 изображена последовательность операций сброса данных из кэша.
На Фиг. 17 изображена последовательность операций открытия файла на защищенном хранилище.
На Фиг. 18 изображена последовательность операций закрытия файла на защищенном хранилище.
На Фиг. 19 изображена последовательность операций чтения данных из файла на защищенном хранилище.
На Фиг. 20 изображена последовательность операций записи данных в файл на защищенном хранилище.
4.1 Подробное описание изобретения
4.1.1 Способ защиты доступности и конфиденциальности хранимых данных
Вариант применения кодового зашумления для распределения данных по носителям описан в работе [8]. Этот метод позволяет обеспечить защиту от частичного наблюдения данных и от частичной утраты данных. Для полноты раскрытия сути изобретения приведем описание метода кодового зашумления, который, в отличие от классических алгоритмов шифрования, типа ГОСТ 21147-89, AES, 3DES, RSA, на практике пока не используется для защищенного хранения данных. Пусть - линейный [n, l, ]-код длины n, размерности l (над полем Галуа F, |F|=q, q - степень простого числа) с кодовым расстоянием ; С - линейный [n, m, d]-код, являющийся подкодом кода . Кодирование выполняется блоками по k:=l-m символов поля F в блоки по n символов того же поля. В дальнейшем предполагается, что в памяти компьютера, где адресуемой ячейкой памяти обычно является байт (восемь двоичных разрядов), k символов поля F занимают k1 байтов, а n символов поля F занимают n1 байтов. Для простоты реализации на компьютере предпочтительно использовать линейные коды и С над полями Галуа характеристики 2 такие, для которых размерности соответственно m и l и длина n в битовом представлении кратны 8. Не ограничивая список вариантов, примерами подходящих пар кодов (, С) являются: пара (RM(5,5), RM(2,5)), где RM(r,w) - двоичный код Рида-Маллера, размерности и длины 2w; множество пар , где - код Рида-Соломона длины N и размерности L над полем F мощности 256, а - его подкод размерности М.
Опишем правила кодирования и декодирования данных. Пусть - порождающая матрица кода , - соответствующая проверочная матрица, G и Н - соответственно порождающая и проверочная матрицы базового кода С. Так как С - подкод кода , то, без потери общности, матрицы и Н представимы в виде:
где G* - (k×n)-матрица, - (k×n)-матрица. Кодирование информационного вектора S=(s1, …, sk)∈Fk выполняется по правилу:
где V∈Fm - случайный (или псевдослучайный) вектор, а запись (а, b) для векторов над одним полем обозначает приписывание справа вектора b к вектору а. Код С принято называть базовым кодом, а пару (,С) - факторным кодом [факторным, кодеком) [9]. Матрицу будем называть порождающей матрицей факторного кода (,С). Генерация псевдослучайного вектора V длины m выполняется любым криптографически стойким генератором псевдослучайных чисел, например, проходящим все тесты NIST [3] на проверку случайности генерируемой последовательности. Предпочтительными в использовании являются генераторы, требующие небольшое число тактов процессора для генерации очередного значения псевдослучайной последовательности. Не ограничивая список вариантов, возможными генераторами могут быть алгоритмы ISAAK, ISAAK+, RC4. Так как для декодирования данных в методе кодового зашумления не используется генерируемая псевдослучайная последовательность, то ре-инициализация (повторная инициализация) генератора псевдослучайных чисел может производиться в любое время по усмотрению кодирующей стороны. Это позволяет повысить стойкость кодового зашумления и исключить возможную атаку анализа данных, закодированных периодической последовательностью.
При передаче по каналу кодовое слово С может быть испорчено, то есть получатель вместо С получит испорченное слово С′. Здесь и далее под каналом передачи данных понимаются как пространственно-временные каналы передачи данных (системы связи), так и временные каналы (системы хранения). В системах хранения, например, могут выйти из строя отдельные ячейки памяти, что можно рассматривать как помеху типа стирания. Если количество стертых символов кодового слова не превышает , то исходное кодовое слово может быть восстановлено однозначно. В общем случае для декодирования имеющегося слова С′, возможно испорченного, сначала применяется алгоритм декодирования кода для восстановления по слову С′ истинного кодового слова С. Далее, согласно [7], матрицу Н вида (1) всегда можно выбрать так, что извлечение информационного вектора S из соответствующего декодированного кодового вектора С выполняется по правилу:
Показателем защищенности от частичного наблюдения является количество возможных информационных слов, которые может получить наблюдатель по подслушанным данным. Это количество определяется следующим образом. Для кода K и его подкода L последовательность
, i=0, …, n
называется относительным обратным профилем размерность/длина [10], где PJ[М] - проекция кода М на множество номеров координат J. Известно, что если количество нестертых символов µ такое, что , то по нестертым данным восстановить данные невозможно в теоретико-информационном смысле, где С⊥ и - дуальные коды соответственно к кодам С и . В общем случае количество претендентов при подслушивании не более µ символов определяется как .
Отметим, что если защита данных от частичной утраты не требуется (например, вероятность стирания символа пренебрежимо мала), код может быть размерности n, тогда матрица будет квадратной, и, согласно,
[1], будет обеспечена защита данных в теоретико-информационном смысле, если злоумышленнику будет доступно менее d(C⊥) символов каждого кодового слова, где d(С⊥) - кодовое расстояние для кода C⊥.
Метод кодового зашумления в ряде случаев подвержен статистической атаке и атак многократного перехвата (см. [4], [5], [6], [7]). С целью защиты от таких атак повышения конфиденциальности предлагается обобщение метода кодового зашумления. Пусть FCq(n, k, µ, ν) - конечное множество факторных кодеков мощности L, преобразующих информационные векторы длины k (над полем F) в кодовые векторы длины n так, что утрата не более ν символов кодового слова позволяет однозначно восстановить информационное слово, а подслушивание не более µ символов кодового слова не дает наблюдателю какой-либо информации о закодированном сообщении. Примером набора FCq(n, k, µ, ν) может быть подмножество кодеков, соответствующих кодам, комбинаторно-эквивалентным (полученным перестановкой столбцов в проверочной матрице) какому-то помехоустойчивому коду. Отличием от классического метода кодового зашумления является то, что в предлагаемом методе для каждого информационного блока длины k факторный кодек не фиксирован, а выбирается случайно или псевдослучайно из набора FCq(n, k, µ, ν). Далее поясняется эта идея для построения способа защиты доступности и конфиденциальности данных в системах хранения.
Пусть имеется t(>0) носителей данных (хранилищ), из которых к любым ttap(≥0) имеет доступ несанкционированный наблюдатель (т.е. на этих хранилищах данные могут быть подсмотрены) и из которых любые terr(≥0) могут выйти из строя (т.е. данные на этих хранилищах могут быть утрачены).
На основе тройки (t, ttap, terr) выбирается такой набор кодеков FCq(n, k, µ, ν) и такое правило разбиения кодовых слов на t частей, чтобы:
- объединение t частей давало возможность однозначно восстановить все кодовое слово;
- любые ttap частей в совокупности содержали не более µ различных
кодовых символов;
- любые terr частей в совокупности содержали не более ν различных кодовых символов.
Предпочтительно для ускорения операций использовать такие кодеки (и соответственно, такое поле F) и такие правила разбиения, чтобы длина кодового слова, а также длины частей кодового слова (после разбиения) при машинном представлении в виде последовательности нулей и единиц были кратны 8. Однако другие з