AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Bruteforce eines Schlüssels?

Ein Thema von Lyan · begonnen am 14. Dez 2014 · letzter Beitrag vom 15. Dez 2014
Antwort Antwort
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.585 Beiträge
 
Delphi 12 Athens
 
#1

AW: Bruteforce eines Schlüssels?

  Alt 14. Dez 2014, 09:28
Bruteforce eines Wertes mit 32 Bit länge.

Delphi-Quellcode:
var Schlüssel, i: Integer

Schlüssel := Random($FFFFFFFF);

//

for i := 0 to $FFFFFFFF-1 do
  if i = Schlüssel then
    ShowMessage('Der Schlüssel ist ' + IntToStr(i));
Für "Schlüssel" kann man auch gern eine Ver-/Entschlüsselungsfunktion einsetzen.



Das mit der Zeit kannst du vergessen, denn es gibt sehr schnelle und auch sehr langsame PCs ... da kann man nichts an tempo vorhersagen.
Du kannst nur einer Entschlüsselungsfunktion bauen, welche eine bestimmte Menge an komplexeren Rechenoperationen benötigt, um etwas zu entschlüsseln.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (14. Dez 2014 um 09:31 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Bruteforce eines Schlüssels?

  Alt 14. Dez 2014, 09:56
Bruteforce eines Wertes mit 32 Bit länge.

Delphi-Quellcode:
var Schlüssel, i: Integer

Schlüssel := Random($FFFFFFFF);

//

for i := 0 to $FFFFFFFF-1 do
  if i = Schlüssel then
    ShowMessage('Der Schlüssel ist ' + IntToStr(i));
Für "Schlüssel" kann man auch gern eine Ver-/Entschlüsselungsfunktion einsetzen.



Das mit der Zeit kannst du vergessen, denn es gibt sehr schnelle und auch sehr langsame PCs ... da kann man nichts an tempo vorhersagen.
Du kannst nur einer Entschlüsselungsfunktion bauen, welche eine bestimmte Menge an komplexeren Rechenoperationen benötigt, um etwas zu entschlüsseln.
Ich befürchte er möchte etwas mehr "Rauch" haben. Nach dem Motto "Chemie ist's wenn's knallt und stinkt"

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.585 Beiträge
 
Delphi 12 Athens
 
#3

AW: Bruteforce eines Schlüssels?

  Alt 14. Dez 2014, 10:37
Schraub einfach mal den Kühlkörper von deiner CPU ab und führe den Code aus
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (14. Dez 2014 um 11:25 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#4

AW: Bruteforce eines Schlüssels?

  Alt 14. Dez 2014, 10:48
Brute heat!

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#5

AW: Bruteforce eines Schlüssels?

  Alt 14. Dez 2014, 14:52
Also wenn ich eine Demoanwendung schreiben müsste dann würde ich es so machen:
Man wähle einen zufälligen String mit maximal 8 Ziffern.
Aus diesem String wird mit MD5 ein Hash erstellt.
Dabei hilft z.B. diese Webseite: http://www.hashgenerator.de/

Hier einige Beispiele:
Code:
23449ce8ea5e51c73d43784b13028a52 - 8 Ziffern (100000000 Möglichkeiten)
51f6f8fe03a390d3de50ad49913d4b66 - 6 Ziffern (1000000 Möglichkeiten)
131ab68be139f348e6aa22bab7e16627 - 5 Buchstaben A-Z (11881376 Möglichkeiten)
Jetzt soll ein Programm dem nur der Hashwert bekannt ist den ursprünglichen String (Passwort, Pin) per Bruteforce ermitteln.
fork me on Github

Geändert von sx2008 (14. Dez 2014 um 14:58 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.585 Beiträge
 
Delphi 12 Athens
 
#6

AW: Bruteforce eines Schlüssels?

  Alt 14. Dez 2014, 15:53
Du weißt was ein Hash ist?

Ein Hash hat gerade die absichtliche Eigenschaft, daß man den Eingangsstring nicht berechnen kann ... nichtmal mit Bruteforce.

OK, wenn man eine bestimmte Vorgabe hat (z.B. genaue Länge und der Zeichensatz), dann kann man mit einer gewissen Wahrscheinlichkeit die Aussage treffen, daß dieser Eingangcode jenen Hash ergibt.
Es kann aber sein, daß es noch einen/mehrere andere Codes gibt, welche ebenfalls diesen Hash ergeben.

Bei Dateien mit einer Größe von nur 17 Byte, gibt es statistisch gesehn 256 weitere Dateien, die alle den selben Hash 128-Bit-Hash ergeben.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (14. Dez 2014 um 16:09 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#7

AW: Bruteforce eines Schlüssels?

  Alt 14. Dez 2014, 18:34
Ein Hash hat gerade die absichtliche Eigenschaft, daß man den Eingangsstring nicht berechnen kann ... nichtmal mit Bruteforce.
Das spielt doch keine Rolle! Sobald man nur einen Treffer findet ist der Schlüssel/Passwort/WasAuchImmer gebrochen.
Natürlich gibt es zu einem Hashwwert im Prinzip unendlich viele Schüssel.
Aber der Schlüssel mit der kürzesten Länge wird mit höchster Wahrscheinlichkeit der ursprüngliche Schlüssel sein.

Wenn man weiss dass ein Passwort eine bestimmte maximale Länge hat, sich auch ganz bestimmten Zeichen (z.B. nur Ziffern) zusammensetzt und mit MD5 (oder MD4, Sha1,...) gehasht wurde kann man ausrechnen wie viele mögliche Kombinationen er gibt.
Wenn es nicht zu viele Kombinationen sind kann man mit Bruteforce leicht zum Erfolg kommen.
Selbst wenn das Passwort "gesalzen" ist, aber die Methode bekannt ist kann man Bruteforce ansetzen.

Delphi-Quellcode:
// Pseudocode
function SaltPW(const PW:string):string;
begin
   return "salt42" + PW;
end;

for i:= minlen to maxlen do
   foreach pw:string in Range(['0'..'9', 'a'..'z'], i) do
   begin
      if(MD5string(SaltPW(pw)) = '51f6f8fe03a390d3de50ad49913d4b66then
      begin
         ShowMessage('Passwort='+pw);
         return;
      end;
   end
fork me on Github

Geändert von sx2008 (14. Dez 2014 um 18:39 Uhr)
  Mit Zitat antworten Zitat
dGeek
(Gast)

n/a Beiträge
 
#8

AW: Bruteforce eines Schlüssels?

  Alt 14. Dez 2014, 18:22
Also wenn ich eine Demoanwendung schreiben müsste dann würde ich es so machen:
Man wähle einen zufälligen String mit maximal 8 Ziffern.
Aus diesem String wird mit MD5 ein Hash erstellt.
Dabei hilft z.B. diese Webseite: http://www.hashgenerator.de/

Hier einige Beispiele:
Code:
23449ce8ea5e51c73d43784b13028a52 - 8 Ziffern (100000000 Möglichkeiten)
51f6f8fe03a390d3de50ad49913d4b66 - 6 Ziffern (1000000 Möglichkeiten)
131ab68be139f348e6aa22bab7e16627 - 5 Buchstaben A-Z (11881376 Möglichkeiten)
Jetzt soll ein Programm dem nur der Hashwert bekannt ist den ursprünglichen String (Passwort, Pin) per Bruteforce ermitteln.
Mit genau solch einem Programm habe ich ein paar Tests gemacht.

Bei einem Intel Core i7 720QM mit TurboBoost 2.8 GHz sind das etwa die Zeiten:
- 23449ce8ea5e51c73d43784b13028a52 (08154711) nach 8154712 Versuchen, 25 Sekunden
- 51f6f8fe03a390d3de50ad49913d4b66 (123459) nach 123460 Versuchen, 0.150 Sekunden
- 131ab68be139f348e6aa22bab7e16627 (ZAPPY) nach 11434955 Versuchen, 25 Sekunden

Geändert von dGeek (14. Dez 2014 um 18:31 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#9

AW: Bruteforce eines Schlüssels?

  Alt 14. Dez 2014, 18:36
- 23449ce8ea5e51c73d43784b13028a52 (08154711) nach 8154712 Versuchen, 25 Sekunden
- 51f6f8fe03a390d3de50ad49913d4b66 (123459) nach 123460 Versuchen, 0.150 Sekunden
- 131ab68be139f348e6aa22bab7e16627 (ZAPPY) nach 11434955 Versuchen, 25 Sekunden
Alle 3 Schlüssel sind richtig
fork me on Github
  Mit Zitat antworten Zitat
Antwort Antwort


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 06:07 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