Делал RSA в ручную, и передавал как положено P и Q, решил сделать через встроенные средства и появилось непонятка,а что же является ключом, например открытым?
| Код | const int KeyLen = 1024; const int MaxRSABlockSize = KeyLen / 8 - 11 - 30 - 1; //тут документация нагло врет (-30 -чтобы шифровалось, -1-чтобы дешифровалось) RSAParameters rsaencpub, rsaencpriv; bool EncPubPresent, EncPrivPresent; RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(KeyLen); rsaencpriv = rsa.ExportParameters(true);//сгенерирован приватнеый ключ rsaencpub=rsa.ExportParameters(false);//сгенерирован публичный ключ EncPrivPresent = true; EncPubPresent = true;
|
- Ниже перечисленные компоненты и есть части ключа?
Т.к. наш публичный ключ rsaencpub имеет такие компоненты:
| Код | rsaencpub.DP; rsaencpub.DQ; rsaencpub.Exsponent; rsaencpub.InverseQ; rsaencpub.P; rsaencpub.Q; rsaencpub.Modulus;
|
- И все эти части нужно передать от сервера клиенту как сессионный ключ?
|