Algorytmy transformacji wielomianowych i ich zastosowania

Podobne dokumenty
Algorytmy transformacji wielomianowych i ich zastosowania

Wykład VII. Kryptografia Kierunek Informatyka - semestr V. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej

Metody numeryczne. Ilorazy różnicowe. dr Artur Woike. Wzory interpolacyjne Newtona i metoda Aitkena.

Analiza numeryczna Kurs INP002009W. Wykład 8 Interpolacja wielomianowa. Karol Tarnowski A-1 p.223

Wprowadzenie do PKI. 1. Wstęp. 2. Kryptografia symetryczna. 3. Kryptografia asymetryczna

Parametry systemów klucza publicznego

Metody numeryczne. Sformułowanie zagadnienia interpolacji

Zastosowanie teorii liczb w kryptografii na przykładzie szyfru RSA

Algorytmy asymetryczne

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

TEORETYCZNE PODSTAWY INFORMATYKI

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

Obliczenia naukowe Wykład nr 6

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

VII. Elementy teorii stabilności. Funkcja Lapunowa. 1. Stabilność w sensie Lapunowa.

Przestrzenie wektorowe

Treść wykładu. Układy równań i ich macierze. Rząd macierzy. Twierdzenie Kroneckera-Capellego.

Interpolacja. Marcin Orchel. Drugi przypadek szczególny to interpolacja trygonometryczna

Analiza numeryczna kolokwium2a-15grudnia2005

SIMR 2016/2017, Analiza 2, wykład 1, Przestrzeń wektorowa

Met Me ody numer yczne Wykład ykład Dr inż. Mic hał ha Łanc Łan zon Instyt Ins ut Elektr Elektr echn iki echn i Elektrot Elektr echn olo echn

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

Wielomian interpolacyjny Hermite a

ELEMENTY ANALIZY NUMERYCZNEJ ELEMENTY ANALIZY NUMERYCZNEJ. Egzamin pisemny zestaw 1 24 czerwca 2019 roku

Obliczenia Naukowe. Wykład 12: Zagadnienia na egzamin. Bartek Wilczyński

Układy równań i równania wyższych rzędów

Transformaty. Kodowanie transformujace

Macierze. Rozdział Działania na macierzach

Podstawy systemów kryptograficznych z kluczem jawnym RSA

Metody Numeryczne Wykład 4 Wykład 5. Interpolacja wielomianowa

Układy równań liniowych. Krzysztof Patan

ELEMENTY ANALIZY NUMERYCZNEJ ELEMENTY ANALIZY NUMERYCZNEJ. Egzamin pisemny zestaw 1 26 czerwca 2017 roku

Matematyka stosowana i metody numeryczne

Baza w jądrze i baza obrazu ( )

Wielomiany podstawowe wiadomości

INTERPOLACJA I APROKSYMACJA FUNKCJI

Wymagania edukacyjne z matematyki klasa II technikum

Weryfikacja hipotez statystycznych. KG (CC) Statystyka 26 V / 1

ROZWIĄZYWANIE RÓWNAŃ NIELINIOWYCH

Matematyka dyskretna

Wykład z równań różnicowych

3. Interpolacja. Interpolacja w sensie Lagrange'a (3.1) Dana jest funkcja y= f x określona i ciągła w przedziale [a ;b], która

Maciej Grzesiak. Wielomiany

Wykład 9. komputerowych Głosowanie internetowe - główne slajdy. 23 listopada Igor T. Podolak Instytut Informatyki Uniwersytet Jagielloński

Matematyka dyskretna dla informatyków

Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami

2 Kryptografia: algorytmy symetryczne

Metody Obliczeniowe w Nauce i Technice

Spacery losowe generowanie realizacji procesu losowego

Wykład 14. Elementy algebry macierzy

PLAN WYNIKOWY DLA KLASY DRUGIEJ POZIOM PODSTAWOWY I ROZSZERZONY. I. Proste na płaszczyźnie (15 godz.)

Interpolacja funkcji

Wykład 12 i 13 Macierz w postaci kanonicznej Jordana , 0 A 2

KADD Minimalizacja funkcji

Matematyka dyskretna. Andrzej Łachwa, UJ, /10

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

Egzamin z Metod Numerycznych ZSI, Egzamin, Gr. A

1 Zbiory i działania na zbiorach.

Aproksymacja funkcji a regresja symboliczna

Przekształcanie równań stanu do postaci kanonicznej diagonalnej

Prawdopodobieństwo i statystyka

Wektory i wartości własne

Wersja testu A 18 czerwca 2012 r. x 2 +x dx

1 Pochodne wyższych rzędów

DOPASOWYWANIE KRZYWYCH

Algebra liniowa. 1. Macierze.

Transformata Fouriera. Sylwia Kołoda Magdalena Pacek Krzysztof Kolago

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

Rijndael szyfr blokowy

Wektory i wartości własne

Przedmiotowy system oceniania wraz z określeniem wymagań edukacyjnych klasa druga zakres rozszerzony

Funkcje charakterystyczne zmiennych losowych, linie regresji 1-go i 2-go rodzaju

, to liczby γ +δi oraz γ δi opisują pierwiastki z a+bi.

Wstęp do metod numerycznych Uwarunkowanie Eliminacja Gaussa. P. F. Góra

Algorytmy i struktury danych. Wykład 4

Metody numeryczne I Równania nieliniowe

Zaawansowane algorytmy i struktury danych

Optymalizacja ciągła

Optymalizacja ciągła

0.1 Pierścienie wielomianów

n = p q, (2.2) przy czym p i q losowe duże liczby pierwsze.

W. Guzicki Zadanie IV z Informatora Maturalnego poziom rozszerzony 1

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

Metoda Lenstry-Shora faktoryzacji dużych liczb całkowitych

Przestrzenie liniowe

Matematyka stosowana i metody numeryczne

Analiza korespondencji

Zadanie 1. Suma silni (11 pkt)

Interpolacja i modelowanie krzywych 2D i 3D

Wykład 3 Równania rózniczkowe cd

Równania różniczkowe liniowe wyższych rzędów o stałych współcz

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

Liczby zespolone. x + 2 = 0.

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

Opis efektów kształcenia dla modułu zajęć

Wykład VIII. Systemy kryptograficzne Kierunek Matematyka - semestr IV. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Programowanie celowe #1

