mirror of
https://github.com/Steffo99/appunti-magistrali.git
synced 2024-11-25 19:44:18 +00:00
43 lines
1.1 KiB
Markdown
43 lines
1.1 KiB
Markdown
|
[[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.
|