КампутарыБяспеку

Алгарытм Диффи-Хеллмана: прызначэнне

Па ўсёй бачнасці, мала хто сёння, выкарыстоўваючы перадачу дадзеных па неабароненым каналах сувязі, уяўляе сабе, што такое алгарытм Диффи-Хеллмана. У прынцыпе, шмат каму гэта разуменне і не трэба. Аднак карыстальнікам камп'ютэрных сістэм, так бы мовіць, больш цікаўным, разабрацца ў гэтым не перашкодзіць. У прыватнасці, абмен ключамі па алгарытме Диффи-Хеллмана можа спатрэбіцца юзэрам, якія цікавяцца пытаннямі інфармацыйнай бяспекі і крыптаграфіі.

Што такое методыка Диффи-Хеллмана?

Калі падыходзіць да пытання аб самім алгарытме, пакуль, не ўдаючыся ў тэхнічныя і матэматычныя падрабязнасці, можна вызначыць яго як методыку шыфравання і дэшыфроўкі якая перадаецца і прыманай інфармацыі паміж двума і больш карыстальнікамі кампутарных або іншых сістэм, якія прадугледжваюць абмен дадзенымі з выкарыстаннем неабароненага канала сувязі.

Як ужо зразумела, пры адсутнасці абароны самога канала перахапіць або мадыфікаваць файлы, якія знаходзяцца ў працэсе перадачы-прыёму, можа і зламыснік. Аднак алгарытм размеркавання ключоў Диффи-Хеллмана для доступу да перадатным і прымаемым дадзеных такі, што старонняе ўмяшанне практычна цалкам выключаецца. Пры гэтым зносіны па якім карыстаецца каналу сувязі (без абароны гэтага) становіцца бяспечным, калі абодва бакі выкарыстоўваюць адзін і той жа ключ.

перадгісторыя

Сам алгарытм Диффи-Хеллмана быў прадстаўлены свеце яшчэ ў далёкім 1976 годзе. Яго стваральнікамі сталі Уитфрид Диффи і Марцін Хеллман, якія ў сваіх пошуках бяспечных і надзейных метадаў шыфравання дадзеных абапіраліся на працы Ральфа цьмянелі, якая распрацавала так званую сістэму распаўсюду публічных ключоў.

Але калі цьмянелі распрацаваў выключна тэарэтычную базу, Диффи і Хеллман прадставілі публіцы практычнае рашэнне дадзенага пытання.

найпростае тлумачэнне

Уласна, сам тэст заснаваны на крыптаграфічных тэхналогіях шыфравання, якія і цяпер здзіўляюць многіх спецыялістаў у гэтай галіне. Анталогія шыфраў ўключае ў сябе досыць вялікую гісторыю. Сутнасць ўсяго працэсу зводзіцца да таго, што маецца два абанента, перапісваюць па электроннай пошце ці абменьваюцца нейкімі дадзенымі пры дапамозе кампутарных праграм. Але абарона вырабляецца такім чынам, што сам алгарытм Диффи-Хеллмана патрабуе, каб ключ расшыфроўкі быў вядомы двум бакам (якая перадае і прымаючага). Пры гэтым абсалютна ўсё роўна, якая з іх згенеруе пачатковае выпадковы лік (гэты момант растлумачым пры разглядзе формул вылічэнні ключоў).

Методыка шыфравання дадзеных ранніх перыядаў

Каб было больш зразумела, заўважым, што самым прымітыўным спосабам шыфравання дадзеных з'яўляецца, напрыклад, напісанне слоў не злева направа, як гэта прынята ў большасці пісьменнасцяў, а справа налева. Сапраўды гэтак жа лёгка можна выкарыстоўваць і замену літар алфавіту ў паведамленні. Скажам, у слове змяняецца другая літара на першую, чацвёртая - на трэцюю і гэтак далей. Сам жа дакумент пры поглядзе на яго можа ўяўляць сабой поўную бязглуздзіцу. Аднак той, хто напісаў зыходны тэкст, паведамляе таму, хто яго павінен прачытаць, у якім менавіта парадку варта размясціць зададзеныя сімвалы. Гэта і называецца ключом.

Заўважце, большасць да гэтага часу нерасшифрованных тэкстаў і клінапісу старажытных шумераў і егіпцян застаюцца незразумелымі крыпта-аналітыкамі ўсяго толькі з-за таго, што яны не ведаюць, як усталяваць шуканую паслядоўнасць знакаў.

