d라이브러리









[알고리듬 시그널] 이 자료는 내가 보냈소! 디지털 서명

 

자기들만의 암호를 만들어서 단톡을 하다니! 견우도 하루하루 알고리듬 사고력이 향상하는 것 같죠? 견우의 알고리듬 요정인 저도 뿌듯하네요. 오늘은 메시지를 안전하게 주고받는 마지막 관문, 디지털 서명에 관해 배워볼게요!

 

여러분, 저 알디가 아주 멋진 그림을 그렸어요. 이 그림을 제가 그렸다는 사실을 누구나 알 수 있게 하려면 어떻게 해야 할까요? 맞아요. 그림에 서명을 하면 되죠. 하지만 인터넷에서는 내 정보에 서명을 하는 게 꽤 어려운 문제예요. 허공에 글씨를 쓸 수도 없고 말이에요!

 

 

그래서 인터넷에서 서명을 하려면 정보를 주고받을 때 자료를 증명할 수 있는 특별한 수단이 필요해요. 그게 바로 수학을 이용한 서명, ‘디지털 서명’이에요.

 

디지털 서명은 큰 수를 소인수분해 하는 것과 같은 수학문제를 활용해요. 두 소수를 정해놓고 곱셈을 하는 건 쉽지만, 곱셈의 결과물인 아주 큰 수에서 원래 두 소수를 찾는 건 굉장히 어렵고 시간도 오래 걸리거든요. 

 

 

정보를 보내는 사람은 이 원리를 활용해 ‘개인 키’와 ‘공개 키’라는 두 개의 키 쌍을 만들어요. 개인 키는 디지털 서명을 만들 때 쓰고, 공개 키는 서명을 원래 메시지로 돌릴 때 쓰죠. 그리고 개인 키로 메시지를 암호화한 것을 디지털 서명이라 부르고요.

 

디지털 서명을 메시지와 함께 보내면, 수신자는 공개 키로 디지털 서명을 해독해서 메시지와 대조해봐요. 그러면 메시지가 변경 없이 무사히 잘 도착했는지, 또 이 사람이 보낸 게 맞는지 확인할 수 있겠죠?

 

디지털 서명은 ‘컴퓨터과학에서 가장 천재적’이라고 불리는 ‘공개 키 암호화’와 아주 비슷한 원리를 써요. 왼쪽 그림에 알기 쉽게 정리했으니 같이 공부하면 더 안전하게 정보를 주고받을 수 있을 거예요!

 

 

2019년 01호 수학동아 정보

  • 박현선 기자
  • 기타

    [디자인] 최은경
  • 참고자료

    이시다 모리테루, 미야자키 쇼이치 ‘알고리즘 도감’, 박종혁 ‘디지털 서명’

🎓️ 진로 추천

  • 컴퓨터공학
  • 정보·통신공학
  • 소프트웨어공학
이 기사를 읽은 분이 본
다른 인기기사는?