Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
inf_bez_lekcii2013.pdf
Скачиваний:
321
Добавлен:
16.03.2015
Размер:
5.41 Mб
Скачать

Рисунок 5.10 Схема поточного самосинхронизирующегося шифра

Yi=E(Xi , Fk(Yi-1,Yi-2,…Yi-n)) – шифрование, Xi=D(Yi , Fk(Yi-1,Yi-2,…Yi-n)) - расшифрование

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

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

пускается использование алгоритмов блочного шифрования в режиме поточного шифрования (например, режимы CBF и OFB для алгоритма DES или режим гаммирования для алгоритма ГОСТ 2814789).

Поточные шифры почти всегда работают быстрее и обычно требуют для своей реализации гораздо меньше программного кода, чем блочные шифры. Наиболее известный поточный шифр был разработан Р. Ривестом; это шифр RC4, который характеризуется переменным размером ключа и байториентированными операциями. На один байт требуется от 8 до 16 действий, программная реализация шифра выполняется очень быстро. Независимые аналитики исследовали шифр, и он считается защищенным. RC4 используется для шифрования файлов в таких изделиях, как RSA SecurPC. Он также применяется для защиты коммуникаций, например, для шифрования потока данных в Интернет-со- единениях, использующих протокол SSL.

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

Поточное шифрование является наиболее перспективным.

Примеры поточных шифраторов: SEC – 15, SEC – 17, SDE – 100, скорость шифрования от 256 бит/сек до 2304 кбит/сек, ключ состоит из 72 шестнадцатиричных цифр.

Комбинированные шифры

В таких шифрах реализуются принципы как блочных, так и поточных шифров. Примерами комбинированных шифров являются шифры ГОСТ 28147-89 и DES.

5.6 Ассиметричные или двухключевые криптографические системы

Еко(Р) Dкс(С)

Рисунок 5.11 Схема шифрования в асимметричных криптосистемах В асимметричных криптосистемах используются два ключа: один открытый ключ, а другой – секрет-

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

C = Eko( P ),

P = Dkc( C ) = Dkc(Eko( P ))

 

56

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

C = Ekc( P ), P = Dko( C ) = Dko(Ekc( P ))

Работа ассиметричной криптографической системы:

5.6.1Системы с открытым ключом

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

Методы шифрования должны обладать двумя свойствами:

1.Законный получатель сможет выполнить обратное преобразование и расшифровать сообщение

2.Злоумышленник или криптоаналитик противника, перехвативший сообщение, не сможет восстановить по нему открытый текст без таких затрат времени и средств, которые сделают эту работу нецелесообразной.

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

x f(x) - односторонняя функция

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

Важное свойство: при заданных значениях х относительно просто найти f(x), если есть f(x) трудно найти х.

57

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

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

На настоящий момент высокоэффективные асимметрические системы пока не найдены. Принято ограниченное использование этих криптосистем только для управления ключами и в системах ЭЦП.

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

Метод возведения в степень (метод Эль-Гамаля)

F(x) = x m mod n – прямое преобразование.

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

Один из методов использует алгоритм извлечения корня при известном разложении числа n на простые множители, это и позволяет отнести функцию F(x) к классу односторонних функций с «потайной лазейкой».

Метод укладки рюкзака (метод Меркле-Холлмана)

Реализацией задачи об укладке рюкзака является криптоалгоритм Меркле-Холлмана.

Пусть задан набор целых положительных чисел А= (а1, а2…аn) и известна некоторая величина Z. Задачей является нахождение таких чисел аi, если это возможно, сумма которых равна числу Z.

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

Пример: Z=3231 и набор из 10 чисел А = (43, 129, 215, 473, 903,302, 561, 1165,697, 1523)

Заметим, что число Z получится при сложении только некоторых чисел аi.

Впринципе решение может быть найдено полным перебором подмножеств А и проверкой, какая из ∑ аi равна числу Z. В нашем примере этот перебор состоит из 210 комбинаций, включая пустое множество.

Решение Z= 3231= 129 + 473 +909 + 561 + 1165. Z-размер рюкзака, аiвещи.

5.6.2 Метод RSA

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

В1976 году преподаватели Стэнфордского университета, Витфильд Диффи (Whitfield DifFie) и Мартин Хелман (Martin Heliman), предложили систему под названием «шифрование с применением открытого ключа». Этот метод предполагает наличие двух ключей при каждом сеансе кодирования и хорошо отрекомендовал себя даже в незащищенных сетях. Каждый пользователь создает два ключа. Каждый ключ представляет собой произвольный набор цифр объемом в некоторых случаях более чем

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

В1977 году три исследователя из Массачусетсского технологического института (MIT) разработали алгоритм для реализации метода криптографии на основе открытого ключа. Криптосистема получила название RSA, по первым буквам фамилий ее авторов — Рона Ривеста (Ron Rivest), Эйди Ша-

