본문 바로가기

반응형

IT 기술/암호학

(10)
Prime Power Prime Power에 대해서 알아보겠습니다. 논문을 보던 중 알게된 용어인데요 수학에서 쓰입니다. 먼저 위키피디아의 정의를 볼까요? "A prime power is a positive integer power of a prime number." 라고 나와있네요. 뭐 더 설명 안해도 될것 같지만 해석하면, 소수들의 제곱승을 prime number라고 할 수 있습니다. 참 쉽죠?
RSA Problem RSA Problem에 대해서 알아보겠습니다. 물론 다들 아시겠지만 한번씩 깜박깜박할 때가 있더라구요. RSA Problem이란, 두 개의 서로 다른 소수 p와 q의 곱인 양의 정수 n, gcd(e,Φ(n)) = 1인 양의 정수 e,양의 정수 c가 주어졌을 때, m^e = c (mod n)인 m을 찾는 문제를 RSA Problem이라고 합니다. n을 인수분해할 수 있으면 m을 쉽게 찾을 수 있겠지만 일반적으로 n을 인수분해하기란 쉽지가 않겠죠? p, q가 512bits 정도 되고 그 수는 셀수 없이(물론 셀수는 있겠죠;; 말이 그렇다는 거임..) 많을 거니까요 이제 까먹지 맙시다!
Fiat-Shamir Protocol 이전 포스팅에서 Zero Knowledge(영지식)에 대해 포스팅한 적이 있습니다. (잘 모르시는 분은 이전 포스팅을 참고하시길...) Fiat-Shamir Protocol은 영지식 증명 방법 중 하나입니다. 영지식 증명체계(Zero Knowledge Proof System)란 한 사람이 다른사람에게 사실의 증명에 관한 어떤 정보도 보이지 않고 사실의 증명을 알고 있음을 확신하도록 만드는 방법으로 다시 말해서, 정보를 전혀 주지 않고 상대방에게 정보를 알고 있음을 증명하는 방법입니다. Fiat-Shamir Protocol은 1986년 이스라엘의 수학자 Adi Shamir와 Amos Fiat가 고안한 사용자 인증에 대한 새로운 프로토콜입니다. 이 프로토콜은 충분이 큰 두 소수의 곱 n이 있다고 가정할 때,..
Chinese Remainder Theorem(중국인의 나머지 정리) 중국인의 나머지 정리에 대해서 알아봅시다. 이게 나올때마다 헷갈려서 이번기회에 확실히 정리하고 넘어가야 겠습니다. ㅎ 우선 위키피디아를 살펴볼까요? 서로 소인 자연수 n1, n2, … , nk와 임의의 정수 a1, a2, … , ak가 있을 때, 임의의 i(1 ≤ i ≤ k)에 대해 x ≡ ai (mod ni) 로 표현되는 변수 x의 연립 합동 방정식에 대해, 이 방정식이 성립하는 값 x=a가 항상 존재하며, 또한 그 값은 n1 n2 … nk의 나머지값 안에서 유일하게 존재한다. 즉, 방정식의 해는 모두 x ≡ a (mod n1 n2 … nk)로 표현가능하다. 이해가 되나요? 아마 "이게 대체 뭔소리야" 라고 하시는 분이 많을 것 같은데요.. 그럼 간단한 예를 들어서 설명하겠습니다. 어떤 사람의 나이를 ..
Zero Knowledge technique Zero Knowledge 또는 우리말로 영지식이라는 것에 대해 알아봅시다. 처음 이 낯선 단어를 논문에서 접했을 때 많이 당황했는데 생각보다 간단한 개념이었습니다. 일반적인 보안 시스템에서는 인증을 위해서 어쩔 수 없이 정보의 유출이 일어날 수 밖에 없고(물론 공격자가 공격할 수 없는 수준임) 그렇기 때문에 안정도에 영향을 미치게 됩니다. 그러나 Zero Knowledge technique는 네트워크상에 흘러다니는 정보의 양을 Zero에 가깝게 만드는 기술을 의미합니다. 즉, 인증을 위한 정보의 유출을 최소화 하겠다는 말인데 예를들어, 사용자 A의 키에 대한 정보를 전혀 유출하지 않으면서 사용자 A가 키를 알고 있다는 사실만을 증명함으로써 인증이 이루어 지는 것입니다. 따라서 인증 시 키에 대한 정보의..
Diffie-Hellman 키 교환 프로토콜 Diffie-Hellman 키 교환 프로토콜에 대해서 알아봅시다. 사용자 A, B가 있을 때 두 사용자 사이의 공통키 K를 생성하는 프로토콜입니다. 우선 사용자 A의 비밀키 Xa, 사용자 B의 비밀키 Xb, primitive root g, prime number p를 설정합니다. 사용자 A는 자신의 비밀키 Xa를 이용해서 Ya = g^Xa(mod p)를 계산해서 사용자 B에게 전송합니다. 사용자 B 역시 비밀키 Xb를 이용해서 Yb = g^Xb(mod p)를 계산해서 사용자 A에게 전송합니다. 공통 비밀키 K는 Ya*Yb(mod p)입니다. 참 쉽죠?
primitive root 증명하기 소수 p와 primitive root g가 있을 때 g가 p의 primitive root라는 것을 어떻게 밝혀낼 수 있을까요? g를 exponent한 값들을 moduler p를 했을 때 그 결과 값이 1부터 p-1까지 나오는 것을 보이면 됩니다. 간단히 예를 들어서 설명하겠습니다. g = 7, p = 11일 경우 7^0(mod 11) = 1, 7^1(mod 11) = 7, 7^2(mod 11) = 5, 7^3(mod 11) = 2 ... 이런식으로 확인을 해보면 됩니다. 참 쉽죠?
DLP(Discrete Logarithm Problem) DLP(Discrete Logarithm Problem)에 대해서 알아봅시다. p : 소수(prime number) g : 0

반응형