Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Петров А.А. Комп без-ть

.pdf
Скачиваний:
40
Добавлен:
28.03.2016
Размер:
16.03 Mб
Скачать

Алгоритмы блочного шифрования

51

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

1. Первый блок открытого текста записывается в регистры N 1 и Ы2

и зашифровывается в режиме простой замены на первых 16 раундах. Заполнение К З У соответствует ключам, на которых производится зашифрование блоков открытого текста.

2. Полученный результат из регистров и N 2 суммируется по модулю 2 со следующим блоком открытого текста.

3.Результат суммирования заносится в регистры 1^ и N 2 и подвергается зашифрованию в режиме простой замены на 16 раундах и т.д. до пос­ леднего блока открытого текста.

4.Из содержимого регистров N 1 и Ы2 выбирается битовая последователь­ ность длины Ь, которая и является имитовставкой, передаваемой по открытому каналу связи вместе с блоками зашифрованного текста.

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

Стойкость ГОСТ28147-89

Говоря о безопасности алгоритма ГО С Т 28147-89, необходимо отметить, что на сегодняшний день для него пока не предложено практически реа­ лизуемых атак, более эффективных, чем атака методом «грубой силы». Высокие криптографические свойства этого алгоритма достигаются за счет:

большой длины ключа (256 бит); если учесть, что подстановки в 8 -бок­ сах могут являться секретными, то общий объем секретной информа­ ции окажется равным 610 битам;

32 раундов преобразований, используемых в ГОСТе. Например, уже после восьми раундов единичное изменение входной последователь­ ности отразится на изменении всех битов выхода.

Однако при использовании ГО С Та особое внимание следует уделять выбору подстановок 5-боксов, поскольку ошибка или недосмотр может существенно снизить криптостойкость алгоритма.

1.2.4. Применение алгоритмов блочного шифрования

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

52 Общие сведения по классической криптографии

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

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

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

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

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

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

Асимметричные алгоритмы шифрования

53

1.3. Асимметричные алгоритмы шифрования

1.3.1. Общие сведения

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

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

В данном разделе мы ограничимся кратким описанием идеи построения асимметричных алгоритмов (на примере алгоритма К 8 А ), а также затро­ нем вопросы теоретической стойкости подобных алгоритмов (в частности, практические аспекты обеспечения стойкости алгоритма К ЗА ). В силу того, что с точки зрения практической реализации асимметричные алго­ ритмы по своей природе являются достаточно «медленными», здесь также будет уделено внимание вопросам ускорения основных типов вычислений, используемых в этих алгоритмах.

С одной стороны, идея асимметричных алгоритмов тесно связана с раз­ витием теории односторонних функций, с другой - с теорией сложности. Под односторонней функцией мы будем понимать легковычисляемое отображение ^(х): Х -*У, х е X, при этом обратное отображение является сложной задачей. Она называется трудновычисляемой, если нет алгоритма для ее решения с полиномиальным временем работы. Легковычисляемой

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

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

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

54

Общие сведения по классической криптографии

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

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

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

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

дискретное логарифмирование в конечных полях;

факторизация больших чисел.

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

Асимметричные алгоритмы шифрования

55

1.3.2. Стандарт асимметричного шифрования ЯЗА

Самым распространенным алгоритмом асимметричного шифрования яв­ ляется алгоритм КЗА, названный по первым буквам имен его создателей (Ш уез!, ЗЬапнг, АсИетап). Разработчикам данного алгоритма удалось эф­ фективно воплотить идею односторонних функций с секретом. Стойкость КЗА базируется на сложности факторизации больших целых чисел.

