Помощь в написании студенческих работ
Антистрессовый сервис

Управление криптографическими ключами

РефератПомощь в написанииУзнать стоимостьмоей работы

Стандарт ANSI Х9.17. Представляется естественным использовать криптостойкие алгоритмы шифрования для построения криптографически сильного генератора псевдослучайных чисел. Для этих целей подходят режимы OFB, CTR или гаммирования (для ГОСТ 28 147−89). Данный метод обеспечивает достаточное качество генерируемой последовательности, так как криптографическая гамма обладает необходимыми… Читать ещё >

Управление криптографическими ключами (реферат, курсовая, диплом, контрольная)

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

  • • генерация ключей;
  • • хранение ключей;
  • • распределение ключей.

Генерация ключей. Истинно случайные и псевдослучайные последовательности. Генерация ключей должна производиться таким образом, чтобы предугадать значение ключа (даже зная, как он будет генерироваться) было практически невозможно. В идеальном случае вероятность выбора конкретного ключа из множества допустимых равна 1 /К, где К — мощность ключевого множества (ключи равновероятны).

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

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

Последовательность называется истинно случайной, если ее нельзя воспроизвести. Это означает, что если запустить генератор истинно случайных чисел дважды при одном и том же входе, то на его выходе получатся разные случайные последовательности.

В то же время из-за дешевизны и возможности неограниченного тиражирования наиболее распространенными являются программные реализа;

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

Рис. 2.60. Пример схемы аппаратного генератора случайных чисел ции генераторов. Следует учитывать, что получаемая в этом случае последовательность будет псевдослучайной — если программный генератор повторно запустить с такими же начальными значениями, он выдаст ту же последовательность (рис. 2.61).

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

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

Рис. 2.61. Генераторы случайных и псевдослучайных чисел Наиболее простым и известным генератором псевдослучайных чисел является линейный конгруэнтный генератор, вырабатывающий последовательность чисел R (i):

Управление криптографическими ключами.

где А и С — константы; R (0) — исходное значение, выбранное в качестве порождающего числа. Значение т обычно устанавливается равным 2пу где п — длина машинного слова в битах. Генератор имеет период М, после чего генерируемая последовательность начнет повторяться. Необходимо выбирать числа А и С таким образом, чтобы период М был максимальным. Доказано, что этого можно достичь тогда и только тогда, когда С — нечетное и A mod 4 = 1.

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

Так, например, при известных значениях R (0), R ( 1), R (2), R (3) (или любых других четырех подряд идущих членов последовательности псевдослучайных чисел R (i)) параметры генератора могут быть получены из системы уравнений Управление криптографическими ключами.

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

В качестве примеров криптографически сильных генераторов псевдослучайных чисел можно привести режим OFB (и его модификацию CTR) блочных шифров[1], а также режим гаммирования отечественного криптоалгоритма ГОСТ 28 147–89. При этом используются ключи, специально резервируемые для задач генерации. В качестве начальных значений могут браться, например, значения таймера вычислительной системы. Кроме того, криптографически сильные генераторы могут быть построены с использованием односторонних хэш-функций[2].

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

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

Для выявления возможных отклонений от случайности может быть использован ряд статистических тестов:

  • • классические статистические тесты[3] (проверка гипотезы равномерного распределения случайной величины методом хи-квадрат, тесты на однородность и симметричность);
  • • тесты, применимые к двоичным последовательностям[4] (метод серий, частотный периодический тест);
  • • тесты, специально разработанные или отобранные для применения в криптографии, — тесты NIST [5] (16 тестов, рекомендованных Национальным институтом стандартов и технологий США); тесты DIEHARD[6], известные как один из наиболее строгих наборов тестов; тесты Д. Кнута, основанные на критерии хи-квадрат[7]; адаптивный тест «стопка книг»[8] и др.

Генератор Блюм — Блюма — Шуба. Самым простым и эффективным на данный момент криптографически сильным генератором псевдослучайных чисел является генератор BBS[9] (Blum — Blum — Shub), названный по именам создателей Л. Блюм, М. Блюма и М. Шуба и основанный на теории квадратичных вычетов, но модулю.

Сначала находят два больших простых числа р} q примерно одного размера, которые при делении на 4 дают остаток 3:

Управление криптографическими ключами.

Для нахождения чисел р и q можно сначала выбрать случайные целые числа и и v, вычислить р = Аи + 3, q = 4v + 3, а затем проверить их на простоту. Если полученное число оказалось не простым, то выбирают новое случайное значение. Затем вычисляется п = pq, названное числом Блюма. Далее выбирается случайное целое число s, 1 < s < п, взаимно простое с п, НОД (5, п) = . Генерируется начальное значение генератора х0 = s[5]modrc. Получили х{) — случайный квадратичный вычет по модулю п.

