Szybka transformata Fouriera w kryptografii klucza publicznego

Podobne dokumenty
Parametry systemów klucza publicznego

Matematyka dyskretna

Matematyka dyskretna

Treść wykładu. Pierścienie wielomianów. Dzielenie wielomianów i algorytm Euklidesa Pierścienie ilorazowe wielomianów

Dr inż. Robert Wójcik, p. 313, C-3, tel Katedra Informatyki Technicznej (K-9) Wydział Elektroniki (W-4) Politechnika Wrocławska

Ataki na RSA. Andrzej Chmielowiec. Centrum Modelowania Matematycznego Sigma. Ataki na RSA p. 1

Grupy, pierścienie i ciała

Ciała i wielomiany 1. przez 1, i nazywamy jedynką, zaś element odwrotny do a 0 względem działania oznaczamy przez a 1, i nazywamy odwrotnością a);

Pierścień wielomianów jednej zmiennej

Ciała skończone. 1. Ciała: podstawy

Maciej Grzesiak. Wielomiany

Matematyka dyskretna. Andrzej Łachwa, UJ, /15

Podstawowe struktury algebraiczne

Luty 2001 Algorytmy (7) 2000/2001

Przykładowe zadania z teorii liczb

5. Rozwiązywanie układów równań liniowych

Funkcje wymierne. Jerzy Rutkowski. Działania dodawania i mnożenia funkcji wymiernych określa się wzorami: g h + k l g h k.

Kryptografia na procesorach wielordzeniowych

Liczby zmiennoprzecinkowe i błędy

Kongruencje pierwsze kroki

Wielomiany. dr Tadeusz Werbiński. Teoria

0.1 Pierścienie wielomianów

1. Wykład NWD, NWW i algorytm Euklidesa.

Krzywe Freya i Wielkie Twierdzenie Fermata

1. Określenie pierścienia

Wstęp do programowania. Reprezentacje liczb. Liczby naturalne, całkowite i rzeczywiste w układzie binarnym

Tematyka do egzaminu ustnego z matematyki. 3 semestr LO dla dorosłych

Podstawowe struktury algebraiczne

Wybrane zagadnienia teorii liczb

Działania Definicja: Działaniem wewnętrznym w niepustym zbiorze G nazywamy funkcję działającą ze zbioru GxG w zbiór G.

Przekształcenia widmowe Transformata Fouriera. Adam Wojciechowski

3. Macierze i Układy Równań Liniowych

ALGEBRA Z GEOMETRIĄ CIAŁO FUNKCJI WYMIERNYCH

Macierze. Rozdział Działania na macierzach

Podstawy systemów kryptograficznych z kluczem jawnym RSA

Funkcja kwadratowa. f(x) = ax 2 + bx + c,

Rijndael szyfr blokowy

a 11 a a 1n a 21 a a 2n... a m1 a m2... a mn x 1 x 2... x m ...

Matematyka dyskretna dla informatyków

Wielomiany podstawowe wiadomości

1 Określenie pierścienia

Algorytmy i struktury danych. Wykład 4

Przestrzenie liniowe

Kod U2 Opracował: Andrzej Nowak

5. Algebra działania, grupy, grupy permutacji, pierścienie, ciała, pierścień wielomianów.

Kod uzupełnień do dwóch jest najczęściej stosowanym systemem zapisu liczb ujemnych wśród systemów binarnych.

Rozdział 5. Macierze. a 11 a a 1m a 21 a a 2m... a n1 a n2... a nm

WYRAŻENIA ALGEBRAICZNE

III. Funkcje rzeczywiste

Funkcja kwadratowa. f(x) = ax 2 + bx + c = a

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

Technologie Informacyjne Wykład 4

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 15, Kryptografia: algorytmy asymetryczne (RSA)

5. Logarytmy: definicja oraz podstawowe własności algebraiczne.

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 14, Kryptografia: algorytmy asymetryczne (RSA)

Algorytmy asymetryczne

METODY ROZWIĄZYWANIA RÓWNAŃ NIELINIOWYCH

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

Matematyka dyskretna. Andrzej Łachwa, UJ, B/14

Metody numeryczne I Równania nieliniowe

Wykład 4. Określimy teraz pewną ważną klasę pierścieni.

MADE IN CHINA czyli SYSTEM RESZTOWY

Funkcje analityczne. Wykład 2. Płaszczyzna zespolona. Paweł Mleczko. Funkcje analityczne (rok akademicki 2017/2018)

Zagadnienia - równania nieliniowe

9. Dyskretna transformata Fouriera algorytm FFT

Zadanie 1. Zmiana systemów. Zadanie 2. Szyfr Cezara. Zadanie 3. Czy liczba jest doskonała. Zadanie 4. Rozkład liczby na czynniki pierwsze Zadanie 5.

ALGEBRA LINIOWA Z ELEMENTAMI GEOMETRII ANALITYCZNEJ. 1. Ciała

Twierdzenie Eulera. Kongruencje wykład 6. Twierdzenie Eulera

Rozdział 2. Liczby zespolone

VI. Równania różniczkowe liniowe wyższych rzędów

Algorytm Euklidesa. ZADANIE 1. Oblicz korzystając z algorytmu Euklidesa: (a) NWD(120, 195), (b) NWD(80, 208), (c) NWD(36, 60, 90),

WIELOMIANY SUPER TRUDNE

Metody numeryczne I. Janusz Szwabiński. Metody numeryczne I (C) 2004 Janusz Szwabiński p.1/61

Algebra Boole a i jej zastosowania

Liczby zespolone. x + 2 = 0.

LISTA 1 ZADANIE 1 a) 41 x =5 podnosimy obustronnie do kwadratu i otrzymujemy: 41 x =5 x 5 x przechodzimy na system dziesiętny: 4x 1 1=25 4x =24

