Privat nyckelkryptering (även känd som symmetrisk kryptering) anses vanligtvis * effektivare * än offentlig nyckelkryptering (även känd som asymmetrisk kryptering), men inte nödvändigtvis * säkrare * i absolut mening. "Säkrare" beror starkt på sammanhanget och implementeringen.
Här är en uppdelning:
Privat nyckelkryptering:
* Fördelar: Mycket snabbare och beräkningsmässigt billigare. Detta gör det lämpligt för att kryptera stora mängder data. En enda nyckel används för både kryptering och dekryptering, vilket förenklar processen.
* Nackdelar: Att dela den hemliga nyckeln mellan parter är en stor utmaning. Om nyckeln komprometteras, komprometteras alla krypterade data. Nyckelhantering (distribution, rotation, lagring) blir ett betydande säkerhetsproblem.
offentlig nyckelkryptering:
* Fördelar: Löser nyckelfördelningsproblemet. Varje part har en offentlig nyckel (för kryptering) och en privat nyckel (för dekryptering). Offentliga nycklar kan distribueras i stor utsträckning utan att kompromissa med säkerheten. Detta är idealiskt för säker kommunikation över otillförlitliga nätverk. Används för digitala signaturer för autentisering och icke-avvisande.
* Nackdelar: Betydligt långsammare och mer beräkningsintensivt än privat nyckelkryptering. Mottagliga för vissa attacker om de inte implementeras korrekt (t.ex. valda-kapiffertattacker).
Sammanfattningsvis:
Inte heller är i sig "säkrare". Ett väl implementerat privat nyckelsystem som använder robusta nyckelhanteringsmetoder kan vara extremt säkert. Den logistiska svårigheten att säkert dela nyckeln gör det dock mindre praktiskt för många applikationer. Offentliga nyckelsystem är i sig bättre för säker kommunikation över otillförlitliga nätverk, men de är mer komplexa och beräkningsmässigt dyra.
Ofta används hybridsystem. Offentlig nyckelkryptografi används för att säkert byta ut en sessionnyckel för privat nyckelkryptering. Sessionnyckeln används sedan för effektiv kryptering och dekryptering av bulkdata. Detta kombinerar styrkorna hos båda metoderna. Detta är tillvägagångssättet som används i TLS/SSL (används för HTTPS).