양방향 암호화 방식인 대칭키와 비대칭키/공개키를 알아보자
대칭키 암호화 방식(symmetric-key security method): 암호화, 복호화에 사용하는 키가 동일하다.
비대칭키/공개키 암호화 방식(asymmetric-key security method): 암호화, 복호화에 사용하는 키가 서로 다르다.
양방향 암호화 방식 중 널리 사용하는 대칭키 암호화 방식은 암호화와 복호화에 같은 암호 키를 사용하는 알고리즘이다.
Session Key, Secret Key, Shared Key, 대칭키, 단용키 라고도 한다.
장점
단점
블록 암호(block cipher) 방식: 기밀성 있는 정보를 정해진 블록 단위로 암호화 하는 대칭키 암호 시스템으로 만약 암호화하려는 정보가 블록 길이보다 길 경우 특정한 운용 모드가 사용된다.
스트림 암호(stream cipher) 방식: 이진화된 평문 스트림과 이진 키스트림의 배타적 논리합(XOR) 연산으로 암호문을 생성하는 방식이다.
비대칭키/공개키는 암호화할 때와 복호화할 때의 키를 서로 다른 키로 사용하는 암호화 알고리즘이다.
외부에 절대 노출되어서는 안되는 개인키(Private Key)와 공개적으로 개방되어 있는 공개키(Public Key)가 쌍으로 이루어진 형태이다.
장점
단점
부인 방지란 송신자나 수신자가 메세지를 주고받은 사실을 부인하지 못하도록 방지하는 것을 말한다.
예를 들어 A 가 B 에게 돈을 빌린 후 '차용증'에 서명했는데, 후에 A 는 돈을 빌리지 않았으며 차용증 역시 자신의 서명이 아니라고 부인 하는 경우를 생각해 볼 수 있다.
이 때, B 는 문서에 있는 서명이 A 의 것이 맞다는 것을 확인하는 것이 '부인 방지'이다.
비대칭키/공개키 암호화 방식에서는 본질적으로 '발행자의 증명'과 동일한 절차로 이루어진다.
이 '암호화된 문서'는 A 의 공개키로만 해독이 가능하므로, 이 '암호화된 문서'는 A 만이 발행할 수 있다는 증거가 된다. 또한, 변조되지 않았음도 동시에 증명할 수 있다.
비대칭키/공개키를 사용할 경우 2가지 암호학적 문제를 해결할 수 있다.
공개키 암호화 → 개인키 암호화: 데이터를 안전하게 전송할 수 있는 보안 관점
개인키 암호화 → 공개키 암호화: 신뢰할 수 있는 단체라는 것을 인증하는 관점
사용자가 데이터를 서버로 보내는 과정에서 개인정보와 같은 중요 데이터의 경우 암호화해서 보내야 한다.
그래서 서버만 유일하게 가지고 있는 개인키로 복호화할 수 있도록 하고 서버의 공개키로 암호화하여 해서 보내도록 하면 데이터를 안전하게 전송할 수 있다.
즉, 제 3자가 클라이언트로부터 전송하는 데이터를 볼 수 없어 데이터 보안을 강화할 수 있다.
이러한 방식으로 공인 인증 기관으로부터 서명 받은 서버의 인증서가 공인 인증 기관의 공개키로 복호화가 가능하다는 것을 통해 해당 기관이 인증 받은 단체라는 것을 확인할 수 있다.
위와 같은 방식으로 대칭키와 비대칭키를 적절하게 혼합해 사용함으로써 2가지 방식의 장점을 적절하게 취할 수 있다.
대칭키 암호화 방식 | 비대칭키 암호화 방식 | |
---|---|---|
개념 | - 암호키(비밀키)=복호키(비밀키) - 대칭구조 | - 암호키(공개키)와 복호키(개인키)가 다르며, 이들 중 복호화키만 비밀로 간직 - 비대칭 구조를 가짐 |
특징 | - 대량의 Data 암호화 유리 | - 전자서명, 공인인증서 등 다양한 이용 |
장점 | - 연산속도가 빠르고 구현이 용이 - 일반적으로 같은 양의 데이터를 암호화하기 위한 연산이 공개키 암호보다 현저히 빠름 - 쉽게 기밀성 제공 | - 키 분배/키 관리가 용이 - 사용자의 증가에 따라 관리할 키의 개수가 상대적으로 적음 - 키 변화의 빈도가 적음(공개키의 복호화키는 길고 복잡하기 때문) - 기밀성, 무결성을 지원하고 특히 부인 방지 기능을 제공 |
단점 | - 키관리가 어렵 - 무결성 지원이 부분적으로만 가능하며, 부인방지 기능을 제공하지 못함 | - 키의 길이가 길고 연산속도가 느림 |
알고리즘 | SEED, HIGHT, ARIA, LEA, DES, AES, RC4, A5/1, A5/2, A5/3 | RSA, Diffie-Hellman, ECC, digital signature |
https://velog.io/@gs0351/%EB%8C%80%EC%B9%AD%ED%82%A4-vs-%EA%B3%B5%EA%B0%9C%ED%82%A4%EB%B9%84%EB%8C%80%EC%B9%AD%ED%82%A4
https://myjamong.tistory.com/293
https://wooono.tistory.com/106
http://wiki.hash.kr/index.php/%EB%8C%80%EC%B9%AD%ED%82%A4
http://wiki.hash.kr/index.php/%EB%B9%84%EB%8C%80%EC%B9%AD%ED%82%A4
https://retro-blue.tistory.com/40
보안은 3가지 요소가 결합되어야 높은 안정성을 형성한다.
보안의 3가지 요소는 아래와 같다.
잘 보고 갑니다!