예전에 살짝 봤던거기는 한데, 이해를 완전히 못했었는데!!
http://ko.wikipedia.org/wiki/RSA_%EC%95%94%ED%98%B8
## 우선 필요한 것들 :
=> P, Q : 서로 소수인 두 수
=> N (공개키의 한 부분) = P x Q
=> φ(N) : (P-1) x (Q-1)
Ex)
P = 7, Q = 9 라고 할때,
N = 7 x 9 = 63
φ(N) = 6 x 8 = 48
e = 5 로 정했을 때,
d = 29 <계산 해보면 나온다. 유일하게 나온다. 오일러 함수??인가 오일러 정리인가??>
@ 공개키 : N, e => 63, 5
@ 개인키 : d => 29
※ 원리 ※
암호문 : pow(평문, e) % N
평문 : pow(암호문, d) % N
Ex) 키를 위평문을 10 이라 하면,
pow(10, 5) % 63 = 19 <암호문>
pow(19, 29) % 63 = 10 <평문>
※ 실제 사용 방법 ※
1. 받을 녀석이 우선 공개키를 배포한다. ex> 63, 5
2. 보낼 녀석이 공개키를 이용해서 암호문을 만들어 받을 녀석에게 보낸다 ex> pow(10, 5) % 63 = 19 를 보낸다.
3. 받을 녀석이 개인키로 암호문을 평문으로 바꾼다. ex> pow(19, 29) % 63 = 10 <평문>
http://ko.wikipedia.org/wiki/RSA_%EC%95%94%ED%98%B8
## 우선 필요한 것들 :
=> P, Q : 서로 소수인 두 수
=> N (공개키의 한 부분) = P x Q
=> φ(N) : (P-1) x (Q-1)
=> 원래는 N보다 작은 자연수 중 N과 서로소인 것들의 갯수인데,왼쪽과 같은 식으로 쉽게 구할수 있다.
=> e (공개키의 한 부분) : φ(N) 보다 작은 수중 φ(N)와 서로소인 수
=> d (개인키) : e x d = 1 (mod φ(N)) 을 만족하는 수
=> d (개인키) : e x d = 1 (mod φ(N)) 을 만족하는 수
=> 이미 정해진 e와 곱해서 나머지 연산 φ(N)을 했을때 1을 만족하는 d.
Ex)
P = 7, Q = 9 라고 할때,
N = 7 x 9 = 63
φ(N) = 6 x 8 = 48
e = 5 로 정했을 때,
d = 29 <계산 해보면 나온다. 유일하게 나온다. 오일러 함수??인가 오일러 정리인가??>
@ 공개키 : N, e => 63, 5
@ 개인키 : d => 29
※ 원리 ※
암호문 : pow(평문, e) % N
평문 : pow(암호문, d) % N
Ex) 키를 위평문을 10 이라 하면,
pow(10, 5) % 63 = 19 <암호문>
pow(19, 29) % 63 = 10 <평문>
※ 실제 사용 방법 ※
1. 받을 녀석이 우선 공개키를 배포한다. ex> 63, 5
2. 보낼 녀석이 공개키를 이용해서 암호문을 만들어 받을 녀석에게 보낸다 ex> pow(10, 5) % 63 = 19 를 보낸다.
3. 받을 녀석이 개인키로 암호문을 평문으로 바꾼다. ex> pow(19, 29) % 63 = 10 <평문>

Prev
Rss Feed