Algorytm Shora

Jednym z najpopularniejszych zastosowań, do których możliwe będzie zastosowanie komputerów kwantowych, jest kryptografia kwantowa. Obecnie jednym z najczęściej używanych algorytmów do szyfrowania haseł na stronach internetowych, czy też zabezpieczania transakcji bankowych jest algorytm RSA oparty o parę asymetrycznych kluczy. Swoją popularność zawdzięcza temu, iż mimo swej prostoty złamanie zabezpieczeń, czyli odkrycie klucza prywatnego, jest niesamowicie czasochłonne dla klasycznych superkomputerów. Wynika to z pewnych matematycznych właściwości, o które oparty jest algorytm RSA. Jednym z kroków do wygenerowania pary kluczy (publicznego — do szyfrowania wiadomości, oraz prywatnego — do odszyfrowywania wiadomości) jest pomnożenie przez siebie dwóch, bardzo dużych liczb pierwszych.

Okazuje się jednak, że przy pomocy pewnych matematycznych twierdzeń dotyczących mnożenia wywodzących się z teorii liczb, jesteśmy w stanie tak zmodyfikować problem faktoryzacji, aby wprowadzić do niego cykliczność. Zauważył to amerykański naukowiec Peter Shor w 1994 roku. Shor opracował algorytm wykorzystujący kwantową transformatę Fouriera i zawartą w niej negatywną interferencję fal do znalezienia częstotliwości wspomnianej cykliczności, co w konsekwencji prowadzi do rozwiązania problemu. O ile na ten moment nie stwarza to niebezpieczeństwa dla obecnie używanych systemów zabezpieczających ze względu na niewielką moc dostępnych komputerów kwantowych, o tyle już dzisiaj niezbędne jest podejmowanie działań przygotowujących świat cyfrowy na moment, w którym komputery kwantowe będą na tyle zaawansowane, aby być w stanie łamać zabezpieczenia internetowe.

Spróbuj rozłożyć na czynniki pierwsze różne liczby przy pomocy przygotowanego algorytmu.