오늘 끝나면
시저 암호
- ✓시저 암호의 핵심 문제를 한 문장으로 설명한다
- ✓오른쪽 실습에서 시저이 어떻게 움직이는지 관찰한다
- ✓다음 강의와 이어지는 한계를 말할 수 있다
실습 미션
글자를 밀어라 — 고대 로마의 3칸 밀기 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.
성공 조건
- □실습의 기본값을 먼저 관찰
- □입력값이나 모드를 한 번 이상 바꿔 결과 비교
- □왜 결과가 바뀌었는지 한 문장으로 설명
암호 & 보안 · 02
시저
암호
글자를 정한 칸 수만큼 미는 가장 오래된 암호다. 로마의 카이사르가 3칸씩 밀어 썼다. A는 D가 된다. 그게 전부다.
알파벳을 정한 수만큼 뒤로 민다
시저 암호는 알파벳을 정한 수만큼 뒤로 미는 것이다.
미는 칸이 3이면 A는 D가 되고, B는 E가 되고, C는 F가 된다. 모든 글자가 똑같이 3칸씩 밀린다.
끝에 닿으면 처음으로 돌아온다. X·Y·Z는 한 바퀴 돌아 A·B·C가 된다. 시계가 12를 넘으면 다시 1이 되는 것과 같다.
Z를 넘어가면 한 바퀴 돌아 다시 A가 된다. 시계처럼 순환한다
키는 미는 칸 수, 밀고 당김은 대칭이다
미는 칸 수를 키라고 부른다. 키만 알면 누구나 풀 수 있다.
보내는 쪽은 키만큼 뒤로 밀어 암호문을 만든다. 받는 쪽은 같은 키만큼 거꾸로 당기면 원문이 그대로 나온다. 민 만큼 당기니 제자리로 돌아온다.
밀 때도 키를 쓰고, 풀 때도 같은 키를 쓴다. 같은 열쇠 하나로 잠그고 여는 것을 대칭이라 한다.
직접 밀어 보면 띠가 회전한다
위아래로 두 줄의 알파벳 띠가 있다. 슬라이더를 움직이면 아래 띠가 통째로 회전한다.
A 자리에 어떤 글자가 오는지 바로 보인다. 이게 “치환”이다. 평문을 치면 암호문이 실시간으로 나온다.
암호화 ↔ 복호화 토글을 누르면 미는 방향만 뒤집힌다. 한글과 숫자는 그대로 두고 영문만 굴러간다.
A는 3칸 밀려 D가 된다
한글·숫자·기호는 그대로 둔다. 영문 글자만 3칸 굴린다.
단순함이 곧 약점이다
바로 그 단순함이 함정이다. 시저 암호는 아주 약하다.
키로 쓸 수 있는 수는 1부터 25까지뿐이다. 0은 아예 안 민 것이라 의미가 없다. 그러니 진짜 후보는 25개밖에 없다.
공격자는 1칸부터 25칸까지 전부 당겨 본다. 25번 안에 말이 되는 문장이 반드시 나온다. 키를 몰라도 25번이면 뚫린다.
Q. 키가 3일 때 A는 무엇이 되나?
정답은 D다. A를 0번, B를 1번으로 세면 0에 3을 더해 3번 글자, 즉 D가 된다. 받는 쪽은 거꾸로 3칸 당겨 다시 A로 복원한다. 밀고 당김이 같은 키라 제자리로 돌아온다.경우의 수가 너무 적어 전수 시도로 뚫린다