Algorytmy w teorii liczb

Matematyka dyskretna

FUNKCJE. (odwzorowania) Funkcje 1

SCENARIUSZ LEKCJI. Dzielenie wielomianów z wykorzystaniem schematu Hornera

Metody numeryczne. Postać zmiennoprzecinkowa liczby. dr Artur Woike. Arytmetyka zmiennoprzecinkowa. Uwarunkowanie zadania.

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

ALGEBRA Z GEOMETRIĄ PIERŚCIEŃ WIELOMIANÓW

1. Liczby naturalne, podzielność, silnie, reszty z dzielenia

Rozwiązania zadań z kolokwium w dniu r. Zarządzanie Licencjackie, WDAM, grupy I i II

Metody numeryczne. materiały do wykładu dla studentów. 7. Całkowanie numeryczne

Skończone rozszerzenia ciał

Rozkład materiału a wymagania podstawy programowej dla I klasy czteroletniego liceum i pięcioletniego technikum. Zakres rozszerzony

WIELOMIANY. ZADANIE 1 (5 PKT) Reszta z dzielenia wielomianu x 3 + px 2 x + q przez trójmian (x + 2) 2 wynosi 1 x. Wyznacz pierwiastki tego wielomianu.

Dydaktyka matematyki, IV etap edukacyjny (ćwiczenia) Ćwiczenia nr 7 Semestr zimowy 2018/2019

Projekt Era inżyniera pewna lokata na przyszłość jest współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

Powtórzenie podstawowych zagadnień. związanych ze sprawnością rachunkową *

TEORETYCZNE PODSTAWY INFORMATYKI

a 11 a a 1n a 21 a a 2n... a m1 a m2... a mn a 1j a 2j R i = , C j =

Teoria liczb. Magdalena Lemańska. Magdalena Lemańska,

Wymagania edukacyjne z matematyki dla uczniów klasy VII szkoły podstawowej

Układy równań i nierówności liniowych

Matematyka dyskretna. Andrzej Łachwa, UJ, /10

Analiza kongruencji. Kongruencje Wykład 3. Analiza kongruencji

dr Mariusz Grządziel 15,29 kwietnia 2014 Przestrzeń R k R k = R R... R k razy Elementy R k wektory;

Transkrypt:

Szybka transformata Fouriera w kryptografii klucza publicznego Andrzej Chmielowiec 3 września 2008 Streszczenie Artykuł poświęcony jest wykorzystaniu szybkiej transformaty Fouriera(FFT) do realizacji operacji arytmetycznych. Potencjalnym miejscem zastosowania szybkich algorytmów jest kryptografia klucza publicznego, która intensywnie korzysta z operacji na długich liczbach. Przyspieszenie wykonywania operacji arytmetycznych bardzo zyskało na znaczeniu w ciągu ostatnich lat. Wiąże się to z koniecznością zwiększenia długości kluczy i jednoczesnego zachowania dotychczasowej wydajności systemów kryptograficznych. Słowa kluczowe: Fast Fourier Transform(FFT), szybka transformata Fouriera, szybkie mnożenie, szybka arytmetyka, mnożenie liczb, mnożenie wielomianów 1 Wprowadzenie Przekształcenie RSA wymaga wykonywania obliczeń na relatywnie długich liczbach. Postęp, który dokonał się na przestrzeni ostatnich lat w kryptografii wskazuje na to, że wykorzystywanie kluczy o długości 3072 lub 4096 bitów jest koniecznością. Może to prowadzić do drastycznego spadku wydajności obliczeń w przypadku urządzeń peryferyjnych dysponujących niewielkimi mocami obliczeniowymi. W takich przypadkach może być opłacalne zastosowanie szybkiej transformaty Fouriera do mnożenia długich liczb. W artykule przedstawię szybką transformatę Fouriera zarówno od strony teoretycznej, jak i praktycznej. Zaprezentowane zostaną między innymi dwa algorytmy służące do mnożenia liczb całkowitych oraz ich zastosowanie w arytmetyce modularnej. Przedstawię w jaki sposób można zastąpić zespolone pierwiastki z jedności odpowiednimi pierwiastkami ciał skończonych podczas realizacji szybkiego mnożenia liczb całkowitych. Takie podejście eliminuje konieczność wykonywania operacji zmiennoprzecinkowych i dbania o ich odpowiednią precyzję. Pokażę również w jaki sposób można wykorzystać szybkie Centrum Modelowania Matematycznego Sigma 1

przekształcenie Fouriera do realizacji asymptotycznie szybkiej arytmetyki w pierścieniu formalnych szeregów potęgowych(mnożenie i dzielenie szeregów). Implementacja takich operacji jest bowiem niezbędna jeśli chcemy relatywnie szybko zliczać punkty na krzywej eliptycznej zadanej nad ciałem skończonym. Zagadnienie to jest bardzo istotne dla nowej generacji systemów kryptograficznych, których bezpieczeństwo opiera się na problemie logarytmu dyskretnego w grupie punktów krzywej. 2 Wielomiany i pierwiastki z jedności Wielomianem zmiennej X nad ciałem K nazywamy funkcję A(X), która ma postać A(X) = n a j X j. Stopniemwielomianunazywamynajwiększąliczbęcałkowitą d n,dlaktórej a d 0.Wprzypadku,gdywszystkiewspółczynniki a j sązerowe,wielomiannazywamyzerowymiprzyjmujemy, że jego stopień wynosi 1. Zbiór wszystkich wielomianów tworzy pierścień, który oznaczamy przez K[X]. Jeżeli wielomiany A, B K[X] mają postać A(X) = n a j X j, B(X) = to ich sumę, różnicę i iloczyn definiujemy następująco A(X) + B(X) = A(X) B(X) = A(X) B(X) = 2n n b j X j, n (a j + b j )X j, n (a j b j )X j, ( j a k b j k )X j. Z przytoczonych formuł wynika, że do wykonania dodawania lub odejmowania wielomianów konieczne jest wyznaczenie n sum lub różnic odpowiednich współczynników. Natomiast do wykonaniamnożeniapotrzebujemywyznaczyćaż n 2 iloczynówodpowiednichwspółczynników. Taka liczba mnożeń nie stanowi większego problemu w przypadku, gdy wielomiany mają nieduże stopnie. Metoda ta jest jednak bardzo czasochłonna jeżeli wielomiany mają po kilka milionów niezerowych współczynników(takie wielomiany są wykorzystywane między innymi w algorytmach zliczania punktów krzywej eliptycznej nad prostym ciałem skończonym). k=0 Centrum Modelowania Matematycznego Sigma 2

