Курс лекций для студентов специальности 050501 Профессиональное обучение (по отраслям) специализация Программное обеспечение вт и ас

Вид материалаКурс лекций

Содержание


5.5 Алгоритмы поточного шифрования.
Шифр Вернама
Синхронные поточные шифры
Комбинированные шифры
5.6 Ассиметричные или двухлючевые криптографические системы
5.6.1 Системы с открытым ключом
Важное свойство
Метод возведения в степень (метод Эль-Гамаля)
Метод укладки рюкзака
5.6.2 Метод RSA
5.7 Электронно-цифровая подпись
Методы сжатия преобразуемых данных на основе однонаправленных ХЭШ-функциях
Работа с ЭЦП по алгоритму ГОСТ Р 34.10-2001
5.8 Составные криптографические системы
5.9 Управление ключами
5.9.1 Генерация ключей
5.9.2 Накопление ключей
5.9.3 Распределение ключей
5.9.4 Распределение ключей в асимметричных криптосистемах
Надежность криптосистем
...
Полное содержание
Подобный материал:
1   ...   4   5   6   7   8   9   10   11   ...   19

5.5 Алгоритмы поточного шифрования.


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

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

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

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

Шифр Вернама


ключевая послед
ГКП
ключевая послед




шифротекст

откр тек откр тек


Рисунок 5.9 схема шифра Вернама


В шифре Вернама длина ключевой последовательности равна длине открытого текста. Недостаток – неудобно хранить сверхдлинные ключевые последовательности.


Синхронные поточные шифры

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

В общем случае:

Yi=Xi E Fi (k) – шифрование,

Yi=Xi D Fi (k) – расшифрование, где

E – функция шифрования;

D – функция расшифрования;

Xi – двоичный символ открытого текста;

Yi – двоичный символ зашифрованного текста

Fi(k) – i-ый символ ПСП , выработанные генератором с функцией обратной связи F и начальным состоянием k.

Классификация синхронных поточных шифров:

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

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

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


откр текст шифротекст




секр кл k секр кл k

Yi-1


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


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

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


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

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

Примеры поточных шифраторов: 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 ))

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

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

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



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

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

Методы аналитических преобразований





Умножение простых чисел (RSA)


Задача об укладке рюкзака

(метод Меркле-Холлмана)


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


Кодовые конструкции




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

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

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

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

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

Особенность этих методов заключается в том, что функции шифрования и расшифрования являются обратимыми только тогда, когда они обеспечиваются строго определенной парой ключей. При этом открытый ключ определяет конкретную реализацию функции «ловушки», а секретный ключ дает информацию о «ловушке». Любой знающий «ловушку» легко вычисляет одностороннюю функцию 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) (ссылка скрыта).

Исследователи в примере своей первой публикации зашифровали фразу из драмы «Юлий Цезарь» В. Шекспира «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


Алгоритм RSA может быть использован :
  1. как самостоятельное средство шифрования данных в системе с открытым ключом;
  2. как средство аутентификации пользователей в системах ЭЦП;
  3. как средство для распределения ключей в составных системах.



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


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

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

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

Сейчас передаются данные об акциях, облигациях, приказы, сигналы по сети. Участники передачи нуждаются в защите от множества злоумышленных действий, к которым относятся:
  1. Отказ: отправитель в последствии отказывается от того, что отправил сообщение
  2. Фальсификация: получатель подделывает сообщение.
  3. Маскировка: пользователь А – отправитель маскируется под другого (под директора).
  4. Аутентификация.

Для аутентификации (подтверждения) сообщения М, отправленного пользователем А пользователю В необходимо:
  1. Отправитель А должен ввести в М подпись, в которой содержится дополнительная информация, зависящая от М, от получателя сообщения и от известного только пользователю А закрытого ключа Ка.
  2. Необходимо, чтобы правильную подпись в сообщении для пользователя В нельзя было составить без Ка.
  3. Для предупреждения повторного использования устаревших сообщений процедура составления подписи должна зависеть от времени.
  4. Пользователь В должен иметь возможность удостовериться, что подпись M: SIG{Ka, M, Id B} есть правильная подпись документа М пользователем А.


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

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

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

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

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

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

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

