Cryptographie avec Python - César Cipher

Dans le dernier chapitre, nous avons traité du chiffrement inversé. Ce chapitre décrit en détail le chiffre de César.

Algorithme de César Cipher

L'algorithme du chiffre de César possède les caractéristiques suivantes -

  • La technique de chiffrement César est la méthode simple et facile de la technique de chiffrement.

  • C'est un type simple de chiffrement de substitution.

  • Chaque lettre de texte brut est remplacée par une lettre avec un nombre fixe de positions vers le bas avec l'alphabet.

Le diagramme suivant illustre le fonctionnement de l'implémentation de l'algorithme de chiffrement de César -

La mise en œuvre du programme de l'algorithme de chiffrement César est la suivante -

def encrypt(text,s):
result = ""
   # transverse the plain text
   for i in range(len(text)):
      char = text[i]
      # Encrypt uppercase characters in plain text
      
      if (char.isupper()):
         result += chr((ord(char) + s-65) % 26 + 65)
      # Encrypt lowercase characters in plain text
      else:
         result += chr((ord(char) + s - 97) % 26 + 97)
      return result
#check the above function
text = "CEASER CIPHER DEMO"
s = 4

print "Plain Text : " + text
print "Shift pattern : " + str(s)
print "Cipher: " + encrypt(text,s)

Production

Vous pouvez voir le chiffre César, c'est-à-dire la sortie comme indiqué dans l'image suivante -

Explication

Le caractère de texte brut est parcouru un par un.

  • Pour chaque caractère du texte brut donné, transformez le caractère donné selon la règle en fonction de la procédure de cryptage et de décryptage du texte.

  • Une fois les étapes suivies, une nouvelle chaîne est générée, appelée texte chiffré.

Piratage de l'algorithme de chiffrement César

Le texte chiffré peut être piraté avec diverses possibilités. L'une de ces possibilités estBrute Force Technique,ce qui implique d'essayer toutes les clés de déchiffrement possibles. Cette technique ne demande pas beaucoup d'efforts et est relativement simple pour un hacker.

La mise en œuvre du programme pour le piratage de l'algorithme de chiffrement de César est la suivante -

message = 'GIEWIVrGMTLIVrHIQS' #encrypted message
LETTERS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

for key in range(len(LETTERS)):
   translated = ''
   for symbol in message:
      if symbol in LETTERS:
         num = LETTERS.find(symbol)
         num = num - key
         if num < 0:
            num = num + len(LETTERS)
         translated = translated + LETTERS[num]
      else:
         translated = translated + symbol
print('Hacking key #%s: %s' % (key, translated))

Considérez le texte chiffré chiffré dans l'exemple précédent. Ensuite, la sortie avec les méthodes de piratage possibles avec la clé et en utilisant la technique d'attaque par force brute est la suivante -