Nette Verschlüßlung

Vorstellungen von Programmen, welche mit Lazarus erstellt wurden.
Maik81ftl
Beiträge: 619
Registriert: Mi 9. Mär 2011, 16:34
OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
CPU-Target: 64Bit
Wohnort: seit 01.06.2011 in Wahlstedt

Nette Verschlüßlung

Beitrag von Maik81ftl »

Moin Moin, MAC hatte mich im Thema KaiKo auf den gedanken gebracht, eine Verschlüßlung .so zu Posten. Aber leider geht die z.B. nur für Linux systeme.

verwendet werden hier nur 6 Functionen. je 3 für die ver- und entschlüßlung. :D

HIer sind die FUnctionen auf der .so

Code: Alles auswählen

function ctb (usocfe:Word): PChar; cdecl; external '/libCode.so'// Zeichen in Binärwert
function cto (usocfe:Word): PChar; cdecl; external '/libCode.so'// Zeichen in Oktalwert
function cth (usocfe:Word): PChar; cdecl; external '/libCode.so'// Zeichen in Sedezimalwert
function btc (usocfe:PChar): PChar; cdecl; external '/libCode.so'// rückwandlung in Zeichen
function otc (usocfe:PChar): PChar; cdecl; external '/libCode.so';
function htc (usocfe:PChar): PChar; cdecl; external '/libCode.so';


ich glaube diese sind selbst erklärend. bei frage imma rein hier.

Nachtrag, den ich fast vergessen hätte. Jede Function arbeitet Zeichen für Zeichen.

ergo Hallo ---> Fehler

Code: Alles auswählen

H ---> 00010010b
a ---> 10000110b
l ---> 00110110b
l ---> 00110110b
o ---> 11110110b
bringt das ergebnis.
Dateianhänge
libCode.zip
Im mom leider nur via Ubuntu verfühgbar
(11.28 KiB) 106-mal heruntergeladen
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D

carli
Beiträge: 657
Registriert: Sa 9. Jan 2010, 17:32
OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2
CPU-Target: 64Bit

Re: Nette Verschlüßlung

Beitrag von carli »

Zeichenweise Verschlüsselung ist zu leicht zu knacken.
Angenommen du nimmst eine ASCII-Tabelle mit 256 Zeichen, jedes wird durch ein anderes der 256 Zeichen ersetzt.
Das gibt insgesamt 65.000 Kombinationen, die der Rechner in unter einer Sekunde geknackt hat.
Wenn man zusätzlich noch analytische Verfahren darüber laufen lässt (Das "e" kommt am häufigsten vor), ist das ganze sogar noch schneller fertig.

Schau dir mal base64 an, das scrambelt dein Wort schon viel kompakter. Ist aber immer noch keine Verschlüsselung. Ansonsten kann ich dir den Wiki-Artikel zu Kryptoverfahren empfehlen.

Maik81ftl
Beiträge: 619
Registriert: Mi 9. Mär 2011, 16:34
OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
CPU-Target: 64Bit
Wohnort: seit 01.06.2011 in Wahlstedt

Re: Nette Verschlüßlung

Beitrag von Maik81ftl »

carli hat geschrieben:Zeichenweise Verschlüsselung ist zu leicht zu knacken.
Angenommen du nimmst eine ASCII-Tabelle mit 256 Zeichen, jedes wird durch ein anderes der 256 Zeichen ersetzt.
Das gibt insgesamt 65.000 Kombinationen, die der Rechner in unter einer Sekunde geknackt hat.
Wenn man zusätzlich noch analytische Verfahren darüber laufen lässt (Das "e" kommt am häufigsten vor), ist das ganze sogar noch schneller fertig.

Schau dir mal base64 an, das scrambelt dein Wort schon viel kompakter. Ist aber immer noch keine Verschlüsselung. Ansonsten kann ich dir den Wiki-Artikel zu Kryptoverfahren empfehlen.


Ähmmm nun sin ist es ja auch, diese Functionen in einem Benutzterdefinierten Rhythmus zu verwenden.

sind halt wie gesagt nur einzelfunctionen, die sich jeder so zusammen basteln kann, wie der Enduser will.
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1498
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: Nette Verschlüßlung

Beitrag von corpsman »

Der Sinn deiner Vorgehensweise erschließt sich mir.

Aber für eine Monoalphabetische Substitution lohnt sich eine extra .so nicht.

eine .so nehme ich nur für komplexe Sachen. Die von dir vorgestellte Funktionalität ist da nicht ausreichend ( meine Meinung ).
--
Just try it

Maik81ftl
Beiträge: 619
Registriert: Mi 9. Mär 2011, 16:34
OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
CPU-Target: 64Bit
Wohnort: seit 01.06.2011 in Wahlstedt

Re: Nette Verschlüßlung

Beitrag von Maik81ftl »