мира (Adi Shamir) и Леонарда Эдлемана (Leonard Adleman) (http://www.rsa.org/).

58

Исследователи в примере своей первой публикации зашифровали фразу из драмы «Юлий Цезарь» В. Шекспира «ITS ALL GREEK TO ME», она сначала была записана в виде целого числа Х стандартным способом (A=01, B=02,…..Z=26, пробел =00), затем зашифрована

Xe mod m, где m – 129-разрядное целое число, e=9007. Шифротекст и числа e и m были опубликованы.

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

Лишь в 1994 году через 17 лет фраза была расшифрована, для этого потребовалось 220 дней, были задействованы 600 человек и 1600 компьютеров, соединенных через Интернет.

Этапы реализации алгоритма RSA:

1. Получатель выбирает два очень больших простых числа P и Q и вычисляет два произве-

дения N = PxQ M = (P – 1)x(Q – 1)

2.Затем выбирается случайное число E, взаимно простое с M и вычисляется D, удовлетворяющее условию (ExD = 1) mod M

3.Получатель публикует E и N, как свой открытый ключ, сохраняя D, как секретный ключ.

4.Отправитель сообщение X представляет в виде набора блоков xi

X = (x1, x2, ……xl),

0 < xi

< M, затем шифрует его с использованием E и N.

5. Каждое xi возвести в степень

E по модулю N, получится шифрованное сообщение: (x1

E mod N), (x2 E mod

N),……. (x1 E mod N)

6. Для расшифрования полученного сообщения Получатель, используя свой секретный ключ D, вычисляет для каждого блока (xi ED mod N), т.к. (ExD = 1) mod M, то утверждается xi ED mod N = xi

Этап

 

Описание операции

Результат операции

 

 

 

 

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

 

Выбрать два простых числа

P=3557, q=2579

 

 

 

 

 

 

Вычислить модуль

n=p*q=3557*2579=9173503

 

 

 

 

 

 

Вычислить функцию Эйлера

F(n)=(p-1)(q-1)=9167368

 

 

 

 

 

 

Выбрать открытый показатель

e=3

 

 

 

 

 

 

Вычислить секретный показатель

d=6111579

 

 

 

 

 

 

Опубликовать открытый ключ

(e, n) = (3, 9173503)

 

 

 

 

 

 

Сохранить секретный ключ

(d, n) = (6111579, 9173503)

 

 

 

 

Шифрование

 

Выбрать открытый текст

M=111111

 

 

 

 

 

59

 

 

Вычислить шифротекст

С(M)=M^e mod n=1

 

 

11111^3 mod

 

 

9173503=4051753

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

Вычислить исходное сообщение

S(C)=C^d mod

 

 

n=4051753^6111579

 

 

mod 9173503 = 111111

Алгоритм RSA может быть использован:

1.Как самостоятельное средство шифрования данных в системе с открытым ключом;

2.Как средство аутентификации пользователей в системах эп;

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

5.7Электронно-цифровая подпись

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

Шифрование информации обеспечивает ее защиту;ЭП и сертификаты обеспечивают идентификацию участников операции и юридическую силу до-

кументов;

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

Открытый набор протоколов используется для обеспечения взаимодействия между разными ре-

ализациями.

Система управления криптографическими ключами в SET соответствует требованиям международного стандарта Х509.

ЭП позволяет решить следующие задачи:

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

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

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

Подделка. Субъект фабрикует сообщение и утверждает, что оно ему прислано.

Перехват. Злоумышленник С перехватывает сообщение, посланное А к В с целью модификации.

Маскировка. Посылка сообщения от чужого имени.

Повтор. Злоумышленник С посылает повторно сообщение от А к Б, перехваченное им ранее.

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

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

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

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

4.Пользователь В должен иметь возможность удостовериться, что подпись M: SIG {Ka, M, Id А} есть правильная подпись документа М пользователем А.

60

ЭЦП — «реквизит электронного документа, предназначенный для зашиты данного электронного документа от подделки, полученный в результате криптографического преобразования информации с использованием закрытого ключа ЭЦП и позволяющий идентифицировать владельца сертификата ключа подписи, а также установить отсутствие искажения информации в электронном документе» (Закон «Об электронной цифровой подписи» от 10.01.2002 г. N 01-ФЗ).

Правовые условия использования электронной цифровой подписи в электронных документах регламентирует Федеральный и определяет ЭП так:

«Электронная подпись — информация в электронной форме, которая присоединена к другой информации в электронной форме (подписываемой информации) или иным образом связана с такой информацией и которая используется для определения лица, подписывающего информацию»

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

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

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

N являются простая электронная подпись и усиленная электронная подпись. Различаются усиленная неквалифицированная электронная подпись (далее - неквалифицированная электронная подпись) и усиленная квалифицированная электронная подпись (далее - квалифицированная электронная подпись).

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

Неквалифицированной электронной подписью является электронная подпись, которая:

1)получена в результате криптографического преобразования информации с использованием ключа электронной подписи;

