1
Fork 0
mirror of https://github.com/Steffo99/appunti-magistrali.git synced 2024-11-22 18:44:17 +00:00
appunti-steffo/8 - Crittografia applicata/2 - Comunicazione simmetrica/7 - Implementazioni particolari/4 - Derivazione di chiave/HKDF-Expand.md
2023-09-21 02:46:23 +02:00

16 lines
No EOL
681 B
Markdown

[[funzione]] di [[expansion di una key derivation function]], utilizzata in [[HKDF]].
## Funzionamento
Effettua ripetuti [[HMAC]] con la [[pseudo-random key]], incrementando ogni volta un contatore concatenato al parametro di [[contestualizzazione di una key derivation function|contestualizzazione]] concatenato al [[risultato]] precedente, fino a raggiungere la dimensione dell'output desiderata.
```python
def hkdf_expand(prk: bytes, info: str, blocks: int):
results = []
for block_n in range(blocks):
key_part = hmac(key=prk, data=block_n + info + results[-1])
results.append(key_part)
return b"".join(results)
```
Il numero di blocchi è limitato a un singolo byte.