정의

원시근

Primitive Roots

A primitive root modulo a prime p is an integer r in Zp such that every nonzero element of Zp is a power of r.

  • 원시근 모듈로 소수 pZp 의 원소이며, 정수이다.
    • Zpr의 거듭제곱으로 이루어진 0 이 아닌 정수들이다.

모든 소수 p에 대해 원시근 모듈로 p가 존재한다.

  • 만약 aZp의 원소이면 (즉, 0<ap1 이면)
    • Zpre=a 인 유일한 지수 e가 있다. (즉, remodp=ae가 있다.)

원시근 예제

2 와 3 이 원시근 모듈로 11 임을 결정하라.

Z11 안에서 2의 거듭제곱을 계산해보자. 각 거듭제곱의 결과를 11로 나눈 나머지를 구하면 된다.

21=222=423=824=525=1026=927=728=329=6210=1

1 부터 10 까지 다 있다.

Z11의 모든 원소가 2의 거듭제곱이므로 2 는 11의 원시근이다.

이번에는 3 이 11 의 원시근인지 알아보자.

31=332=933=534=435=136=337=938=539=4310=1

3,9,5,4,1 이 반복된다.

2,6,7,8,10 이 빠졌으므로 3 은 11 의 원시근이 아니다.

이산로그

discrete logarithm

Suppose that p is a prime, r is a primitive root modulo p, and a is an integer between 1 and p1 inclusive. If remodp=a and 0ep1, we say that e is the discrete logarithm of a modulo p to the base r and we write logra=e (where the prime p is understood).

  • p 가 소수이고, r이 원시근 모듈로 p이고, a1ap1인 정수라 하자.
    • remodp=a 이고, 0ep1 이면…
    • er을 밑으로 하는 a 모듈로 p의 이산로그라 한다.
      • 표기는 logra=e 이다.

이산로그 문제는 쉬워 보이지만, 의외로 다항시간 알고리즘이 존재하지 않는다.

이산로그 문제의 어려움은 암호학에서 유용하게 쓰인다.

이산로그 예제

2를 밑으로 하는 3과 5의 모듈로 11의 이산로그를 찾아라.

위의 원시근 예제를 풀 때 다음을 미리 계산해 두었었다.

24=528=3

따라서 3 과 5는 Z11에 들어있다.

24mod11=5 이고, 0410 이므로 2 를 밑으로 하는 5 모듈로 11 의 이산로그는 4 이다.

막상 써보면 평범한 로그와 똑같이 생겼으므로 어렵지 않게 이해할 수 있다.

log25=4

한편, 28mod11=3 이고, 0810 이므로 2 를 밑으로 하는 3 모듈로 11 의 이산로그는 8 이다.

log23=8

참고문헌

  • Rosen의 이산수학 / Kenneth H. Rosen 저 / 공은배 등저 / 한국맥그로힐(McGraw-Hill KOREA) / 2017년 01월 06일