WEBVTT 00:00:02.620 --> 00:00:08.214 INTERNET - CRITTOGRAFIA E CHIAVI PUBBLICHE 00:00:08.760 --> 00:00:10.820 Ciao, sono Mia Gil-Epner, 00:00:10.820 --> 00:00:12.363 mi sto specializzando in Informatica 00:00:12.363 --> 00:00:13.540 all'Università di Berkley 00:00:13.540 --> 00:00:15.760 e lavoro per il Dipartimento della Difesa, 00:00:15.760 --> 00:00:18.106 di cui cerco di tenere al sicuro i dati. 00:00:18.620 --> 00:00:21.900 Internet è un sistema aperto e pubblico, 00:00:21.900 --> 00:00:24.089 tutti noi inviamo e riceviamo dati 00:00:24.089 --> 00:00:26.429 attraverso linee condivise. 00:00:26.429 --> 00:00:28.524 Ma nonostante sia un sistema aperto 00:00:28.524 --> 00:00:30.989 continuiamo a scambiarci un sacco di dati personali 00:00:30.989 --> 00:00:32.685 come: numeri di carte di credito, 00:00:32.685 --> 00:00:35.610 dati bancari, password e email. 00:00:35.610 --> 00:00:38.639 Quindi, come tenere segreti tutti questi dati personali? 00:00:38.639 --> 00:00:40.669 Dati di ogni tipo possono esser resi segreti 00:00:40.669 --> 00:00:42.722 attraverso un processo noto come "cifratura": 00:00:42.722 --> 00:00:44.476 il rimescolamento del messaggio 00:00:44.476 --> 00:00:46.510 per nascondere il testo originale. 00:00:46.510 --> 00:00:48.404 Invece la "decifratura" è il processo 00:00:48.404 --> 00:00:50.016 con cui viene ricomposto il messaggio 00:00:50.016 --> 00:00:51.689 per renderlo leggibile. 00:00:51.989 --> 00:00:53.529 Si tratta di una semplice idea 00:00:53.529 --> 00:00:55.490 e le persone la mettono in atto da secoli. 00:00:55.490 --> 00:00:58.137 Uno dei primi e più noti metodi di cifratura 00:00:58.137 --> 00:00:59.885 fu il Cifrario di Cesare 00:00:59.885 --> 00:01:01.549 nome dovuto a Giulio Cesare 00:01:01.549 --> 00:01:04.634 un generale romano che cifrava i suoi ordini militari 00:01:04.634 --> 00:01:05.526 per esser sicuro che, 00:01:05.526 --> 00:01:07.519 se anche un messaggio fosse stato intercettato dai nemici, 00:01:07.519 --> 00:01:09.960 questi non sarebbero riusciti a leggerlo. 00:01:09.960 --> 00:01:11.914 Il Cifrario di Cesare è un algoritmo 00:01:11.914 --> 00:01:14.171 che sostituisce ogni lettera nel messaggio originale 00:01:14.171 --> 00:01:17.649 con una lettera che sta un certo numero di posizioni al di sotto nell'alfabeto. 00:01:17.649 --> 00:01:19.372 Visto che il numero di posizioni è noto 00:01:19.372 --> 00:01:21.046 solo al mittente e al destinatario, 00:01:21.046 --> 00:01:22.659 è considerato la "chiave". 00:01:22.659 --> 00:01:24.134 Questa permette al destinatario 00:01:24.134 --> 00:01:26.559 di decifrare il messaggio segreto. 00:01:27.109 --> 00:01:30.269 Ad esempio, se il messaggio originale è "HELLO", 00:01:30.269 --> 00:01:32.959 allora, usando l'algoritmo del Cifrario di Cesare 00:01:32.959 --> 00:01:34.260 con chiave 5, 00:01:34.260 --> 00:01:36.560 il messaggio cifrato sarà questo... 00:01:39.360 --> 00:01:41.015 Per decifrare il messaggio, 00:01:41.015 --> 00:01:43.132 il ricevente dovrebbe semplicemente usare la chiave 00:01:43.132 --> 00:01:45.002 per invertire il processo. 00:01:45.980 --> 00:01:48.370 Ma c'è però un grande problema con il Cifrario di Cesare, 00:01:48.370 --> 00:01:51.125 chiunque può facilmente rompere o violare 00:01:51.125 --> 00:01:52.630 il messaggio cifrato 00:01:52.630 --> 00:01:54.480 provando ogni chiave possibile. 00:01:54.480 --> 00:01:57.040 E nell'alfabeto inglese ci sono solo 26 lettere, 00:01:57.040 --> 00:01:59.283 il che significa che dovreste fare provare 00:01:59.283 --> 00:02:01.045 al massimo 26 chiavi 00:02:01.045 --> 00:02:02.570 per decifrare il messaggio. 00:02:03.050 --> 00:02:05.025 Ora, provare 26 chiavi possibili 00:02:05.025 --> 00:02:06.072 non è molto difficile, 00:02:06.072 --> 00:02:08.280 servirebbe circa un'ora. 00:02:08.280 --> 00:02:09.830 Quindi, complichiamo le cose. 00:02:09.830 --> 00:02:11.300 Invece di sfasare ogni lettera 00:02:11.300 --> 00:02:12.910 dello stesso numero di posizioni, 00:02:12.910 --> 00:02:15.880 sfasiamo ogni lettera di un numero di posizioni diverso. 00:02:15.880 --> 00:02:18.040 In questo esempio, una chiave a 10 cifre 00:02:18.040 --> 00:02:21.170 stabilisce di quante posizioni verrà sfasata ogni lettera 00:02:21.170 --> 00:02:24.300 per cifrare un messaggio più lungo. 00:02:25.950 --> 00:02:28.360 Indovinare questa chiave sarebbe davvero difficile. 00:02:28.360 --> 00:02:30.320 Con la cifratura a 10 cifre, 00:02:30.320 --> 00:02:33.300 avremmo 10 miliardi di possibili soluzioni. 00:02:34.180 --> 00:02:35.645 Ovviamente questo va ben oltre 00:02:35.645 --> 00:02:37.492 ciò che un qualunque essere umano potrebbe risolvere, 00:02:37.492 --> 00:02:39.600 gli servirebbero molti secoli. 00:02:39.600 --> 00:02:41.420 Ma oggi, un computer di fascia media, 00:02:41.420 --> 00:02:42.855 impiegherebbe pochi secondi 00:02:42.855 --> 00:02:45.260 per provare tutti i 10 miliardi di possibilità. 00:02:45.720 --> 00:02:47.315 Quindi, nel mondo contemporaneo, 00:02:47.315 --> 00:02:49.292 in cui i cattivi sono armati di computer 00:02:49.292 --> 00:02:51.030 anziché di matite, 00:02:51.030 --> 00:02:52.785 come si possono cifrare i messaggi 00:02:52.785 --> 00:02:54.320 con un grado di sicurezza tale 00:02:54.320 --> 00:02:56.190 che sia "troppo difficile" violarli? 00:02:56.190 --> 00:02:57.830 "Troppo difficile" 00:02:57.830 --> 00:03:00.485 significa che ci sarebbero troppe possibilità da calcolare 00:03:00.485 --> 00:03:02.290 in una ragionevole quantità di tempo. 00:03:02.770 --> 00:03:06.049 Oggi le comunicazioni sicure vengono cifrate 00:03:06.049 --> 00:03:08.259 utilizzando chiavi a 256 bit. 00:03:08.259 --> 00:03:10.214 Ciò significa che il computer di un cattivo 00:03:10.214 --> 00:03:11.659 che intercettasse il messaggio 00:03:11.659 --> 00:03:15.184 dovrebbe provare questo enorme numero di possibilità alternative 00:03:15.184 --> 00:03:18.180 prima di scoprire la chiave e violare il messaggio. 00:03:19.890 --> 00:03:23.200 Anche se si possedessero 100 mila super computer 00:03:23.200 --> 00:03:25.614 e ognuno fosse in grado di provare 00:03:25.614 --> 00:03:28.599 1 milione di miliardi di chiavi al secondo, servirebbero 00:03:28.599 --> 00:03:31.054 miliardi di miliardi di miliardi di miliardi di anni 00:03:31.054 --> 00:03:32.910 per provare tutte le possibili alternative, 00:03:32.910 --> 00:03:34.700 solo per violare un singolo messaggio 00:03:34.700 --> 00:03:37.120 protetto con la crittografia a 256 bit. 00:03:37.490 --> 00:03:39.550 Sappiamo che i chip dei computer 00:03:39.550 --> 00:03:41.865 vanno a velocità doppia e dimezzano la loro dimensione 00:03:41.865 --> 00:03:42.910 circa ogni anno. 00:03:42.910 --> 00:03:45.849 Se continuerà questo ritmo di progresso esponenziale, 00:03:45.849 --> 00:03:47.624 problemi oggi irrisolvibili 00:03:47.624 --> 00:03:50.540 diventeranno risolvibili tra poche centinaia di anni 00:03:50.540 --> 00:03:54.109 e 256 bit non saranno più sufficienti per stare al sicuro. 00:03:54.109 --> 00:03:55.424 E in effetti, in passato, 00:03:55.424 --> 00:03:58.062 abbiamo già dovuto aumentare la lunghezza della chiave standard 00:03:58.062 --> 00:04:00.470 per tenere il passo con la velocità dei computer. 00:04:00.950 --> 00:04:03.310 La buona notizia è che usare una chiave più lunga 00:04:03.310 --> 00:04:05.592 non rende solo un po' più complessa la cifratura, 00:04:05.592 --> 00:04:07.419 fa bensì aumentare esponenzialmente 00:04:07.419 --> 00:04:09.704 il numero di possibilità che servirebbero per violare 00:04:09.704 --> 00:04:10.679 un messagio cifrato. 00:04:11.369 --> 00:04:13.234 Quando il mittente e il destinatario 00:04:13.234 --> 00:04:14.592 condividono la stessa chiave 00:04:14.592 --> 00:04:16.570 per cifrare e decifrare il messaggio, 00:04:16.570 --> 00:04:18.539 si parla di CRITTOGRAFIA SIMMETRICA. 00:04:19.059 --> 00:04:20.569 Con la crittografia simmetrica, 00:04:20.569 --> 00:04:22.080 come il Cifrario di Cesare, 00:04:22.080 --> 00:04:25.175 la chiave segreta deve essere concordata in anticipo 00:04:25.175 --> 00:04:27.490 da due persone in privato. 00:04:27.490 --> 00:04:29.245 Questo può andar bene per le persone 00:04:29.245 --> 00:04:31.302 ma Internet è aperta e pubblica, 00:04:31.302 --> 00:04:33.391 quindi è impossibile per due computer 00:04:33.391 --> 00:04:35.240 "incontrarsi" in privato, 00:04:35.250 --> 00:04:37.259 per accordarsi su una chiave segreta. 00:04:37.259 --> 00:04:38.804 Invece i computer utilizzano 00:04:38.804 --> 00:04:40.350 chiavi di cifratura asimmetriche: 00:04:40.350 --> 00:04:41.685 una chiave pubblica 00:04:41.685 --> 00:04:43.637 che può essere condivisa con chiunque 00:04:43.637 --> 00:04:46.400 e una chiave privata che non va condivisa. 00:04:46.800 --> 00:04:49.569 La chiave pubblica serve per cifrare i dati 00:04:49.569 --> 00:04:52.779 e chiunque può usarla per creare un messaggio segreto, 00:04:52.779 --> 00:04:55.784 ma il messaggio può esser solamente decifrato 00:04:55.784 --> 00:04:58.789 da un computer che conosca la chiave privata. 00:04:59.185 --> 00:05:01.350 Il funzionamento si basa su principi matematici 00:05:01.350 --> 00:05:02.785 che non approfondiremo qui. 00:05:02.785 --> 00:05:04.117 Pensatela così: 00:05:04.117 --> 00:05:06.352 immaginate di avere una cassetta postale personale 00:05:06.352 --> 00:05:08.264 dove chiunque può depositare delle lettere, 00:05:08.264 --> 00:05:10.007 ma ha bisogno di una chiave per farlo. 00:05:10.007 --> 00:05:12.383 Potete fare molte copie della chiave di deposito 00:05:12.383 --> 00:05:13.961 e inviarne una ai vostri amici 00:05:13.961 --> 00:05:16.200 o anche renderla accessibile pubblicamente. 00:05:16.200 --> 00:05:18.270 I vostri amici o anche degli estranei 00:05:18.270 --> 00:05:19.785 possono usare la chiave pubblica 00:05:19.785 --> 00:05:21.482 per accedere al vostro spazio di deposito 00:05:21.482 --> 00:05:22.820 e lasciare un messaggio, 00:05:22.820 --> 00:05:24.997 ma solo voi potete aprire la cassetta postale 00:05:24.997 --> 00:05:26.411 con la vostra chiave privata 00:05:26.411 --> 00:05:29.235 per accedere a tutti i messaggi segreti che avete ricevuto. 00:05:29.235 --> 00:05:30.787 E potrete inviare messaggi sicuri 00:05:30.787 --> 00:05:32.080 in risposta ai vostri amici 00:05:32.080 --> 00:05:33.592 usando la chiave pubblica di deposito 00:05:33.592 --> 00:05:34.925 delle loro cassette postali. 00:05:34.925 --> 00:05:37.780 In questo modo le persone possono scambiare messaggi sicuri 00:05:37.780 --> 00:05:40.635 senza mai aver bisogno di accordarsi su una chiave privata. 00:05:41.045 --> 00:05:42.750 La crittografia a chiave pubblica 00:05:42.750 --> 00:05:46.826 è la base di tutti i sistemi di messaggistica sicura su Internet, 00:05:46.826 --> 00:05:51.026 compresi i protocolli di sicurezza SSL e TLS 00:05:51.026 --> 00:05:52.791 che garantiscono la nostra sicurezza 00:05:52.791 --> 00:05:54.424 quando navighiamo sul web. 00:05:54.424 --> 00:05:56.454 I computer odierni la sfruttano 00:05:56.454 --> 00:05:58.484 ogni volta che vedi il lucchetto 00:05:58.484 --> 00:06:02.544 o la scritta "https" nella barra degli indirizzi del browser, 00:06:02.544 --> 00:06:04.106 ciò significa che il computer 00:06:04.106 --> 00:06:06.066 sta usando la crittografia a chiave pubblica 00:06:06.066 --> 00:06:07.891 per rendere sicuro lo scambio di dati 00:06:07.891 --> 00:06:09.137 con il sito web visitato. 00:06:09.667 --> 00:06:12.322 Maggiore è il numero di persone che usa Internet, 00:06:12.322 --> 00:06:14.977 maggiore sarà il numero di dati personali trasmessi 00:06:14.977 --> 00:06:17.010 e la necessità di mantenere sicuri quei dati 00:06:17.010 --> 00:06:18.574 sarà ancora maggiore 00:06:18.574 --> 00:06:21.460 e, via via che i computer diventano più veloci, 00:06:21.460 --> 00:06:23.169 dovremo sviluppare nuovi metodi 00:06:23.169 --> 00:06:26.394 per rendere la cifratura "troppo difficile" da violare da parte dei nuovi computer. 00:06:26.394 --> 00:06:28.014 In questo consiste il mio lavoro 00:06:28.014 --> 00:06:30.144 e si evolve continuamente.