Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi Socket Handshake Verschlüsselung (https://www.delphipraxis.net/162567-socket-handshake-verschluesselung.html)

schlagzu 29. Aug 2011 17:38

Socket Handshake Verschlüsselung
 
Hallo,

ich möchte den Datenverkehr meines Chats verschlüsseln. Wie ich einen Stream verschlüssle und verschicke weiß ich. Mein Problem ist der erste Kontakt. Wie ich ein individuelles Passwort erstelle wies ich. Nur wie übermittle ich diese Passwörter (Server und Client Passwort am besten verschieden) gegenseitig sicher. Ich hab mal Wiki befragt wie SSL funktioniert. Dabei bin ich auf dieses Handshake-Protokoll gekommen. Doch wie erstelle ich aus einem Puplic-Key einen Privat-Key so das ein Dritter diesen nicht berechnen kann.

MfG schlagzu

Aphton 29. Aug 2011 18:46

AW: Socket Handshake Verschlüsselung
 
Was meinst du mit "erster Kontakt"?

Schau dir ggf. Diffie-Hellman an!

Mfg, haueab

schlagzu 29. Aug 2011 19:12

AW: Socket Handshake Verschlüsselung
 
Genau das habe ich gesucht, hat schon jemand Erfahrung damit?

ehX 29. Aug 2011 19:53

AW: Socket Handshake Verschlüsselung
 
:oops::oops::oops:---Im falschen Thread gepostet--

JA, ich schäme mich schon!

schlagzu 29. Aug 2011 21:30

AW: Socket Handshake Verschlüsselung
 
Hallo,

also ich habe mal ein Testprogramm geschrieben. Doch ich habe ein Problem. 2 und 19 ist das Maximum, da eine int64 Variable vom Wertebereich nicht hinhaut. Gibt es eine Möglichkeit dies zu erweitern/splitten?

Delphi-Quellcode:
program test;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  a,b,ga,gb,k1,k2:Int64;

const
  g:Int64=2;
  p:Int64=19;

  function potenz(b,e:int64):int64; //<< hier liegt der Fehler
  var x:longword;
  begin
    if e = 0 then result:=1;
    result:=b;
    for x:=2 to e do result:=result*b;
  end;

begin
  Randomize;
  a:=1+random(p-2);
  b:=1+random(p-2);
  write('a:');write(a);write(' | b:');writeln(b);
  writeln('--------------------------------------');
  ga:=potenz(g,a) mod p;
  gb:=potenz(g,b) mod p;
  write('A:');write(ga);write(' | B:');writeln(gb);
  writeln('--------------------------------------');
  k1:=potenz(gb,a) mod p;
  k2:=potenz(ga,b) mod p;
  write('Key1:');write(k1);write(' | Key2:');writeln(k2);
  writeln('--------------------------------------');

  readln;
end.
Ich bitte um Hilfe.

MfG schlagzu

schlagzu 29. Aug 2011 22:15

AW: Socket Handshake Verschlüsselung
 
Ich habe die vli unit gefunden! Gibt es für die ne mod function? Ich finde nur divison


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:35 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz