Şifrələmə alqoritmləri nümunələrlə izah edildi
Şifrələmə mesajın yalnız mesajın mənasını başa düşməsinə imkan verən yalnız nəzərdə tutulan niyyəti ilə mesajları kodlaşdırır. Bu iki yol funksiyasıdır (mesaja etdiyiniz hər hansı bir süpürgəni geri ala bilməyiniz lazımdır). Bu tranzit məlumatları qorumaq üçün hazırlanmışdır.
Sadə şifrələmə alqoritmi
Bir lift layihəsi üzərində yalnız əyləncə üçün çalışıram, bu, həqiqətən də aparatdır. Ancaq düşünürəm ki, bu daha çox bir proqram sualdır. Bu xüsusiyyətə sahib olmağa ehtiyac yoxdur, əslində tamamilə lazımsızdır, amma maraqlandım, buna görə hər halda əlavə edə bilərəm ki, öyrənə bilərəm ki, 8 bit ünvanı, 8 bit məlumat avtobusu və 8 bit şifrələmə var kodlaşdırmaq. Məndə bir usta və bir çox qul cihazım var. Usta qulların ünvanını bilir və şifrələmə kodunu bilir. Qullar onların ünvanını və şifrələmə kodunu da bilirlər. Mən belə sadə bir alqoritm istəyirəm: Usta “Y”, Y = funksiyası (məlumatlar, şifrələmə kodu) qulu “Y” alır və məlumatlar vasitəsilə məlumat əldə edə bilərəm ilə və, xor və ya və s. və onlardan birləşmələri, ancaq anlaya bilmədi. Yenidən sadə alqoritmlər axtarıram. Əgər ağlınıza gəlmirsə, mənə daha böyük bir lütf edə və belə bir həll / funksiyaya necə gələ biləcəyim barədə bəzi nəzəriyyəni izah edin. Çox təşəkkürlər!
25 aprel 2013-cü il tarixində 15: 46-da
441 1 1 Qızıl nişan 5 5 Gümüş nişanları 12 12 Bürünc döş nişanları
Sadə və Effektiv şifrələmə özünüzə yazdığınız bir şey deyil, kitabxana şəklində gələcək. Sadəcə sadə şifrələmə rot13 ola bilər.
Apr 25, 2013 tarixində 15:48
Xtea nisbətən sadə, rc4 də, ancaq düzgün istifadə etmək bir az çətindir.
Apr 25, 2013-cü il saat 15: 50-də
Çox sadə bir yanaşma – y = x xor açarını, sonra X = Y XOR düyməsini digər tərəfdən göndərin, ancaq orada çox qorunmayacaq.
Şifrələmə alqoritmləri nümunələrlə izah edildi
Megan Kaczanowski
Kriptoqrafiya, ən təməlində, mesajları qorumaq üçün kodlar və şifrələrdən istifadə elmidir.
Şifrələmə mesajın yalnız mesajın mənasını başa düşməsinə imkan verən yalnız nəzərdə tutulan niyyəti ilə mesajları kodlaşdırır. Bu iki yol funksiyasıdır (mesaja etdiyiniz hər hansı bir süpürgəni geri ala bilməyiniz lazımdır). Bu tranzit məlumatları qorumaq üçün hazırlanmışdır.
Simmetrik və asimmetrik alqoritmlər arasındakı fərq haqqında ümumi bir məlumat axtarırsınızsa və hansı şifrələmənin ümumi icmalı, burada başlayın. Bu məqalə ilk növbədə ən çox istifadə olunan şifrələmə alqoritmlərindən ikisini əhatə edəcəkdir.
Ümumi bir baxış olaraq, ilk yaradıldıqda simmetrik alqoritmlərdə böyük bir problem yaşandı – yalnız hər iki tərəfin paylaşılan sirri bilsə, yalnız effektiv fəaliyyət göstərdilər. Əgər etməsəydilər, üçüncü tərəfi olmayan bir açarı etibarlı şəkildə mübadilə etmək son dərəcə çətin idi.
Üçüncü tərəf açarı alsa, o zaman etibarlı rabitə məqsədini məğlub edərək, şifrələməni pozmaq çox asan idi.
Diffie-Hellman bu problemi yad adamlara paylaşılan bir açar yaratmaq üçün istifadə edilə bilən ictimai kanallar üzərində məlumat mübadiləsi aparmaqla bu problemi həll etdi. Bütün rabitə izlənilsə də, ortaq bir düymə çatlamaq çətindir.
Diffie-Cellman necə işləyir?
Diffie-Cellman, əsas mübadilə protokolu adlandırılan şeydir. Fərqli-Hellman üçün əsas istifadə, şifrələmə üçün də istifadə edilə bilər (adətən deyil, D-H mübadilə düymələrinə keçmək üçün daha səmərəli, sonra məlumat ötürülməsi üçün simmetrik şifrələmə ).
Bu işin yolu belədir:
Əsasən, başlanğıc rəngi (ixtiyari, lakin hər dəfə fərqli olmalıdır) ilə razılaşan iki tərəf, Alice və Bob var. Özləri də özləri üçün gizli bir rəng var. Sonra bu rəngi ortaq rənglə qarışdırırlar, nəticədə iki fərqli rənglə nəticələnir. Daha sonra bu rəngi digər tərəfə keçirlər, onu gizli rəngləri ilə qarışdıran, eyni bitən gizli rənglə nəticələnir.
Bu, iki rəngi bir-birinə qarışdırmaq nisbətən asandır, ancaq gizli rəng tapmaq üçün onları ayırmaq çox çətindir. Praktikada bu riyaziyyatla aparılır.
- Bob və Alice iki nömrəyə, böyük bir prime, p = 29 və baza ilə razılaşır və baza g = 5
- İndi Bob gizli bir nömrəni seçir, x (x = 4) və aşağıdakıları edir: x = g ^ x% p (bu vəziyyətdə%, qalan hissəni göstərir. Məsələn 3% 2, qalan hissəsi 1-dir, burada 1-dir, burada 1). X = 5 ^ 4% 29 = 625% 29 = 16
- Alice ayrıca gizli bir nömrə, Y (Y = 8) seçir və aşağıdakıları edir: y = g ^ y% p. Y = 5 ^ 8% 29 = 390,625% 24 = 24
- Bob Alice-ə x göndərir və Alice y-yə y göndərir.
- Sonra Bob aşağıdakıları edir: K = y ^ x% p, k = 24 ^ 4% 29 = 331,776% 29 = 16
- Alice aşağıdakıları edir: K = x ^ y% p, k = 16 ^ 8% 29 = 4,294,967,296% 29 = 16
Bu barədə böyük (* bəlkə də sehrli *) bir şey, həm Bob, həm də Alice’nin eyni nömrəsi, K və indi gizli danışmaq üçün istifadə edə bilər, çünki başqasının kodu bilmir.
Bu Protokolun təhlükəsizliyi bir neçə şeydə əvvəlcədən təyin edilmişdir:
- (FAKM) Baş Nömrələr, hətta böyük bir sıra (p kimi) nisbətən asandır.
- (FACT) Modul Eksponentasiya asandır. Başqa sözlə, x = g ^ x% p ilə müqayisədə nisbətən asandır.
- (Cari hesablama gücü və riyaziyyatı əsasında fərziyyə) Modul kök hasilatı, əsas amillər olmadan çox çətindir. Əsasən, trafikdə hoqqabazlıq etmisinizsə və p, g, x və y görə bilsən də, x və y bilmədən k tapmağınız çox çətindir.
Beləliklə, bunun düzgün tətbiq olunduğunu güman edərək, açarı yaratmaq üçün tələb olunan riyaziyyatı etmək nisbətən asandır, ancaq onu məcbur etməklə açarı qırmağa çalışmaq üçün tələb olunan riyaziyyatı etmək üçün çox çətin və vaxt aparır.
Təcavüzkar bu açar güzəştə gedə bilsə də, diffie-hellman mükəmməl bir gizlilik üçün imkan verir.
Mükəmməl irəli sirr nədir?
Bu, serverin indi ünsiyyət qurmaq üçün istifadə etdiyi şifrələməni sındırsanız, bu, serverin indiyə qədər həyata keçirdiyi bütün rabitələrin oxunmağı bacarmaları demək deyil.
Başqa sözlə, bu, indi istifadə olunan rabitələri görməyə imkan verir (yəni bu gizli açar ilə). Hər bir rabitə dəsti fərqli bir gizli açarı olduğundan, hamısını ayrıca qırmaq məcburiyyətində qalacaqsınız.
Hər seansın hər seans üçün fərqli, efemer açarı varsa bu mümkündür. Diffie-Hellman həmişə hər seans üçün yeni təsadüfi dəyərlərdən istifadə edir, buna görə hər seans üçün yeni düymələr yaradan) efemeral diffie hellman (edh və ya dhe) adlanır. Bir çox şifrə dəsti, mükəmməl bir gizlilik əldə etmək üçün bundan istifadə edir.
Assfie-Hellman, Paylaşılan sirri güzəştə getməkdən narahat olmayaraq, riyaziyyatın qüdrətli bir qüvvə üçün çox mürəkkəb olduğu kimi, düzbucaqlı bir material mübadiləsi aparmağa imkan verir və təcavüzkar sessiya açarını (və edə bilsələr də) əldə edə bilməz Fərqli, efemer, hər seans üçün açarlar, bu seansda yalnız bu seansda snoop edə biləcəkləri deməkdir – keçmişdə və ya gələcəkdə deyil).
İrəli sirri hər hansı bir diffie-hellman açar mübadiləsi ilə aktivdir, ancaq efemeral açar mübadiləsi (hər seans üçün fərqli bir açar) mükəmməl irəli sirrini təmin edir.
Budur, Scott Helme-dən bu barədə daha dərinlikdə və bu serverlərinizdə bunu necə aktivləşdirməyi izah edən bir yazı.
Diffie-Hellmanın məhdudiyyətləri nədir?
D-H’nin ən böyük məhdudiyyəti, bu, şəxsiyyəti yoxlamır. Başqa sözlə, hər kəs Alice və ya Bob olduğunu iddia edə bilər və ifadələrinin doğru olduğunu yoxlamaq üçün quraşdırılmış mexanizm yoxdur.
Bundan əlavə, tətbiq etibarlı bir şəkildə həyata keçirilmirsə, alqoritm kifayət qədər xüsusi resurslarla (mümkünsüz, lakin akademik komandalar və ya millət-dövlət aktyorları üçün mümkün deyil) ilə çatlanıla bilər).
Məsələn, bu, istənilən gücü dəstəkləmək üçün təsadüfi say generatoru adekvat entropiya ilə təmin olunmadıqda baş verə bilər – başqa sözlə, çünki kompüter yaranan nömrələr heç vaxt təsadüfi deyil, cəsarətlə inanılmaz dərəcədə gücə çatır tətbiqinizdən.
Bundan əlavə, 2015-ci ildə nümayiş olunan bir hücum var idi ki, bu da eyni əsas nömrələrin əsas mübadiləsinin başlanğıcı kimi bir çox server tərəfindən istifadə edildikdə, fərqlənənlərin ümumi təhlükəsizliyi gözləniləndən daha aşağı idi.
Əsasən təcavüzkar, həmin baş nömrəni istifadə edən hər hansı bir server üçün sessiyalara güzəştə getməyi asanlaşdıran hücumu sadəcə qabaqlayır.
Bu, milyonlarla serverin əsas mübadilə üçün eyni ədədlərdən istifadə etdiyi üçün meydana gəldi. Hücum növünün əvvəlcədən yayılması hələ də akademik, ya da millət-dövlət səviyyəli resursları tələb edir və insanların böyük əksəriyyətinə təsir etmək mümkün deyil.
Bununla birlikdə, millət-dövlət təcavüzkarları haqqında narahat olanlar üçün, Elliptik əyri kriptovalyutası (Ecdhe) istifadə edərək DH açar mübadiləsinə nail olmaq üçün fərqli bir yol var. Bu bu maddənin əhatə dairəsi xaricindədir, amma bu mübadilənin arxasındakı riyaziyyat haqqında daha çox məlumat əldə etmək istəyirsinizsə, bu məqaləni nəzərdən keçirin.
DH-nin zəif tərəflərinə daha ətraflı bir nəzər salmaq üçün bu Whitepaper və bu veb saytı yoxlayın.
Rsa
RSA yaradıcılar üçün adlandırılmışdır – Rivest, Şamir, Adleman – və bu, ictimai və özəl düymələr yaratmaq üsuludur.
Texniki cəhətdən iki RSA alqoritmləri var (biri rəqəmsal imzalar üçün istifadə olunur və asimmetrik şifrələmə üçün istifadə olunur.) – Bu məqalə asimmetrik şifrələmə alqoritmini əhatə edir.
Bu, açar mübadiləsinə imkan verir – əvvəlcə hər bir partiyanı əməliyyata tapşırığına tapşırırsınız, sonra simmetrik açar yaradırsınız və nəhayət, paylaşılan simmetrik açarı etibarlı şəkildə əlaqə qurmaq üçün ictimai / şəxsi açar cütlərindən istifadə edirsiniz.
Asimmetrik şifrələmə ümumiyyətlə simmetrik şifrələmədən daha yavaş, həm də miqyas vermir, asimmetrik şifrələmədən istifadə etmək üçün simmetrik expryption istifadə etmək çox yaygındır.
Beləliklə, necə işləyir?
- 2 çox böyük əsas nömrəni seçin (ən azı 512 bit və ya hər biri 155 onluq rəqəm), X və Y (bu nömrələr gizli və təsadüfi seçilməlidir)
- Məhsulu tapın, yəni z = x * y
- Tək bir ictimai tam ədəd seçin, e, 3 ilə N – 1 arasında (x-1) (y-1) (on-1) (ondan 1) (ona nisbətən x – 1 və y nisbətən əsasdır) ).
- X – 1 və y – 1-dən ən az ümumi bir çoxunu tapın və l çağırın.
- Şəxsi eksponenti, D, X, Y və E-dən hesablayın. de = 1% l. d e% l-in tərsdir (e-ni bir tərs olduğunu bilirsən, çünki e nisbətən z – 1 və y – 1). Bu sistem işləyir, çünki p = (p ^ e) ^ d% z.
- Çıxış (z, e) Şəxsi açar kimi ictimai açar və (z, d) kimi.
İndi Bob Alice-ə mesaj göndərmək istəsə, bu formuladan istifadə edərək Düz mətndən (P) şifahi mətnini (P) -dən yaradır:
Bu mesajı deşifrə etmək üçün Alice aşağıdakıları hesablayır:
D və e arasındakı əlaqə şifrələmə və şifrələmə funksiyalarının inverses olduğunu təmin edir. Bu o deməkdir ki, şifrəni açma funksiyası orijinal mesajı uğurla bərpa edə bilər və orijinal mesajı xüsusi açar (z, d) (və ya baş amillər x və y) olmadan orijinal mesajı bərpa etmək çox çətindir.
Bu da sistemin təhlükəsizliyini pozmadan z və e ictimaiyyətini də edə biləcəyiniz deməkdir, artıq paylaşılan gizli açarı olmayan başqaları ilə ünsiyyət qurmağı asanlaşdıra bilərsiniz.
Mesajın rəqəmsal imzası almaq üçün Əməliyyatlardan da istifadə edə bilərsiniz. Birincisi, şifrələmə əməliyyatından asılı mətndə istifadə edirsiniz. Məsələn, s = imza (p) = p ^ d% z.
Sonra, alıcı, şifrələmə funksiyasını tətbiq etmək və nəticəni mesajla müqayisə etməklə rəqəmsal imzanı yoxlaya bilər. Məsələn, m = doğrulayın (s) = s ^ e% z.
Tez-tez bu edildikdə, düz mətn mesajının hash, yəni yalnız bir eksponizasiya ilə mesajı (uzunluqdan asılı olmayaraq) imzalaya bilərsiniz.
Sistemin təhlükəsizliyi bir neçə şeyə əsaslanır:
- (FACT) PREAM NÖMRƏLƏRİ, hətta böyük bir sıra (x və y kimi) nisbətən asandır.
- (Fakt) vurma asandır. Z tapmaq çox asandır.
- (Mövcud riyaziyyat əsasında fərziyyə) faktorinqi çətindir. Verilmiş z, x və y bərpa etmək nisbətən çətindir. Bunu edə bilər, amma bir müddət çəkir və bahadır.
Bir qiymətləndirmə, 1024 bitlik bir nömrənin baş amillərini bərpa etmək, 10 milyon dollara başa gələn bir maşında bir il çəkəcəyini söylədi. Ölçüsünü iki qat artırmaq, lazım olan iş miqdarını eksponent olaraq artıracaq (bir neçə milyard qat daha çox iş).
Texnologiya irəlilədikcə bu xərclər (və tələb olunan işlər) azalacaq, lakin bu nöqtədə, düzgün tətbiq olunan bu şifrələmə, mümkün olan güzəşt mənbəyidir.
Ümumiyyətlə bu tip pul və bir hədəfə həsr olunmuş yeganə hakerlər millət ştatlarıdır. Üstəlik, bir sistemə güzəştə getməyin daha asan bir yolu varsa (aşağıya baxın), bu, daha yaxşı bir seçimdir.
4-ə. (FACT) Modul Eksponentasiya asandır. Başqa sözlə, c = p ^ e% z hesablamaq nisbətən asandır.
Əqrəb. (FACT) Modul kök hasilatı – yuxarıdakı prosesi geri qaytarmaq – Baş amilləriniz varsa asandır (Z, C, E, e və ya baş faktorları varsa, bu c = p ^ e tapmaq asandır % z).
Əqrəb. (Cari hesablama gücü və riyaziyyatı əsasında) modul kök hasilatı, əsas amillər olmadan modul kök hasilatı çox çətindir (əgər z, C, e, lakin x və y deyilsə, c = p ^ e% tapmaq nisbətən çətindir z, xüsusən a kifayət qədər böyükdürsə).
Riyaziyyat haqqında daha ağıllı insanlardan daha çox məlumat əldə etmək istəyirsiniz? Bu məqaləni yoxlayın.
Əla, daha yaxşıdır?
Bu istifadə halınızdan asılıdır. İki alqoritmlər arasında bir neçə fərq var – əvvəlcə diffie-hellman kontekstində danışdığımız ilk, mükəmməl irəli sirr (PFS). Texniki baxımdan ala-seyrək Ephemer RSA açar cütlərini yaradın və RSA ilə mükəmməl bir gizlilik təmin edin, hesablama dəyəri Diffie-Hellman’dan daha yüksəkdir – Diffie-Hellmanın mükəmməl irəli sirri istədiyiniz SSL / TLS tətbiqləri üçün daha yaxşı seçimdir.
İki alqoritm arasındakı bəzi performans fərqləri olduqda (serverdən tələb olunan iş baxımından), performans fərqləri ümumiyyətlə bir-birinin üzərində birini seçərkən fərq etmək üçün kifayət qədər böyük deyil.
Bunun əvəzinə, ümumiyyətlə, daha yaxşı müəyyən edildikdə, istifadə etdiyiniz iş üçün daha çox dəstəkləndiyindən (məsələn, SSL-in mükəmməl gizliliyi ilə fərqlənməyinizlə əlaqəli olduqda) və ya daha populyar və ya qəbul ediləcək Sənayedə standart olaraq.
Məsələn, Diffie-Cellman ABŞ hökuməti tərəfindən təsdiqlənsə və institusional bir orqan tərəfindən dəstəkləndi, standartın sərbəst buraxıldığı halda, RSA-nın özəl təşkilatlar arasında çox populyar olması üçün RSA (özəl təşkilat tərəfindən standart).
Daha çox oxumaq istəyirsinizsə, burada fərqlər üzərində böyük bir ip var.
Hakerlərin kriptoqrafik hücumlardan necə istifadə etdiyini öyrənməkdə maraqlıdır? Kriptopiyalardan bu çağırış dəstini sınayın.
Kriptoqrafiya haqqında nə qədər çox məlumat alsam, bir o qədər çox düşünürəm ki, Alice və Bob, ehtimal ki, yalnız şəxsən danışmalıdırlar.
– Paul Reinheimer (@preinheimer) 13 Mart 2017