Cryptology Academy · Lezione

Cifratura pratica dei file con AES

Utilizzi OpenSSL e Python per cifrare e decifrare file reali con AES.

Lezione 4 di 413 passaggi

Cifratura pratica dei file con AES è una lezione Cryptology Academy gratuita su CoddyKit. Questa è la lezione 4 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 teoria incontra la pratica. In questa lezione cifreremo e decifreremo file reali usando AES-GCM in Python, la modalità consigliata per la cifratura autenticata.

Perché AES-GCM?

AES-GCM fornisce la Cifratura autenticata con dati associati (AEAD). Cifra il contenuto E produce un tag di autenticazione di 16 byte. Qualsiasi manomissione viene rilevata prima della decifratura.

Componenti di AES-GCM

Ingressi: chiave di 32 byte, nonce casuale di 12 byte, testo in chiaro e dati associati opzionali (AAD). Uscite: testo cifrato e tag di autenticazione di 16 byte. Il nonce deve essere univoco per ogni cifratura.

Installazione della libreria cryptography

pip install cryptography La libreria Python cryptography di PyCA è la libreria crittografica consigliata. Funge da wrapper per OpenSSL e fornisce sia ricette di alto livello sia primitive hazmat di basso livello.

Cifratura AES-GCM in Python

from cryptography.hazmat.primitives.ciphers.aead import AESGCM import os key = AESGCM.generate_key(bit_length=256) nonce = os.urandom(12) aad = b'file_version_1' aesgcm = AESGCM(key) ciphertext = aesgcm.encrypt(nonce, plaintext, aad)

Decifratura AES-GCM in Python

try: plaintext = aesgcm.decrypt(nonce, ciphertext, aad) except Exception: print('Decryption failed — tampered or wrong key') Se la verifica del tag non riesce, decrypt() genera un'eccezione. Non ignori mai questa eccezione.

Flusso di lavoro per la cifratura dei file

with open('input.bin', 'rb') as f: plaintext = f.read() ciphertext_with_tag = aesgcm.encrypt(nonce, plaintext, None) # Store: nonce (12 bytes) + ciphertext_with_tag with open('output.enc', 'wb') as f: f.write(nonce + ciphertext_with_tag)

Flusso di lavoro per la decifratura dei file

with open('output.enc', 'rb') as f: data = f.read() nonce = data[:12] ciphertext_with_tag = data[12:] plaintext = aesgcm.decrypt(nonce, ciphertext_with_tag, None)

Gestione dei nonce

Con AES-GCM, un nonce casuale di 12 byte è sicuro fino a 2^32 cifrature con la stessa chiave, prima che la probabilità di collisione diventi non trascurabile. Dopodiché, ruoti la chiave.

Uso di OpenSSL dalla riga di comando

# Encrypt: openssl enc -aes-256-cbc -pbkdf2 -in plain.txt -out encrypted.bin # Decrypt: openssl enc -d -aes-256-cbc -pbkdf2 -in encrypted.bin -out plain.txt Nota: modalità CBC — aggiunga il flag -GCM per la cifratura autenticata nelle versioni più recenti di OpenSSL.

Buone pratiche per la memorizzazione delle chiavi

Non inserisca mai le chiavi direttamente nel codice sorgente. Utilizzi variabili d'ambiente, AWS KMS, HashiCorp Vault o il portachiavi del sistema operativo. Ruoti regolarmente le chiavi. Revochi le chiavi quando il personale lascia l'organizzazione.

Verifica rapida

Che cosa accade quando AES-GCM rileva che il testo cifrato è stato manomesso?

Riepilogo

Ora è in grado di cifrare file con AES-GCM in Python. Passeremo quindi alla cifratura asimmetrica e impareremo RSA dalle basi.
Gratis per iniziare

Impara Cryptology Academy con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
67
Lezioni
261

Domande Frequenti

La lezione «Cifratura pratica dei file con AES» è gratuita?

Sì — il testo completo di «Cifratura pratica dei file con AES» è 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 pratica dei file con AES»?

Utilizzi OpenSSL e Python per cifrare e decifrare file reali con AES. 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 4 di 4.

Quanto tempo richiede la lezione «Cifratura pratica dei file con AES»?

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 di cifratura simmetrica
  2. Struttura di AES: round e matrice di stato
  3. Espansione della chiave AES e dimensioni delle chiavi
  4. Cifratura pratica dei file con AES
← Torna a Cryptology Academy