모듈형 승법 역법
Modular multiplicative inverse수학에서, 특히 산술 영역에서, 정수 a의 모듈형 승법 역수는 정수 x이므로, 산술적 m에 관해서 제품 도끼가 1과 일치한다.[1] 모듈식 산술의 표준 표기법에는 다음과 같이 쓰여 있다.
즉, m이 수량 도끼 - 1을 나누거나, 다른 방법으로 말하면, 도끼를 정수 m로 나눈 후의 나머지는 1이다. 만약 a가 역모듈로 m을 가지고 있다면, 이 합성의 해결책은 무한히 많으며, 이 합성은 이 모듈루와 관련하여 합치 등급을 형성한다. 더욱이 a(즉, a의 조합 등급)에 합치되는 정수는 모듈형 곱셈 역으로서 x의 조합 등급의 어떤 요소도 가지고 있다. {w의 표기법을 사용하여 w를 포함하는 합선 의 modulo 곱셈 역(modulo multiplicated inverse) a {a가) 다음과 같은 합선 클래스 이라고 말할 수 있다.
여기서 기호 는 동등성 등급 modulo m의 곱셈을 나타낸다.[2] 이렇게 쓰여져 있는 것은, 이성적 또는 실수의 집합에서 일반적인 승법적 역수의 개념과 유추하는 것이 뚜렷하게 나타나, 합법 등급으로 숫자를 대체하고, 2진법 연산을 적절하게 변경한다.
실제 숫자에 대한 유사 연산과 마찬가지로, 이 연산의 근본적 사용은 가능한 경우 형태의 선형 결합을 해결하는 데 있다.
모듈형 다중 인버를 찾는 것은 또한 암호학 분야, 즉 공개키 암호학 및 RSA 알고리즘 분야에서 실용적인 응용을 가지고 있다.[3][4][5] 이러한 응용 프로그램의 컴퓨터 구현을 위한 이점은 모듈형 승법 인버스의 계산에 사용할 수 있는 매우 빠른 알고리즘(확장 유클리드 알고리즘)이 존재한다는 것이다.
모듈식 산술
주어진 양의 정수 m에 대해, 두 정수인 a와 b는 m이 그 차이를 나눈다면 합치되는 modulo m이라고 한다. 이 이항 관계는 다음과 같다.
이는 정수 Ⅱ의 집합에 대한 등가관계로, 등가계급을 응고계급 modulo m 또는 잔류계급 modulo m이라고 한다. 이(가) 정수 a를 포함하는 일치 클래스를 나타내도록 한 [6]다음
선형 결합은 형태의 모듈 결합이다.
실제에 걸친 선형 방정식과 달리, 선형 결합은 0, 하나 또는 여러 개의 해답을 가질 수 있다. x가 선형 결합의 해결책이라면 의에 있는 모든 요소도 해결책이므로, 선형 결합의 해결책 수를 말할 때, 우리는 해결책을 포함하는 서로 다른 결합 등급의 수를 언급하고 있다.
d가 a와 m의 가장 큰 공통점인 경우, d가 b를 나누는 경우에만 선형 결합 도끼 ≡ b(mod m)에 해결책이 있다. 만약 d가 b를 나누면, 정확히 d 솔루션이 있다.[7]
계량 m에 대한 정수 a의 모듈형 곱셈 역은 선형 합치의 해법이다.
앞의 결과는 gcd(a, m) = 1, 즉 a와 m이 상대적으로 prime(즉, coprime)이어야 하는 경우에만 해결책이 존재한다고 말한다. 더욱이, 이 조건이 유지되면 정확히 하나의 해결책이 있다. 즉, 그것이 존재할 때 모듈형 승법 역은 독특하다.[8]
도끼 ( 1 (mod m)에 용액이 있을 경우, 흔히 다음과 같이 표시된다.
그러나 이는 의 역수(모듈식 승수 역수와는 반대로 a가 1 또는 -1인 경우를 제외하고는 정수가 아님)로 잘못 해석될 수 있으므로 표기법 남용이라고 볼 수 있다. 조합 클래스의 곱셈 역은 다음 절에 정의된 곱셈과 함께 조합 클래스가 되기 때문에 합성 클래스 를 위한 토큰으로 해석되는 경우 표기법이 적절할 것이다
Integers moduleo m
조합 관계 modulo m은 정수 집합을 m 조합 클래스로 분할한다. 이러한 m 객체에 대해 다음과 같은 방법으로 덧셈과 곱셈의 연산을 정의할 수 있다. 두 개의 일치 클래스를 추가하거나 곱하기 위해서는 먼저 각 클래스에서 대표(어떠한 방법으로)를 선택한 다음, 두 대표에 대한 정수에 대해 통상적인 연산을 수행하고 마지막으로 일치 클래스에 대한 연산의 결과로 정수 연산 결과가 있는 일치 클래스를 취한다. 기호에서, 클래스에 대한 작업을 나타내는+ m 및 m m 이(가) 있는 경우, 이러한 정의는 다음과 같다.
그리고
이러한 운영은 잘 정의되어 있으며, 최종 결과는 결과를 얻기 위해 이루어진 대표자의 선택에 좌우되지 않는다는 것을 의미한다.
이 두 가지 정의된 연산을 가진 m 결합 클래스는 정수 modulo m의 링이라고 불리는 링을 형성한다. 이러한 대수적 객체에 사용되는 몇 가지 표기법이 있는데, 은 Z//m/m/m 또는 Z/ 을(를) 사용하지만 여러 개의 기본 텍스트와 응용 영역에서는 다른 수치와의 혼동 시 }{m을 사용한다.용맹한 물체는 거의 없을 것이다.
정수 modulo m의 조합 클래스는 전통적으로 잔류물 클래스 modulo m으로 알려져 있는데, 이는 조합 클래스의 모든 요소가 m으로 나눌 때 동일한 잔차(즉, "residue")를 갖는다는 사실을 반영한다. 각 정수가 다른 조합 등급 모듈로 m에서 나오도록 선택한 모든 m 정수를 잔류물 모듈로 m의 완전한 시스템이라고 한다.[9] 분할 알고리즘은 정수 집합인 {0, 1, 2, ..., m - 1이 잔류물 모듈로 m의 전체 시스템을 형성하고 있으며, 이는 최소 잔류물 시스템 모듈로 m으로 알려져 있다. 산술 문제를 다룰 때, 때로는 잔존물의 완전한 시스템으로 작업하는 것이 더 편리하고 조합 언어를 사용하는 것이 더 편리한 반면, 다른 때에는 링 Z 의 조합 클래스의 관점이 더 유용하다.[10]
정수 modulo m의 승법군
완전한 잔류물 시스템의 모든 요소가 모듈형 승법 역수를 가지는 것은 아니다. 예를 들어, 0은 절대 그렇지 않다. m에 비교적 원시적이지 않은 완전 잔류 시스템의 원소를 제거한 후, 남은 것을 감량 잔류 시스템이라고 하며, 그 원소의 모든 원소는 모듈식 곱셈을 가지고 있다. 감소된 잔류물 시스템에서 원소의 수는 ( m) 인데 여기서 }은 euler totent 함수, 즉, m에 상대적으로 원시적인 m보다 작은 양의 정수 수입니다.
단결을 가진 일반적인 고리에서는 모든 원소가 승법 역수를 갖는 것은 아니며, 그러한 역수를 단위라고 한다. 두 개의 단위의 제품이 하나의 단위이므로, 하나의 단위가 그룹을 형성하고, R이 반지의 이름이라면 R로× 표기하는 경우가 많다. 정수모듈로 m의 링 단위 집단을 정수모듈로 m의 곱셈 집단이라고 하며, 감소된 잔류 시스템에 대해 이형성이 있다. 특히 주문(크기), ) 스타일 이(가) 있다
In the case that m is a prime, say p, then and all the non-zero elements of have multiplicative inverses, thus is a finite field. 이 경우 정수 modulo p의 곱셈 그룹은 순서 p - 1의 순환 그룹을 형성한다.
예
위의 정의를 설명하려면 계량 10을 사용하여 다음 예를 고려하십시오.
예를 들어, 두 정수는 그들의 차이가 10으로 분할될 경우에만 합치된 모드 10이다.
- 나누기 3212 ( )
- ( ) 1 10은 111 - 1 = 110을 나누기 때문이다.
이 계수에 관한 10개의 합치계급 중 일부는 다음과 같다.
- = {- - , 5, 그리고
선형 결합성 4x ≡ 5 (mod 10)는 5 (, 5 에 해당하는 정수는 모두 홀수인 반면 4x는 항상 짝수이기 때문에 해결책이 없다. 그러나 선형 결합성 4x ≡ 6 (mod 10)에는 두 가지 해법, 즉 x = 4와 x = 9가 있다. gcd(4, 10) = 2와 2는 5를 나누지 않고 6을 나눈다.
gcd(3, 10) = 1이므로 선형 결합 3x ≡ 1 (mod 10)에는 3 modulo 10의 모듈형 승법(modulo 10)이 존재할 것이다. 실제로 7은 이러한 합치를 만족시킨다(즉, 21 - 1 = 20). 그러나 다른 정수들 역시 예를 들어 17과 -3(예: 3(17) - 1 = 50, 3(-3) - 1 = -10)과 같은 합치를 만족한다. 특히 의 모든 정수는 일부 정수 r에 대해 7 + 10r 형식을 갖기 때문에 합치를 만족시킬 것이다.
10으로 나누어질 수 있다. 이 합치는 오직 하나의 합치 등급의 해결책만을 가지고 있다. 이 경우의 해결책은 가능한 모든 경우를 점검하여 얻을 수 있었지만, 보다 큰 모듈리에 대해서는 체계적인 알고리즘이 필요하며, 이러한 알고리즘은 다음 절에 제시될 것이다.
The product of congruence classes and can be obtained by selecting an element of , say 25, and an element of , say −2, and observing that their product (25)(−2) = -50은 congruence class 따라서 = 추가는 유사한 방식으로 정의된다. 10개의 조합 클래스와 이러한 조합 클래스의 추가 및 곱셈 작업은 정수 모듈로 10의 링(즉, Z / {\}})을 형성한다
전체 잔류물 시스템 모듈로 10은 각 정수가 다른 조합 등급 모듈로 10에 있는 {10, -9, 2, 13, 24, -15, 26, 37, 8, 9} 집합일 수 있다. 고유한 최소 잔류 시스템 모듈로 10은 {0, 1, 2, ..., 9}. 감소된 잔류 시스템 모듈로 10은 {1, 3, 7, 9}일 수 있다. 이 숫자로 대표되는 두 개의 합치 등급의 산출물은 다시 이 네 가지 합치 등급 중 하나이다. 이는 이 네 가지 조합 등급이 그룹을 형성한다는 것을 의미하며, 이 경우 3 또는 7을 a (복제) 발전기로 갖는 순서 4의 순환 그룹이 된다. 표시된 결합 클래스는 링 / Z 의 단위 그룹을 형성한다 이러한 결합 클래스는 정확히 모듈식 곱셈 클래스가 있는 클래스들이다.
연산
확장유클리드 알고리즘
![]() | Wikibook 알고리즘 구현에 다음 주제의 페이지가 있음: 확장 유클리드 알고리즘 |
modulo m의 모듈형 곱셈 역은 확장 유클리드 알고리즘을 사용하여 찾을 수 있다.
유클리드 알고리즘은 a와 m이라는 두 정수의 최대 공통점(gcd)을 결정한다. a에 승법 역모듈로 m이 있으면 이 gcd는 1이어야 한다. 알고리즘에 의해 생성된 몇 개의 방정식 중 마지막은 이 gcd에 대해 해결될 수 있다. 그 후, 「백 치환」이라는 방법을 사용해, 원래의 파라미터와 이 gcd를 연결하는 표현을 얻을 수 있다. 즉, 정수 x와 y는 베주트의 정체성을 만족시키는 것을 발견할 수 있다.
다시 썼어, 이건
그것은
따라서, a의 모듈형 곱셈 역이 계산되었다. 알고리즘의 보다 효율적인 버전은 확장된 유클리드 알고리즘으로, 보조 방정식을 사용함으로써 알고리즘을 통과하는 두 개의 패스(뒤로 치환되는 알고리즘을 역방향으로 통과하는 것으로 생각할 수 있음)를 단 하나의 패스로 감소시킨다.
빅 O 표기법에서 이 알고리즘은 시간 O(log(m)2로 실행되며, < m>을 가정하며, 대안인 지수보다 매우 빠르고 일반적으로 더 효율적인 것으로 간주된다.
오일러의 정리 사용
확장된 유클리드 알고리즘의 대안으로 오일러의 정리는 모듈형 인버스를 계산하는 데 사용될 수 있다.[11]
오일러의 정리에 따르면 a가 m에 coprime이면, 즉 gcd(a, m) = 1이고,
여기서 은 (는) 오일러의 토털 함수다. 이는 a가 m에 복사된 경우에만 × 승수 그룹 Z) 에 속한다는 사실에서 비롯된다. 따라서 모듈형 승법 역은 다음과 같이 직접 찾을 수 있다.
m이 prime인 특별한 경우, () = - 은 다음과 같이 모듈형 역이 주어진다.
이 방법은 일반적으로 확장된 유클리드 알고리즘보다 느리지만, 모듈형 지수를 위한 구현이 이미 이용 가능한 경우에 사용된다. 이 방법의 일부 단점은 다음과 같다.
- ( ) 값을 알아야 하며 가장 효율적인 것으로 알려진 연산에는 m의 인자화가 필요하다. 인자화는 계산적으로 어려운 문제라고 널리 믿어진다. 그러나 m의 prime factorization을 알 때 을(를) 계산하는 것은 간단하다.
- 지수의 상대적 비용. 모듈형 지수를 사용하여 보다 효율적으로 구현될 수 있지만 m의 큰 값이 관련될 때 이는 몽고메리 감소법으로 가장 효율적으로 계산된다. 이 알고리즘 자체는 모듈형 역모드 m을 필요로 하는데, 이것은 애초에 계산되어야 할 것이다. 몽고메리법이 없다면 매 단계마다 분할모드 m이 필요한 표준 이항지수가 m이 클 때 느린 연산이다.
이 기법의 한 가지 주목할 만한 장점은 a의 가치에 의존하는 조건부 분기가 없기 때문에, 공개키 암호화에 중요한 비밀이 될 수 있는 a의 가치는 사이드 채널 공격으로부터 보호될 수 있다는 것이다. 이러한 이유로 Curve25519의 표준 구현에서는 이 기법을 사용하여 역산한다.
다중 인버스
유클리드 알고리즘의 단일 호출과 추가 입력당 3배의 곱을 사용하여 공통 m인 복수 숫자 a의i 역수를 계산할 수 있다.[12] 기본적인 아이디어는 모든 a의i 산물을 형성하고, 그것을 뒤집은 다음, 원하는 a만을−1
i 남기기 위해 모든 j ≠ i에 대해j a를 곱하는 것이다.
보다 구체적으로, 알고리즘은 (모든 산술 수행 modulo m):
- 접두사 제품 =∆ j = = - b_{}-1를 계산한다.
- 사용 가능한 알고리즘을 사용하여 b를−1
n 계산한다. - n에서 2까지 계산하는 i의 경우
- a−1
i = b−1
ibi−1 and - b−1
i−1 = b−1
iai.
- a−1
- 마지막으로−1
1 a = b−1
1.
병렬 컴퓨팅을 이용하기 위해 선형적으로가 아니라 트리 구조에서 승수를 수행하는 것이 가능하다.
적용들
모듈형 곱셈 역학을 찾는 것은 모듈형 산술 이론에 의존하는 알고리즘에 많은 응용이 있다. 예를 들어, 암호학에서 모듈식 산술의 사용은 일부 연산을 더 빠르고 더 적은 스토리지 요구사항으로 수행할 수 있게 하는 반면, 다른 연산은 더 어려워진다.[13] 이 두 가지 특징은 모두 장점을 살리는 데 사용할 수 있다. 특히 RSA 알고리즘에서는 메시지 암호화 및 암호 해독을 신중하게 선택한 계수에 대해 곱셈인 숫자 쌍을 사용하여 수행한다. 이 숫자 중 하나는 공개되어 빠른 암호화 절차에 사용될 수 있으며, 다른 하나는 암호 해독 절차에 사용되는 것으로, 숨겨져 있다. 공적인 번호에서 숨겨진 번호를 결정하는 것은 계산적으로 불가능하다고 간주되며, 이것이 시스템이 프라이버시를 보장하기 위해 작동하도록 하는 것이다.[14]
다른 맥락에서 또 다른 예로 컴퓨터 과학에서 각각 k로 나누어질 수 있는 홀수 단어 크기의 숫자 목록을 가지고 있고 그것들을 모두 k로 나누기를 원하는 정확한 분할 문제를 생각해 보라. 한 가지 해결책은 다음과 같다.
- 확장된 유클리드 알고리즘을 사용하여 k mod 2의w 모듈형 곱셈 역인 k를−1 계산한다. 여기서 w는 단어의 비트 수입니다. 이 역은 숫자가 홀수이고 계수가 홀수 인자가 없기 때문에 존재할 것이다.
- 목록의 각 숫자에 대해−1 k를 곱하고 결과 중 가장 유의하지 않은 단어를 취하십시오.
많은 기계들, 특히 분할에 대한 하드웨어 지원이 없는 기계들에서는 분할이 곱셈보다 느린 동작이기 때문에 이 접근방식은 상당한 속도를 낼 수 있다. 첫 단계는 비교적 느리지만 한 번만 하면 된다.
모듈형 승법 인버스는 중국 나머지 정리(Chinese Remarity Organization)에 의해 보장된 선형 합법 시스템의 해답을 얻기 위해 사용된다.
예를 들어, 시스템
- X ≡ 4 (모드 5)
- X ≡ 4 (모드 7)
- X ≡ 6 (mod 11)
5,7과 11은 쌍으로 이루어진 복사임이기 때문에 공통적인 해결책을 가지고 있다. 해결책은 다음에 의해 주어진다.
- X = t1 (7 × 11) × 4 + t2 (5 × 11) × 4 + t3 (5 × 7) × 6
어디에
- t1 = 3은 7 × 11 (mod 5)의 모듈형 승법 역법이다.
- t2 = 6은 5 × 11 (mod 7)의 모듈형 승법 역법이다.
- t3 = 6은 5 × 7 (mod 11)의 모듈형 승법 역이다.
그러므로
- X = 3 × (7 × 11) × 4 + 6 × (5 × 11) × 4 + 6 × (5 × 7) × 6 = 3504
그리고 그 독특한 축소된 형태로
- X ≡ 3504 ≡ 39 (mod 385)
385는 5,7과 11의 LCM이기 때문이다.
또한 모듈형 곱셈 역수는 클루스터만 합계의 정의에서 두드러지게 나타난다.
참고 항목
- 반전성 조합형 발생기 - 모듈식 승법 인버스를 사용하는 의사 난수 발생기
- 합리적 재구성(수학)
메모들
- ^ 로젠 1993, 페이지 132.
- ^ 슈마허 1996, 페이지 88.
- ^ Stinson, Douglas R. (1995), Cryptography / Theory and Practice, CRC Press, pp. 124–128, ISBN 0-8493-8521-0
- ^ 트라페 & 워싱턴 2006페이지 164-169.
- ^ Moriarty, K.; Kaliski, B.; Jonsson, J.; Rusch, A. (2016). "PKCS #1: RSA Cryptography Specifications Version 2.2". Internet Engineering Task Force RFC 8017. Internet Engineering Task Force. Retrieved January 21, 2017.
- ^ [a]와 [a]m를 포함한 다른 표기법이 자주 사용된다.
- ^ 아일랜드 & 로젠 1990, 페이지 32
- ^ Shoup, Victor (2005), A Computational Introduction to Number Theory and Algebra, Cambridge University Press, Theorem 2.4, p. 15, ISBN 9780521851541
- ^ 로젠 1993, 페이지 121
- ^ 아일랜드 & 로젠 1990, 페이지 31
- ^ 토마스 코시 응용 프로그램이 있는 기본 번호 이론, 2판. ISBN 978-0-12-372487-8. 페이지 346.
- ^ Brent, Richard P.; Zimmermann, Paul (December 2010). "§2.5.1 Several inversions at once" (PDF). Modern Computer Arithmetic. Cambridge Monographs on Computational and Applied Mathematics. Vol. 18. Cambridge University Press. pp. 67–68. ISBN 978-0-521-19469-3.
- ^ 트라페 & 워싱턴 2006 페이지 167
- ^ 트라페 & 워싱턴 2006 페이지 165
참조
- Ireland, Kenneth; Rosen, Michael (1990), A Classical Introduction to Modern Number Theory (2nd ed.), Springer-Verlag, ISBN 0-387-97329-X
- Rosen, Kenneth H. (1993), Elementary Number Theory and its Applications (3rd ed.), Addison-Wesley, ISBN 978-0-201-57889-8
- Schumacher, Carol (1996). Chapter Zero: Fundamental Notions of Abstract Mathematics. Addison-Wesley. ISBN 0-201-82653-4.
- Trappe, Wade; Washington, Lawrence C. (2006), Introduction to Cryptography with Coding Theory (2nd ed.), Prentice-Hall, ISBN 978-0-13-186239-5
외부 링크
- Weisstein, Eric W. "Modular Inverse". MathWorld.
- Guevara Vasquez, 페르난도는 유클리드 알고리즘을 사용하여 modulo 곱셈 역학을 푸는 해결된 예를 제공한다.