AGB  ·  Datenschutz  ·  Impressum  







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

Wie Verschlüsselt ihr ?

Ein Thema von Corpsman · begonnen am 6. Mai 2009 · letzter Beitrag vom 7. Mai 2009
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Corpsman
Corpsman

Registriert seit: 8. Nov 2005
Ort: nähe Stuttgart
981 Beiträge
 
Delphi XE2 Professional
 
#1

Wie Verschlüsselt ihr ?

  Alt 6. Mai 2009, 08:36
Hossa DP,

Ich höre gerade eine Vorlesung über Kryptographie und wurde mal so richtig wachgerüttelt, und darum geht es in diesem Post.

Das Verschlüsselte Dateien nicht 100% sicher sind wahr mir schon immer klar, aber wie das eben so ist wenn man keine Ahnung von der Materie hat, dachte ich immer, das sind halt richtige Freaks die solche Dateien knacken können.

Unser Prof hat mich heute eines besseren belehrt.

Worum geht es nun genau:

Wenn ich bisher Files verschlüsselt habe dann tat ich das immer ungefähr so :
Delphi-Quellcode:
Var
  pw: Array Of Byte;
  s: String;
  pwp, i: integer;
  f: TFilestream;
  m, m2: TMemoryStream;
  by: Byte;
Begin
  If OpenDialog1.execute Then Begin
    // Einlesen des Passwortes
    setlength(pw, Length(edit1.text));
    For i := 0 To high(pw) Do
      pw[i] := ord(edit1.text[i + 1]);
    // Verschlüsseln
    f := TFileStream.create(Opendialog1.FileName, fmopenread);
    m := TMemoryStream.create;
    m.CopyFrom(f, f.size);
    f.free;
    m2 := TMemoryStream.create;
    m.position := 0;
    pwp := 0;
    While m.position <> m.size Do Begin
      m.read(by, sizeof(by));
      by := by Xor pw[pwp];
      m2.write(by, sizeof(by));
      pwp := (pwp + 1) Mod (high(pw) + 1);
    End;
    m.free;
    m2.position := 0;
    f := TFileStream.create(Opendialog1.FileName + 'C', fmcreate Or fmopenwrite);
    f.CopyFrom(m2, m2.size);
    m2.free;
    f.free;
    // Ausgabe des Verwendeten Passwortes
    label1.caption := 'Benutztes Passwort [ Länge : ' + inttostr(high(pw) + 1) + ' ]';
    setlength(s, high(pw) + 1);
    For i := 0 To High(pw) Do
      s[i + 1] := chr(pw[i]);
    edit3.text := s;
  End;
End;
Bisher war ich immer der Meinung, das dieses Verfahren einigermasen sicher ist. Doch weit gefehlt.
Ich konnte ein Tool erstellen welches eine so verschlüsselte Datei binnen weniger sekunden ( weniger als 10 ) Problemlos entschlüsselt und sogar das Passwort ausgeben kann. Und das selbst dann, wenn ich das Passwort sehr groß ( also ca. 100 Byte und mehr ) wähle.

Einzige Vorraussetzung. Man mus ungefähr wissen was da verschlüsselt wurde, in meinem Fall ist das immer ein Text im ASCII format. Und man mus das Verfahren kennen ( s.o. ).

So denn die Frage was nutzt ihr denn nun für Verschlüsselungen ?

Und für alle Neugierigen, hab ich im Anhang mal eine Verschlüsselte Datei mit angehängt, kriegt die jemand entschlüsselt ?

Aber nicht auf meine HP gehen, denn da ist ja das Entschlüsselungstool veröffentlicht !!
Angehängte Dateien
Dateityp: txt text_codiert_251.txt (163,6 KB, 24x aufgerufen)
Uwe
My Sitewww.Corpsman.de

My marble madness clone Balanced ( ca. 70,0 mb ) aktuell ver 2.01
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Wie Verschlüsselt ihr ?

  Alt 6. Mai 2009, 09:22
