-
암호화 방식(대칭키, 공개키)CS 2024. 5. 27. 11:21728x90
암호화
암호화란 정보를 전달할 때 해당 메시지를 수신자가 아닌 사람이 알지 못하게 하고, 수신자는 해석할 수 있도록 하는 것입니다.
또한 자신이 혼자 확인하는 정보라도, 타인이 이해할 수 없는 메시지로 만드는 것도 포함됩니다.
예를 들어, a가 b에게 “tistory”라는 메시지를 암호화해서 전달한다고 가정합니다.
a는 “tistory”의 각각 글자를 키보드의 왼쪽 글자로 변경하는 규칙을 통해 “ruarit”라고 전송하려합니다.
중간에 가로챈 사람은 메시지가 어떤 뜻인지 이해할 수 없습니다.
이렇게 해독 불가능한 메시지를 암호문이라고 합니다.
원본 메시지(평문)을 암호문으로 변환하는 과정을 암호화(Encryption)라고 부르며, 암호문을 평문으로 변환하는 과정을 복호화(Decryption)라고 부릅니다.
암호화, 복호화를 할 때 기준이 되는 규칙이나 값을 key라고 부릅니다.
대칭키
위의 예제와 같이 동일한 키로 암호화와 복호화가 가능한 방식의 암호화 기법을 대칭키 방식이라고 합니다.
대칭키 방식은 키에 따라 암호화된 결과가 달라지므로 키를 알지 못하면 복호화가 불가능합니다.
하지만 대칭키를 탈취당하거나, 키가 노출된다면 암호화로서의 기능이 무력화되는 단점이 존재합니다.
또한 대칭키를 전달하는 것이 어렵다는 문제점도 존재합니다.
공개키
공개키 방식은 2개의 키를 사용하는데, a키로 암호화하면 b키로 복호화가 가능하고, b키로 암호화하면 a키로 복호화할 수 있는 방식입니다. 두 개의 키 중 하나를 비공개키(private key, 개인키, 비밀키), 나머지를 공개키(public key)라고 지정합니다. 비공개키는 자신만이 가지고 있는 키이고, 공개키는 타인에게 제공합니다.
공개키 방식으로 진행되는 암호화/복호화 과정은 다음과 같습니다.
- 비공개키는 자신만이 가지고 있고, 공개키를 타인에게 제공합니다.
- 공개키를 제공받은 타인은 공개키를 이용해서 정보를 암호화합니다.
- 암호화한 정보를 비공개키를 가지고 있는 사람에게 전송합니다.
- 비공개키 소유자는 키를 이용해서 복호화합니다.
공개키가 유출되어도 비공개키를 모르면 복호화가 불가능하기 때문에 안전하다는 장점을 가지고 있습니다.
대칭키 방식에서 키가 노출되면 암호화로서의 기능이 무력화된다는 단점을 해결한 방식이기도 합니다.
공개키 방식을 다음과 같이 응용할 수 있습니다.
- 비공개키의 소유자는 자신의 비공캐키로 정보를 암호화하여 공개키와 함께 암호화된 정보를 전송합니다.
- 정보와 공캐키를 획득한 사람은 받은 공개키로 정보를 복호화합니다.
이 방식에서 공개키가 유출되면, 공격자에 의해 데이터가 복호화될 위험이 존재합니다.
하지만, 데이터를 보호하려는 목적이 아니기 때문에 비공개키를 이용하여 암호화합니다.
암호화 된 데이터를 공개키를 가지고 복호화 할 수 있다는 것은 해당 데이터가 공개키와 쌍을 이루는 비공개키에 의해서 암호화 되었음을 의미합니다. 따라서, 공개키가 데이터를 제공한 사람의 신원을 보장해주는 것입니다. 이처럼 공개키의 방식을 활용하여 사용자를 인증하는 방법이 전자서명입니다.
REF
728x90'CS' 카테고리의 다른 글
URI에 네이버를 입력하면 발생하는 일 (0) 2024.06.15 [CS] CDN(Contents Delivery Network) (0) 2023.04.17 [CS] Blocking, Non-Blocking, Sync, Async (0) 2023.01.11 [CS] 가상메모리 (1) 2023.01.06 [CS] MVC (0) 2022.12.28