One GDPR compliant fast stream encrpyter/decrypter.
(C) 2022 by Mariano Mancini
A robust, fast, GDPR compliant, no-fix-key (autokey) encrypter with remote controllable decryption.
- GDPR data at rest - yes, compliant
- GDPR data in transit - yes, compliant
- GDPR data protection over 'data drop' to legal user remote machine - yes, compliant
Z-block| Payload - blocco dati | Z-block
Z-Block:
Lo Z-Block è un piccolo blocco dati di 512 bytes che contiene una chiave locale crittografata utilizzata per codificare il payload del file.
Tale chiave di solito utilizza il nome originale del file "paddato" a 16 o troncato a 32 bytes in modo da avere sempre chavi statisticamente diverse per ogni file.
La chiave utilizzata per codificare lo Z-Block dovrebbe essere NON disponibile al sistema in cui gira lo script
e dovrebbe richiesta al sistema remoto ogni volta che si deve codificare/decodificare lo Z-BLock.
Per maggiore sicurezza lo Z-Block è posto come blocco dati inizaile nel file crittografato finale, e una copia identica
viene posta alla fine del file stesso in modo da poter recuperare
le informazioni necessarie alla decodifica in caso di errata cancella zione del primo blocco.
Lo Z-Block è composto in questo modo:
| Bytes | Area | Descrizione |
|---|---|---|
| 26 | Z-Block | Marcatura : "(C) 2022, Mariano Mancini " |
| 02 | Z-Block | Lunghezza messaggio crittografato ( little endian ) |
| 08 | Payload | Nonce crittografico CHACHA20 |
| nn | Payload | Chiave locale crittografata CHACHA20 ( utilizzando chiave remota ) |
| 16 | Z-Block | Salt PBKDF2 ( chiave remota ) |
| 03 | Z-Block | Marcatura : "ORG" |
| 02 | Z-Block | Lunghezza nome del file originale (little endian) |
| nn | Z-Block | Nome originale del file |
| nn -> 512 | Z-Block | Riempimento fino a 512 bytes |
Payload/Blocco Dati:
Il blocco dati o Payload è un blocco crittografato utilizzando la chiave locale prelevata dallo Z-Block il blocco è costituito in questo modo:
| Bytes | Descrizione |
|---|---|
| 08 | Nonce crittografico ChaCha20 |
| nn | Dati crittografati |