Научная статья на тему 'Экспертная оценка показателей качества'

Экспертная оценка показателей качества Текст научной статьи по специальности «Математика»

CC BY
309
154
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Экспертная оценка показателей качества»

------------------□ □----------------------

Розглянуті теоретичніпринципичастот-ного тестування псевдовипадкових криптографічних послідовностей і способи їх практичної реалізації. Приведений новий метод поетапного тестування і підбору складових елементів генераторів псевдовипадко-вих послідовностей

Ключові слова: ПСП, криптографічна система, тестування

□----------------------------------□

Рассмотрены теоретические принципы частотного тестирования псевдослучайных криптографических последовательностей и способы их практической реализации. Приведен новый метод поэтапного тестирования и подбора составных элементов генераторов псевдослучайных последовательностей

Ключевые слова: ПСП, криптографическая система, тестирование

□----------------------------------□

Theoretical principles of the frequency testing of pseudocasual cryptographic sequences and methods of their practical realization are considered. The new method of the stage-by-stage testing and selection of component elements of generators of pseudocasual sequences is resulted

Keywords: PSP, cryptographic system, testing

------------------□ □----------------------

УДК 621.391:519.72

ПОЭТАПНОЕ ТЕСТИРОВАНИЕ И ПОДБОР СОСТАВНЫХ ЭЛЕМЕНТОВ ГЕНЕРАТОРОВ ПСЕВДОСЛУЧАЙНЫХ ПОСЛЕДОВАТЕЛЬНОСТЕЙ

Н.Ф. Казакова

Кандидат технических наук, декан Факультет компьютерных наук и инновационных

технологий

Международный гуманитарный университет Фонтанская дорога, 33, г. Одесса, Украина, 65009 Контактный тел.: (048) 719-88-48, 703-64-18 E-mail: [email protected]

1. Введение

Постановка проблемы в общем виде и ее связь с научными и практическими задачами. Постоянное развитие криптографических систем, применяемых в современных информационно-телекоммуникационных системах, объясняет интерес специалистов, работающих в области криптографии, к разработке инструментальных средств их тестирования. Одним из критериев, на которых основывается оценка стойкости симметричных шифров, является равномерность распределения символов в гаммирующих последовательностях, а также в последовательностях, из которых формируются сеансовые ключи. С этой целью к настоящему моменту времени разработано большое количество тестирующих программных пакетов, позволяющих осуществлять комплексные испытания новых криптографических систем. К сожалению работы, опубликованные в этой области, разрознены и эта область криптоанализа, базирующаяся на фундаментальных положениях математической статистики, еще окончательно не сформировалась как самостоятельный раздел. Это создает серьезные проблемы и для специалистов, работающих в области криптографической защиты информации.

Анализ научной и технической литературы (например, [2...10]) показывает, что к настоящему времени разработано достаточно большое количество инструментальных средств, позволяющих осуществлять предварительный анализ пригодности последовательностей, порождаемых генераторами ПСП, для нужд криптографии. Эти пакеты прикладных программ реализуют наборы тестов, призванные дать ответ на вопрос, возможно ли, зная некоторый участок формируемой гаммы, предсказать последующий (или предыдущий) ее символ с вероятностью, отличной от 1/2? При отрицательном ответе формируемая гамма признается действительно случайной. Программное обеспечение и описание наборов этих тестов является общедоступным и может быть получено через Интернет-сайты своих разработчиков.

Проблема, однако, состоит в том, что использование предлагаемого программного обеспечения предполагает глубокий комплексный анализ готового продукта. Прилагаемые описания этих тестов содержат комплексные программы испытаний датчиков ПСП и процедуры вычисления обобщенного показателя качества, учитывающего результаты от всех тестов, входящих в состав пакета. Эти тесты позволяют выявлять различные виды аномалий в псевдослучайной

3

последовательности, которые в принципе могут быть использованы как уязвимости криптоалгоритма для организации на их основе атаки со стороны злоумышленников.

