Testen der einfachen Substitutionsverschlüsselung

In diesem Kapitel konzentrieren wir uns auf das Testen der Substitutionsverschlüsselung mit verschiedenen Methoden, mit deren Hilfe zufällige Zeichenfolgen wie unten angegeben generiert werden können.

import random, string, substitution
def main():
   for i in range(1000):
      key = substitution.getRandomKey()
      message = random_string()
      print('Test %s: String: "%s.."' % (i + 1, message[:50]))
      print("Key: " + key)
      encrypted = substitution.translateMessage(message, key, 'E')
      decrypted = substitution.translateMessage(encrypted, key, 'D')
      
      if decrypted != message:
         print('ERROR: Decrypted: "%s" Key: %s' % (decrypted, key))
         sys.exit()
      print('Substutition test passed!')

def random_string(size = 5000, chars = string.ascii_letters + string.digits):
   return ''.join(random.choice(chars) for _ in range(size))
if __name__ == '__main__':
   main()

Ausgabe

Sie können die Ausgabe als zufällig generierte Zeichenfolgen betrachten, die beim Generieren zufälliger Klartextnachrichten hilfreich sind, wie unten gezeigt -

Nachdem der Test erfolgreich abgeschlossen wurde, können wir die Ausgabenachricht beobachten Substitution test passed!.

Auf diese Weise können Sie eine Substitutions-Chiffre systematisch hacken.