Научная статья на тему 'Тестирование датчиков случайных чисел, встроенных в смарт-карты'

Тестирование датчиков случайных чисел, встроенных в смарт-карты Текст научной статьи по специальности «Математика»

CC BY
883
237
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
СМАРТ-КАРТЫ / ДАТЧИКИ СЛУЧАЙНЫХ ЧИСЕЛ / СТАТИСТИЧЕСКОЕ ТЕСТИРОВАНИЕ / КРИПТОГРАФИЯ / SMART CARD / RANDOM NUMBER GENERATOR / STATISTICAL TESTING / CRYPTOGRAPHY

Аннотация научной статьи по математике, автор научной работы — Овчинников Андрей Игоревич

Любая смарт-карта содержит ДСЧ. В данный момент нет публикаций исследований ДСЧ российских сертифицированных смарт-карт. Новизна работы заключается в получении результата статистического исследования ДСЧ, реализуемого в различных российских сертифицированных смарт-картах.

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

Похожие темы научных работ по математике , автор научной работы — Овчинников Андрей Игоревич

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

Текст научной работы на тему «Тестирование датчиков случайных чисел, встроенных в смарт-карты»

Тестирование датчиков случайных чисел, встроенных в смарт-карты

Овчинников А.И.

Овчинников Андрей Игоревич / Ovchinnikov Andrej Igorevich - выпускник кафедры Информационной безопасности,

факультет кибернетики

Московский государственный технический университет радиотехники, электроники и автоматики, г. Москва

Аннотация: Любая смарт-карта содержит ДСЧ. В данный момент нет публикаций исследований ДСЧ российских сертифицированных смарт-карт. Новизна работы заключается в получении результата статистического исследования ДСЧ, реализуемого в различных российских сертифицированных смарт-картах.

Ключевые слова: Смарт-карты, датчики случайных чисел, статистическое тестирование, криптография.

Keywords: Smart card, random number generator, the statistical testing, cryptography.

Введение

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

1) сеансовых и других ключей для симметричных криптосистем;

2) стартовых значений для программ генерации ряда параметров в асимметричных криптосистемах, например в криптосистемах RSA, ElGamal, ГОСТ 3410;

3) случайных последовательностей, комбинируемых с парольными словами для нарушения «атаки угадывания» пароля криптоаналитиком;

4) векторов инициализации для блочных криптосистем, работающих в режиме обратной связи;

К генераторам псевдослучайной последовательности (ПСП), ориентированным на использование в системах защиты информации, предъявляются следующие требования:

1. хорошие статистические свойства: ПСП по своим статистическим свойствам не должна существенно отличаться от истинно случайной последовательности;

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

3. эффективная аппаратная и программная реализация.

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

В данной статье проводится исследование датчиков случайных чисел, встроенных в 3 типа смарт-карт: бесконтактные, зарубежные контактные и российские контактные, которые применяются в защите информации и системах контроля доступа. Для тестирования были взяты следующие статистические пакеты и отдельные критерии:

а) статистический пакет NIST

б) статистический пакет U01

в) статистический критерий «стопка книг», «пустые ящики», критерий на равномерное заполнение гиперкуба.

1. Современные зарубежные и российские требования к ГПСЧ на смарт-картах. Зарубежные требования.

Приведем функциональную схему генератора псевдослучайных чисел(ГПСЧ), кратко опишем ее составляющие и приведем требования к заполнению генератора, сформулированные в стандарте [19].

Приложение, использующее псевдослучайные числа

Строко персоналки™ Дополнительные входные данные

Функциональная схема ГПСЧ

Входная энтропия - последовательность бит, выработанная некоторым источником с определенным значением энтропии, см. [19].

Заполнение генератора - последовательность бит, используя функцией выработки генератора для получения псевдослучайных чисел, см. [19].

Состояние генератора - все параметры, переменные и другие хранимые значения, в том числе заполнение генератора, используемые при работе генератора, см. [19].

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

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

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