В то же время, инженерам-разработчикам необходимы инструментальные средства, реализующие простые и надежные процедуры тестирования на начальных и промежуточных этапах создания генераторов, позволяющих убедится в правильности выбранного пути. По этой причине разработчики алгоритмов формирования ПСП, как правило, зачастую предлагают собственные средства испытания, подтверждающие качество созданного программного продукта и далеко не всегда используют комплекты тестов, рекомендованные NIST [11] или другими авторитетными организациями. Отчасти это объясняется еще и тем, что разработчику важен не столько обобщенный показатель «случайности» сформированной датчиком гаммы, сколько вид отдельной аномалии в ее составе, приводящей к ухудшению этой самой «случайности». По этой причине в каждом конкретном случае приходится искать свой подходящий способ тестирования, и это обстоятельство объясняет повышенное внимание многих исследователей этой области к построению новых тестов. В подтверждение этого свидетельствует тот факт, что например, для шифра RC4, созданного в 1987 году, и в котором, в последствии, были обнаружены некоторые отклонения от случайности, никто не мог предложить практически реализуемого подходящего теста в течение многих лет, несмотря на большое число работ, посвященных этому вопросу. Все это говорит о том, поиск новых эффективных тестов, пригодных для использования в качестве инструментальных средств в процессе проектирования остается пока актуальной и не решенной до конца задачей.

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

2. Инструментальные средства тестирования

Современный симметричный шифр должен формировать шифрующую гамму при минимальных затратах вычислительных ресурсов системы, обеспечивая при этом заданную криптографическую стойкость. Эта стойкость, в свою очередь, определяется видом шифрующей последовательности. В общем виде, требования к таким последовательностям сводятся к следующему:

- отсутствие аналитической зависимости между последовательно сформированными числами;

- наблюдая предыдущие числа на некотором интервале, криптоаналитик не может предсказать следующие число с вероятностью, отличной от 1/2 (атака из прошлого);

- наблюдая последующие числа на некотором интервале, криптоаналитик не может предсказать следующие число с вероятностью, отличной от 1/2 (атака из будущего);

- все числа в формируемой последовательности равновероятны.

Что касается первого требования, то оно, в случае формирования последовательности с помощью вычислительного устройства, естественно, выполнено быть не может. Выполнение последних трех из перечисленных требований является обязательным условием для хорошей гаммирующей последовательности, и при их выполнении генерируемая последовательность будет неотличима от истинно случайной последовательности.

За последние десятилетия было разработано и исследовано большое количество «элементарных» генераторов псевдослучайных последовательностей (ПСП), к числу которых относят линейные конгруэнтные генераторы [1, 2], генераторы Фибоначчи с запаздыванием [1], генераторы, построенные на линейных регистрах с обратной связью [2, 3, 4, 5] и некоторые их разновидности. Общие результаты исследований перечисленных генераторов сводятся к тому, что все они не являются криптографически стойкими и, могут входить в состав формирователей ПСП, только в качестве составных элементов.

Как показано в [2], идея построения составного генератора базируется на том факте, что комбинация двух и более выходных последовательностей от генераторов разного типа с помощью линейных операций, таких как +, -, х, © приводит генератору с «лучшими свойствами случайности». Наиболее удачные, с точки зрения криптографии, составные генераторы, подробно рассмотрены в работе Б. Шнаера [6].

Все чаще, в казавшихся ранее надежными алгоритмах, находят новые «слабые места». По этой причине в процессе разработки криптографических протоколов встает вопрос о поиске новых инженерных решений с целью построения новых, эффективных криптографически стойких генераторов, свободных от выявленных недостатков. В 1987 году Роном Ри-вестом был разработан потоковый шифр RC4 [6]. Он является наиболее удачным на сегодняшний день формирователем ПСП, однако в печати все чаще появляются сообщения о том, что и в нем уже найдены уязвимости.

Разработка нового алгоритма формирования случайных чисел отличается тем, что достоверный ответ на вопрос об эффективности найденного решения задачи может появиться только, спустя некоторое время, когда для него будет разработан индивидуальный метод криптоанализа. По этой причине, шифры, предлагаемые на роль государственных стандартов, или уже принятые в качестве таковых принято считать стойкими, до тех пор, пока не станет известно об их эффективном взломе.

Разработчику остается довольствоваться только результатами предварительного тестирования. Об этом прямо сказано в руководстве к пакету тестов, разработанных NIST [7]. Любой из предложенных тестов или даже целый пакет тестов не заменяет криптоанализа. При этом предварительное тестирование является обязательным. Генератор, не удовлетворяющий условиям тестирования непригоден. Каждый из входящих в пакет тестов ориентируется на поиск определенного вида аномалий в потоке формируемых символов.

Е

Наиболее рекомендуемым из известных тестовых пакетов, является уже упоминавшийся пакет NIST STS. Он включает набор из 16-ти тестов и методику их использования. Успешный результат испытаний проектируемого генератора с применением всего набора этих тестов дает основания надеяться на то, что формируемая генератором последовательность неотличима от «настоящей» случайной последовательности.

