kleine und primitive Verschlüsselung

Moin Moin zusammen,

ich habe hier eine kleine und primitive Verschlüsselung Marke Eigenbau.
Aus purer Lust und Langeweile habe ich mal versucht eine etwas andere Art der Verschlüsselung zu entwickeln.

Ich würde euch an dieser Stelle einmal bitten die Originaldatei wieder herzustellen und eure Ergebnisse mitzuteilen.

Ein Key o.ä. wird nicht benötigt.

Viel Spaß damit :)
 
Wenn ein Key nicht benötigt wird, dann ist es auch keine Verschlüsselung, sondern eher eine Kodierung ;). Außerdem ist es fast unmöglich ohne Kenntnis von Verschlüsselungsverfahren oder mehrere Ein-/Ausgabe einen Zusammenhang zu entdecken.
 
Habe es dekodiert! Das kommt raus:

"Jeder anscheinend verschlüsselte oder kodierte Bytestring kann ohne Kenntnis über Algorithmus oder Plaintext alles mögliche bedeuten. Informationstheoretisch kommen unendlich viele Algorithmen und Klartexte in Frage."
 
mit einem hinreichend langen Text und einigen Hintergrund-Informationen, was sich hinter dem Klartext verbirgt (z.B. Sprache des Textes, Sachgebiet, ...) kann man Anhand der Buchstabenhäufigkeit den Originaltext oftmals rekonstruieren.

Für ein vernünftiges Ergebnis ist jedoch dein Text zu kurz - ich versuche es dennoch einmal...

Da in deinem kodierten Text fast immer nach 2, manchmal schon nach 1 Buchstaben ein Bindestrich kommt, liegt der Ansatz nahe, dass es sich hierbei um das Trennungszeichen handelt, mit welchem du einzelne Buchstaben trennst.

Etwas unklarer dagegen ist, ob es sich bei dem Unterstrich um ein Leerzeichen handelt.
Meine erste Vermutung war, dass "X_" ein eigenständiges Symbol ist, da jedoch weiter hinten auch mal ein "X" allein stand, entschied ich mich für die Annahme, dass es sich bei "_" um ein Leerzeichen handelt.

nun habe ich mir ein kleines Hilfsscript geschrieben, um aus diesem kleinen Textschnipsel mal eine Häufigkeits-Verteilung zu basteln (hatte keine Lust auf Strichliste... ;-) )

PHP:
<?php
/**
 * i'm too lazy to initiate all array-keys - so please hide the NOTICE!
 */
error_reporting(0);


$code = 'CQ-XQ-XA-CD-XT-X_-T1-Z3-CM-I_-CD-CR-T1-CR-X_-CQ-CR-W-X-N1-F1-G1-D2-P2-M2-Q2-R2-Y2-O1-W-X-CR-X_-CQ-CR-W-X-L3-V3-Z3-W-X-N1-F1-G1-';

/**
 * removes empty array-elements
 */
function trim_array(array $array)
{
    $result = array();
    foreach ($array as $value) {
        if (!empty($value)) {
            $result[] = $value;
        }
    }
    return $result;
}

$startChars = array();
$endChars = array();
$allChars = array();

$words = trim_array(explode('_', $code));

foreach ($words as $word) {
    $chars = trim_array(explode('-', $word));

    $firstChar = $chars[0];
    $lastChar  = $chars[sizeof($chars)-1];
    $startChars[$firstChar]++;
    $endChars[$lastChar]++;
    foreach ($chars as $char) {
        $allChars[$char]++;
    }
}

echo 'Häufigkeit der Anfangsbuchstaben:';
arsort($startChars);
print_r($startChars);

echo 'Häufigkeit der Endbuchstaben:';
arsort($endChars);
print_r($endChars);

echo 'Häufigkeit ALLER Buchstaben:';
arsort($allChars);
print_r($allChars);

