Современные системы шифрования (Лабораторная работа № 1), страница 6

Таким образом, чтобы сегодня обеспечить критическому приложению приемлемый «запас прочности», длина ключа RSA должна быть не менее 1024 бит. При этом следует помнить, что успехи в решении задачи разложения постепенно будут отодвигать эту границу, то есть за развитием науки надо следить. В зависимости от назначения, для особо чувствительных приложений могут потребоваться числа длины 2048 бит и более. Нас не очень волнует, что сложность разложения падает с ростом скорости новых компьютеров – ведь на этих же компьютерах мы можем генерировать все более длинные ключи. Таким образом, можно считать, что безопасность криптосистемы RSA зависит в основном от развития методов разложения.

Сколько же существует таких ключей? Хватит ли их, чтобы раздать каждому из живущих на Земле мужчин, женщин и детей (а может даже кошек и собак) хотя бы по одному ключу RSA? На эти вопросы дает ответ теорема о простых числах: число простых чисел, меньших заданного , примерно равно . Модуль длины 1024 генерируется как произведение двух простых чисел, длины 512 бит каждое. Таких чисел примерно 2512/512, то есть около ; каждые два из них образуют модуль. Если обозначить , то существует N(N-1)/2 таких пар, около  различных модулей, причем каждое из этих чисел можно выбрать в качестве компонента секретного ключа. Чтобы было легче осознать всю мощь этого числа, скажем лишь, что вся обозримая Вселенная содержит «всего» элементарных частиц. Или еще пример. Если каждому жителю Земли выдавать каждый день по десять новых модулей, то модулей хватит на  лет, при этом ни разу не будет повторений. Ну а сегодня нашей планете «всего» несколько миллиардов лет.

AES (Rijndael)

Алгоритм DES принят в качестве стандарта шифрования информации с 1976 года. Но с течением времени он утратил свои потребительские свойства. Возможно, в то время его нельзя было взломать, но сейчас компьютеры стали гораздо более мощными. Компания RSA Security опубликовала в 1997 году ряд доводов, доказывающих слабость стандарта DES. Сообщество пользователей Distributed.net присоединилось к позиции, занимаемой RSA Security. Они привлекли в свои ряды тысячи пользователей сети Internet, которые установили маленькую программу Distributed.net на своих компьютерах и разрешили ей пользоваться ресурсами своих компьютеров. Таким образом, Distributed.net получила чрезвычайно мощный распределенный компьютер. Стратегия состояла в том, чтобы взломать ключ методом полного перебора – проверить каждый отдельный ключ на зашифрованном DES-сообщении, пока не произойдет совпадение. Методом полного перебора зашифрованное сообщение взламывалось за 24 ч.

В результате была создана новая организация для разработки решения, заменяющего алгоритм DES. Организация предложила применить в новом алгоритме ключ длиной 128 бит, который обладал бы достаточной производительностью для многих типов компьютеров, а алгоритм не требовал большого объема памяти и был общедоступным (бесплатным). Первоначально к рассмотрению было принято 15 реализаций нового алгоритма, число которых после анализа сократилось до 5 вариантов. Среди их авторов были компании IBM и RSA. 2 октября 2000 года организация приняла решение, которое установило в качестве нового алгоритма финский алгоритм с труднопроизносимым названием Rijndael. К счастью, это название поменяли на AES (Advanced Encryption Standard).

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

Входы и выходы. Входными и выходными элементами для алгоритма AES являются последовательности из 128 битов. Ключ шифрования для алгоритма AES является переменным и может быть 128, 192 и 256 битов. Биты таких последовательностей нумеруются начиная с нуля. Число , сопутствующее биту, называется индексом и может находится в диапазонах ,  или , в зависимости от длины блока и длины ключа.