Анимация
JavaScript


Главная  Библионтека 

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

2. СИММЕТРИЧНЫЕ КРИПТОСИСТЕМЫ

2.1. Основные классы симметричных криптосистем

Под симметричными криптографичесьсими системами понимаются такие криптосистемы, в которых для шифрования и расшифрования используется один и тот же ключ.

Исходное Отправитель Зашифр. Получатель сообщение (Д) сообщение (В)

Y=Ek(k,X),

> Шифратор

Дешифратхэр Х=Ек \к, Е (кД))

Ключ (к)

Ключ (к)

Рис 2.1. Схема симметричной криптосистемы.

Для пользователей это означает, что прежде, чем начать использовать систему, необходимо получить обш,ий секретный ключ так, чтобы исключить к нему доступ потенциального злоумышленника. Все многообразие симметричных криптосистем основывается на следуюш,их базовых классах.

Моно- и многоалфавитные подстановки.

Моноалфавитные подстановки - это наиболее простой вид преобразований, заключаюш,ийся в замене символов исходного текста на другие (того же алфавита) по более или менее сложному правилу. В случае моноалфавитных подстановок каждый символ исходного текста преобразуется в символ шифрованного текста по одному и тому же закону. При многоалфавитной подстановке закон преобразования меняется от символа к символу. Один и тот же шифр может рассматриваться и как моно- и как многоалфавитный в зависимости от определяемого алфавита. Например, шифр Плейфера (подстановка биграмм) с точки зрения обычного алфавита является моноалфавитным, а с точки зрения алфавита биграмм - многоалфавитным.

Перестановки.

Также несложный метод криптографического преобразования, заключаюш,ийся в перестановке местами символов исход-

ного текста по некоторому правилу. Шифры перестановок в на-стояш,ее время не используются в чистом виде, так как их криптостойкость недостаточна. Блочные шифры.

Представляют собой семейство обратимых преобразований блоков (частей фиксированной длины) исходного текста. Фактически блочный шифр - это система подстановки на алфавите блоков (она может быть моно- или многоалфавитной в зависимости от режима блочного шифра). В настояш,ее время блочные шифры наиболее распространены на практике. Российский и американский стандарты шифрования относятся именно к этому классу шифров.

Гаммирование.

Представляет собой преобразование исходного текста, при котором символы исходного текста складываются (по модулю, равному мош,ности алфавита) с символами псевдослучайной последовательности, вырабатываемой по некоторому правилу. Собственно говоря, гаммирование нельзя целиком выделить в отдельный класс криптографических преобразований, так как эта псевдослучайная последовательность может вырабатываться, например, с помош,ью блочного шифра. В случае, если последовательность является истинно случайной (например, снятой с физического датчика) и каждый ее фрагмент используется только один раз, то имеет место криптосистема с одноразовым ключом.

2.2. Общие сведения о блочных шифрах.

Под N-разрядным блоком будем понимать последовательность из нулей и единиц длины N:

Х = (Хо ,Xi , ...,Xn-\) G Z2,№

X в Zijj можно интерпретировать как вектор и как двоичное представление целого числа

N-i-1

Теория блочных шифров в целом изложена по работе [8]. 16



Например, если N=4, то (0,0,0,0)0 (0,0,0,1)1 (0,0,1,0)2 (0,0,1,1)3 (0,1,0,0)4 (0,1,0,1)5 (0,1,1,0)6 (0,1,1,1)7 (1,0,0,0)8 (1,0,0,1)9 (1,0,1,0)10 (1,0,1,1)11 (1,1,0,0)12 (1,1,0,1)13 (1,1,1,0)14 (1,1,1,1)15.

Блочным шифром будем называть элемент л g SYM(Z2,n): л: х-у = 7i;(x), где х = (хо, Хх, Хмл), У = (Уо, Уъ Умл). Хотя блочные шифры являются частными случаями подстановок (только на алфавитах очень большой мош,ности), их следует рассматривать особо, поскольку, во-первых, большинство симметричных шифров, используемых в системах передачи информации, являются блочными и, во-вторых, блочные шифры удобнее всего описывать в алгоритмическом виде, а не как обычные подстановки.

Предположим, что

7i;(xi) = у,, О < / < w,

для некоторого л g SYM(Z2,a), исходного текста X = {х,: х, gZ2} и шифрованного текста Y = {у;}. Что можно сказать о л(х), если х€ {xi}? Поскольку % является перестановкой на Z2n , то {у,} различны и л(х)€ {у,} при х€ {х,}. Что же еш,е можно сказать о л?

(2 - т)! из (2)! перестановок в SYM(Z2 a) удовлетворяет уравнению

л(х,) = у,, О < / < т.

Дальнейшая спецификация л(х) при отсутствии дополнительной информации не представляется возможной. Это определяется в основном тем обстоятельством, что л является элементом, при-надлежаш,им SYM(Z2 n)- Если известно, что л принадлежит небольшому подмножеству П из SYM(Z2,n), то можно сделать более определенный вывод. Например, если

П = {л,: 0< j <2}, л/О = (i+j) (mod 2), О < / <2 ,

то значение л(х) при заданном значении х однозначно определяет л. В этом случае X является подмножеством подстановок Цезаря на Z2,№

