1 목포해양대해양컴퓨터공학과 Part 1. 보충자료 제 2 장. 대칭암호와메시지기밀성 제 3 장. 공개키암호와메시지인증
2 목포해양대해양컴퓨터공학과 SEED (1) 개요 1999 년한국정보보호진흥원 (KISA) 에의해개발된국내대칭키기반블록암호알고리즘 1999 년한국정보통신협회 (TTA) 에의해국내표준으로채택 현재전자상거래, 전자메일, 인터넷뱅킹, 데이터베이스암호화, 가상사설망 (VPN), 지적재산권보호등의다양한분야에서사용 대칭키기반블록암호알고리즘 128 비트의키를사용하는 128 비트블록단위로메시지를암호화 16 라운드의 Feistel 구조로구성 2 개의 S 박스사용 DES, MISTY 와비교하였을때우수한내부함수를내장 차분공격및선형공격에강함
3 목포해양대해양컴퓨터공학과 SEED (2) 구조 128 비트단위블록으로구성된평문메시지를 16 라운드의 Feistel 구조를거쳐암호화 128 비트의평문메시지블록은두개의 64 비트메시지블록으로분할 분할된메시지블록들은 F 함수, XOR(exclusive OR) 연산등을실행하는 16 회반복 16 라운드이후반복메시지블록들은통합되어 128 비트의암호문메시지블록이됨 각라운드에대해서는서로다른 64 비트의키가적용됨
4 목포해양대해양컴퓨터공학과 SEED (3) F 함수 SEED 에서블록단위메시지를암호화하는함수 수정된 Feistel 구조로구성 64 비트블록을분할한 32 비트블록 2 개 (C, D) 와 64 비트키에서분할된 2 개의라운드키 Ki, 0 와 Ki,1 을입력받아 XOR 연산, MOD (modulation) 연산, G 함수등을거친후 32 비트블록 2 개를출력 각라운드내에서사용되는 F 함수의구조
5 목포해양대해양컴퓨터공학과 SEED (4) G 함수와 S 박스 F 함수내에서사용되는 G 함수는 4 바이트입력데이터를 2 개의 S- box 를이용하여전치하여 4 바이트의출력값으로만드는기능을제공 S-box 는 DES 의경우와마찬가지로수열로구성 G 함수의구조
6 목포해양대해양컴퓨터공학과 ElGamal (1) 이산대수 (discrete logarithm) 문제를근간으로만들어진공개키암호알고리즘방식 이산대수문제 큰소수 p 로만들어진집합 Zp 상에서의원시원소를 g 라할때 g x y mod p 의 g 와 y 값을알고있어도 log g y x 를구하는것이어려움 g 를알고있는사용자가 y 를계산하는것은간단 사용자는큰소수 p 를선정하여 Zp 상의원시원소 g 와함께 p 를공개 송신자 A Zp 상의임의의원소 x A 를비밀정보로선택하여 y A g xa mod p 의공개정보 ya 을계산함 송신자 B Zp 상의임의의원소 x B 를비밀정보로선택하여 y B g xb mod p 의공개정보 yb 를계산함 송신자 A 와수신자 B 의 y A, y B, p, q 를공개목록에등록함 y A 와 y B 가송신자 A 와수신자 B 의공개암호화키 Ke 이고 x A 와 x B 가송신자 A 와수신자 B 의비밀복호화키 Kd 가됨
7 목포해양대해양컴퓨터공학과 ElGamal (2) 송신자 A 가평문 M 을암호화하여암호문 C 를수신자 B 에게전송하기위해서, Z p 상에서임의의난수 r Z p-1 을선정하여수신자 B 의공개암호화키 y B 로 K y r mod p B 를계산 암호문 C C 1 y r mod p 와 C 2 KM mod p 을계산한다음 C = ( C 1, C 2 ) 가됨 수신자 B 의평문복호화과정은암호문 C 1 에수신자 B 자신의비밀복호화키 x B 를누승하여 K C x b mod p1 를구한다음 M C 2 /K mod p 로평문을구함
8 목포해양대해양컴퓨터공학과 타원곡선 (EC) 대개실수와유리수와같은유한대영역에대해정의되고이산대수문제에대한아날로그를구현 하나의곡선 무한한싱글포인트 O 를갖는 y 2 = x 3 + ax + b 타원곡선의공간들 덧셈은모듈러곱셈의카운터파트 곱셈은모듈러멱승연산의카운터파트 하나의타원곡선상에주어진두지점 P 와 R 에대해 K=PR 을만족하는 K 를찾아낸다는것은타원곡선이산대수문제로알려진어려운문제임 작은키값을갖고도높은보안수준을이룰수있음
공개키암호화방식의예 9 목포해양대해양컴퓨터공학과
공개키암호알고리즘비교 RSA ElGamal ECC 수학적문제소인수분해이산대수타원곡선이산대수 키크기크다크다작다 속도비교적느리다비교적느리다빠르다 암호문크기 - 평문의두배 - 메모리 ElGamal 에비해적음 가장많이차지 가장적게차지 비용많이소요많이소요적게소요 통신유선유선무선 10
PKCS(Public Key Cryptography Standards) 미국의 RSA 사가개발한암호작성시스템 애플, 마이크로소프트, DEC, 로터스, 선, MIT 등컨소시엄공동으로개발 PKCS 는인터넷상에서안전한정보교환을이루기위해산업계내부에서사용되는일련의비공식표준프로토콜 PKCS#1 ~ PKCS#15 PKCS#1 : RSA Cryptography Standard. PKCS#2 : PKCS#1 에통합됨. PKCS#3 : Diffie-Hellman Key Agreement Standard. PKCS#4 : PKCS#1 에통합됨. PKCS#5 : Password-based Encryption Standard. PKCS#6 : Extended-Certificate Syntax Standard. PKCS#7 : Cryptographic Message Syntax Standard. PKCS#8 : Private-Key Information Syntax Standard. PKCS#9 : Selected Attribute Types. PKCS#10 : Certification Request Syntax Standard. PKCS#11 : Cryptographic Token Interface Standard. PKCS#12 : Personal Information Exchange Syntax Standard. PKCS#13 : Elliptic Curve Cryptography Standard. PKCS#14 : Pseudo-random Number Generation. PKCS#15 : Cryptographic Token Information Format Standard 11
대칭키와공개키암호방식의 비교 (1) 공개키 (public key) 암호의주요한장점 강화된보안성과편리함 전자서명기법을제공 부인방지 (Non- Reputation) 공개키인증에서는사용자가스스로자신의개인키보호에대한전적인책임을짐 공개키암호법의단점 암호화속도 전자봉투 (Digital Envelope) : 공개키시스템은대형파일이나메시지를암호화하는데사용되는비밀키의암호화에사용 가장공격 (Impersonation) 에취약 침입자는인증기관 (Certification Authority) 을공격하여획득한공개키인증서를사용해다른사용자인척함 12
대칭키와공개키암호방식의 비교 (2) 항목대칭키암호방식공개키암호방식 키의상호관계암호화키 = 복호화키암호화키 복호화키 암호화키비밀공개 복호화키비밀비밀 암호알고리즘 비밀 / 공개 공개 대표적인예 DES RSA 비밀키전송 필요 불필요 키개수 n(n-1)/2 2n 안전한인증 곤란 용이 암호화속도 고속 저속 경제성높다낮다 전자서명복잡간단 13
국산암호알고리즘 (1) SEED 전자상거래, 금융, 무선통신등에서전송되는개인정보와같은중요한정보를보호하기위해 1999 년 2 월한국인터넷진흥원과국내암호전문가들이순수국내기술로개발한 128 비트블록암호알고리즘 1999 년에는 128 비트키를지원하는 SEED 128 을개발 SEED 128 은 1999 년 9 월정보통신단체표준 (TTA) 으로제정 2005 년에는국제표준화기구인 ISO/IEC 국제블록암호알고리즘, IETF 표준으로제정 2009 년암호알고리즘보안강화를위해 256 비트키를지원하는 SEED 256 을개발 14
국산암호알고리즘 (2) HIGHT(HIGh security and light weight) RFID, USN 등과같이저전력ㆍ경량화를요구하는컴퓨팅환경에서기밀성을제공 2005 년 KISA, ETRI 부설연구소및고려대가공동으로개발한 64 비트블록암호알고리즘 소프트웨어및하드웨어구현성능비교결과 알고리즘 P3/WinXP/VC CPU/OS/Complier P4/WinXP/VC HIGHT 88.882 72.413 AES1 329.452 234.765 2006 년 12 월정보통신단체표준 (TTA) 으로제정 2010 년 12 월 ISO/IEC 국제블록암호알고리즘표준으로제정 15
국산암호알고리즘 (3) ARIA ARIA 라는이름은 Academy( 학계 ), Research Institute( 연구소 ), Agency( 정부기관 ) 의첫글자들을딴것 경량환경및하드웨어구현을위해최적화된, Involutional SPN 구조를갖는범용블록암호알고리즘 ARIA 가사용하는대부분의연산은 XOR 과같은단순한바이트단위연산으로구성 주요특성 블록크기 : 128 비트 키크기 : 128/192/256 비트 (AES 와동일규격 ) 전체구조 : Involutional Substitution-Permutation Network 라운드수 : 12/14/16 ( 키크기에따라결정됨 ) 2004 년에국가표준기본법에의거, 국가표준 (KS) 으로지정 16
국산암호알고리즘 (4) LEA(Lightweight Encryption Algorithm) 빅데이터, 클라우드등고속환경및모바일기기등경량환경에서기밀성을제공하기위해개발된 128 비트블록암호알고리즘 주요특성 개발연도 : 2013 년 알고리즘구분 : 128 비트블록암호 키길이 : 128 비트, 192 비트또는 256 비트 구조 : ARX(Addition, Rotation, Xor) 기반 GFN(Generalized Feistel Network) 성능 : 다양한 SW 환경에서국제표준암호 AES 대비 1.5 배 ~ 2 배성능 LEA 규격및운영모드는국내 TTA 표준으로제정 2015 년 6 월암호모듈검증제도검증대상알고리즘에포함 17
국산암호알고리즘 (5) 해쉬함수 LSH(Lightweight Secure Hash) 메시지인증, 사용자인증, 전자서명등다양한암호응용분야에활용가능한암호학적해시함수 개발연도 : 2014 년 알고리즘구분 : 해시함수 출력길이 : 224 비트, 256 비트, 384 비트또는 512 비트 구조 : Wide-pipe Merkle Damgård 구조 다양한 SW 환경에서국제표준 (SHA2/3) 대비 2 배이상성능 국내 TTA 표준으로제정 18
정보보호에서의해쉬함수 이용 데이터무결성을제공하는알고리즘중하나 메시지인증알고리즘 단방향해쉬함수 임의의길이의메시지를받아들여특정길이의출력값생성 출력값비교를통해무결성확인 19
해쉬함수의조건 H 는임의의크기의입력 M 을적용할수있어야한다. H 는일정크기의출력 h = H(M) 을만들어야한다. H 와 M 이주어졌을때 h = H(M) 계산이쉬워야한다 H 와 h 가주어졌을때 M 을구하는계산이거의불가능해야 한다.(one way property) H 가주어졌을때같은출력을갖는두입력을착지 어려워야한다. ( 충돌회피성 )(weak collision resistance) 20
전자서명의조건 위조불가 서명자만이서명생성가능 서명자인증 서명자의신분확인가능 재사용불가 다른문서의서명으로사용불가능 변경불가 서명된문서내용변경불가 부인불가 서명한사실부인불가 21
디지털서명알고리즘 공개키암호방식을이용한서명방식 서명자가비밀키로서명을생성하고, 검증자가공개키로확인하는시스템 직접서명방식 송신자와수신자간에직접서명및검증 중계서명방식 중재자를통해확인 통신전에정보공유가필요없고, 외부로부터공격에강하며, 시간확인까지가능 22
RSA 서명방식 가장먼저실용화 서명알고리즘의안전도는 RSA 암호방식안전도와동일 가장보편적으로사용 알고리즘 키생성단계 RSA 암호알고리즘과동일 서명단계 메시지 M 의해쉬값 H 를구하여서명값계산 S = H da mod n A 원본메시지 M 과같이전송 검증단계 원본메시지에대한 H 계산 공개키로 S 의 H 계산후비교 23
그외서명방식 ElGamal 서명알고리즘 키생성 서명 서명검증 DSS(Digital Signature Standard) 서명알고리즘 ElGamal 서명기술응용 NIST 에의해 1994 년 12 월표준채택 ElGamal(512 비트 ) 보다짧은서명값 (160 비트 ) 서명 서명검증단계 타원곡선디지털서명알고리즘 EC-DSA 1985 년 N.Koblitz 와 V.S Miller 가 RSA 방식의대안으로제시 동일한안전성을실현하는데 RSA 1024 비트, ECC 160 비트 EC-KCDSA 24
해쉬함수의응용 (1) 25
해쉬함수의응용 (2) 26
해쉬함수의응용 (3) 27
해쉬함수의응용 (4) 28
해쉬함수의응용 (5) 29
해쉬함수의응용 (6) 30
해쉬함수 (1) MD5 (Message Digest Version 5) 512 비트입력 128 비트출력 충돌회피성에대한문제로인해기존응용과호환으로만사용 제한 MD4 (Message Digest Version 4) 1990년 Rivest가개발 메시지를 128비트로압축 MD5보다약간빠르고, 안전성측면에서는다소떨어짐 MD2 (Message Digest Version 2) PEM 프로토콜에응용 보안성은바이트의 random permutation 에달려있음 31 다른함수보다다소느리지만취약부분은아직발견되지않음
해쉬함수 (2) RIPE-MD 유럽의 RIPE 프로젝트에서개발된해쉬함수 SHA-1 못지않은안전성을가진것으로평가되며, 128, 160, 256, 320 비트해쉬출력값을제공 HAVAL 1992 년 Zheng 에의해개발 출력값길이가가변 MD5 를변형하여 1024 비트블록으로수행 다양한라운드수와 7 개의가변함수, 128, 160, 192, 224, 256 비트길이해쉬값출력가능 32
해쉬함수 (3) SHA (Secure Hash Algorithm) NIST 에의해 1993 년 FIPS PUB 180 으로표준화 MD4 와유사하게설계 512 비트단위로메시지를입력하여 160 비트해쉬값출력 ( 입력전 메시지길이를 512 비트정수배로조정 ) SHA-1( 전자서명용 ) 과 MD5 비교 각각의키길이의차이가있음 (160 : 128) 공격대응면에서 SHA-1이더강하다 ( 길이차이 ) 안전성 : SHA-1이비교적더안전 속도 : 연산이많아 SHA-1이다소늦다 단순성과간결성 : 두알고리즘모두비교적간단하며적용용이 33 바이트순서 : (big-endian : little-endian)
해쉬함수 (4) 34
해쉬함수 (5) 일반적으로 MD5 가많이사용되고있음 취약성이발견되어제한적사용권고 SHA-1 은디지털서명에사용하도록제안됨 AES 의 128, 192, 256 비트에적용하도록 SHA256, SHA382, SHA512 로확장 RIPE-MD-128, RIPE-MD-160, RIPE-MD-256, RIPE-MD-320 은 MD5 를대신할수있도록제안 RIPE-MD-128 은충돌저항성문제가있음 RIPE-MD-160 은효율성은낮지만높은안전성으로널리사용중 Tiger 는 64 비트환경에최적화됨 35