Non saprei come esprimere la figura di merda del giornalismo italiano dopo che si e' chiarita una cosa, attraverso la smentita dei diretti interessati: non e' mai successa la storia delle chiavette USB infettate da Putin col virus dello spionaggio capaci di spiare le comunicazioni. Trovate la smentita qui (1)
Trattandosi di giornali gestiti da Marchionne/Elkann, gli stessi che da anni fanno campagna antitedesca perche' le auto di Marchionne vengono mazzolate in qualita' e quantita' (2) , non mi stupisce che il padrone abbia ordinato di fare qualcosa contro l'iniziativa del tedeschi contro lo spionaggio americano: sebbene Marchionne venga dipinto come "italiano", non e' certo uno di Casalecchio di Reno.(3)
Il giornalista pompinomane aveva evidentemente bisogno di fare quel pompino, e lo ha fatto. Coi tempi che corrono avere qualcosa di caldo da buttare in pancia , per un giornalista, e' gia' qualcosa. Detto questo, Putin ha pronunciato una frase che ha attizzato la vostra curiosita', e per questo mi arriva una domanda interessante.
Putin ha dichiarato che il "suo sistema di crittazione" e' semplicemente impenetrabile. Cosi' mi viene chiesto "Putin sta facendo lo sborone, o esistono davvero sistemi impenetrabili?".
La cosa richiede una certa spiegazione, ma la risposta e' che se l'attacco di limita all'intercettazione, il sistema di crittazione perfetto esiste , ed e' dimostrato matematicamente essere impossibile da decrittare. Il problema e' che, essenzialmente, e' impossibile da implementare per uso privato.
Si tratta di sistemi che discendono dalla crittografia classica, per la precisione dalla crittografia di Vigenere. Vigenere elaboro' un sistema crittografico che di per se' non era fortissimo, utilizzando una matrice bidimensionale come chiave, cosa che riduceva il problema (almeno in termini matematici) ad un normale cifrario di Cesare ripetuto N volte.
Il problema di Vigenere pero' era il fatto che sanci' per la prima volta un principio, ovvero che la chiave di crittazione dovesse essere UNICA e lunga quanto il messaggio da cifrare. Questo di per se' non vi offre garanzia di decrittabilita', nella misura in cui usando una normale matrice (come faceva Vigenere) tornate sempre al caso di un cifrario di Cesare ripetuto N volte. Anche se N puo' crescere, l'arrivo dei calcolatori rende molto semplice attaccare un cifrario di Vigenere.
Il guaio viene con i cifrari di Vernam.
Attaccare un cifrario di Vigenere, cioe', e' semplice sino a quando la matrice con cui Vigenere usava cifrare il traffico e' congruente, ovvero inizia a ripetersi dopo N volte che la usate. Se invece usiamo un generatore casuale come chiave, e la chiave e' COMPLETAMENTE sconosciuta in anticipo, che cosa succedera?
Qui viene il bello, ovvero viene dimostrato, nel 1949, che nel caso in cui:
- La chiave usata sia completamente casuale.
- La chiave usata sia unica, ovvero mai usata due volte.
- La lunghezza della chiave sia identica alla quantita' di simboli da crittare.
Voi direte: perche' allora non la usano tutti?
Risposta: perche' occorre innanzitutto usare dei numeri casuali, ma davvero casuali. Anche solo piazzando un microfono e registrando il traffico in strada, l'analisi statistica delle frequenze nel lungo termine vi metterebbe in crisi. Occorre cioe' generare dei numeri casuali da usare come chiave, e questi numeri devono ANCHE avere la caratteristica di non ripetersi.(4)
E la cosa tremenda e' che se voi che crittate avete a disposizione un cifrario, anche chi legge deve avere a disposizione LO STESSO cifrario. Se il cifrario cade nelle mani di chi ascolta, non serve piu' a nulla.
A questa famiglia, i cifrari di vernam, appartiene ANCHE (ma non solo) il cosiddetto "xor con pad". Ma il problema non e' il metodo con cui fate la permutazione: se dentro un insieme finito di simboli il simbolo A diventa H, si tratta sempre di una permutazione semplice: che la facciate con Xor o con altro, cambia poco.
Allora, torna la domanda: in che modo si implementano e chi li usa?
Prendiamo per esempio una nave della Marina che salpa. Il comandante in persona si rechera' presso l'ufficio comando del comando navale , dentro l'arsenale della marina nel quale la nave e' salpata. A seconda della durata del viaggio, prendera' con se un supporto informatico (un tempo era un taccuino) con una interminabile lista di numeri casuali. Diciamo 500KB. Sembrano pochi, ma se considerate che le comunicazioni importanti viaggiano come testo, e come testo in 500KB ci stanno diversi libri, capite bene che sia sufficiente per una missione diciamo di sei mesi.
Prendiamo per esempio una nave della Marina che salpa. Il comandante in persona si rechera' presso l'ufficio comando del comando navale , dentro l'arsenale della marina nel quale la nave e' salpata. A seconda della durata del viaggio, prendera' con se un supporto informatico (un tempo era un taccuino) con una interminabile lista di numeri casuali. Diciamo 500KB. Sembrano pochi, ma se considerate che le comunicazioni importanti viaggiano come testo, e come testo in 500KB ci stanno diversi libri, capite bene che sia sufficiente per una missione diciamo di sei mesi.
Il comandante esce , accompagnato da un maresciallo di scorta armato, dall'ufficio comando, si reca a bordo , e deposita il floppy al caposervizio della GE, il reparto guerra elettronica. Il floppy viene copiato nel sistema della nave, e distrutto. Ovviamente oggi non siamo nel 1995, quindi magari si usano chiavette o altri supporti, ma il succo e' quello.
Da quel momento, la nostra nave ha lo stesso cifrario del comando navale. Che a sua volta lo ha ricevuto dallo stato maggiore, che lo ha avuto dai servizi stessi. Ogni nave ha la propria chiave.
Esiste anche una versione che credo sia stata abbandonata : ogni nave ha la propria chiave, che viene generata a bordo della nave stessa, ed il comandante anziche' prelevare la chiave al comando la consegna al comando stesso. In tal caso, per beccare il generatore di numeri occorre catturare la nave, il che espone al rischio che il generatore sia studiato.
Sino a quando e' possibile garantire che il cifrario NON cada in mani nemiche, e sino a quando si dispone di numeri casuali mai ripetuti , la comunicazione non e' decrittabile. Questo pone dei limiti:
- Potete comunicare solo con persone che hanno ricevuto la stessa chiave.
- Se qualcuno viene a conoscenza della chiave, allora la comunicazione e' compromessa.
- Potete comunicare quanto e' lunga la chiave: se anche aveste un disco rigido con una sequenza lunga 1TB, allora potete comunicare solo 1TB di dati. Dopodiche' vi ripeterete, e qualcuno potrebbe beccarvi con analisi statistica.
ovviamente questo ha dei limiti evidenti. Se e' facile per la marina (e per certi versi per l'aviazione) garantire l'integrita' di una nave e delle sue chiavi, nel senso che in caso di affondamento vengono distrutte e in caso di cattura vengono distrutte, in prima linea durante un combattimento distribuire chiavi ai singoli plotoni e' difficile se non impossibile, e dare ai plotoni un generatore espone al rischio di cattura e utilizzo malizioso.
Inoltre non puo' diventare un sistema di comunicazione diffuso, nella misura in cui normalmente viene a mancare il canale sicuro per consegnare le chiavi. Certo, la vostra banca potrebbe consegnarvi una chiavetta con dentro 20MB di numeri casuali mai ripetuti, per usarla onde crittare le vostre password (e in 20MB di password ne crittate!) ma se qualcuno vi ruba la chiavetta, ha preso chiavi per crittare la password.
EÄ vero che i russi usano queste tecniche? Beh, probabile che TUTTI le usino, nel momento in cui si trattasse di comunicare SOLO tra un gruppo di ministri. Certo, e' possibile estendere questo metodo a un certo numero di funzionari importanti. Considerato che in un telefonino moderno trova posto una SDcard da diversi GB, e che con un codec adeguato il suono va a pochi Kb al secondo, una tecnica xor con pad, avendo 32 GB di pad, vi permette di telefonare per un discreto tempo senza essere intercettati.
Occorre "solo" che un solerte funzionario si prenda cura di sostituire la chiave di tanto in tanto, o quando la esaurite.
Come si rompe questo metodo? In termini informatici, non si rompe affatto: vi occorre procurarvi il pad. Durante la guerra fredda gli agenti russi usavano un taccuino con sopra i numeri allo scopo di cifrare. Poi bruciavano il taccuino. Avevano sviluppato la loro crittazione con pad, che non era uno xor puro, e fu impossibile decrittare tutte quelle volte in cui non fu possibile rubare il taccuino.
Allora, i limiti di sicurezza di un metodo simile sono:
- Se il vostro nemico non ha uomini sul territorio ma usa esclusivamente sistemi di intercettazione, avete la completa sicurezza del pad a patto di consegnarlo a mano. In quel caso, il vostro nemico NON HA SPERANZE.
- Se il vostro nemico invece ha uomini sul territorio, e puo' rubare il pad (la chiave) invece e' ESTREMAMENTE facile rompere il codice.
Voi direte: ma un sistema di crittazione basato sul pad e' perfetto: perche' non inventiamo un generatore di numeri casuali e mai ripetuti che non necessiti di scambiarsi fisicamente le chiavi? BAsterebbe avere due generatori identici ai due lati, che producano la stessa sequenza. La risposta e' abbastanza articolata, ma chiara:
- Se sapete come generare dei VERI numeri casuali in maniera che siano CASUALI ma riproducibili senza comunicare, e mai ripetuti, scrivete come si fa, fatevi avanti e andate a prendere il vostro Nobel.
- Se il generatore della vostra controparte cade in mano al nemico, siete punto a capo e dovete cambiare generatore. Era meglio cambiare il pad, economicamente parlando.
In realta' qualcosa di simile fu fatto durante la guerra fredda. Esisteva una "linea rossa" tra Washington e Mosca, che veniva criptata usando un cifrario condiviso , generato registrando la radiazione cosmica. Sebbene la mossa sembrasse sensata, occorreva pero', come al solito:
- Che il cifrario fosse condiviso.
- CHe entrambi volessero usarlo.
e non era nemmeno chiaro chi diavolo dovesse spiare questa comunicazione, visto che essendo USA e URSS le due superpotenze, e tutti gli altri (o quasi) allineati, avere questa conoscenza era di limitatissima utilita'.
Cosi', in realta' per piccoli gruppi di persone, le comunicazioni sono semplicemente impossibili da decifrare, qualora usino dei meccanismi di cifratura di Vernam.
Quando il gruppo si allarga MOLTO, il cifrario di Vernam diventa insicuro perche' troppe persone hanno i pad. Anche generando un pad per ogni controparte, chi deve chiamare molte persone deve avere un archivio immenso di pad. Inoltre, va comunque garantita la sicurezza FISICA di ogni pad , contro il furto o la copia da parte di un agente nemico infiltrato.
Questo punto risponde chiaramente alla domanda "Ma Putin dispone davvero di un sistema di comunicazioni impenetrabile?". La risposta e':
- Ne dispone come tutti i governi occidentali e del patto di Varsavia, sin dalla guerra fredda.
Quanto e' sicuro questo metodo?
Sono metodi difficili da implementare end-to-end?
Fa bene quindi Putin ad essere sicuro dei suoi metodi di crittazione?
- E' sicuro nella misura in cui si puo' garantire la sicurezza fisica delle chiavi condivise.
- Nel caso di algoritmi simili, la mera intercettazione e' inutile. Sono avvantaggiati i servizi segreti che hanno molte spie sul posto, perche' potrebbero intercettare fisicamente le chiavi. Chi si limiti ad intercettare e' impotente. PRISM e' molto sopravvalutato.
- L'operazione di XOR e' banale, la generazione del pad che sia casuale e mai ripetuto invece richiede apparecchi costosi.
Sono metodi difficili da implementare end-to-end?
- Si tratta di tenere segreto il pad, ovvero di impedire che caschi in mano al nemico. E' difficile quanto limitare l'accesso fisico a qualsiasi altra cosa, ed e' costoso quanto consegnare un supporto fisico su un canale sicuro.
Fa bene quindi Putin ad essere sicuro dei suoi metodi di crittazione?
- Sinche' si trova in Russia, ove i canali di distribuzione dei pad sono sicuri, o si muove su una nave della marina, da dove comunica con altri e ove non puo' salire nessuno che non sia un militare russo, fa bene ad essere certo dei suoi segreti.
Uriel
(2) Mi chiedo perche' non se la prenda con le auto giapponesi o francesi, che sono piu' vecine al suo segmento di vendita.
(3) Sull'abitudine italiana di chiamare italiano qualsiasi cosa abbia un collegamento con l'italia scrivero' un articolo piu' avanti.
(4) La pura randomicita' non impedisce ad un numero (o ad una seguenza) di ripetersi, in se e per se'.