제3과목 14. 암호 알고리즘 - 비밀키와 공개키
페이지 정보
본문
14. 암호 알고리즘 - 비밀키와 공개키
암호 알고리즘은 크게 비밀키 알고리즘과 공개키 알고리즘의 두가지로 구분할 수 있으며 비밀키 알고리즘은 대칭키 알고리즘 또는 단일키 알고리즘으로도 표현되며 또 공개키 알고리즘은 비대칭키 알고리즘으로도 표현된다.
⑴ 비밀키(대칭키 또는 단일키) 알고리즘
① 비밀키 알고리즘
송신자의 암호화 과정과 수신자의 복호화 과정에서 동일한 키가 사용되는 방식의 알고리즘.
키가 없으면 즉 키를 모르면 암호문을 복호화할 수 없다. 즉 알고리즘과 암호문만으로는 평문을 알아낼 수 없다.
② 비밀키 알고리즘의 사용 프로세스
A(송신자)가 B(수신자)에게 데이터를 암호화해서 전송하려할 경우 그냥 A와 B간에 교환해둔 비밀키로 암호화해서 전송하면 B는 동일한 키로 복호화하면 된다.
③ 비밀키 알고리즘의 장점
■ 공개키 알고리즘에 비해 키의 크기가 상대적으로 작아서 속도가 빠르고 효율적이다.
■ 개별 시스템의 상황에 적합한 알고리즘의 개발이 수월하다.
④ 비밀키 알고리즘의 단점
■ 통신하고자 하는 상대끼리 같은 키를 공유하기 위해서는 반드시 그 키를 비공개채널을 이용해서 전달해야한다.
■ 키의 숫자가 많아 키 관리가 어렵다. 비밀키 알고리즘은 완전하고 안전한 암호화 통신을 위해 정보통신의 상대방 즉 송수신자가 동일하고 유일한 키를 보유해야 한다. 따라서 정보통신 당사자들 모두가 그 숫자만큼의 키를 보유하여야 하므로 키의 관리가 어렵다. 비밀키 알고리즘으로 통신하는 조직의 경우 사용되는 총 키의 개수 (n은 조직원의 수)는 n(n-1)이다. 즉 조직원이 100명이면 100*99 즉 최대 9900개의 키가 사용될 수 있다. (공개키 알고리즘은 2n개)
■ 키가 예측되는 경우 암호문은 그대로 노출된다. 따라서 키를 자주 변경해주어야 한다.
⑤ 비밀키 알고리즘의 구분
a. 블록 암호 알고리즘
■ 평문을 N비트씩 나누어서 특정한 함수에 키와 함께 대입하여 암호문을 작성한다.
■ 혼동(Confusion)과 확산(Diffusion)을 주로 활용하여 암호문을 작성한다.
■ 블록 암호 알고리즘의 방식에는 Fiestel 구조, SPN 구조 등이 있다.
■ 대표적인 블록 암호 알고리즘에는 Fiestel 구조를 활용한 DES가 있다.
b. 스트림 암호 알고리즘
■ 평문을 2진수로 늘어놓은 후 난수 또는 의사 난수와 XOR을 해서 암호문을 작성한다.
■ 난수 방식, 의사 난수 방식
■ 스트림 암호 알고리즘의 방식에는 One Time Pad 구조, Linear Feedback Shift Register 구조 등이 있다.
■ 스트림 암호 알고리즘은 블록 암호 알고리즘에 비해 많이 구현되지는 않았으며 비트단위로 처리되므로 블록 암호에 비해서 느리고 적극적인 공격에는 상당히 취약하다는 문제를 안고 있다.
⑥ 비밀키 알고리즘의 종류
DES, IDEA, RC2, RC4, AES(128bit), SEED(국산암호 128bit)
⑵ 공개키(비대칭키) 알고리즘
① 공개키 알고리즘의 정의
공개키 알고리즘은 암호화에 사용되는 키와 복호화에 사용되는 키가 서로 다른 암호화 알고리즘으로 두 개의 키를 생성하여 그 중 하나를 공개키로 공개하고 나머지 하나를 비밀키로 자신이 보관하여 사용하는 방식이다.
② 공개키 알고리즘의 사용 프로세스
a. 기밀성의 확보를 위한 공개키 프로세스
■ A는 키 데이터베이스에서 B의 공개키(public key)를 찾아서 데이터를 암호화하고 전송한다.
■ B는 공개키에 대응하는 비밀키 즉 자기가 보관하고 있는 개인키(private key)를 이용하여 데이터를 복호화한다.
b. 인증을 위한 공개키 프로세스 (서명과 검증)
■ A가 자신의 비밀키를 이용해서 평문을 암호화(=서명)해서 B에게 전송한다.
■ B는 키 데이터베이스에서 A의 공개키를 찾아 복호화(=검증)함으로써 전송된 암호문이 A가 보낸 것임을 신뢰할 수 있게 된다.
■ 물론 이 경우 데이터 자체의 비밀성은 완벽하게 보장되지 않는다.
■ 인증을 위한 공개키 프로세스가 바로 공인인증서를 사용하는 전자서명 방식의 PKI의 방식이다.
③ 공개키 알고리즘의 장단점
a. 장점
공개키 알고리즘은 비밀키 알고리즘에 비해 조직 전체가 사용하는 키의 수가 적다.
b. 단점
비밀키 알고리즘에 비해 키의 크기가 상대적으로 크기 때문에 데이터 처리 속도 즉 암호화와 복호화 속도가 느리다.
④ 공개키 알고리즘의 종류
Diffie-Helman, RSA, ECC(타원곡선암호), DSA or DSS, ElGamal, KCDSA