am einfachsten und auch sehr sicher ... schau dich hier mal nach Hagens DEC um (auf Luckies Seite liegt es auch noch zum Download rum)


PS: selbst die billige XOR-Verschlüsselung kann sehr sicher (sogar fast 100%ig Unknackbar sein) ... man muß nur einen Schlüssel haben, welcher mindestens genausogroß ist, wie die zu verschlüsselnden Daten selber

Ansonsten gibt es auch schon massig Threads hier zu diesem Thema.


Ja und wenn etwas 100% sicher wäre, dann könnte man es auch nie wieder entschlüsseln, da ja zumindestens für diesen Fall eine "Hintertür" vorhanden sein muß


PS: du kannst da einen Schritt [Einlesen des Passwortes] bei dir auch rauslassen
Delphi-Quellcode:
// Einlesen des Passwortes
s := edit1.text;
...
pwp := 1;
...
m.read(by, sizeof(by));
by := by Xor ord(pw[pwp]);
m2.write(by, sizeof(by));
pwp := pwp Mod length(pw) + 1;
...
// Ausgabe des Verwendeten Passwortes
label1.caption := 'Benutztes Passwort [ Länge : ' + inttostr(length(s)) + ' ]';
edit3.text := s;
und wozu der MemoryStream?
nimm doch zum Auslesen/Schreiben direkt den FileStream

oder waumm der FileStream ... LoadFormFile und Co. sollte sollen die MemoryStreams auch drinnen haben

da es hier ja wohl nicht sooooo um Geschwindigkeit geht
sonst hätte sogar ein MemoryStream gereicht
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Wie Verschlüsselt ihr ?

  Alt 6. Mai 2009, 09:29
Zitat von himitsu:
Ja und wenn etwas 100% sicher wäre, dann könnte man es auch nie wieder entschlüsseln, da ja zumindestens für diesen Fall eine "Hintertür" vorhanden sein muß
Die Aussage verstehe ich nicht.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Wie Verschlüsselt ihr ?

  Alt 6. Mai 2009, 09:31
ganz einfach: wenn etwas genau zu 100% sicher wäre, dann käme absolut nichts mehr an die Rohdaten ran,
also kann es auch nichts geben, womit man dieses wieder entschlüsseln könnte
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Wie Verschlüsselt ihr ?

  Alt 6. Mai 2009, 09:38
Zitat von himitsu:
ganz einfach: wenn etwas genau zu 100% sicher wäre, dann käme absolut nichts mehr an die Rohdaten ran,
also kann es auch nichts geben, womit man dieses wieder entschlüsseln könnte
Wenn man es nicht entschlüsseln könnte dan wären die Daten geschrottet und nicht verschlüsselt. Es geht darum das man ohne den Schlüssel nicht mehr an die Rohdaten herankommt (reiner Brute-Force ausgenommen).
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
quendolineDD

Registriert seit: 19. Apr 2007
Ort: Dresden
781 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Wie Verschlüsselt ihr ?

  Alt 6. Mai 2009, 09:49
Einfach eine Definitionsfrage. Da gerade eben Brutforce an dieser Stelle die 100% zunichte macht.
Lars S.
Wer nicht mit der Zeit geht, geht mit der Zeit.
  Mit Zitat antworten Zitat
Benutzerbild von Corpsman
Corpsman

Registriert seit: 8. Nov 2005
Ort: nähe Stuttgart
981 Beiträge
 
Delphi XE2 Professional
 
#7

Re: Wie Verschlüsselt ihr ?

  Alt 6. Mai 2009, 09:54
@himitsu

Die Thematik der One Time Pads ist mir schon bekannt.

Und mir gings nicht darum eine Verschlüsselungskomponente zu bekommen.

Die Frage galt eher Generell.

Und da ich eben versuche möglichst auf Fremdkomponenten zu verzichten, zwecks dieser ganzen Urheberrechtssachen und gedöns hab ich eben bisher auch immer meinen Verschlüsselungsalgo selbst gemacht...

Wenn die Länge des zu verschlüsselnden Codes sehr nahe an die Länge des Passwortes Ran kommt, dann denke ich wird es sowieso deutlich sicherer.

