Процедура створення сеансового ключа 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 |
|