Kada želimo biti sigurni da informacije koje razmenjujemo preko interneta ne mogu drugi pročitati i da nisu falsifikat, koristimo softver za šifrovanje radi formiranja dva ključa. Softver obično generiše dva prosta broja (broj koji se može podeliti bez ostatka samo sa sobom i jedinicom). Razmotrimo sledeći slučaj: ako softver koristi do 128 bitova za predstavljanje ovih brojeva, sa toliko bitova može izraziti: 3.402.823.669.209.384.634.633.746.074.300.000.000.000.000.000.000.000.000.000.000.000.000 različitih kombinacija.
Ako ova dva broja imaju po 75 cifara, njihov proizvod će imati 150 cifara. Ova dva prosta broja postaju privatni ključ i njega poseduje samo osoba koja ga je stvorila. Ta osoba zatim množi ta dva broja i objavljuje njihov proizvod negde gde ga svako može pročitati – npr. u štampanom ili elektronskom direktorijumu. Taj proizvod postaje javni ključ. Druga osoba koja želi da prvoj pošalje poverljiv dokument, šifruje datoteku koristeći ovaj javni ključ kao promenljivu vrednost u algoritmu koji softver primenjuje. Algoritam predstavlja niz operacija nad originalnim dokumentom čija primena menja podatke kako bi dokument postao nerazumljiv. Svako ko želi da dešifruje šifrovanu poruku kako bi dobio originalnu, morao bi da pronađe koja dva prosta broja od 3.402.823.669.209.384.634.633.746.074.300.000.000.000.000.000.000.000.000.000.000.000.000 kombinacija predstavljaju činioce javnog ključa. Kako za brojeve koji imaju preko osamdeset cifara nije poznata formula za rastavljanje na činioce, jedini način za pronalaženje privatnog ključa bi bio putem prostog pogađanja dok se ne naiđe na dva prava činioca. Ova radnja, potpomognuta korišćenjem čak i najsnažnijih računara, bi potrajala decenijama. Šifrovanje javnim ključem koristimo i za konstruisanje digitalnih potpisa. Digitalni potpis se obično formira izračunavanjem izvoda poruke ili heš vrednosti. To su brojevi koje dobijamo kada na sadržaj dokumenta primenimo algoritam heširanja. Rezultat je matematički rezime dokumenta. Ova heš vrednost se zatim šifruje privatnim ključem. Primalac poruke koristi javni ključ pošiljaoca za dešifrovanje heš vrednosti. On primenjuje na dokument isti algoritam kao i pošiljalac i, ako dokument potiče zaista od pošiljaoca, te dve heš vrednosti će se poklopiti. Ako je međutim i najmanja stvar promenjena ili se pošiljalac izdaje za nekog drugog, heš vrednosti će biti različite.