"justify"> {
cout << file < not open. ;
return 1;
}
// ---------------------------------------- -----------
fread (key, sizeof (unsigned), 8, keyfile);
fclose (keyfile);
GenerateKey (key, WorkKey);
// ---------------------------------------- -----------
fread (sinc, sizeof (unsigned), 4, sincfile);
fclose (sincfile);
// ---------------------------------------- -----------
long len = filelength (fileno (message));
unsigned temp [3] = {0,};
do
{
if (len> 6)
{
fread (temp, sizeof (unsigned), 3, message);
IDEA_OFB (temp, WorkKey, sinc, 3);
fwrite (& temp, sizeof (unsigned), 3, rezfile);
len - = 6;
}
else
{
memset (temp, 0,3);
fread (temp, sizeof (unsigned char), len, message);
int n = ((len% 2) == 1)? (len/2 +1): len/2;
for (int i = 0; i
fwrite (& temp, sizeof (unsigned), n, rezfile);
len = -1;
}
cout <
} while (len> 0);
// ---------------------------------------- -----------
fclose (message);
fclose (rezfile);
// ---------------------------------------- -----------
cout < В© Bashmakov AV Orel, 2001 ;
return 0;
}
На вхід після імені файлу подається ім'я файлу для шифрування (розшифрування), ім'я файлу з результатом, файл з ключем (основної або резервний) і сінхропосилка.
Наприклад: idea_ofb.exe mao.bmp rez.txt u20.lin sin.sin.
Швидкість шифрування даних досягає 100 кбайт в секунду.
ДОДАТОК 4
Програмне забезпечення ЦРК.
Генератор випадкової матриці.
// generate matrix T [N] [N] [8];
# include "lin.cpp"
# include main ()