2.1 Reprezentacjawielomianów Przedstawiona powyżej reprezentacja wielomianu nosi nazwę współczynnikowej i pozwala traktowaćwszystkiewielomianyoograniczeniustopnia njakowektorywspółczynników (a 0,...,a n ) K n.jestonabardzowygodnawprzypadku,gdychcemyokreślićwartośćwielomianuwdanym punkcie lub szukamy jego pierwiastków. Wyznaczanie wartości wielomianu w danym punkcie x nosi nazwę ewaluacji i może być efektywnie wykonane przy użyciu schematu Hornera A(x) = a 0 + x(a 1 + x(a 2 + + x(a n 1 + x(a n ))... )). Operacja ta jest szybka i wymaga wykonania jedynie n mnożeń i dodawań. Poza tym schemat Hornera ma bardzo dobre własności numeryczne, które determinują jego wykorzystanie podczas obliczeń zmiennoprzecinkowych. Niestety wykonanie mnożenia dwóch wielomianów reprezentowanych przez ich współczynniki jest, jak zauważyliśmy już wcześniej, operacją czasochłonną. Tej wady nie ma reprezentacja poprzez wartości w punktach. Okazuje się bowiem, żejeślimamydanyzbiórpar {(x 0,y 0 ),(x 1,y 1 ),...,(x n,y n )} takich,że x j x k,toistniejedokładniejedenwielomian A(X) K[X]ostopniuograniczonymprzez n,dlaktóregomamy A(x j ) = y j. Wykonanie mnożenia wielomianów sprowadza się w tym przypadku do wymnożenia odpowiednich wartości i wymaga jedynie n operacji w ciele K. Należy w tym miejscu zwrócić szczególną uwagę na to, aby suma stopni czynników nie przekraczała liczby n. W przeciwnym przypadku wynik otrzymany tą metodą będzie niepoprawny. Dotychczasowe rozważania pokazują, że mnożenie może być wykonane bardzo szybko, jeśli tylko zastosujemy inną reprezentację wielomianu(reprezentację przez wartości w punktach). W dalszej części artykułu pokażemy w jaki sposób szybko zmieniać reprezentację wielomianu i jak można zastosować otrzymane rezultaty w arytmetyce liczb całkowitych. 2.2 Pierwiastki z jedności Jeżelidladanegowielomianu A(X) K[X]istniejetakielement x Kdlaktórego A(x) = 0, to x nazywamy pierwiastkiem wielomianu A. W szczególności, gdy A(X) = X n 1, to x nazywamy pierwiastkiem n-tego stopnia z jedności. Jeżeli ponadto x nie jest pierwiastkiem żadnegowielomianu X d 1dla d < n,tonazywamygopierwiastkiempierwotnym n-tego stopniazjedności.wartowtymmiejscuzauważyć,żezbiór H n pierwiastków n-tegostopnia Centrum Modelowania Matematycznego Sigma 3

zjednościtworzypodgrupęzawartąwgrupie K.Abyuzasadnićtenfaktwystarczyzauważyć, żejeśli x,y H n K spełniająrównanie X n 1 = 0,to ( xy 1 ) n = 1. Wzwiązku xy 1 H n,cooznacza,że H n jestgrupą. Przykład1Niech K = Cbędzieciałemliczbzespolonych.Wielomian X 8 1mawtymciele 8pierwiastków,którymisąkolejnepotęgiliczby ω 8 = e 2πi /8.Wzwiązkuztymwielomian X 8 1rozkładanaczynnikiliniowe. (X 8 1) (X 4 1) (X 2 1) (X 2 + 1) (X 1) = (X ω8 0) (X + 1) = (X ω8 4) (X ω8 2) = (X ω2 8 ) (X + ω8 2) = (X ω6 8 ) (X ω 8 ) = (X ω8 1) (X 4 + 1) (X 2 ω 2 8 ) (X + ω 8 ) = (X ω 5 8 ) (X ω 3 8 ) = (X ω3 8 ) (X 2 + ω 2 8 ) (X + ω 3 8 ) = (X ω7 8 ) Kolejność czynników na powyższym diagramie nie została dobrana przypadkowo. Okazuje się, żedlakażdegowielomianupostaci X 2n 1możnatakjeuporządkować,abyiloczynkolejnych dwóch był dwumianem. Ta własność, jak się później okaże, jest bardzo istotna z punktu widzenia implementacji szybkiej transformaty Fouriera. W dalszej części uwagę skupimy na tych pierwiastkach z jedności, których stopień jest potęgą liczby 2. Te bowiem najlepiej nadają się do wykorzystania podczas realizacji szybkiej transformatyfouriera.przyjmijmyzatem,że n = 2 m,awielomian X m 1mawciele Kdokładnie npierwiastków ω 0,ω 1,...,ω n 1. Lemat1Jeżeli Φ 0,k = X ω l k,gdzie l k = m 1 ( k ) 2 mod 2 2 m 1 j,towszystkie j wyrażenia Φ j,k = Φ j 1,2k Φ j 1,2k+1 sądwumianamioniezerowymwyraziewolnymistopniurównym 2 j. Centrum Modelowania Matematycznego Sigma 4

