If you're seeing this message, it means we're having trouble loading external resources on our website.

Jeżeli jesteś za filtrem sieci web, prosimy, upewnij się, że domeny *.kastatic.org i *.kasandbox.org są odblokowane.

Główna zawartość
Aktualny czas:0:00Całkowity czas trwania:2:58

Transkrypcja filmu video

Ponad 2000 lat temu Euklides wykazał, że każda liczba ma dokładnie jeden rozkład na czynniki pierwsze. Uznajmy go za tajny klucz. Okazuje się, że rozkład na czynniki pierwsze to trudny problem. Wyjaśnijmy, co rozumiemy przez „łatwy” i „trudny”, wprowadzając pojęcie tzw. złożoności czasowej. Każdy z nas mnożył liczby i ma własne sposoby, żeby to przyspieszyć. Odpowiednio zaprogramowany komputer będzie mnożył liczby znacznie szybciej niż człowiek. Na wykresie przedstawiono czas potrzebny komputerowi do pomnożenia dwu liczb. Czas potrzebny do znalezienia odpowiedzi wydłuża się wraz ze wzrostem liczb. Zauważcie, że czas obliczeniowy jest znacznie krótszy od sekundy nawet przy dużych liczbach. Dlatego wykonanie jest „łatwe”. Porównajmy to z rozkładem na czynniki pierwsze. Gdyby ktoś kazał wam rozłożyć liczbę 589, od razu byście wiedzieli, że będzie trudno. Niezależnie od obranej strategii, metodą prób i błędów będziecie szukać liczby, przez którą bez reszty dzieli się 589. Pomęczycie się trochę i ustalicie, że ten rozkład to 19 razy 31. Gdyby kazano wam rozłożyć na czynniki pierwsze liczbę 437231, zapewne poddalibyście się i zaprzęgli do pomocy komputer. Uda się to przy małych wartościach, ale gdy każemy komputerowi rozkładać coraz większe liczby, wystąpi efekt lawiny. Czas potrzebny do wykonania obliczeń będzie rósł bardzo szybko, bo jest więcej etapów. W miarę wzrostu liczb, komputer będzie potrzebował minut, godzin… aż wreszcie - setek lub tysięcy lat, by przeprowadzić rozkład ogromnych liczb. Dlatego zadanie nazwiemy trudnym, z powodu czasu potrzebnego na znalezienie rozwiązania. Rozkładu na czynniki pierwsze użył Cocks w rozwiązaniu zapadkowym. Krok pierwszy: że Alicja losowo wygenerowała liczbę pierwszą o długości ponad 150 cyfr. Nazwijmy ją P1. Wygenerowała kolejną liczbę pierwszą, podobnej wielkości; nazwiemy ją P2. Teraz mnoży te liczby pierwsze i uzyskuje liczbę złożoną N, mającą ponad 300 cyfr. Mnożenie potrwa mniej niż sekundę; poradzi sobie z nim nawet przeglądarka internetowa. Potem Alicja bierze czynniki pierwsze N, czyli P1 razy P2, i ukrywa je. Gdyby podała komuś N, przez wiele lat komputerowo szukałby rozwiązania. Krok drugi: Cocks musiał znaleźć funkcję, która zależy od tego, czy znamy rozkład N na czynniki pierwsze. Sięgnął więc do opublikowanej w 1760 roku pracy szwajcarskiego matematyka Leonharda Eulera.