Цель работы: получить умения и навыки по реализации блочного симметричного алгоритма шифрования.
План выполнения работы
1. Изучите симметричный алгоритм шифрования ТЕА. Алгоритм в виде блок схемы представлен на следующем рисунке.
Рисунок 1. Блок схема алгоритма шифрования TEA
Пример реализации алгоритма на языке Си приведен ниже:
#include
void encrypt (uint32_t* v, uint32_t* k) { /* set up */
uint32_t v0 = v[0];
uint32_t v1 = v[1];
uint32_t sum = 0;
uint32_t i;
/* a key schedule constant */
uint32_t delta = 0x9e3779b9;
/* cache key */
uint32_t k0 = k[0];
uint32_t k1 = k[1];
uint32_t k2 = k[2];
uint32_t k3 = k[3];
/* basic cycle start */
for (i = 0; i < 32; i++) {
sum += delta;
v0 += ((v1 << 4) + k0) ^ (v1 + sum) ^ ((v1 >> 5) + k1);
v1 += ((v0 << 4) + k2) ^ (v0 + sum) ^ ((v0 >> 5) + k3);
}
/* end cycle */
v[0] = v0;
v[1] = v1;
}
void decrypt (uint32_t* v, uint32_t* k) {
/* set up */
uint32_t v0 = v[0];
uint32_t v1 = v[1];
uint32_t sum = 0xC6EF3720;
uint32_t i;
/* a key schedule constant */
uint32_t delta = 0x9e3779b9;
/* cache key */
uint32_t k0 = k[0];
uint32_t k1 = k[1];
uint32_t k2 = k[2];
uint32_t k3 = k[3];
/* basic cycle start */
for (i = 0; i < 32; i++) {
v1 -= ((v0 << 4) + k2) ^ (v0 + sum) ^ ((v0 >> 5) + k3);
v0 -= ((v1 << 4) + k0) ^ (v1 + sum) ^ ((v1 >> 5) + k1);
sum -= delta;
} /* end cycle */
v[0] = v0;
v[1] = v1;}
Где: v — исходный текст состоящий из двух частей по 32 бита. k — ключ состоящий из четырёх 32-битных частей.
2. Разработать на выбранном и согласованном с преподавателем языке программирования программу шифрования 1 блока данных длиной 64 бита, находящемся в произвольном файле по алгоритму шифрования TEA. Блок-схема алгоритма шифрования приведена на следующем рисунке.
Рисунок 2. Блок схема алгоритма шифрования3. При программировании исходный текст должен содержать комментарии ко всем идентификаторам (переменным, константам и функциям), а также к основным блокам реализации алгоритма в программном коде.
4. Все идентификаторы должны содержать в начале имени инициалы студента и символ подчеркивания. Пример: «ИАА_key».
5. Разработать на выбранном и согласованном с преподавателем языке программирования программу дешифрирования 1 блока данных длиной 64 бита, находящемся в произвольном файле по алгоритму TEA. Блок-схема алгоритма дешифрирования приведены на следующем рисунке.
6. Результат в виде исполняемого файла, исходного текста и описания программы должен быть оформлен в виде архива ZIP с именем, включающем наименование предмета, номер работы и ФИО студента. Пример: «ЗащитаКИС_Пр1_ИвановАА.zip».
7. Работу в виде архива прислать для проверки преподавателю.
Рисунок 3. Блок схема алгоритма дешифрированияСодержание отчета по практической работе1.Титульный лист.
2.Краткое описание программы и пример ее работы.
3.Выводы по полученным результатам.
4.Исходный текст программы.
5.Исполняемый код программы.
Подпишись на рассылку. Мы пришлем статьи по написанию и оформлению твоей работы по ГОСТу 2020 года. В том числе бесплатные примеры, образцы без водных знаков + ЖИРНЫЙ БОНУС от наших партнеров.