책 읽다가 코딩하다 죽을래

[암호학] 대칭키와 비대칭키란 무엇인가 본문

이론/보안

[암호학] 대칭키와 비대칭키란 무엇인가

ABlue 2021. 8. 31. 21:39

 

📖 개요

우리는 실생활에서 애플리케이션이나 웹을 통해 자신의 정보와 수많은 데이터들을 다른 서버들과 송수신을 합니다.

하지만 송수신하는 과정에서 누군가가 내 데이터를 도청하거나 위변조를 한다면 대단히 위험해질 것입니다.

 

그래서 우리는 제 3자가 도청하더라도 무슨 데이터인지 모르게 하기 위해 평문 암호화해서 암호문으로 바꿔야 하며, 목적지에 도착하면 보내준 데이터를 읽을 수 있도록 암호문 복호화해서 다시 평문으로 바꿔줘야 합니다. 

 

 

📖 암호 알고리즘의 종류

 

 

암호 알고리즘은 크게 단방향 암호화 양방향 암호화가 있다.

 

🔑 단방향 암호화

 

단방향 암호화 평문 암호문으로 암호화하는 것은 가능하지만

암호문 평문으로 복호화하는 것은 불가능한 암호화 기법입니다.

 

 

 

 

이렇게 원래의 데이터로 복구가 불가능한 단방향 암호화는 주로 비밀번호에 쓰인다.

사용자가 비밀번호를 입력하여 서버에 보내주는 도중에

제 3자에게 도청을 당해도 원래의 비밀번호로 복호화할 수 없으므로 사용자의 개인정보를 지켜주기 때문이다.

 

🔑 양방향 암호화

 

 

단방향 암호화와 반대로 양방향 암호화 암호화와 복호화가 가능한 암호학 기법이다.

양방향 암호화는 크게 대칭키 비대칭키가 있는데 

대칭키 방식은 암호화, 복호화 모두 동일한 키를 사용하고

비대칭키 방식은 암호화, 복호화 서로 다른 를 사용한다.

 

🔑 양방향 암호화 - 대칭 키

 

대칭키는 키가 단 하나뿐이라 절대 잃어버리거나 타인에게 공개하면 안 되므로 비공개 키라 고도 부릅니다.

 

그래서 대칭키에는 키를 전달하는 과정에서 치명적인 약점이 드러납니다.

대칭키를 이용하여 암호화와 복호화가 이뤄져야만 하니 송신 측과 수신 측 모두 가지고 있어야 합니다.

그래서 송신 측과 수신 측 사이에 대칭키가 오고 가야만 하고

이 과정에서 제 3자에게 대칭키를 빼앗기게 되면 암호문이 평문으로 드러나게 됩니다.

 

그래서 이 문제를 해결하기 위해 고안된 방법이 비대칭 이다.

 

🔑 양방향 암호화 - 비대칭 키

 

비대칭 키는 키가 공개키, 비밀키 총 2개가 있는데

공개키 암호화하는데에 쓰이며

비밀키 복호화하는 데 사용합니다.

 

 공개키가 암호화한 것을 비밀키가 복호화할 수 있고

비밀키가 암호화한 것을 공개키가 복호화할 수 있습니다.

 

 

여기서 공개키는 말 그대로 만천하에 공개된 키입니다.

 공개키는 너도나도 다 갖고 있는 키이기 때문에

중간에 탈취가 되어도 상관이 없다는 것입니다.

 

비밀키는 소유자만 갖고 있는 키입니다.

절대 다른 사람들에게 보여지거나 탈취되어선 안됩니다.

 

사람들은 자신이 원하는 목적지에 데이터를 안전하게 보내기 위해 공개키를 이용해서 평문을 암호문으로 바꾸어 송신합니다.

 

그러면 수신한 쪽에서는 자신만 갖고 있는 비밀키를 이용해 암호문을 복호화합니다.

 

이런 식으로 비대칭 키는 서로 송수신하는 과정에서 키가 오고 가지 않으며

송신한 사람은 수신한 사람이 제대로 된 비밀키를 가져야만 복호화할 수 있으므로 

정보를 보낸 웹사이트가 인증이 된 사이트인지 암묵적으로도 알아낼 수 있다는 것입니다. 

 

 

🤔 그럼 대칭 키보다 비대칭 키가 안전하니까 좋다는 거네요?

 

 그건 아닙니다.

비대칭 키라고 약점이 없는 것은 아닙니다.

비대칭 키는 대칭 키보다 현저하게 느리다는 단점이 있을뿐더러

비대칭 키 또한 중간에 탈취되어 제 3자가 이상한 내용으로 암호화한 다음에 전송할 수도 있습니다.

 

비대칭 키 또한 중간자 공격에 취약합니다.

 

그래서 대칭키와 비대칭키의 장단점을 고려하여 사용자들의 소중한 정보를 지켜야 합니다.

'이론 > 보안' 카테고리의 다른 글

쿠키 (Cookie) & 세션 (Session)  (0) 2021.09.08
프로토콜, HTTP와 HTTPS, SSL  (0) 2021.09.02