암호학 개론 - Customer Support Center

Download Report

Transcript 암호학 개론 - Customer Support Center

암호학 개론
Penta Security Systems, Inc. | 2013, July
Table Contents
 암호학
 암호시스템
 암호시스템 종류
 암호시스템 비교
 암호시스템 - 대칭키 시스템
 암호 알고리즘 성능 비교
 D’Amo 암호화 설정 가이드




암호화
암호화
암호화
암호화
알고리즘 설정
키 길이 설정
IV 설정
운영 모드 설정
 기타 – 알고리즘별 상세정보
암호학 개론
암호학
암호학이란?
 암호법 (Cryptography)
정보를 보호하기 위하여 외부인이 불법적으로 복원할 수 없도록 안전하게 변형(암호화)하
는 기술
 암호해독법(Cryptanalysis)
복원하기에 불충분한 조건만으로 암호화된 정보를 복원하는 기술
 암호학(Cryptology)
암호법과 암호해독 법을 함께 이르는 말
* crypt- : 숨겨진, 묻혀진
암호학 개론
3
암호학
암호학에서 보안 요구사항
 기밀성 (Confidentiality)
데이터가 외부로 노출되지 않았는가?
 무결성(Integrity)
데이터를 다른 사람이 불법적으로 변조하지 않았는가?
 사용자 인증(Authentication)
서비스를 이용하는 사용자가 정당한 사용자인가?
 부인 봉쇄(Non-repudiation)
데이터의 수신자가 자신의 수신 사실을 부인할 수 없는가?
암호학 개론
4
암호학
암호서비스에서 암호학 보안 요구사항 응용
암호학 개론
5
암호학
암호학과 관련된 용어 설명
 암호화 (encryption, encipher, encode)
평문을 변형하여 암호문으로 만드는 것
C=E(M), C=EkE(M) : 암호화용 키 kE를 사용하여 암호화
 복호화 (decryption, decrypt, decode)
암호문을 평문으로 복원하는 것
M=D(C), M=DkD(C) : 복호화용 키 kD를 사용하여 복호화
 평문 (Plaintext, Original Message)
암호화하기 이전의 문장, M
 암호문 (Ciphertext, Cryptogram)
암호화된 문장, C
암호학 개론
6
암호시스템
암호시스템 종류
 대칭키 암호시스템(Symmetric Key Cryptosystem)
 비밀키 암호시스템(Secret Key Cryptosystem), 관용키 암호시스템
 암호화용 키와 복호화용 키로 같은 키를 사용(kE=kD)하거나 하나를 알면 다른 것도 바로 알 수
있음
 두 키를 모두 비밀리에 보관해야 함
 DES, AES, SEED, ARIA 알고리즘 등이 해당됨
 공개키 암호시스템(Public Key Cryptosystem)
 암호화용 키와 복 호화용 키가 서로 다름 (kE 와 kD)
 암호화용 키로 복 호화용 키를 알기 어려움
(수학적 이론 사용, 계산적으로 불가능)
 암호화용 키는 공개하고, 복호화용 키만 비밀리에 보관
ex: 암호화용 키 – 공개키, 복호화용 키 - 비공개 키,개인키)
 전자서명 가능(전자서명 생성 - 비공개 키, 전자서명 검증 - 공개키)
 RSA 알고리즘 등이 해당됨
 하이브리드 시스템(Hybrid System)
 공개키 암호시스템과 대칭 키 암호시스템의 결합
 대칭키 암호시스템 : 데이터 암호화
 공개키 암호시스템 : 세션 키의 암호화, 키 분배, 전자서명
암호학 개론
7
암호시스템
대칭키 암호시스템
 송신자와 수신자가 동일한 키를 사용하여 암복호화
송신자
평문
암호화
암호문
키
일반 네트워크
채널
키
수신자
평문
복호화
암호문
[ 대칭키 암호시스템 ]
암호학 개론
8
암호시스템
공개키 암호시스템 (비 대칭키 암호시스템)
 송신자는 공개키를 이용하여 암호화, 수신자는 비 공개키를 이용하여 복호화
송신자
평문
암호화
암호문
공개키
일반 네트워크
채널
비 공개키
수신자
평문
복호화
암호문
[ 공개키 암호시스템 ]
암호학 개론
9
암호시스템
하이브리드 암호시스템
 공개키와 대칭키 시스템을 모두 사용한 하이브리드 암호시스템
공개키
키 생성
암호화
대칭키
암호화된 키
암호화
평문
암호문
일
반
네
트
워
크
채
널
송신자
비공개 키
복호화
암호화된 키
대칭키
복호화
암호문
평문
수신자
[ 하이브리드 시스템 ]
암호학 개론
10
암호시스템
암호시스템 비교
항목
대칭 키
비 대칭 키(공개키)
기능
암호화
암호화,
전자서명, 부인봉쇄
키 개수
N(N-1)/2 개
2N 개
관련 알고리즘
DES, AES, SEED, ARIA
RSA
속도
.
대칭 키 보다 대략
1000 배정도 느림
암호학 개론
11
암호시스템 - 대칭키 시스템
블록 암호화 – Feistel 구조
 암호화 과정과 복호화 과정이 동일
 여러 번 합성함으로써 복잡도를 증가 시킬 수 있음 – Ruby 와 Rackoff[RU]에 의
해 수학적으로 증명됨
 대부분의 블록 암호화 알고리즘이 이 방법을 따름
암호학 개론
12
암호시스템 - 대칭키 시스템
블록 암호화 – Feistel 구조의 운영모드 (1/3)
 목적
 블록 암호화의 안전성을 높임
 메시지 인증(MAC)등의 특수한 기능을 추가
운영 모드 연산이
적용되는 시점
암호학 개론
13
암호시스템 - 대칭키 시스템
블록 암호화 – Feistel 구조의 운영모드 (2/3)
 종류




ECB: Electronic Code Book Mode
CBC: Cipher Block Changing Mode
OFB: Output Feedback Mode
CFB: Cipher Feedback Mode
=>
=>
=>
=>
같은 메시지 블록은 같은 암호문으로 출력
같은 메시지 블록을 다른 암호문으로 출력
의사 난수를 생성(스트림 암호화 알고리즘)
x1,x2,…xn y1,y2,… yn
암호학 개론
14
암호시스템 - 대칭키 시스템
블록 암호화 – Feistel 구조의 운영모드 (3/3)
 CBC
 블록 암호화 운영 모드 중 보안성이 가장 높은 암호화 방법으로 가장 많이 사용된다.
 평문의 각 블록은 XOR연산을 통해 이전 암호문과 연산되고 첫 번째 암호문에 대해서는 IV(Initial
Vector)* 가 암호문 대신 사용된다. 이 때, IV는 제 2의 키가 될수 있다.
 암호문이 블록의 배수가 되기 때문에 복호화 후 평문을 얻기 위해서 Padding을 해야만 한다.
 암호화가 병렬처리가 아닌 순차적으로 수행되어야 한다.
 CFB





블록 암호화를 스트림 암호화처럼 구성해 평문과 암호문의 길이가 같다 (패딩이 필요 없다)
최초의 키 생성 버퍼로 IV가 사용되며, 이때 IV는 제2의 키가 될수 있다.
스트림의 기본단위를 Bit단위로 설정할 수 있으며, Bit단위에 따라 CFB8~CFB128로 쓰인다.
암호화, 복호화 모두 암호화로만 처리할 수 있다.
CBC모드와 마찬가지로 암호화는 순차적이고, 복호화는 병렬적으로 처리할 수 있다.
* IV (Initial Vector)
최초의 평문 블록을 암호화할 때는「1 단계 앞의 암호문 블록」이 존재하지 않으므로 「1단계 앞의 암호문 블록」을
대신할 bit열인 한 개의 블록을 준비할 필요가 있다.
이 bit열을 초기화 벡터(initialization vector) 또는 앞 글자를 따서 IV라고 부른다.
암호학 개론
15
암호시스템 - 대칭키 시스템
블록 암호화 – 안정성 검증
 ExhaustiIVe Key Search 공격
Known Plaintext Attack으로 모든 가능한 Key를 다 Try 해보는 공격 방식
 ExhaustiIVe Key Search로 Randomly Chosen 키를 찾을 평균시간
 아래 표와 같이 128 bit 이상인 경우, ExhaustiIVE Key Search 공격에 대한 안정성을 보장함
Key Size = N : 2N-1 trials in aIVg.
Key Size (bit)
40
56
80
128
1
1.7x104 yr
109 yr
1016 yr
5*1030 yr
103
17.4 yr
106 yr
1013 yr
5*1027 yr
106
6.4 day
1140 yr
1010 yr
5*1024 yr
109
9.2 min
2.3 year
107 yr
5*1021 yr
1012
0.55 sec
10 hr
104 yr
5*1018 yr
us export
DES
Skipjack
IDEA
trials/sec
암호학 개론
16
암호 알고리즘 성능 비교
주요 암호 알고리즘의 성능 비교
AES
SEED
ARIA
Triple DES
키 길이
128 bit
256 bit
128 bit
128 bit
256 bit
112 bit
성능 1
1126 Mbps
885 Mbps
294 Mbps
441 Mbps
388 Mbps
-
성능 2
914 Mbps
671 Mbps
-
-
-
109 Mbps
성능 3
30.5 cycle/byte
-
81.3 cycle/byte
49.0 cycle/byte
-
-
 성능 1 : 펜타시큐리티시스템의 검증필 암호모듈 성능테스트 (2013년 7월 측정)
 테스트 환경 : Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz 3.90GHz, 16GB RAM, Windows 7 in 64-bit
 성능 2 : 암호알고리즘 구현 오픈 소스 Crypto++ 5.6.0 Benchmarks (2009년 3월 측정)
 테스트 환경 : Intel Core 2 @ 1.83 GHz, Windows Vista in 32-bit
 참조 데이터 : http://www.cryptopp.com/benchmarks.html
 성능 3 : 벨기에 루벤 대학 ARIA 분석 보고서 발췌 (2003년 1월 측정)
 숫자가 낮을 수록 효율적인 알고리즘으로 AES는 120% 가한 수치이며, SEED는 추정치임.
 참조 URL : 국정원 암호이용활성화 사이트, http://seed.kisa.or.kr/iwt/ko/sup/EgovAriaInfo.do
암호학 개론
17
D’Amo 암호화 설정 가이드
암호화 알고리즘 설정
 민수기업의 경우, 성능 측면에서 AES 또는 SHA-2 를 선택을 권장합니다.
 공공기관의 경우, 검증대상 암호 알고리즘인 SEED, ARIA 및 SHA-2 를 사용해야만 합니다.
 공공기관의 경우, 국가정보원 (IT보안인증사무국) 검증대상 암호알고리즘 (ARIA, SEED, SHA-2 등)
사용을 권고
 행정안전부 및 KISA에서 발간한 “개인정보 암호화 조치 안내서 (2012.10)” 에 따르면 국내
외 전문기관에서 권고하는 안전한 암호 알고리즘 (2012.10 기준) 은 아래 표와 같습니다.
분류
안전한 암호 알고리즘
블록암호
AES
SEED
ARIA
Blowfish
Camellia
MISTY1
KASUMI 등
Hash 함수
SHA-2
Whirlpool 등
검증대상 암호 알고리즘
(공공기관 적용 필수)
SEED
ARIA
SHA-2
* 붉은 글씨는 D’Amo 에서 지원하는 암호 알고리즘
암호학 개론
18
D’Amo 암호화 설정 가이드
암호화 키 길이 설정
 키 길이가 증가할수록 속도는 느려지나, 안정성이 높아집니다.
 방송통신위원회 및 KISA 가 발간한 “개인정보의 기술적 관리적 보호조치 기준 해설서
(2012.09)” 에 따르면 키 길이에 따른 보안강도는 아래 표와 같습니다.
 대칭키 알고리즘은 키 길이 128 bit 이상, Hash 함수는 Hash 결과 값이 128 bit 이상을 권고
 D’Amo에서 제공하는 모든 키 길이는 표에서 제시하는 안정성 권고 항목을 만족합니다.
