Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
all of DiskretMat.rtf
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
60.29 Mб
Скачать

6.10. Электронная подпись.

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

Пусть передается текст (число) x, который после преобразования превра­тился в "подпись" z = xd. Получатель этой подписи имеет вторую часть клю­ча, т. е. е; он выполняет прямое преобразование и, так как , получает исходный текст.

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

Основной недостаток систем шифрования с открытым ключом — низкая скорость. Самая "быстрая" реализация алгоритма RSA в тысячи раз медлен­нее любого стандартного алгоритма симметричного шифрования. Поэтому для шифрования длинных сообщений, а также в системах реального времени пред­почитают использовать симметричное шифрование. На практике же использу­ются оба типа алгоритмов, скомбинированные так, чтобы нейтрализовать их недостатки. Такая схема называется цифровым конвертом (Digital Envelope).

Ее основная идея состоит в следующем:

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

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

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

4. Зашифрованное сообщение и цифровой конверт посылаются по нужно­му адресу.

Получатель сначала дешифрует цифровой конверт с помощью своего сек­ретного ключа. Затем с помощью ключа сессии он дешифрует само сообщение.

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

Алгоритмы-дайджесты в некотором роде похожи на алгоритмы шифрования тем, что тоже получают на входе обыкновенное "читаемое" сообщение и на выходе дают некоторый "нечитаемый" набор байтов: короткие (фиксированной длины) дайджест-сообщения (также называемые хешами (hash)) обычно на­много короче исходного сообщения. Их дешифрование не предусматривается.

Дайджесты выступают в роли своеобразных "контрольных сумм" сообще­ния, поскольку если в исходном сообщении изменить хотя бы один бит, то дайджест измененной информации будет отличаться от исходного дайджеста. Они используются при передаче информации в качестве индикатора правиль­ности принятой информации. Например, в стандарте цифровой подписи DSS (Digital Signature Standard) используется следующий механизм:

1. Получают дайджест исходного сообщения.

2. Зашифровывают дайджест с помощью секретного ключа ("подписыва­ют" дайджест).

3. Посылают "подписанный" дайджест и исходное сообщение получателю.

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

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

На рис. 34 показано, как генерируется цифровая подпись.

Рис. 34.

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

Рис. 35.

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