Puncte:1

Folosind Chaskey ca un cifru de flux

drapel cz

Chaskey (https://eprint.iacr.org/2014/386.pdf) este un MAC sigur, compact și eficient pentru sistemele încorporate și a câștigat multe benchmark-uri. Este construit folosind un cifru bloc Even-Mansour. Acest cod de bloc XOR un text simplu cu o cheie, aplică o funcție publică de permutare, apoi XOR rezultatul cu aceeași cheie pentru a crea textul cifrat. Lucrarea, din păcate, discută doar cazul de utilizare MAC, și nu cazul de utilizare a criptării. Site-ul (https://mouha.be/chaskey/) menționează totuși și alte cazuri de utilizare:

  1. Un PRF ușor.
  2. Poate fi folosit pentru a asigura criptografic integritatea mesajului (ca MAC).
  3. Pentru autentificarea utilizatorilor (în protocoalele provocare-răspuns).
  4. Pentru a genera numere aleatorii (în modul contor).

Ceea ce mă întreb este dacă poate fi folosit și, într-un mod securizat, pentru criptare, adică folosindu-l în modul counter pentru a crea un stream cipher. Acest lucru ar însemna că am putea crea un algoritm Encrypt-then-MAC folosind doar Chaskey ca primitiv, ceea ce ar fi foarte eficient pentru sistemele încorporate (desigur în combinație cu un nonce per-mesaj).

Deoarece poate fi folosit ca PRF și pentru a genera numere aleatoare în modul contor, se pare că acest lucru ar trebui într-adevăr să fie fezabil.

Puncte:0
drapel in

Modul CTR a fost conceput inițial pentru PRF-uri.

Orice PRF* poate fi transformat într-un stream cipher cu modul CTR.Cu toate acestea, nu este de preferat să folosiți o funcție grea construită pentru ca MAC să o utilizeze ca un cifru de flux. Utilizați ChaCha pentru cifrul de flux construit din PRF sau utilizați cifrul de flux direct precum Trivium.

Dacă doriți cu adevărat să utilizați, atunci utilizați intrarea ca $$F_k(\text{nonce_block}\mathbin\|\text{counter_block})$$ ca modul CTR și criptați ca

$$c_i = m_i \oplus F_k(\text{nonce_block}\mathbin\|\text{counter_i})$$

Asigura-te ca

  • $\text{counter_i}$ nu depășește niciodată dimensiunea $\text{counter_block}$,
  • nu reveni niciodată la starea inițială dacă contorul atinge maximul $2^{\text{counter_block_size}}-1$
  • nu vă complicați cu reluarea contorului pentru o altă criptare.
  • Sub mai sus, mai nou, an $(IV,cheie)$ apar din nou unde $IV = (\text{nonce_block}\mathbin\|\text{counter_i})$

* De fapt, orice nu este suficient pentru criptografie, dimensiunea cheii și dimensiunea de intrare și de ieșire sunt importante. Astăzi preferăm xChaCha20, deoarece permite nonce-urile de 192 de biți pentru a evita coliziunea nonce sub aceeași cheie și are dimensiuni de intrare/ieșire de 512 biți. Securitatea pe 128 de biți a lui Chaskey este suficientă pentru criptografia ușoară, cu toate acestea, pentru alte scopuri, nu este suficient de sigură.

drapel cz
Grozav! O întrebare următoare: CCM folosește aceeași cheie atât pentru criptarea CTR, cât și pentru MAC, prin construirea atentă a intrării în cifrul bloc. Putem folosi o abordare similară aici pentru a evita necesitatea de a avea două chei?
kelalaka avatar
drapel in
Are nevoie de o analiză. Este întotdeauna mai bine să generați două dintr-unul cu un KDF cum ar fi [HKDF](https://crypto.stackexchange.com/a/76589/18298) și extindeți va fi suficient pentru dvs. dacă aveți o cheie aleatorie uniformă.

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.