12.07.2015 Views

Algorytmy transformacji wielomianowych i ich zastosowania

Algorytmy transformacji wielomianowych i ich zastosowania

Algorytmy transformacji wielomianowych i ich zastosowania

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

INSTYTUT BADAŃ SYSTEMOWYCH PANmgr Joanna KapustaNiestacjonarne Studia DoktoranckieRozprawa doktorska pt.<strong>Algorytmy</strong><strong>transformacji</strong> <strong>wielomianowych</strong>i <strong>ich</strong> <strong>zastosowania</strong>Promotor: dr hab. Ryszard Smarzewski, prof. KUL


Składam serdeczne podziękowaniaPanu dr hab. Ryszardowi Smarzewskiemu, prof. KUL,za cenne uwagi, które przyczyniły się do nadania niniejszejrozprawie jej ostatecznego kształtu oraz okazaną życzliwość.


Spis treści1. Wstęp 31.1. Cel pracy oraz motywy wyboru problematyki badawczej . . . . . . . 31.2. Tezy pracy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.3. Struktura pracy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6I Transformacje wielomianowe dla specjalnych konfiguracjipunktów 92. Aktualny stan wiedzy 103. Preliminaria 133.1. DFT, jednowymiarowy splot i dekonwolucja . . . . . . . . . . . . . . 133.2. Splot wielowymiarowy . . . . . . . . . . . . . . . . . . . . . . . . . . 194. Nowe algorytmy ewaluacji i interpolacji jednowymiarowej 224.1. Bazy wielomianowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224.2. Transformacja Lagrange’a-Newtona . . . . . . . . . . . . . . . . . . . 234.3. Transformacja Newtona-Lagrange’a . . . . . . . . . . . . . . . . . . . 264.4. Ewaluacja wielomianów w bazie potęgowej . . . . . . . . . . . . . . . 284.5. Analiza porównawcza algorytmów . . . . . . . . . . . . . . . . . . . 325. Interpolacyjne i ewaluacyjne transformacje wielowymiarowe 355.1. Sformułowanie problemu . . . . . . . . . . . . . . . . . . . . . . . . . 355.2. Transformacja Lagrange’a-Newtona . . . . . . . . . . . . . . . . . . . 375.3. Odwrotna transformacja Lagrange’a-Newtona . . . . . . . . . . . . . 405.4. Transformacja Maclaurina-Lagrange’a . . . . . . . . . . . . . . . . . . 431


Spis treściII Zastosowania <strong>transformacji</strong> <strong>wielomianowych</strong> 476. Współdzielenie sekretu 486.1. Podstawowe informacje . . . . . . . . . . . . . . . . . . . . . . . . . . 486.2. Hierarchiczne dzielenie sekretu . . . . . . . . . . . . . . . . . . . . . . 496.3. Podział sekretu ze wskazaniem jednostki odzyskującej sekret . . . . . 546.4. Dzielenie sekretu z kluczem wielomianowym . . . . . . . . . . . . . . 577. Głosowanie elektroniczne 637.1. E-głosowanie na świecie . . . . . . . . . . . . . . . . . . . . . . . . . 637.2. Wymagania wobec elektronicznego systemu głosowań . . . . . . . . . 657.3. Przykłady schematów głosowania elektronicznego . . . . . . . . . . . 667.4. Model głosowania elektronicznego . . . . . . . . . . . . . . . . . . . . 687.5. Analiza bezpieczeństwa . . . . . . . . . . . . . . . . . . . . . . . . . . 728. Transmisja rozgłoszeniowa 758.1. Schemat komunikacji rozgłoszeniowej . . . . . . . . . . . . . . . . . . 758.2. Protokół transmisji rozgłoszeniowej w oparciu o hierarchiczny schematdzielenia sekretu . . . . . . . . . . . . . . . . . . . . . . . . . . . 779. Podsumowanie 83Bibliografia 842


1. Wstęp1.1. Cel pracy oraz motywy wyboru problematykibadawczejIstotnym elementem nauk informatycznych jest projektowanie i analiza algorytmów,mających najczęściej swoje korzenie w szeroko rozumianej matematyce.Niniejsza rozprawa skupia się na jednym z ważnych [Knuth, 2002] zagadnień z tegoobszaru - zaprezentowano w niej nowe algorytmy obliczania <strong>transformacji</strong> <strong>wielomianowych</strong>,tj. metody przekształcania reprezentacji wielomianu jednej lub wieluzmiennychw bazie {H α (x)} α∈Qnp (x) = ∑α∈Q na α H α (x)do reprezentacji tego wielomianup (x) = ∑α∈Q nb α G α (x)w bazie {G α (x)} α∈Qn, gdzie Q n oznacza odpowiednio ustalony zbiór indeksów.Celem niniejszej rozprawy doktorskiej jest opracowanie nowych, szybk<strong>ich</strong>algorytmów <strong>transformacji</strong> <strong>wielomianowych</strong> dla baz zależnych od specjalnych konfiguracjipunktów. Proponowane algorytmy operują na zbiorach punktów rozszerzającychklasę ciągów punktów, dla których znane są szybkie algorytmy tego rodzaju[Cooley i Tukey, 1965; Knuth, 2002; Aho i inni, 2003; Bostan i Schost, 2005].Dokładniej, w pracy przedstawiono algorytmy dla jednowymiarowych, a następniedla wielowymiarowych <strong>transformacji</strong> <strong>wielomianowych</strong> wykorzystujących bazy Lagrange’a,Newtona i potęgową z uwzględnieniem punktów, których współrzędne sągenerowane przez równanie rekurencyjne pierwszego rzędu.Wspomniane algorytmy w istotny sposób wykorzystują jedno- i wielowymiarowesploty. Zaprezentowano je w postaci łatwej do efektywnej implementacji. Ponadto3


Wstępprzeprowadzono szczegółową analizę złożoności obliczeniowej tych algorytmów.Następnie podano <strong>ich</strong> <strong>zastosowania</strong> w aktualnych problemach kryptograficznychtak<strong>ich</strong> jak: dzielenie sekretu, głosowanie elektroniczne, wymiana kluczy z wykorzystaniemtransmisji rozgłoszeniowej. Aktualność tych zagadnień wynika m.in. z szybkiegorozwoju internetu oraz stałego wzrostu znaczenia, jakie ma on w życiu jednosteki całych społeczeństw. W pracy szczególną uwagę zwrócono na głosowaniaelektroniczne ze względu na duży potencjał, jaki ze sobą niosą oraz na naturalnepowiązanie prezentowanego modelu głosowań z omawianymi algorytmami <strong>transformacji</strong><strong>wielomianowych</strong>. Głosowania z wykorzystaniem internetu umożliwiają partycypowaniew podejmowaniu decyzji dużej grupie uczestników bez koniecznościprzemieszczania się do miejsca głosowania, co oszczędza czas, koszty i może byćdodatkową zachętą do udziału w głosowaniu. Ponadto umożliwiają one oddanie głosuosobom, które z różnych względów (np. problemy zdrowotne) muszą rezygnowaćz udziału w tradycyjnych głosowaniach. Wspomniane zalety powodują, że systemywykorzystujące nowoczesne technologie są ciągle przedmiotem zainteresowań i badań,zarówno w kontekście głosowań [Fujioka i inni, 1993], [Klonowski i inni, 2005],[Zwierko i Kotulski, 2007], wymiany opinii mającej na celu wypracowanie konsensusu[Kacprzyk i Zadrożny, 2008], [Kacprzyk i Zadrożny, 2010], czy też w kontekściewspierania procesu podejmowania decyzji [Kacprzyk i Zadrożny, 2005]. W pracyprzedstawiono model, który może być wykorzystany do zbierania i zliczania głosówoddawanych przez internet oraz z wykorzystaniem maszyn do głosowania. Ustaleniesposobu interpretacji wyników głosowania i wskazania wariantu zwycięskiego możeodbywać się przy pomocy różnych technik (np. Condorceta, Bordy, większościowej,aprobującej [Nurmi, 2002]), które nie muszą prowadzić do takiego samego rezultatu.Okazuje się, że dla 100-osobowej grupy, w której głosy rozkładają się 48:23:22:6:1,mającej wybrać jeden wariant spośród 5 możliwych, nawet wariant o 6-głosowympoparciu może wygrać głosowanie [Hołubiec i Mercik, 2006].Innym istotnym zastosowaniem algorytmów <strong>transformacji</strong> <strong>wielomianowych</strong>, rozważanymw pracy, jest transmisja rozgłoszeniowa. Polega ona na rozsyłaniu zaszyfrowanejwiadomości do dużej grupy użytkowników w taki sposób, że wiadomość możezostać odtworzona jedynie przez członków dynamicznie zmieniającej się, uprawnionejpodgrupy. Przykładem <strong>zastosowania</strong> transmisji tego typu jest kodowana trans-4


Wstępmisja telewizyjnych platform cyfrowych - tylko użytkownicy, którzy dokonali opłatymają dostęp do programów telewizyjnych.Wymienione <strong>zastosowania</strong> wykorzystują zaprezentowany w pracy hierarchicznymodel dzielenia sekretu, który jest uogólnieniem klasycznego schematu Shamira[Shamir, 1979]. Schemat Shamira bazuje na interpolacji Lagrange’a, natomiast proponowanyhierarchiczny model dzielenia sekretu bazuje na interpolacji Hermite’a.Zastosowanie interpolacji Hermite’a pozwala na stosowanie tego schematu w grupacho ustalonej hierarchii. Rozważając rzeczywiste przypadki nie jest trudno znaleźćprzykłady instytucji lub organizacji (np. bank, wojsko), w których istnieje ustalonahierarchia podyktowana autorytetem jednostek, czy odpowiedzialnością jaka nan<strong>ich</strong> spoczywa. Rozdzielenie tajnej informacji wśród członków takiej grupy wymagazazwyczaj uwzględnienia wspomnianej hierarchii. W pracy przedstawiono kilkawariantów schematu dzielenia sekretu umożliwiających dopasowanie go do potrzebtego typu grup. Zaprezentowany model pozwala również na uwzględnienie sytuacji,w której do odzyskania sekretu konieczne jest uczestnictwo wybranych jednostek.W niniejszej rozprawie ograniczono się do przedstawienia wybranych zastosowańalgorytmów <strong>transformacji</strong> <strong>wielomianowych</strong>. Inne typowe <strong>ich</strong> <strong>zastosowania</strong> to interpolacja,ekstrapolacja, aproksymacja oraz metody typu Galerkina rozwiązywaniarównań różniczkowych [Bini i Pan, 1994; Stoer i Bulirsch, 1993; Kincaid i Cheney,2006]. Zamierzeniem autora nie było przytoczenie większości znanych zastosowań<strong>transformacji</strong> <strong>wielomianowych</strong>, ale ukazanie własnych osiągnięć z tego zakresu na tlewspółczesnych badań. W pracy skupiono się na praktycznych <strong>zastosowania</strong>ch, możliwychdo wykorzystania w życiu społecznym czy przedsięwzięciach komercyjnych(głosowania, transmisja rozgłoszeniowa). Konsekwencją tego jest pewnego rodzajuróżnorodność zagadnień podejmowanych w pracy, w których centrum znajdują sięalgorytmy <strong>transformacji</strong> <strong>wielomianowych</strong>.1.2. Tezy pracyPrzeprowadzone studia literaturowe oraz dotychczasowe badania pozwoliły nasformułowanie następujących tez pracy:1. Możliwe jest rozszerzenie klasy ciągów punktów, dla których znane są szybkie5


Wstępalgorytmy interpolacyjne i ewaluacyjne.2. Istnieją szybkie algorytmy obliczania jedno- i wielowymiarowych <strong>transformacji</strong><strong>wielomianowych</strong> z uwzględnieniem baz <strong>wielomianowych</strong> Lagrange’a, Newtonaoraz potęgowej, dla punktów spełniających równanie rekurencyjne pierwszegorzędu.3. Możliwe jest zastosowanie opracowanych algorytmów <strong>transformacji</strong> <strong>wielomianowych</strong>w protokołach kryptograficznych, tj. protokole dzielenia sekretu, głosowaniaelektronicznego oraz transmisji rozgłoszeniowej wykluczającej.1.3. Struktura pracyRozprawa składa się z 9 rozdziałów. Pierwszy rozdział stanowi wprowadzenie dotematyki rozważanej w pracy. Zawiera on opis celów badawczych, zakresu pracy orazmotywacji, które doprowadziły do opracowania nowych algorytmów i <strong>ich</strong> zastosowań.W pracy zostały wyodrębnione dwie zasadnicze części. Pierwsza z n<strong>ich</strong> (rozdziały2-5) dotyczy algorytmów obliczania <strong>transformacji</strong> <strong>wielomianowych</strong>, natomiast częśćdruga (rozdziały 6-8) omawia <strong>zastosowania</strong> <strong>transformacji</strong> <strong>wielomianowych</strong>.Pierwszą część pracy rozpoczyna rozdział omawiający aktualny stan wiedzy z zakresu<strong>transformacji</strong> <strong>wielomianowych</strong>. Zawiera on przegląd wyników opublikowanychw uznanych i cenionych w świecie nauki czasopismach oraz monografiach.W rozdziale trzecim przytoczono podstawowe pojęcia dotyczące jedno- i wielowymiarowychsplotów oraz podano metody <strong>ich</strong> obliczania z wykorzystaniem dyskretnej<strong>transformacji</strong> Fouriera [Aho i inni, 2003]. <strong>Algorytmy</strong> proponowane w niniejszejrozprawie należą do rodziny algorytmów wykorzystujących w sposób istotny te zagadnienia.Ponadto wprowadzono definicję cząstkowego splotu hipermacierzowego,która pozwala na przejrzysty zapis algorytmu obliczania splotu wielowymiarowegoi ułatwia oszacowanie jego złożoności obliczeniowej. Następnie podano algorytmyobliczania jedno- i wielowymiarowych dekonwolucji, które bazują na iteracyjnej metodzieNewtona [Borwein i Borwein, 1987].W kolejnych dwóch rozdziałach zaprezentowano nowe wyniki dotyczące <strong>transformacji</strong><strong>wielomianowych</strong> z uwzględnieniem wybranych baz <strong>wielomianowych</strong>: potęgowej,Lagrange’a i Newtona. Dokładniej, w czwartym rozdziale zaprezentowano6


Wstępalgorytmy obliczania jednowymiarowej <strong>transformacji</strong> Lagrange’a-Newtona i <strong>transformacji</strong>do niej odwrotnej z uwzględnieniem punktów spełniających równanie rekurencyjnepierwszego rzędu. Ponadto dla wymienionej klasy punktów przedstawionoalgorytm ewaluacji wielomianów w reprezentacji potęgowej. Podana klasa punktówrozszerza zbiór klas punktów analizowanych w dotychczasowej literaturze przedmiotu,m.in. w pracach [Bini i Pan, 1994; Bostan i Schost, 2005]. W tym rozdziale znalazłasię również analiza porównawcza opracowanych algorytmów z innymi znanymialgorytmami <strong>transformacji</strong> <strong>wielomianowych</strong> oraz ocena uzyskanych wyników. Częśćporuszanych w nim zagadnień została opublikowana w pracy [Smarzewski i Kapusta,2007]. W rozdziale piątym idee z poprzedniego rozdziału uogólniono na wielewymiarów. W obu przypadkach - jedno- i wielowymiarowym, położono specjalnynacisk na szczegóły algorytmizacji. Niektóre rezultaty tego rozdziału, dla przypadkudwuwymiarowego zostały omówione w artykule [Kapusta i Smarzewski, 2007b],natomiast dla przypadku wielowymiarowego - w [Kapusta i Smarzewski, 2009].Rozdział szósty rozpoczyna drugą część pracy poświęconą zastosowaniom <strong>transformacji</strong><strong>wielomianowych</strong>. Został w nim przedstawiony szczegółowy opis hierarchicznegoschematu dzielenia sekretu. W omawianym schemacie transformacje wielomianowesą wykorzystywane zarówno do uzyskania udziałów w dzielonym sekrecie, jaki przy odzyskiwaniu tego sekretu.W kolejnym rozdziale omówiono model głosowania elektronicznego wykorzystującyhierarchiczny schemat dzielenia sekretu. Zastosowanie tego schematu w prezentowanymmodelu głosowania pozwala podzielenie zadań i odpowiedzialności pomiędzykilka uprawnionych jednostek. Treść ósmego rozdziału zawiera opis ogólnegomodelu transmisji rozgłoszeniowej wykorzystującego transformacje wielomianowe.Proponowany model umożliwia wybranym użytkownikom odtworzenie klucza dostępudo systemu na podstawie specjalnie zbudowanej, rozgłaszanej wiadomości.Rozdział dziewiąty zawiera podsumowanie i spostrzeżenia dotyczące omawianychalgorytmów <strong>transformacji</strong> <strong>wielomianowych</strong> oraz <strong>ich</strong> zastosowań.Ostatecznie, do najważniejszych wyników tej pracy, nie mających odpowiednikóww dotychczasowych publikacjach innych autorów, należą:• Opracowanie nowych, szybk<strong>ich</strong> algorytmów jedno- i wielowymiarowych trans-7


Wstępformacji <strong>wielomianowych</strong>, z uwzględnieniem baz Lagrange’a, Newtona i potęgowej,dla punktów spełniających równania rekurencyjne pierwszego rzędu(rozdziały 4 i 5; twierdzenia 4.1, 4.5, 4.7, 5.2, 5.4 i 5.6).• Wskazanie praktycznych zastosowań opracowanych algorytmów <strong>transformacji</strong><strong>wielomianowych</strong> w istotnych problemach związanych z bezpieczeństwem informacji,tj. w dzieleniu sekretu (rozdział 6), głosowaniu elektronicznym (rozdział7) oraz protokole transmisji rozgłoszeniowej (rozdział 8).8


Część ITransformacje wielomianowedla specjalnych konfiguracjipunktów9


2. Aktualny stan wiedzyBadania w zakresie szybkiego obliczania <strong>transformacji</strong> <strong>wielomianowych</strong> dla specjalnychkonfiguracji punktów były prowadzone przez wiele lat. Szczególnym przypadkiemjest słynny algorytm FFT [Cooley i Tukey, 1965; Mateer, 2008] obliczaniadyskretnej <strong>transformacji</strong> Fouriera oraz algorytm obliczania <strong>transformacji</strong> do niejodwrotnej. <strong>Algorytmy</strong> te pozwalają na przechodzenie pomiędzy reprezentacją wielomianuwzględem bazy Lagrange’a z węzłami interpolacji 1, ω, . . . , ω n−1 , gdzie ωjest pierwiastkiem pierwotnym z jedności stopnia n = 2 k , a współczynnikami rozwinięciatego wielomianu względem bazy potęgowej, nazywanej też bazą Maclaurinalub Taylora. Ważny algorytm ewaluacji wielomianów tj. <strong>transformacji</strong> z uwzględnieniembaz potęgowej i Lagrange’a dla punktów, które tworzą ciąg geometryczny,został zaproponowany w [Rabiner i inni, 1969] (zob. też [Aho i inni, 1975]). Algorytmten redukuje obliczanie uogólnionej dyskretnej <strong>transformacji</strong> Fouriera do obliczeniasplotu. Złożoność obliczeniowa wymienionych algorytmów wynosi O (n log n), podczasgdy złożoność obliczeniowa innych, klasycznych algorytmów jest równa O (n 2 )lub w najlepszym przypadku O ( n log 2 n ) [Borodin, 1971; Aho i inni, 2003].Powszechnie znanym algorytmem obliczania wartości wielomianu dla danegopunktu jest algorytm Hornera. Stosując ten algorytm dla n dowolnych, paramiróżnych punktów uzyskuje się algorytm pozwalający na przechodzenie pomiędzyreprezentacją wielomianu w bazie potęgowej (lub Newtona) do reprezentacji tegowielomianu w bazie Lagrange’a, który wymaga wykonania O (n 2 ) operacji arytmetycznych.Algorytmem o mniejszej złożoności obliczeniowej równej O ( n log 2 n ) jestalgorytm typu ”dziel i zwyciężaj” polegający na rekurencyjnym dzieleniu zbiorupunktów na połowy i wykonywaniu obliczeń oddzielnie dla każdej z otrzymanychczęści [Borodin, 1971; von zur Gathen i Gerhard, 2003].Uogólniony algorytm <strong>transformacji</strong> Maclaurina-Lagrange’a, tzn. algorytm po-10


Aktualny stan wiedzyzwalający na obliczenie wartości wielomianu i jego pochodnych, dla dowolnych punktów[Knuth, 2002] wymaga wykonania O (n 2 ) operacji arytmetycznych, przy czymn oznacza liczbę punktów wraz z <strong>ich</strong> krotnościami. W przypadku, gdy współrzędnen punktów spełniają równie rekurencyjne pierwszego rzędu i krotności tych punktówwynoszą 2 to uogólnioną transformację Maclaurina-Lagrange’a można obliczyćalgorytmem o złożoność obliczeniowej równej O (n log n) [Kapusta i Smarzewski,2007a]. Algorytm obliczania <strong>transformacji</strong> odwrotnej jest tego samego rzędu [Kapustai Smarzewski, 2006a]. Szybki algorytm, rzędu O (n log n), istnieje również dlajednopunktowej ewaluacji wielomianu stopnia n − 1 tzn. obliczania wartości kolejnychpochodnych wielomianu w ustalonym punkcie [Aho i inni, 1975].Interesujące wyniki dotyczące algorytmów zmiany reprezentacji wielomianu w odniesieniudo baz <strong>wielomianowych</strong> Newtona i Maclaurina, zostały przedstawionew pracy [Gerhard, 2000]. W wymienionej pracy zostały omówione algorytmy z uwzględnieniemwspomnianych baz dla dowolnej konfiguracji punktów oraz specjalnejkonfiguracji punktów, tzn. dla punktów, których współrzędne tworzą ciąg arytmetyczny.Przegląd algorytmów zmiany bazy wielomianów można znaleźć w [Aho i inni,2003], [Bini i Pan, 1994] i [Knuth, 2002], oraz artykule [Bostan i Schost, 2005].Ponadto, w wymienionych pracach znajduje się dobre, obszerne omówienie literaturyzwiązanej z tą tematyką. Warto zwrócić uwagę, że znane algorytmy interpolacjii ewaluacji wielomianów dla dowolnych konfiguracji punktów, o złożoności obliczeniowejrównej O ( n log 2) , w sposób istotny wykorzystują algorytm obliczania splotubazujący na algorytmie FFT [von zur Gathen i Gerhard, 2003; Bini i Pan, 1994].Wśród wyników opublikowanych w ostatn<strong>ich</strong> latach, ważnym rezultatem wydajesię być uogólnienie algorytmów rzędu O (n log n), obliczania jednowymiarowych<strong>transformacji</strong> z uwzględnieniem specjalnych konfiguracji punktów, na punkty generowaneprzez równanie rekurencyjne pierwszego rzędu [Smarzewski i Kapusta, 2007].<strong>Algorytmy</strong> opisane w wymienionej pracy dotyczą <strong>transformacji</strong> względem baz <strong>wielomianowych</strong>Lagrange’a i Newtona.Naturalnym rozszerzeniem <strong>transformacji</strong> jednowymiarowych na wiele wymiarówjest zastosowanie podejścia tensorowego. Przy takim podejściu wiele rezultatów dotyczącychprzypadku jednowymiarowego przenosi się na wiele wymiarów. Przykład11