Так і ў нашым выпадку - алгарытм Диффи-Хеллмана мае на ўвазе варыянт, што ключ расшыфроўкі вядомы абмежаванаму колькасці карыстальнікаў. Праўда, і тут варта зрабіць агаворку, паколькі ўмяшанне ў перадачу зашыфраваных дадзеных такога тыпу можа быць парушана трэцімі асобамі, калі яны разгадаюць сістэму падстаноўкі або замены знакаў.

Само сабой зразумела, што сёння існуюць досыць магутныя крыптасістэмы на аснове алгарытмаў накшталт AES, але і яны не даюць поўнай гарантыі абароны ад узлому дадзеных трэцім бокам.

Ну а цяпер спынімся на самой сістэме шыфравання, яе практычным прымяненні і ступені абароны.

Алгарытм Диффи-Хеллмана: прызначэнне

Сам алгарытм ствараўся такім чынам, каб забяспечыць не толькі прыватнасць дадзеных пры перадачы адной бокам іншы, але і для таго, каб бяспечна выняць іх пры атрыманні. Груба кажучы, такая сістэма перадачы павінна забяспечыць паўнавартасную абарону па ўсіх магчымых каналах зносін.

Узгадайце хаця б гады Другой сусветнай вайны, калі разведкі ўсіх краін-саюзнікаў беспаспяхова палявалі за шыфравальнай машынай пад назвай «Энігма», з дапамогай якой перадаваліся кадаваныя паведамленні на азбуцы Морзэ. Бо яе шыфр не мог разгадаць ні адзін, нават самы, як мы зараз гаворым, «прасунуты» спецыяліст па крыптаграфіі. Толькі пасля яе захопу быў атрыманы ключ да дэшыфроўкі паведамленняў, што перадаюцца нямецкім флотам.

Алгарытм Диффи-Хеллмана: агляд

Такім чынам, сам алгарытм мае на ўвазе выкарыстанне некалькіх базісных паняццяў. Дапусцім, у нас маецца найпросты выпадак, калі на сувязі прысутнічаюць два абанента (карыстальніка). Абазначым іх як A і B.

Яны выкарыстоўваюць два ліку X і Y, якія не з'яўляюцца сакрэтнымі ў дадзеным канале сувязі, для кіравання прыёму-перадачы. Уся сутнасць пытання зводзіцца да таго, каб згенераваць на іх аснове нейкае новае значэнне, якое будзе з'яўляцца ключом. Але! Першы абанент выкарыстоўвае вялікая простае лік, а другі - абавязкова цэлае (якія дзеляцца без астатку), але меншае па парадку, чым першае.

Натуральна, карыстальнікі дамаўляюцца, што гэтыя лікі захоўваюцца ў таямніцы. Аднак, паколькі канал сувязі з'яўляецца неабароненым, гэтыя два лікі могуць стаць вядомымі і іншым зацікаўленым асобам. Менавіта таму карыстальнікі ў тых жа паведамленнях абменьваюцца сакрэтнымі ключамі для расшыфроўкі паведамленняў.

Асноўныя формулы вылічэнні ключа

Прынята лічыць, што алгарытм Диффи-Хеллмана ставіцца да сістэмы так званага сіметрычнага шыфравання, на аснове якога з'явіліся пратаколы асіметрычнага шыфра. Аднак, калі разглядаць асноўныя аспекты вылічэнні ключоў прымаюць бакамі, прыйдзецца ўспомніць хоць бы алгебру.

Такім чынам, дапусцім, кожны з абанентаў генеруе выпадковыя ліку a і b. Загадзя ім вядомыя значэння x і y, якія могуць быць нават «ўшыты» ў шуканае праграмнае забеспячэнне.

Пры перасылцы або прыёме такога паведамлення абанент A вылічае значэнне ключа, зыходзячы з формулы A = x a mod y, а другі выкарыстоўвае камбінацыю B = x b mod y, пасля чаго варта перасылка расшыфраваць ключа першаму карыстальніку. Гэта першы этап.

Зараз выкажам здагадку, што трэцяя зацікаўлены бок мае ў сваім распараджэнні абодва вылічаных значэння A і B. Усё роўна яна не можа ўмяшацца ў працэс перадачы дадзеных, паколькі на другім этапе трэба ведаць, як вылічаецца агульны ключ.

Зыходзячы з вышэйпрыведзеных формул, можна спыніцца на вылічэнні агульнай ключа. Калі паглядзець на алгарытм Диффи-Хеллмана, прыклад можа выглядаць прыкладна так:

1) першы абанент вылічае ключ на аснове x па формуле B a mod y = x ab mod y;

2) другі, зыходзячы з пачатковага колькасці y і атрыманага па сеткаваму пратаколу параметру B, вызначае ключ на аснове наяўнага параметру A: A b mod y = x ba mod y.

