RSA의 기본 원리:
- 암호화:
- 복호화:
여기서 는 플레인 텍스트, 는 암호화된 텍스트, N은 두 큰 소수의 곱, 는 공개키, 는 비밀키입니다.
- 왜 N은 큰 소수의 곱이어야 하는가:
- 보안: RSA의 보안은 소인수분해의 어려움에 기반합니다. 큰 소수의 곱 을 소인수분해하는 것은 현재의 컴퓨터 기술로는 매우 어렵습니다. 만약 이 소수가 아닌 작은 수들의 곱이라면, 소인수분해가 쉽게 가능하여 암호가 쉽게 깨질 수 있습니다.
- 수학적 성질: RSA는 이 소수의 곱일 때 특정 수학적 성질을 이용합니다. 이러한 성질은 이 소수의 곱이 아닌 경우에는 성립하지 않습니다
- N이 큰 소수의 곱일 때의 특정 수학적 성질:
- RSA 암호화의 안전성은 이 큰 소수의 곱 로 이루어져 있을 때 나타나는 수학적 성질에 기반합니다.
- 이 성질 중 하나는 오일러의 피 함수 의 계산과 관련이 있습니다.
일 때, 입니다.
이는 보다 작은 양의 정수 중 과 서로소인 수의 개수입니다. - 소수의 성질에 의해, 소수 와 가 주어졌을 때 을 쉽게 계산할 수 있습니다. 그러나 만 알고 와 를 모르면, 을 계산하기 매우 어렵습니다.
- RSA의 핵심은 입니다. 을 알아야만 공개키 와 비밀키 를 찾을 수 있다는 것이 큰 소수의 곱인 경우, 이 을 계산하려면 와 를 알아야 하며, 이는 소인수분해 문제로 귀결됩니다.
- 따라서, 이 큰 소수의 곱이어야 하는 이유는, 소인수분해가 계산상 매우 어렵기 때문에 RSA 암호화가 안전하다는 것을 의미합니다. 이는 공격자가 을 소인수분해하여 와 를 찾고, 따라서 을 계산하여 비밀키 를 찾는 것을 매우 어렵게 만듭니다.
모듈러 지수승의 성질:
-
- 성질:
- 여기서 (두 큰 소수의 곱), , 는 정수입니다.
- 은 오일러의 피 함수로, 입니다.
암호화과정
- 를 로 거듭제곱하고, 으로 나눈 나머지를 구합니다.
- 결과는 입니다.
복호화 과정:
- 를 로 거듭제곱하고, 으로 나눈 나머지를 구합니다.
- 결과는 입니다.
'개발 과 보안 > 암호학의 모든것' 카테고리의 다른 글
안드로이드에서 주로 사용하는 HOOKing 기법 종류들 (1) | 2023.12.21 |
---|---|
※번외 RSA에 대한 가능한 공격들 (0) | 2023.12.13 |
차분분석(Differential Cryptanalysis) (1) | 2023.10.24 |
Shannon의 합성암호 개념 (1) | 2023.10.19 |
현대 대칭키 암호_구성요소[ 순환 이동 & Swap ] (0) | 2023.10.19 |