PKI er basert på såkalt asymmetrisk kryptering (i motsetning til symmetrisk). Dette betyr at man genererer to nøkler som hører sammen - en offentlig nøkkel (Public key) og en privat nøkkel (Private key). Nøklene er realiteten svært store primtall, som har den egenskapen at det som krypteres med den ene nøkkelen kan dekrypteres med den andre. Forutsetningen for at dette skal gi sikkerhet er at det kun er én bruker som skal kunne anvende den private nøkkelen. Brukeren kan gi den offentlige nøkkelen til hvem som helst, og de kan kryptere meldinger med brukerens offentlige nøkkel. Nå er det kun brukeren som kan lese meldingen (ved hjelp av hans private nøkkel). Tilsvarende kan brukeren lage en signatur på en melding, og legge denne ved meldingen (meldingen er i klartekst). Signaturen er kryptert med brukerens private nøkkel, og kan dekrypteres ved hjelp av hans offentlige nøkkel. Det inngår et ledd til i signering: det som signeres, er ikke meldingen, men et tall som er beregnet matematisk fra meldingen – en hash-verdi. Endres meldingen, endres hash-verdien. Mottakeren beregner så hash-verdien på den mottatte meldingen, for å videre dekryptere den opprinnelige hashen, og sammenligne disse. Er de like, er alt i orden, og meldingen er uendret siden den ble signert av brukeren, som man vet ble signert av riktig bruker. Er verdiene ulike, vil signaturen bli brutt.