NOTĂ: Această întrebare se bazează pe presupunerea mea că $X$ este un „număr cu adevărat aleatoriu” dacă și numai dacă lungimea lui măsurată în biți este egală cu entropia măsurată în biți.Cu alte cuvinte, când fiecare bucată de $X$ a fost generat de o aruncare aleatorie de monede.
Să presupunem că am un număr cu adevărat aleatoriu $R$ cu dimensiunea de 256 de biți (256 de biți de entropie) și un număr cu adevărat aleatoriu $S$ de lungime n $ * 256 $, Unde $n$ este un număr natural, așa că are n $ * 256 $ biți de entropie.
Acum obțin patru chei $T_1$ la $T_4$ din $R$
- $T_1 = \text{concat}(R, \text{... de n ori ...}, R)$
- calculati $t_1 = \text{sha256}(R)$, $t_2 = \text{sha256}(t_1)$, ..., $t_n = \text{sha256}(t_{n-1})$, si fa $T_2=\text{concat}(t_1, ..., t_n)$.
- $T_3$ este calculat la fel ca mai sus, dar folosind HMAC în loc de sha256.
- $T_4 = \text{hkdf_expand}(R, \text{null}, n * 256 / 8)$.
În sfârșit, calculez $K_i = T_i\text{ xor }S$.
Câți biți de entropie are $K_1$, $K_2$, $K_3$ și $K_4$ avea?
Presupunerile mele fericite:
- $T1$ va avea tot atâtea entropie cât $R$, deoarece concatenarea prin repetare nu crește entropia ieșirii, dar bănuiesc că nici nu o va scădea.
- $\text{sha256}$ și $\text{HMAC}$ se crede că păstrează biții de entropie ai intrării, dar deoarece procesul de construcție $T_2$ și $T_3$ se calculează determinist din $R$, entropia lui $T_2$ și $T_3$ va fi aproximativ echivalent cu $T1$.
- Nici o idee despre $T_4$. Bănuiesc că beneficiile $\text{hkdf_expand}$ intră atunci când intrarea sa nu este un număr cu adevărat aleatoriu.
Cam fiecare $K_i$, Nu sunt sigur. Am aflat recent că XORting două numere cu adevărat aleatorii dă un număr cu adevărat aleatoriu, deci biții de entropie ai ieșirii sunt încă lungimea sa, dar deoarece $T_i$Nu mai sunt numere cu adevărat aleatorii, nu știu ce se va întâmpla aici.
Intuiția mea îmi spune că entropia de $S$ va fi păstrat (n $ * 128 $ biți), pentru că $K_i$ este echivalent cu criptare $T_i$ folosind $S$ ca o cheie unică, făcând $T_i$ sau $S$ teoretic indestructibil, deci $K_i$ este încă un număr cu adevărat aleatoriu.