jl1. Обобщенная схема симметричной криптосистемы. Определения криптоанализа, шифра, криптографического ключа. Понятие криптостойкости, правило Кирхгоффа. Обобщенная схема симметричной криптографической системы, обеспечивающей шифрование передаваемой информации, показана на рис. Отправитель генерирует открытый текст исходного сообщения М, которое должно быть передано законному получателю по незащищенному каналу. За каналом следит перехватчик с целью перехватить и раскрыть передаваемое сообщение. Для того чтобы перехватчик не смог узнать содержание сообщения М, отправитель шифрует его с помощью обратимого преобразования ЕК и получает шифртекст (или криптограмму) С = Ек(М), который отправляет получателю. Законный получатель, приняв шифртекст С, расшифровывает его с помощью обратного преобразования DK=EK -1 и получает исходное сообщение в виде открытого текста М: DK(С) = Ек -1 (Ек(М)) = М Преобразование Ек выбирается из семейства криптографических преобразований, называемых криптоалгоритмами. Параметр, с помощью которого выбирается отдельное используемое преобразование, называется криптографическим ключом К. Криптосистема имеет разные варианты реализации: набор инструкций, аппаратные средства, комплекс программ компьютера, которые позволяют зашифровать открытый текст и расшифровать шифр-текст различными способами, один из которых выбирается с помощью конкретного ключа К. Криптоанализ - это наука о раскрытии исходного текста зашифрованного сообщения без доступа к ключу. Успешный анализ может раскрыть исходный текст или ключ. Он позволяет также обнаружить слабые места в криптосистеме, что, в конечном счете, ведет к тем же результатам. Фундаментальное правило криптоанализа, впервые сформулированное голландцем А.Керкхоффом еще в XIX веке заключается в том, что стойкость шифра (криптосистемы) должна определяться только секретностью ключа. Ключ - это конкретное секретное состояние некоторых параметров алгоритма криптографического преобразования данных, обеспечивающее выбор только одного варианта из всех возможных для данного алгоритма. Основной характеристикой шифра является криптостойкость, которая определяет его стойкость к раскрытию методами криптоанализа. Обычно эта характеристика определяется интервалом времени, необходимым для раскрытия шифра. 2. Общая характеристика классических шифров перестановки. Примеры шифров на основе шифрующих таблиц и их алгоритмы работы. Шифрование перестановкой заключается в том, что символы шифруемого текста переставляются по определенному правилу в пределах некоторого блока этого текста. При достаточной длине блока, в пределах которого осуществляется перестановка, и сложном неповторяющемся порядке перестановки можно достигнуть приемлемой для простых практических приложений стойкости шифра. Шифрующие таблицы. С начала эпохи Возрождения (конец XIV столетия) начала возрождаться и криптография. Наряду с традиционными применениями криптографии в политике, дипломатии и военном деле появляются и другие задачи - защита интеллектуальной собственности от преследований инквизиции или заимствований злоумышленников. В разработанных шифрах перестановки того времени применялись шифрующие таблицы, которые в сущности задают правила перестановки букв в сообщении. В качестве ключа в шифрующих таблицах используются: размер таблицы; слово или фраза, задающие перестановку; особенности структуры таблицы. Одним из самых примитивных табличных шифров перестановки является простая перестановка, для которой ключом служит размер таблицы. Например, сообщение ТЕРМИНАТОР ПРИБЫВАЕТ СЕДЬМОГО В ПОЛНОЧЬ записывается в таблицу поочередно по столбцам (без пробелов). Результат заполнения таблицы из 5 строк и 7 столбцов показан на рис. После заполнения таблицы текстом сообщения по столбцам, для формирования шифртекста считывают содержимое таблицы по строкам. Если шифртекст записывать группами по пять букв, получается такое шифрованное сообщение: ТНПВЕГЛЕАРАДОНРТИЕЬВОМОБТМПЧИРЫСООЬ Естественно, отправитель и получатель сообщения должны заранее условиться об общем ключе в виде размера таблицы. При расшифровке действия выполняют в обратном порядке. Несколько большей стойкостью к раскрытию обладает метод шифрования, называемый одиночной перестановкой по ключу. Этот метод отличается от предыдущего тем, что столбцы таблицы переставляются по ключевому слову, фразе или набору чисел длиной в строку таблицы. Применим в качестве ключа, например, слово ПЕЛИКАН, а текст сообщения возьмем из предыдущего примера. На рис. показаны две таблицы, заполненные текстом сообщения и ключевым словом, при этом левая таблица соответствует заполнению до перестановки, а правая таблица заполнению после перестановки. В верхней строке левой таблицы записан ключ, а номера под буквами ключа определены в соответствии с естественным порядком соответствующих букв ключа в алфавите. В правой таблице столбцы переставлены в соответствии с упорядоченными номерами букв ключа. При считывании содержимого правой таблицы по строкам получим шифрованное сообщение: ГНВЕПЛТОААДРНЕВТЕЬИОРПОТМБЧМОРСОЫЬИ Магическими квадратами называют квадратные таблицы с вписанными в их клетки последовательными натуральными числами, начиная от 1, которые дают в сумме по каждому столбцу, каждой строке и каждой диагонали одно и то же число. Шифруемый текст вписывали в магические квадраты в соответствии с нумерацией их клеток. Если затем выписать содержимое такой таблицы по строкам, то получится шифртекст, сформированный благодаря перестановке букв исходного сообщения. В те времена считалось, что созданные с помощью магических квадратов шифртексты охраняет не только ключ, но и магическая сила. Пример магического квадрата (с суммой = 34) и его заполнения сообщением ПРИЛЕТАЮ ВОСЬМОГО показан на рис. Шифртекст, получаемый при считывании содержимого правой таблицы по строкам, имеет вполне загадочный вид: ОИРМ ЕОСЮ ВТАЬ ЛГОП. Число магических квадратов быстро возрастает с увеличением размера квадрата. Существует только один магический квадрат размером 3x3 (если не учитывать его повороты). Количество магических квадратов 4x4 составляет уже 880, а количество магических квадратов 5x5 - около 250000. 3. Общая характеристика шифров простой замены (одноалфавитной подстановки). Примеры шифров простой замены и их алгоритмы работы. Условие выбора коэффициента в шифре афинной системы подстановки Цезаря. Шифрование заменой (подстановкой) заключается в том, что символы шифруемого текста заменяются символами того же или другого алфавита в соответствии с заранее обусловленной схемой замены В шифре простой замены каждый символ исходного текста заменяется символами того же алфавита одинаково на всем протяжении текста. Шифры простой замены также называют шифрами одноалфавитной подстановки. Система шифрования Цезаря. Шифр Цезаря является частным случаем шифра простой замены. Свое название этот шифр получил по имени римского императора Гая Юлия Цезаря, который использовал этот шифр при переписке с Цицероном (около 50 г. до н.э.). При шифровании исходного текста каждая буква заменялась на другую букву того же алфавита по следующему правилу. Заменяющая буква определялась путем смещения по алфавиту от исходной буквы на К букв. При достижении конца алфавита выполнялся циклический переход к его началу (так называемое сложение по модулю m, где m = количеству букв в алфавите). Цезарь использовал шифр замены при смещении К = 3. . Такой шифр замены можно задать таблицей подстановок, содержащей соответствующие пары букв открытого текста и шифртекста.Например, послание Цезаря VENI VIDI VICI (в переводе на русский означает "Пришел, Увидел, Победил"), направленное его другу Аминтию после победы над понтийским царем Фарнаком, сыном Митридата, выглядело бы в зашифрованном виде так: YHQL YLGL YLFL. Афинная система подстановок Цезаря. В простой системе шифрования Цезаря использовался только постоянный сдвиг символов в алфавите. Очевидно, что крипкостойкость такого шифра невелика. В аффинной системе подстановок буква открытого текста с порядковым номером в алфавите t заменяется на букву шифр текста, номер которой вычисляется в соответствии с выражением (at + b) по модулю m. Например, для английского алфавита m = 26, выберем а = 3, b = 5. Тогда мы получаем следующее соответствие между буквами открытого текста, их порядковыми номерами в алфавите, результирующим значением выражения и буквами шифртекста (отметим, что значение коэффициента а должно быть взаимнопростым со значением модуля m, т.е. наибольший общий делитель этих чисел должен равняться единице): Достоинством аффинной системы является удобное управление ключами - ключи шифрования и расшифровки представляются в компактной форме в виде пары чисел а и b (при оговоренном значении m). 4. Понятие биграмм, примеры шифров, использующих биграммы и алгоритмы их работы. Понятие омофонов, учет статистических сойств текста при криптоанализе.и построении криптоалгоритмов. Биграмма – группа из двух последовательных символов. Бигра́ммный шифр — это криптографический алгоритм, который предназначен для шифрования групп из двух букв (биграмм).Считается, что «отец» биграммных шифров — это немецкий аббат Иоганн Трисемус, который еще в 1508 г. в своей работе по криптологии, которая называлась «Полиграфия», впервые отметил возможность шифрования биграммами, то есть, двухбуквенными сочетаниями. Их устойчивость к вскрытию оказалась намного выше, чем у других предшественников, поэтому некоторые биграммные шифры сохранили свою актуальность вплоть до Второй мировой войны. Биграммный «Шифр Плейфера» использовался Великобританией в годы Первой мировой войны. Биграммный шифр «Двойной квадрат» был изобретен англичанином Чарльзом Уитстоном в 1854 году, и даже использовался немцами в годы Второй мировой войны. Омофо́ны, фонетическая двусмысленность, фонетические омонимы (греч. ὁμός — одинаковый + φωνή — звук) в языкознании — слова, которые звучат одинаково, но пишутся по-разному и имеют разное значение. 5. Общая характеристика шифров сложной замены (многоалфавитной подстановки). Примеры шифров сложной замены и их алгоритмы работы. Понятие одноразовой системы шифрования. Шифры сложной замены называют многоалфавитными, так как для шифрования каждого символа исходного сообщения применяют свой шифр простой замены. Многоалфавитная подстановка последовательно и циклически меняет используемые алфавиты, в результате одной и той же букве алфавита исходного текста могут соответствовать разные буквы алфавитов для шифртекста. При этом маскируется статистика встречаемости символов. Система шифрования Вижинера. Система Вижинера впервые была опубликована в 1586 г является одной из старейших и наиболее известных многоалфавитных систем. Свое название она получила по имени французского дипломата XVI века Блеза Вижинера, который развивал и совершенствовал криптографические системы. Система шифрования Вижинера представляет собой шифр многоалфавитной замены, опиcываемый таблицей шифрования, называемой таблицей (квадратом) Вижинера. При шифровании исходного сообщения его выписывают в строку, а под ним записывают ключевое слово (или фразу). Если ключ оказался короче сообщения, то его циклически повторяют. В процессе шифрования находят в верхней строке таблицы очередную букву исходного текста и в левом столбце очередное значение ключа. Очередная буква шифртекста находится на пересечении столбца, определяемого шифруемой буквой, и строки, определяемой числовым значением ключа. Рассмотрим пример получения шифртекста с помощью таблицы Вижинера. Пусть выбрано ключевое слово АМБРОЗИЯ. Необходимо зашифровать сообщение ПРИЛЕТАЮ СЕДЬМОГО. Выпишем исходное сообщение в строку и запишем под ним ключевое слово с повторением. В третью строку будем выписывать буквы шифртекста, определяемые из таблицы Вижинера. Шифр "двойной квадрат" Уитстона. В 1854 г. англичанин Чарльз Уитстон разработал новый метод шифрования биграммами, который называют "двойным квадратом". Свое название этот шифр получил по аналогии с полибианским квадратом. В отличие от полибианского, шифр "двойной квадрат" использует сразу две таблицы, размещенные по одной горизонтали, а шифрование идет биграммами, как в шифре Плейфера. Эти не столь сложные модификации привели к появлению на свет качественно новой криптографической системы ручного шифрования. Шифр "двойной квадрат" оказался очень надежным и удобным и применялся Германией даже в годы второй мировой войны. Поясним процедуру шифрования этим шифром на примере. Пусть имеются две таблицы со случайно расположенными в них русскими алфавитами. Перед шифрованием исходное сообщение разбивают на биграммы. Каждая биграмма шифруется отдельно. Первую букву биграммы находят в левой таблице, а вторую букву - в правой таблице. Затем мысленно строят прямоугольник так, чтобы буквы биграммы лежали в его противоположных вершинах. Другие две вершины этого прямоугольника (симметричные по вертикали относительно букв исходного текста) дают буквы биграммы шифртекста. Предположим, что шифруется биграмма исходного текста ИЛ. Буква И находится в столбце 1 и строке 2 левой таблицы. Буква Л находится в столбце 5 и строке 4 правой таблицы. Это означает, что прямоугольник образован строками 2 и 4, а также столбцами 1 левой таблицы и 5 правой таблицы. Следовательно, в биграмму шифртекста входят буква О, расположенная в столбце 5 и строке 2 правой таблицы, и буква В, расположенная в столбце 1 и строке 4 левой таблицы, т.е. получаем биграмму шифртекста ОВ. Если обе буквы биграммы сообщения лежат в одной строке, то и буквы шифртекста берут из этой же строки. Первую букву биграммы шифртекста берут из левой таблицы в столбце, соответствующем второй букве биграммы сообщения. Вторая же буква биграммы шифртекста берется из правой таблицы в столбце, соответствующем первой букве биграммы сообщения. Поэтому биграмма сообщения ТО превращается в биграмму шифртекста ЖБ. Одноразовая система шифрования. Для большинства шифров существует вероятность их взлома. Однако одноразовая система шифрования, которую в 1917г предложили Дж. Моборн и Г. Вернам, имеет такую вероятность равную нулю. Характерной особенностью этой системы является одноразовое использование ключевой последовательности. В этом случае для каждого сообщения используется свой ключ. Если набор ключей случаен и непредсказуем, такой шифр является абсолютно надежным. Практическая реализация этой системы представляла собой так называемый "одноразовый блокнот", на каждой странице которого помещалась таблица с различными случайными достаточно длинными ключевыми последовательностями. Каждый символ ключевой последовательности использовался для шифрования одного символа одного сообщения в соответствии с выбранным шифром (например, по таблице Вижинера). После окончания шифрования страница из блокнота вырывалась и для шифрования следующего сообщения использовалась другая ключевая последовательность. Такой же блокнот находился у получателя шифртекста и служил для расшифровки. В некоторых вариантах этой системы в качестве ключа выбирали определенную строку на определенной странице в определенной книге, согласованные между отправителем и получателем и использовали последующие символы текста для шифрования сообщений (следует отметить, что такой подход все-таки снижает устойчивость шифра). Несмотря на практически абсолютную устойчивость одноразовой системы шифрования ее использование на практике ограничено, поскольку требуется 4 передача достаточно длинных ключевых последовательностей (не меньших, чем длина сообщения) по защищенному каналу 6. Классические шифры с автоматизацией шифрования-дешифрования: метод Вернама и роторные машины, алгоритмы их работы.Использование принципа одометра и более сложных перемещений в роторных машинах. Метод шифрования Вернама. Сотрудники AT&T Гилберт Вернам в 1926г предложил одну из первых автоматизированных систем шифрования, использующих принципы телеграфа и двоичную систему исчисления. Каждый символ открытого текста передавался 5-разрядным битовым кодом Бодо (25=32 - символа позволял кодировать этот код: 26 символов латинского алфавита и 6 вспомогательных символов - пробел, возврат каретки и др.). Ключ представлял собой закольцованную ленту с случайной последовательностью бит. Шифрование осуществлялось путем считывания кода Бодо открытого текста телеграфным устройством и одновременного считывания битов ключа на закольцованной ленте, после чего для каждого бита выполнялась операция ИСКЛЮЧАЮЩЕЕ ИЛИ (XOR - сложение по модулю 2). Поскольку операция ИСКЛЮЧАЮЩЕЕ ИЛИ обладает симметричностью (см. рис), то для расшифровки шифртекста достаточно повторно выполнить эту операцию над шифртекстом с использованием такой же ключевой закольцованной ленты: x k = y, y k = x. Недостатком системы является необходимость передачи ключевых лент по защищенному каналу Роторные машины. В 20-х годах ХХ столетия были изобретены электромеханические устройства шифрования, автоматизирующие этот процесс - роторные машины. Известны американская машина SIGABA (M-134), английская TYPEX, немецкая ENIGMA и японская PURPLE. Главной деталью роторной машины является ротор (колесо) с проволочными перемычками 5 Открытый текст Расшифрованный текст y = x k x y = x k Шифртекст Ключ k k XOR x k y 0 0 0 0 1 1 1 0 1 1 1 0 внутри. На каждой стороне колеса расположены равномерно по окружности m электрических контактов, где m-число символов используемого алфавита. Каждый контакт на одной стороне диска соединен перемычкой с контактом на другой стороне диска, причем соединения выбирались случайным образом. Каждому символу открытого текста соответствовал электрический сигнал, подаваемый на определенный входной контакт первого ротора. При этом если на вход машины подавался, например, символ открытого текста А, то после первого ротора, он соответствовал уже другому символу (например, G, как показано на Рис.). Выходной контакт первого ротора соединялся с входным контактом второго, и т.д., образуя банк роторов. Устройство каждого ротора было идентично, но соответствие входных и выходных контактов отличалось. Электрический сигнал, соответствующий символу открытого текста, пройдя через банк роторов, выходил в виде символа шифртекста. После прохождения сигнала первого символа роторы сдвигались друг относительно друга и затем на банк подавался следующий символ. Таким образом, для каждого символа использовался свой ключ, определяющийся взаимным расположением входных и выходных контактов каждого ротора. Простейшее из движений ротора - перемещение по принципу одометра (многоразрядного счетчика), в соответствии с которым второе колесо перемещается на одну позицию после полного оборота первого колеса и т.д. Таким образом, для латинского алфавита с m=26 число различных значений ключа составит 26n , где n - количество роторов в банке. ENIGMA использовала этот принцип. Однако, предсказуемость перемещений одометра увеличивает вероятность взлома шифра. Поэтому позже использовали более сложные перемещения, например, перемещение более чем на одну позицию или блокирование определенных позиций, в которых ротор не мог останавливаться. Поскольку перекоммутировать роторы достаточно сложно, на практике машины обеспечивались комплектами роторов, количество которых было больше, чем использовали для шифрования (отправитель и получатель имели идентичные комплекты роторов). Выбор количества роторов и 6 последовательность их размещения в банке составляли первичный ключ. Вторичным ключом являлся характер движения роторов. Роторные машины были самыми важными криптографическими устройствами во время Второй мировой войны и доминировали по крайней мере до конца 50-х годов. 7. Понятия гаммирования и гаммы шифра.Требования к гамме шифра. Основные способы генерирования гаммы шифра. Шифрование методом гаммирования. Гаммирование - процесс наложения по определенном закону гаммы шифра на открытый текст сообщения. Гамма шифра - псевдослучайная последовательность, выработанная по определенному алгоритму и используемая для шифрования и расшифровки. Процесс шифрования заключается в генерировании блоков гаммы шифра i и наложении их на блоки исходного открытого текста Mi (часто размер блока 64 бита) обратимым образом, например, с использованием операции ИСКЛЮЧАЮЩЕЕ ИЛИ (сложения по модулю 2): Ci= i Mi. Расшифровка сводится к повторному генерированию блоков гаммы шифра i и наложению их на блоки шифртекста Ci: Мi= i Сi. Очевидно, что блоки гаммы у отправителя и получателя должны быть одинаковыми. Если период гаммы превышает длину шифруемого сообщения и злоумышленнику неизвестна никакая часть исходного текста, то такой шифр можно раскрыть только прямым перебором всех вариантов ключа (последовательных блоков гаммы, использовавшихся для шифрования сообщения) и криптостойкость определяется его длиной (фактически, периодом гаммы). Обычно для генерировании последовательности псевдослучайных чисел используют компьютерные программы, которые хотя и называются генераторами случайных чисел, на самом деле выдают детерминированные числовые последовательности, которые по своим свойствам очень похожи на случайные. К криптостойкому генератору псевдослучайных последовательностей предъявляются следующие требования: период гаммы должен быть достаточно большим для шифрования сообщений (он зависит от выбранного алгоритма); гамма должна быть практически непредсказуемой, что означает невозможность предсказать следующий бит гаммы, даже если известны тип генератора и предшествующий кусок гаммы (обычно для этого требуется гамма с большим периодом); генерирование гаммы не должно вызывать больших технических сложностей. Способы генерирования псевдослучайных последовательностей: Способ Дж. фон Неймана (1946г): Каждое последующее число образуется возведением в квадрат предыдущего и отбрасыванием цифр младших и старших разрядов. В настоящее время неиспользуется по причине ненадежности. Линейный конгруэнтный генератор: Yi= (a * Yi-1 + b) mod m, где Yi - текущее число последовательности; Yi-1 - предыдущее число последовательности; a, b, m - константы, называемые а - множителем 7 (коэффициентом), b- приращением, m- модулем. Y0 называют порождающим числом (исходным значением). Текущее псевдослучайное число Yi получают из предыдущего числа Yi-1 умножением на коэффициент а, сложением с приращением b и вычислением остатка от деления на модуль m. Значение модуля m берется равным 2n либо равным простому числу, например m=231-1. Приращение b должно быть взаимно простым с m, коэффициент а должен быть нечетным числом. Конгруэнтные генераторы, работающие по алгоритму NIST имеют длину периода 224. Однако было доказано, что последовательности, генерируемые конгруэнтными генераторами, не являются криптографически стойкими. Метод линейных реккурентных соотношений. Вычисление гаммы в этом случае основано на вычислении значений а0, а1, …, аk. Соотношения где h00, hk=1 и каждое hj принадлежит полю Галуа GF(q) определяют правило вычисления ak по известным значениям а0, а1, …, аk-1. В результате по начальным значениям а0, а1, …, аk-1 можно построить бесконечную последовательность, каждый последующий член которой определяется из k предыдущих. Последовательности такого вида легко реализуются на компьютере, при этом реализация получается особенно простой, если hj и ai принимают значения 0 и 1 из поля GF(2). На Рис. показана линейная последовательная переключательная схема, которая может быть использована для вычисления вышеприведенной суммы (2.18) и, следовательно, для вычисления значения ak пo значениям k предыдущих членов последовательности. Исходные величины а0, а1, а2,…, ak-1 помещаются в разряды сдвигового регистра, последовательные сдвиги содержимого которого соответствуют вычислениям последовательных символов, при этом выход после i-ro сдвига равен аi. Данное устройство называют генератором последовательности чисел, построенным на базе сдвигового регистра с линейной обратной связью. Решения линейных рекуррентных соотношений, реализуемые генератором с регистром сдвига, описываются следующей теоремой. Пусть многочлен 8. Основные принципы работы современных криптосистем (по К.Шеннону) и их определения. Понятие блочных шифров. Осноные операции, использующиеся в блочных алгоритмах симметричных криптосистем 9. Понятие сетей Фейстеля. Обобщенная структура и принцип работы шифра на основе сети Фейстеля. Понятия ветвей, раунда, ключа раунда, образующей функции, забеливания. 10. Общая характеристика криптосистемы DES: длины блока, ключа, количество раундов, используемые при шифровании операции над битами. Описание алгоритма шифрованиядешифрования DES, Понятие матриц перестановки. 11. Описание алгоритма функции шифрования DES, алгоритм работы функции расширения и функций преобразований. Понятие прямой перестановки, перестановки с расширением и перестановки со сжатием. 12. Алгоритм вычисления подключей криптосистемы DES. Режимы работы DES и алгоритмы их работы. Алгоритм шифрования тройной DES. 13. Общая характеристика криптосистемы ГОСТ 28147-89: длины блока, ключа, количество раундов, используемые при шифровании операции над битами. 14. Алгоритм работы раунда криптосистемы ГОСТ 28147-89, алгоритм генерирования подключей раунда. 15. Режимы работы криптосистемы ГОСТ 28147-89. Способ генерирования гаммы шифра в ГОСТ 28147-89. Понятие имитовставки и ее расчет в криптосистеме ГОСТ 28147-89. 16. Общая характеристика криптосистемы Blowfish: длины блока, ключа, количество раундов, используемые при шифровании операции над битами. Особенности подсистемы генерирования ключей и рекомендуемые области применения Blowfish. 17. Алгоритм шифрования данных в криптосистеме Blowfish, алгоритм вычиселния функции шифрования. Алгоритм генерирования подключей криптосистемы Blowfish. 18. Общая характеристика криптосистемы IDEA: длины блока, ключа, количество раундов, используемые при шифровании операции над битами. Харакетристики, определяющие криптографическую стойкость алгоритма 19. Алгоритм шифрования IDEA, алгоритм генерирования подключей раундов 20. Понятия вычета по модулю, полного и приведенного набора вычетов.Использование элементов приведенного набора вычетов в качестве коэффициентов линейной функции афинной системы подстановок Цезаря. 21. Алгоритм Евклида нахождения наибольшего общего делителя двух чисел. Примеры использования алгоритма для взаимнопростых и взаимнонепростых чисел. 22. Понятие конечного поля.Требования для операций сложения и умножения элементов конечного поля. Алгоритм быстрого возведения в степень по модулю и примеры его использования. 23. Понятие поля Галуа. Примеры таблиц сложения и умножения элементов поля Галуа. Описание элементов полей Галуа многочленами. Понятие неприводимого многочлена. Конечное поле или поле Галуа (названо в честь Эвариста Галуа) — поле, состоящее из конечного числа элементов. Простейшим примером конечного поля является поле вычетов по простому модулю. Свойства конечных полей Xарактеристика конечного поля является простым числом Число элементов в конечном поле F является степенью его характеристики: . Для любого простого числа и натурального числа единственное с точностью доизоморфизма поле из поле обозначается . .существует элементов. Это . Мультипликативная группа конечного поля является циклической. Построение конечных полей Теорема. Пусть — неприводимый многочлен по простому модулю степени . Тогда Пример является конечным полем из элементов. Править Рассмотрим поле . Для его построения надо найти неприводимый многочлен по модулю степени . Для этого подходит, например, многочлен , который является неприводимым по модулю 3. Поэтому 24. Свойства многочленов и их корней в двоичном поле Галуа GF(2). Порядок расчета элементов двоичного поля Галуа. Примеры операций сложения и умножения по модулю неприводимого многочлена. 25. Общая характеристика криптосистемы AES (алгоритма RIJNDAEL): длины блока, ключа, количество раундов, используемые при шифровании операции над битами. Использование архитектуры "Квадрат" в криптосистеме AES AES является стандартом, основанным на алгоритме Rijndael. Для AES длина input(блока входных данных) и State(состояния) постоянна и равна 128 бит, а длина шифроключа K составляет 128, 192, или 256 бит. При этом, исходный алгоритм Rijndael допускает длину ключа и размер блока от 128 до 256 бит с шагом в 32 бита. Для обозначения выбранных длин input, State и Cipher Key в 32-битных словах используется нотация Nb = 4 для input и State, Nk = 4, 6, 8 для Cipher Key соответственно для разных длин ключей. В начале шифрования input копируется в массив State по правилу , для и . После этого к State применяется процедура AddRoundKey() и затем State проходит через процедуру трансформации (раунд) 10, 12, или 14 раз (в зависимости от длины ключа), при этом надо учесть, что последний раунд несколько отличается от предыдущих. В итоге, после завершения последнего раунда трансформации, State копируется в output по правилу , для и . Отдельные трансформации SubBytes(), ShiftRows(), MixColumns(), и AddRoundKey() — обрабатывают State. Массив w[] — содержит key schedule. 26. Общая характеристика преобразований алгоритма RIJNDAEL Функции обратного и прямого дешифрования. 27. Алгоритм выработки ключей в криптосистеме AES. Понятие расширения (планирования) ключа, алгоритм выбора ключа раунда. лгоритм обработки ключа состоит из двух процедур: Алгоритм расширения ключа Алгоритм выбора раундового ключа (ключа итерации) Алгоритм расширения ключа[править | править вики-текст] AES алгоритм, используя процедуру KeyExpansion() и подавая в неё Cipher Key, K, получает ключи для всех раундов. Всего получается Nb*(Nr + 1) слов: изначально для алгоритма требуется набор из Nb слов, и каждому из Nr раундов требуется Nb ключевых набора данных. Полученный массив ключей для раундов обозначается как , . Алгоритм KeyExpansion() показан в псевдокоде ниже. Функция SubWord() берет четырёхбайтовое входное слово и применяет Sbox к каждому из четырёх байтов. То, что получилось, подается на выход. На вход RotWord() подается слово которое она циклически переставляет и возвращает данного раунда, а . Массив слов, постоянный для , содержит значения является степенью в , где x = {02}, ( начинается с 1). Из рисунка можно видеть, что первые слов расширенного ключа заполнены Cipher Key. В каждое последующее слово, значение полученное при операции XOR и , кладётся , те XOR’а предыдущего и на Nk позиций раньше слов. Для слов, позиция которых кратна Nk, перед XOR’ом к w[i-1] применяется трасформация, за которой следует XOR с константой раунда Rcon[i]. Указанная выше трансформация состоит из циклического сдвига байтов в слове (RotWord()), за которой следует процедура SubWord() — то же самое, что и SubBytes(), только входные и выходные данные будут размером в слово. Важно заметить, что процедура KeyExpansion() для 256 битного Cipher Key немного отличается от тех, которые применяются для 128 и 192 битных шифроключей. Если к до XOR’а. и кратно , то SubWord() применяется На каждой итерации раундовый ключ для операции AddRoundKey выбирается из массива элемента до начиная с . 28. Алгоритмы работы функций замены байтов SubBytes() и сдвига строк ShiftRows AES. Процедура SubBytes() обрабатывает каждый байт состояния, независимо производя нелинейную замену байтов используя таблицу замен (S-box). Такая операция обеспечивает нелинейность алгоритма шифрования. Построение S-box состоит из двух шагов. Во-первых, производится взятие обратного числа в поле Галуа . Во-вторых, к каждому байту b из которых состоит S-box применяется следующая операция: где константы , и где есть i-ый бит b, а — i-ый бит . Таким образом, обеспечивается защита от атак, основанных на простых алгебраических свойствах. ShiftRows работает со строками State. При этой трансформации строки состояния циклически сдвигаются на r байт по горизонтали, в зависимости от номера строки. Для нулевой строки r = 0, для первой строки r = 1 Б и т. д. Таким образом каждая колонка выходного состояния после применения процедуры ShiftRows состоит из байтов из каждой колонки начального состояния. Для алгоритма Rijndael паттерн смещения строк для 128- и 192битных строк одинаков. Однако для блока размером 256 бит отличается от предыдущих тем, что 2, 3, и 4-е строки смещаются на 2, 3, и 4 байта, соответственно. 29. Алгоритмы работы функций перемешивания столбцов MixColumns() и добавления раундового ключа AddRoundKey() AES. В процедуре MixColumns, четыре байта каждой колонки State смешиваются, используя для этого обратимую линейную трансформацию.MixColumns обрабатывает состояния по колонкам, трактуя каждую из них как полином четвёртой степени. Над этими полиномами производится умножение в по модулю на фиксированный многочлен . Вместе сShiftRows , MixColumns вносит диффузию в шифр В процедуре AddRoundKey, RoundKey каждого раунда объединяется со State. Для каждого раунда Roundkey получается из CipherKeyиспользуя процедуру KeyExpansion; каждый RoundKey такого же размера, что и State. Процедура производит побитовый XOR каждого байта State с каждым байтом RoundKey . 30. Проблемы использования симметричных криптосистем и их решение с использованием асимметричных алгоритмов. Обобщенная схема асимметричной криптосистемы и описание ее работы. 31. Требования к асимметричным алгоритмам шифрования, определенные Диффи и Хеллманом. Поняти е однонаправленной функции, примеры реализаций однонаправленных функций. 32. Понятия приведенного набора вычетов. Функция Эйлера для простого значения модуля. Малая теорема Ферма и ее обобщение Эйлером. Вычисление мультипликативного обратного для элемента приведенного набора вычетов. 33. Функция Эйлера для модуля, равного произведению простых чисел, требование к этим простым числам. Нахождение мультипликативных обратных с помощью расширенного алгоритма Евклида. 34. Общая характеристика криптосистемы RSA. Алгоритмы создания связки ключей, шифрования и дешифрования. Пример шифрования-дешифрования в криптосистеме RSA. Рекомендуемые длины ключей криптосистемы RSA. 35. Понятие дискретного логарифма. Общая характеристика криптосистемы Эль Гамаля. Алгоритмы создания связки ключей, шифрования и дешифрования. Пример шифрованиядешифрования в криптосистеме Эль Гамаль. 36. Достоинства и недостатки симметричных и асимметричных криптосистем. Комбинированный метод шифрования и его алгоритм. Алгоритм обмена ключами Диффи-Хеллмана. Понятие ключа сессии. 37. Основне задачи, решаемые электронной цифровой подписью (ЭЦП). Определение ЭЦП и описание схемы наложения и проверки электронной подписи. Электро́нная по́дпись (ЭП), Электро́нная цифровая по́дпись (ЭЦП) — реквизит электронного документа, полученный в результате криптографического преобразования информации с использованием закрытого ключа подписи и позволяющий установить отсутствие искажения информации в электронном документе с момента формирования подписи и проверить принадлежность подписи владельцу сертификата ключа подписи. Электронная подпись предназначена для идентификации лица, подписавшего электронный документ, и является полноценной заменой (аналогом) собственноручной подписи в случаях, предусмотренных законом[1]. Использование электронной подписи позволяет осуществить: Контроль целостности передаваемого документа: при любом случайном или преднамеренном изменении документа подпись станет недействительной, потому что вычислена она на основании исходного состояния документа и соответствует лишь ему. Защиту от изменений (подделки) документа: гарантия выявления подделки при контроле целостности делает подделывание нецелесообразным в большинстве случаев. Невозможность отказа от авторства. Так как создать корректную подпись можно, лишь зная закрытый ключ, а он известен только владельцу, он не может отказаться от своей подписи под документом. Доказательное подтверждение авторства документа: Так как создать корректную подпись можно, лишь зная закрытый ключ, а он известен только владельцу, он может доказать своё авторство подписи под документом. В зависимости от деталей определения документа могут быть подписаны такие поля, как «автор», «внесённые изменения», «метка времени» и т. д. 38. Понятие однонаправленной хэш-функции. Требования к хэш-функциям. Понятие и причина возможных коллизий хэш-кода. Коллизии первого и второго рода и требования, обеспечивающие стойкость к ним. Хэш-функция предназначена для сжатия подписываемого документа М до нескольких десятков или сотен бит. Хэш-функция h(•) принимает в качестве аргумента сообщение (документ) М произвольной длины и возвращает хэш-значение h(М)=Н фиксированной длины. Обычно хэшированная информация является сжатым двоичным представлением основного сообщения произвольной длины. Следует отметить, что значение хэш-функции h(М) сложным образом зависит от документа М и не позволяет восстановить сам документ М. Хэш-функция должна удовлетворять целому ряду условий: хэш-функция должна быть чувствительна к всевозможным изменениям в тексте М, таким как вставки, выбросы, перестановки и т.п.; хэш-функция должна обладать свойством необратимости, то есть задача подбора документа М', который обладал бы требуемым значением хэш-функции, должна быть вычислительно неразрешима; вероятность того, что значения хэш-функций двух различных документов (вне зависимости от их длин) совпадут, должна быть ничтожно мала. Большинство хэш-функций строится на основе однонаправленной функции f(•), которая образует выходное значение длиной n при задании двух входных значений длиной п. Этими входами являются блок исходного текста М, и хэш-значение Ні-1 предыдущего блока текста (рис.1): Ні = f(Мi, Нi-1). Хэш-значение, вычисляемое при вводе последнего блока текста, становится хэшзначением всего сообщения М. Рис.1. Построение однонаправленной хэш-функции В результате однонаправленная хэш-функция всегда формирует выход фиксированной длины n (независимо от длины входного текста). 39. Функция хэширования MD5, общая характеристика. Алгоритм получения хэш- кода. Области использования MD5 MD5 (англ. Message Digest 5) — 128-битный алгоритм хеширования, разработанный профессором Рональдом Л. Ривестом изМассачусетского технологического института (Massachusetts Institute of Technology, MIT) в 1991 году. Предназначен для создания «отпечатков» или дайджестов сообщения произвольной длины и последующей проверки их подлинности. Алгоритм MD5 уязвим к некоторым атакам, например возможно создание двух сообщений с одинаковой хеш-суммой, поэтому его использование не рекомендуется.[1] Альтернативой являются алгоритмы семейства SHA-2. На вход алгоритма поступает входной поток данных, хеш которого необходимо найти. Длина сообщения может быть любой (в том числе нулевой). Запишем длину сообщения в L. Это число целое и неотрицательное. Кратность каким-либо числам необязательна. После поступления данных идёт процесс подготовки потока к вычислениям. Ниже приведены 5 шагов алгоритма: Шаг 1. Выравнивание потока Шаг 2. Добавление длины сообщения Шаг 3. Инициализация буфера Шаг 4. Вычисление в цикле Шаг 5. Результат вычислений Результат вычислений находится в буфере ABCD, это и есть хеш. Если выводить побайтово, начиная с младшего байта A и закончив старшим байтом D, то мы получим MD5-хеш. 1,0,15,34,17,18... 40. Функции хэширования SHA,-1 и SHA-2, общая характеристика. Алгоритмы получения хэш-кода. Области использования. Secure Hash Algorithm 1 — алгоритм криптографического хеширования. Описан в RFC 3174. Для входного сообщения произвольной длины (максимум бит, что примерно равно 2 эксабайта) алгоритм генерирует 160-битное хеш-значение, называемое также дайджестом сообщения. Используется во многих криптографических приложениях и протоколах. Также рекомендован в качестве основного для государственных учреждений в США. Принципы, положенные в основу SHA- 1, аналогичны тем, которые использовались Рональдом Ривестом при проектировании MD4. SHA-1 реализует хеш-функцию, построенную на идее функции сжатия. Входами функции сжатия являются блок сообщения длиной 512 бит и выход предыдущего блока сообщения. Выход представляет собой значение всех хеш-блоков до этого момента. Иными словами хеш блока равен последнего блока. . Хеш-значением всего сообщения является выход Исходное сообщение разбивается на блоки по 512 бит в каждом. Последний блок дополняется до длины, кратной 512 бит. Сначала добавляется 1, а потом нули, чтобы длина блока стала равной (512 - 64 = 448) бит. В оставшиеся 64 бита записывается длина исходного сообщения в битах. Если последний блок имеет длину более 448, но менее 512 бит, то дополнение выполняется следующим образом: сначала добавляется 1, затем нули вплоть до конца 512-битного блока; после этого создается ещё один 512-битный блок, который заполняется вплоть до 448 бит нулями, после чего в оставшиеся 64 бита записывается длина исходного сообщения в битах. Дополнение последнего блока осуществляется всегда, даже если сообщение уже имеет нужную длину. Инициализируются пять 32-битовых переменных.