Presentation is loading. Please wait.

Presentation is loading. Please wait.

08장 암호의 이해: 숨기고자 하는 이들의 싸움.

Similar presentations


Presentation on theme: "08장 암호의 이해: 숨기고자 하는 이들의 싸움."— Presentation transcript:

1 08장 암호의 이해: 숨기고자 하는 이들의 싸움

2 01. 암호의 발전사 02. 대칭 암호화 방식 03. 비대칭 암호화 방식 04. 해시

3 ▶ 고전 암호를 통해 암호의 원리를 이해한다. ▶ 대칭 암호화의 원리와 기능을 이해한다. ▶ 비대칭 암호화의 원리와 기능을 이해한다. ▶ 해시 알고리즘의 원리를 이해한다.

4 01. 암호의 발전사 보안의 3요소 암호학(cryptology)
암호학이란 정보를 보호하기 위해 사용할 수 있는 모든 수학적인 원리, 수단, 방법 등의 기반기술을 말함 암호를 사용하지 않고 궁극적인 정보보호를 성취하는 것은 불가능 해쉬, 메시지인증코드, 전자서명 암호화 보안의 3요소 인증, 접근제어, 보안관리

5 01. 암호의 발전사 보안의 3요소 암호기술은 보안을 제공하기 위한 핵심 기술 기밀성: 무결성: 가용성:
오직 허가된 사용자만이 정보, 시스템에 접근 가능해야 함 암호기법: 암호화 (대칭키, 비대칭키) 무결성: 허가되지 않은 사용자에 의한 정보의 불법 변조, 손상을 방지 암호기법: 해쉬함수, 메시지인증코드, 전자서명 가용성: 허가된 사용자는 필요한 시간에 자산에 접근 가능해야 함 보안대책: 인증, 접근통제, 보안관리, DOS, DDOS 방지 암호기술은 보안을 제공하기 위한 핵심 기술

6 01. 암호의 발전사 암호 관련 용어 암호문(ciphertext)과 평문(plaintext)
누구나 이해할 수 있는 메시지인 평문을 암호화하여 당사자만 풀어볼 수 있는 암호문을 생성 암호화(encryption)와 복호화(decryption) 평문을 암호문으로 바꾸는 것을 암호화, 암호문을 평문으로 바꾸는 것을 복호화. 암호화 알고리즘(encryption algorithm) 암호화나 복호화를 수행하는 수단, 방법, 알고리즘 키(key) 암호화, 복호화에 사용하는 비밀정보 송신자 (sender) 도청자(eavesdropper) 공격자(attacker) 수신자 (receiver)

7 01. 암호의 발전사 암호의 역사 고전암호 (Classical Cipher) 근대암호 (Machine Cipher)
수작업에 의한 암호 근대암호 (Machine Cipher) 1, 2차 세계대전시의 기계암호 현대암호 (Modern Cipher) 컴퓨터 시대의 컴퓨터를 사용하는 암호

8 01. 암호의 발전사 암호화의 원리 - 전치법과 대체법 전치법(transposition) 대체법(substitution)
메시지에 들어 있는 문자 위치를 서로 바꾸는 방법 위치를 바꾸는 규칙이 키가 됨 대체법(substitution) 메시지의 글자를 다른 글자로 대체하여 암호화하는 것 대체 테이블을 키로 사용

9 01. 암호의 발전사 암호화 방식 – 전치법 스키테일 암호(Scytle cipher)
약 2,500년 그리스 지역의 옛 나라인 스파르타에서 사용한 암호 방식 전쟁터에 나가있는 군대에 비밀메시지를 전할 때 암호를 사용 전치법을 사용한 암호화 방식 스키테일(Scytale)암호 전쟁터에 나갈 군대와 본국에 남아있는 정부는 각자, 스키테일(Scytale)이라고 하는 굵기의 원통형 막대기를 나누어 갖는다. 비밀리에 보내야 할 메시지가 생기면, 본국 정부의 암호 담당자는 스키테일에 가느다란 양피지 리본을 위에서 아래로 감은 다음 옆으로 메시지를 적는다.[2] 리본을 풀어내어 펼치면 메시지의 내용은 아무나 읽을 수 없게 된다.. 전쟁터에 나가있는 오로지 같은 굵기의 원통막대기를 가진 사람만이 메시지를 읽을 수 있다.