а) вычисляет хэш-код полученного сообщения (документа);

б) с использованием асимметричного алгоритма и открытого ключа расшифровывает ЭЦП;

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

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

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

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


Хэш-функция

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

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

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

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

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:
    1. дополнение текста сообщений до длины, кратной 128 бит;
    2. вычисление 16-битной контрольной суммы, старшие разряды отбрасываются;
    3. добавление контрольной суммы к тексту;
    4. повторное вычисление контрольной суммы.

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

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

Национальный институт стандартов и технологий (НИСТ) США на своем веб-сайте ссылка скрыта опубликовал спецификации новых алгоритмов хеширования SHA-256, SHA-384 и SHA-512, цель которых - обеспечить уровень криптостойкости хеша, соответствующий длинам ключей нового стандарта шифрования AES.

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

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


ГОСТ Р34.10-94 «Процедуры выработки и проверки электронной цифровой подписи на базе асимметричного криптографического алгоритма».

01.06. 2002 года вступил в силу новый стандарт ЭЦП - ГОСТ Р 34.10-2001, разработанный специалистами ФАПСИ.
      1. Работа с ЭЦП по алгоритму ГОСТ Р 34.10-2001


Действия по работе с ЭЦП можно разделить на 4 этапа:
  1. Подготовка к выработке ЭЦП.
  2. Генерация ключей.
  3. Вычисление ЭЦП.
  4. Проверка ЭЦП.

На I этапе выбираются числа p, q и a. Число р – простое, должно находиться в 2509
Число q – простое, является делителем числа p-1.

Число a – не обязательно простое, 1
Числа p,q и a выбираются не часто, используется какое то время.

На II этапе генерируются ключи. Х- генерируется как случайное число 0
На этапе III вычисление ЭЦП по ГОСТ Р 34.10-2001– процедура выработки ЭЦП:
  1. Вычислить Н(М) - хэш-функция. Если Н(Х) mod q=0, то Н(М)=1
  2. Выработать случайное число К , 0
  3. Вычислить r=ak mod p, r1=r mod q. Если r1=0, то переход к пункту 2.
  4. С использованием секретного ключа вычисляется значение подписи

S=(X*R1+K*H(M)) mod q. Если S=0, то перейти к пункту 2.
  1. Подписью сообщения М будет являться вектор R1/S , каждая из составляющих размером 256 бит.

На IV этапе происходит процедура проверки подписи на стороне получателя. Получатель получает сообщение М1 и подпись R1/S. У получателя есть ключ Y, вычисляемый по формуле (открытый ключ).
  1. Проверяется, что элементы подписи удовлетворяют условиям 0
  2. Вычисление хэш-функции H(M1) полученного сообщения. Если H(M1) mod q=0 то H(M1)=1.
  3. Вычисление значения V=H(M)(Q-2) mod q
  4. Вычисление значений Z1=(S*V) mod q , Z2=(q-r1)*V mod q.
  5. Вычисление значения U=((az1 *yz2) mod p) mod q.
  6. Проверить условие r1=u. Если оно выполняется, то получатель принимает решение о том, что подпись действительна, целостность сообщения не нарушена. Иначе подпись не действительна.



5.8 Составные криптографические системы


В стандартных криптографических системах, таких, как US Federal Data Encryption Standart (DES), один и тот же ключ используется и для шифрования, и для расшифровки. Это значит, что ключ должен первоначально быть передан через секретные каналы так, чтобы обе стороны могли иметь его до того, как шифрованные сообщения будут посылаться по обычным каналам. Это может быть неудобно. Если вы имеете секретный канал для обмена ключами, тогда вообще зачем вам нужна криптография?

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

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

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

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

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

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

