본문으로 건너뛰기

모듈러 거듭제곱 계산기

정확한 BigInt 반복 제곱으로 음수 밑·경계 사례를 포함한 a^b mod m을 계산하세요.

모듈러 거듭제곱

브라우저에서 처리해요.

4^13mod 497 → —

최대 1,000자리 정수. 음수도 허용합니다.

최대 500자리의 0 이상 정수.

최대 1,000자리 양의 정수.

모듈러 결과

정수 밑, 0 이상 지수, 양의 법을 입력하세요.

사용 방법

정수 a, 0 이상 정수 b, 양의 정수 m을 입력하세요. 회색 예시 4, 13, 497은 445입니다. 입력란을 처음 선택하면 예시 세 값이 지워져 직접 입력과 구별됩니다. 음수 밑은 허용하고 음수 지수는 제외합니다.

계산·Enter로 현재 식을 확정하세요. 입력 수정은 이전 나머지·복사를 즉시 지워 미완성 입력의 답으로 보이지 않게 합니다. 지우기는 세 칸을 비우고 예시를 복원하지 않습니다. 모든 값을 부동소수점이 아닌 정확한 정수로 읽습니다.

반복 제곱 방법

먼저 밑을 0~m−1로 정규화하고 지수를 이진수로 읽습니다. 각 단계에서 최하위 비트가 1이면 현재 인수를 결과에 곱하고 인수를 제곱해 mod m으로 줄입니다. 단계 사이 지수는 2로 나눕니다. 이진 거듭제곱·제곱 후 곱셈 방법입니다.

곱할 때마다 나머지로 줄여 보통 거대한 a^b 전체를 만들지 않습니다. 반복 수는 b 자체가 아닌 이진 자릿수에 비례합니다. 정확한 BigInt 곱·나머지로 부동소수점 정밀도 손실을 피합니다.

결과 읽기

결과는 a^b mod m의 표준 0 이상 대표값입니다. 정규화된 밑은 거듭제곱 전 a mod m으로 음수·큰 밑 확인에 유용합니다. 단계 수는 처리한 지수 비트 수이며 지수값 자체가 아닙니다.

작고 안전한 예시는 직접 정수 거듭제곱의 나머지도 비교합니다. 큰 지수는 전체 거듭제곱 생성이 알고리즘 취지에 어긋나므로 반복 제곱 검증으로 표시합니다. 모든 단계에서 정확한 모듈러 항등식을 사용합니다.

풀이 예시

4^13 mod 497은 445입니다. 4^13 = 67,108,864를 497로 나눈 나머지도 445여서 직접 검산과 일치합니다.

(−2)^5 mod 7은 정규화 밑 5, 나머지 3입니다. 양의 m에 a^0 mod m은 1 mod m으로 시작하므로 99^0 mod 13 = 1, 99^0 mod 1 = 0입니다. 법 1은 오류가 아닙니다.

제한 사항과 문제 해결

지수는 0 이상, 법은 양수여야 합니다. 법 0·음수는 거부합니다. 밑·법은 유효 10진 1,000자리, 지수는 500자리까지로 일반 숫자 정밀도를 넘는 값을 다루면서 브라우저 작업을 제한합니다.

쉼표, 내부 공백, 소수점, 과학적 표기, 분수, 식 없이 10진 정수만 입력하세요. 빼기 부호는 밑에만 허용합니다. 음수 지수의 모듈러 역원은 계산하지 않으므로 별도 역원 계산기에서 서로소 조건을 확인하세요.

용도와 보안 범위

모듈러 거듭제곱은 정수론, 소수 관련 알고리즘, 순환 패턴, 암호 프로토콜에 쓰입니다. 이 페이지는 계산 확인·수업 예시용이며 상수 시간, 키 생성, 난수, 패딩, 프로토콜 검증, 부채널 보호를 제공하는 암호 라이브러리가 아닙니다. 결과만으로 보안 시스템을 설계·인증하지 마세요.

복사에는 식, 나머지, 정규화 밑, 단계 수, 검증이 포함됩니다. 숫자만으로 합동류를 알 수 없으므로 법도 보관하세요. 다른 도구와 비교할 때 음수 밑에도 0 이상 나머지를 쓰는지 확인하세요.

FAQ

음수 밑의 결과가 양수인 이유는 무엇인가요?

0~m−1의 표준 대표값을 반환하기 때문입니다.

지수 0도 허용하나요?

네. 결과는 1 mod m이며 m=1이면 0입니다.

음수 지수를 쓸 수 있나요?

아니요. 모듈러 역원과 해당 서로소 조건이 필요합니다.

전체 거듭제곱을 계산하나요?

아니요. 곱할 때마다 나머지로 줄입니다.

암호 키에 써도 안전한가요?

강화된 암호 구현이 아닌 학습용 산술 도구입니다.