1
Fork 0
mirror of https://github.com/Steffo99/appunti-magistrali.git synced 2024-11-27 04:14:19 +00:00
appunti-steffo/8 - Crittografia applicata/1 - Concetti/3 - Casualità ed entropia/entropia.md

43 lines
1.1 KiB
Markdown
Raw Normal View History

2023-09-21 00:46:23 +00:00
[[Quantificazione]] della [[casualità crittografica]] presente all'interno di un'[[informazione]] relativamente ad un sistema.
## Definizione
Un [[insieme]] ha *entropia* uguale alla sua [[cardinalità]].
$$
entropy = log_2 ( possible )
$$
Il [[risultato]] di una [[funzione]] ha *entropia* uguale al minimo di entropia tra il suo dominio e il suo codominio.
$$
entropy(f : \mathrm{D} \rightarrow \mathrm{C}) =
\min
\left(
entropy(\mathrm{D}),
entropy(\mathrm{C})
\right)
$$
## Esempi
Una funzione che consuma 1 bit ed emette 128 bytes in base ha **1 bit** di *entropia*, perchè i valori possibili che può emettere sono $2$, e quindi $log_2(2) = 1$.
```rust
fn func(data: bool) -> [u8; 128] {
match data {
true => [1; 128],
false => [0; 128],
}
}
```
Una funzione che consuma 128 bytes ed emette 1 bit ha **1 bit** di entropia, perchè i valori possibili che può emettere sono $2$, e quindi $log_2(2) = 1$.
```rust
fn func(data: [u8; 128]) -> bool {
data.iter().all(|v| *v != 0)
}
```
## #Extra Relazioni con altri concetti
È l'inverso del [[fattore di compressione]] di un'[[informazione]]: più entropia essa ha, meno è possibile comprimerla.