Кроме того, известны и другие пакеты тестов, созданные для нужд криптографии. К их числу относится набор статистических тестов под названием Diehard [8], предназначенный для определения качества последовательности случайных чисел. Эти тесты были разработаны Джорджем Марсальей (George Marsaglia). Он включает 12 тестов и доступен по адресу http://stat. fsu.edu/pub/ diehard/.

По адресу http://www.isi.qut.edu.au/resources/cryp-tx/ можно связаться с разработчиками пакета тестов Crypt-X [9] и получить программное обеспечение и руководство по их применению.

Перечисленные пакеты предназначены для оценки уже готовых генераторов. В практической же работе такие устройства разрабатывают поэтапно, постепенно доводя их до уровня соответствия предъявляемым требованиям. Это обстоятельство является серьезным препятствием для применения на этапе создания архитектуры нового алгоритма.

Вторая проблема заключается в том, что в основе каждого из входящих в предлагаемый пакет тестов, лежит достаточно сложное теоретическое обоснование, требующее от разработчиков серьезной математической подготовки и знаний различных, несмежных разделов математики. К сожалению, в прилагаемых к тестам руководствах, разработчики такого обоснования, как правило, не приводят.

Наконец, третья проблема, заключается в том, что, хотя к программному обеспечению и предоставлен свободный бесплатный доступ, воспользоваться ним сложно. Большинство тестов предполагают предварительное создание файла, в который записывается испытуемая псевдослучайная последовательность в виде 32-х битных слов, а затем запускается процедура тестирования. Это удобно не всегда и не для всех тестов, поскольку требует значительных программноаппаратных ресурсов. К тому же, предлагаемые тесты рассчитаны на определенную программно-аппаратную платформу.

Эти проблемы вынуждают разработчиков если не разрабатывать собственные тесты, то, по крайней мере, создавать собственное программное обеспечение, которое их реализует, удобно в работе и может эффективно использоваться в процессе поиска конструктивного решения разрабатываемого генератора. Всякий пакет тестов имеет свою внутреннюю логику. Предполагается, что испытание нового генератора должно начинаться с частотного тестирования. Как указывается в [7], если генератор не проходит частотный тест, то проведение всех прочих тестов уже не имеет смысла. Поэтому, учитывая вышесказанное, можно сделать вывод о том, что у разработчика должна быть методика, позволяющая быстро и эффективно оценивать «случайность» формируемой последовательности на различных этапах разработки генератора ПСП.

Частотное тестирование, основано на сравнении формируемой генератором последовательности с некоторым идеалом. Предполагается, что такой идеальный генератор формирует последовательность с равномерным распределением вероятностей единиц и нулей, такую, что следующий выходной бит невозможно предсказать по результатам наблюдения некоторого отрезка этой последовательности с вероятностью, отличающейся от 1/2.

В реальном случае генератор ПСП выдает «ненастоящую» случайную последовательность, а полностью определяемую значением секретного ключа. Степень его схожести с реальным формирователем случайной гаммы может быть установлена на основании выбранного эталона и критерия, позволяющего определить степень отличия полученного результата от ожидаемого равномерного распределения вероятностей.

Формальное определение критерия предполагает задание нулевой гипотезы Н0, в соответствии с которой, тестируемая последовательность является случайной. С ней непосредственно связана альтернативная гипотеза НА, в соответствии с которой эта последовательность не может быть признана случайной. Принимая нулевую гипотезу, экспериментатор с вероятностью а рискует ошибиться (совершить так называемую «ошибку первого рода»). Соответственно, с вероятностью 1 - а, он будет прав. Обычно, величину а выбирают в пределах 0.01 < а < 0.001.

Предполагается, что при частотном тестировании появление символов на выходе генератора полностью подчиняется распределению Бернулли, при котором вероятность единичного символа р, равна вероятности появления нулевого символа q = 1 - р. В этом случае разница между числом единиц щ и числом нулей п0, Sn = п - п0 в п-разрядной последовательности

£ = £1, £2, ... , £п,

где £ - двоичный символ, принимающий значения {0, 1}, будет подчинена биномиальному закону распределения вероятностей, который в соответствии с теоремой Муавра - Лапласа, при достаточно большом значении п, хорошо аппроксимируется стандартным нормальным законом N0, 1 с нулевым математическим ожиданием и единичной дисперсией. И, как показано в [7, 10], эта разница, в соответствии с центральной предельной теоремой, удовлетворяет условию:

