Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
Hacks & Crackmes Tests, Fragen oder Hilfestellungen. Crackmes und Hackits werden hier diskutiert.

eigene Codierung

Diskussion: eigene Codierung im Forum Hacks & Crackmes, in der Kategorie Software Home; Anzeige Ich beschäftige mich noch nicht sehr lange mit Codierungen dennoch hab ich versucht einen eigenen Algorithmus zu schreiben, der ...

Antwort
Alt 13.08.06, 14:18   #1 (permalink)
 
Registriert seit: 12.08.06
eXol Leistung: Facit NTK
Likes: 0
Standard eigene Codierung

Anzeige

Ich beschäftige mich noch nicht sehr lange mit Codierungen dennoch hab ich versucht einen eigenen Algorithmus zu schreiben, der einen Text mit Hilfe eines PW codiert.
Mich würde es interessieren, wie sicher diese Codierung ist.
Versucht bitte folgenden String zu decodieren.
Das PW besteht nur aus Buchstaben und ist 6 Zeichen lang.

Code:
?x?~?~Ô?}§w?7?çw????;kár?m?Ö ???=
Ihr dürft alles benutzen was notwedig ist
eXol ist offline   Mit Zitat antworten
Alt 13.08.06, 14:34   #2 (permalink)
Senior Member
 
Registriert seit: 16.11.05
Gnome Leistung: Facit NTK
Likes: 0
Standard

http://www.buha.info/board/showthread.php?t=48955
Gnome ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 13.08.06, 14:52   #3 (permalink)
Themenstarter
 
Registriert seit: 12.08.06
eXol Leistung: Facit NTK
Likes: 0
Standard

Oh sorry mir war nicht klar, dass es so nicht geht.
Welche Informationen würden weiterhelfen?
Das Passwort oder der Algo?

Ok hier ist der Algorithmus. Es ist eine Procedur geschrieben in PureBasic:
Code:
Procedure.s LS_CodeText(Text.s, Passwort.s) ; Codiert einen Text  
  Len_Text.l = Len(Text.s)
  Len_Passwort.l = Len(Passwort.s) 
  FingerPrint.l = 0
  For i = 1 To Len_Passwort
    FingerPrint + Asc(Mid(Passwort, i, 1))
  Next 
  RandomSeed(FingerPrint)
  text_out.s = ""
  str_counter.l = 1
  For i=1 To Len_Text
    For n=1 To Len_Passwort
      If str_counter > Len_Passwort
        str_counter = 1
      EndIf 
      zeichen.b = Random(Asc(Mid(Passwort, str_counter, 1)))
      str_counter + 1
      Byte.b = Asc(Mid(Text.s, i, 1)) 
      Byte.b + zeichen.b
    Next
    text_out.s = text_out.s + Chr(Byte.b) 
  Next
  ProcedureReturn text_out.s
EndProcedure
Ich hoffe der Code ist auch für Benutzer von anderen Spachen verständlich.
Wenn nicht bitte nachfragen.
eXol ist offline   Mit Zitat antworten
Alt 13.08.06, 15:11   #4 (permalink)
CDW
Moderator
 
Benutzerbild von CDW
 
Registriert seit: 20.07.05
CDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: Opteron
Likes: 202
Standard

Wenn Du Dich für die Sicherheit des Verfahrens interessierst - im "Cryptography & Encryption" den Algo freigeben und hoffen, dass jemand sich die Zeit dafür nimmt .
Ansonsten noch: mehr verschlüsselten Text - eventuell kann man es schon automatisiert mit Cryptoll entschlüsseln. Und da es hier offenbar über den darstellbaren ASCII-Wertebereich geht (komische ASCII-zeichen) wäre es besser, die verschlüsselte Datei anzuhängen, weil man sonst je nach benutzer Schrift bzw wegen dem Browser/Server falsche Ergebnise zu sehen bekommt.
__________________
Noch mal, für alle Pseudo-Geeks: 1+1=0. -> 10 wäre Überlauf!
Selig, wer nichts zu sagen hat und trotzdem schweigt.
CDW ist offline   Mit Zitat antworten
Alt 19.08.06, 01:35   #5 (permalink)
 
Registriert seit: 16.08.06
merker Leistung: Facit NTK
Likes: 0
Standard

Hallo eXol,

Dein Algorithmus funktioniert (vereinfacht) wie folgt :

1. Wert = PasswortZeichen + ZufallsWert.

2. OriginalTextZeichen + Wert = VerschlüsseltesTextZeichen.

Da der Wert einen Zufallswert enthält, wirst Du eine verschlüsselte Datei trotz Passwort nicht wieder entschlüsseln können.
merker ist offline   Mit Zitat antworten
Alt 19.08.06, 03:13   #6 (permalink)
CDW
Moderator
 
Benutzerbild von CDW
 
Registriert seit: 20.07.05
CDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: Opteron
Likes: 202
Standard

