Kryptografia — lista nr 1

Na tej liście analizujemy klasyczny schemat Schnorra oraz pięć przykładowych schematów identyfikacji, które należy przeanalizować i zaatakować tam, gdzie są błędne.

Zasady zaliczenia ćwiczeń

Poniższe zasady określają sposób pracy na ćwiczeniach oraz sposób wyliczania oceny z ćwiczeń.

  • Na ćwiczeniach będą rozwiązywane i omawiane zadania z list opublikowanych na stronie wykładowcy.
  • Po zakończeniu omawiania na ćwiczeniach danej listy zadań prowadząca ćwiczenia będzie przydzielała wybrane zadania konkretnym osobom do realizacji pisemnej i oddania w formacie PDF poprzez moduł zadań w MS Teams. Na realizację studenci będą mieli tydzień.
  • Za każde z przydzielonych zadań można otrzymać od 0 do 5 punktów. Nadesłanie rozwiązania po terminie będzie skutkowało obniżeniem liczby uzyskanych punktów o 1 za każdy rozpoczęty tydzień spóźnienia.
  • W trakcie semestru zostaną ponadto przeprowadzone dwa zapowiedziane sprawdziany. Za każdy z nich można otrzymać od 0 do 5 punktów. Jeżeli studentka lub student nie może uczestniczyć w sprawdzianie, może nadrobić punktację aktywnością w trakcie zajęć.
  • Podstawą do obliczenia oceny z ćwiczeń jest średnia punktów C, liczona zgodnie ze wzorem C = 0,4 · Z + 0,6 · S, gdzie Z oznacza średnią punktów z przydzielonych zadań, a S oznacza średnią punktów ze sprawdzianów.
  • Średnia C może zostać podwyższona przez prowadzącą ćwiczenia w zależności od aktywności studentki lub studenta na ćwiczeniach. Każde poprawnie rozwiązane przy tablicy zadanie podnosi średnią C o 0,2. Z własnych notatek dotyczących rozwiązań zadań z listy można korzystać przy tablicy tylko w wyjątkowych sytuacjach i za zgodą prowadzącej ćwiczenia.
  • Średnia C po uwzględnieniu aktywności jest zaokrąglana do najbliższej oceny, z wyjątkiem wartości 2,5, którą zaokrągla się do 2.

Demonstrator WASM - klasyczny Schnorr

Punkt odniesienia: klasyczny Schnorr w zapisie addytywnym na krzywych eliptycznych. Ta karta pokazuje przebieg poprawnego protokołu, z którym należy porównywać kolejne konstrukcje.

Schemat odniesienia dla klasycznego Schnorra
Schemat odniesienia: klasyczny Schnorr.

Przebieg poprawnego protokołu: klucz publiczny A=aQ, zobowiązanie X=xQ, odpowiedź s=x+ac, weryfikacja sQ=X+cA.

Ładowanie biblioteki WASM MCL...

1. Parametry

Krzywa i generator grupy.

Krzywa BLS12_381
Generator Q

2. Klucze

Losowanie sekretu i klucza publicznego.

sk = a
pk = A = aQ

3. Zobowiązanie

Losowanie wartości efemerycznej.

x
X = xQ

4. Wyzwanie

Losowe wyzwanie od Weryfikatora.

c

5. Odpowiedź

Obliczenie odpowiedzi protokołu.

s = x + ac

6. Weryfikacja

Sprawdzenie warunku akceptacji.

L = sQ
R = X + cA
Wynik
Test wydajności nie został jeszcze uruchomiony.

Demonstrator BigInt - klasyczny Schnorr w Zp*

Ten sam punkt odniesienia w grupie multiplikatywnej modulo p. Tu również obowiązuje wzór A=ga, X=gx, s=[x+ac] mod q i test gs=XAc.

Możesz ustawić bardzo małe parametry, np. 23 / 11 / 2, albo większe. Aktywuj tylko takie, dla których q|(p-1) oraz gq1(modp).

Demonstrator BigInt jest gotowy.

1. Parametry

Generator i rząd podgrupy. Parametry możesz wpisać ręcznie i zatwierdzić przyciskiem albo klawiszem Enter.

p (moduł)
q (rząd podgrupy)
g (generator)
Aktywne p, q, g 1019, 509, 3

2. Klucze

Losowanie sekretu i klucza publicznego.

sk = a
pk = A = g^a mod p

3. Zobowiązanie

Losowanie wartości efemerycznej.

x
X = g^x mod p

4. Wyzwanie

Wyzwanie w zbiorze Zq.

c

5. Odpowiedź

Obliczenie odpowiedzi modulo q.

s = [x + ac] mod q

6. Weryfikacja

Porównanie obu stron równania.

L = g^s mod p
R = X * A^c mod p
Wynik
Test wydajności nie został jeszcze uruchomiony.

1. Wprowadzenie do listy

We wszystkich zadaniach zakładamy, że G=g jest grupą cykliczną rzędu q, a sekret Dowodzącego ma postać aq*. Klucz publiczny ma postać:

A=ga

Cel analizy każdego schematu

  1. Sprawdzić poprawność schematu dla uczciwego Dowodzącego.
  2. Ocenić, czy schemat jest bezpieczny jako schemat identyfikacji.
  3. Jeśli nie jest bezpieczny, podać atak podszycia się.
  4. Oddzielić pojęcia: poprawność, rzetelność i odporność na fałszerstwo.
Sam fakt, że równanie weryfikacyjne jest algebraicznie poprawne, nie oznacza jeszcze bezpieczeństwa. Kluczowym sygnałem błędu jest możliwość dopasowania odpowiedzi po poznaniu wyzwania.