Zanim przejdziemy do dowodu tego lematu wyjaśnimy jaki jest faktyczny związek pomiędzy potęgą pierwiastka z jedności, a pozycją na której powinien być ustawiony. Zawarty w treści lematuwzór l k = m 1 ( k ) 2 mod 2 2 m 1 j,choćmałoczytelny,wyrażabardzoprostą j zależność.jeżelibowiemprzedstawimyliczbę kwjej m-bitowejreprezentacji m 1 b j2 j,to liczba l k jestniczyminnymjak m 1 b m 1 j2 j.oznaczato,żeliczba l k powstajezliczby k poprzez odwrócenie kolejności bitów reprezentacji. Dowód: Rozwijającwzórrekurencyjnynawyrażenie Φ j,k otrzymujemyzwiązek Φ j,k = 2 j (k+1) 1 i=2 j k Φ 0,i = 2 j (k+1) 1 i=2 j k ( ) X ω l i. Na mocy uwagi poczynionej przed dowodem lematu możemy stwierdzić, że skoro i przebiega wszystkieliczbyzezbioru {2 j k + r : 0 r < 2 j }towykładniki l i przebiegająwszystkieliczby zezbioru {2 m j r + k : 0 r < 2 j }.Liczba k powstajezliczby kpoprzezzamianękolejności bitówicodowartościjestrówna l 2 j k.możemyzatemzapisać,że Przyjmując α = ω k Φ j,k = r=0 2 j 1 r=0 ( X ω 2m j r+k ). i β = ω 2m j upraszczamypowyższewyrażeniedopostaci 2 j 1 2j 1 ( ) X Φ j,k = (X αβ r ) = α 2j α βr. Alepotęgielementu βgenerująwszystkiepierwiastkistopnia 2 j zjedności.oznaczato,że ostatniiloczynwpowyższejformulereprezentujewielomian (X/α) 2j 1iostateczniewzórna Φ j,k upraszczasiędopostaci r=0 cokończydowódlematu. Φ j,k = X 2j α 2j = X 2j ω 2j k, Przykład2Zobaczmyjakdziaławprowadzonylematwpraktyce.Niech K = C,anaszymi pierwiastkamizjednościniechbędąkolejnepotęgiliczby ω = e 2πi/8. k = 0 = (0,0,0) 2 l 0 = (0,0,0) 2 = 0 k = 1 = (0,0,1) 2 l 1 = (1,0,0) 2 = 4 k = 2 = (0,1,0) 2 l 2 = (0,1,0) 2 = 2 k = 3 = (0,1,1) 2 l 3 = (1,1,0) 2 = 6 k = 4 = (1,0,0) 2 l 4 = (0,0,1) 2 = 1 k = 5 = (1,0,1) 2 l 5 = (1,0,1) 2 = 5 k = 6 = (1,1,0) 2 l 6 = (0,1,1) 2 = 3 k = 7 = (1,1,1) 2 l 7 = (1,1,1) 2 = 7 Centrum Modelowania Matematycznego Sigma 5

Jak można było przypuszczać, otrzymana kolejność pierwiastków jest taka sama, jak w poprzednim przykładzie. 3 Szybka transformata Fouriera i mnożenie wielomianów Głównym celem tego artykułu jest pokazanie w jaki sposób transformata Fouriera może być wykorzystana podczas mnożenia wielomianów, liczb i szeregów potęgowych. Dlatego też nasze wysiłki skupimy na wyjaśnieniu w jaki sposób można przy jej pomocy zmieniać reprezentację wielomianu, co bezpośrednio prowadzi do efektywnych algorytmów mnożenia. 3.1 Dyskretna transformata Fouriera Zajmiemy się teraz znalezieniem szybkiej metody przejścia od reprezentacji wielomianu za pomocą współczynników do jego reprezentacji za pomocą wartości w punktach. Podczas naszych rozważańbędziemyzakładali,żestopieńrozpatrywanegowielomianujestmniejszyod n = 2 m, ajegowspółczynnikipochodzązciała Kwktórym Φ n (X) = X n 1rozkładasięnaczynniki liniowe.oznaczmyprzez ω 0,ω 1,...,ω n 1 Kkolejnepierwiastkiwielomianu Φ n.towłaśnie wartości w tych punktach będą wyznaczane podczas zmiany reprezentacji. Poniższy lemat przedstawia dwie proste własności wielomianów, które będą nam potrzebne w dalszej części artykułu. Lemat2Niech xbędziedowolnymelementemciała K,awielomiany A,B,C,R K[X] spełniają warunki A mod B = R i B mod C = 0. Wtedy prawdziwe są następujące równości A(x) = A mod (X x) i A mod C = R mod C. Dowód: Dladowodupierwszejtożsamościprzyjmijmy,że A(X) = n 1 a jx j.poniższa tożsamość X k = (X k 1 + xx k 2 + + x k 2 X + x k 1 )(X x) + x k, pokazuje,że X k mod (X x) = x k.wykorzystującterazfakt,żeoperacja mod jest homomorfizmem naturalnym pierścienia K[X] otrzymujemy zależność n 1 A mod (X x) = a j X j mod (X x) = = n 1 ( a j X j n 1 a j x j = A(x), mod (X x) ) co kończy dowód pierwszej części lematu. Dla dowodu drugiej części zauważmy, że skoro A mod B = R,toistniejetakiwielomian D K[X],któryspełniatożsamość A = D B + R. Centrum Modelowania Matematycznego Sigma 6

