Frage

Hey Jungs, ich habe für einige meiner Programme auf einem p2p-Namespace gearbeitet. Ich habe ein System zum Verschlüsseln / Entschlüsseln der Pakete mit der Klasse senden / empfangen. Ich wurde mit dem grundlegenden öffentlichen Private-Key-System: 1) verschlüsselt die Daten mit dem symmetrischen Verschlüsselung 2) verschlüsselt die symmetrischen Schlüssel mit RSA. Dann das Gegenteil tun, wenn Sie entschlüsselt ..

Ich frage mich allerdings, wie würden Sie überprüfen, ob das Paket herkam, wo er sagte, es sei. Ich wollte ein Grundzertifikat System verwenden (wo Sie mit Ihrem privaten RSA-Schlüssel zu verschlüsseln, dann entschlüsseln sie es mit Ihrem öffentlichen Schlüssel), aber ich weiß nicht, wie dies mit C # zu tun. Ich bin mit der RSACryptoServiceProvider Klasse.

Wer weiß, wie dies tun? Vielen Dank, Max

War es hilfreich?

Lösung

Das Standardprotokoll für das Senden von Paketen ist sicher SSL / TLS. Die RFCs für TLS und DTLS (und eine Korrektur für einen letzten Fehler ) ist der Weg zu gehen. Sie sollten auch eine Ressource für diejenigen, Lernen und die Suche nach Ideen in Betracht gezogen werden.

Es klingt wie Sie eine Suche nach einem MAC sind. Ein sehr effizienter Satz von Krypto Primitive, die sowohl Verschlüsselung als auch MACing zugleich sind das ausführen AEAD Chiffren, siehe zum Beispiel CCM und GCM Blockchiffre-Modi.

Ich glaube nicht, .NET keine AEAD Chiffren unterstützt. Sie können auch die langsamer verwenden, aber völlig ausreichend HMAC Algorithmus, der in unterstützt wird. NET, oder Sie können die bouncycastle C # Bibliothek , die Unterstützung bietet AEAD Chiffren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top