Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 함수형 프로그래밍
- ios
- 그리디
- 알고리즘
- 부동소수점
- 백준
- 안드로이드스튜디오
- 탐색
- 앱심사
- 정렬
- 개발
- 유전학알고리즘
- 데이터과학
- 판다스
- 분할과정복
- 데이터 과학
- 대외활동
- 코틀린
- 리액트네이티브
- 프로그래밍 언어론
- 컴퓨터구조
- 카카오테크캠퍼스
- 컴퓨터공학과
- datapath
- 컴퓨터알고리즘
- cpp02
- 백준2098
- 배낭문제
- H-모빌리티 클래스
- 외판원순회
Archives
- Today
- Total
minkylee
[이산수학] RSA 암호화 본문
암호화의 종류
- 대칭키 암호 시스템 : 송신자와 수신자가 같은 비밀키를 사용하여 데이터를 암호화하고 복호화 하는 방식
- 공개키 암호 시스템 : 송신자와 수신자가 각각 다른 키 사용, 송신자는 수신자의 공개키로 메시지 암호화, 수신자는 자신의 개인키로 복호화
- Bob이 Alice에게 평문을 보내려 한다.
- Bob은 자신이 가지고 있는 Alice의 공개키를 통해 암호화한다.
- 암호문을 Alice에게 보낸다.
- Alice는 자신만 가지고 있는 개인키를 가지고 복호화 한다.
암호화 방법
- 서로 다른 두 소수 p와 q를 선택한다. 두 소수를 곱해서 n을 계산한다. (n = pq) r은 $\mathbf{\phi(n)}$ 이 된다.
- r이 공개키의 모듈이 된다.
- r은 $\phi(n) = \phi(p) * \phi(q) = (p-1)(q-1)$
- r과 서로소인 e를 선택한다 (gcd(e, r) = 1), 그리고 $e \cdot d \equiv 1 \ (mod \ r) $ 를 만족하는 d(e의 역원)를 만든다.
- 공개키는 (n, e) 개인키는 (n, d) 이다
- 평문 B를 암호화하기 위해 $\mathbf{{\color{Blue} E(B) = B^e \ (mod \ n)}}$
- 암호문 C를 복호화 하기 위해 $\mathbf{{\color{Red} D(C) = C^d \ (mod \ n)}}$
예시 (p = 61, q = 127)
- n = 61 * 127 = 774, r = 7560 (7747과 서로소인 원소의 개수)
- e = 17 (r과 서로소)
- d = 3113 , $e \cdot d \equiv 1 \ (mod \ r)$
- 평문 2104를 암호화 = $2104^{17} \ mod \ 7747 = 628$
- 암호문 628을 복호화 $ 628^{3113} \ mod \ 7747 = 2104$
RSA의 정확성
경우의 수가 여러개기 때문에 암호문을 유추하기 어렵다.
'CSE > 이산수학' 카테고리의 다른 글
[이산수학] Subring, Ideal, Kernel (0) | 2024.10.27 |
---|---|
[이산수학] Ring의 성질, Zero Element (1) | 2024.10.27 |
[이산수학] Cyclic Group(순환군), Lagrange Theorem (라그랑주의 정리), Euler Theorem (오일러 정의), Fermat (Little) Theorem (페르마의 소정리), Discrete Logarithm(이산 로그) (1) | 2024.10.26 |
[이산수학] Homomorphism, Isomorphism (동형 사상) (0) | 2024.10.26 |
[이산수학] Group(군), Subgroup(부분군), Direct Product, Power of Element (0) | 2024.10.26 |