Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 700218.doc
Скачиваний:
28
Добавлен:
01.05.2022
Размер:
1.36 Mб
Скачать

Шифрование данных с помощью алгоритма cast.

Цель работы: изучить методы шифрования данных в алгоритме CAST и освоить их практическое применение.

Теоретическое введение

Описываемый алгоритм CAST использует 64-битовый блок и 64-битовый ключ.Алгоритм использует шесть S-блоков с 8-битовым входом и 32-битовым выходом. Работа этих S-блоков сложна и зависит от реализации.

Для шифрования сначала блок открытого текста разбивается на левую и правую половины. Алгоритм состоит из 8 этапов. На каждом этапе правая половина объединяется с частью ключа с помощью функции f, а затем XOR результата и левой половины выполняются для получения новой правой половины. Первоначальная (до этапа) правая половина становится новой левой половиной.После 8 этапов ( не переставлять левую и правую половины после восьмого этапа) две половины объединяются, образуя шифротекст. Функция f проста:

  1. Разбить 32-битовый вход на четыре 8-битовых части: a, b, c, d.

  2. Разбить 16-битовый подключ на две 8-битовых половины: e, f.

  3. Подать a на вход S-блока 1, b – на вход S-блока 2, с – на вход S-блока 3, d – на вход S-блока 4, e – на вход S-блока 5 и f – на вход S-блока 6.

  4. Выполнить XOR шести выходов S-блоков, получая 32-битовый результат.

И

33

наче, 32-битовый вход может быть объединен с помощью XOR с 32 битами ключа, разбит на четыре 8-битовых части, котрые обрабатываются S-блоками и затем объединяются с помощью XOR. Безопасность N этапов, организованных таким образом, по-видимому, соответствует N+2 этапам другого варианта.

16-битовые подключи этапов легко получаются из 64-битового ключа. Если k1, k2, . . . k8 – это 8 байтов ключа, то на этапах алгоритма используются следующие подключи:

Этап 1: k1, k2.

Этап 2: k3, k4.

Этап 3: k5, k6.

Этап 4: k7, k8.

Этап 5: k4, k3.

Этап 6: k2, k1.

Этап 7: k8, k7.

Этап 8: k6, k5.

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

Задание:

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

Порядок выполнения работы:

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

 написать функцию дешифрования, в которую в качестве параметров передается ключ и символ (или строка символов) зашифрованного текста.

Оформление отчета:

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

34

Контрольные вопросы:

  1. В чем заключается суть метода шифрования CAST?

  2. Из скольких этапов состоит вычисление функции f?

  3. В чем заключена сила алгоритма CAST?