Extra Systems

CYPHERNET

консольная система надежной коммерческой шифросвязи через сеть интернет

процедура создания сеансового ключа путем слияния предложенных партнерами вариантов make_common_key


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