What is RSA?

Featured image

암호나 CTF를 좀 해본 사람이라면 RSA에 관해서 들어봤을거에요.

물론 RSA가 뭔지 모르는 사람도 있고 써보긴했는데 이게 왜 되는지 모르고 쓰는사람도 있겠죠.

CTF하는 분들은 매번 코드를 복붙은 하는데 왜 이게 되는지는 모르고 쓰는 분도 있고요.

지금 여러분은 공학계에서 가장 무서운 2가지를 마주하고 있습니다. 뭘 마주하냐고요?

Why does it works?

그러니까 한번 알아봅시다. RSA가 뭔지.

공개키 암호

잠시만요! 우리 RSA하는거 아니였어요?

어…. RSA는 공개키 암호입니다.

공개키 암호는 RSA가 아니지만요.

즉 RSA는 공개키 암호라는 범주 안에 속해 있는 겁니다.

이 공개키 암호에 관한 이야기를 하나 들려 드리겠습니다.

아주 아주 오래전에….

호랑이가 본격적으로 컴퓨터를 하기 시작한 무렵에 사람들이 점점 인터넷의 위력을 알게 됬어요.

점차 인터넷이 연구가 되며 사람들은 이 시스템이 우리가 사는 법을 얼마나 바꿀지, 얼마나 편리하게 될지 알게 되었죠. 그러면서 점점 사람들의 관심은 돈을 전송하는 것으로 모이게 되었습니다.

돈을 전송하는 것은 암호학이 필요한 응용분야이죠. 그런데 여기서 문제가 생기게 됩니다.

이 문제를 이해하기 위해 잠시 어느 머나먼 과거로 가서 다른 이야기를 들어보죠.

아주 아주 아주 오래전에….

철수와 영희가 있었습니다. 이 둘은 서로 사랑하는 사이에요.

어느 날 철수가 영희에게 프러포즈를 하려고 했습니다. 그래서 멀리 사는 영희에게 다이아 반지를 보내기 위해 다이얼 자물쇠를 사고 반지를 상자에 넣고 자물쇠로 잠가서 보내려고 했죠.

그런데 이 둘을 질투하는 길동이가 있었습니다. 길동이는 철수와 영희가 보내는 모든 편지를 다 보고 있습니다. 항상 둘의 사이가 나빠지게 하려고 언제나 감시중이였죠.

철수가 영희에게 상자를 열게 하려면 자물쇠의 비밀번호를 알려줘야 합니다. 하지만 암호를 보낼 수 있는 수단이 편지밖에 없고, 철수는 자신이 비밀번호를 편지로 쓰게 되면 길동이가 반지를 훔쳐가 버릴 것을 알고 있었어요.

그래서 철수는 길동이가 감시하더라도 안전하게 반지를 보낼 방법이 필요해 지게 되었죠.

철수는 고민 끝에 영희에게 자물쇠를 하나 사고 그것을 열어서 자신에게 보내라는 편지를 썼습니다. 그리고 영희에게 열린 자물쇠를 받았지요. 철수는 받은 자물쇠로 상자를 잠가서 영희에게 다시 보냈습니다. 길동이는 상자를 보긴 했지만 비밀번호를 모르기 때문에 상자를 열수가 없었고, 영희는 상자를 받아 다이아 반지를 받게 되고, 철수는 멋진 프러포즈를 성공 시켰습니다.

그 둘은 행복하게 오래오래 살았다고 합니다.

아주 아주 오래전에….

다시 인터넷이 퍼져가는 시대로 돌아와서 아까 하던 이야기를 마저 할께요.

위에 철수와 영희 이야기처럼 돈을 전송하는 것에서 문제가 생겼습니다. 바로 해커가 중간에서 감청 할 수가 있다는 겁니다. 통신을 하려면 대칭형 암호화를 사용해서 하나뿐인 열쇠(key)를 공유해야했는데 이것을 해커가 감청하면 모든 통신을 들을 수 있게 된다는 것입니다. 그래서 해커가 감청해도 내용을 못 듣게 철수와 영희가 한 것처럼 자물쇠를 보내야 했습니다.

하지만 통신으로 전달되는 정보는 숫자이기 때문에 물리적인 수단을 사용할 수가 없었습니다.

게다가 컴퓨터 수가 점점 많아지면서 거래를 위해선 컴퓨터의 수만큼 열쇠를 준비해야해서 열쇠 관리가 어렵게 되었죠.

이러한 문제를 해결하기 위해 많은 수학자들이 연구를 했고, 오랜 기간의 연구 끝에 수학자들이 그 실마리를 잡게 됩니다.

그 실마리와 결과물은 나중에 설명해드리겠습니다.

그래서 결국 공개키 암호란 무엇인가?

공개키 암호화는 2개의 키를 사용합니다.

자물쇠 역할인 공개키(public key)와, 열쇠 역할인 비밀키(private key) 로 이루어진 2개의 키를 만들고, 공개키는 말 그대로 공개해 버립니다. 그리고 누구든 내게 정보를 줄 사람은 이 키를 사용하여 정보를 잠가서 보내라! 라고 하고 암호화된 정보를 받으면 그것을 자신만 아는 비밀키로 해독하는것이죠.

그래서 암호화할때 쓰이는키와 복호화(해독) 할때 쓰이는 키가 다르기에 비대칭 암호라고도 합니다.