보안과 한글 코드 - 4) 암호화 알고리즘
자세하게 알 필요는 없지만 DES와 RSA의 개념에 대해서는 알아 두는 것이 좋습니다.
시험에 나올 것 같지는 않지만 상식으로 알아두면 좋을 것 같은 몇 가지를 소개합니다.
RSA (Rivest-Shamir-Adleman)
역시 시험에 나오지는 않겠지만 몇 마디 더 거들자면,
여기까지 읽으시고도 도대체 무슨 말인지 모르겠다고 생각하시는 분은,
RSA, DES가 암호화 알고리즘이라는 것만 기억해 두세요.
이상 동주 아빠 손병목이었습니다.

- DES (Data Encryption Standard) ; 데이터 암호화 표준
- DES는 1977년에 IBM에서 발명하였으며, 미국 국방부에 의해 채택되었습니다.(ANSI X3.92와 X3.106 표준 및 미국 연방정부 FIPS 46과 81 표준에 정의되어 있습니다.)
- 개인키를 사용하여 데이터를 암호화하는 방법입니다.
- 72,000,000,000,000,000(72천조? 어마어마하죠?)개 이상의 암호 키 중에서 무작위로 키를 선정하는 방식입니다.
- 다른 개인키 암호화 방법과 마찬가지로, 송신자와 수신자 둘 모두는 동일한 개인키를 알고, 사용해야만 합니다.
시험에 나올 것 같지는 않지만 상식으로 알아두면 좋을 것 같은 몇 가지를 소개합니다.
- 미국 정부는 이 DES 알고리즘을 해독하기 어렵다고 생각했습니다. 그래서 비우호적 국가에 의해 사용되면 좋지 않다고 여겨 다른 나라들에 수출하는 것을 금지하고 있습니다.(그러나 프리버전은 웹사이트를 통해 입수할 수 있죠.)
- 1997년 초에, 다른 암호화 방식의 소유자인 RSA(밑에서 설명하고 있습니다.)가 DES 메시지 해독에 10,000 달러의 상금을 걸었던 적이 있었습니다.(그 이후에 해독은 되었는데 상금이 주어졌는지...그건 확인 못했습니다.)
- 인터넷상에서 14,000명 이상의 사용자들이 다양한 키들을 시험하는 공동 노력으로 결국 그 메시지를 해독했는데, 72천조 개의 키 중에서 18천조 개의 시험을 통해 그 키가 발견되었다고 합니다.
- RSA는 1977년에 Ron Rivest, Adi Shamir와 Leonard Adleman에 의해 개발된 알고리즘을 사용하는 인터넷 암호화 및 인증 시스템입니다.
- RSA 알고리즘은 가장 보편적으로 사용되는 암호화 및 인증 알고리즘으로 넷스케이프와 마이크로소프트 웹브라우저 기능의 일부로 포함되어 있습니다.
역시 시험에 나오지는 않겠지만 몇 마디 더 거들자면,
- 이 암호화 시스템의 소유권은 RSA Security라는 회사가 가지고 있습니다.
- 그리고 RSA 시스템의 동작원리를 조금 자세하게 설명드리자면
공개키와 개인키의 획득에 사용되는 알고리즘의 상세한 수학적 설명은 RSA 웹사이트에서 찾아볼 수 있는데,
간단히 말해, 이 알고리즘은 두 개의 큰 소수 (소수는 그 숫자와 1로만 나누어지는 수이다)들의 곱과, 추가 연산을 통해 하나는 공개키를 구성하고 또하나는 개인키를 구성하는데 사용되는 두 세트의 수 체계를 유도하는 작업이 수반됩니다. 한번 그 키들이 만들어지면, 원래의 소수는 더 이상 중요하지 않으며, 버릴 수 있습니다. 공개 및 개인키 둘 모두는 암호화/복호화를 위해 필요하지만, 오직 개인키의 소유자만이 그것을 알 필요가 있습니다.(이런, 말을 하면서도 뭔 말인지 모르겠네...^^)
RSA 시스템을 사용하면, 개인키는 절대로 인터넷을 통해 보내지 않습니다.
아래 내용을 보면 좀 이해가 쉬울까요?
수신자의 공개키를 이용하여 암호화된 메시지를 보내고
발신자의 개인키를 이용하여 암호화된 서명을 보내면
↓
수신자의 개인키를 이용하여 암호화된 메시지를 복호화하고
발신자의 공개키를 이용하여 암호화된 서명을 복호화한다.
여기까지 읽으시고도 도대체 무슨 말인지 모르겠다고 생각하시는 분은,
RSA, DES가 암호화 알고리즘이라는 것만 기억해 두세요.
이상 동주 아빠 손병목이었습니다.