Функция обнуления служит для обнуления состояния генератора. Тесты (функции тестирования) предназначены для проверки корректности работы ГПСЧ, см. [20].

В стандарте [20] под недетерминированным генератором случайных чисел понимается ГСЧ, основанный на физических явлениях, а под детерминированным генератор случайных чисел - алгоритм, вырабатывающий псевдослучайные числа, по своим свойствами близкие к случайным.

Входная энтропия может быть получена [19]:

- проверенным источником энтропии.

- проверенным недетерминированным генератором случайных чисел.

- проверенным детерминированным генератором случайных чисел, начальное заполнение которого получено при помощи недетерминированного генератора или проверенного источника энтропии.

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

Заполнение генератора должно сохраняться в секрете, при этом, его значение не должно сохраняться после его использования. Если заполнение генератора стало известно третьим лицам или существует такая вероятность, то заполнение необходимо сменить, см. [19].

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

Входная энтропия должна быть уничтожена сразу после использования, при этом она не должна использоваться для других целей. Однако, информация из других источников (дополнительная информация), используемая при получении заполнения генератора может быть использована повторно. Информация из других источников может содержать биты, выработанные некоторым источником энтропии, однако, это необязательно, см. [19], [20].

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

Российские требования.

К российским смарт-картам предъявляются требования наличия динамического статистического контроля выходной последовательности.

При динамическом тестировании выхода датчика каждый отрезок (К) размером 32 байта (256 бит) подвергается следующему статистическому контролю:

На объеме 256 бит подсчитываются:

1). Число единиц V1 (К);

2). Число знакоперемен V5n (К) (01, 10);

3). Число подряд идущих нулей или единиц L0 , L1

Должны выполняться соотношения

100 <V (К)< 156

100 <V5n (К)< 155

L0 , L1 <24

Если хотя бы одно из этих 4-х соотношений не выполняется, то испытуемый отрезок длины 32 байта бракуется и не используется, если бракуется подряд 5 отрезков, то ДСЧ считается неисправным и работа СКЗИ должна быть заблокирована.

Сравнение.

Как можно видеть, в зарубежных стандартах используется контроль входных параметров (ключ, входная последовательность), а случайность выработанной последовательности гарантируется алгоритмом. Однако в российских требованиях используется контроль выходной последовательности (выработанной псевдослучайной последовательности). Так же в зарубежных стандартах указывается требование контроля за отсутствием повтора входных последовательностей и ключей. Это требование и наличие хорошего алгоритма ГПСЧ гарантирует несовпадение и хорошую случайность выходной последовательности. В российском стандарте такого требования нет, однако вероятность того, что «синхропосылка» и «ключ» (как описано в алгоритме) после очередного выполнения остались неизменными, очень мало и тут недостаточно повреждения «штатного ДСЧ» и «плохих» ключей.

2. ГПСЧ на бесконтактных смарт-картах.

Не так давно произошел «крах безопасности» классических бесконтактных смарт-карт «mifare». Это коснулось около 70% всех бесконтактных смарт-карт, используемых по всему миру - более одного миллиарда карт, проданных на сегодняшний день. Однако даже сегодня, когда вопрос безопасности данных карт уже достаточно изучен, некоторые важные практические детали, касающиеся практической возможности реализации атак, остаются открытыми. Есть две основные причины для этого. В сущности, сложность и возможность множества атак зависит от двух вещей:

1) качества генератора случайных чисел,

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

За последние годы были разработаны три очень важные нападения:

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

2) Если исключить это нападение, которое не представляется возможным для обычных хакеров, остается так называемая атака «Courtois Dark Side» [2], которая является самым популярным и самым практичным способом извлечения ключей из этих карт.

