Op deze pagina, ga je leren over een veelgebruikte manier van versleutelen die zeer veilig is.
Het fundamentele probleem van cryptografie is om een bericht te versturen dat niet onderschept kan worden. Symmetrische versleuteling heeft een fundamentele zwakte: de sleutel om het bericht te ontcijferen is ook een bericht dat verzonden moet worden, en niet onderschept mag worden.
Publiekesleutelcryptografie is een wiskundige techniek waarbij het probleem van het verzenden van een geheime sleutel ontweken wordt. In dit systeem bezit iedere persoon twee sleutels: één privé-sleutel die alleen die persoon zelf kent, en één publieke sleutel die iedereen mag weten. Als Bob een geheim bericht naar Alice wil sturen, dan versleutelt hij het bericht met de publieke sleutel van Alice. Niemand anders dan Alice kan nu dit bericht decoderen. Alleen haar privé-sleutel kan de versleuteling ontdoen. Daarnaast is het ook onmogelijk om de privé-sleutel te weten te komen door de publieke sleutel te bekijken.
Veilige HTTP-verbindingen (je herkent dit aan https:// in plaats van http://) gebruiken een protocol dat Transport Layer Security (TLS) heet.Soms gebruiken ze nog een ouder protocol, Secure Sockets Layer (SSL). Allebei de protocollen maken gebruik van publieke sleutels. Met SSL/TLS, stuurt de website die je bezoekt zijn publieke sleutel en je browser gebruikt die sleutel om jouw informatie te versleutelen.
SSL/TLS (secure sockets layer/transport layer security, in het Nederlands veilige-socketslaag/transportlaagbeveiliging) is de standaard die gebruikt wordt voor informatie die cryptografisch beveiligd is en wordt verzonden over het internet.
Ontbinden in factoren is het opdelen van een product in kleinere delen. Je kan bijvoorbeeld 15 ontbinden in de factoren 3 en 5, omdat 3×5=15.
Om goed te werken moet een cryptografische methode makkelijk te gebruiken zijn voor de bezitter van de privé-sleutel en moeilijk te kraken voor alle andere mensen. Maar wat betekent "moeilijk"? Huidige cryptografische methods maken gebruik van het feit dat het lastig is om hele grote getallen te ontbinden in factoren. Er is geen bewijs dat niemand een snelle manier kan vinden om het te doen, maar we weten vrij zeker dat het niet zal gebeuren omdat dit probleem uitgebreid is onderzocht door wiskundigen. (Aan de andere kant, wanneer quantumcomputers mogelijk zijn, zal ontbinden in factoren heel makkelijk zijn en hebben we nieuwe cryptografische methodes nodig.)
Omdat de cryptografische methodes die gebruikt worden in deze standaarden, voor iedereen te bekijken zijn, kunnen wiskundigen bestuderen hoe moeilijk het is om die methodes te breken. Dit lijkt misschien vreemd, als je iets geheim wilt houden, zou je dan niet de techniek ook geheim houden? Maar algoritmes die je geheimhoudt, kunnen fouten bevatten die je niet ziet, tot dat iemand met slechte bedoelingen ze vindt. Door dat de standaarden open zijn voor iedereen, kan een algoritme bestudeerd worden voordat het gebruikt wordt.
Certificaatautoriteiten geven certificaten af die verifiëren wie een bepaalde sleutel bezit die gebruikt wordt voor beveiligde communicatie.
Versleuteling met een publieke sleutel lost niet magisch alle problemen op. Iemand die afluistert (een persoon genaamd Eva, bijvoorbeeld) zou een neppe publieke sleutel kunnen maken waarbij ze doet alsof ze Alice is. Bob kan dan per ongeluk zijn bericht versleutelen met de neppe sleutel, terwijl het bericht voor Alice bedoeld is. Eva kan dan gewoon Bobs bericht lezen. In de praktijk wordt dit probleem opgelost door gebruik te maken van een derde partij, genaamd certificaatautoriteiten, om te verzekeren of een publieke sleutel echt is. In de veiligheidsinformatie van je browser kan je alle certificaatautoriteiten zien die je browser vertrouwt.