На ключи также внутренне ссылаются "идентификаторы ключей", которые являются "сокращением" общего ключа (самые младшие 64 бита большого общего ключа). Когда этот идентификатор ключа отображается, то показываются лишь младшие 24 бита для краткости. Если несколько ключей могут одновременно использовать один и тот же идентификатор пользователя, то никакие два ключа не могут использовать один и тот же идентификатор ключа.

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

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

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

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


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

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

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

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

Билль Сената США N 266, заключал в себе некоторые интересные мероприятия. Если бы эта резолюция стала законом, это вынудило бы изготовителей оборудования для секретной связи вставлять специальные «люки» в их изделия, так что правительство могло бы читать шифрованные сообщения кого угодно. Читаем: "Конгресс считает, что поставщики электронных услуг связи и изготовители сервисного оборудования для электронной связи будут обеспечивать, чтобы системы связи разрешали правительству получать простое текстовое содержимое разговора, данных, и других видов связи, соответственно санкционированных законом». Эта мера была отвергнута после решительного гражданского протеста и протеста групп представителей промышленности. Но правительство тогда представило другое законодательство, чтобы достичь подобных целей.

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

PGP позволяет людям взять секретность в собственные руки. Сейчас налицо возрастающая социальная потребность этого. Поэтому и написана PGP.

Pretty Good(tm) Privacy (PGP) выпущено фирмой Phil's Pretty Good Software и является криптографической системой с высокой степенью секретности для операционных систем MS-DOS, Unix, VAX/VMS и других. PGP позволяет пользователям обмениваться файлами или сообщениями с использованием функций секретности, установлением подлинности, и высокой степенью удобства. Секретность означает, что прочесть сообщение сможет только тот, кому оно адресовано. Установление подлинности позволяет установить, что сообщение, полученное от какого-либо человека, было послано именно им. Нет необходимости использовать специальные секретные каналы связи, что делает PGP простым в использовании программным обеспечением. Это связано с тем, что PGP базируется на мощной новой технологии, которая называется шифрованием с "общим ключом".

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

Программный продукт, придуманный в 1991 году Филиппом Циммерманом. Главное назначение – защита файлов и сообщений от несанкционированного доступа на ПК

В то время в США действовал запрет на экспорт криптографических алгоритмов.

В 1993 году АНБ пыталось провести проект «Clipper», по которому организации должны будут сдавать на депонирование государству ключи шифрования. В итоге программа PGP явилась протестом

В 1996г. создана компания Pretty Good(tm) Privacy Inc.

Ко Кс


Асимметтричное шифрование



Сеансовый ключ

Сеанс кл

Сеансовый ключ
Z К




К К



Открытый текст

Открытый текст
Р метричное. С=Ек(Р) Р


Рисунок 5.12 Схема составной криптосистемы PGP


К основным достоинствам данного пакета можно отнести:
  1. Открытость. Исходный код всех версий программ PGP доступен в открытом виде. Так как сам способ реализации известных алгоритмов был доступен специалистам, то открытость повлекла за собой и другое преимущество – эффективность программного кода.
  2. Стойкость. Для реализации основных функций использовались лучшие из известных алгоритмов, при этом допуская использование достаточно большой длины ключа для надежной защиты данных.
  3. Бесплатность. Готовые базовые продукты PGP доступны в Интернете (www.pgpi.org).
  4. Поддержка как централизованной (через серверы ключей) так и децентрализованной (через «сеть доверия») модели распределения открытых ключей
  5. Удобство программного интерфейса.


Система PGP выполняет следующие функции:
  1. генерацию пары ключей;
  2. управление ключами;
  3. шифрование файла с помощью открытого ключа любого пользователя PGP(в том числе и своего);
  4. наложение цифровой подписи с помощью своего закрытого ключа на файл (аутентификация файла) или на открытый ключ другого пользователя (сертификация ключа);
  5. проверку (верификацию) своей подписи или подписи другого пользователя с помощью его открытого ключа;
  6. расшифровку файла с помощью своего закрытого ключа.

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

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

