모듈러 연산(Modular arithmetic)은 정수에 대한 연산으로, 서로 다른 두 정수를 특정 수로 나눈 나머지가 같을 때 이 두 정수를 동일하게 취급하는 연산이다. 이때 나누는 수를 모듈러(modulus)라고 한다.
모듈러 연산은 여러 분야에서 실용적으로 활용된다. 암호학에서는 데이터를 안전하게 전송하고 저장하는 데 사용되며, 컴퓨터 과학에서는 해시 함수(hash function) 구현이나 배열의 인덱스(index) 계산에 활용된다.
모듈러 연산은 다음과 같은 성질을 가진다:
이러한 성질들을 활용하면 큰 수의 연산 결과를 더 효율적으로 계산할 수 있다.
예를 들어, (14 + 27) % 5를 계산할 때는 먼저 14 % 5 = 4와 27 % 5 = 2를 구한 뒤, (4 + 2) % 5 = 1을 계산한다. 이는 (14 + 27) % 5 = 1과 같은 결과이다.
또한, (21 * 13) % 7의 경우 21 % 7 = 0과 13 % 7 = 6을 먼저 계산한 후, (0 * 6) % 7 = 0을 구한다. 이는 (21 * 13) % 7 = 0과 동일한 결과이다.
이처럼 모듈러 성질을 이용하면 큰 수의 덧셈, 뺄셈, 곱셈을 더 작은 수의 모듈러 연산으로 대체할 수 있다.