정의
평문(Plaintext) - 해독 가능한 형태의 메시지
암호문(Ciphertext) - 해독 불가능한 형태의 메시지
암호화(Encryption) - 평문을 암호문으로 변환하는 과정
복호화(Decryption) - 암호문을 평문으로 변환하는 과정
양방향 암호화
암호화와 복호화 과정을 통해 송, 수신 간 주고받는 메시지를 안전하게 암, 복호화하는 과정이다.
1. 대칭키 암호화
암호화와 복호화 시 같은 키를 사용하며, 계산속도가 빠르다.
종류 : AES128, AES256, SEED(국내 표준)
문제점 : 수신 측에 키를 전달하는 과정에서 유출될 우려가 있다.
2. 비대칭키 암호화
암호화와 복호화 시 서로 다른 키를 사용한다.
공개키(Public Key)와 개인키(Private Key)가 한 쌍으로 이루어지고 있다.
송, 수신자는 개인 별로 공개키와 개인키를 생성한다.
공개키와 개인키는 다음과 같은 특성을 가진다.
A의 공개키를 이용하여 암호화된 데이터는 A의 개인키로만 복호화가 가능하다.
A의 개인키를 이용하여 암호화된 데이터는 A의 공개키로만 복호화가 가능하다.
통신 방식
암호 모드 - 송신자 공개키로 암호화 -> 송신자 개인키로 복호화
소량의 메시지 암호화 목적, 주로 키 교환의 용도로 사용
인증 모드 - 송신자 개인키로 암호화 -> 송신자 공개키로 복호화
메시지를 인증(부인방지)하는 것이 목적
종류 : RSA(대표적 공개키 알고리즘), DSA(전자서명 알고리즘 표준), ECC
단방향 암호화
해싱(Hashing)을 이용한 암호화 방식으로 평문을 암호문으로 암호화는 가능하지만 암호문을 평문으로 복호화하는 것은 불가능하다.
데이터의 진위여부는 확인하고 싶으나, 본 데이터의 Privacy를 지키고 싶은 경우 사용한다.
Hash값은 크기와 알고리즘에 따라 암호문의 결과가 상이하다.
동일한 값이 입력되면 언제나 동일한 출력을 보장한다.
종류 : MD5, SHA-1, SHA,256, SHA-512 등
참고
'개발 이야기 > 백엔드 이야기' 카테고리의 다른 글
REST API란? (0) | 2022.01.12 |
---|---|
MSA 와 Netflix OSS (0) | 2021.11.30 |