보안강도
(대칭키 키 길이,
Hash 함수는 Hash 결과값)
대칭키 암호 알고리즘
(보안강도)
Hash 함수
(보안강도)
80 bit 미만
DES
MD5, SHA-1
80 bit
2TDEA
HAS-160
112 bit
3TDEA
SHA-224
128 bit
SEED
ARIA-128
AES-128
SHA-256
192 bit
ARIA-192
AES-192
SHA-384
256 bit
ARIA-256
AES-256
SHA-512
안정성 유지기간(년도)
안정성
2010년 까지
권고하지 않음
2010년 까지
(Hash 함수는 2013년까지
만 권고)
권고하지 않음
(Hash 함수는 2013년까지
만 권고)
2030년 이후
(최대 30년)
권고함
* 붉은 글씨는 D’Amo 에서 지원하는 키 길이 및 Hash 결과값
암호학 개론
19
D’Amo 암호화 설정 가이드
암호화 IV 설정
 암호화 적용 시에 아래와 같은 IV (Initial Vector) 를 설정할 수 있습니다.
 Fixed IV (또는 Column IV)
암호화 시에 동일한 IV를 사용하여, 같은 데이터를 암호화하면, 같은 암호화 값이 나옴
 Record IV
암호화 시에 매번 다른 IV를 사용하여, 같은 데이터를 암호화하더라도 다른 암호화 값이 나옴
SEC_SOC_NO
SOC_NO
3607A72B29A72
710101-1234567
3607A72B29A72
암호화
710101-1234567
SEC_SOC_NO
N453Y2031C387
25B65M350724H
암호학 개론
20
D’Amo 암호화 설정 가이드
암호화 운영 모드 설정
 암호화 적용 시에 아래와 같은 운영 모드를 설정할 수 있습니다.
 CBC (Cipher Block Chaining)
기본 설정에서 설정 가능하며, 블록 암호화 운영 모드 중 보안성이 가장 높은 암호화 모드로 가장
많이 사용되는 운영 모드
 CFC (Cipher FeedBack)
기본 설정에서 설정 가능하며, 스트림 암호화 방식으로 암호화 전후의 길이가 같은 운영 모드
 FPO (Format Preserving Operation) 운영 모드
기본 설정에서 설정이 불가능하며, 암호화 이후에도 데이터 형식을 유지하는 운영모드로 암호화
하려는 데이터 타입에 따라서 설정가능
운영모드
설명
FPO_NUM2NUM
숫자 형식 유지
FPO_CHAR2CHAR
문자 형식 유지
FPO_UCHAR2UCHAR
문자 형식 유지하되, 알파벳은 대문자만 사
용
FPO_NUM2CHAR
숫자를 문자 형식으로 변환
FPO_NUM2RRN
주민등록번호전용 숫자 형식 유지
암호학 개론
기타
21
기타 – 알고리즘별 상세정보 (1/8)
DES (Data Encryption Standard)
 DES 설명




대칭키 암호 알고리즘
AES 이전의 암호 기술 표준 알고리즘으로 현재는 보안상의 문제가 발견되어 사용을 권하지 않음
DES를 세 번 반복해서 사용하는 TDES (Triple-DES) 는 DES에 비해 안전한 것으로 알려짐
상세 정보
 블록 암호 알고리즘 (Block Size = 64 bit)
 Key Size = 64 bit (실제적으로 선택가능 56 bit)
 매 8번째 bit는 앞 7 bit의 odd parity
 DES 히스토리
 NBS(National Bureau of Standards)
 1973년 5월과 1974년 8월 비밀은 아니나 민감한 정부조달관계
 정보를 암호화할 알고리즘 공모
 IBM의 보안 팀이 70년대 초 개발한 Luciper를 개량한 (특허 출원 됨) 알고리즘을 제안
 NBS는 NSA(National Security Agent)에 보안성 평가를 요청
 NBS ; 1975년 3월 알고리즘 및 Call for Comment공표,
 1976년 2차에 걸친 workshop 개최




