Если я произвожу частный и публичный ключ для DSA, используя Crypto ++:DSA публичный ключ больше, чем закрытый ключ
CryptoPP::AutoSeededRandomPool rng;
CryptoPP::DSA::PrivateKey privateKey;
privateKey.GenerateRandomWithKeySize(rng, 2048);
CryptoPP::DSA::PublicKey publicKey;
privateKey.MakePublicKey(publicKey);
Когда я зашифровать приватный ключ, как так:
CryptoPP::ByteQueue privateKeyQueue;
key.DEREncodePrivateKey(privateKeyQueue);
Затем информация толкаемых в очередь для приватного ключа меньше закодированных данных для открытого ключа:
CryptoPP::ByteQueue publicKeyQueue;
key.DEREncodePublicKey(publicKeyQueue);
это ожидат и это правильный способ генерировать мой открытый ключ, который будет передан другим?
Я работаю только с RSA раньше, а открытый ключ намного меньше, чем закрытый ключ.
Да, это кажется разумным. Учитывая ваше наблюдение за длиной битов p и q, я бы пошел дальше и утверждать, что длина (y)> length (x) является ответом, если он вычислен по модулю p, и учитывая, что p, q, g, вероятно, необходимы для обоих подписания и проверки. – keith