Liczba gładka: Różnice pomiędzy wersjami
[wersja przejrzana] | [wersja przejrzana] |
→Linki zewnętrzne: szablon |
Epsilon598 (dyskusja | edycje) poprawa merytoryczna, wikizacja, dodanie źródeł |
||
Linia 1: | Linia 1: | ||
'''Liczba <math>B</math>-gładka'''<ref name=":0">{{Cytuj |autor = Bartosz Źrałek |tytuł = A GENERALIZATION OF THE POHLIG-HELLMAN ALGORITHM AND ITS APPLICATION TO FACTORING |czasopismo = Studia Bezpieczeństwa Narodowego |data = 2014-12-05 |data dostępu = 2024-02-18 |issn = 2082-2677 |wolumin = 6 |numer = 2 |s = 177–183 |doi = 10.37055/sbn/135229 |url = http://sbn.wat.edu.pl/ROZSZERZONY-ALGORYTM-POHLIGA-HELLMANA-I-JEGO-ZASTOSOWANIE-DO-FAKTORYZACJI,135229,0,2.html |język = pl |dostęp = o}}</ref> – w [[teoria liczb|teorii liczb]], liczba naturalna, która nie ma [[Dzielnik|dzielników]] [[Liczba pierwsza|pierwszych]] większych od <math>B</math><ref name=":1">{{Cytuj |autor = Eric W. Weisstein |tytuł = Smooth Number |data dostępu = 2024-02-18 |opublikowany = Wolfram MathWorld |url = https://mathworld.wolfram.com/SmoothNumber.html |język = en}}</ref>. Nazwa została prawdopodobnie użyta pierwszy raz przez [[Leonard Adleman|Leonarda Adlemana]] w opisie [[Algorytm|algorytmu]] teorioliczbowego<ref name=":3">{{Cytuj |autor = Martin E. Hellman; Justin M. Reyneri |tytuł = Advances in Cryptology: Proceedings of Crypto 82 |data = 1983 |isbn = 978-1-4757-0604-8 |wydawca = Springer US |s = 3-13 |url = https://link.springer.com/chapter/10.1007/978-1-4757-0602-4_1 |język = en}}</ref>. Gładkość liczb ma znaczenie w licznych problemach informatycznych, w szczególności tych związanych z [[Kryptografia|kryptografią]]<ref name=":0" /><ref name=":1" /><ref name=":4">{{Cytuj |autor = David Naccache; Igor Shparlinski |tytuł = Divisibility, Smoothness and Cryptographic Applications |data = 2008 |data dostępu = 2024-02-18 |url = https://eprint.iacr.org/2008/437.pdf |język = en |dostęp = o}}</ref>. |
|||
{{dopracować|styl|źródła=2010-08}} |
|||
W [[teoria liczb|teorii liczb]], liczba naturalna ''m'' jest nazywana ''B''-''gładką'', jeśli wszystkie jej dzielniki [[liczba pierwsza|pierwsze]] są nie większe niż ''B''. |
|||
== Przykłady == |
|||
Liczba <math>103195607040000=2^{23}3^95^4</math> jest 5-gładka (oraz <math>B</math>-gładka dla wszystkich <math>B \ge 5</math>), ponieważ jej największym dzielnikiem pierwszym jest 5. |
|||
Początkowe liczby 2-gładkie ([[Potęga dwójki|potęgi dwójki]]): |
|||
Liczby gładkie przydatne są w niektórych algorytmach teorioliczbowych. |
|||
: 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768 {{OEIS|id=A000079}}. |
|||
Początkowe liczby 3-gładkie: |
|||
Przykładowo niektóre algorytmy [[Szybka transformacja Fouriera|FFT]], rozkładają problem rozmiaru ''n'' na problemy o wielkości jego czynników. Jeśli zaczyna się od liczb gładkich, otrzymuje się małe, szybko rozwiązywalne problemy. Innym przykładem jest [[redukcja Pohliga-Hellmana]] obliczająca [[logarytm dyskretny]]. W ogólnym przypadku jest ona [[algorytm wykładniczy|algorytmem wykładniczym]], ale dla ''B''-gładkich liczb działa w czasie O(''B''<sup>1/2</sup>). |
|||
: 1, 2, 3, 4, 6, 8, 9, 12, 16, 18, 24, 27, 32, 36, 48, 54, 64, 72, 81, 96 {{OEIS|id=A003586}}. |
|||
Początkowe liczby 5-gładkie (liczby [[Richard Hamming|Hamminga]]): |
|||
Liczbę ''B''-gładkich liczb mniejszych od zadanego ''x'' można oszacować przez: |
|||
: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, 16, 18, 20, 24, 25, 27, 30, 32, 36, 40, 45, 48, 50, 54, 60, 64, 72, 75, 80 {{OEIS|id=A051037}}. |
|||
⚫ | |||
== Zastosowania == |
|||
Liczby gładkie są powiązane z algorytmami [[Szybka transformacja Fouriera|szybkiej transformacji Fouriera]] (FFT), takimi jak [[algorytm Cooleya-Tukeya]]. Algorytmy te operują [[Rekurencja|rekurencyjnie]], wyrażając [[Dyskretna transformata Fouriera|dyskretną transformatę Fouriera]] (DFT) ciągu o [[Liczba złożona|złożonej]] długości <math>n = ab</math> za pomocą DFT ciągów o długościach <math>a</math> i <math>b</math>. Jeśli długość wyjściowego ciągu jest liczbą <math>B</math>-gładką dla małego <math>B</math>, przypadkami bazowymi tej rekurencji są problemy obliczenia DFT o długościach wyrażonych małymi liczbami pierwszymi, dla których istnieją [[Złożoność obliczeniowa|wydajne]] algorytmy<ref>{{Cytuj |autor = James W. Cooley, John W. Tukey |tytuł = An algorithm for the machine calculation of complex Fourier series |czasopismo = Mathematics of Computation |data = 1965 |data dostępu = 2024-02-18 |issn = 0025-5718 |wolumin = 19 |numer = 90 |s = 297–301 |doi = 10.1090/S0025-5718-1965-0178586-1 |url = https://www.ams.org/mcom/1965-19-090/S0025-5718-1965-0178586-1/ |język = en |dostęp = o}}</ref>. Dla dużych liczb pierwszych konieczne jest użycie mniej efektywnych algorytmów, takich jak algorytm Bluesteina. |
|||
Liczby gładkie odgrywają istotną rolę w problemach informatycznych z dziedziny teorii liczb, które związane są ściśle z kryptografią. Najlepsze znane algorytmy [[Rozkład na czynniki|faktoryzacji]], takie jak algorytm Dixona, [[sito kwadratowe]] czy [[GNFS]], wykorzystują liczby gładkie. Wyznaczenie [[Logarytm dyskretny|logarytmu dyskretnego]] staje się łatwiejsze, gdy [[Rząd (teoria grup)|rząd grupy]] jest liczbą gładką ([[Redukcja Pohliga-Hellmana|algorytm Pohliga–Hellmana]])<ref name=":4" />. Co więcej, termin „liczba gładka” został prawdopodobnie użyty po raz pierwszy w kontekście znajdowania logarytmu dyskretnego w <math>\mathbb{F}_p</math>, gdy liczba logarytmowana jest <math>B</math>-gładka i znane są wartości logarytmu dyskretnego dla jej dzielników pierwszych<ref name=":3" />. |
|||
Na wiedzy o liczbach gładkich oparta jest [[funkcja skrótu]] Very Smooth Hash (VSH), której odporność na kolizje (trudność wygenerowania dwóch wiadomości o takim samym skrócie) wynika z trudności znalezienia pierwiastka kwadratowego z liczby gładkiej modulo <math>pq</math>. Metoda ta jest wydajniejsza i bardziej praktyczna w porównaniu do wielu funkcji skrótu, których odporność na kolizje można ściśle wykazać<ref name=":4" /><ref>{{Cytuj |autor = Scott Contini; Arjen K. Lenstra; Ron Steinfeld |tytuł = VSH, an Efficient and Provable Collision-Resistant Hash Function |czasopismo = Advances in Cryptology - EUROCRYPT 2006 |data = 2006 |data dostępu = 2024-02-18 |isbn = 978-3-540-34547-3 |wydawca = Springer-Verlag |s = 165–182 |seria = Lecture Notes in Computer Science |url = https://link.springer.com/chapter/10.1007/11761679_11 |język = en |dostęp = o}}</ref>. |
|||
== Rozmieszczenie == |
|||
Niech <math>\Psi(x,B)</math> będzie liczbą liczb <math>B</math>-gładkich nie większych od <math>x</math>. W 1930 roku Dickman zaprezentował heurystyczny dowód, że |
|||
{{Wzór|<math>\Psi(x, y) \sim x\rho\left(\frac{\log{x} }{\log{y} }\right)</math> dla <math>x\to\infty</math>,}} |
|||
gdzie <math>\rho</math> jest funkcją Dickmana – unikalnym ciągłym rozwiązaniem równania różniczkowego <math>u\rho'(u) + \rho(u - 1) = 0</math> przy założeniu, że <math>\rho(u) = 1</math> dla <math>u \in [0, 1]</math><ref>{{Cytuj |autor = Donald Ervin Knuth |tytuł = The art of computer programming. Volume 2: Seminumerical algorithms / Donald E. Knuth (Stanford University) |data = 2021 |data dostępu = 2024-02-18 |isbn = 978-0-201-89684-8 |wydanie = Third edition, forthy-first printing |wydawca = Addison-Wesley |s = 382-383 |język = en}}</ref><ref name=":2">{{Cytuj |autor = Andrew Granville |tytuł = Smooth numbers: computational number theory and beyond |czasopismo = Algorithmic Number Theory. MSRI Publications |data = 2008 |data dostępu = 2024-02-18 |isbn = 978-0-521-80854-5 |wolumin = Volume 44 |wydawca = Cambridge University Press |s = 267-323 |url = https://dms.umontreal.ca/~andrew/PDF/msrire.pdf |język = en |dostęp = o}}</ref>. Na podstawie późniejszych wyników de Bruijina i Hildebranda wiadomo, że dla <math>u = \textstyle \frac{\log{x}}{\log{y}}</math> równość |
|||
{{Wzór|<math>\Psi(x, y) = x\rho(u)\left(1 + O\left(\frac{\log{(u + 1)} }{\log{y} }\right)\right)</math>}} |
|||
zachodzi, gdy |
|||
{{Wzór|<math>1 \le u \le \exp\left((\log{y})^{3/5 - \varepsilon}\right)</math>.}} |
|||
Ponadto wspomniane ograniczenie jest prawdziwe dla wszystkich |
|||
{{Wzór|<math> 1 \le u \le y^{1/2 - \varepsilon} </math>}} |
|||
wtedy i tylko wtedy, gdy prawdziwa jest [[hipoteza Riemanna]]<ref name=":4" /><ref name=":2" />. |
|||
Dla małych wartości <math>B</math> możemy wyprowadzić inne ograniczenia. Gdy spełniona jest nierówność <math>B \le \sqrt{\log{x}\log\log{x}}</math>, mamy |
|||
⚫ | |||
gdzie <math>\pi(n)</math> jest [[Funkcja licząca liczby pierwsze|liczbą liczb pierwszych nie większych od]] <math>n</math><ref name=":2" />. |
|||
== Przypisy == |
|||
{{Przypisy}} |
|||
== Linki zewnętrzne == |
== Linki zewnętrzne == |
Wersja z 17:30, 18 lut 2024
Liczba -gładka[1] – w teorii liczb, liczba naturalna, która nie ma dzielników pierwszych większych od [2]. Nazwa została prawdopodobnie użyta pierwszy raz przez Leonarda Adlemana w opisie algorytmu teorioliczbowego[3]. Gładkość liczb ma znaczenie w licznych problemach informatycznych, w szczególności tych związanych z kryptografią[1][2][4].
Przykłady
Liczba jest 5-gładka (oraz -gładka dla wszystkich ), ponieważ jej największym dzielnikiem pierwszym jest 5.
Początkowe liczby 2-gładkie (potęgi dwójki):
Początkowe liczby 3-gładkie:
Początkowe liczby 5-gładkie (liczby Hamminga):
- 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, 16, 18, 20, 24, 25, 27, 30, 32, 36, 40, 45, 48, 50, 54, 60, 64, 72, 75, 80 (ciąg A051037 w OEIS).
Zastosowania
Liczby gładkie są powiązane z algorytmami szybkiej transformacji Fouriera (FFT), takimi jak algorytm Cooleya-Tukeya. Algorytmy te operują rekurencyjnie, wyrażając dyskretną transformatę Fouriera (DFT) ciągu o złożonej długości za pomocą DFT ciągów o długościach i . Jeśli długość wyjściowego ciągu jest liczbą -gładką dla małego , przypadkami bazowymi tej rekurencji są problemy obliczenia DFT o długościach wyrażonych małymi liczbami pierwszymi, dla których istnieją wydajne algorytmy[5]. Dla dużych liczb pierwszych konieczne jest użycie mniej efektywnych algorytmów, takich jak algorytm Bluesteina.
Liczby gładkie odgrywają istotną rolę w problemach informatycznych z dziedziny teorii liczb, które związane są ściśle z kryptografią. Najlepsze znane algorytmy faktoryzacji, takie jak algorytm Dixona, sito kwadratowe czy GNFS, wykorzystują liczby gładkie. Wyznaczenie logarytmu dyskretnego staje się łatwiejsze, gdy rząd grupy jest liczbą gładką (algorytm Pohliga–Hellmana)[4]. Co więcej, termin „liczba gładka” został prawdopodobnie użyty po raz pierwszy w kontekście znajdowania logarytmu dyskretnego w , gdy liczba logarytmowana jest -gładka i znane są wartości logarytmu dyskretnego dla jej dzielników pierwszych[3].
Na wiedzy o liczbach gładkich oparta jest funkcja skrótu Very Smooth Hash (VSH), której odporność na kolizje (trudność wygenerowania dwóch wiadomości o takim samym skrócie) wynika z trudności znalezienia pierwiastka kwadratowego z liczby gładkiej modulo . Metoda ta jest wydajniejsza i bardziej praktyczna w porównaniu do wielu funkcji skrótu, których odporność na kolizje można ściśle wykazać[4][6].
Rozmieszczenie
Niech będzie liczbą liczb -gładkich nie większych od . W 1930 roku Dickman zaprezentował heurystyczny dowód, że
dla , |
gdzie jest funkcją Dickmana – unikalnym ciągłym rozwiązaniem równania różniczkowego przy założeniu, że dla [7][8]. Na podstawie późniejszych wyników de Bruijina i Hildebranda wiadomo, że dla równość
zachodzi, gdy
. |
Ponadto wspomniane ograniczenie jest prawdziwe dla wszystkich
wtedy i tylko wtedy, gdy prawdziwa jest hipoteza Riemanna[4][8].
Dla małych wartości możemy wyprowadzić inne ograniczenia. Gdy spełniona jest nierówność , mamy
, |
gdzie jest liczbą liczb pierwszych nie większych od [8].
Przypisy
- ↑ a b Bartosz Źrałek , A GENERALIZATION OF THE POHLIG-HELLMAN ALGORITHM AND ITS APPLICATION TO FACTORING, „Studia Bezpieczeństwa Narodowego”, 6 (2), 2014, s. 177–183, DOI: 10.37055/sbn/135229, ISSN 2082-2677 [dostęp 2024-02-18] (pol.).
- ↑ a b Eric W. Weisstein , Smooth Number [online], Wolfram MathWorld [dostęp 2024-02-18] (ang.).
- ↑ a b Martin E. Hellman , Justin M. Reyneri , Advances in Cryptology: Proceedings of Crypto 82, Springer US, 1983, s. 3-13, ISBN 978-1-4757-0604-8 (ang.).
- ↑ a b c d David Naccache , Igor Shparlinski , Divisibility, Smoothness and Cryptographic Applications [online], 2008 [dostęp 2024-02-18] (ang.).
- ↑ James W. Cooley , John W. Tukey , An algorithm for the machine calculation of complex Fourier series, „Mathematics of Computation”, 19 (90), 1965, s. 297–301, DOI: 10.1090/S0025-5718-1965-0178586-1, ISSN 0025-5718 [dostęp 2024-02-18] (ang.).
- ↑ Scott Contini , Arjen K. Lenstra , Ron Steinfeld , VSH, an Efficient and Provable Collision-Resistant Hash Function, „Advances in Cryptology - EUROCRYPT 2006”, Springer-Verlag, 2006 (Lecture Notes in Computer Science), s. 165–182, ISBN 978-3-540-34547-3 [dostęp 2024-02-18] (ang.).
- ↑ Donald Ervin Knuth , The art of computer programming. Volume 2: Seminumerical algorithms / Donald E. Knuth (Stanford University), Third edition, forthy-first printing, Addison-Wesley, 2021, s. 382-383, ISBN 978-0-201-89684-8 [dostęp 2024-02-18] (ang.).
- ↑ a b c Andrew Granville , Smooth numbers: computational number theory and beyond, „Algorithmic Number Theory. MSRI Publications”, Volume 44, Cambridge University Press, 2008, s. 267-323, ISBN 978-0-521-80854-5 [dostęp 2024-02-18] (ang.).
Linki zewnętrzne
- Eric W. Weisstein , Smooth Number, [w:] MathWorld, Wolfram Research (ang.). [dostęp 2022-07-02].