Aktualny stan wiedzydwuwymiarowej <strong>transformacji</strong> Newtona-Lagrange’a na siatce kartezjańskiej zostałzamieszczony m.in. w [Kincaid i Cheney, 2006]. Opis tej <strong>transformacji</strong> dla dowolnejliczby wymiarów można znaleźć w [Sauer, 1995]. Ponadto, w wymienionej pracy omówionosposób przechowywania w pamięci komputera wielomianu wielu zmiennychw postaci wektora współczynników o ustalonym porządku (np. leksykograficznymlub odwróconym leksykograficznym) oraz wykonywania podstawowych operacji natych wielomianach. Można tam również znaleźć rekurencyjny algorytm Hornera dlawielomianów wielu zmiennych, czyli algorytm obliczania wielowymiarowej <strong>transformacji</strong>Maclaurina-Lagrange’a.<strong>Algorytmy</strong> interpolacji i ewaluacji wielomianu d-zmiennych z uwzględnieniemróżnych reprezentacji <strong>wielomianowych</strong> (potęgowej, Lagrange’a, Newtona, Beziera-Bernsteina) były i są nadal przedmiotem badań [Pe¨na i Sauer, 2000; Sauer, 1995;Gasca, 1989; de Boor, 2000]. Interesujące, ujednolicone podejście do algorytmówewaluacji wielomianów d zmiennych stopnia n, polegające na zastosowaniu L-bazi B-baz, zaprezentowali w swo<strong>ich</strong> pracach Suresh Lodha i Ron Goldman [1995, 1997,1998]. Proponowane przez n<strong>ich</strong> algorytmy uwzględniają różne reprezentacje wielomianum.in. potęgową, Newtona i Lagrange’a. Złożoność obliczeniowa podanychprzez n<strong>ich</strong> algorytmów ewaluacji wielomianów w jednym punkcie wynosi O ( n d) .Opracowane przez autora niniejszej rozprawy nowe algorytmy obliczania dwuwymiarowych<strong>transformacji</strong> <strong>wielomianowych</strong> z uwzględnieniem baz Lagrange’a i Newtonadla punktów, które spełniają równanie rekurencyjne pierwszego rzędu zostałyzaprezentowane w [Kapusta i Smarzewski, 2007b]. Natomiast uogólnienie tych algorytmówna wiele wymiarów zostało przedstawione w [Kapusta i Smarzewski, 2009].12