Meine File die ich da hochgeladen habe ist nicht ohne grund so groß , wenn man zusätzlich das Passwort noch via Zufall erzeugen läst, dann wirds ebenfalls noch mal ein klein wenig schwerer mit der von mir angegeben Analyse eine Richtige entschlüsselung zu bekommen.

und was der Brute Force angeht, so wird dein Programm ganz schön lang rumrechnen wenn du es auf die von mir hochgeladene File anwendest.

Heut zu tage reicht es ja die meisten "Geheimnisse" für eine bestimmte Zeit geheim zu halten. Und so lange der Brute Force Ansatz länger dauert als diese bestimmte Zeit, scheidet dieser aus.

[Edit]
ich sehe meine File wurde schon 2 mal geladen, hat denn schon jemand das gute stück entschlüsselt ?
Uwe
My Sitewww.Corpsman.de

My marble madness clone Balanced ( ca. 70,0 mb ) aktuell ver 2.01
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Wie Verschlüsselt ihr ?

  Alt 6. Mai 2009, 09:55
auch für BruteForce brauchst du eine Hintertür ... nämlich das Grundprinzip des Algorithmusses, für die Verschlüsselung und/oder die Art der verschlüsselten Daten.
sonst kannste ja gleich Zufallszahlenketten bilden ... irgendwann stimmt eine der zufälligen Ketten mit dem gesuchten Text schon überein

@Bernhard: drum sagte ich ja > 100% ist nicht möglich


@Corpsman: das DEC ist frei zur Verwendung, also wegen de Rechte mußte dir da keine großen Sorgen machen


mach eh grad mal Pause und hatte 'nen Sekündchen Zeit
Delphi-Quellcode:
Var
  m: TMemoryStream;
  s: String;
  mp, me, sp, se, ss: PByte;
Begin
SendMessage(HWND_BROADCAST, CM_INVALIDATE, 0, 0);

  If OpenDialog1.execute Then Begin
    m := TMemoryStream.Create;
    Try
      m.LoadFromFile(Opendialog1.FileName);
      mp := m.Memory;
      me := mp + m.Size;
      s := Edit1.text;
      sp := Pointer(s);
      se := sp + Length(s);
      ss := sp;
      While mp < me do Begin
        mp^ := mp^ xor sp^;
        Inc(mp);
        Inc(sp);
        If sp = se Then sp := ss;
      End;
      m.SaveToFile(Opendialog1.FileName + 'C');
    Finally
      m.Free;
    End;
    // Ausgabe des Verwendeten Passwortes
    Label1.Caption := 'Benutztes Passwort [ Länge : ' + IntToStr(Length(s)) + ' ]';
    Edit3.text := s;
  End;
End;
und jetzt gibt dem Code mal ein Passowrt von der Selben größe wie deine Testdatei (oder zumindesten 1/4 davon) und laß nochmal dein Tool drüber laufen ...
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Wie Verschlüsselt ihr ?

  Alt 6. Mai 2009, 09:59
Zitat von himitsu:
ganz einfach: wenn etwas genau zu 100% sicher wäre, dann käme absolut nichts mehr an die Rohdaten ran,
also kann es auch nichts geben, womit man dieses wieder entschlüsseln könnte
Das heißt, wenn ich mit meinem Passwort einen TrueCrypt Container öffne, dann nutz die Software eine Sicherheitslücke in sich selbst, um den Container zu öffnen? Was ist das für ein Schwachsinn? Der Sinn des Verschlüsselns ist es ja gerade, dass man die Daten auch wieder entschlüsseln kann. Und warum soll es keinen 100% sicheren Algorithmus geben?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Wie Verschlüsselt ihr ?

  Alt 6. Mai 2009, 10:02
Zitat von Luckie:
dann nutz die Software eine Sicherheitslücke in sich selbst, um den Container zu öffnen?
im Prinzip schon ... nun gilt es eben nur noch diese "Lücke" so klein wie möglich zu machen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 00:00 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