Python을 사용한 암호화-Caesar Cipher

지난 장에서 우리는 역 암호를 다루었습니다. 이 장에서는 Caesar 암호에 대해 자세히 설명합니다.

Caesar Cipher의 알고리즘

Caesar 암호 알고리즘은 다음과 같은 특징을 가지고 있습니다.

  • Caesar Cipher Technique는 간단하고 쉬운 암호화 기법입니다.

  • 단순한 유형의 대체 암호입니다.

  • 일반 텍스트의 각 문자는 알파벳으로 아래로 고정 된 숫자가있는 문자로 대체됩니다.

다음 다이어그램은 Caesar 암호 알고리즘 구현의 작동을 설명합니다.

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)

산출

다음 이미지와 같이 출력 인 Caesar 암호를 볼 수 있습니다.

설명

일반 텍스트 문자는 한 번에 하나씩 순회됩니다.

  • 주어진 일반 텍스트의 각 문자에 대해 텍스트의 암호화 및 복호화 절차에 따라 규칙에 따라 주어진 문자를 변환합니다.

  • 단계를 수행 한 후 암호 텍스트라고하는 새 문자열이 생성됩니다.

Caesar Cipher 알고리즘 해킹

암호문은 다양한 가능성으로 해킹 될 수 있습니다. 그러한 가능성 중 하나는Brute Force Technique,가능한 모든 암호 해독 키를 시도해야합니다. 이 기술은 많은 노력이 필요하지 않으며 해커에게는 비교적 간단합니다.

Caesar 암호 알고리즘을 해킹하기위한 프로그램 구현은 다음과 같습니다.

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

이전 예제에서 암호화 된 암호 텍스트를 고려하십시오. 그런 다음 키로 가능한 해킹 방법과 무차별 대입 공격 기법을 사용한 출력은 다음과 같습니다.