Cryptography-with-python-caesar-cipher

提供:Dev Guides
移動先:案内検索

Pythonでの暗号化-シーザー暗号

最後の章では、逆暗号を扱いました。 この章では、Caesar暗号について詳しく説明します。

シーザー暗号のアルゴリズム

シーザー暗号のアルゴリズムは、次の機能を保持しています-

  • シーザー暗号技術は、暗号化技術のシンプルで簡単な方法です。
  • これは、単純なタイプの置換暗号です。
  • プレーンテキストの各文字は、アルファベットで固定されたいくつかの位置の文字に置き換えられます。

次の図は、シーザー暗号アルゴリズムの実装の動作を示しています-

シーザー暗号のアルゴリズム

シーザー暗号アルゴリズムのプログラム実装は次のとおりです-

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)

出力

あなたはシーザー暗号を見ることができます、それは次の画像に示すように出力です-

シーザー暗号

説明

プレーンテキスト文字は、一度に1つずつトラバースされます。

  • 指定されたプレーンテキストの各文字について、テキストの暗号化および復号化の手順に応じて、ルールに従って指定された文字を変換します。
  • 手順を実行すると、暗号化テキストと呼ばれる新しい文字列が生成されます。

シーザー暗号アルゴリズムのハッキング

暗号文はさまざまな可能性でハッキングされる可能性があります。 そのような可能性の1つは、 Brute Force Technique です。これには、可能なすべての復号化キーを試すことが含まれます。 この手法はそれほど労力を必要とせず、ハッカーにとって比較的簡単です。

シーザー暗号アルゴリズムをハッキングするためのプログラムの実装は次のとおりです-

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))

前の例で暗号化された暗号文を考えてください。 次に、キーとブルートフォース攻撃技術を使用したハッキン​​グ方法の可能性がある出力は次のとおりです-

シーザー暗号のハッキング