Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Как читать эту книгу 4 страница



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

(1) Алиса и Боб согласовывают криптосистему с открытыми ключами.

(2) Боб посылает Алисе свой открытый ключ.

(3) Алиса шифрует свое сообщение и отправляет его Бобу.

(4) Боб расшифровывает сообщение Алисы с помощью своего закрытого ключа.

Обратите внимание, что криптография с открытыми ключами устраняет проблему распределения ключей, присущую симметричным криптосистемам. Раньше Алиса и Боб должны были тайно договориться о ключе. Алиса могла выбрать любой ключ, но ей нужно было передать его Бобу. Она могла сделать это заранее, но это требует от нее определенной предусмотрительности. Она могла бы послать ключ с секретным курьером, но для этого нужно время. Криптография с открытыми ключами все упрощает. Алиса может отправить Бобу секретное сообщение без каких-либо предварительных действий. У Евы, подслушивающей абсолютно все, есть открытый ключ Боба и сообщение, зашифрованное этим ключом, но она не сможет получить ни закрытый ключ Боба, ни текст сообщения.

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

(1) Алиса извлекает открытый ключ Боба из базы данных.

(2) Алиса шифрует свое сообщение с помощью открытого ключа Боба и посылает его Бобу.

(3) Боб расшифровывает сообщение Алисы с помощью своего закрытого ключа.

В первом протоколе Боб должен был послать Алисе ее открытый ключ прежде, чем она могла отправить ему сообщение. Второй протокол больше похож на обычную почту. Боб не участвует в протоколе до тех пор, пока он не начнет читать сообщение.

Смешанные криптосистемы

Первые алгоритмы с открытым ключом стали известны в то же время, когда проходило DES обсуждение как предполагаемого стандарта. Это привело к известной партизанщине в криптографическом сообществе. Как это описывал Диффи [494]:

Прекрасные криптосистемы с открытым ключом, обсуждаемые в популярной и научной печати, тем не менее, не нашли соответствующего отклика среди криптографических чиновников. В том же году, когда была открыта криптография с открытыми ключами, Агентство национальной безопасности (NSA) предложило удобную криптографическую систему, разработанную фирмой IBM, в качестве федерального Стандарта шифрования данных (Data Encryption Standard, DES). Марти Хеллман и я критиковали это предложение из-за недостаточной длины ключа, но производители подготовились поддержать стандарт, и наша критика была воспринята многими как попытка помешать введению стандарта ради продвижения нашей собственной работы. Криптография с открытым ключом, в свою очередь, также подвергалась критике в популярной литературе [1125] и технических статьях [849, 1159], словно это был конкурирующий продукт, а не недавнее научное открытие. Это, однако, не помешало NSA объявить о своих заслугах в этой области. Его директор в одной из статей Encyclopedia Britannica [1461] указал, что "двухключевая криптография была открыта в Агентстве на десять лет раньше", хотя доказательства этого утверждения не были публично представлены.

В реальном мире алгоритмы с открытыми ключами не заменяют симметричные алгоритмы и используются не для шифрования сообщений, а для шифрования ключей по следующим двум причинам:

1. Алгоритмы с открытыми ключами работают медленно. Симметричные алгоритмы по крайней мере в 1000 раз быстрее, чем алгоритмы с открытыми ключами. Да, компьютеры становятся все быстрее и быстрее и лет через 15 криптография с открытыми ключами достигнет скоростей, сравнимых с сегодняшней скоростью симметричной криптографии. Но требования к объему передаваемой информации также возрастают, и всегда будет требоваться шифровать данные быстрее, чем это сможет сделать криптография с открытыми ключами.

2. Криптосистемы с открытыми ключами уязвимы по отношению к вскрытию с выбранным открытым текстом. Если C = E(P),где P- открытый текст из nвозможных открытых текстов, то криптоаналитику нужно только зашифровать все n возможных открытых текстов и сравнить результаты с C(помните, ключ шифрования общедоступен). Он не сможет раскрыть ключ дешифрирования, но он сможет определить P.

