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