Процедура створення сеансового ключа Extra Systems Cypher Net шляхом злиття запропонованих партнерами варіантів make_common_key працює за таким алгоритмом:
void make_common_key(void) { unsigned char x, y; int i; for (i = 0; i < PACKED_VALUE_LENTH; i++) { x = local_key.packed[i]; y = remote_key.packed[i]; common_key.packed[i] = x ^ y; } unpack_value(common_key.packed, common_key.unpacked); }
Свій ключ (local_key) кожен із абонентів генерує самостійно в процедурі make_local_key, а ключ партнера (remote_key) отримує від останнього у зашифрованому вигляді під час процедури get_common_key.
Очевидно, що через комутативність застосовуваної операції ця процедура дає той самий результат на обох кінцях зв'язку. Тобто обидва абоненти в результаті отримують один і той же сеансовий ключ для подальшого шифрування всього трафіку між ними.
Контент цієї сторінки доступний також англійською, французькою, німецькою та російською мовами.
© Extra Systems, 2024 |