Okay, hab meinen verschlüsselungsalgorithmus(TEA3), aber entschlüsseln... ?



  • Rhombicosidodecahedron schrieb:

    Abgesehen, dass es nach der Implementierung bislang nur 172 800 unterschiedliche Tabellen generiert werden konnten (sie basiert ja auf srand und rand und daher pro Sekunde eine Schlüssel), ...

    ???

    Rhombicosidodecahedron schrieb:

    und der peinlichen Implementierung

    😞

    Rhombicosidodecahedron schrieb:

    sowohl des shuffle Algorithmus-es bei der Tabellenerstellung als auch dessen Anwendung, lässt sich die Verschlüsselung vermutlich sehr stark zusammenfassen: ...

    Ja sollte stimmen.
    Warum eigentlich "sehr stark"?
    Ist ja fast alles, was man zum algorithmus wissen muss. sonst nurnoch den aufbau des würfels.

    Rhombicosidodecahedron schrieb:

    Und noch einem weiteren Fehler, dessen Tragweite ich nicht abschätzen kann, der aber sichtbar wird, wenn man mehrere 10000 male das gleiche Zeichen verschlüsselt.

    Ouch, ja ich sehes. Wenn man i beim XOR schritt nicht nur chunk-local aber global übers ganze verschlüsseln geben sollte, sollte der dritte schritt es noch weiter verziehen und alles sollte wieder wunderbar sein. wie schon gesagt der XOR teil ist nur prototyp.

    Rhombicosidodecahedron schrieb:

    Ergebnis: Tolle Verschlüsselung 😮
    Für meinen Fall kann also keine eindeutige Verschlüsselung existieren. Bei mehr Zeichen setzt sich der Fehler fort und nach einigen Zeichen ist wohl jeder Geheimtext denkbar.
    Wahrscheinlich für tea3 ebenso. Müsste man mal durchtesten.
    Ergebnisse für srand(0) und #define TABGEN_PASSES 256 auf Win7x64: ...

    Habs nicht wirklich gecheckt... Machst du TEA2 oder TEA3? (TEA2 ist nur die funktion tea_encrypt_tea2tra, ohne die zwei anderen.).
    Wenn jeder mögliche Geheimtext denkbar ist, wieso kann ich TEA2 fehlerlos ver-und entschlüsseln? (um TEA3 entschlüsselung gehts ja hier).
    Ich versteh nicht wirklich wozu die zufallszahlen da sind, sorry...

    Rhombicosidodecahedron schrieb:

    Ich programmiere nicht andauernd in C und möchte diesen Chat nicht hijacken, aber warum schließt du den outfile Stream in deinen Methoden, wenn sie ihn gar nicht öffnen???

    Ich brauche auch stdin/stdout ab und zu. die zu öffnen ist ein bisschen dumm. falls da doch eine datei ist wird diese in main geöffnet. (--> github source...)

    PS: Sehr vielen dank für die interresse 🙄



  • ich glaube du wirst es nie kapieren!
    dein algorihmus ist für die katze.
    lerne bitte die materie! wenn du dann soweit bist, dann weist du selber warum!



  • lb schrieb:

    ich glaube du wirst es nie kapieren!
    dein algorihmus ist für die katze.
    lerne bitte die materie! wenn du dann soweit bist, dann weist du selber warum!

    Mach du mal was besseres.
    Wenn du mir nicht sagst WARUM, WORIN der fehler liegt ist deine Aussage wertlos.



  • lk schrieb:

    lb schrieb:

    ich glaube du wirst es nie kapieren!
    dein algorihmus ist für die katze.
    lerne bitte die materie! wenn du dann soweit bist, dann weist du selber warum!

    Mach du mal was besseres.
    Wenn du mir nicht sagst WARUM, WORIN der fehler liegt ist deine Aussage wertlos.

    Warum sollte man versuchen, dir das zu erklären? Du würdest es eh nicht verstehen.
    Setzt dich mal ein paar Monate/Jahre mit der Materia auseinander, dann betrachtest du deinen Algorithmus nochmal.



  • habe ja geschrieben das dein cipher auf differenzielle kryptoanalyse anfällig ist, weil dein schlüssel nicht zufällig ist.von allem anderen mal abgesehen...



  • 314159265358979 schrieb:

    lk schrieb:

    lb schrieb:

    ich glaube du wirst es nie kapieren!
    dein algorihmus ist für die katze.
    lerne bitte die materie! wenn du dann soweit bist, dann weist du selber warum!

    Mach du mal was besseres.
    Wenn du mir nicht sagst WARUM, WORIN der fehler liegt ist deine Aussage wertlos.

    Warum sollte man versuchen, dir das zu erklären? Du würdest es eh nicht verstehen.
    Setzt dich mal ein paar Monate/Jahre mit der Materia auseinander, dann betrachtest du deinen Algorithmus nochmal.

    Niemand hats versucht.

    Das war nur der 2D algorithmus. der neue geht nicht mit differenzieller. wegen XOR.



  • lk schrieb:

    Das war nur der 2D algorithmus. der neue geht nicht mit differenzieller. wegen XOR.

    Aha! Na, wenn das so ist, dann ist ja alles gut.

    Es geht eben nichts über Vollbitverschlüsselung, am besten mit verteilten Master- und Userkeys in Zonentaxonomie.



  • nein! weil dein schlüssel nicht zufällig ist!
    und auserdem bezweifle ich das du die diff. kryptoanalyse verstehst!



  • Rein aus Interesse: Wie "gut" ist denn mein "Algortihmus" (mit xor statt +=)? Ich nehme mal an, dass der ziemlich unbrauchbar ist, weil sich die Regelmässigkeit von rand() irgendwie bemerkbar macht.



  • 314159265358979 schrieb:

    Rein aus Interesse: Wie "gut" ist denn mein "Algortihmus" (mit xor statt +=)? Ich nehme mal an, dass der ziemlich unbrauchbar ist, weil sich die Regelmässigkeit von rand() irgendwie bemerkbar macht.

    Man muß nur die 4.2Mrd seeds für srand() ausprobieren. Eine Sache von Sekunden.



  • Da der Algorithmus aber nicht bekannt ist, sollte das doch auch was bringen, oder? Schließlich müsste man ja erst mal draufkommen, dass hier überhaupt mit Pseudo-Zufall gearbeitet wird.


  • Mod

    314159265358979 schrieb:

    Rein aus Interesse: Wie "gut" ist denn mein "Algortihmus" (mit xor statt +=)? Ich nehme mal an, dass der ziemlich unbrauchbar ist, weil sich die Regelmässigkeit von rand() irgendwie bemerkbar macht.

    Wenn rand() ein kryptografisch sicherer Pseudozufallszahlengenerator ist, sollte dein Algorithmus meiner laienhaften Auffassung nach sogar sicher sein, vorausgesetzt du verschlüsselt mit jedem Schlüssel nur einen einzigen Text. Verschlüsselst du mehrere Texte mit demselben Schlüssel, ist die Zurückgewinnung des Schlüssels trivial, einfach ein XOR der beiden Ciphertexte machen. Nach dem Prinzip deines Algorithmus arbeiten manche Streamciphers, zum Beispiel AES im CTR-Mode.

    Normalerweise ist rand() aber etwas ganz simples wie zum Beispiel ein linearer Kongruenz-Generator. Da kann man mit den richtigen Verfahren sofort die Regelmäßigkeit erkennen und die nächsten Pseudozufallszahlen vorhersagen, das ist also völlig unsicher, auch wenn du den Schlüssel nur einmal verwendest.

    edit: Unter Berücksichtigung von volkards Antwort der Zusatz: srand() sollte mehr als 32 Bit des Keys auswerten, damit das eine Chance hat, sicher zu sein.



  • 314159265358979 schrieb:

    Da der Algorithmus aber nicht bekannt ist, sollte das doch auch was bringen, oder? Schließlich müsste man ja erst mal draufkommen, dass hier überhaupt mit Pseudo-Zufall gearbeitet wird.

    Einfach den Code lesen.

    http://de.wikipedia.org/wiki/Kerckhoffs’_Prinzip


  • Mod

    314159265358979 schrieb:

    Da der Algorithmus aber nicht bekannt ist, sollte das doch auch was bringen, oder? Schließlich müsste man ja erst mal draufkommen, dass hier überhaupt mit Pseudo-Zufall gearbeitet wird.

    Sehr gut, dass du das ansprichst. Genau *das* ist nämlich der Punkt, an dem sich klassische Kryptografie von moderner Kryptografie unterscheidet.

    In klassischer Kryptografie beruhte tatsächlich ein entscheidender Teil der Sicherheit auf der Annahme, dass der Algorithmus geheim war.

    In moderner Kryptografie beruht die Sicherheit dagegen auf anderen, stärkeren Annahmen. Annahmen, die man in moderner Kryptografie zum Beispiel findet sind "es gibt eine one-way function" oder "NP != P". Diese Annahmen haben sich bisher als sicherer erwiesen als die Annahme "der Algorithmus ist geheim".



  • @volkard: Stimmt, das habe ich schon mal irgendwo gehört 🙂
    @Christoph: Mit "NP != P" fange ich relativ wenig an. Ich meine mich erinnern zu können, dass das was mit Laufzeitkomplexitätsklassen zu tun hat.

    Hm... One-Way Funktion. So eine Funktion wäre dann eine gleichmäßige Abbildung eines großen Wertebereichs auf einen kleineren?



  • Ganz kurz offtopic: Also müsste man "schlüssel" schreiben, die selber den algorithmus irgendwiedefinieren und sich selbst als schlüssel verwenden ?

    Okay ich weis das das nicht 100%-ige zufälligkeit ist, aber woher soll ich denn bitteschön wirkliche zufallszahlen herbekommen? 25638 mal Münzen werfen werde ich doch nie im leben tun!

    Okay Christoph, das mit dem XOR ist ja natürlich, aber da ist ja das 2D und das 3D teil in beide richtungen... Es sei denn der algorithmus macht garnichts. aber er macht ja etwas... also...

    EDIT: Falls alle mich deswegen an die wand nageln, der Würfel wird beim generieren zufällig durchgeschüttelt.


  • Mod

    Vor langer Zeit in einem weit, weit entferntem Forum:

    [b]Ki[/b]: Ich habe ein neues Auto entwickelt. Es basiert auf meinen vorherigen
    Modellen Seifenkiste-A und Bollerwagen-3. Nun habe ich aber ein Problem: Der 
    Wagen springt nicht an. Bei meinen letzten Modellen hat TyRoXx noch hinten 
    angeschoben.
    [b]Ki[/b]: Also das Auto ist 15x28 Meter groß und wiegt 278 Tonnen. Das sollte 
    folglich viel besser sein als normale Autos.
    [b]ChristStollen[/b]: Sollte ein Autoentwickler nicht selber wissen, wie er 
    seinen Wagen anlässt? Und ist das Auto nicht ein bisschen groß?
    [b]motze[/b]: Normalerweise sollte ein Auto wesentlich kleiner als eine Straße 
    sein.
    [b]AlBundy[/b]: Was ist denn dein Problem? Du hast eine Seifenkiste gebaut und 
    weißt nicht, dass die angeschoben werden muss, damit sie fährt? Und bei deiner
    letzten Seifenkiste hat TyRoXx noch geschoben und dir zudem erklärt, dass die 
    nicht wie ein Auto von alleine fahren kann? Und warum wird John DeLorean hier 
    zensiert?
    [b]Krümelmonster[/b]: Was hat das alles mit Blumenbinden zu tun? Außerdem: Wenn 
    man ein Auto bauen will, dann sollte man sich zunächst ein schlaues Buch dazu 
    holen. Versuche einfach ein paar Räder an eine Kiste zu kleben muss man heute 
    eher müde belächeln.
    [b]Ki[/b]: TyRoXx ist ein erfahrener Autobauer! Der hat mir die Idee gegeben, 
    ein Auto zu bauen. Aber dieses Auto ist 100% von mir selbst.
    [b]Mod-Bot[/b]: Dieses Thema wurde von Mod-Bot aus dem Forum "Blumendekoration" 
    in das Forum "Auto-Eigenbau" verschoben.
    [b]KasperS[/b]: Also du hast ein Auto gebaut, indem du einfach Teile von 
    anderen Maschinen planlos zusammen geklebt hast? Vielleicht kann man es noch 
    wie eine Seifenkiste anschieben. Aber das fährt bestimmt nicht von alleine.
    [b]draklov[/b]: @AlBundy: DeLorean wird zensiert, weil seine Versprechungen als 
    Vaporware anzusehen sind.
    [b]-highbit-[/b]: @ChristStollen: Du brauchst dich nicht zurück zu halten. Das 
    Ding ist einfach Mist. Der Motor ist eine leere Pappkiste auf der "Wackelmotor" 
    geschrieben steht, die Lenkung besteht aus drei verknoteten Tintenfischen. 
    Zwei der neun Räder stehen senkrecht zu den anderen und die Handbremse kann man 
    nicht lösen. Alles Scheiße.
    [b]Ki[/b]: Sicher ist das noch nicht perfekt.  Aber meine vorherigen Modelle 
    sind auch gut gefahren, so lange TyRoXx geschoben hat. Aber dieses Modell hat 
    einen Wackelmotor! Das ist so ähnlich wie ein Wankelmotor! Das ist ein voll 
    geiles Gerät, hab ich auf Wikipedia gelesen! Und mit den neun Rädern, sollte es 
    9/4-Mal so schnell fahren wie ein normales Auto.
    [b]KasperS[/b]: Ich habe eine tolle Idee für dich: Wie du ja schon weißt, sind 
    Wankelmotoren tolle Geräte, wenn man es richtig hin bekommt. Warum benutzt du 
    keinen Wankelmotor? Ach ja: Die funktionieren in der Praxis nicht so gut.
    [b]Ki[/b]: 15x28 Meter sollten straßentauglich sein. Und das ist alles nur ein 
    Prototyp. Und ich benutze doch eine Art Wankelmotor. Mein Wackelmotor ist bloß 
    besser. Und ich verstehe auch gar nicht, wieso der Motor für ein Auto wichtig 
    sein sollte. Mein Auto hat Räder. Neun Stück! Und ihr seid alle doof.
    [b]Armin[/b]: Da dein Motor nur eine leere Pappkiste ist, wird er 
    höchstwahrscheinlich nicht funktionieren. Da du im Auto-Eigenbau-Forum 
    schreibst, vermute ich, dass du einen funktionierenden Motor möchtest. Sätze 
    wie "Ein Wackelmotor ist besser als ein Wankelmotor" sind Marketing-Sprache. 
    Für einen echten Motor musst du über Verbrennungsvorgänge und Hubkraft 
    nachdenken. Da du das nicht tust, stößt du hier auf so viel Widerstand.
    [b]KasperS[/b]: Wenn man schon von normalen Autofahrern hört, dass das Auto 
    nichts taugt, sollte einem das als Möchtegern-Autoingeneur zu denken geben.
    [b]-highbit-[/b]: Dein Wackelmotor ist kein richtiger Motor. Das ist eine leere 
    Pappkiste und kann nicht funktionieren!
    [b]-highbit-[/b]: Um ein Auto selber zu bauen, braucht man Monate, nicht bloß 
    einen Nachmittag.
    [b]27182818284[/b]: Mein Auto. Entwickelt in 5 Sekunden:
    L_\_  
    L__J  
    ()()
    [b]Deltoidalhexecontahedron[/b]: Ich habe mir vielleicht zu viele Gedanken 
    gemacht: 
     [...Professionelle Analyse der Seifenkiste durch einen Diplomingenieur...]
    @Ki: Du siehst, es kann gar nicht fahren.
    @27182818284: Warum dann nicht so?
         .--------.
    ____/_____|___ \___
    O    _   - |   _   ,*
    '--(_)-------(_)--'  
    [b]27182818284[/b]: Weil es dann kein 5 Sekunden Auto mehr wäre, sondern ein 10 
    Sekunden Auto
    [b]Ki[/b]: ??? Ich verstehe gar nichts, von dem was ihr mir sagt? Was ist eine 
    Zündkerze? Und dieses Benzin, wozu soll das gut sein? Meine vorherige 
    Seifenkiste fuhr auch ohne!
    [b]Bi[/b]: Du wirst es nie kapieren, du hast keine Ahnung von Autos.
    [b]Ki[/b]: Dann sag mir doch was falsch ist!
    [b]27182818284[/b]: Wieso sollte man? Du verstehst es doch nicht!
    [b]highbit#[/b]: Ich habe dir doch erklärt, dass ein Wankelmotor wie deiner 
    abbrennen wird, wenn du ihn zündest, weil er nur aus Pappe besteht.
    [b]Ki[/b]: Niemand hat mir was erklärt. Und dies ist ein Wackelmotor! Der ist 
    feuerfest!
    [b]draklov[/b]: Aha! Der DeLorean DMC-12 kann mit einer Tasse Benzin 100 km 
    weit fahren. Die Stecke schafft er dabei in 15 Minuten. Dies ist das einzig 
    wahre Auto.
    [b]highbit#[/b]: Nein! Weil er aus Pappe ist! Ich glaube du versteht gar nicht, 
    was Feuer ist!
    [...gekürzte Offtopic-Diskussion über ASCII-Autos...]
    [b]Ki[/b]: Also müsste ich einen Feuerlöscher in den Motor einbauen, damit dieser
    sich selbstständig wieder löscht, nachdem diese "Zündkerze" (die ich noch 
    einbauen werde) gezündet hat?
    

  • Mod

    314159265358979 schrieb:

    Hm... One-Way Funktion. So eine Funktion wäre dann eine gleichmäßige Abbildung eines großen Wertebereichs auf einen kleineren?

    Die Annahme, dass eine one-way-Funktion existiert ist auf einem ähnlichen Level wie "NP != P". Genauer gesagt, falls P = NP gelten sollte, dann existiert keine one-way-Funktion.

    Eine One-way-Funktion ist eine Funktion f, die natürliche Zahlen auf natürliche Zahlen abbildet. Außerdem soll f(x) für jede natürliche Zahl x effizient berechenbar sein. Aber wenn man ein y gegeben hat, dann soll es enorm schwer sein, ein x zu finden, sodass f(x) = y gilt. Ob es solche Funktionen gibt oder nicht, ist zur Zeit ein offenes Problem.

    Die Funktion muss nicht unbedingt einen großen Wertebereich auf einen kleinen abbilden. Das wär sogar eher kontraproduktiv, denn eine Funktion mit beschränktem Bildbereich ist sicher keine One-Way-Funktion, weil man dann einfach eine statische Lookup-Table nehmen kann, um ein Inverses zu finden. Die Lookup-Table wär zwar gigantisch groß, aber das ist für die theoretische Betrachtung egal, weil die Größe konstant ist und deswegen nicht in die Laufzeit zählt.



  • SeppJ: 😃 👍

    damit qualifiziert sich das doch fast für die FAQ 🙂



  • SeppJ: Geile Geschichte. 👍 Wie kommt man nur auf sowas?
    Christoph: Danke für die Erklärung 🙂


Anmelden zum Antworten