Zitat:
Da der Wert einen Zufallswert enthält, wirst Du eine verschlüsselte Datei trotz Passwort nicht wieder entschlüsseln können.
wenn das Basic"zeug" so funktioniert, wie in anderen Sprachen, sollte er auch entschlüsseln können - da der Seed immer vom Passwort abhängt.

Ein interessanter Ansatz - allerdings habe ich mich noch nie mit Cryptographie beschäftigt und kann leider nicht sagen, in wiefern es etwas "taugt". Als ich mal einige Artikeln zu Pseudo-Random-Algorithmen gelesen habe, stand da auch ausdrücklich, dass nicht jeder "Pseudo-Random-Algo" für Verschlüsselungen verwendet werden sollte bzw. dass da ganz andere Kriterien gesetzt werden.(Was jetzt die Kriterien und Angriffspunkt sind, die sich dadurch ergeben - das wüsste ich auch gern ). Auch entsinne ich mich an einen Beitrag bei Buha, wo jemand duch einen Implementierungsfehler in Java-Random-Prozedur aus einigen Angaben den Seed brechnen konnte und damit dann immer die nächsten Zufallszahlen - leider ist es schon etwas her, so dass ich den Artikel nicht finde.
__________________
Noch mal, für alle Pseudo-Geeks: 1+1=0. -> 10 wäre Überlauf!
Selig, wer nichts zu sagen hat und trotzdem schweigt.
CDW ist offline   Mit Zitat antworten
Alt 20.08.06, 02:33   #7 (permalink)
 
Registriert seit: 16.08.06
merker Leistung: Facit NTK
Likes: 0
Standard

http://www.purebasic.com/german/docu...andomseed.html

^^^ hmm, hab' nicht sorgfältig recherchiert.

Natürlich wird eine verschlüsselte Datei mit dem Passwort wieder entschlüsselt.

Ohne das Passwort wird "Cryptool" aber keine Hilfe sein. Damit lassen sich nur "symmetrisch" verschlüsselte Dateien entschlüsseln.

Aber bei diesem Algorithmus kannst Du sicher sein, dass sich im verschlüsselten Text nichts "auffälliges" wiederholt.

Allerdings steht und fällt alles mit der Arbeitsweise von RandomSeed() und Random().

Der "MySQL" - Server benutzt deshalb z.B. einen selbstgeschriebenen Zufallsgenerator (Zeile 00079 :-) ) :

http://leithal.cool-tools.co.uk/sour...8c-source.html
merker ist offline   Mit Zitat antworten
Alt 21.08.06, 02:00   #8 (permalink)
Themenstarter
 
Registriert seit: 12.08.06
eXol Leistung: Facit NTK
Likes: 0
Standard

Das bedeutet also, dass die verschlüsselten Daten rel. sicher sind, solange das Passwort nicht bekannt ist!?

Hab vor Kurzem festgestellt, dass der Seed rel. klein (<1000) bei dem verwendeten PW ist.
Man könnte also alle Seedwerte von 0-x durchgehen und prüfen ob dabei ein Text rauskommt und so das ganze entschlüsseln.
Habt ihr vielleicht einen Vorschlag, wie ich diesen Algo verbessern kann?
eXol ist offline   Mit Zitat antworten
Alt 21.08.06, 04:01   #9 (permalink)
 
Registriert seit: 16.08.06
merker Leistung: Facit NTK
Likes: 0
Standard

Hallo eXol,

wenn Du Deinen Algorithmus verbessern willst, dann hier nur einige Hinweise :

Ein guter Verschlüsselungsalgorithmus hat für meine Begriffe nur zwei Kriterien :

1. Ein Hacker muss gezwungen sein, alle denkbaren Möglichkeiten auszuprobieren.

2. Die Rechenzeit zur Verschlüsselung eines Zeichens muss "so lange wie möglich" sein.

zu 1.:
Durch die Verwendung von RandomSeed() und Random() wird dieses Kriterium bereits erfüllt.

Allerdings lässt sich die Anzahl der Möglichkeiten vereinfacht durch folgende Formel darstellen :

FingerPrint * (WertebereichDerPasswortZeichen HOCH Passwortlänge).

-> erhöhe den FingerPrint durch z.B. ein Polynom höheren Grades :

(PWZeichen ^ 3) + (PWZeichen ^ 2) + 12345 (oder so ähnlich)

(z.Zt. beträgt der FingerPrint nur alles zwischen WertKleinstesPasswortZeichen und (Passwortlänge * WertGrösstesPasswortZeichen) ).

-> erziehe die Nutzer Deines Programms dahingehend, dass sie sich verdammt noch mal gefälligst laaaaange Passwörter ausdenken.

zu 2.:
Dieses Kriterium unterliegt nur den Gesetzen der Phantasie. Allerdings ist mit "langer Rechenzeit" NICHT gemeint, dass Warteschleifen eingebaut werden.

-> lasse meinetwegen die innerste For-Schleife 1,3,10,100,1000 mal durchlaufen

