Puncte:5

Puteți folosi SHAKE256_XOF cu XOR pentru a crea un cifr de flux?

drapel mc

SHAKE256_XOF este o funcție de ieșire extensibilă bazată pe SHA3-512. SHAKE256_XOF poate fi folosit pentru a crea un șir de biți de lungime infinită cu 256 de biți de securitate. De exemplu:

din Crypto.Hash.SHAKE256 import SHAKE256_XOF

agitare = SHAKE256_XOF()
shake.update(b'key' + b'nonce')

pentru _ în interval (10):
    print(agitati.cititi(16).hex())
18068a140f4c0f1f85f17da13b049155
1fc6d25b11833480dae5fba50b8b73db
bf4284c0d9a32b9b374ae82d5c0514c6
...

SHAKE256_XOF este o funcție pseudoaleatorie, deci XOR--i ieșirea cu un text simplu ar trebui să producă un text cifrat. Înțeleg că acesta ar fi un cifr de flux asimetric. Îmi este greu să găsesc cercetări despre asta în afară de asta posibil și Bruce Schneier zicală „Nu cunosc nicio analiză criptoanalitică a anumitor funcții hash unidirecționale ca cifruri bloc; așteptați o astfel de analiză înainte de a avea încredere în oricare dintre ele.” În cele din urmă, acest cifru poate fi realizat autentificat de SHA3-512 ca parte a sămânței. Aceasta duce la algoritmul final:

din Crypto.Hash.SHAKE256 import SHAKE256_XOF
din importul Crypto.Hash SHA3_512

xor = lambda lhs, rhs: octeți (a ^ b pentru a, b în zip(lhs, rhs))

text simplu = b'text simplu'
cheie = b'cheie'
nonce = b'nonce'
digest = SHA3_512.new().update(plaintext).digest()

e_shake = SHAKE256_XOF().update(key + nonce + digest)
cipher_text = xor(e_shake.read(len(text clar)), text simplu)

d_shake = SHAKE256_XOF().update(key + nonce + digest)
d_plaintext = xor(d_shake.read(len(cipher_text)), cipher_text)

print(d_text simplu)
  1. Există vreo literatură despre utilizarea SHAKE256_XOF ca cifru?
  2. Cum se compară această metodă cu AES256 în ceea ce privește securitatea?
  3. Care sunt punctele slabe sau dezavantajele acestui cifr? În mod evident, utilizarea SHA3-512 pentru a-l autentifica înseamnă că nu poate fi criptat eficient într-o singură trecere, iar decriptarea necesită calcularea rezumatului SHA3-512 pentru a se autentifica (învăț cum funcționează criptarea autentificată, așa că sugestiile și feedback-ul sunt binevenite) .
  4. Oferă vreun avantaj posibil față de AES256?
  5. AES256 are rezistență de 128 de biți împotriva teoretic atacuri cuantice. Acest cifr ar menține min(lungime_cheie/2, 256) biți de rezistență la atacurile cuantice teoretice care SHAKE256_XOF are.
Puncte:7
drapel vu

În secțiunea 3.2 „Moduri de utilizare a funcțiilor burete” a Funcții de burete criptografic (CSF pe scurt în sensul acestui răspuns), autorii au enumerat mai multe „moduri de operare” în scopuri diferite, aplicațiile de criptare flux fiind una dintre ele. Iată tabelul:

Funcționalitate Expresie Intrare Ieșire
$n$-biți funcție hash $h = H(M)$ $M$ $\lfloor Z \rfloor _n$
$n$-biți funcție hash randomizată $h = H_R(M)$ $R|M$ $\lfloor Z \rfloor _n$
$n$-bit hash diferențierea instanței funcției $h = H_D(M)$ $D|M$ $\lfloor Z \rfloor _n$
Încet $n$-bit funcție unidirecțională $h = H_{\text{lent}}(M)$ $M|0^N$ $\lfloor Z \rfloor _n$
$n$-biți funcție MAC $T = MAC(K,[IV,]M)$ $K|IV|M$ $\lfloor Z \rfloor _n$
Cifrarea fluxului cu acces aleatoriu ($n$bloc de biți) $z_i = F(K,IV,i)$ $K|IV|i$ $\lfloor Z \rfloor _n$
Cifrarea fluxului $Z=F(K,IV)$ $K|IV$ asa cum este
Generator de biți aleatori determinist (DRBG) $z=DRBG(sămânță)$ sămânță asa cum este
Funcția de generare a măștilor și de derivare a cheilor $masca=F(samanta,l)$ sămânță $\lfloor Z \rfloor _l$

Există vreo literatură despre utilizarea SHAKE256_XOF ca cifru?

Ei bine, hârtia te cuprinde.

Cum se compară această metodă cu AES256 în ceea ce privește securitatea?

Această metodă are putere egală în ceea ce privește forța brutală. un cod de flux SHAKE va putea avea perioade mai lungi decât AES-256, fie în modul contor (CTR), fie în modul de feedback al cifrului (CFB).

Care sunt punctele slabe sau dezavantajele acestui cifr? Evident, utilizarea lui SHA3-512 pentru a-l autentifica înseamnă că nu poate fi criptat eficient într-o singură trecere, iar decriptarea necesită calcularea rezumatului SHA3-512 pentru a se autentifica (învăț cum funcționează criptarea autentificată, așa că sugestiile și feedback-ul sunt binevenite).

De fapt, dacă te uiți la modurile „duplex” (pe care lucrarea CSF le acoperă și), AEAD-urile sunt de fapt mai ușor de implementat într-o singură trecere.

Oferă vreun avantaj posibil față de AES256?

Am menționat 2 (lungimea perioadei, 1 trecere). De asemenea, are o scalabilitate mai bună a parametrilor decât cifrul-bloc cu lățime fixă, așa că îl consider al treilea.

AES256 are rezistență de 128 de biți împotriva atacurilor cuantice teoretice. Acest cifr ar menține min(lungime_cheie/2, 256) biți de rezistență la atacurile cuantice teoretice pe care le are SHAKE256_XOF.

Probabil, dar nu sunt prea bun la matematică.

forest avatar
drapel vn
XOF-urile sunt într-adevăr uimitor de versatile.

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.