Вскрытие с выбранным открытым текстом может быть особенно эффективным, если число возможных шифрованных сообщений относительно мало. Например, если P- это денежная сумма в долларах, меньшая чем $1000000, то такое вскрытие сработает, криптоаналитик переберет весь миллион значений. (Эта проблема решается с помощью вероятностного шифрования, см. раздел 23.15.) Даже если P не так хорошо определено, такое вскрытие может быть очень эффективно. Полезным может быть простое знание, что шифротекст не соответствует конкретному открытому тексту. Симметричные криптосистемы не чувствительны к вскрытиям такого типа, так как криптоаналитик не может выполнить тестовых дешифровок с неизвестным ключом.

В большинстве реализаций криптография с открытыми ключами используется для засекречивания и распространения сеансовых ключей, которые используются симметричными алгоритмами для закрытия потока сообщений [879]. Иногда такие реализации называются смешанными (гибридными) криптосистемами

(1) Боб посылает Алисе свой открытый ключ

(2) Алиса создает случайный сеансовый ключ, шифрует его с помощью открытого ключа Боба и передает его Бобу.

EB(K)

(1) Боб расшифровывает сообщение Алисы, используя свой закрытый ключ, для получения сеансового ключа.

DB(EB(K))=K

(2) Оба участника шифруют свои сообщения с помощью одного сеансового ключа.

Использование криптографии с открытыми ключами для распределения ключей решает очень важную проблему. В симметричной криптографии ключ шифрования данных, если он не используется, валяется без дела. Если Ева заполучит его, она сможет расшифровать все закрытые этим ключом сообщения. С помощью приведенного протокола при необходимости зашифровать сообщения создается сеансовый ключ, который уничтожается по окончании сеанса связи. Это значительно уменьшает риск компрометации сеансового ключа. Конечно, к компрометации чувствителен и закрытый ключ, но риска значительно меньше, так как в течение сеанса этот ключ используется только один раз для шифрования сеансового ключа. Подробно связанные с этим вопросы обсуждаются в разделе 3.1.

Головоломки Меркла

Ральф Меркл (Ralph Merkle) изобрел первую схему криптографии с открытыми ключами. В 1974 году он записался на курс по компьютерной безопасности в Калифорнийском университете, Беркли, который вел Ланс Хоффман (Lance Hoffman). Темой его курсовой работы, поданной раньше срока, была "Безопасная передача данных по небезопасным каналам" [1064]. Хоффман не понял предложения Меркла, и в конце концов Меркл прекратил занятия. Он продолжал работать над проблемой несмотря на продолжающееся непонимание его результатов.

Техника Меркла основывалась на головоломках ("puzzle"), которые отправителю и получателю решить легче, чем злоумышленнику. Вот как Алиса может послать шифрованное сообщение Бобу, не обмениваясь с ним ключом до того.

(1) Боб создает 220 (другими словами, больше миллиона) сообщений типа: "Это головоломка номер x. Это секретный ключ номер y.", где x - случайное число, а y - случайный секретный ключ. И x, и y отличаются в каждом сообщении. Используя симметричный алгоритм, он шифрует каждое сообщение своим 20 битным ключом и все их отправляет Алисе.

(2) Алиса выбирает одно сообщение и приступает к вскрытию грубой силой, пытаясь получить открытый текст. Эта работа является объемной, но не невозможной.

(3) Алиса шифрует свое секретное сообщение при помощи некоторого симметричного алгоритма полученным ею ключом и посылает это сообщение Бобу вместе с x.

(4) Боб знает, какой секретный ключ y он использовал в сообщении x, следовательно он может расшифровать сообщение Алисы.

