반응형
암호화 알고리즘
공개 키 암호화 시스템
RSA(Rivest-Shamir-Adleman) 알고리즘
-
- 서로 다른 두 개의 큰 소수
p
,q
선택 (100자리)
p*q → r
- 서로 다른 두 개의 큰 소수
-
- 하나의 큰 숫자
e
선택 (공개 암호화 키)
p-1
,q-1
과 각각 서로소이어야 함p
,q
보다 큰 어떤 소수이어햐 함
- 하나의 큰 숫자
-
- 비밀 해독키
d
계산
(e*d) % {(p-1)*(q-1)} == 1
을 만족하는d
찾기- 표기법 :
d*e = 1 modulo (p-1)*(q-1)
mod
연산에 대한 표기법 참고
- 비밀 해독키
-
- 정수
r
과e
는 공개하고,d
는 비밀로 유지
- 정수
-
- 평문
P
로부터 암호문C = P^e modulo r
계산
- 평문
-
- 암호문
C
로부터 평문P = C^d modulo r
계산
- 암호문
>>> p = 3
>>> q = 5
>>> r = p*q
>>> r
15
>>> (p-1)*(q-1)
8
>>>
>>> # let e be 11 (prime greater than both p, q)
>>> e = 11
>>>
>>> # find d
>>> # d*e = 1 modulo (p-1)*(q-1)
>>> # d*11 = 1 modulo 8
>>> # so, d = 3
>>> d = 3
>>>
>>> ## Encryption ###
>>> # let P = 13 (Plain text)
>>> P = 13
>>> # C = P^e modulo r
>>> # C = P**e % r
>>> # C = 13*11 % 15
>>> C = P**e % r
>>> C
7
>>>
>>> ### Decryption ###
>>> # P = C^d modulo r
>>> # P = C**d % r
>>> # P = 7**3 % 15
>>> P = C**d % r
>>> P
13
발송인 S가 수신인 R에게 메시지 P 전송
발송인 S :
수신인 R :
S가 메시지 P를 전송하였다는 것을 확인할 수 있음!
반응형
'Computer Science > Algorithm' 카테고리의 다른 글
[Graph Traversal 알고리즘] DFS vs BFS (0) | 2022.10.18 |
---|---|
[알고리즘] 허프만 인코딩 (Huffman encoding) - 파일 압축 알고리즘 (0) | 2022.06.14 |
[알고리즘] TSP (Traveling Salesperson Problem, 외판원 문제) (0) | 2022.06.14 |
[알고리즘] Floyd I vs Floyd II - 최단거리 계산 알고리즘 (0) | 2022.06.14 |
[알고리즘] 최적 이진 탐색트리 (Optimal BST) (0) | 2022.06.14 |