Квадратичне решето (англ. quadratic sieve, QS) — алгоритм факторизації цілих чисел, на практиці найшвидший для чисел до 10100. Асипмтотично є другим за швидкістю після загального решета цифрового поля, і значно простіший за нього. Це метод факторизації загального призначення, тобто, час його виконання залежить лише від розміру цілого числа на вході, і не залежить від його вигляду (на відміну від [en]). Метод винайшов математик [en] 1981 року як поліпшення .
Вступ
Візьмемо, наприклад, число Це число складене і не ділиться на жодне з малих простих чисел. Але можна побачити, що це тобто Отже ми можемо розкласти як різницю квадратів. Це є або Кожне непарне складене число можна розкласти як різницю квадратів:
Спробуймо знов з числом 1649. Воно також складене і не має малих простих дільників, менших ніж його логарифм. З 2419 ми взяли перший квадрат більший від нього, а саме і тоді зауважили, що що є квадратом. Можна подумати, що в пошуці квадратів можна пройти послідовність з Для маємо:
-
(
)
і не бачимо квадратів поміж перших результатів.
Попри цю невдачу, попередні три рівняння вже можна використати для розкладення Хоча ані 32, ані 200 не є квадратами, однак їхній добуток — квадрат, а саме отже з того, що
маємо що рівнозначно
-
(
)
Ми знайшли розв'язок для Наскільки це цікаво? Звісно існує багато нецікавих пар А саме, якщо взяти будь-яке значення і покласти Але цей перелік не вичерпує всі розв'язки для цього рівняння, бо розкладення як різницю квадратів дало б пару з Далі, будь-яка пара з
-
(
)
має вести до нетривіального розкладу через Справді, з 3 випливає, що ділить але не ділить жоден з множників, отже мають бути нетривіальними дільниками НСД можна знайти через алгоритм Евкліда. Зрештою, якщо має щонайменше два простих множники, тоді не менше половини розв'язків з взаємно простим з також задовольняють що і є 3.
Доведення |
---|
Для степені непарного простого конгруентність має рівно 2 розв'язки, отже з того, що ділимо не менш як двома різними непарними простими, конгруенція має щонайменше 4 розв'язки. Позначимо ці значення як де Тоді повний перелік пар квадратичних залишків за модулем взаємно простих з і з збігається з усіма парами де пробігає всі залишки, взаємно прості з a Пари з не задовольняють 3, тоді як інші так. З того, що доведення завершене. |
Ідея
В основі методу лежить така ідея. Припустимо і є цілими такими, що але . Тоді ділить але не ділить ані ані Звідси має бути нетривіальним дільником
Припустимо, що маємо розкласти ціле . Нехай розглянемо многочлен Зауважимо, що
є малим порівняно з , якщо абсолютне значення мале. Алгоритм квадратичного решета обирає і перевіряє чи є -гладким. Зауважимо, що звідси є квадратичним залишком за модулем Отже фактор-база повинна складатись з простих чисел , для яких символ Лежандра Окрім цього, тому що може бути від'ємним, також включаємо до фактор-бази.
Алгоритм
Вхід: ціле складене число , яке не є степенем простого.
Вихід: нетривіальний дільник для .
- Обираємо базу дільників де і є -е просте для якого є квадратичним залишком за модулем .
- Обчислити
- (Зібрати двійок Значення обираємо в порядку )
- Встановити . Поки робити наступне:
- Обчислити і перевірити послідовним діленням на елементи з чи є -гладким. Якщо ні, обираємо новий і повторюємо.
- Якщо є -гладким, скажімо тоді покласти , де для
- Використати лінійну алгебру над для знаходження непустої підмножини такої, що
- Обчислити
- Для кожного обчислити .
- Обчислити
- Якщо тоді знайти іншу непорожню підмножину таких, що і перейти до етапу 5. (У малоймовірному випадку, якщо підмножина не існує, замінити декілька з двійок новими парами (етап 3), і перейти на етап 4.
- Обчислити і повернути .
Приклад роботи
Алгоритм квадратичного решета для находження нетривіального дільника для
- Обираємо фактор-базу розміру і опущені з бо для цих простих )
- Обчислити .
- Далі йдуть дані зібрані для перших значень для яких є 23-гладких.
факторизація | |||||
---|---|---|---|---|---|
1 | 0 | −312 | 157 | (1, 1, 1, 0, 1, 0) | |
2 | 1 | 3 | 158 | (0, 0, 1, 0, 0, 0) | |
3 | −1 | −625 | 156 | (1, 0, 0, 0, 0, 0) | |
4 | 2 | 320 | 159 | (0, 0, 0, 1, 0, 0) | |
5 | −2 | −936 | 155 | (1, 1, 0, 0, 1, 0) | |
6 | 4 | 960 | 161 | (0, 0, 1, 1, 0, 0) | |
7 | −6 | −2160 | 151 | (1, 0, 1, 1, 0, 0) |
- Обчислимо
- Обчислимо
- Обчислимо
- Через те, що потрібно взяти наступну лінійну залежність.
- У випадку отримуємо такий самий вислід.
- Наступна
- Обчислимо
- Обчислимо
- Обчислимо
- Тепер, отже обчислимо Звідки, маємо два нетривіальних дільники для — і
Перевірка гладкості просіюванням
Замість перевірки на гладкість перебором дільників застосовної на етапі 3.1, використовується ефективніша техніка відома як просіювання (англ. sieving). Спочатку звернемо увагу на те, що якщо є непарним простим у фактор-базі і ділить тоді також ділить для кожного цілого
Отже через розв'язання рівняння для (для цього існує багато дієвих алгоритмів), отримуємо одну або дві (залежно від кількості розв’язків у квадратного рівняння) послідовностей інших значень для яких ділить
Також просіювання використовує властивість логарифма
Перебіг просіювання такий. Створюється масив проіндексований по і кожний запис ініціалізується Нехай будуть розв'язками для де є непарним простим числом з фактор-бази. Тоді значення віднімають від тих записів в для яких або і Дія повторюється для кожного простого у фактор-базі. (Випадки з і степенями простих чисел можна обробити подібним чином.) Після просіювання, записи в масиві зі значеннями близькими до швидше за все є -гладкі (треба брати до уваги помилки округлення), і це можна перевірити через факторизацію перебором дільників.
Примітки
- Carl Pomerance, Analysis and Comparison of Some Integer Factoring Algorithms, in Computational Methods in Number Theory, Part I, H.W. Lenstra, Jr. and R. Tijdeman, eds., Math. Centre Tract 154, Amsterdam, 1982, pp 89-139.
- Повний перелік лінійно залежних підмножин векторів такий: 125, 264, 763, 1456, 2347, 13457, 1234567.
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Kvadratichne resheto angl quadratic sieve QS algoritm faktorizaciyi cilih chisel na praktici najshvidshij dlya chisel do 10100 Asipmtotichno ye drugim za shvidkistyu pislya zagalnogo resheta cifrovogo polya i znachno prostishij za nogo Ce metod faktorizaciyi zagalnogo priznachennya tobto chas jogo vikonannya zalezhit lishe vid rozmiru cilogo chisla na vhodi i ne zalezhit vid jogo viglyadu na vidminu vid en Metod vinajshov matematik en 1981 roku yak polipshennya VstupVizmemo napriklad chislo 2419 displaystyle 2419 Ce chislo skladene i ne dilitsya na zhodne z malih prostih chisel Ale mozhna pobachiti sho ce 2500 81 displaystyle 2500 81 tobto 2419 50 2 9 2 displaystyle 2419 50 2 9 2 Otzhe mi mozhemo rozklasti 2419 displaystyle 2419 yak riznicyu kvadrativ Ce ye 50 9 50 9 displaystyle 50 9 50 9 abo 41 59 displaystyle 41 times 59 Kozhne neparne skladene chislo mozhna rozklasti yak riznicyu kvadrativ n p q p q 2 2 p q 2 2 displaystyle n pq left frac p q 2 right 2 left frac p q 2 right 2 Sprobujmo znov z chislom 1649 Vono takozh skladene i ne maye malih prostih dilnikiv menshih nizh jogo logarifm Z 2419 mi vzyali pershij kvadrat bilshij vid nogo a same 50 2 displaystyle 50 2 i todi zauvazhili sho 50 2 2419 81 displaystyle 50 2 2419 81 sho ye kvadratom Mozhna podumati sho v poshuci kvadrativ mozhna projti poslidovnist x 2 n displaystyle x 2 n z x n 1 2 n 1 2 1 displaystyle x lceil n 1 2 rceil lceil n 1 2 rceil 1 dots Dlya n 1649 displaystyle n 1649 mayemo 41 2 n 32 displaystyle 41 2 n 32 42 2 n 115 displaystyle 42 2 n 115 43 2 n 200 displaystyle 43 2 n 200 1 displaystyle vdots i ne bachimo kvadrativ pomizh pershih rezultativ Popri cyu nevdachu poperedni tri rivnyannya vzhe mozhna vikoristati dlya rozkladennya n displaystyle n Hocha ani 32 ani 200 ne ye kvadratami odnak yihnij dobutok kvadrat a same 80 2 displaystyle 80 2 otzhe z togo sho 41 2 32 mod n displaystyle 41 2 equiv 32 pmod n 43 2 200 mod n displaystyle 43 2 equiv 200 pmod n mayemo 41 2 43 2 80 2 mod n displaystyle 41 2 times 43 2 equiv 80 2 pmod n sho rivnoznachno 41 43 2 80 2 mod n displaystyle 41 times 43 2 equiv 80 2 pmod n 2 Mi znajshli rozv yazok dlya a 2 b 2 mod n displaystyle a 2 equiv b 2 pmod n Naskilki ce cikavo Zvisno isnuye bagato necikavih par a 2 b 2 mod n displaystyle a 2 equiv b 2 pmod n A same yaksho vzyati bud yake znachennya a displaystyle a i poklasti b a displaystyle b pm a Ale cej perelik ne vicherpuye vsi rozv yazki dlya cogo rivnyannya bo rozkladennya n displaystyle n yak riznicyu kvadrativ dalo b paru a b displaystyle a b z b a displaystyle b not pm a Dali bud yaka para a b displaystyle a b z a 2 b 2 mod n b a mod n displaystyle a 2 equiv b 2 pmod n b not equiv pm a pmod n 3 maye vesti do netrivialnogo rozkladu n displaystyle n cherez gcd a b n displaystyle gcd a b n Spravdi z 3 viplivaye sho n displaystyle n dilit a b a b displaystyle a b a b ale ne dilit zhoden z mnozhnikiv otzhe gcd a b n gcd a b n displaystyle gcd a b n gcd a b n mayut buti netrivialnimi dilnikami n displaystyle n NSD mozhna znajti cherez algoritm Evklida Zreshtoyu yaksho n displaystyle n maye shonajmenshe dva prostih mnozhniki todi ne menshe polovini rozv yazkiv a 2 b 2 mod n displaystyle a 2 equiv b 2 pmod n z a b displaystyle ab vzayemno prostim z n displaystyle n takozh zadovolnyayut b a mod n displaystyle b not equiv pm a pmod n sho i ye 3 Dovedennya Dlya stepeni neparnogo prostogo p u displaystyle p u kongruentnist y 2 1 mod p u displaystyle y 2 equiv 1 pmod p u maye rivno 2 rozv yazki otzhe z togo sho n displaystyle n dilimo ne mensh yak dvoma riznimi neparnimi prostimi kongruenciya y 2 1 mod n displaystyle y 2 equiv 1 pmod n maye shonajmenshe 4 rozv yazki Poznachimo ci znachennya yak y 1 y 2 y 3 y s displaystyle y 1 y 2 y 3 dots y s de y 1 1 displaystyle y 1 1 y 2 1 displaystyle y 2 1 Todi povnij perelik par kvadratichnih zalishkiv a b displaystyle a b za modulem n displaystyle n vzayemno prostih z n displaystyle n i z a 2 b 2 mod n displaystyle a 2 equiv b 2 pmod n zbigayetsya z usima parami a y i a displaystyle a y i a de a displaystyle a probigaye vsi zalishki vzayemno prosti z n displaystyle n a i 1 s displaystyle i 1 dots s Pari z i 1 2 displaystyle i 1 2 ne zadovolnyayut 3 todi yak inshi tak Z togo sho s 4 displaystyle s geq 4 dovedennya zavershene IdeyaV osnovi metodu lezhit taka ideya Pripustimo x displaystyle x i y displaystyle y ye cilimi takimi sho x 2 y 2 mod n displaystyle x 2 equiv y 2 pmod n ale x y mod n displaystyle x not equiv pm y pmod n Todi n displaystyle n dilit x 2 y 2 x y x y displaystyle x 2 y 2 x y x y ale ne dilit ani x y displaystyle x y ani x y displaystyle x y Zvidsi gcd x y n displaystyle gcd x y n maye buti netrivialnim dilnikom n displaystyle n Pripustimo sho mayemo rozklasti cile n displaystyle n Nehaj m n displaystyle m sqrt n rozglyanemo mnogochlen q x x m 2 n displaystyle q x x m 2 n Zauvazhimo sho q x x 2 2 m x m 2 n x 2 2 m x displaystyle q x x 2 2mx m 2 n approx x 2 2mx ye malim porivnyano z n displaystyle n yaksho absolyutne znachennya x displaystyle x male Algoritm kvadratichnogo resheta obiraye a i x m displaystyle a i x m i pereviryaye chi ye b i x m 2 p t displaystyle b i x m 2 p t gladkim Zauvazhimo sho a i x m 2 b i mod n displaystyle a i x m 2 equiv b i pmod n zvidsi n displaystyle n ye kvadratichnim zalishkom za modulem p displaystyle p Otzhe faktor baza povinna skladatis z prostih chisel p displaystyle p dlya yakih simvol Lezhandra n p 1 displaystyle left frac n p right 1 Okrim cogo tomu sho b i displaystyle b i mozhe buti vid yemnim 1 displaystyle 1 takozh vklyuchayemo do faktor bazi AlgoritmVhid cile skladene chislo n displaystyle n yake ne ye stepenem prostogo Vihid netrivialnij dilnik d displaystyle d dlya n displaystyle n Obirayemo bazu dilnikiv S p 1 p 2 p t displaystyle S p 1 p 2 p t de p 1 1 displaystyle p 1 1 i p j j 2 displaystyle p j j geq 2 ye j 1 displaystyle j 1 e proste p displaystyle p dlya yakogo n displaystyle n ye kvadratichnim zalishkom za modulem p displaystyle p Obchisliti m n displaystyle m lfloor sqrt n rfloor Zibrati t 1 displaystyle t 1 dvijok a i b i displaystyle a i b i Znachennya x displaystyle x obirayemo v poryadku 0 1 2 displaystyle 0 pm 1 pm 2 dots Vstanoviti i 1 displaystyle i gets 1 Poki i t 1 displaystyle i leq t 1 robiti nastupne Obchisliti b q x x m 2 n displaystyle b q x x m 2 n i pereviriti poslidovnim dilennyam na elementi z S displaystyle S chi ye b p t displaystyle b p t gladkim Yaksho ni obirayemo novij x displaystyle x i povtoryuyemo Yaksho b displaystyle b ye p t displaystyle p t gladkim skazhimo b j 1 t p i e i j displaystyle b prod j 1 t p i e ij todi poklasti a i x m b i b v i v i 1 v i 2 v i t displaystyle a i gets x m b i gets b v i v i1 v i2 dots v it de v i j e i j mod 2 displaystyle v ij e ij mod 2 dlya 1 j t displaystyle 1 leq j leq t i i 1 displaystyle i gets i 1 Vikoristati linijnu algebru nad Z 2 displaystyle mathrm Z 2 dlya znahodzhennya nepustoyi pidmnozhini T 1 2 t 1 displaystyle T subseteq 1 2 dots t 1 takoyi sho i T v i 0 displaystyle sum i in T v i 0 Obchisliti x i T a i mod n displaystyle x prod i in T a i mod n Dlya kozhnogo j 1 j t displaystyle j 1 leq j leq t obchisliti l j i T e i j 2 displaystyle l j sum i in T e ij 2 Obchisliti y j 1 t p j l j mod n displaystyle y prod j 1 t p j l j mod n Yaksho x y mod n displaystyle x equiv pm y pmod n todi znajti inshu neporozhnyu pidmnozhinu T 1 2 t 1 displaystyle T subseteq 1 2 dots t 1 takih sho i T v i 0 displaystyle sum i in T v i 0 i perejti do etapu 5 U malojmovirnomu vipadku yaksho pidmnozhina T displaystyle T ne isnuye zaminiti dekilka z dvijok a i b i displaystyle a i b i novimi parami etap 3 i perejti na etap 4 Obchisliti d gcd x y n displaystyle d gcd x y n i povernuti d displaystyle d Priklad robotiAlgoritm kvadratichnogo resheta dlya nahodzhennya netrivialnogo dilnika dlya n 24961 displaystyle n 24961 Obirayemo faktor bazu S 1 2 3 5 13 23 displaystyle S 1 2 3 5 13 23 rozmiru t 6 displaystyle t 6 7 11 17 displaystyle 7 11 17 i 19 displaystyle 19 opusheni z S displaystyle S bo dlya cih prostih n p 1 displaystyle frac n p 1 Obchisliti m 2 4961 157 displaystyle m lfloor sqrt 2 4961 rfloor 157 Dali jdut dani zibrani dlya pershih t 1 displaystyle t 1 znachen x displaystyle x dlya yakih q x displaystyle q x ye 23 gladkih i displaystyle i x displaystyle x q x displaystyle q x faktorizaciya q x displaystyle q x a i displaystyle a i b i displaystyle b i 1 0 312 2 3 3 13 displaystyle 2 3 times 3 times 13 157 1 1 1 0 1 0 2 1 3 3 displaystyle 3 158 0 0 1 0 0 0 3 1 625 5 4 displaystyle 5 4 156 1 0 0 0 0 0 4 2 320 2 6 5 displaystyle 2 6 times 5 159 0 0 0 1 0 0 5 2 936 2 3 3 2 13 displaystyle 2 3 times 3 2 times 13 155 1 1 0 0 1 0 6 4 960 2 6 3 5 displaystyle 2 6 times 3 times 5 161 0 0 1 1 0 0 7 6 2160 2 4 3 3 5 displaystyle 2 4 times 3 3 times 5 151 1 0 1 1 0 0 Obchislimo x a 1 a 2 a 5 mod n 936 displaystyle x a 1 a 2 a 5 mod n 936 Obchislimo l 1 1 l 2 3 l 3 2 l 4 0 l 5 1 l 6 0 displaystyle l 1 1 l 2 3 l 3 2 l 4 0 l 5 1 l 6 0 Obchislimo y 23 32 13 mod n 24025 displaystyle y 23 times 32 times 13 mod n 24025 Cherez te sho 936 24025 mod n displaystyle 936 equiv 24025 pmod n potribno vzyati nastupnu linijnu zalezhnist U vipadku T 2 4 6 displaystyle T 2 4 6 otrimuyemo takij samij vislid Nastupna T 3 6 7 v 3 v 6 v 7 0 displaystyle T 3 6 7 v 3 v 6 v 7 0 Obchislimo x a 3 a 6 a 7 mod n 23405 displaystyle x a 3 a 6 a 7 mod n 23405 Obchislimo l 1 1 l 2 5 l 3 2 l 4 3 l 5 0 l 6 0 displaystyle l 1 1 l 2 5 l 3 2 l 4 3 l 5 0 l 6 0 Obchislimo y 25 32 53 mod n 13922 displaystyle y 25 times 32 times 53 mod n 13922 Teper 23405 13922 mod n displaystyle 23405 not equiv pm 13922 pmod n otzhe obchislimo gcd x y n gcd 9483 24961 109 displaystyle gcd x y n gcd 9483 24961 109 Zvidki mayemo dva netrivialnih dilniki dlya 24961 displaystyle 24961 109 displaystyle 109 i 229 displaystyle 229 Perevirka gladkosti prosiyuvannyamZamist perevirki na gladkist pereborom dilnikiv zastosovnoyi na etapi 3 1 vikoristovuyetsya efektivnisha tehnika vidoma yak prosiyuvannya angl sieving Spochatku zvernemo uvagu na te sho yaksho p displaystyle p ye neparnim prostim u faktor bazi i p displaystyle p dilit q x displaystyle q x todi p displaystyle p takozh dilit q x l p displaystyle q x lp dlya kozhnogo cilogo l displaystyle l y x x 2 n displaystyle y x x 2 n y x k p x k p 2 n displaystyle y x kp x kp 2 n y x k p x 2 2 x k p k p 2 n displaystyle y x kp x 2 2xkp kp 2 n y x k p y x 2 x k p k p 2 y x mod p displaystyle y x kp y x 2xkp kp 2 equiv y x pmod p Otzhe cherez rozv yazannya rivnyannya q x 0 mod p displaystyle q x equiv 0 pmod p dlya x displaystyle x dlya cogo isnuye bagato diyevih algoritmiv otrimuyemo odnu abo dvi zalezhno vid kilkosti rozv yazkiv u kvadratnogo rivnyannya poslidovnostej inshih znachen y displaystyle y dlya yakih p displaystyle p dilit q y displaystyle q y Takozh prosiyuvannya vikoristovuye vlastivist logarifma log 1 n p i 1 n log p i displaystyle log prod 1 n p i sum 1 n log p i Perebig prosiyuvannya takij Stvoryuyetsya masiv Q displaystyle Q proindeksovanij po x M x M displaystyle x M leq x leq M i kozhnij zapis inicializuyetsya lg q x displaystyle lg q x Nehaj x 1 x 2 displaystyle x 1 x 2 budut rozv yazkami dlya q x 0 mod p displaystyle q x equiv 0 pmod p de p displaystyle p ye neparnim prostim chislom z faktor bazi Todi znachennya lg p displaystyle lg p vidnimayut vid tih zapisiv v Q x displaystyle Q x dlya yakih x x 1 displaystyle x equiv x 1 abo x 2 mod p displaystyle x 2 pmod p i M x M displaystyle M leq x leq M Diya povtoryuyetsya dlya kozhnogo prostogo p displaystyle p u faktor bazi Vipadki z p 2 displaystyle p 2 i stepenyami prostih chisel mozhna obrobiti podibnim chinom Pislya prosiyuvannya zapisi v masivi Q x displaystyle Q x zi znachennyami blizkimi do 0 displaystyle 0 shvidshe za vse ye p t displaystyle p t gladki treba brati do uvagi pomilki okruglennya i ce mozhna pereviriti cherez faktorizaciyu q x displaystyle q x pereborom dilnikiv PrimitkiCarl Pomerance Analysis and Comparison of Some Integer Factoring Algorithms in Computational Methods in Number Theory Part I H W Lenstra Jr and R Tijdeman eds Math Centre Tract 154 Amsterdam 1982 pp 89 139 Povnij perelik linijno zalezhnih pidmnozhin vektoriv takij 125 264 763 1456 2347 13457 1234567