Петров А.А. Комп без-ть
.pdfАлгоритмы блочного шифрования |
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).
Модульное возведение в степень Ав то б п
Проведение операции модульного возведения в степень путем последо вательного умножения числа А самого на себя, применяющейся для зашифрования/расшифрования в КЗА, требует большого объема памяти