소수는 1 과 자기 자신만을 인수로 가지는 수입니다.
7 이라는 수는 1 x 7 = 7 이외에는 어떤 수로도 생성할 수
없습니다..
p, q 라는 두 소수가 있을때 이 두 소수의 곱 p x q 는
1, p, q, pq 의 4개의 약수를 가집니다..
여기서 1 과 pq 를 제외하면 약수는 p 와 q 입니다...
이중에 하나를 개인키로 하고 나머지 하나를 공개키로 합니다.
p 와 q 를 알면 pq 를 알아내는건 쉽습니다. 그냥 곱하면
됩니다...
그러나 pq 를 알고있을때 p 와 q 를 알아내기는 어렵습니다.
가령 11 x 17 = 187 는 쉽게 알 수 있지만..
187 를 인수분해하여 11 과 17 를 알아내려면 최소한 1 ~ 11 까지의
숫자로 나눠봐야 합니다...
또한 17 이 소수인지 아닌지도 검증해야 하구요...
만약 사용된 소수가 십만, 백만자리 숫자라면 알아내기는 더
어렵습니다..
십만자리 x 십만자리 = 10억자리 숫자가 됩니다.
공개키는 여기저기 막 뿌려줍니다... 소수는 무한하니 어떤 소수랑
곱했을지
개인키를 알지 못한다면 공개키만 가지고선 암호를 풀지
못합니다.
가장 큰 소수를 찾는 작업은 아직도 계속되고 있습니다.
----------------------------------------------------------------------------
원리를 알면 실제 적용에서 어떤식으로 쓰일거라는건 짐작이
됩니다...
그래도 apache + ssl 은 어렵습니다... ㅠㅠ
새벽에 서버 작업하고 잠못자서 횡설수설입니다... ^^;;;
|