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

09.07.2003

Что такое шифрование?

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

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

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

Основные современные методы шифрования

Среди разнообразнейших способов шифровании можно выделить следующие основные методы:

  • Алгоритмы замены или подстановки - символы исходного текста заменяются на символы другого (или того же) алфавита в соответствии с заранее определенной схемой, которая и будет ключом данного шифра. Отдельно этот метод в современных криптосистемах практически не используется из-за чрезвычайно низкой криптостойкости.
  • Алгоритмы перестановки - символы оригинального текста меняются местами по определенному принципу, являющемуся секретным ключом. Алгоритм перестановки сам по себе обладает низкой криптостойкостью, но входит в качестве элемента в очень многие современные криптосистемы.
  • Алгоритмы гаммирования - символы исходного текста складываются с символами некой случайной последовательности. Самым распространенным примером считается шифрование файлов "имя пользователя.pwl", в которых операционная система Microsoft Windows 95 хранит пароли к сетевым ресурсам данного пользователя (пароли на вход в NT-серверы, пароли для DialUp-доступа в Интернет и т.д.).

Когда пользователь вводит свой пароль при входе в Windows 95, из него по алгоритму шифрования RC4 генерируется гамма (всегда одна и та же), применяемая для шифрования сетевых паролей. Простота подбора пароля обусловливается в данном случае тем, что Windows всегда предпочитает одну и ту же гамму.

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

Симметричные и асимметричные криптосистемы

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

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

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

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

Алгоритм RSA

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

Для начала выберем два очень больших простых числа (большие исходные числа нужны для построения больших криптостойких ключей. Например, Unix-программа ssh-keygen по умолчанию генерирует ключи длиной 1024 бита).

Определим параметр n как результат перемножения p и q . Выберем большое случайное число и назовем его d , причем оно должно быть взаимно простым с результатом умножения (p -1)*(q -1) .

Отыщем такое число e, для которого верно соотношение

(e*d) mod ((p -1)*(q -1)) = 1

(mod - остаток от деления, т. е. если e, умноженное на d, поделить на ((p -1)*(q -1)) , то в остатке получим 1).

Открытым ключом является пара чисел e и n , а закрытым - d и n .

При шифровании исходный текст рассматривается как числовой ряд, и над каждым его числом мы совершаем операцию

C(i)= (M(i) e) mod n.

В результате получается последовательность C(i) , которая и составит криптотекст. Декодирование информации происходит по формуле

M(i) = (C(i) d) mod n.

Как видите, расшифровка предполагает знание секретного ключа.

Давайте попробуем на маленьких числах.

Установим p=3, q=7 . Тогда n=p*q=21. Выбираем d как 5. Из формулы (e*5) mod 12=1 вычисляем e=17 . Открытый ключ 17, 21 , секретный - 5, 21 .

Зашифруем последовательность «12345»:

C(1)= 1 17 mod 21= 1

C(2)= 2 17 mod 21 =11

C(3)= 3 17 mod 21= 12

C(4)= 4 17 mod 21= 16

C(5)= 5 17 mod 21= 17

Криптотекст - 1 11 12 16 17.

Проверим расшифровкой:

M(1)= 1 5 mod 21= 1

M(2)= 11 5 mod 21= 2

M(3)= 12 5 mod 21= 3

M(4)= 16 5 mod 21= 4

M(5)= 17 5 mod 21= 5

Как видим, результат совпал.

Криптосистема RSA широко применяется в Интернете. Когда вы подсоединяетесь к защищенному серверу по протоколу SSL, устанавливаете на свой ПК сертификат WebMoney либо подключаетесь к удаленному серверу с помощью Open SSH или SecureShell, то все эти программы применяют шифрование открытым ключом с использованием идей алгоритма RSA. Действительно ли эта система так надежна?

Конкурсы по взлому RSA

С момента своего создания RSA постоянно подвергалась атакам типа Brute-force attack (атака методом грубой силы, т. е. перебором). В 1978 г. авторы алгоритма опубликовали статью, где привели строку, зашифрованную только что изобретенным ими методом. Первому, кто расшифрует сообщение, было назначено вознаграждение в размере 100 долл., но для этого требовалось разложить на два сомножителя 129-значное число. Это был первый конкурс на взлом RSA. Задачу решили только через 17 лет после публикации статьи.

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

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

Один из самых распространенных в России почтовых клиентов, программа The Bat!, обладает встроенными возможностями добавлять цифровые подписи к письмам (обратите внимание на пункт меню Privacy при редактировании письма). Подробнее об этой методике читайте в статье (см. «Мир ПК», № 3/02).

Рис. 3

Криптография

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

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

