fy"> В якості криптосистеми в рамках курсового проекту використовується криптосистема блочного шифрування зі зворотним зв'язком, якої є алгоритм шифрування ГОСТ 28147-89. Використовувана довжина ключа дорівнює 256 бітам, і визначає крипостійкість даної системи. Перевагою даної схеми шифрування є можливість застосування її для виявлення маніпуляцій повідомленнями, вироблених активними перехоплювачами. При цьому використовується факт розмноження помилок. Однак розмноження помилок можна віднести і до недоліків такого шифру. Схему шифрування зі зворотним зв'язком слід застосовувати для криптографічного перетворення великих масивів даних (повідомлень). br/>
Висновок
Дана робота не переслідує мети реалізації реальної системи конфіденційного зв'язку, а передбачає лише розробку моделі її функціонування, використовуючи реальні алгоритми та довжини ключів.
Проведений аналіз криптостійкості алгоритмів розподілу ключів і алгоритму шифрування даних підтвердив високу стійкість застосування даних схем при побудові реальної системи засекреченого зв'язку.
Додаток
# include
# include
# include
# include
# include
# include
# include
# include
# include unsigned long DWord;// Подвійне слово; unsigned int Word;// слово; unsigned char HWord;// Половина слова; FILESIZE (FILE * flow); a_in_P_modN (DWord a, DWord r, DWord N); ADDFILE (FILE * flow, short ost, DWord MES [2]); DICRIMENT (Word P [32], Word Q [32], Word RES [32]); MULTIPLE ( Word Mn1 [16], Word Mn2 [16], Word RES [32], Word R); X_in_Y_modN (Word a [16], Word r [16], Word MODULE [16], Word RES [16]); TAKE_MODULE (Word NUMBER [32], Word OST [16], Word MOD [16]); SUMMA (Word P [16], Word Q [16], Word RES [16]); DATE {num; byte [4];
} ptr; Result_Long_Word {BL32; BL16 [2];
} W_ptr; part [8]; main (int argc, char * argv [])
{
// -------------- Програма реалізації алгоритму шифрування ГОСТ 28147-89 -------
// -------------- в режимі зворотного зв'язку на основі алгоритму розподілу -------
// -------------- ключів c використанням лінійних перетворень (основний) -------
// ------------------------------ і Діффі-Хелмана (запасний) --- -------------------
// ---------------------------------- Блок вихідних даних --- ----------------------
clrscr (); (); * keystream; * datastream; * crptstream; * decrptstream; i = 0, j = 0, m = 0, n = 0, t = 0; _t