Загальна характеристика блокових шифрів
Потокові шифри. Послідовність вибору шифрперетворень.
Нехай - пронумерованый список усіх різних шифрперетворень, що могли б виникнути в процесі шифрування повідомлень за допомогою даної криптосистеми.
Процес зашифрування можна записати як послідовність номерів шифрперетворень, обраних на відповідних тактах. Позначимо цю послідовність через і назвемо ключовим потоком.
Послідовність аналогічна функції вибору станів деякого автомата. Вона визначається ключем і номерами тактів. Властивості ключового потоку багато в чому відбивають якість шифру і визначають його класифікацію.
Наприклад, якщо список містить тількишифрперетворення, що є додаванням за модулем , кожне з фіксованим числом , , то шифр є шифром гамування за модулем .
Потоковим шифромназивається система, в якій на кожному такті використовується змінний, обраний за допомогою елементів ключового потоку, алгоритм шифрування.
Ключовий потік визначається вхідними ключовими даними і номерами тактів шифрування, аж до розглянутого.
Потокові шифри, очевидно, більш чуттєві до порушень синхронізації (вставка, пропуск), чим блокові. Для деякої компенсації даного недоліку використовуються потокові шифри зі зворотним зв'язком. У цих шифрах значення елемента ключового потоку на такті t обчислюється за допомогою фіксованої функції f від ключа і знаків шифртекста, отриманих на попередніх тактах.
У криптографічній літературі під потоковим шифром дуже часто розуміють так зиваний двійковий адитивний потоковий шифр, що являє собою шифр гамування за модулем два зі псевдовипадковою гамою.
Для такого шифра ключовий потік можна записати за допомогою нулів і одиниць і безпосередньо використовувати для гамування відкритого тексту.
Блоковим шифромназивається система шифрування, що використовує на кожнім такті постійний, обраний до початку шифрування, у залежності від ключів, алгоритм.
Оскільки зашифрування повинно бути взаємно однозначн перетворенням, то блоковий шифр є шифром заміни з дуже великим алфавітом. Знаки алфавіту представляються у виді двійкових блоків даних фіксованої довжини.
Наприклад, алгоритм ГОСТ 28147-89 призначений для роботи з блоками довжиною 64 біта. В режимі простої заміни цей шифр взаємно однозначно відображає множину потужності на себе.
Програмна реалізація потокових шифрів, у багатьох випадків, уступає у швидкодії блоковим шифрам.
Для блокових шифрів оцінка стійкості пов'язана з оцінкою якості т.зв. віртуальних таблиць заміни, тобто таблиць заміни, представити які цілком на носії неможливо через великий обсяг даних.
Блоковий шифр є сукупністю віртуальних таблиць заміни. Ключ служить для вибору таблиці, що є незмінною в процесі шифрування окремого повідомлення.
Очевидно, що криптографічні властивості шифру простої заміни істотно залежать від ключів. Тому в блоковому шифрі ключі, взагалі кажучи, можуть бути нерівноцінні. Загальна проблема оцінки якості блокового шифру зводиться до задачі визначення великих областей ключів, яким відповідають підстановки, найбільш складні для розкриття відповідног шифра простої заміни.
Існують потокові шифри, що використовують блоковий шифр як вузол генерації гами. У криптографії прийнято розглядати подібні шифри як режими роботи відповідного блокового шифру.
Наприклад, в режимах шифрування алгоритм ГОСТ 28147-89 працює як шифр гамування за модулем два, використовуючи двійкову гаму, сформовану в т.зв. режимі простої заміни, який відповідає блоковому шифру.