오늘은 암호화에 대해서 포스팅을 해보려고합니다
저는 네트워크 보안 솔루션 회사에 입사한지 1년차 주니어 개발자입니다. 업무를 배워가던 도중 암호화를 해야하는 구체적인 이유와 기준에 대해 궁금증이 생겼고, 이는 그것을 해소하기위한 포스팅입니다.
암호화의 기본 개념과 구체적인 기준에 대해 살펴보고 암호화 기술의 종류까지 살펴보겠습니다.
1. 개요
1.1 암호화란?
개인정보취급자의 실수 또는 해커의 공격 등으로 인해 개인정보가 비인가자에게 노출되더라도 그 내용에 대한 확인을 어렵게 하는 보안 기술입니다.
1.2 암호화 해야하는 개인정보
정보통신망법 | 개인정보보호법 | 암호화 기술 | |
비밀번호 | O | O | 단방향 알고리즘 (해쉬함수) |
바이오 정보 | O | O | 블록암호 |
주민등록번호 | O | O | |
신용카드번호 | O | - | |
계좌번호 | O | - | |
여권번호 | - | O | |
운전면허번호 | - | O |
* 정보통신망법, 개인정보보호법 (2019년 기준)
2. 용어
2.1 평문
- 해독 가능한 형태의 텍스트 ex) solt 블로그
2.2 암호문
- 해독 불가능한 형태의 텍스트 ex) @!FD15*&AL
2.3 암호화 (Encryption)
- 평문을 암호문으로 변환하는 과정 ex) 평문 -> 암호화 -> 암호문
2.4 복호화 (Decryption)
- 암호문을 평문으로 변환하는 과정 ex) 암호문 -> 복호화 -> 평문
3. 암호화 기술의 분류
3.1 단방향
3.1.1 해쉬 알고리즘
- 정의 : 임의의 길이의 데이터를 입력받아서 일정한 길이의 비트열로 암호화하는 함수
- 장단점 : 암호화는 가능하지만 복호화는 절대로 불가능
- 주용도 : 패스워드, 디지털 서명, 블록체인
- 종류 : MD5 , SHA1, SHA2 등
3.2 양방향
3.2.1 대칭키 알고리즘 [Symmetric Encryption]
- 정의 : 암호화와 복호화 시 동일한 키를 사용하는 암호방식 (a.k.a 비밀키 알고리즘)
- 장단점
1) 장점 : bit 수가 적고 수행시간이 짧음
2) 단점 : 다수와 통신 시 key의 수가 증가, key의 비밀을 유지하고 관리해야함
- 주용도 : 파일/이메일 암호화
- 종류 : DES , AES, (128-256bit) SEED 등
3.2.2 비대칭키 알고리즘 [Asymmetric Encryption]
- 정의 (a.k.a 공개키 알고리즘)
= 암호화와 복호화 시 다른 키를 사용하는 암호방식 (public key/private key)
= public key로 암호화된 데이터는 private key로만 복호화 가능 (인터넷뱅킹)
= private key로 암호화된 데이터는 public key로만 복호화 가능 (디지털 서명)
[인터넷 뱅킹 예시]
1) A(고객)가 B(은행)와 통신하기 위해 public key, private key 를 생성하고
2) B에게 public key를 전달
3) B는 해당 키로 암호화된 데이터를 전송
4) A는 자신만 가지고 있는 private key 로 해당 암호문을 복호화
- 장단점
1) 장점 : 다수와 통신 시 key의 수가 증가하지 않음 (대칭키 알고리즘의 보완)
2) 단점 : public key를 인증하기 위한 인증서가 필요
* 해커가 A로 위장하고 public key 를 B에게 데이터 전송하는 경우를 대비
- 주용도 : 인터넷 뱅킹, 디지털 서명
- 종류 : RSA, ECC, DSS 등
'Computer Science > WEB' 카테고리의 다른 글
[보안] PKI 개념과 구조 (0) | 2020.09.29 |
---|---|
VPN과 SDP의 이해 (0) | 2020.06.06 |
컴퓨터 언어의 종류 (computer language) (0) | 2018.10.30 |
Servlet과 JSP의 개념 (servlet container 구성) (0) | 2018.09.17 |
웹 어플리케이션 시스템의 구성 (architecture) (0) | 2018.09.12 |