0Pricing
Cryptology Academy · Lezione

Cifratura XOR e one-time pad

Costruisca un semplice cifrario XOR e scopra il suo equivalente a segretezza perfetta.

Cifratura XOR e one-time pad è una lezione Cryptology Academy gratuita su CoddyKit. Questa è la lezione 2 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.

Benvenuto

La cifratura XOR è semplice: ciphertext = plaintext XOR key. Quando la chiave è davvero casuale e viene usata una sola volta, si ottiene il one-time pad, l'unico cifrario dimostrabilmente indistruttibile.

Nozioni di base sulla cifratura XOR

key = bytes([0x5A, 0xF2, 0x3C, 0x11]) plaintext = bytes([0x48, 0x65, 0x6C, 0x6C]) # 'Hell' ciphertext = bytes(p^k for p,k in zip(plaintext,key)) # Result: 0x12 0x97 0x50 0x7D

Proprietà di autoinversione di XOR

La decifratura coincide con la cifratura: plain = cipher XOR key Dimostrazione: (P XOR K) XOR K = P XOR (K XOR K) = P XOR 0 = P Questo rende i cifrari XOR simmetrici in modo immediato.

Concetto di one-time pad

Un one-time pad (OTP) usa una chiave casuale lunga quanto il messaggio, utilizzata esattamente una volta. È teoricamente inattaccabile: ogni ciphertext può essere decifrato ottenendo qualsiasi plaintext possibile con la stessa probabilità.

Dimostrazione della segretezza perfetta di Shannon

Claude Shannon dimostrò nel 1949 che un cifrario garantisce la segretezza perfetta se e solo se la chiave è casuale, è lunga almeno quanto il messaggio e viene usata al massimo una volta. L'OTP è l'unico cifrario pratico con queste proprietà.

Limiti pratici dell'OTP

La chiave deve essere lunga quanto il messaggio. Deve essere distribuita in modo sicuro. Non può mai essere riutilizzata. Questi vincoli rendono l'OTP impraticabile per la maggior parte delle applicazioni.

Attacco al riutilizzo della chiave: many-time pad

Se C1 = P1 XOR K e C2 = P2 XOR K, allora C1 XOR C2 = P1 XOR P2. La chiave si annulla! Un attaccante che dispone di due ciphertext ottiene P1 XOR P2, che rivela degli schemi.

Attacco di crib dragging

Se l'attaccante indovina una parte di P1 (un «crib», come « the »), applicando XOR a P1 XOR P2 in ogni posizione rivela il testo P2 corrispondente. In questo modo recupera gradualmente i plaintext completi.

Un caso reale di fallimento del riutilizzo della chiave

Il progetto Venona decifrò migliaia di messaggi sovietici cifrati con one-time pad perché gli agenti del KGB riutilizzarono i pad sotto la pressione della guerra. Il riutilizzo della chiave compromette una cifratura teoricamente perfetta.

XOR nei cifrari a flusso

I moderni cifrari a flusso (ChaCha20, RC4) generano un keystream pseudocasuale e applicano XOR al plaintext. Approssimano l'OTP, ma usano una chiave breve espansa da un CSPRNG.

Dimostrazione della cifratura XOR in Python

import os def otp_encrypt(plaintext: bytes) -> tuple: key = os.urandom(len(plaintext)) ciphertext = bytes(p^k for p,k in zip(plaintext,key)) return ciphertext, key ciphertext, key = otp_encrypt(b'Secret!')

Verifica rapida

Perché riutilizzare la chiave di un one-time pad è catastroficamente insicuro?

Riepilogo

XOR e il one-time pad sono concetti fondamentali. Nel prossimo argomento vedremo perché gli schemi XOR ingenui falliscono nella pratica e quali attacchi sfruttano il riutilizzo della chiave.

Domande Frequenti

La lezione «Cifratura XOR e one-time pad» è gratuita?

Sì — il testo completo di «Cifratura XOR e one-time pad» è 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 «Cifratura XOR e one-time pad»?

Costruisca un semplice cifrario XOR e scopra il suo equivalente a segretezza perfetta. 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 2 di 4.

Quanto tempo richiede la lezione «Cifratura XOR e one-time pad»?

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. Ripasso delle operazioni bitwise
  2. Cifratura XOR e one-time pad
  3. Perché XOR da solo non è sicuro
  4. XOR dentro AES e nei cifrari a flusso
← Torna a Cryptology Academy