0Pricing
Cryptology Academy · Lezione

Concetti sui cifrari a flusso e PRNG

Scopra come i cifrari a flusso generano un keystream a partire da un seed.

Concetti sui cifrari a flusso e PRNG è una lezione Cryptology Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Cryptology Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cryptology Academy include 4 lezioni in totale.

Benvenuti

I cifrari a flusso generano un keystream pseudocasuale a partire da una chiave e da un nonce e cifrano byte per byte. In questa lezione capiremo come funzionano i keystream e cosa rende sicuro un cifrario a flusso.

Modello dei cifrari a flusso

KeyGen(K, Nonce) → keystream K1, K2, K3, ... Ci = Pi XOR Ki Pi = Ci XOR Ki Cifratura e decifratura sono identiche: si esegue l'XOR con il keystream. Il keystream deve essere pseudocasuale e non deve mai essere riutilizzato.

PRNG e CSPRNG

PRNG (generatore di numeri pseudocasuali): output deterministico che sembra casuale. NON è sicuro dal punto di vista crittografico: supera i test statistici, ma l'output è prevedibile con un numero sufficiente di campioni. CSPRNG: sicuro dal punto di vista crittografico; l'output è computazionalmente indistinguibile da uno casuale anche disponendo di potenza di calcolo illimitata.

Requisiti di sicurezza

Un keystream sicuro per un cifrario a flusso deve essere: 1. Computazionalmente indistinguibile da uno casuale 2. Diverso per ogni coppia (chiave, nonce) 3. Impossibile da prevedere a partire da un output parziale 4. Non invertibile: non deve essere possibile ricavare la chiave dal keystream

Generatori congruenziali lineari (non sicuri)

LCG: s(n+1) = (a × s(n) + c) mod m. Utilizzati in molte implementazioni di rand(). Sono completamente insicuri per la crittografia: conoscere alcuni output rivela matematicamente tutti gli output futuri e passati.

Dimensione del seed e sicurezza

La sicurezza del keystream di un cifrario a flusso è pari a quella del suo seed (la chiave). Una chiave da 128 bit garantisce 128 bit di sicurezza, indipendentemente dalla quantità di keystream generata. Il seed è la fonte di entropia.

Sincroni e autosincronizzanti

Sincrono: il keystream è indipendente dal testo in chiaro e dal testo cifrato (RC4, ChaCha20). Autosincronizzante: il keystream dipende dal testo cifrato precedente (modalità CFB). La perdita di bit desincronizza i cifrari sincroni.

Architettura della generazione del keystream

La maggior parte dei moderni cifrari a flusso utilizza: 1. Chiave + nonce → stato iniziale 2. Funzione di permutazione applicata ripetutamente allo stato 3. Alcuni bit dello stato emessi come keystream 4. Contatore incrementato per il blocco successivo AES-CTR segue questo schema.

Portafoglio eSTREAM

Il progetto eSTREAM (2004-2008) ha standardizzato i cifrari a flusso. Finalisti per il software: HC-128, Rabbit, Salsa20/12, SOSEMANUK. Salsa20 ha portato a ChaCha20, oggi il cifrario a flusso dominante.

Riutilizzo del keystream: difetto fatale

Il peccato capitale dei cifrari a flusso: non riutilizzare mai la coppia (chiave, nonce). C1 XOR C2 = P1 XOR P2. Molti pacchetti WEP con lo stesso IV (equivalente a chiave+nonce) consentivano la decifratura completa.

Cifrario a flusso e cifrario a blocchi in modalità CTR

AES-CTR è un cifrario a blocchi utilizzato come cifrario a flusso. I cifrari a flusso dedicati (ChaCha20) sono spesso più veloci nel software. Le proprietà di sicurezza sono simili quando chiave e nonce vengono gestiti correttamente.

Verifica rapida

Qual è la vulnerabilità fondamentale quando viene riutilizzata la coppia (chiave, nonce) di un cifrario a flusso?

Riepilogo

I fondamenti dei cifrari a flusso sono chiari. Ora studieremo RC4 in dettaglio: come funziona e le gravi vulnerabilità che ne hanno decretato il ritiro.

Domande Frequenti

La lezione «Concetti sui cifrari a flusso e PRNG» è gratuita?

Sì — il testo completo di «Concetti sui cifrari a flusso e PRNG» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Cryptology Academy, passa a CoddyKit PRO. Il corso Cryptology Academy include 4 lezioni in totale.

Cosa imparerò in «Concetti sui cifrari a flusso e PRNG»?

Scopra come i cifrari a flusso generano un keystream a partire da un seed. Eserciti Cryptology Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Cryptology Academy?

Non è richiesta alcuna esperienza precedente. Cryptology Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Concetti sui cifrari a flusso e PRNG»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Cryptology Academy?

Sì. Ogni lezione Cryptology Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Concetti sui cifrari a flusso e PRNG
  2. RC4: progettazione, debolezze e attacchi a WEP
  3. Progettazione di Salsa20 e ChaCha20
  4. ChaCha20-Poly1305 AEAD in TLS 1.3
← Torna a Cryptology Academy