Ева может взломать эту систему, но ей придется выполнить гораздо больше работы, чем Алисе и Бобу. Для раскрытия сообщения на этапе (3) она должна будет вскрыть грубой силой каждое из 220 сообщений, отправленных Бобом на этапе (1). Сложность этого вскрытия составит 240.Значения x также не помогут Еве, ведь они на этапе (1) присвоены случайным образом. В общем случае, вычислительные затраты Евы будут равны возведенным в квадрат вычислительным затратам Алисы.

Это выигрыш (n по отношению к n2) невелик по криптографическим стандартам, но при определенных условиях может быть достаточен. Если Алиса и Боб могут проверить десять тысяч ключей в секунду, каждому из них потребуется минута для выполнения своих действий и еще одна минута для передачи головоломок от Боба к Алисе по линии связи 1.544 Мбит/с. Если вычислительные возможности Евы сравнимы с приведенными, ей потребуется около года для взлома системы. Другие алгоритмы еще более устойчивы к вскрытию.

2.6 Цифровые подписи

Рукописные подписи издавна используются как доказательство авторства документа или, по крайней мере, согласия с ним. Что же так притягательно в подписи [1392]?

1. Подпись достоверна. Она убеждает получателя документа в том, что подписавший сознательно подписал документ.

2. Подпись неподдельна. Она доказывает, что именно подписавший, и никто иной, сознательно подписал документ.

3. Подпись не может быть использована повторно. Она является частью документа, жулик не сможет перенести подпись на другой документ.

4. Подписанный документ нельзя изменить. После того, как документ подписан, его невозможно изменить.

5. От подписи не возможно отречься. Подпись и документ материальны. Подписавший не сможет впоследствии утверждать, что он не подписывал документ.

В действительности ни одно из этих утверждений не является полностью справедливым. Подписи можно подделать, свести с одного листа бумаги на другой, документы могут быть изменены после подписания. Однако, мы миримся с этими проблемами из-за того, что мошенничество затруднительно и может быть обнаружено.

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

Подпись документа с помощью симметричных криптосистем и посредника

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

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

(1) Алиса шифрует свое сообщение Бобу ключом KA и посылает его Тренту.

(2) Трент, зная ключ KA, расшифровывает сообщение.

(3) Трент добавляет к расшифрованному сообщению утверждение, что он получил это сообщение от Алисы, и шифрует это новое сообщение ключом KB.

(4) Трент посылает новое сообщение Бобу.

(5) Боб расшифровывает сообщение ключом KB. Он может прочитать и сообщение Алисы, и подтверждение Трента, что сообщение отправлено именно Алисой.

Откуда Трент узнает, что сообщение пришло именно от Алисы, а не от какого-то самозванца? Он делает этот вывод из шифрования сообщения.

Также ли это хорошо, как подпись на бумаге? Посмотрим на требуемые свойства:

1. Эта подпись достоверна. Трент - это заслуживающий доверия посредник, и Трент знает, что сообщение получено от Алисы. Подтверждение Трента служит доказательством для Боба.

2. Эта подпись неподдельна. Только Алиса (и Трент, но ему все верят) знает KA, поэтому только Алиса могла послать Тренту сообщение, зашифрованное ключом KA. Если кто-нибудь попытается выдать себя за Алису, Трент сразу заметит это на этапе (2) и не заверит подлинность.

3. Эту подпись нельзя использовать повторно. Если Боб попытается взять подтверждение Трента и присоединить его к другому сообщению, Алиса закричит "Караул!" Посредник (Трент или кто-то совсем другой, имеющий доступ к той же информации) попросит Боба предъявить его сообщение и шифрованное сообщение Алисы. Затем посредник зашифрует сообщение ключом KA и увидит, что оно не соответствует шифрованному сообщению, переданному Бобом. Боб, конечно же, не сможет создать правильное шифрованное сообщение, потому что он не знает ключа KA.

4. Подписанный документ нельзя изменить. Если Боб попытается, получив документ, изменить его, Трент обнаружит мошенничество уже описанным способом.

5. От подписи невозможно отказаться. Если впоследствии Алиса заявит, что она никогда не посылала сообщение, подтверждение Трента докажет обратное. Помните, все доверяют Тренту, все, сказанное им - истина.

Если Боб захочет показать Кэрол документ, подписанный Алисой, он не сможет раскрыть ей свой секретный ключ. Ему придется снова обратиться к Тренту:

(1) Боб берет сообщение и утверждение Трента, что сообщение получено от Алисы, шифрует их ключом KB и посылает обратно Тренту.

(2) Трент расшифровывает полученный пакет с помощью ключа KB.

(3) Трент проверяет свою базу данных и подтверждает, что отправителем оригинального сообщения была Алиса.

(4) Трент шифрует полученный от Боба пакет ключом KC, который он выделил для Кэрол, и посылает Кэрол шифрованный пакет.

(5) Трент расшифровывает полученный пакет с помощью ключа KC. Теперь она может прочитать и сообщение, и подтверждение Трента, что сообщение отправлено Алисой.

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

Такого посредника как Трент, которому будут доверять все корреспонденты, тяжело найти и тяжело сохранить. Трент должен быть непогрешим, если он сделает хотя бы одну ошибку на миллион подписей, никто не будет верить ему. Трент должен быть абсолютно безопасен. Если его база данных с секретными ключами когда-нибудь раскроется, или кто-нибудь сможет перепрограммировать его, все подписи станут бесполезными. Появятся документы будто бы подписанные годы назад. Это приведет к хаосу. Правительства падут, и станет править анархия. Такая схема теоретически может работать, но она недостаточно хороша для практического применения.

Деревья цифровых подписей

Ральф Меркл предложил систему цифровых подписей, основанную на криптографии с секретным ключом, создающей бесконечное количество одноразовых подписей, используя древовидную структуру [1067,1068]. Основной идеей этой схемы является поместить корень дерева в некий открытый файл, удостоверяя его таким образом. Корень подписывает одно сообщение и удостоверяет подузлы дерева. Каждый из этих узлов подписывает одно сообщение и удостоверяет свои подузлы, и так далее.

Подпись документа с помощью криптографии с открытыми ключами

Существуют алгоритмы с открытыми ключами, которые можно использовать для цифровых подписей. В некоторых алгоритмах - примером является RSA (см. раздел 19.3) - для шифрования может быть использован или открытый, или закрытый ключ. Зашифруйте документ своим закрытым ключом, и вы получите надежную цифровую подпись. В других случаях - примером является DSA (см. раздел 20.1) - для цифровых подписей используется отдельный алгоритм, который невозможно использовать для шифрования. Эта идея впервые была изобретена Диффи и Хеллманом [496] и в дальнейшем была расширена и углублена в других работах [1282, 1328, 1024, 1283, 426]. Хороший обзор этой области приведен в [1099]. Основной протокол прост:

(1) Алиса шифрует документ своим закрытым ключом, таким образом подписывая его.

(2) Алиса посылает подписанный документ Бобу.

(3) Боб расшифровывает документ, используя открытый ключ Алисы, таким образом проверяя подпись.

Этот протокол гораздо лучше предыдущего. Трент не нужен ни для подписи документов, ни для ее проверки. (Он нужен для подтверждения, что открытый ключ принадлежит именно Алисе.) Трент не нужен сторонам даже для разрешения споров: Если Боб не смог осуществить этап (3), то он знает, что подпись неправильна. Такая подпись соответствует всем требованиям:

1. Эта подпись достоверна. Когда Боб расшифровывает сообщение с помощью открытого ключа Алисы, он знает, что она подписала это сообщение.

2. Эта подпись неподдельна. Только Алиса знает свой закрытый ключ.

3. Эту подпись нельзя использовать повторно. Подпись является функцией документа и не может быть перенесена на другой документ.

4. Подписанный документ нельзя изменить. После любого изменения документа подпись не сможет больше подтверждаться открытым ключом Алисы.