1976년 11월 23일 ; 표준으로 채택(공개)
1977년 1월 15일 ; FIPS PUB 46, “DES”
1978년 ANSI (American National Standard I.)채택
1998년 2월 RSA challenge II에서 DCT(Distributed Computing Technologies)가 39일만에 키를
찾아냄 (깨짐)
암호학 개론
22
기타 – 알고리즘별 상세정보 (2/8)
AES (Advanced Encryption Standard)
 AES 설명 (1997년 4월 발표)




대칭키 암호 알고리즘
DES를 대체하는 미국 정보 표준 암호화 알고리즘
가장 널리 사용되며, 빠른 성능을 제공함
상세설명




블록 암호 알고리즘
키의 길이 확장 가능 (128, 192, 256 bit 등) -> 미국 표준으로 인정받은 것은 128 bit
H/W, S/W로 모두 구현 가능
공개적으로 정의 / 자유롭게 사용 가능
 AES 히스토리
 1997년 1월, NIST(National Institute of Standards and Technologies)가 DES를 대체할 목적으로
새로운 대칭 키 알고리즘 표준으로 공모
 안정성 (Security), 비용 (Cost), 알고리즘 및 구 특성 (algorithm and implementation characteristics) 를 만족
하는 항목
 정식 명칭은 AES 로 결정
 1999년 8월, 아래 5개 알고리즘을 최종 심사 대상 선정
 MARS, RC6TM, Rijndael, Serpent, and Twofish
 최종적으로 Rijndael 이 AES로 선택됨 (Daemen 과 Rijndael 이라는 두명의 벨기에 연구원에 의해
설계됨)
암호학 개론
23
기타 – 알고리즘별 상세정보 (3/8)
SEED
 SEED 설명




대칭키 암호 알고리즘
국내 기술로 개발된 암호 알고리즘
일반적으로 ARIA대비 속도가 느린 것으로 알려짐
상세설명
 블록 암호 알고리즘
 키의 길이 128 고정
 DES-like(Feistel) structure
 SEED 히스토리
 1999년 한국정보보호진흥원(구,한국정보보호센터)과 ETRI주도하에 개발된 대칭키 방식의 알고리
즘으로 1999년 9월 정보통신단체표준(TTA)으로 제정되었다.
 2005년에 국제 표준화 기구인 ISO/IEC와 IETF의 블록 암호 알고리즘 표준으로 제정되었다.
 2009년 256 bit 를 지원하는 SEED 256 을 개발하였으나, 국제 표준은 아님
암호학 개론
24
기타 – 알고리즘별 상세정보 (4/8)
ARIA (Academy, Research Institute, Agency)
 ARIA 설명




대칭키 암호 알고리즘
국내 기술로 개발된 암호 알고리즘
경량 환경 및 하드웨어에서의 효율성 향상을 위해 제작되었으며, SEED 에 비해 빠른 성능 제공
상세설명
 블록 암호 알고리즘 (블록 크기 128 bit)
 키의 길이 확장가능 (128/192/256 bit) => AES와 동일 규격
 ARIA 히스토리
 2004년 12월 30일에 한국산업규격 KS 표준(KS X 1213) 으로 제정
(기술표준원고시 제2004-1149호)
 객관적인 안정성 및 효율성 평가를 위하여 NESSIE (New European Schemes for Signatures,
Integrity, and Encryption) 의 주관 기관인 벨기에 루벤대학에 의한 평가를 받았음
=> 평가 결과, Camellia보다 빠르고 AES에 근접하는 성능을 보임 (아래 SEED는 추정치)
CPU
ARIA
AES
Camellia
SEED
Pentium III
37.3
23.3
33.4
42.4
Pentium IV
49.0
30.5
83.9
81.3
ARIA 효율성 비교 (단위: cycle/byte)
암호학 개론
25
기타 – 알고리즘별 상세정보 (5/8)
Blowfish
 Blowfish 설명