Uwzględniając warunek B mod C = 0 otrzymujemy ostatecznie A mod C = (D B + R) mod C = (D mod C)(B mod C) + (R mod C) = R mod C, cokończydowódlematu. Lematy 1 i 2 dają nam możliwość szybkiego wyznaczenia wartości wielomianu w punktach będących pierwiastkami z jedności. Twierdzenie 1(Dyskretna transformata Fouriera) Niech A K[X] będzie wielomianem stopniamniejszegood n = 2 m,któregowartościwpierwiastkachzjednościmająbyćobliczone. Przyjmijmy,takjakwlemacie1,że Φ 0,k = X ω l kdla l k = m 1 ( k ) 2 mod 2 2 m 1 j j oraz Φ j,k = Φ j 1,2k Φ j 1,2k+1. Jeżeliciąg A j,k zdefiniowanyjestjako A j,k = A j+1, k/2 mod Φ j,k i A m,0 = A, towszystkiejegowyrazymożnawyznaczyćwykonując m nmnożeńwciele Ki A 0,k = A(ω l k). Dowód: Najpierwwykażemy,że A 0,k = A(ω l k).wtymceluprzeanalizujemyciągoperacji, któreprowadządowyznaczeniawyrazu A 0,k. A 0,k = ( A 1, k/2 mod Φ 0,k ) = ( A 2, k/2 2 mod Φ 1, k/2 ) mod Φ 0,k. = ((... ( ) ) A m, k/2 m mod Φ m, k/2 m 1... mod Φ 1, k/2 ) mod Φ 0,k Biorącpoduwagę,że k < n = 2 m i A m,0 = Aotrzymujemyzwiązek A 0,k = ((... ( ) ) ) A mod Φ m, k/2 m 1... mod Φ 1, k/2 mod Φ 0,k. Terazzauważmy,żezrekurencyjnejdefinicji Φ j,k wynikazależność Φ j,k Φ j+1, k/2,która prowadzidopodzielności Φ 0,k Φ 1, k/2 Φ m, k/2 m 1.Stosująclemat2otrzymujemy zatem A 0,k = A mod Φ 0,k = A(ω l k ). W celu oszacowania liczby niezbędnych mnożeń w ciele K wykorzystamy wyniki z lematu 1. Zauważmy,żewielomian A j,k powstajeprzezredukcjęwielomianu A j+1, k/2 onajwyżej 2 j+1 Centrum Modelowania Matematycznego Sigma 7

współczynnikachmodulodwumian Φ j,k = X 2j α 2j.Takaredukcjajestbardzołatwado przeprowadzeniaiwymagawykonania 2 j mnożeń 2 j+1 1 A j+1, k/2 mod Φ j,k = a i X i mod (X 2j α 2j) = = 2 j 1 i=0 2 j 1 i=0 i=0 2j 1 a i X i + α 2j i=0 ( a i + α 2j a 2 j +i a 2 j +ix i ) X i. Wzwiązkuztymdowyznaczeniapojedynczegowielomianu A j,k koniecznejestwykonanieco najwyżejtylumnożeńwciele K,jakijeststopień Φ j,k.zauważmy,żenakażdympoziomie rekurencjizachodzirówność k Φ j,k = Φ n = X n 1.Ponieważmamy mpoziomówrekurencji, tomaksymalnaliczbamnożeńjakienależywykonaćwynosi m n. Ponieważ nadmiar indeksów nie służy zrozumieniu istoty zagadnienia, zobaczmy jak faktycznie działa dyskretna transformata Fouriera na przykładzie. Przykład3Tymrazemnaszerozważaniabędziemyprowadziliwcieleskończonym K = F 17. Wszystkie niezerowe elementy tego ciała są pierwiastkami stopnia 16 z jedności. Do naszego przykładuwykorzystamyjedyniepierwiastkistopnia 4,którymisą ω 0 = 1,ω 1 = 13,ω 2 = 16,ω 3 = 4.Zprzykładów1i2wynikanastępującahierarchiawielomianów Φ j,k. Φ 2,0 = X 4 1 Φ 1,0 = X 2 1 Φ 1,1 = X 2 16 Φ 0,0 = X 1 Φ 0,1 = X 16 Φ 0,2 = X 13 Φ 0,3 = X 4 Powiedzmy,żechcemyznaleźćwartościwielomianu A(X) = X 3 + 2X 2 + 3X + 4wpunktach ω 0,...,ω 3.Postępujączgodniezprocedurąopisanąwtwierdzeniu1otrzymujemynastępujący Centrum Modelowania Matematycznego Sigma 8