В 1993 году метод КЗА был обнародован и принят в качестве стандарта (Р К С З # 1: КЗА ЕпсгурНоп 31апбагб). К З А можно применять как для зашифрования/расшифрования, так и для генерации/проверки электрон­ но-цифровой подписи (Э Ц П ).

Генерация ключей

Каждый участник информационного обмена генерирует пару ключей (от­ крытый и секретный) в соответствии со следующими правилами:

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

-увеличение порядка чисел ведет к замедлению операции зашифро­ вания/расшифрования;

-увеличение порядка чисел р и ^ ведет к увеличению стойкости ал­ горитма, поэтому при выборе чисел следует руководствоваться

практической необходимостью. Так, например, при реализации КЗА в интеллектуальных карточках с точки зрения скоростных парамет­ ров системы не следует выбирать слиш ком больш ие р и д в связи с ограниченными вычислительными возможностями, заложенными в данных устройствах. На практике обычно рекомендуется выби­ рать числа, содержащие порядка 150-200 десятичных знаков.

2.Вычисляется модуль системы п = рд и ф(п) = (р - 1)(д - 1) - функ­ ция Эйлера.

3.Выбирается достаточно большое число е, удовлетворяющее условию

1< е < ф(п), и взаимно простое с ф(п).

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

еб = 1 (шоб ф (п)) 1 < б < ф(п)

Таким образом, секретным ключом является пара чисел (п, б), а откры­ тым - пара чисел (п, е). Открытый ключ помещается в общедоступный

56

Общие сведений по классической криптографии

справочник (детально этот процесс будет описан ниже). В соответствии

с РКС5 # 1 формат представления ключей имеет следующий вид:

КЗАРиЪПсКеу :=

Зедиепсе

{

тойи1из 1п1:едег,

п

(модуль п)

р и Ь И с Ехропепб

1пбедег, е

(открытая экспонента

 

 

шифрования)

 

 

 

 

 

}

Формат КЗАРиЬНсКеу и ПЗАРггуабеКеу представлен в соответствии

с АЗЫ.1 (X .208 СС1ТТ).

 

 

Секретный ключ имеет вид:

 

 

КЗАРгтуабеКеу: = Зедиепсе

 

{

у е гзго п Уегзбоп

 

 

 

Идентификатор версии

 

 

 

 

 

предназначен для

 

 

 

 

 

совместимости с последующими

 

 

 

 

 

версиями.

тойи1из 1пбедег,

п

 

 

Модуль п.

р и Ь И с Ехропепб 1пбедег,

е

Открытая экспонента

 

 

 

 

 

зашифрования е.

ргйуабе Ехропепб Хпбедег,

<1

Секретная экспонента

 

 

 

 

 

расшифрования й.

р г !т е

1 1пбедег,

р

 

 

Простое целое р.

р г ш е

2 1пЬедег,

д

 

 

Простое целое д.

ехропепб! 1пбедег,

й той

(р -1)

Данные экспоненты

 

 

 

 

 

используются для обеспечения

 

 

 

 

 

эффективности работы

 

 

 

 

 

алгоритма.

ехропепб 2 1пбедег,

й той

(д -1)

 

со еб Н сгеп б 1пбедег, Ц п уегзе об д) той р

Инверсия д (д 'Ч той р) ,

 

 

 

 

 

удовлетворяющая условию

 

 

 

 

 

д д '1= 1 (той р) .

}

У егзгоп := 1пЬедег

Зашифрование/расшифрование

После выбора параметров системы (п, е, б ) абонент готов к приему зашиф­ рованных сообщений. Их передача состоит из следующих шагов:

1.Входное сообщение разбивается на блоки 1Щ, их размер определяется целым к, соответствующим неравенству 1 0 ы < п < 1 0 к.

2.Вычисляется значение с; = т ? т о б п.

3.Значение сь которое является зашифрованным блоком сообщения, посылается по открытым каналам передачи данных.

Асимметричные алгоритмы шифрования

57

Расшифрование заключается в вычислении значения гщ = с|кпоб п. Доказательством того факта, что расшифрование выполняется толь­

ко абонентом, знающим секретную экспоненту зашифрования б, явля­ ется с* т о б п = т у 41 т о б п, с учетом, что еб = 1 (ш об Ф (п )). При этом получаем еб = 1 + кф(п), где к - целое число, удовлетворяющ ее этому равенству. Поскольку гщ4’ (П1)шоб п - единичный элемент группы отно­ сительно операции умножения, элемент пц тоже принадлежит к данной группе. В этом случае:

с?т о б п = т;пфф(т)т о б п = т 1.

/.3.3. Стойкость алгоритма КЗА

Очевидно, что с т о й к о с т ь КЗА и асимметричных алгоритмов в целом зави­ сит от сложности обращения односторонних функций, лежащих в основе данного типа алгоритмов. В К З А сложность обращения односторонней функции Р (х ) " ху (ш об п) зависит от сложности разложения на множите­ ли модуля п. При этом следует иметь в виду, что это утверждение является всего лишь предположением, поскольку строгих математических доказа­ тельств эквивалентности данных проблем пока не существует.

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

Среди наиболее известных недостатков алгоритма КЗА можно выделить некорректный выбор значений р и д. Числа р и ^ должны быть простыми и не содержаться ни в одной из известных таблиц простых чисел. Эти числа также не должны быть близкими друг к другу. Если (р - ^)/2 мало и (р + ^)/2 не­ много больше, чем л/п , то при (р + ^ )2/4 - п С (р - ^ )2/4 левая часть ра­ венства образует полный квадрат. При факторизации п перебираем целые числа иа соответствие неравенству х > л/п до тех пор, пока не найдем та­ кое значение, что х2 - п = у2. Тогда р = х + у и д = х - у . Учитывая изложен­ ный факт, а также ряд других атак, основанных на неправильном выборе чисел р и д, сформулируем следующие требования к выбору чисел р и

1. Данные числа должны быть большими числами одинаковой длины; например: если п = 1024 бита, то длина р и ^ долж на быть равна

512 битам.

2.Различие между р и ^ должно быть большим.

3.Числа р и ц должны быть строго простыми. Ч исло называется строго простым, если выполнены условия:

а) р - 1 должно иметь большой простой делитель (обозначим его че­

рез г);

