Как настроить смартфоны и ПК. Информационный портал
  • Главная
  • Программы
  • Криптографический анализ асимметричных систем шифрования. Основные определения

Криптографический анализ асимметричных систем шифрования. Основные определения

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

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

Исходные сообщения обычно называют открытыми текстами . В иностранной литературе для открытого текста используют термин plaintext .

Символ - это любой знак, в том числе буква, цифра или знак препинания.

Алфавит - конечное множество используемых для кодирования информации символов. Например, русский алфавит содержит 33 буквы от А до Я. Однако этих тридцати трех знаков обычно бывает недостаточно для записи сообщений, поэтому их дополняют символом пробела, точкой, запятой и другими знаками. Алфавит арабских цифр – это символы 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 . Этот алфавит содержит 10 знаков и с его помощью можно записать любое натуральное число. Любое сообщение может быть записано также с помощью двоичного алфавита, то есть с использованием только нулей и единиц.

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

Преобразование открытого текста в криптограмму называется зашифрованием . Обратное действие называется расшифрованием . В англоязычной литературе терминам "зашифрование/ расшифрование" соответствуют термины "enciphering/deciphering" .

Ключ – информация, необходимая для шифрования и расшифрования сообщений.

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

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

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

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

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

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

3.5.3 Модели и методы шифрования\дешифрования дискретных сообщений

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

Математической моделью системы шифрования\дешифрования дискретных сообщений называется пара функций

E = f(M,K ш), M = g(E,K д),

которые преобразуют сообщение M в криптограмму E при помощи ключа шифрования К ш и, наоборот, криптограмму Е в сообщение М при помощи ключа дешифрования К д. Обе функции, задающие криптосистему, должны удовлетворять следующим требованиям:

· функции f(М, К ш) и g(Е, К д) при известных аргументах вычисляются просто;

· функция g(E,?) при неизвестном ключе К д вычисляется сложно.

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

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

· только при известной криптограмме Е;

· при известной криптограмме Е и известном сообщении М, которое соответствует определенной части криптограммы, полученной при использовании того же самого ключа (атака при частично известном открытом сообщении);

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

Современные криптосистемы считаются стойкими, если они стойки относительно всех трех видов атак.

Если ключ шифрования равен ключу дешифрования, т.е.

К ш = К д = К

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

Если К ш не равняется К д, то система шифрования называется несимметричной (двухключевой). В этом случае ключ К ш доставляется в пункт шифрования, а ключ К д - в пункт дешифрования. Оба ключа очевидно должны быть связаны функциональной зависимостью К д = j(К ш), но такой, что по известному ключу шифрования К ш нельзя было бы восстановить ключ дешифрования К д. Это означает, что для несимметричной системы шифрования j() должна быть трудно вычислимой функцией. В такой системе имеется возможность распределять секретным образом среди законных пользователей только их ключи дешифрования, а ключи шифрования сделать открытыми, в том числе, и для публикации. Поэтому рассматриваемая криптосистема называется системой с открытым (общедоступным) ключом.

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

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

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

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

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

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

«что знают двое, знает свинья» - наличие единственной копии ключа уменьшает возможности его утраты и позволяет установить чёткую персональную ответственность за сохранение тайны;

наличие двух ключей позволяет использовать данную шифровальную систему в двух режимах - секретная связь и цифровая подпись.

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

10.3.1. Системы шифрования

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

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

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

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

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

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

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

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

.

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

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

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

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

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

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

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

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

,
,

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


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

Если ключ шифрования равен ключу дешифрования, т.е.

= =,

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

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

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

Существуют два основных класса стойкости криптосистем:

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

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

  1. Критосистема RSA

Для шифрования выбирают целое число N =p q , гдеp иq – два больших простых числа. Сообщение M представляется одним из чисел

M {2,3,...,N –1}.

Формулы, описывающие шифрование/дешифрование, имеют следующий вид:

,
,

где K – открытый ключ шифрования,k – закрытый ключ дешифрования.

Из этих двух соотношений следует равенство

,

которое в обычной арифметике выполняется, если kK = 1, а в модульной арифметике и при

kK = 1 + l (N ), (*)

где l – целое. Действительно с помощью теоремы Эйлера проверяем

,

если M иN – взаимно простые числа.

