Курсовая работа: Программная реализация алгоритма шифрования DES. Режим ECB
}
//Обменивает биты в соответсвии с таблицами перестановки
//data_src- входной массив данных. Если NULLтогда данные берутся из data_des
//data_des- входной/выходной массив данных.
//transposition_table - таблицаперестановки
//num - кол-воэлементов/ 8 вdata_des иэлементоввtransposition_table
void transposition (unsigned char *data_des, unsigned char *data_src,
int *transposition_table, int num)
{
bool delete_mem=false;
if (data_src==NULL)
{
data_src = new unsigned char[num / 8];
memcpy(data_src, data_des, num / 8);
delete_mem=true;
}
for (int i=0; i<num; ++i)
set_bit(data_des, i, get_bit(data_src, transposition_table[i] - 1));
if (delete_mem) delete [] data_src;
}
//Возвращает значение S-подстановки
int get_S_substitution (int inp, int *S_table)
{
int string=0;//Строкавтаблице
int column=0;//Столбецвтаблице
string = get_bit((unsigned char*)(&inp), 2) |
get_bit((unsigned char *)(&inp), 5) << 1 ;
column = get_bit((unsigned char*)(&inp), 3) |
get_bit((unsigned char *)(&inp), 4) << 1 |