Олег Бунин - специалист по разработке ПО для крупных Интернет-проектов, сотрудник компании «Рамблер», http://www..htm ).

  • Введение в криптографию / Под ред. В.В. Ященко. М.: МЦНМО, 2000.
  • Носов В. А. Краткий исторический очерк развития криптографии // Материалы конференции "Московский университет и развитие криптографии в России", МГУ, 17-18 октября 2002 г.
  • Саломаа А. Криптография с открытым ключом. М., 1996 .
  • Циммерман Ф. PGP - кодирование с открытым ключом для всех.
  • Система шифрования Цезаря

    Пример алгоритма замены - система шифрования Цезаря. Этот метод основан на замене каждой буквы сообщения на другую путем смещения от исходной на фиксированное количество символов. Попробуйте расшифровать четверостишие Омара Хайяма (время выполнения - 10 минут).

    РЛЗЬ ЁМЭЙЗ АВБЖУ ИЙЗАВЛУ, БЖЩЛУ ЖЩЭЗЬЖЗ ЖЮЁЩЕЗ, ЭЫЩ ЫЩАЖФО ИЙЩЫВЕЩ БЩИЗЁЖВ ЭЕШ ЖЩРЩЕЩ: ЛФ ЕМРСЮ ЪЗЕЗЭЩГ, РЮЁ РЛЗ ИЗИЩЕЗ ЮКЛУ, В ЕМРСЮ ЬМЭУ ЗЭВЖ, РЮЁ ЫЁЮКЛЮ К ДЮЁ ИЗИЩЕЗ.

    Успели? Привожу «отгадку»:

    Чтоб мудро жизнь прожить, знать надобно немало,

    Два важных правила запомни для начала:

    Ты лучше голодай, чем что попало есть,

    И лучше будь один, чем вместе с кем попало.

    Ключ для расшифровки: сдвигаем на семь символов (берем седьмой) влево по алфавиту. Алфавит закольцован. Регистр символов не учитывается.

    Windows и пароли

    Как Windows шифрует пароли?

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

    Конкурс AES (Advanced Encryption Standard)

    В 80-х гг. в США приняли стандарт симметричного шифрования для внутреннего применения - DES ((Data Encryption Standard, подобный стандарт есть и в России). Но в 1997 г., когда стало понятно, что 56-битового ключа DES недостаточно для надежной криптосистемы, Американский институт стандартизации объявил конкурс на новый стандартный алгоритм. Из 15 вариантов был выбран лучший: бельгийский алгоритм Rijndael (его название составлено из фамилий авторов - Rijmen и Daemen, читается как «Рэйндал». Этот алгоритм уже встроен в различные криптографические средства, поставляемые на рынок). Другими финалистами конкурса стали MARS, RC6, Serpent, TwoFish. Все эти алгоритмы были признаны достаточно стойкими и успешно противостоящими всем широко известным методам криптоанализа.

    Криптографические хэш-функции

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

    • два разных набора данных с одинаковым результатом преобразования (стойкость к коллизиям); например, количество арифметических операций, необходимых для того, чтобы найти блок данных, также имеющий краткое сообщение для хэш-функции MD5, составляет приблизительно 2 64;
    • входное значение по известному результату хэширования (необратимость); для MD5 предполагаемое количество операций, необходимых для вычисления исходного сообщения, равно 2 128.

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

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

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

    Так за 400 лет до н. э. в Спарте использовалось шифрование на круговом цилиндре. На него наматывался свиток, после чего по свитку параллельно оси цилиндра записывался текст - строка за строкой. В результате на развернутом свитке буквы располагались без видимого порядка. Для прочтения послания получатель должен был намотать свиток на точно такой же цилиндр.

    За 300 лет до н. э. в Греции был написан труд «Тактикус» о скрытых сообщениях. За 200 лет до н. э. изобретен полибианский квадрат, содержавший 5x5=25 клеток для двадцати четырех букв греческого алфавита и пробела, вписанных в произвольном порядке. При шифровании текста нужная буква отыскивалась в квадрате и заменялась на другую букву из того же столбца, но вписанную строкою ниже. Буква, которая находилась в нижней строке квадрата, заменялась на букву из верхней строки того же столбца. Получатель, имевший точно такой же квадрат, производил расшифровку сообщения, выполняя указанные операции в обратном порядке.

    Цезарь в переписке с Цицероном использовал то, что в настоящее время называют шифром Цезаря. Метод Цезаря состоит в следующем. Сначала каждой букве алфавита сопоставляется ее порядковый номер. Затем при шифровании записывается не сама буква, а та, чей номер больше на целое число К, называемое ключом. Для алфавита, содержащего т букв, правило шифрования задается соотношением:

    п=(К + I) mod m,

    где п - номер буквы, полученной в результате шифрования буквы с номером I Здесь использована операция вычисления по модулю т, при выполнении которой записывается не сама сумма К+ I , а остаток от деления этой суммы на т.

    Обобщение шифра Цезаря называется шифром простой замены. Его суть заключается в том, что все буквы алфавита заменяются другими буквами того же алфавита по правилу, которое является ключом. Например, а заменяется на в, б-на с, в - на в ,..., я - на г. Количество возможных при таком шифровании перестановок, соответствующих алфавиту с объемом т = 32, составляет m ! =32! = 2, 63 10 35 . Если в одну секунду при дешифровании методом простого перебора перебирать миллион ключей, то общее время на дешифровку составит 8,3-10 21 лет.



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

    Криптографией занимались многие известные математики, такие как Виет, Кардано, Лейбниц и, наконец, Френсис Бэкон. Последний предложил двоичное кодирование латинского алфавита.

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

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

    Неоценимый вклад в криптографию внес К. Шеннон, особенно своей работой «Секретность и скрытность», написанной в 1948 г. В 1976 г. Диффи и Хеллман предложили криптосистемы с открытым ключом. В 1977 г. в США был введен открытый Федеральный стандарт шифрования для несекретных сообщений (DES). В 1989 году вводится открытая отечественная система шифрования ГОСТ 28147-89.

    Рис. 1. Основные этапы развития криптографических систем

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

    Широкое использование математических методов для доказательства стойкости шифров или для проведения криптоанализа,

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

    Открытие нового вида криптографии с более «прозрачными» методами криптоанализа (криптография с общедоступным ключом),

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

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

    2. Математическая модель системы шифрования/дешифрования дискрет-ных сообщений

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

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

    , (1)

    , (2)

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

    Функции f (,) и g(,) при известных аргументах вычисляются просто,

    Функция g(E, К ДШ ) при неизвестном ключе К ДШ вычисляется сложно.

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

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

    Если К Ш = К ДШ, то система шифрования называется несимметричной {двухключевой). В этом случае ключ К Ш доставляется в пункт шифрования, а ключ К ДШ - в пункт дешифрования. Оба ключа очевидно должны быть связаны функциональной зависимостью К ДШ = φ(К Ш) но такой, что по известному ключу шифрования К Ш нельзя было бы восстановить ключ дешифрования К ДШ Это означает, что для несимметричной системы шифрования φ(.) должна быть трудно вычислимой функцией. В такой системе имеется возможность распределять секретным образом среди законных пользователей только их ключи дешифрования, а ключи шифрования сделать открытыми и опубликовать, например, в общедоступном справочнике. Поэтому рассматриваемая криптосистема называется системой с открытым {общедоступным) ключом. Криптосистема с общедоступным ключом (Public key cryptosystem) была впервые предложена Диффи и Хелманом в 1976 году. Следует различать три основных вида нападения (атак) оппонентов на криптосистему:

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

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

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

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

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

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

    Поясним сущность понятия размножение ошибок. Пусть при передаче криптограммы Е по каналу связи (рис. 2) возникли ошибки.

    Местоположение и величина ошибок в принятой криптограмме определяются вектором канальных ошибок е . При двоичной системе передачи принятая криптограмма будет иметь вид Е - Е ® ё , где знак ® означает побитное сложение по модулю 2, а общее число ошибок t равно норме вектора ошибок |е|,т.е. t= |е|. Число ошибок е" в расшифрованном сообщении М подсчитывается как t"= |f |, где 1= Й8А/. Ошибки не размножаются при условии, что f = t.

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

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

    Атаки нарушителя

    1. Криптоанализ ведется, только на основе, перехваченных криптограмм;

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

    3.Криптоанализ ведется на основе выбираемого противником открытого сообщения;

    Классы систем шифрования

    · Безусловно стойкие или идеальные, совершенные

    · Вычислительностойкие

    Безусловно стойкие (идеальные) системы шифрования

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

    Лучшим способом дешифрования криптограммы БССШ является угадывание

    одного из возможных сообщений источника Математически условие АССШ можетбыть записано в виде:

    Условная вероятность того, что сообщение M i было зашифровано криптограммой E j ;

    – априорная (при неизвестной криптограмме) вероятность присутствия сообщения M i .

    Вычислительно стойкие системы шифрования

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

    Время криптоанализа определяется:

    1. Сложностью алгоритма дешифрования;

    2. Быстродействием вычислительных устройств,

    осуществляющих дешифрование

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

    Основные подходы к криптоанализу:

    1. Тотальный перебор ключей

    2. Анализ статистических особенностей криптограмм

    3. Линейный криптоанализ

    4. Дифференциальный криптоанализ

    Быстродействие вычислительных устройств 10 10 - 10 12 операций/с

    Быстродействие ЭВМ увеличивается в 4 раза каждые 3 года

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

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

    Шифром колонной замены называется шифр с алфавитом открытых сообщений Z m, совпадающим с алфавитом шифрованных сообщений и ключевым множеством K.

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

    Свойства шифра замены.

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

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

    3. При шифровании методом замены не происходит размножение ошибок, возникающих в канале связи из-за помех.

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

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

    Согласно принципу Керхгоффа, алгоритмы шифрова­ния и дешифрования полностью известны криптоаналитику. Неизвестен лишь ключ, который используется как для шифрования, так и для дешифро­вания. Одинаковые блоки сообщений Мi и Мj всегда преобразуются в оди­наковые блоки криптограмм Ei и Ej . Если это свойство является нежела­тельным, то используют другую модификацию того же самого блокового алгоритма шифрования

    Принципы построения блоковых шифров состоят в том, что в алгоритме блокового шифра необхо­димо использовать:

    а) подстановки (нелинейные преобразования коротких частей (под­ блоков блокового шифра);

    б) перестановки символов в блоках;

    в) итерирование операций (а) и (б) (т. е. многократное повторение их с разными ключами).

    Схема Файстеля.

    Для упрощения процедур шифрования и дешифрования используется схема Файстеля, основанная на следующих принципах:

    а) каждый текущий блок делится на две равные части - левую Li и правую Ri, где i - параметр итерации (раунда);

    б) способ формирования следующих «половинок» блоков из предыду­щих, определяется, как показано на рис. 3.3, где ki - ключ i-гo раунда.

    Представим это преобразование в аналитической форме:

    L i = R i-1 , R i =L i-l + f(R i-1 , k i),

    где f( ) - нелинейная функция от двух аргументов, в которой нелинейность определяется, например, таблицей.

    Особености схемы Фейстеля:

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

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


    Характеристики шифра АЕS

    1.Может работать быстрее, чем обычный блочный шифр;

    2.Может быть реализован на смарт-карте, используя небольшой РАМ и имея небольшое число циклов;

    3. Преобразование раунда допускает параллельное выполнение;

    4. Не использует арифметических операций, поэтому тип архитектуры процессора не имеет значения;

    5. Может быть использован для вычисления МАС-кода и хэш-функции.

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

    Текущие данные (в том числе исходное сообщение и получаемая криптограмма) записываются по одному байту (8 бит) в каждую из 16 клеток, что дает общую длину блока шифрования, равную 8x16 -128 бит.

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

    Следующее преобразование состоит в умножении каждой клетки квадрата, представленной в виде двоичного вектор-столбца ( , ) , на фиксированную матрицу и добавлении также фиксированного вектор-столбца, причем все операции здесь выполняются в поле GF{2}:

    Используемая в этом преобразовании матрица и вектор-столбец сохраняются одинаковыми на всех раундах и не зависят от ключа.

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

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

    Следующее преобразование называется перемешиванием столбцов. На этом шаге каждый С-й столбец квадратной матрицы представляется как 4-мерный вектор над полем GF(), и далее производится умножение в этом поле, заданном неприводимым полиномом + + + х +1, на определенную матрицу с элементами из этого же поля:

    где элементы, показанные в этой матрице, задаются как элементы поля GF() (т. е. как двоичные последовательности длины 8), что иллюстрируется следующим примером:

    Наконец производится сложение с раундовыми ключами, которое выполняется просто как побитное сложение всех элементов последнего квадрата с 128 элементами раундового ключа по модулю 2. После завершения одного раунда все описанные выше операции повторяются с использованием других раундовых ключей. Раундовые ключи вырабатываются из единственного секретного ключа длиной 128, 192 или 256 бит (в зависимости от выбранного режима ифрования) при помощи специальных преобразований, включающих в себя циклические сдвиги и расширения. Количество раундов шифра зависит от выбранного режима его работы и изменяется в пределах от 10 до 14.

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

    Особенности шифра AES

    1) AES ориентирован в основном на реализацию с 8-разрядными процессорами;

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

    Стойкость шифра AES

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

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

    Скорость шифрования AES

    При программной реализации данный алгоритм наиболее эффективно реализуется на 8- и 32-разрядных платформах. Для типичных ПК скорость шифрования может составлять порядка 1 Мбайт/с - 500 кбайт/с. При аппаратной реализации высокие скорости шифрования (порядка 100 Мбайт/с и выше) потребуют увеличения аппаратных ресурсов и, следовательно, увеличения габаритов устройства.

    Стойкость шифра A5/1

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

    стойкость, так как количество его ключей достаточно велико, однако

    дальнейшие исследования, проводившиеся независимыми криптографами

    Показали, что у этого шифра есть слабые стороны. Одна из них состоит

    в том, что ЛРР, входящие в состав шифратора, имеют малые длины, и поэтому

    они подвержены некоторым модификациям статистических атак, а также

    атакам на основе обменных соотношений между требуемым объемом памяти

    и временем анализа.

    В конечном итоге исследования, которые проводились начиная с

    2000 г. (т. е. почти сразу после введения этого стандарта), показали, что данный

    шифр может быть «взломан» с использованием обычного ПК в реальном

    22.Возведение в степень, нахождение дискретного логарифма

    Возведение в степень по модулю - это вычисление остатка от деления натурального числа b (основание), возведенного в степень e (показатель степени), на натуральное число m (модуль).
    . Быстрый способ возведения Д.Кнута.

    Представим показатель степени в двоичном виде;

    Каждую единице заменим парой букв КУ (квадрат+умножение);

    Каждый ноль заменим буквой К (квадрат);

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

    Над основанием a проводим вычисления, согласно полученной последовательности.

    Пример: 3 37 (mod7)

    37 = 100101 = КУКККУККУ= КККУККУ

    3®3 2 (mod7)=2®2 2 (mod7)=4®4 2 (mod7)=2®2×3(mod7)=6®6 2 (mod7)= 1®1 2 (mod7)= 1®1×3(mod7)=3

    Сложность вычислений для операции возведения в степень: N@O(2logx).

    Сложность вычислений для операции дискретного логарифмирования: N@O((n) 1/2).

    Нахождение дискретного логарифма методом «встречи посредине»

    Строим базу данных размера O((n) 1/2) вида a z (modn) для случайных чисел zÎ и сортируем ее.

    Для случайных чисел b, таких что НОД(b,n-1)=1 вычисляем y b (modn) и сравниваем с числами базы данных.

    С большой вероятностью после нескольких попыток получаем

    a z (modn)= y b (modn)

    4. Возводим обе части в степень b -1 , получим a z · b-1 (modn)= y (modn). Откуда следует

    Этот метод имеет сложость N t @O((n) 1/2 logn), N v @O((n) 1/2)
    Возвести в степень по модулю довольно легко, даже при больших входных значениях. А вот вычисление дискретного логарифма, то есть нахождение показателя степениe при заданных b , c и m , намного сложнее. Такое одностороннее поведение функции делает её кандидатом для использования в криптографических алгоритмах.

    КС Эль-Гамаля.

    Это некоторая модификация КС РША, стойкость которой не связана непосредственно с проблемой факторизации. Она широко используется в стандартах цифровой подписи и допускает естественное обобщение на случай КС, построенных на основе использования эллиптических кривых, что будет рассмотрено далее.

    Генерирование ключей .

    Пользователь А проделывает следующие операции для генерирования ключей:

    1)генерирует простое число p и примитивный элемент ɑ∈GF(p);

    2) выбирает случайное число а такое, что 1<= a<= p-2, и вычисляет число ɑ^a;

    3) в качестве открытого ключа выбирает набор: (p, ɑ, ɑ^amodp), а в качестве закрытого ключа – число а.

    Шифрование .

    Пользователь В выполняет следующие шаги для шифрования сообщения М, предназначенного пользователю А:

    1) Получает открытый ключ А;

    2) Представляет сообщение М в виде цепочки чисел Мi, каждое из которых не превосходит р-1;

    3) Выбирает случайное число k такое, что 1<=k<=p-2;

    4) Вычисляет ɣ=(ɑ^k)mod p, б=Мi((ɑ^a)^k) mod p;

    5) Посылает криптограмму C=(ɣ,б) пользователю А.

    Дешифрование

    Пользователь А выполняет следующие шаги для дешифрования сообщения, полученного от пользователя В:

    1) используя свой закрытый ключ, вычисляет (ɣ^(-a ))mod p

    2) восстанавливает сообщение Mi=(ɣ^(-a))*б mod p

    Действительно, ɣ^(-a )*б =(ɑ^(-a k))*Mi*(ɑ^(a k))=Mi mod p

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

    Преимущество КС Эль-Гамаля состоит также и в том, что тогда все пользователи в сети могут выбирать одинаковые ɑ и р , что невозможно для КС РША. Кроме того, как будет показано далее, эта схема может быть естественным образом распространена на случай эллиптических кривых.

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

    Стойкость КС Эль-Гамаля

    Проблема восстановления сообщения М по заданным p , ɑ, ɑ^a, б , ɣ при неизвестном а эквивалентна решению задачи Диффи-Хеллман.

    Ясно также, что если будет решена проблема нахождения дискретного логарифма, то криптосистема Эль-Гамаля будет вскрыта. При выборе р с разрядностью 768 бит (для повышенной стойкости-до 1024 бит), стойкость КС Эль-Гамаля будет такой же, как и у КС РША при выборе в последней тех же параметров для модуля.

    Важно отметить, что для шифрования различных сообщений Мi, Мj необходимо использовать различные значения чисел k, поскольку в противоположном случае б1/б2=Мi/Мj, и тогда сообщение Мj может быть легко найдено, если известно сообщение Мi.


    Генерирование ключей.

    Случайно выбираются два простых числа p и q. Находится

    модуль N=pq. Находится функция Эйлера φ (N)= (p-1)(q-1).

    Выбираем число e такое, что НОД(e, φ (N))=1.

    Находим d, как обратный элемент к e, de=1(mod φ (N)).

    Объявляем d=SK, (e,N)=PK. PK сообщается всем

    корреспондентам.

    Шифрование .

    Корр. А передает зашифрованное сообщение корр.В

    (использует открытый ключ корр. В)

    Расшифрование.

    Корр. В расшифровывает принятую криптограмму от

    корр.А,используя свой секретный ключ.

    Атаки.

    1. Система РША может быть вскрыта, если удастся найти p и q, т. е. факторизовать N.

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

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

    Так, например ln n = 200, если, то число операций будет приблизительно равно 1,37 ∙ 10 14 .

    При увеличении числа разрядов n до 1000 и более время факторизации становится совершенно необозримым.

    2. Другой естественной атакой на КС РША является дискретное логарифмирование. Эта атака (при известном сообщении) выполняется следующим образом: d = log E M mod N. Однако задача дискретного логарифмирования по модулю многоразрядных чисел также относится к трудным в математике, и оказывается, что она имеет почти такую же сложность, как и задача факторизации.

    3. Циклическая атака. Будем последовательно возводить полученную криптограмму в степень равную значению открытого ключа т.е. (((((E e) e)…..) e .

    Если при некотором шаге окажется, что E i =E, то это означает,

    что E i-1 =m. Доказывается, что данная атака не лучше атаки факторизации N.

    4. Отсутствие шифрования. Этот случай возможен, если в результате шифрования получаем открытое сообщение, т. е. M e mod n = M. Такое условие должно выполниться хотя бы для одного из сообщений, например, для сообщений M = 0, 1, n – 1 . На самом деле таких сообщений, которые вообще! не шифруются, существует в точности . Их число всегда не менее 9. Однако при случайном выборе q и p доля таких сообщений будет ничтожно мала и они почти никогда не встретятся на практике.

    5. Атака при малом объеме возможных сообщений

    Предположим, что количество сообщений ограничено значениями M1 , M2 ,… , Mr , где r обозримо. (Это могут быть, например, различные команды – вперед, назад, влево, вправо и т. п.). Тогда сообщение может быть легко расшифровано.

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

    Способ борьбы с такой атакой – это «подсаливание» сообщений (т. е. присоединение к ним небольших цепочек бит, полученных с использованием чисто случайного датчика).

    ВИДЫ

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

    · Неквалифицированная:
    Получена в результате криптографического преобразования информации с использованием ключа ЭП;

    Позволяет определить лицо, подписавшее документ;

    Позволяет обнаружить факт внесения изменений в ЭД;

    Создается с использованием средств ЭП;

    · Квалифицированная:
    Соответствует всем признакам неквалифицированной ЭП;

    Ключ проверки ЭП указан в квалифицированном сертификате.

    Для создания и проверки ЭП используются средства ЭП, получившие подтверждение соответствия в соответствии с законом об ЭП.

    Схема ЭП РША.

    Пусть имеется некоторое сообщение М и некоторым пользователем А сгенерирована пара открытый/закрытый ключ для системы РША, т. е. числа e A ,n A ; d A . Тогда сообщение М разбивается на блоки, каждый из которых может быть представлен целым числом, не превосходящим n А. Для каждого из таких сообщений-цифр М формируется ЦП S по следующему правилу: S = М dA mod(n A). Далее ЦП присоединяется к сообщению, образуя так называемое подписанное сообщение, т. е. пару M,S . Для верификации ЦП поль­зователь должен получить открытый ключ А, а также «подписанное» (но возможно фальсифицированное) сообщение М, S и вычислить Ṁ =S eA mod(e A). Далее он сравнивает Ṁ с М и при их совпадении полага­ет, что сообщение М действительно подписано А, в противном случае от­вергает его, как подделку или искажение.


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

    ЭП - Электронная подпись (ЦП – Цифровая Подпись)

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

    Генерирование ключей:

    1) генерируется большое простое число р и примитивный элемент а над конечным полем GF(p);

    2) генерируется число x : 1 ;

    3) вычисляется у = а x mod(р) ;

    4) выбирается открытый ключ верификации ЦП: (р, а, у ) и секретный ключ создания ЦП: x .

    Формирование ЦП

    Если пользователь А хочет подписать сообщение m, представленное в виде числа, принадлежащего Zp , то он выполняет следующие операции:

    1) генерирует секретное число k : 1 ≤ k ≤ р – 2; gcd(k , р - l) = 1, где gcd – это НОД

    2) вычисляет r = a k mod(р);

    3) вычисляет k -1 mod(p - 1);

    4) вычисляет s = k -l (m - xr )mod(p - l);

    5) Формирует ЦП S к сообщению m как пару чисел S = (r, t).

    Проверка (верификация) ЦП

    Для того чтобы проверить подпись S, созданную А под сообщением M, любой пользователь выполняет следующие шаги:

    1) получает открытый ключ А: (р, а, у) ;

    2)проверяет, что 1 ≤ r ≤ р - 1 , и если это не выполняется, то отвер­гает ЦП;

    3) рассчитывает V 1 = y r r s mod(р) ;

    4) рассчитывает V 2 = а m mod(р);

    5) принимает ЦП как правильную при условии, что V 1 = V 2

    Стойкость ЦП на основе КС Эль-Гамаля

    1) Злоумышленник может попытаться подделать подпись к своему сооб­щению М следующим образом: сгенерировать случайное число к, вычислить r = а k mod(р), а затем попытаться найти s = k - l (m - xr )mod(p - l).

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

    3) Стоит отметить, что если не выполнен шаг 2 алгоритма ве­рификации ЦП , то злоумышленник может правильно подписать любое сооб­щение по своему выбору при условии, что в его распоряжении имеется какое-либо другое сообщение с правильной ЦП. Таким образом, при выборе модуля р , который в двоичном представлении имеет длину порядка 768 бит, обеспечивается хорошая стойкость ЦП, а для обеспечения долговременной стойкости целесообразно увеличить ее до 1024 бит.


    Требования к криптографическим ХФ

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

    2.Слабая коллизионная стойкость, когда для заданных x, h(x)=h вычислительно неосуществимо найти такое другое x’ значение, которое удовлетворяет уравнению h(x’)=h.

    3.Сильная коллизионная стойкость, когда вычислительно неосуществимо найти такую пару аргументов x, x’ , для которых выполняется соотношение h(x)=h(x’).

    Исправление уязвимости

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

    Компоненты PKI

    · Сертификационный центр (Certificate Authority (CA)) - часть системы открытых ключей, которая выпускает сертификат для подтверждения прав пользователей или систем обратившихся с запросом. Она создает сертификат и подписывает его, используя частный ключ. Благодаря своей функции по созданию сертификатов, сертификационный центр является центральной частью PKI.

    · Хранилище сертификатов (Certificate Repository) . Хранилище действующих сертификатов и списка аннулированных (Certificate Revocation Lists (CRLs)). Приложения проверяют пригодность сертификата и уровень доступа предоставляемый им, сверяя с образцом содержащимся в хранилище.

    · Сервер восстановления ключей (Key Recovery Server) - сервер, осуществляющий автоматическое восстановление ключей, если данный сервис установлен.

    · PKI-готовые приложения (PKI-Enabled Application) - приложения, которые могут использовать средства PKI для обеспечения безопасности. PKI управляет цифровыми сертификатами и ключами, используемыми для шифрования информации, содержащейся на web-серверах, при использовании электронной почты, при обмене сообщениями, при просмотре Интернет-страниц и пересылке данных. Некоторые приложения изначально могут использовать PKI, а другие требуют внесения изменений программистами.

    · Регистрационный центр (Registration Authority) - модуль отвечающий за регистрацию пользователей и принятие запросов на сертификат.

    · Сервер безопасности (Security Server) - сервер, который обеспечивает управление доступом пользователей, цифровыми сертификатами и надежными взаимосвязями в среде PKI. Сервер безопасности централизованно управляет всеми пользователями, сертификатами, связями с сертификационным центром, отчетами и проверяет список аннулированных сертификатов.

    Функции PKI

    · Регистрация (Registration) - процесс сбора информации о пользователе и проверки ее подлинности, которая затем используется при регистрации пользователя, в соответствии с правилами безопасности.

    · Выдача сертификата (Certificate Issuance) . Как только CA подписал сертификат он выдается просителю и/или отправляется в хранилище сертификатов. СА проставляет на сертификатах срок действия, требуя таким образом периодического возобновления сертификата.

    · Аннулирование сертификата (Certificate Revocation) . Сертификат может стать недействительным до окончания срока действия в силу различных причин: пользователь уволился из компании, сменил имя или если его частный ключ был скомпрометирован. При этих обстоятельствах СА аннулирует сертификат, занося его серийный номер в СRL.

    · Восстановление ключа (Key Recovery) . Дополнительная функция PKI позволяет восстанавливать данные или сообщения в случае утери ключа.

    · Управление работой (Lifecycle Management) - постоянная поддержка сертификатов в PKI, включающая обновление, восстановление и архивирование ключей. Эти функции выполняются периодически, а не в ответ на специальные запросы. Автоматизированное управление ключами наиболее важная функция для больших PKI. Ручное управление ключами может ограничить масштабируемость PKI.

    Основные определения

    · Certificate Revocation Lists (CRLs) - списоканнулированныхсертификатов. Аннулирование может быть вызвано сменой места работы, кражей частного ключа или другими причинами. Приложения, работающие с PKI, могут сверять сертификаты пользователей со списком CRL, прежде чем предоставить доступ в соответствии с этим сертификатом.

    · Цифровойсертификат (Digital Certificate/X.509 Certificate) . Структура данных, применяющаяся для связывания определенного модуля с определенным открытым ключом. Цифровые сертификаты используются для подтверждения подлинности пользователей, приложений и сервисов, и для контроля доступа (авторизации). Цифровые сертификаты издаются и распределяются СА.

    · Цифровой конверт (Digital Envelope) . Метод использования шифрования с открытым ключом для безопасного распространения секретных ключей использующихся при симметричном шифровании и для посылки зашифрованных сообщений. Значительно сокращается проблема распространения ключей связанная с симметричным шифрованием.

    · Цифровая подпись (Digital Signature) . Метод использования шифрования с открытым ключом для обеспечения целостности данных и невозможности отказа от посылки. Зашифрованный блок информации после расшифровки получателем, идентифицирует отправителя и подтверждает сохранность данных. Например: документ "сжат", HASH зашифрован с помощью частного ключа отправителя и приложен к документу (по сути, это означает приложить "отпечаток пальца" этого документа). Получатель использует открытый ключ для расшифровки полученного сообщения до состояния "выжимки", которая затем сравнивается с "выжимкой" полученной после "сжатия" присланного документа. Если обе "выжимки" не совпали, то это означает, что документ был изменен или поврежден в процессе пересылки.

    · Шифрование с открытым ключом (Public Key Cryptography) . Есть два основных типа шифрования: с открытым ключом и с секретным (симметричным) ключом. При шифровании с открытым ключом используется пара ключей: открытый, т.е. свободно доступный, и соответствующий ему частный ключ, известный только конкретному пользователю, приложению или сервису, которые владеют этим ключом. Эта пара ключей связана таким образом, что зашифрованное частным ключом, может быть расшифровано только открытым ключом и наоборот.

    · Симметричноешифрование (Shared Secret Cryptography) . Есть два основных типа шифрования: с открытым ключом и с секретным (симметричным) ключом. При симметричном шифровании получатель и отправитель используют один и тот же ключ для шифрования и расшифровки. Это означает, что множество пользователей должны иметь одинаковые ключи. Очевидно, что до получения ключа пользователем шифрование невозможно, при этом распространение ключа по сети не является безопасным. Другие же способы распространения, такие как специальный курьер, дорогие и медленные.

    · Алгоритм RSA - первая шифровальная система с открытым ключом, названная в честь ее изобретателей: Ronald Rivest, Adi Shamir и Leonard Adleman.

    · Смарт-карта. Устройство похожее на кредитную карточку со встроенной памятью и процессором, используемое для защищенного хранения ключей и сертификатов пользователя а также другой информации (как правило, социального и медицинского назначения).

    · Digital Credentials. В рамках технологии PKI, стандарт ISO/TS 17090-1 определяет этот термин как криптографически защищенный объект, который может содержать индивидуальные ключи пользователя, сертификаты индивидуальных ключей, сертификаты Центров Сертификации PKI-структуры пользователя, список доверенных ЦС, а также другие параметры, относящиеся к домену пользователя - идентификатор пользователя, наименования применяемых криптографических алгоритмов, значения стартовых величин и т.д.. Credentials могут размещаться на аппаратных или программных носителях.

    Принцип работы

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

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

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

    С помощью открытого ключа шифрования пользователь 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.

    Похожие публикации