Криптографическое значение этого свойства должно быть очевидно: если исходный текст шифруется подстановкой л, выбранной из полной симметрической группы, то злоумышленник, изучаюш,ий соответствие между подмножествами исходного и шифрованного текстов

X/ <->у1,0< i<m,

не в состоянии на основе этой информации определить исходный текст, соответствуюш,ий у€ {у,}.

Если для шифрования исходного текста используется подсистема л из Hg SYM(Z2 n)5 то получаюш,уюся в результате систему подстановок П будем называть системой блочных шифров или системой блочных подстановок. Блочный шифр представляет собой частный случай моноалфавитной подстановки с алфавитом Z2N = Z2 N • Если информация исходного текста не может быть представлена N-разрядными блоками, как в случае стандартного алфавитно-цифрового текста, то первое, что нужно сделать, это перекодировать исходный текст именно в этот формат. Перекодирование можно осуш,ествить несколькими способами и с практической точки зрения неважно, какой из способов был выбран.

В установках обработки информации блочные шифры будут использоваться многими пользователями. Ключевой системой блочных шифров является подмножество П[К] симметрической

группы SYM(Z2,7v)

П[K] = {л{A:}:GK},

индексируемое по параметру А: g К; А: является ключом, а К -пространством ключей. При этом не требуется, чтобы различные ключи соответствовали различным подстановкам Z2 n-

Ключевая система блочных шифров П[К] используется сле-дуюш,им образом. Пользователь / и пользователь j некоторым образом заключают соглашение относительно ключа к из К, выбирая, таким образом, элемент из П[К] и передавая текст, зашифрованный с использованием выбранной подстановки. Запись

У = х}



будем использовать для обозначения N-разрядного блока шифрованного текста, который получен в результате шифрования N-разрядного блока исходного текста х с использованием подстановки л {А:}, соответствуюш,ей ключу к. Положим, что злоумышленнику

известно пространство ключей К;

известен алгоритм определения подстановки л{А:} по

значению ключа к; неизвестно, какой именно ключ к выбрал пользователь. Какими возможностями располагает злоумышленник? Он может:

получить ключ вследствие небрежности пользователя / или пользователя j;

перехватить (путем перехвата телефонных и компьютерных сообш,ений) шифрованный текст у, передаваемый пользователем / пользователю j, и производить пробы на все возможные ключи из К до получения читаемого сообш,ения исходного текста;

получить соответствуюш,ие исходный и шифрованный тексты (ху) и воспользоваться методом пробы на ключ;

получить соответствуюш,ие исходный и шифрованный тексты и исследовать соотношение исходного текста X и шифрованного текста у для определения ключа к,

организовать каталог N-разрядных блоков с записью частот их появления в исходном или шифрованном тексте. Каталог дает возможность производить поиск наиболее вероятных слов, используя, например, сле-дуюш,ую информацию:

листинг на языке ассемблера характеризуется сильно выраженным структурированным форматом,

цифровое представление графической и звуковой информации имеет ограниченный набор знаков. Предположим, что iV = 64 и каждый элемент SYM(Z2,a) может быть использован как подстановка, так что K=SYM(Z2). Тогда:

суш,ествует 2 64-разрядных блоков; злоумышленник не может поддерживать каталог с 2 =l,8•10 строками;

проба на ключ при числе ключей, равном (2")!, практически невозможна; соответствие исходного и шифрованного текстов для некоторых N-разрядных блоков л{А:,Х/} = у, , О < / < /и, не дает злоумышленнику информации относительно значения к{к, х} для х€ {х,}. Системы шифрования с блочными шифрами, алфавитом Z2 64 и пространством ключей K=SYM(Z2 64) являются неделимыми в том смысле, что поддержание каталога частот появления букв для 64-разрядных блоков или проба на ключ при числе ключей 2 выходит за пределы возможностей злоумышленника Следует сравнить эту проблему с той задачей, с которой сталкивается злоумышленник в процессе криптоанализа текста, зашифрованного подстановкой Цезаря с алфавитом {А,..., Я, }; для определения ключа подстановки Цезаря требуется лишь log232 = 5 бит, в то время как для пространства ключей K=SYM(Z2,64) требуется 2" битов.

К сожалению, разработчик и злоумышленник находятся в одинаковом положении: разработчик не может создать систему, в которой были бы реализованы все 2\ подстановок SYM(Z2 64)5 а злоумышленник не может испытать такое число ключей. Остается согласиться с тем, что не каждый элемент из SYM(Z2,64) будет использован в качестве подстановки.

Таким образом, требования к хорошему блочному шифру формулируются следуюш,им образом. Необходимы:

достаточно большое N (64 или более) для того, чтобы затруднить составление и поддержание каталога В новом стандарте шифрования СШАЖне меньше 128; достаточно большое пространство ключей для того, чтобы исключить возможность подбора ключа; сложные соотношения л{к,х} : х у=л{к,х} между исходным и шифрованным текстами с тем, чтобы аналитические и (или) статистические методы определения исходного текста и (или) ключа на основе соответствия исходного и шифрованного текстов были бы по возможности нереализуемы.

2.3. Генерирование блочных шифров

Одним из наиболее распространенных способов задания блочных шифров является использование так называемых сетей



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