Schon gewusst?

Neural Cipher Identifier (NCID)

NCID ermöglicht die Identifizierung des Chiffretyps, nur anhand eines kurzen Geheimtexts. Zu diesem Zweck verwendet NCID mehrere neuronale Netze, aus denen Sie eines oder mehrere auswählen können. Mit den 55 von der American Cryptogram Association (ACA) standardisierten, klassischen Chiffren wurden die folgenden neuronalen Netze trainiert: Feedforward Neural Network (FFNN), Long Short Memory (LSTM), Transformer und Naive Bayes Network (NB). Die Bündelung mehrerer neuronaler Netzwerkarchitekturen zu einem Ensemble führte hier in vielen Fällen zu einer besseren Genauigkeit. Weitere Einzelheiten können in der Registerkarte "Beschreibung" nachgelesen werden.



:

Ergebnisse

Klicken Sie auf "Analysieren", um die Ergebnisse zu erhalten ...

Einführung

Das NCID Projekt[1] begann als Masterarbeit, die von der Fachhochschule Oberösterreich, Hagenberg und dem CrypTool-Projekt betreut wurde.

Das Projekt enthält Code zur Erkennung und Klassifizierung von Geheimtexten, um sie dem benutzten klassischen Verschlüsselungsverfahren unter Verwendung eines oder mehrerer neuronaler Netze zuzuordnen.

Es wurden mehrere neuronale Netze trainiert, um den Chiffretyp bei verschlüsselten historischen Texten zu erkennen: Für das Training der NCID-Modelle mit allen 55 ACA-Chiffren wurden zwei Textlängen aus der Gutenberg-Bibliothek[2] gewählt: entweder Geheimtexte mit einer genauen Länge von 100 Zeichen oder Geheimtexte mit variablen Längen von 51-428 Zeichen. Diese Online-Version enthält nur die Modelle mit einer festen Länge von 100 Zeichen.

Wurden mehrere neuronale Netzwerkarchitekturen zusammengefasst, führte das hier in vielen Fällen zu einer besseren Genauigkeit. Die folgende Tabelle zeigt die Genauigkeit für verschiedene Architekturen und einer festen Länge von 100 Zeichen:

FFNN Transformer RF NB LSTM Ensemble Mean Ensemble Weighted
Genauigkeit in % 78,31 72,33 73,50 52,79 72,16 82,67 82,78


Vergleich mit dem BION-Classifier

Mit Hilfe von William Mason haben wir die NCID-Lösung mit den Modellen mit einer festen Länge von 100 Zeichen und den Modellen mit den Längen 51-428 Zeichen mit dem etablierten BION classifier[3] unter Verwendung von 100 ausgewählten Klartexten aus dem Kaggle Amazonreviews Dataset[4] verglichen.

Die von BION und NCID zu erkennenden Chiffre-Typen sind unterschiedlich, da BION einige der Chiffre-Typen in einem Cluster zusammenfasst, NCID aber nicht. BION fasst nur Verschlüsselungstypen in einem "Cluster" zusammen, die sehr ähnliche sind. Daher muss ein gemeinsamer Satz von Verschlüsselungstypen definiert werden, um bei NCID eine Fehlklassifizierung innerhalb eines Clusters für den Vergleich zu vermeiden.

Die folgenden 51 Verschlüsselungstypen wurden von BION verwendet:

6x6bifid, 6x6playfair, amsco, autokey, bazeries, beaufort, bifid, cadenus, checkerboard, cmBifid, columnar, condi, digrafid, foursquare, fractionatedMorse, grandpre, grille, gromark, homophonic, keyphrase, monomeDinome, morbit, myszkowski, nicodemus, nihilistSub, NihilistSub6x6, nihilistTransp, numberedKey, simplesubstitution, periodicGromark, phillips, playfair, pollux, porta, portax, progressiveKey, quagmire, ragbaby, redefence, routeTransp, runningKey, sequenceTransp, seriatedPlayfair, swagman, syllabary, tridigital, trifid, trisquare, twosquare, vigenère/variant, slidefair

Die folgenden 56 Verschlüsselungstypen wurden im NCID verwendet:

amsco, autokey, baconian, bazeries, beaufort, bifid, cadenus, checkerboard, columnar_transposition, condi, cmbifid, digrafid, foursquare, fractionated_morse, grandpre, grille, gromark, gronsfeld, headlines, homophonic, key_phrase, monome_dinome, morbit, myszkowski, nicodemus, nihilist_substitution, nihilist_transposition, null, numbered_key, periodic_gromark, phillips, phillips_rc, plaintext, playfair, pollux, porta, portax, progressive_key, quagmire1, quagmire2, quagmire3, quagmire4, ragbaby, railfence, redefence, route_transposition, running_key, seriated_playfair, slidefair, swagman, tridigital, trifid, tri_square, two_square, variant, vigenère

Regeln:

  • Quagmire I-IV werden in BION kombiniert. Daher werden alle Fehlklassifizierungen zwischen diesen Klassen im NCID als korrekt gezählt.
  • Gronsfeld ist in BION im Typ Vigenere/Variant enthalten. Daher werden alle Fehlklassifizierungen zwischen Gronsfeld/Vigenère/Variant im NCID als korrekt gezählt.
  • Nummerierte Key-Implementierungen unterscheiden sich und werden daher übersprungen.
  • Phillips C und Phillips RC werden in BION zu einem Typ zusammengefasst. Fehlklassifizierungen zwischen Phillips C/Phillips RC werden im NCID als korrekt gezählt.
  • Railfence ist in BION im Typ Redefence enthalten. Fehlklassifizierungen zwischen Railfence/Redefence werden im NCID korrekt gezählt.
  • Verschlüsselungstypen, die eine bestimmte Eingabelänge des Textes benötigen, werden bei der Prüfung der zufälligen Textlänge übersprungen. (zum Beispiel Cadenus)
  • Die Schlüssellänge ist immer 8, falls zutreffend.

Endgültige Liste der Chiffriertypen, die zur Erstellung der Geheimtexte verwendet werden:

amsco, autokey, bazeries, beaufort, bifid, cadenus, checkerboard, columnar_transposition, condi, cmbifid, digrafid, foursquare, fractionated_morse, grandpre, grille, gromark, gronsfeld, homophonic, key_phrase, monome_dinome, morbit, myszkowski, nicodemus, nihilist_substitution, nihilist_transposition, periodic_gromark, phillips, phillips_rc, playfair, pollux, porta, portax, progressive_key, quagmire1, quagmire2, quagmire3, quagmire4, ragbaby, railfence, redefence, route_transposition, running_key, seriated_playfair, slidefair, swagman, tridigital, trifid, tri_square, two_square, variant, vigenère

Bei den Chiffren Gromark und Periodic Gromark wurden in der BION-Implementierung keine Primer verwendet, bei NCID hingegen schon. Daher ist diese Chiffre nicht wirklich vergleichbar.


Publikationen


Referenzen

[2] Gutenberg-Bibliothek: https://www.projekt-gutenberg.org/
[4] Kaggle Amazonreviews Dataset: https://www.kaggle.com/bittlingmayer/amazonreviews