ce înseamnă mai exact „contor”?
Contor conform definiției Wikipedia;
În logica digitală și în calcul, un contor este un dispozitiv care stochează (și uneori afișează) de câte ori a avut loc un anumit eveniment sau proces.
În context CTR; este folosit pentru a produce diferite intrări pentru criptare, apoi rezultatul este x-ored cu textul simplu pentru a produce un text cifrat. De obicei, se realizează prin incrementare, deși se poate folosi și LFSR.
Este la fel ca nonce
Nu, nu este același cu nonce (numărul folosit o dată)
Modul CTR combină nonce și counter, ca intrare la cifr. Intrarea este combinată din două părți;
- parte nonce; de obicei, generate aleatoriu per sesiune de criptare sau prin utilizarea contor/LFSR.
- echivalent; setată inițial la zero, apoi incrementată pentru fiecare criptare bloc
Cu acestea putem avea o criptare randomizată și fiecare bloc poate produce o ieșire diferită sub aceeași cheie dacă folosim un PRP precum AES (partea PRF este mai complexă și de fapt CTR este definit pentru PRF, deoarece nu este nevoie de inversul)
„De obicei, contorul este inițializat la o anumită valoare și apoi incrementat cu 1 pentru fiecare bloc următor (modulo $2^b$, Unde $b$ este dimensiunea blocului)". Ce înseamnă exact această afirmație?
Luați în considerare că avem nonce de 64 de biți și contor de 64 de biți;
nonce counter
9237AF71A232BC82E4 00000000000000000
Primul bloc utilizări 9237AF71A232BC82E40000000000000000
ca intrare, apoi blocul următor folosește ca
nonce counter
9237AF71A232BC82E4 0000000000000001
9237AF71A232BC82E4 0000000000000002
9237AF71A232BC82E4 0000000000000003
9237AF71A232BC82E4 0000000000000004
......
9237AF71A232BC82E4 EFFFFFFFFFFFFFFF
9237AF71A232BC82E4 FFFFFFFFFFFFFFFF
......
9237AF71A232BC82E5 0000000000000000 ???
Dacă poți cripta $2^{64}$ blocuri vei ajunge la capătul tejghelei, în funcție de caz acest lucru poate fi periculos.
Daca continui de la 0 counter 9237AF71A232BC82E40000000000000000
atunci veți avea o problemă de non-reutilizare (tampă de două ori) în modul CTR; se pierde confidențialitatea. Un observator poate executa un traseu manual chiar și unul automatizat
Dacă continuați să creșteți decât 9237AF71A232BC82E50000000000000000
este posibil să apăsați o altă intrare care se poate transforma și în pad-ul de două ori.
Opreste-te acolo; de fapt, oprește-te cu mult înainte dacă utilizați PRP în loc de PRF.
Note despre diferite utilizări ale termenului nonce IV;
Definiția NIST folosește contorul ca întreaga intrare pentru criptare.
Wikipedia face o distincție. Am preferat definiția Wikipedia, În cazul GCM, NIST folosește IV și contorul separat.
Lindell&Katz, în cartea lor, folosește IV ca 3n/4 USD parte din dimensiunea blocului și $1/4$ cât despre tejghea. Criptarea este definită ca $y_i := F_k (IV || \langle i \rangle)$ Ei arată că dacă IV este selectat uniform, atunci reutilizarea IV este un eveniment neglijabil. Prin urmare, modul CTR este securizat CPA.