Рассмотренные соотношения указывают путь формирования ключей. Вначале выбирают очень большие случайные простые числа p иq с мало отличающимся числом разрядов так, чтобы произведение N = pq имело не менее 768 бит (по данным 2001 года). Вычиcляют функцию Эйлера

(N ) = (p –1)(q –1).

Равенство (*) эквивалентно

K k = 1 mod (N ),

откуда следует, что оба ключа взаимно обратные по модулю (N ).

Открытый ключ K выбирают, соблюдая необходимые условия:

K < (N ), НОД(K , (N )) = 1.

Закрытый ключ k вычисляют

k = K 1 mod (N ),

с помощью алгоритма Евклида. Завершив подготовительные работы, открытый ключ K и модульN помещают в открытый справочник, приняв меры, гарантирующие невозможность подмены. Числаp и q хранят в секрете.

Отметим, что условие взаимной простоты чисел M и N , невыполнение которого делает невозможным декодирование, не создает серьезных ограничений. Во-первых, среди чисел меньшихN доля чисел взаимно простых сN равна (p –1)(q –1)/(pq ), т.е. неотличима от единицы, а, во-вторых, условие легко обеспечивается несущественной модификацией сообщения. Также степеньM K не должна быть меньшеN . При невыполнении этого условия криптограмма имеет вид

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

Очевидно, что в рассмотренных соотношениях числа K иk равноправны, т.е. ключи можно поменять местами, и использоватьk как открытый ключ шифрования, аK как закрытый ключ дешифрования.

Таким образом, оба ключа RSA задаются парами целых чисел: (K , N ) и (k , N ).

Когда авторы R. Rivest,A.Shamir,L. Adleman(Ривест, Шамир, Адлеман) в 1977 году предложили криптосистемуRSA, они зашифровали фразу “ItsallGreektome”, представленную в цифровой форме. Были опубликованы значенияM , K , N с указанием, что 129 десятичных разрядовN получены при умножении 64- и 65-разрядных чиселp иq . ФакторизацияN и вскрытие криптограммы были выполнены примерно за 220 дней лишь в 1994 году после предварительной теоретической подготовки. В работе принимало участие 600 добровольцев и 1600 компьютеров, объединенных в сеть с помощью Интернет.

Стойкость системы с открытым ключом, и в частности RSA, зависит от выбора ее параметров. Если выбратьlog 2 N = 200 бит, то для факторизации потребуется примерно 2,710 11 операций, что на персональном компьютере займет несколько дней. Если выбратьlog 2 N = 664 бит, то для факторизации потребуется 1210 23 операций. При скорости выполнения 10 6 операций в секунду на факторизацию уйдет несколько миллиардов лет.

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

Реализация шифраRSAотработана как в программном, так и в аппаратном варианте. ИспользуетсяRSAи для шифрования в смарт-картах. В программном варианте скорость шифрования имеет порядок 1 кбит/с, в аппаратном – 1050 кбит/с.

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

  1. Цифровая подпись

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

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

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

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

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

    каждый пользователь сети, законный или незаконный, может проверить истинность цифровой подписи;

    подписавший не может отказаться от сообщения, заверенного его цифровой подписью;

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

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

Существуют различные виды цифровой подписи, основанные на криптосистемах с открытым ключом. Рассмотрим реализацию ЦП на основе криптосистемы RSA.

В этом случае пользователь A , подписывающий сообщениеM , генерирует пару ключейk A ,K A и сообщает пользователям сети значенияK A иN . Далее пользовательA создает контрольную группу

,

которая и будет цифровой подписью (рис. 17). Контрольная группа приписывается к сообщению и передается вместе с ним.

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

Однако рассмотренная система выработки цифровой подписи имеет два существенных недостатка:

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

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

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

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

Среди асимметричных (открытых) криптосистем наиболее широкое распространение получила криптографическая система RSA. В этой системе получатель сообщения выбирает два больших простых числа p и q так, чтобы произведение n = pq находилось за пределами вычислительных возможностей. Исходное сообщение М может иметь произвольную длину в диапазоне 1

Исходный текст М восстанавливается из шифрованного C обратным преобразованием

Получатель выбирает e и d так, чтобы выполнялись условия:

где - функция Эйлера, равная (p - 1)(q - 1);

(a, b) - наибольший общий делитель двух чисел.

То есть e и d являются в мультипликативной группе обратными величинами в арифметике вычетов по mod .

Очевидно, что главной целью криптографического раскрытия является определение секретного ключа (показателя степени при C - значения d).

Известны три способа, которыми мог бы воспользоваться криптоаналитик, для раскрытия величины d по открытой информации о паре {e, n}.

Факторизация n

Разложение величины n на простые множители позволяет вычислить функцию и, следовательно, скрытое значение d, используя уравнение

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

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

Прямое вычисление

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

x = p + q = n + 1 - ,

y = (p - q) 2 = x 2 - 4n.

Зная, можно определить x и, следовательно, y, зная x и y, простые p и q можно определить из следующих соотношений:

Прямая оценка d

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

где k - произвольное целое число.

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

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

пусть нам дано целое число n>0, и требуется, если это возможно, найти два числа a и b, таких, что ab = n. На самом деле имеются две различные задачи: первая, называемая тестом на простоту - это проверка того, существуют ли такие a и b; вторая, называемая разложением - это задача их нахождения. Рассмотрим обе эти задачи.

Первый детерминистический тест.

Этот тест основан на малой теореме Ферма, которая утверждает, что если p - простое число, то a p-1 1 (mod p) для всех a, 1

Таким образом, тест состоит в выборе числа а, меньшего b и проверке

b на принадлежность классу простых чисел согласно условию a b-1 1 (mod b) в соответствии с приведенным выражением. Практически требуется проверить только несколько значений a. Выбор а, равным 3, позволяет выявить все составные числа. Тем не менее известно, что этот тест пропускает составные числа Кармайкла (например число 561 =3 х 11 х 17).

Второй детерминистический тест.

Разделим число “b” последовательно на 2, 3, ..., . Если при каком-нибудь делении мы получим нулевой остаток, то число “b” составное, а делитель и частное являются его сомножителями; в противном случае b - простое.

Поскольку необходимо выполнить делений, то время проверки простоты числа “b” равно O().

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

Третий детерминистический тест.

