Раздел: Документация
0 ... 83 84 85 86 87 88 89 ... 169 От размера шифруемого массива данных в этом случае зависит только количество шагов шифрования, но не сами шаги. Ради удобства реализации размер блока практически всегда полагают постоянным, может быть, за исключением последнего блока данных, который может быть меньше. По соображениям стойкости размер блока не должен значительно превышать размер ключа, лучше, если он будет меньше или равен ему. Существуют два принципиально различающихся подхода к построению шифров с секретным ключом, соответственно им можно выделить два типа шифров - блочные и потоковые шифры: 1.В блочных шифрах результат зашифрования очередного блока зависит только от него самого и не зависит от других блоков шифруемого массива данных: Ti = Е (Ti) . Из этого следует, что в результате зашифрования двух одинаковых блоков открытого текста всегда получаются идентичные блоки шифротекста. 2.В поточных или потоковых шифрах результат зашифрования очередного блока зависит от него самого и, в общем случае, от всех предыдущих блоков массива данных: Ti = Е (Tl, Т2, ... , Ti) . Сюда же относится важный частный случай, когда результат зашифрования очередного блока зависит этого блока и от его номера: Ti = Е (i,Ti) . По поводу разделения шифров на блочные и потоковые следует добавить, что в современной криптолопш указанные понятия иногда используются в близком, но несколько отличном от сказанного выше смысле - потоковыми называют только такие шифры, в которых шифруемый за один шаг блок имеет размер один бит или один символ текста, а шифры с большим размером блока, формально относящиеся к потоковым, причисляют к блочным. Потоковые шифры в последнем, практическом значении этого термина, очень хорошо подходят для засекречивания асинхронного информационного потока - поступившая порция данных может быть немедленно зашифрована и отправлена в канал связи, нет необходимости ждать, пока наберется полный блок из нескольких битов или символов, как это было бы необходимо для блочных в том же самом «практическом» смысле термина шифров. Если принять во внимание 260 требование к реализуемости криптоалгоритма устройством с конечным числом возможных состояний, то наиболее общей моделью потоковых шифров является конечный автомат, описываемый множеством состояний X, входным и выходным алфавитами I и Е и правилами перехода и выхода соответственно. Множество состояний и алфавиты автомата являются конечными - собственно, именно поэтому автомат и называется конечным, — а правила перехода и выхода могут быть записаны в виде двумерной таблицы и по этой причине иногда называются таблицами переходов и выходов соответственно. Автомат работает следующим образом: каждый символ, поступивший на его вход, вызывает изменение состояния автомата и порождение одного выходного символа. В результате входное слово преобразуется в слово точно такой же длины, составленное из символов выходного алфавита. Работа конечного автомата зависит от его начального состояния: в общем случае два идентичных автомата преобразуют одно и то же входное слово в разные выходные, если начнут свою работу с разных состояний. Для того, чтобы процедура шифрования была обратима, для шифрующего автомата должен существовать обратный ему автомат. Один конечный автомат является обратным другому и называется его обращением в том случае, если он преобразует любую выходную этого автомата в его входную последовательность: преобразует выходную последовательность sls2...sK первого конечного автомата (левый, EFA) в его входную последовательность tlt2...tK, и в силу этого является его обращением. По вполне понятной причине епнхропосылкнможет передаваться только в открытом виде - на момент ее получения автомат расшифрования на принимающей стороне не готов к работе. В настоящее время одним из наиболее популярных видов потоковых шифров является шифр гаммирования, в котором соответствующий конечный автомат являетсяи используется для выработки последовательности элементов гаммы. Для наложения гаммы на данные может быть использована любая подходящая бинарная операция. Если это операция аддитивного типа, шифр называется аддитивным, если же используется операция побитового сложения по модулю 2 - то двоичным аддитивным. Для двоичных данных таковой является операция побитового суммирования по модулю 2 или побитового исключающего ИЛИ. Кроме того, эта операция является обратной самой себе и по этой причине может использоваться как для зашифрования, так и для расшифрования данных, что позволяет реализовать обе эти процеду- 261 ры в одном модуле, достигнув тем самым дополнительных преимуществ в экономичности. Условием стойкости шифра гаммирования является невозможность определить по известному фрагменту гаммы другие ее части или восстановить структуру порождающего ее конечного автомата. Для стороннегообладающего лишь ограниченными вычис- лительными возможностями, выработанная гамма должна быть неотличима от случайной последовательности. В заключение рассмотрения темы потоковых шифров отметим, что эта область криптографии целиком базируется на теории конечных автоматов - очень подробно разработанной на сегодняшний день отрасли математики, и по этой причине считается одним из наиболее полно исследованных разделовТеперь перейдем к рас- смотрению блочных- именно они станут темой нескольких ближайших выпусков. В шифрах этого типа результат зашифрования каждого блока зависит только от его значения, естественно, не считая секретного ключа: Ti = EK(Ti) . Как следствие, при зашифровании двух одинаковых блоков данных получатся идентичные блоки шифротекста. Из указанной особенности блочных шифров следует очевидный способ их анализа - ста-iHTiiiecKiiii. Если известен закон распределения блоков открытого текста, то проанализировав статистику блоков шифротекста, можно установить соответствие между ними. Классическим примером такого криптоанализа является история, описанная Эдгаром По в его известном рассказе «Золотой жук». Для того, чтобы исключить подобную возможность, размер блока должен быть достаточно большим. Например, при размере блока в один байт анализ шифра осуществим вручную, без использования вычислительной техники; при размере блока в б бит этот анализ элементарно реализуется на персональной ЭВМ и занимает несколько секунд; при размере блока в 32 бита компьютерный анализ также осуществим, хотя требует больше времени и большего необходимого объема зашифрованных данных. При дальнейшем увеличении размера блока статистический анализ становится все менее осуществимым на практике. Для большинства современных шифров выбрана величина блока в 64 бита, для нее исчерпывающий анализ практически исключен прежде всего из-за невозможности набрать соответствующую статистикуПри еще больших размерах блока усложняется не 262 0 ... 83 84 85 86 87 88 89 ... 169
|