Liczby gładkie

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

[edytuj | edytuj kod]

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):

1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768 (ciąg publikacja w otwartym dostępie – możesz ją przeczytać A000079 w OEIS).

Początkowe liczby 3-gładkie:

1, 2, 3, 4, 6, 8, 9, 12, 16, 18, 24, 27, 32, 36, 48, 54, 64, 72, 81, 96 (ciąg publikacja w otwartym dostępie – możesz ją przeczytać A003586 w OEIS).

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 publikacja w otwartym dostępie – możesz ją przeczytać A051037 w OEIS).

Zastosowania

[edytuj | edytuj kod]

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

[edytuj | edytuj kod]

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

[edytuj | edytuj kod]
  1. 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, DOI10.37055/sbn/135229, ISSN 2082-2677 [dostęp 2024-02-18] (pol.).
  2. a b Eric W. Weisstein, Smooth Number [online], Wolfram MathWorld [dostęp 2024-02-18] (ang.).
  3. 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.).
  4. a b c d David Naccache, Igor Shparlinski, Divisibility, Smoothness and Cryptographic Applications [online], 2008 [dostęp 2024-02-18] (ang.).
  5. 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, DOI10.1090/S0025-5718-1965-0178586-1, ISSN 0025-5718 [dostęp 2024-02-18] (ang.).
  6. 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.).
  7. 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.).
  8. 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

[edytuj | edytuj kod]