Puncte:0

Cum se face suma de control WOTS

drapel us

Din câte am înțeles, semnătura unică Winternitz este făcută de:

  1. Realizarea unei serii de chei private.
  2. Realizarea unei matrice de chei publice prin hashing fiecare cheie privată de X ori, X fiind numărul de posibilități diferite de caractere care pot apărea în fiecare poziție a mesajului (sau hash-ul mesajului) de verificat.
  3. Crearea unei matrice de hashuri ca semnătură prin hashing fiecare cheie privată X minus „numărul ordinal al caracterului” ori.
  4. Verificarea semnăturii numărând câte ori fiecare dintre codurile hash de semnătură trebuie să fie hashing pentru a ajunge la cheia publică și interpretarea numărului ca număr ordinal al caracterului. Cu aceste numere, putem forma mesajul (sau hash-ul mesajului), care ar demonstra apoi că mesajul a fost valid.

Prin urmare, de exemplu, dacă semnăm prin cifre HEX, X ar fi 15, deoarece caracterele ar merge de la 0 (primul caracter, reprezentând 0 iterații) la F (al 16-lea caracter, reprezentând 15 iterații). Deci, ori de câte ori avem nevoie de hash semnătura pentru a ajunge la cheia publică, aceasta va reprezenta o anumită valoare, de la 0 ori la 15 ori (oferind efectiv 16 posibilități). Și dacă nu ajunge niciodată la el, atunci este invalid.

Acestea fiind spuse, am citit că slăbiciunea constă în faptul că semnătura poate fi modificată, deoarece, de exemplu, dacă un caracter semnat este A, atunci există suficiente informații pentru a șterge și B, C, D, E și F. Atunci , potrivit multora, inclusiv acest site web, soluția este să faceți o sumă de control.

Și aici am rămas blocat. Nici nu înțeleg cum să implementez suma de control. Am găsit câteva explicații, dar toate sunt prea tehnice sau prea vagi și nu îmi spun exact, în cuvinte simple, cum să fac acea sumă de control.

Vă rog să-mi explicați cum să fac suma de control într-un limbaj simplu pe care oricine îl poate înțelege.

Și, dacă este posibil, comentați cum acea sumă de control nu a putut fi, de asemenea, afectată. Mulțumesc.

Puncte:1
drapel my

Vă rog să-mi explicați cum să fac suma de control într-un limbaj simplu pe care oricine îl poate înțelege.

De fapt, este o „sumă de verificare inversă”; când semnați un caracter X, adăugați și valoarea 15-X la suma de control; de exemplu, dacă semnezi un A, adaugi 5 la suma de control (pentru că A+5=F, cel puțin în hex). Apoi iei acea sumă și semnezi și asta.

De exemplu, dacă valoarea pe care o semnați constă din 4 caractere A, 4, F, 0, atunci însumați inversele (F-A)+(F-4)+(F-F)+(F-0)=1F, și astfel includeți cele două caractere 1, F în semnătură.

Ar trebui să fie ușor de observat că, dacă atacatorul încearcă să incrementeze un caracter în mesajul hashed, el scade valoarea sumei de control invers, ceea ce înseamnă că un anumit caracter din sumă scade (și atacatorul nu poate genera o semnătură pentru acel caracter decrementat).

De exemplu, dacă atacatorul a încercat să falsească cu cele 4 caractere B, 4, F, 0, suma de control inversă pe care o va obține verificatorul este 1E, atacatorul nu poate genera WOTS valabil pentru „E” (având în vedere că știe doar valoarea pentru „F”)

algo avatar
drapel us
Mulțumesc foarte mult. Primul meu gând a fost că atunci, de ce nu ar putea modifica și un alt caracter pentru a compensa pierderea din suma de control inversată, așa că, în loc să treci de la A4F0 la B4F0, mergi la B3F0, pentru a-l echilibra, dar apoi am înțeles că ar fi imposibil să „mergi mai jos”, deoarece nu au cheia privată, pot doar să crească.
algo avatar
drapel us
Deci, se pare că ori de câte ori un caracter este crescut, valoarea sumei de control scade și, de asemenea, caracterele nu pot fi micșorate.
algo avatar
drapel us
Singura mea întrebare este, cum se face că nu au putut să încurce și suma de control? De exemplu, suma de control din exemplul dvs. a fost astfel: A4F0 1F Dacă atacatorul schimbă caracterul mesajului, dar și un caracter din suma de control... B4F0 1E Cu toate acestea, se pare că suma de control 1F nu a putut fi schimbată într-adevăr în 1E, deoarece caracterele nu pot fi micșorate, așa că acesta pare să fie motivul pentru care suma de control trebuie inversată... Este corect? Pentru că încă mai am un mic sentiment de suspiciune cu privire la încurcătura cu suma de control.
poncho avatar
drapel my
@algo: da, este corect; ideea este că atacatorul nu se poate încurca direct cu suma de control; el se poate încurca doar cu hash-ul (și suma de control este calculată pe baza asta). Și, dacă crește un personaj undeva, trebuie să decrementeze un alt caracter - și pentru că nu cunoaște preimaginea acelui element WOTS, nu poate.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.