Encryption, 정보를 특정 알고리즘 및 과정을 통해 알아볼 수 없는 형태로 바꾸는 것을 의미한다.
정보를 암호 형태로 바꾸는 것을 암호화,
그 반대로 암호 형태를 정보로 바꾸는 것을 복호화라 한다.
암호화의 방식은 곧 어떠한 알고리즘, 과정을 통해 암호를 만드느냐에 따라 달라진다.
특히 암호화를 할 때 중요한 정보이자 자료는 키(key)이다.
이러한 키를 암호화, 복호화 시 공통적으로 사용한다면 대칭키를 사용하여 암호화를 한다고 일컫는다.
특히 AES, 고급 암호화 표준에서 대칭키를 이용하여 암호화를 진행할 수 있고, 대칭키를 사용하기 때문에 복호화에서도 동일한 key를 활용한다.
이러한 대칭키를 이용한 암호화 방식은 몇가지 문제점이 있다.
※ 정보를 송수신할 때 정보와 key를 같이 보내기 때문에, 이러한 위험이 존재한다.
이러한 단점을 보완할 수 있는 암호화 방식이 비대칭키를 활용한 암호화이다.
말 그대로 비대칭 키, 암호화와 복호화를 할 때 서로 다른 키를 사용하여 진행한다.
대칭키의 보안 문제를 해결할 수 있는 가장 기본적인 대안이며, 오픈된 공간에서도 안전하게 정보를 송수신할 수 있는 방법이다.
단, 이러한 비대칭키 방식은, 정보를 주고받는 두 대상 모두 비대칭키 2개를 가지고 있어야 한다는 점에서 번거로운 점이 많다.
이러한 번거로운 문제를 해결하고, 최종적으로 공개된 장소에서 안전하게 정보를 주고받기 위한 가장 많이 활용되는 암호화 방식이 공개키 방식이다.
하나의 공개된 키를 사용한다고 하여 공개키 암호화 방식이라 불리운다.
공개키 암호화 방식은 기본적으로 비대칭키 방식이다.
해당 방식의 과정은 아래와 같다.
※ 받는 자가 소유한 공개키, 비공개키는 RSA 암호화 방식을 통해 생성한 키이다(서로 연관성이 있는 키).
이처럼 공개키 방식을 사용하면, 기존 비대칭키 방식의 번거로움을 최소화하면서 안전하게 정보를 주고받을 수 있다.
생활코딩 - 암호화와 사연
https://opentutorials.org/module/2503/17281