[암호학] 2. 기초 정수론(2)
오일러 정리에 따르면 양의 정수 n과 gcd(a,n)=1인 정수 a에 대하여 aϕ(n)≡1(modn)이다.
양의 정수 n과 gcd(a,n)=1인 정수 a에 대하여 다음을 만족하는 최소의 정수 r을 법 n에 대한 a의 위수(order)라고 한다.ar≡1(modn)이때 다음이 성립한다.
(a) 양의 정수 k에 대하여 ak≡1(modn)이면, r|k이다.
(b) r|ϕ(n)
(c) 양의 정수 i,j에 대해 다음이 성립한다.ai≡aj(modn)⇔r|(i−j)⇔i≡j(modn)(d) 음이 아닌 정수 k에 대하여 ak의 위수는 rgcd(k,r)이다.
(e) 음이 아닌 정수 k에 대하여 ak의 위수가 r일 필요충분조건은 ⇔ gcd(k,r)=1이다.
양의 정수 n에 대해 gcd(a,n)=1, a의 법 n에 대한 위수가 ϕ(n)이면, a를 n의 원시근(primitive root)이라고 한다.
양의 정수 n이 2,4,pk,2pk(p는 홀수 소수이고 k≥1)일 필요충분조건은 법 n에 대한 원시근이 존재한다.
양의 정수 n에 대해 정수집합 R={r1,...,rϕ(n)}이 다음의 두 조건을 만족하면
(i) 모든 ri∈R에 대하여 gcd(ri,n)=1 이다.
(ii) gcd(a,n)=1인 임의의 정수 a에 대하여 ri∈R가 존재해서 a≡ri(modn)이다.
R을 법 n에 대한 기약잉여계라고 한다.
r을 n의 원시근이라 하자. gcd(a,n)=1이면, a≡rk(modn)를 만족하는 최소의 정수 k를 r을 밑으로 갖는 a의 이산로그(discrete logarithm) 또는 지표(index)라고 하고 이것을 indra로 나타낸다. 즉 k=indra. 분명히 1≤indra≤ϕ(n)이고 다음이 성립한다.rindra≡a(modn) n이 원시근 r을 갖고 gcd(a,n)=1이면, 다음이 성립한다.
(a) indr(ab)≡indra+indrb(modϕ(n))
(b) k>0에 대하여 indra≡k(modϕ(n))
(c) indr1≡0(modϕ(n)), indrr≡1(modϕ(n))
홀수인 소수 p에 대해 법 p에 대한 원시근 a가 존재한다. 이때 임의의 양의 정수 k에 대하여ak≡b(modp),1≤b≤p−1인 b를 구하는 것은 쉬우나 p가 상당히 크면 gcd(b,p)=1인 정수 b에 대하여 k=indab, 즉 ak≡b(modp),0≤i≤p−2인 정수 k를 구하는 것은 어렵다.
다음은 이산로그를 계산하는 알고리즘이다.
홀수인 소수 p와 법 p에 대한 원시근 a를 알 때 gcd(b,n)인 정수 b에 대하여 k=indab를 구하는 알고리즘이다.
1단계: 적당한 t개의 소수로 이루어진 집합 P={p1,p2,...,pt}를 고른다.
2단계: 양의 정수 j에 대하여cj≡aj(modp),1≤cj≤p−1인 정수 cj가cj=pe11pe22⋯pett(e1≥0,⋯,et≥0)의 형태로 나타나는지 확인하고, 이렇게 표현되는 cj들 중 p1,p2,...,pt가 적어도 한 번 나타나도록 t개의 bj를 택한다.
3단계: 2단계에서 얻은 식으로부터e1indap1+e2indap2+⋯+etintapt≡indacj≡j(modp−1)과 같은 형태의 t개의 합동식들로 이루어진 연립합동방정식의 해를 구한다.indap1,indap2,...,indapt4. 양의 정수 i에 대하여dk≡bai(modp),1≤dk≤p−1인 정수 dk가dk=pf11pf22⋯pftt(f1≥0,f2≥0,⋯,ft≥0)의 형태로 나타나는지 확인하고, 이렇게 표현되는 dj를 선택한다.
5단계: 4단계에서 얻은 dk에 대하여indadk≡indbai≡indab+i(modp−1)indadk≡f1indap1+f2indap2+⋯+ftindapt(modp−1)임을 이용하여 k=indab를 구한다.
소수 p=47에 대하여 a=10은 법 p에 대한 원시근이다. 앞에서의 알고리즘을 이용하여 ind1017을 구하자.
1단계: 세 개의 소수로 이루어진 집합 P={2,3,5}를 고른다.
2단계: 양의 정수 j에 대하여cj≡aj≡10j(mod47),1≤cj≤46이라 할 때 다음이 성립한다.b2≡102≡6(mod47),6=2⋅3b7≡107≡45(mod47),45=32⋅5b15≡1015≡40(mod47),40=23⋅53단계: 위의 2단계에서 얻은 결과로부터 연립합동식inda2+inda3≡2(mod46)2inda3+inda5≡7(mod46)3inda2+inda5≡15(mod46)을 얻고 이 연립합동식의 해는 다음과 같다.inda2=30,inda3=18,inda5=174단계: 양의 정수 i에 대하여dk≡bai≡17⋅10i(mod47)1≤dk≤p−1라고 할 때d12≡17⋅1012≡27(mod47),27=33이므로 다음이 성립하고ind1017+12≡3ind103(mod46)ind1017≡3⋅18−12≡42(mod46)따라서 ind1017=42이다.
고정된 정수 b(≥2)에 대하여 모든 양의 정수 n은 유일한 방법으로 다음과 같이 나타낼 수 있고m=ambm+am−1bm−1+⋯+a2b2+a1b+a0이때 m≥0, 1≤ai≤b−1(0≤i≤m)이다.
위의 n을 n의 b진법(base b)에 대한 전개식이라고 하고,n=(amam−1⋯a2a1a0)b로 나타낸다.
양의 정수 a에 대하여bm≤a<bm+1즉 [logba]=m일 때 a를 b진법으로 나타낼 때의 자리수는 m+1이고, a를 2진법으로 나타낼 때의 자리의 수를 비트(bit, binary digit)라고 한다.
전자계산기에서 정수를 나타낼 때 2진법, 8진법, 16진법으로 나타낸다. 정수를 16진법으로 나타낼 때 16개의 기호 0, 1, 2,..., 9, A, B, C, D, E, F를 사용하는데 A, B, C, D, E, F는 각각 10, 11, 12, 13, 14, 15를 뜻하고, 2진법에서 16진수는 각각 다음과 같다.
2진수 |
16진수 |
0000 |
0 |
0001 |
1 |
0010 |
2 |
0011 |
3 |
0100 |
4 |
0101 |
5 |
0110 |
6 |
0111 |
7 |
1000 |
8 |
1001 |
9 |
1010 |
A |
1011 |
B |
1100 |
C |
1101 |
D |
1110 |
E |
1111 |
F |
16진수 2FB316은 2진수 101111101100112와 같고, 16진수 A0B2F16은 다음과 같이 10진수로 나타낼 수 있다.10⋅164+0⋅163+11⋅162+2⋅16+15=68399참고자료:
암호학과 부호이론, 박승안, 경문사
Elementary Number Theory 7th edition, Burton, McGraw-Hill
'응용수학 > 암호학' 카테고리의 다른 글
[암호학] 6. 힐 암호, 폴리그-헬만 암호 (0) | 2020.10.14 |
---|---|
[암호학] 5. 아핀 암호, 치환 암호, 비즈네르 암호 (0) | 2020.10.13 |
[암호학] 4. 암호체계 (0) | 2020.10.12 |
[암호학] 3. 기초 대수학 (0) | 2020.10.11 |
[암호학] 1. 기초 정수론(1) (0) | 2020.10.09 |