Методы современной криптографии. Электронная цифровая
подпись
А.Ю.
Пыркова
Казахский
Национальный Университет имени аль-Фараби,
г.
Алматы, Казахстан
Криптографические
преобразования призваны для достижения двух целей по защите информации.
Во-первых, они обеспечивают недоступность ее для лиц, не имеющих ключа и,
во-вторых, поддерживают с требуемой надежностью обнаружение несанкционированных
искажений. По сравнению с другими методами защиты информации классическая
криптография гарантирует защиту лишь при условиях, что
использован эффективный криптографический
алгоритм;
соблюдены секретность и целостность ключа.
Некриптографические
средства не в состоянии дать такую же степень защиты информации и требуют
значительно больших затрат. Например, во что обходится подтверждение
подлинности документа? Охрана, сейфы, сигнализация, секретные пакеты,
индивидуальные печати, фирменные бланки, водяные знаки, факсимиле и личные
подписи - вот далеко не полный набор обычных средств, предназначенных для
поддержания доверия к секретности информации.
Шифрование
и расшифровывание, выполняемые криптографами, а также разработка и вскрытие
шифров криптоаналитиками составляют предмет науки криптологии (от греческих
слов криптос - тайный и логос - мысль). В этой науке преобразование шифровки в
открытый текст может быть выполнено в зависимости от того, известен или нет
ключ. Условно ее можно разделить на криптографию и криптоанализ. Криптография
связана с шифрованием и расшифровыванием конфиденциальных данных в каналах
коммуникаций. Она также применяется для того, чтобы исключить возможность
искажения информации или подтвердить ее происхождение. Криптоанализ занимается
в основном вскрытием шифровок без знания ключа и, порой, примененной системы
шифрования. Эта процедура еще называется взломом шифра. Итак, криптографы
стремятся обеспечить секретность, а криптоаналитики ее сломать. Иначе говоря,
криптография – наука о засекречивании информации, а криптоанализ – наука о
проникновении в засекреченные материалы.
Одним из примеров криптоалгоритма является стандарт шифрования данных
(DES), предложенный К. Шенноном и принятый в США в июле 1977 г. в качестве
Федерального стандарта. В этом стандарте открытый текст Х, криптограмма Y и
ключ Z – двоичные последовательности длиной М = 64, N = 64 и K = 56
соответственно. Так как M = N, то DES является подстановкой в алфавите,
содержащем 264 символов.
Современные криптографические схемы являются более стойкими к
разностному и линейному криптоанализу, чем стандарт DES /3, 5/. Однако
физическая реализация многих существующих криптоалгоритмов (как с секретными,
так и с открытыми ключами) оказалась уязвимой к атакам. Эти атаки основаны на
использовании специально подобранных шифртекстов с последующим замером времени
расшифровывания и потребленной при этом мощности. Оказывается, что мощность,
идущая на зашифровывание и расшифровывание, зависит от проводимых операций и
обрабатываемых данных.
Действующие
в настоящее время системы передачи данных в большинстве своем имеют недостаток,
который заключается в том, что они не дают возможности проверки подлинности и
авторства пересылаемых документов. С их помощью в настоящее время невозможно
заключение юридически признаваемых сделок и пересылка юридически подтверждаемых
документов, вроде платежных поручений. Это часто сводит на нет их преимущества
по сравнению с почтовой пересылкой. Как правило, все полученные через
компьютерную связь документы копируются из памяти машины на бумажный носитель,
подписываются физическими лицами и удостоверяются печатями юридических лиц.
Решение
проблемы авторства документа может быть достигнуто лишь с использованием
электронной цифровой подписи – средства, позволяющего на основе
криптографических методов надежно установить авторство и подлинность документа.
Это средство позволяет заменить при безбумажном документообороте традиционные
печать и подпись. Электронная цифровая подпись зависит от текста документа,
требующего заверения, секретного ключа, доступного только заверяющему и
несекретного общедоступного ключа. Преобразование, используемое для выработки
цифровой подписи, является криптографической функцией от указанных величин. Оно
выбирается таким образом, чтобы при отсутствии у злоумышленника секретного
ключа сделать невозможным подделку цифровой подписи, незаметное изменение
документа, а также дать возможность любому лицу при наличии у него
общедоступного ключа, документа и цифровой подписи удостовериться в подлинности
документа и соответствующей цифровой подписи. Только секретный ключ гарантирует
невозможность подделки злоумышленником документа и цифровой подписи от имени
заверяющего. Каждый пользователь системы цифровой подписи должен обеспечивать
сохранение в тайне своего секретного ключа. Общедоступный несекретный ключ
используется для проверки подлинности документа и цифровой подписи, а также
предупреждения мошенничества со стороны заверяющего в виде отказа его от
подписи документа.
Цифровая
подпись не имеет ничего общего с последовательностью символов, соответствующих
изображениям печати или подписи, приписанной к документу. Если бы это было так,
то, перехватив один раз эту последовательность, злоумышленник мог бы впредь
приписывать ее к произвольному документу от чужого имени. При построении
цифровой подписи вместо обычной связи между печатью или рукописной подписью и
листом бумаги выступает сложная математическая зависимость между документом,
секретным и общедоступным ключами, а также цифровой подписью. Невозможность
подделки электронной подписи опирается не на отсутствие специалиста, который
может повторить рукописную подпись и обычную печать, а на большой объем
необходимых математических вычислений.
Другое
приложение цифровая подпись находит при снабжении абонентов криптографической
информационной сети ключами. Простейший способ выделить группу пользователей
сети – снабдить их общим секретным ключом. Недостатком такого подхода является
то, что компрометация пароля у одного из членов группы ведет к краху всей
системы подтверждения подлинности. Простейший вариант усиления системы –
снабжение пользователей индивидуальными секретными паролями. Однако при таком
варианте возникает проблема надежного хранения большого количества секретных
паролей, а это приемлемо лишь для крупных абонентских пунктов. К тому же
пользователи не могут непосредственно представляться друг другу, минуя центр.
Чтобы обеспечить возможность непосредственного представления пользователей друг
другу, процедура проверки пароля должна быть общедоступной. В то же время
алгоритм должен быть устроен так, чтобы подделать пароль на основании известной
процедуры проверки было невозможно. Для использования цифровых подписей при
обмене ключами требуется общедоступный каталог секретной сети, где хранятся
процедуры проверки подписи всех абонентов. Для системы RSA этот каталог
содержит имена-идентификаторы абонентов ID с парой чисел (N, D). Для системы
ЭльГамаля /1, 2, 7/ в каталоге против каждого имени ID записываются простое
число Р и целые числа N и Y. Подлинность каталога с подписями может быть
обеспечена путем подписывания каждой записи в каталоге или всего каталога сразу
центром и выдачей в таком виде их абоненту. При установлении связи абоненты
обмениваются этими подписанными сообщениями и на этом основании проверяют полномочия
друг друга: просят партнера подписать случайное сообщение. Для системы
ЭльГамаля общий объем ключевой информации в сети может быть сокращен за счет
использования всеми одних и тех же чисел Р и N. Для системы RSA общим можно
сделать только число N, а числа D должны быть у всех различными.
Из-за
перестановочности операции умножения в алгоритме RSA не имеет значения, будет
ли опубликовано D или Е, для него функции шифрования и расшифровывания
одинаковы. Это позволяет реализовать процедуру получения цифровой подписи
сменой Е и D. Если отправитель хочет, чтобы получатели его сообщений могли
удостовериться, что эти сообщения действительно исходят от него, то он посылает
шифровку S' вместе с подписью R.
Для
разрешения споров между отправителем и получателем информации, связанных с
возможностью искажения ключа проверки подписи [S', R], достоверная копия этого
ключа выдается третьей стороне арбитру и применяется им при возникновении
конфликта. Каждый может расшифровать сообщение S', но так как ключ Е известен
только отправителю, то никто другой кроме него не мог бы послать шифрованное
сообщение или подтвердить подпись.
Для
того чтобы обеспечить подобную процедуру подтверждения подлинности отправителя
сообщения, ЭльГамаль предложил следующий простой протокол:
1.
Отправитель А и получатель В знают Р и случайное число N из интервала (1, Р). А
генерирует случайные числа Х и Y из того же интервала. Х нужно хранить в
секрете, а Y должно быть взаимно простым с Р-1.
2.
Далее А вычисляет Q=N**X MOD Р и R=N**Y MOD Р, решает относительно S уравнение
T=X*R+Y*S MOD (Р-1) и передает В документ с подписью [Q, R, S, Т].
3.
Получатель проверяет подпись, контролируя тождество А**S =(В**R)*R**T MOD Р.
В
этой системе секретным ключом для подписывания сообщений является число X, а
открытым ключом для проверки достоверности подписи число Q.
Особенностью
этих протоколов, как нетрудно видеть, является наличие у абонента секретного
ключа, служащего цифровой подписью идентификатора, который не позволяет
абоненту самому сменить свой идентификатор или выработать подпись для другого
идентификатора, а также то, что он предъявляет контролеру не сам секретный
элемент, а некоторое значение функции, вычисляемое с помощью секретного ключа
из случайного запроса, тем самым доказывая, что обладает секретом, путем его
косвенной демонстрации при вычислениях. Именно отсюда происходит
рассматриваемое ниже название «доказательство при нулевом знании», то есть
абонент доказывает, что обладает секретом, не раскрывая самого секрета. Как
вырожденный случай алгоритма цифровой подписи можно рассматривать шифрование и
расшифровывание передаваемой информации на общем секретном ключе абонентов,
изготовленном и распространенном заранее, как это применяется в классических
криптографических системах.
Список
литературы
1. Шнайер Б. Прикладная криптография. – СПб: Питер, 2005.
2. Фомичев В.М. Дискретная математика и криптология. – М.: диалог-МИФИ, 2003.
3. Тилберг К.Х.А. Основы криптологии. Профессиональное руководство. –
М.: Мир, 2007.
4. Нечаев В.И. Элементы криптографии. Основы теории защиты информации.
М.: Высшая школа, 1999.
5. Петраков А.В. Основы практической защиты информации. – М.: Мир,
1999.
6. Казарин О.В. Теория и практика защиты программ. – М.: Высшая школа,
2000.
7. Петров А.А. Компьютерная безопасность. Криптографические методы
защиты. – Спб.: Питер, 2000.