Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Студентам ИТ / 2 УПП_ИТ / Основн_литература / ИТ (Защита_инф) / Информационная безонасность, УПП

.pdf
Скачиваний:
28
Добавлен:
14.02.2016
Размер:
786.3 Кб
Скачать

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

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

Симметричные алгоритмы работают значительно быстрее, чем алгоритмы с открытым ключом. На практике несимметричные алгоритмы шифрования часто применяются в совокупности с симметричными алгоритмами: открытый текст зашифровывается симметричным алгоритмом, а секретный ключ этого симметричного алгоритма зашифровывается на открытом ключе несимметричного алгоритма. Такой механизм называют цифровым конвертом (digital envelope).

Наиболее широко в настоящее время применяются следующие алгоритмы шифрования:

DES (Data Encryption Standard);

Blowfish;

IDEA (International Decryption-Encryption Algorithm);

ГОСТ 28147-89;

RSA (авторы: Rivest, Shamir и Alderman);

PGP

Всимметричных криптоалгоритмах (DES, ГОСТ, Blowfish, RC5, IDEA) для шифрования и расшифрования информации используется один и тот же секретный ключ. Достоинствами таких алгоритмов являются:

простота программной и аппаратной реализации;

высокая скорость работы в прямом и обратном направлениях;

обеспечение необходимого уровня защиты информации при исполь-

зовании коротких ключей.

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

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

41

щение или поставить подпись может только владелец секретного ключа. Такие алгоритмы позволяют реализовать протоколы типа цифро-

вой подписи, обеспечивают открытое распространение ключей и надежную аутентификацию в сети, устойчивую даже к полному перехвату трафика.

Общая характеристика современных стандартов шифрования

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

тов. Это DES (Data Encryption Standard), RSA (алгоритм Rivest-Shamir- Adleman), PGP, наш отечественный ГОСТ 28147-89 (который в иностранной литературе чаще называется просто GOST) и другие. Причем современные шифры - это не только собственно алгоритмы шифрования, а криптографические системы, где определены также возможные типы и параметры ключей, способы организации работы с ключами и зашифрованными сообщениями, правила определения подлинности и целостности сообщений и т.п. Основа каждого стандарта - определенные математические построения, знать которые не обязательно. Гораздо важнее знать особенности и область применения того или иного стандарта.

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

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

Протоколы имеют и другие отличительные черты:

каждый участник протокола должен быть заранее оповещен о шагах, которые ему предстоит предпринять;

все участники протокола должны следовать его правилам добровольно, без принуждения;

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

42

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

туации протоколом не определено соответствующее действие. Криптографическим протоколом называется такой, в основе кото-

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

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

Популярный алгоритм шифрования данных DES применяется правительством США как стандарт с 1977 года. Для шифрования алгоритм использует 64-битный ключ, блок данных из 64-и бит и 16-и проходов (циклов). Этот алгоритм достаточно быстр и эффективен. Однако в изначальном виде этот стандарт недостаточно криптоустойчив, т. к. прямые атаки с перебором ключей занимают, при сегодняшнем уровне технологий, разумный срок. Поэтому в настоящее время используются всевозможные его модификации, такие как 3-DES и каскадный 3-DES.

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

43

редачи существует, то вполне разумно тогда передать и само сообщение по этому же каналу, не прибегая к процедуре шифрования.

Государственный стандарт ГОСТ 28147-89 был утвержден в 1989 году как средство обеспечения безопасности, являющееся стандартом для государственных учреждений. Хотя он и не является основным криптосредством защищенных линий правительственной связи, однако это единственный более-менее открытый стандарт такого рода для исследования и использования самым широким кругом людей. Несмотря на то что в России ГОСТ играл ту же роль, что и DES в США, этот стандарт стал употребляться и в других странах. Например, алгоритм шифрования популярного архиватора ARJ построен как раз на использовании алгоритмов ГОСТ.

ГОСТ очень схож с DES. В нем так же используются 64-битные блоки. Тем не менее есть и ряд различий, например, в ГОСТ совершается 32 прохода вместо 16-и, ключ гораздо длиннее и состоит из 256 бит и т. д. В общем, среди специалистов принято считать, что он по своим характеристикам превосходит DES. Однако в настоящее время и его расшифровка лежит в пределах современных технологий. И точно так же ему присущи все недостатки алгоритмов, использующих симметричные ключи.

Сегодня популярен стандарт шифрования RSA. Во многом это произошло благодаря распространенности в Internet программы PGP (Pretty Good Privacy) Филиппа Зиммермана. RSA - это алгоритм несимметричного шифрования, стойкость которого зависит от сложности факторизации больших целых чисел. В настоящее время алгоритм взлома RSA не разработан математически, а за счет использования очень длинных ключей и некоторой медленности всего алгоритма перебор за разумное время попросту невозможен.