nun könnte dies ja auch in der .so alles machen, aber wollte mein erstes c-projekt net gleich übertreiben.

Bin aber im mom schon an einer erweiteten Unit. wenn jemand Monodevelop unter Win zu laufen hat wäre suber, wenn ich auf dem projekt ggf. eine dll bekommen könnte.

Edit.
Aber weil du ja einige meinen, das Dies einfach zu entschlüßeln wäre :D

denne mal viel Spaß damit.

und ich glaube hier könnt ihr all eure codes die ihr kennt vergessen :D
33033363330333133363330333133363330333133363330333033363330333133363330333033363330333033363330333033363330333033363330
33313336333033303336333033303336333033303336333033303336333033303336333033303336333033303336333033313336333033313336333033313
33633303330333633303331333633303330333633303330333633303331333633303330333633303330333633303330333633303331333633303330333633
303330333633303


die Zeilenumbrüche sind zufällig gewählt wurden :D
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1498
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: Nette Verschlüßlung

Beitrag von corpsman »

Ich glaube du hast da was falsch verstanden ...

1. Ist dein "Sample" etwas zu kurz. Für einen Vernünftigen Angriff braucht es da deutlich mehr Daten.
2. Sollten diese Daten dann in einer Binär-Datei vorliegen.
3. Ist es bei Verschlüsselten Daten üblich dass man ungefähr weis was da verschlüsselt wurde. In deinem Fall gehe ich davon aus, dass es Deutscher Text ist.
4. Ist bei einer Echten Verschlüsselung immer der Schlüssel entscheidend für die Sicherheit, nie das Verfahren Ansich. D.h. du kannst das Verfahren das du benutzt hast auch gleich mit Posten.

Wenn ich deine Andeutungen Richtig verstanden habe nutzt du einen Schlüssel dadurch wird aus deiner Monoalphabetischen Substitution eine Polyalphabetische
und sollte ich deinen Code richtig verstanden haben, dann verschlüsselst du nicht via Xor sondern durch eine Verschiebung. D.h. mein Sample ist nicht direkt nutzbar. Der Teil in dem Xor gemacht wird muss durch eine Einfache Addition+ Mod ersetzt werden.

Solltest du dich also Ernsthaft mit den Leutchen hier im Forum "anlegen" wollen, so gibt das bestimmt einen großen Spass, und es dürften da dann auch einige mitmachen :).

Ich empfehle einen Eigenen Thread, und du verschlüsselst evtl. ein Buch oder so.

Ein Beispiel für eine Polyalphabetische Xor Verschlüsselung habe ich dir mal mit angehängt. Wie du gerne mit oben gepostetem Sample Testen kannst ist das "Knacken" des Passwortes ein Kinderspiel ;).
Dateianhänge
Sample_PolyAlphabet.txt
Beispiel für eine Polylphabetische Verschlüsselung
(163.6 KiB) 95-mal heruntergeladen
--
Just try it

Maik81ftl
Beiträge: 619
Registriert: Mi 9. Mär 2011, 16:34
OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
CPU-Target: 64Bit
Wohnort: seit 01.06.2011 in Wahlstedt

Re: Nette Verschlüßlung

Beitrag von Maik81ftl »

corpsman hat geschrieben:Ich glaube du hast da was falsch verstanden ...

1. Ist dein "Sample" etwas zu kurz. Für einen Vernünftigen Angriff braucht es da deutlich mehr Daten.
2. Sollten diese Daten dann in einer Binär-Datei vorliegen.
3. Ist es bei Verschlüsselten Daten üblich dass man ungefähr weis was da verschlüsselt wurde. In deinem Fall gehe ich davon aus, dass es Deutscher Text ist.
4. Ist bei einer Echten Verschlüsselung immer der Schlüssel entscheidend für die Sicherheit, nie das Verfahren Ansich. D.h. du kannst das Verfahren das du benutzt hast auch gleich mit Posten.

Wenn ich deine Andeutungen Richtig verstanden habe nutzt du einen Schlüssel dadurch wird aus deiner Monoalphabetischen Substitution eine Polyalphabetische
und sollte ich deinen Code richtig verstanden haben, dann verschlüsselst du nicht via Xor sondern durch eine Verschiebung. D.h. mein Sample ist nicht direkt nutzbar. Der Teil in dem Xor gemacht wird muss durch eine Einfache Addition+ Mod ersetzt werden.

Solltest du dich also Ernsthaft mit den Leutchen hier im Forum "anlegen" wollen, so gibt das bestimmt einen großen Spass, und es dürften da dann auch einige mitmachen :).

Ich empfehle einen Eigenen Thread, und du verschlüsselst evtl. ein Buch oder so.

