You are on page 1of 40

빅데이터암호학 (1-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)

 키를 모르는 제 3 자가 암호문을 올바르게 읽을 수 없음

 인증 (Authentication)

 수신자에게 정당한 사용자 / 메시지임을 증명

 사용자 인증 , 메시지 인증

 무결성 (Integrity)

 전송도중 변화 / 수정되지 않았음을 증명

 허락된 사용자만이 메시지 수정 가능

 부인방지 (Non-repudiation)

 송 / 수신자가 메시지의 송 / 수신을 부인할 수 없음


6
암호 시스템

7
암호 시스템

 암호화와 복호를 하는 과정에 필요한 요소를 모두 합한 것


 평문 (Plaintext)
 암호문 (Ciphertext)
 암호화 / 복호 (Encryption/Decryption)
 키 (Key)

 암호학에서 가장 기본적인 역할을 함

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
 반복되지 않는 랜덤 키 문자열 이용하여 암호화

암호화 과정

• 각 키 문자로 하나의 평문 문자를 암호화


• 평문 문자와 키 문자는 법 26 덧셈
송신자 (addition modulo 26)
• 암호화 후 사용된 키 문자는 삭제

수신자 • 복호 후 사용된 키 문자 삭제

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

평문 ONETIMEPAD * O+T mod 26 = (14+19) mod 26


=7=H
+ 키 TBFRGFARFM * N+B mod 26 = (13+1) mod 26 =

----------------------------- 14 =O

암호문 HOJKOREGFP

16
암호 알고리즘

1. 대칭키 암호
2. 비대칭키 암호 ( 공개키 암호 )

17
암호 알고리즘

 전달하고자 하는 메시지 ( 평문 ) 의 내용을 제 3 자가 알아볼

수 없도록 변환함
 보안의 기밀성 (Confidentiality) 유지

 현대 암호학에서 암호 알고리즘의 안전성은 키 (Key) 에

의존함
 암호 알고리즘은 공개 , 중요한 키는 비밀로 유지함

 대칭키 암호와 비대칭키 암호 ( 공개키 암호 ) 로 분류

18
대칭키 암호
암호화 / 복호 키가 동일한 암호

 대부분의 근대 암호
 대입암호 (Substitution cipher)
 시프트암호
 Affine 암호
 다표식 대입암호

 치환암호 (Transposition cipher)


 단순 치환암호
 Nihilist 암호

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
스트림 암호의 개요

 비트 단위로 암호화

 선형 시프트 레지스터 (Linear Feedback Shift

Register:LFSR) 이용
 이진 수열 평문과 이진 수열 키를 XOR 하여 암호문 생성

 평문 계열

 이진 수열 키 : 키 스트림 , 난수와 구별 불가능

 키 스트림을 송신자와 수신자가 공유

𝐶 𝑖 =𝑃 𝑖 ⨁ 𝐾 𝑖 , 𝑃 𝑖 =𝐶 𝑖 ⨁ 𝐾 𝑖
24
 오류 전파 없음

 속도 빠름

 하드웨어 구현 용이

 수학적 분석 가능

 이론적인 값 계산 가능

 분류

 동기식 스트림 암호

 비동기식 스트림 암호

25
동기식 스트림 암호
(Synchronous Stream Cipher)

송신자 수신자
I0 ( 초기치 ) I0 ( 초기치 )

난수생성기 난수생성기

𝐾𝑖 𝐾𝑖
𝑃𝑖 ⊕ 𝐶𝑖 𝐶𝑖 ⊕ 𝑃𝑖

26
 난수생성기

 LFSR, 비선형 의사 난수 생성기 , 블록암호 이용

 오류 전파 없음

 복호 시 한번 동기가 틀려지면 암호문과 키의 대응이 틀려져

이후의 모든 암호문 계열은 바르게 복호 불가능

27
자기 동기식 스트림 암호
(Self-Synchronous Stream Cipher)

I0 ( 초기치 ) I0 ( 초기치 )

레지스터 레지스터

∕ 𝑛𝐵 ∕ 𝑛𝐵
변환 변환