Число “b” просто тогда и только тогда, когда b | {(b-1)! + 1}. Факториал (b-1)! и проверка делимости (b-1)!+1 для больших “b” уничтожает всякий интерес к этому тесту. Если `b" имеет 100 десятичных цифр, то (b-1)! состоит примерно из 100 102 цифр.

Все приведенные выше тесты были детерминистическими. Это означает, что для заданного числа “b” мы всегда получаем ответ, является ли оно простым или составным. Если заменить слово «всегда» на «с некоторой вероятностью», то оказывается возможным построить вероятностные тесты, которые называют также тестами псевдопростоты.

Первый вероятностный тест.

Этот тест позволяет выявить все составные числа Кармайкла. Выбирается случайное число a в диапазоне от 1 до b-1 и проверяется выполнение условий.

(a, b) = 1, J(a, b) a (b-1)/2 (mod b),

где J(a, b) символ Якоби.

Символ Якоби определяется следующими соотношениями:

J(a, p) = 1, если x 2 a (mod p) имеет решения в Z p ,

J(a, p) = -1, если x 2 a (mod p) не имеет решения в Z p ,

где Z p - кольцо вычетов по модулю p.

Если b - простое число, условия приведенные выше, всегда выполняются, а если b - составное, то они не выполняются с вероятностью. Поэтому выполнение k тестов гарантирует, что ответ неправилен с вероятностью 2 -k .

Второй вероятностный тест.

Поскольку число b, которое должно быть простым, всегда нечетное, то его можно представить в виде

где s - четное число. Затем в тесте выбирается случайным образом число a в диапазоне от 1 до b-1 и проверяется выполнение условий

1 (mod b) для 0 < j

Оба теста используются для проверки числа на принадлежность классу простых и требуют порядка О(log 2 b) операций над большими числами.

Третий вероятностный тест.

Для заданного b выбираем случайным образом m, 1

Вероятность того, что выдается ответ “b - составное число”, равна вероятности того, что m | b. Если d(b) число делителей b и m - случайно выбрано в пределах 1

Это очень слабый тест.

Четвертый вероятностный тест.

Для заданного “b” выбираем случайным образом m, 1

Если b составное число, то количество чисел m

Пятый вероятностный тест.

Это тест сильной псевдопростоты. Пусть заданы b и m. Пусть

где t - нечетное число и рассмотрим числа для (x r - наименьший по абсолютной величине остаток по модулю b).

Если либо x 0 = 1, либо найдется индекс i, i

Докажем это от противного. Предположим, что b - нечетное простое число. Покажем по индукции, что 1 (mod b) для, что будет противоречить условию теоремы.

Очевидно, что это справедливо для r = S по теореме Ферма. Предполагая справедливость утверждения для i, нетрудно видеть, что оно справедливо для i-1, потому что равенство

влечет за собой, что возводимое в квадрат число равно ±1. Но -1 не подходит по условию (иначе бы тест выдал ответ "не удалось определить").

Доказано, что если b - составное число, то вероятность того, что тест выдаст ответ "b - составное число" не меньше .

Разложение на множители больших целых чисел.

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

Метод основывается на идее Лежандра, если U 2 V 2 (mod b) 0

Пусть мы хотим разложить на множители число b. Пусть n = - максимальное число, не превосходящее, и вычислим числа a k = (n + k) 2 - b для небольших k (числа k могут быть и отрицательными).

Пусть {q i , i = 1, 2, …, j} - множество небольших простых чисел, которые могут делить выражение вида x 2 - b (т.е. b является квадратом по модулю q i). Такое множество обычно называется мультипликативной базой В. Запомним все числа a k , которые могут быть разложены по мультипликативной базе, т.е. записаны в виде

Такие ak называются В-числами. С каждым В-числом ak связывается вектор показателей

Если мы найдем достаточно много В-чисел, чтобы множество соответствующих векторов показателей было линейно зависимо по модулю 2

(любое множество из j+2 В-чисел обладает этим свойством), то можно будет представить нулевой вектор в виде суммы векторов показателей некоторого множества S, скажем

Определим целые числа

i = 0, 1, …, j,

Из сказанного выше следует, что U 2 V 2 (mod b) и (U-V, b) может быть нетривиальным делителем b.

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

Т. е. противник просто проводит j раз зашифрование на открытом ключе перехваченного шифротекста. Это выглядит следующим образом: (С e) e) e ..) e (mod n)=С e j(mod n)). Найдя такое j, противник вычисляет C e (j-1)(mod n) (т.е. j-1 раз повторяет операцию зашифрования) - это значение и есть открытый текст M. Это следует из того, что С e j(mod n)=(C e (j-1)(mod n))e=C. Т. е. некоторое число C e (j-1)(mod n) в степени e дает шифротекст С. А это открытый текст M.

Пример. p=983, q=563, e=49, M=123456.

C=M 49 (mod n)=1603, C497(mod n)=85978, C498(mod n)=123456, C499(mod n)=1603.

Учебный год

Теоретическая часть

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

2. Представление системы шифрования графом, принцип единственности шифрования-дешифрования.

3. Математическая модель системы шифрования-дешифрования информации.

4. Стойкость системы шифрования, классификация систем шифрования по стойкости. Виды атак на систему шифрования.

5. Определение безусловно стойкой системы шифрования, утверждение о необходимых условиях существования безусловно стойкой системы.

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

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

8. Блочный шифр, схема Файстеля, свойства блочного шифра.

9. Шифр замены, его свойства.

10. Шифр гаммирования и его свойства.

11. Моды (режимы работы) блоковых шифров, краткая характеристика режимов.

12. Стандарт шифрования ГОСТ Р34.12-2015, базовый алгоритм шифрования 64-битного блока.

13. Стандарт шифрования ГОСТ Р34.12-2015, базовый алгоритм шифрования 128-битного блока.

14. Стандарт шифрования ГОСТ Р34.13-2015, алгоритм шифрования в режиме простой замены, алгоритм шифрования в режиме гаммирования и гаммирования с обратной связью. Сравнение режимов.

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

16. Линейный рекуррентный регистр, статистические свойства линейной рекуррентной последовательности.

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

18. Шифр А5/1, характеристика шифра, принцип построения, применение.

19. Принцип построения и характеристики шифра AES.

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

21. Понятие хэш-функции, требования, предъявляемые к криптографическим хэш-функциям.

22. Хэширующая функция согласно стандарту ГОСТ Р34.11-12, характеристика, принцип построения, применение.

23. Система шифрования Эль-Гамаля, атаки на систему.

24. Система шифрования РША, атаки на систему.

25. Определение, классификация, основные свойства, модель ЭП.

26. Схема ЭП РША.

27. Схема ЭП Эль-Гамаля.

28. ЭЦП по ГОСТР 34.10-12, общая характеристика, принцип формирования и проверки подписи.

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

30. Понятие ключевой хэш-функции. Класс строго-универсальных хэш-функций, примеры реализация этих хэш-функций.

31. Построение систем аутентификации с гарантированной вероятностью навязывания.

32. Построение системы аутентификации при многократной передаче сообщений.

33. Вычислительно-стойкие системы аутентификации.

34. Выработка имитовставки согласно ГОСТ Р34.12-2015.

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

36. Способы распределения ключей на основе взаимного обмена сообщениями между корреспондентами. Способ Диффи-Хеллмана.

37. Способы генерирования случайных чисел при формировании ключей.

38. Способы распределения ключей с использованием ЦРК на начальном этапе.

39. Способы распределения ключей с использованием ЦРК в интерактивном режиме. Протокол Нидхема-Шредера.

40. Принцип распределения открытых ключей.

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

42. Назначение, принцип формирования и характеристика сертификата открытого ключа.

Практическая часть

1. Зашифровать (расшифровать) сообщение в ручном режиме шифром подстановки, перестановки и гаммирования. Программа LR1_1.exe.

2. Расшифровать криптограмму на основе анализа ее статистики, используя программу CHANGE.EXE.

3. Найти коэффициент размножения ошибок при расшифровании криптограммы блочного подстановочно-перестановочного шифра с длиной блока 16 бит. Программа tst.

4. Расшифровать криптограмму подстановочно-перестановочного шифра путем полного перебора ключей, используя программу tst. Обосновать параметры принятия решения о правильной расшифровке.

5. Зашифровать 64-битное сообщение базовым алгоритмом шифрования ГОСТ Р 34.12-2015 г. (1 раунд)

6. Зашифровать сообщение длиной 128 бит, используя программу AES.exe. Проверить, что в первом преобразовании (операция SubBytes) используется обращение элемента в поле GF(2 8).

7. По характеристическому многочлену h(x) построить ЛРР (начальное заполнение 10…01) Определить период последовательности. Найти баланс, проверить свойства серий и окна. Результат проверить с помощью программы ЛРР 1.

8. Найти последовательность на выходе формирователя шифрующей гаммы, содержащего элементы ИЛИ, И-НЕ, Джеффа. Использую программу ЛРР 2, определить эквивалентную сложность последовательности. Построить эквивалентный ЛРР. Сделать выводы.

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

Найти наибольший общий делитель, используя алгоритм Евклида;

Вычислить a x modp, используя алгоритм быстрого возведения числа в степень;

Найти обратный элемент к числу по модулю p.

Найти функцию Эйлера от числа x;

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

11. Заданы параметры системы шифрования Эль-Гамаля a=4, p=11, закрытый ключ х=7 , зашифровать сообщение М= . Расшифровать криптограмму.

12. Заданы параметры системы шифрования РША p=11, q=13, зашифровать сообщение М=5. Расшифровать криптограмму.

13. Заданы параметры системы шифрования Эль-Гамаля a=4, p=11, закрытый ключ х=8, подписать сообщение, хэш-код которого h(М)= . Проверить подпись.

14. Заданы параметры системы шифрования РША p=11, q=13, подписать сообщение, хэш-код которого h(М)= 6. Проверить подпись.

15. Используя программу RSA, произвести шифрование файла большого размера безопасной криптосистемой РША и оценить время шифрования и дешифрования.

16. Используя программу RSA, произвести подписание сообщений и проверку подписи. Разрядность сообщения не менее 100 разрядов.

17. Задана эллиптическая кривая Е13(1,1). Найти точку С равную сумме двух точек , координаты точек и x 1 = , y 1 = , x 2 = , y 2 = . Найти противоположную точку . Вычислить точку , где k =3.

18. Сформировать аутентификатор для двоичного сообщения М =1010 на основе строго универсальных хэш-функций по алгоритму K 0 =0101, K 1 = (номер билета) . Вычисления в поле проводить по модулю неприводимого многочлена , b =4.

Лучшие статьи по теме