3. Preliminaria3.1. DFT, jednowymiarowy splot i dekonwolucjaNiech K = (K+, ·) będzie ciałem z pierwiastkiem pierwotnym z jedności ω stopnian = 2 k . Dyskretną transformację Fouriera F ω : K n → K n oraz transformację doniej odwrotną Fω−1 : K n → K n definiuje się następującob = F ω (a),a = Fω−1 (b),b = (b 0 , b 1 , . . . , b n−1 ), a = (a 0 , a 1 , . . . , a n−1 ),n−1 ∑b i = a k ω ik , a i = 1k=0nn−1 ∑k=0b k ω −ik , i = 0, 1, . . . , n − 1,przy dodatkowym założeniu, że istnieje element odwrotny⎛⎞−11n = ⎜⎟⎝1 + 1 + . . . + 1} {{ }⎠ , 1 − jedynka w ciele K.n−elem.Transformację Fouriera F ω : K n → K n i transformację do niej odwrotną możnaobliczyć słynnym algorytmem FFT zaproponowanym przez Jamesa W. Cooleyai Johna W. Tukeya [1965], wykonując 3 n log n+O (n) operacji arytmetycznych w cieleK [Pan, 2001; von zur Gathen i Gerhard, 2003]. Wiele późniejszych2implementacjibazuje na algorytmie FFT, np. szybka biblioteka <strong>transformacji</strong> Fouriera FFTW[Frigo i Johnson, 1997, 2005]. Zwięzły opis wyprowadzenia algorytmu obliczającegodyskretną transformację Fouriera wraz z jego implementacją w języku C++ zostałprzedstawiony w pracy [Smarzewski i Kapusta, 2005]. Ten algorytm wykorzystujeideę użytą w słynnym algorytmie szybkiego sortowania Quick-Sort podanym np.w monografii [Wirth, 2001].W przypadku, gdy liczba n nie jest potęgą dwójki, jednym z możliwych sposobówpostępowania jest dopełnienie brakujących elementów danego wektora zerami tak,aby otrzymać wektor odpowiedniego rozmiaru [Mateer, 2008].13


PreliminariaSplotem wektorówa = (a 0 , a 1 , ..., a n−1 ) i b = (b 0 , b 1 , ..., b n−1 )o współrzędnych z ciała K jest wektorzdefiniowany wzoramia × b = (c 0 , c 1 , ..., c 2n−1 ),i∑c i = a k b i−k , i = 0, 1, . . . , 2n − 1. (3.1)k=0Jeżeli wektory a i b potraktujemy jako współczynniki wielomianówa(x) =n−1 ∑i=0a i x i i b(x) =n−1 ∑i=0b i x i , (3.2)wtedy obliczenie splotu jest równoważne obliczeniu iloczynu tych wielomianówc(x) = a(x)b(x) =2n−1 ∑i=0c i x i .Splot wektorów a i b można obliczyć algorytmem o złożoności obliczeniowejc (n) = 9n log n + O (n)[Bini i Pan, 1994]. Taki algorytm bazuje na tożsamościa × b = F −1ψ [F ψ(E(a)) · F ψ (E(b))] ,gdzie ψ = √ ω jest z założenia pierwiastkiem pierwotnym z jedności stopnia 2n w K,zanurzenie E : K n → K 2n jest zdefiniowane następująco⎛E(a) = ⎝a 0 , a 1 , . . . , a n−1 , 0, 0, . . . , 0⎠ , a = (a} {{ }0 , a 1 , . . . , a n−1 ) ∈ K n ,nnatomiast F ψ : K 2nwspółrzędna jest dana wzorem⎞→ K 2n oznacza dyskretną transformację Fouriera, której i-ta(F ψ (a)) i =2n−1 ∑k=0a k ψ ik , i = 0, 1, . . . , 2n − 1.14


PreliminariaObecnie znane algorytmy pozwalają na obliczenie splotu z wykorzystaniemc (n) = O (n log n log log n)operacji [Schönhage i Strassen, 1971; Cantor i Kaltofen, 1991]. W 2007 roku M. Fürerpodał algorytm szybszy dla ”astronomicznie dużej” wartości n, o złożonościobliczeniowejc (n) = O (n log n) 2 O(log∗ n) ,gdzielog ∗ n = min { i 0 : log (i) n 1 } i log (0) n = n oraz log (i+1) n = log log (i) n.Algorytm c (n) Literaturaklasyczny O (n 2 ) Bini i Pan, 1994Karatsuba O (n 1.59 ) Karatsuba, 1995w oparciu o FFT O (n log n) von zur Gathen i Gerhard,2003Schönchage-Strassena O (n log n log log n) Schönhage i Strassen,1971Fürera O (n log n) 2 O(log∗ n)Fürer, 2007Tabela 3.1: Złożoność obliczeniowa algorytmów obliczania splotuDla wektorów a i b definiuje się także zwinięty splot jako wektorktórego współrzędne są równea ⊗ b = (c 0 , c 1 , . . . , c n−1 ),i∑c i = a k b i−k , i = 0, 1, . . . , n − 1. (3.3)k=0Łatwo widać, że algorytmy obliczania zwiniętego splotu oraz splotu są tego samegorzędu. Z drugiej strony, algorytm obliczania zwiniętego splotu nie wymaga niecosztucznego podwajania wymiaru dziedziny dyskretnej <strong>transformacji</strong> Fouriera. Jedenz algorytmów obliczania zwiniętego splotu opiera się na równościa ⊗ b = { F −1 [F (a) · F (b)] + F −1 [F (Ψ · a) · F (Ψ · b)] /Ψ } /2, (3.4)15


Preliminariagdzie Ψ = (1, ψ, . . . , ψ n−1 ), F = F ω : K n → K n , ω = ψ 2 oraz operacje wektorowe· i / są zwykłym mnożeniem i dzieleniem odpowiedn<strong>ich</strong> współrzędnych. Złożonośćobliczeniowa tego algorytmu wynosic(n) = 9n log n + O(n).Wzór (3.4) w sposób uwikłany został zasugerowany w [Aho i inni, 2003].W praktycznych <strong>zastosowania</strong>ch zwinięty splot ⊗: K n × K n → K n jest bardziejefektywny, ze względu na mniejsze wymagania pamięciowe, niż splot ×: K 2n ×K 2n →K 2n , co zostało wykorzystane w algorytmie [Schönhage i Strassen, 1971; Aho i inni,2003]. Dla kompletności rozważań, poniżej przedstawiono krótki dowód wzoru (3.4)podany w pracy [Kapusta i Smarzewski, 2006b].orazZe wzorów (3.1) i (3.2) wynika, żec(x) = a(x)b(x) =n−1 ∑i=0n−1c i x i + x n ∑i=0c n+i x i , c 2n−1 = 0i∑n−1 ∑c i = a k b i−k i c n+i = a k b n+i−k .k=0k=i+1Wykorzystując dodatkowe wektory d, h ∈ K n o współrzędnychd i = c i + c n+i i h i = c i − c n+i , i = 0, 1, . . . , n − 1otrzymuje sięc i = (d i + h i )/2, i = 0, 1, . . . , n − 1.Obliczając wartości wielomianud(x) =gdzie ω = ψ 2 , uzyskuje sięd(ω l ) ==n−1 ∑i=02n−1 ∑i=0n−1 ∑i=0d i ω il =d i x i dla x = ω l , l = 0, 1, . . . , n − 1,n−1 ∑ i∑ω ili=0 k=0( i∑k=0a k b i−k)n−1a k b i−k + ω nl ∑ω il = a(ω l )b(ω l )dla l = 0, 1, ..., n − 1. Jest to równoważne temu, żed = F −1 [F (a) · F (b)] , F = F ω .16n−1ω il ∑i=0 k=i+1a k b n+i−k


PreliminariaZ drugiej strony ψ n = −1. Zatemn−1 ∑n−1ψ i h i ω il ∑ i∑n−1=ψ i ∑a k b i−k −i=0i=0 k=0k=i+1(2n−1 ∑ i∑)ψ k a k ψ i−k b i−kk=0=i=0ω il ⎛⎝Stąd dzielenie przez Ψ = (1, ψ, ψ 2 , ..., ψ n−1 ) dajeco kończy dowód wzoru (3.4).ψ i a k b n+i−k⎞⎠ω il , l = 0, 1, . . . , n − 1.h = F −1 [F (Ψ · a) · F (Ψ · b)] /Ψ,Operacja odwrotna do obliczania zwiniętego splotu c = a ⊗ b, czyli operacjadekonwolucji wektorówa = c ⊘ b = c ⊗ b −1jest określona dla wektorów c, b ∈ K n , o ile pierwsza współrzędna b 0 wektora b jestróżna od zera. Szukany wektor a jest dany wzorami rekurencyjnymia 0 = c 0 /b 0 ,(a i =c i −i−1 ∑k=0a k b i−k)/b 0 , i = 1, 2, . . . , n − 1,(3.5)otrzymanymi z trójkątnego układu równań (3.3). Obliczenie wektora a = c ⊗ dwymaga wcześniejszego obliczenia wektoratakiego, żegdzieb(x) =d = (d 0 , d 1 , . . . d n−1 ) = b −11/b(x) =n−1 ∑k=0n−1 ∑k=0d k x k + O(x n ), (3.6)( )∣b k x k i d k = dk 1 ∣∣∣∣x=0.dx k b(x)Ten wektor może być obliczony przy pomocy metody Newtona [Borwein i Borwein,1987]. Dokładniej, przyjmując( 1d = , − b )1, 0, . . . , 0b 0 b 2 0kolejne współrzędne wektora d = b −1 są generowane tak jak w algorytmie 3.1.17


PreliminariaAlgorytm 3.1. Dekonwolucja metodą Newtona.Input: Liczba całkowita n oraz wektory c = (c i ) n−1i=0 i b = (b i) n−1i=0 , gdzie b 0 ≠ 0.Output: Wektor a = c ⊗ b −1 ∈ K n .1. Oblicz d = ( 1b 0, − b 1b 20, 0, . . . , 0 ) .2. Dla k od 2 do ⌈log 2 n⌉:2.1. Oblicz d = 2d − d ⊗ d ⊗ b (wynik obliczeń - 2 k elementów).3. Oblicz a = c ⊗ d.Można wykazać, że w przypadku obliczania splotuc = (c 0 , c 1 , . . . , c n−1 ) = a ⊗ n balgorytmem rzędu O (n log n) złożoność obliczeniowa powyższego algorytmu wynosiO(n log n). W tym celu wystarczy przeanalizować zastosowaną metodę Newtonanieco dokładniej. Niechx i+1 = 2x i − x 2 i y, i = 0, 1, . . .będzie wzorem iteracyjnym Newtona dla funkcji f (x) = x −1 − y (x ≠ 0) . Ponadto,zakładając, że współczynnikid 0 , d 1 , . . . , d 2 i −1, i 1,wielomianu odwrotnego(b0 + b 1 x + . . . + b n−1 x n−1) −1= d0 + d 1 x + . . . + d 2 i −1x 2i−1 + O(x 2i )zostały już obliczone i d k = 0 dla każdego k 2 i . Wtedy pojedyncza iteracja metodyNewtonad = 2 · d − d ⊗ 2 i+1 d ⊗ 2 i+1 bpodwaja liczbę obliczonych współczynników d k (k = 0, 1, . . . , 2 i+1 − 1) wektora dekonwolucji.W konsekwencji wzór iteracyjny Newtonad = 2 · d − d ⊗ 2 i d ⊗ 2 i b, i = 2, 3, . . . , ⌈log 2 n⌉18


Preliminariaz wektorem początkowym d postaci( 1d = , − b )1, 0, 0, . . .b 0 b 2 0generuje wymagany wektor dekonwolucjid = (d 0 , d 1 , . . . , d n−1 )dla b = (b 0 , b 1 , . . . , b n−1 ), b 0 ≠ 0. Ponieważ koszt obliczenia splotu ⊗ 2 iO(i2 i ) oczywiste jest, że koszt algorytmu 3.1 wynosi(O n log 2 n + n )2 log n22 + . . . + 2 log 2 2 = O (n log n) .jest równyW konkretnych <strong>zastosowania</strong>ch wymagających odwrócenia splotu niekiedy możnaskonstruować inne, nieco lepsze algorytmy, które nie wymagają stosowania iteracyjnejmetody Newtona. W szczególności ma to miejsce w przypadku odwracania<strong>transformacji</strong> Lagrange’a-Newtona. Zostanie to dokładniej omówione w rozdziale 4.3.2. Splot wielowymiarowySplot wielowymiarowy definiuje się podobnie, jak jednowymiarowy. Przyjmując,że n = (n 1 , n 2 , . . . , n d ) oznacza wektor dodatn<strong>ich</strong> liczb całkowitych iQ n = {α = (α 1 , α 2 , . . . , α d ) : 0 α i < n i dla i = 1, 2, . . . , d}jest zbiorem n 1 n 2 · · · n dwielowskaźników o współrzędnych całkowitych, wielowymiarowysplot hipermacierzy x = (x α ) α∈Qn i tablicy y = (y i ) d i=1 wektorów y i =(y i,0 , y i,1 , . . . , y i,ni −1) jest z definicji hipermacierzą z = (z α ) α∈Qn określoną wzoremz = x ⊗ 1 y 1 ⊗ 2 y 2 ⊗ 3 · · · ⊗ d y d . (3.7)W tym wzorze cząstkowe sploty ⊗ i definiuje się w następujący sposób:Definicja 3.2. Macierz wielowymiarowąw = (w α ) α∈Qn= x ⊗ i y i ∈ K n 1×n 2 ×···×n d, 1 i d,nazywamy i-tym cząstkowym splotem hipermacierzy x = (x α ) α∈Qni wektora y i =(y i,0 , y i,1 , . . . , y i,ni −1) jeżeli każda kolumnaw β1 ,...,β i−1 ,•,β i+1 ,...,β d, 0 β j < n j , j = 1, 2, . . . , i − 1, i + 1, . . . , d,19


Preliminariamacierzy w jest równa zwiniętemu splotowi kolumnyx β1 ,...,β i−1 ,•,β i+1 ,...,β d= ( ) ni −1x β1 ,...,β i−1 ,j,β i+1 ,...,β di wektora y i .Korzystając z tej definicji otrzymano metodę obliczania splotu wielowymiarowegoz = x ⊗ y zapisaną w postaci Algorytmu 3.3, w którym hipermacierz wejściowax = (x α ) α∈Qnzmienia się d razy poprzez cząstkowe splatanie z wektorem y i dlai = 1, 2, · · · , d.j=0Algorytm 3.3. Splot wielowymiarowy.Input: Hipermacierz x = (x α ) α∈Qni tablica y = (y i ) d i=1 , gdziey i = (y i,0 , y i,1 , . . . , y i,ni −1), n = (n 1 , n 2 , . . . n d ) oraz liczba całkowita d.Output: Wielowymiarowy splot z = (z α ) α∈Qn.1. Dla k od 1 do d:1.1. Oblicz x = x ⊗ k y k .2. Podstaw z = x.Algorytm dekonwolucji wielowymiarowej można skonstruować uogólniając ideepodane w Algorytmach 3.1 i 3.3:x = z ⊗ d y −1d⊗ d−1 y −1d−1 ⊗ d−2 · · · ⊗ 1 y −11 .Złożoność obliczeniowa C (N) algorytmu obliczania splotu wielowymiarowegoopartego na wzorze (3.7) wynosiO (N log N) , N = n 1 n 2 . . . n d ,w przypadku obliczania zwiniętego splotu algorytmem rzędu O (n log n) (zob. wzór(3.4)). W przypadku stosowania innych wspomnianych w poprzednim podrozdzialealgorytmów można jedynie stwierdzić, żeC (N) = N20d∑i=1c (n i )n i,


Preliminariagdzie c(n i ) oznacza koszt wyznaczenia zwiniętego splotu wektorów o n i współrzędnych.Jest to naturalną konsekwencją następującej obserwacji: w celu obliczeniasplotu wielowymiarowego należy kolejno obliczyć N N Nn 1,n 2, . . .,n dsplotów jednowymiarowychdla wektorów mających odpowiednio n 1 , n 2 , . . . , n d elementów.21


Nowe algorytmy ewaluacji i interpolacji jednowymiarowejrekurencyjnymi (4.1), wtedy dla tej <strong>transformacji</strong> istnieje wydajny algorytm o złożonościobliczeniowej c (n) + O (n).Rzeczywiście, podstawiającdo wzoru (4.4) i korzystając zotrzymuje się·i∏k=j+1x i = α i γ + β ( α i−1 + α i−2 + . . . + 1 ) (4.6)α j−k − 1 = (α − 1)(α j−k−1 + α j−k−2 + . . . + 1) (4.7)c i [(α − 1)γ + β] i i−1 ∏k=0α k =i∑j=0j−1 ∏k=0i−1i−j ∏[(α − 1)γ + β] α kk=j[] =α j (1 − α k−j ) γ − βα j k−j−1 ∑α νν=0[y j [(α − 1)γ + β] j j−1 ∏α kk=0∑]α k (α j−k − 1)γ + βα k j−k−1α νi∑j=0j−1 ∏y jk∑k=0 m=0(−1)·α mi−j−1 ∏k=0ν=0i−j−1i−j ∏α kk=0k∑m=0α m .W konsekwencji⎛ ⎞i∑c i = ⎝ p j q i−j⎠/r i , i = 0, 1, . . . , n − 1,j=0lub równoważniec = (p ⊗ q)/r,przy założeniu, że współrzędne wektorów p, q, r są dane wzoramip j =j−1 ∏y jk∑k=0 m=0α m , q j =r j = [(α − 1)γ + β] j j−1 ∏k=0(−1) j j−1 ∏j−1 ∏k=0 m=0α kk=0k∑α m ,α k , j = 0, 1, . . . , n − 1.(4.8)Tym samym zostało dowiedzione następujące twierdzenie:24


Nowe algorytmy ewaluacji i interpolacji jednowymiarowejTwierdzenie 4.1 (Smarzewski i Kapusta, 2007). Jeżeli L: K n → K n oznaczatransformację Lagrange’a-Newtona dla parami różnych węzłów (x i ) n−1i=0generowanychwzorem x i = αx i−1 + β (i = 1, 2, . . . , n − 1, α ≠ 0, x 0 = γ), to prawdziwy jestwzórL(y) = (p ⊗ q) /r, (4.9)gdzie elementy wektorów p, q, r ∈ K n są zdefiniowane wzorami (4.8).Uwaga 4.2. We wzorach (4.8), a także wszędzie poniżej przyjmuje się, że iloczyny,w których indeksy górne są mniejsze niż indeksy dolne, są z definicji równe 1.Poniższy algorytm prezentuje szczegóły szybkiego obliczania <strong>transformacji</strong> Lagrange’a-Newtonaułatwiające jego implementację i oszacowanie złożoności obliczeniowej.Algorytm 4.3. Transformacja Lagrange’a-Newtona dla parami różnych węzłówx 0 , x 1 , . . . x n−1 , generowanych wzorem x i = αx i−1 + β, i = 1, 2, . . . , n − 1, x 0 = γ.Input: Wektor y = (y 0 , y 1 , . . . , y n−1 ) ∈ K n , skalary α ≠ 0, β i γ ∈ K.Output: c = L(y) ∈ K n .1. Przypisz p 0 = y 0 , r 0 = 1, δ = (α − 1) · γ + β, s = 0, u = 1, v = 1/α i z = 1.2. Dla k od 1 do n − 1 wykonaj:2.1. s = s · α + 1, u = u · s, p k = y k /u,2.2. v = v · α, z = −z · v, q k = z/u,2.3. r k = r k−1 · v · δ.3. Oblicz c = p ⊗ q.4. Wykonaj dzielenie po współrzędnych c = c/r.Obliczenie wektorów p, q i r, występujących we wzorze (4.9), może być wykonanew jednej pętli i ma złożoność obliczeniową O(n) operacji bazowych K, co zostało25


Nowe algorytmy ewaluacji i interpolacji jednowymiarowejpokazane w algorytmie 4.3. Ponadto przy dodatkowym założeniu, że w ciele K istniejąpierwiastki pierwotne z jedności ψ i ω = ψ 2 , odpowiednio stopni 2n i n, tobezpośrednim wnioskiem z twierdzenia 4.1 jest:Wniosek 4.4. Algorytm obliczania <strong>transformacji</strong> Lagrange’a-Newtona ma złożonośćobliczeniową c(n) + O(n). W szczególnym przypadku, gdy do obliczania zwiniętegosplotu stosuje się algorytm oparty na wzorze (3.4), ten koszt wynosi O (n log n).Obliczenie odwrotnej <strong>transformacji</strong> Lagrange’a-Newtona L −1można wykonaćwykorzystując algorytm obliczania dekonwolucji 3.1. Dla tej <strong>transformacji</strong> możliwejest również zorganizowanie obliczeń w taki sposób, aby nie było wymagane stosowaniedekonwolucji - zostanie to omówione w następnym podrozdziale.4.3. Transformacja Newtona-Lagrange’aTransformacja Newtona-Lagrange’aN : (c i ) n−1i=0 → (y i) n−1i=0 ,odwrotna do <strong>transformacji</strong> Lagrange’a-Newtona L, opisuje przejście od rozwinięciawielomianu względem bazy Newtona (4.3) do rozwinięcia wielomianu względem bazyLagrange’a (4.2).W celu obliczenia wartości y i (i = 0, 1, . . . , n − 1) można do wzoru (4.3) zastosowaćklasyczny algorytm Hornera w postaciy j = y j+1 (x i − x j ) + c j , j = i − 1, i − 2, . . . , 0, y i = c i , (4.10)gdzie 0 i < n. Złożoność obliczeniowa tego algorytmu, równa O(n 2 ), może zostaćzredukowana do c (n) + O (n), o ile punkty x 0 , x 1 , . . . , x n−1 spełniają zależnośćrekurencyjną (4.1). Wynika to z podstawienia tej zależność do (4.3) i <strong>zastosowania</strong>wzorów (4.6) i (4.7):y i ===i∑j−1 ∏c jj=0 k=0i∑ j−1 ∏c jj=0 k=0i−1 ∏ k∑ i∑α νk=0 ν=0 j=0[ (αk ( α i−k − 1 ) γ + βα k) i−k−1 ∑α k [(α − 1) γ + β]j−1 ∏k=0i−k−1 ∑ν=0c j [(α − 1) γ + β] j j−1 ∏26k=0ν=0α να ν ]α k 1 .i−j−1 ∏ k∑α νk=0ν=0


Nowe algorytmy ewaluacji i interpolacji jednowymiarowejStąd⎛ ⎞i∑b i = ⎝ p j q i−j⎠ r i , i = 0, 1, . . . , n − 1,j=0lub równoważnieb = (p ⊗ q) · r,gdziep = (p j ) n−1j=0 , q = (q j) n−1j=0 , r = (r j) n−1j=0 ,orazp j = c j [(α − 1) γ + β] j j−1 ∏k=0α k ,j−11 ∏ k∑= r j = α ν . (4.11)q j k=0 ν=0Z powyższego wynika następujące twierdzenie:Twierdzenie 4.5 (Smarzewski i Kapusta, 2007). Jeżeli N : K n → K n oznaczatransformację Newtona-Lagrange’a dla parami różnych punktów spełniających zależnośćrekurencyjną x i = αx i−1 + β (i = 0, 1, . . . , n − 1, , x 0 = γ) , toN (c) =(p ⊗ 1 )· r, (4.12)rgdzie współrzędne wektorów p = (p j ) n−1j=0 i r = (r j ) n−1j=0 są zdefiniowane tak jakw (4.11). Ponadto, jeśli w ciele K istnieją pierwiastki pierwotne z jedności ψ i ω =ψ 2 , odpowiednio stopni 2n i n, to algorytm bazujący na wzorze (4.12) ma złożonośćobliczeniową równą c(n) + O(n), gdzie c(n) oznacza koszt obliczenia zwiniętego splotu.W szczególnym przypadku stosowania algorytmu bazującego na wzorze (3.4) rządtego algorytmu jest równy O(n log n) .Dla zupełności rozważań, szczegóły obliczania <strong>transformacji</strong> Newtona-Lagrange’aw oparciu o wzór (4.12) zostały przedstawione w algorytmie 4.6.27


Nowe algorytmy ewaluacji i interpolacji jednowymiarowejAlgorytm 4.6. Transformacja Newtona-Lagrange’a dla parami różnych węzłówx 0 , x 1 , . . . , x n−1 generowanych wzorem x i = αx i−1 + β, i = 1, 2, . . . , n − 1, x 0 = γ.Input: Wektor c = (c 0 , c 1 , . . . , c n−1 ) ∈ K n , skalary α ≠ 0, β i γ ∈ K.Output: y = N(c) ∈ K n .1. Przypisz p 0 = c 0 , r 0 = 1, δ = (α − 1) · γ + β, s = 0, v = 1/α i w = 1.2. Dla k od 1 do n − 1 wykonaj:2.1. v = v · α, w = w · v · δ, p k = c k · w,2.2. s = s · α + 1, r k = r k−1 · s.3. Oblicz y = p ⊗ 1.r4. Wykonaj mnożenie po współrzędnych y = y · r.4.4. Ewaluacja wielomianów w bazie potęgowejTransformacja Maclaurina - Lagrange’aM : (a i ) n−1i=0 → (y i) n−1i=0jest przekształceniem odwzorowującym wektor współczynników a = (a i ) n−1i=0 reprezentacjiwielomianu w bazie potęgowej (4.5) na wektor współczynników y = (y i ) n−1i=0reprezentacji wielomianu w bazie Lagrange’a (4.2). Wyznaczenie tej <strong>transformacji</strong>jest równoważne obliczeniu n wartości wielomianu (4.5):y i =n−1 ∑k=0a k x k i , i = 0, 1, . . . , n − 1. (4.13)Szczególnym przypadkiem tej <strong>transformacji</strong> jest dobrze znana dyskretna transformacjaFouriera w punktach x i = ω i (i = 0, 1, . . . , n−1), gdzie ω jest pierwiastkiempierwotnym z jedności stopnia n. Można ją obliczyć słynnym algorytmem FFT o złożonościobliczeniowej O(n log n) [Cooley i Tukey, 1965]. Jeśli punkty x 0 , x 1 , ..., x n−1tworzą ciąg geometryczny x i = γα i (i = 0, 1, ..., n − 1, γ ≠ 0) i istnieje element odwrotnyα −1 ∈ K, to transformację Maclaurina-Lagrange’a można wyznaczyć uogólnionymalgorytmem DFT o koszcie c (2n − 1)+O (n). Jest to konsekwencją poniższej28


Nowe algorytmy ewaluacji i interpolacji jednowymiarowejrówności:w którejy i =n−1 ∑k=0n−1a k γ k α ik ∑= b ik=0p k q i+k , i = 0, 1, . . . , n − 1,b k = α − k2 2 , pk = a k γ k α − k2 2 , qk = α k2 2 , k = 0, 1, . . . , n − 1.Stądgdziei∑y i−(n−1) = b i−(n−1) d k c i−k , i = n − 1, n, . . . , 2n − 2,k=0d k ={pn−1−k , k = 0, 1, . . . , n − 1,0, k = n, n + 1, . . . , 2n − 2c k = α k2 2 , k = 0, 1, . . . , 2n − 2,W konsekwencji, jeśli d = (d i ) 2n−2i=0 , c = (c i) 2n−2i=0i b = (b i ) n−1i=0 , toy = ( d ˜⊗c ) · b, (4.14)gdzied ˜⊗c = P n (d ⊗ c) .W ostatnim wzorze projekcja P n : K 2n−1 → K n jest zdefiniowana przezP n (e) = (e n−1 , e n , . . . , e 2n−2 ) , e = (e 0 , e 1 , . . . , e 2n−2 ) .Idea obliczania <strong>transformacji</strong> Maclaurina-Lagrange’a dla punktów tworzącychciąg geometryczny jako splotu została przedstawiona w [Rabiner i inni, 1969]. W [Ahoi inni, 1975] algorytm obliczania tej <strong>transformacji</strong> został rozszerzony na punktyx i = γα 2i + βα i + δ (i = 0, 1, . . . , n − 1). Okazuje się, że jeśli punkty spełniają zależnośćrekurencyjną (4.1) i α ≠ 1, to transformacja Maclaurina-Lagrange’a może byćrównież obliczona przy pomocy splotów. Wyprowadzając ten algorytm korzysta sięz tożsamościx iα≠1= γα i + β( ) 1 − αi, i = 1, . . . , n − 1. (4.15)1 − αPodstawiając ją do wzoru (4.13) otrzymuje się29


Nowe algorytmy ewaluacji i interpolacji jednowymiarowejgdzieα≠1y i =n−1 ∑k=0f k =a k ((γ (1 − α) − β) α i + β) k n−1 ∑(1 − α) k =((1 − α) γ − β)kk!n−1 ∑r=kPowyższy wzór można zapisać równoważnie jakok=0β r−k r!a r(r − k)! (1 − α) r .f k α ik , (4.16)f k = v n−1−k z k , (4.17)gdzie elementy wektorów z = (z k ) n−1k=0 i v = (v k) n−1k=0są zdefiniowane następująco((1 − α) γ − β)kz k = , k = 0, 1, . . . , n − 1,k!v = w ⊗ t, w = (w k ) n−1k=0 , t = (t k) n−1k=0 ,w k = βkk! , t k = (n − 1 − k)!a n−1−k(1 − α) n−1−k .(4.18)W konsekwencji z (4.14) i (4.16) otrzymuje sięy = ( g ˜⊗h ) · b,gdzie współrzędne wektorów g = (g k ) 2n−2k=0 , h = (h k) 2n−2k=0 i b = (b k) n−1k=0są zdefiniowanewzoramib k = α − k2 2 , k = 0, 1, . . . , n − 1,{fn−1−k bg k =n−1−k , k = 0, 1, . . . , n − 1,0, k = n, n + 1, . . . , 2n − 2,(4.19)h k = k22 , k = 0, 1, . . . , 2n − 2.Zatem obliczenie <strong>transformacji</strong> Maclaurina-Lagrange’a dla punktów spełniającychzależność rekurencyjną (4.15) wymaga obliczenia splotu - w celu wyznaczenia współczynnikówpewnego wielomianu, a następnie obliczenia wartości tego wielomianuw punktach, które tworzą ciąg geometryczny. Ostatecznie, przy założeniu, że c (dn)jest rzędu O (c (n)) dla d > 0, złożoność obliczeniowa tego algorytmu jest równaO (c (n)). Prowadzi to do następującego twierdzenia:30


Nowe algorytmy ewaluacji i interpolacji jednowymiarowejTwierdzenie 4.7. Jeśli M : K n → K n oznacza transformację Maclaurina-Lagrange’adla parami różnych punktów spełniających zależność rekurencyjną x i = αx i−1 +β(i = 0, 1, . . . , n − 1, α ≠ 1, x 0 = γ) , toM (a) = ( g ˜⊗h ) · b, (4.20)gdzie współrzędne wektorów g = (g k ) k=0 2n−2 , h = (h k) k=0 2n−2 i b = (b k ) k=0 n−1 są zdefiniowanewzorami (4.19). Ponadto, jeśli w ciele K istnieją pierwiastki pierwotne z jedności ψi ω = ψ 2 , odpowiednio stopni 2n i n, to algorytm bazujący na wzorze (4.20) ma złożonośćobliczeniową równą O (c(n)), gdzie c(n) oznacza koszt obliczenia zwiniętegosplotu. W szczególnym przypadku, gdy zwinięty splot jest obliczany ze wzoru (3.4),rząd tego algorytmu jest równy O(n log n) .Poniższy algorytm prezentuje szczegóły obliczania <strong>transformacji</strong> Maclaurina-Lagrange’a.Algorytm 4.8. Transformacja Maclaurina-Lagrange’a dla parami różnych węzłówx i = αx i−1 + β, i = 0, 1, . . . , n − 1, α ≠ 0, α ≠ 1, x 0 = γ.Input: Wektor a = (a 0 , a 1 , . . . , a n−1 ) ∈ K n , skalary α ∈ K\{0, 1}, β, γ ∈ K.Output: y = M (a i ) ∈ K.1. Korzystając z (4.18) oblicz elementy wektorów z, w i t.2. Oblicz v = w ⊗ t.3. Dla k od 1 do n − 1 wykonaj:2.1. f k = v n−1−k · z k .4. Korzystając z (4.19) oblicz elementy wektorów b, g i h.5. Oblicz y = g ˜⊗h.6. Wykonaj mnożenie po współrzędnych y = y · b.31


Nowe algorytmy ewaluacji i interpolacji jednowymiarowej4.5. Analiza porównawcza algorytmówW niniejszym podrozdziale porównano złożoność obliczeniową prezentowanychw pracy algorytmów z innymi, znanymi algorytmami obliczania <strong>transformacji</strong> <strong>wielomianowych</strong>.Wyniki tych porównań dla różnych konfiguracji punktów zestawionow tabelach 4.1, 4.3 i 4.2.Ciąg punktów Złożoność obliczeniowa Literaturarównanie rekurencyjne c (n) + O (n) Algorytm 4.3I-go rzędu3dowolny2 (n2 − n) Kincaid i Cheney, 2006,str. 314dowolny 3c (n) log n + O (c(n)) Bostan i Schost, 2005arytmetyczny c (n) + O (n) Gerhard, 2000, sekcja 3geometryczny c (n) + O (n) Bostan i Schost, 2005,sekcja 5Tabela 4.1: Złożoność obliczeniowa algorytmów - transformacja Lagrange’a-NewtonaCiąg punktów Złożoność obliczeniowa Literaturarównanie rekurencyjne c (n) + O (n) Algorytm 4.6I-go rzędu3dowolny2 (n2 − n) wzór (4.10)dowolny 2c (n) log n + O (c(n)) Bostan i Schost, 2005arytmetyczny c (n) + O (n) Gerhard, 2000, sekcja 3geometryczny c (n) + O (n) Bostan i Schost, 2005,sekcja 5Tabela 4.2: Złożoność obliczeniowa algorytmów - transformacja Newtona-Lagrange’aTabela 4.1 prezentuje wyniki dotyczące <strong>transformacji</strong> Lagrange’a-Newtona, tabela4.2 - <strong>transformacji</strong> Newtona-Lagrange’a, natomiast tabela 4.3 - <strong>transformacji</strong>Maclaurina-Lagrange’a. Każda z wymienionych tabel przedstawia złożoność obliczeniowąproponowanych w pracy algorytmów (pierwszy wiersz w tabeli) na tle znanychrezultatów z tego zakresu. Dokładniej, pierwszy wiersz w każdej z tabel podaje złożonośćobliczeniową algorytmów dla punktów spełniających równanie rekurencyjnepierwszego rzędu:x i = αx i−1 + β, i = 1, 2, . . . , n − 1, x 0 = γ, α ≠ 0.32


Nowe algorytmy ewaluacji i interpolacji jednowymiarowejCiąg punktów Złożoność obliczeniowa Literaturarównanie rekurencyjne O (c (n)) Algorytm 4.8I-go rzędu (α ≠ 1)dowolny 3n 2 − n Knuth, 20023dowolny c (n) log n + O (c(n)) Bostan i inni, 20032arytmetyczny c (n) log n + O (c(n)) Bostan i Schost, 2005,sekcja 4.3geometryczny c (n) + O (n) Bostan i Schost, 2005,sekcja 5.3Tabela 4.3: Złożoność obliczeniowa algorytmów - transformacja Maclaurina-Lagrange’aDrugi i trzeci wiersz dotyczy algorytmów dla dowolnych parami różnych punktów,przy czym drugi wiersz odnosi się do klasycznych algorytmów, które można znaleźćw typowym kursie analizy numerycznej (nie korzystających z FFT), natomiastwiersz trzeci - szybk<strong>ich</strong> algorytmów wykorzystujących FFT. Czwarty wiersz prezentujezłożoność algorytmów dla punktów, których współrzędne tworzą ciąg arytmetycznyx i = γ + iβ, i = 0, 1, . . . , n − 1, β ≠ 0,oraz piąty wiersz - ciąg geometrycznyx i = α i , i = 0, 1, . . . , n − 1, α ≠ 0.Warto podkreślić, że klasyczny algorytm obliczania <strong>transformacji</strong> Newtona-Lagrange’adla dowolnej konfiguracji punktów polega na obliczeniu tablicy ilorazów różnicowych[Kincaid i Cheney, 2006]. Natomiast algorytm obliczania tej <strong>transformacji</strong>z wykorzystaniem FFT jest złożeniem dwóch <strong>transformacji</strong> Newtona-Maclaurinaoraz Maclaurina-Lagrange’a. W analogiczny sposób został skonstruowany algorytmobliczania odwrotnej <strong>transformacji</strong> Newtona-Lagrange’a [Bostan i Schost, 2005].Przykładowe, porównanie liczby operacji arytmetycznych wykonywanych przezalgorytmy <strong>transformacji</strong> Newtona - Lagrange’a dla punktów, których współrzędnespełniają równanie rekurencyjne pierwszego rzędu zostało przedstawione na rysunku4.1. Rysunek przedstawia wykresy dla algorytmu 4.6 oraz znanych algorytmów rzęduO (n 2 ) [Kincaid i Cheney, 2006] (tabela 4.2, wiersz 2) i O ( n log 2 n ) [Bostan i Schost,2005] (tabela 4.2, wiersz 3), przy założeniu, że splot jest obliczany algorytmem rzędu33


Nowe algorytmy ewaluacji i interpolacji jednowymiarowejO (n log n) (ze wzoru (3.4)) Ze względu na dużą różnicę pomiędzy liczbą operacjiporównywanych algorytmów na wykresie została zastosowana skala logarytmiczna.Rysunek 4.1: Porównanie liczby operacji arytmetycznych wykonywanych przez algorytmyobliczania <strong>transformacji</strong> Newtona-Lagrange’a dla punktów generowanychprzez równanie rekurencyjne pierwszego rzęduWarto zwrócić uwagę, że wykonanie obliczeń dla n = 2 16 przy pomocy algorytmu4.6 zamiast algorytmu klasycznego [Kincaid i Cheney, 2006], pozwala nazaoszczędzenie około 99, 6% operacji arytmetycznych. W porównaniu z algorytmemwykorzystującym FFT [Bostan i Schost, 2005] ta oszczędność wynosi około 95%.Podobne wyniki uzyskuje się w przypadku pozostałych <strong>transformacji</strong>.34


5. Interpolacyjne i ewaluacyjnetransformacje wielowymiarowe5.1. Sformułowanie problemuNiech n = (n 1 , n 2 , . . . , n d ) będzie wektorem dodatn<strong>ich</strong> liczb całkowitych i niechQ n będzie siatką α = (α 1 , α 2 , . . . , α d ) ze współrzędnymi całkowitymi spełniającyminierówność0 α i < n i dla i = 1, 2, . . . , d.Korzystając z notacji wielowskaźnikowej, definiuje się przestrzeń P d n = P d n (K) wszystk<strong>ich</strong>wielomianówp (x) = ∑α∈Q na α x α (5.1)zmiennej x = (x 1 , x 2 , . . . , x d ) ∈ K d , ze współczynnikami a α = a α1 ,α 2 ,...,α dz ciała K.Wzór (5.1) przedstawia wielomian w reprezentacji potęgowejZakładając, że parami różne punktyx α = x α 11 x α 22 . . . x α dd .x i,0 , x i,1 , . . . , x i,ni −1, x i,j ≠ x i,k dla j ≠ k,należą do ciała K dla każdego i = 1, 2, . . . , d, w przestrzeni P d n, n = (n 1 , n 2 , . . . , n d ),można zdefiniować inne bazy wielomianowe, m. in. bazę Lagrange’ai bazę NewtonaL α (x) =B α (x) =d∏n i −1 ∏i=1 j=0j≠α id∏α i −1 ∏i=1 j=0x i − x i,jx i,αi − x i,j, α = (α 1 , α 2 , . . . , α d ) ∈ Q n , (5.2)(x i − x i,j ) , α = (α 1 , α 2 , . . . , α d ) ∈ Q n , (5.3)35


Interpolacyjne i ewaluacyjne transformacje wielowymiaroweWiadomo, że wielomian interpolacyjny zdefiniowany przez następujące warunkiinterpolacjip (x α ) = f α , α ∈ Q n ,w węzłach x α = (x 1,α1 , x 2,α2 , . . . , x d,αd ) ∈ K d , gdzie f α = f (x α ) są wartościamifunkcji f : K d → K, istnieje i jest określony jednoznacznie. Może on zostać zapisanyw postaci Lagrange’alub Newtonap (x) = ∑p (x) = ∑α∈Q nf α L α (x) (5.4)α∈Q nc α B α (x) , (5.5)gdzie L α (x) i B α (x) są wielomianami zdefiniowanymi odpowiednio wzorami (5.2) i(5.3). Ponadto współczynniki c α , występujące we wzorze (5.5), oznaczają wielowymiaroweilorazy różnicowe zdefiniowane wzoramic α = f [x 1,0 , . . . , x 1,α1 ; . . . ; x d,0 , . . . , x d,αd ] =∑β∈clQ αd∏ ∏α ii=1 j=0f β, (5.6)(x i,βi − x i,j )j≠β igdzieclQ α = {β = (β 1 , β 2 , .., β d ) : 0 β i α i dla i = 1, 2, . . . , d} .W tym rozdziale zostaną zaprezentowane nowe, szybkie algorytmy obliczaniawielowymiarowych <strong>transformacji</strong> z uwzględnieniem baz Lagrange’a, Newtona i potęgowejw przypadku, gdy punktyx α = (x 1,α1 , x 2,α2 , . . . , x d,αd ) , α ∈ Q n ,są generowane przez następujące wzory rekurencyjnex i,j = λ i x i,j−1 + δ i , i = 1, 2, . . . , d, j = 1, 2, . . . , n i − 1, (5.7)gdzie λ i ≠ 0, δ i i x i,0 = κ i (i = 1, 2, . . . , d) są stałymi z ciała K. Rząd tych algorytmówwynosi O (C (N)), gdzie N = n 1 n 2 . . . n d i C (N) oznacza koszt obliczeniasplotu d-wymiarowego.36


Interpolacyjne i ewaluacyjne transformacje wielowymiarowe5.2. Transformacja Lagrange’a-NewtonaW obliczeniach numerycznych preferuje się [Stoer i Bulirsch, 1993] używaniewzoru interpolacyjnego Newtona (5.5) zamiast wzoru interpolacyjnego Lagrange’a(5.4). Między innymi dlatego duże znaczenie mają szybkie algorytmy obliczania<strong>transformacji</strong> Lagrange’a-Newtona zdefiniowanej wzoremL : f = (f α ) α∈Qn→ c = (c α ) α∈Qn,gdzie d-wymiarowe ilorazy różnicowe c α występujące w macierzy c wymiaru n 1 ×n 2 × · · · × n d są dane wzorem (5.6).Zakładając, że węzły interpolacyjne x α = (x 1,α1 , x 2,α2 , . . . , x d,αd ) spełniają zależnościrekurencyjne (5.7), które można zapisać w postaciorazα i ∏x i,j = λ j i κ i + δ i(λj−1i(x i,βi − x i,j ) =j=0j≠β iβ i −1 ∏j=0α i ∏⎡⎣λ j ij=β i +1⎡+ λ j−2i + · · · + 1 )β i −j−1 ∑⎣λ β iik=0j−β i −1 ∑k=0Ostatnia równość może być przekształcona do postaci⎤λ k i (κ i (λ i − 1) + δ i ) ⎦⎤λ k i (κ i (1 − λ i ) + δ i ) ⎦ .α i ∏Przyjmując oznaczenia(x i,βi − x i,j ) =j=0j≠β i(κ i (λ i − 1) + δ i ) α iβ∏i −1j=0( j ∑λ k ik=0)αi −β i −1 ∏j=0α i −β ∏ i −1j=0α∏i −1λ j ij=0λ j i(∑− j λ k ik=0).α i ∏(−1) α i−β iz i,βi z i,αi −β(x i,βi − x i,j ) = s i,αi uii,αiuj=0i,αi −β ij≠β ii korzystając ze wzoru (5.6) otrzymuje sięc α =∑d∏ b i,αi −βf (x β )id∏/ r i,αi ,β∈clQ α i=1z i,βi i=137


Interpolacyjne i ewaluacyjne transformacje wielowymiarowegdzie x β = (x 1,β1 , x 2,β2 , . . . , x d,βd ) ix i,j = λ i x i , j−1 +δ i , x i,0 = κ i ,s i,j = (κ i (λ i − 1) + δ i ) j , r i,j = s i,j u i,j ,j−1 ∏j−1u i,j = λ k ∏ k∑i , z i,j = λ r i ,k=0k=0 r=0(5.8)Stąd wynika, żegdzie⎛c α = ⎝α 1 ∑β 1 =0b i,j = (−1)j u i,jz i,j, i = 1, 2, .., d, j = 0, 1, . . . , n i − 1.⎛· · · ⎝α∑ d−1β d−1 =0⎛⎝α d ∑β d =0a β b d,αd −β d⎞⎠ b d−1,αd−1 −β d−1⎞⎠ · · · b 1,α1 −β 1⎞⎠ /r α ,a β = f (x β), r β = u β s β ,z βd∏d∏d∏u β = u i,βi , z β = z i,βi , s β = s i,βi .i=1i=1i=1(5.9)Wykorzystując notację cząstkowego splotu hipermacierzowego (definicja 3.2), algorytmobliczania wielowymiarowych ilorazów różnicowych c = (c α ) α∈Qnmożnazapisać wzoremc = (. . . ((a ⊗ 1 b 1 ) ⊗ 2 b 2 ) ⊗ 3 · · · ⊗ d b d ) /r, (5.10)w którymb i = (b i,0 , b i,1 , . . . , b i,ni −1) , a = (a α ) α∈Qni r = (r α ) α∈Qnsą zdefiniowane wzorami (5.8) i (5.9). We wzorze (5.10) dzielenie macierzy wielowymiarowychoznacza zwykłe dzielenie odpowiedn<strong>ich</strong> elementów tych macierzy.Algorytm 5.1 przedstawia szczegóły dotyczące obliczania wielowymiarowej <strong>transformacji</strong>Lagrange’a-Newtona, które ułatwiają jego implementacje i obliczenie złożonościobliczeniowej.38


Interpolacyjne i ewaluacyjne transformacje wielowymiaroweAlgorytm 5.1. Wielowymiarowa transformacja Lagrange-Newtona dla paramiróżnych węzłów x α = (x 1,α1 , x 2,α2 , . . . , x d,αd ), gdzie α = (α 1 , α 2 , . . . , α d ) ∈ Q n ,n = (n 1 , n 2 , . . . , n d ) i x i,j = λ i x i , j−1 +δ i (i = 1, 2, . . . , d, j = 1, 2, . . . , n i − 1,x i,0 = κ i , λ i ≠ 0).Input: Macierz f = (f α ) α∈Qnwartości funkcji w punktach x α , wektory skalarówλ = (λ 1 , λ 2 , . . . , λ d ) , δ = (δ 1 , δ 2 , . . . , δ d ) i κ = (κ 1 , κ 2 , . . . , κ d ) z K d , oraz wektornieujemnych liczb całkowitych n = (n 1 , n 2 , . . . , n d ).Output: Macierz c = (c α ) α∈Qnilorazów różnicowych.1. Dla i od 1 do d wykonaj:1.1. Podstaw z i,0 = 1, b i,0 = 1, v = 0, t = 1, p = 1/λ i , u i,0 = 1, s i,0 = 1,e = κ i (λ i − 1) + δ i .1.2. Dla j od 1 do n i :1.2.1. v = v · λ i + 1, z i,j = z i,j−1 · v,1.2.2. p = p · λ i , t = −t · p, b i,j = t/z i,j , u i,j = u i,j−1 · p,1.2.3. s i,j = s i,j−1 · e, r ij = s i,j · u i,j .2. Korzystając z (5.9) oblicz r β , a β dla każdego β ∈ Q n .3. Dla i od 1 do d wykonaj:3.1. Oblicz cząstkowy splot a = a ⊗ i b i .4. Wykonaj dzielenie macierzy po współrzędnych c = a/r.Oczywiste jest, że w powyższym algorytmie krokiem najbardziej kosztownym zewzględu na liczbę wykonywanych operacji arytmetycznych jest krok 3, gdyż jest onrównoważny obliczeniu d-wymiarowego splotu. Pozostałe kroki obliczające elementyniezbędnych wektorów i hipermacierzy oraz dzielenia odpowiedn<strong>ich</strong> współrzędnychhipermacierzy, wymagają jedynie wykonania O (dN) operacji arytmetycznych. Stądzłożoność obliczeniowa algorytmu 5.1 jest równaC (N) + O (dN) , N = n 1 n 2 . . . n d ,39


Interpolacyjne i ewaluacyjne transformacje wielowymiarowegdzie C (N) oznacza koszt obliczenia splotu d-wymiarowego (3.7). Tym samym dowódtwierdzenia 5.2 został zakończony.Twierdzenie 5.2 (Kapusta i Smarzewski, 2009). NiechL : f = (f α ) α∈Qn→ c = (c α ) α∈Qnoznacza wielowymiarową transformację Lagrange’a-Newtona dla parami różnych węzłówx α = (x 1,α1 , x 2,α2 , . . . , x d,αd ) generowanych wzorami rekurencyjnymx i,j = λ i x i,j−1 + δ i , i = 1, 2, . . . , d, j = 1, 2, . . . , n i − 1,gdzie λ i ≠ 0, δ i i x i,0 = κ i (i = 1, 2, . . . , d) są stałymi z ciała K. Wtedyc = (. . . ((a ⊗ 1 b 1 ) ⊗ 2 b 2 ) ⊗ 3 · · · ⊗ d b d ) /r, (5.11)gdzie elementy wektorów b i = (b i,0 , b i,1 , . . . , b i,ni −1) oraz hipermacierzy a = (a α ) α∈Qni r = (r α ) α∈Qnsą zdefiniowane wzorami (5.8) i (5.9). Ponadto, jeśli ψ i i ω i = ψ 2 i(ψ i ∈ K) są pierwiastkami pierwotnymi z jedności odpowiednio stopnia 2n i i n i(i = 1, 2, . . . , d), wtedy algorytm obliczania <strong>transformacji</strong> Lagrange’a-Newtona opartyna wzorze (5.11) ma złożoność obliczeniową C (N)+O (dN), gdzie N = n 1 n 2 . . . n d .5.3. Odwrotna transformacja Lagrange’a-NewtonaOdwrotna transformacja Lagrange’a-NewtonaL −1 : c = (c α ) α∈Qn→ p = (p α ) α∈Qnjest przekształceniem odwzorowującym macierz współczynników wielomianu wieluzmiennych zapisanego w bazie Newtona (5.3) w macierz współczynników rozwinięciatego wielomianu względem bazy Lagrange’a (5.2).Jeśli znane są współczynniki c α rozwinięcia wielomianu względem bazy Newtonap (x) = ∑c α B α (x) ,α∈Q nwtedy wartości p α = p(x α ), α ∈ Q n , w punktach x α = (x 1 ,α 1, x 2 ,α 2, . . . , x d ,α d) postacix i,j = λ i x i , j−1 +δ i i = 1, 2, .., d, j = 1, 2, . . . , n i − 1, x i,0 = κ i ,40


Interpolacyjne i ewaluacyjne transformacje wielowymiarowesą równegdzie⎛p α = ⎝ ∑∏ dc ββ∈clQ α i=1s i,βi u i,βiz i,αi −β i⎞d∏⎠ z i,αi , (5.12)i=1s i,j = (κ i (λ i − 1) + δ i ) j ,u i,j =j−1 ∏k=0λ k i , z i,j =j−1 ∏ k∑λ r ik=0 r=0dla i = 1, 2, .., d i j = 0, 1, . . . , n i − 1. Stąd wzór (5.12) można zapisać w postaci⎛ ⎛ ⎛⎞⎞⎞∑α 1 α∑ d−1∑α dp α = ⎝ · · · ⎝ ⎝ g β h d,αd⎠−β dh d−1,αd−1⎠−β d−1· · · h 1,α1⎠−β 1z α , (5.13)gdzieβ 1 =0β d−1 =0β d =0d∏g α = c α s α u α , z α = z i,αi ,i=1d∏d∏u α = u i,αi , s α = s i,αi ,i=1i=1( )1 1 1h i = , , . . . , .z i,0 z i,1 z i,ni −1(5.14)Podobnie jak poprzednio można otrzymać macierzową postać wzoru (5.13):p = (. . . ((g ⊗ 1 h 1 ) ⊗ 2 h 2 ) ⊗ 3 · · · ⊗ d h d ) · z, (5.15)w której elementy g = (g α ) α∈Qn, z = (z α ) α∈Qni h i = (h i,0 , h i,1 , . . . , h i,ni −1) sązdefiniowane jak w (5.14). We wzorze (5.15) ponownie użyto notacji cząstkowegosplotu hipermacierzowego zdefiniowanego w Rozdziale 3 (definicja 3.2). Ponadtowe wzorze (5.15) operacja · jest zwykłym mnożeniem odpowiedn<strong>ich</strong> współrzędnychmacierzy wielowymiarowych.Algorytm obliczania odwrotnej wielowymiarowej <strong>transformacji</strong> Lagrange’a-Newtonaoparty na wzorze (5.15) wyznacza elementy macierzy g i z oraz wektorówh i (i = 0, 1, . . . , d), co wymaga wykonania O (dN) operacji arytmetycznych, obliczawielowymiarowy splot algorytmem rzędu C (N), a następnie wykonuje mnożeniemacierzy po współrzędnych z wykorzystaniem O(N) operacji arytmetycznych. Stądzłożoność obliczeniowa algorytmu wynosiC (N) + O (dN) .41


Interpolacyjne i ewaluacyjne transformacje wielowymiarowePoniżej przedstawiono szczegóły obliczania odwrotnej wielowymiarowej <strong>transformacji</strong>Lagrange’a-Newtona.Algorytm 5.3. Odwrotna wielowymiarowa transformacja Lagrange’a-Newtonadla parami różnych węzłów x α = (x 1,α1 , x 2,α2 , . . . , x d,αd ), gdzie α =(α 1 , α 2 , . . . , α d ) ∈ Q n , n = (n 1 , n 2 , . . . , n d ) i x i,j = λ i x i , j−1 +δ i (i = 1, 2, .., d, j =1, 2, . . . , n i − 1, x i,0 = κ i , λ i ≠ 0).Input: Macierz c = (c α ) α∈Qnilorazów różnicowych, wektory skalarów λ =(λ 1 , λ 2 , . . . , λ d ) , δ = (δ 1 , δ 2 , . . . , δ d ) i κ = (κ 1 , κ 2 , . . . , κ d ) z K d , oraz wektorn = (n 1 , n 2 , .., n d ) liczb całkowitych nieujemnych.Output: Macierz p = (p α ) α∈Qnwartości wielomianu w punktach x α .1. Dla i od 1 do d:1.1. Podstaw z i,0 = 1, v = 0, p = 1/λ i , e = κ i (λ i − 1) + δ i , s i,0 = 1.1.2. Dla j od 1 do n i :1.2.1. v = v · λ i + 1, z i,j = z i,j−1 · v,1.2.2. p = p · λ i , u i,j = u i,j−1 · p,1.2.3. s i,j = s i,j−1 · e.1.2.3. h i,j = 1/z i,j2. Korzystając z (5.14) oblicz z α , g α dla każdego α ∈ Q n .3. Dla i od 1 do d:4.1. Oblicz cząstkowy splot g = g ⊗ i h i .4. Wykonaj mnożenie macierzy po współrzędnych p = g · z.Przedstawione w tym podrozdziale rozważania pozwalają na sformułowania następującegotwierdzenia:Twierdzenie 5.4 (Kapusta i Smarzewski, 2009). NiechL −1 : c = (c α ) α∈Qn→ p = (p α ) α∈Qn42


Interpolacyjne i ewaluacyjne transformacje wielowymiaroweoznacza odwrotną wielowymiarową transformację Lagrange’a-Newtona dla paramiróżnych węzłów x α = (x 1 ,α 1, x 2 ,α 2, . . . , x d ,α d) generowanych wzorami rekurencyjnymix i,j = λ i x i , j−1 +δ i i = 1, 2, .., d, j = 1, 2, . . . , n i − 1,gdzie λ i ≠ 0, δ i i x i,0 = κ i (i = 1, 2, . . . , d) są stałymi z ciała K. Wtedyp = (. . . ((g ⊗ 1 h 1 ) ⊗ 2 h 2 ) ⊗ 3 · · · ⊗ d h d ) · z, (5.16)gdzie elementy wektorów h i = (h i,0 , h i,1 , . . . , h i,ni −1) oraz hipermacierzy g = (g α ) α∈Qni z = (z α ) α∈Qnsą zdefiniowane wzorami (5.14). Ponadto, jeśli ψ i i ω i = ψ 2 i (ψ i ∈ K)są pierwiastkami pierwotnymi z jedności odpowiednio stopnia 2n i i n i (i = 1, 2, . . . , d),wtedy algorytm obliczania odwrotnej <strong>transformacji</strong> Lagrange’a-Newton oparty nawzorze (5.16) ma złożoność obliczeniową C (N) + (dN), gdzie N = n 1 n 2 . . . n d .5.4. Transformacja Maclaurina-Lagrange’aTransformacja Maclaurina-Lagrange’aM : a = (a β ) β∈Qn→ y = (y β ) β∈Qn,przekształca współczynniki a β rozwinięcia wielomianup(x) = ∑β∈Q na β x β , x β = x β 11 x β 22 . . . x β dd (5.17)względem bazy Maclaurina na współczynniki y β rozwinięcia tego wielomianu względembazy Lagrange’a (5.4). Obliczenie tej <strong>transformacji</strong> jest równoważne ewaluacjiwielomianu (5.17) w punktach x α (α ∈ Q n ).Zakładając, że współrzędne punków x α = (x 1,α1 , x 2,α2 , . . . , x d,αd ) spełniają zależnościrekurencyjnex i,j = λ i x i,j−1 + δ i , i = 1, 2, . . . , d, j = 1, 2, . . . , n i − 1, (5.18)gdzie λ i ≠ 0, λ i ≠ 1, δ i i x i,0 = κ i (i = 1, 2, . . . , d) są stałymi z ciała K, to wartościwielomianu y α = p(x α ) (α ∈ Q n ) można obliczyć algorytmem rzędu O (C (N)), gdzieN = n 1 n 2 . . . n d i C (N) oznacza koszt obliczenia splotu d-wymiarowego. Rzeczywiścieuogólniając przypadek jednowymiarowy i korzystając z tożsamościx i,j = κ i λ i j + δ i1 − λ ij1 − λ i, i = 1, 2, . . . , d, j = 1, 2, . . . , n i − 1, (5.19)43


Interpolacyjne i ewaluacyjne transformacje wielowymiarowewartości y α = p(x α ), α ∈ Q n , są równegdzieorazy α = ∑=β∈Q na β x β α =n 1 −1 ∑⎛n∑d −1f β = v β⎝ · · ·γ d =β dn 2 −1 ∑β 1 =0 β 2 =0⎛⎝n 1 −1 ∑n 2 −1 ∑β 1 =0 β 2 =0n∑d −1· · ·∏ df ββ d =0 i=1n∑d −1· · ·∏ da ββ d =0 i=1λ β iα ii ,x β ii,α i(5.20)⎛⎞ ⎞⎞n∑2 −1 n∑1 −1⎝ a γ s γ c 1,γ1⎠−β 1c 2,γ2⎠−β 2· · · c d,γd⎠−β d(5.21)γ 2 =β 2 γ 1 =β 1d∏v β = v i,βi ,i=1d∏s β = s i,βi , s i,j =i=1c i = (c i,0 , c i,1 , . . . , c i,ni −1) ,W konsekwencji⎛ ⎛n∑d −1 ∑y α = ⎝ . . . ⎝lub równoważnieβ d =0⎛n 2 −1 n∑1 −1⎝β 2 =0v i,j = (κ i (1 − λ i ) − δ i ) j,j!β 1 =0j!(1 − λ i ) j ,f β λ α 1β 11⎞⎠ λ α 2β 22c i,j = δj ij! . (5.22)⎞⎠ . . . λ α dβ ddy = ( . . . (( g ˜⊗ 1 h 1)˜⊗2 h 2)˜⊗3 . . . ˜⊗ d h d)· b, (5.23)przy założeniu, że elementy wektorów h i = (h i,0 , h i,1 , . . . , h i,2ni −2) i hipermacierzyg = (g β ) β∈Qnoraz b = (b β ) β∈Qnsą zdefiniowane wzorami⎞⎠b α =g α =d∏i=1b i,αi , b i,j = λ − j2 2i ,{fn−1−α b n−1−α α ∈ Q n ,0 α /∈ Q n ,(5.24)h i,j = λ j2 2i , j = 0, 1, . . . , 2n i − 2.Z powyższych rozważań wynika, że obliczenie wielowymiarowej <strong>transformacji</strong> Maclaurina-Lagrange’adla punktów spełniających zależności rekurencyjne (5.18) wymagawyznaczenia hipermacierzy f ze wzoru (5.21) i obliczenia wartości wielomianuwielu zmiennych w punktach, które tworzą ciag geometryczny. Algorytm 5.5 prezentujeszczegóły tych obliczeń.44


Interpolacyjne i ewaluacyjne transformacje wielowymiaroweAlgorytm 5.5. Wielowymiarowa transformacja Maclaurina-Lagrange’a dla paramiróżnych węzłów x α = (x 1,α1 , x 2,α2 , . . . , x d,αd ), gdzie α = (α 1 , α 2 , . . . , α d ) ∈Q n , n = (n 1 , n 2 , . . . , n d ) i x i,j = λ i x i , j−1 +δ i (i = 1, 2, .., d, j = 1, 2, . . . , n i − 1,x i,0 = κ i , λ i ≠ 0, λ i ≠ 1).Input: Macierz współczynników a = (a α ) α∈Qnreprezentacji wielomianu wieluzmiennych w bazie potęgowej, wektory skalarów λ = (λ 1 , λ 2 , . . . , λ d ) , δ =(δ 1 , δ 2 , . . . , δ d ) i κ = (κ 1 , κ 2 , . . . , κ d ) z K d , oraz wektor n = (n 1 , n 2 , .., n d ) liczbcałkowitych nieujemnych.Output: Macierz y = (y α ) α∈Qnwartości wielomianu w punktach x α .1. Korzystając z (5.22) oblicz s α i v α dla każdego α ∈ Q noraz c i,j dla i = 1, 2, . . . , d, j = 0, 1, . . . , n i − 1.2. Korzystając z (5.21) oblicz f = (f β ) β∈Qn.3. Korzystając z (5.24) wyznacz elementy wektorów h i (i = 1, 2, . . . , d)oraz hipermacierzy b = (b β ) β∈Qni g = (g β ) β∈Qn.4. Dla i od 1 do d:4.1. Oblicz g = g ˜⊗ i h i .5. Wykonaj mnożenie po współrzędnych y = g · b.Wykonanie kroków 1-3 algorytmu 5.5, tzn. obliczenie elementów niezbędnychhipermacierzy i wektorów, wymaga wykonania C (N) + (dN) (N = n 1 n 2 . . . n d ) operacjiarytmetycznych, ponieważ koszt obliczenia hipermacierzy f jest tego samegorzędu, co koszt obliczenia splotu wielowymiarowego. Przy założeniu, że C (dN) jestrzędu O (C (N)) dla d > 0, krok 4 wymaga wykonania O (C (N)) operacji arytmetycznych(por. przypadek jednowymiarowy). Z kolei mnożenie hipermacierzy powspółrzędnych wymaga wykonania O (N) operacji. Stąd algorytm obliczający wielowymiarowątransformację Maclaurina-Lagrange’a jest rzędu O (C (N)). Tym samymdowód twierdzenia 5.6 został zakończony.Twierdzenie 5.6. Niech M : a = (a α ) α∈Qn→ y = (y α ) α∈Qnoznacza wielowy-45


Interpolacyjne i ewaluacyjne transformacje wielowymiarowemiarową transformację Maclaurin-Lagrange’a dla parami różnych punktów x α =(x 1,α1 , x 2,α2 , . . . , x d,αd ), których współrzędne generowane są wzorami rekurencyjnymix i,j = λ i x i,j−1 + δ i , i = 1, 2, . . . , d, j = 1, 2, . . . , n i − 1,gdzie λ i ≠ 0, λ i ≠ 1, δ i i x i,0 = κ i (i = 1, 2, . . . , d) są stałymi z ciała K. Wtedyy = (· · · (( g ˜⊗) )1 h 1 ˜⊗2 h 2 ˜⊗3 · · · ˜⊗)d h d · b, (5.25)gdzie elementy wektorów h i = (h i,0 , h i,1 , . . . , h i,2ni −2) (i = 1, 2, . . . , d) oraz hipermacierzyg = (g α ) α∈Qni b = (b α ) α∈Qnsą zdefiniowane wzorami (5.24). Ponadto, jeśli ψ ii ω i = ψi 2 (ψ i ∈ K) są pierwiastkami pierwotnymi z jedności odpowiednio stopnia 2n ii n i (i = 1, 2, . . . , d), wtedy algorytm obliczania <strong>transformacji</strong> Maclaurina-Lagrange’aoparty na wzorze (5.25) ma złożoność obliczeniową O (C (N)), gdzie N = n 1 n 2 . . . n d .46


Część IIZastosowania <strong>transformacji</strong><strong>wielomianowych</strong>47


6. Współdzielenie sekretu6.1. Podstawowe informacjePodział sekretu (ang. secret sharing) 1 polega na rozdzieleniu pewnej informacji,zwanej kluczem bądź sekretem, pomiędzy członków ustalonej grupy osób w taki sposób,aby tylko cała grupa, bądź uprawniona podgrupa mogła tą informację odzyskać.Fragment informacji należący do jednej z osób nazywany jest udziałem (ang. share).W schematach dzielenia sekretu wyróżnia się dwa zaufane podmioty: dealera D i powiernikaC (ang. combiner). Dealer jest odpowiedzialny za generowanie udziałów dlaposzczególnych uczestników oraz <strong>ich</strong> bezpieczną dystrybucję, natomiast powiernikjest odpowiedzialny za odtworzenie sekretu.Schematy dzielenia sekretu zwykle zapewniają bezpieczeństwo tylko przy jednokrotnymużyciu. Wielokrotne stosowanie schematu może być bezpieczne, ale wymagadodatkowego ograniczenia, tzn. powiernik - po odzyskaniu sekretu, nie możeprzekazać go uczestnikom. Może jedynie wykonać określoną akcję np. poinformowaćo wyniku procedury odzyskiwania sekretu [Menezes i inni, 2005].Zadanie dzielenia sekretu można klasyfikować ze względu na wiele różnych kryteriów,np. rodzaj uzyskiwanych udziałów lub wzajemne relacje uczestników [Changi inni, 2005, 2004; Kulesza i Kotulski, 2003; Feng i inni, 2005; Ghodosi i inni, 1998].Najbardziej znany jest schemat progowy (t, n), w którym każda grupa uczestnikówpodziału sekretu o liczebności uczestników większej lub równej wartości progowejt może odzyskać sekret [Menezes i inni, 2005; Stinson, 1995]. Po raz pierwszy podziałsekretu oparty na wzorze interpolacyjnym Lagrange’a zaproponował Adi Shamir1 Ze względu na pewną niejednolitość terminów i pojęć występujących w polsk<strong>ich</strong> tłumaczeniachliteratury dotyczącej dzielenia sekretu czy głosowań elektronicznych, w dalszej części pracyobok polsk<strong>ich</strong> terminów zostały zamieszczone <strong>ich</strong> angielskie odpowiedniki. W pracy jest stosowanaterminologia używana w monografiach [Pieprzyk i inni, 2003; Menezes i inni, 2005].48


Współdzielenie sekretu[1979]. Równolegle z nim George Blakley zaproponował progowy schemat dzieleniasekretu w oparciu o przestrzenie rzutowe [Blakley, 1979]. Od tego czasu powstałowiele prac dotyczących zagadnień związanych z dzieleniem sekretu. Niektóre z n<strong>ich</strong>rozpatrują problem zapobiegania oszustwom oraz weryfikacji odtworzonego sekretu,np. [Tompa i Woll, 1998; Hwang i inni, 1999; Pieprzyk i Zhang, 2002; Zhao i inni,2009; Zhang i Liu, 2007].Interesujące hierarchiczne modele dzielenia sekretu uzyskuje się poprzez zastosowanieinterpolacji Hermite’a [Smarzewski i Kapusta, 2005] oraz Hermite’a-Birkoffa[Tassa, 2007]. Poza szczególnymi przypadkami opisanymi w [Kapusta i Smarzewski,2006a], [Kapusta i Smarzewski, 2007a] i [Aho i inni, 1975] nie są znane szybkiealgorytmy zmiany bazy dla interpolacji Hermite’a. Z drugiej strony, klasyczne algorytmyo złożoności kwadratowej wydają się być w wielu przypadkach wystarczającew schematach bazujących na interpolacji Hermite’a, gdyż odpowiednia organizacjaobliczeń [Smarzewski i Kapusta, 2005] i niezbyt duże rozmiary rozważanych zadańredukują do minimum zyski z ewentualnego przyśpieszenia algorytmów.6.2. Hierarchiczne dzielenie sekretuNiech dane będzie ciało K oraz niepusty zbiór węzłów interpolacji x i ∈ K\{0},i = 0, 1, . . . , n − 1, spełniających warunek∀ 0i


Współdzielenie sekretujest lewostronną krotnością węzła x i . Liczba wystąpień węzła x i w ciągu x 0 , x 1 , . . .,x n−1 , tzn. krotność tego węzła, jest równan i = max{k + p + 1 : x i−k = x i+p }.Oczywiście, dla każdej z tych krotności zachodzi n i > k i oraz n i = k s +1 dla pewnegos i. We wzorze (6.2) symbolez j = p [x 0 , x 1 , ..., x j ] , j = 0, 1, ..., n − 1, (6.4)oznaczają zmodyfikowane ilorazy różnicowe dla węzłów x 0 , x 1 , ..., x n−1 , zdefiniowanewzorami rekurencyjnymi postaci⎧y i+k−ki , x i = x i+k ,⎪⎨p [x i , x i+1 , . . . , x i+k ] =⎪⎩p[x i+1 ,x i+2 ,...,x i+k ]−p[x i ,x i+1 ,...,x i+k−1 ]x i+k −x i,w pozostałychprzypadkach,(6.5)w których 0 i oraz i + k < n. Istnienie wielomianu interpolacyjnego (6.2) i jegojednoznaczność wynika z tego, że warunki interpolacji (6.3) dają układ n równańz n niewiadomymi, którego wyznacznik główny jest uogólnionym wyznacznikiemVandermonde’a. Można wykazać [Mühlbach, 1993], że ten wyznacznik jest równyalbo 1, alboo ile∏(i,j)∈ΛZatem jest on różny od zera w ciele K.(x i − x j ),Λ := {(i, j) : 0 j < i < n, x i ≠ x j } ≠ ∅.Wyznaczenie zmodyfikowanych ilorazów różnicowych (6.4) jest równoważne obliczeniu<strong>transformacji</strong>przekształcającej wektorL H : (y i ) n−1i=0 → (z i ) i=0n−1(y i ) n−1i=0 , y i = p(ki) (x i ),k i !na wektor (z i ) n−1i=0 rozwinięcia wielomianu p (x) w uogólnionej bazie Newtona. Jestona uogólnieniem <strong>transformacji</strong> Lagrange’a-Newtona L prezentowanej w podrozdziale4.2.50


Współdzielenie sekretuAlgorytm 6.1. Uogólniona transformacja Lagrange’a-Newtona L H .Input: Wektory x = (x 0 , x 1 , . . . , x n−1 ) ∈ K n , k = (k 0 , k 1 , . . . , k n−1 ) ∈ K ni y = (y 0 , y 1 , . . . , y n−1 ) ∈ K n .Output: Wektor z = (z 0 , z 1 , . . . , z n−1 ) ∈ K n−1 uogólnionych ilorazów różnicowych.1. Dla j od 0 do n − 1 wykonaj:1.1. Dla i od j do j − k j wykonaj:1.1.1. Przypisz b i = y 2j−kj −i.1.2. Dla i od j − k j − 1 do 0 wykonaj:1.2.1. Przypisz b i = (b i+1 − b i )/(x j − x i ).1.3. Przypisz z j = b 0 .Algorytm 6.1 realizuje obliczanie zmodyfikowanych ilorazów różnicowych z j (j =0, 1, . . . , n − 1) posługując się przy tym pomocniczym wektorem b, w którym zapisywanesą ilorazy różnicowe postacib k = p [x k , x k+1 , . . . , x j ] , k = 0, 1, . . . , j,wykorzystywane w kolejnych cyklach zewnętrznej pętli względem j = 0, 1, . . . , n−1.Złożoność obliczeniowa tego algorytmu wynosi O (n 2 ).We wprowadzonym w [Smarzewski i Kapusta, 2005] hierarchicznym modelu podziałusekretu z losowo wybranym kluczem S, uogólnioną transformację Lagrange’a-Newtona L H wykorzystuje się do odzyskania klucza. W tym modelu dealer D wybierawęzły x 0 , x 1 , ..., x n−1 ze zbioru K\{0} i współczynniki a 0 , a 1 , ..., a m−1 ∈ Kwielomianup(x) =m−1 ∑i=0a k x k , m n,przy czym S = a 0 . Następnie, obliczając uogólnioną transformacje Maclaurina-Lagrange’aM H : (a i ) n−1i=0 → (y i ) i=0n−151


Współdzielenie sekretuotrzymuje wartościy i = p(ki) (x i ), i = 0, 1, ..., n − 1,k i !i przekazuje uczestnikom udziały postaci:U i = (k i , x i , y i ), i = 0, 1, ..., n − 1,gdzie zakłada się dodatkowo, że krotności n i węzłów x i spełniają ograniczenian i m,które gwarantują, że wszystkie udziały są istotne. Szczegółowy opis algorytmu obliczającegouogólnioną transformację Maclaurina-Lagrange’a M H , w oparciu o schematHornera, został zaprezentowany w pracy [Smarzewski i Kapusta, 2005]. Złożonośćobliczeniowa tego algorytmu wynosi O (n 2 ).Do odtworzenia sekretu S = a 0 = p(0) powiernik C musi otrzymać r (m r n)udziałówU ij = (k ij , x ij , y ij ), j = 0, 1, ..., r − 1, (6.6)gdzie 0 i 0 < i 1 < ... < i r−1 < n. Ponadto udziały (6.6) muszą spełniać warunki(6.3) typowe dla interpolacji typu Hermite’a , tzn. musi być k i0 = 0 orazw przypadku gdy k ij> 0. Z tego względu proponowany podział sekretu jest hierarchiczny,gdyż posiadacz udziału U iji j−1 = i j − 1, i j−2 = i j − 2, . . . , i j−kij = i j − k ij (6.7)= (k ij , x ij , y ij ) (j > 0) nie może partycypowaćw odtworzeniu sekretu, o ile nie zrobią tego jego kolejni zwierzchnicy, posiadającyudziałyU ij −1, U ij −2, . . . , U ij −k ij.Bez zmniejszenia ogólności rozważań można przyjąć założenie, że indeksy i 0 , i 1 , ..., i r−1są równe odpowiednio indeksom 0, 1, . . . , r − 1.W celu odtworzenia sekretu S = p(0) powiernik, wykorzystując algorytm 6.1,oblicza zmodyfikowane ilorazy różnicowez k = p [x 0 , x 1 , ..., x k ] , k = 0, 1, ..., r − 1.Oczywiście musi byćz k = 0, k = m, m + 1, ..., r − 1.52


Współdzielenie sekretuTe identyczności mogą być wykorzystywane do sprawdzenia, czy wśród otrzymanychudziałów U 0 , U 1 , ..., U r−1 nie ma udziałów niedopuszczalnych tzn. tak<strong>ich</strong>, w którychtrzecia współrzędna nie należy do zbioru wartości wielomianu p(x) lub jego pochodnych.Następnie, do obliczenia sekretuS = p(0) = z 0 − z 1 x 0 + . . . + (−1) m−1 z m−1 x 0 x 1 . . . x m−2powiernik może wykorzystać algorytm typu Hornera. Przykład 6.2 ilustruje opisanąmetodę dzielenia i odtworzenia sekretu.Przykład 6.2. Niech K = Z 37 będzie ciałem reszt modulo 37. Dealer D wybieraklucz S = 23, wielomianp(x) = x 3 + 2x + 23,węzły interpolacjix 0 = x 1 = 11, x 2 = x 3 = x 4 = 36,i liczbę r = 5, a następnie - obliczając uogólnioną transformację Maclaurina-Lagrange’a,otrzymuje składowe udziałówy 0 = 7, y 1 = 32, y 2 = 20, y 3 = 5, y 4 = 34i przekazuje uczestnikom podziału sekretu udziały:U 0 = (0, 11, 7), U 1 = (1, 11, 32),U 2 = (0, 36, 20), U 3 = (1, 36, 5), U 4 = (2, 36, 34).Z kolei powiernik C, po otrzymaniu 5 udziałów, oblicza wektor uogólnionych ilorazówróżnicowychz = [7, 32, 21, 1, 0]i stwierdza, że ostatni iloraz różnicowy jest równy 0, co potwierdza autentycznośćotrzymanych udziałów i odtwarzanego sekretu. Ponadto zauważa, żep(x) = 7 + 32(x − 11) + 21(x − 11) 2 + (x − 11) 2 (x − 36),i odtwarza klucz S = p(0) = 23.53


Współdzielenie sekretuWartość klucza S = p(0) może być również obliczona przy pomocy innych algorytmówinterpolacyjnych, np. algorytmu Neville’a. Szczegółowy opis efektywnejmetody odzyskiwania sekretu przy pomocy algorytmu Neville’a został zaprezentowanyw [Smarzewski i Kapusta, 2005].Można również rozważać niedemokratyczne modele podziału sekretu z priorytetami,w których każdy uczestnik otrzymuje udziały postaciU i = ( x i , y (0)i , y (1)i , . . . , y (n )i−1)i , i = 0, 1, . . . , s − 1,gdzie zakłada się dodatkowo, że x i ≠ x j dla i ≠ j orazs−1∑n = 1 + n j m,j=0y (j)i = p(j) (x i ).j!Modele tego typu nie są demokratyczne, za wyjątkiem sytuacji, gdyn 0 = n 1 = ... = n s .6.3. Podział sekretu ze wskazaniem jednostki odzyskującejsekretZałożenie n m o liczbie n uczestników podziału sekretu i stopniu m − 1 wielomianup(x) może w sposób drastyczny ograniczyć wielkość stopnia tego wielomianu,upraszczając złożoność całego zadania i zmniejszając tym samym jego bezpieczeństwo.Wydaje się to być poważną wadą. Dla przykładu, w podziale sekretu z dwomaróżnymi udziałami (n = 2), wielomian p(x) musi być funkcją liniową, która z oczywistychwzględów nie jest zbyt odporna na ataki [Pieprzyk i inni, 2003]. Ten problemmożna obejść zakładając - w przypadku gdy n < m, że dealer D wybiera jednegoz uczestników, bez którego odzyskanie sekretu nie jest możliwe i przekazuje muco najmniej m − n + 1 udziałów spełniających warunki (6.1). W tym przypadkuwyróżniony uczestnik posiada informację o większym znaczeniu i może pełnić rolępowiernika, gdyż odzyskanie klucza bez jego udziałów nie jest możliwe.W schemacie dzielenia sekretu z wyróżnionym uczestnikiem W dealer D dzieliklucz S = p(0) pomiędzy tego uczestnika, przekazując mu c udziałów postaciU i = (k i , x i , y i ), i = 0, 1, . . . , c − 1,54


Współdzielenie sekretuoraz pomiędzy n − c uczestników, przekazując im udziałyU i = (k i , x i , y i ), i = c, c + 1, . . . , n − 1,gdzie 0 c < m n oraz węzły interpolacji x i o krotności n izałożenie{x 0 , x 1 , . . . , x c−1 } ∩ {x c , x c+1 , . . . , x n−1 } ≠ 0. m spełniająOdtworzenie sekretu S = p(0) w tym modelu jest możliwe, jeżeli uczestnik W otrzymaod uczestników podziału sekretu r − c udziałów postaciU i = (k i , x i , y i ), i = 0, 1, . . . , r − c − 1,gdzieorazm r n, c i 0 < i 1 < ... < i r−c−1 < n (6.8)i j−1 = i j − 1, i j−2 = i j − 2, . . . , i j−kij = i j − k ij . (6.9)Bez zmniejszenia ogólności rozważań można przyjąć, że pełniący rolę powiernikauczestnik W najpierw upraszcza oznaczenia podstawiając c, c + 1, . . . , r − 1 zamiasti 0 , i 1 , ..., i r−c−1 , a następnie odtwarza sekret S = p(0). Należy zauważyć, że uczestnikW może - bezpośrednio po otrzymaniu swo<strong>ich</strong> udziałów, tylko raz obliczyć zmodyfikowaneilorazy różnicowez k = p [x 0 , x 1 , . . . , x k ] i b k = p [x k , x k+1 , . . . , x c−1 ] dla k = 0, 1, . . . , c − 1.Następnie może używać <strong>ich</strong> zamiast udziałów, przy kolejnych odtworzeniach kluczaS = p(0). W tym celu wygodnie jest używać nieco zmodyfikowanej wersji algorytmu6.1, zapisanej w postaci algorytmu 6.3. Wtedy dwukrotne wykonanie tego algorytmuoraz zastosowanie algorytmu Hornera pozwala na wyznaczenie klucza S. Dokładniej,w celu obliczenia ilorazów różnicowych na podstawie udziałów uczestnika W , należywykonać algorytm 6.3 z indeksem początkowym p = 0 i indeksem końcowym s =c − 1. Następnie, w celu obliczenia pozostałych ilorazów różnicowych związanychz udziałami innych uczestników, te indeksy powinny być równe odpowiednio c i r−1.55


Współdzielenie sekretuAlgorytm 6.3. Obliczenie uogólnionych ilorazów różnicowych.Input: p, s - indeksy pierwszego i ostatniego obliczanego ilorazu różnicowego,wektory x = (x 0 , x 1 , . . . , x s ) ∈ K s+1 , k = (k 0 , k 1 , . . . , k s ) ∈ K s+1 ,y = (y p , p p+1 , . . . , y s ) ∈ K s−p+1 , b = (b 0 , b 1 , . . . , b p−1 ) ∈ K p .Output: Wektory z = (z p , z p+1 , . . . , z s ) ∈ K s−p+1 i b = (b p , b p+1 , . . . , b s ) ∈K s−p+1 .1. Dla j od p do s wykonaj:1.1. Przypisz b j = y j−kj .1.2. Dla i od j − 1 do j − k j wykonaj:1.2.1. Przypisz b i = y 2j−kj −i.1.3. Dla i od j − k j − 1 do 0 wykonaj:1.3.1. Przypisz b i = (b i+1 − b i )/(x j − x i ).1.4. Przypisz z j = b 0 .Przykład 6.4. Niech K = Z 8761 będzie ciałem reszt modulo 8761. Dealer D wybieraklucz S = 4083, a następnie ustala parametry n = r = 14 i wielomianoraz węzły interpolacjip(x) = 205x 11 + 89x 9 + 503x 6 + 1223x 3 + 341x + 4803.Po obliczeniu składowych udziałówx 0 = x 1 = ... = x 6 = 523,x 7 = x 8 = ... = x 10 = 2365,x 11 = x 12 = x 13 = 6543.y i = p(kj) (x i ), 0 i 13,k i !dealer przekazuje pierwsze c = 7 udziałów uczestnikowi W , zaś pozostałe n − c = 7udziałów uczestnikom podziału sekretu. Z kolei uczestnik W wykorzystując swoje56


Współdzielenie sekretuudziały wyznacza początkowe ilorazy różnicowez = [7993, 5082, 3667, 2417, 420, 721, 468]ib = [7993, 5082, 3667, 2417, 420, 721, 468].Następnie po otrzymaniu pozostałych udziałów, uczestnik W odtwarza sekret. W tymcelu oblicza zmodyfikowane ilorazy różnicowe wykonując algorytm 6.3 z parametramip = 7, s = 13 i uzyskuje wielomianp(x) = 6173 + 4438(x − 523) + 7317(x − 523) 2+ 4191(x − 523) 3 + 228(x − 523) 4 + 1439(x − 523) 5+ 4701(x − 523) 5 (x − 2365) + 2639(x − 523) 5 (x − 2365) 2 + ...Stąd odtworzony klucz jest równyS = p(0) = 4803.Warto zwrócić uwagę , że rozważany w tym rozdziale model dzielenia sekretu niemoże być efektywnie zaprogramowany, gdy do odtworzenia klucza wykorzystywanesą wzory interpolacyjne Lagrange’a. Dotyczy to również przypadku rozważanegow pracy [Shamir, 1979], tzn. gdy wszystkie węzły są jednokrotne, lub równoważnie,gdy k i = 0 dla i = 0, 1, ..., n − 1. Przyczyna tkwi w tym, że przy stosowaniuwzoru interpolacyjnego Lagrange’a dla zwiększonej liczby udziałów, utrudnione jestwykorzystywanie wcześniejszych obliczeń.6.4. Dzielenie sekretu z kluczem wielomianowymW rozważanych dotychczas interpolacyjnych modelach dzielenia sekretu, dealernajpierw losowo ustalał współczynniki wielomianua następnie przekazywał c udziałówp(x) =m−1 ∑k=0a k x k ,U i = (k i , x i , y i ), i = 0, 1, . . . , c − 1,57


Współdzielenie sekretuwybranemu uczestnikowi W , który pełni rolę powiernika, zaś n − c udziałówU i = (k i , x i , y i ), i = c, c + 1, . . . , n − 1pozostałym uczestnikom podziału sekretu, gdzie 0 c < m n oraz{x 0 , x 1 , . . . , x c−1 } ∩ {x c , x c+1 , . . . , x n−1 } = ∅.W każdym z tych modeli rola dealera zaczynała się od wyboru sekretu S = a 0i kończyła się po rozdzieleniu udziałów. Powyższy wybór klucza można zmodyfikowaćtak, aby odzwierciedlał on bardziej istotę problemu i jednocześnie był bardziejzłożonym. Mianowicie, można przyjąć, że dealer wybiera klucz postaciS = a i0 a i1 . . . a is ,gdzie 0 i 0 < i 1 < ... < i s < m oraz a i0 , a i1 , ..., a is są wybranymi współczynnikamiwielomianu p(x). Klucze tej postaci będą nazywane wielomianowymi. Takimikluczami, odpowiadającymi wielomianowip(x) = 93x 12345 + 769x 12243 + 20x 2 + 9071,są np.S = 93769209071, S = 76920, S = 9071, S = 93209071.W szczególnym przypadku, gdyS = a 0 i S = a m−1 ,prezentowanym w pracy [Kogan i Tassa, 2006] wykazano, że schematy dzieleniasekretu są doskonałymi w klasie wszystk<strong>ich</strong> udziałów U i = (0, x i , p(x i )), i = 0, 1,. . ., n − 1, w których węzły x 0 , x 1 , . . . , x n−1 są rzeczywiste i parami różne. Oznaczato, że nie istnieje mniej niż m parami różnych, niezerowych punktów rzeczywistychz 0 , z 1 , . . . , z k−1 (k < m), które pozwalają na obliczenie klucza S = a 0 lub S = a m−1dla wszystk<strong>ich</strong> wielomianówp(x) = a 0 + a 1 x + . . . + a m−1 x m−1 , a m−1 ≠ 0,o współczynnikach rzeczywistych. Jednocześnie [Kogan i Tassa, 2006] podali kontrprzykładprzyjmującm = 3, p(x) = a 0 + a 1 x + a 2 x 2 , S = a 158


Współdzielenie sekretui stwierdzili, że dwa udziały (t 1 , p(t 1 )) i (−t 1 , p(−t 1 )) pozwalają na odtworzenieklucza ze wzorua 1 = p(t 1) − p(−t 1 )2t 1, t 1 ≠ 0.Okazuje się, że taka sytuacja nie jest możliwa, jeżeli w klasie wszystk<strong>ich</strong> udziałówprzyjmie się dodatkowe założenie, że parami różne rzeczywiste węzły x 0 , x 1 , . . . , x n−1są dodatnie. Oczywiście taka klasa schematów podziału sekretu jest dostateczniebogata w <strong>zastosowania</strong>ch praktycznych.Twierdzenie 6.5. Klasa wszystk<strong>ich</strong> schematów dzielenia sekretu z kluczami wielomianowymii z udziałami U i = (0, x i , p(x i )), i = 0, 1, . . . , n − 1, o rzeczywistychi dodatn<strong>ich</strong> współrzędnych x 0 , x 1 , . . . , x n−1 jest doskonała.Dowód: Współczynniki wielomianup(x) = a 0 + a 1 x + . . . + a m−1 x m−1są rozwiązaniami nieosobliwego układu równańm−1 ∑i=0a i t i k = p(t k ), k = 0, 1, . . . , m − 1,w którym węzły t i spełniają warunek t i ≠ t j dla i ≠ j. Zatem ze wzorów Cramerai rozwinięcia Laplace’a [Kostrikin, 2004] wynika, że(1, x, . . . , xDi−1 , p(x), x i+1 , . . . , x m−1 )t 0 , t 1 , . . . t i−1 t i , z i+1 , . . . t m−1a i =( )1, x, . . . , xm−1Dt 0 , t 1 , . . . , t m−1(1, x, . . . , xm−1(−1) i+2+k Di−1 , x i+1 , . . . , x m−1 )∑t 0 , t 1 , . . . , t k−1 , t k+1 , . . . , t m−1= p(z k )( ) ,k=01, x, . . . , xm−1Dt 0 , t 1 , . . . , t m−1gdzieD( )g0 , g 1 , . . . , g ν−1= det [gz 0 , z 1 , . . . , z i (z j )] 0i,j


Współdzielenie sekretuJest to równoważne istnieniu wielomianuw(x) = b 0 + b 1 x + . . . + b i−1 x i−1 + b i+1 x i+1 + . . . + b m−1 x m−1 ≢ 0,który miałby co najmniej m − 1 parami różnych pierwiastków dodatn<strong>ich</strong>. Jest tooczywiście sprzeczne z zasadniczym twierdzeniem algebry w przypadku, gdyi = m − 1 lub b i+1 = b i+2 = . . . = b m−1 = 0.W pozostałych przypadkach pochodnaw (i) (x) = x ( c 1 + c 2 x + . . . + c m−1−i x m−2−i)na mocy twierdzenia Rolle’a [F<strong>ich</strong>tenholz, 2002] posiadałaby m − 1 − i parami różnychpierwiastków dodatn<strong>ich</strong>, co również jest sprzeczne z zasadniczym twierdzeniemalgebry. Q.E.D.Z uwagi na twierdzenie 6.5, w schematach dzielenia sekretu w ciałach skończonychnależy dobierać wartości x 0 , x 1 , . . . , x n−1 tak, aby wśród n<strong>ich</strong> nie było dwóchtak<strong>ich</strong>, że x i + x j = 0.Odtworzenie sekretu w modelu z kluczem wielomianowym odbywa się tak samojak w modelu opisanym w poprzednim podrozdziale. Dokładniej, w celu odtworzeniaklucza wielomianowego powiernik C oblicza uogólnione ilorazy różnicowez k = p [x 0 , x 1 , ..., x k ] , k = 0, 1, . . . , c − 1, c, c + 1, . . . , r − 1,a następnie częściowo weryfikuje autentyczność wykorzystanych w obliczeniach udziałówsprawdzając, czy jest prawdą, żez m = z m+1 = ... = z r−1 = 0.Ponieważ na mocy jednoznaczności interpolacji zachodzić tożsamośćp(x) = z 0 + z 1 (x − x 0 ) + ... + z m−1 (x − x 0 )(x − x 1 )...(x − x m−2 ),więc powiernik C może odtworzyć klucz wielomianowyS = a i0 a i1 ...a is , 0 i 0 < i 1 < . . . < i s < m,60


Współdzielenie sekretugdzie uwzględniono jedynie różne od zera współczynniki spośród nieznanych powiernikowiwspółczynnikówZ kolei klucza j = p(j) (0), j = 0, 1, ..., m − 1.j!S = a 0 a 1 ...a m−1otrzymuje on uwzględniając wszystkie współczynniki.W rozważanym modelu dzielenia sekretu z kluczem wielomianowym, można oczywiściezamiast baz1, x, x 2 , ..., x m−1oraz1, x − x 0 , . . . , (x − x 0 )(x − x 1 ) . . . (x − x m−2 )wybrać dwie dowolne inne bazyg 0 (x), g 1 (x), . . . , g m−1 (x) i h 0 (x), h 1 (x), . . . , h m−1 (x)w przestrzeni wielomianów stopnia mniejszego niż m. Następnie można losowo ustalićniezerowy kluczi położyć z definicjiS = a 0 a 1 ...a m−1p(x) =m−1 ∑k=0a k g k (x), (6.11)gdzie tak jak poprzednio można dodatkowo przyjąć, że współczynniki równe zerosą pomijane w definicji klucza S. Rola dealera kończy się po przekazaniu udziałówpostaciorazU 0 = b 0 , U 1 = b 1 , . . . , U c−1 = b c−1 ,U c = b c , U c+1 = b c+1 , . . . , U m−1 = b m−1odpowiednio wyróżnionemu uczestnikowi W i pozostałym uczestnikom podziału sekretu.Te udziały są z definicji równe współczynnikom rozwinięcia wielomianu względembazy g 0 (x), g 1 (x), ..., g m−1 (x), tzn.p(x) =m−1 ∑k=061b k h k (x).


Współdzielenie sekretuObliczenie tych współczynników wymaga oczywiście znajomości efektywnego algorytmuprzejścia od bazyg 0 (x), g 1 (x), . . . , g m−1 (x)do bazyh 0 (x), h 1 (x), . . . , h m−1 (x).Z kolei algorytm do niego odwrotny umożliwia uczestnikowi W odtworzenie kluczaS - oczywiście po otrzymaniu udziałówU c = b c , U c+1 = b c+1 , . . . , U m−1 = b m−1 .Klasa modeli wykorzystujących wielomiany ortogonalne została omówiona w [Smarzewskii Kapusta, 2005]. Warto podkreślić, że wybranie bazy Lagrange’a jako bazyg 0 (x), g 1 (x), . . ., g m−1 (x) umożliwia uzyskanie nietrywialnego schematu progowego,w którym liczba uczestników podziału jest większa od liczby uczestników niezbędnychdo odzyskania sekretu.Podsumowując wydaje się, że godne polecenia algorytmy dzielenia sekretu powinnywykorzystywać wielomiany wysokiego stopnia, z niewielką liczbą niezerowychwspółczynników przy starannie wybranych potęgach, które nie powinny być ujawniane.Ponadto należy brać pod uwagę twierdzenie 6.5 konstruując udziały dla poszczególnychuczestników.62


7. Głosowanie elektroniczne7.1. E-głosowanie na świecieGłosowaniem elektronicznym (e-głosowanie, ang. e-voting) określa się formy głosowania,które wykorzystują technologie elektroniczne. Obejmuje ono [Internet SocietyPoland, 2007; Kutyłowski, 2009]:• głosowanie wspomagane elektronicznie – głosy oddawane są przez wyborcówosobiście w specjalnie przygotowanych miejscach z wykorzystaniem maszyn dogłosowania (ang. voting machines),• głosowanie za pomocą środków komunikacji elektronicznej – głosy oddawane sązdalnie, z dowolnej lokalizacji (np. z wykorzystaniem wiadomości tekstowychtelefonii komórkowej - SMS, czy internetu),• elektroniczną wizualizację wyników.Elektroniczne metody głosowania są wykorzystywane w internecie od dawna, naprzykład w różnego rodzaju sondażach. Jest oczywiste, że głosowania, w którychnie jest wymagane potwierdzenie tożsamości głosujących, są podatne na manipulacje.Osoby czy instytucje zainteresowane uzyskaniem określonego wyniku muszątylko zorganizować odpowiednio liczną grupę uczestników, którzy zagłosują zgodniez jej oczekiwaniami. Przykładem podejrzewanym o taką manipulację jest sondażprzeprowadzony przez amerykański tygodnik ”Time”, w którym wybierano 100 najbardziejwpływowych osób na świecie [Marczewski, 2009]. W tym rankingu 21-letnistudent Christoper Poole, założyciel portalu internetowego 4chan.org, wyprzedziłm.in. kanclerz Niemiec Angelę Merkel (8 miejsce), premiera Rosji Władimira Putina(35 miejsce) oraz prezydenta Stanów Zjednoczonych Baracka Obamę (37 miejsce).Podejrzewa się, że wynik ten zawdzięcza on swoim sympatykom, którzy korzystają63


Głosowanie elektronicznez założonego przez niego portalu. Należy dodać, że witryna Time.com nie pozostawiłarankingu bez żadnych zabezpieczeń, wręcz przeciwnie: wykorzystano jednoz najlepszych rozwiązań informatycznych stosowanych w tego typu sondażach,tj. mechanizm reCAPTCHA. Okazał się on jednak niewystarczający wobec systemuopracowanego przez hakerów.Niewątpliwą zaletą głosowania elektronicznego jest mobilność. Uczestnik możegłosować z domu, z biura, czy z dowolnego, publicznie dostępnego komputera, gdyżgłosowanie przez internet nie wymaga udania się do wyznaczonego miejsca głosowania.Głosowanie elektroniczne umożliwia także oddanie głosu osobom znajdującymsię poza miejscem swojego zamieszkania (np. przebywającym za granicą) jak i tym,którzy ze względów zdrowotnych mają trudności w dotarciu do określonego miejsca.Może to przełożyć się na zwiększenie frekwencji wyborczej [Nowina-Konopka, 2008].Pewne wątpliwości budzi wykorzystanie wyborów elektronicznych np. w wyborachparlamentarnych, czy prezydenck<strong>ich</strong> [Kutyłowski i Zgórski, 2006], które powinny zapewniaćanonimowość głosujących, bezpieczeństwo (rozumiane jako brak możliwościsprzedaży głosu), prawidłowość wyników oraz <strong>ich</strong> weryfikowalność [Cranor i Cytron,1997; Internet Policy Institute, 2001; Schneier, 2002].W wielu państwach podejmowane były próby wykorzystania nowoczesnych technologiido usprawnienia procesu wyborczego, np. w USA, Brazylii, Holandii, Estonii,Belgii, czy Szwajcarii. W tym celu wykorzystywano maszyny elektroniczne,tzw. ”głosomaty” znajdujące się w lokalach wyborczych oraz przeprowadzano głosowaniazdalne przez internet. Maszyny do głosowania pojawiły się m.in. w wyborachw Brazylii: w 1996 roku oddano za <strong>ich</strong> pomocą 33 mln głosów, a w 2000 roku już 110mln [Maciejewski, 2005]. Pilotażowy program został uruchomiony również w Polsce- Urząd Miasta Częstochowy przeprowadził w 2006 roku głosowanie z użyciem maszynholenderskiej firmy Nedap, w którym mieszkańcy mogli oceniać pracę urzędu[Gontarz, 2006]. W wyborach z wykorzystaniem internetu przoduje Estonia (wyborylokalne 2005 rok - 1,8% głosujących i parlamentarne 2007 rok - 3,5%) [Balickii Preisner, 2007]. W Polsce, z inicjatywy Stowarzyszenia Polska Młodych, 10 czerwca2009 roku odbyło się pierwsze testowe głosowanie przez internet - spośród 19006zarejestrowanych osób głosowało 6652, frekwencja wyniosła 35% (dane pochodząz portalu www.e-glosowanie.org).64


Głosowanie elektroniczne7.2. Wymagania wobec elektronicznego systemugłosowańSkomputeryzowanie procesu głosowania wymaga ustalenia protokołu wymianydanych, który musi spełniać pewne wymagania. Najistotniejsze z n<strong>ich</strong> zostały omówioneponiżej [Cranor i Cytron, 1997; Internet Policy Institute, 2001; Pieprzyk i inni,2003; Schneier, 2002]:• Nienaruszalność (ang. eligibility) - głosować mogą tylko posiadający prawogłosu.• Niepowtarzalność (ang. unreusability) - głosujący może oddać tylko jeden ważnygłos.• Zupełność (ang. completeness) - wszystkie ważne głosy powinny zostać prawidłowopoliczone.• Weryfikowalność indywidualna (ang. local verifiability) - każdy uprawnionygłosujący może sprawdzić czy jego głos został prawidłowo policzony.• Weryfikowalność ogólna (ang. global verifiability) - dowolny głosujący lub obserwatormoże sprawdzić poprawność wyników rozumianą jako zgodność zbioruoddanych głosów z wynikiem głosowania.• Niezawodność (ang. soundness) - próba głosowania przez uczestnika nieuprawnionegodo głosowania nie ma wpływu na wynik głosowania.• Odporność (ang. robustness) - koalicja uprawnionych lub nieuprawnionychuczestników nie może zakłócić procesu wyborczego.• Poufność (ang. privacy) - nikt nie może sprawdzić na kogo głosował dowolnyuczestniki wyborów, wszystkie głosy muszą pozostać tajne.• Obiektywność (ang. fairness) - nic nie może wpłynąć na proces głosowania,np. częściowa znajomość wyników głosowania.65


Głosowanie elektroniczne7.3. Przykłady schematów głosowania elektronicznegoSystemy głosowań korzystające z nowoczesnych technologii są w ostatnim czasieprzedmiotem intensywnych badań. W <strong>ich</strong> trakcie zaproponowano wiele schematówgłosowań elektronicznych o różnych poziomach bezpieczeństwa i efektywności. Próbaklasyfikacji tych schematów oraz budowa aparatu umożliwiającego <strong>ich</strong> ocenę i porównaniezostała podana w [Sampigethaya i Poovendran, 2006]. Z reguły przyjmujesię, że komunikacja pomiędzy uczestnikami głosowania może odbywać się:• publicznie, z wykorzystaniem tablicy ogłoszeń (ang. bulletin board), tzn. kanałurozgłoszeniowego z publicznie dostępnym obszarem pamięci, z którego każdyuczestnik może czytać dane i do niego zapisywać (tylko w swojej sekcji),• prywatnie, poprzez prywatny kanał pomiędzy nadawcą i odbiorcą (ang. untraceablechannel), lub kanał anonimowy, gwarantujący anonimowość nadawcy(ang. untraceable anonymous channel).Protokoły głosowań elektronicznych najczęściej opierają się na mechanizmachkryptograficznych tak<strong>ich</strong> jak: schemat ślepego podpisu (np. [Fujioka i inni, 1993]),szyfrowanie homomorficzne (np. [Benaloh, 1987]), dzielenie sekretu (np. [Iftene,2007], [Zwierko i Kotulski, 2007]). W modelach wykorzystujących ślepy podpis, każdygłosujący wysyła ”zaślepioną” wiadomość zawierającą głos do jednostki autoryzującej,która ją podpisuje i zwraca głosującemu. Następnie głosujący usuwa ”zaślepienie”i wysyła anonimowym kanałem głos, potwierdzony uzyskanym podpisem.W protokołach działających w oparciu o szyfr homomorficzny oraz schemat podziałusekretu głos jest dzielony na udziały, które są przesyłane do uprawionych jednostek.Z homomorficznych właściwości szyfru wynika, iż zaszyfrowana suma udziałów jestrówna iloczynowi zaszyfrowanych udziałów. Wynik wyborów jest obliczany z iloczynuzaszyfrowanych udziałów, przez grupę uprawnionych jednostek.Jeden z najbardziej znanych modeli głosowania elektronicznego, wykorzystującyanonimowy kanał, został opracowany przez Davida Chauma [1981]. Podstawą jegodziałania jest zaufany mieszacz (ang. mix), który zapewnia anonimowość nadawcywiadomości. Proces głosowania rozpoczyna zaufany administrator, który dla każdego66


Głosowanie elektronicznegłosującego przygotowuje kryptogram wiadomości składającej się z klucza publicznegooraz pseudonimu głosującego. Mieszacz rozsyła przygotowane kryptogramy głosującym.Następnie głosujący, przygotowuje wiadomość składającą się z jego pseudonimuoraz głosu zaszyfrowanego przy pomocy otrzymanego klucza; wiadomość tąszyfruje i przekazuje mieszaczowi. Po otrzymaniu wszystk<strong>ich</strong> wiadomości mieszaczdeszyfruje je. Następnie przesyła administratorowi - korzystając z bezpiecznego kanału- listę otrzymanych pseudonimów wraz z odpowiadającymi im kryptogramamigłosów. Administrator sprawdza poprawność pseudonimów, deszyfruje głosy i zliczaje.Atsushi Fujioka, Tatsuaki Okamoto i Kazuo Ohta [Fujioka i inni, 1993] zaprojektowalipraktyczny protokół dla wyborów na duża skalę. Biorą w nim udział głosującyoraz dwie zaufane jednostki: administrator i zliczający głosy. Schemat głosowaniajest następujący: głosujący, wykorzystując technikę ślepego podpisu, uzyskuje podpisadministratora pod zaszyfrowanym głosem. Następnie - anonimowym kanałem- wysyła kryptogram podpisanego głosu do zliczającego, który publikuje listę kryptogramów.Głosujący sprawdza, czy jego kryptogram znajduje się na opublikowanejliście - jeśli tak, przesyła anonimowym kanałem klucz umożliwiający otwarcie głosu.Na koniec, zliczający sprawdza poprawność podpisu administratora, zlicza ważnegłosy i publikuje <strong>ich</strong> listę.W artykule [Zwierko i Kotulski, 2006] zaproponowano oparty na agentach schematgłosowania elektronicznego, wykorzystujący nieskomplikowane procedury kryptograficzne,tj. podział sekretu i puzzle Merkle’a. Uczestnikami schematu są: zaufanyadministrator, mieszacz, zliczający oraz głosujący. Administrator jest odpowiedzialnyza utworzenie listy uprawnionych do głosowania i przekazanie jej mieszaczowi.Mieszacz tworzy upoważnienia dla poszczególnych głosujących i je dystrybuuje. Ponadtoprzekazuje on administratorowi dane niezbędne do weryfikacji autentycznościgłosów. Mieszacz, zapewniając anonimowość głosujących, dystrybuuje przygotowaneupoważnienia. Po uzyskaniu upoważnień, głosujący wysyłają swoje głosy do zliczającego,który wspólnie z administratorem sprawdza upoważnienia, zlicza głosyi publikuje wyniki.67


Głosowanie elektroniczne7.4. Model głosowania elektronicznegoW tym podrozdziale zostanie zaprezentowany model głosowania elektronicznegoz zastosowaniem <strong>transformacji</strong> <strong>wielomianowych</strong>. W proponowanym modelu głosowanieodbywa się w czterech etapach:I. Inicjalizacja - przygotowanie całego systemu i utworzeniu listy uprawnionychdo głosowania (rejestracji głosujacych).II. Głosowanie - oddanie głosów.III. Weryfikacja - odrzucenie głosów, które zostały oddane przez jednostki nieuprawionedo głosowania.IV. Zliczenie głosów i publikacja wyników.Uczestnikami schematu są głosujący G i , i = 0, 1, . . . , n−1, oraz dwa zaufane podmioty:T A - odpowiedzialny za przygotowanie głosowania i T C - odpowiedzialny zazliczenie głosów i publikację wyników. Ponadto w głosowaniu bierze udział komisjawyborcza czuwająca nad prawidłowością głosowania. W modelu zakłada się, żekażda z jednostek uprawnionych jest niezależna i nie kooperuje z inną poza czynnościamiwynikającymi z <strong>ich</strong> uprawnień. Rozdzielenie odpowiedzialności pomiędzykilka uprawnionych jednostek jest spowodowany tym, że w rzeczywistości zazwyczajnie istnieje pojedyncza, całkowicie zaufana jednostka.Rysunek 7.1: Model głosowania elektronicznegoStruktura głosu w tym modelu nie jest istotna: może to być TAK/NIE, liczbaz pewnego zakresu będąca identyfikatorem wybranej opcji, wektor identyfikatorów68


Głosowanie elektronicznewybranych opcji, a nawet łańcuch znaków oznaczający odpowiedź na zadane pytanie.Ze względu na brak ograniczenia co do struktury głosu ten model może byćstosowany przy różnego typu głosowaniach.Etap I - InicjalizacjaZaufana jednostka T A przygotowuje listę upoważnionych do głosowania i dostarczacertyfikaty upoważniające do głosowania poszczególnym głosującym orazkomisji, po uprzednim potwierdzeniu uprawnień. Przesłanie certyfikatów głosującymodbywa się przy pomocy zaufanego mieszacza tak, jak w protokole wyborczymzaproponowanym przez Davida Chauma [1981]. Mieszacz zapewnia anonimowośćgłosujących - dzięki niemu jednostka T A nie potrafi połączyć głosującego z certyfikatem.T A wybiera bazę wielomianową, ustala liczbę głosujących oraz członkówkomisji, bez których przeprowadzenie głosowania nie jest możliwe. Członkom komisjiprzekazuje certyfikaty dobrane w taki sposób, aby wszyscy byli zobowiązanido uczestnictwa w procesie weryfikacji certyfikatów głosów. Konieczność udziałuwszystk<strong>ich</strong> członków komisji w procesie weryfikacji uzyskuje się poprzez odpowiednierozdzielenie pomiędzy n<strong>ich</strong> wartości wielomianu lub jego pochodnych. Dla uproszczeniarozważań poniżej przyjmuje się założenie, że w modelu wykorzystywane sąjednowymiarowe transformacje wielomianowe względem baz Newtona i Lagrange’aoraz, że komisja wyborcza składa się z przewodniczącego B i administratora A.W tym przypadku T A wybiera wielomian p(x) stopnia r w bazie Newtona i ustalaliczbę głosujących n. Przewodniczący otrzymuje certyfikat postaciU B = ( x a , p (0) (x a ), p (1) (x a ), . . . , p (m−1) (x a ) ) ,natomiast administratorU A = ( x a , p (m) (x a ), p (m+1) (x a ), . . . , p (r) (x a ) ) .Z kolei głosujący otrzymują upoważnienia do głosowaniaU i = (x i , y i ) , i = 0, 1, . . . , n − 1, x i ≠ x j dla i ≠ j,gdzie y i = p(x i ) jest współczynnikiem rozwinięcia wielomianu w bazie Lagrange’a.Ponadto zakłada się, że x i ≠ x a dla i = 0, 1, . . . , n − 1 orazn < min{m, r − m + 1}.69


Głosowanie elektroniczneOstatnie założenie gwarantuje, że ani administrator ani przewodniczący nie może samodzielnieprzeprowadzić podliczenia głosów oraz, że koalicja któregokolwiek z n<strong>ich</strong>z głosującymi nie może dokonać weryfikacji certyfikatów.W przypadku dużej liczby głosujących, np. rzędu kilku tysięcy, T A może dobraćwartości x i tak, aby spełniały równania rekurencyjne pierwszego rzędu i wykorzystaćalgorytm 4.6 do obliczenia udziałów poszczególnych głosujących. Po obliczeniucertyfikatów T A może w sposób losowy wybrać certyfikaty, które zostaną przekazanegłosującym. Lista rozdysponowanych wartość x i jest zapamiętywana przez administratora.Ponadto na etapie inicjalizacji podmiot zliczający T C udostępnia głosującymfunkcję szyfrującą E C , którą tylko on potrafi deszyfrować. Funkcja ta ma na celuzapewnienie anonimowości głosów i będzie wykorzystywana przez głosującychw momencie przesyłania głosów. Należy zwrócić uwagę, że omawiane w pracy algorytmy<strong>transformacji</strong> <strong>wielomianowych</strong> mogą być wykorzystane także do szyfrowania,co zostało przedstawione w pracy [Kapusta, 2009].Etap II - GłosowaniePodczas głosowania uczestnicy, którzy zdecydowali się na udział w głosowaniu,przesyłają anonimowym kanałem odpowiednio przygotowaną wiadomość do administratora.Wiadomość głosującego ma postać g i = (x i , y i , E C (v i ), proof vi ), gdzie(x i , y i ) jest certyfikatem głosującego, E C (v i ) - szyfrogramem głosu i proof vi jestpotwierdzeniem autentyczność przesłanego głosu, zwanym dowodem głosu. Dowódgłosu umożliwia weryfikację indywidualną, i jednocześnie chroni przed kupowaniemi sprzedawaniem głosów. Istnieją różne metody konstruowania dowodów głosów, zarównointeraktywne [Goldwasser i inni, 1989], jak i nieinteraktywne [Blum i inni,1991]. Następnie wiadomość g i jest szyfrowana algorytmem znanym administratorowiA, w celu zapewnienia bezpieczeństwa wiadomości na drodze komunikacjipomiędzy głosującym a administratorem. Administrator zbiera wszystkie głosy.Etap III - WeryfikacjaAdministrator wspólnie z przewodniczącym inicjalizuje proces weryfikacji certyfikatów- głosy, które mają niepoprawny certyfikat, są odrzucane. Proces weryfikacjigłosowania z wykorzystaniem jednowymiarowej <strong>transformacji</strong> Lagrange’a-Newtona70


Głosowanie elektronicznerozpoczynają oni od utworzenia wektora zmodyfikowanych ilorazów różnicowychb = (b 0 , b 1 , . . . , b r ), b k = p(r−k) (x a )(r − k)! .Następnie stosują algorytm 7.1 w celu wskazania identyfikatora każdego certyfikowanegogłosu. Oczywiście, głosy ważne to te, dla których algorytm 7.1 wygenerujeb 0 = 0.Algorytm 7.1. Weryfikacja certyfikatu głosu.Input: r - indeks, U i = (x i , y i ), b = (b 0 , b 1 , . . . , b r ), gdzie b k = p (r−k) (x a )/(r − k)!.1. Podstaw b r+1 = y i , x r+1 = x i .2. Dla k od r do 0:2.1. Oblicz b k = (b k+1 − b k ) / (x k+1 − x a ).3. Jeśli b 0 ≠ 0 odrzuć głos odpowiadający certyfikatowi U i .Etap IV - Zliczenie głosów i publikacja wynikówLista identyfikatorów x i oraz odpowiadających im szyfrogramów E C (v i ) głosówważnych i dowodów głosów proof vi jest przekazywana zliczającemu T C, który sprawdzapoprawność dowodów, zlicza głosy i publikuje wyniki. Ponadto publikuje on listęidentyfikatorów x i głosów ważnych wraz ze związanymi z nimi dowodami głosów,która umożliwia sprawdzenie przez głosujących, czy <strong>ich</strong> głosy zostały poprawniepoliczone. Warto podkreślić, że dowód głosu nie ujawnia wyboru głosującego. Stanowion potwierdzenie - tylko dla głosującego, poprawnego odczytania jego głosuprzez jednostkę T C. W końcu administrator T A sprawdza, czy lista jego wartościx i zawiera wszystkie opublikowane wartości identyfikatorów x i .Warto zwrócić uwagę, że w proponowanym modelu głosujący - poza zaszyfrowaniemgłosu - nie muszą przeprowadzać skomplikowanych obliczeń. Dzięki czemuproponowany model może być wykorzystany do głosowania za pośrednictwem internetu,maszyn do głosowania, czy też innych urządzeń umożliwiających przesyłaniezaszyfrowanych wiadomości.71


Głosowanie elektroniczne7.5. Analiza bezpieczeństwaProponowany w poprzednim podrozdziale model głosowania elektronicznego cechujerozproszenie odpowiedzialności pomiędzy kilka uprawionych jednostek. Przyczyniasię to do zwiększenia bezpieczeństwa procesu głosowania dzięki wzajemnejkontroli uprawionych jednostek. Model ten spełnia następujące wymagania stawianeelektronicznym systemom głosowań:• Nienaruszalność - głosować mogą tylko ci użytkownicy, którzy zostali zarejestrowaniprzez zaufaną jednostkę T A i uzyskali certyfikaty uprawniające <strong>ich</strong>do głosowania.• Niepowtarzalność - głosujący otrzymuje certyfikat, w skład którego wchodzijednoznacznie identyfikująca go wartość x i . Dzięki temu oddanie więcej niżjednego głosu z wykorzystaniem tego samego certyfikatu jest łatwe do wykrycia.• Zupełność - po weryfikacji autentyczności certyfikatów przez członków komisji,głosy trafiają do zaufanej jednostki T C, która je zlicza. Po przeprowadzeniugłosowania publikowana jest lista dowodów głosów wraz ze związanymi z nimiwartościami x i , co umożliwia głosującym sprawdzenie, czy <strong>ich</strong> głosy zostałypoprawnie policzone.• Weryfikowalność ogólna i indywidualna - fragmenty certyfikatów, które zostaływykorzystane przez głosujących, a dokładniej wartości x i , są publikowaneprzez jednostkę T C zliczającą głosy. Zaufana jednostka T A przechowujewszystkie wartości x i , które zostały rozdysponowane pośród uczestnikówuprawnionych do głosowania; w oparciu o ten fakt T A sprawdza, czy w głosowaniubrali udział jedynie uprawnieni uczestnicy. Ponadto każdy głosującymoże sprawdzić, czy jego głos został poprawnie policzony - w tym celu naliście opublikowanej przez T C wyszukuje swoją wartość x i . Jeżeli tej wartościnie znajdzie zgłasza zaistniały problem, jeśli znajdzie - sprawdza dowód, abyuzyskać pewność, że jego głos został poprawnie odczytany przez zliczającego.• Niezawodność - uczestnik nie posiadający ważnego certyfikatu, nie przejdzie72


Głosowanie elektroniczneprocesu weryfikacji i jego głos zostanie odrzucony. Może on jedynie próbowaćzgadywać wartości x i i y i , które jednostka T A przekazuje uprawnionymuczestnikom, ale sukces tak<strong>ich</strong> działań jest praktycznie niemożliwy.• Odporność - koalicja głosujących nie zna wykorzystanych w certyfikatach wartościx i , wybranych losowo przez administratora. W przypadku, gdy te wartościzostały wybrane spośród wartości spełniających równania rekurencyjnepierwszego rzędu, koalicja uczestników głosowania może jedynie próbować rozwiązaćte równania. Ponadto taka koalicja nie zna współczynników wielomianup(x) i nie może obliczyć wartości y i = p(x i ). Obliczenie współczynników wielomianup(x) przez koalicję uczestników nie jest możliwe ze względu na założenie,że liczba uczestników n nie przekracza stopnia wielomianu r. Wielomianten jest znany jedynie administratorowi T A, jego współczynniki mogą równieżzostać obliczone przez wszystk<strong>ich</strong> członków komisji działających wspólnie.Jednak z założenia, zarówno jednostka uprawniona T A, jak i członkowiekomisji nie współpracują z innymi uczestnikami modelu, poza czynnościamiwynikającymi z <strong>ich</strong> uprawnień, które nie pozwalają na przekazywanie tegotypu informacji.• Poufność - certyfikaty są przekazywane przy udziale zaufanego mieszacza, któryuniemożliwia jednostce T A połączenie certyfikatu z głosującym. Podobniejednostka T C nie może połączyć głosu z głosującym ze względu na to, że nieotrzymuje ona od członów komisji informacji o głosujących. Głosy są szyfrowaneprzy pomocy funkcji E C - bez jej znajomości nie jest możliwe poznaniewartości głosu. Publikowane po zakończeniu głosowania dowody głosów nieujawniają wyboru głosującego.• Obiektywność - zastosowanie funkcji szyfrującej, która ukrywa wartość głosu,nie pozwala na poznanie częściowych wyników głosowania. Głosy są deszyfrowanepo zakończeniu etapów oddawania głosów i weryfikacji, więc wyniki niemogą wpłynąć na proces głosowania.Z powyższych rozważań wynika, że proponowany model spełnia wymagania stawianeprotokołom głosowań elektronicznych wymienione w podrozdziale 7.2 przy73


Głosowanie elektronicznezałożeniu, że zaufane podmioty, tj. administrator, zliczający, komisja wyborcza, nieprzekraczają swo<strong>ich</strong> uprawnień współpracując ze sobą w celu złamania bezpieczeństwasystemu.74


8. Transmisja rozgłoszeniowa8.1. Schemat komunikacji rozgłoszeniowejTransmisja rozgłoszeniowa (ang. broadcast) polega na emisji sygnału do wieluodbiorców bez wskazywania adresata. Taki sygnał może być szyfrowany w celu zapewnieniadostępu określonej grupie użytkowników - wtedy tylko użytkownicy znającymetodę deszyfrowania tego sygnału mają dostęp do przesyłanych informacji.Taka metoda przesyłania danych znajduje zastosowanie m. in. w przypadku płatnejtelewizji, czy udostępnianiu danych przez internet, gdzie tylko ci użytkownicy,którzy spełnili określone warunki (np. dokonali opłaty) uzyskują dostęp do danych.Grupa odbiorców może zmieniać się w czasie w sposób dynamiczny: mogą dołączaćdo niej nowi użytkownicy, którzy dokonali wpłaty i tracić uprawnienia ci, którzy nieuregulowali należności. Z tego względu istotna jest czasowa wymiana klucza umożliwiającegorozkodowanie informacji, nazywanego kluczem sesyjnym. Wymaga toskonstruowania protokołu wymiany klucza, który pozwoli na bezpieczne i efektywnerozpowszechnienie nowego klucza sesyjnego wśród uprawnionych użytkowników.Niech GC (ang. group controller) oznacza wybraną jednostkę, która jest odpowiedzialnaza dostarczenie kluczy uprawnionym użytkownikom oraz rozgłaszanie wiadomości.W działaniach prowadzonych przez GC można wyróżnić jednorazowy etapinicjalizacji systemu oraz właściwy etap rozgłoszeniowy. Na etapie inicjalizacji GCprzygotowuje klucze prywatne dla poszczególnych użytkowników systemu, późniejdziałania GC odbywają się cyklicznie. Pojedynczy cykl rozpoczyna się od ustaleniaużytkowników, którzy w najbliższym cyklu zostaną wykluczeni, czyli stracą dostępdo zaszyfrowanej informacji. Następnie GC generuje nowy klucz sesyjny i rozgłaszago w specjalnie przygotowanej wiadomości umożliwiającej uzyskanie klucza tylkoużytkownikom uprawionym. Po odtworzeniu klucza użytkownicy mają dostęp do in-75


Transmisja rozgłoszeniowaformacji do momentu rozpoczęcia nowego cyklu i ustalenia nowego klucza sesyjnego.Szczegóły kolejnych etapów transmisji rozgłoszeniowej przedstawiono na poniższymschemacie.Schemat komunikacji rozgłoszeniowej:I. Inicjalizacja systemu:i) Ustalenie parametrów systemu, wskazanie GC, wybranie algorytmów szyfrujących.ii) Rejestracja użytkowników - nowy użytkownik otrzymuje klucz prywatnyK U , który umożliwi mu dostęp do systemu.II. Cykl transmisji rozgłoszeniowej:i) Rozgłoszenie klucza - GC rozsyła blok aktywujący T , w którym ukrytyjest klucz sesyjny S (tylko uprawnieni użytkownicy mogą go odtworzyć).ii) Nadawanie sygnału - GC szyfruje wiadomość M wykorzystując klucz sesyjnyS i algorytm szyfrujący E, a następnie rozsyła uzyskany szyfrogramC = E(S, M).iii) Odbiór sygnału - użytkownik, przy pomocy swojego klucza prywatnegoK U uzyskuje klucz sesyjny S z bloku aktywującego T ; następnie zapomocą S deszyfruje wiadomość C odtwarzając M.Na przestrzeni lat powstało wiele rozgłoszeniowych protokołów wykluczających.Stosowano w n<strong>ich</strong> różne rozwiązania w celu dynamicznego wykluczania i przywracaniaużytkowników oraz wykrywania prób nielegalnego dostępu do systemu [Fiati Naor, 1993; Naor i Pinkas, 2000; Krzywiecki i inni, 2007; Daza i inni, 2008]. W szczególnościMonni Naor i Benny Pincas zaproponowali model wykorzystujący schematdzielenia sekretu, w którym klucz S jest wyrazem wolnym wielomianu p(x) zapisanegow reprezentacji potęgowej i jego odtworzenie odbywało się przy pomocy wzoruinterpolacyjnego Lagrange’a. Modyfikacja tego modelu polegająca na zmianie sposobuwyboru klucza S i jego rekonstrukcji została podana w [Kogan i Tassa, 2006].W zmodyfikowanej wersji modelu klucz S jest współczynnikiem wiodącym wielomianui jego rekonstrukcja odbywa się w oparciu o wzór interpolacyjny Newtona. Jednąz prac, w której zostały zaprezentowane algorytmy umożliwiające identyfikację76


