Nightingale-Strassen test

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 3 januari 2022; kontroller kräver 4 redigeringar .

Nightingale-Strassen-testet  är ett probabilistiskt primattest som upptäcktes på 1970-talet av Robert Martin Nightingale tillsammans med Volker Strassen. [1] Testet avgör alltid korrekt att ett primtal är primtal, men för sammansatta tal med viss sannolikhet kan det ge ett felaktigt svar. Den största fördelen med testet är att det, till skillnad från Fermats test , känner igen Carmichael-tal som sammansatta.

Historik

På 1600-talet bevisade Fermat ett uttalande som senare kallades Fermats lilla sats , som fungerar som grunden för Fermats primatitetstest :

Om n  är primtal och a inte är delbart med n , då .

Denna kontroll för ett givet n kräver inte mycket beräkning, men det omvända är inte sant. Det finns alltså Carmichael-tal, som är sammansatta, för vilka påståendet som ges i Fermats lilla teorem gäller för alla coprime-heltal med ett givet tal. 1994 visade det sig att det finns oändligt många sådana siffror. [2] I samband med den upptäckta bristen i Fermat-testet har problemet med att öka tillförlitligheten av probabilistiska tester blivit aktuellt. Lehmann var den första som föreslog ett test som sållar bort Carmichael-siffror som sammansatta. Denna brist saknas också i Solovey-Strassen- och Miller-Rabin-testerna på grund av ett starkare bortfallskriterium än Fermats lilla teorem. Oberoende av varandra bevisade D. Lemaire 1976 och R. Nightingale tillsammans med F. Strassen 1977 att det inte finns någon analog till Carmichael-tal, som är sammansatta och samtidigt Euler pseudosimple. [3] På grundval av detta föreslogs Solovay-Strassen-testet för primat, det publicerades 1977, tillägg till det 1978.

Motivering

Solovay-Strassen-testet är baserat på Fermats lilla teorem och Jacobi-symbolens egenskaper [4] :

Sammansatta tal n som uppfyller denna jämförelse kallas Euler-Jacobi pseudoprimer i basen a .

Bevis [5] Nödvändighet följer av Eulers kriterium för Legendre-symbolen . För att bevisa tillräckligheten använder vi motsägelsemetoden. Antag att n är sammansatt och samtidigt görs jämförelse för Detta innebär att vi får att n är ett Carmichael-tal, så var är ett primtal i = 1,2, ...k Betrakta b sådan att Låt oss hitta ett sådant a att: Sådant existerar enligt den kinesiska restsatsen och tillhör , eftersom det är coprime till n . Därav motsägelsen med att So vårt antagande att n är sammansatt är falskt.

Solovay-Strassen-algoritmen

Solovay-Strassen-algoritmen [6] parametreras av antalet rundor k . I varje omgång väljs ett nummer a < n slumpmässigt . Om gcd ( a , n ) > 1, så bestäms det att n är sammansatt. I annat fall kontrolleras jämförelsens giltighet . Om det inte är uppfyllt, så fattas ett beslut att n  är sammansatt. Om denna jämförelse håller, då är vittnen n prime . Sedan väljs ett annat slumpmässigt a och proceduren upprepas. Efter att ha hittat k primitetsvittnen i k omgångar dras slutsatsen att n är ett primtal med sannolikhet .

I pseudokod kan algoritmen skrivas enligt följande:

Inmatning : > 2, testa udda naturligt tal; , en parameter som bestämmer testets noggrannhet. Output : composite , betyder exakt sammansatt; förmodligen prime betyder att det förmodligen är prime. för i = 1, 2, ..., : = slumpmässigt heltal från 2 till , inklusive; om gcd (a, n) > 1, då : print , som är sammansatt, och stoppa . if , då : utdata som är en sammansatt , och stoppa . annars härleda , som är primtal med sannolikhet , och sluta .

Ett exempel på tillämpningen av algoritmen

Låt oss kontrollera talet n = 19 för enkelhetens skull. Vi väljer noggrannhetsparametern k = 2.