대칭키 암호 알고리즘
구현이 간단하고 알고리즘의 안정성을 분석하기 쉬움
안정성과 성능의 요구에 따른 유연한 사용이 가능
상세 설명
 블록 암호 알고리즘 (블록 크기 64 bit)
 키 길이 (32~448)로 가변적으로 사용 가능
 Blowfish 히스토리
 1993년 브루스 슈나이어가 설계한 대칭형 블록 암호 알고리즘
 Blowfish 를 기반으로 AES 의 후보작인 Twofish 가 설계됨
암호학 개론
26
기타 – 알고리즘별 상세정보 (6/8)
MD5 (Message-Digest algorithm 5)
 MD5 설명




Hash 함수 (일방향 암호화)
RFC 1321 로 지정되었으며, MD4 를 대체하기 위하여 고안됨
현재는 안정성의 결함이 발견되어, 보안관련 용도로 쓰는 것을 권장하지 않음
상세설명
 Hash 결과값: 128 bit
 MD5 히스토리






1991 년 일방향 알고리즘 MD4를 대체하기 위하여 MIT의 Ronald Rivest 교수가 MD5를 고안함
1996년 설계상의 결함이 발견됨
2004년 심각한 암호화 결함이 발견됨
2006년 노트북 한 대의 계산 능력으로 1분 내에 결함이 발견됨
2008년 MD5의 결함을 이용해 SSL 인증서를 변조하는 것이 가능하다는 것이 발표됨
2013년 현재, MD5 알고리즘을 보안 관련 용도로 쓰는 것을 권장하지 않음
암호학 개론
27
기타 – 알고리즘별 상세정보 (7/8)
SHA (Secure Hash Algorithm)
 SHA 설명




Hash 함수 (일방향 암호화)
미국에서 설계한 미국 국가 표준
SHA 함수 군은 공식적으로 SHA로 불리지만, 종류에 따라 크게 SHA-0, SHA-1, SHA-2 로 구별됨
SHA-0 과 SHA-1 에 대한 공격이 발견되어, 보안적으로 SHA-2 를 사용할 것을 권장
알고리즘
Hash 결과값 (bit)
공격
SHA-0
160
발견됨
SHA-1
160
공격법만 존재
SHA-224
224
-
SHA-256
256
-
SHA-384
384
-
SHA-512
512
-
SHA-512/224
224
-
SHA-512/256
256
-
SHA-2
 SHA 히스토리





1993년
1995년
2001년
2005년
2012년
미국 표준기술연구소(NIST) 에서 Hash 함수의 표준으로 SHA-0 개발
SHA-0 을 폐기하고, SHA-1 을 출판
SHA-1 보다 보안성을 강화한 SHA-2 를 미국 보안 기관 (NSA) 에서 출판
SHA-1 에 대한 공격법이 발견됨
SHA-2 를 FIPS PUB 180-4 의 표준 Hash 알고리즘으로 추가
암호학 개론
28
기타 – 알고리즘별 상세정보 (8/8)
HAS-160 (Hash Algorithm Standard 160)
 HAS-160 설명





Hash 함수 (일방향 암호화)
한국정보진흥원이 개발한 암호화 Hash 함수
SHA-1 을 기반으로 개발
메시지 확장 과정이 기존 Hash 함수와 차이가 있어 현재까지 안정성 보장
상세정보
 Hash 결과값: 160 bit
 HAS-160 히스토리
 2000년 12월 국내 Hash 함수 표준 (TTAS.KO-12.0011/R1) 으로 채택
 2009년 “암호 알고리즘 및 키 길이 이용 안내서” 에 따르면 HAS-160은 메시지인증/키유도/난수
생성용 Hash 함수로는 권고하나, 단순Hash/전자서명용으로는 권고하지 않음
암호학 개론
29
감사합니다.
Penta Security Systems Inc.
Hanjin Shipping Bld. 20F, Seoul, Korea
TEL: 82-2-780-7728 FAX: 82-2-786-5281
www.pentasecurity.com
Penta Security Systems K.K.
東京都浜田区赤坂3-2-8アセンド赤坂3階
TEL: 81-3-5573-8191 FAX: 81-3-5573-8193
암호학 개론