Kvant və Kriptoqrafiya 1


Kvant kompüterlərinin gətirəcəyi yeniliklər eyni zamanda hal-hazırda geniş istifadə olunan kriptoqrafik əməliyyatlara böyük təhlükə yaradır. Bura internet tarixçəniz, bank hesabatlarınız, rəqəmsal imzalarınız və s. daxildir. Təhlükəni daha yaxşı başa düşməyiniz üçün müasir texnologiyalarda istifadə olunan kriptoqrafiyadan qısa söz açaq. 


İctimati Açar İnfrastrukturu:

Əslində, nəzəri olaraq sındırılamayan şifrələmə mexanizmi mövcuddur. "One-Time Padding" alqoritmi çox sadə işləyir. Uzunluğu n olan m mesajı üçün eyni uzunluqda təsadüfi seçilmiş k açarı ilə şifr c belə hesablanır:

Ortadakı XOR əməliyyatı bit əməliyyatıdır və çox sadə hesablanma cədvəli var (ətraflı vikipediadan öyrənə bilərsiniz: https://az.wikipedia.org/wiki/XOR_elementi ). Hər şifrələmə zamanı təsadüfi seçilmiş yeni açar mükəmməl təhlükəsizliyə gətirib çıxarır. Verilmiş şifrdən ilkin mesajı əldə etmək üçün eyni əməliyyatı təkrar yerinə yetirmək kifayətdir: m = c k.  Nəzəri olaraq mükəmməl olsa da, bunu texnologiyaya tətbiq etmək sərfəli olmur. Çünki, hər mesaj üçün eyni uzunluqda açar lazımdır. Düşünün, 1Gb məlumatı şifrələmək üçün yenə 1Gb açar lazım olacaq. Bu da məlumatın sürətli ötürülməsinin qarşısını alır. Bir digər problem isə açarı qarşı tərəfə təhlükəsiz yollamaqla bağlıdır. Düzgün açar olmazsa qarşı tərəf mesajı oxuya bilməz. Açarı üzbəüz də desəniz, sizə qapı arxasından qulaq asan birilərinin olma ehtimalı hər zaman vardır.

Birinci problemi həll etmək üçün blok sxemlərdən istifadə olunur. Yəni, şifrələnəcək mesaj müəyyən uzunluqda porsiyalara bölünür, şifrələnir və sonra birləşdirilir. Belə kriptosistemlərdən geniş yayılmışı AES-dir. (https://tr.wikipedia.org/wiki/AES). Amma, ikinci problem - açarı təhlükəsiz ötürmək - yenə də ciddi boşluqdur.

Fikir verdinizsə, yuxarıdakı hər iki şifrələmə mexanizmində  şifrələmək və şifrəni açmaq üçün eyni açardan istifadə edilir. Buna görə də, bu cür alqoritmlər Simmetric Şifrləmə üsulları kimi tanınır. Alternativ olaraq, Asimmetrik Şifrələmə üsulları təklif edilmişdir. Belə alqoritmlərdə şifrələmək üçün ictimai və şifrəni açmaq üçün isə gizli açardan istifadə edilir. Bu açarlar hər kəs tərəfindən törədilə bilər. Törətmə mexanizmində çox vaxt tək tərəfli çətin riyazi məsələlər dayanır. Tək tərəfli dedikdə düz istiqamətdə hesablamağın asan, yalnız əks istiqamətdə hesablamağın hardasa qeyri-mümkün olması nəzərdə tutulur. 

Məsələn, fikrinizdə iki sadə ədəd tutun. (məs: 31 və 23). Bunların hasilini tapın: 31 * 23 = 713. Bu rəqəmlər çox böyük olmadığı üçün cəld hesablaya bilirik. Bəs sualı tərsinə versəm necə? 713 hansı iki sadə ədədin hasilidir? Təbii ki, az öncə bu ədədlərin 23 və 31 olduğunu gördük. Amma, bilməsəydik, tək-tək bütün sadə ədədləri yoxlamağa çalışacaqdıq. Və yaxud da, 713-ün 27-nin kvadratına yaxın olduğunu tez yoxlayaraq, 27 ətrafındakı sadə ədədləri yoxlayardıq. İstənilən halda, uzun vaxtımız gedəcək.

Əlbəttə ki, 713-ü iki vuruğa adi kompüterlər saniyənin mində birində ayırar. Lakin, çox böyük ədədlər üçün bu məsələnin optimal həlli hələ də tapılmayıb. Min illərdir bilinən bu məsələnin (qeyri-kvant) səmərəli həll yolu hələ də tapılmayıb. 

Bu çətinliyi nəzərə alaraq ötən əsrin sonlarına doğru RSA adlı yeni şifrələmə metodu təklif edildi. RSA yuxarıdakı kimi iki böyük sadə ədədin hasilini taparaq, sonra həmin hasillə xüsusi əlaqəyə malik iki yeni e və d ədədini hesablayır. Bu iki ədəd bir-birinə elə-bağlıdır ki, onların hasili mod F(N)-də hər zaman 1-ə bərabərdir. Aydınlıq gətirmək üçün açar törətmə alqoritmini təqdim edirik:



1.İki sadə p və q ədədi seçin 
2. N = p * q 
3. F(N) = (1-p)(1-q)
4. Elə e ədədi tapın ki   ƏBOB(e, F(N)) = 1 şərti ödənsin
5. Elə d ədədi tapın ki, e * d mod F(N) = 1 şərti ödənsin
6. d gizli açardır. e və N isə ictimai

Bu addımları icra edərək, sonda iki açar əldə edilir: ictimai açarla şifrələnən mesajları gizli açarla açmaq mümkündür. Bu və digər riyazi hesablamalar və isbatlarla tanış olmaq üçün yenə vikipediyaya baxmağınızı tövsiyə edirik: https://tr.wikipedia.org/wiki/RSA_Algoritmas%C4%B1

İctimai Açar infrastrukturunda hər kəsin ictimai açarı bilinir və ya əldə etmək mümkündür. Gizli açarlar isə qorunmalıdır. Birinə mesaj yollamaq lazım gələndə o şəxsin ictimai açarı istifadə olunur. Müvafiq şəxs isə özünün gizli açarı ilə sizin yolladığınız mesajı oxuya biləcək. Lakin, dedik ki, açarları istənilən şəxs törədə bilər. Bəs onda, siz necə əmin ola bilərsiniz ki, sizə verilmiş açar mesaj göndərəcəyiniz şəxsin açarıdır? Bunun üçün notariat sistemi kimi üçüncü sərbəst səlahiyyətli nümayəndə olmalıdır. Necə ki, dövlət notariuslara xüsusi hüquq verir, eləcə də, açar təsdiqləyicilərə də hüquq verən mərkəzi səlahiyyətli orqan var və "root CA" adlanır. Ümumiyyətlə, açarın müvafiq şəxsə aid olduğunu göstərmək üçün CA-lər müvafiq sertifikat verir və bu sertifikatları onların ictimai açarları ilə təsdiqləmək mümkündür. 

Gəlin, bir nümunə ilə yuxarıda yazılanları başa düşək. İnternetdə təhlükəsiz məlumat alış-verişi üçün  hər saytın öz ictimai və gizli açarı olur. Sayta girərkən ictimai açar sizin kompüterə yüklənir. Brauzer tərəfindən düzgünlüyü yoxlandıqdan sonra, saytın kodları yəni görmək istədiyiniz məlumat server tərəfindən göndərilir. Praktiki yoxlamaq üçün brauzerinizdə ünvan çubuğunda saytın ünvanından əvvəl (ya da sonra) göstərilmiş qıfıl işarəsinə çıqqıldadın və "View Certificate" və ya "More Information" bölməsinə girin. Sertifikatın CA tərəfindən təsdiqlənmiş sayt idarəçisinin ictimai açarı olur. Bütün brauzerlər bir çox tanınmış CA-lərin ictimai açarını bilir və yerindəcə sertifikatın düzgünlüyünü təsdiq edir.

Beləliklə açarı ötürmək problemini bir növ həll etmiş olduq. Gizli açar heç zaman ötürülmədiyi üçün artıq təhlükə ortadan qalxır. Lakin, başqa problem ortaya çıxır. Yuxarıda göstərilmiş üsullarla məlumatı şifrələmək və ya şifrəni açmaq səmərəsiz hesablamadır. Çünki, böyük ədədlərin üzərində qüvvətə yüksəltmək kimi riyazi əməliyyatlar aparmaq vaxt və prosessor gücü tələb edir. AES kimi simmetrik şifrələmə ilə RSA kimi asimmetrik şifrələməni birləşdirərək daha güclü hibrid şifrələmə mexanizmi əldə etmək olar.  Məsələn, saytların şifrələnmə metodları brauzerlərdə çox vaxt belə qeyd olunur:

TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 

Burada TLS təhlükəsizlik protokolu, ECDHE -  Elliptic Curve Diffie-Hellman Exchange, ilkin açar dəyişmə alqoritmi, RSA_WITH_CHACHA20 istifadə olunan asimetrik şifrələmə metodu, POLY1305 simmetrik şifrələmə metodu, SHA256  isə təsdiqlənmək üçün istifadə olunan əlavə alqoritmdir. Burada, saytın və istifadəçi məlumatları POLY1305 ilə şifrələnir. Şifrələmə açarı isə server və brauzerdə ayrı-ayrılıqda ortaq dəyərdən  törənir. Bu ortaq dəyər isə ECDHE ilə yenə ayrı-ayrı hesablanır. RSA ilə törədilmiş açarların düzgünlüyü yoxlanır və bu zamanda açarın özü deyil, onunla şifrələnmiş əvvəlki danışıqlar şifrələnir. Əgər hər iki tərəfdə eyni açar varsa və hər iki tərəf eyni danışıqları aparıbsa (yəni, ortada üçüncü şəxs yoxdursa) o zaman açar göndərilmiş şifri aça biləcək. Bununla da təhlükəsiz əlaqə yaradılmış oldu.


Göründüyü kimi, təhlükəsiz məlumat ötürmək qəliz riyazi hesablamalarla baş tutur. Xakerlər və tədqiqatçılar istifadə olunan alqoritmlərin təhlükəsizliyinə əmin olmaq üçün hər gün yeni sındırma üsulları yoxlayır və qismən uğurlu olurlar. Ortada insan faktoru olduğu üçün, mütləq təhlükəsizlik deyə bir anlayış da yoxdur. Lakin, müasir kompüterlərin gücü onu deməyə imkan verir ki, İctimai Açar İnfrastrukturu yetəri qədər etibarlıdır. Buna görə də, internetdə, banklarda, rəqəmsal imzalamada (Asanİmza), bitcoində, bəzi ölkələrdə keçirilən elektronik seçkilərdə, və bir çox iqtisadi və ya siyasi platformalarda ictimai açarlardan istifadə olunur. Elə bu geniş yayılma əslində gələcəkdə böyük təhlükə doğurur: kvant kompüterləri ilə RSA və digər istifadə olunan asimmetrik şifrələmə mexanizmlərindəki açar törətmə alqoritmlərini sındırmaq mümkündür.  Davamı növbəti yazıda.

Post a Comment

0 Comments