Анимация
JavaScript


Главная  Библионтека 

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 [ 24 ] 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57

§ 2 Цифровая подпись 79

Естественным альтернативным решением для Алисы было бы послать с = Da{Eb{m)), которое позволяет дешифровать с как т = Db{Ea{c)). Однако такое решение желательно не применять, так как оно позволило бы фальсификатору (имеющему секретный ключ <), назовем его Томасом, перехватить с до того, как его получит Боб. Если бы затем Томас вычислил с - Dt{Ea(c)), то он смог бы переслать шифртекст с Бобу, сделав вид, будто это сообщение с самого начала именно от него и исходит. Тогда ничего не подозреваюпщй Боб, вычислив Db{Et{c)) = т, был бы абсолютно убежден в том, что га подписано именно Томасом (конечно, если га не начиналось словами «Меня зовут Алиса»). Суть заключается в том, что указанное решение позволяет Томасу фактически подписывать сообщение, содержание которого он сам не в состоянии прочитать. Хотя и трудно представить себе, почему Томас мог бы захотеть это сделать, все же будет лучше не предоставлять ему такой возможности вовсе.

Если RSA используется как для обеспечения секретности, так и для цифровой подписи, может быть предпочтительней, чтобы каждый пользователь хранил для двух разных целей две различные пары функций с потайным ходом. Тогда у каждого пользователя была бы одна запись в открытом справочнике шифрования, а другая - в открытом справочнике проверки подписей. Такое разделение целесообразно по двум причинам. Во-первых, оно позволяет избежать проблемы переразбиения на блоки, которая в противном случае возникает, если модуль отправителя оказывается больше модуля получателя [307]. Во-вторых, как мы уже видели (в § 4.4), криптосистема RSA является слабой относительно атаки на основе выбранного шифртекста. И такую атаку может быть труднее проводить, если процедура цифровой подписи отличается от процедуры дешифрования.

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



сообщений достаточно высока (что справедливо скорее для некоторых типов числовых данных, а не для обычных текстов), и Боб сможет выбирать случайно различные s до тех пор, пока ему не повезет настолько, что он наткнется на некоторое такое s, для которого Ea{s) будет осмысленным. По этим причинам благоразумно договориться о некотором виде нормальной формы сообщений и признавать s в качестве подписи под т, только если m = Ea[s), а т записано в этой нормальной форме. К сожалению, до сих пор неясно, какой должна быть надежная нормальная форма для RSA. Например, вставка фиксированного числа нулей является ненадежной [223, 224].

Возможность цифровой подписи предоставляет, например, криптосистема RSA. Однако ее использование обнаруживает недостатки, сходные с теми, которые она имеет как схема шифрования с открытым ключом. В частности, неизвестно, является ли ее раскрытие таким же трудным, как и разложение на множители больших целых чисел. Даже если и в самом деле трудно для выбранного открытого текста га и какого-то открытого ключа (е,п) вычислить подпись s такую, что га = mod n, то может оказаться намного проще сделать то же самое при известной, кроме этого, паре чисел (s,ra), где s - подпись законного пользователя под некоторым сообщением т, которое лишь немного отличается от т. Другими словами, может оказаться легче подделать подпись под законным сообщением после того, как станут известны истинные подписи нескольких похожих сообщений.

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



здесь [190]. Для широкого обсуждения цифровой подписи и связанных с ней проблем, а также некоторых других решений мы отсылаем к [200]. Кроме того, читайте [190, 318, 18, 72, 275].

§ 3. Идентификация пользователей

(яалясаио вместе с Клодом Крепеу и Клодом Готье)

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

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



0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 [ 24 ] 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57