Далее вычисляются числа х0 заданные итерационной формулой.

Управление криптографическими ключами.

В качестве битов псевдослучайной последовательности ps требуемой длины L используются младшие биты чисел х

Управление криптографическими ключами.

Интересной особенностью генератора BBS является то, что при знании разложения числа п на множители он допускает эффективное прямое определение любого бита последовательности ps. Любое х- может быть вычислено исходя лишь из начального значения х0 и порядкового номера i:

Управление криптографическими ключами.

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

Пример 2.11.

Сформируем псевдослучайную 4-битовую последовательность с помощью BBS-генератора.

Найдем числа р и q. Выберем два случайных целых числа и = 3 и v = 5. Вычислим р = 4 • 3 + 3 = 15и<7 = 4- 5 + 3 = 23. Проверим полученные значения на простоту: число р = 15 — не простое и не может использоваться в BBS-генераторе, а число q = 23 — простое. Выберем тогда новое значение и = 7, р = 7−4 + 3 = = 31 — простое. Число Блюма п = pq = 31 • 23 = 713.

Выберем случайное целое число 5, взаимно простое с п. Пусть s = 16, ПОД (16, 713) = 1. Тогда:

Управление криптографическими ключами.

В качестве последовательности ps возьмем младшие биты чисел х{ (0 — если число четное и 1 — если число нечетное), получаем ps = 0110.

Пусть теперь требуется ответить на вопрос: каким будет 12-й бит последовательности ps?

Зная разложение числа п на множители = 31 и q = 23), вычислим хи:

хи — четное, значит 12-й бит последовательности ps будет равен нулю.

хи — четное, значит 12-й бит последовательности ps будет равен нулю.

Эффективность BBS-генератора можно повысить, не ослабляя результирующую последовательность ps, если использовать не один, а не более log2rj младших битов чисел xjf где г — количество двоичных разрядов числа Блюма п (т.е. примерно log2log2n младших битов).

Пример 2.12.