5.9 Управление ключами


Под ключевой информацией понимается совокупность всех действующих в ИС ключей.

Управление ключами – это информационный процесс, включающий 3 элемента:
  • генерацию ключей;
  • накопление ключей;
  • распределение ключей.

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


Известно, что не стоит использовать неслучайные ключи. В серьезных ИС используют специальные программные и аппаратные методы генерации случайных ключей. Как правило, используется датчики случайных и псевдослучайных чисел. Степень случайности должна быть высокой. Идеальными генераторами являются устройства на основе натуральных случайных процессов. Физический датчик случайных чисел встроен в ядро процессора Pentium 3.

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

5.9.2 Накопление ключей


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

Ключ, зашифровывающий ключевую информацию, называется мастер- ключом.

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

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

5.9.3 Распределение ключей


Распределение ключей – самый ответственный процесс в управлении ключами. К нему предъявляются два требования:
  • Оперативность и точность распределения.
  • Скрытность распределения ключей.

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

Распределение ключей в симметричных криптосистемах может проходить следующими способами:
  1. можно через курьера доставить ключ, но так как ключи должны обновляться, то доставлять дорого и неэффективно
  2. получение двумя пользователя общего ключа от центрального органа (Центр Распределении Ключей – ЦРК). Передаваемый ключ шифруется ключом ЦРК. Недостаток: в ЦРК может появиться злоумышленник. Можно, чтобы в виде дерева организовать хранение ключей в ЦРК.
  3. Третий способ предложили ученые Диффи и Хеллман – протокол обмена ключами по открытому каналу.Протокол – это последовательность шагов, которые принимают 2 или большее число сторон для совместного решения задачи. Все шаги следуют в порядке очередности.

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

Протокол обмена ключами по открытому каналу Диффи-Хеллмана.

Цель: двум пользователям А и В получить общий секретный ключ.
  1. Пользователь А генерирует случайное число Х.
  2. Пользователь В генерирует случайное число У.
  3. А вычисляет: La=ax mod m
  4. B вычисляет: Lb=by mod m
  5. A посылает пользователю В La.
  6. В посылает пользователю А Lb.
  7. A вычисляет Kab =(Lb)x mod m=(ay mod m)x mod m=axy mod m.
  8. B вычисляет Kab =(La)y mod m=(ax mod m)y mod m=axy mod m.

Таким образом оба пользоваля теперь имеют одинаковый секретный ключ Kab.

5.9.4 Распределение ключей в асимметричных криптосистемах



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

Во всех случаях обмена ключами должна быть обеспечена подлинность сеанса связи, которая обеспечивается с помощью:
  1. механизма «запрос-ответ» (процедура «рукопожатие» = установка виртуального канала);
  2. механизма отметки времени.

Задача распределения ключей сводится к построению протокола распределения, обеспечивающего:
  1. Взаимное подтверждение подлинности участников сеанса.
  2. Подтверждение достоверности сеанса механизмом «запрос-ответ» или отметки времени.
  3. Использование минимального числа сообщений при обмене ключами.
  4. Возможность исключения злоупотребления со стороны ЦРК (вплоть до отказа от его услуг).

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

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

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

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

Например: сертификат открытого ключа для пользователя А , обозначаемый СА, содержит отметку времени Т , идентификатор IdA , открытый ключ KA, зашифрованный секретным ключом ЦРК Кцрк :

СА = Е Кцрк (Т, IdA, KA )


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

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

Центр сертификации создает сертификаты пользователей путем ЭЦП с использованием своего секретного ключа и подписывает набор следующих данных:
  1. Полное имя пользователя (номер, пароль).
  2. Открытый ключ пользователя.
  3. Время действия сертификата.
  4. Конкретные операции, для которых этот ключ может быть использован (идентификация, шифрование или и то и другое).



Схема обмена

А В

1. вот мой открытый ключ KA


2.

проверка

3.

Ты действительно А

Получай мой сертификат СА

4.

Я А, вот мой открытый ключ и сертификат СА

5.

Этот сертификат СА действительно принадлежит А?


6. Да , это так


Отлично я его буду использовать KA 7.


Рисунок 5.13 Схема сертификации.


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

Функции центра сертификации:
  1. Поддержка принятия: доступ к ключу имеет только сертифицированный пользователь и в случае утраты генерируется новый ключ.
  2. Сохранение и восстановление ключей (при потере).

ЦС поддерживает 2 вида пар ключей: для шифрования и расшифрования; для ЭЦП и ее удостоверения.
  1. Функция обновления ключей и управление архивом.
  2. Хранение и распределение сертификатов.
  3. Взаимная сертификация для электронной коммерции.
  4. Сертификация центров на более низких уровнях иерархии.

5.10 Стеганография


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

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

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

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

Намного лучше справляются с этой задачей пакеты коммерческих про­грамм. С применением предлагаемых ими методов переданные вами зашиф­рованные сообщения вряд ли кто-нибудь раскроет. В странах, где шифрова­ние запрещено, стеганография может быть единственным средством избежать преследования. Передача изображений по Интернет — дело вполне обычное, а проверка их на предмет зашифрованной и скрытой информации представля­ется довольно проблематичной, если вообще возможной. Стеганография бывает полезна, когда необходимо не просто передать секретное сообщение, а секретно передать секретное сообщение, то есть скрыть сам факт передачи секретного сообщения. Такой способ ведения тайной коммуникации, однако, имеет ряд недостатков:
  1. во-первых, трудно обосновать его стойкость - вдруг злоумышленникам известен способ «подмешивания» секретных данных к «болванке» - массиву открытых данных;
  2. во-вторых, при его использовании объем передаваемых или хранимых данных резко увеличивается, что отрицательно сказывается на производительности систем их обработки.

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

    1. Надежность криптосистем


Стойкость криптосистемы зависит от:
  • длины ключа
  • объема ключевого пространства

Надежность криптосистем можно сравнить с цепью. Прочность цепи зависит от самого слабого звена. звенья криптосистемы:
  1. алгоритм;
  2. протокол;
  3. ключи.




кто атакует

бюджет

сложность атаки

стойкий ключ

40 бит

56 бит

хакер

$1000

1 нед.

никогда

45 бит

малый бизнес

$10000

12 мин.

556 дней

64 бит

крупная компания

$10 млн.

0,005 сек.

6 мин.

70 бит

федеральное агентство

$300 млн.

0,0002 сек.

12 сек.

75 бит


Задача: Как выбрать надежный криптоалгоритм?

Способы:
  1. Воспользоваться надежным известным алгоритмом, если нет информации о его раскрытии.
  2. Довериться специализированной сертифицированной фирме.
  3. Обратиться к независимому эксперту.
  4. Обратиться за поддержкой в соответствующее правительственное ведомство.
  5. Создать собственный криптографический алгоритм.

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

Преобладание аппаратного шифрования обусловлено:
  1. более высокой скоростью;
  2. аппаратуру легче защитить физически от проникновения извне. Аппаратура помещается в специальные контейнеры, которые могут покрываться химическим составом. И в результате любая попытка преодолеть защитный слой приводит к уничтожению внутренней логической схемы чипа.
  3. аппаратура шифрования более проста в установке (телефон, модем).

Преимущества программного шифрования:
  • любой алгоритм легко копируется (на другой ПК);
  • алгоритм прост в использовании;
  • его не трудно модифицировать.


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


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

Шифрование файлов


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


Если после шифрования файл удастся сжать, то алгоритм шифрования не очень хорош.