Krypteringsalgoritmer som bruker samme nøkkel for å kryptere og dekryptere er symmetriske krypteringsalgoritmer. En ny klasse av "offentlig nøkkel"-kryptering ble oppfunnet på 70-tallet, og den bruker et nøkkelpar, en for å kryptere og en annen for å dekryptere. Disse asymmetriske krypteringsalgoritmene gjør det mulig å publisere en nøkkel, og hemmeligholde den andre. Algoritmene er laget slik at det er ekstremt vanskelig å finne den hemmelige (private) nøkkelen, selv om den korresponderende offentlige nøkkelen er kjent. På denne måten kan man publisere krypteringsnøkkelen, og holde nøkkelen for dekryptering hemmelig, slik at envher kan sende kryptert informasjon kun til den som har nøkkelen for dekryptering tilgjengelig.