
안녕하십니까 코딩 파인애플입니다
이번 시간에는 카이사르 암호에 관해 알아보겠습니다.
카이사르 암호, 시저 암호라고도 불리는 암호학은 단일 문자 치환 암호의 대표적인 예시로 기원전 44년 Caesar 장군이 사용한 암호입니다

예를 들어
평문 알파벳: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
이 있다고 가정하였을 때 알파벳을 몇 칸 밀어서 암호화할지 결정하는 "Key"가 3일 경우 암호 알파벳은
암호 알파벳: D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
가 됩니다
그렇다면 "What's up" 이라는 평문을 키값이 3인 카이사르 암호로 암호화한다면
W → X → Y → Z
h → i → j → k
a → b → c → d
t → u → v → w
' → (특수문자는 제외) → '
s → t → u → v
u → v → w → x
p → q → r → s
= Zkdw' vxs
Zkdw' vxs가 되게 됩니다
인터넷 좀 뒤져봤다 하시는 분들은 ROT 133️⃣3️⃣3️⃣이라고 한 번 쯤은 보셨을거라고 (아마..?) 생각합니다
ROT13 또한 마찬가지로 카이사르 암호의 단순한 변형입니다
단순 키값이 13이라 카이사르 암호에서 단순 13번 밀어내는 게 끝입니다
그걸 ROT13이라고 부릅니다 (...)
파이썬 코드로 단순 카이사르 암호를 구현하면 다음과 같습니다
def caesar_encrypt(text, key):
result = ""
for char in text:
if char.isupper():
result += chr((ord(char) - 65 + key) % 26 + 65)
elif char.islower():
result += chr((ord(char) - 97 + key) % 26 + 97)
else: result += char
return result
def caesar_decrypt(text, key):
return caesar_encrypt(text, -key)
# 평문 텍스트 입력
origin_text = ""
# 키 입력
secret_key =
encrypted_text = caesar_encrypt(origin_text, secret_key)
print(f"암호화 결과: {encrypted_text}")
decrypted_text = caesar_decrypt(encrypted_text, secret_key)
print(f"복호화 결과: {decrypted_text}")
