연속제곱법: a^k (mod m) 빨리 계산하기
- k를 2의 거듭제곱의 합으로 표현
k = u0*A0 + u1*A1 +...+ ur*Ar - 각각의 제곱들을 mod 연산하기
a ≡ A0 (mod m)
a^2 ≡ A1 (mod m)
a^4 ≡ A2 (mod m)
a^8 ≡ A3 (mod m)
...
a^r ≡ Ar (mod m) - 구한 A들을 가지고 연산하기
A0^u0*A1^u1*...*Ar^ur ≡ a^(u02^0 + u12^1 + ... ur2^r) ≡ a^k (mod m)
법 m에 대한 k제곱근 구하기
x^k ≡ b (mod m)에서
gcd(b, m)=1, gcd(k, ϕ(m)) = 1이라면
- ϕ(m) 계산하기
- ku-ϕ(m)v = 1인 양의 정수 u, v를 구함
- b^u를 연속제곱법으로 계산
- x ≡ b^u (mod m)
- 증명
x^(ku) ≡ x^(ϕ(m)v + 1) ≡ b^u (mod m)
오일러 정리에 의해 x*1^v ≡ x ≡ b^u (mod m)
728x90
반응형
'정수론' 카테고리의 다른 글
[정수론](13)[소수 판정과 카마이클 수] (0) | 2025.04.30 |
---|---|
[정수론](12)[RSA 암호] (0) | 2025.04.29 |
[정수론](10)[무한소수정리] (0) | 2025.04.25 |
[정수론](9)[ϕ(m) 계산 & 중국인의 나머지 정리] (0) | 2025.04.24 |
[정수론](8)[오일러 정리] (3) | 2025.04.21 |