2)позволяет определить лицо, подписавшее электронный документ;

3)позволяет обнаружить факт внесения изменений в электронный документ после момента его подписания;

4)создается с использованием средств электронной подписи.

Квалифицированной электронной подписью является электронная подпись, которая соответствует всем признакам неквалифицированной электронной подписи и следующим дополнительным признакам:

1)ключ проверки электронной подписи указан в квалифицированном сертификате;

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

Общая схема работы с ЭП:

1)При выполнении операции вычисления ЭП в СКЗИ загружается подписанный автором текст документа. Затем вычисляется значение так называемой хэш-функиии. Эта функция отображает последовательность произвольной длины в последовательность фиксированной длины. Результат вычисления хэш-функции называется хэш-кодом, причем по хэш-коду документа восстановить его текст не

61

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

2)Затем хэш-код зашифровывается с использованием асимметричного алгоритма шифрования на секретном ключе подписывающего абонента сети (автора). Так как длина хэш-кода невелика, операция шифрования занимает не слишком много времени.

3)Результат такого шифрования и называется ЭП документа, которая передается вместе с исходным документом проверяющему абоненту.

4)Проверяющий абонент выполняет три операции:

а) вычисляет хэш-код полученного сообщения (документа); б) с использованием асимметричного алгоритма и открытого ключа расшифровывает ЭП;

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

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

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

Схема работы с ЭЦП:

5.7.1Методы сжатия преобразуемых данных на основе однонаправленных ХЭШ-функций

Хэш-функция

Хэш-функция (hash, hash-function) – это преобразование, получающее из данных произвольной длины некое значение (свертку) фиксированной длины. Простейшими примерами являются контрольные суммы (например, crc32). Бывают:

62

Криптографические хэши;

Программистские хэши.

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

m - исходные данные,

h(m) – хэш-функция от них.

Необратимость означает, что если известно число h0, то трудно подобрать m такое, что h(m) =

h0.

Свободность от коллизий означает, что трудно подобрать такие m1 и m2, что m1 не равно m2,

но h(m1) = h(m2).

Криптографические хэш-функции разделяются на два класса:

-хэш-функции без ключа (MDC (Modification (Manipulation) Detect Code) - коды),

-хэш-функции c ключом (MАC (Message Authentication Code) - коды).

Хэш-функции без ключа разделяются на два подкласса: слабые хэш-функции, сильные хэшфункции.

Слабой хэш-функцией называется односторонняя функция H(x), удовлетворяющая следующим условиям:

1.Аргумент х может быть строкой бит произвольной длины;

2.Значение h(x) должно быть строкой бит фиксированной длины;

3.Значение h(x) легко вычислить;

4.Для любого фиксированного x вычислительно невозможно найти другой x' ≠ x, такой что h(x') = h(x).

Пара x' ≠ x, когда h(x’) = h(x) называется коллизией хэш-функции.

Сильной хэш-функцией называется односторонняя функция h(x), удовлетворяющая условиям 1-4 для слабой хэш-функции и свойству 5:

5.Вычислительно невозможно найти любую пару x' ≠ x, такую, что h(x')=h(x).

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

Существует несколько алгоритмов вычисления хэш-функций

MD2 (Message Digest) – алгоритм криптографической свертки. Порождает блок длиной 128 бит от сообщения произвольной длины. Общая схема работы MD2:

a.Дополнение текста сообщений до длины, кратной 128 бит;

b.Вычисление 16-битной контрольной суммы, старшие разряды отбрасываются;

c.Добавление контрольной суммы к тексту;

d.Повторное вычисление контрольной суммы.

Алгоритм MD2 очень медленный, поэтому чаще применяются MD4, MD5, SHA (Secure Hash Algorithm). Результирующий хэш имеет длину 160 бит.

ГОСТ Р34.11-94. Российский алгоритм. Длина свертки - 256 бит (очень удобно для формирования по паролю ключа для ГОСТ 28147-89).

Национальный институт стандартов и технологий (НИСТ) США на своем веб-сайте http://www.nist.gov/sha/ опубликовал спецификации новых алгоритмов хеширования SHA-256, SHA384 и SHA-512, цель которых - обеспечить уровень криптостойкости хэша, соответствующий длинам ключей нового стандарта шифрования DES.

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

До настоящего времени наиболее популярными хеш-функциями были созданные Райвистом MD4 и MD5, генерирующие хэш-коды длиной n=128, и алгоритм SHA-1, разработанный в АНБ США и порождающий хэш-код длиной n=160.

63

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]