Ocena nie jest w tej chwili aktywna.
Ocena Zajęć
Ocena zajęć ma na celu zebranie informacji na temat zajęć prowadzonych w Instytucie Informatyki UWr. Po uzyskaniu kluczy należy je zapisać w bezpiecznym miejscu, ponieważ można je uzyskać tylko raz. Mając klucze przechodzimy do wypełnienia ankiet, które jest anonimowe, co pozwala na całkowitą szczerość. Udział nagradzany jest 24 godzinnym bonusem do otwarcia zapisów w kolejnym roku akademickim.
Anonimowość zapewniona jest dzięki protokołowi ślepych podpisów. Klucze można pobrać w serwisie po zalogowaniu lub używając przykładowego klienta. W komentarzach zawarte są szczegóły implementacyjne.
Cały proces jest przeprowadzony w następujący sposób:
Kroki przeprowadzone są dla wszystkich dostępnych dla studenta ankiet.
- Przygotowanie
-
Serwer posiada dla każdej ankiety klucze RSA:
- \((e, n)\) — klucz publiczny ankiety,
- \((d, n)\) — klucz prywatny ankiety.
- Tworzenie kart
-
Student wybiera liczby \(m\) i \(k\) mniejsze od \(n\):
- \(m\) — karta,
- \(k\) — koperta.
- Zaślepianie
- Wylosowane karty wkładamy do kopert: \[\tilde{m} \coloneqq \text{sha256}^\ast(m) \text{,}\] \[t \coloneqq \tilde{m} \cdot {k}^{e} \bmod n \text{,}\] gdzie \(\text{sha256}^\ast(x)\) to funkcja \(\text{sha256}\) hashująca reprezentację dziesiętną liczby \(x\) w ASCII, bez wiodących zer.
- Podpisanie
- Karta w kopercie jest wysłana do podpisu. Pomimo że serwer wie od kogo dostał kopertę (i weryfikuje, że jest to osoba uprawniona do wzięcia udziału w odpowiedniej ankiecie), to nie zna karty \(m\). Podpisuje wykonując następującą operację: \[s \coloneqq {t}^{d} \bmod n \text{.}\] Tak podpisane dane są odsyłane do studenta.
- Odślepianie
- Wiedząc, że: \[s = {t}^{d} = (\tilde{m} \cdot {k}^{e})^{d} = {\tilde{m}}^{d} \cdot {k}^{e \cdot d} = {\tilde{m}}^{d} \cdot k \pmod {n} \text{,}\] obliczamy z użyciem rozszerzonego algorytmu Euklidesa: \[ \dfrac{ s }{ k } = \dfrac{ {\tilde{m}}^{d} \cdot k }{ k } = {\tilde{m}}^{d} \cdot k \cdot {k}^{-1} = {\tilde{m}}^{d} \pmod {n} \text{.}\] Wyjmujemy karty z kopert. Dzięki arytmetyce modulo, która zadziała jak kalka, karty również będą podpisane.
- Wypełnianie ankiet
- Otrzymane podpisane karty zapisane są w ustalonym formacie. Należy je zapisać, a następnie wylogować się i w dowolnym czasie, z dowolnej maszyny, wejść do serwisu i bezpiecznie odpowiedzieć na pytania. Ostatecznie przy wypełnianiu ankiet wysyłamy \(\tilde{m}^d\) i \(m\). Karta jest poprawna, gdy: \[{(\tilde{m}^d)}^{e} = \text{sha256}^\ast(m) \text{.}\] Bonus zostaje studentowi przyznany w momencie podpisywania zaślepionych kart, ponieważ nie istnieje możliwość zweryfikowania do kogo należy dana karta do głosowania w momencie wypełniania ankiet.