1. 모듈러 연산 (Modular Arthmetic) 이란?
ㅇ 유한개 원소 만으로, 산술 연산을 하는 것
ㅇ 모듈로 n 연산 (Modulo-n Operation)
- 0 부터 n-1 까지의 제한된 정수 n개 만을 사용하여
- 산술 연산을 수행함
ㅇ 모듈로 n 연산의 표기 : ( mod n )
- 연산 결과 값이 항상 n 보다 작은 양의 정수 값이 됨 (이때, 0 포함 됨)
2. 모듈러-2 (Modulo-2) 덧셈 및 곱셈 연산
※ 기본적으로, 모듈러-2 나눗셈 연산에 기초함
- 이는, 2로 나눈 나머지 만을 염두에 두고 계산하는 것임
* 실제, 모듈러-2 덧셈과 곱셈은, 각각 XOR(배타적 논리합)과 AND(논리합) 연산으로 구현됨
ㅇ 모듈러-2 덧셈 : XOR 게이트(배타적-OR 게이트)로 구현 가능
- 논리값 : 0 ⊕ 0 = 0, 0 ⊕ 1 = 1, 1 ⊕ 0 = 1, 1 ⊕ 1 = 0
- 특징
. 같으면 = 0, 다르면 = 1
.. 동일 비트이면 연산 결과가 0, 상이한 비트이면 연산 결과가 1
.. 즉, a ⊕ b = 0 (a = b), a ⊕ b = 1 (a ≠ b)
. 항등원 : 0 (e ⊕ a = a ⊕ e = a)
. 역원 : 0의 역원은 0, 1의 역원은 1 이 됨 (각 원소의 역원이 자기자신이 됨)
.. (a ⊕ a-1 = a-1 ⊕ a = e, 0 ⊕ 0 = 0, 1 ⊕ 1 = 0)
. 1 ⊕ 1 = 0 => 1 = -1 => ∴ 뺄셈이 덧셈과 같음
. 어떤 값에 동일한 값으로 두 번 ⊕ 하면 원래 값으로 됨
.. (a ⊕ (a ⊕ b)) = b : 1 ⊕ (1 ⊕ 1 = 0) = 1
ㅇ 모듈러-2 곱셈 : AND 게이트로 구현 가능
- 논리값 : 0 ⊗ 0 = 0, 0 ⊗ 1 = 0, 1 ⊗ 0 = 0, 1 ⊗ 1 = 1
- 특징
. 하나라도 0 이면 = 0, 모두 1일 경우에 만 = 1
. 항등원 : 0 (e ⊗ a = a ⊗ e = a)
. 역원 : 0의 역원은 0, 1의 역원은 0 이 됨
.. (a ⊗ a-1 = a-1 ⊗ a = e : 0 ⊗ 0 = 0, 1 ⊗ 0 = 0)
.. 즉, 1로 나누는 연산은 변화를 주지 않음
※ 한편, 현대대수학 관점의 대수구조로 봤을 때,
- 모듈러-2 덧셈 및 곱셈은 가환군에 속함 ☞ 가환군 참조
3. 모듈러-n (Modulo-n) 덧셈 및 곱셈 연산
※ 기본적으로, 모듈러-2 연산의 확장이며,
- n으로 나눈 나머지를 염두에 두고 계산함
ㅇ 모듈러-n 덧셈
- i (modulo-n addition) j = r
. i + j를 n으로 나눈 나머지가 r
- 例) 5 (modulo-7 addition) 3 = 1
ㅇ 모듈러-n 곱셈
- i (modulo-n multiplication) j = r
. i x j를 n으로 나눈 나머지가 r
- 例) 5 (modulo-7 multiplication) 3 = 1