-
[수학] 수학을 이용한 암호(RSA&동형암호)자료실 2021. 8. 20. 13:54반응형
수의 성질을 이용한 암호(RSA&동형암호)
정보를 보호하는 암호는 숫자와 밀접한 관계로 수의 성질을 이용한 경우가 많다. 오늘날 금융이나 빅데이터 같은 분야에서 쓰이는 암호도 마찬가지이다. 대표적인 예시로 RSA와 동형암호가 있다.
- RSA vs 동형암호
RSA는 큰 숫자일수록 소인수 분해하기 어렵다는 점을 적용한 암호 기술이다. RSA 덕분에 전자상거래의 기술적, 보안적 기반이 마련되었다. 그런데 1993년 피터 쇼어가 양자 컴퓨터를 이용하여 매우 큰 숫자를 일정 시간 안에 소인수 분해하는 방법을 발표하였다. 양자컴퓨터가 발명되면 안정성이 무너진다는 우려가 생기기 시작했다.
이에 대한 해결책이 동형암호이다. 동형암호는 수학적 난제를 이용하여 정보를 처리하는 암호 기술로 양자컴퓨터가 뚫을 수 없다. 또한 이전의 암호 기술은 정보를 처리하기 위해 복호화 과정을 거치는데 동형암호는 암호화된 상태에서 정보를 처리하기 때문에 해킹의 위험성이 낮다. 이는 빅데이터와 개인정보를 활용하는 기술적, 보안적 밑거름이 될 것이다.RSA 동형암호 수학 원리 큰 수의 소인수 분해 P-NP 난제 안정성 양자컴퓨터에 취약함 양자컴퓨터에서도 안정적임 활용 전자상거래 등 빅데이터 등
- RSA의 원리
- B가 A에게 줄 공개키를 만든다.
공개키는 n과 e로 이루어져 있다.
n = p × q이고 e는 n보다 작은 임의의 숫자이다. (단, p와 q는 소수) - B의 개인키를 만든다.
개인키는 n과 d로 이루어져 있다.
d는 {(p-1)(q-1) ×k+1} / e이다. (단, k는 임의의 수) - B가 공개키를 공개하여 A가 볼 수 있게 한다.
- A는 공개키를 이용하여 정보를 암호화한다.
원래 정보를 M을 암호화된 정보 m으로 바꾸는 것이다. >>> m = (M^e) mod (n)
a mod b = c는 a를 b로 나눈 나머지가 c라는 뜻이다.
수식으로 표현하면 m = M^e -(n×k) (단, k는 임의의 자연수) - A가 암호화된 정보 m을 공개하여 B가 볼 수 있게 한다.
- B가 개인키로 암호화된 정보를 복호화한다.
m = M^e mod n은 '페르마의 소정리'에 의해서 M = m^d mod n과 같다.
B는 개인키(n과 d) 값을 알기 때문에 원래 정보인 M 값을 알아낼 수 있다. - 총정리
p와 q를 알아내면 개인키를 알아내어 정보를 복호화할 수 있다.
그러나 n을 소인수 분해해야 하고 이는 시간이 매우 오래 걸려 불가능에 가깝다.
암호화된 정보 m을 이용하여 원래 정보 M을 알아내려는 시도가 있을 수 있다.
그러나 m = M^e-(n×k)에서 M과 k를 모르기 때문에 불가능하다.
(1개의 방정식에 미지수가 2개 있으면 해가 무수히 많다.)
* 해킹을 시도하더라도 해커는 공개키(n, d)와 암호화된 정보 m밖에 모르므로 해킹할 수 없다.
(더 자세한 원리는 https://www.youtube.com/watch?v=kGUlfVpIfaQ를 참고하세요.)
반응형- 동형암호의 원리
- A가 가진 정보들을 암호화한다.
- 숫자 10과 15를 가지고 있다.
A와 B만 알고 있는 비밀키 12345를 이용한다.
10은 10+(12345×a)
15는 15+(12345×b)로 암호화한다.
단, a와 b는 임의의 작은 자연수 - B에게 전송한다.
- B가 암호화된 정보를 처리한다.
- 두 정보를 덧셈한다고 가정한다.
10+(12345×a)+15+(12345×b)이다.
정리하면 25+12345(a+b)이다.
비밀키인 12345를 이용해서 25로 복호화한다. - 총정리
- 12345를 모르면 복호화하기가 불가능하다. (P-NP난제)
- 정보를 복호화하지 않고 연산하더라도 결과값이 같다.
- 이러한 원리에 근사연산, 기계학습 등을 더해 상용화 연구 중이다.
P-NP 설명 더보기
더보기일정 시간(다항시간) 내에 답을 구할 수 있는 문제를 P문제라 한다. 문제의 답에 대해 검산할 수 있지만, 일정 시간 내에 답을 구할 수 없는 문제를 NP문제라고 한다. 'P문제이면 NP문제이다'는 성립하지만 'NP문제이면 P문제이다'는 아직 증명되지 않았다. 즉, 어려운 문제(NP문제를) 쉬운 문제(P문제)로 변환하는 방법은 아직 밝혀지지 않은 것이다.
위의 동형암호에 적용해 보면 문제는 25+12345(a+b)라는 숫자에서 25를 알아내는 것이다. 이때, 12345라는 비밀키를 알면 25라는 숫자를 일정 시간 내에 구할 수 있다. (검산 가능) 그러나 비밀키를 모르는 채로 숫자 25를 알아내는 것은 불가능하다. (어려운 문제) 어려운 문제를 쉬운 문제로 변환할 수 없으므로 비밀키를 모른다면 정보를 복호화할 수 없는 것이다.반응형'자료실' 카테고리의 다른 글
[물리] 탄성력 (0) 2021.12.09 [물리] 빛과 빛의 활용 (0) 2021.11.16 [법] 헌법 (0) 2021.10.27 [이미지 출처 모음] (0) 2021.09.29 Mark Peterson_Characteristics of Korean History: Peaceful (0) 2021.07.08 [문학] 고전시가 문제 모음 (0) 2021.06.21 [컴퓨터과학] DNA컴퓨팅 (0) 2021.03.20 [Music] Bohemian Rhapsody Sheet Music (0) 2021.01.05 - RSA vs 동형암호