Можно ли сгенерировать 2 предварительных общих ключа в системе, распределить их по двум хостам A и B, чтобы A и B могли использовать эти ключи для зашифрованного соединения между ними?
Я не говорю о публичных ключах, таких как RSA, но о двух предварительно переданных ключах, которые передаются обеим сторонам!
Я должен был бы реализовать это в C ++, поэтому, если возможно, мне понадобится рабочее решение для этого.
Да, это возможно. То, что вы, похоже, ищете, это шифрование симметричным ключом.
В этом случае ключом обычно является просто необходимое количество случайных байтов. Для этого подойдет любой криптографически безопасный источник ГСЧ. Если вы собираетесь использовать openssl впоследствии, RAND_bytes()
буду работать.
Также см Шифрование AES — генерация ключей с помощью OpenSSL
Других решений пока нет …