0:00:02.940,0:00:08.500 Het internet: codering en openbare sleutels 0:00:08.990,0:00:14.150 Hallo ik ben Mia Gil-Epner, ik studeer [br]Informatica op UC Berkeley, en ik werk 0:00:14.150,0:00:19.460 voor Defensie, waar ik probeer informatie[br]veilig te houden. Het internet is 0:00:19.460,0:00:25.510 een open en openbaar systeem. We versturen[br]en ontvangen allemaal informatie over 0:00:25.510,0:00:30.039 gedeelde kabels en verbindingen. Maar[br]hoewel het een open systeem is, wisselen 0:00:30.039,0:00:35.890 we nog steeds veel privé informatie uit. Zaken zoals creditcard-[br]nummers, bankinformatie, wachtwoorden en e-mails. 0:00:35.890,0:00:40.690 Hoe worden al deze privé zaken geheim gehouden?[br]Data van elk type kan geheim worden gehouden 0:00:40.690,0:00:45.299 door een proces dat codering wordt genoemd, [br]het vervormen of wijzigen van het bericht 0:00:45.309,0:00:51.900 om de originele tekst te verbergen. Decoderen is het [br]omgekeerde proces, dat is het weer leesbaar maken. 0:00:51.900,0:00:56.970 Dit is een eenvoudig idee, en mensen doen[br]dit al eeuwen. Een van de eerste bekende 0:00:56.970,0:01:02.379 methoden van coderen was de Caesarcijfer.[br]Genoemd naar Julius Caesar, een Romeinse 0:01:02.379,0:01:07.220 generaal die zijn militaire bevelen[br]codeerde om ervoor te zorgen dat als een 0:01:07.220,0:01:12.540 bericht door de vijand werd onderschept,[br]deze dat niet kon lezen. De Caesarcijfer is 0:01:12.540,0:01:16.759 een algoritme dat elke letter in het originele[br]bericht vervangt door een letter die wat 0:01:16.759,0:01:21.259 later in het alfabet voorkomt. Als het cijfer iets[br]is dat alleen de verzender en ontvanger 0:01:21.259,0:01:28.640 weten, dan wordt het de sleutel genoemd.[br]Het stelt de lezer in staat om het geheime 0:01:28.640,0:01:35.869 bericht te decoderen. Als je originele bericht "HALLO"[br]is dan zal het met een Caesarcijfer-algoritme 0:01:35.869,0:01:43.259 met een sleutel van 5 er uitzien als... Voor het decoderen[br]van het bericht hoeft de ontvanger alleen maar de sleutel 0:01:43.259,0:01:50.179 te gebruiken om het proces om te keren. Maar er zit[br]een groot nadeel vast aan de Caesarcijfer: iedereen 0:01:50.179,0:01:55.569 kan makkelijk het gecodeerde bericht ontcijferen door[br]elke mogelijke sleutel te proberen, en in het alfabet 0:01:55.569,0:02:00.389 zitten slechts 26 letters, en dat betekent [br]dat je slechts 26 letters hoeft te proberen om 0:02:00.389,0:02:06.810 het bericht te decoderen. Het proberen te decoderen[br]van 26 mogelijke sleutels is niet erg moeiljk. 0:02:06.810,0:02:13.050 Het kost je hooguit een uur of twee. Laten we het daarom[br]moeiljker maken. Inplaats van elke letter met dezelfde hoeveelheid 0:02:13.050,0:02:18.920 te verschuiven, laten we elke letter verschuiven[br]met een andere hoeveelheid. In dit voorbeeld toont 0:02:18.920,0:02:26.560 een sleutel van tien cijfers hoeveel posities elke opvolgende[br]letter wordt verandert om een langer bericht te coderen. 0:02:26.560,0:02:34.160 Het raden van deze sleutel wordt echt erg moeilijk. Met een[br]tiencijferige codering zijn er 10 miljard mogelijke sleutels. 0:02:34.160,0:02:39.860 Dat is duidelijk meer dan een mens kan hopen op te lossen, [br]dat zou vele eeuwen duren. 0:02:39.860,0:02:46.030 Maar de gemiddelde moderne computer heeft slechts enkele [br]seconden nodig om alle 10 miljard mogelijkheden uit te proberen. 0:02:46.030,0:02:51.240 Dus hoe kun je in de moderne wereld waar [br]de schurken gewapend zijn met computers 0:02:51.240,0:02:57.890 in plaats van potloden, je bericht zo veilig coderen[br]dat ze te moeilijk zijn om te kraken? Met te moeilijk 0:02:57.890,0:03:03.760 wordt bedoeld dat er te veel mogelijkheden zijn [br]om in een redelijk tijdsbestek te berekenen. 0:03:03.760,0:03:10.200 Moderne communicatie wordt gecodeerd met 256-bit[br]versleuteling. Dat betekent dat de computer van een schurk 0:03:10.200,0:03:16.290 die jouw bericht onderschept al deze [br]mogelijke opties moet proberen... totdat deze 0:03:16.290,0:03:24.040 de sleutel ontdekt en het bericht kan kraken. Zelfs [br]als je 100 duizend supercomputer hebt, en elk 0:03:24.040,0:03:30.680 van hen in staat is om een miljarden sleutels elke [br]seconde te proberen, dan nog zou het triljoenen 0:03:30.680,0:03:37.690 jaren duren om elke optie te proberen, gewoon om een [br]enkel bericht beschermt door 256 codering te kraken. 0:03:37.690,0:03:43.320 Natuurlijk worden computerchips elk jaar [br]twee keer zo snel en de helft kleiner of zo. 0:03:43.320,0:03:48.400 Als die snelheid van exponentiële groei aanhoudt,[br]dan zijn de onoplosbare problemen van vandaag 0:03:48.400,0:03:54.680 binnen enkele honderden jaren op te lossen[br]en zijn 256 bits niet voldoende om veilig te zijn. 0:03:54.680,0:04:01.070 In feite hebben we reeds de standaard sleutellengte langer [br]moeten maken om de snelheid van computers bij te houden. 0:04:01.070,0:04:05.540 Het goede nieuws is dat het gebruik van een langer sleutel[br]het coderen van berichten niet moeilijker maakt, maar 0:04:05.540,0:04:11.660 het vergroot exponentieel het aantal gissingen[br]nodig om een versleuteling te kraken. 0:04:11.660,0:04:16.779 Als de afzender en ontvanger dezelfde sleutel delen[br]om een bericht te vervormen en te decoderen 0:04:16.779,0:04:24.199 dan heet dat Symmetrische codering. Dankzij Symmetrische codering, [br]en net als Caesarcijfer, moet de geheime sleutel 0:04:24.199,0:04:29.710 van tevoren overeen zijn gekomen door twee mensen in een[br]privé gesprek. Dat is fijn voor mensen, maar het internet 0:04:29.710,0:04:35.840 is een open en openbare ruimte, en dus kunnen twee [br]computer elkaar niet privé "ontmoeten" om een geheime 0:04:35.840,0:04:41.599 sleutel overeen te komen. In plaats daarvan maken[br]computers gebruik van Asymmetrische versleuteling, 0:04:41.599,0:04:49.020 een openbare sleutel die met iedereen kan worden uitgewisseld[br]en een privé sleutel die niet wordt gedeeld. De openbare sleutel 0:04:49.020,0:04:55.800 wordt gebruikt om data te coderen en iedereen kan deze[br]gebruiken om een geheim bericht te creëren, maar het 0:04:55.800,0:05:01.270 geheim kan alleen worden gedecodeerd door een computer [br]met toegang tot de privé sleutel. Dit werkt met wat wiskunde 0:05:01.270,0:05:06.129 waar we nu niet op in gaan. Maar stel je voor dat je een privé [br]brievenbus hebt waar iederen post in kan doen 0:05:06.129,0:05:11.430 maar daarvoor wel een sleutel nodig heeft. [br]Je kunt veel duplicaten 0:05:11.430,0:05:16.509 maken van de depotsleutel en deze naar je[br]vriend sturen of openbaar beschikbaar stellen. 0:05:16.509,0:05:21.400 Je vriend of zelfs een vreemde kan de openbare sleutel[br]gebruiken om de postgleuf te openen en er post 0:05:21.400,0:05:27.400 in te doen. Maar alleen jij kan de brievenbus openen[br]met je privé sleutel om toegang te krijgen tot alle 0:05:27.400,0:05:31.539 geheime berichten die je hebt ontvangen. En je kunt[br]beveiligd bericht naar je vriend terugsturen 0:05:31.539,0:05:37.620 door de openbare depotsleutel van zijn brievenbus te gebruiken.[br]Op deze manier kunnen mensen beveiligde berichten uitwisselen 0:05:37.620,0:05:43.699 zonder ooit overeenstemming te bereiken over een privé sleutel.[br]Cryptografie voor openbare sleutels is het fundament 0:05:43.699,0:05:49.340 van alle beveiligde berichtgeving op het open internet.[br]Inclusief de beveiligingsprotocollen die bekend staan als 0:05:49.340,0:05:55.900 SSL en TLS, die ons beschermen als we op het web[br]surfen. Je computer gebruikt dit tegenwoordig 0:05:55.900,0:06:01.400 elke keer als je het kleine slotje of de letters [br]HTTPS inde adresbalk van je browser zit staan. 0:06:01.400,0:06:07.409 Dit betekent dat je computer gebruik maakt van[br]openbare versleuteling om data veilig te uit te wisselen 0:06:07.409,0:06:13.400 met de website waar je op zit. Hoe meer mensen [br]er op het internet komen, hoe meer privé data 0:06:13.400,0:06:19.080 zal worden overgebracht, hoe belangrijker [br]de behoefte om die data te beschermen wordt. 0:06:19.080,0:06:24.059 Terwijl computers steeds sneller worden, [br]moeten wij nieuwe manieren ontwikkelen om codering 0:06:24.059,0:06:29.259 te moeilijk te maken voor computers om te breken. Dit is wat[br]ik doe met mijn werk, en het staat nooit stil.