토넬리-상크스 알고리즘

Tonelli–Shanks algorithm

Tonelli-Shanks 알고리즘(Shanks가 RESSOL 알고리즘으로 칭함)은 r2 대해 r을 frime인 r ≡ n (mod p) 형식의 합치에서 해결하기 위해 모듈식 산술에 사용된다. 여기서 pprime: n modulo p의 제곱근을 찾기 위해 사용된다.

Tonelli-Shanks는 합성 모듈리에 사용할 수 없다: 제곱근 모듈로 합성수를 찾는 것은 정수 인자화에 해당하는 계산적 문제다.[1]

이 알고리즘의 등가지만 약간 더 중복된 버전은 1891년 Alberto Tonelli[2][3] 의해 개발되었다.여기서 논의된 버전은 1973년 다니엘 샨크스가 독자적으로 개발한 것으로, 그는 다음과 같이 설명했다.

내가 이러한 역사적 참고 문헌을 늦게 알게 된 것은 내가 딕슨 역사 1권을 친구에게 빌려주었기 때문인데, 그것은 결코 돌려주지 않았다.[4]

딕슨에 따르면,[3] 토넬리의 알고리즘은 프라임과는 별개λ x모듈로 프라임 파워의 제곱근을 가질 수 있다.

핵심 아이디어

0이 아닌 (와) 홀수 를) 볼 때 기준은 다음과 같은 경우에만 제곱근(즉, 즉, 2차적 잔류물)을 갖는다는 것을 알 수 있다.

- ( p) 1

이와 대조적으로 z {\ z에 제곱근(비재시듀)이 없는 경우 오일러의 기준은 다음을 알려준다.

- - ( p)

z 을(를 찾는 것은 어렵지 않다 1과 - 사이의 정수의 절반은 이 속성을 가지고 있기 때문이다그래서 우리는 우리가 그러한 비재고체에 접근할 수 있다고 가정한다.

(보통) 2로 나누면 - 1 을 Q 쓸 수 있는데 서 Q 홀수다.주의할 점은 다음과 같다.

+ ( )

then . If , then is a square root of . Otherwise, for , 다음과 R {\R} t {\을(를) 만족시키십시오.

  • ( ) ; 및
  • is a -th root of 1 (because ).

위의 내용을 만족하는 M 대해 R {\displaystyle t 을(를) 선택할 경우(여기서 의 제곱근은 ) M- 대해 R t을 쉽게 계산할 수 있다.위의 관계가 유지되도록 을(를) 반복하면 이(가) 0 2 -1번째 루트가 될 때까지, 즉 t= 그 점에서 n}은 n의 제곱근이다

(를) - - 1의 세 번째 루트인지 확인하고 1인지 확인할.만약 그렇다면, 우리는 아무것도 할 필요가 없다. R t 의 선택이 통한다.그러나 그렇지 않다면 - 2 은 -1이어야 한다(스퀴링하면 1을 주고, 1모듈로 의 제곱근 1과 -1만 있을 수 있기 때문이다).

쌍을 찾으려면 R R에 요인 b 을 곱하여 결정하면 된다.Then must be multiplied by a factor to keep . So we need to find a factor so that is a }}}의 -1번째 루트 또는 하게 -1의 - 루트다.

여기서 비결은 알려진 비 residue인 을(를) 이용하는 것이다.위에 나타낸 에 적용된 오일러의 기준은 가 -1의 - -throot라고 되어 있다.그래서 z 반복적으로 제곱함으로써 -1의 2 -throot에 접근할 수 있다.는 b{\의 역할을 할 적절한 것을 선택할 수 있다 약간의 가변적 유지와 사소한 사례 압축으로 아래 알고리즘이 자연스럽게 등장한다.

알고리즘

정수 modulo p / p {\ 곱셈 그룹의 원소에 대한 연산 및 비교는 암시적으로 p이다.

입력:

  • p, prime
  • n 합치 r2 = n에 대한 솔루션이 존재하도록 / }의 요소, 이 경우 n은 2차 잔류물 모드 p라고 한다.

출력:

  • in Z/ 이런2 r = n

알고리즘:

  1. 2의 힘을 감안하여 - 1= 같은 Q와 S를 찾으십시오.
  2. / 에서 2차 비residue인 z 검색
  3. 내버려두다
  4. 루프:
    • t = 0이면 r = 0 반환
    • t = 1이면 r = R반환하십시오.
    • 그렇지 않으면 스퀴링을 사용하여 최소 i, 0 < i < M, t i = 와 같은 값을 찾으십시오.
    • 2 - - 1 를) 설정하고 설정한다.

의 합치를 해결한 후에는 -r( t = 1 M이면 합성에 대한 해법이 존재하지 않으며, 즉 n은 2차 잔류물이 아니다.

이것은 p ≡ 1 (mod 4)일 때 가장 유용하다.

p ≡ 3 (mod 4)과 같은 프리타임의 경우, 이 문제는 가능한 r=± + 1 ( p) n. 2 p n을(를) 만족한다면 그것만이 해결책이다그렇지 않다면 - n ) n은 2차 비재시듀이며 해결책은 없다.