Требуется выяснить максимально возможное число младших битов чисел х{, которые можно использовать в BBS-гснсраторс, нс ослабляя его, если п = 713.

Вычислим log2(713 + 1) «9,48 (добавляем единицу для кодирования нуля), округлив вверх до ближайшего целого, получим г = 10 — число двоичных разрядов числа 713.

Вычислим log210 ~ 3,32, округлив вниз до ближайшего целого, получаем 3. Значит, в эффективной реализации BBS-генератора можно использовать три младших бита чисел х{ (для сравнения: log2log2713 ~ 3,24, результат тот же — три младших бита).[11]

Стандарт ANSI Х9.17. Представляется естественным использовать криптостойкие алгоритмы шифрования для построения криптографически сильного генератора псевдослучайных чисел. Для этих целей подходят режимы OFB, CTR или гаммирования (для ГОСТ 28 147–89). Данный метод обеспечивает достаточное качество генерируемой последовательности, так как криптографическая гамма обладает необходимыми статистическими характеристиками. Как и в случае иных генераторов псевдослучайных чисел, последовательность будет периодична. Так, гамма шифра алгоритма ГОСТ 28 147–89 обладает периодом повторения 64-битовых блоков, равным 264-232.

Одной из схем генерации ключей с использованием симметричного шифра является стандарт ANSI Х9.17 с алгоритмом тройной DES (Triple DES, 3DES) с двойным ключом (рис. 2.62). В число приложений, использующих эту технологию, входит PGP.

Генератор псевдослучайных чисел ANSI Х9.17.

Рис. 2.62. Генератор псевдослучайных чисел ANSI Х9.17.

Пусть функция Ek(X) осуществляет шифрование X по ЗОЕБ-алгоритму (шифрование — дешифровка — шифрование) на заранее заготовленном ключе к = (К 1, К2), который используется только для генерации секретных ключей. Пусть далее вектор инициализации IV0 является начальным 64-битным значением, которое держится в тайне от противника, а Г. представляет собой отметку времени, когда был сгенерирован i-й ключ. Тогда очередной случайный ключ R} вычисляется с помощью преобразования.

Управление криптографическими ключами.

Очередное значение вектора инициализации IVi+v которое будет использовано для генерации следующего случайного числа, вычисляется как.

Управление криптографическими ключами.

Основное назначение генератора ANSI Х9.17 состоит в получении большого количества ключей для многократных сеансов связи.

Вообще говоря, вместо 3DES можно использовать любой другой стойкий алгоритм шифрования, например ГОСТ 28 147–89.

На практике необходимость дополнительных вызовов процедуры шифрования (одного в случае гаммирования и трех в стандарте ANSI Х9.17) делает генерацию весьма ресурсоемкой, что затрудняет ее аппаратную реализацию и определяет невысокие скоростные характеристики данного метода.

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

Ключевые пространства. Пространство ключей К (ключевое пространство) — это набор всех возможных значений ключа.

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

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

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

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

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

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

  • • шифрование информации с помощью стойкого криптоалгоритма Ек имеет место только при использовании ключей специального вида;
  • • «правильный» (стойкий) ключ k = [k', F (k')], где k' — собственно ключ шифрования длины nk, (|&| = пк) F — некоторая криптографическая функция; |F (k') | - А, А — пк —
  • • вероятность случайно получить стойкий ключ пренебрежимо мала и равна 2″д;
  • • если поступивший на вход криптомодуля ключ не является стойким, для шифрования информации применяется существенно менее стойкий алгоритм Е[.

Например, блочный алгоритм шифрования с длиной ключа 128 бит может использовать «составной» ключ из 192 бит. Тогда вероятность случайно использовать стойкий ключ будет достаточно мала — всего 2-64.

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

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

  • • на главный ключ (мастер-ключ);
  • • ключ шифрования ключей;
  • • ключ шифрования данных (сеансовый ключ).

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

В настоящее время для распределения ключей обычно используются схемы криптографии с открытым ключом, такие как система Диффи — Хеллмана (DH) или протокол Нидхема — Шрёдера, обеспечивающий взаимную аутентификацию сторон с формированием общего секретного ключа. Эффективное решение задачи распределения ключей средствами симметричной криптографии возможно при использовании общего доверенного центра (сервера ключей).

При распределении ключей между абонентами системы необходимо выполнить следующие требования:

  • • обеспечить оперативность и точность распределения ключей;
  • • обеспечить секретность распределения ключей.

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

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

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

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

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

  • [1] DRAFT NIST SP 800−90А, Rev. 1. Recommendation for Random Number Generation UsingDeterministic Random Bit Generators //NIST. Nov. 2014. URL: http://csrc.nist.gov/publications/drafts/800−90/sp800−90a_r l_draft_novembcr2014_vcr.pdf
  • [2] Там же; СТБ 34.101.47—2012. Государственный стандарт Республики Беларусь. Информационные технологии и безопасность. Криптографические алгоритмы генерации псевдослучайных чисел. Минск: Госстандарт, 2012. URL: http://apmi.bsu.by/assets/files/std/brng-specl7.pdf
  • [3] Акимова Г. II., Пашкина Е. В., Соловьев А. В. Методологический подход к оценке качества случайных чисел и последовательностей // Труды ИСА РАН. 2008. Т. 38. URL: www.isa.ru/proceedings/imagcs/documents/2008;38/156−167.pdf; Закс Л. Статистическое оценивание. М.: Статистика, 1976.
  • [4] 2 Акимова Г. П., Пашкина Е. В., Соловьев А. В. Методологический подход к оценке качестваслучайных чисел и последовательностей.
  • [5] NIST SP 800−22. A Satistical Test Suite for Random and Pseudorandom Number Generatorsfor Cry prographic Applications. Rev. 1 //NIST. Apr. 2010. URL: http://csrc.nist.gov/publications/nistpubs/800−22-revla/SP800−22revla.pdf
  • [6] The Marsaglia random number CDROM including the DIEHARD battery of tests of randomness [web site] / G. Marsaglia; Florida State University. URL: http://stat.fsu.edu/pub/diehard
  • [7] i Кнут Д. Искусство программирования для ЭВМ: в 3 т. Т. 2. Получисленные алгоритмы.М.: Мир, 1977.
  • [8] Рябко В. Я., ФионовА. /7. Криптографические методы защиты информации. М.: Горячаялиния — Телеком, 2012.
  • [9] Брассар Ж. Современная криптология. Руководство: пер. с англ. М.: «Полимсд», 1999;Жданов О. Н. Методика выбора ключевой информации для алгоритма блочного шифрования;Столлингс В. Криптография и защита сетей: принципы и практика.
  • [10] NIST SP 800−22. A Satistical Test Suite for Random and Pseudorandom Number Generatorsfor Cry prographic Applications. Rev. 1 //NIST. Apr. 2010. URL: http://csrc.nist.gov/publications/nistpubs/800−22-revla/SP800−22revla.pdf
  • [11] Брассар Ж. Современная криптология. Руководство.
  • [12] DRAFT NIST SP 800−90А, Rev. 1. Recommendation for Random Number Generation UsingDeterministic Random Bit Generators.
Показать весь текст
Заполнить форму текущей работой