5. От подписи невозможно отказаться. Бобу не требуется помощь Алисы при проверке ее подписи.

Подпись документа и метки времени

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

Предположим, что Алиса послала Бобу подписанный чек на $100. Боб отнес чек в банк, который проверил подпись и перевел деньги с одного счета на другой. Боб, выступающий в роли жулика, сохранил копию электронного чека. На следующей неделе он снова отнес его в этот или другой банк. Банк подтвердил подпись и перевел деньги с одного счета на другой. Если Алиса не проверяет свою чековую книжку, Боб сможет проделывать это годами.

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

Подпись документа с помощью криптографии с открытыми ключами и однонаправленных хэш-функций

На практике алгоритмы с открытыми ключами часто недостаточно эффективны для подписи больших документов. Для экономии времени протоколы цифровой подписи нередко используют вместе с однонаправленными хэш-функциями [432, 433]. Алиса подписывает не документ, а значение хэш-функции для данного документа. В этом протоколе однонаправленная хэш-функция и алгоритм цифровой подписи согласовываются заранее.

(1) Алиса получает значение однонаправленной хэш-функции для документа.

(2) Алиса шифрует это значение своим закрытым ключом, таким образом подписывая документ.

(3) Алиса посылает Бобу документ и подписанное значение хэш-функции.

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

Скорость заметно возрастает и, так как вероятность получить для двух различных документов одинаковое 160‑битное значение хэш-функции составляет только один шанс из 2160, можно безопасно приравнять подпись значения хэш-функции и подпись документа. Должна использоваться только однонаправленная хэш-функция, иначе создать разные документы с одним и тем же значением хэш-функции нетрудно, и подпись одного документа приведет к ошибочной подписи сразу многих документов.

У протокола есть и другие выгоды. Во первых, подпись может быть отделена от документа. Во вторых, значительно уменьшаются требования к объему памяти получателя, в котором хранятся документы и подписи. Архивная система может использовать этот протокол для подтверждения существования документов, не храня их содержания. В центральной базе данных могут храниться лишь значения хэш-функции для файлов. Вовсе не нужно просматривать файлы, пользователи помещают свои значения хэш-функции в базу данных, а база данных хранит эти значения, помечая их временем получения документа. Если в будущем возникнет какое-нибудь разногласие по поводу автора и времени создания документа, база данных сможет разрешить его при помощи хранящегося в ней значения хэш‑функции. Подобная система имеет большое значение при хранении секретной информации: Алиса может подписать документ и сохранить его в секрете. Ей понадобится опубликовать документ, только если она захочет доказать свое авторство. (См. раздел 4.1).

Алгоритмы и терминология

Существует множество алгоритмов цифровой подписи. Все они представляют собой алгоритмы с открытыми ключами с закрытой частью для подписи документов и с открытой - для проверки подписи. Иногда процесс подписи называют шифрованием с закрытым ключом, а процесс проверки подписи - дешифрированием с открытым ключом. Это может ввести в заблуждение, являясь справедливым только для одного алгоритма, RSA. У других алгоритмов - другие реализации. Например, использование однонаправленных хэш‑функций и меток времени иногда приводит к появлению дополнительных этапов при подписании и проверке подписи. Многие алгоритмы можно использовать для цифровой подписи, но нельзя для шифрования.

В общем случае я буду ссылаться на процессы подписи и проверки, не вдаваясь в подробности алгоритмов. Подпись сообщения с закрытым ключом Kбудет обозначаться как:

SK(M)

а проверка подписи с помощью соответствующего открытого ключа как:

VK(M)

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

Несколько подписей

Как Алисе и Бобу одновременно подписать один и тот же документ? В отсутствие однонаправленных хэш‑функций существует две возможности. Алиса и Боб могут подписать различные копии одного и того же документа. Полученное сообщение будет в два раза длиннее первоначального документа. Или Алиса подписывает документ, а затем Боб подписывает подпись Алисы. Этот способ работает, но проверить подпись Алисы, не проверяя при этом подписи Боба, невозможно.

