Extra Systems

CYPHERNET

процедура генерації сеансового ключа make_local_key


Процедура генерації ключа сеансу make_local_key заповнює буфер послідовністю випадкових байт. Ця процедура виконується однаково кожним із абонентів Extra Systems Cypher Net (звичайно, випадкові послідовності при цьому генеруються різні). Далі у процедурі get_common_key відбувається двійкове додавання двох таких ключів, створених двома абонентами. В результаті виходить те саме число, яке і використовується як сеансовий ключ для алгоритму потокового шифрування.

Розмір ключа PACKED_SESSION_KEY_LENTH залежить від алгоритму шифрування, але повинен бути меншим за модуль RSA, інакше його не можна буде зашифрувати. У нашій системі максимальна довжина цього параметра визначається на один байт коротше, ніж довжина ключа RSA (це гарантує можливість подальшого шифрування).

void make_local_key(void)
{
	memset(local_key.packed, 0, PACKED_VALUE_LENTH);
	fill_random_buffer(local_key.packed, PACKED_SESSION_KEY_LENTH);
	unpack_value(local_key.packed, local_key.unpacked);
}

Контент цієї сторінки доступний також англійською, французькою, німецькою, португальською, іспанською, італійською та російською мовами.


© Extra Systems, 2024 Extra Web Top