( S ^ 1 z

Пт р < Н=ф(^=^е- 2аи.

Здесь Фф представляет собой функцию Лапласа, численно равную площади фигуры, ограниченной сверху кривой Гаусса, снизу осью абсцисс, а справа прямой у = z. В [7] показано, что для положительных значений z, будет справедливо выражение:

Р ^ < zj = 2Ф^) -1.

По данным испытания п-разрядной двоичной последовательности вычисляют статистику:

= |ni - По1 = JSJ

’ -v/n Vn

3

Ее значение позволяет рассчитать вероятность того, что параметр z не выйдет за предел допустимого значения а , определяемого выбранным критерием. Эта вероятность может быть представлена в виде:

2

1 -Ф

vn

= erfc

vn

(1)

Учитывая, что дополнительная функция ошибки определяется как

2 Г 2

erfc(z) = —;= f e u du,

(2)

то, с учетом пределов интегрирования, выражение (1) можно переписать в виде:

1 -Ф

|soJ

л/2п

= erfc

|SpJ

л/2п

Если, в результате испытаний вычисленная вели-

чина P = erfc

|SpJ

л/2п

>а , то тестируемая последова-

тельность признается случайной. Если величина а выбрана равной 0,01, то это значит, что из ста тестируемых последовательностей не более чем одна из них может быть забракована как «неслучайная».

Программная реализация такого теста сталкивается с двумя сложностями. Первая из них заключается в том, что достаточно сложно реализовать эффективный подсчет числа единичных п1 и, соответственно, нулевых п0 символов в тестируемой последовательности. Это объясняется тем, что в большинстве современных вычислительных архитектур команд для работы с отдельными битами нет.

Вторая сложность состоит в необходимости вычисления в каждом тесте значения дополнительной функции ошибки ег&. В принципе, ее значение можно вычислить и с помощью прикладного программного пакета Ма^аЬ, но, в процессе тестирования большого числа последовательностей обращаться к отдельному программному пакету не удобно.

Поскольку размер тестируемой последовательности п невелик (в [7] рекомендуется выбирать п немногим более ста символов), их количество в каждом байте может быть подсчитано следующим образом.

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

Будем считать, что символы ai , к-разрядного слова а = {ак , а к-1 , ... , а1}, выражающего число Ь, пронумерованы справа налево (от младшего разряда к старшему разряду). Тогда значение каждого из них можно рассчитать по правилу:

1, при b - 2k 1 > 0,

0, при b - 2k 1 < 0.

Вычисление этой процедуры напрямую нецелесообразно, поскольку возведение в степень это трудоемкая для вычислительной системы операция. Если, на-

пример, считывание тестируемом последовательности осуществляется побайтно, процедура подсчета количества единичных n и нулевых символов no, написанная на языке Delphi, может иметь следующий вид:

b := a - 128;

if b >= 0 then Begin a := a - 128; n1 := n1 + 1 End else Begin n0 := n0 + 1 End;

b := a - 64;

if b >= 0 then Begin a := a - 64; n1 := n1 + 1 End else Begin n0 := n0 + 1 End;

b := a - 32;

if b >= 0 then Begin a := a - 32; n1 := n1 + 1 End else Begin n0 := n0 + 1 End;

b := a - 16;

if b >= 0 then Begin a := a - 16; n1 := n1 + 1 End else Begin n0 := n0 + 1 End;

b := a - 8;

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

if b >= 0 then Begin a := a - 8; n1 := n1 + 1 End else Begin n0 := n0 + 1 End;

b := a - 4;

if b >= 0 then Begin a := a - 4; n1 := n1 + 1 End else Begin n0 := n0 + 1 End;

b := a - 2;

if b >= 0 then Begin a := a - 2; n1 := n1 + 1 End else Begin n0 := n0 + 1 End;

b := a - 1;

if b >= 0 then Begin a := a - 1; n1 := n1 + 1 End else Begin n0 := n0 + 1 End;

Здесь счетчики пі и по обнуляются в начале тестирования и затем накапливают информацию о количестве соответствующих символов до окончания тестирования всей последовательности. Такая процедура выглядит несколько громоздкой, однако работает быстро. Она легко может быть расширена и на случай блока большего размера.

Что касается вычисления показателя Р, представляющего собой дополнительную функцию ошибки егїс (х) вида (2), то ее можно представить в виде:

2 7 2

erfc (x) = 1 - erf(x) = “r=Je t2dt.

Брать такой интеграл в указанных пределах неудобно, поэтому лучше вычислить функцию 2 г _ 2

erf(x) = —j= I e 1 dt, а затем перейти к функции erfc (х).

Vn i

Функция erf (х) не может быть представлена через элементарные функции. Однако ее можно представить в виде ряда:

erf(x) =

= _2_ Y (-1)nx2n+1 = _2_

л/пП=оп!(2п +1)

Ґ 3 5 7 9

X3 X5 X7 X9

X--------I-----------I-------

v 3 10 42 216

Этим разложением можно пользоваться, если значение аргумента функции erf (х) не превышает значения х = 3. При большем значении аргумента

s

s

2

a =

Е

можно воспользоваться асимптотическим разложением вида

erfc(X) = -

:Vn

1+Y (-1)1

n 1 x 3 x 5 x... x (2n -1)

(2X2)n

ї\/п П

(2п)!

n!(2X)21

и вычислить значение функции erfc (х) напрямую. Если ряд для определения значения функции erf (х) требует вычисления до 30-ти членов, то последний ряд, для вычисления функции erfc (х), дает хорошее приближение уже при вычислении четырех членов.

Представленные разложения для функций erf (х) и erfc (х) можно найти на сайте functions.wolfram.com по адресу http://functions.wolfram.com/GammaBetaErf/.

Таким образом, для тестирования последовательности, формируемой проектируемым генератором, необходим программный продукт, в который этот генератор будет входить в качестве составной части, и который позволит формировать m n-разрядных последовательностей. Здесь m - заданное число тестов. При чем этот продукт должен иметь отдельный встроенный генератор ключей, с тем, чтобы обеспечить независимость тестируемых последовательностей. В этом же продукте можно разместить и программу для тестирования, которая, с использованием изложенных приемов, позволит определять долю последовательностей, не прошедших тест.

3. Заключение

Предлагаемый подход поэтапного тестирования и подбора составных элементов генератора позволяет сделать предварительные выводы о приемлемости предполагаемой архитектуры проектируемого генератора или шифра. Описываемый подход хорошо работает для генераторов ПСП с различной разрядностью машинного слова - от 8-ми до 32-х бит. При этом, его лучше реализовать в виде двух отдельных модулей для самого генератора и модуля теста. Это позволит применять модуль тестирования для иных типов генераторов той же разрядности.

Литература

1. Кнут, Д. Искусство программирования для ЭВМ. Т.2. [Текст] / Д. Кнут.- М. : Мир, 1977. - 727 с.

2. Харин, Ю. С. Математические и компьютерные основы криптологии [Текст] : учеб, пособие / Ю. С. Харин, В. И. Берник, Г. В. Матвеев, С. В. Агиевич.— М. : Новое издание, 2003. - 272 с.

3. Земор, Жиль. Курс криптографии [Текст] / Жиль Земор. М.- Ижевск : НИЦ «Регулярная и хаотическая динамика»; Институт компьютерных исследований, 2006. - 256 с.

4. Рябко, Б.Я. Криптографические методы защиты информации [Текст] : учеб, пособие / Б. Я. Рябко, А. Н. Фионов ; ТГГУТ.- Томск : ГПД, 2005.- 112 с.

5. Фомичев, В. М. Дискретная математика и криптология [Текст] : Курс лекций / В. М. Фомичев ; под общ. ред. д-ра физ.-мат. н. Н.Д. Подуфалова. - М. : ДИАЛОГ-МИФИ, 2003. - 400 с.

6. Шнайер, Б. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си [Текст] / Б. Шнайер.- М. : Триумф, 2002. - 816 с.

7. A Statistical Test Suite for the Validation of Random Number Generators and Pseudo Random Number Generators for Cryptographic Applications. NIST Special Publication 800-22. May 15, 2001.

8. The Marsaglia Random Number CDROM including the Diehard Battery of Tests of Randomness [Электронный ресурс].- Режим доступа : \www/ URL: http:// www. stat.fsu.edu/pub/diehard/ - 10.01.2010 г. - Загл. с экрана.

9. Statistical test suite Crypt-X [Электронный ресурс].- Режим доступа : \www/ URL: http://www.isi.qut.edu.au/re-sources/cryptx/ - 10.01.2010 г. - Загл. с экрана.

10. Кац, М. Статистическая независимость в теории вероятностей, анализе и теории чисел [Текст] / М. Кац.- М. : Издательство иностранной литературы, 1963.- 156 с.

11. A Statistical Test Suite for the Validation of Random Number Generators and Pseudo Random Number Generators for Cryptographic Applications. NIST Special Publication 800-22. May 15, 2001.

X

e

n=1

e

о

3

i Надоели баннеры? Вы всегда можете отключить рекламу.