Transmisja rozgłoszeniowanielegalnych użytkowników oraz wskazywanie użytkowników nieuczciwych (którychklucze posłużyły do utworzenia kluczy dla użytkowników nielegalnych) jest [Tzengi Tzeng, 2005]. Alorytmy te zakładają, że klucze nielegalnych użytkowników są kombinacjamiliniowymi kluczy nieuczciwych użytkowników uprawnionych. Wymienionemodele wykorzystują ideę proponowaną w [Feldman, 1987] polegającą na przeniesieniuschematu dzielenia sekretu Shamira do wykładnika. Bezpieczeństwo tych modelijest zapewnione w oparciu o decyzyjny problem Diffiego-Helmana [Boneh, 1998].8.2. Protokół transmisji rozgłoszeniowej w oparciuo hierarchiczny schemat dzielenia sekretuW tej części pracy zostanie podany ogólny model transmisji rozgłoszeniowej wykorzystującyhierarchiczny schemat dzielenia sekretu. Rozważany system transmisjirozgłoszeniowej jest w zasadzie schematem dzielenia sekretu, w którym nieco inaczejustalono reguły postępowania dealera i uczestników podziału sekretu, a takżezwiększono bezpieczeństwo systemu poprzez prowadzenie różnowartościowej funkcjiszyfrującej e : K → K, o której zakłada się, że jest odpowiednio bezpieczna. Przykłademtakiej funkcji może być e (x) = g x , gdzie g jest generatorem pewnej grupycyklicznej [Naor i Pinkas, 2000]. Bezpieczeństwo tej funkcji jest wprost proporcjonalnedo trudności rozwiązania problemu logarytmu dyskretnego [Menezes i inni,2005].Opis systemu transmisji rozgłoszeniowej podzielony jest na dwie części. Pierwszaz n<strong>ich</strong> omawia etap inicjalizacji systemu, polegający na wygenerowaniu przezjednostkę GC kluczy prywatnych użytkowników. Część druga dotyczy właściwegoetapu transmisji rozgłoszeniowej. Omawia ona generowanie bloku aktywującego orazpodaje algorytm odtworzenia klucza sesyjnego S na podstawie tego bloku i kluczaprywatnego użytkownika K U . Należy zwrócić uwagę, że stosowany w dzieleniu sekretutermin ”dealer” został w opisie transmisji rozgłoszeniowej zastąpiony określeniem”jednostka GC”, natomiast ”udział” - określeniem ”klucz prywatny”.I. Inicjalizacja systemuJednostka GC wybiera w sposób losowy wielomianm∑p (x) = a k x k , a k ∈ K,k=077


Transmisja rozgłoszeniowastopnia m i dostarcza każdemu użytkownikowi udziałK i = (x i , p(x i )), i = 0, 1, . . . , n − 1, x i ≠ x j dla i ≠ j,będący jego kluczem prywatnym. W szczególnym przypadku GC może wybrać punktyx i tak, aby spełniały równanie rekurencyjne pierwszego rzędu, co pozwala nazastosowanie efektywnego algorytmu 4.8 omówionego w podrozdziale 4.4 i w konsekwencjina redukcję kosztu obliczenia kluczy prywatnych użytkowników.II. Cykl transmisji rozgłoszeniowejPojedynczy cykl transmisji rozgłoszeniowej jednostka GC rozpoczyna od przygotowaniabloku aktywującego T dla wybranego przez nią klucza sesyjnego S. W tymcelu przygotowuje m kluczy prywatnych, z których klucze K ji (i = 0, 1, . . . , v − 1,v m) stanowią klucze nieskojarzone z żadnym użytkownikiem, natomiast pozostałaczęść to klucze prywatneK ji = (x ji , y ji ) , y ji = p(x ji ), i = v, v + 1, . . . , m − 1, (8.1)użytkowników wykluczanych tzn. tak<strong>ich</strong>, którzy w bieżącym cyklu nie będą mogliobliczyć klucza sesyjnego S na podstawie bloku aktywującego T .Klucze nieskojarzone z żadnym odbiorcą mogą składać się z wartości wielomianóww różnych punktach x j0 , x j1 , . . . , x jv−1spełniających równanie rekurencyjnepierwszego rzędu. Dzięki temu, w przypadku odpowiednio dużej liczby v, zastosowaniealgorytmu obliczania <strong>transformacji</strong> Maclaurina-Lagrange’a opisanego w rozdziale4, pozwala na zredukowanie kosztu obliczenia tych udziałów do O(m log m).W sytuacji, gdy stosuje się hierarchiczny model dzielenia sekretu, klucze prywatnenieskojarzone z żadnym odbiorcą mogą składać się z wartości wielomianu i jegokolejnych pochodnych np. w jednym punkcie. Bez zmniejszenia ogólności rozważańdalej zakłada się, że te klucze są postaci:gdzieK ji = (i, x i , y i ), i = 0, 1, . . . , v − 1, (8.2)x 0 = x 1 = . . . = x v−1 i y i = p(i) (x 0 ).i!W celu uproszczenia zapisu przyjmuje się również założenie, że indeksy j 0 , j 1 , . . . ,j m−1 są równe odpowiednio indeksom 0, 1, . . . , m − 1. Przy tym założeniu przygoto-78


Transmisja rozgłoszeniowawany przez jednostkę GC blok aktywujący ma następującą postaćT = [x 0 , x v , x v+1 , . . . , x m−1 ; e (r) , e (ry 0 ) , e (ry 1 ) , . . . , e (ry m−1 )] , (8.3)gdzie r ∈ K\{0} wybrano w sposób losowy. Następnie GC rozgłasza blok aktywującyT oraz kryptogram E (S, M). Użytkownik odtwarza komunikat M z kryptogramuE (S, M) przy pomocy klucza sesyjnego S, który oblicza na podstawie bloku aktywującegoT i swojego klucza prywatnego. Kluczem sesyjnym może być dowolnyklucz wielomianowy, tzn. można przyjąćS = e(ra i0 )e(ra i1 ) · · · e(ra it ), 0 i 0 < i 1 < . . . < i t m.W literaturze rozpatrywano do tej pory przypadki, gdy S = e(ra 0 ) [Naor i Pinkas,2000] oraz S = e(ra m ) [Kogan i Tassa, 2006].W celu odtworzenia wielomianowego klucza sesyjnego S można korzystać ze wzoru( rp (i) ) ⎛(0)e (ra i ) = e= e ⎝ ri! i!m∑z kk=i⎛d idx ik−1 ∏⎝j=0⎞⎞(x − x j ) ⎠⎠∣ x=0(8.4)otrzymanego przez zróżniczkowanie i razy wzoru interpolacyjnego Hermite’a w postaciNewtonam∑p(x) =k−1 ∏z kk=0 j=0(x − x j ), z k = p[x 0 , x 1 , . . . , x k ]. (8.5)Odtworzenie klucza S = e(ra i0 )e(ra i1 ) . . . e(ra it ) ze wzoru (8.4) przy założeniach,że dysponuje się jedynie blokiem aktywującym T i kluczem prywatnym użytkownikaK U = (x m , p (x m )) i, że nie jest możliwe znalezienie funkcji odwrotnej do e, jest zadaniemekstremalnie trudnym, a nawet niewykonalnym w klasie dopuszczalnych funkcjie. Z drugiej strony jest jasne, że może to być wykonalne w przypadku, gdy prawąstronę wzoru (8.4) da się zapisać w postaci funkcji o 2m−v+4 zmiennych wymienionychw bloku T i kluczu K U , dla której istnieją efektywne algorytmy obliczania jejwartości. Na przykład ma to miejsce w przypadku zastosowanej w w modelach [Naori Pinkas, 2000] i [Kogan i Tassa, 2006] funkcji wykładniczej, której bezpieczeństwozależy od trudności rozwiązania decyzyjnego problemu Diffiego-Helmana [Menezesi inni, 2005].79


