본 글은 개인 공부 기록용으로 작성된 글이니 참고용으로 보시기 바랍니다.
틀린점이 있다면 댓글을 통해 알려주세요!
1. 암호화와 복호화 개념 및 종류
- 암호화 : 평문을 암호문으로 변환하는 과정
- ex. 평문("12345") > 암호화 > 암호문("efASDFzxcy")
- 복호화 : 암호문을 평문으로 변환하는 과정
- ex. 암호문 > 복호화 > 평문
- 암호화와 복호화는 크게 단방향 암호화, 양방향 암호화 두가지로 나뉨
- 양방향 암호화에서는 대칭형 or 비대칭형으로 나뉨
- 알고리즘과 운영모드는 DES, AES, RSA, ECDH, ECB, CBC, CTR, GCM, ECC, DH, ECDG, ECDSA 등이 있음.
2. 단방향 암호화
- 암호화 후 복호화를 할 수 없는 것이 특징
- 사용자 비밀번호, 사용자가 입력한 비밀번호를 암호화하여 DB에 저장이 될 때, 모든 접근자는 암호화된 코드를 다시 평문으로 볼 수 없음. 이는 해킹이 되어도 복호화가 매우 힘듬.
- 해시 방식이 대표적
- 해시함수는 임의의 길이의 데이터를 입력 받아 일정한 길이의 비트열로 반환 시켜주는 함수로 입력 값의 길이가 달라도 출력값은 언제나 고정된 길이로 반환되며, 동일한 값이 입력되면 언제나 동일한 출력값을 보장하는 함수를 의미.
3. 양방향 암호화
- 암호화와 복호화 모두 가능한 것이 특징
- 이메일, 번호 또는 전자 서명등 재사용성이 있는 정보는 암/복호화 모두 이루어져야 함
- 대칭키, 비대칭키 방식이 대표적
3.1 대칭형(비밀키 암호) 암호화
- 복호화 시 모두 동일한 키를 사용
- 대칭형 알고리즘
- 암호화, 복호화에 서로 동일한 키가 사용되는 암호화 방식
- 키를 비공개 하는 것이 특징
- 속도가 빠르지만 송신 키 배송 위험성이 존재.
- 대표적으로는 DES, AES가 있음
3.2 비대칭형(공개키 암호) 암호화
- 복호화에 서로 다른키를 사용
- 비대칭형 알고리즘
- 암호화와 복호화에 서로 다른 키가 사용되는 방식
- 공개키를 사용하는 것이 특징
- 대표적으로는 RSA가 있음
- 공개키 방식은 공인인증서, 전자서명 등에 사용하는 것이 특징
- 대칭형의 키 배송 문제를 보완하여 나온 알고리즘
- 대칭키인 DES, AES보다 속도가 느림
- 메시지 암호화에 쓰이지 않고 주로 키를 암호화 하는데 사용
- 비대칭형 암호는 중간자 공격이 약점.
- 중간자 공격이란, 해커가 중간에서 통신을 가로채어 수신자에게는 송신자 인척하고 송신자에게는 수신자인 척 해서 양쪽의 공개키와 실제 암호화에 사용되는 대칭키를 모두 얻어내는 기법을 의미
Reference