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



Pdf көрінісі
бет37/203
Дата26.09.2024
өлшемі2,74 Mb.
#145829
1   ...   33   34   35   36   37   38   39   40   ...   203
Байланысты:
практическая криптография


Глава 4. Блочные шифры
в этой области. Ни один из специалистов по криптографии, к которому мы
обращались, не знает, что делать с такими функциями. Возможно, в мире су-
ществуют люди, которые умеют решать задачи подобного рода, однако у нас
нет никаких причин предполагать, что они знают криптографию. Давайте
будем оптимистами и предположим, что вероятность хоть сколько-нибудь
успешных попыток осуществления атак такого типа равна 10%. Пусть веро-
ятность того, что эти попытки приведут к реализации практической атаки
на полную версию шифра, также равна 10%. Таким образом, вероятность
практической атаки на AES составляет 1% — риск, которого можно было бы
избежать, используя более традиционный шифр с более сложной алгебраи-
ческой структурой.
Как бы там ни было, постепенно все перейдут на использование AES, по-
скольку это государственный стандарт США. Мы тоже будем рекомендовать
своим клиентам использовать AES, потому что он
действительно
является
стандартом, а использование стандарта позволяет избежать многочисленных
споров и проблем. Даже если AES когда-нибудь и взломают, никто не по-
смеет упрекнуть вас за то, что вы отдали предпочтение стандартному шиф-
ру. К сожалению, агрессивная политика разработчиков AES в совокупности
с простой алгебраической структурой несколько ухудшает общее впечатление
от нового стандарта.
4.5.3
Serpent
Шифр Serpent — еще один из пяти финалистов, соревновавшихся за право
носить гордое имя стандарта AES [2]. Своей массивностью и защищенностью
он напоминает танк. Наиболее консервативный из всех участников конкурса,
Serpent во многом противоположен AES. В то время как разработчики ал-
горитма AES делали упор на красоту и эффективность, Serpent полностью
ориентирован на обеспечение безопасности. Наилучшая из известных атак
способна взломать только 10 из 32 раундов [6]. Недостатком шифра Serpent
является его скорость — он в три раза медленнее AES. Он также не очень
подходит для эффективной реализации, поскольку S-матрицы должны быть
преобразованы в булевы функции, подходящие для конкретного процессора.
Кое в чем Serpent все же сходен с AES. Его алгоритм шифрования состоит
из 32 раундов. В каждом раунде выполняется сложение данных и 128-битово-
го подключа с помощью операции XOR, применение к 128-битовому значению
линейной функции перемешивания и наконец параллельное применение 32
четырехбитовых S-матриц. В каждом раунде применяются 32 одинаковые S-
матрицы, однако из раунда в раунд они изменяются. Кроме того, есть восемь
различных S-матриц, которые поочередно используются в каждом последу-
ющем раунде.


4.5. Современные блочные шифры
79
Существует интересный прием программной реализации шифра Serpent.
Обычная реализация “в лоб” работала бы слишком медленно, потому что
в каждом раунде необходимо выполнять поиск соответствий в 32 S-матрицах,
а таких раундов тоже 32. В сумме необходимо 1024 раза проделать поиск со-
ответствий, а проводить операции поиска одну за другой было бы слишком
медленно. Вместо этого S-матрицы представляют в виде булевых функций.
Каждый из четырех выходных битов представляется как результат выпол-
нения булевой функции от четырех входных битов. После этого процессор
непосредственно вычисляет значение булевой функции, используя команды
AND, OR и XOR. Хитрость заключается в том, что 32-разрядный процессор
может одновременно подсчитывать значения 32 таких функций, поскольку
каждая позиция двоичного разряда в регистрах процессора вычисляет значе-
ние одной и той же функции, хотя и с разными входными данными. Такой тип
реализации называется
разрядно-модульным (bitslice)
. Шифр Serpent специ-
ально спроектирован в расчете на разрядно-модульную архитектуру. Помимо
S-матриц, она позволяет относительно легко вычислять значения функций
перемешивания.
Если бы Serpent был таким же быстрым, как Rijndael (теперешний AES),
он бы практически наверняка выиграл конкурс благодаря своей консерватив-
ной структуре. Но скорость — понятие относительное. В перерасчете на за-
шифрованный байт Serpent оказывается почти таким же быстрым, как DES,
и намного быстрее, чем 3DES. Он кажется медленным только по сравнению
с другими финалистами конкурса AES.
4.5.4
Twofish
Алгоритм Twofish также вошел в число финалистов AES. Он представля-
ет собой некий компромисс между AES и Serpent — практически такой же
быстрый, как и AES, но обладающий гораздо б´ольшим “запасом прочности”.
Но что еще важнее, он не имеет простого алгебраического представления.
Наилучшая известная нам атака способна взломать лишь 8 раундов из 16.
Основным недостатком Twofish является относительная дороговизна смены
ключа шифрования. Это объясняется тем, что реализация алгоритма Twofish
требует выполнения целого ряда предварительных операций над ключом.
Подобно DES, алгоритм Twofish основан на шифре Файстеля. Структура
Twofish представлена на рис. 4.3
6
. На вход алгоритма подается 128-битовый
текст. Он разбивается на четыре 32-битовых значения, и большинство опе-
раций выполняются над 32-битовыми значениями. Как видно из рисунка,
6
Не удивляйтесь, что этот рисунок намного больше и подробнее предыдущих. Так уж
получилось, что мы принадлежим к числу разработчиков Twofish, поэтому без всяких за-
зрений совести взяли этот рисунок прямо из нашей книги, посвященной Twofish [85].


80

Достарыңызбен бөлісу:
1   ...   33   34   35   36   37   38   39   40   ...   203




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

    Басты бет