-> finde einen Kompromiss zur folgenden Behauptung :

Wenn der Algorithmus "ewig" braucht um ein Zeichen zu verschlüsseln, dann braucht auch ein Hacker "ewig" um das Zeichen wieder zu entschlüsseln.

Hoffentlich hilft Dir das.

Ach so, wie bist Du eigentlich auf "PureBasic" gekommen ?
merker ist offline   Mit Zitat antworten
Alt 21.08.06, 14:53   #10 (permalink)
Themenstarter
 
Registriert seit: 12.08.06
eXol Leistung: Facit NTK
Likes: 0
Standard

Danke für deine schnelle Antwort.
Ich hab mir gedacht ich mache ein MD5 Fingerprint vom Passwort und anschließend berechne ich aus dem MD5 den Seed-Wert.
Mein Algo so wie er jetzt ist braucht ca 2 Sec um 1000000 Zeichen zu verschlüssel.
Da ich diese Verschlüsselung für mein Chat-Programm brauche, das ich gerade programmiere, kann ich ruhig die Schleife mehr als 10 mal wiederholen.
Das würde dann trotzdem schnell genug gehen bei einem String, der max. 4000 Zeichen lang sein darf.

Zitat:
Ach so, wie bist Du eigentlich auf "PureBasic" gekommen ?
Hab vor ca. 1.5 Jahren nach einer guten Programmiersprache gesucht.
Nachdem ich BlitzBasic, Blitz3D, VisualBasic, Profan?, C und C++ probiert habe,
hab ich eine Demoversion von Purebasic entdeckt und war sofort begeistert.
PureBasic erfüllte zu 100% meine Anforderungen.
Es ist schnell (gleich bzw. schneller als C++)
Die .exe sind sehr klein.
Die Syntax ist nicht Cryptisch wie bei C++ und das garantiert schnelle Erfolge.
PB ist für Anwendungen mit einer GUI und für Spiele in 2D und 3D gut geeignet.
Man kann die WinAPI direkt ansprechen.
Mit PB kann man direkt ASM (FASM) benutzen.

Purebasic ist günstig (unter 100 Euro) und wird ständig weiterentwickelt.
Und das Beste, man hat eine lebenslange Updateberechtigung.
Als ich mir PB gekauft habe, hatte ich die Version 3.30 und jetzt ist 4.00 rausgekommen. Selbst Wenn PB die Version 10 erreicht, kann ich diese Version ohne zusatzkosten runterladen.
Sorry für den langen Text aber ich liebe PB
eXol ist offline   Mit Zitat antworten
Alt 30.08.06, 15:46   #11 (permalink)
 
Registriert seit: 30.08.06
th3B0d Leistung: Facit NTK
Likes: 0
Standard

was ich als nachteil ansehen würde ist
bei c/c++ gibt es viele kostenlose compiler
man kann sich alles seinen wünschen anpassen
läuft unter allen betriebsystemen

soll jetzt keine abwertung von purebasic sein (mit pb hab ich nämlich noh nicht programmiert), aber du kannst den source kaum mit anderen austauschen, weil die meisten warscheinlich c/c++ benutzen.
th3B0d ist offline   Mit Zitat antworten
Alt 30.08.06, 17:07   #12 (permalink)
Themenstarter
 
Registriert seit: 12.08.06
eXol Leistung: Facit NTK
Likes: 0
Standard

Kannst du mir den besten kostenlosen compiler für C++ nennen?
Wollte mich mal wieder ein bischen mit C++ beschäftigen.

Es gibt 2 große Boards für PureBasic einer englisch und einer deutsch.
Auf diesem Board, da hast du recht, wird bestimmt niemand PureBasic kennen/benutzen.

Probier doch mal die Demo von PureBasic aus:
http://www.purebasic.de/demo.shtml

Die gibt es für Windows, Linux und MacOS X

Nur mal als Demonstartion was man mit PureBasic in wenigen Tagen machen kann:
http://purefrogger.pu.ohost.de/Programme_HTML/NotEx.php

Die erste Version von NotEx hab ich in nur 2 Stunden (incl. GUI) programmiert.
In den Anderen versionen kamen nur sonderwünsche von den Usern von NotEx rein.
Mit C++ würde das wesentlich länger dauern und wegen der Syntax würde die Fehlersuche auch viel Zeit verschwenden.
eXol ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Software Home » Hacks & Crackmes » eigene Codierung
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Zeichen in andere Codierung umwandeln & Frage zu Amarok lb Applikationen 4 19.12.08 19:12
Eigene IP = UK? Grafix Internet Allgemein 6 17.10.06 14:27
codierung von i-tunes Music Store DaRaffa (Web-) Design und webbasierte Sprachen 2 23.02.06 01:08
Texteditor für DOS-Codierung v01d Applikationen 1 02.11.05 16:35
Eigene Progs OverKiller Code Kitchen 20 19.08.04 09:44


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61