
- •Декодер с вылавливанием ошибок.
- •Коды Боуза-Чоудхури-Хоквингвема.
- •Алгоритм декодирования Питерсона-Горенштейна-Цирлера.
- •Коды Рида-Соломона.
- •Декодирование при помощи алгоритма Берлекемпа-Месси.
- •Декодирование с помощью алгоритма Евклида.
- •Концепция теоретической криптостойкости.
- •Классические алгоритмы шифрования.
- •Системы подстановок
- •Подстановка Цезаря
- •Многоалфавитные системы.
- •Система шифрования Вижинера
- •Аффинные системы шифрования
- •Гаммирование
- •Поточные алгоритмы шифрования.
- •Блочные алгоритмы шифрования. Основные режимы работы.
- •Алгоритмы криптографического преобразования данных стандарта des, aes, гост 28147-89.
- •Атака на алгоритмы шифрования методом «грубой силы». Атаки класса «встреча посередине».
- •Дифференциальный криптоанализ.
- •Линейный криптоанализ.
- •Ассиметричные методы криптографического преобразования данных. Алгоритм rsa.
- •Алгоритмы на базе эллиптических кривых.
- •Криптосистема Диффи-Хеллмана.
- •Криптосистема Эль-Гамаля.
- •Обеспечение целостности данных и аутентификация.
- •Распределение ключей в системах pki.
Криптосистема Диффи-Хеллмана.
Алгори́тм Ди́ффи — Хе́ллмана — алгоритм, позволяющий двум сторонам получить общий секретный ключ, используя незащищенный от прослушивания, но защищённый от подмены, канал связи. Этот ключ может быть использован для шифрования дальнейшего обмена с помощью алгоритма симметричного шифрования.
Описание алгоритмаПредположим, что обоим абонентам известны некоторые два числа g и p (например, они могут быть «зашиты» в программное обеспечение), которые не являются секретными и могут быть известны также другим заинтересованным лицам. Для того, чтобы создать неизвестный более никому секретный ключ, оба абонента генерируют большие случайные числа: первый абонент — число a, второй абонент — число b. Затем первый абонент вычисляет значение A = gamod p и пересылает его второму, а второй вычисляет B = gbmodp и передаёт первому. Предполагается, что злоумышленник может получить оба этих значения, но не модифицировать их (то есть у него нет возможности вмешаться в процесс передачи). На втором этапе первый абонент на основе имеющегося у него a и полученного по сети B вычисляет значение Bamod p = gabmod p, а второй абонент на основе имеющегося у него b и полученного по сети A вычисляет значение Abmod p = gabmod p. Как нетрудно видеть, у обоих абонентов получилось одно и то же число: K = gabmod p. Его они и могут использовать в качестве секретного ключа, поскольку здесь злоумышленник встретится с практически неразрешимой (за разумное время) проблемой вычисления gabmod p по перехваченным gamod p и gbmod p, если числа p,a,b выбраны достаточно большими.
K — итоговый общий секретный ключ
При работе алгоритма, каждая сторона:
генерирует случайное натуральное число a — закрытый ключ
совместно с удалённой стороной устанавливает открытые параметры p и g (обычно значения p и g генерируются на одной стороне и передаются другой), где
p является случайным простым числом
g является первообразным корнем по модулю p
вычисляет открытый ключ A, используя преобразование над закрытым ключом
A = ga mod p обменивается открытыми ключами с удалённой стороной
вычисляет общий секретный ключ K, используя открытый ключ удаленной стороны B и свой закрытый ключ a K = Ba mod p К получается равным с обоих сторон, потому что: Ba mod p = (gb mod p)a mod p = gab mod p = (ga mod p)b mod p = Ab mod p
В практических реализациях, для a и b используются числа порядка 10100 и p порядка 10300. Число g не обязано быть большим и обычно имеет значение в пределах первого десятка.
Криптосистема Эль-Гамаля.
Обеспечение целостности данных и аутентификация.
Термин «аутентификация» означает установление подлинности. Применительно к самой информации аутентификация означает проверку того, что данные, передаваемые по каналу связи, являются подлинными по своему источнику и содержанию, по времени создания, времени пересылки и т.д.
Целостность данных – свойство, позволяющее убедиться в том, что данные не изменялись не авторизованным способом с тех пор, как они были созданы, переданы или сохранены авторизованным источником. Под изменениями обычно понимают пропуски, вставки, замены и перестановки фрагментов сообщения.
Аутентификация источника данных – получение подтверждения того, что рассматриваемый документ был создан именно указанным соответствующим образом источником информации. Нарушение «единственности документа» подразумевает его повторную передачу или повторное использование. Если источник сообщений фиксирован, то вместо термина “аутентификация источника данных” используют термин «аутентификация сообщений».
Целостность данных и аутентификация источника данных тесно связаны друг с другом. Действительно, если данные подверглись модификации, то у них автоматически изменился источник. Если же не установлен источник, то без ссылки на него нельзя разрешить проблему целостности, В связи с этим будем считать по определению, что аутентификация источника данных включает проверку целостности данных.
Для обеспечения единственности и своевременности передачи сообщений обычно используются дополняющие аутентификацию параметры, которые вставляются в передаваемые сообщения. Это могут быть метки времени или некоторые последовательности чисел. Если метки времени позволяют установить время создания или передачи документа, то последовательность чисел гарантирует правильность порядка получения сообщений. Помимо этого для аутентификации последующих сообщений могут использоваться случайные числа, передаваемые в предыдущих сообщениях. Такой способ позволяет организовать «жесткое сцепление» идущих друг за другом сообщений.
При аутентификации источника можно использовать симметричное шифрование, добавляя предварительно к исходному сообщению некоторый секретный, известный только отправителю и получателю, идентификатор. Такой способ не гарантирует целостности получаемых данных. Шифрование может допускать возможность модификации данных при передаче. Кроме того, для его реализации требуется секретный канал для обмена подобными идентификаторами.
Для обеспечения целостности хранимых данных (М) можно добавить к ним значение криптографической хеш-функции (M, hk(M)), зависящей от ключа, известного только владельцу информации. Такой способ автоматически решает проблему аутентификации источника данных.
Для обеспечения целостности передаваемого сообщения можно использовать хеш-функцию, зависящую от секретного ключа, известного отправителю и получателю. Аутентификация источника гарантируется тем, что секретный ключ известен только двум сторонам. При этом исключается возможность разрешения споров, связанных с отказом от авторства. Поэтому аутентификация источника с помощью ключевой хеш-функции возможна только при взаимодействии доверяющих друг другу сторон.