Siz telefondan bankka parol yuboryapsiz. Xabar havoda uchadi, oʻnlab serverlardan oʻtadi va uni yoʻlda istalgan odam «eshitishi» mumkin. Shunga qaramay, parolingiz sir qoladi. Qanday qilib?
Xabarni yashirish gʻoyasi juda qadimiy. Rivoyatlarga koʻra, Yuliy Sezar maktublarida har bir harfni alifboda 3 ta oldinga surgan: A oʻrniga D, B oʻrniga E. «OTA» soʻzi «RWD» boʻlib qoladi. Bu shifr deyiladi, «3» esa uning kaliti.
Muammo shundaki, 26 harfli alifboda bunday kalitlar bor-yoʻgʻi 25 ta. Ularni bittalab sinab koʻrish bir necha daqiqa oladi. Kompyuter esa bir zumda ochib qoʻyadi.
Bugungi shifrlar ancha kuchli, lekin ularning ham eski muammosi bor: kalitni qanday berish kerak? Siz bank bilan avval hech qachon uchrashmagansiz. Kalitni internet orqali yuborsangiz, uni ham hamma eshitadi.
1976-yilda amerikalik olimlar Uitfild Diffi va Martin Xellman bu muammoning yechimini eʼlon qilishdi. Uni ochiq qulf bilan tushuntirish oson. Bank sizga kalitni emas, ochiq qulfni yuboradi. Uni hamma koʻrishi mumkin — zarari yoʻq. Siz xabaringizni qutiga solib, shu qulf bilan qulflaysiz. Endi qutini hech kim ocha olmaydi, hatto siz ham. Kalit faqat bankning oʻzida.
Bunday «qulf» matematikada qanday yasaladi? Bir tomonga oson, orqaga juda qiyin hisob kerak. Masalan, koʻpaytirish: 61 × 67 = 4087 — bir daqiqalik ish. Endi teskarisini qiling: 4087 qaysi ikki tub sonning koʻpaytmasi? Buning uchun koʻp sinash kerak.
1977-yilda Rivest, Shamir va Adleman shu gʻoyaga asoslangan algoritm yaratishdi — uni bosh harflari bilan RSA deyishadi. Unda sonlar yuzlab xonali boʻladi. Ularni koʻpaytirish telefon uchun oson, ajratish esa eng kuchli kompyuterlarga ham imkonsiz darajada uzoq.
Brauzer manzilida kichkina qulf belgisini koʻrsangiz, bilingki, xuddi shu daqiqada sizning telefoningiz ulkan tub sonlar bilan ishlayapti.