Анимация
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 25 26 27 28 29 30

рирования используется один и тот же алгоритм.

DES позволяет использовать для шифрования или дешифрирования блока одну и ту же функцию. Единс т-венное отличие состоит в том, что ключи должны использоваться в обратном порядке. То есть, если на этапах шифрования использовались ключи K1, K2, K3, K16, то ключами дешифрирования будут K16, K15, K14, K1. Алгоритм, который создает ключ для каждого этапа, также цикличен. Ключ сдвигается направо, а число поз и-ций сдвига равно 0, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1.

Режимы DES

FIPS PUB 81 определяет четыре режима работы: ECB, CBC, OFB и CFB (см. главу 9) [1143]. Банковские стандарты ANSI определяют для шифрования ECB и CBC, а для проверки подлинности - CBC и n-битовый CFB

[52].

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

Аппаратные и программные реализации DES

Об эффективных аппаратных и программных реализациях алгоритма много писалось [997, 81, 533, 534, 437, 738, 1573, 176, 271, 1572]. Утверждается, что самой быстрой является микросхема DES, разработанная в Digital Equipment Corporation [512]. Она поддерживает режимы ECB и CBC и основана на вентильной матрице GaAs, состоящей из 50000 транзисторов. Данные могут зашифровываться и дешифрироваться со скоростью 1 гигабит в секунду, обрабатывая 16.8 миллионов блоков в секунду. Это впечатляет. Параметры ряда коммерческих ми к-росхем DES приведены в 3-й. Кажущиеся противоречия между тактовой частотой и скоростью обработки да н-ных обусловлены конвейеризацией внутри микросхемы, в которой может быть реализовано несколько раб о-тающих параллельно DES-механизмов.