58

Общие сведения по классической криптографии

б) р + 1

должно иметь большой простой делитель;

в) г - 1

должно иметь большой простой делитель.

Требование а) обусловлено противодействием алгоритмам факториза­ ции п (один из таких алгоритмов был предложен Поллардом). Аналогич­

но обосновывается требование б). Выполнение на практике требования в) позволяет противостоять циклическим атакам.

Циклические атаки

Пусть с = ше шоб п - зашифрованное сообщение, к - положительное це­ лое, при этом с° = с (т о б п). Тогда зашифрованием является подстановка на множестве {0 , 1 ... п - 1 }, в которой присутствует к, что может привести к ситуации, когда сеЫ = т (т о б п). Злоумышленник вычисляет значения се т о б п, се т о б п и т.д. до тех пор, пока не будет получено значение с. Если се т о б п = с, тогда се " = т (т о б п). Основой циклической атаки является нахождение такого небольшого положительного целого и, при котором

выполняется

условие 1(и) = Н О Д (с е11 - с, п ) > 1. Если сс'и= с (т о б р)

и с '^ с (т о б

ц), то 1(и) = р. Аналогично, если с°п & с (т о б р) и с°и= с (т о б

д), то {(и ) = д. В любом из этих случаев злоумышленник получает разло­ жение п на множители.

При этом существует вероятность возникновения одной из следующих ситуаций:

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

васимметричных алгоритмах шифрования необходимо, чтобы п созда­ валось для каждого участника системы отдельно. Кроме того, разви­ тие эффективных алгоритмов факторизации больших целых чисел предъявляет жесткие требования к размеру п; на сегодняшний день минимально рекомендуемая длина п должна быть равна 768 битам;

при выборе экспонент е и б тоже могут возникать ситуации, суще­ ственно ослабляющие стойкость КЗА. При выборе экспоненты е обыч­ но ориентируются на обеспечение приемлемой скорости операций зашифрования/расшифрования, что приводит к выбору малых зна­ чений е. Например, рассмотрим случай, когда е = 3 для участников А, В и С (предполагается также, что модули п у каких-либо двух

Асимметричные алгоритмы шифрования

59

участников взаимно просты). В этом случае злоумышленник, перехва­ тив одинаковые сообщения, переданные всем участникам (например, многоадресная доставка), с5= т е т о б п, где 1 = А, В, С, может вычис­ лить число х = т 3т о б (п Апвпс). Поскольку т 3< пАпвпс, это возможно только в случае, если х = т 3. Тогда злоумышленник, вычислив куби­ ческий корень, может найти т . С точки зрения достижения приемле­ мых скоростных параметров и обеспечения долж ного уровня безо­ пасности имеет смысл выбрать число е = 2 16+ 1 , являющееся числом Ферма и имеющее в битовом представлении всего лишь две единицы. Выбор небольшого числа б также опасно тем, что если Н О Д (р - 1, ц ~ 1) и б приблизительно равны п/4, то существуют алгоритмы факториза­ ции п на основе знания только открытого ключа. Кроме того, в случае небольшого значения б оно может быть найдено простым перебором всех возможных значений.

Для КЗА характерно наличие так называемых пешифруемых блоков от­ крытого сообщения, то есть таких ш, для которых выполняется равен­ ство шс*= т (т о б п). Например, т = О, т = 1 и т = п - 1 всегда являются дешифруемыми блоками сообщения. Необходимым и достаточным усло­ вием нешифруемости сообщения является т 0'1= 1 (ш об п).

В общем случае под единицей в равенстве следует понимать отдельный элемент группы, к которой принадлежит т . Как видно из приведенного условия нешифруемости, таких блоков сообщения совсем немало. Точное количество пешифруемых блоков сообщения равно (1 + Н О Д (е, р - 1 )) х х ( 1 + Н О Д (е - 1, ц - 1)). Данная особенность алгоритма КЗА налагает определенные требования при выборе значения е. Так, например, если е равно 1 + к[ф(ц), ф (р)], все элементы кольца сообщений окажутся де­ шифруемыми.

Необходимо отметить, что К З А критичен также к адаптивной атаке с выбором зашифрованных сообщений. Этот метод основан на гомоморф­ ных свойствах КЗА. Другими словами, для любых открытых сообщений пц и т 2 и для соответствующих зашифрованных сообщений с* и с2 выпол­ няется следующее равенство: ( п ц т г )^ т !ет 2е= с^с2 (т о б п).

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

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

60

Общие сведения по классической криптографии

возможностями (реализация ЭЦП на интеллектуальных карточках). Один из выходов - уменьшение размерности параметров системы, но, как пока­ зано в разделе 1.3.5, это чревато уменьшением стойкости алгоритма.

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

Алгоритм модульного умножения

Выполнение операции А х В шоб п обычным путем, то есть умножение А на В и затем применение модульной редукции, не является ни быстрым и экономичным способом умножения. Данное вычисление гораздо луч ­ ше выполнить, используя, например, разложение числа В вида В = ЪДП+ + + ... + Ъ{Х + Ь0 и последовательное умножение вида с = АЬ; (при этом получаются числа с размерностью п + 1 ), а затем вычислить т о б п. (рис. 1.14).

р=о

0=0

5.ог 1 Егот п Ьо 0 до

Ьед1п:

 

Р=2*Р+АЬ.

 

0=1Р/п|

 

Р=Р-0*п

 

епд

Рис. 1.14

геСигп ( Р )

Алгоритм ускоренного модулярного умножения А Х В тоб п

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

Модульное возведение в степень Ав то б п

Проведение операции модульного возведения в степень путем последо­ вательного умножения числа А самого на себя, применяющейся для зашифрования/расшифрования в КЗА, требует большого объема памяти