ciągwielomianów A j,k. A 2,0 = X 3 + 2X 2 + 3X + 4 A 1,0 = A 2,0 mod Φ 1,0 = (X 3 + 2X 2 + 3X + 4) mod (X 2 1) = 4X + 6 A 1,1 = A 2,0 mod Φ 1,1 = (X 3 + 2X 2 + 3X + 4) mod (X 2 16) = 2X + 2 A 0,0 = A 1,0 mod Φ 0,0 = (4X + 6) mod (X 1) = 10 = A(1) A 0,1 = A 1,0 mod Φ 0,1 = (4X + 6) mod (X 16) = 2 = A(16) A 0,2 = A 1,1 mod Φ 0,2 = (2X + 2) mod (X 13) = 11 = A(13) A 0,3 = A 1,1 mod Φ 0,2 = (2X + 2) mod (X 4) = 10 = A(4) 3.2 Odwrotna dyskretna transformata Fouriera Wyznaczanie wartości wielomianu w punktach przy użyciu transformaty Fouriera pozwala na zamianę reprezentacji tylko w jedną stronę. Aby nasze rozważania były kompletne musimy jeszcze wyjaśnić w jaki sposób można realizować przekształcenie odwrotne, które pozwala na powrót do reprezentacji współczynnikowej wielomianu. Twierdzenie 2(Odwrotna dyskretna transformata Fouriera) Przyjmijmy, tak jak w lemacie1,że Φ 0,k = X ω l kdla l k = m 1 ( k ) 2 mod 2 2 m 1 j oraz j Φ j,k = Φ j 1,2k Φ j 1,2k+1. Niech A K[X]będziewielomianemstopniamniejszegood n = 2 m,któregowartościwpierwiastkachzjedności ω 0,ω 1,...,ω n 1 sąznane.jeżeliciąg A j,k zdefiniowanyjestjako A j,k = A j+1, k/2 mod Φ j,k i A 0,k = A(ω l k ), towszystkiejegowyrazymożnawyznaczyćwykonując 2 m nmnożeńwciele Ki A m,0 = A. Dowód: Zlematu1wynika,żedwumiany Φ j,k mająpostać X 2j α 2j,gdzieelement α jestzadanydlakażdegoztychdwumianówosobno.ponieważ Φ j,k = Φ j 1,2k Φ j 1,2k+1 jest Centrum Modelowania Matematycznego Sigma 9

iloczynem dwumianów o tym samym stopniu, to mamy Φ j 1,2k = X 2j 1 α 2j 1 i Φ j 1,2k+1 = X 2j 1 + α 2j 1. Wyznaczeniewyrazówciągu A j,k przypomocyformułypodanejwtreścitwierdzeniajestniewykonalne,ponieważdysponujemyjedyniewyrazami A 0,k.Potrzebujemyzatemwarunku,który byłby równoważny i pozwalał na odtwarzanie ciągu w kierunku przeciwnym. Sprawdzimy teraz, że takim warunkiem jest A j,k = 1 2 (A j 1,2k + A j 1,2k+1 ) + X2j 1 2α 2j 1 (A j 1,2k A j 1,2k+1 ). Dladowodusłusznościpowyższejformuływystarczywykazać,że A j 1,2k = A j,k mod Φ j 1,2k i A j 1,2k+1 = A j,k mod Φ j 1,2k+1.Aletojestoczywiste,gdyżbiorącpoduwagępostać dwumianów Φ j 1,2k i Φ j 1,2k+1 mamy A j,k mod Φ j 1,2k = ( ) 1 X2j 1 2 (A j 1,2k + A j 1,2k+1 ) + 2α (A 2j 1 j 1,2k A j 1,2k+1 ) mod 1 2 (A j 1,2k + A j 1,2k+1 ) + 1 2 (A j 1,2k A j 1,2k+1 ) = A j 1,2k A j,k mod Φ j 1,2k+1 = ( ) 1 X2j 1 2 (A j 1,2k + A j 1,2k+1 ) + 2α (A 2j 1 j 1,2k A j 1,2k+1 ) mod ( X 2j 1 α 2j 1) = ( X 2j 1 + α 2j 1) = 1 2 (A j 1,2k + A j 1,2k+1 ) 1 2 (A j 1,2k A j 1,2k+1 ) = A j 1,2k+1. Terazwystarczyzauważyć,żewceluwyznaczeniakażdegozwielomianów A j,k wykonujemy dwa razy więcej mnożeń niż w przypadku schematu podanego w twierdzeniu 1. Dlatego należy wykonać 2 m nmnożeńwciele K.Tokończydowód. Dysponując szybkim przekształceniem do zmiany reprezentacji wielomianów możemy wykorzystać je do realizacji asymptotycznie szybkiego algorytmu mnożenia. Zasada działania takiego algorytmu jest bardzo prosta. 1. Transformujemy wielomiany A, B K[X] reprezentowane przez współczynniki do ich reprezentacji przez wartości w punktach. 2. Mnożymy wielomiany poprzez wymnożenie wartości w odpowiadających sobie punktach. 3. Używamy transformaty odwrotnej, aby ponownie zamienić reprezentację na współczynnikową. Centrum Modelowania Matematycznego Sigma 10

4 Zastosowanie szybkiej transformaty Fouriera do realizacji arytmetyki modularnej Do tej pory zobaczyliśmy jedynie w jaki sposób można zastosować transformatę Fouriera do szybkiego mnożenia wielomianów. Aby zastosować nasze dotychczasowe wyniki, musimy w jakiś sposób powiązać liczby całkowite i wielomiany. Załóżmy zatem, że reprezentujemy liczby całkowitewsystemieopodstawie R.Wzwiązkuztymkażdadodatnialiczbacałkowita ajest reprezentowana w sposób jednoznaczny poprzez swoje cyfry n 1 a = a j R j. Patrząc na przedstawioną powyżej liczbę, wydaje się, że najbardziej naturalnym pomysłem jest utożsamienie jej z wielomianem postaci n 1 A = a j X j. Należy jednak pamiętać, że wykonanie mnożenia z wykorzystaniem transformaty Fouriera wiąże sięzkoniecznościąinterpretowanialiczb a j jakoelementówpewnegociała.nasuwająsiętutaj dwie możliwości. 1.Możemypotraktowaćliczby a j jakoelementyciałaliczbzespolonych. 2.Możemypotraktowaćliczby a j jakoelementypewnegociałaskończonego F p. Tak naprawdę żadna z powyższych opcji nie jest doskonała. W pierwszym przypadku jesteśmy bowiem zmuszeni do kontroli błędów zaokrągleń. Drugie podejście usuwa ten problem, ale konieczne jest zapewnienie, że wynik nie zostanie zredukowany modulo p. To jednak jest dość łatwe do osiągnięcia. Jeżeli bowiem chcemy wymnożyć dwie liczby n bitowe, to wystarczy spełnićwarunek R 2 log 2 n + 1 < p.takieograniczeniepowoduje,żeżadenzewspółczynników iloczynu wielomianów nie zostanie zredukowany modulo p i na tej podstawie będzie można uzyskać informację na temat iloczynu liczb całkowitych. 4.1 Szybkie mnożenie liczb całkowitych Załóżmy, że chcemy wymnożyć dwie n bitowe dodatnie liczby całkowite a i b. Liczby te reprezentowane są w systemie o podstawie R i mają postać n 1 n 1 a = a j R j, b = b j R j. j=1 Centrum Modelowania Matematycznego Sigma 11

