10.03.2015 Views

Odporność na błędy bizantyjskie w systemach peer-to-peer - Instytut ...

Odporność na błędy bizantyjskie w systemach peer-to-peer - Instytut ...

Odporność na błędy bizantyjskie w systemach peer-to-peer - Instytut ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

50 Rozdział 3. Bezpieczne <strong>bizantyjskie</strong> uzgadnianie<br />

Ogólnie kryp<strong>to</strong>system progowy k z n oz<strong>na</strong>czony (k, n), jest <strong>to</strong> taki schemat<br />

kryp<strong>to</strong>graficzny, w którym do prawidłowego przeprowadzenia operacji wymagane<br />

jest t ≥ k uczestników.<br />

Istnieją różne typy kryp<strong>to</strong>systemów progowych, np. takie które uwzględniają<br />

wagę uczestników, schematy te <strong>na</strong>zywają się ważonymi kryp<strong>to</strong>systemami<br />

progowymi. Algorytm SC-ABC używa trzech schematów progowych: współdzielonego<br />

sekretu, progowego podrzucania monetą (ang. treshold common coin<br />

<strong>to</strong>ssing) oraz progowych podpisów cyfrowych (ang. treshold sig<strong>na</strong>tures).<br />

Współdzielone podrzucanie monetą. Odwzorowanie „podrzucania monetą”<br />

oz<strong>na</strong>czamy przez F : {0, 1} ∗ −→ {0, 1}. Jest <strong>to</strong> takie przekształcenie, które<br />

dowolny ciąg bi<strong>to</strong>wy odwzorowuje <strong>na</strong> 0 lub 1. Progowe podrzucanie monetą<br />

(n, k) polega <strong>na</strong> tym, że przy<strong>na</strong>jmniej k uczestników musi kooperować w celu<br />

określenia zwracanej war<strong>to</strong>ści przez odwzorowanie F . Wejściowy ciąg z<strong>na</strong>ków<br />

jest ciągiem decyzji, który może być losowy, dlatego wynik działania F nie jest<br />

deterministyczny.<br />

Progowe podpisy cyfrowe. Algorytmy szyfrowania z kluczem publicznym zakładają<br />

istnienie pary kluczy: klucza prywatnego oraz klucza publicznego posiadanego<br />

przez każdego z uczestników komunikacji [RSA77, MVO96]. Klucz<br />

prywatny służy do odszyfrowywania wiadomości wcześniej zaszyfrowanej kluczem<br />

publicznym. Klucz publiczny jest jawny. Podpis wykonuje się kluczem<br />

prywatnym, <strong>na</strong><strong>to</strong>miast jego weryfikacja odbywa się za pomocą klucza publicznego<br />

(tzw. klucza weryfikującego). W schemacie (n, k, t) podpisu progowego,<br />

klucz publiczny jest jeden <strong>na</strong><strong>to</strong>miast klucz prywatny rozdzielony jest <strong>na</strong> n udziałów.<br />

Do wygenerowania poprawnego podpisu wiadomości m, potrzeba t ≥ k<br />

uczestników podpisujących tę samą wiadomość m, tak by podpis był weryfikowalny.<br />

Kryp<strong>to</strong>systemy progowe świetnie <strong>na</strong>dają się do zas<strong>to</strong>sowania przy głosowaniach,<br />

gdyż u podstawy ich konstrukcji zakłada się istnienie większości, koniecznej<br />

do poprawnego działania. Główny problem, który pojawia się podczas<br />

s<strong>to</strong>sowania kryp<strong>to</strong>grafii progowej ujawnia się, gdy grupa uczestnicząca w określonym<br />

pro<strong>to</strong>kole zmienia skład.<br />

3.4.2 S<strong>to</strong>s pro<strong>to</strong>kołów SC-ABC<br />

Opis algorytmu zaczniemy od <strong>na</strong>jniższej warstwy dotyczących funkcji rozgłaszania.<br />

Częs<strong>to</strong> wykorzystywanym mechanizmem komunikacji między współpracującymi<br />

procesami jest niezawodne rozgłaszanie (ang. Reliable Broadcast).<br />

Gwarantuje ono, że komunikat zostanie dostarczony do wszystkich uczestników

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

Saved successfully!

Ooh no, something went wrong!