MATH · MID
모듈러 연산 계산기
a mod n · 모듈러 역원 · ab mod n 세 가지 연산을 모드로 골라 한 페이지에서 계산. 확장 유클리드 알고리즘과 빠른 거듭제곱 사용.
모드 선택
입력
결과
a mod n
-
-
결과 값
-
gcd(a, n)
-
검증식
-
알고리즘
-
어떻게 계산하나요
1. a mod n — 단순 나머지
a mod n = a − n × ⌊a / n⌋ (항상 0 이상 n 미만)
예: 17 mod 5 = 2 (17 = 5×3 + 2). 음수 입력도 본 계산기는 0 이상으로 보정합니다 — 예: −7 mod 5 = 3 (−7 = 5×(−2) + 3). 자바스크립트의 % 는 음수 결과를 그대로 반환하므로 별도 처리.
2. 모듈러 역원 — 확장 유클리드
a × x ≡ 1 (mod n), gcd(a, n) = 1 일 때만 존재
예: 3 의 mod 10 역원 → 3 × 7 = 21 = 2×10 + 1 → x = 7. 일반 산수의 역수(1/3)에 해당하는 정수 세계의 개념입니다. RSA 암호의 키 생성에 핵심으로 쓰입니다.
3. 거듭제곱 mod — 빠른 거듭제곱
ab mod n — square-and-multiply, O(log b)
예: 365 mod 7 = ? 65 = 64 + 1 = 26 + 20. 매 단계 제곱 후 mod 를 취해 값 폭주를 막습니다. b = 109 같은 큰 지수도 30단계 안에 끝나며, 본 계산기는 BigInt 로 정확한 결과를 보장합니다.
활용
| 분야 | 모듈러가 쓰이는 곳 |
|---|---|
| 암호학 | RSA 공개키, 디피-헬만 키교환, 디지털 서명 |
| 해시 | 해시 테이블 인덱싱, 체크섬 |
| 알고리즘 | 큰 수 결과의 mod 1e9+7 출력 (코딩 테스트 표준) |
| 일상 | 요일 계산 (n=7), 시계 산수 (n=12), ISBN 체크섬 (n=11) |
한계와 주의
- 역원 존재 조건 — gcd(a, n) ≠ 1 이면 모듈러 역원이 존재하지 않습니다. 예: a=4, n=6 → 공약수 2 가 있어 역원 없음.
- 정수만 — 분수·소수 mod 는 본 계산기 범위 밖. 정수 입력으로 한정.
- n ≥ 1 — n = 0 은 정의되지 않고, 음수 n 도 본 계산기는 |n| 으로 처리합니다.
- 큰 수 정밀도 — 거듭제곱 모드는 BigInt 로 정확. 다른 모드는 Number 안전 한계(253−1) 이내만 정확.
- 암호 보안 — 본 계산기는 학습·검증 용도. 실 암호 구현은 시간 공격 등 보안 고려가 필요해 표준 라이브러리를 사용해야 합니다.