Publik nyckel, privat nyckel och asymmetrisk kryptering
I den här artikeln har vi introducerat begreppen publika nycklar, privata nycklar och principerna för asymmetrisk kryptering. Vi har jämfört deras för- och nackdelar mot symmetrisk kryptering, samt skillnaderna i deras användningssituationer.
Du kanske har hört talas om privata och publika nycklar i många sammanhang, men vet du verkligen vad de är?
Asymmetrisk kryptografi vs symmetrisk kryptografi
Privata och publika nycklar är begrepp inom asymmetrisk kryptografi (även känd som public-key-kryptografi, PKC).
Asymmetrisk kryptografi avser en metod för att kryptera eller signera data med två olika nycklar (privat nyckel + publik nyckel), vilket motsvarar behovet av dekryptering eller signaturverifiering. Den publika nyckeln är synlig för alla, medan den privata nyckeln är endast tillgänglig för nyckelägaren. Du kan lätt dra slutsatsen av nycklarnas namn.
Likadant kan du antagligen gissa att symmetrisk kryptografi avser metoden för att kryptera och dekryptera data med samma nyckel.
Vi använder därför enkel anteckning för att visa krypterings-/dekrypteringsprocessen för både symmetrisk och asymmetrisk kryptografi.
Det är viktigt att notera att krypterings-/dekrypteringsfunktionerna i symmetriska och asymmetriska krypteringsalgoritmer är olika och ofta använder olika algoritmer. Vanliga symmetriska krypteringsalgoritmer inkluderar DES, AES, RC2, RC4 och andra, medan vanliga asymmetriska krypteringsalgoritmer inkluderar RSA och EC.
Logto använder EC-algoritmen för kryptering och dekryptering av datatransmission eftersom den är mer effektiv och säker än RSA, du kan läsa detta inlägg för mer detaljer. Logto kommer att stödja RSA i nästa utgåva för bättre kompatibilitet med vissa äldre system.
Varför använda asymmetrisk kryptografi?
Asymmetrisk kryptografi löser problemet med nyckeldistribution i symmetrisk kryptografi.
Eftersom symmetrisk kryptering använder samma nyckel, kan distribution av nyckeln över en osäker nätverksanslutning riskera att exponera nyckeln för illvilliga tredje parter. En illvillig tredje part kan använda den stulna nyckeln för att få tillgång till all information som krypterats med den nyckeln, vilket utgör en betydande säkerhetsrisk.
Två vanliga användningsfall för asymmetrisk kryptografi
Skicka krypterad data
Avsändaren kan använda mottagarens publika nyckel för att kryptera informationen, och mottagaren använder sin privata nyckel för att dekryptera informationen.
Eftersom publika nycklar teoretiskt sett är tillgängliga för många människor i ett idealiskt scenario, kan mottagaren ta emot krypterad information från många avsändare. Dessutom kan flera avsändare inte veta vilken typ av information andra avsändare har skickat till mottagaren, eftersom endast mottagaren (innehavaren av den privata nyckeln) kan dekryptera och återställa informationen.
Publika och privata nycklar genereras ofta samtidigt. Det vi nämnde ovan är generering av privata och publika nycklar på en part, och sedan distribuera den publika nyckeln till dess användare. Om du behöver säkerställa säker kommunikation mellan båda parter, behöver då båda parter generera sina egna privata och publika nycklar, och sedan utbyta sina respektive publika nycklar. På detta sätt har båda parter varandras publika nycklar, och de kan använda sina egna privata nycklar och den andra partens publika nyckel för kryptering och dekryptering.
Använda en signatur för att säkerställa datafidelity
I asymmetrisk kryptografi kan den part som innehar den privata nyckeln signera de data de skickar. Därefter kan mottagaren med den publika nyckeln verifiera datans och signaturens konsistens när de mottagit data, vilket säkerställer att datan inte har ändrats under överföringen.
Med hjälp av anteckningen vi definierade i föregående avsnitt, kan signering och signaturverifiering representeras som följande:
Verifiering av digital signatur bevisar att den part som genererade signaturen känner till den motsvarande privata nyckeln.
Du känner antagligen igen dessa två användningsfall mycket väl. I vårt dagliga liv använder nästan alla tjänster med server-klientarkitektur asymmetrisk kryptografi för att säkerställa datasäkerhet.
Som ett snabbt växande användaridentitetsramverk använder Logto också i stor utsträckning PKC för att säkerställa säkerheten för användardata. När användare har slutfört inloggningsprocessen, utfärdar Logto en åtkomsttoken till användarna för att ge dem specifika behörigheter att få åtkomst till de nödvändiga resurserna. Logtos publicerade publika nyckel används för att verifiera att åtkomsttokenen verkligen utfärdats av Logto och inte har manipulerats av illvilliga angripare.
Återfall av asymmetrisk kryptografi
Generellt är nyckellängden för symmetrisk kryptering 128 eller 256 bitar, medan nyckellängden för asymmetrisk kryptering kan nå 4 096 bitar. Detta beror på att den privata nyckeln och den publika nyckeln är matematiskt relaterade och unika nyckelpar. I teorin, genom att känna till den publika nyckeln, är det möjligt att beräkna den privata nyckelns värde, men på grund av algoritmens komplexitet tar det ofta en avsevärd mängd tid. För att göra uppgiften att "knäcka" den privata nyckeln "omöjlig" är en enkel metod att använda längre nyckellängder.
Slutsatser
Asymmetrisk kryptering förbrukar mer beräkningsresurser och tid jämfört med symmetrisk kryptering under beräkningar enligt diskussionen i föregående avsnitt. I applikationer där kommunikationen är frekvent kan den utbredda användningen av asymmetrisk kryptering påverka prestanda och användarupplevelse.
I affärsscenarier används ofta symmetrisk och asymmetrisk kryptering tillsammans för att balansera prestanda och datasäkerhet. När du bygger din egen tjänst kan du överväga datasäkerhetskraven vid varje steg och välja de lämpliga krypteringsalgoritmerna därefter.