본문으로 건너뛰기
AZ Tools

모듈러 거듭제곱 계산기 (aᵇ mod m)

빠른 이진 거듭제곱으로 임의로 큰 정수의 a^b mod m을 정확히 계산하고, 밑의 모듈러 곱셈 역원도 함께 제공합니다. RSA, Diffie-Hellman, 정수론 작업에 적합합니다.

a^b mod m
9
a의 모듈러 역원 (mod m)2

사용법

  1. 밑(a), 지수(b), 법(m)을 입력합니다.
  2. 아주 큰 수에서도 정확히 계산된 a^b mod m을 확인합니다.
  3. 밑의 모듈러 역원을 확인합니다 — gcd(a, m) = 1일 때만 표시됩니다.
  4. a = 7, b = 256, m = 13을 입력하면 9가 나옵니다.

자세한 설명

펼치기

모듈러 거듭제곱은 a를 b제곱한 뒤 m으로 나눈 나머지를 계산합니다 — RSA, Diffie-Hellman을 비롯한 여러 암호학·정수론 작업의 핵심 연산입니다. 먼저 a^b를 구한 뒤 나머지를 취하는 방식은 큰 지수에서는 불가능하므로, 이 도구는 빠른 이진 거듭제곱(제곱-곱셈)을 사용하여 매 단계마다 m으로 나머지를 줄입니다. 모든 산술은 임의 정밀도 큰 정수로 처리되어, 밑·지수·법이 수백 자리여도 결과가 정확합니다. 또한 밑과 법이 서로소일 때마다 밑의 모듈러 곱셈 역원(a·x ≡ 1을 만족하는 x)을 함께 보고합니다. 모든 계산은 브라우저에서 로컬로 처리되며 아무것도 업로드되지 않습니다.

자주 묻는 질문

왜 a^b를 먼저 구하고 나머지를 취하면 안 되나요?

큰 지수에서는 a^b의 자릿수가 천문학적이라 실제로 만들 수 없습니다. 제곱-곱셈은 모든 중간값을 m² 미만으로 유지하므로 지수 크기와 무관하게 빠르고 정확합니다.

모듈러 역원 줄은 무엇인가요?

a·x ≡ 1 (mod m)을 만족하는 수 x입니다. 밑과 법이 공약수를 갖지 않을 때(gcd = 1)에만 존재하며, 그렇지 않으면 역원이 없다고 표시됩니다. 모듈러 산술에서 '나눗셈'에 쓰이는 값입니다.

지수가 0이면 무엇이 나오나요?

a^0 mod m은 임의의 밑에 대해 1입니다(m = 1이면 0). 지수는 음이 아닌 정수여야 하며, 밑은 음수일 수 있고 먼저 0…m−1 범위로 정규화됩니다.

이 계산을 실제 키 자료에 써도 되나?

안 된다. 산술 자체는 맞지만, 실제 구현은 상수 시간이기도 해야 한다. 소박한 제곱-곱셈 방식은 지수의 비트에 따라 걸리는 시간이 달라지고, 그 시간 차이로 운영 중인 시스템에서 개인키를 복원한 사례가 있다. 이건 이해하고 결과를 확인하는 데 쓰고, 비밀에 닿는 일에는 검증된 라이브러리를 쓰라.

그렇게 큰 지수가 어떻게 계산 가능해지나?

매 단계마다 m으로 나머지를 취해 숫자가 법의 크기를 넘어 자라지 않게 하고, 반복해서 곱하는 대신 제곱을 쓰기 때문이다. 그러면 1000비트짜리 지수가 천문학적으로 긴 연쇄가 아니라 약 1000번의 제곱이 된다. 지수의 크기가 시간에 대략 선형으로 영향을 주면서, 지수의 값 자체는 비용 어디에도 나타나지 않는 이유가 이것이다.

관련 도구