Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MethodFull.doc
Скачиваний:
113
Добавлен:
09.02.2015
Размер:
908.8 Кб
Скачать

Вскрытия криптографии с открытыми ключами

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

Даже если открытые ключи хранятся в надежной базе данных, Разбойник может подменить их при передаче. Чтобы воспрепятствовать этому, Яга должна подписывать каждый открытый ключ, используя свой собственный закрытый ключ. Ягу, которая действует подобным образом, часто называют Органом сертификации ключей или Центром распределения ключей (Key Distribution Center, KDC). На практике KDC подписывает сложное сообщение, состоящее из имени пользователя, его открытого ключа и другой информации о пользователе. Это подписанное сложное сообщение и хранится в базе данных KDC. Когда Василиса получает ключ Ивана, она проверяет подпись KDC, удостоверяясь в правильности ключа.

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

Генерация случайных и псевдослучайных последовательностей

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

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

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

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