Professional Documents
Culture Documents
빅데이터암호학 02
빅데이터암호학 02
순천향대학교 정보보호학과
이선영
1
암호 (Cryptography)
협의의 암호
암호 : 메시지 ( 평문 ) 을 암호문으로 변환
Data Hiding : 다른 사람이 인식하지 못하도록 통신문을
감추는 방법
스테가노그라피 포함
광의의 암호
비밀통신을 가능하게 하는 기술
통신내용을 알지 못하도록 숨겨서 통신
암호문 , 평문 모두를 포함
현대 암호학 : 암호 , 인증 ( 전자서명 , MAC), 해쉬 함수 ,
암호 프로토콜 , 영지식 증명 , 비밀 분산 등을 포함
2
현대 암호학의 구성
암호의 기본 요소 (Primitives)
암호 알고리즘
대칭키 암호
공개키 암호
해시 함수
전자 서명
기본 프로토콜 (Basic Protocol)
인증
사용자 인증
메시지 인증
키 교환 프로토콜
3
중급 프로토콜 (Intermediate Protocol)
타임스탬프
비밀 분산 (Secret sharing)
Bit Commitment
고급 프로토콜 (Advanced Protocol)
영지식 증명 (Zero-Knowledge Proof)
은닉 서명 (Blind Signature)
암호 응용 프로토콜
동전 던지기
카드 게임 프로토콜
전자 투표 , 전자 화폐 등
4
용어
송신자 / 수신자
평문 (Plaintext)/ 암호문 (Ciphertext)
암호 알고리즘
암호 알고리즘
복호 ( 해독 ) 알고리즘
키 (Key)
알고리즘의 안전성 보장을 위해 사용하는 암호의 제한 요소
Key space :key 로 사용 가능한 값들의 범위
E: 암호 알고리즘
D: 복호 알고리즘
K: 키
P: 평문
C: 암호문
5
암호의 특성 (Cryptographic Property)
기밀성 (Confidentiality)
인증 (Authentication)
사용자 인증 , 메시지 인증
무결성 (Integrity)
부인방지 (Non-repudiation)
7
암호 시스템
8
암호 해독 (Cryptanalysis)
암호 해독의 의미
암호 알고리즘에 대하여 키에 대한 정보 없이 평문이나 키를 알아냄
암호 시스템의 약점을 찾기도 함
암호 공격
선택 암호문 공격
암호문 단독 공격 기지 평문 공격 선택 평문 공격
(Chosen-ciphertext at-
( Ciphertext-only attack) (Known-plaintext attack) (Chosen-plaintext attack) tack)
• 암호문을 수집하여 가능한 • 공격자는 여러 평문과 • 공격자가 선택한 평문에 • 공격자가 일부 암호문에
한 많은 평문을 회복 그에 대응하는 암호문을 대응하는 암호문 획득 대한 평문을 획득하여
• 암호화 키 추측 알고 있음 • 암호화 키 추측 암호 획득
• 키 추측 또는 암호문을 • 암호화 키 추측
복호하는 알고리즘 추측
9
암호 공격 성공 !!
특정 암호문을
암호문을 해독하는 암호화 키
해독하여 알고리즘 획득
평문 획득 발견 / 개발
암호
공격의
최종 목표
10
Knudsen 의 분류
Total break
키 발견
Global deduction
키에 대한 지식이 없을 때 와 같은 값을 계산하는 알고리즘 발견
Instance deduction
가로챈 ( 획득한 ) 암호문에 대한 평문 발견
Information deduction
키나 평문에 대한 정보를 획득
11
암호 알고리즘의 안전성
(Security of Algorithm)
암호의 안전성
얼마나 암호를 해독하기 어려운가 ?
공격에 어느 정도 견딜 수 있는지로 평가
비용 , 시간 , 필요 데이터량 ( 암호문 , 평문의 양 )
암호 알고리즘들은 서로 다른 안전성을 제공
복잡도 (Complexity)
Data complexity
공격의 입력으로 필요한 데이터의 양
Processing complexity
공격 수행에 필요한 시간
Storage requirements
공격에 필요한 메모리의 양
12
안전성의 분류
무조건적 안전성 (Unconditional security)
공격자가 아무리 많은 암호문을 가지더라도 평문을 회복하는데
필요한 정보가 부족 => 평문 회복 불가능
정보이론의 관점에서의 안전성
완전 안전 (Perfect security)
계산량적 안전성 (Computational security)
사용 가능한 자원으로 알고리즘을 깰 수 있음
자원 : 시간 , 데이터량 , 계산량 등을 의미
복잡도의 관점에서의 안전성
공격 방법에 의한 안전성 평가
게임 이론에 기반 – 공격자 및 공격 시나리오 가정
13
Simple XOR
0 ⨁ 0=0
0 ⨁ 1=1
1 ⨁ 0=1
C
1 ⨁ 1=0
14
One-time Pads
Perfect encryption scheme
반복되지 않는 랜덤 키 문자열 이용하여 암호화
암호화 과정
수신자 • 복호 후 사용된 키 문자 삭제
15
One-time pads 암호의 예
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
0 1 2 3 4 5 6 7 8 9 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
----------------------------- 14 =O
암호문 HOJKOREGFP
16
암호 알고리즘
1. 대칭키 암호
2. 비대칭키 암호 ( 공개키 암호 )
17
암호 알고리즘
수 없도록 변환함
보안의 기밀성 (Confidentiality) 유지
의존함
암호 알고리즘은 공개 , 중요한 키는 비밀로 유지함
18
대칭키 암호
암호화 / 복호 키가 동일한 암호
대부분의 근대 암호
대입암호 (Substitution cipher)
시프트암호
Affine 암호
다표식 대입암호
19
스트림 암호
비트 , 워드 단위로 평문을 암호화
블록 암호
평문을 특정 크기의 블록 단위로 나누어 암호화
20
스트림 암호
(Stream Cipher)
21
스트림 암호의 역사
고전적 스트림 암호
LFSR 에 기반
군사적 목적으로 사용
현재
22
선형 피드백 시프트 레지스터
(Linear Feedback Shift Register)
sn=c0s0+c1s1+…+cn-1sn-1
cn-1 cn-2 c0
….
sn-1 sn-2 s0
s0, s1,…,sn-1 : n 개 단의 내용
c0, c1, …,cn-1 : 0 또는 1 의 값 , si 단의 연결 상태
23
스트림 암호의 개요
비트 단위로 암호화
Register:LFSR) 이용
이진 수열 평문과 이진 수열 키를 XOR 하여 암호문 생성
평문 계열
𝐶 𝑖 =𝑃 𝑖 ⨁ 𝐾 𝑖 , 𝑃 𝑖 =𝐶 𝑖 ⨁ 𝐾 𝑖
24
오류 전파 없음
속도 빠름
하드웨어 구현 용이
수학적 분석 가능
이론적인 값 계산 가능
분류
동기식 스트림 암호
비동기식 스트림 암호
25
동기식 스트림 암호
(Synchronous Stream Cipher)
송신자 수신자
I0 ( 초기치 ) I0 ( 초기치 )
난수생성기 난수생성기
𝐾𝑖 𝐾𝑖
𝑃𝑖 ⊕ 𝐶𝑖 𝐶𝑖 ⊕ 𝑃𝑖
26
난수생성기
오류 전파 없음
27
자기 동기식 스트림 암호
(Self-Synchronous Stream Cipher)
I0 ( 초기치 ) I0 ( 초기치 )
레지스터 레지스터
∕ 𝑛𝐵 ∕ 𝑛𝐵
변환 변환
𝑃𝑖 𝐾𝑖 𝐶𝑖 𝐾𝑖 𝑃𝑖
⊕ ⊕
28
자기 동기식 스트림 암호
29
LFSR 기반 스트림 암호
LFSR 의 특성
하드웨어 구현 용이
긴 주기 생성 가능
좋은 통계적 특성 , 대수적 분석 용이
30
스트림 암호의 동향
소프트웨어 구현인 용이한 스트림 암호 개발 (1990 년대
이후 )
RC4 (RSA 사 )
SEAL(IBM 사 ) – 1997 년 통계 분석에 의한 공격
설계 논리
LFSR, 블록 암호 , 해쉬 함수의 설계 논리를 접목
블록 암호의 논리 이용한 설계
워드 단위의 LFSR 기반 스트림 암호
공격법도 여러 가지 공격 기법이 응용됨
31
스트림 암호 공격법
주기 및 통계적 특성 공격
키 스트림 생성기의 주기가 길어야 함
키 스트림이 메모리 없는 베르누이 분산에서 벗어나면 분석 가능
32
상관 (Correlation) 공격
LFSR 기반 스트림 암호에 대한 가장 기본적인 공격
키 스트림 출력과 LFSR 의 출력과의 상관 분석하여 LFSR 의
초기값 ( 마스터 키 ) 을 찾음
입력 비트와 출력 비트간의 상관 관계식의 확률이 ½ 을 벗어날
경우 공격
많은 연구 결과 있음
선형 복잡도
수열을 생성하는 가장 짧은 길이의 LFSR 의 길이
33
블록 암호
(Block Cipher)
34
대칭키 암호와 비대칭키 암호
35
블록 (Block) 의 개념
Encrypted Encrypted Encrypted
Block1 Block2 Block3 Block1 Block1 Block1
Message
=Piantext … …
Block Encrypted
n Block n
Cryptographic mode
블록 암호를 사용하는 방법 정의
피드백 (Feedback), 단순 연산 (Simple operations), 기본 암호
(Basic cipher) 와 결합하여 사용
안전성은 모드에 의존하지 않고 암호 알고리즘에 의존
사용 모드의 요구조건
평문의 패턴 숨김
효율성 : 모드는 알고리즘의 효율성에 큰 영향을 주어서는 안됨
Fault-tolerance
37
ECB Mode
(Electronic Codebook Mode)
P1 P2 Pi
K E K E … K E
C1 C2 Ci
Pi 는 평문 블록 , Ci 는 특징
암호문 블록 가장 간단한 모드
평문은 특정 크기의 블록으로
평문 블록을 암호문 블록으로
나누어 암호화 수행
암호화
평문 블록에 대한 패딩
동일 키를 이용할 때 동일한
(padding) 절차 필요함
E 는 암호 알고리즘
평문 블록은 항상 같은
암호문으로 암호화 됨
K 는 비밀키 / 대칭키
각 블록은 독립적으로 암호화
38
CBC Mode
(Cipher Block Chaining Mode)
Pi Pi+1 Ci-1 Ci Ci+1
Pi-1
⊕ ⊕ ⊕
IV DK DK DK
EK EK EK ⊕ ⊕ ⊕
Ci-1 Ci Ci+1
Pi-1 Pi Pi+1
암호화 복호
수식 표현
39
블록 암호에 피드백 (Feedback) 부가
각 암호문 블록은 해당 평문 블록과 이전의 모든 평문 블록에
의존하여 생성됨
초기 벡터 (Initialization Vector, IV)
Random data block
동일한 평문 블록을 다른 암호문 블록으로 암호화
비밀일 필요 없음
오류 전파 (Error Propagation)
평문 블록의 1 bit 오류