Ein Beispiel für eine Polyalphabetische Xor Verschlüsselung habe ich dir mal mit angehängt. Wie du gerne mit oben gepostetem Sample Testen kannst ist das "Knacken" des Passwortes ein Kinderspiel ;).


Ähmmm guter hinweis, aber eines kann ich dir versichern, da dieses Programm in de geschrieben wird, sind auch alle texte in de. denne nutze ich weder xOR noc verschiedung oder sowas in der richtung, da dies ja schon alles bekannt ist. einfach mal was neues versuchen.

Denne meinst du, das ich mich hier in dem fall mit den leuchten anlege??? nun :D ok! denne einen kleinen wirklich Fairen tipp

ich nutze ausschließlich die functionen ctb, cto, und cth. Jede kann bis zu 3 mal vorkommen muß aber nicht :D also wer lust hat, immer zu.
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1498
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: Nette Verschlüßlung

Beitrag von corpsman »

Ohne dich beleidigen zu wollen :

ich nutze ausschließlich die functionen ctb, cto, und cth. Jede kann bis zu 3 mal vorkommen muß aber nicht :D also wer lust hat, immer zu.


Du bist wie Microsoft. "Security by Obscurity"

Wenn du wissen willst ob dein Verfahren was taugt, dann musst du genau zeigen wie dein Verfahren funktioniert und nur das Passwort geheim halten.

Siehe dazu z.B. RSA oder [urlhttp://de.wikipedia.org/wiki/Data_Encryption_Standard]DES[/url] Verfahren.

Ich hab Kryptographische Verfahren auch nur 1 Semester gehört, aber ich kann dir sagen, dass so gut wie alle Verfahren welche sich der Technik des "Verstecken" bedient haben, nach ihrer "Entdeckung" alle recht schnell und einfach geknackt werden konnten. Selbst wenn hier im Forum keiner "Lust" hat sich deines Verfahrens an zu nehmen, so ist es in der Theorie trotzdem Möglich...

Was deine Transposition angeht so wird sie durch das Mehrfache hintereinander ausführen nicht "Komplizierter" oder Schwerer zu Knacken.
Z.b.

A -> H -> B

Kann man dann beim Knacken direkt berechnen als
A -> B

Dabei ist -> der Vorgang des Verschlüsselns. In diesem Fall wird einfach nur ein anderer Schlüssel "Berechnet".

Allgemein, wenn du N mal verschlüsselst und aus A -> B wird, dann braucht der Entschlüssler nicht N Entschlüsselungen durch zu führen, ihm Reicht 1 Mal um von B auf A zu kommen.
Das kommt daher, dass alle deine Werte aus der Ursprungsmenge Bijektiv auf die Ergebnismenge Abgebildet werden müssen. ( Man spricht hier auch von Permutationen ), und wie carli bereits geschrieben hat gibt es da eben nur 256^2 unterschiedlich viele ;).
--
Just try it

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2640
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Nette Verschlüsselung

Beitrag von m.fuchs »

Abgesehen davon gibt es sowieso nur einen Menschen auf der Welt der weiß wie man richtig verschlüsselt:
Der KRYPTOCHEF: http://kryptochef.net/ :wink:

SCNR
Micha
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Maik81ftl
Beiträge: 619
Registriert: Mi 9. Mär 2011, 16:34
OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
CPU-Target: 64Bit
Wohnort: seit 01.06.2011 in Wahlstedt

Re: Nette Verschlüßlung

Beitrag von Maik81ftl »

nun Eure Meinungen sind ja Sehr interessant, von daher frag ich imch, was euch daran Hintert den Text
33033363330333133363330333133363330333133363330333033363330333133363330333033363330333033363330333033363330333033363330
33313336333033303336333033303336333033303336333033303336333033303336333033303336333033303336333033313336333033313336333033313
33633303330333633303331333633303330333633303330333633303331333633303330333633303330333633303330333633303331333633303330333633
303330333633303
mit den funtionen htc, htc, otc und btc zu entschlüßeln??? ist qwasi nur eine verschlüßelte Botschaft für das Forum. :D als noch melr als die rückrichtung zu geben kann ich nun auch nicht mehr. nur ein Hinwers, das was zb 3633h ist sollte man als 6333h lesen. dieses ist bei all meinen Wandlungen zu beachten :D

Letzter Hinweis! die zahlen sind alle 2 stellig um es handelt sich um das Sedezimalsystem.

Dürfrt auch gerne in die C schaun, um daraus einen Lesbaren test zu machen. :D
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D

carli
Beiträge: 657
Registriert: Sa 9. Jan 2010, 17:32
OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2
CPU-Target: 64Bit

Re: Nette Verschlüßlung

Beitrag von carli »

Du musst uns schon das komplette Verfahren erklären,
sonst können wir nicht beurteilen, ob es sicher ist.