В несимметричных алгоритмах используются два разных ключа: один известен всем, а другой держится в тайне. Обычно для шифрования и расшифровки используются оба ключа. Но данные, зашифрованные одним ключом, можно расшифровать только с помощью другого ключа. Это обстоятельство делает RSA очень удобным для использования в электронной переписке. Открытый ключ делается общедоступным (его попросту можно вставлять в реквизиты вашего письма). Каждый может зашифровать сообщение и послать его вам. А расшифровать сообщение, даже зная открытый ключ, невозможно. Для этого надо знать второй, закрытый ключ, который есть только у отправителя. Однако и здесь существуют свои трудности:

в случае утраты секретного ключа придется уведомлять всех владельцев открытой половины о смене ключей;

44

трудно убедиться в подлинности присланного вам открытого ключа. Кроме того, отправителя легко подделать. Для того чтобы убе-

диться в подлинности ключа, порой используют целую «цепочку доверия», где каждый последующий передающий на 100% уверен в подлинности ключа (вследствие давнего знакомства, близости расположения к отправителю или в силу других причин), подтверждает эту подлинность своей подписью и пересылает ключ дальше.

Однако следует разделять собственно алгоритм RSA и другие продукты лаборатории RSA Data Security. Например, существует еще алгоритм RC5 – быстрый блочный шифр, который имеет размер блока 32, 64 или 128 бит, ключ длиной от 0 до 2048 бит, от 0 до 255 проходов.

Стандарт шифрования данных DES и его практическая реализация

Стандарт шифрования данных DES (Data Encryption Standard) является одним из известных алгоритмов криптографической защиты данных, используемых до недавнего времени в США. Этот стандарт - типичный представитель криптоалгоритмов, использующих симметричное шифрование. Благодаря таким качествам, как обеспечение высокого уровня защиты информации, простота и экономичность в реализации, он нашел широкое применение в различных областях государственной и военной деятельности. Рассмотрим детально принцип шифрования данных с помощью алгоритма DES

Сегодня стандарт шифрования DES используется в Соединенных Штатах, за небольшим исключением, практически везде. Правительственная связь, электронные банковские переводы, гражданские спутниковые коммуникации и даже пароли компьютерных систем - везде, в той или иной мере, применяется защита, основанная на DES. Криптоалгоритм DES, получивший официальный статус стандарта в 1977 году, ознаменовал наступление новой эпохи в криптографии. Сертифицировав алгоритм защиты, американское правительство дало зеленую улицу изучению криптографических алгоритмов и «благословило» попытки взлома систем, построенных на их основе.

Логическая структура функционирования алгоритма DES иллюстрируется схемой обработки данных, изображенной на рис. 3.3.

45

 

 

 

Вход 64 бита

 

 

 

 

 

 

Выход 64 бита

 

 

 

 

 

 

 

 

 

 

 

 

Ключ 64 бита

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

64

 

 

 

 

 

 

 

 

 

 

64

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

64 (56)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Блок начальной

 

 

 

 

 

 

Блок обратной

 

 

 

 

 

 

 

 

 

 

 

Блок сокращенной

 

 

 

 

 

перестановки

 

 

 

 

 

 

перестановки

 

 

 

 

 

 

 

 

 

 

 

 

перестановки 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

28

 

 

 

 

 

28

 

32

 

 

 

 

 

 

 

 

32

32

 

 

 

 

 

 

 

 

 

32

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Левый

 

 

 

 

 

 

 

 

Правый

 

 

 

 

 

 

 

 

Регистр C

Регистр C

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

регистр

 

32

 

 

 

 

 

регистр

 

 

 

 

 

 

 

 

 

 

28

 

 

 

28

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Блок сокращенной

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

32

 

 

 

 

 

 

 

 

 

 

перестановки 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

32

 

 

 

32

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Блок обратной

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Блоки

 

 

 

перестановки

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

замены

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

48

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

48

 

Ключ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Блок

 

 

 

 

 

 

S2

 

 

 

 

 

 

 

 

 

 

 

 

Блок

 

 

 

шифрования

 

сложения

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

по модулю 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

сложения

цикла

 

 

 

 

 

S3

 

 

 

 

 

 

 

 

 

по модулю 2

 

 

 

 

 

 

 

 

 

32

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Блок обратной

32

 

 

 

 

 

 

 

48

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

перестановки

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S61

 

 

 

 

Рис. 3.3. Логическая структурная

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S71

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

схема алгоритма

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

