Курсовая работа: Программная реализация алгоритма шифрования DES. Режим ECB
//Перестановка ключа (+ избавление от 8х битов)
transposition (key, i_key, table_key_initial_transposition, 56);
//Первоначальная перестановка данных
transposition (data, NULL, table_initial_transposition, 64);
for(inti=0; i<16; ++i)
{
//Сохранение Li(берется из правой части)
memcpy(Li, &data[4], 4);
//Сдвигключа
if (!decode)
{
shift_left_key (key, table_shift_key[i]); //При зашифровке
}
else
{
shift_right_key (key, table_shift_key_right[i]); //При расшифровке
}
//Перестановка ключа со сжатием
transposition (small_key, key,
table_transposition_with_compression, 48);
//Перестановка данных с расширением
transposition(big_data, &data[4],
table_transposition_with_extension, 48);
//Сложение данных XOR с ключом
for (int k=0; k<6; ++k)big_data[k]^=small_key[k];
//ПодстановкаспомощьюS-блоков
S_block (small_data, big_data);
//Перестановка данных с помощью P-блоков
transposition (small_data, NULL, table_transposition_P_block, 32);