One-Time-Pad - Assignment 3

  • Okay, die Nachrichten (meinst du plaintext in diesem Fall?) haben 20-40 Zeichen Länge. Das muss dementsprechend bedeuten, dass alle Zeichen in den cipher-texts ab dem 80.Zeichen der Schlüssel selbst sein muss, weil x^0 = x.


    Das macht allerdings keinen Sinn, weil die 10 gegebenen cipher-texts eine unterschiedliche Länge haben. Sinn würde das ganze für mich machen, wenn tatsächlich 10 verschiedene Keys verwendet wurden.


    Naja ich würde behaupten, dass der schlüssel bei einem OneTimePad mindestens so lang ist, wie der Text, der damit verschlüsselt wurde.


    Also ich hab die Aufgabe gelöst indem ich mir einfach einmal die 10 gegebenen ciphertexts angesehen habe, da kann man dann evtl schon irgendwas erraten.

  • Ich sitz nun schon seit längerem an dieser Assignment und irgendwie komme ich nicht weiter. Ich habe mir die Umwandlung und das XORen ein Programm geschrieben und wollte zum Beginn einmal jeweils den 1. Buchstaben der 10 Cibertexte mit allen möglichen Zeichen (Groß- und Kleinbuchstaben, Zahlen, Sonderzeichen) XORen. Allerdings bekomme ich da bei keinem ein "schönes" Ergebnis - sprich irgendeinen Buchstaben, mit dem ich weitermachen kann und weiter probieren kann, weil immer irgendwelche "komsichen" Zeichen bzw. Sonderzeichen dabei sind, die keinen Sinn ergeben würden. Hat jemand einen Rat für mich?
    [TABLE='width: 500, align: left']

    [tr]


    [td]

    A: ~e~~xpeÞfr
    B: }f}}{sfÝeq
    C: |g||zrgÜdp
    D: {`{{}u`Ûcw
    E: zazz|taÚbv
    F: ybyywbÙau
    G: xcxx~vcØ`t
    H: wlwwqyl×o{
    I: vmvvpxmÖnz
    J: unuus{nÕmy
    K: tottrzoÔlx
    L: shssu}hÓk
    M: rirrt|iÒj~
    N: qjqqwjÑi}
    O: pkppv~kÐh|
    P: otooiatÏwc
    Q: nunnh`uÎvb
    R: mvmmkcvÍua
    S: lwlljbwÌt`
    T: kpkkmepËsg
    U: jqjjldqÊrf
    V: iriiogrÉqe
    W: hshhnfsÈpd
    X: g|ggai|Çk
    Y: f}ff`h}Æ~j
    Z: e~eeck~Å}i
    Ä: ûàûûýõà[ã÷
    Ö: éòééïçòIñå
    Ü: ãøããåíøCûï

    [/td]


    [td]

    a: ^E^^XPEþFR
    b: ]F]][SFýEQ
    c: \G\\ZRGüDP
    d: [@[[]U@ûCW
    e: ZAZZ\TAúBV
    f: YBYY_WBùAU
    g: XCXX^VCø@T
    h: WLWWQYL÷O[
    i: VMVVPXMöNZ
    j: UNUUS[NõMY
    k: TOTTRZOôLX
    l: SHSSU]HóK_
    m: RIRRT\IòJ^
    n: QJQQW_JñI]
    o: PKPPV^KðH\
    p: OTOOIATïWC
    q: NUNNH@UîVB
    r: MVMMKCVíUA
    s: LWLLJBWìT@
    t: KPKKMEPëSG
    u: JQJJLDQêRF
    v: IRIIOGRéQE
    w: HSHHNFSèPD
    x: G\GGAI\ç_K
    y: F]FF@H]æ^J
    z: E^EECK^å]I
    ä: ÛÀÛÛÝÕÀ{Ã×
    ö: ÉÒÉÉÏÇÒiÑÅ
    ü: ÃØÃÃÅÍØcÛÏ
    ß: àûààæîû@øì
    : ¿
    .:


    ±
    ?:

    [/td]


    [/tr]


    [/TABLE]

  • War jetzt keine genaue Angabe (sry falls das missverstanden wurde), ich seh grad, dass die wirklich alle schon ein stück Länger sind. Sry.
    Von der Länge der Angabe sieht man es ja eh auch.

    "The quieter you become, the more you are able to hear."
    -------------------------------------------------------------------------------------

    Edited once, last by Juggl3r ().

  • Ich sitz nun schon seit längerem an dieser Assignment und irgendwie komme ich nicht weiter. Ich habe mir die Umwandlung und das XORen ein Programm geschrieben und wollte zum Beginn einmal jeweils den 1. Buchstaben der 10 Cibertexte mit allen möglichen Zeichen (Groß- und Kleinbuchstaben, Zahlen, Sonderzeichen) XORen. Allerdings bekomme ich da bei keinem ein "schönes" Ergebnis - sprich irgendeinen Buchstaben, mit dem ich weitermachen kann und weiter probieren kann, weil immer irgendwelche "komsichen" Zeichen bzw. Sonderzeichen dabei sind, die keinen Sinn ergeben würden. Hat jemand einen Rat für mich?


    ja, zäum das pferd von hinten auf. geh vom schönen ergebnis aus...
    evtl. hast du bei der bitweisen xor operation was falsch? mach xor lieber auf die byte werte. ich habs mit matlab gemacht und da haut die anzeige von ascii codes nicht für alle werte hin - d.h. das was in matlab an ascii-zeichen angezeigt wird, ist blödsinn sofern es keine normalen alphanumerischen zeichen sind. ich nutze ascii-zeichen nur zur überprüfung - gerechnet und auch angezeigt wird bei mir mit uint8 (unsigned integer 8bit breite).

  • Hallo,
    ich habe es versucht mit xor und verschiedene cribs, komme aber seit 3 tage nicht mehr weiter. Ich habe die methoden in verschiedenen webseiten versucht (kann ich die angeben oder sind sie als lösung betrachtet und daher hier verboten?) bekomme aber jedes mal nur unsinn und sonderzeichen.
    Vielleicht kann mir jemand einen andren lösungsweg vorschlagen oder einen tipp zur richtigen anwendung meiner bereits versuchten methoden?

  • Ich hab mal ein kleines Gedicht verfasst, ich hoffe es verrät nicht zuviel :D


    When you struggle to find a crib
    good ol' math has got a tip
    frequencies come to rescue
    if that doesn't help, then well, screw you.

  • Ich versuch das seit ein paar Tagen zu lösen, komme aber zu keiner sinnvollen Lösung. Ich hab ein programm geschrieben, das alle chipertexte miteinander bitweise mit xor verknüpft und dann kann ich ein wort eingeben. Die Eingabe wird mit alle Xor-hexdaten wieder auf jeder position mit xor verknüpft und dann kann ich sehen, ob dieses Wort im Text vorkommt.
    Stimmt dieser Ansatz?

  • Hi Delaniz,


    dieser Ansatz hört sich gut an. Diese Methode ist auch unter dem Namen crib dragging bekannt.


    Hier ist ein Beispiel in Ruby, wo crib dragging demonstriert wird.
    Wichtig ist hierbei ein gutes crib zu finden:
    Ist der Plaintext auf Deutsch, sind " der ", " die " und " und " gute Kandidaten.
    In der Englischen Sprache ist das häufigste Wort " the ".
    (die Leerzeichen gehören hier zum Wort)


    Ein weiterer Tipp ist:
    Wenn der Plaintext in ASCII ist, dann hilft es zu wissen, dass das 6te Bit von Buchstaben gesetzt ist, aber das 6te Bit von Leerzeichen, Nummern und Interpunktion nicht. Da Leerzeichen darunter am häufigsten vorkommen, gibt dies oft einen guten Hinweis darauf, wo diese vorkommen.

  • Ich sitze auch gerade an dem Beispiel und verfolge auch denselben Ansatz wie delaniz. Habe mir ein Programm geschrieben, das alle Cyphertexte miteinander XOR-verknüpft und dann einen Crib auf jeder Position der kombinierten Cyphertexte noch einmal XOR-verknüpft. Wir wissen, dass der Plaintext auf Englisch ist, ich bekomme aber mit häufigen Wörtern wie "the" (oder " the ") dennoch nur unlesbare Zeichenfolgen heraus. Dabei habe ich aber all meine Hilfsfunktionen, die Dinge, wie das Verknüpfen oder die ASCII-Umwandlung übernehmen, auf Korrektheit getestet. Was könnte es denn noch für Fehlerquellen geben?


    Edit: Ok, ich habe zumindest einen kleinen Fortschritt gemacht: Ich bekomme ab und zu brauchbare Ergebnisse, aber nur, wenn ich nur zwei einzelne Cyphertexte miteinander verknüpfe und diese dann auf einen Crib untersuche. Heißt das, es sollten nicht alle Cyphertexte in einen gemischten Text kombiniert werden?