2. Zadanie 1 — analiza pierwszego schematu

Schemat 1
1
Dowodzący losuje xq*, oblicza X=gx i wysyła X.
2
Weryfikator losuje cq* i wysyła c.
3
Dowodzący odsyła s=x+a+c.
4
Weryfikator akceptuje wtedy i tylko wtedy, gdy gs=XAgc.
  1. Sprawdź, czy uczciwy Dowodzący, znający a, zawsze przechodzi weryfikację.
  2. Oceń, czy atakujący nieznający a może się skutecznie podszyć.
  3. Jeśli schemat jest niebezpieczny, podaj jawny sposób skonstruowania akceptowalnej transkrypcji.
  4. Wyjaśnij, czy atakujący musi znać logarytm dyskretny klucza publicznego A.

3. Zadanie 2 — analiza drugiego schematu

Schemat 2
1
Dowodzący losuje x, oblicza X=gx i wysyła X.
2
Weryfikator wysyła wyzwanie c.
3
Dowodzący odsyła s=c(x+a).
4
Weryfikator sprawdza, czy gs=(AX)c.
  1. Udowodnij poprawność działania dla uczciwego Dowodzącego.
  2. Zbadaj, czy odpowiedź ma właściwą postać z punktu widzenia bezpieczeństwa identyfikacji.
  3. Spróbuj zaprojektować atakującego, który po poznaniu c dobiera X lub s tak, aby przejść weryfikację.
  4. Oceń, czy wyzwanie c rzeczywiście utrudnia podszycie się.

4. Zadanie 3 — analiza trzeciego schematu

Schemat 3
1
Dowodzący losuje x, oblicza X=gx i wysyła X.
2
Weryfikator wysyła wyzwanie c.
3
Dowodzący odsyła s=xac oraz W=gax.
4
Weryfikator akceptuje, gdy gs=Wc.
  1. Wykaż poprawność dla uczciwego Dowodzącego.
  2. Zauważ, że w warunku akceptacji nie występuje bezpośrednio ani A, ani X. Czy to jest sygnał ostrzegawczy? Uzasadnij.
  3. Sprawdź, czy osoba nieznająca a może dobrać s i W tak, by przejść test.
  4. Jeśli tak, zapisz pełny atak krok po kroku.
  5. Wyjaśnij, czy W pełni tu rolę dowodu wiedzy, czy raczej dodatkowej zmiennej łatwej do sfałszowania.

5. Zadanie 4 — analiza czwartego schematu

Schemat 4
1
Dowodzący wysyła X=gx.
2
Weryfikator wysyła c.
3
Dowodzący odsyła s=c+xa oraz W=gax.
4
Weryfikator sprawdza, czy gs=gcW.
  1. Udowodnij poprawność schematu dla uczciwego Dowodzącego.
  2. Zastanów się, czy równanie weryfikacyjne można spełnić bez znajomości a.
  3. Czy atakujący może najpierw wybrać dowolne s, a potem wyznaczyć W tak, aby przejść weryfikację?
  4. Jeśli tak, pokaż pełny atak i oceń, czy schemat rzeczywiście wiąże odpowiedź z sekretem.
  5. Porównaj ten schemat z poprzednim — czy problem jest podobny, czy inny?

6. Zadanie 5 — analiza piątego schematu

Schemat 5
1
Dowodzący wysyła X=gx.
2
Weryfikator wysyła c.
3
Dowodzący odsyła
s=(a+cx)(c+ax)W=gax2Z=gxa2
4
Weryfikator akceptuje, gdy
gs=(AXcW)cZ
  1. Rozwiń algebraicznie obie strony warunku akceptacji i sprawdź poprawność.
  2. Ustal, czy zależność weryfikacyjna naprawdę wymusza znajomość sekretu a.
  3. Sprawdź, czy atakujący może arbitralnie wybrać część odpowiedzi, a resztę dopasować.
  4. Oceń, czy większa złożoność wzorów poprawia bezpieczeństwo, czy tylko zaciemnia obraz.
  5. Sformułuj ogólną intuicję: dlaczego bardziej skomplikowane równanie nie musi oznaczać bezpieczniejszego protokołu.

7. Zadanie porównawcze — lista nr 1 jako całość

Dla wszystkich pięciu schematów sporządź tabelę porównawczą i uzupełnij ją po przeprowadzeniu analizy.

Nr schematuCzy jest poprawny?Czy jest bezpieczny?Typ ataku / obserwacjaGłówny błąd konstrukcyjny
1
2
3
4
5
  1. Wskaż, które schematy są trywialnie fałszowalne.
  2. Wskaż, w których przypadkach odpowiedź można skonstruować bez znajomości sekretu.
  3. Sformułuj jedną wspólną zasadę projektowania poprawnych schematów identyfikacji typu sigma.

8. Odniesienie do schematu Schnorra

Punkt odniesienia dla całej listy: klasyczny schemat identyfikacji Schnorra.

Schemat Schnorra
1
Dowodzący wysyła X=gx.
2
Weryfikator wysyła c.
3
Dowodzący odsyła s=x+ca.
4
Weryfikator sprawdza, czy gs=XAc.
  1. Wyjaśnij, czym strukturalnie Schnorr różni się od analizowanych konstrukcji.
  2. Pokaż, dlaczego odpowiedź w Schnorrze nie daje się łatwo sfałszować po poznaniu wyzwania.
  3. Wskaż, które z analizowanych schematów przypominają Schnorra tylko powierzchownie.
  4. Zaproponuj poprawkę do jednego z błędnych schematów tak, aby zbliżyć go do poprawnego protokołu identyfikacji.