Хотя одноразовая система шифрования и оказалась неприменима на практике в силу невозможности практической реализации всех требований, обеспечивающих ее теоретическую стойкость, идея, лежащая в ее основе нашла практическое применение в широко используемой и в настоящее время системе шифрования, получившей название метода гаммирования.
Гамма шифра – это псевдослучайная последовательность, выработанная по определенному алгоритму для шифрования открытых данных и дешифрования зашифрованных данных. Она играет роль ключа в одноразовой система шифрования. Строго говоря, она не удовлетворяет ни требованию случайности, так как используется детерминированный алгоритм для ее выработки, ни требованию бесконечной длины, так как все псевдослучайные последовательности имеют конечный период. Тем не менее, при правильно выбранном алгоритме генерации гаммы шифра можно получить метод шифрования с хорошей практической стойкостью, достаточной для решения реальных задач защиты информации.
|
|
Один и тот же алгоритм генерации гаммы шифра выполняется и на стороне отправителя и на стороне получателя информации, оба имеют одинаковую псевдослучайную последовательность, используемую для шифрования и дешифрования. При этом фактический (подлежащий передаче) объем ключевой информации очень мал и состоит из нескольких чисел, задающих значения параметров алгоритма и нулевого элемента последовательности.
Процесс шифрования этим методом называют гаммированием. Он шифрования заключается в генерации гаммы шифра и её наложении на исходный открытый текст по определенному закону обратимым образом, например с использованием операции сложения по модулю два.
Шифрование ведется либо посимвольно, либо путем шифрования данных, объединенных в блоки. При шифровании блоками открытый текст m разбивают на блоки mi, i =1,…, M одинаковой длины, обычно по 64 бита. Гамма шифра вырабатывается в виде последовательности блоков γ i, i =1,…, M аналогичной длины. Уравнение зашифрования можно записать в виде
ci = γ i Å mi, i =1,…, M,
где ci – i -й символ (блок) шифртекста; γ i – i -й символ (блок) гаммы шифра; mi – i -й символ (блок) открытого текста; М – количество символов (блоков) открытого текста.
Процесс дешифрования сводится к повторной генерации гаммы шифра на стороне получателя информации по тому же алгоритму и наложению этой гаммы на зашифрованные данные. Уравнение дешифрования имеет вид
mi = γ i Å ci, i =1,…, M.
Полученный зашифрованный текст является достаточно трудным для раскрытия в том случае, если гамма шифра не содержит повторяющихся последовательностей. В идеале гамма шифра должна изменяться случайным непредсказуемым образом для каждого шифруемого слова. Если период гаммы превышает длину всего текста и неизвестна никакая часть исходного текста, то шифр можно раскрыть только прямым перебором ключа. То есть криптостойкость метода определяется периодом гаммы.
|
|
Слабое место метода гаммирования в том, что он становится бессильным, если злоумышленнику становится известен фрагмент исходного текста длиной более чем период гаммы, и соответствующая ему шифрограмма. Простым вычитанием по модулю получается ключ и по нему восстанавливается вся последовательность. Криптоаналитик также может частично или полностью восстановить ключ на основе догадок о содержании исходного текста. Так, если большинство посылаемых сообщений начинается со слов "СОВ. СЕКРЕТНО", то криптоанализ всего текста значительно облегчается. Также многие текстовые редакторы, например Word, вставляют в начало файла стандартную служебную информацию, что понижает криптостойкость при шифровании этих файлов методом гаммирования.