2012년 9월 23일 일요일

카이사르 사이퍼(caesar cipher)




사이퍼의 정의는 앞선 글에서 이해했으리라고 본다.
(참고 -  http://wtzro.blogspot.com/2012/09/code-cipher.html )



그렇다면 직접 사이퍼를 만들어보자(편의상 영어로 제작하겠다.).
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
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

(보통 원문은 소문자로, 사이퍼는 대문자로 표기한다.)


a
b
c
d
e
f
g
h
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
B
C
D
E
F
G
H
I
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A

이렇게 사이퍼를 왼쪽으로 한칸 밀었을 경우를 생각해보자.

여기서 hello 라는 문자를 암호화시켜보면,
IFMMP 라는 암호문이 작성된다. 하지만 이 암호문은 조금만 생각하면 너무도 쉽게 깨지므로, 아예 뒤죽박죽 섞어보도록 하자.

a
b
c
d
e
f
g
h
j
 k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Q
A
Z
X
S
W
E
D
 C
 V
 F 
R
T
G
B
N
H
Y
U
J
M
K
I
L
O
P

이렇게 뒤죽박죽 섞어놓았다고 가정할 때 nice to meet you 를 암호화하면,

GCZS JB TSSJ OBM(원래 암호문에는 띄어쓰기를 안하지만 편의상 띄어쓰기를 함) 라고 바뀌게 된다. 허나 이 방법은 이 표를 꼭 숙지해야한다는 것과, 암호 수신자와 발신자 모두 이 표가 어긋날 경우뜻을 알 수 없는 단점이 있다.

그래서 이 단점을 보완한 것이 키워드를 이용한 암호화이다.

예를 들어 YOUPIOSTAR를 키워드로 만들면 중복되는 문자는 제거하여 처음에 나열한다.

그렇다면 YOUPISTAR이 된다. 그 후 나머지 문자를 알파벳순으로 나열하는 것이다.
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
Y
O
U
P
I
S
T
A
R
V
W
X
Z
B
C
D
E
F
G
H
J
K
L
N
M
Q

가 된다.

여기서 nice to meet you 라는 문장을 다시 암호화 해보자.

그렇다면 BRUI HC ZIIH NCJ라는 문장이 된다.

이 방법은 카이사르가 처음 고안해 내어 카이사르 사이퍼라고 불리게 되었는데, 서로 키워드만 알고있다면 간단히 표로 만들어 해독이 가능하므로 중세시대까지 두루 쓰이게 되었고, 중세시대까지 깨지지 않는 사이퍼로 군림하게 되었다.

블로그 보관함