Metody numeryczne. Instytut Sterowania i Systemów Informatycznych Wydział Elektrotechniki, Informatyki i Telekomunikacji Uniwersytet Zielonogórski

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

Wstęp do metod numerycznych Zadania numeryczne 2016/17 1

Transkrypt:

INSTYTUT BADAŃ SYSTEMOWYCH PAN mgr Joanna Kapusta Niestacjonarne Studia Doktoranckie IBS PAN Autoreferat pracy doktorskiej pt. Algorytmy transformacji wielomianowych i ich zastosowania Promotor: dr hab. Ryszard Smarzewski, prof. KUL

1. Wstęp 1.1. Cel pracy oraz motywy wyboru problematyki badawczej Istotnym elementem nauk informatycznych jest projektowanie i analiza algorytmów, mających najczęściej swoje korzenie w szeroko rozumianej matematyce. Prezentowana rozprawa skupia się na jednym z ważnych [Knuth, 2002] zagadnień z tego obszaru - zaprezentowano w niej nowe algorytmy obliczania transformacji wielomianowych, tj. metody przekształcania reprezentacji wielomianu jednej lub wielu zmiennych p (x) = a α H α (x) α Q n w bazie {H α (x)} α Qn do reprezentacji tego wielomianu p (x) = b α G α (x) α Q n w bazie {G α (x)} α Qn, gdzie Q n oznacza odpowiednio ustalony zbiór indeksów. Celem prezentowanej rozprawy doktorskiej było opracowanie nowych, szybkich algorytmów transformacji wielomianowych dla baz zależnych od specjalnych konfiguracji punktów. Proponowane algorytmy operują na zbiorach punktów rozszerzających klasę 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ępnie dla wielowymiarowych transformacji wielomianowych 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 wielowymiarowe sploty. Zaprezentowano je w postaci łatwej do efektywnej implementacji. Ponadto przeprowadzono szczegółową analizę złożoności obliczeniowej tych algorytmów. Następnie podano ich zastosowania w aktualnych problemach kryptograficznych takich jak: dzielenie sekretu, głosowanie elektroniczne, wymiana kluczy z wykorzystaniem transmisji rozgłoszeniowej. Aktualność tych zagadnień wynika m.in. z szybkiego rozwoju internetu oraz jego stale rosnącego znaczenia w życiu jednostek i całych społeczeństw. W pracy szczególną uwagę zwrócono na głosowania elektroniczne ze względu na duży potencjał, jaki ze sobą niosą oraz na naturalne powiązanie prezentowanego modelu głosowań z omawianymi algorytmami transformacji wielomianowych. Głosowania z wykorzystaniem internetu umożliwiają partycypowanie w podejmowaniu decyzji dużej grupie uczestników bez konieczności przemieszczania się do miejsca głosowania, 1

co oszczędza czas, koszty i może być dodatkową zachętą do udziału w głosowaniu. Ponadto umożliwiają one oddanie głosu osobom, które z różnych względów (np. problemy zdrowotne) muszą rezygnować z udziału w tradycyjnych głosowaniach. Wspomniane zalety powodują, że systemy wykorzystujące nowoczesne technologie są ciągle przedmiotem zainteresowań i badań, zarówno w kontekście głosowań [Fujioka i inni, 1993], [Zwierko i Kotulski, 2007], wymiany opinii mającej na celu wypracowanie konsensusu [Kacprzyk i Zadrożny, 2010], czy też w kontekście wspierania procesu podejmowania decyzji [Kacprzyk i Zadrożny, 2005]. W pracy przedstawiono model, który może być wykorzystany do zbierania i zliczania głosów oddawanych przez internet oraz z wykorzystaniem maszyn do głosowania. Ustalenie sposobu interpretacji wyników głosowania i wskazania wariantu zwycięskiego może odbywać się przy pomocy różnych technik (np. Bordy, większościowej, aprobującej), 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łosowym poparciu może wygrać głosowanie [Hołubiec i Mercik, 2006]. Innym istotnym zastosowaniem algorytmów transformacji wielomianowych, rozważanym w pracy, jest transmisja rozgłoszeniowa. Polega ona na rozsyłaniu zaszyfrowanej wiadomości do dużej grupy użytkowników w taki sposób, że wiadomość może zostać odtworzona jedynie przez członków dynamicznie zmieniającej się, uprawnionej podgrupy. Przykładem zastosowania transmisji tego typu jest kodowana transmisja telewizyjnych platform cyfrowych - tylko użytkownicy, którzy dokonali opłaty mają dostęp do programów telewizyjnych. Wymienione zastosowania wykorzystują zaprezentowany w pracy hierarchiczny model dzielenia sekretu, który jest uogólnieniem klasycznego schematu Shamira [Shamir, 1979]. Schemat Shamira bazuje na interpolacji Lagrange a, natomiast proponowany hierarchiczny model dzielenia sekretu bazuje na interpolacji Hermite a. Zastosowanie interpolacji Hermite a pozwala na stosowanie tego schematu w grupach o ustalonej hierarchii. Rozważając rzeczywiste przypadki nie jest trudno znaleźć przykłady instytucji lub organizacji (np. bank, wojsko), w których istnieje ustalona hierarchia podyktowana autorytetem jednostek, czy odpowiedzialnością jaka na nich spoczywa. Rozdzielenie tajnej informacji wśród członków takiej grupy wymaga zazwyczaj uwzględnienia wspomnianej hierarchii. W pracy przedstawiono kilka wariantów schematu dzielenia sekretu umożliwiających dopasowanie go do potrzeb tego typu grup. Zaprezentowany model pozwala również na uwzględnienie sytuacji, w której do odzyskania sekretu konieczne jest uczestnictwo wybranych jednostek. 2

1.2. Tezy pracy Przeprowadzone studia literaturowe oraz dotychczasowe badania pozwoliły na sformułowanie następujących tez pracy: 1. Możliwe jest rozszerzenie klasy ciągów punktów, dla których znane są szybkie algorytmy interpolacyjne i ewaluacyjne. 2. Istnieją szybkie algorytmy obliczania jedno- i wielowymiarowych transformacji wielomianowych z uwzględnieniem baz wielomianowych Lagrange a, Newtona oraz potęgowej, dla punktów spełniających równanie rekurencyjne pierwszego rzędu. 3. Możliwe jest zastosowanie opracowanych algorytmów transformacji wielomianowych w protokołach kryptograficznych, tj. protokole dzielenia sekretu, głosowania elektronicznego oraz transmisji rozgłoszeniowej wykluczającej. 1.3. Struktura pracy Rozprawa składa się z 9 rozdziałów. Pierwszy rozdział stanowi wprowadzenie do tematyki rozważanej w pracy. Zawiera on opis celów badawczych, zakresu pracy oraz motywacji, które doprowadziły do opracowania nowych algorytmów i ich zastosowań. W pracy zostały wyodrębnione dwie zasadnicze części. Pierwsza z nich (rozdziały 2-5) dotyczy algorytmów obliczania transformacji wielomianowych, natomiast część druga (rozdziały 6-8) omawia zastosowania transformacji wielomianowych. Pierwszą część pracy rozpoczyna rozdział omawiający aktualny stan wiedzy z zakresu transformacji wielomianowych. Zawiera on przegląd wyników opublikowanych w uznanych i cenionych w świecie nauki czasopismach oraz monografiach. W rozdziale trzecim przytoczono podstawowe pojęcia dotyczące jedno- i wielowymiarowych splotów oraz podano metody ich obliczania z wykorzystaniem dyskretnej transformacji Fouriera. Algorytmy proponowane w niniejszej rozprawie 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 wielowymiarowego i ułatwia oszacowanie jego złożoności obliczeniowej. Następnie podano algorytmy obliczania jedno- i wielowymiarowych dekonwolucji, które bazują na iteracyjnej metodzie Newtona [Borwein i Borwein, 1987]. W kolejnych dwóch rozdziałach zaprezentowano nowe wyniki dotyczące transformacji wielomianowych z uwzględnieniem wybranych baz wielomianowych: potęgowej, Lagrange a i Newtona. Dokładniej, w czwartym rozdziale zaprezentowano algorytmy obliczania jednowymiarowej transformacji Lagrange a-newtona i transformacji do niej 3

odwrotnej z uwzględnieniem punktów spełniających równanie rekurencyjne pierwszego rzędu. Ponadto dla wymienionej klasy punktów przedstawiono algorytm ewaluacji wielomianów w reprezentacji potęgowej. Podana klasa punktów rozszerza 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ła się również analiza porównawcza opracowanych algorytmów z innymi znanymi algorytmami transformacji wielomianowych 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 wiele wymiarów. W obu przypadkach - jednoi wielowymiarowym, położono specjalny nacisk na szczegóły algorytmizacji. Niektóre rezultaty tego rozdziału, dla przypadku dwuwymiarowego 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 transformacji wielomianowych. Został w nim przedstawiony szczegółowy opis hierarchicznego schematu dzielenia sekretu. W omawianym schemacie transformacje wielomianowe są wykorzystywane zarówno do uzyskania udziałów w dzielonym sekrecie, jak i przy odzyskiwaniu tego sekretu. W kolejnym rozdziale omówiono model głosowania elektronicznego wykorzystujący hierarchiczny schemat dzielenia sekretu. Zastosowanie tego schematu w prezentowanym modelu głosowania pozwala na podzielenie zadań i odpowiedzialności pomiędzy kilka uprawnionych jednostek. Treść ósmego rozdziału zawiera opis ogólnego modelu transmisji rozgłoszeniowej wykorzystującego transformacje wielomianowe. Proponowany model umożliwia wybranym użytkownikom odtworzenie klucza dostępu do systemu na podstawie specjalnie zbudowanej, rozgłaszanej wiadomości. Rozdział dziewiąty zawiera podsumowanie i wnioski dotyczące omawianych algorytmów transformacji wielomianowych oraz ich zastosowań. 2. Aktualny stan wiedzy Badania w zakresie szybkiego obliczania transformacji wielomianowych dla specjalnych konfiguracji punktów były prowadzone przez wiele lat. Szczególnym przypadkiem jest słynny algorytm FFT [Cooley i Tukey, 1965] obliczania dyskretnej transformacji Fouriera oraz algorytm obliczania transformacji do niej odwrotnej. Algorytmy te pozwalają na przechodzenie pomiędzy reprezentacją wielomianu względem bazy La- 4

grange a z węzłami interpolacji 1, ω,..., ω n 1, gdzie ω jest pierwiastkiem pierwotnym z jedności stopnia n = 2 k, a współczynnikami rozwinięcia tego wielomianu względem bazy potęgowej, nazywanej też bazą Maclaurina. Ich złożoność obliczeniowa wynosi O (n log n), podczas gdy złożoność obliczeniowa innych, klasycznych algorytmów jest równa O (n 2 ) lub w najlepszym przypadku O ( n log 2 n ), zob. np. [Bini i Pan, 1994]. Istotnymi wynikami z tego zakresu były zaprezentowane w pracach [Aho i inni, 1975] i [Bostan i Schost, 2005] algorytmy rzędu O (n log n) dla ewaluacji i interpolacji wielomianów w n punktach tworzących ciągi geometryczne albo arytmetyczne. 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 literatury związanej z tą tematyką. 3. Preliminaria Niech K = (K+, ) będzie ciałem z pierwiastkiem pierwotnym ψ z jedności stopnia 2n. Zwiniętym splotem wektorów a = (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 wektor a b = (c 0, c 1,..., c n 1 ), zdefiniowany wzorami i c i = a k b i k, i = 0, 1,..., n 1. k=0 Algorytm obliczania zwiniętego splotu opiera się na równości a b = { F 1 [F (a) F (b)] + F 1 [F (Ψ a) F (Ψ b)] /Ψ } /2, (1) w której Ψ = (1, ψ,..., ψ n 1 ), ψ - pierwiastek pierwotny z jedności stopnia 2n, F = F ω : K n K n - dyskretna transformacja Fouriera, ω = ψ 2 oraz operacje wektorowe i / są zwykłym mnożeniem i dzieleniem odpowiednich współrzędnych wektorów. Zwinięty splot wektorów a i b może być obliczony algorytmem o złożoności obliczeniowej c (n) = O(n log n) [Aho i inni, 2003], [Bini i Pan, 1994]. Znane są również algorytmy pozwalające na obliczenie splotu z wykorzystaniem c(n) = O (n log n log log n) operacji, np. algorytm Schönhage-Strassena [Schönhage i Strassen, 1971; Bini i Pan, 1994]. W 2009 roku Martin Fürer 2007 podał algorytm szybszy dla astronomicznie dużej wartości n o złożoności obliczeniowej O (n log n) 2 O(log n)1. { } 1 log n = min i 0 : log (i) n 1, gdzie log (0) n = n i log (i+1) n = log log (i) n 5

Splot wielowymiarowy definiuje się podobnie, jak jednowymiarowy. Przyjmując, że n = (n 1, n 2,..., n d ) oznacza wektor dodatnich liczb całkowitych i Q n = {α = (α 1, α 2,.., α d ) : 0 α i < n i dla i = 1, 2,..., d} jest zbiorem n 1 n 2 n d wielowskaźników o współrzędnych całkowitych, wielowymiarowy splot 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ą wzorem z = x 1 y 1 y 2 d y d. (2) W tym wzorze cząstkowe sploty i definiuje sie w następujący sposób: Definicja 1. 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 α ) α Qn i wektora y i = (y i,0, y i,1,..., y i,ni 1) jeżeli każda kolumna w β1,...,β i 1,,β i+1,...,β d, 0 β j < n j, j = 1, 2,..., i 1, i + 1,..., d, macierzy w jest równa zwiniętemu splotowi kolumny x β1,...,β i 1,,β i+1,...,β d = ( ) ni 1 x β1,...,β i 1,j,β i+1,...,β d i wektora y i. Złożoność obliczeniowa C (N) algorytmu obliczania wielowymiarowego splotu opartego na wzorze (2) wynosi j=0 O (N log N), N = n 1 n 2... n d w przypadku obliczania zwiniętego splotu algorytmem wykorzystującym FFT [Aho i inni, 2003]. W przypadku stosowania innych ww. algorytmów można jedynie stwierdzić, że C (N) = N d i=1 c (n i ) n i. gdzie c(n i ) oznacza koszt wyznaczenia zwiniętego splotu wektorów o n i współrzędnych. 6

4. Nowe algorytmy ewaluacji i interpolacji jednowymiarowej W prezentowanej rozprawie przedstawione zostały jawne wzory wektorowe opisujące transformacje wielomianu jednej zmiennej pomiędzy wybranymi bazami wielomianowymi przy założeniu, że co najmniej jedna z baz zależy od parami różnych punktów x i = αx i 1 + β, i = 1, 2,..., n 1, x 0 = γ, (3) gdzie stałe α 0, β, γ należą do ciała K mającego więcej niż n elementów. Rozważone zostały bazy Lagrange a, Newtona i potęgowa. Częściowe wyniki dotyczące baz Lagrange a i Newtona zostały opublikowane w [Smarzewski i Kapusta, 2007]. Badania z tego zakresu zostały zainspirowane szybkimi algorytmami obliczania transformacji Lagrange a-newtona oraz transformacji do niej odwrotnej, zaprezentowanymi w [Bostan i Schost, 2005]. W wymienionej pracy autorzy przedstawili szybkie algorytmy dla szczególnego przypadku, gdy β = 0 i γ = 1 lub α = 1. Wielomian p(x) należący do n - wymiarowej przestrzeni P n (K) wielomianów stopnia mniejszego od n nad ciałem K możemy zapisać w postaci: (a) Lagrange a (b) Newtona (c) potęgowej p(x) = p(x) = n 1 i=0 i 1 c i k=0 p(x) = n 1 i=0 n 1 y i k=0 k i x x k x i x k, y i = p(x i ), (4) (x x k ), c i = n 1 i j=0 4.1. Transformacja Newtona-Lagrange a i=0 Transformacja Newtona-Lagrange a b j, (5) i (x j x k ) k=0 k j a i x i, a i = p(i) (0). (6) i! N : (c i ) n 1 i=0 (y i) n 1 i=0, opisuje przejście od rozwinięcia wielomianu względem bazy Newtona (5) do rozwinięcia wielomianu względem bazy Lagrange a (4). W przypadku węzłów generowanych wzorami (3) prawdziwe jest następujące twierdzenie: 7

Twierdzenie 1. Jeżeli N : K n K n oznacza transformację 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 = γ), to N (c) = ( p 1 ) r, (7) r gdzie współrzędne wektorów p = (p j ) n 1 j=0 i r = (r j ) n 1 j=0 są zdefiniowane wzorami p j = c j [(α 1) γ + β] j j 1 j 1 α k k, r j = α ν. k=0 k=0 ν=0 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 (7) 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 (1) rząd tego algorytmu jest równy O(n log n). Poniższy algorytm prezentuje szczegóły szybkiego obliczania transformacji Newtona - Lagrange a ułatwiające jego implementacje i oszacowanie złożoności obliczeniowej. Algorytm 1. Transformacja Newtona-Lagrange a dla parami różnych węzłów x 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. r 4. Wykonaj mnożenie po współrzędnych y = y r. Analogiczne twierdzenia i algorytmy uzyskano w przypadku transformacji Lagrange a-newtona i transformacji Maclaurina - Lagrange a Szczegóły zamieszczono odpowiednio w podrozdziałach 4.2 i 4.4 prezentowanej rozprawy. 4.2. Analiza porównawcza algorytmów Proponowane w pracy algorytmy porównano ze znanymi algorytmami obliczania transformacji wielomianowych. Przykładowe zestawienie liczby wykonywanych opera- 8

cji arytmetycznych przez algorytmy obliczania transformacji Newtona - Lagrange a zostało zaprezentowane na Rysunku 1. Na rysunku została przedstawiona ilość operacji arytmetycznych dla Algorytmu 1, klasycznego algorytmu rzędu O (n 2 ) [Kincaid i Cheney, 2006] i algorytmu wykorzystującego FFT o złożoności obliczeniowej O ( n log 2 n ) [Bostan i Schost, 2005]. Ze względu na dużą różnicę pomiędzy liczbą operacji porównywanych algorytmów na wykresie zastosowano skalę logarytmiczną. Rysunek 1: Porównanie liczby operacji arytmetycznych wykonywanych przez algorytmy obliczania transformacji Newtona-Lagrange a dla punktów generowanych przez równanie rekurencyjne pierwszego rzędu Warto zwrócić uwagę, że wykonanie obliczeń dla n = 2 16 przy pomocy Algorytmu 1 zamiast algorytmu klasycznego, pozwala na zaoszczędzenie około 99, 6% operacji arytmetycznych. W porównaniu z algorytmem wykorzystującym FFT ta oszczędność wynosi około 95%. Podobne rezultaty uzyskuje się w przypadku pozostałych transformacji. 5. Interpolacyjne i ewaluacyjne transformacje wielowymiarowe 5.1. Sformułowanie problemu Niech n = (n 1, n 2,..., n d ) będzie wektorem dodatnich liczb całkowitych i niech Q n będzie siatką α = (α 1, α 2,..., α d ) ze współrzędnymi całkowitymi spełniającymi nierówność 0 α i < n i dla i = 1, 2,..., d. 9

Korzystając z notacji wielowskaźnikowej, definiuje się przestrzeń P d n = P d n (K) wszystkich wielomianów p (x) = α Q n a α x α (8) zmiennej x = (x 1, x 2,..., x d ) K d, ze współczynnikami a α = a α1,α 2,...,α d z ciała K. Wzór (8) przedstawia wielomian w reprezentacji potęgowej x α = x α 1 1 x α 2 2... x α d d. Zakładając, że parami różne punkty 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 (K), n = (n 1, n 2,..., n d ), można zdefiniować inne bazy wielomianowe, m. in. bazę Lagrange a i bazę Newtona L α (x) = B α (x) = d n i 1 i=1 j=0 j α i d α i 1 i=1 j=0 x i x i,j x i,αi x i,j, α = (α 1, α 2,..., α d ) Q n, (9) (x i x i,j ), α = (α 1, α 2,..., α d ) Q n. (10) Wiadomo, że wielomian interpolacyjny zdefiniowany przez następujące warunki interpolacji p (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ściami funkcji f : K d K, istnieje i jest określony jednoznacznie. Może on zostać zapisany w postaci Lagrange a lub Newtona p (x) = p (x) = α Q n f α L α (x) (11) α Q n c α B α (x), (12) gdzie L α (x) i B α (x) są wielomianami zdefiniowanymi odpowiednio wzorami (9) i (10). Ponadto współczynniki c α, występujące we wzorze (12), oznaczają wielowymiarowe ilorazy różnicowe zdefiniowane wzorami c α = f [x 1,0,..., x 1,α1 ;... ; x d,0,..., x d,αd ] = β clq α d α i i=1 j=0 f β, (13) (x i,βi x i,j ) j β i gdzie clq α = {β = (β 1, β 2,.., β d ) : 0 β i α i dla i = 1, 2,..., d}. 10

W pracy zostały zaprezentowane nowe, szybkie algorytmy obliczania wielowymiarowych transformacji z uwzględnieniem baz Lagrange a, Newtona i potęgowej w przypadku, gdy punkty x α = (x 1,α1, x 2,α2,..., x d,αd ), α Q n, są generowane przez następujące wzory rekurencyjne x i,j = λ i x i,j 1 + δ i, i = 1, 2,..., d, j = 1, 2,..., n i 1, (14) gdzie λ i 0, δ i i x i,0 = κ i (i = 1, 2,..., d) są stałymi z ciała K. Rząd tych algorytmów wynosi O (C (N)), gdzie N = n 1 n 2... n d i C (N) oznacza koszt obliczenia splotu d- wymiarowego. 5.2. Transformacja Lagrange a-newtona Transformacja Lagrange a-newtona L : (f α ) α Qn (c α ) α Qn. jest przekształceniem odwzorowującym macierz współczynników wielomianu wielu zmiennych zapisanego w bazie Lagrange a (9) w macierz współczynników rozwinięcia tego wielomianu względem bazy Newtona (10). Zakładając, że węzły interpolacyjne x α spełniają zależności rekurencyjne (14) oraz wykorzystując notację cząstkowego splotu hipermacierzowego, otrzymano metodę obliczania wielowymiarowych ilorazów różnicowych c = (c α ) α Qn w postaci następującego wzoru c = (... ((a 1 b 1 ) 2 b 2 ) 3 d b d ) /r, (15) w którym b i = (b i,0, b i,1,..., b i,ni 1), a = (a α ) α Qn i r = (r α ) α Qn są takie, że gdzie a β = f β, r β = u β s β, z β d d d u β = u i,βi, z β = z i,βi, s β = s i,βi, i=1 i=1 i=1 s i,j = (κ i (λ i 1) + δ i ) j, r i,j = s i,j u i,j, b i,j = ( 1)j u i,j, z i,j j 1 j 1 u i,j = λ k k i, z i,j = λ r i, i = 1, 2,.., d, j = 0, 1,..., n i 1. k=0 k=0 r=0 11

We wzorze (15) dzielenie macierzy wielowymiarowych jest zdefiniowane po współrzędnych. Złożoność obliczeniowa algorytmu obliczania transformacji Lagrange a-newtona opartego na wzorze (15) wynosi C (N) + O (dn), gdzie C (N) oznacza koszt obliczenia splotu wielowymiarowego (2) oraz N = n 1 n 2... n d oznacza ilość punktów tego przekształcenia. Podobne rezultaty uzyskano dla wielowymiarowych transformacji Newtona-Lagrange a i Maclaurina-Lagrange a. Szczegóły zostały przedstawione w rozdziale 5 prezentowanej rozprawy. 6. Hierarchiczne dzielenie sekretu Podział sekretu 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ć. 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 [Chang i inni, 2004; Feng i inni, 2005; Ghodosi i inni, 1998]. Interesujące hierarchiczne modele dzielenia sekretu uzyskuje się poprzez zastosowanie interpolacji Hermite a [Smarzewski i Kapusta, 2005] oraz Hermite a-birkoffa [Tassa, 2007]. Poza szczególnymi przypadkami opisanymi w [Kapusta i Smarzewski, 2006], [Kapusta i Smarzewski, 2007a] i [Aho i inni, 1975] nie są znane szybkie algorytmy zmiany bazy dla interpolacji Hermite a. Z drugiej strony, klasyczne algorytmy o złożoności kwadratowej wydają się być w wielu przypadkach wystarczające w schematach bazujących na interpolacji Hermite a, gdyż odpowiednia organizacja obliczeń [Smarzewski i Kapusta, 2005] i niezbyt duże rozmiary rozważanych zadań redukują do minimum zyski z ewentualnego przyśpieszenia algorytmów. We wprowadzonym w pracy [Smarzewski i Kapusta, 2005] hierarchicznym modelu podziału sekretu z losowo wybranym sekretem s = a 0 K, dealer (zaufany podmiot dzielący sekret) wybiera losowo niekoniecznie parami różne argumenty x 0, x 1,, x n 1 K\0 i współczynniki a 1, a 2,, a m 1 wielomianu p (x) = m 1 k=0 a k x k, m n. Następnie, wykorzystując uogólniony schemat Hornera, oblicza transformacje Maclau- 12

rina-lagrange a M H : (a i ) n 1 i=0 (y i ) n 1 i=0, w której i y i = p(ki) (x i ), i = 0, 1,..., n 1, k i! k i = max {k : x i k = x i } jest lewostronną krotnością węzła x i. Przy tych oznaczeniach n uczestników podziału sekretu otrzymuje udziały zdefiniowane w postaci trójek U i = (k i, x i, y i ), i = 0, 1,, n 1. Do odtworzenia sekretu s = a 0 = p (0), combiner (zaufany podmiot, który w imieniu grupy uczestników odzyskuje sekret) musi otrzymać r udziałów U ij = ( k ij, x ij, y ij ), j = 0, 1,, r 1, gdzie m r n oraz 0 i 0 < i 1 < < i r 1 < n. Ponadto udziały te muszą spełniać warunki p (k i) (x i ) = k i!y i, i = 0, 1,, r 1, typowe dla interpolacji typu Hermite a, tzn. musi być k i0 = 0 oraz i j 1 = i j 1, i j 2 = i j 2,..., i j kij = i j k ij w przypadku gdy k ij > 0. Z tego względu proponowany podział sekretu jest hierarchiczny, gdyż posiadacz udziału U ij = (k ij, x ij, y ij ) (j > 0) nie może partycypować w odtworzeniu sekretu, o ile nie zrobią tego jego kolejni zwierzchnicy, posiadający udziały U 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 1 są równe odpowiednio indeksom 0, 1,..., r 1. Odtworzenie sekretu s = p (0) wymaga wówczas obliczenia uogólnionych ilorazów różnicowych (z k ) r 1 k=0 w rozwinięciu p (x) = z 0 + z 1 (x x 0 ) + + z r 1 (x x 0 ) (x x r 2 ). Uogólnione ilorazy różnicowe z k = p [x 0, x 1,, x k ], k = 0, 1,, r 1, są zdefiniowane następującymi wzorami rekurencyjnymi { yi+k ki, gdy x i = x i+k, p [x 0, x 1,, x 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, gdy x i x i+k, 13

w których 0 i, i + k < r. Oczywiście, musi być z k = 0, k = m, m + 1,, r 1. Ostatnie identyczności mogą być wykorzystywane do weryfikacji udziałów, czyli do sprawdzenia, czy wśród otrzymanych udziałów U 0, U 1,, U r 1 nie ma udziałów niedopuszczalnych tzn. takich, w których trzecia współrzędna nie należy do zbioru wartości wielomianu w (x) lub jego pochodnych. 7. Model głosowania elektronicznego W proponowanym modelu głosowania elektronicznego głosowanie odbywa się w czterech etapach: I. Inicjalizacja - przygotowanie systemu. II. Głosowanie - oddanie głosów. III. Weryfikacja - odrzucenie głosów, które zostały oddane przez jednostki nieuprawione do głosowania. IV. Zliczenie głosów i publikacja wyników. Rysunek 2: Model głosowania elektronicznego Uczestnikami schematu są głosujący G i, i = 0, 1,..., n 1, komisja wyborcza oraz dwa zaufane podmioty: T A - odpowiedzialny za przygotowanie głosowania i T C - odpowiedzialny za zliczenie głosów i publikację wyników. W modelu zakłada się, że każda z jednostek uprawnionych jest niezależna i nie kooperuje z inną poza czynnościami wynikającymi z ich uprawnień. Etap I - Inicjalizacja Zaufana jednostka T A przygotowuje listę upoważnionych do głosowania i dostarcza certyfikaty upoważniające do głosowania poszczególnym głosującym oraz komisji, po 14

uprzednim potwierdzeniu uprawnień. Przesłanie certyfikatów głosującym odbywa się przy pomocy zaufanego mieszacza tak, jak w protokole wyborczym zaproponowanym 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ów komisji, bez których przeprowadzenie głosowania nie jest możliwe. Członkom komisji przekazuje certyfikaty dobrane w taki sposób, aby wszyscy byli zobowiązani do uczestnictwa w procesie weryfikacji certyfikatów głosów. Dla uproszczenia rozważań poniżej przyjmuje się założenie, że w modelu wykorzystywane są jednowymiarowe transformacje wielomianowe względem baz Newtona i Lagrange a oraz, ż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 ustala liczbę głosujących n. Przewodniczący otrzymuje certyfikat postaci U B = ( x a, p (0) (x a ), p (1) (x a ),..., p (m 1) (x a ) ), natomiast administrator U 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łosowania U 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 oraz n < min{m, r m + 1}. Ostatnie założenie gwarantuje, że ani administrator ani przewodniczący nie może samodzielnie przeprowadzić podliczenia głosów oraz, że koalicja któregokolwiek z nich 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 1 do obliczenia udziałów poszczególnych głosujących. Po obliczeniu certyfikatów T A może w sposób losowy wybrać certyfikaty, które zostaną przekazane gł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ącym funkcję szyfrującą E C, którą tylko on potrafi deszyfrować. Funkcja ta ma na celu zapewnienie anonimowości głosów i będzie wykorzystywana przez głosujących w momencie przesyłania głosów. 15

Etap II - Głosowanie Podczas 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 jest potwierdzeniem autentyczność przesłanego głosu, zwanym dowodem głosu. Następnie wiadomość g i jest szyfrowana algorytmem znanym administratorowi A, w celu zapewnienia bezpieczeństwa wiadomości na drodze komunikacji pomiędzy głosującym a administratorem. Administrator zbiera wszystkie głosy. Etap III - Weryfikacja Administrator wspólnie z przewodniczącym inicjalizuje proces weryfikacji certyfikatów - głosy, które mają niepoprawny certyfikat, są odrzucane. Proces weryfikacji głosowania z wykorzystaniem jednowymiarowej transformacji Lagrange a-newtona rozpoczynają oni od utworzenia wektora zmodyfikowanych ilorazów różnicowych b = (b 0, b 1,..., b r ), b k = p(r k) (x a ) (r k)!. Następnie stosują algorytm 2 w celu wskazania każdego certyfikowanego głosu. Oczywiście, głosy ważne to te, dla których algorytm 2 wygeneruje b 0 = 0. Algorytm 2. 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ów Lista identyfikatorów x i oraz odpowiadających im szyfrogramów E C (v i ) głosów ważnych i dowodów głosów proof vi jest przekazywana zliczającemu T C, który sprawdza poprawność 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 ich głosy zostały poprawnie policzone. Warto podkreślić, że dowód głosu nie ujawnia wyboru głosującego. Stanowi on potwierdzenie - tylko dla głosującego, poprawnego odczytania jego głosu przez jednostkę 16

T C. W końcu administrator T A sprawdza, czy lista jego wartości x i zawiera wszystkie opublikowane wartości identyfikatorów x i. 8. Protokół transmisji rozgłoszeniowej w oparciu o hierarchiczny schemat dzielenia sekretu W pracy został podany ogólny model transmisji rozgłoszeniowej wykorzystujący hierarchiczny schemat dzielenia sekretu. Rozważany system transmisji rozgłoszeniowej jest w zasadzie schematem dzielenia sekretu, w którym nieco inaczej ustalono reguły postępowania dealera i uczestników podziału sekretu, a także zwiększono bezpieczeństwo systemu poprzez prowadzenie funkcji szyfrującej e : K K. Opis systemu transmisji rozgłoszeniowej podzielony został na dwie części. Pierwsza z nich omawia etap inicjalizacji systemu, polegający na wygenerowaniu przez jednostkę GC kluczy prywatnych użytkowników. Część druga dotyczy właściwego etapu transmisji rozgłoszeniowej. Omawia ona generowanie bloku aktywującego oraz podaje algorytm odtworzenia klucza sesyjnego S na podstawie tego bloku i klucza prywatnego użytkownika K U. I. Inicjalizacja systemu Jednostka GC wybiera w sposób losowy wielomian m p (x) = a k x k, a k K, k=0 stopnia 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ć punkty x i tak, aby spełniały równanie rekurencyjne pierwszego rzędu, co pozwala na zastosowanie efektywnego algorytmu obliczania transformacji Maclaurina-Lagrange a proponowanego w pracy i w konsekwencji na redukcję kosztu obliczenia kluczy prywatnych użytkowników. II. Cykl transmisji rozgłoszeniowej Pojedynczy cykl transmisji rozgłoszeniowej jednostka GC rozpoczyna od przygotowania bloku aktywującego T dla wybranego przez nią klucza sesyjnego S. W tym celu 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ła część to klucze prywatne K ji = (x ji, y ji ), y ji = p(x ji ), i = v, v + 1,..., m 1, (16) 17

użytkowników wykluczanych tzn. takich, którzy w bieżącym cyklu nie będą mogli obliczyć klucza sesyjnego S na podstawie bloku aktywującego T. W sytuacji, gdy stosuje się hierarchiczny model dzielenia sekretu, klucze prywatne nieskojarzone z żadnym odbiorcą mogą składać się z wartości wielomianu i jego kolejnych pochodnych np. w jednym punkcie. Bez zmniejszenia ogólności rozważań można założyć, że te klucze są postaci: K ji = (i, x i, y i ), i = 0, 1,..., v 1, gdzie 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 przygotowany 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 )], gdzie r K\{0} wybrano w sposób losowy. Następnie GC rozgłasza blok aktywujący T oraz kryptogram E (S, M). Użytkownik odtwarza komunikat M z kryptogramu E (S, M) przy pomocy klucza sesyjnego S, który oblicza na podstawie bloku aktywującego T i swojego klucza prywatnego. Kluczem sesyjnym może być dowolny klucz wielomianowy, tzn. można przyjąć S = e(ra i0 )e(ra i1 ) e(ra it ), 0 i 0 < i 1 <... < i t m. W celu odtworzenia wielomianowego klucza sesyjnego S można korzystać ze wzoru e (ra i ) = e r m d i k 1 z k (x x i! dx i j ) (17) k=i j=0 x=0 otrzymanego przez i-krotne zróżniczkowanie wzoru interpolacyjnego Hermite a w postaci Newtona m p(x) = k 1 z k k=0 j=0 (x x j ), z k = p[x 0, x 1,..., x k ]. Odtworzenie klucza S = e(ra i0 )e(ra i1 )... e(ra it ) ze wzoru (17) przy założeniach, że dysponuje się jedynie blokiem aktywującym T i kluczem prywatnym użytkownika K U = (x m, p (x m )) i, że nie jest możliwe znalezienie funkcji odwrotnej do e, jest zadaniem ekstremalnie trudnym, a nawet niewykonalnym w klasie dopuszczalnych funkcji e. 18

Z drugiej strony jest jasne, że może to być wykonalne w przypadku, gdy prawą stronę wzoru (17) da się zapisać w postaci funkcji o 2m v + 4 zmiennych wymienionych w bloku T i kluczu K U, dla której istnieją efektywne algorytmy obliczania jej wartości. Szczegóły dotyczące odtworzenia klucza przy założeniu, że funkcja e spełnia warunki e(x + y) = e(x)e(y) i e(xy) = e(x) y zostały omówione w podrozdziale 8.2 prezentowanej pracy. 9. Podsumowanie W pracy przedstawiono jednowymiarowe oraz d-wymiarowe transformacje wielomianowe z uwzględnieniem baz: Lagrange a, Newtona i potęgowej. Podano nowe, szybkie algorytmy obliczania tych transformacji oraz transformacji do nich odwrotnych dla specjalnych konfiguracji punktów, tzn. punktów, których współrzędne spełniają równania rekurencyjne pierwszego rzędu. Wybrany zbiór punktów rozszerza klasę 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ów z jedności wykorzystywany w algorytmie FFT. Główną cechą proponowanych w pracy algorytmów jest rozdzielenie obliczeń na dwa etapy. Pierwszy z nich to wykonanie obliczeń wstępnych, tj. wyznaczenie wektorów pomocniczych. Drugi etap, bardziej kosztowny ze względu na liczbę wykonywanych operacji arytmetycznych, to obliczenie d-wymiarowego splotu. Stąd złożoność obliczeniowa algorytmu wyznaczenia wielowymiarowej transformacji wielomianowej jest tego samego rzędu, co złożoność obliczeniowa algorytmu obliczenia splotu wielowymiarowego. Efektywne algorytmy obliczenia transformacji wielomianowych wymagają założenia, że dziedziną rozważanych wielomianów są ciała zawierające pierwiastek pierwotny z jedności odpowiedniego stopnia. Efektywność wspomnianych algorytmów jest tym większa, im większy jest stopień wielomianów. Na przykład, porównując zaproponowany w pracy algorytm obliczania jednowymiarowej transformacji Newtona - Lagrange a z klasycznym algorytmem obliczania tej transformacji uzyskuje się oszczędność operacji przekraczającą 99% dla stopnia wielomianu równego 2 16. Dla tego samego stopnia wielomianu oszczędność - przy porównaniu z algorytmem wykorzystującym FFT, przekracza 95%. Między innymi z tego względu takie algorytmy mogą być z powodzeniem stosowane w dzieleniu sekretu, głosowaniu elektronicznym, czy transmisji rozgłoszeniowej, w których wykorzystuje się wielomiany wysokiego stopnia. 19

Przedstawiony w pracy schemat dzielenia sekretu umożliwia współdzielenie sekretu przez grupę uczestników o ustalonej hierarchii. Wykorzystuje on algorytmy transformacji wielomianowych zarówno podczas obliczania udziałów dla poszczególnych uczestników, jak i przy odzyskiwaniu sekretu. Jest również punktem wyjścia dla dwóch innych omówionych w pracy zastosowań transformacji wielomianowych, jakimi są modele głosowań elektronicznych i transmisji rozgłoszeniowej. Zaprezentowany bezpieczny model głosowania elektronicznego cechuje rozproszenie odpowiedzialności pomię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 przeprowadzania głosowań za pośrednictwem internetu, maszyn do głosowania, czy innych urządzeń umożliwiających przesyłanie zaszyfrowanych wiadomości. Kolejnym zastosowaniem transformacji wielomianowych wymienionym w pracy jest zaprezentowany ogólny protokół transmisji rozgłoszeniowej, w którym stosuje się jednokierunkową funkcję spełniającą określone warunki. Prezentowane w pracy algorytmy transformacji wielomianowych służą poprawieniu wydajności protokołów tego typu. Omówiony ogólny model pozwala na przesłanie klucza grupie użytkowników za pośrednictwem kanału rozgłoszeniowego oraz wykluczanie z systemu użytkowników bez konieczności uaktualniania kluczy prywatnych pozostałych użytkowników systemu. Pomimo tego, że niniejsza rozprawa skupia się na zastosowaniach algorytmów transformacji wielomianowych w problemach o podłożu kryptograficznym, to należy podkreślić, że znajdują one również zastosowania w wielu innych zagadnieniach współczesnej informatyki i matematyki obliczeniowej. Literatura Aho, 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 fixed sets of points. SIAM Journal on Computing, 4 (4), 533 539. Bini, D. i Pan, V. (1994). Polynomial and matrix computation 1. Boston: Birkhäuser. Borwein, J. M. i Borwein, P. B. (1987). Pi and the AGM: A study in analytic number theory and computational complexity. New York: John Wiley and Sons. Bostan, A. i Schost, E. (2005). Polynomial evaluation and interpolation on special sets of points. Journal of Complexity, 21 (4), 420 446. 20

Chang, C., Lin, C., Lee, W., i Hwang, P. (2004). Secret sharing with access structures in a hierarchy. Proceedings of the 18th International Conference on Advanced Information Networking and Applications, 2, 31 34. 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 calculation of complex Fourier series. Mathematics of Computation, 19 (90), 297 301. Feng, J., Wu, H., Tsai, C., i Chu, Y. (2005). A new multi-secret images sharing scheme using Largrange s interpolation. The Journal of Systems and Software, 76 (3), 327 339. Fujioka, A., Okamoto, T., i Ohta, K. (1993). A practical secret voting scheme for large 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. Ghodosi, H., Pieprzyk, J., i Safavi-Naini, R. (1998). Secret sharing in multilevel and compartmented groups. Lecture Notes in Computer Science, 1438, 367 378. Hołubiec, J. i Mercik, J. W. (2006). Techniki i tajniki głosowania. Warszawa: EXIT. Kacprzyk, J. i Zadrożny, S. (2005). Towards a synergistic combination of Web-based and data-driven decision support systems via linguistic data summaries. Advances in Web Intelligence. Lecture Notes in Computer Science, 3528, 211 217. Kacprzyk, J. i Zadrożny, S. (2010). Soft computing and Web intelligence for supporting consensus reaching. Soft Computing - A Fusion of Foundations, Methodologies and Applications, 14 (8), 833 846. Kapusta, J. i Smarzewski, R. (2006). Fast Hermite interpolating polynomial algorithm for a special configuration of knots. Academic Research, 19 (3), 67 74. Kapusta, J. i Smarzewski, R. (2007a). Fast algorithms for polynomial evaluation and differentiation at special knots. Annales UMCS Informatica AI, VI, 65 102. Kapusta, J. i Smarzewski, R. (2007b). Fast bivariate interpolating algorithms for special configurations of knots. Proceedings of the 3d International Conference Computational Methods in Applied Mathematics: CMAM-3, 84 91. Kapusta, J. i Smarzewski, R. (2009). Algorithms for fast multivariate polynomial interpolation and evaluation. Journal of Complexity, 25 (4), 332 338. Kincaid, D. i Cheney, W. (2006). Analiza numeryczna. Warszawa: Wydawnictwo 21

Naukowo-Techniczne. Knuth, D. E. (2002). Sztuka Programowania. Algorytmy Seminumeryczne. Wydawnictwo Naukowo-Techniczne. Tytuł oryginału: The Art of Computer Programming. Seminumerical Algorithms. 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 sharing schemes of Shamir type. Annales UMCS Informatica AI, III, 65 91. Smarzewski, R. i Kapusta, J. (2007). Fast Lagrange-Newton transformations. Journal of Complexity, 23 (3), 336 345. Tassa, T. (2007). Hierarchical threshold secret sharing. Journal of Cryptology, 20 (2), 237 264. Zwierko, A. i Kotulski, Z. (2007). A light-weight e-voting system with distributed trust. Electronic Notes in Theoretical Computer Science, 168, 109 126. 22