Zamieniamy te liczby na wielomiany n 1 n 1 A = a j X j, B = b j X j. Teraz musimy znaleźć taką liczbę pierwszą p, która spełnia warunki 1. R 2 log 2 n + 1 < p-odpowiadazabrakredukcjimodulo ppodczasobliczeń. 2. p = 2 m+1 r+1dlapewnego 2 m+1 2n-odpowiadazawystarczającąliczbępierwiastków zjedności. ZtwierdzeniaDirichletawynika,żeliczbpierwszychpostaci 2 m+1 r+1jestnieskończeniewiele i można je szybko znaleźć poprzez systematyczne przeszukiwanie zbioru liczb tej postaci. Należywtymmiejscuzwrócićuwagęnafakt,żewyznaczeniepierwiastkówstopnia 2 m wciele F p wymagaznajomościrozkładuliczby p 1naczynnikipierwsze.Możemyzatemwybierać jedynieteliczby p = 2 m+1 r + 1,dlaktórychznamyrozkładliczby rnaczynnikipierwsze. Taki dobór liczby p zapewnia, że wynik mnożenia wielomianów A i B przy użyciu transformaty Fouriera będzie identyczny z tym, który uzyskalibyśmy traktując te wielomiany jako elementy pierścienia Z[X]imnożącjewsposóbtradycyjny.Przyjmijmy,że C = A Bjestdanyzpomocą wyrażenia C = 2n 1 c j X j. Niestetyotrzymanepodczasobliczeńwspółczynniki c j niemogąbyćtraktowanejakocyfry liczby c = a b,gdyżnaogółsąonewiększeodliczby R.Wynikatozfaktu,żemnożenie wielomianów nie uwzględnia przeniesienia. Przyjmijmy zatem, że s jest najmniejszą liczbą całkowitą,dlaktórej p R s.wtedywielomian Cijegowspółczynnikimożemyzapisaćwpostaci C = 2n 1 ( s 1 j=1 c j,k R )X k j, gdzie c j,k < R.Zamieniająckolejnośćsumowaniaotrzymujemy s 1 2n 1 s 1 C = R k c j,k X j = C k R k, k=0 k=0 gdziewspółczynnikiwielomianów C k możnajużtraktowaćjakocyfryodpowiadającychim liczb.przyjmując,że c k odpowiadaliczbiereprezentowanejprzez C k mamy k=0 c = c 0 + c 1 R + + c s 1 R s 1. Centrum Modelowania Matematycznego Sigma 12

Koniecznośćzsumowanialiczb c k niemaistotnegowpływunazłożonośćalgorytmu,gdyż w praktycznych implementacjach liczba s przyjmuje najczęściej wartość 3 lub 4. To już jednak zależy od architektury sprzętu, na który projektowany jest algorytm. Mając na przykład do dyspozycjimaszynę32bitowąmożemyprzyjąć R = 2 32 iwybraćliczbę p = 2 32 r + 1,która ma96bitów.pozwalatonaefektywnemnożenieliczbnieprzekraczających 2 231 izwiązane jestzkoniecznościązsumowaniajedynietrzechliczb c k. W zależności od możliwości sprzętu, który ma wykonywać obliczenia, można rozważać jeszcze inne podejście do szybkiego mnożenia liczb w oparciu o ciała skończone. Polega ono na wykonaniuobliczeńwkilkumniejszychciałach F pi izastosowaniutwierdzeniachińskiegooresztach wceluwyłuskaniawłaściwegowyniku.wtymcelunależyznaleźćliczbypierwsze p i,które spełniają następujące warunki. 1. R 2 log 2 n + 1 < p i -odpowiadazabrakredukcjimodulo p i. 2. p i = 2 m+1 r i +1dlapewnego 2 m+1 2n-odpowiadazawystarczającąliczbępierwiastków z jedności. Zaletą tego podejścia jest możliwość operowania na liczbach pojedynczej precyzji(takich, które mieszczą się w rejestrze maszyny). Niestety pewne ograniczenie w zastosowaniu tej metody stanowi warunek 2. W istotny bowiem sposób utrudnia on implementację tej metody dla długich liczb na maszynach mających niewielkie rejestry(na przykład 8 bitowe). 4.2 Szybka realizacja arytmetyki w pierścieniu reszt Teraz pokażemy w jaki sposób można efektywnie realizować arytmetykę modulo pewna liczba M przyzałożeniu,że (M,R) = 1.Założenietojestnaogółspełnionepodczasrealizacji obliczeń kryptograficznych. W takich bowiem algorytmach jak RSA, DSA i DH moduły są bądź dużymi liczbami pierwszymi(dsa i DH), bądź ich iloczynami(rsa). Natomiast za podstawę systemu reprezentacji liczb przyjmuje się na ogół potęgę liczby 2. Lemat3Załóżmy,żeliczby (M,R) = 1, a,b < M < R n, q = M 1 mod R n i t 1 = a b t 2 = t 1 mod R n t 3 = t 2 q t 4 = t 3 mod R n t 5 = t 4 M t = (t 1 + t 5 )/R n. Wtedy spełniony jest jeden z poniższych warunków abr n mod M = t lub abr n mod M = t M. Centrum Modelowania Matematycznego Sigma 13

