DES кодирование
Б.1 Введение
Система кодирования состоит из двух алгоритмов: первого, именуемого алгоритмом кодирования, позволяющего понятный текст превратить в непонятный (закодированный), и второго, именуемого алгоритмом декодировки, выполняющего обратную операцию.
Эти алгоритмы, состоящие из весьма сложных и даже особенных правил, должны быть сохранены в тайне, и поэтому не могут быть обнародованы в виде стандарта.
Хотя сказанное выше было справедливо несколько лет тому назад (до 1970 г.), недавние разработки в области криптографии позволили применять алгоритмы, содержащие параметр (называемый ключом), значение которого пользователь может выбрать из огромного числа возможных (2 для DES-алгоритма). Это должно исключить попытки получить доступ к тексту в его первоначальной понятной форме путем перебора всех ключей в пределах разумного времени (нескольких лет). Такие алгоритмы с параметром (ключом) могут быть изданы в виде стандарта. Таким явился (уникальный) случай с DES.
Создание DES
С 1968 по 1975 гг. IBM в лице H.Feistel разработала процедуру кодирования и декодирования (LUCIFER), состоящую из последовательности подстановок и перемещений, управляемых ключом.
Этот алгоритм, улучшенный и упрощенный, был принят как американский стандарт Национальным бюро стандартов (NBS) 15 июля 1977 г. под названием СТАНДАРТ КОДИРОВАНИЯ ДАННЫХ (DES). Недавно он был предложен в качестве стандарта ИСО (Международная организация по стандартизации) под названием DEAI (ИСО 1983).
Б.2 Алгоритмы кодирования и декодирования
Б.2.1 Алгоритм кодирования
Открытый алгоритм кодирования состоит из трех основных частей:
- кодирование элемента данных Т;
- вычисление функции ;
- вычисление индивидуальных ключей .
Понятный текст должен сначала быть переведен в двоичный и затем разбит на блоки по 64 бита (восемь символов, если используется двоичный код ASCII), чтобы создать элемент данных Т на входе алгоритма.
Блок-схема алгоритма кодирования DES
Б.2.1.1 Кодирование элемента данных Т
Входной Т блок, состоящий из 64 битов (), транспонируется один раз начальной перестановкой (IP) (см. таблицу Б.1), имея результатом = IР(Т).
Таблица Б.1 - Начальная перестановка (IP)
58 | 50 | 42 | 34 | 26 | 18 | 10 | 2 |
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 |