Datori, Drošība
Diffie-Hellmana algoritms: mērķis
Acīmredzot šodien tikai daži cilvēki, izmantojot datu pārraidi, izmantojot neaizsargātus saziņas kanālus, iedomājies, kāds ir Diffie-Hellmana algoritms. Principā daudziem cilvēkiem šāda izpratne nav nepieciešama. Tomēr datorsistēmu lietotāji, tā sakot, ir vairāk interesanti, lai saprastu, tas nekaitēs. Diffie-Hellman algoritma atslēgu apmaiņa jo īpaši var būt noderīga lietotājiem, kuriem ir interese par informācijas drošību un kriptogrāfiju.
Kāda ir Diffie-Hellmana tehnika?
Ja jūs nonākat pie paša algoritma jautājuma, neievērojot tehniskās un matemātiskās detaļas, to var definēt kā pārsūtīšanas un saņemšanas informācijas šifrēšanas un atšifrēšanas metodi starp diviem vai vairākiem datora vai citu sistēmu lietotājiem, kas ietver datu apmaiņu, izmantojot neaizsargātu kanālu.
Kā jau ir skaidrs, ja pats kanāls netiek aizsargāts, uzbrucējs var pārtvert vai modificēt failus, kas tiek nosūtīti un saņemti. Tomēr Diffie-Hellmana atslēgas sadales algoritms, lai piekļūtu pārraidītajiem un saņemtajiem datiem, ir tāds, ka ārēju traucējumu novēršana gandrīz pilnībā tiek novērsta. Tajā pašā laikā saziņa pār izmantoto saziņas kanālu (bez tā aizsargāšanas) kļūst droša, ja abas puses izmanto vienu taustiņu.
Aizvēsture
Diffie-Hellmana algoritms pats tika ieviests pasaulei jau 1976. gadā. Tās radītāji bija Whitfried Diffie un Martin Hellman, kuri savā pētījumā par drošām un drošām datu šifrēšanas metodēm balstījās uz Ralph Merkle darbu, kurš izstrādāja tā dēvēto publisko atslēgu izplatīšanas sistēmu.
Bet, ja Merkele izstrādāja tikai teorētisku pamatu, Diffie un Hellman iepazīstināja sabiedrību ar praktisku risinājumu šim jautājumam.
Vienkāršākais skaidrojums
Faktiski pati pārbaude ir balstīta uz kriptogrāfiskās šifrēšanas tehnoloģijām, kuras pat tagad pārsteidz daudzus speciālistus šajā jomā. Ķiferu antoloģija ietver diezgan lielu vēsturi. Visa procesa būtība ir samazināta līdz faktam, ka ir divi abonenti, kas atbilst e-pastam vai apmainās ar noteiktiem datiem, izmantojot datorprogrammas. Bet aizsardzība tiek veikta tādā veidā, ka Diffie-Hellmana algoritms pats prasa, lai atšifrēšanas atslēga būtu zināma abām pusēm (sūtīšanas un saņemšanas). Šajā gadījumā nav nozīmes tam, kurš no tiem ģenerē sākotnējo nejaušo skaitli (šo laiku izskaidro, apsverot formulas taustiņu aprēķināšanai).
Agrīnā perioda datu šifrēšanas metode
Lai to padarītu skaidrāku, mēs atzīmējam, ka primitīvākais datu šifrēšanas veids ir, piemēram, rakstīt vārdus nevis no kreisās puses uz labo, kā tas ir parasti lielākajā daļā skriptu, bet no labās uz kreiso pusi. Tāpat ziņā ir viegli izmantot un aizvietot alfabēta burtus. Piemēram, vārda otrā burta izmaiņas pirmajā, ceturtajā līdz trešajā un tā tālāk. Tas pats dokuments, aplūkojot to, var būt pilnīgs absurds. Tomēr tas, kurš uzrakstīja avota tekstu, pastāstīt tam, kurš to vajadzētu izlasīt, kādā secībā ir nepieciešams sakārtot norādītos simbolus. To sauc par atslēgu.
Ievērojiet, ka lielāko daļu joprojām neatšifrēto tekstu un seno šumeru un eņģeļu ķeizariem joprojām kriptogrāfijas analītiķi neizprot, jo viņi nezina, kā izveidot vēlamo simbolu secību.
Tātad arī mūsu gadījumā Diffie-Hellmana algoritms paredz iespēju, ka atšifrēšanas atslēga ir zināma ierobežotam lietotāju skaitam. Patiesi, šeit atkal ir vērts izdarīt atrunu, jo trešās personas, ja tās atrisina simbolu aizstāšanas vai aizstāšanas sistēmu, var pārkāpt šāda tipa šifrētu datu pārsūtīšanu.
Pats par sevi saprotams, ka šodien ir diezgan spēcīgas kriptosistēmas, kuru pamatā ir tādi algoritmi kā AES, taču tie nedod pilnīgu garantiju pret trešo pušu veikto datu aizsardzību.
Nu, tagad apskatīsim pati šifrēšanas sistēmu, tā praktisko pielietojumu un aizsardzības pakāpi.
Diffie-Hellmana algoritms: mērķis
Pati algoritms ir izveidots tā, lai nodrošinātu ne tikai to datu konfidencialitāti, kurus viena puse pārsūta uz otru, bet arī to drošu izņemšanu saņemšanas brīdī. Aptuveni runājot, šādai pārvades sistēmai būtu jānodrošina pilnīga aizsardzība visos iespējamos saziņas kanālos.
Atsaukt vismaz Otrā pasaules kara gadus, kad visu to sabiedroto valstu izlūkdati, kurus neveiksmīgi vajāja šifrēšanas mašīna ar nosaukumu "Enigma", caur kuru kodētās ziņas tika pārraidītas Morzes kodā. Galu galā neviens, pat visvairāk, kā mēs tagad teicam, "progresīvs" kriptogrāfijas eksperts nevarēja izvilināt savu kodu. Tikai pēc tā sagūstīšanas Vācijas flotes pārraidīto ziņojumu atšifrēšanas atslēga.
Diffie-Hellmana algoritms: pārskats
Tātad, pats algoritms ietver vairāku pamatjēdzienu izmantošanu. Pieņemsim, ka mums ir vienkāršākais gadījums, kad savienojumā ir divi abonenti (lietotājs). Apzīmē tos kā A un B.
Viņi izmanto divus X un Y numurus, kas nav noslēpums šajā saziņas kanālā, lai kontrolētu pārraidi-saņemtu. Viss jautājums ir radīt uz to pamata noteiktu jaunu nozīmi, kas būs galvenais. Bet! Pirmais abonents izmanto lielu galveno numuru, bet otrais - obligāti viss (dalot bez atlikuma), bet mazāks, nekā pirmais.
Protams, lietotāji piekrīt, ka šie numuri tiek glabāti slepenībā. Tomēr, tā kā sakaru kanāls ir neaizsargāts, šie divi numuri var kļūt zināmi citiem interesentiem. Tāpēc lietotāji vienā un tajā pašā ziņā maina privātas atslēgas, lai atšifrētu ziņojumus.
Galvenās formulas atslēgas aprēķināšanai
Visumā tiek pieņemts, ka Diffie-Hellmana algoritms attiecas uz tā saukto simetrisko šifrēšanas sistēmu, uz kuras pamata parādījās asimetriskā šifra protokoli. Tomēr, ja uzņemošās puses apsver galvenos atslēgas aprēķināšanas aspektus, mums būs jāatceras vismaz algebras.
Tātad, pieņemsim, ka katrs abonents rada nejaušus skaitļus a un b . Iepriekš viņi zina x un y vērtības, kuras var pat "ievilkt" vēlamajā programmatūrā.
Nosūtot vai saņemot šādu ziņojumu, abonents A aprēķina pamatvērtību, pamatojoties uz formulu A = x a mod y , bet otrā izmanto kombināciju B = x b mod y , kam seko atšifrētās atslēgas pārsūtīšana pirmajam lietotājam. Šis ir pirmais posms.
Tagad pieņemsim, ka trešais ieinteresētais dalībnieks ir abas aprēķinātas A un B vērtības. Viena no otras, viņa nevar traucēt datu pārraides procesu, jo otrajā posmā jums jāzina, kā aprēķina kopējo atslēgu.
Pamatojoties uz iepriekšminētajām formulām, varat pārtraukt publiskās atslēgas aprēķināšanu. Ja paskatās uz Diffie-Hellmana algoritmu, piemērs varētu izskatīties šādi:
1) pirmais abonents aprēķina atslēgu, pamatojoties uz x ar formulu B a mod y = x ab mod y ;
2) otrais, sākot ar sākotnējo numuru y un Iegūts no parametra B tīkla protokola, nosaka atslēgu, pamatojoties uz pieejamo parametru A: A b mod y = x ba mod y .
Kā redzam, galīgās vērtības pat tad, ja grādi ir mainīti, sakrīt. Tādējādi abu pušu datu interpretācija, kā teikts, tiek samazināta līdz vienam saucējam.
Neaizsargātība, kas traucē datu pārraides procesu
Kā varētu pieņemt, trešās personas iejaukšanās nav izslēgta. Tomēr šajā gadījumā mēs runājam par sākotnēji norādītajiem 10 100 vai pat 10 300 pasūtījuma numuriem.
Ir skaidrs, ka neviens no šodienas izveidotajiem paroli ģeneratoriem vai piekļuves kodiem pats nevar noteikt numuru (ja vien sākotnējie un galīgie, nevis starpposma parametri traucējumiem pārvades sistēmā). Tas aizņems tik ilgu laiku, ka dzīvība uz Zemes beigsies. Tomēr šādā drošības sistēmā joprojām pastāv nepilnības.
Visbiežāk tie ir saistīti ar diskrēto logaritmu. Ja šādas zināšanas ir pieejamas, ir iespējams sadalīt Diffie-Hellman algoritmu (bet tikai sākotnējiem un galīgajiem parametriem, kā minēts iepriekš). Vēl viena lieta ir tāda, ka šādām zināšanām pieder vienības.
Izmantojot Java platformas algoritmu
Diffie-Hellmana algoritms Java tiek izmantots tikai zvaniem, piemēram, "client-server".
Citiem vārdiem sakot, serveris gaida, kamēr klienta mašīnas pievienosies. Veicot šādu savienojumu, algoritms tiek izpildīts, lai meklētu vai nu publisko, vai privāto atslēgu, pēc kura lietotājs var bez ierobežojumiem piekļūt visām servera funkcijām un datiem. Dažreiz tas attiecas arī uz mobilajām sistēmām, tomēr ļoti maz par to zina, jo īpaši tāpēc, ka izpilddirektors darbojas neredzamā režīmā izpildāmu skriptu veidā.
C algoritma izmantošana platformai (+ / ++)
Ja aplūkojat Diffie-Hellman algoritmu "C" (+ / ++), tad šeit viss nav tik gluds. Fakts ir tāds, ka reizēm rodas problēma, kad programmēšanas valoda galvenokārt darbojas ar aprēķiniem, kas saistīti ar peldošā komata. Tāpēc, norādot veselu skaitļu vērtības vai mēģinot noapaļot (pat tad, ja tiek palielināta jauda), kompilējot var rasties problēma. Tas jo īpaši attiecas uz int funkciju ļaunprātīgu izmantošanu.
Tomēr ir vērts pievērst uzmanību citiem izpildāmiem komponentiem, kas parasti ir klases uzdevums, tādas pašas paātrināšanas vai saistītās GMP piesaistāmās bibliotēkas.
Mūsdienu šifrēšanas algoritmi
Tiek uzskatīts, ka Diffie-Hellman algoritmu joprojām nevar pārspēt. Patiesībā tas bija tas, kurš veidoja pamatu šādu plaši pazīstamu aizsardzības sistēmu izveidošanai datu šifrēšanas jomā, piemēram, AES128 un AES256.
Tomēr, kā liecina prakse, neskatoties uz skaitļu pieejamību, kurus cilvēks abstraktiski neuztver, lielākā daļa no pašreizējā tipa sistēmām izmanto tikai desmitā (ne vairāk) vērtības, lai arī algoritms pats par sevi norāda, ka skaitļi miljonos reižu ir lielāki.
Pēcvārda vietā
Kopumā, iespējams, jau ir skaidrs, kāda ir sistēma un kādas ir tās algoritmiskās sastāvdaļas. Tikai piebilst, ka tam ir tādas lielas iespējas, ka gandrīz neviens to pilnībā neizmanto.
No otras puses, algoritmā acīmredzami ir pietiekami daudz ievainojamību. Pārliecinieties par sevi: galu galā, rakstot programmu diskrēto logaritmu aprēķināšanai, praktiski jebkurš no tā veidotājiem var piekļūt ne tikai lietotāju sākotnējiem parametriem, bet arī kopējiem atslēgas, kas ģenerētas šifrēšanas un atšifrēšanas sistēmā.
Visvienkāršākajā gadījumā ir pietiekami instalēt to pašu izpildāmo Java sīklietotni, kuru var izmantot arī mobilajos sakaros. Protams, lietotājs par to nezina, bet ikviens var izmantot savus datus saviem nolūkiem.
Similar articles
Trending Now