Aber mal abgesehen lohnt sich Security by Obscurity doch in einigen Teilbereichen, vor allem, wenn der Nutzen, den man durch die Entschlüsselung hat geringer ist als der Aufwand, diese zu knacken.

bestes Beispiel: Proprietäre Software. Alles ist durch obskure Sicherheitsmechanismen wie z.B. Crackschutz, Cheatschutz etc. gesichert, aber niemand macht sich wirklich Mühe (bis auf Ausnahmen), diese zu knacken, weil man die Software sauberer und offener neu geschrieben hat.

Maik81ftl
Beiträge: 619
Registriert: Mi 9. Mär 2011, 16:34
OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
CPU-Target: 64Bit
Wohnort: seit 01.06.2011 in Wahlstedt

Re: Nette Verschlüßlung

Beitrag von Maik81ftl »

carli hat geschrieben:Du musst uns schon das komplette Verfahren erklären,
sonst können wir nicht beurteilen, ob es sicher ist.


Verfahren erklären :?: ok

ich übergebe an ein Zeichen (char) an eine gewünschte Function (ctb, cto oder cth) und erhalte dahingehen den entsprechenden Wert (dual bei ctb, Oktal bei cto sedezimal bei cth) in umgekehrter Reihenfolge zurück Statt A = '01000001' kommt '10000010' zurück. dies habe ich bei alles functionen nur durch zufall mitbekommen. aber kann man so nutzen. dieses ergebnis habe ich denne Zeichenweise in eine cto geschickt und anschließend mehr mals in eine cth. Somit erhalte ich bei dem Buchstaben A den Rückgabewert 330333633303331333633303330333633303330333633303330333633303330333633303330333633303331333633303hex. da die rückgabe dementsprechend sehr groß ist, ist dies denne dahingehend ein nachteil, das die savefile ebenso sehr groß wird. und Irgendeiner meinte, das ich damit PW's verschlüßeln will. irtum. da würde ich noch einen Schritt weiter gehen.
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D

Eclipticon
Beiträge: 292
Registriert: Sa 5. Feb 2011, 20:38
OS, Lazarus, FPC: Windows XP VirtualBox (FPC 2.6.4, Laz 1.2.4)
CPU-Target: 32Bit
Wohnort: Wien

Re: Nette Verschlüßlung

Beitrag von Eclipticon »

Also wenn Du einen Charakter um den Faktor 97 (!) aufblaest, dann wissen wir ja mal, dass Dein urspuengliches Raetsel aus ganzen 4 Buchstaben bestand ... ahem.

Maik81ftl
Beiträge: 619
Registriert: Mi 9. Mär 2011, 16:34
OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
CPU-Target: 64Bit
Wohnort: seit 01.06.2011 in Wahlstedt

Re: Nette Verschlüßlung

Beitrag von Maik81ftl »

Eclipticon hat geschrieben:Also wenn Du einen Charakter um den Faktor 97 (!) aufblaest, dann wissen wir ja mal, dass Dein urspuengliches Raetsel aus ganzen 4 Buchstaben bestand ... ahem.


Irtum... Sind genau 67 Zeichen.

Will aber nicht ausschließen, das ich hier einen kleinen Denkfehler hab.

Code: Alles auswählen

Function Umwandeln(cValue: String; Richtung: String): PChar;
Var d, rlength: Byte;
    Temp, Temp2: String;
begin
  for rlength:= 1 to length(Richtung) do
    begin
    Temp:= '';
    case strtoint(Richtung[rlength]) of
      1: for d:= 1 to length(cValue) do
           Temp:= ctb(ord(cValue[d])) + Temp;
      2: for d:= 1 to length(cValue) do
           Temp:= cto(ord(cValue[d])) + Temp;
      3: for d:= 1 to length(cValue) do
           Temp:= cth(ord(cValue[d])) + Temp;
    end;
    cValue:= Temp;
  end;
  Result:= PChar(Temp);
end;


Hier ine fehler zu haben sagt wohl alles :D

Code: Alles auswählen

Var d, rlength: Byte;
Zuletzt geändert von Maik81ftl am So 24. Apr 2011, 15:32, insgesamt 1-mal geändert.
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D

Eclipticon
Beiträge: 292
Registriert: Sa 5. Feb 2011, 20:38
OS, Lazarus, FPC: Windows XP VirtualBox (FPC 2.6.4, Laz 1.2.4)
CPU-Target: 32Bit
Wohnort: Wien

Re: Nette Verschlüßlung

Beitrag von Eclipticon »

Ja, irgendwas passt hier wohl nicht ... lt. Deiner letzten Nachricht wandelst Du ein A in einen String mit 97 Zeichen um. Dein originaler String war 388 Zeichen lang, also genau 4x so viel.

Ausserdem ist 388 nicht mal ohne Rest durch 67 teilbar ... wie soll das bei einer monoalphabetischen Verschluesselung denn gehen?

Antworten