Nachrichten in Python verschlüsseln. Von einfach bis komplex. Caesars Chiffre

Ein wenig über das Projekt

Ich persönlich habe mich schon lange für das Thema Informationsverschlüsselung interessiert, aber jedes Mal, wenn ich mich mit diesem Thema befasste, wurde mir klar, wie schwierig es ist, und mir wurde klar, dass es besser ist, mit etwas Einfacherem zu beginnen. Ich persönlich plane, eine Reihe von Artikeln zu diesem Thema zu schreiben, in denen ich Ihnen verschiedene Verschlüsselungsalgorithmen und deren Implementierung in Python zeigen werde , um mein in dieser Richtung erstelltes Projekt zu demonstrieren und zu zerlegen. Also fangen wir an.






Zunächst möchte ich Ihnen sagen, welche bereits bekannten Algorithmen wir in meinen Artikeln berücksichtigen werden. Die Liste wird Ihnen unten präsentiert:





  • Caesars Chiffre





  • Vigenère-Chiffre





  • Ersatzchiffre





  • Homophone Chiffre





  • RSA-Verschlüsselung





Caesars Chiffre

Nach einer kurzen Einführung in den Zyklus schlage ich vor, zum Hauptthema des heutigen Artikels überzugehen , nämlich der Caesar-Chiffre.





Was ist das?

Die Caesar-Chiffre ist eine einfache Art der Substitutions-Chiffre, bei der jeder Buchstabe im Klartext durch einen Buchstaben mit einer festen Anzahl von Positionen im Alphabet ersetzt wird. Das Funktionsprinzip ist in der folgenden Abbildung dargestellt:





Welche Funktionen hat es?

In der Caesar-Chiffre kann ich wie im Verschlüsselungsalgorithmus zwei Hauptmerkmale unterscheiden. Das erste Merkmal ist die Einfachheit und Verfügbarkeit der Verschlüsselungsmethode, die Ihnen helfen kann, in dieses Thema einzutauchen. Das zweite Merkmal ist in der Tat die Verschlüsselungsmethode selbst.





Software-Implementierung

, , , , .





, , . .





alfavit =  'ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ'
#  
      
      



, , . , , "" , "2", "".





,



smeshenie, , message, , , upper(),



, . itog, . :





smeshenie = int(input(' : '))    #    
message = input("  : ").upper()    # ,    
itog = ''    #     
      
      



, . for



, , , alfavit, ( ):





for i in message:
    mesto = alfavit.find(i)    #    
    new_mesto = mesto + smeshenie    #      smeshenie 
      
      



, if



, itog :





if i in alfavit:
        itog += alfavit[new_mesto] #        
    else:													 #      .
        itog += i
print (itog)

      
      



, . , :





alfavit =  'ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ'
smeshenie = int(input(' : '))
message = input("  : ").upper()
itog = ''
for i in message:
    mesto = alfavit.find(i)
    new_mesto = mesto + smeshenie
    if i in alfavit:
        itog += alfavit[new_mesto]
    else:
        itog += i
print (itog)

      
      



, , , .





, - . ( ).





, "" . :





alfavit =  'ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ'
smeshenie = int(input(' : '))
message = input("  : ").upper()    #  ,  
itog = ''
      
      



Der Rest kann gleich bleiben, aber wenn Sie möchten, können Sie die Namen der Variablen ändern.





Im Großen und Ganzen werden die "größten" Änderungen für uns in dem Teil des Codes auftreten, in dem wir den Algorithmus haben.





Ergebnis

Sie haben erfolgreich einen Algorithmus zum Ver- und Entschlüsseln einer Nachricht in Python mit der Caesar-Methode geschrieben. Im nächsten Artikel werden wir uns die Vigenère-Chiffre ansehen und ihre Implementierung in Python analysieren. Im Moment schlage ich jedoch vor, dass Sie in den Kommentaren Optionen zur Modernisierung des Programms schreiben (Code- oder Hirse-Vorschläge und -Wünsche). Ich werde auf jeden Fall Ihre Meinung berücksichtigen.








All Articles