증명

우리는 루프의 각 반복이 시작될 때 다음과 같은 루프 불변성이 다음을 지탱한다는 것을 보여줄 수 있다.

초기:

  • - = z 2 - 1= - =- }}=zz는 오일러의 기준에 따라 2차 비잔치 비잔치 비잔치이기 때문에)
  • - 1= n - 1= n - 1 = -1 = 1 t^{2S-1}=1n^{\p-1}=nn은 2차 잔류물이기 때문에)

각각의 반복에서, M' , c' , t' , R'으로 M, c, t, R:를 대체하는 새로운 값을 사용한다.

    • since we have that but (i is the least value such that )

- = t} 및 루프 시작 시 t = 1 t = tM은 각 반복 시 엄격히 작아져 알고리즘이 중지됨을 보증한다.조건 t = 1에 도달하고 정지하면 마지막2 루프 불변성은 R = n을 암시한다.

t순서

우리는 요소들의 순서를 이용하여 루프 불변성을 교대로 표현할 수 있다.

  • = 이전과 같이 R

알고리즘의 각 단계는 t의 정확한 순서를 측정하고 동일한 순서의 요소를 곱하여 t를 더 작은 하위 그룹으로 이동시킨다.

r2이 일치를 해결하려면 ≡ 5(41mod). 필요할 때 41총리는 41≡ 1(모드 4)오일러의 기준에 의해.5는 평방 잉여:541− 12=520=1{5^\displaystyle{\frac{41-1}{2}}=5^{20}=1}}은 암시적으로 mo.×{\displaystyle(\mathbb{Z}/41\mathbb{Z})^{\times}(전처럼,에서 작전(Z/41Z)d41).

  1. - = = 3 Q 5 Q
  2. z 값 찾기:
    • - = 1 따라서 2는 오일러의 기준으로 볼 때 2차 잔류물이다.
    • - = = =- 1 3 따라서 3은 2차 비잔상: z 3 z 화살표
  3. 세트
  4. 루프:
    • 첫 번째 반복:
      • 1 아직 끝나지 않았다.
      • = t = 1 1} 따라서
    • 두 번째 반복:
      • 그래서 아직 끝나지 않았다.
      • = 따라서 i
    • 세 번째 반복:
      • = 완료. return = R=

실제로 28 282 5 (모드 41)와 (-28)≡2 132≡ 5 (모드 41)이다.그래서 알고리즘은 두 가지 해결책을 우리의 일치에 제시한다.

알고리즘의 속도

