ПРАКТИЧЕСКАЯ КРИПТОГРАФИЯ АЛГОРИТМЫ И ИХ ПРОГРАММИРОВАНИЕ



         

Листинг 7.2


Пусть криптоаналитику стали доступны ее первые десять байтов и он также знает, что было использовано наложение гаммы как сложение по модулю два . В языке Си существует общеизвестный оператор "^", который ее выполняет. Алгоритм шифрования на языке Си описывается короткой и простой функцией (см. листинг 7.3).

char text[1024] = "Приветствую, мой ненаглядный сосед!"; char gamma[1024] = { 0xBD, 0x8E, 0x1E, 0x72, 0x9C, 0x26, 0x43, 0xAD, 0xE7, 0x8B, 0x89, 0x7C, 0x91, 0x06, 0xDE, 0xE2, 0x2B, 0xDC, 0xF9, 0xC9, 0xE1, 0x6D, 0xBB, 0x91, 0x43, 0x68, 0xF3, 0x6D, 0x85, 0x2F, 0x0A, 0x74, 0x0F, 0xAA, 0x7A, 0x8D, 0xA1, 0x8C, 0xF8, 0x4A, 0x5D, 0x52, 0x7B, 0xBB, 0x7C, 0x01, 0x25, 0x93 }; for (int i = 0; i < strlen(text); i++) text[i] ^= gamma[i];




Содержание  Назад  Вперед