10 01. 암호의 발전사 암호화 방식 - 대체법 단일 치환 (mono-alphabetic substitution)
단일 치환은 알파벳 한 글자를 다른 하나의 글자로 대체하는 방식으로 시저 암호화, 모 노 알파베틱 암호화가 있음. 시저 암호화 알파벳 스물여섯 자를 세 자 또는 네 자씩 오른쪽으로 이동한 뒤 해당되는 글자로 변환하여 암호화하는 것 500년 동안이나 사용된 방법이지만, 암호화가 가능한 경우의 수가 26가지에 불과한 매우 취약한 방식. 모노 알파베틱 암호화 알파벳 스물여섯 자를 각각 다른 알파벳에 대응시켜 알파벳을 암호화하는 것 가능한 키의 가짓수는 26! 모노 알파베틱 암호문을 복호화하려면 알파벳 대칭표가 있어야 함. [그림 8-3] 알파벳을 세 자씩 오른쪽으로 이동한 결과

11 01. 암호의 발전사 시저 암호화

12 01. 암호의 발전사 모노알파베틱 암호화

13 01. 암호의 발전사 암호 해독 빈도분석법 (frequency analysis) 영문의 특성을 이용
영문 알파벳의 출현 빈도를 암호해독에 이용 상위: e, t, a, o 하위: z, q, x, j 영문의 특성을 이용 자주 나타나는 단어, 정관사, 전치사 a, the, of, on 모노알파베틱 암호화는 빈도분석법으로 쉽게 해독

14 01. 암호의 발전사 암호화 방식 - 대체법 다중 치환 (polygraphic substitution)
다중 치환 방식은 암호화 키와의 매핑에 따라 알파벳 하나가 여러 가지 다른 알파벳으 로 대체되어 암호화되는 것 비즈네르 암호화 26×26의 알파벳 대칭표를 이용하여 암호화하고자 하는 평문과 암호화 키를 매핑하고 암호화와 복호화를 수행하는 방식. 17~18세기에 널리 사용. 19세기에 찰스 배비지(Charles Babbage)가 빈도 분석법을 이용하여 규칙성을 찾는 방법으로 비즈네르 암호를 해독함. 플레이페어 암호화 2개로 이루어진 문자 쌍을 다른 문자 쌍으로 대체하는 암호화 방법으로, 보통 정사각형 암호판 안에 영어 알파벳을 배열한 것으로 대체하는 방식.

15 01. 암호의 발전사 비즈네르 암호화

16 01. 암호의 발전사 비즈네르 암호화 cipher/

17 01. 암호의 발전사 http://practicalcryptography.com/ciphers/
각종 고전암호 알고리즘 테스트 가능

18 01. 암호의 발전사 근대 암호 (기계 암호) 독일군이 사용한 Enigma

19 01. 암호의 발전사 기계 암호의 해독 앨런 튜링(Alan Mathison Turing, 1912년 6월 23일 ~ 1954년 6월 7일) 영국의 수학자, 공학자.  케임브리지 종합대학의 킹스칼리지를 졸업하고 같은 대학에서 교수직을 맡음. 제2차 세계대전이 발발하자 나치 독일군을 격파하기 위해 암호해독을 맡음. 수많은 수학공학적 업적 때문에 현대 전산학과 정보공학의 아버지로도 불림.

20 02. 대칭 암호화 방식 개요 대칭키 암호화(symmetric encryption)는 암호화에 사용하는 키와 복호화에 사 용하는 키가 동일 송신자와 수신자 모두 동일한 키를 공유해야 함 비밀키는 송신자와 수신자 이외에는 알지 못하도록 해야 함 대규모 데이터의 빠른 암호화에 활용

21 02. 대칭 암호화 방식 블록암호와 스트림암호 대칭암호화는 데이터를 변환하는 단위에 따라 블록암호와 스트림암호로 분류
블록암호: 고정된 크기의 블록 단위로 암호화/복호화 블록 크기: 128, 192, 256비트 등 스트림암호: 난수열을 생성하여 비트단위, 글자단위로 암호화/복호화 블록암호 스트림암호

