
Originali versija iš ši istorija pasirodė žurnale Quanta.
Tūkstančius metų, jei norėjote išsiųsti slaptą žinutę, iš esmės buvo vienas būdas tai padaryti. Sumaišytumėte pranešimą naudodami specialią taisyklę, žinomą tik jums ir jūsų tikslinei auditorijai. Ši taisyklė veikė kaip spynos raktas. Jei turėtumėte raktą, galėtumėte iššifruoti pranešimą; kitu atveju turėsite pasirinkti spyną. Kai kurios spynos yra tokios veiksmingos, kad jų niekada negalima išsirinkti, net ir turint begalinį laiką ir išteklius. Tačiau net ir tos schemos kenčia nuo to paties Achilo kulno, kuris kankina visas tokias šifravimo sistemas: kaip tą raktą paimti į tinkamas rankas ir nepatekti į netinkamas?
Priešintuityvus sprendimas, žinomas kaip viešojo rakto kriptografija, remiasi ne rakto paslapties išsaugojimu, o tuo, kad jis būtų plačiai prieinamas. Apgaulė taip pat yra naudoti antrąjį raktą, kurio niekada nesidalinate su niekuo, net su asmeniu, su kuriuo bendraujate. Tik naudojant šį dviejų klavišų derinį – vieną viešą, kitą – privatų, kas nors gali ir iššifruoti, ir iššifruoti pranešimą.
Norint suprasti, kaip tai veikia, lengviau galvoti apie „raktus“ ne kaip į spynoje telpančius objektus, o kaip apie du vienas kitą papildančius nematomo rašalo ingredientus. Pirmasis ingredientas priverčia pranešimus dingti, o antrasis – juos vėl pasirodyti. Jei šnipas, vardu Borisas, nori nusiųsti savo kolegei Natašai slaptą pranešimą, jis parašo pranešimą ir panaudoja pirmąjį ingredientą, kad jis puslapyje būtų nematomas. (Jam tai padaryti lengva: Nataša paskelbė lengvą ir gerai žinomą rašalo dingimo formulę.) Kai Nataša gauna popierių paštu, ji pritaiko antrąjį ingredientą, dėl kurio Boriso žinutė vėl pasirodo.
Pagal šią schemą bet kas gali padaryti pranešimus nematomus, tačiau tik Nataša gali juos vėl padaryti matomus. Ir kadangi ji niekada su niekuo nesidalina antrojo ingrediento formule – net su Borisu – ji gali būti tikra, kad žinutė nebuvo iššifruota. Kai Borisas nori gauti slaptas žinutes, jis tiesiog imasi tos pačios procedūros: paskelbia paprastą receptą, kaip panaikinti žinutes (kuriuo gali panaudoti Nataša ar bet kas kitas), o kitą pasilieka tik sau, kad jos vėl atsirastų.
Viešojo rakto kriptografijoje „viešasis“ ir „privatusis“ raktai veikia taip pat, kaip pirmasis ir antrasis šio specialaus nematomo rašalo ingredientai: vienas šifruoja pranešimus, kitas juos iššifruoja. Tačiau užuot naudojusi chemines medžiagas, viešojo rakto kriptografija naudoja matematinius galvosūkius, vadinamus spąstų durelių funkcijomis. Šias funkcijas lengva apskaičiuoti viena kryptimi ir labai sunku pakeisti. Tačiau juose taip pat yra „spąstai“, informacijos, kuri, jei žinoma, leidžia lengvai apskaičiuoti funkcijas abiem kryptimis.
Viena įprasta spąstų durelių funkcija apima dviejų didelių pirminių skaičių padauginimą – tai lengva atlikti operaciją. Tačiau jį pakeisti – tai yra, pradėti nuo produkto ir surasti kiekvieną pagrindinį veiksnį – skaičiavimo požiūriu nepraktiška. Norėdami sukurti viešąjį raktą, pradėkite nuo dviejų didelių pirminių skaičių. Tai jūsų spąstai. Padauginkite du skaičius kartu, tada atlikite keletą papildomų matematinių veiksmų. Šis viešasis raktas dabar gali užšifruoti pranešimus. Norėdami juos iššifruoti, jums reikės atitinkamo privataus rakto, kuriame yra pagrindiniai veiksniai – būtinos spąstai. Su šiais skaičiais lengva iššifruoti pranešimą. Laikykite šiuos du pagrindinius veiksnius paslaptyje, ir pranešimas išliks slaptas.