Publika nyckel-chiffer

Det primära problemet med symmetrisk chiffer är inte dess säkerhet utan utbytet av nycklar. När väl sändaren och mottagren har bytt nycklar kan denna nyckel användas för att kommunicera säkert. Men vilken säker kanal användes för att utbyta själva nyckeln? Speciellt skulle det förmodligen vara mycket enklare för en som gör en attack att arbeta för att fånga upp nyckeln än det är att prova alla nycklar som finns i nyckelrymden. Ett annat problem är antalet nycklar som behövs. Another problem is the number of keys needed. Om det finns n människor som vill kommunicera, behövs n(n-1)/2 nycklar för varje par av människor som vill kommunicera privat. Detta kan vara OK för att litet antal människor, men det blir snabbt svårhanterligt för en stor gruppmänniskor.

Publik nyckel-chiffer uppfanns för att undvika problemet med nyckelutbyte helt och hållet. Ett publik nyckel-chiffer använder ett par av nycklar för att skicka meddelanden. De två nycklarna tillhör den som tar emot meddelandet. En nyckel är en publik key och kan ges till vem som helst. Den andra nyckeln är en privat nyckel och hålls hemlig av dessa ägare. En sändare krypterar meddelandet genom att att använda den publika nyckeln och väl kryperat kan endast den privata nyckeln dekryptera det.

Detta protokoll löser problemet med nyckelyutbytet med symmetriska chiffer. Det finns inget behov för sändaren och mottagaren att komma överens om en nyckel. Allt som behövs är att sändaren en tid före den hemliga kommunikationen för mottagarens publika nyckel. Dessutom kan denna enda publika nyckel användas av alla som vill kommunicera med mottagren. Så endast n nyckelpar behövs för att n människor skall kunna kommunicera säkert med var och en.

Publik nyckel-chiffer baseras på en envägs-funktion med en lucka. En envägs-funktion är en funktion som är enkel att beräkna, men dess invers är svår att beräkna. Till exempel är det enkelt att multiplicera två primtal med varandra, men det är svårt att faktorisera denna produkt till dess primtal. En envägs-funktion med en lucka är liknande, men den har en en lucka. Alltså, om lite information finns är det lätt att beäkna inversen. Till exempel om du har en siffra som skapats utifrån två primtal räcker det med att veta en av faktorerna blir det enkelt att räkna ut den andra. Givet ett publik nyckel-chiffer baserat på primtalsfaktorisering innehåller den publika nyckeln ett sammansatt nummer skapat från två stora primtal och krypteringslagoritmen använder produkten för att dekryptera meddelandet. Algoritmen för att dekryptera meddelandet kräver att de två primtalsfaktorerna är kända sä dekryptering är enkel om du har den privata nyckel som innehåller en av de faktorer men den blir extremt svår o du inte har den.

Som med bra symmetriska chiffer ligger all säkerhet hos nyckeln i publik nyckel-chiffer. Därför är nyckelstorleken ett mått på systemets säkerhet, men man kan inte jämföra storleken på en symmetrisk chiffer-nyckel och en nyckel för publik nyckel-chiffer som ett mått på relativ säkerhet. I en Brute force-attack på ett symmetriskt chiffer med en nyckelstorlek på 80 bitar, måste den som attackerar räkna upp till 280 nycklar för att hitta den korrekta nyckeln. I en Brute force-attack på ett publik nyckel-chiffer med en nyckelstorlek på 512 bitar,måste den som attackerar faktorisera en produkt kodad i 512 bitar (upp till 155 decimaler). Arbetslasten för den som attackerar sklijer sig fundamentalt beroende på chiffret som attackeras. Medan 128 bitar räcker för symmetriskt chiffer men givet dagens faktoriseringsteknik rekommenderas publika nycklar med 1024 bitar i de flesta fall.