Як бачым, канчатковыя значэння нават пры перастанове ступеняў супадаюць. Такім чынам, расшыфроўка дадзеных абодвума бакамі зводзіцца, як той казаў, да адзінага назоўніка.

Ўразлівасць пры ўмяшанні ў працэс перадачы дадзеных

Як можна было б выказаць здагадку, ўмяшанне трэцяга боку не выключаецца. Аднак у дадзеным выпадку гаворка ідзе пра першапачаткова задаваных ліках парадку 10 100 ці нават 10 300.

Само сабой зразумела, што ні адзін з сёння створаных генератараў пароляў або кодаў доступу вызначыць сам лік не зможа (хіба што пачатковыя і канчатковыя, а не прамежкавыя параметры для ўмяшання ў сістэму перадачы). На гэта спатрэбіцца столькі часу, што і жыццё на Зямлі скончыцца. Тым не менш прарэхі ў такой сістэме бяспекі ўсё ж такі ёсць.

Часцей за ўсё яны звязаны з веданнем дыскрэтнай логарифмирования. Калі такія веды маюцца, ўзламаць алгарытм Диффи-Хеллмана можна (але толькі для пачатковых і канчатковых параметраў, як ужо гаварылася вышэй). Іншая справа, што такімі ведамі валодаюць адзінкі.

Выкарыстанне алгарытму для платформы Java

Алгарытм Диффи-Хеллмана на Java выкарыстоўваецца выключна пры зваротах накшталт «кліент-сервер».

Іншымі словамі, сервер знаходзіцца ў стадыі чакання падлучэння кліенцкіх машын. Калі такое падключэнне ажыццяўляецца, адбываецца выкананне алгарытму на прадмет пошуку альбо публічнага, альбо сакрэтнага ключа, пасля чаго карыстальнік можа атрымаць бесперашкодны доступ да ўсіх функцый і дадзеных самога сервера. Часам гэта тычыцца нават мабільных сістэм, праўда, пра гэта мала хто ведае, тым больш што выканаўчая частка працуе ў нябачным рэжыме ў выглядзе выкананых скрыптоў.

Выкарыстанне алгарытму для платформы C (+ / ++)

Калі паглядзець на алгарытм Диффи-Хеллмана на «C» (+ / ++), то і тут не ўсё так гладка. Справа ў тым, што часам узнікае праблема таго, калі сам мова праграмавання большай часткай працуе з вылічэннямі, звязанымі з якая плавае коскі. Менавіта таму пры заданні цэлалікавых значэнняў або пры спробе акруглення (нават пры ўзвядзенні ў ступень) могуць назірацца непаладкі пры кампіляцыі. Асабліва гэта тычыцца няправільнага выкарыстання функцыі int.

Аднак жа варта звярнуць увагу і на астатнія выкананыя кампаненты, якія, як правіла, уяўляюць сабой заданне класаў, тое ж узвядзенне ў ступень або спадарожныя далучаюцца бібліятэкі GMP.

Сучасныя алгарытмы шыфравання

Лічыцца, што алгарытм Диффи-Хеллмана дагэтуль перасягнуць ніхто не можа. Уласна, менавіта ён паслужыў асновай для ўзнікнення такіх вядомых сістэм абароны ў галіне шыфравання дадзеных, як AES128 і AES256.

Аднак, як паказвае практыка, нягледзячы на даступнасць лікаў, абстрактна ня ўспрыманых чалавекам, большасць сістэм цяперашняга тыпу выкарыстоўваюць выключна значэння першага дзесятка (не больш), хоць сам алгарытм мае на ўвазе лікі ў мільёны разоў вялікія.

замест пасляслоўя

У цэлым, напэўна, ужо зразумела, што сабой уяўляе гэтая сістэма і якія яе алгарытмічныя складнікі. Застаецца толькі дадаць, што яна нададзеная такімі велізарнымі магчымасцямі, што яе ў поўнай меры практычна ніхто не выкарыстоўвае.

З іншага боку, і ўразлівасцяў у алгарытме відавочна хапае. Мяркуйце самі: бо, напісаўшы праграму для вылічэнні дыскрэтных лагарыфмаў, практычна любой яе стваральнік можа атрымаць доступ не толькі да пачатковых параметрах, зададзеныя карыстальнікам, але і да агульных ключах, якія генеруюцца ў сістэме шыфравання і дэшыфроўкі.

У самым простым выпадку досыць зрабіць інсталяцыю таго ж выкананага Java-аплета, які можа быць ужыты нават у мабільнай сувязі. Натуральна, юзэр пра гэта не даведаецца, але яго дадзеныя зможа выкарыстоўваць у сваіх мэтах любы жадаючы.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 be.unansea.com. Theme powered by WordPress.