Общий | |
---|---|
Дизайнеры | Фил Циммерманн |
Впервые опубликовано | 1991 |
Детали шифра | |
Размеры клавиш | от 8 до 2048 бит |
Размеры блоков | 2048 бит |
Раунды | 1–8 |
В криптографии BassOmatic — это симметричный ключевой шифр, разработанный Филом Циммерманном как часть его программного обеспечения для шифрования электронной почты PGP (в первом выпуске, версии 1.0). Комментарии в исходном коде указывают на то, что он разрабатывал шифр еще с 1988 года, но он не был публично представлен до 1991 года. После того, как Эли Бихам указал ему на несколько серьезных недостатков алгоритма BassOmatic за обедом на конференции CRYPTO 1991 года , [1] Циммерманн заменил его на IDEA в последующих версиях PGP.
Название объясняется в этом комментарии из исходного кода: «BassOmatic получил свое название от старой скетч-программы Дэна Эйкройда Saturday Night Live с блендером и целой рыбой. Алгоритм BassOmatic делает с данными то же, что и оригинальный BassOmatic делал с рыбой».
Алгоритм работает с блоками по 256 байт (или 2048 бит). Фактический размер ключа может быть от 8 до 2048 бит. 6 младших бит ключа являются контрольными битами , используемыми для выбора между несколькими возможными вариациями. Количество раундов составляет от 1 до 8, в зависимости от 3 младших контрольных битов. Бит 4 выбирает между двумя возможными расписаниями ключей : одно с использованием ключа для заполнения генератора псевдослучайных чисел , другое с использованием самого BassOmatic. Создание таких вариаций, зависящих от ключа, означает, что некоторые ключи должны быть слабее других; пространство ключей не является плоским .
Выбранный ключевой график создает в общей сложности 8 таблиц перестановок , каждая из которых является перестановкой чисел от 0 до 255. Каждый раунд состоит из 4 операций: XOR блока с одной из таблиц перестановок, измельчение или перестановка отдельных битов по всему блоку, неключевая диффузия, называемая граблением , и шаг подстановки с использованием таблиц перестановок в качестве S-блоков . Шаг измельчения может либо переставлять все 8 битовых плоскостей независимо, либо группами по 4, в зависимости от контрольного бита 3. Таблицы перестановок остаются неизменными во всех раундах шифрования данного блока, но если установлен контрольный бит 5, то таблицы регенерируются после каждого блока.