Наиболее выдающейся микросхемой DES является 6868 VLSI (ранее называвшаяся "Gatekeeper - Вратарь). Она не только может выполнять шифрование DES за 8 тактов (лабораторные прототипы могут делать это за 4 такта), но также выполнять троекратный DES в режиме ECB за 25 тактов, а троекратный DES в режимах OFB или CBC - за 35 актов. Мне это кажется невозможным, но уверяю вас, она именно так и работает.

Программная реализация DES на мэйнфрейме IBM 3090 может выполнить 32000 шифрований DES в секу н-ду. На других платформах скорость ниже, но все равно достаточно велика. В 2-й [603, 793] приведены действительные результаты и оценки для различных ми кропроцессоров Intel и Motorola.

Табл. 12-9. Коммерческие микросхемы DES

Производитель

Микросхема

Тактовая частота

Скорость данных

Доступ

Am9518

1981

3 МГц

l.3 Мбайт/с

Am9568

4 МГц

l.5 Мбайт/с

AmZ8068

1982

4 МГц

l.7 Мбайт/с

AT&T

T7000A

1985

l.9 Мбайт/с

CE-Infosys

SuperCrypt

CE99C003

1992

20 МГц

12.5 Мбайт/с

CE-Infosys

SuperCrypt

CE99C003A

1994

30 МГц

20.0 Мбайт/с

Cryptech

Cry12C102

1989

20 МГц

2.8 Мбайт/с

Newbridge

CA20C03A

1991

25 МГц

3.85 Мбайт/с

Newbridge

CA20C03W

1992

8 МГц

0.64 Мбайт/с

Newbridge

CA95C68/18/0 9

1993

33 МГц

14.67 Мбайт/с

Pijnenburg

PCC100

2.5 Мбайт/с

Semaphore

Roadrunner284

40 МГц

35.5 Мбайт/с

Communications



VLSI Technology VLSI Technology VLSI Technology Western Digital

VM007 VM009 6868

WD2001/2002

1993 1993 1995 1984

32 МГц

33 МГц

32 МГц 3 МГц

200.0 Мбайт/с 14.0

64.0 Мбайт/с

0.23 Мбайт/с

Д Д Д

Табл. 12-10.

Скорости DES на различных микропроцессорах и компьютерах

Процессор

Скорость (в МГц)

Блоки DES (в с)

8088

68000

80286

1100

68020

3500

68030

3900

80386

5000

68030

10000

68040

16000

68040

23000

80486

43000

Sun ELC 26000

HyperSparc 32000

RS6000-350 53000

Sparc 10/52 84000

DEC Alpha 4000/610 154000

HP9000/887 125 196,000

12.3 Безопасность DES

Люди давно интересуются безопасностью DES [458]. Было много рассуждений о длине ключа, количестве итераций и схеме S-блоков. S-блоки б1ли наиболее таинственными - какие-то константы, без видимого объя с-нения для чего и зачем они нужны. Хотя IBM утверждала, что работа алгоритма была результатом 17 человеко-лет интенсивного криптоанализа, некоторые люди опасались, что NSA вставило в алгоритм лазейку, которая позволит агентству легко дешифрировать перехваченные соо бщения.

Комитет по разведке Сената США чрезвычайно тщательно расследовал этот вопрос в 1978 году. Результаты работы комитета были засекречены, но в открытых итогах этого расследования с NSA были сняты все обвин е-ния в неуместном вмешательстве в проектирование алгоритма [1552]. "Было сказано, что NSA убедило IBM в достаточности более короткого ключа, косвенно помогло разработать структуры S-блоков и подтвердило, что в окончательном варианте DES, с учетом всех знаний NSA, отсутствовали статистические или математические бреши " [435]. 0днако, так как правительство не опубликовало подробности расследования, многих людей уб е-дить не удалось.

Тачмен (Tuchman) и Майер (Meyer), разработавшие DES криптографы IBM, заявили, что NSA не изменяло проект [841]:

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

Позже в одной из статей Тачмен писал: "Алгоритм DES был полностью разработан внутри IBM ее сотру д-никами. NSA не продиктовало ни единой связи!" Тачмен подтвердил это утверждение в своем докладе по ист о-рии DES на Национальной конференции по компьютерной безопасности (National Computer Security Conference)



в 1992 году.

С другой стороны, Копперсмит писал [373, 374]: "Агентство национальной безопасности (NSA) также пом о-гало IBM техническими советами." А Конхейм (Konheim) утверждал: "Мы послали S-блоки в Вашингтон. Они вернулись полностью переработанными. Мы проверили их, и они прошли нашу проверку." На этот факт и сс ы-лаются как на доказательство, что NSA вставило лазейку в DES. По вопросу о каком-либо преднамеренном о с-лаблении DES NSA заявило [363]:

Относительно Стандарта шифрования данных (DES) мы считаем, что ответ на ваш вопрос о роли NSA в разработке DES содержится в опубликованных итогах расследования Комитета Сената по разведке, проведенного в 1978 году. В сообщении Комитета указывается, что NSA никоим образом не искажало алгоритм, и что безопасность, предоставляемая DES для несе к-ретных данных, с целью защиты которых он и б1л разработан, была более чем адекватна в течение по крайней мере 5-10 лет. Короче говоря, NSA не вносило и не пыталось вносить никаких ослаблений в алгоритм DES.

Тогда почему они изменили S-блоки? Может быть, чтобы гарантировать, что лазейка не будет встроена в DES самой IBM. У NSA не было причин доверять исследователям IBM, и оно могло решить, что не до конца исполнит свой долг, если не обеспечит отсутствие лазеек в DES. Задание S-блоков и могло быть одним из сп о-собов гарантировать это.

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

Слабые ключи

Из-за того, что первоначальный ключ изменяется при получении подключа для каждого этапа алгоритма, определенные первоначальные ключи являются слабыми [721, 427]. Вспомните, первоначальное значение расщепляется на две половины, каждая из которых сдвигается независимо. Если все биты каждой половины равны 0 или 1, то для всех этапов алгоритма используется один и тот же ключ. Это может произойти, если ключ состоит из одних 1, из одних 0, или если одна половина ключа состоит из одних 1, а другая - из одних 0. Кроме того, у два слабых ключа обладают другими свойствами, снижающими их безопасность [427].

Четыре слабых ключа показаны в шестнадцатиричном виде в 1-й. (Не забывайте, что каждый восьмой бит -это бит четности.)

Табл. 12-11.

Слабые ключи DES

Значение слабого ключа (с битами четн ости)

Действительный ключ

0101

0101

0101

0101

0000000 0000000

1F1F

1F1F

0E0E

0E0E

0000000 FFFFFFF

E0E0

E0E0

F1F1

F1F1

FFFFFFF 0000000

FEFE

FEFE

FEFE

FEFE

FFFFFFF FFFFFFF

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

Табл. 12-12.

Полуслабые пары ключей DES

01FE

01FE

01FE

01FE

FE01

FE01

FE01

FE01

1FE0

1FE0

0EF1

0EF1

E01F

E01F

F10E

F10E

01E0

01E0

01F1

01F1

E001

E001

F101

F101

1FFE

1EEE

0EFE

0EFE

FE1F

FE1F

FE0E

FE0E

011F

011F

010E

010E

1F01

1F01

0E01

0E01

E0FE

E0FE

F1FE

F1FE

FEE0

FEE0

FEE1

FEE1

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



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