02-10-2023
MARS | |
Создатель: |
Кэролин Барвик, Дон Копперсмит |
---|---|
Создан: |
1998 г. |
Опубликован: |
1998 г. |
Размер ключа: |
128, 192, 256 (1248)[1] бит |
Размер блока: |
128 бит |
Число раундов: |
32 |
Тип: |
MARS — алгоритм шифрования, разработанный корпорацией IBM, создавшей в свое время DES. По заявлению IBM, в алгоритм MARS вложен 25-летний криптоаналитический опыт фирмы, и наряду с высокой криптографической стойкостью шифр допускает эффективную реализацию даже в таких ограниченных рамках, какие характерны для смарт-карт.
Алгоритм уникален тем, что использовал практически все существующие технологии, применяемые в криптоалгоритмах, а именно:
Использование двойного перемешивания представляет сложность для криптоанализа, что некоторые относят к недостаткам алгоритма. В то же время на данный момент не существует каких-либо эффективных атак на алгоритм, хотя некоторые ключи могут генерировать слабые подключи.
Содержание |
Исходя из двух следующих предположений:
— разработчики алгоритма MARS придали ему сильно гетерогенную структуру — раунды алгоритма весьма различаются между собой. Алгоритм MARS можно описать следующим образом:
В раунде прямого перемешивания выполняются следующие действия:
Кроме того, в некоторых раундах прямого перемешивания выполняются следующие дополнительные операции:
По словам авторов алгоритма, эти операции существенно усиливают алгоритм MARS против дифференциального криптоанализа.
Основой раунда прямого криптопреобразования является расширяющее криптопреобразование E, преобразующее 32-битное входное слово A в три выходных 32-битных значения, каждое из которых определенным образом накладывается на остальные субблоки. После этого субблок A вращается влево на 13 бит, затем субблоки меняются местами аналогично раунду прямого перемешивания.
Из входного значения формируются три потока O1…O3, над которыми производятся следующие действия:
O2 = I
O3 = O2 <<< 13
O2 = O2 + k2r+4 mod 232
O3 = O3 * k2r+5 mod 232
O3 = O3 <<< 5
O1 = S(O2)
O1 = O1 Å O3
O2 = O2 <<< O3'
O3 = O3 <<< 5
O1 = O1 Å O3
O1 = O1 <<< O3'
где I — входное значение, r — номер текущего раунда, считая с 0-го (при нумерации раундов в данном случае учитываются только раунды криптоядра алгоритма), S — табличная замена для операции E, представляет собой объединение таблиц S0 и S1; объединенная таблица содержит 512 значений, выходное значение выбирается по значению 9 младших бит входного слова.
Стоит обратить внимание на то, что в преобразовании E используются операции вращения на переменное число бит; в этом случае запись O3' обозначает, что число бит вращения определяется значением младших пяти бит текущего значения O3.
Структуру обратного криптораунда от прямого отличает лишь измененный порядок наложения выходных значений преобразования E O1…O3 на слова B, C и D.
Раунд обратного перемешивания более существенно отличается от прямого. Фактически, обратное перемешивание выполняет обратные операции в обратной последовательности:
Аналогично прямому перемешиванию, в некоторых раундах выполняются следующие дополнительные операции:
Симметричные криптоалгоритмы | |
---|---|
Поточный шифр | |
Сеть Фейстеля |
ГОСТ 28147-89 • Blowfish • Camellia • CAST-128 • CAST-256 • CIPHERUNICORN-A • CIPHERUNICORN-E • CLEFIA • Cobra • DFC • DEAL • DES • DESX • EnRUPT • FEAL • FNAm2 • HPC • IDEA • KASUMI • Khufu • LOKI97 • MARS • NewDES • Raiden • RC5 • RC6 • RTEA • SEED • Sinople • TEA • Triple DES • Twofish • XTEA • XXTEA |
SP-сеть | |
Другие |
MARS (криптография).