шифрования данных DES

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Приведенная схема описывает как процесс шифрования, так и расшифровки информации. Алгоритм шифрования данных преобразует открытый текст в шифротекст или наоборот, в зависимости от режима использования. Как видно из структурной схемы, алгоритм имеет два входа по 64 бита каждый: один - для шифруемого открытого текста (при дешифровке — для шифротекста), другой - для ключа, и один 64-битный выход для полученного шифротекста (при расшифровке — для открытого текста). Из 64-х бит ключа непосредственно в

46

процессе шифрования участвуют только 56 бит. Это связано с тем, что ключ представляется в виде восьмибитовых символов кода ASCII, каждый символ которого имеет один бит проверки на четность. Именно эти проверочные биты и не используются в алгоритме DES.

1

2

3

4

5

6

7

8

 

Данные

 

 

 

 

 

 

 

 

 

 

58 50 42 34 26 18 10 2

 

1 1 0 1 1….

60 52 44 36 28 20 12 4

 

 

62 54 46 38 30 22 14 6

 

 

64 56 48 40 32 24 16 8

 

 

57 49 41 33 25 17 9

1

 

 

59 51 43 35 27 19 11 3

 

 

61 53 45 37 29 21 13 5

 

 

63 55 47 39 31 23 15 7

 

Рис. 3.4. Порядок за-

 

 

 

 

 

 

 

 

 

 

57 58 59 60 61 62 63

64

мены

Основными блоками преобразования данных согласно алгоритму DES являются блоки перестановки, замены и сложения по модулю 2. В стандарте DES предусмотрено использование трех типов перестановок: простые, расширенные и сокращенные. Простые перестановки осуществляют изменение порядка следования бит данных. В расширенных перестановках некоторые биты используются повторно, а в сокращенных - часть битов данных просто отбрасывается.

Первым преобразованием, которому подвергаются входные данные, является начальная перестановка, имеющая достаточно регулярный характер. Точный порядок замены показан на рис. 3.4. При такой перестановке первый входной бит на выходе становится сороковым, второй - восьмым и т.д. Начальная перестановка используется только для удобства реализации и не имеет самостоятельной криптографической ценности

После начальной перестановки полученные 64 бита данных делятся на две части по 32 бита, которые записываются в два регистра - левый и правый. Именно после этого и начинается работа основного цикла алгоритма шифрования.

Из правого регистра 32 бита поступают на вход блока расширенной перестановки, который производит их регулярное преобразование таким образом, что первый, четвертый, пятый и восьмой биты каждого из четырех октетов преобразуемых бит используются дважды. Таким образом, на выходе блока расширенной перестановки появляется уже не 32, а 48 бит. Правило преобразования данных в блоке расширенной перестановки представлено на рис. 4.8. Как видно из рисунка, при

47

расширенной перестановке 1-й выходной бит соответствует 32-му входному биту, 2-й выходной бит - 1-му входному и т. д.

С выхода блока расширенной перестановки полученные 48 бит данных поступают на сумматор по модулю 2, где складываются с 48 битами ключа шифрования. Полученные в результате этой операции 48 бит данных разделяются на 8 секстетов, поступающих на 8 соответствующих S-блоков замены. С выходов S-блоков 32 бита (8 раз по 4 бита) поступают на блок простой перестановки, задаваемой табл. 3.1, согласно которой в простой перестановке 1-й выходной бит равен 16му входному, 2-й выходной бит - 7-му входному и т.д.

Таблица 3.1. Правило простой перестановки

16

7

20

21

29

12

28

17

1

15

23

26

5

18

31

10

2

8

24

14

32

27

3

9

19

13

30

6

22

11

4

25

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

Описанная процедура основного цикла шифрования повторяется 16 раз, прежде чем содержимое правого и левого регистра объединяется в единый 64-битный блок данных и после блока обратной перестановки, осуществляющего перестановку, обратную по отношению к начальной перестановке, поступает на выход алгоритма DES. Отметим, что при формировании 64-битного блока данных, содержимое регистров объединяется в последовательности правого и левого регистров.

Блоки замены в алгоритме DES (в литературе обычно обозначаемые как S-блоки) имеют 6-битные входы и 4-битные выходы. Правило замены в каждом S-блоке определяется соответствующими таблицами S1—S8, представленными ниже.

Первый и последний биты 6-битного входа каждого S-блока задают число в диапазоне от 0 до 3, которое определяет номер строки в таблице замены, биты 2 - 5 задают число в интервале 0 - 15, определяя таким образом номер элемента таблицы замены в соответствующей строке. Каждый элемент таблицы замены, представленный в двоичном

48

виде, определяет 4 бита на выходе соответствующего S-блока. Рассмотрим преобразования, производимые с ключом шифрова-

ния до его суммирования с данными, поступающими с выхода блока регистра перестановки. На каждом из 16-и циклов шифрования данные с выхода блока регистра перестановки суммируются с новым ключом шифрования. В правой части рис. 3.3 представлен процесс формирования ключа шифрования для каждого из 16-и циклов.

64 бита исходного ключа преобразуются в первом блоке сокращенной перестановки, где отбрасывается каждый восьмой бит. Если исходный ключ записан в виде 8-и символов кода ASCII, то каждый восьмой отбрасываемый бит является избыточным битом проверки на четность. Результат, полученный в блоке сокращенной перестановки 1 - 56 бит, записывается в регистры С и D, содержащие по 28 бит каждый. Правило перестановки первого блока сокращенной перестановки, с учетом распределения выходных данных по регистрам, задается таблицами 3.2.

Согласно этим таблицам, первый бит регистра C соответствует 57-му биту исходного ключа шифрования, а первый бит регистра D - 63-му биту ключа шифрования.

Оба регистра обеспечивают возможность циклического сдвига содержащихся в них данных. На каждом цикле алгоритма шифрования производится циклический сдвиг содержимого регистров на 1 или 2 бита влево. Величина сдвига (в битах) на соответствующем цикле задается следующим алгоритмом:

Цикл

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

Сдвиг

1

1

2

2

2

2

2

2

1

2

2

2

2

2

2

1

Затем содержимое двух регистров объединяется и подвергается второй сокращенной перестановке, порядок которой задается табл. 3.3. На каждом цикле алгоритма шифрования на выходе сокращенной перестановки образуется ключ шифрования данного цикла.

49

Таблица 3.2.

Регистр C

57

49

41

33

25

17

9

1

58

50

42

34

26

18

10

2

59

51

43

35

27

19

11

3

60

52

44

36

Регистр D

63

55

47

39

31

23

15

7

62

54

46

38

30

22

14

6

61

53

445

37

29

21

13

5

28

20

12

4

S2

0

15

1

8

14

6

11

3

4

9

7

2

13

12

0

5

10

 

1

3

13

4

7

15

2

8

14

12

0

1

10

6

9

11

5

 

2

0

14

7

11

10

4

13

1

5

8

12

6

9

3

2

15

 

3

13

8

10

1

3

15

4

2

11

6

7

12

0

5

14

9

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S3

0

10

0

9

14

6

3

15

5

1

13

121

7

11

4

2

8

 

1

13

7

0

9

3

4

6

10

2

8

5

14

12

11

15

1

 

2

13

6

4

9

8

15

3

0

11

1

2

12

5

10

14

7

 

3

1

10

13

0

6

9

8

7

4

15

14

3

11

5

2

12

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S4

0

7

13

14

3

0

6

9

10

1

2

8

5

11

12

4

15

 

1

13

8

11

5

6

15

0

3

4

7

2

12

1

10

14

9

 

2

10

6

9

0

12

11

7

13

15

1

3

14

5

2

8

4

 

3

3

15

0

6

10

1

13

8

9

4

5

11

12

7

2

12

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S5

0

2

12

4

1

7

10

11

6

8

5

3

15

13

0

14

9

 

1

14

11

2

12

4

7

13

1

5

0

15

10

3

9

8

6

 

2

4

2

1

11

10

13

7

8

15

9

12

5

6

3

0

14

 

3

11

8

12

7

1

14

2

13

6

15

0

9

10

4

5

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S6

0

12

1

10

15

9

2

6

8

0

13

3

4

14

7

5

11

 

1

10

15

4

2

7

12

9

5

6

1

13

14

0

11

3

8

 

2

9

14

15

5

2

8

12

3

7

0

4

10

1

13

11

6

 

3

6

11

13

8

1

4

10

7

9

5

0

15

14

2

3

12

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S7

0

4

11

2

14

15

0

8

13

3

12

9

7

5

10

6

1

 

1

13

0

11

7

4

9

1

10

14

3

5

12

2

15

8

6

 

2

1

4

11

13

12

3

7

14

10

15

6

8

0

5

9

2

 

3

6

11

13

8

1

4

10

7

9

5

0

15

14

2

3

12

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S8

0

13

2

8

4

6

15

11

1

10

9

3

14

5

0

12

7

 

1

1

15

13

8

10

3

7

4

12

5

6

11

0

14

9

2

 

2

7

11

4

1

9

12

14

2

0

6

10

13

15

3

5

8

 

3

2

1

14

7

4

10

8

13

15

12

9

0

3

5

6

11

50