В. Р. Гинзбург Перевод с английского



Pdf көрінісі
бет148/203
Дата26.09.2024
өлшемі2,74 Mb.
#145829
1   ...   144   145   146   147   148   149   150   151   ...   203
Байланысты:
практическая криптография


Глава 15. Протокол согласования ключей
Основная проблема в этой ситуации — нежелание выбирать сложные па-
роли. Существуют программы, перебирающие распространенные пароли, ко-
торые с большой долей вероятности выбирают практически все пользовате-
ли. В идеале нам хотелось бы иметь такой протокол согласования ключей,
который обладал бы устойчивостью к автономной атаке с использованием
словаря.
Подобные протоколы существуют; пожалуй, наиболее известным из них
является SRP [96]. Он обладает значительными улучшениями в плане без-
опасности использования паролей. К сожалению, в вопросах патентования
данная сфера деятельности очень напоминает минное поле. Мы так и не
смогли найти подходящий протокол согласования ключей, основанный на ис-
пользовании паролей, который не был бы зажат всевозможными патентами.
Университет Стэнфорда (Stanford University) предоставляет бесплатные ли-
цензии на определенное ограниченное применение SRP, однако мы, кажется,
нашли по крайней мере еще один патент, который охватывает SRP. Эта си-
туация настолько сложна и запутанна, что мы предпочитаем держаться от
нее подальше. А если мы считаем, что реализовать подобные протоколы не
стоит, то не должны вводить в искушение и наших читателей.


Глава 16
Проблемы реализации. Часть II
Протокол согласования ключей, описанный в предыдущей главе, приво-
дит к появлению еще нескольких проблем реализации.
16.1
Арифметика больших чисел
Все вычисления с открытым ключом подразумевают применение ариф-
метики больших чисел. Как уже отмечалось, правильно реализовать ариф-
метику больших чисел крайне сложно.
Реализация арифметических операций над большими числами практиче-
ски всегда в той или иной мере зависит от платформы. Эффективность, кото-
рой можно добиться, учитывая специфические свойства платформы, слиш-
ком высока, чтобы ею пренебрегать. Например, большинство процессоров
поддерживают инструкцию “сложение с переносом” (Add With Carry — ADC)
для реализации операций сложения многократной точности. Но в C и боль-
шинстве других языков высокого уровня эта инструкция недоступна. Выпол-
нение арифметических операций над большими числами в языке высокого
уровня обычно происходит в несколько раз медленнее, чем в реализации, оп-
тимизированной для конкретной платформы. Кроме того, вычисления с ис-
пользованием больших чисел образуют “узкое место” в производительности
криптосистемы с открытым ключом, поэтому применение кода, специфично-
го для конкретной платформы, просто необходимо для повышения эффек-
тивности.
Обсуждать вопросы реализации арифметических операций над больши-
ми числами мы не будем. Для этого существуют другие книги. В качестве
хорошей отправной точки можно порекомендовать книгу Кнута [54]. Нас же,
скорее, будет интересовать то, как
тестировать
арифметические операции
над большими числами.
301


302

Достарыңызбен бөлісу:
1   ...   144   145   146   147   148   149   150   151   ...   203




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет