Вычислительные технологии
Том 20, № 6, 2015
Об экспериментальной оценке стойкости метода случайного кодирования к атаке многократного наблюдения частичных кодовых векторов
Ю.О. ГАЗАРЯН, Ю.В. Косоллпов*
Южный федеральный университет, Ростов-на-Дону, Россия *Контактный e-mail: itaim@mail.ru
Рассматривается модель наблюдения частично стертых данных, которая возникает, например, в рамках задачи гарантированного удаления данных на носителях информации. Предполагается, что данные закодированы с помощью метода случайного кодирования смежными классами, для которого ставится задача оценки среднего количества частично стертых кодовых сообщений, по которым наблюдатель сможет восстановить закодированный информационный вектор. С этой целью построены и обоснованы алгоритмы для экспериментальной оценки количества кодовых сообщений в зависимости от модели стирания данных. Для модели случайного и равновероятного стирания фиксированного количества кодовых символов, а также для модели стирания каждого кодового символа с заданной вероятностью представлены результаты вычислений в случаях, когда метод случайного кодирования реализован на основе [7, 4]-кода Хэмминга и [8, 4]-кода Рида — Маллера.
Ключевые слова: случайное кодирование, случайное стирание, многократное наблюдение.
1. Постановка задачи
Рассмотрим схему информационно-аналитической модели на рис. 1, где два легитимных пользователя (отправитель и получатель) обмениваются сообщениями по каналу передачи данных без помех (главному каналу), а нелегитимный участник (наблюдатель) подслушивает передаваемые данные по каналу со стираниями (каналу наблюдения). Наблюдатель не имеет априорной информации о содержании передаваемых сообщений. Задачей отправителя является кодирование информационных векторов таким образом, чтобы наблюдатель не смог раскрыть содержание закодированных данных в рамках заданной модели стирания кодовых векторов. Часто в качестве метода кодирования используется случайное кодирование, когда каждому информационному вектору ставится в соответствие подмножество кодовых векторов, при этом разным информационным векторам соответствуют непересекающиеся подмножества кодовых векторов [1].
В настоящей работе ставится задача оценки среднего количества частичных кодовых слов, необходимого для снятия неопределенности об информационном слове в рамках
© ИВТ СО РАН, 2015
Рис. 1. Схема информационно-аналитической модели: получатель принимает данные от отправителя без помех, а наблюдатель принимает данные со стираниями
случайного стирания кодовых символов. Отметим, что такая постановка задачи характерна, например, для современных систем хранения данных в рамках задачи гарантированного удаления; мотивировка задачи подробно раскрывается в разд. 2. В третьем разделе приводится описание математической модели атаки многократного наблюдения, а в четвертом разделе строится алгоритм для экспериментальной оценки числа р(М,а) — среднего количества частичных кодовых слов, необходимого для снятия неопределенности о неизвестном информационном векторе с вероятностью а в рамках модели случайного стирания М. Результаты вычислений для бинарных кодов Хэм-минга и Рида — Маллера приводятся в пятом разделе. Отметим, что для исследования выбраны две модели стирания символов в кодовых словах:
ми (Р)
— модель равновероятного стирания р координат в кодовом векторе, MEC(p) — модель стирания с вероятностью стирания р каждого символа кодового слова. Выбор этих моделей стирания мотивирован тем, что они могут быть просто реализованы, например, для стирания данных на носителях информации.
2. Мотивировка поставленной задачи
Поясним, когда возникает рассматриваемая информационно-аналитическая модель при использовании систем хранения, построенных по технологии электрически программируемой памяти — EEPROM (Electrically Erasable Programmable Read-Only Memory), в системах хранения в качестве отправителя и получателя данных выступает владелец носителя, а в качестве наблюдателя — субъект, получивший случайно или преднамеренно несанкционированный доступ к носителю. Положительными особенностями EEPROM-носителей являются их компактность и невысокое энергопотребление при чтении данных. С другой стороны, на операцию стирания ячеек памяти затрачивается существенно больше энергии [2]. Поэтому с учетом того, что перезапись ячеек памяти выполняется путем стирания предыдущих значений ячеек и записи (программирования) новых значений, в целом возрастает время выполнения операций по модификации данных и соответственно повышается количество потребляемой энергии. В связи с этим в теории кодирования возникло направление по разработке методов кодирования
данных таким образом, чтобы имелась возможность как можно дольше использовать ячейки памяти для записи новых данных, не прибегая к стиранию (перепрограммированию) предыдущих значений ячеек [3]. Примером такого кода является простой код, построенный по методу Р. Ривеста и А. Шамира [4].
Информационный бит Кодовое слово № 1 Кодовое слово № 2 0 00 11 1 10 01
Код Ривеста — Шамира устроен таким образом, что каждому информационному биту ставится в соответствие пара кодовых слов длины два. Если а(Е {0; 1}) — информационный бит, а ca — соответствующее кодовое слово № 1, то изменение информационного бита а на значение Ь(е {0; 1}) осуществляется изменением некоторых нулевых битов кодового вектора ca на единичные биты так, чтобы получился кодовый вектор № 2, соответствующий информационному биту Ь. Если каждая ячейка памяти может иметь два состояния: "0" — стертая ячейка и "1" — программированная ячейка, то, используя код Ривеста — Шамира, однократное изменение информационных бит можно осуществить только программированием некоторых ячеек без использования дорогой операции стирания. Например, если а =1 и ca = (10), то замена бита а значением b = 0 выполняется программированием второй ячейки в кодовом слове ca так, чтобы получилось кодовое слово c = (11), соответствующее биту Ь. Отметим, что актуальность таких методов кодирования связана также с тем, что ячейки памяти обладают ограниченным количеством циклов перезаписи: от 10 000 до 100 000 для EEPROM-носителей, построенных по технологии NOR, и от 100 000 до 1 000 000 для носителей с технологией NAND [5].
К наиболее известным способам кодирования можно отнести WOM-коды [4, 6, 7], WAM-коды [8] и WEM-коды [9, 10]. С другой стороны, с точки зрения защиты конфиденциальности данных важным является гарантированное удаление ненужных данных из областей памяти [11]. В частности, как показало исследование [12], эта задача актуальна для EEPROM-носителей. Актуальность этой задачи связана с тем, что в таких носителях на уровне трансляции (FTL — Flash Translation Layer), отвечающем за представление EEPROM-носителя в виде диска, для ускорения операций модификации данных блок с измененными данными записывается в новую область памяти на носителе, а область памяти, содержащая устаревшие данные, помечается как незадействован-ная. При этом данные из незадействованной области не удаляются. В результате на EEPROM-носителе возникают области памяти, содержащие нестертые, возможно, ценные данные, которые недоступны для чтения стандартными средствами операционной системы, однако которые могут быть прочитаны с помощью недорогих специальных средств.
Требование сокращения количества стираний ячеек, с одной стороны, и гарантированного удаления данных, с другой — привело к появлению кодов, позволяющих кодировать данные в кодовые слова так (не используя секретных ключей), что стирание части кодового слова не позволяет в теоретико-информационном смысле восстановить закодированную информацию [13, 14]. Фактически предложенные в [13, 14] коды позволяют обеспечить защиту конфиденциальности данных в рамках модели, изображенной на рис. 1, и являются реализациями метода случайного кодирования, предложенного А. Вайнером в 1975 г. в работе [15]. В соответствии с [13, 14] данные на носителях сначала кодируются с помощью метода случайного кодирования, а затем символы кодовых
слов кодируются подходящим ШОМ/ШАМ/ШЕМ-кодом. Заметим, что метод случайного кодирования активно исследуется в рамках защиты конфиденциальности данных в подслушиваемых каналах связи [15-19], и работы [13, 14] являются одними из тех немногих работ (см. также [20]), в которых метод случайного кодирования применяется для защиты данных в системах хранения. Подробный обзор существующих способов случайного кодирования можно найти в [1].
Одним из наиболее известных способов случайного кодирования является кодирование смежными классами линейного [п,п — &]-кода С. [17]. Этот способ характеризуется числом ^0(< п) — максимальным количеством кодовых символов, по которым наблюдатель не может получить какую-либо информацию о закодированном информационном векторе длины к в рамках информационно-аналитической модели, изображенной на рис. 1. Другими словами, при необходимости обеспечения совершенной защиты должны быть стерты не менее п — ^0 символов каждого кодового слова; в этом случае множество претендентов информационных векторов, которое может построить наблюдатель по имеющимся у него ^0 кодовым символам, будет совпадать с множеством всех информационных векторов. Если же стерто меньше, чем п — ^0 кодовых символов, то множество претендентов на информационный вектор не совпадает с пространством всех возможных информационных векторов. Согласно [21], в общем случае при перехвате ^ координат кодового слова мощность множества претендентов равна дк-г, где д — мощность поля, а число г определяется из неравенств йг(С< ^ < ¿Г+\(Сх), где (¿\(Сх),..., ¿к(Сх)) — весовая иерархия [п, &]-кода С±, дуального к коду С.
Пусть N (к) — количество ячеек памяти (принимающих два значения), необходимое для хранения к информационных битов, М — количество модификаций данных без использования операции стирания ячеек памяти, р(8) — вероятность восстановления информации по одному частичному блоку данных при доле стираний 8 в этом блоке данных, 0 < 8 < 1.
В таблице приведены сравнительные характеристики двух систем хранения, в которых для сокращения числа перезаписей применяется ШОМ/ШАМ/ШЕМ-код, избыточность которого равна Л и который позволяет выполнять т модификаций данных без применения стирания ячеек памяти. Дополнительно в одной из систем для защиты от частичного наблюдения перед применением ШОМ/ШАМ/ШЕМ-кода данные кодируются смежными классами [п, п — &]-кода С. Здесь предполагается, что единицей стирания данных на носителе является кодовое слово используемого ШОМ/ШАМ/ШЕМ-кода. Из таблицы, в частности, видно, что без использования кодирования смежными классами при всех 8 < 1 вероятность р(8) всегда будет больше вероятности угадывания блока из нулей и единиц длины к (совершенная защита не обеспечивается). В то же время при кодировании смежными классами для 8 таких, что (1 — 8)п < ¿\(С±), вероятность р(8)
Характеристики систем хранения с применением и без применения метода кодирования смежными классами
Система N (к) М р(5)
Без использования [п, п — й]-кода С к т 2-&к
(1 — Л)
С использованием [п, п — й]-кода С п т 2г-к, (1г(С1±) < (1 — 8)п < (1Г+1(С
(1 — А)
будет равна вероятности угадывания, т. е. обеспечивается совершенная защита. Однако, очевидно, что платой за обеспечение совершенной защиты является увеличение избыточности: количество ячеек для хранения к битов данных увеличивается в п/к раз по сравнению с системой, в которой не используется кодирование смежными классами. Так как кодовые слова ШОМ/ШАМ/ШЕМ-кода стираются полностью, характеристика М не зависит от представления данных, в частности не зависит от того, используется или нет кодирование смежными классами.
Согласно таблице, если (1 — 6п) > (Сто р(6) всегда будет больше вероятности угадывания блока из нулей и единиц длины к. В этом случае говорят, что в теоретико-информационном смысле наблюдатель может получить ненулевую информацию о закодированном информационном векторе. В работе [19] рассмотрен способ использования ненулевой информации наблюдателем для полного снятия неопределенности о закодированном сообщении — метод многократного наблюдения частично стертых кодовых слов (возможно, разных), соответствующих одному неизвестному информационному вектору. Так, если наблюдателю известен формат данных и он может выделить те части блока закодированных данных, которые соответствуют одному и тому же информационному вектору б длины к, то имеется возможность сузить множество претендентов.
Атака путем многократного наблюдения характерна для ЕЕРИОМ-носителей (рис. 2). Например, как показало исследование [12], одни и те же данные, возможно, с некоторыми изменениями могут быть записаны в 16 разных страниц флэш-памяти, только одна из которых содержит данные с последними изменениями и доступна для чтения штатными средствами операционной системы. В этом случае, если перед записью данные кодируются смежными классами, например, с использованием кодов из [13] (с последующим кодированием ШОМ/ШАМ/ШЕМ-кодом), а на уровне трансляции ЕЕРИОМ-носителя незадействованные области памяти стираются не полностью, а частично, то наблюдатель в обход штатного интерфейса операционной системы с большой вероятностью может найти до 16 областей памяти, соответствующих одинаковым информационным векторам, т.е. наблюдатель может провести атаку многократного наблюдения.
Рис. 2. Схема носителя, во флэш-памяти которого имеются частично стертые кодовые слова (показаны черными прямоугольниками), соответствующие одному информационному вектору
Отметим, что в найденных областях частичные кодовые слова могут быть разными, так как одному информационному вектору соответствует смежный класс кода С, но и в этом случае наблюдатель может сузить множество претендентов. В частности, в [19] показано, что если наблюдатель имеет возможность выбирать номера наблюдаемых координат в кодовых словах, то при кодировании смежными классами [7, 4]-кода Хэм-минга и при стирании трех символов (р0 = 4) наблюдателю достаточно трех кодовых слов для однозначного восстановления закодированного сообщения.
Однако не всегда наблюдатель может выбирать номера наблюдаемых координат. Например, при стирании данных на носителях процесс стирания находится под контролем владельца носителя (или разработчика носителя) и в общем случае может быть рандомизированным. При этом наблюдатель не может заранее выбрать оптимальные множества номеров подслушиваемых координат и, таким образом, не может заранее минимизировать количество частично стертых кодовых слов для снятия неопределенности о закодированной информации. Иначе говоря, при случайном стирании наблюдателю может потребоваться большее количество частично стертых кодовых векторов для снятия неопределенности, чем в ситуации, когда наблюдаемые координаты им выбираются. Следующие разделы посвящены задаче оценки необходимого количества наблюдения для снятия неопределенности.
3. Математическая модель атаки многократного наблюдения
Пусть Е = — поле Галуа мощности q, и = {1;...; и}, С — [п,п — &]-код, С С Ега, С — порождающая матрица кода С, представленная без потери общности в систематическом виде: С = (1п-к Р), где 1п-к — единичная матрица размера (п — к) х (п — к), Р — (п — к х ^)-матрица без нулевых столбцов. Сопоставим информационному вектору б(€ ) кодовый вектор с = (V, б + \Р)(е Ега), где вектор V выбирается случайно и равновероятно из пространства Еп-к. Несложно видеть, что при фиксированном информационном векторе б соответствующие кодовые векторы принадлежат одному смежному классу кода С, а для двух разных информационных векторов кодовые векторы будут разными. В связи с этим рассмотренный метод называется кодированием смежными классами [13, 17], а код С — базовым кодом [22]. Для извлечения информационного вектора б из кодового вектора с достаточно умножить слева вектор с на проверочную матрицу Н = (—Рт 1п-к) базового кода С, где Рт — транспонированная матрица Р.
Множество номеров наблюдаемых координат в кодовом векторе длины п обозначим через т(С п = {1;...; п}) и назовем окном наблюдения, а мощность множества т назовем размером окна наблюдения, т = п\т — множество номеров ненаблюдаемых координат. Наблюдаемое значение при передаче по главному каналу вектора с обозначим сг.
Пусть наблюдатель может среди частично наблюдаемых векторов выделить набор
(ст; ) = 1....,1 , Ы = ^ (1)
векторы в котором соответствуют одному информационному вектору б; для г = ] в общем случае Тг = т^ и ^^ = ^^. Целью наблюдателя является восстановление неизвестного ему информационного вектора б по набору (1). Пусть МТ1 (С ) — множество информационных векторов, которые позволяют наблюдать вектор сп, или иначе — множество претендентов. Наблюдатель с целью отыскания закодированного информационного вектора б по каждому вектору сп независимо от ранее наблюдаемых векторов строит множество МТ1, а затем находит множество
Ятъ...,п := П ЯТ] = М
ТЬ...,Т;_1
пМТг,
(2)
з=1
тем самым пытаясь после г-го наблюдения сузить множество претендентов, которому принадлежит неизвестный вектор б. Формулу (2) для удобства назовем атакой многократного наблюдения. Отметим, что атака (2) проста в реализации и может быть автоматизирована.
Так как все информационные сообщения для наблюдателя равновероятны, вероятность правильного восстановления информационного вектора б по набору (1) равна 1/1ЯТ1,...,Т11. В [19] доказано, что
где Нт. — матрица, составленная из столбцов проверочной (к х п)-матрицы Н базового кода С с номерами столбцов из множества т^; Сс(Нт.) — линейная оболочка, натянутая на столбцы матрицы , г = 1, ...,1.
Таким образом, если наблюдатель может выбирать множества стираемых кодовых символов в каждом кодовом слове, то он может, используя формулу (3), аналитически или вычислительно до проведения атаки (2) минимизировать мощность набора (т\,...,т1), т.е. минимизировать число I так, чтобы за I наблюдений информационный вектор б был однозначно восстановлен. (С точки зрения наблюдателя, чем меньше частичных кодовых векторов необходимо для снятия неопределенности об информационном векторе, тем лучше.) Также в случае, когда I фиксировано, наблюдатель может подобрать такие I окон наблюдения, что в результате множество претендентов МТ1,..,П будет иметь наименьшую из возможных мощность. Например, для кодов Хэмминга и Рида — Маллера задача поиска минимального набора окон наблюдений при фиксированном их размере решена в [19].
Однако, как отмечено выше, не всегда наблюдатель может контролировать модель стирания кодовых символов. Так, при случайном стирании кодовых символов ему заранее известна только вероятность стирания символов из заданного множества, что характерно при стирании кодовых слов на носителях информации. В [22], например, для моделей случайного стирания Ми (р) и МЕС(р) аналитически получены формулы вычисления количества получаемой наблюдателем информации при однократном перехвате. Задача аналитической оценки стойкости метода случайного кодирования к атаке многократного наблюдения по схеме (2) представляется трудной даже в рамках простых моделей случайного стирания
Ми (Р)
и МЕС(Р).
В следующем разделе строится алгоритм для экспериментальной оценки величины р(М,а) — мощности набора вида (1) частично стертых в соответствии с моделью М кодовых векторов, по которым при использовании наблюдателем атаки по схеме (2) неизвестный информационный вектор может быть восстановлен с вероятностью а. Отметим, что р(М, 1) — это среднее количество наблюдаемых частично стертых в соответствии с моделью М кодовых слов, по которым гарантированно восстанавливается информационный вектор. С точки зрения отправителя и получателя, для заданного а максимальное количество д одинаковых информационных векторов в сообщении должно удовлетворять условию д < р(М, а), чтобы наблюдатель не имел возможности восстановить информационный вектор с заданной им вероятностью а.
1^Т1,...,Т11 = д
а1т п )
(3)
4. Алгоритм вычисления а.)
Построим алгоритм экспериментальной оценки р(М,а) в зависимости от модели случайного стирания М. Для этого сначала построим алгоритм Се1АррНсап18Саг^паН1у для вычисления \МТ1..,Т11 в соответствии с (3). Для г = 1,...,/ введем обозначения: г г = юп^Л^.), ) — алгоритм, который по матрице Н^ строит пару матриц
Иг), где — (п — х п — ^¿)-матрица, а — перестановочная матрица, причем
1х х = (£ £) =; (4)
Здесь Ог^ и Ог>2 — нулевые матрицы размера ((п — ^ — Гг) х к) и ((п — ^ — Гг) х к — Гг).
Исходные параметры: Н — проверочная матрица базового кода С, т1,...,Г1
набор окон наблюдений
Результат: \МТ1...,Т1 \ М = (0) (0 € ' цикл г = 1, ...,1 выполнять
(Рг,Бг ):=8У81(Я^; ); построить матрицу Сг вида (4); Зг := (—Р?\1к-и) х Д-1;
(ч
г := г + 1; конец цикла возвратить дк-ЛеЬ(М).
Отметим, что так как в алгоритме GetApplicantsCardinality матрицы Зг вычисляются независимо друг от друга, этот алгоритм может быть распараллелен при программной реализации.
Лемма 1. Алгоритм GetApplicantsCardinality по матрице Н и множествам Т1,...,Т1 вычисляет \.МТ1,..,Т1 \.
Доказательство. Пусть г € /. Матрицу Сг вида (4) можно рассматривать как порождающую матрицу некоторого линейного [к, г^]-кода Сг. Так как она имеет систематический вид, проверочная матрица кода С г имеет вид (—Р^ 1к-п). Домножение на матрицу И-1 необходимо для сохранения порядка столбцов, зафиксированного в исходной матрице Н^.. Чтобы найти размерность пересечения линейных оболочек Сс(Нт.) для всех г = 1,...,1, необходимо найти размерность подпространства векторов, одновременно принадлежащих линейным кодам с проверочными матрицами Зг. То есть необходимо
найти ранг — ^ г г х ^ -матрицы вида (^ 3^т ... 3^ )т. □
Следствие 1. Если в последовательности т1,...,Г1 хотя бы одно множество мощности п, то GetApplicantsCardinality(Д", Т1,..., 77) = 1.
Доказательство. Без потери общности положим, что Т\ = п. Тогда гапк(Я^1) = 0, следовательно, 3\ = . Тогда построенная в алгоритме Ое1АррИсап1вСаг^паШу матрица М будет иметь ранг к. □
Из следствия 1, в частности, получаем очевидный факт: в рамках вырожденной модели стирания, когда ни один кодовый символ не стирается, наблюдателю достаточно одного кодового слова для восстановления информационного вектора б. Это действительно так, потому что т.\ = п для всех г и, таким образом, гапк(Д^.) = 0. В более общем смысле: если модель стирания данных такая, что с большой вероятностью в кодовом слове не стирается ни один символ, то с большой вероятностью наблюдатель сможет раскрыть содержание закодированной информации уже при малой мощности набора (1). Кроме вырожденной модели стирания, очевидно, неподходящей с точки зрения защиты данных является модель МЕС(р") при малых р (в частности, при р< 0.1 для рассмотренных в настоящей работе кодов), так как высока вероятность события, когда в кодовом слове ни один кодовый символ не стирается. Также очевидно следующее
Следствие 2. Если в последовательности Т\,..., Т[ для каждого г = 1,..., I выполняется равенство гапк(Л^.) = к, то Ое1АррИсап1вСаг&паШу(Я, Т\, ...,Т[) = .
Следствие 2 дает критерий совершенной защиты после I наблюдений, когда многократный (/-кратный) перехват не позволяет сделать множество претендентов меньшим по мощности, чем все пространство информационных векторов. Как показано в [17], если |т| < ¿(Сх), где С± — код, ортогональный к базовому коду С, то гапк(Л^) = к. Например, для [7, 4]-кода Хэмминга С имеем ¿(С±) = 4. Следовательно, если в каждом кодовом слове останутся нестертыми любые три кодовых символа, то набор (1) из таких частичных кодовых слов для любого I не дает наблюдателю какой-либо информации об информационном векторе в рамках атаки (2). То же относится и к [8, 4]-коду Рида —Маллера С первого порядка, для которого ¿(С= 4.
Таким образом, при использовании [7, 4]-кода Хэмминга и [8, 4]-кода Рида — Маллера для обеспечения совершенной защиты в каждом кодовом слове должны быть стерты (детерминированно или случайно) соответственно любые четыре и пять кодовых символов. Заметим, что как для кода Хэмминга, так и для кода Рида — Маллера первого порядка найдутся такие "подходящие" множества стираемых координат мощности соответственно 3 и 4, что наблюдение данных на нестертых координатах не даст какой-либо информации о закодированном векторе. В этом случае, к примеру, на ЕЕРИОМ-носителях информации с целью сокращения числа стираемых ячеек для совершенной защиты от атаки (2) достаточно было бы стирать соответственно три и четыре координаты из таких "подходящих" наборов вместо соответственно четырех и пяти произвольных координат. Однако, как показано, например, в [20, 22], для [8, 4]-кода Рида— Маллера первого порядка таких "подходящих" наборов всего 14 из 70 возможных, что уменьшает период перезаписи ячеек памяти в пять раз по сравнению с тем, когда стираются любые четыре символа в каждом кодовом слове.
В следующем разделе экспериментально исследуется стойкость метода случайного кодирования на базе [7, 4]-кода Хэмминга и [8, 4]-кода Рида — Маллера в случаях, когда стирается небольшое количество кодовых символов при случайном и равновероятном выборе номеров стираемых координат либо когда количество стираемых кодовых символов является случайной величиной. Для этого разработан алгоритм СакРгоЫ^ экспериментального вычисления р(М, а), который в общем случае может быть применим к любым кодам и моделям стирания.
Исходные параметры: Н — проверочная матрица базового кода С, М —
модель стирания, а0 — предельное значение а, для которого оценивается р(М ,а), N — количество испытаний
Результат: список пар вида (/, ai) для I = 1, 2..., ai > а0 В = 0, I = 1;
// список пар вида (1,а1); LIST := 0;
до тех пор, пока В < а0 выполнять
Д = 0;
цикл i = 1,..., N выполнять
Выбрать в соответствии с моделью М множества T\,...,Ti; Дг := logg(GetApplicantsCardinality(#, т\, ...,ri));
Д := Д + Дг;
конец цикла
В := q-A/N; LIST := LIST U (I, В); I := I + 1; конец цикла возвратить LIST.
Отметим, что вычисление р(М,а) теоретически возможно и без применения экспериментального алгоритма CalcProbList, если провести вычисления размерностей пересечений для всех возможных (в рамках заданной модели стирания) наборов (t\,...,ti). Однако сложность такого переборного способа растет экспоненциально по /.В частности, для модели
ми (Р)
потребуется перебрать (Ср)1 последовательностей. Сложность же алгоритма CalcProbList имеет оценку Ö(N(I + 1)к3), где N — число опытов, а ö((l + 1)к3) — вычислительная сложность алгоритма GetApplicantsCardinality, применяющего метод Гаусса I раз посредством обращения к алгоритму Syst и один раз при вычислении определителя. Количество опытов N определяется в соответствии с известной формулой для объема выборки при повторном отборе: N = (а/ф)2, где а — среднеквадратичное отклонение дисперсии случайной величины, моделирующей среднюю размерность пересечения подпространств (не превышает к), а ф — средняя ошибка повторной выборки (насколько величина A/N может отличаться от истинного значения средней размерности пересечения подпространств). Величина ф влияет на размер интервала, которому может принадлежать истинное значение вероятности определения информационного вектора после I перехватов. Другими словами, для каждой пары (l,B) Е LIST истинная вероятность а угадывания информационного слова после I перехватов принадлежит интервалу [В/q^, B/q-^]. Например, для q = 2 при ф = 0.05 для каждой пары (1,В) Е LIST интервал будет иметь вид [0.962S, 1.04S], при этом потребуется не более (4/0.05)2 = 6400 опытов. Число опытов можно уменьшить за счет увеличения параметра ф, а также более тонкой оценки величины а.
Теорема 1. Пусть Н — проверочная матрица базового кода С, М — фиксированная модель стираний кодовых символов, LIST = CalcProbList(#,M.,a0,N), (I,а) — элемент списка LIST. Тогда р(М.,а) = I.
Доказательство. Рассмотрим пару ( I ,а) — элемент списка, построенного по алгоритму
CalcProbList( Н, М, а0, N). В соответствии с алгоритмом CalcProbList а = ^д^=1 .
Так как А1/м — средняя мощность множества претендентов после I наблюдений, а — вероятность найти информационное сообщение после I наблюдений в соответствии с моделью стирания М. □
5. Вычисление р(М., а.) для кодов Хэмминга и Рида — Маллера
В рамках настоящей работы реализованы алгоритмы GetApplicantsCardinality и CalcProbList для оценки р(М, а) в случае = Е2. Проведены вычисления для моделей стирания кодовых символов
Ми (Р)
и
МЕС(р)
, которые в рамках задачи гарантированного удаления данных на носителях информации просто реализуемы на программном или программно-аппаратном уровне. Отметим, что прикладной интерес, например, в системах хранения данных представляют коды малой длины [13, 23, 24]. Поэтому для исследования выбраны [7, 4]-код Хэмминга и [8, 4]-код Рида — Маллера, часто применяемые для борьбы с помехами в каналах передачи данных.
В обоих случаях в алгоритме GetApplicantsCardinality число опытов N = 3000; так как для выбранных кодов размерность пространства информационных векторов равна 4, средняя ошибка ф в этом случае будет не более у/42/3000 = 0.07. В рамках представленных ниже результатов предполагается, что кодовые символы кодируются независимо друга от друга с помощью подходящего ШОМ/ШАМ/ШЕМ-кода. Однако отметим, что если кодовые символы случайного кода кодируются поблочно, то предлагаемый в настоящей работе способ также может быть применим путем использования той модели стирания, в которую преобразуются модели
Ми Ы
или МЕС(Р). Например,
если для сокращения количества стираний используется [3, 2]-код Ривеста — Шамира, то модель
Ми Ы
преобразуется в модель случайного и равновероятного стирания соседних упорядоченных пар кодовых символов, при этом первый символ в этой паре имеет нечетный номер, а второй четный.
Результаты вычислений в рамках модели Мидля [7, 4]-кода Хэмминга показаны на рис. 3, а. На графике приведены три кривые для случаев, когда в каждом кодовом слове случайно и равновероятно стираются соответственно 3, 2 и 1 координаты или, что то же самое, случайно и равновероятно наблюдаются соответственно 4, 5 и 6 координат. Каждая кривая помечена числовым значением р — количеством стираемых координат. Случай, когда ни один кодовый символ не стирается, не показан, так как согласно следствию 1 в этом случае достаточно одного кодового вектора для снятия неопределенности об информационном векторе. Также не показаны случаи, когда стираются 4 и более координат, так как согласно следствию 2 в рамках такой модели стирания обеспечивается совершенная защита от атаки (2): размер окна наблюдения меньше <!(С= 4. На графике (см. кривую с меткой 3), например, видно, что при стирании трех координат в каждом кодовом векторе для правильного восстановления информационного вектора с вероятностью а = 0.95 и более необходимо не менее I = 33 частичных кодовых слов.
Результаты вычисления в рамках той же модели стирания для случая, когда С — [8, 4]-код Рида — Маллера первого порядка, приведены на рис. 3, б. Графики для стирания пяти и более координат не показаны, так как в этом случае обеспечивается со-
вершенная защита от атаки (2): размер окна наблюдения меньше ^С±) = 4 (см. следствие 2). На рис. 3, б видно, что при случайном и равновероятном стирании половины битов наблюдателю потребуется не менее I = 45 частично стертых кодовых слов для правильного восстановления вектора с вероятностью не менее а = 0.95.
Таким образом, если для [7, 4]-кода Хэмминга и [8, 4]-кода Рида —Маллера при стирании соответственно произвольных четырех и пяти кодовых символов обеспечивается одинаковый уровень защиты (совершенная защита), то при стирании случайно и равновероятно соответственно произвольных трех и четырех кодовых символов предпочтительнее с точки зрения противодействия атаке (2) применять код Рида —Маллера либо комбинаторно-эквивалентный ему код. Также случайный код на основе кода Рида — Маллера обладает большей относительной скоростью передачи данных: по 4 бита информации на 8 кодовых битах, в то время как случайный код с базовым кодом Хэмминга кодирует каждые 3 бита информации в 7 кодовых битах.
а
Рис. 3. Зависимость вероятности а восстановления информационного вектора от количества I частично стираемых кодовых слов для модели стирания кодовых символов МУ(р), р € {1; 2; 3; 4}: а — [7, 4]-код Хэмминга; б — [8, 4]-код Рида —Маллера
Результаты вычислений для модели стирания ^ЕС(р) при использовании тех же кодов показаны на рис. 4. Здесь случаи полного перехвата (р = 0, ни один кодовый символ не стирается) не показаны в силу их тривиальности. Каждая кривая помечена числом р, обозначающим вероятность стирания кодового символа в векторе. Заметим, что [7, 4]-код Хэмминга с точки зрения стойкости защиты от атаки (2) в рамках модели МЕС(Р) демонстрирует большую стойкость, чем [8, 4]-код Рида —Маллера. Так, например, при р = 0.6 для успешного восстановления информационного вектора с вероятностью 0.95 в случае использования кода Хэмминга требуется наблюдение не менее 45 пар, а при использовании кода Рида —Маллера — не менее 30 пар. Вычисления также показали, что с ростом параметров базового кода количество наблюдений для восстановления информационного сообщения для заданного а увеличивается. Среднее количество I частично стертых кодовых слов в соответствии с моделями стирания Ми(р) (слева) и ^ЕС(р) (справа), необходимое для снятия неопределенности об информационном век-
Рис. 4. Зависимость вероятности а восстановления информационного вектора от количества I частично стираемых кодовых слов для модели стирания кодовых символов МЕС(р^: а — [7, 4]-код Хэмминга; б — [8, 4]-код Рида — Маллера
а
торе с вероятностью а = 0.95 для базового кода С — [16,11]-кода Рида — Маллера, — приведено ниже.
Отметим, что целесообразность применения конкретных кодов зависит от рассматриваемой модели стирания и прикладной задачи, в рамках которой осуществляется выбор кода. Так, например, если выбор кода выполняется в рамках задачи гарантированного удаления данных на ЕЕРИОМ-носителях, то возможно использование как [7, 4]-кода Хэмминга, так и [8, 4]- и [16,11]-кодов Рида — Маллера. Действительно, если согласно [12] наблюдатель в модуле памяти может выделить до 16 кодовых слов, соответствующих одному информационному вектору, то для гарантированного стирания подходят обе модели:
Ми (Р)
и МЕС(Р). В частности, для защиты от гарантированного восстановления информационных векторов могут применяться модели стирания Ми(3) и МЕС(0-5) — для [7, 4]-кода Хэмминга, Ми(4) и МЕС(0'5) — для [8, 4]-кода Рида — Маллера, Ми(5) и МЕС(0Л) — для [16,11]-кода Рида —Маллера.
Заключение
Простота метода кодирования смежными классами позволяет применять его в системах, ограниченных по количеству потребляемой энергии. В последнее время этот метод исследуется в рамках защиты конфиденциальности данных не только в подслушиваемых каналах связи, но и в системах хранения информации. При этом, если в системах связи модель наблюдения может быть под контролем наблюдателя, то в системах хранения модель наблюдения определяется легитимным владельцем носителя информации. В настоящей работе разработаны и обоснованы алгоритмы для оценки стойкости метода кодирования смежными классами в рамках модели случайного стирания данных. Анализ результатов вычислений показал, что стойкость к атаке многократного наблюдения зависит от модели стирания и применяемых кодов.
Представляется, что полученные в работе результаты также могут быть использованы для экспериментальной оценки стойкости защиты данных от подмены, когда наблюдателю доступна часть пары (б,у), где б(€ F"'-fc) — информационное сообщение, а у = б—¿( Р) + х — подпись вектора б, вычисленная в момент времени Ь на секретном ключе (х,-г) € Ffc х , -¿(Р) — матрица, полученная из матрицы Р путем перемешивания столбцов в соответствии с перестановкой -¿. В силу простоты этого метода он может найти применение при дополнительной защите ЕЕРИОМ-носителей, для которых задача защиты данных от подмены также является актуальной [25]. Отметим, что такой способ защиты от подмены позволяет одновременно исправлять ошибки, возникающие при выходе из строя отдельных ячеек памяти. Если наблюдателю пары (сообщение, подпись) доступны частично, например, в результате стирания части символов, то в этом случае алгоритм CalcProbList возвращает список пар вида (I ,а), где I — это оценка снизу на количество информационных сообщений, по соответствующим частичным парам которых может быть восстановлен вектор х с вероятностью не менее а. Однако эта оценка снизу является довольно грубой и она может быть большей, так как наблюдателю неизвестна перестановка -¿.
Благодарности. Авторы выражают признательность рецензентам за конструктивные замечания основных результатов и советы по представлению их в статье.
р 8 7 6 54321 1 5200 550 105 28 ^^ 3 2
р 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 1 150000 5700 630 115 33 13 6 3"
Список литературы / References
[1] Букашкин С.А. Метод случайного кодирования // Радиотехника. 2014. № 4(184). С. 31-36.
Bukashkin, S.A. The random coding method // Radiotekhnika. 2014. No. 4(184). P. 31-36. (in Russ.)
[2] Mohan, V., Gurumurthi, S., Stan, M.R. FlashPower: A detailed power model for NAND flash memory // Design, Automation & Test in Europe Conference & Exhibition (DATE). Dresden: IEEE, 2010. P. 502-507.
[3] Jiang, A., Bruck, J. Data representation for flash memories. Data Storage Design. Ed. Balasa, F. Rijeka. Croatia: In Tech Europe, 2010. P. 53-74.
[4] Rivest, R.L., Shamir, A. How to reuse a write-once memory // Inf. Control. 1982. Vol. 55, No. 1-3. P. 1-19.
[5] Tal, A. Two flash technologies compared: NOR vs NAND. White Paper, 91-SR-012-04-8L REV. 1.0, 2002. 10 p. Available at: https://focus.ti.com/pdfs/omap/diskonchipvsnor.pdf
[6] Yaakobi, E., Kayser, S., Siegel, P.H., Vardy, A., Wolf, J.K. Codes for write-once memories // IEEE Transactions on Information Theory. 2012. Vol. 58, No. 9. P. 5985-5999.
[7] Yadgar, G., Yaakobi, E., Schuster, A. Write once, get 50% free: Saving SSD erase costs using WOM codes // Proc. of the 13th USENIX Conf. on File and Storage Technologies (FAST '15). Santa Clara, CA, US, 2015. P. 256-271.
[8] Jiang, A., Bohossian, V., Bruck, J. Floating codes for joint information storage in write asymmetric memories //IEEE Intern. Symp. on Information Theory, ISIT 2007. P. 1166-1170.
[9] Ahlswede, R., Zhang, Z. Coding for write-efficient memory // Information and Computation. 1989. Vol. 83, No. 1. P. 80-97.
[10] Ahlswede, R., Cai, N. Models of multi-user write-efficient memories and general diametric theorems // Information and Computation. 1997. Vol. 135, No. 1. P. 37-67.
[11] Kissel, R., Regenscheid, A., Scholl, M., Stine, K. Guidelines for media sanitization. NIST Special Publication 800-88 Revision 1, 2006. 41 p.
[12] Wei, M., Grupp, L.M., Spada, F.E., Swanson, S. Reliably erasing data from flash-based solid state drives // Proc. of the 9th USENIX Conf. on File and Stroage Technologies, February 15-17, 2011, San Jose, California. 8 p.
[13] Cassuto, Y., Bandic, Z. Low-complexity wire-tap codes with security and error-correction guarantees // Proc. of the IEEE Information Theory Workshop, Dublin, Ireland, 2010. 5 p.
[14] Qing, Li, Jiang, A. Coding for secure write-efficient memories // 52nd Annual Allerton Conference on Communication, Control, and Computing. Allerton, 2014. Monticello, IL: IEEE, 2014. P. 505-512.
[15] Wyner, A.D. The wire-tap channel // Bell System Technical Journal. 1975. Vol. 54, No. 8. P. 1355-1387.
[16] Коржик В.И., Яковлев В.А. Неасимптотические оценки эффективности кодового за-шумления одного канала // Пробл. передачи информации. 1981. Т. 17, вып. 4. С. 11-18. Korzhik, V.I., Yakovlev, V.A. Non-asymptotic estimates for efficiency of code jamming in a wiretap channel // Problemy Peredachi Informatsii. 1981. Vol. 17, No. 4. P. 11-18. (in Russ.)
[17] Ozarov, L.H., Wyner, A.D. Wire-tap channel II // Bell System Technical Journal. 1984. Vol. 63. P. 2135-2157.
[18] Косолапов Ю.В. Коды для обобщенной модели канала с подслушиванием. // Пробл. передачи информации. 2015. Т. 51, № 1. С. 23—28.
Kosolapov, Yu.V. Codes for a generalized wire-tap channel model // Problemy Peredachi Informatsii. 2015. Vol. 51, No. 1. P. 23—28.
[19] Деундяк В.М., Косолапов Ю.В. Об одном методе снятия неопределенности в канале с помехами в случае применения кодового зашумления // Изв. ЮФУ. Техн. науки. 2014. № 2(151). С. 197-208.
Deundyak, V.M., Kosolapov, Y.V. One method of removing the uncertainty in the channel with errors in the case of code noising // Izvestiya SFedU. Engineering Sciences. 2014. No. 2(151). P. 197-208. (in Russ.)
[20] Косолапов Ю.В., Никулин В.Э. Способ организации распределенного хранилища, устойчивого к частичной утечке данных // Матер. XIII Междунар. науч.-практ. конф., ИБ-2013. Ч. I. Таганрог: Изд-во ЮФУ, 2013. С. 186-191.
Kosolapov, Y.V., Nikulin, V.E. Way of the organization of the distributed storage resistant against a partial data leakage // Materials of the XIII Intern. Scientific and Practical Conf. "IS-2013". Pt I. Taganrog: SFU Publishing House, 2013. P. 186-191. (in Russ.)
[21] Wei, V.K. Generalized hamming weights for linear codes // IEEE Transactions on Information Theory. 1991. Vol. 37, No. 5. P. 1412-1418.
[22] Косолапов Ю.В., Курчев Н.О. О вычислении меры стойкости кодового зашумления в канале со случайным частичным перехватом // Вычисл. технологии. 2014. Т. 19, № 6. С. 42-53.
Kosolapov, Y.V., Kurchev, N.O. Computation of the measure of resistance for Code Noising in channel with random partial interception // Comput. Technologies. 2014. Vol. 19, No. 6. P. 42-53. (in Russ.)
[23] Huang, Q., Lin, S., Abdel-Ghaffar, K. Error-correcting codes for flash coding // IEEE Transactions on Information Theory. 2011. Vol. 57, No. 9. P. 6097-6108.
[24] Sunberg, C.W. Erasure and error decoding for semiconductor memories // IEEE Transactions on Computers. 1978. Vol. c-27, No. 8. P. 696-705.
[25] Elbaz, R., Champagne, D., Gebotys, C.H., Lee, R.B., Potlapally, N.R., Torres, L.
Hardware mechanisms for memory authentication: A survey of existing techniques and engines // Transactions on Computational Science. 2009. No. 4. P. 1-22.
Поступила в 'редакцию 4 июня 2015 г., с доработки — 25 сентября 2015 г.
On the experimental estimation of the lower bound for the maximum number of messages in a scheme aimed at data protection against spoofing
Gazaryan, Yury O., Kosolapov, Yury v.*
South Federal University, Rostov-on-Don, 344006, Russia * Corresponding author: Kosolapov, Yury V., e-mail: itaim@mail.ru
Purpose: For a given protection scheme we estimate the lower bound of the maximum number of messages that may be signed by one fixed key (known for both sender and receiver). It is supposed that a channel between sender and receiver is noisy. The observer is supposed to get only the partial data from the pair ("message", "signature") and knows everything about message signing algorithm except of a signing key.
© ICT SB RAS, 2015
Methodology: To solve this problem we apply some well-known results of the analysis for the resistance of a code noising to multiple monitoring that uses the data channel with erasures, which allowed, together with methods of mathematical statistics, a method to obtain the lower estimate of the maximum number of messages.
Findings: We constructed and justified algorithms for experimental evaluation for the lower bound of maximum number of messages for two particular models of interceptions: the model of uniform random interception with fixed number for coordinates of the message-signature pairs, represented as a vector, and a model for interception of messages over channel with erasures with a fixed probability of interception for one symbol. We present the results of calculations for specific implementations of the considered protection scheme.
Originality/value: The results of the current research besides the considered spoofing protection scheme can be also used in another schemes of data protection. For example, these results could be useful in experimental analysis of the strength of scheme that protects confidentiality of the data with code noising against multiple interceptions.
Keywords: protection from spoofing messages, multiple partial interception, code noising.
Received 4 June 2015 Received in revised form 25 September 2015