Transcript ch02_암호 기초
I부
암호
1
2장
암호 기초
2
암호용어 정의
암호학(Cryptology)
“비밀코드”를 만들거나 해독하는 과학
암호생산(Cryptography)
“비밀코드”를 만드는 것
암호분석(Cryptanalysis)
“비밀코드”를 해독하는 것
암호(Crypto)
상기한 모든 것 또는 그 이상
3
암호용어 정의
암호체계는 평문을 암호화 하는데 사용
암호화 결과는 암호문
암호문을 평문으로 복원하는 것은 복호화
키는 암호체계를 만드는데 사용
대칭키 암호체계는 같은 키를 암호화와
복호화를 위해 사용
공개키 암호체계는 공개키는 암호화, 개
인키는 복호화(서명)에 사용
4
암호체계
기본 가정
암호체계는 완전히 공격자에게 알려져 있고,
단지 키만이 유일한 비밀
커크호프 원칙(Kerckhoffs Principle)
암호 알고리즘은 비밀이 아니다
왜 이런 가정을 하는가?
경험적으로 볼 때, 비밀 알고리즘들은(공개되었을
때) 알고리즘 자체는 강력하지 않을 경우가 많다.
비밀 알고리즘은 결국 공개된다.
사전에 취약점을 발견하는 것이 유리하다
5
암호체계 블랙박스
키
키
암호문
평문
암호화
평문
복호화
일반적인 암호체계의 사용
6
단순 치환
평문: fourscoreandsevenyearsago
Key:
평문 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
암호문 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
암호문:
IRXUVFRUHDAGVHYHABHDUVDIR
3번씩 이동하는 “카이사르 암호”
7
카이사르 암호 복호화
평문: spongebobsquarepants
카이사르 암호체계가 사용되는 것을 알
고 있다고 가정
암호문: VSRQJHEREVTXDUHSDQWU
평문 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
암호문 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
8
단순하지만 않은 치환 경우
주어진 n {0,1,2,…,25}에서 n 시프트
키는 n
예제: 키 = 7
평문
암호문
ab c d e f g h i j k l m n o p q r s t u v w x y z
HI J K L M N O P Q R S T U V W X Y Z A B C D E F G
9
암호분석 1: 모두 시도
단순 치환(n 시프트) 사용
키는 알지 못한 상태
주어진 암호: CSYEVIXIVQMREXIH
키를 찾는 방법?
26가지의 가능한 키 모든 가능한 키를 시도!
전수키 조사
해답: 키 = 4
10
단순치환보다 간단한 경우
키는 문자의 순열
치환될 필요가 없음
예제
평문
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
암호문
J I C A X S E Y V D K W B Q T Z R H F M P N U L G O
가능한 키는 26! > 288
11
암호분석 II: 잘 생각하자
단순 치환이 사용되었음을 알고 있다.
n 시프트일 필요가 없다
주어진 암호문의 키를 찾는 방법:
PBFPVYFBQXZTYFPBFEQJHDXXQVAPTPQJKTOYQWIPBVWLXTOXB
TFXQWAXBVCXQWAXFQJVWLEQNTOZQGGQLFXQWAKVWLXQWAEBIP
BFXFQVXGTVJVWLBTPQWAEBFPBFHCVLXBQUFEVWLXGDPEQVPQG
VPPBFTIXPFHXZHVFAGFOTHFEFBQUFTDHZBQPOTHXTYFTODXQH
FTDPTOGHFQPBQWAQJJTODXQHFOQPWTBDHHIXQVAPBFZQHCFWP
FHPBFIPBQWKFABVYYDZBOTHPBQPQJTQOTOGHFQAPBFEQJHDXX
QVAVXEBQPEFZBVFOJIWFFACFCCFHQWAUVWFLQHGFXVAFXQHFU
FHILTTAVWAFFAWTEVOITDHFHFQAITIXPFHXAFQHEFZQWGFLVW
PTOFFA
12
암호분석 II
288 의 모든 단순 치환키를 모두 시도할 수는 없
다 – 경우의 수가 너무 많음.
다른 방법은?
영어 문자의 사용 빈도수를 …
0.14
0.12
0.10
0.08
0.06
0.04
0.02
0.00
A
C
E
G
I
K
M
O
Q
S
U
W
13
Y
암호분석 II
암호문:
PBFPVYFBQXZTYFPBFEQJHDXXQVAPTPQJKTOYQWIPBVWLXTOXB
TFXQWAXBVCXQWAXFQJVWLEQNTOZQGGQLFXQWAKVWLXQWAEBIP
BFXFQVXGTVJVWLBTPQWAEBFPBFHCVLXBQUFEVWLXGDPEQVPQG
VPPBFTIXPFHXZHVFAGFOTHFEFBQUFTDHZBQPOTHXTYFTODXQH
FTDPTOGHFQPBQWAQJJTODXQHFOQPWTBDHHIXQVAPBFZQHCFWP
FHPBFIPBQWKFABVYYDZBOTHPBQPQJTQOTOGHFQAPBFEQJHDXX
QVAVXEBQPEFZBVFOJIWFFACFCCFHQWAUVWFLQHGFXVAFXQHFU
FHILTTAVWAFFAWTEVOITDHFHFQAITIXPFHXAFQHEFZQWGFLVW
PTOFFA
아래 정보를 이용하여 복호화
암호문 빈도수:
ABC D E F G H IJKL M N OPQ R S T U V W XY Z
21 26 6
10 12 51 10
25
10 9
3 10
0
1
15 28 42
0
0
27
4
14
24
22 28
6
8
암호분석: 용어
암호체계가 만약 알려진 가장 효율적인
공격이 모든 키를 시도해야 하면 보안적
으로 안전하다.
암호체계가 다른 지름길이 있으면 보안적
으로 안전하지 않다.
이 정의에 의하면, 안전하지 않은 체계가
안전한 체계보다 해독하기가 더 어렵다!
15
이중 전위
평문: attackxatxdawn
행과 열을
바꾼다
암호문: xtawxnattxadakc
키: 행/열 크기와 순열 (3,5,1,4,2)
과 (1,3,2)
16
일회용 암호-암호화
e=000
h=001
i=010
k=011
l=100
r=101
s=110
t=111
암호화: 평문 키 = 암호문
h
e
i
l
h
i
t
l
e
r
평문:
키:
001 000 010 100 001 010 111 100 000 101
암호문:
110 101 100 001 110 110 111 001 110 101
111 101 110 101 111 100 000 101 110 000
s
r
l
h
s
s
t
h
17
s
r
일회용 암호-복호화
e=000
h=001
i=010
k=011
l=100
r=101
s=110
t=111
복호화: 암호문 키 = 평문
s
암호문:
키:
평문:
r
l
h
s
s
t
h
s
r
110 101 100 001 110 110 111 001 110 101
111 101 110 101 111 100 000 101 110 000
001 000 010 100 001 010 111 100 000 101
h
e
i
l
h
i
t
l
18
e
r
일회용 암호
이중 첩자는 송신자가 다음의 “키”를
사용했다고 주장
s
r
l
h
s
s
t
h
s
r
암호문: 110 101 100 001 110 110 111 001 110 101
“키”: 101 111 000 101 111 100 000 101 110 000
“평문”: 011 010 100 100 001 010 111 100 000 101
k
e=000
i
h=001
l
i=010
l
h
k=011
i
l=100
t
r=101
l
e
s=110
19
r
t=111
일회성 암호
체포된 송신자는 “키”가 아래와 같다고 주장
s
r
l
h
s
s
t
h
s
r
암호문: 110 101 100 001 110 110 111 001 110 101
“키”: 111 101 000 011 101 110 001 011 101 101
“평문”: 001 000 100 010 011 000 110 010 011 000
h
e=000
e
h=001
l
i=010
i
k
k=011
e
l=100
s
i
r=101
k
s=110
20
e
t=111
일회용 암호 요약
증명된 안전성
암호문이 평문에 대한 어떤 정보도 제공하지 않음.
모든 평문은 같은 확률
키는 임의수이며 단 한번만 사용
키는 송수신자만 알고 있음.
키 크기는 메시지 크기와 동일
메시지 무결성을 제공하지 않음.
왜 암호를 분배하는 방법과 동일하게 메시지를
분배하지 않는가?
21
실세계의 일회용 암호
VENOVA 프로젝트
1940년대 미국에서 전송된 소련 스파이 메시지
핵무기에 대한 첩자 행위 등
수 많은 메시지가 전송
스파이는 미국에 일회용 암호 키 반입
비밀 메시지를 일회용 키를 사용 암호화
일회용 암호 키의 반복 사용이 해독이 가능토록
하였음.
22
VENONA 해독 (1944)
“Ruth” == Ruth Greenglass
“Liberal” == Julius Rosenberg
“Enormous” == the atomic bomb
23
코드북 암호
말 그대로 “코드워드”로 채워진 책
짐머맨 전보는 코드북으로 암호화
Februar
13605
fest
13732
finanzielle
13850
folgender
13918
Frieden
17142
Friedenschluss
17149
:
:
현대 블록 암호들은 코드북들!
나중에 다시 토의 하겠음…
24
짐머맨 전보
현재까지 가장 알려
진 코드북 중에 하
나
미국이 일차 세계대
전에 참여하게 된
계기
암호문은 우측…
25
짐머맨 전보 해독
영국은 부분적인
코드북 확보
빠진 부분을 보충
하여 해독
26
역사적인 암호들
Crypto timeline
Spartan Scytale 전위 암호
카이사르 암호
Poe’s The Gold Bug
1876년 선거
27
1876 선거
“러더퍼드 헤이즈” 대 “새뮤엘 틸덴”: 팽
팽한 대결 선거
4개 주의 대위원 선거인단이 결정
4개 주의 대위원이 헤이즈로 결정
틸덴은 헤이즈가 대위원에게 뇌물을 주어
부당하게 선출되었다고 주장
이것이 사실인가?
28
1876 선거
나중에 틸덴 지지자들의 암호화된 메시지 발견
암호문: 부분적인 코드북과 전위 암호
중요 단어들은 코드북에서 치환
암호문
평문
Copenhagen
Greenbacks
Greece
Hayes
Rochester
votes
Russia
Tilden
Warsaw
telegram
:
:
29
1876 선거
원 메시지에 코드북을 적용
암호문은 5 단어들의 배수 (총 길이, 10, 15, 20,
25 또는 30 단어)
각 길이에. 고정된 순열을 결과 메시지에 적용
순열들은 같은 길이의 많은 메시지를 비교하여
찾아짐
주어진 길이의 모든 메시지에 같은 키를 적용하
였음에 유의
30
1876 선거
암호문: Warsaw they read all
unchanged last are idiots can’t
situation
코드북: Warsaw telegram
전위: 9,3,6,1,10,5,2,7,4,8
평문: Can’t read last telegram.
Situation unchanged. They are all
idiots.
키의 재사용은 약한 암호문을 더욱 악화
교훈: 키를 재사용하거나 남용하지 말 것!
31
20세기 초
1차 세계대전 짐머맨 전보
“신사는 타인의 우편물을 읽지 않는다” 국방
장관 헨리 스팀슨, 1929
2차 세계대전 암호분석의 황금시대
미드웨이/산호해
일본 펄프암호 (암호명 MAGIC)
독일 이니그마암호 (코드명 ULTRA)
32
2차 세계대전 이후
Claude Shannon 정보이론의 아버지
컴퓨터 혁명 대량 자료
Data Encryption Standard (DES), 70’s
공개키 암호, 70’s
CRYPTO conferences, 80’s
Advanced Encryption Standard (AES), 90’s
암호체계는 숨겨져 있다가 바깥 세상으로 빠져 나오게
되었음.
33
Claude Shannon
Information Theory의 창시자
1949 논문: Comm. Thy. of Secrecy Systems
혼돈(confusion)과 확산(diffusion)
혼돈 암호문과 평문의 관계를 상관관계를 숨김
확산 평문의 통계적 성질을 암호문 전반에 퍼뜨
려 숨김
일회성 암호가 안전함을 증명
일회성 암호는 혼돈만을 사용하고, 이중 전위 암호
는 확산만을 사용
34
암호학의 분류
대칭키
암호화와 복호화에 같은 키 사용
스트림 암호
블록 암호
공개키
암호화(공개키)와 복호화(개인키)를 위해 2
개의 키 사용
디지털 서명
해시 알고리즘
35
암호분석의 분류
암호문 공격(Ciphertext only)
알려진 평문 공격(Known plaintext)
선택된 평문 공격(Chosen plaintext)
“점심시간 공격”
프로토콜은 선택된 문장을 암호화 할 수 있음
적응적 선택 평문 공격
관련키 공격
순방향 탐색 공격(공개키 암호에서만 가능)
기타 등등 ….
36