Transmisja rozgłoszeniowaKorzystając z własności tej funkcjimożna otrzymaće(x + y) = e(x)e(y) i e(xy) = e(x) ym∏e (ra i ) = e (rz k )k=i(∏( k−1d idx i (x−x j )j=0)∣ ∣∣∣x=0)/i!.(8.6)Występujące w tym wzorze kryptogramy ilorazów różnicowych e (rz k ) w przypadku,gdy k < v pochodzą z bloku aktywującego T , tzn.e (rz k ) = e (ry k ) ,natomiast, gdy 0 < v k m są równe⎛v−1 ∏∑(−1) j−1k ⎜⎝(x 0 −x i ) ji=vk∏ ⎟(x i −x l ) ⎠l=vi≠le (rz k ) = e (ry v−j )j=1⎛⎞(−1)⎛⎞(−1) v−1 ⎜ ∏⎝(x 0 −x i ) vk ⎟(x i −x l ) ⎠(−1) v ⎜ ∏⎝(x 0 −x i ) vk ⎟(x i −x l ) ⎠k∏l=vk∏l=vi≠li≠le (ry 0 )e (ry i )i=vi=vgdzie x m i y m oznaczają wartości pochodzące z klucza prywatnego użytkownika(wyprowadzenie wzorów na obliczenie z k można znaleźć w [Mikeladze, 1941]).W szczególnych przypadkach rozważanych w pracach [Naor i Pinkas, 2000], [Kogani Tassa, 2006], gdy stosuje się model dzielenia sekretu Shamira, klucze sesyjneS = e(ra i ) (i = 0, m) i blok aktywujący jest postaci⎞(−1)T = [x 0 , x 1 , . . . , x m−1 ; e (r) , e (ry 0 ) , e (ry 1 ) , . . . , e (ry m−1 )]odtworzenie klucza jest szczególnie proste, gdyżoraz⎛me (ra 0 ) = e (rp (0)) = e ⎜⎝ r ∑⎛m∑e (ra m ) = e (rz m ) = e⎜r⎝ k=0y kk=0m∏j=0j≠k⎞∏ m x j⎟x j − x⎠ = ∏ mkj=0j≠k⎞y k=⎟(x k − x j ) ⎠80k=0e (ry k )m∏x jx j −x kj=0j≠k⎛ ⎞⎜ m∏ ⎟⎝ (x k −x j ) ⎠m∏j=0j≠ke (ry k )k=0(−1).(−1),


Transmisja rozgłoszeniowaMożna również obliczać inne klucze, np. e(ra i ) (i = 1, m − 1). Są one równeorazgdzie⎛ ⎛e (ra 1 ) = e ⎜m ⎝ r ∑k−1 ∑z k⎜⎝e (ra m−1 ) = ek=1j=0(rz m−1 + rz mm−1 ∑z k =k∑j=0k=0k−1 ∏l=0l≠j⎞⎞m(−x l ) ⎟⎟⎠⎠ = ∏e (rz k )(−x k ))k=1k−1 ∑= e (rz m−1 ) e (rz m )y j, k = 0, 1, . . . , m.k∏(x j − x l )l=0l≠j∏k−1(−x l )j=0 l=0l≠jm−1 ∑k=0(−x k ),Omawiany ogólny model transmisji rozgłoszeniowej zapewnia bezpieczeństwoklucza S przy założeniu, że w grupie użytkowników nie znajdzie się co najmniejm + 1 nieuczciwych użytkowników, którzy podejmą ze sobą współpracę w celu złamaniasystemu. W takiej sytuacji mogą oni wykorzystać swoje udziały do odtworzeniawielomianu p(x), interpolując go w punktach pochodzących z tych udziałów.Udziały wykorzystane przy interpolacji mogą również pochodzić od użytkowników,którzy zostali już z systemu wykluczeni. Taka koalicja użytkowników może konstruowaćnowe udziały lub obliczać udziały innych użytkowników systemu bez wiedzyGC. Jeżeli założenie dotyczące uczciwości odbiorców nie może zostać spełnione, należyrozważyć zwiększenie stopnia m wielomianu p(x) tak, aby był on większy odliczby użytkowników systemu n. Niestety prowadzi ono do zwiększenia ilości obliczeńwykonywanych przez poszczególnych użytkowników w celu odtworzenia kluczasesyjnego oraz wydłużenia bloku aktywującego, czyli wzrostu kosztu komunikacji.Z drugiej strony warto podkreślić, że zastosowanie w modelach tego typu interpolacjiHermite’a zamiast interpolacji Lagrange’a [Naor i Pinkas, 2000] prowadzi doskrócenia wiadomości T poprzez zmniejszenie liczby rozgłaszanych wartości x i , obniżająctym samym koszt komunikacji. Ponadto wzór (8.4) sugeruje, że ilość obliczeńwykonywanych przez poszczególnych użytkowników w celu odtworzenia klucza uległabyzmniejszeniu, gdyby w bloku aktywującym znalazły się wartości uogólnionychilorazów różnicowych z k (k = 0, 1, . . . , m − 1), tzn. blok aktywujący byłby postaciT = [x 0 , x k , x k+1 , . . . , x m−1 ; e (r) , e (rz 0 ) , e (rz 1 ) , . . . , e (rz m−1 )] .81


