AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Dateien verschlüsseln

Ein Thema von St.Pauli · begonnen am 8. Mai 2005 · letzter Beitrag vom 11. Jul 2005
 
Benutzerbild von negaH
negaH

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

Re: Dateien verschlüsseln

  Alt 10. Mai 2005, 04:43
Delphi-Quellcode:
function XOR_KeyGen( const Password : String ; const KeySize : Integer ) : String;
var
  PassSum : Integer;
  Loop : Integer;
  Key : String;
begin
// 1.)
  PassSum := 0;
  for Loop := 1 to Length( Password ) do
    Inc( PassSum , Ord( Password[Loop] ) );

// 2.)
  Randomize;
// 3.)
  RandSeed := PassSum;

// 4.)
  Key := '';
  for Loop := 1 to KeySize do
    Key := Key + IntToStr( Random(10) );

  Result := Key;
end;
So nun zur Analyse deines Keysetups:

bei 1.) reduzierst du die Komplexität des übergeben Schlüssels auf 32 Bit. Angenommen man übergibt einen Schlüssel von 128 Bit länge dann wäre es 1 aus 2^128 möglichen Schlüsseln. Bei Punkt 2.) steht in PassSum=32Bit nur noch 1 aus 2^32 möglichen PassSum Werten drinnen. Ergo: es gehen wertvolle Schlüsselinformationen verloren und die effektive Sicherheit beträgt nur 32 Bit.

bei 2.) rufst du unnötiger weise Randomize() auf obwohl bei 3.) RandSeed := PassSum gesetzt wird. Das gibt mir zwei wichtige Hinweise: Du hast keine Ahnung von Programmierung, ergo kein fundiertes Fachwissen oder du arbeitest schlampig und hast vergessen deinen Testcode zu entfernen. Beides reduziert mein Vertrauen in deine Arbeit auf Null. Sorry das ich das so hart und deutlich sagen muß, aber es ist leider nun mal fakt. Und du kannst nichts lernen wenn man keine ehrliche Kritik übt. Nehme mein Aussagen also sportlich und nicht persönlich, bitte

bei 4.) setzt du nun noch einen drauf. Zuerst hast du die Schlüsselkomplexität künstlich reduziert und dann expandierst du virtuell wieder die Schlüssellänge damit es nach mehr aussieht. Solche Vorgehensweisen werden üblicherweise immer dann benutzt wenn der Entwickler des Algorithmus absichtlich die Sicherheit reduzieren will oder muß. "Muss" auf Grund von Exportbestimmungen oder weil er für verschiedene Organsitationen arbeitet die kein Interesse an echter Sicherheit für uns haben. Man könnte sowas Sabotage nennen, oder Unterminierung der realen Sicherheit. Denn lange Schlüssel bedeuten nicht zwangsläufig mehr Sicherheit.

Die effektive Komplexität des so erzeugten Schlüssel ist maximal 32 Bit groß. Also selbst wenn du mit KeySize = 1024 = 8192 Bits arbeitest so kannst du durch die Benutzung von Random()->RandSeed nur maximal 2^32 verschiedene Schlüssel aus einer Menge von 2^8192 real möglichen Schlüssel erzeugen. Ergo: aus einem verfügbaren Schlüsselraum von 2^8192 Schlüsseln werden maximal nur 2^32 mögliche Schlüssel benutzt. Man verschenkt also 2^(8192-32) = 2^8160 Schlüssel Kombinationen. Je größer nun KeySize wird desto schlimmer wird dieses Mißverhältnis.

Gruß Hagen
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz