Główną trudnością podczas realizacji protokołów do obsługi płatności przez Internet jest to, że klient pozostaje praktycznie niewidoczny dla sprzedawcy -- transakcja odbywa się bez udziału człowieka po stronie sklepu, więc nieuczciwy klient może mieć poczucie bezkarności, szczególnie gdy znajduje się po drugiej stronie oceanu. Oczywiście konieczne w takiej sytuacji jest wprowadzenie uwierzytelniania, podpisywania i szyfrowania. Nie można jednak zapominać o kosztach takich operacji -- by móc dokonywać potrzebnych obliczeń na dużą skalę i w krótkim czasie potrzebny jest silny komputer, który jest drogi. Można oszacować koszt jednostki czasu zużytego na obliczenia, zatem zysk sklepu należy pomniejszyć o koszt obliczeń związanych z zabezpieczeniem transakcji. Informatyczne pojęcie złożoności czasowej i pamięciowej można więc przełożyć na koszt finasowy ponoszony przez strony dokonujące transakcji. Protokoły wymagające mniej złożonych czasowo i pamięciowo algorytmów nie wymagają dużych i szybkich komputerów. Mikropłatności polegają na przekazywaniu niewielkich kwot, zatem konieczność pomniejszania ich o koszt obliczeń zabezpieczających transakcję może poważnie obniżyć opłacalność takich usług.
Do tego typu operacji potrzebne są protokoły korzystające z algorytmów o jak najmniejszej złożoności. Koszt protokołu należy szacować uwzględniając nie tylko złożoność algorytmów używanych na poszczególnych etapach protokołu. Istotne jest też to ile razy są one wykonywane. Projektując protokół mikropłatności należy wziąć pod uwagę etapy z jakich składa sie transakcja. Posiada ona wyróżniony początek, następnie dokonuje się wielu mikropłatności, po których następuje wyróżnione zakończenie. Ta z pozoru oczywista budowa protokołu umożliwia opracowywanie wydajnych protokołów. Ponieważ mikropłatności może być bardzo wiele, najkosztowniejsze operacje, od których zależą właściwości protokołu, powinny być wykonane na początku i na końcu całej transakcji.
W ciągu ostatnich lat zaproponowano kilka protokołów mikropłatności elektronicznych, wymienić należy Milicent, Micro-Mint, Payword oraz schemat prostych płatności Wenbo Mao. Jednak tylko ostatni z nich zapewnia anonimowość. W rzeczywistości istnienie takich systemów jest regulowane lokalnym prawem. Z tego powodu istnienie globalnego sytemu mikropłatności wymagać będzie międzynarodowych regulacji prawnych.
Celem pracy była implementacja zestawu bibliotek umożliwiających dokonywanie anonimowych mikropłatności w Internecie. W pracy przedstawiłem protokół anonimowych mikropłatności Wenbo Mao oraz algorytmy będące elementami składowymi tego protokołu. Następnie zaprojektowałem i zrealizowałem zestaw funkcji potrzebnych do realizacji tego protokołu oraz prostą aplikację wykonującą te mikropłatności. Przy opisach poszczególnych algorytmów przedstawiłem wyniki testów mierzących czas realizacji tych operacji. Projekt został wykonany w języku funkcyjnym Ocaml w środowisku Linux dla procesorów 32 bitowych. Realizacja projektu w formie umożliwiającej jej bezpośrednie wykorzystanie była utrudniona przez fakt, iż w trakcie pisania pracy powstawało w Polsce prawo regulujące zasady składania podpisów elektronicznych. Przeprowadzone testy wykazały, że język funkcyjny Ocaml posiada wystarczające wsparcie w postaci bibliotek i kompilatora umożliwiające tworzenie oprogramowania, w którym krytyczne znaczenie ma wydajność.
W rozdziale 2 scharakteryzowałem szczegółowo problemy związane z dokonywaniem mikropłatności i decyzje jakie musiałem podjąć przystępując do realizacji projektu. W rozdziale 3 przedstawiłem schemat zaproponowany przez Wenbo Mao wraz z małą modyfikacją polegającą na usunięciu drobnego błędu. Z kolei w rozdziale 4 przedstawiam protokoły podpisów cyfrowych Schnorra i częściowo ślepych podpisów -- są one wykorzystywane na wielu etapach działania protokołu Wenbo Mao. W następnym 5 rozdziale omówiłem podstawowe problemy z jakimi zetknąłem się podczas realizacji systemu i ich rozwiązania. Przedstawiłem algorytmy, które zostały zastosowane w pracy i inne jakie można ewentualnie wykorzystać. Uzasadniłem dokonany wybór, a ponadto zmierzyłem wydajność zrealizowanych algorytmów. W kolejnym 4 rozdziale opisałem problematykę związaną z podpisami cyfrowymi, które są ważną częścią protokołu anonimowych mikropłatności Wenbo Mao oraz przedstawiłem kilka protokołów podpisów cyfrowych w tym te, wykorzystane w realizacji projektu. W nastepnym rozdziale przedstawiam biblioteki służące do realizacji protokołu. W dodatku A w skrucie przybliżam problematyke zwiazaną z regulacjami prawnymi dodtyczącymi podpisu elektronicznego. Z kolei w dodatku C przedstawiam schemat budowy protokołów do obliczeń na niewiarygodnych serwerach oraz pokazuję jak można wykonywać szyfrowanie RSA na takim niewiarygodnym serwerze. W ostatnim D dodatku przedstawiam interfejs najważniejszych bibliotek zaimplementowanych przeze mnie.