Transakcje finansowe przy użyciu elektronicznej gotówki

19.01.2011 - Sebastian Bala, Tomasz Wasilczyk
TrudnośćTrudnośćTrudność

Alicja prosi Bank o wydanie banknotu cyfrowego

Bank piszemy z dużej litery, aby podkreślić, że jest on takim samym uczestnikiem protokołu jak Alicja czy Bob. Alicja posiada rachunek oszczędnościowy w Banku. Chcąc poszaleć podczas przedświątecznych zakupów, tak aby jej mąż bankowiec nigdy nie miał możliwości dowiedzieć się na co wydała pieniądze, Alicja zamienia trochę zaoszczędzonych złotówek na pieniądz cyfro­wy.

Alicja zgłasza najpierw w Banku swoją chęć otrzymania banknotu cyfrowego na kwotę $ y $. Bank przygotowuje dla niej unikalny identyfikator $ ID_A $ (jest to odpowiednio długi ciąg bi­tów). Alicja sporządza 100 różnych dokumentów $ D_j $, zawierający kolejno:

  1. nazwę Banku,
  2. losowy identyfikator banknotu $ x $,
  3. kwotę $ y $,
  4. 100 par postaci $ (h(R_{i,j}), h(ID_A \oplus R_{i,j})) $, dla $ i=1,2,\ldots,100 $, gdzie $ R_{i,j} $ to długi ciąg bitów (np. 128), wylosowany przez Alicję poczas przygotowywania banknotu i zachowany przez nią w sekrecie. Dla każdego ze stu banknotów przygotowujemy inny zestaw stu różnych liczb losowych. Zatem w całym procesie losujemy łącznie $ 10000 $ ciągów $ R_{i,j} $.

Po przygotowaniu banknotu, Alicja musi zapamiętać wszystkie dokumenty $ D_j $ oraz powiązane z nimi ciągi losowe $ R_{i,j}. $ Najlepiej jeśli dane zostaną zaszyfrowane i zapisane w odpowiednio chronionej pamięci. Alicja skrupulatnie pakuje wszystkie dokumenty, każdy do innej koperty, otrzymując $ K(c_i,D_i) $. Wysyła je do Banku. Bank losuje jedną spośród liczb od 1 do 100, nazwijmy ją $ p $. Prosi Alicję o ujawnienie zawartości wszystkich kopert oprócz koperty $ p $. Alicja wysyła wtedy do Banku pary $ (c_j,D_j) $ dla $ j\neq p $ oraz ciągi losowe $ R_{i,j} $ wraz z przypisaniem ich do banknotów. Bank weryfikuje poprawność ujawnianych banknotów cyfrowych. Jeśli wery­fikacja choć jednej pary zakończyła się niepowodzeniem, Bank prosi Alicję o powtórzenie procedury. Po kilku powtórze­niach, jeśli wery­fikacja za każdym razem nie została zakończona pomyślnie, Bank składa donie­sienie na proku­raturze o próbie oszustwa. W przeciwnym przy­padku, gdy weryfikacja kończy się pomyślnie, tzn. przesłane banknoty $ D_j $ zostały sporządzone zgodnie z protokołem, bank podpisuje $ K(c,D_p) $. Alicja jest teraz w posia­daniu $ K^B(c_p,D_p) $. Ponieważ Alicja potrafi otworzyć kopertę, może używać pary $ (D_p,D^B_p) $, któ­ra jest banknotem cyfrowym na kwotę $ y $.

Zauważmy, że Alicja może oszukać Bank, ale jedynie z prawdopodobieństwem $ \frac{1}{100} $. Przynajmniej taka jest rozpowszechniona opinia o przedstawionym schemacie.

Drugi autor tego artykułu wpadł na pomysł jak w prosty sposób zwiększyć prawdopodobieństwo oszukania Banku. Alicja musi namówić 128 osób do założenia sobie konta w Banku. Płaci im niedużą kwotę $ y $, którą wpłacą na nowo założony rachunek. Wszyscy powinni zgłosić zapotrze­bowanie na banknot cyfrowy. Następnie podczas przygotowywania banknotu, każdy przygotowu­je uczciwie 99 kopii banknotu na kwotę $ y $ i jeden na 128 milionów złotych. Jeśli Bank nie odkryje przynajmniej jednego oszustwa, szczęściarz lub szczęściarze dzielą wyłudzoną kwotę pomiędzy siebie.

Prawdopodobieństwo, że Bank nie odkryje jednego z fałszywych cyfrowych banknotów wynosi w przybliżeniu $ \frac{73}{100} $. Jak widać, system bankowy zarówno nie powinien mieć opcji wystawiania ban­knotów o dowolnie dużych nominałach, jaki i liczba 100 nie jest odpowiednia do fazy weryfi­kacji. W przeciwnym przypadku wszyscy gracze lotto ruszą do Banku w grupach 128 osobowych, Bank niechybnie zbankrutuje, a prokurator będzie mieć pełne ręce roboty. Powyższy sposób oszuka­nia Banku nazwijmy atakiem 128.

5
Twoja ocena: Brak Ocena: 5 (2 ocen)

Copyright © 2008-2010 Wrocławski Portal Informatyczny

design: rafalpolito.com