k = 1 Vi väljer ett slumptal a = 11; 2 < a < n - 1 Kontrollera villkoret gcd(a,n)>1 gcd(11,19)=1; sedan kontrollerar vi jämförelsen . Vi fick det, därför fortsätter vi till nästa iteration k = 2 Vi väljer ett slumptal a = 5; 2 < a < n - 1 Kontrollera villkoret gcd(a,n)>1 gcd(5,19)=1; så vi kontrollerar jämförelsen och detta var den sista iterationen, därför drar vi slutsatsen att 19 är ett primtal med en sannolikhet

Beräkningskomplexitet och noggrannhet

testnamn sannolikhet ( att talet är sammansatt ) [7] anteckningar
Odla känner inte igen Carmichael-nummer som sammansatta
Lehmann
Nightingale - Strassen

Applikation

Probabilistiska tester används i system baserade på faktoriseringsproblemet , såsom RSA eller Rabins schema . Men i praktiken är graden av tillförlitlighet för Solovey-Strassen-testet inte tillräcklig, utan istället används Miller-Rabin-testet . Dessutom, med hjälp av kombinerade algoritmer som trial division och Miller-Rabin-testet, med rätt val av parametrar, kan du få bättre resultat än att använda varje test separat. [7]

Testa förbättring

2005, vid den internationella konferensen Bit+ "Informational Technologies -2005" föreslog A. A. Balabanov, A. F. Agafonov, V. A. Ryku ett moderniserat Solovay-Strassen-test. Nightingale-Strassen-testet är baserat på att beräkna Jacobi-symbolen, vilket tar tid motsvarande . Tanken med förbättring är att, i enlighet med Gaussisk kvadratisk reciprocitetssats , gå till beräkningen av värdet som är det reciproka för Jacobi-symbolen, vilket är en enklare procedur. [8] .

Se även

Anteckningar

  1. 1 2 Solovay, Robert M. och Volker Strassen. Ett snabbt Monte-Carlo-test för primalitet  // SIAM  Journal on Computing : journal. - 1977, inlämnad 1974. - Vol. 6 , nr. 1 . - S. 84-85 . - doi : 10.1137/0206006 .
  2. WR Alford, A. Granville, C. Pomerance. Det finns oändligt många Carmichael Numbers  // Annals of Mathematics  : journal  . - 1994. - Vol. 139 . - s. 703-722 . - doi : 10.2307/2118576 . Arkiverad från originalet den 4 maj 2012.
  3. 1 2 Cheryomushkin, 2001 , sid. 48.
  4. 1 2 Nesterenko, 2011 , sid. 82.
  5. N.Yu. Gyllene . Föreläsningar om datoralgebra. Föreläsning 6. Carmichaels sats Näktergal - Strassen test. Arkiverad 4 november 2014 på Wayback Machine
  6. 1 2 Nesterenko, 2011 , sid. 84.
  7. 1 2 B. Schneier Tillämpad kryptografi - M. : TRIUMPH, 2002. — 11 kap.
  8. Balabanov A. A., Agafonov A. F., Ryku V. A. Algoritm för snabb nyckelgenerering i RSA-krypteringssystemet. Arkivexemplar daterad 5 november 2014 på Wayback Machine  - Bulletin of Scientific and Technical Development, 2009 nr 7(23). - S. 11.

Litteratur

  1. Koblitz N. En kurs i talteori och kryptografi . - 2:a. - M . : TVP Scientific Publishing House, 2001. - S. 149 - 160. - 254 sid. — ISBN 5-94057-103-4 .
  2. Nesterenko A. Introduktion till modern kryptografi Talteoretiska algoritmer . - 2011. - S. 79 - 90. - 190 sid. - ISBN 978-5-94506-320-4 .
  3. Cheremushkin AV Föreläsningar om aritmetiska algoritmer i kryptografi . - M. : MTSNMO , 2001. - S. 42 - 59. - 104 sid. — ISBN 5-94057-060-7 . Arkiverad 31 maj 2013 på Wayback Machine
  4. Salomaa A. Offentlig nyckelkryptering / Per. från engelska. I.A. Vikhlyantsev. - M. : Mir, 1995. - S. 176 - 184. - 318 sid. — ISBN 5-03-001991-X . Arkiverad 19 november 2011 på Wayback Machine