und heraus kam folgendes
Code:
# php stat.php 
Häufigkeit der Anfangsbuchstaben:Array
(
    [CQ] => 3
    [CD] => 1
    [T1] => 1
)
Häufigkeit der Endbuchstaben:Array
(
    [X] => 3
    [G1] => 1
    [I] => 1
)
Häufigkeit ALLER Buchstaben:Array
(
    [X] => 7
    [CR] => 5
    [W] => 4
    [CQ] => 3
    [N1] => 2
    [G1] => 2
    [CD] => 2
    [F1] => 2
    [Z3] => 2
    [T1] => 2
    [R2] => 1
    [Q2] => 1
    [Y2] => 1
    [O1] => 1
    [V3] => 1
    [M2] => 1
    [L3] => 1
    [D2] => 1
    [XQ] => 1
    [I] => 1
    [XA] => 1
    [XT] => 1
    [CM] => 1
    [P2] => 1
)

Diese Erkenntnis KANN stimmen, MUSS aber nicht... aber mal schauen, was raus kommt...

"X" ist das häufigste Symbol (also mit hoher Wahrscheinlichkeit ein "E"), jedoch gleichzeitig auch das häufigste End-Symbol eines Wortes. (dann vielleicht doch ehr ein "N") - ich entscheide mich für "N"

Das Zweit-häufigste Symbol ist das "CR" - dann interpretiere ich dieses nun mal als "E"

"CQ" ist das häufigste Anfangssymbol und Somit ein Kandidat für "D" oder "S" - ich versuche es mit "S"

"W" kommt allgemein auch ziemlich häufig vor und an 2 Stellen hinter dem "CR", hinter welchem ich ein "E" vermute...
also ist "W" mit relativ hoher Wahrscheinlichkeit ein "I"

alle weiteren Buchstaben kommen nur 1 oder 2 mal vor... und auch allgemein ist die relative Häufigkeit der Buchstaben im Mittelfeld relativ nahe bei einander...

wir haben bisher also folgendes Ergebnis unter der Vorraussetzung, dass mein Ansatz überhaupt der richtige ist.

Wenn der Ansatz stimmt und du noch so 3-4 Texte, welche jeweils mindestens 1-2 A4-Seiten umfassen mit gleichem Algorithmus verschlüsselst, dann bekomme ich da eventuell was gescheiteres raus...

aber mit so einem kleinen Text ist es echt nahezu unmöglich.

wir können es aber auch mal mit "Glücksrad" versuchen...
Code:
CQ-XQ-XA-CD-XT-X  _ -T1-Z3-CM-I  _ -CD-CR-T1-CR-X  _ -CQ-CR-W -X -N1-F1-G1-D2-P2-M2-Q2-R2-Y2-O1-W -X -CR-X  _ -CQ-CR-W -X -L3-V3-Z3-W -X -N1-F1-G1-
S              N                       E     E  N     S  E  I  N                                I  N  E  N     S  E  I  N           I  N
möchte schon jemand lösen? :D


man kann genauso gut jeweils das zweite Zeichen als "Steuerzeichen" oder "Key" ansehen..
Code:
C X X C X X   T Z C I   C C T C X   C C W X N F G D P M Q R Y O W X C X   C C W X L V Z W X N F G
Q Q A D T     1 3 M     D R 1 R     Q R     1 1 1 2 2 2 2 2 2 1     R     Q R     3 3 3     1 1 1

oder sollte es sich bei "_" nicht um ein Leerzeichen handeln, dann

Code:
C X X C X X T Z C I C C T C X C C W X N F G D P M Q R Y O W X C X C C W X L V Z W X N F G
Q Q A D T _ 1 3 M _ D R 1 R _ Q R     1 1 1 2 2 2 2 2 2 1     R _ Q R     3 3 3     1 1 1

was jetzt genau die untere Zeile mit der oberen macht... außer wildem hin und her probieren hat man da nicht viele Möglichkeiten...
 
Habe es dekodiert! Das kommt raus:

"Jeder anscheinend verschlüsselte oder kodierte Bytestring kann ohne Kenntnis über Algorithmus oder Plaintext alles mögliche bedeuten. Informationstheoretisch kommen unendlich viele Algorithmen und Klartexte in Frage."

Dann ist die Entropie des verschlüsselten Textes erstaunlich hoch ;)
 
War ja nur Ironie. :D
Also, dass es sich um den Klartext handelt. Die Botschaft darin ist allerdings ernst gemeint.
 
mein episches decrypter tool brachte mir folgende aussage:

D)(§"DJD)ADJ()"(ÖF;LH VNSDFLS DSDKLJLASFKJSJ

is das die lösung? :)
 
Zurück
Oben