Dowód: Dladowodulematuwystarczywykazać,że t abr n mod Mi t < 2M.Zewzorów przedstawionychwtreściwynikarówność t 4 = abm 1 mod R n.wzwiązkuztymliczba t 5 spełnianastępującewarunki t 5 ab mod R n t 5 0 mod M. Tooznacza,że t 1 + t 5 0 mod R n idzielenieprzez R n wymagajedynieusunięcianajmłodszych ncyfr,któresązerami.zdrugiejstronymamynatomiast t 1 + t 5 t 1 mod M,co bezpośrednioprowadzidozwiązku t = (t 1 + t 5 )/R n abr n mod M.Abywykazać,że t < 2Mzauważmy,że t 4 < R n gdyżjestwynikiemredukcjimodulo R n.wzwiązkuztym t 5 = t 4 M < R n M.Ponadtowiemy,że t 1 < M 2,gdyż a,b < M.Ostatecznieotrzymujemy więc warunek cokończydowód. t = t 1 + t 5 R n < M2 + R n M R n < 2Rn M R n = 2M, Poniższe twierdzenie pokazuje w jaki sposób działanie wprowadzone w lemacie 3 wiąże się z operacjami wykonywanymi w sposób tradycyjny. Twierdzenie3Jeżeli (M,R) = 1,adziałaniawpierścieniach R 1 = Z M,0,1,+,, ir 2 = Z M,0,R n,+,, określonesąnastępująco to pierścienie te są izomorficzne. a ± b = a ± b a b = ab mod M mod M a b = abr n mod M, Dowód: Definiujemyprzekształcenie h : R 1 R 2 jako h(x) = xr n mod M. Jest ono różnowartościowe i na, gdyż liczby M i R są względnie pierwsze. Aby dokończyć dowód wystarczy zatem pokazać, że zachowuje działania 1. h(0) = 0, h(1) = R n, 2. h(a ± b) = (a ± b)r n mod M = (ar n ± br n ) mod M = h(a) + h(b), 3. h(a b) = abr n mod M = (ar n br n )R n mod M = h(a) h(b). Tokończydowód. Centrum Modelowania Matematycznego Sigma 14

5 Asymptotycznie szybka arytmetyka w pierścieniu formalnych szeregów potęgowych W tej części będziemy rozważali zagadnienie mnożenia i dzielenia formalnych szeregów potęgowych o współczynnikach całkowitych. W naszych rozważaniach będziemy przyjmowali, że interesuje nas jedynie n współczynników reprezentacji takiego szeregu. Jeżeli chodzi o mnożenie takiej skończonej reprezentacji szeregu potęgowego, to nie różni się ona od mnożenia wielomianów.trzebajedyniedobraćciało F p wktórymbędąprzeprowadzaneobliczenia.jeżeli przez R oznaczymy ograniczenie górne na wartość bezwzględną współczynników reprezentacji, toliczbapierwszadefiniującaciało F p powinnaspełniaćponiższewarunki. 1. 4R 2 log 2 n + 1 < p-odpowiadazabrakredukcjimodulo ppodczasobliczeń. 2. p = 2 m+1 r+1dlapewnego 2 m+1 2n-odpowiadazawystarczającąliczbępierwiastków zjedności. Podobnie, jak w przypadku algorytmu mnożenia liczb całkowitych można zastąpić obliczenia wciele F p seriąobliczeńwmniejszychciałach F pi.wtedyliczby p i musząspełniaćnastępujące warunki. 1. 4R 2 log 2 n + 1 < p i -odpowiadazabrakredukcjiwwynikuobliczeń. 2. p i = 2 m+1 r i +1dlapewnego 2 m+1 2n-odpowiadazawystarczającąliczbępierwiastków z jedności. Jeżeli ograniczenie na wartość bezwzględną współczynników R jest dość duże, to bardziej opłacalnejeststosowaniedrugiejmetodymnożenia.przyczymliczby p i warto,jeżelijestto możliwe, dobierać w taki sposób, aby mieściły się rejestrze procesora. Jeżeli chodzi o dzielenie szeregów potęgowych, to istnieje bardzo prosta metoda pozwalająca wyznaczać szereg odwrotny. Jest to metoda iteracyjna Newtona podczas której wykonywane są jedynie operacje odejmowania i mnożenia szeregów. Dużą jej zaletą jest szybka zbieżność, która nie zależy od danych wejściowych. Podczas każdej iteracji precyzja wyniku zwiększa się dwukrotnie. Oznacza to konieczność wykonania jedynie około log n iteracji, aby wyznaczyć szereg odwrotny z dokładnością do n współczynników. Jeżeli mamy dany szereg n 1 A = a j X j, Centrum Modelowania Matematycznego Sigma 15

którego pierwszy wyraz jest odwracalny, to zaprezentowana poniżej procedura pozwala na wyznaczenie szeregu odwrotnego. 6 Podsumowanie 1. m 0; 2. B 1 a 0 ; 3. while 2 m < ndo 3.1. B 2B B 2 2 m a jx j ; 3.2. m m + 1; 4. return B; W artykule przedstawiono dokładny opis zastosowania dyskretnej transformaty Fouriera do szybkiego mnożenia wielomianów. Zaprezentowana metoda została później adoptowana do realizacji asymptotycznie szybkiego mnożenia w pierścieniu liczb całkowitych. Pokazano również w jaki sposób można realizować szybkie mnożenie w szerokiej klasie pierścieni reszt modulo. W ostatniej części połączono szybkie przekształcenie Fouriera z własnościami pierścieni p- adycznych w celu realizacji szybkiego algorytmu znajdowania odwrotności formalnego szeregu potęgowego. Centrum Modelowania Matematycznego Sigma 16