Основы криптографии

Информация - Компьютеры, программирование

Другие материалы по предмету Компьютеры, программирование

ии однонаправленных функций. Диффи и Хеллман придумали абсолютно "новую" криптографию - криптографию с открытым ключом. Еще ее называют "открытой криптографией" или "асимметричной криптографией". [6]

 

. Асимметричная и симметричная криптографии

 

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

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

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

Самым известным асимметричным алгоритмом шифрования на сегодняшний день является алгоритм, предложенный Ривестом, Шамиром и Адельманом и носящий их имена, - алгоритм RSA. В самом деле, если участников обмена немного, и все они находятся недалеко друг от друга, то проблема распределения между ними симметричных ключей решается относительно просто. Для связи "каждый с каждым" N участникам обмена каждому из них необходимо иметь N1 ключей парной связи. При этом каждый участник обмена должен иметь безопасный канал обмена ключами с остальными участниками. При увеличении числа участников обмена задача распределения и замены скомпрометированных симметричных ключей может оказаться и вовсе неразрешимой, особенно тогда, когда участники обмена не доверяют друг другу.

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

Но за удобство надо платить. В случае использования асимметричной криптографии платой является время и длины ключей. При использовании асимметричной криптографии характерной длиной ключей является 512-1024 бит. Сейчас, когда стали доступны высокопроизводительные вычислительные системы, набирает популярность использование 2048-битных ключей.

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

Асимметричные алгоритмы показывают производительность от единиц до десятков килобайт в секунду, в зависимости от длины ключа. При длине сеансового ключа в 8-32 байта подобная гибридная криптосхема оказывается вполне эффективной. Но вернемся ненадолго к оценкам стойкости асимметричных алгоритмов и к проблемам, возникающим при их использовании. В настоящем обзоре мы постараемся обойтись без математических выкладок и формул, однако, отметим, что сложность восстановления секретного ключа по открытому определяется сложностью разложения большого числа на простые сомножители (так называемая "задача факторизации") или сложностью задачи "дискретного логарифмирования".

Задачу "дискретного логарифмирования" можно сформулировать так: взяли некоторое известное число, возвели его в неизвестную степень и остат?/p>