3) Третья атака используется, если все ключи в карте являются случайными и уникальными. Если уже известен, по крайней мере, один ключ для данной карты, или некоторые ключи по умолчанию, все остальные ключи могут быть восстановлены за очень короткое время. Это достигается с помощью так называемых «вложенных атак аутентификации», также разработанных группой Наймегене.

Общее описание ГПСЧ.

Генератор псевдослучайных чисел (ГПСЧ) в классической карте «mifire» генерирует псевдослучайные числа длиной 32 бита по следующему алгоритму: ГПСЧ реализует линейную рекуренту с характеристическим многочленом x16 + x14 + x13 + x11 +... +1 по модулю 2 . Известно, что эти 32 бита всегда избыточные и линейно зависят только 16 бит[5]. Это свойство невозможно скрыть. Кроме того, можно считать, что 16 бит энтропии достаточно для многих приложений.

Для того чтобы оценить, насколько теория модели [5] правильна, было сделано следующее. Рассмотрена ЛРСОС с полином f(x)= x16 + x14 + x13 + x11 +... +1 приведенным в [5]. Каждая классическая карта «mifare» может быть смоделирована как черный ящик, который после включения карты производит определенное распределение значений от 1 до 216 - 1, которое являются более или менее случайным и более или менее группируются вокруг определенных значения по оси X. Целью злоумышленника является

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

Если теория [5] правильна, при одинаковых периодах времени будут получены значения, близкие по оси X как на графиках, приведенных ниже. Однако установлены некоторые дополнительные проблемы, связанные с проведением данной атаки: отсутствие необходимой точности времени и, что еще более важно, несовершенным контролем устройств чтения.

Должны быть приняты во внимание различные факторы, такие как наличие в ГПСЧ аппаратных прерываний и различные задержки в командах, посылаемых через порт USB. Поэтому даже если теория верна, не обязательно будет только один «острый» пик на графике, возможно, будет еще несколько «теневых» пиков, которые могли бы быть более диффузными. Если теория неверна, будет получено совершенно плоское (равномерное) распределение.

Для тестирования ГПСЧ были взяты 4 бесконтактные карты различных производителей.

Карта номер 1.

Рис. 1

На рисунке 1 приводится пример того, что происходит с картой, когда работает программа MFCUK с командой строки «-840-860» [2] в течение 3 часов. Глядя на этот образец трудно увидеть, что теория [5] правильна. Другой вопрос, могло ли это быть равномерным распределением. Это не очевидно относительно малого размера выборки N = 36,876 различных точек. Чтобы попытаться ответить на этот вопрос был рассмотрен полученный ряд различных одноразовых номеров карт. Эти значения являются независимыми от порядка на оси Х и поэтому не имеют ничего общего с теорией [5].

Однако его можно сравнить с тем, что получается в среднем для N = 36 ,876 действительно случайных точек. Из наблюдения выработанных последовательностей было оценено, что энтропия случайных карт в данной атаке составляет около 14,6 бит вместо 16, которые ожидаются в случае равномерного распределения. Минимум энтропии составляет около 12,4 бит. Видно, что в этой атаке распределение не является равномерным. Мы видим большую разницу между теорией и практикой.

Карта номер 2.

Был произведен такой же эксперимент с другой картой. Результаты являются гораздо более тревожными, см. рисунок 2.

ШШш

Рис. 2

Здесь наблюдаются очень сильные пики, и, кроме того, пики равномерно распределены, что подтверждает теорию [5].

Энтропия случайного числа в данной атаке равна примерно 7,0 бит для данной карты, вместо 16 бит. Минимум энтропии составляет около 4,4 бит. Для простоты было предположено, что нападения концентрируется только на одно часто повторяющееся значение случайного числа, полученного с карты. При этом было посчитано, что атака потребует примерно 24,4 *300 запросов. Эта атака потребует около 500 секунд, чтобы восстановить один ключ со скоростью около 13 запросов в секунду. Данный тип карт очень легко сломать атакой из работ [2], [7]. Эта атака может быть выполнена, когда владелец карты, например, сидит рядом. Это открывает больше возможностей для совершения преступлений и криминального бизнеса, их гораздо легче сломать, чем любые другие карты.

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

Карта номер 3.

Данная карта является одной из последних модификаций «mifare». В ней используется другой чип (Desfire). Предполагается, что этот чип является криптографически безопасным.

Здесь возможности для преступников не такие существенные, потому что в этих картах криптографические ключи снова диверсифицируются и только ограниченное количество таких карт все еще используется. Новая версия карты, которая была изучена, дала минимум энтропии 13,4 бит. Это уже относительно хороший результат и нападение, следуя [2] с теми же установками займет около 3х дней на ключ.

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

Карта номер 4.

Второй по популярности тип бесконтактных смарт-карт является HID. HID имеет два основных вида карт: карты компании HID Prox 125 кГц, которые не имеют криптографическую защиту, они просто передают серийный номер, но до сих пор очень широко используется. Карта Iclass HID является криптографической картой, в которой можно также хранить данные в энергонезависимой памяти.

К несчастью, нет никакой гарантии, что криптографические карты являются более безопасными. На деле они могут быть менее безопасными. Как видно в [8] модуль криптографии в этих картах не очень сильный, поэтому важен мастер-ключ, который может быть извлечен из считывателя, а кроме того в отличие от старого HID Prox и всех классических карт mifare, эти карты не имеют «аппаратной безопасности», в смысле их серийный номер может быть изменен.

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

Скорее всего, все эти карты могут быть клонированы хакерами ср. [8]. Однако существуют ли атаки легче этих? Являются ли серийные номера карты на самом деле случайными? Было произведено сравнение данных, передаваемых Wiegand к серверным системам от одного считывателя для разных карт.

Эти данные уже имеют критически низкую энтропию, которая составляет обычно не более 24 бит. Существует гораздо больше вариантов формата Wiegand. Однако они менее распространены. К несчастью код объекта на 8 бит (обычно) фиксируется для всех карт в данной области. Данные остаются с максимальной 16 битной энтропией. Любое дальнейшее сокращение объема энтропии может быть фатальным.

Были проверены лишь несколько карт. Однако ясно, что энтропия данных Wiegand очень низкая. Во-первых, было обнаружено, что коды могут быть одинаковыми в различных областях применения. Например, было взято несколько карт HID Iclass, которые продаются отдельным пользователям ноутбуков и одна карта Prox от банка. К сожалению обе карты были с одним и тем же кодом. Кроме того, серийные номера размером 16 бит имеют очень низкую энтропию. Можно предположить, что в связи с парадоксом дней рождений, если взять 10 карт разных сотрудников банка и 10 карт от разных пользователей ноутбуков, два объекта с уникальными кодами номеров карт могут стать идентичными чисто случайно. Некоторые пользователи ноутбуков смогут проникать внутрь банка. Это зависит от устройств чтения смарт-карт, которые используется в банке, если предполагать, что только 26 бит основных данных Wiegand передаются для обеих карт (традиционный стиль).

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

3. ГПСЧ на зарубежных контактных смарт-картах.

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

Общая модель генерации псевдослучайных чисел:

1) Функция формирования входных данных (ФФВД) получает начальное значение из циклического буфера (ЦБ). ЦБ обеспечивает источник энтропии ГПСЧ смарт-карты. Обычно ЦБ (также может быть представлен в качестве стартового файла) хранит десять случайных начальных значений и каждое значение используется/обновляются последовательно. ФФВД обрабатывает данные для удовлетворения требований входа алгоритма генератора (АГ).

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

2) Выход ФФВД обрабатывается алгоритмом генератора (АГ). АГ на самом деле является криптографической функцией (т.е. Hash, MAC, DES, AES и т.д.). Выбор АГ является выбором

разработчиков смарт-карт (или исполнителей).

