rsacryptoserviceprovider

___ tag123encryption ___ Verschlüsselung ist der Prozess der Umwandlung von Information (Klartext genannt) in eine unlesbare Form (Ciphertext genannt) unter Verwendung eines Verschlüsselungsalgorithmus in Kombination mit einem Parameter (genannt Verschlüsselungsschlüssel). Nur diejenigen, die den Entschlüsselungsschlüssel besitzen, können den Prozess umkehren und den ursprünglichen Klartext wiederherstellen. Konzeptionelle Fragen zur Verschlüsselung können auf crypto.stackexchange.com bessere Antworten liefern. ___ answer13961421 ___

Sie können einen nicht exportierbaren Schlüssel in einem HSM nicht für die Verschlüsselung oder Entschlüsselung im Speicher verwenden. Da Sie versuchen, eine Verschlüsselung im Speicher durchzuführen, versucht .NET, den privaten Schlüssel in den Speicher zu holen, und er wird von HSM verhindert. Auf der anderen Seite können Sie das Handle des privaten Schlüssels haben und Ihre "zu verschlüsselnden / zu entschlüsselnden Daten" an HSM senden. Mit anderen Worten, Sie können HSM anweisen, Ihre Daten mit dem darin enthaltenen privaten Schlüssel zu verschlüsseln, indem Sie dessen Handle angeben.

Ihr HSM sollte Ihnen eine API zur Verfügung stellen, die den PKCS11-Standard implementiert und oft in C geschrieben ist. Sie können Methoden aus dieser nicht verwalteten Bibliothek extern öffnen und sie in C # verwenden. Hier finden Sie eine in C # geschriebene PKCS11-Wrapper-Bibliothek.

    
___ qstntxt ___

Ich versuche, einen symmetrischen Schlüssel mit einem RSA (Exchange-Schlüssel in CSP) in C # unter Verwendung dieses Codeabschnitts zu verschlüsseln (der RSA-Schlüssel CSP50C8C7CD ist nicht exportierbar und befindet sich in HSM):

%Vor%

Wenn ich das CSP-Protokoll sehe, bemerke ich, dass das C # versucht, den Schlüssel zu exportieren, um mit der Operation fortzufahren. Das CSP-Protokoll unten zeigt nur das Stück über rsa_dnet.Encrypt verwenden:

%Vor%

Windows SO ruft einen CryptExportKey auf, der PRIVATEKEYBLOB übergibt, um den privaten Schlüssel zu exportieren.

%Vor%

In HSM zeigt dieses Protokoll, dass Windows SO versucht, den privaten Schlüssel zu extrahieren (was ERRO bedeutet, weil der Schlüssel nicht exportierbar ist).

Wenn ich einen exportierbaren Schlüssel CSP50C8C7CE in HSM verwende, zeigt das Protokoll, dass alles in Ordnung ist:

%Vor%

Beachten Sie, dass in diesem Protokoll die Vorgänge des RSA-Schlüsselimports / -exports aufgeführt sind (Referenz: CSP50C8C7CE - Exportierbarer Schlüssel).

Frage: Die Encrypt-Funktion in der Bibliothek System.Cryptography benötigt den Schlüssel muss immer exportierbar sein? Oder mache ich einen Fehler in meinem Programm? Irgendwelche versäumten Parameter vielleicht?

    
___ tag123c ___ C # (sprich "Cis") ist eine objektorientierte Programmiersprache auf hohem Niveau, die für die Erstellung einer Vielzahl von Anwendungen entwickelt wurde, die auf dem .NET Framework (oder .NET Core) ausgeführt werden. C # ist einfach, leistungsfähig, typsicher und objektorientiert. ___ tag123rsacrptoserviceprovider ___ Das RSACryptoServiceProvider-Objekt führt die asymmetrische Verschlüsselung und Entschlüsselung mithilfe der Implementierung des vom Kryptografiedienstanbieter (CSP) bereitgestellten RSA-Algorithmus durch. ___ qstnhdr ___ RSA-Verschlüsselung mit nicht exportierbarem Schlüssel in HSM mit C # / CSP ___
2
Antworten

So speichern Sie einen öffentlichen Schlüssel in einem RSA-Schlüsselcontainer auf Maschinenebene

Ich habe ein Problem mit einem RSA-Schlüssel-Container auf Maschinenebene, wenn nur der öffentliche Schlüssel eines öffentlichen / privaten Schlüsselpaars gespeichert wird. Der folgende Code erstellt ein öffentliches / privates Paar und extra...
16.02.2010, 16:50
3
Antworten

"Bad Key." Ausnahme beim Entschlüsseln mit RSACryptoServiceProvider (C # .NET)

Ich versuche, Daten zu entschlüsseln, die zuvor in RSA verschlüsselt wurden (keine Sorge, ich soll es können, ich habe die Schlüssel. Nichts illegales:). Allerdings bekomme ich einen "schlechten Schlüssel". Fehler in der Entschlüsselungszeile...
07.09.2009, 23:51
4
Antworten

Objekt existiert bereits in RSACryptoServiceProvider

Ich habe den Quellcode von einer Anwendung in eine andere kopiert, die beide auf demselben Rechner laufen. Ich verwende auch die gleiche Zeichenfolge für containerName in beiden Anwendungen. Was verhindert, dass meine neue Anwendung den Schlü...
21.01.2011, 20:45
3
Antworten

.Net: Funktionieren meine RSA-Schlüssel auch nach August 2012?

Ich lese gerade diesen Artikel RSA-Schlüssel unter 1024 Bit sind blockiert , und in meiner .NET-Software verwende ich umfangreich 384bit-Schlüssel. Kann mein Programm mit dem RSACryptoServiceProvider Schlüssel aus dem MachineKeyStore erzeugen /...
12.07.2012, 15:14
1
Antwort

RSA-Verschlüsselung mit nicht exportierbarem Schlüssel in HSM mit C # / CSP

Ich versuche, einen symmetrischen Schlüssel mit einem RSA (Exchange-Schlüssel in CSP) in C # unter Verwendung dieses Codeabschnitts zu verschlüsseln (der RSA-Schlüssel CSP50C8C7CD ist nicht exportierbar und befindet sich in HSM): %Vor% Wenn...
19.12.2012, 18:40