Курсовая работа: Программная реализация алгоритма шифрования DES. Режим ECB

get_bit((unsigned char *)(&inp), 6) << 3;

return S_table[string * 16 + column];

}

//РеализуеталгоритмподстановкиS-блоков

void S_block (unsigned char *dest, unsigned char *src)

{

intS_inp;//6 бит, подающиеся на вход в S-блок

intS_out;//4 бита, получаемые из S-блока

for (int i=0; i<4; ++i) dest[i]=0;

for (int i=0; i<8; ++i)

{

shift_left (src, 6, i);

S_inp=(src[0] >> 2) & 0x3F;

S_out=get_S_substitution(S_inp, table_S_block[i]);

dest[i/2] |= S_out << (((i + 1) % 2) * 4);

}

}

//Сам алгоритм DES. i_key- 64 бита (8 байт) (с битами четности); data- 64 бита

//Алгоритм используется как при шифровании, так и при дешифровании. Ключ при

//дешифровании менять самим. При decode==false- зашифровка, если ==true-

//расшифровка

void DES_algorithm (unsigned char *i_key, unsigned char *data,

bool decode=false)

{

unsigned char key[7]; //Ключбезбитовчетности

unsignedcharLi[4]; //сохраненная левая половина данных

unsignedcharsmall_key[6]; //ключ после перестановки со сжатием

unsignedcharbig_data[6]; //данные после перестановки с расширением

unsignedcharsmall_data[4]; //данные после подстановки с помощью

К-во Просмотров: 647
Бесплатно скачать Курсовая работа: Программная реализация алгоритма шифрования DES. Режим ECB