Reinhard: Kasiski-Test - Javascript Tool

Beitrag lesen

Hallo allerseits,

ich bin seit einigen Tagen damit beschäftigt den Kasiski-Test mit Javascript zu realisieren.

Als erstes ist es nötig alle Wiederholungen von Buchstabenfolgen (3 oder länger) im Kryptogramm zu finden. Ich habe nun eine Funktion geschrieben, die mir absolut jede Wiederholung in ein Array schreibt. Hier kommt die 1. Frage: gegeben sei der Text 'hausgartenkatzegartenhund'. Meine Funktion würde nun finden: garten , garte , arten , gart , arte , rten , gar , art , rte , ten. Ist es nun wirklich das, was man beim Kasiski-Test wirklich macht? Oder "zählt" nur das längste eines Wortes - hier also nur garten? Wenn ja, wie filtere ich zuverlässig alle anderen Treffer raus?

2: Nun müssen die Abstände zwischen den gleichen Wiederholungen bestimmt werden - geschafft.

3: Zum Schluss müssen aus den ermittelten Abständen die ganzzahligen Teiler berechnet werden - geschafft.

Jetzt zähle ich, wie oft ich welchen Teiler gefunden habe. Nun ist die Schlüssellänge am wahrscheinlichsten, bei welchem größten Teiler noch hinreichend Treffer vorhanden sind.

Ich habe mal im Internet nach Kasiski-Tests geschaut und bin auf diese Seite gekommen. Gebt dort folgendes englisches Kryptogramm bei 'Vigenere ciphered text' ein und klickt auf 'Find Key Length'. Auf der linken Seite bei 'Results' erscheint dann eine Liste mit den Wahrscheinlichkeiten der möglichen Schlüssellänge. Bei folgendem Kryptogramm kommt heraus:

  1. 6 lett. 71.4%
  2. 2 lett. 56.9%
  3. 12 lett. 54.8%
  4. 3 lett. 54.4%
  5. 18 lett. 47.3%
  6. 4 lett. 37.9%
  7. 8 lett. 31.2%
  8. 16 lett. 27.8%
  9. 9 lett. 27.7%
  10. 10 lett. 23.3%
  11. 14 lett. 22.7%
  12. 15 lett. 22.6%
  13. 5 lett. 13.4%
  14. 7 lett. 12.2%
  15. 13 lett. 8.8%
  16. 11 lett. 7.1%
  17. 17 lett. 6.4%
  18. 19 lett. 5.7%

Das Kryptogramm:

CVJTNAFENMCDMKBXFSTKLHGSOJWHOFUISFYFBEXEINFIMAYSSDYYIJNPWTOKFRHWVWTZFXH LUYUMSGVDURBWBIVXFAFMYFYXPIGBHWIFHHOJBEXAUNFIYLJWDKNHGAOVBHHGVINAULZFOF UQCVFBYNFTYGMMSVGXCFZFOKQATUIFUFERQTEWZFOKMWOJYLNZBKSHOEBPNAYTFKNXLBVUA XCXUYYKYTFRHRCFUYCLUKTVGUFQBESWYSSWLBYFEFZVUWTRLLNGIZGBMSZKBTNTSLNNMDPM YMIUBVMTLOBJHHFWTJNAUFIZMBZLIVHMBSUWLBYFEUYFUFENBRVJVKOLLGTVUZUAOJNVUWT RLMBATZMFSSOJQXLFPKNAULJCIOYVDRYLUJMVMLVMUKBTNAMFPXXJPDYFIJFYUWSGVIUMBW STUXMSSNYKYDJMCGASOUXBYSMCMEUNFJNAUFUYUMWSFJUKQWSVXXUVUFFBPWBCFYLWFDYGU KDRYLUJMFPXXEFZQXYHGFLACEBJBXQSTWIKNMORNXCJFAIBWWBKCMUKIVQTMNBCCTHLJYIG IMSYCFVMURMAYOBJUFVAUZINMATCYPBANKBXLWJJNXUJTWIKBATCIOYBPPZHLZJJZHLLVEY AIFPLLYIJIZMOUDPLLTHVEVUMBXPIBBMSNSCMCGONBHCKIVLXMGCRMXNZBKQHODESYTVGOU GTHAGRHRMHFREYIJIZGAUNFZIYZWOUYWQZPZMAYJFJIKOVFKBTNOPLFWHGUSYTLGNRHBZSO PMIYSLWIKBANYUOYAPWZXHVFUQAIATYYKYKPMCEYLIRNPCDMEIMFGWVBBMUPLHMLQJWUGSK QVUDZGSYCFBSWVCHZXFEXXXAQROLYXPIUKYHMPNAYFOFHXBSWVCHZXFEXXXAIRPXXGOVHHG GSVNHWSFJUKNZBESHOKIRFEXGUFVKOLVJNAYIVVMMCGOFZACKEVUMBATVHKIDMVXBHLIVWT JAUFFACKHCIKSFPKYQNWOLUMYVXYYKYAOYYPUKXFLMBQOFLACKPWZXHUFJYGZGSTYWZGSNB BWZIVMNZXFIYWXWBKBAYJFTIFYKIZMUIVZDINLFFUVRGSSBUGNGOPQAILIFOZBZFYUWHGIR HWCFIZMWYSUYMAUDMIYVYAWVNAYTFEYYCLPWBBMVZZHZUHMRWXCFUYYVIENFHPYSMKBTMOI ZWAIXZFOLBSMCHHNOJKBMBATZXXJSSKNAULBJCLFWXDSUYKUCIOYJGFLMBWHFIWIXSFGXCZ BMYMBWTRGXXSHXYKZGSDSLYDGNBXHAUJBTFDQCYTMWNPWHOFUISMIFFVXFSVFRNA

Nun wollte ich auch eine solche Prozent-Bewertung anbieten. Allerding kann ich nicht nachvollziehen, nach welchem Prinzip ich die Anzahl der gefundenen Teiler in eine Prozentangabe überführen könnte. Besitzt das Schlüsselwort nun eine Länge von 6 habe ich bei den gefundenen Teilern bei 2 und 3 eine mindestens ebenso große Zahl wie für 6... Ich hoffe auf ein paar Tipps in diese Richtung.

Ein Dankeschön an alle, die es bis hierhin geschafft haben.

Reinhard