고전 암호학

코딩 파인애플·2026년 9월 30일

CRYPTOGRAPHY

목록 보기
4/5
post-thumbnail

안녕하십니까 코딩 파인애플입니다
이번 시간에는 고전 암호학에 관해 알아보겠습니다.

⚙️ 고전 암호란?

고전 암호는 컴퓨터와 같은 디지털 장치가 발명되기 전,

주로 손🖐️이나 도구🪏로 문자의 위치나 종류를 바꾸어 정보를 보호하던 전통적인 암호 방식을 의미합니다

고전 암호⚙️들의 특징들로는 펜, 종이 또는 간단한 물리적 장치만 사용하여 암복호화를 수행하여 수동 연산을 하며

빈도 분석 등을 이용하면 해석될 수 있어 보안 용도로는 사용되지 않습니다

예, 그냥 한마디로 영포티 암호입니다

🔏치환 암호

Substitution Cipher


평문의 문자 하나를 다른 문자로 교체하는 방식입니다

대표적인 예시로

평문 알파벳
ABCDEFGHIJKLMNOPQRSTUVWXYZ

암호 알파벳
QWERTYUIOPASDFGHJKLZXCVBNM

일 떄

A → Q 
B → W
C → E
D → R,

H → O
E → T
L → S
L → S
O → G

로 치환하여 해석합니다

하지만 동일한 평문 문자는 항상 동일한 암호문 문자로 바뀐다는 단점도 존재하는데,

위의 HELLO 예시처럼 L이 두 번 나와 S로 추측되는 등장 빈도 자체는 그대로 남아 있기 때문에

빈도 분석을 통한 복호화가 매우 취약하기에 현대 암호학의 방식 중 하나로만 채택되고 있습니다

🗣️🗣️🗣️ ----------- 🔥🔥🔥🔥🔥

참고로 카이사르 암호 또한 치환 암호의 종류 중 하나인데
단순 치환하여 일정한 거리만큼 밀어내는 구조이기 때문입니다

비제네르 암호

비제네르 암호(Vigenère Cipher)는 키(Key)를 이용해 문자마다 서로 다른 카이사르 암호를 적용하는 다중 치환 암호(Polyalphabetic Substitution Cipher)입니다

일반적인 치환 암호는 같은 평문 문자가 항상 같은 문자로 변환됩니다

평문 : A A A
암호 : D D D

반면 비제네르 암호는 Key에 따라 같은 평문 문자도 서로 다른 문자로 암호화할 수 있습니다

평문 : A A A A A A
KEY  : K E Y K E Y
암호 : K E Y K E Y

따라서 단순 치환 암호보다 문자의 빈도와 반복 패턴을 숨기기 유리합니다


먼저 알파벳에 0 ~ 25의 숫자를 대응시킵니다
A = 0
B = 1
C = 2
...
Z = 25

그리고 다음 공식을 사용합니다

암호문 = (평문 + 키) mod 26

예를 들어HELLO WORLD를 KEY라는 키로 암호화해보겠습니다

Key가 평문보다 짧으므로 반복해서 사용합니다

평문 : H E L L O   W O R L D
KEY  : K E Y K E   Y K E Y K

첫 번째 문자 H는 K와 대응됩니다

H = 7
K = 10

(7 + 10) mod 26 = 17

17 = R

두 번째 문자는

E = 4
E = 4

(4 + 4) mod 26 = 8

8 = I

세 번째 문자는

L = 11
Y = 24

(11 + 24) mod 26
= 35 mod 26
= 9

9 = J

같은 방법으로 모든 문자를 계산하면 다음과 같습니다

평문   : H E L L O   W O R L D
KEY    : K E Y K E   Y K E Y K
         ↓ ↓ ↓ ↓ ↓   ↓ ↓ ↓ ↓ ↓
암호문 : R I J V S   U Y V J N

따라서 최종 암호문은

HELLO WORLD → RIJVS UYVJN

이 됩니다


❎ S-box

사실 S-box는 일종의 치환 암호라기보다는 치환 연산을 담당하는 구성 요소에 더 가깝지만, 치환과 연관이 있으니 잠깐 알아보겠습니다

S-box (Substitution Box) 는 입력으로 들어온 비트 또는 바이트 값을 정해진 규칙에 따라 다른 값으로 치환하는 표를 의미합니다

대표적으로 AES의 SubBytes 과정에서 S-Box가 사용됩니다


🔏전치 암호

Transposition Cipher



평문 단위의 위치가 정규 시스템에 따라 이동되면서 암호문이 평문 순열을 이루는 암호화 방식입니다

예를 들어

HELLOWORLD

이라는 평문이 있고, 이를 전치 암호로 변환할 때,

			 H W
			 E O
H E L L O →	 L R
W O R L D →  L L
			 O D

이를 암호문으로 치환하면

=HWEOLRLLDO

치환 암호와 비교해서 문자 자체는 달라지지 않으면서 단순 순서만 달라졌다는 차이가 존재합니다

즉, 문자와 문자 사이의 관계를 숨겨 알아보지 못하게 만듭니다

메차 카멜레온

🚧 레일 펜스 암호

전치 암호의 변형 중 하나인데,

깊이를 정하고 그 깊이가 키로 작동하는 암호입니다
해당 깊이만큼의 세로로 글을 써서 키값을 통해 암호화를 합니다

레일

HELLO WORLD 를 키가 2인 상태에서 암호화한다면

Rail 1: H . L . O . O . L .
Rail 2: . E . L . W . R . D

가 되어 최종적으로는 HWEOLRLLOD 가 암호문이 됩니다

하지만 암호문을 깊이만큼 나눈 뒤 문장을 다시 행렬로 배열시켜 복호화가 가능하다는 점 때문에 현재는 자주 쓰이지 않습니다

+ 키가 3일 경우

Rail 1: H . . . O . . . L .
Rail 2: . E . L . W . R . D
Rail 3: . . L . . . O . . .

= HOL ELWRD LO







이상으로 글을 마치겠습니다 감사합니다.

깊은 저 바닷속 죠죠

profile
PINEAPPEL🗣️🔥🔥🔥🔥

0개의 댓글