∀ Matematica discreta

Principi di conteggio: regola della somma e del prodotto

Le regole base del calcolo combinatorio: somma, prodotto, complemento e divisione, applicate a password, PIN, codici identificativi e tavoli rotondi.

Quante password di otto caratteri esistono? Quanti indirizzi può avere una rete? Quanti tentativi servono, al massimo, per indovinare un PIN? Sono domande di conteggio, e quasi tutte si risolvono combinando poche regole elementari. Il calcolo combinatorio sembra a volte una raccolta di formule da imparare a memoria; in realtà le formule derivano tutte da questi principi, e chi li padroneggia può ricostruirle quando servono.

Regola del prodotto

Se un'operazione si compone di due fasi, la prima eseguibile in m modi e la seconda in n modi indipendentemente dalla scelta fatta nella prima, allora l'operazione completa si può eseguire in m · n modi.

La regola si estende a k fasi: n₁ · n₂ · … · nₖ.

Esempi:

  • Un PIN di 4 cifre: 10 · 10 · 10 · 10 = 10⁴ = 10.000 possibilità.
  • Una password di 8 caratteri scelti tra 26 lettere minuscole: 26⁸, circa 2,09 · 10¹¹.
  • Un menù con 3 primi, 4 secondi e 2 dolci: 3 · 4 · 2 = 24 pasti diversi.

La regola del prodotto è la stessa che dà la cardinalità del prodotto cartesiano: |A × B| = |A| · |B|.

Regola della somma

Se un oggetto si può scegliere da un primo gruppo in m modi oppure da un secondo gruppo in n modi, e i due gruppi sono disgiunti (nessun oggetto sta in entrambi), allora le scelte totali sono m + n.

Esempio: una password di lunghezza compresa tra 6 e 8 caratteri minuscoli. Le password di lunghezza diversa sono casi disgiunti, quindi il totale è 26⁶ + 26⁷ + 26⁸.

Se i gruppi non sono disgiunti la somma conta due volte gli elementi comuni; in quel caso serve il principio di inclusione-esclusione.

Combinare le due regole

Quasi ogni problema reale richiede di alternare somma e prodotto. Un metodo affidabile:

  1. dividere i casi in modo che siano disgiunti (regola della somma);
  2. contare ciascun caso come sequenza di scelte indipendenti (regola del prodotto).

Esempio: un codice identificativo è formato da 2 lettere seguite da 3 cifre, oppure da 3 lettere seguite da 2 cifre (alfabeto di 26 lettere). Primo tipo: 26² · 10³ = 676.000. Secondo tipo: 26³ · 10² = 1.757.600. I due tipi sono disgiunti, perché la posizione del primo numero è diversa. Totale: 2.433.600.

Regola del complemento

Spesso è più facile contare ciò che non si vuole e sottrarlo dal totale.

Domanda: quante password di 8 caratteri, scelte tra 26 minuscole e 10 cifre, contengono almeno una cifra?

Contare direttamente «almeno una» è scomodo: una cifra, due cifre, tre… Il complemento è semplice: le password senza cifre sono 26⁸. Il totale è 36⁸. Quindi:

36⁸ − 26⁸ ≈ 2,82 · 10¹² − 2,09 · 10¹¹ ≈ 2,61 · 10¹²

Ogni volta che compare «almeno uno», il complemento è la prima cosa da provare.

Regola della divisione

Se un procedimento conta ogni oggetto esattamente d volte, il numero di oggetti è il conteggio diviso per d.

Esempio: in quanti modi 5 persone possono sedersi attorno a un tavolo rotondo, se contano solo le posizioni relative? Le disposizioni in fila sono 5 · 4 · 3 · 2 · 1 = 120. Ma ogni disposizione circolare corrisponde a 5 disposizioni in fila, ottenute ruotando. Quindi i modi distinti sono 120 / 5 = 24.

La regola della divisione è quella che, applicata alle permutazioni, produce i coefficienti binomiali.

Un'applicazione alla sicurezza

I principi di conteggio sono il fondamento della stima della robustezza di una password o di una chiave. Lo spazio delle possibilità per una password di lunghezza L su un alfabeto di N simboli è Nᴸ. Si esprime spesso in bit come L · log₂ N.

Alfabeto N bit per carattere
solo cifre 10 ≈ 3,32
minuscole 26 ≈ 4,70
minuscole e maiuscole 52 ≈ 5,70
lettere e cifre 62 ≈ 5,95

Due osservazioni pratiche emergono subito. Primo, la lunghezza pesa più dell'alfabeto, perché sta all'esponente: aggiungere due caratteri minuscoli porta più bit che passare da 26 a 62 simboli su una password già lunga. Secondo, questi numeri valgono solo se ogni carattere è scelto davvero a caso. Una password costruita da una persona, con una parola e un numero alla fine, occupa una parte minuscola dello spazio teorico. Nel mio lavoro questa distinzione tra spazio teorico e spazio effettivo è il punto da cui parto ogni volta che valuto una politica sulle password.

Il conteggio aiuta anche a leggere i limiti dei tentativi. Un PIN da 4 cifre con un blocco dopo 3 errori dà a chi tira a indovinare 3 possibilità su 10.000: è il limite dei tentativi, più che la lunghezza del codice, a proteggere davvero.

In sintesi

  • Regola del prodotto: scelte indipendenti in sequenza si moltiplicano.
  • Regola della somma: casi disgiunti si sommano.
  • Quando compare «almeno uno», contate il complemento e sottraete.
  • Se ogni oggetto viene contato d volte, dividete per d.
  • Lo spazio di una password è Nᴸ: la lunghezza conta più dell'alfabeto, ma solo se la scelta è casuale.
MM
Marco Marzaduri

Marco Marzaduri si occupa di cybersecurity, informatica forense e sviluppo web. Laureato in informatica, unisce il rigore dell'analisi tecnica all'attenzione per le persone che usano la tecnologia.

Leggi anche