Transmisja rozgłoszeniowaW tym przypadku brakującą wartość e (rz m ) użytkownik może obliczyć podstawiającdo wzoru (8.5) wartości ze swojego klucza prywatnego K U = (x m , y m ):e (rz m ) = e (ry m )( m−1∏j=0(−1)(x m−x j ))m−1 ∏k=0e (ry k )()m−1 ∏(−1)(−1) (x m−x j )j=k.Niewątpliwą zaletą modeli tego typu jest to że, wykluczenie wybranego użytkownikaz systemu nie wymaga wymiany kluczy prywatnych pozostałych użytkowników.Dokładniej, nie jest konieczne wykonanie dodatkowych czynności zarówno przez jednostkęnadawcy GC jak i użytkowników systemu. Wystarczy jedynie uwzględnićudziały uczestników wykluczanych w bloku aktywującym T . W ten sposób możnawykluczyć z systemu co najwyżej m użytkowników. Przywrócenie wykluczonymużytkownikom przywileju deszyfracji wiadomości również nie wymaga wykonywaniadodatkowych czynności - po prostu nie należy używać <strong>ich</strong> kluczy w bloku aktywującym.Przywrócony klucz prywatny może być ponownie wykorzystywany przyobliczaniu klucza sesyjnego.Kończąc warto zwrócić uwagę, że zastosowanie funkcji szyfrującej e : K → Kw modelu dzielenia sekretu prezentowanym w rozdziale 6 skutkuje tym, że powierniknigdy nie poznaje wartości udziałów użytkowników, będących <strong>ich</strong> kluczami prywatnymi.Nawet w momencie odtwarzania sekretu S otrzymuje on jedynie kryptogramyudziałów użytkowników. Dokładniej, jeśli liczba uczestników niezbędnych do odzyskaniasekretu wynosi m + 1 to kryptogramy udziałów przekazanych powiernikowisą równeU i = (x i , e (ry i )) , i = 0, 1, . . . , m,gdzie x 0 = x 1 = · · · = x v (v m) i x j ≠ x k (j ≠ k, v < j, k m). Wtedy w celuobliczenia sekretu S powiernik wykonuje algorytm stosowany przez użytkownikówsystemu transmisji rozgłoszeniowej do odtworzenia klucza sesyjnego. Bezpośrednimwnioskiem z powyższego jest to, że zastosowanie funkcji e pozwala na wielokrotnewykorzystywanie schematu dla ustalonych raz udziałów i zmieniających się wartościr, przekazywanych w postaci zaszyfrowanej e(r) do wiadomości powiernika i uczestnikówpodziału sekretu.82


9. PodsumowanieW pracy przedstawiono jednowymiarowe oraz d-wymiarowe transformacje wielomianowez uwzględnieniem baz: Lagrange’a, Newtona i potęgowej. Podano nowe,szybkie algorytmy dla obliczania tych <strong>transformacji</strong> oraz <strong>transformacji</strong> do n<strong>ich</strong> odwrotnychdla specjalnych konfiguracji punktów, tzn. punktów, których współrzędnespełniają równania rekurencyjne pierwszego rzędu. Wybrany zbiór punktów rozszerzaklasę ciągów punktów, dla których znane są szybkie algorytmy tego rodzaju.Powszechnie znanym przykładem takiego zbioru punktów jest zbiór pierwiastkówz jedności wykorzystywany w algorytmie FFT.Główną cechą proponowanych w pracy algorytmów jest rozdzielenie obliczeń nadwa etapy. Pierwszy z n<strong>ich</strong> to wykonanie obliczeń wstępnych, tj. wyznaczenie wektorówpomocniczych. Drugi etap, bardziej kosztowny ze względu na liczbę wykonywanychoperacji arytmetycznych, to obliczenie d-wymiarowego splotu. Stąd złożonośćobliczeniowa algorytmu wyznaczenia wielowymiarowej <strong>transformacji</strong> wielomianowejjest tego samego rzędu, co złożoność obliczeniowa algorytmu obliczenia splotu wielowymiarowego.Efektywne algorytmy obliczenia <strong>transformacji</strong> <strong>wielomianowych</strong> wymagajązałożenia, że dziedziną rozważanych wielomianów są ciała zawierające pierwiastekpierwotny z jedności odpowiedniego stopnia. Efektywność wspomnianychalgorytmów jest tym większa, im większy jest stopień wielomianów. Na przykład,porównując zaproponowany w pracy algorytm obliczania jednowymiarowej <strong>transformacji</strong>Newtona - Lagrange’a z klasycznym algorytmem obliczania tej <strong>transformacji</strong>uzyskuje się oszczędność operacji przekraczającą 99% dla stopnia wielomianu równego2 16 . Dla tego samego stopnia wielomianu oszczędność - przy porównaniu z algorytmemwykorzystującym FFT, przekracza 95%. Między innymi z tego względutakie algorytmy mogą być z powodzeniem stosowane w dzieleniu sekretu, głosowaniuelektronicznym, czy transmisji rozgłoszeniowej, w których wykorzystuje się83


Podsumowaniewielomiany wysokiego stopnia.Przedstawiony w pracy schemat dzielenia sekretu umożliwia współdzielenie sekretuprzez grupę uczestników o ustalonej hierarchii. Wykorzystuje on algorytmy<strong>transformacji</strong> <strong>wielomianowych</strong> zarówno podczas obliczania udziałów dla poszczególnychuczestników, jak i przy odzyskiwaniu sekretu. Jest również punktem wyjścia dladwóch innych omówionych w pracy zastosowań <strong>transformacji</strong> <strong>wielomianowych</strong>, jakimisą modele głosowań elektronicznych i transmisji rozgłoszeniowej. Zaprezentowanybezpieczny model głosowania elektronicznego cechuje rozproszenie odpowiedzialnościpomiędzy kilka jednostek. Struktura głosu dla tego modelu może być dowolna -jest ona uzależniona jedynie od typu wyborów. Głosujący nie muszą przeprowadzaćskomplikowanych obliczeń, dzięki czemu może on być wykorzystany do przeprowadzaniagłosowań za pośrednictwem internetu, maszyn do głosowania, czy innychurządzeń umożliwiających przesyłanie zaszyfrowanych wiadomości.Kolejnym zastosowaniem <strong>transformacji</strong> <strong>wielomianowych</strong> wymienionym w pracyjest zaprezentowany ogólny protokół transmisji rozgłoszeniowej, w którym stosuje sięjednokierunkową funkcję spełniającą określone warunki. Prezentowane w pracy algorytmy<strong>transformacji</strong> <strong>wielomianowych</strong> służą poprawieniu wydajności protokołów tegotypu. Omówiony ogólny model pozwala na przesłanie klucza grupie użytkowników zapośrednictwem kanału rozgłoszeniowego oraz wykluczanie z systemu użytkownikówbez konieczności uaktualniania kluczy prywatnych pozostałych użytkowników systemu.Takie rozwiązanie ma wiele zastosowań, np. umożliwia wprowadzenie kontrolidostępu do danych chronionych prawem autorskim. Tylko uprawnieni użytkownicy,mogą uzyskać dostęp do tych danych dzięki rozgłaszanej wiadomości.Pomimo tego, że niniejsza rozprawa skupia się na <strong>zastosowania</strong>ch algorytmów<strong>transformacji</strong> <strong>wielomianowych</strong> w problemach o podłożu kryptograficznym, to należypodkreślić, że znajdują one również <strong>zastosowania</strong> w wielu innych zagadnieniachwspółczesnej informatyki i matematyki obliczeniowej.84


BibliografiaAho, A. V., Hopcroft, J. E., i Ullman, J. D. (2003). Projektowanie i analiza algorytmów.Helion. Tytuł oryginału: The Design and Analysis of Computer Algorithms.Aho, A. V., Steiglitz, K., i Ullman, J. D. (1975). Evaluating polynomials at fixedsets of points. SIAM Journal on Computing, 4 (4), 533 – 539.Balicki, R. i Preisner, A. (2007). E-voting – szanse, możliwości, zagrożenia. [w]S. Grabowska i R. Grabowski (Red.), Alternatywne sposoby głosowania a aktywizacjaelektoratu. Rzeszów, 50 – 74.Benaloh, J. (1987). Verifiable secret-ballot elections. Ph. D. dissertation.Bini, D. i Pan, V. (1994). Polynomial and matrix computation 1 . Boston: Birkhäuser.Blakley, G. (1979). Safeguarding cryptographic keys. Proceedings of National ComputerConference, 48 , 313––317.Blum, M., de Santis, A., Micali, S., i Persiano, G. (1991). Noninteractive zeroknowledge.SIAM Journal on Computing, 20 (6), 1084–1118.Boneh, D. (1998). The decision Diffie - Hellman problem. Lecture Notes in ComputerScience, 1423 , 48 – 63.Borodin, A. (1971). Evaluating polynomials at many points. Information ProcessingLetters, 1 (2), 66 – 68.Borwein, J. M. i Borwein, P. B. (1987). Pi and the AGM: A study in analytic numbertheory and computational complexity. New York: John Wiley and Sons.Bostan, A., Lecerf, G., i Schost, E. (2003). Tellegen’s principle into practice. Proceedingsof ISSAC 2003 , 37 – 44.85


BibliografiaBostan, A. i Schost, E. (2005). Polynomial evaluation and interpolation on specialsets of points. Journal of Complexity, 21 (4), 420–446.Cantor, D. G. i Kaltofen, E. (1991). On fast multiplication of polynomials overarbitrary algebras. Acta Informatica, 28 (7), 693––701.Chang, C., Lin, C., Lee, W., i Hwang, P. (2004). Secret sharing with access structuresin a hierarchy. Proceedings of the 18th International Conference on AdvancedInformation Networking and Applications, 2 , 31–34.Chang, T., Hwang, M., i Yang, W. (2005). An improvement on the Lin–Wu (t, n)threshold verifiable multi-secret sharing scheme. Applied Mathematics and Computation,163 (1), 169––178.Chaum, D. (1981). Untraceable electronic mail, return addresses and digital pseudonyms.Communications of the ACM , 24 (2), 84 – 88.Cooley, J. W. i Tukey, J. W. (1965). An algorithm for the machine calculationof complex Fourier series. Mathematics of Computation, 19 (90), 297 – 301.Cranor, L. F. i Cytron, R. K. (1997). Sensus: A security-conscious electronic pollingsystem for the internet. Proceedings of the 30th Hawaii International Conferenceon System Sciences: Information System Track-Organizational Systems andTechnology, 3 .Daza, V., Herranz, J., Morillo, P., i Ráfols, C. (2008). Ad-hoc threshold broadcastencryption with shorter ciphertexts. Electronic Notes in Theoretical ComputerScience, 192 (2), 3 – 15.de Boor, C. (2000). Computational aspects of multivariate polynomial interpolation:Indexing the coefficients. Advances in Computational Mathematics, 12 (4), 289 –301.Feldman, P. (1987). A practical scheme for non-interactive verifiable secret sharing.IEEE Symposium on Foundations of Computer Science, 427 – 437.Feng, J., Wu, H., Tsai, C., i Chu, Y. (2005). A new multi-secret images sharingscheme using Largrange’s interpolation. The Journal of Systems and Software,86


Bibliografia76 (3), 327––339.Fiat, A. i Naor, M. (1993). Broadcast encryption. Lecture Notes in ComputerScience, 773 , 480––491.F<strong>ich</strong>tenholz, G. M. (2002). Rachunek różniczkowy i całkowy. Tom 1 . PWN.Frigo, M. i Johnson, S. G. (1997).Technical Report: TR-728 .The fastest Fourier transform in the West.Frigo, M. i Johnson, S. G. (2005). The design and implementation of FFTW3.Proceedings of the IEEE, 93 (2), 216––231.Fujioka, A., Okamoto, T., i Ohta, K. (1993). A practical secret voting scheme forlarge scale elections. Lecture Notes in Computer Science, 718 , 248–259.Fürer, M. (2007). Faster integer multiplication. SIAM Journal on Computing, 39 (3),979–1005.Gasca, M. (1989). Multivariate polynomial interpolation. Computation of curvesand surfaces. Kluwer Academic Publisher, 215 – 236.Gerhard, J. (2000). Modular algorithms for polynomial basis conversion and greatestfactorial factorization. RWCA’00 , 125––141.Ghodosi, H., Pieprzyk, J., i Safavi-Naini, R. (1998). Secret sharing in multilevel andcompartmented groups. Lecture Notes in Computer Science, 1438 , 367–378.Goldwasser, S., Micali, S., i Rackoff, C. (1989). The knowledge complexity of interactiveproof systems. SIAM Journal on Computing, 18 (1), 186 – 208.Gontarz, A. (2006). Częstochowa głosowała elektronicznie. Computerworld. URLhttp://www.computerworld.pl/news/91529.html. 5 kwiecień 2006.Hołubiec, J. i Mercik, J. W. (2006). Techniki i tajniki głosowania. Warszawa: EXIT.Hwang, R., Lee, W., i Chang, C. (1999). A concept of designing cheater identificationmethods for secret sharing. The Journal of Systems and Software, 46 , 7 – 11.Iftene, S. (2007). General secret sharing based on the chines remainder theorem87


Bibliografiawith applications in e-voting. Electronic Notes in Theoretical Computer Science,186 , 67 – 84.Internet Policy Institute (2001). Report of the National Workshop on Internet Voting:Issues and Research Agenda.Internet Society Poland (2007). Stanowisko w sprawie głosowania elektronicznegow wyborach powszechnych. URL http://www.isoc.org.pl/200701/wybory.Kacprzyk, J. i Zadrożny, S. (2005). Towards a synergistic combination of Web-basedand data-driven decision support systems via linguistic data summaries. Advancesin Web Intelligence. Lecture Notes in Computer Science, 3528 , 211 – 217.Kacprzyk, J. i Zadrożny, S. (2008). On a concept of a consensus reaching processsupport system based on the use of soft computing and Web techniques. Proceedingsof the 8th International FLINS Conference, 859 – 864.Kacprzyk, J. i Zadrożny, S. (2010). Soft computing and Web intelligence for supportingconsensus reaching. Soft Computing - A Fusion of Foundations, Methodologiesand Applications, 14 (8), 833 – 846.Kapusta, J. (2009). Szybkie algorytmy <strong>transformacji</strong> <strong>wielomianowych</strong> i <strong>ich</strong> <strong>zastosowania</strong>kryptograficzne. [w] J. Hołubiec (Red.), Analiza systemowa w finansachi zarządzaniu. 11, 115 – 131.Kapusta, J. i Smarzewski, R. (2006a). Fast Hermite interpolating polynomial algorithmfor a special configuration of knots. Academic Research, 19 (3), 67 –74.Kapusta, J. i Smarzewski, R. (2006b). Fast interpolating algorithms in cryptography.Annales UMCS Informatica AI , V , 37 – 45.Kapusta, J. i Smarzewski, R. (2007a). Fast algorithms for polynomial evaluationand differentiation at special knots. Annales UMCS Informatica AI , VI , 65 –102.Kapusta, J. i Smarzewski, R. (2007b). Fast bivariate interpolating algorithms forspecial configurations of knots. Proceedings of the 3d International Conference88


BibliografiaComputational Methods in Applied Mathematics: CMAM-3 , 84 – 91.Kapusta, J. i Smarzewski, R. (2009). Algorithms for fast multivariate polynomialinterpolation and evaluation. Journal of Complexity, 25 (4), 332 – 338.Karatsuba, A. (1995). The complexity of computations. Proceedings of the SteklovInstitute of Mathematics, 211 , 169 – 183.Kincaid, D. i Cheney, W. (2006). Analiza numeryczna. Warszawa: WydawnictwoNaukowo-Techniczne.Klonowski, M., Kutyłowski, M., Lauks, A., i Zagórski, F. (2005). A practical votingscheme with receipts. Lecture Notes in Computer Science, 3650 , 490 – 497.Knuth, D. E. (2002). Sztuka Programowania. <strong>Algorytmy</strong> Seminumeryczne. WydawnictwoNaukowo-Techniczne. Tytuł oryginału: The Art of Computer Programming.Seminumerical Algorithms.Kogan, N. i Tassa, T. (2006). Improved efficiency for revocation schemes via Newtoninterpolation. ACM Transactions on Information and System Security, 9 , 461 –486.Kostrikin, A. I. (2004). Wstęp do algebry. Podstawy algebry. PWN.Krzywiecki, L., Kutyłowski, M., i Nikodem, M. (2007). General anonymous keybroadcasting via Lagrangian interpolation. 1st International Workshop on Group-Oriented Cryptographic Protocols, IET Information Security, 2 (3), 79 – 84.Kulesza, K. i Kotulski, Z. (2003). On secret sharing for graphs. arXiv.org e-Printarchive. URL http://arxiv.org/abs/cs/0310052.Kutyłowski, M. (2009). E-voting: głosowanie elektroniczne. INFOS Zagadnieniaspołeczno-gospodarcze, 10 (57). 21 maj 2009.Kutyłowski, M. i Zgórski, F. (2006). Szansa czy zagrożenie. Computerworld. URLhttp://www.computerworld.pl/artykuly/50392.html. 2 styczeń 2006.Lodha, S. K. (1998). Lattices and algorithms for bivariate Bernstein, Lagrange,Newton and other related polynomial bases based on duality between L-bases89


Bibliografiaand B-bases. Journal of Approximation Theory, 93 (1), 59 – 99.Lodha, S. K. i Goldman, R. (1995). Change of basis algorithms for surfaces inCAGD. Computer Aided Geometric Design, 12 (8), 801 – 824.Lodha, S. K. i Goldman, R. (1997). A unified approach to evaluation algorithms formultivariate polynomials. Mathematics of Computation, 66 (220), 1521 – 1553.Maciejewski, A. (2005). Brazylia pionierem e-votingu? Computerword. URL http://www.computerworld.pl/news/83134.html. 2 stycznia 2006.Marczewski, A. (2009). Student pokonał Obamę. Rzeczpospolita. 6 maj 2009.Mateer, T. (2008). Fast Fourier transform algorithms with applications. Ph. D.Thesis.Menezes, A. J., van Oorschot, P. C., i Vanstone, S. A. (2005). Kryptografia stosowana.Warszawa: Wydawnictwo Naukowo-Techniczne. Tytuł oryginału: Handbookof Applied Cryptography.Mühlbach, G. (1993). Computation of Cauchy-Vandermonde determinants. Journalof Number Theory, 43 , 74 – 81.Mikeladze, S. (1941). O razdelennyh raznostjah s povtorjajuwimisja znachenijamiargumenta. Trudy Tbilisskogo Matemat<strong>ich</strong>eskogo Instituta, IX , 49–60.Naor, M. i Pinkas, B. (2000). Efficient trace and revoke schemes. Financial Cryptography2000. Lecture Notes in Computer Science, 1 – 20.Nowina-Konopka, M. (2008). Rola internetu w rozwoju demokracji w Polsce. Kraków:Ośrodek Myśli Politycznej.Nurmi, H. (2002). Voting procedures under uncertainty. Berlin-Heidelberg-NewYork: Springer-Verlag.Pan, V. Y. (2001). Structured matrices and polynomials. Unified superfast algorithms.Boston: Birkhäuser.Pe¨na, J. M. i Sauer, T. (2000). On the multivariate Horner scheme. SIAM Journal90


Bibliografiaon Numerical Analysis, 37 (4), 1186 – 1197.Pieprzyk, J., Hardjono, T., i Seberry, J. (2003). Teoria bezpieczeństwa systemówkomputerowych. Springer Verlag. Tytuł oryginału: Fundamentals of ComputerSecurity.Pieprzyk, J. i Zhang, X. (2002). Cheating prevention in linear secret sharing. LectureNotes in Computer Science, 2384 , 121 – 135.Rabiner, L. R., Schafer, R. W., i Rader, C. M. (1969). The chirp z-transform algorithm.IEEE Transactions on Audio and Electroacoustics, AU-17 (2), 86 – 92.Sampigethaya, K. i Poovendran, R. (2006). A framework and taxonomy for comparisonof electronic voting schemes. Computers & Security, 25 , 137 – 153.Sauer, T. (1995). Computational aspects of multivariate polynomial interpolation.Advances in Computational Mathematics, 3 , 219 – 237.Schneier, B. (2002). Kryptografia dla praktyków. Protokoły, algorytmy i programyźródłowe w języku C . Warszawa: Wydawnictwo Naukowo-Techniczne. Tytuł oryginału:Applied Cryptography. Protocols algorithms and source in code in C.Schönhage, A. i Strassen, V. (1971). Schnelle multiplikation großer zahlen. Computing,7 , 281 – 292.Shamir, A. (1979). How to share a secret? Communications of the ACM , 22 ,612––613.Smarzewski, R. i Kapusta, J. (2005). Algorithms for multi-secret hierarchical sharingschemes of Shamir type. Annales UMCS Informatica AI , III , 65 – 91.Smarzewski, R. i Kapusta, J. (2007). Fast Lagrange-Newton transformations. Journalof Complexity, 23 (3), 336 – 345.Stinson, D. R. (1995). Cryptography. Theory and Practice. Boca Raton: CRC Press.Stoer, J. i Bulirsch, R. (1993). Introduction to Numerical Analysis. New York:Springer-Verlag.91


BibliografiaTassa, T. (2007). Hierarchical threshold secret sharing. Journal of Cryptology,20 (2), 237––264.Tompa, M. i Woll, H. (1998). How to share a secret with cheaters. Journal ofCryptology, 1 , 133––138.Tzeng, W. i Tzeng, H. (2005). A public-key traitor tracing scheme with revocationusing dynamic shares. Designs, Codes and Cryptography, 35 , 47––61.von zur Gathen, J. i Gerhard, J. (2003). Modern Computer Algebra. Cambridge:University Press.Wirth, N. (2001). <strong>Algorytmy</strong> + struktury danych = programy. Warszawa: WydawnictwoNaukowo-Techniczne. Tytuł oryginału: Algorithms + Data Structures =Programs.Zhang, Y. i Liu, Z. (2007). Dynamic and verifiable secret sharing among weightedparticipants. Journal of Systems Science and Complexity, 20 (4), 481 – 485.Zhao, R., Zhao, J., Dai, F., i Zhao, F. (2009). A new image secret sharing schemeto identify cheaters. Computer Standards & Interfaces, 31 , 252––257.Zwierko, A. i Kotulski, Z. (2006). An efficient agent e-voting system with distributedtrust. [w] M. H. ter Beek i F. Gadducci (Red.), Proceedings of VODCA 2006,Second International Workshop on Views On Designing Complex Architectures.Bertinoro, Italy, 85 – 101.Zwierko, A. i Kotulski, Z. (2007). A light-weight e-voting system with distributedtrust. Electronic Notes in Theoretical Computer Science, 168 , 109––126.92

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!