3) Выход АГ подается на генератор нового зерна (ГНЗ). ГНЗ генерирует значение, используемое в процессе обновления зерен, а также передает в ФФВД. Базовой архитектурой ГНЗ является функция «или» входа АГ с его выходом. Если вход/выход неравной длины, то можно использовать более короткую последовательность несколько раз.

4) Выход ГНЗ обрабатывается функцией обновления файла зерна (ФОФЗ). ФОФЗ получает новое значение (для ввода зерна) и побитно складывает с выходом ГНЗ. Результат записывается обратно в то же место, откуда ФОФЗ получает значение. Новое значение зерна может иметь индекс 1, и этот метод используется во многих ГПСЧ на смарт-картах. Выход ГНЗ подается обратно в ФФВД для следующего раунда. Во втором раунде шаги 1 и 2 выполняются снова. Тем не менее, выход АГ не отправляется в ГНЗ, вместо него подается на Функцию формирования выхода (ФФВ). Эта дополнительная итерация шагов 1 и 2 осуществляется, в основном, чтобы скрыть значение, которое используется для обновления файла зерна (циклический буфер).

5) ФФВ получает данные от АГ и форматирует этот выход в соответствии требованиями, предъявляемыми к выходной последовательности.

На практике применяются такие алгоритмы генерации, как SHA-1, SHA-256, HMAC-DES, HMAC-AES, DES, AES. В таблице представлены длины входных и выходных последовательностей для различных алгоритмов.

Алгоритм Длина входных Длина выходных

параметров параметров

SHA-1 440 128

SHA-256 440 128

HMAC-DES 128 128

HMAC-AES 128 128

DES 128 128

AES 128 128

Далее представлена информация о размере программы на карте и размере файла зерна

Алгоритм Размер программы Размер файла зерна

SHA-1 2086 байт 550 байт

SHA-256 2123 байт 550 байт

HMAC-DES 2283 байт 160 байт

HMAC-AES 2299 байт 160 байт

DES 2245 байт 160 байт

AES 2189 байт 160 байт

Как далее будет видно, нет большой разницы между реализованными алгоритмами как в плане затрат памяти, производительности, а также в плане процента прохождения статистических тестов. Для статистического теста была взята контактная смарт-карта NXP, на которой были сгенерированы 107 последовательностей, каждая из которых размером 256 бит. Из результатов тестирования видно, что ГПСЧ смарт-карты NXP проходит все тесты. Соответственно была проведена проверка данного ГПСЧ другими вышеописанными тестами.