С помощью однонаправленных хэш‑функций реализовать несколько подписей просто:

(1) Алиса подписывает значение хэш‑функции документа.

(2) Боб подписывает значение хэш‑функции документа.

(3) Боб посылает свою подпись Алисе.

(4) Алиса посылает Кэрол документ, свою подпись и подпись Боба.

(5) Кэрол проверяет подписи Алисы и Боба.

Алиса и Боб могут выполнить этапа (1) и (2) или параллельно, или последовательно. На этапе (5) Кэрол может проверить любую подпись независимо от другой.

Невозможность отказаться от цифровой подписи

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

Метки времени могут снизить эффект такого мошенничества, но Алиса всегда может заявить, что ее ключ был скомпрометирован раньше. Если Алиса правильно рассчитает время, она сможет подписать документ и затем успешно заявить, что она этого не делала. Поэтому так много говорится о хранении закрытых ключей в надежных местах - чтобы Алиса не могла добраться до своего и злоупотребить им.

Хотя с подобным злоупотреблением ничего нельзя сделать, можно предпринять некоторые действия, гарантирующие то, что старые подписи не будут признаны недостоверными из-за разногласий по новым подписям. (Например, Алиса может "потерять" свой ключ, чтобы не платить Бобу за подержанную машину, которую он вчера ей продал и, в результате, сделает недействительным свой банковский счет.) Получателю нужно проставлять метки времени для полученных документов [453]. Общая схема протокола приведена в [2, 8]:

(1) Алиса подписывает сообщение.

(2) Алиса создает заголовок, содержащий некоторую идентификационную информацию. Она присоединяет к заголовку подписанное сообщение, подписывает все вместе и посылает Тренту.

(3) Трент проверяет внешнюю подпись и подтверждает идентификационную информацию. Он добавляет метку времени к подписанному сообщению Алисы и идентификационной информации. Затем он подписывает все вместе и посылает пакет Алисе и Бобу.

(4) Боб проверяет подпись Трента, идентификационную информацию и подпись Алисы.

(5) Алиса проверяет сообщение, которое Трент послал Бобу. Если она не признает свое авторство, она быстро заявляет об этом.

В другой схеме Трент используется в качестве арбитра [209]. Получив подписанное сообщение, Боб посылает копию Тренту для проверки. Трент может подтвердить подпись Алисы.

Использование цифровых подписей

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

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

2.7 Цифровые подписи и шифрование

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

(1) Алиса подписывает сообщение с помощью своего закрытого ключа.

SA(M)

(2) Алиса шифрует подписанное сообщение открытым ключом Боба и посылает его Бобу.

EB (SA(M))

(3) Боб расшифровывает сообщение с помощью своего закрытого ключа.

DB (EB (SA(M)))= SA(M)

(4) Боб проверяет подпись с помощью открытого ключа Алисы и восстанавливает сообщение.

VA (SA(M))= M

Подпись перед шифрованием выглядит естественно. Когда Алиса пишет письмо, она подписывает его и затем кладет в конверт. Если она положит письмо в конверт неподписанным, то Боб может забеспокоиться, вдруг письмо было тайно подменено. Если Боб покажет Кэрол письмо Алисы и конверт, Кэрол может обвинить Боба, что он врет о том, какое письмо в каком конверте пришло.

В электронной корреспонденции точно также является разумным использование подписи перед шифрованием [48]. Это не только более безопасно - враг не сможет удалить подпись из шифрованного сообщения и добавить свою собственную - но существуют и юридические соображения: если подписываемый текст не виден подписывающему, когда он ставит подпись, то юридическая сила подписи невелика [1312]. Существуют также некоторые криптографические способы вскрытия такой последовательности действий, использующей подписи RSA (см. раздел 19.3).

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





Дата публикования: 2015-11-01; Прочитано: 414 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.02 с)...