𝑃𝑖 𝐾𝑖 𝐶𝑖 𝐾𝑖 𝑃𝑖
⊕ ⊕

28
 자기 동기식 스트림 암호

 동기가 틀려졌을 때 자동으로 회복하는 기능을 가진 스트림 암호

 송신측과 수신측에서 동기가 틀려져도 레지스터 길이 비트 분의 가


오류없이 전달되기만 하면 양쪽의 레지스터 내용이 같아져 동기가
회복됨
 의 비트 오류나 비트 손실이 발생하여 잘가 수신측의 레지스터에 있는

동안은 송신측과 수신측에서 서로 다른 난수가 생성됨


 레지스터 길이 만큼의 오류 전파가 발생함

 변환은 비선형 연산을 포함한 변환

 비선형 함수 , 비선형 연산을 포함한 블록 암호 등

29
LFSR 기반 스트림 암호
 LFSR 의 특성
 하드웨어 구현 용이
 긴 주기 생성 가능
 좋은 통계적 특성 , 대수적 분석 용이

 여러 가지 비선형 논리 사용하여 키 스트림 생성기 구성


 Summation generator, shrinking generator 등

30
스트림 암호의 동향
 소프트웨어 구현인 용이한 스트림 암호 개발 (1990 년대
이후 )
 RC4 (RSA 사 )
 SEAL(IBM 사 ) – 1997 년 통계 분석에 의한 공격

 설계 논리
 LFSR, 블록 암호 , 해쉬 함수의 설계 논리를 접목
 블록 암호의 논리 이용한 설계
 워드 단위의 LFSR 기반 스트림 암호
 공격법도 여러 가지 공격 기법이 응용됨

31
스트림 암호 공격법

 전수 조사 (Exhaustive key search)


 Time-Memory trade-off 공격
 키 출력 관계를 미리 계산 , 메모리에 저장
 실제 공격 상태에서 출력 데이터를 저장된 출력 패턴과
일치하는지 검사

 주기 및 통계적 특성 공격
 키 스트림 생성기의 주기가 길어야 함
 키 스트림이 메모리 없는 베르누이 분산에서 벗어나면 분석 가능

32
 상관 (Correlation) 공격
 LFSR 기반 스트림 암호에 대한 가장 기본적인 공격
 키 스트림 출력과 LFSR 의 출력과의 상관 분석하여 LFSR 의
초기값 ( 마스터 키 ) 을 찾음
 입력 비트와 출력 비트간의 상관 관계식의 확률이 ½ 을 벗어날
경우 공격
 많은 연구 결과 있음

 선형 복잡도
 수열을 생성하는 가장 짧은 길이의 LFSR 의 길이

33
블록 암호
(Block Cipher)

블록 암호 : 평문 블록을 비밀키로 암호화하여 암호문 블록을 만드는 암호 .


- 일반적으로 대칭키 암호를 지칭함

34
대칭키 암호와 비대칭키 암호

Symmetric Cryptography Asymmetric Cryptography

Block Cipher Public key cryptography

Encryption key = Decryption key Encryption key Decryption key

Simple operations Difficult Mathematical problems

Short key length Long key length

AES, Triple-DES, LEA etc. RSA, ElGamal, Rabin etc.

35
블록 (Block) 의 개념
Encrypted Encrypted Encrypted
Block1 Block2 Block3 Block1 Block1 Block1

Message
=Piantext … …

Block Encrypted
n Block n

 평문을 특정 크기의 블록으로 나눔


 블록의 크기
 알고리즘에 따라 평문 및 암호문 블록의 크기가 다름
 64 bit, 128 bit, 256 bit, 512 bit, 1024bit 등
 패딩 (Padding)
 평문의 가장 마지막 부분은 블록 크기에 맞지 않을 경우 많음
 블록 크기를 맞추기 위해 일정한 패턴의 비트를 삽입함
36
블록 암호의 사용 모드

 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 오류

이후의 모든 암호문 블록에 영향을 미치지만 복호 시 1bit 오류로 복호됨

 암호문 블록의 1 bit 오류 2 개의 평문 블록에 오류 전파

 긴 메시지일 경우 평문의 패턴이 나타남


40

You might also like