22 02. 대칭 암호화 방식 커크호프의 원리 (Kerckhoffs' Principle)
A cryptosystem should be secure even if everything about the system, except the key, is public knowledge. 키를 제외한 시스템의 다른 모든 내용이 알려지더라도 암호체계는 안전해야 한다. 비밀 암호시스템은 오히려 안전하지 않을 수 있음 많은 전문가들의 공격시도를 견뎌야 안전성을 인정받음

23 02. 대칭 암호화 방식 DES 알고리즘 DES(Data Encryption Standard) 알고리즘
1972년 미국 상무부에서 정보 보호를 목적으로 공모한 암호화 알고리즘으로, 1977년 1월에 암호화 표준으로 결정. DES는 64비트의 블록 암호화 알고리즘으로 56비트 크기의 암호화 키로 암호화. 미국 정부는 1998년 11월 이후부터 DES 알고리즘의 사용을 중단했지만 아직도 여러 응용 프로그램에서 많이 사용. [그림 8-14] DES 암호화 과정 [그림 8-15] DES 복호화 과정

24 02. 대칭 암호화 방식 트리플 DES 알고리즘 DES의 취약성이 문제가 되어 AES가 나오기 전까지 임시로 사용한 암호화 알고리즘. DES 암호화를 3번 수행하는 방식. 암호화 및 복호화 과정에서 2개, 또는 3개의 암호화 키를 이용. 암호화 강도는 DES 알고리즘의 2배 컴퓨터의 발전 속도에 비해 2배의 암호 강도는 만족할 만한 수준이 아니어서 오래 사 용되지 못함. [그림 8-18] 트리플 DES의 암호화 및 복호화 과정

25 02. 대칭 암호화 방식 AES 알고리즘 AES(Advanced Encryption Standard) 알고리즘
DES의 암호화 강도가 점점 약해지면 서 새롭게 개발된 것. 향후 30년 정도 사용할 수 있는 보안 성, 128비트 암호화 블록, 다양한 키 길이를 갖출 것이라는 공모 조건으로 선정됨. 블록 사이즈: 128비트 키길이: 128, 192, 256비트

26 02. 대칭 암호화 방식 SEED 알고리즘 ARIA 알고리즘
전자상거래, 금융, 무선통신 등에서 전송되는 중요한 정보를 보호하기 위해 한국인터 넷진흥원과 국내 암호 전문가들이 순수 국내 기술로 개발한 128비트, 256비트 블록의 암호화 알고리즘. (SEED 128, SEED 256) 국내에서 개발된 많은 암호 프로그램과 보안 솔루션에서 사용중. ARIA 알고리즘 전자정부 구현으로 다양한 환경에 적합한 암호화 알고리즘이 필요하여 개발한 것. AES 알고리즘과 동일규격으로 128/192/256비트 암호화 키를 지원.

27 02. 대칭 암호화 방식 기타 대칭형 알고리즘 IDEA 알고리즘 RC5 알고리즘
128비트 키를 사용하여 64비트 평문을 8라운드를 거쳐 64비트 암호문으로 만드는 방 식. 모든 연산이 16비트 단위로 이루어지도록 하여 16비트 프로세서에서 구현이 용이하며 주로 키 교환에 쓰임. RC5 알고리즘 RC5(Ron’s Code 5) 알고리즘 비교적 간단한 연산으로 빠른 암호화와 복호화 기능을 제공하며 모든 하드웨어에 적합 함. 입출력, 키, 라운드 수가 가변인 블록 알고리즘 RC5는 32, 64 또는 128비트 키가 사용 되며 속도는 DES의 약 10배.

28 02. 대칭 암호화 방식 기타 대칭형 알고리즘 Skipjack 알고리즘 LEA 알고리즘
미국 국가안보국(NSA)에서 개발한 클리퍼 칩에 내장된 블록 알고리즘으로, 비밀로 유 지되던 알고리즘의 형태와 구조가 1998년에 공개됨. 64비트 입출력, 80비트 키를 이용하여 총 32라운드의 암호화 과정을 수행함. LEA 알고리즘 LEA는 고속 환경 및 모바일 기기 등의 경량 환경에서 기밀성을 제공하기 위해 국내에 서 개발된 암호화 알고리즘으로 AES 대비 1.5~2배의 성능임. LEA는 128비트 데이터 블록으로 128, 192, 256비트 비밀 키를 사용할 수 있음.

29 02. 대칭 암호화 방식 AES 예제 https://www.movable-type.co.uk/scripts/aes.html

30 03. 비대칭 암호화 방식 대칭키 암호에서의 키관리 문제
통신의 비밀을 유지하기 위해서는 각 사용자들간의 통신에 서로 다른 비밀키 를 사용해야 함 사용자가 n명인 경우 전체 nC2=n(n-1)/2 개의 키가 필요 각 사용자는 n-1개의 키를 관리해야 함, 매우 복잡 b a c d e

31 03. 비대칭 암호화 방식 공개키 암호 (비대칭키 암호)
하나의 쌍이 되는 두 개의 키를 생성하여 하나는 암호화에 사용하고 다른 하나 는 복호화에 사용한다. 암호화에 사용하는 키는 공개할 수 있어서 공개키라고 부르고 복호화에 사용 하는 키는 사용자만이 안전하게 보관해야 하는 키로 개인키(비밀키)라고 부른 다. 두 개의 키가 서로 다르므로 비대칭키 암호라고 부르며 하나의 키를 공개하므 로 공개키 암호라고도 부른다. 암호화:공개키 복호화:개인키

32 03. 비대칭 암호화 방식 공개키 암호 (비대칭키 암호)
개인은 자신의 개인키 1개만을 안전하게 보관하면 되므로 키관리가 매우 편리 해짐 키쌍을 생성하는 것은 특정한 키생성 알고리즘을 이용 키생성, 암호화, 복호화 알고리즘은 고도의 수학적인 연산을 요구하여 대칭키 암호와 비교하여 속도가 느림. 키생성 알고리즘 (공개키/개인키 쌍 생성) 암호화 알고리즘 (공개키 이용) 복호화 알고리즘 (개인키 이용)

33 03. 비대칭 암호화 방식 비밀키 암호 (대칭키 암호) 공개키 암호 (비대칭키 암호)

34 03. 비대칭 암호화 방식

35 03. 비대칭 암호화 방식 RSA 알고리즘 Shamir Rivest Adleman
RSA(Rivest, Sharmir, Adleman) 알고리즘, 1977년 발표 대표적인 비대칭 암호화 알고리즘으로 오늘날 산업 표준으로 사용. RSA 암호의 안전성은 소인수분해 문제의 어려움에 기반 Shamir Rivest Adleman

36 03. 비대칭 암호화 방식 RSA 알고리즘 키생성 암호화 복호화

37 03. 비대칭 암호화 방식 y = gx mod p x = logg y 공개키 암호는 수학적으로 어려운 문제를 이용하여 설계
소인수분해 문제 (Integer Factorization Problem) 합성수를 소수의 곱으로 나타내는 문제 이산대수 문제 (Discrete Logarithm Problem) easy Primes p, q n = pq hard easy y = gx mod p hard x = logg y Given g, x, p Given g, y, p

38 03. 비대칭 암호화 방식 RSA Online Demo in Javascript

39 X 04. 해쉬 해쉬함수(hash function)란? 임의의 길이의 데이터를 입력받아서 고정된 길이의 특징값을 출력하는 함수
임의의 길이의 데이터를 입력받아서 고정된 길이의 특징값을 출력하는 함수 메시지 다이제스트(message digest)라고도 부름 암호키를 사용하지 않는 공개된 함수. 동일한 입력값 에 대해 항상 동일한 해쉬값을 출력함 입력값으로부터 해쉬값을 계산하는 것은 쉽지만 해쉬 값으로부터 그것을 출력하는 입력값을 찾는 것은 어 려움 (일방향함수) Message M H X Message Digest D D = H(M)

40 04. 해시 해시의 특징

41 04. 해시 해쉬함수의 요구조건 역상 저항성(Pre-image resistance): 주어진 출력에 대하여 입력값을 구하는 것 이 계산상 불가능하다. 제2 역상 저항성(Second pre-image resistance): 주어진 입력에 대하여 같은 출 력을 내는 또 다른 입력을 찾아내는 것이 계산상 불가능하다. 충돌저항성(Collision resistance): 같은 출력을 내는 임의의 서로 다른 두 입력 메시지를 찾는 것이 계산상 불가능하다.

42 04. 해시 해쉬함수의 용도 메시지 다이제스트: 문서의 위조 방지 안전한 난수생성 패스워드 저장
해쉬값을 생성하여 함께 제공 전자서명과 함께 사용 안전한 난수생성 안전한 난수생성을 위해 해쉬함수 이용 패스워드 저장 사용자의 패스워드를 서버에서는 그대로 저장하지 않고 salt를 이용한 해쉬값으로 저 장 패스워드 기반 키생성 알고리즘 (PBKDF2) 사용자 입력 패스워드로부터 난수처럼 보이는 비밀키를 생성 체크섬 생성 및 검증 인터넷으로 배포되는 소프트웨어의 원본 보증

43 04. 해시 해쉬함수의 용도 패스워드 저장 체크섬 생성 및 검증

44 04. 해시 해쉬 알고리즘 해쉬함수 온라인 테스트 Md5 Sha1 Sha256 Sha384 Sha512

45 04. 해시

46 04. 해시 SHA-1 NIST FIPS 180-1 표준 해쉬함수 블록 사이즈 512 비트 출력 해쉬값 160비트

47 04. 해시 해시의 종류 SHA SHA 알고리즘은 SHA-1과 SHA-2로 나눌 수 있음. [표 8-1] SHA의 종류와 특징

48 과제 4. 고전암호 문제 풀이 1. 고전암호 해독 (과목 홈페이지 참조) 2. 현대 암호 활용 사례
제시된 암호문을 해독하여 키와 평문을 찾아보시오. 1. 시저 암호 2. 모노알파베틱 암호 3. 비즈네르 암호 2. 현대 암호 활용 사례 다음 알고리즘들의 실제 프로그래밍 실행 사례를 제시하시오. 실제 알고리즘 은 이해하지 못해도 좋고 프로그래밍 언어는 무엇을 쓰든지 상관없음. 1. 대칭키 암호 (AES 암호) 2. 해쉬함수 (SHA-256) 3. 공개키 암호 (RSA 암호)

49


Download ppt "08장 암호의 이해: 숨기고자 하는 이들의 싸움."

Similar presentations


Ads by Google