728x170

 

 

 

우리는 소수를 알고 있고 또 소인수분해라는걸 알고 있다.

 

 

수를 소수로 나눠 소수 들만의 곱으로 나타내는걸 의미하는데

 

 

가령 60 같은경우 소인수 분해하면  2 * 2 *  3 * 5 으로 나타낼수있다.

 

 

 

이런 소수를 이용하는게 바로 암호체계다.

 

 

 

수 중에는 소수 * 소수의 수가 있다...

 

 

6은 2 * 3 으로 나타내고

 

15 는  3 * 5 로 나타낸다

 

 

 

 

 

 

 

 

 

암호체계 rsa 129 는 129자리의 수를 말하며 이 수는 두개의 소수로 나눠진다....

 

 

위의 이미지 맨윗줄을 보면 엄청나게 커다란 수가 있다... 이 수만 딱 주고 이걸 두개의 소수로 나눠보라고 하면 아무도 못나눈다...

 

 

최고급 성능의 슈퍼 컴퓨터를 줘도 나눌수가 없다... 컴퓨터도 이 수를 소인수 분해 할때 뭐 엄청 대단한 방식으로 계산하는게 아니라

 

 

2로 한번 나눠보고 3으로 한번 나눠보고 5로 한번 나눠보고 모든 소수로 다 나눠서 계산하기 때문에

 

 

저런 큰수의 소인수분해를 하는게 거의 불가능하다

 

 

 

 

그럼 사용자가 두개의 소수중 하나를 알고 있다면?? 

 

 

위의 그림의 p라는 수를 알고 있으면 

 

 

q를 구하는건 너무나 쉽다...

 

 

129자리 큰 수를 p로 나누면 바로 q가 나오고 이건 그냥 일반 컴퓨터로도 바로 답이 나온다.... 

 

 

 

 

 

 

이게 바로 암호의 원리다...

 

 

q가  잠겨있는 문을 열 해답이라고 할때

 

 

그냥 딱 129자리 수를 주면 아무도 q를 구할수가 없다.

 

 

 

하지만 사용자가 비밀번호를 알고 있으면 그 비밀번호 p를 이용하며 q를 바로 쉽게 구할수 있다....

 

 

 

 

 

그리고 이는 반대로 이야기하면 소수의 규칙이 나오고 그로인해 소인수분해를 쉽고 빠르게 하는 방법이 나온다면 

 

 

지금의 암호체계는 바로 무너진다는 것이다....

 

 

 

 

 

 

 

 

 

썸머워즈에서 주인공이 열심히 숫자 적어가며 풀어낸게 RSA암호다

 

 

오즈의 보안프로그램 암호를 풀때 큰 수에 대해

 

 

혼자 암산만으로 소인수 분해해서 소수를 알아낸것이다.... 

 
그리드형

공유하기

facebook twitter kakaoTalk kakaostory naver band