Ich muss eine digitale Hülle mit AES und RSA implementieren, aber ich habe Probleme mit der .NET-Implementierung des RSA-Algorithmus.C# RSA-Verschlüsselung mit Modul und öffentlichen Exponenten
Ich habe es geschafft, die Daten (AES) mit dem zufälligen symmetrischen Schlüssel zu verschlüsseln, aber jetzt muss ich den Schlüssel mit RSA verschlüsseln.
Der Schlüssel ist ein Array von Bytes (byte[]
) und der öffentliche Schlüssel Ich habe nur den Modulo und den öffentlichen Exponenten, beide Arrays von Bytes (byte[]
).
Mit nur diesen beiden Parametern, wie kann ich meinen AES generierten Schlüssel mit RSA verschlüsseln?
Der folgende Code ruft die Nachricht aus der Datei ab und verschlüsselt sie mit AES. Anschließend wird der öffentliche Schlüssel aus der Datei mit dem öffentlichen Schlüssel gelesen, und der Modulus und der Exponent befinden sich in ihren entsprechenden Byte-Arrays. Wie würde ich weiterhin die symmetricKey
mit RSA verschlüsseln?
String msgString = Systematic.GetFileContents(messagePath);
Byte[] initVector = new byte[] { 50, 60, 70, 80, 90, 40, 50, 60, 70, 80, 90, 40, 60, 80, 70, 90 };
Byte[] symetricKey = AesCrypt.GenerateRandomKey();
Byte[] encryptedMessage = AesCrypt.Encrypt(msgString, symetricKey, initVector, mode);
Byte[] modulus = null;
Byte[] publicExp = null;
DataFormatHelper.ReadPublicKey(publicKeyPath, "RSA", ref modulus, ref publicExp);
P.S. Als Antwort auf die Antwort unter der Nummer rsa.ImportParameters
: habe ich mit der rsa.ImportParameters(keyInfo)
versucht, aber es wirft eine CryptographicException
("Bad Data"
). Was ist mit Array-Größen? Momentan ist der Modul 128 Byte und der Exponent 64 Byte.
Wenn Sie rsa.ExportParameters (false) verwenden; dann erhalten Sie einen 3-Byte-Exponenten und ein 128-Byte-Modul – ShuggyCoUk