vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Newsletter  | Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2019
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Security für Entwickler
ECDH Schlüsselaustausch mit Diffie Hellmann - Konvertieren des Publickeys 
Autor: vip3234
Datum: 27.10.09 13:53

Guten Tag,

ich habe das folgende Beispielprojekt aus dem "C# Codebook 2008" zum Schlüsselaustausch nach ECDH mit den in C# integrierten Classen getestet:

 
using System;
using System.Security.Cryptography;
 
namespace Sicherer_Schlüsselaustausch_mit_ECDH
{
   class Program
   {
      static void Main(string[] args)
      {
         Console.Title = "Sicherer Schlüsselaustausch mit ECDH";
 
         // Kommunikationspartner A erzeugt einen öffentlichen Schlüssel
         ECDiffieHellmanCng ecDiffieHellmanA = new ECDiffieHellmanCng();
         ECDiffieHellmanPublicKey publicKeyA = ecDiffieHellmanA.PublicKey;
 
 
 
         // Kommunikationspartner B erzeugt ebenfalls einen öffentlichen _
           Schlüssel
         ECDiffieHellmanCng ecDiffieHellmanB = new ECDiffieHellmanCng();
         ECDiffieHellmanPublicKey publicKeyB = ecDiffieHellmanB.PublicKey;
 
         // A sendet B seinen öffentlichen Schlüssel 
         // B sendet A seinen öffentlichen Schlüssel 
 
         // A erzeugt einen privaten Schlüssel mit dem öffentlichen
         // Schlüssel von B
         ecDiffieHellmanA.KeyDerivationFunction = _
           ECDiffieHellmanKeyDerivationFunction.Hash;
         ecDiffieHellmanA.HashAlgorithm = CngAlgorithm.Sha512;
         byte[] privateKeyA = ecDiffieHellmanA.DeriveKeyMaterial(publicKeyB);
 
         // B erzeugt einen privaten Schlüssel mit dem öffentlichen
         // Schlüssel von A
         ecDiffieHellmanB.KeyDerivationFunction = _
           ECDiffieHellmanKeyDerivationFunction.Hash;
         ecDiffieHellmanB.HashAlgorithm = CngAlgorithm.Sha512;
         byte[] privateKeyB = ecDiffieHellmanB.DeriveKeyMaterial(publicKeyA);
 
      }
   }
}
Dieser Code funktioniert soweit.
Das Problem liegt bei den beiden Kommentarzeilen "A sendet seinen öffentlichen Schlüssel..."
Ich sende den öffentlichen Schlüssel per Streamwriter über eine TCP Stream an B.
B erhält dann den PublicKey natürlich als Byte oder String oder vergleichbarem.

Wie kann ich jetzt den privateKey erzeugen ?
Denn ich habe den PublicKey von A im byte Format vorliegen und "ecDiffieHellmanB.DeriveKeyMaterial(publicKeyA);" akzeptiert NUR Objekte vom Typ "ECDiffieHellmanPublicKey".
Ich habe keine Möglichkeit gefunden das Byte Array in dieses Format zu konvertieren.

Danke
Waigel
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
ECDH Schlüsselaustausch mit Diffie Hellmann - Konvertieren d...4.517vip323427.10.09 13:53
Re: ECDH Schlüsselaustausch mit Diffie Hellmann - Konvertier...2.126ModeratorDaveS27.10.09 15:00
Re: ECDH Schlüsselaustausch mit Diffie Hellmann - Konvertier...1.902vip323427.10.09 15:51
Re: ECDH Schlüsselaustausch mit Diffie Hellmann - Konvertier...1.984ModeratorDaveS27.10.09 16:30
Re: ECDH Schlüsselaustausch mit Diffie Hellmann - Konvertier...1.922vip323427.10.09 20:08
Re: ECDH Schlüsselaustausch mit Diffie Hellmann - Konvertier...1.909ModeratorDaveS27.10.09 20:33

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2019 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel