컴퓨터네트워크 13 장. 네트워크보안 (2) - 암호화시스템 1
이번시간의학습목표 암호화알고리즘인 DES, RSA 의구조이해 전자서명의필요성과방법이해 2
대칭키암호방식 (1) 암호화와복호화에하나의키를이용 공통키또는대칭키암호방식이라고지칭 이때의키를비밀키 (secret key) 라고지칭 3
대칭키암호방식 (2) 암호화복호화를수행하는두사용자가동일한키를가지고있어야함 Pre-shared key 온라인상에서구두또는메일, 전화로교환 : 수동키 블록암호와스트림암호로분류 대표적알고리즘 : DES, 3DES, SEED, RC2, RC5, AES(Rijndael) 4
대칭키암호 (3) 블록암호 특정블록크기로암호화 / 복호화를수행하여스트림암호에비해속도가빠름 블록간의연관성때문에오류발생시전체데이터에영향을미침 스트림암호 1970 년대초유럽에서연구 비밀키를상호공유하고, 사용한비밀키는재사용되지않는특징 비트열에오류가발생해도오류확산이없다는장점 1 비트씩연산을하므로수행속도가느리다는것과비밀키를안전하게전송해야하는단점 5
DES 알고리즘 대칭키알고리즘 동작방식 암호키 : 56 비트 64 비트단위로암호화 16 단계의암호화과정을수행 16 + 2 단계 6
DES 의안전성 키가 56 비트이므로 2 56 개키존재 1977 년 Diffe-Hellman 에의해 1,000,000 대의병렬컴퓨터로, 1usec 에 1 번 encryption 이가능하다면 10 시간이내찾을수있다고제안 Wiener 에의해 Known Plain-text Attack 으로정확히분석 1997 년 DES 키를찾는프로젝트에서 96 일만에키를찾아냄 3DES 로키길이와라운드수를 3 배로증가시킴 7
SEED 국내대표적인암호화알고리즘 DES 와같은 Feistel 구조 128 비트키 128 비트고정길이입출력 Known Attack 에강한라운드기능 4 개의 8x8 S-Box XOR 과 Modular 의혼합된연산 16 라운드수행 8
AES 1998 년사용기한이만료된 DES 를대체할알고리즘으로공모 벨기에에서개발한 Rijndael 이선정되어 2000 년 10 월표준으로선정 특징 가변블록길이 (128, 192, 256) 지원 키도 128, 192, 256 비트사용 키길이에의해라운드결정 Feistel 구조가아닌레이어 (layer) 로구성 선형혼합 (Linear mixing) : 라운드 비선형 (Non-linear) : S-Box 키추가 (Key addition) : 라운드키의 XOR 9
대칭키알고리즘비교 DES SEED AES 개발 미국 한국 벨기에 구조 Feistel 구조 Feistel 구조 Layer 크기 64 128 variable 키길이 56(DES)/168(3DES) 128 128, 192, 256, 키취약성 yes no no 암호 / 복호화방식 Block Block Block 10
비대칭키암호 1976 년 Diffie 와 Hellman 에의해키분배방식알고리즘발표이후많은알고리즘이제안됨 두키가서로다르므로 비대칭 이라고부르며, 두키가공개키와비밀키로명명되어 공개키암호 라고부름 비밀키보관에따라안전도가좌우되고, 통신상대의확인에디지털서명사용이가능하고, 키관리에뛰어남 상대적으로암호화속도가느려직접데이터를암호화하는데에는사용되지않음 11
RSA 알고리즘 (1) RSA(Rivest, Shamir, Adelman) 1978 년 MIT 의 Rivest, Shamir, Adelman 에의해제안 비대칭키의공개키알고리즘 공개키 : 원문서를암호화하는용도로사용 ( 모든사람이암호화과정수행 ) 비공개키 : 암호문을해독하는용도로사용 ( 특정인만해독과정수행 ) 12
암호화과정 RSA 알고리즘 (2) 소인수분해의복잡성을이용하여구현 가입자는두개의소수 p, q 선택하여 n = p q 계산 p, q 를알고있는사용자는 n 을계산하기쉽지만, n 만가지고는 p, q 를유추하기어려움 13
RSA 알고리즘 (3) 암호화 복호화 14
RSA 알고리즘 (4) RSA 암호의안전성 소수 p 와 n 에달려있음 공개키 e 와 n 으로비밀키 d 를찾을수있으면쉽게해독됨 n 으로부터 p,q 를찾을수있으면 n 의소인수분해가가능하고, 오일러함수를찾게되어 e 로부터 d 를찾아낼수있음 부가조건 p 와 q 는거의같은크기의소수 p - 1 과 q 1 은큰소수를인수로가져야함 p 1 과 q 1 의최대공약수는작아야함 현재까지 p, q 의크기가 100 자리이고, n 이 200 자리인합성수의경우 n 의소인수분해가거의불가능한것으로알려짐 e 와 d 의크기가너무작아도안되지만, 지나치게크면연산양이많아져서속도가저하됨 상용장비의경우 512 비트의 n, 약 155 자리수 연산부하증가로상용화에어려움이있음 15
ElGamal 그외비대칭키알고리즘 이산대수문제를근간으로만들어진공개키기반암호알고리즘 ECC ElGamal 의이산대수문제대신타원곡선이산대수문제를응용한것 16
비대칭키알고리즘비교 RSA ElGamal ECC 수학적문제 소인수분해 이산대수 타원곡선이산대수 키크기 크다 크다 작다 속도 비교적느리다 비교적느리다 빠르다 암호문크기 - 평문의두배 - 메모리 ElGamal에비해적음 가장많이차지 가장적게차지 비용 많이소요 많이소요 적게소요 통신 유선 유선 무선 17
대칭키와비대칭키알고리즘비교 대칭키암호화 / 복호화에동일한키사용수신자와송신자의키교환필요공유한키를비밀로유지디지털서명불가능속도가빠름 비대칭키 암호화 / 복호화에각기다른키사용 수신자와송신자는연관된쌍중하나를알아야함 키쌍중하나 ( 개인키 ) 를비밀로유지 공개키를이용한디지털서명가능 속도가느림 18
전자서명의조건 위조불가 전자서명 (1) 서명자만이서명생성가능 서명자인증 서명자의신분확인가능 재사용불가 다른문서의서명으로사용불가능 변경불가 서명된문서내용변경불가 부인불가 서명한사실부인불가 19
전자서명알고리즘 전자서명 (2) 공개키암호방식을이용한서명방식 서명자가비밀키로서명을생성하고, 검증자가공개키로확인하는시스템 직접서명방식 송신자와수신자간에직접서명및검증 중계서명방식 중재자를통해확인 통신전에정보공유가필요없고, 외부로부터공격에강하며, 시간확인까지가능 20
전자서명 (3) 해쉬함수와비대칭키알고리즘결합하여사용 21
해쉬함수 (1) MD5 (Message Digest Version 5) 512 비트입력 128 비트출력 충돌회피성에대한문제로인해기존응용과호환으로만사용제한 MD4 (Message Digest Version 4) 1990 년 Rivest 가개발 메시지를 128 비트로압축 MD5 보다약간빠르고, 안전성측면에서는다소떨어짐 SHA (Secure Hash Algorithm) NIST 에의해 1993 년 FIPS PUB 180 으로표준화 MD4 와유사하게설계 512 비트단위로메시지를입력하여 160 비트해쉬값출력 ( 입력전메시지길이를 512 비트정수배로조정 ) 22
해쉬함수 (2) 일반적으로 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 은효율성은낮지만높은안전성으로널리사용중 23
질의 / 응답 24