«Стопка книг». Последовательность хп 0,1 разбивалась на блоки длины l и при тестировании рассматривалась как выборка из алфавита размера S=2[ . Множество всех номеров букв алфавита A разбивалось на два подмножества: а1,а2,...ак , А2 ak+1,...,as . Второе подмножество не хранилось в памяти компьютера. ГПСЧ NXP данный тест не прошел, что означает, что данный ГПСЧ не может применяться на практике.

4. ГПСЧ на основе ГОСТ-28147-89 на примере СКЗИ «MS_KEY К»

ГПСЧ предназначен для дополнительного усложнения в процедуре генерации закрытых ключей ГОСТ Р 34.10-2001.

В качестве исходных данных функции усложнения используется последовательность случайных чисел со штатного ДПСЧ NXP (включая все штатные процедуры усложнения - один из вариантов того, что описано в прошлом параграфе) и предзаданное случайное число, получаемое с сертифицированного внешнего ДСЧ.

Описание алгоритма ГПСЧ

В качестве начальных данных алгоритма используются:

- ранее загруженное, модифицируемое после исполнения алгоритма, случайное число (СЧ) длиной 32 байта, называемое «внешнее СЧ»;

- ранее загруженное, модифицируемое после исполнения алгоритма, СЧ длиной 8 байт, называемое «синхропосылка».

При необходимости сгенерировать СЧ в составе какой-либо операции (генерация ключа, формирование ЭЦП или просто выдача СЧ) выполняется алгоритм, один цикл которого состоит из следующей последовательности шагов:

1. Из специального файла считываются «синхропосылка» и «внешнее СЧ».

2. Со штатного ДСЧ берется последовательность из 32 байт, которая складывается по модулю 2 с «внешним СЧ». Полученный результат длиной 32 байта назовем «ключом ДСЧ».

3. Используя «ключ ДСЧ» и «синхропосылку» формируем N+8+32 байт гаммы согласно ГОСТ 28147-89 в режиме гаммирования, где N - количество байт СЧ, требуемое для какой-либо операции. Полученный результат назовем «гаммой».

4. Согласно протоколу операции, со штатного ДСЧ берется последовательность из N байт, которая складывается по модулю 2 с первыми N байтами ранее сформированной «гаммы».

5. Следующие, после N, 8 байт «гаммы» складываются по модулю 2 со значением «синхропосылки» и заменяет старое значение «синхропосылки».

6. Следующие, после N+8, 32 байта «гаммы» заменяет старое значение «внешнего СЧ».

7. Замененные значения «синхропосылки» и «внешнего СЧ» записываются в специальный файл.

8. В составе операции (генерация ключа, формирование ЭЦП или просто выдача СЧ), со штатного ДСЧ берется последовательность требуемой длины N, которая складывается по модулю 2 с полученным значением «гаммы». Результат длиной N байт назовем «секретным СЧ». Если операция - генерация ключа, то при наличии «внешнего ключевого материала» его значение складывается по модулю 2 с имеющимся «секретным СЧ».

9. «Секретное СЧ» подвергается процедуре динамического статистического контроля, и если ее не проходит, то отбрасывается. В этом случае п.п.1-9 повторяются, но не более 5 раз. Если за 5 раз не получено «секретное СЧ» надлежащего качества, то ОС выдается специальный признак ошибки (Status Word = 9114), и выполнение любой следующей команды блокируется.

10. Для всех упомянутых операций (генерация ключа, формирование ЭЦП или просто выдача СЧ) N принимается равным 32.

11. Если операция - генерация ключа, то результат («секретное СЧ») длиной 32 байта используется для формирования секретного ключа ГОСТ Р 34.10-2001 штатным образом (т.е., в частности нормируется по модулю, согласно используемым параметрам алгоритма, и проверяется против множества недопустимых значений).

12. Если операция - выдача СЧ наружу, то в качестве запрошенных M байт выдаются первые M байт «секретного СЧ», где M может принадлежать диапазону от 8 до 32.

Упомянутые операции реализованы следующими командами:

• Генерация ключа - GENERATE KEY PAIR

• Формирование ЭЦП — PSO CDS

• Выдача СЧ — GET CHALLENGE

Схема выдачи случайного числа

Рассмотрим различные варианты неисправностей, которые могут возникнуть во время работы.

Вариант первый - отказ встроенного ДСЧ и загрузка плохих ключей. Под отказом встроенного ДСЧ подразумевается, что встроенный ДСЧ стал генерировать одни 0 или одни 1, под плохими ключами -ключи, в которых есть большое преобладание 0 или 1. Для реализации данной ситуации была разработана специальная программа.

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

Вариант второй - отказ только встроенного ДСЧ. Для реализации данной ситуации так же была использована та же программа. В данном случае ГСЧ не проходит тест «Стопка книг», что так же требует внимания.

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

Тесты, как видно, пройдены вполне успешно, поскольку нет отказа внутреннего ДСЧ (как видно из схемы ключ перед использованием складывается с псевдослучайной последовательностью, полученной со встроенного ДСЧ). Так же ключ после каждой итерации обновляется. Данный результат остается актуальным, даже если после каждой итерации загружать новый «плохой» ключ.

Как видно, в целом ситуация с этим датчиком достаточно не плохая, но из-за первой ситуации необходимо доработать блок динамического статистического контроля.

Заключение

Необходимость проверки последовательности с помощью нескольких критериев неоднократно отмечалась в литературе.

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

Литература

1. Garcia F. D., Rossum P., Verdult R. and Schreur R. W.: Wirelessly Pickpocketing a Mifare Classic Card. In IEEE Symp. on Security and Privacy, Oakland, May 2009.

2. Costin A., MFCUK, an open source C implementation of the Courtois Dark Side attack https://c0de.g00gle.c0m/p/mfcuk/

3. Courtois N.: The Dark Side of Security by Obscurity and Cloning MiFare Classic Rail and Building Passes Anywhere, Anytime, In SECRYPT 2009 International Conference on Security and Cryptography: pp. 331-338. INSTICC Press 2009.

4. Courtois N., Slides about MiFare Classic, extended version of the talk given at the 2009 workshop on RFID security held at Leuven, Belgium, available at http://www.nicolascourtois.com/papers/mifare all.pdf.

5. Nohl K., Evans D., Starbug, and H. Pl'otz, Reverse-Engineering a Cryptographic RFID Tag, In Usenix Sec. Symp., pp. 185- 194, 2008.

6. National Institute of Standards and Technologies (NIST) Special Publication 800-22. A Statistical Test Suite for the Validation of Random Number Generators and Pseudo Random Number Generators for Cryptographic Applications, 2012. http://csrc.nist.gov/rng

7. Courtois N.: The Dark Side of Security by Obscurity and Cloning MiFare Classic Rail and Building Passes Anywhere, Anytime, In SECRYPT 2009 International Conference on Security and Cryptography: pp. 331-338. INSTICC Press 2009.

8. Meriac M.: Heart of darkness - exploring the uncharted backwaters of hid iclass(TM) security, In 24th Chaos Communication Congress, December 2010.

9. SmartMX2 P40 family P40C040/072 http://www.ru.nxp.com/documents/short_data_sheet/P40C040_C072_SMX2_FAM_SDS.pdf

10. Рябко Б.Я., Пестунов А.И. «Стопка книг» как новый статистический тест для случайных чисел // Пробл. передачи информации. 2004. Т. 40, вып. 1. С. 73-78.

11. Pestunov A. Statistical Analysis of the MARS Block Cipher // Cryptology ePrint Archive. Report 2006/217. 2006. http://eprint.iacr.org/2006/217.

12. Ryabko B., Monarev V. Using information theory approach for randomness testing // J. of Statistical Planning and Reference. 2005. Vol. 133, N 1. P. 95-110.

13. Doroshenko S., Ryabko B. The experimental distinguishing attack on RC4 // CryptologyePrint Archive. Report 2006/070. 2006. http://eprint.iacr.org/2006/070.

14. Боровков А.А. Математическая статистика. М.: Наука. Гл. ред. физ.-мат. лит., 1984.

15. Ryabko B., Stognienko V., Shokin Yu. A new test for randomness and its application to some cryptographic problems // J. of Statistical Planning and Reference. 2004. Vol. 123, N 2. P. 365-376.

16. Пестунов А.И. - Теоретическое исследование свойств статистического теста «Стопка книг» 2006

17. Тихомирова М.И. - Предельные распределения числа непоявившихся цепочек одинаковых исходов. -Дискрет. матем., 2008, т. 20, в. 3, с. 40-46.

18. Тихомирова М. И. - Асимптотическая нормальность числа непоявившихся несплошных цепочек исходов независимых испытаний. - Дискрет. матем., 2009, т. 21, в. 2, с. 112-125.

19. NIST Special Publication 800-57, Elaine Barker, William Barker, William Burr, William Polk, and Miles Smid «Recommendation for Key Management - Part 1: General (Revision 3)», July 2012

20. NIST Special Publication 800-90A, Elaine Barker, John Kelsey, «Recommendation for Random Number Generation Using Deterministic Random Bit Generators», January 2012.

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