Анимация
JavaScript
|
Главная Библионтека рассеивания очень хорошо подходят также некоторые из режимов работы при шифровании длинных открытых текстов, которые мы будем обсуждать в § 5. Цель перемешивания состоит в том, чтобы зависимость между ключом и шифртекстом сделать настолько сложной, насколько это вообще возможно. Криптоаналитик, основываясь на результатах статистического анализа шифрованного текста, полученного в процессе перемешивания, не должен получить сколь-нибудь значительного количества полезной информации о ключе шифрования криптосхемы. Обычно перемешивание осуществляется при помощи техники подстановок, которые используют для получения шифртекста из открытого текста перестановки символов алфавита сообщения. Использующий подстановку шифр простой замены не дает очень уж хорошего перемешивания потому, в частности, что самым повторяющимся символом любого шифртекста в этом случае почти наверняка будет пятая запись в его ключе шифрования (соответствующая букве «Е» открытого текста сообщения). Лучше использовать подстановку для блоков из нескольких символов, хотя она.и приводит к тому, что ключ становится намного длиннее (во всяком случае тогда, когда подстановка задается в виде таблицы). Альтернативный подход состоит в том, чтобы для каждой позиции в открытом тексте использовать свою собственную подстановку. Это может привести, с одной стороны, к совершенной секретности, как в одноразовом шифре, а с другой - к злополучной Энигме (Enigma) [187, 303]. Необходимо учитывать, что применяемые порознь ни рассеивание, ни перемешивание сами по себе не являются очень уж действенными методами, радикально затрудняющими статистический криптоанализ шифртекста (если только ключ не будет достаточно длинным - ведь, в конце концов, в одноразовых шифрах используется только перемешивание). Тем не менее, оказывается, что криптосистема, в которой оба этих метода используются совместно, становится намного более стойкой. Возможно, самый лучший пример подобного феномена - Стандарт шифрования данных (Data Encryption Standard, или, сокращенно, DES). §4 Стандарт шифрования данных (PES) 35 % 4. Стандарт шифрования данных (DES) Стандарт шифрования данных (DES) - это знаменитая криптографическая система с секретным ключом, которая была предложена Национальным бюро стандартов при Министерстве торговли США (National Bureau of Standarts, или сокращенно NBS) в 1977 году [277]. Она была разработана для использования на срок от десяти до пятнадцати лет «в интересах Федерального правительства [США] для криптографической запдаты наиболее значимых, но не подлежащих категорированию компьютерных данных». Несмотря на то, что с недавнего времени эта криптосистема уже не имеет сертификата, она по-прежнему широко применяется и достойна изучения. Основным преимуществом DES является то, что ее использование позволяет достичь очень высокой скорости шифрования и дешифрования. История создания DES описана Хорстом Фейстелом в [175], ее «настоящее и будущее» - Майлсом Смидом и Деннисом Брэнстэдом в [337]. Мы не будем описывать здесь детально алгоритмм DES. Для этого обращайтесь к [277, 142, 337]. Отметим лишь, что в нем Шифруются 64-битовые блоки данных с использованием секретного ключа длиной в 64 бита. Однако, фактически секретными в нем являются только 56 бит, так как последние разряды байтов, составляющих ключ, т.е. его 8-ой, 16-ый, ..., б4-ый биты, отведены для контроля предшествующих разрядов соответствующих байтов по четности. Алгоритм DES предварительно преобразует секретную 56-битовую часть ключа посредством вполне определенного алгоритма формирования ключей, использующего перестановки и сдвиги, в шестнадцать 48-битовых частичных ключей, используя каждый из битов первичного ключа по нескольку раз. Затем после стандартной начальной перестановки над 64-битовым блоком данных открытого текста производится шестнадцать раундов некоего конкретного преобразования, в конце которого осуществляется инверсия начальной перестановки. При этом, следуя рекомендациям Шеннона, в каждом раунде выполняется один шаг перемешивания (с использованием соответствующего частичного ключа и так называемых S-боксов), за которым следует один шаг рассеивания. Примечательно, что процесс на этапе рассеивания не зависит от секретного ключа, так что стойкость достигается за счет комбинации перемешива- ния и рассеивания, даже несмотря на то, что один из двух шагов преобразования является стандартньш и общеизвестным. Алгоритм DES разработан таким образом, что дешифрование в нем выполняется с помощью точно такого же процесса (в прямом порядке), что и шифрование, за исключением того, что формирование частичных ключей для дешифрования тогда будет производиться в обратном порядке. Это очень удобно, поскольку одно и то же устройство может использоваться как для процедуры шифрования, так и для процедуры дешифрования. Является ли использование DES достаточно надежным? В 1979 году Мартин Хеллман написал статью под названием «DES будет полностью раскрыт в течении десяти лет» [213]. Подобная полемика относительно стойкости DES обычно возникает из-за того, что пространство его ключей является относительно небольшим и позволяет сделать возможным его полный перебор, даже несмотря на то, что при этом он может быть довольно дорогостоящим. Миллион процессоров, работаюнщх в параллель и проверяюпдах миллион ключей за одну секунду, перебрал бы все его ключевое пространство за двадцать часов. Од-Нсйсо несмотря на многочисленные исследования криптосистемы DES [215, 158, 213, 348, 137, 145, 179, ИЗ, 319, 231, 93, и т.д.], никто еще пока не смог нгьйти в ней другие сколь-нибудь существенные изъяны. Таким образом, она, по-видимому, вполне отвечает требованиям обеспечения секретности для небольших и средних приложений. Тем не менее использование DES с целью установления подлинности (см. § 5.1) кажется более сомнительным, потому что последствия от нескольких успешно подделанных фальсификатором сообщений могут быть намного более серьезными, чем последствия от нескольких успешных расшифровок перехваченных шифртекстов. Простой методикой, которая может быть использована, для того чтобы сделать полный перебор более трудоемким, и без которой DES вообще не должен применяться, является многократное шифрование. Вместо одного 64-битового ключа необходимо использовать два (или, еще лучше, три) таких ключа. Очевидным подходом было бы зшнифровывать m по формуле с = DESjfe,(DESjfej(m)). Однако это не повышает стойкости, поскольку угроза простого поляого перебора может возникнуть 0 1 2 3 4 5 6 7 8 [ 9 ] 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |