Asimmetrik alqoritmin nümunəsi: RSA. Fərqli asimmetrik alqoritmlər var. Ən yaxşı bilinənlərdən biridir RSA (inkişaf etdiricilərinə görə). Bu alqoritm brauzerlərdə, təhlükəsiz veb saytlarda və e-poçtların şifrələnməsində geniş istifadə olunur. Bu var domain ictimaiyyət

Asimmetrik alqoritm nümunəsi: şifrələməyə RSA

Mesajı şifrələmək üçün: c = m ^ e mod n

Şifrəni açmaq üçün: m = c ^ d mod nm = düz mətn

c = şifrəli mesaj

(içində) = açıq açar

(d, n) = xüsusi açar

No. = iki tub ədədin məhsuludur

^ = eksponentləşmə əməliyyatıdır (a ^ b: güc b)

MOD = modulo əməliyyatıdır (tam bölünmənin qalan hissəsi)

Açar cüt yaradın

Çox sadədir, amma seçim edərkən diqqətli olun y, d y No.. Və bilin ki, bu üç rəqəmin hesablanması zərifdir.

Bunu necə etmək olar:

1. İki əsas ədəd yığın p y o (təxminən bərabər ölçüdə). Hesablayın n = niyə.

2. Bir sıra yığın y ilə ortaq bir amil yoxdur (p-1) (q-1).

3. hesablayın d kimi ed mod (p-1) (q-1) = 1.

Cütlük (içində) Açıq açardır. (d, n) Şəxsi açardır.

Misal:

Əvvəlcə açar cütümüzü yaradaq:

Təsadüfi iki əsas nömrəni seçin: p = 29, q = 37

Hesablayın n = pq = 29 * 37 = 1073

y təsadüfi olaraq seçilməlidir y ortaq heç bir amil yoxdur (p-1) (q-1):

(p-1) (q-1) = (29-1) (37-1) = 1008

Alın e = 71

Seçmək üçün d kimi 71 * d mod 1008 = 1

Tapaq d = 1079

İndi açarlarımız var:

  • Açıq açardır (e, n) = (71.1073) (= şifrələmə açarı)
  • Şəxsi açar (d, n) = (1079.1073) (= şifrəni açmaq)

Gəlin mesajı şifrələyək «Salam". Gəlin ASCII kodu hər hərfdən bir-birinə qoyun:

m = 7269767679

Beləliklə, mesajı daha az rəqəm olan bloklara kəsməliyik No.. No. 4 rəqəmdən ibarətdir, buna görə mesajımızı üç rəqəmli bloka kəsin:

726 976 767 900

(sıfırlarla tamamlanır)

Sonra hər bloku şifrələyəcəyik:

726 ^ 71 mod 1073 = 436

976 ^ 71 mod 1073 = 822

767 ^ 71 mod 1073 = 825

900 ^ 71 mod 1073 = 552

Şifrəli mesajdır 436 822 825 552. Gras> d ilə deşifr oluna bilər:

436 ^ 1079 mod 1073 = 726

822 ^ 1079 mod 1073 = 976

825 ^ 1079 mod 1073 = 767

552 ^ 1079 mod 1073 = 900

Yəni ədədlərin ardıcıllığı. 726976767900.

Mesajımızı düz mətndə tapdıq 72 69 76 76 79: «SALAM».

Təcrübədə

Təcrübədə proqram hazırlamaq o qədər də asan deyil:

  • Böyük sayları tapmaq lazımdır (bu hesablamaq çox uzun ola bilər)
  • Baş nömrələri almalısınız p y o təsadüfi (bu asan deyil).
  • Blokları yuxarıdakı nümunədəki kimi kiçik istifadə etmirsiniz - çox sayda güc və modul hesablaya bilməlisiniz.

Əslində, asimmetrik alqoritmlər heç bir zaman bütün məlumatları şifrələmək üçün istifadə edilmir, çünki hesablamaq çox uzun çəkir: məlumatlar simmetrik bir alqoritm ilə şifrələnir və açarı təsadüfi seçilir və bu açar RSA kimi asimmetrik alqoritm ilə şifrələnir.

Faylları şifrələmək üçün proqram

Fayllarınızı şifrələmək istəyirsinizsə, əla proqram təklif edirəm PGP (Pretty Good Privacy) və ya GPG (GNU Privacy Guard).

O cümlədən digər asimmetrik alqoritmlər var ECC (Elliptik əyri kriptosistemləri, elliptik əyriyə görə). Bu sistem müəyyən sayda tam sayda koordinat nöqtələrini keçən parametrik əyriyə əsaslanır. Hələ yaxşı inkişaf etməyib, amma perspektivlidir.

Də var Diffie-Hellman , RSA-dan getdikcə daha çox üstünlük verilir. (Diffie-Hellman, RSA hələ ictimai sahəyə girməyəndə açıq mənbə cəmiyyəti tərəfindən tez bir zamanda qəbul edildi.)