관용 암호화 또는 공개키 암호화 등에서 곱셈에 대한 모듈러 역원을 필요로하는 경우가 더러 있습니다.
이는 유클리드 알고리즘을 통해 조금 더 쉽게 구할 수 있습니다.
유클리드 알고리즘
gcd(a,b)=gcd(b,r) r=a mod b
q:몫, r:r1을 r2로 나눈 나머지 (r=r1−q∗r2)
확장 유클리드 알고리즘
s×a+t×b=gcd(a,b)
위와 동일한 방법으로 단계를 진행하지만 s1=1,s2=0,t1=0,t2=1의 초기값을 가지고 s와t에 관해서도 진행
확장 유클리드 알고리즘을 통한 모듈러 역원
s×n+t×b=gcd(n,b)
gcd(n,b)=1이면 b는 mod n상에서 곱셈에 대한 역원을 가진다.
(1) s×n+t×b=1 mod n
(2) 0+t×b=1 mod n (s×n mod n=0)
(3) t×b=1 mod n
따라서 t는 b의 곱셈에 대한 역원이고 이 값은 확장 유클리드 알고리즘을 통해 도출해 낼 수 있다.