Tonelli-Shanks 알고리즘은 (모든 가능한 입력에 대해 평균적으로 (2차 잔류물과 2차 비잔류)를 요구한다.

모듈식 곱셈, 여기서 p 의 이진 표현에 있는 자릿수, p 의 이진 표현에 있는 자릿수 필요한 2차 비 residue 을 확인하여 찾을 경우임의로 추출한 y (가) 비residue인 경우, 범례 기호의 (평균적으로 2 {\ 2} 이 필요하다.[5]The average of two computations of the Legendre symbol are explained as follows: is a quadratic residue with chance , which is smaller than but 평균적으로 y y이(가) 2차 잔류물인지 확인해야 한다.

이는 본질적으로 Tonelli-Shanks 알고리즘이 계수 이(가) 무작위일 경우, S (가) 의 이진 표현 숫자와 관련하여 특별히 크지 않을 경우, Tonelli-Shanks 알고리즘이 매우 잘 작동한다는 것을 보여준다 위에서 설명한 바와 같이 Cipola 알고리즘은 Ton보다 잘 작동한다.(S -1) > + > 인 경우(및 if에만 해당However, if one instead uses Sutherland's algorithm to perform the discrete logarithm computation in the 2-Sylow subgroup of , one may replace with an expression that is asymptotically bounded by 옥 S/\log \log S)}가 ce≡ nQ{\displaystyle c^{e}\equiv n^{Q}.[6]을 분명하게, 한{\displaystyle e}}e를 계산한 다음 R≡ c− e/2n(Q+1)/2{\displaystyle R\equiv c^{-e/2}n^{(Q+1)/2}}R2≡ n(n}(에는 e{\displaystyle e}를 만족시킨다. 는 (가) 2차 잔류물이기 때문에 2의 배수.

그 알고리즘은 이차nonresidue z{z\displaystyle}을 찾기 위해 이와 같은 a가 z{z\displaystyle}을 찾는 다항 시간 안에 머물러 알려진 바가 결정론적 알고리즘은이다. 만약 이 일반화 리만 가설은 사실이다 하지만, 이차nonresidue z<>존재하는;2ln 2⁡ p{\displaystyle z<, 2\l이 필요하다.n^{2}[7] 해당 한계까지 z 을(를) 확인할 수 있도록 하고 다항식 시간 내에 한 z 을(를) 찾을 수 있도록 한다.그러나 이는 최악의 시나리오라는 점을 명심하십시오. 일반적으로 위에 언급된 바와 같이 2번의 시행에서 z 이(가) 발견된다.

사용하다

Tonelli-Shanks 알고리즘은 제곱근 modulo a prime이 필요한 모든 프로세스에 (자연적으로) 사용될 수 있다.예를 들어 타원곡선에서 점을 찾는 데 사용할 수 있다.그것은 또한 라빈 암호체계와 2차 체의 체의 단계에서의 계산에도 유용하다.

일반화

(Z/ Z) 의 주기 그룹과 임의 정수 k번째 루트로 일반화할 수 있으며, 특히 유한장 원소의 k번째 루트를 취한다[8]

동일한 순환 그룹에서 많은 제곱근을 해야 하고 S가 너무 크지 않으면 미리 2-전력 순서 요소의 제곱근 표를 준비할 수 있고 알고리즘은 다음과 같이 단순화 및 속도를 높일 수 있다.

  1. QS다음과 같이 정의하면서 p - 1에서 2의 힘을 빼십시오: p- = Q S
  2. Q+ , / n 1}{ R를 두십시오.
  3. 에서 b 2 t {\}\ t과(와) 같은 을(를) 찾고 / b 을(를) 설정하십시오.
  4. R을 반환하다.

토넬리의 알고리즘은 mod p^k에서 작동할 것이다.

딕슨의 "숫자의 이론"[3]에 따르면

A. 토넬리는[9] x = ( x의 뿌리에 대해 명시적인 공식을 주었다.

딕슨 참조는 x 2 p 의 제곱근에 대한 다음 공식을 보여준다

= 7+ 1 } = 2 이 방정식의 경우 반드시 2여야 함) 및 = 29 = + 1}인 경우
c^da c의 경우
where

을(를) 주목한 = 7 292 {\^{2}을를)에 주목한 후

다른 예시: 2

딕슨은 또한 다음과 같은 방정식을 토넬리에게 돌렸다.

where and ;

= (를) 사용하고 의 계수를 사용하면 산술은 다음과 같다.

먼저 일반 Tonelli 알고리즘으로 수행할 수 있는 모듈식 제곱근 p 을(를) 찾으십시오.

따라서

그리고 Tonelli의 방정식을 적용한다(위 참조).

딕슨의 참고문헌은[3] 토넬리의 알고리즘이 의 moduli에서 작동한다는 것을 분명히 보여준다

메모들

  1. ^ Oedded Goldreich, Computing complexity: 개념적 관점, Cambridge University Press, 2008, 페이지 588.
  2. ^ Volker Diekert; Manfred Kufleitner; Gerhard Rosenberger; Ulrich Hertrampf (24 May 2016). Discrete Algebraic Methods: Arithmetic, Cryptography, Automata and Groups. De Gruyter. pp. 163–165. ISBN 978-3-11-041632-9.
  3. ^ a b c d e Leonard Eugene Dickson (1919). History of the Theory of Numbers. Vol. 1. Washington, Carnegie Institution of Washington. pp. 215–216.
  4. ^ 대니얼 샨크스다섯 개의 숫자-이론 알고리즘.제2차 수치 수학 매니토바 회의의 진행.1973년 페이지 51-70.
  5. ^ 곤살로 토르나리아 - 제곱근 모둘로 p, 2페이지 https://doi.org/10.1007%2F3-540-45995-2_38
  6. ^ Sutherland, Andrew V. (2011), "Structure computation and discrete logarithms in finite abelian p-groups", Mathematics of Computation, 80 (273): 477–500, arXiv:0809.3413, doi:10.1090/s0025-5718-10-02356-2, S2CID 13940949
  7. ^ Bach, Eric (1990), "Explicit bounds for primality testing and related problems", Mathematics of Computation, 55 (191): 355–380, doi:10.2307/2008811, JSTOR 2008811
  8. ^ 애들먼, L. M., K. 맨더스, G. 밀러: 1977, '유한 분야에 뿌리를 내리고 있다'인: 제18회 IEEE 컴퓨터 과학 기초 심포지엄. 페이지 175-177
  9. ^ "로마, 나치오날레 데이 린시 아카다비아.렌디콘티(5), 1, 1892, 116-120."

참조

  • Ivan Niven; Herbert S. Zuckerman; Hugh L. Montgomery (1991). An Introduction to the Theory of Numbers (5th ed.). Wiley. pp. 110–115. ISBN 0-471-62546-9.
  • 대니얼 샨크스다섯 개의 숫자 이론 알고리즘.제2차 수치 수학 매니토바 회의의 진행.1973년 페이지 51-70.
  • 알베르토 토넬리, 베메르콩 über die Auflösung 4ratischer Congruenzen.나흐리히텐 폰 데르 쾨니글리첸 게셀리첸 샤프트 데르 위센샤프텐과 데르 게오르크 아우구스트 주 쾨팅겐페이지 344–346. 1891.[1]
  • 가간 타라난다 - 수학 115:RESSOL 알고리즘 [2]
  • 곤살로 토르나리아[3]