Einzelnen Beitrag anzeigen

Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 

Re: VerschlüsselungsProgramm

  Alt 21. Jul 2004, 17:30
Ganz im Gegensatz zu Random(), kann man aber RC4 so umbauen das er als Zufallsgenerator dient der sogar statistisch gesehen weit besser als Random() selber ist.

Delphi-Quellcode:

var
  RC4Random: TRC4Context;

procedure RC4Seed(const Seed: String);
begin
  RC4Init(RC4Random, Seed);
end;

function RC4Random: Cardinal;
type
  TRC4Cast = record
    FirstSBOX: Cradinal;
  end;

begin
// verschlüssele die dynamsiche SBOX von RC4Random.D mit sich selber und gebe die 4 ersten Bytes
// als Zufallswert zurück !!
  RC4Code(RC4Random, RC4Random.D, RC4Random.D, SizeOf(RC4Random.D));
  Result := TRC4Cast(RC4Random).FirstSBOX;
end;

initialization
  RC4Seed('');
finalization
end.
Da die SBOX 256 * 8 = 2048 Bit groß ist und die kryptographische Funktion vom RC4 eben deshalb so sicher ist weil man bewiesen hat das JEDE mögliche Kombination bei einem spezifischen Passwort exakt nach 2^2048 Bits sich erst wiederholt, können wir davon ausgehen das die maximale Periode dieser Zufallsfunktion 2^2048 Bits beträgt. Dabei stellt der Seed = Passwort nur den Index in diesen 2^2048 Bit Langen Bitstrom dar. Bei Random() wäre die maximale Period nur 2^32 Bits.

Gruß Hagen

PS: nun wird auch ersichtlich das RC4 eine 2048 Bit sichere Verschlüsselung darstellt, mehr geht nicht.
  Mit Zitat antworten Zitat