

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

цифровая подпись
Если Алиса посылает Бобу сообщение, подписанное своей электронной подписью, то Боб при его получении не только сам сможет убедиться в том, что это сообщение подписано ни кем иным, как его составителем (т.е. Алисой), но и будет также способен доказать в суде, что именно Алиса, и никто иной, подписала это сообщение. Понятие цифровой подписи было введено Уитфилдом Диффи и Мартином Хеллманом. Цифровая подпись и электронная почта сулят значительные преимущества, которые даже в принципе неосуществимы в традиционном бумажном документообороте. Они, например, делают возможной не только электронную почту с удостоверением о получении сообщений, но и электронное заключение контрактов.
Хотелось бы пояснить, почему схема аутентификации не обеспечивает цифровой подписи. Для этого заметим, что если Алиса аутентифицирует сообщение для Боба, то Бобу было бы столь же легко получить соответствующую метку и самому. Следовательно, единственной причиной для Боба быть уверенным в том, что такое вычисление было выполнено Алисой, является то, что Боб знает, что он сам этого не делал. Разумеется, что это не должно быть столь же очевидно и судье.
Криптосхема с открытым ключом позволяет обеспечить возможностъ цифровой подписи, если для каждого ключа к £ K, Мк = Ск и если Ek(Dk(m)) = m для каждого сообщения m £ Мк (второе условие является следствием первого, если Мк конечное множество). Для осуществления цифровой подписи такая схема используется следующим образом. Пусть а — некоторый секретный ключ Алисы и пусть Еа и Da — ее функции шифрования и, соответственно, дешифрования. Тогда, если криптосистема является секретной, то только Алиса сможет вычислить Da эффективно, хотя при этом каждый знает, как вычислять Еа.
Рассмотрим далее некоторый открытый текст т и положим s = Da(m). Очевидно, что любой пользователь криптосистемы может эффективно вычислить Ea(s) и выяснить, что ее значением является т. Однако только Алиса обладает теми знаниями, которые необходимы, чтобы получить такое s, что Ea(s) — га. В этом смысле s может рассматриваться как подпись самой Алисы под сообщением т. Если Боб покажет s судье, и если Ea(s) = Я должна Бобу тысячу долларов, судья вынужден будет согласиться, что никто другой, кроме Алисы, не мог подписать этого утверждения. Другими словами, секретный алгоритм дешифрования Dk может рассматриваться в этом случае как алгоритм, осуществляющий цифровую подпись, а открытый алгоритм шифрования Ек — как соответствующий алгоритм подтверждения этой подписи.
В криптосистемах с открытым ключом цифровая подпись может использоваться совместно с шифрованием, если требуется также соблюдать и секретность. Предположим, что b— секретный ключ Боба. Тогда, если Алиса захочет послать Бобу подписанное секретное сообщение т, то она использует свой секретный алгоритм подписи Da и его открытый алгоритм шифрования Еb, чтобы получить с = Eb(Da(m)). Если Алиса пошлет сообщение с Бобу по несекретному каналу, то тот сможет вычислить подпись Алисы под этим сообщением как s = Db(с), а затем восстановить его в открытом виде как m = Ea(s). При этом предполагается, конечно, что в заголовке сообщения явно говорится, что оно исходит от Алисы, так что Боб знает, чей алгоритм подтверждения подписи применять для того, чтобы получить открытый текст. Более того, если Боб сохранит s, то, как мы уже объясняли ранее, он сможет доказать судье, что именно Алиса, и никто другой, послала ему сообщение m.
Естественным альтернативным решением для Алисы было бы послать с = Da(Eb(m)), которое позволяет дешифровать с как m= Db(Ea(c)). Однако такое решение желательно не применять, так как оно позволило бы фальсификатору (имеющему секретный ключ t), назовем его Томасом, перехватить с до того, как его получит Боб. Если бы затем Томас вычислил с=Dt(Ea(c)), то он смог бы переслать шифртекст с Бобу, сделав вид, будто это сообщение с самого начала именно от него и исходит. Тогда ничего не подозревающий Боб, вычислив Db(Et(c)) = m, был бы абсолютно убежден в том, что m подписано именно Томасом (конечно, если m не начиналось словами «Меня зовут Алиса»). Суть заключается в том, что указанное решение позволяет Томасу фактически подписывать сообщение, содержание которого он сам не в состоянии прочитать. Хотя и трудно представить себе, почему Томас мог бы захотеть это сделать, все же будет лучше не предоставлять ему такой возможности вовсе.
Если RSA используется как для обеспечения секретности, так и для цифровой подписи, может быть предпочтительней, чтобы каждый пользователь хранил для двух разных целей две различные пары функций с потайным ходом. Тогда у каждого пользователя была бы одна запись в открытом справочнике шифрования, а другая — в открытом справочнике проверки подписей. Такое разделение целесообразно по двум причинам. Во-первых, оно позволяет избежать проблемы переразбиения на блоки, которая в противном случае возникает, если модуль отправителя оказывается больше модуля получателя [307]. Во-вторых криптосистема RSA является слабой относительно атаки на основе выбранного шифртекста. И такую атаку может быть труднее проводить, если процедура цифровой подписи отличается от процедуры дешифрования.
Необходимо проявлять некоторую осторожность в утверждении, что сам факт того, что Боб знает s такое, что Ea(s) = m, должен непременно рассматриваться как то, что т должно было быть подписано именно Алисой. В конце концов, Боб мог бы выбрать некоторое случайное s, вычислить m= Ea(s), которое почти наверняка не имеет вообще никакого смысла, и затем, демонстрируя его, уверять, что Алиса, должно быть, сошла с ума, подписав такую бессмыслицу, как m. Подобное утверждение особенно неправомерно тогда, когда плотность осмысленных сообщений достаточно высока (что справедливо скорее для некоторых типов числовых данных, а не для обычных текстов), и Боб сможет выбирать случайно различные s до тех пор, пока ему не повезет настолько, что он наткнется на некоторое такое s, для которого Ea(s) будет осмысленным. По этим причинам благоразумно договориться о некотором виде нормальной формы сообщений и признавать s в качестве подписи под m, только если m= Ea(s), a m записано в этой нормальной форме. К сожалению, до сих пор неясно, какой должна быть надежная нормальная форма для USA. Например, вставка фиксированного числа нулей является ненадежной.
Возможность цифровой подписи предоставляет, например, криптосистема RSA. Однако ее использование обнаруживает недостатки, сходные с теми, которые она имеет как схема шифрования с открытым ключом. В частности, неизвестно, является ли ее раскрытие таким же трудным, как и разложение на множители больших целых чисел. Даже если и в самом деле трудно для выбранного открытого текста га и какого-то открытого ключа (e,n) вычислить подпись s такую, что m= s в степени e mod n, то может оказаться намного проще сделать то же самое при известной, кроме этого, паре чисел (s,m), где s — подпись законного пользователя под некоторым сообщением m, которое лишь немного отличается от m. Другими словами, может оказаться легче подделать подпись под законным сообщением после того, как станут известны истинные подписи нескольких похожих сообщений.
Предыдущий абзац подсказывает, что для того, чтобы разрабатывать схемы для цифровой подписи, можно было бы попробовать применить вероятностное шифрование, а не криптографию с открытым ключом. Однако такая надежда оказывается необоснованной: схема вероятностного шифрования Блюма-Гольдвассер столь же бесполезна для обеспечения цифровой подписи, сколь бесполезен для аутентификации одноразовый шифр. К счастью, были разработаны более сильные криптосхемы цифровой подписи с доказательством (в предположении, что факторизация целых чисел является трудновычислимой проблемой) того, что они выдержат атаку даже на основе выбранных сообщений. Правда эти схемы довольно сложны и поэтому мы не будем описывать их здесь.


Дополнительные параметры ...

Рубрики
Облако тегов
Блог RSS
Комментарии RSS

Void (Default)
Life
Earth
Wind
Water
Fire
Lightweight