Шта је 3ДЕС енкрипција и како функционише ДЕС?

Шта је 3ДЕС енкрипција и како ради ДЕС (1)


3ДЕС је шифрирање шифрирања које је изведено из оригиналног стандарда шифрирања података (ДЕС). Постала је истакнута крајем деведесетих, али од тада је нестала у предности због пораста сигурнијих алгоритама.

Иако ће бити застарела 2023. године, у неким ситуацијама се још увек примењује. Будући да се заснива на једном од првих објављених и проучаваних алгоритама, ДЕС, још увек је важно научити о томе шта је 3ДЕС и како то ради.

Овај водич ће вас детаљно провести кроз сваки корак ДЕС процеса, а затим ће описати начин на који је ДЕС модификован у 3ДЕС-у како би био безбеднији. Такође се дотиче различитих сигурносних питања и тога да ли требате користити алгоритам или не.

Шта је 3ДЕС?

Иако је званично познат као алгоритам за троструко шифровање података (3ДЕА), најчешће се назива 3ДЕС. То је зато што алгоритам 3ДЕС користи шифрирање података шифрирања података (ДЕС) три пута да би шифрирао своје податке.

ДЕС је алгоритам симетричног кључа заснован на Феистел мрежи. Као шифрирани кључ шифре, користи исти кључ и за процесе шифрирања и дешифровања. Феистел мрежа чини оба ова процеса готово потпуно иста, што резултира алгоритмом који је ефикаснији за имплементацију.

ДЕС има и 64-битни блок и величину кључа, али у пракси, кључ пружа само 56-битних безбедности. 3ДЕС је развијен као сигурнија алтернатива због мале дужине тастера ДЕС. У 3ДЕС алгоритму ДЕС покрећу се три пута са три тастера, али сматра се сигурним само ако се користе три одвојена тастера.

Употреба 3ДЕС-а

Након што су слабости нормалног ДЕС постале очигледније, 3ДЕС је усвојен у широком спектру примена. То је била једна од најчешће коришћених схема шифрирања пре успона АЕС-а.

Неки примери примене укључују Мицрософт Оффице, Фирефок и ЕМВ системе плаћања. Многе од ових платформи више не користе 3ДЕС јер постоје боље алтернативе.

Национални институт за стандарде и технологију (НИСТ) објавио је нацрт предлога у којем се каже да ће сви облици 3ДЕС-а бити застарели до 2023. године и онемогућени од 2024. године надаље. Иако је то само нацрт, предлог значи крај једне ере и већ је прошло време да се крене у друге, сигурније алгоритме.

Историја 3ДЕС енкрипције

Пошто је 3ДЕС изведен из ДЕС-а, најбоље је прво увести ранији стандард. Седамдесетих година Национални биро за стандарде (НБС - од тада је преименована у НИСТ) тражио је алгоритам који би могао да користи као стандард за шифровање осетљивих, а некласификованих државних информација.

НБС је прихватила предлоге стандарда који би одговарао његовим захтевима, али ниједан од кандидата из првобитног круга није био примерен. Позвао је још поднесака и овај пут је ИБМ послао алгоритам који је развио његов тим. Поднесак је изведен из Луцифер шифре коју је Хорст Феистел дизајнирао.

1975. године, НБС је објавила ИБМ алгоритам као предложени стандард шифрирања података. Јавност је позвана да коментарише дизајн, што је изазвало неке критике.

Истакнути криптографи попут Вхитфиелд Диффие и Мартин Хеллман, дизајнери размјене кључева Диффие-Хеллман, тврдили су да је дуљина кључа прекратка и да су С-кутије промијењене у односу на првобитни дизајн.

У то време, многи у криптографској заједници сматрали су да је НСА саботирала пројекат и ослабила алгоритам, тако да ће то бити једина агенција која може сломити ДЕС.

Кад је ово истражио Селатски одбор за обавештајни сенат Сједињених Држава, установљено је да је „НСА уверила ИБМ да је довољна смањена величина кључа; индиректно помагао у развоју структура С-бок-а; и потврдили да коначни ДЕС алгоритам, према најбољим сазнањима, не садржи статистичку или математичку слабост. "

У истом извјештају се наводи да „НСА није спремила дизајн на било који начин.“ То су подржали неки бивши ИБМ-ов запосленици који су тврдили да је ДЕС алгоритам у потпуности дизајнирао ИБМ тим.

У својој декласификованој документацији НСА тврди да је агенција „уско сарађивала са ИБМ-ом на јачању алгоритма против свих, осим напада бруталним силама и да би ојачала табеле замене…“

Сумње да су се спречиле НСА ублажене су деведесетих година након што је јавно откривена диференцијална криптанализа. Када су много злостављане С-кутије тестиране новом техником, откривено је да су отпорније на напад него да су изабране насумично.

Ово указује да је ИБМ тим већ знао за диференцијалну криптоанализу седамдесетих година, а Стевен Леви је тврдио да их је НСА тражила да чувају технику у тајности како би заштитили националну безбедност.

Чувени криптограф Бруце Сцхнеиер једном је ошамарио: „Академској заједници требало је две деценије да схвати да су НСА„ угађање “заправо побољшали сигурност ДЕС-а.“

Упркос почетним питањима о сигурности алгоритма и укључивању НСА, ИБМ алгоритам је одобрен као Стандард за шифрирање података 1976. Објављен је 1977 и поново потврђен као стандард у 1983, 1988 и 1993.

Када је 1994. године први пут објављена линеарна криптоанализа, почела је да поставља питања о сигурности алгоритма. 1997. године НИСТ је објавио да тражи алгоритам за замену ДЕС-а. Појачала се потреба за новим алгоритмом како се технологија даље развијала, а потенцијални напади јачали.

Различити покушаји крекирања показали су да је мање тешко разбити алгоритам него што се раније мислило. 1998. године дистрибуирани.нет успео је да провали ДЕС траје 39 дана.

Почетком 1999. године дубока пукотина Фондације Елецтрониц Фронтиер Фоундатион смањила је време на мало више од 22 сата. То је значило крај ДЕС-а, будући да је напад ове природе сада био на дохват руке противника који има велике ресурсе.

Главно питање био је мали кључни простор, а нови алгоритам је изузетно потребан. То је био проблем јер ће требати још неколико година да се НИСТ сложи на алгоритму који је постао замени стандард, Адванцед Енцриптион Стандард (АЕС)..

Док се одлучивало о шифри за АЕС, 3ДЕС је предложен као мера заустављања. То укључује покретање алгоритма ДЕС три пута, са три одвојена тастера. У 1999. години ДЕС је поново потврђен, али са 3ДЕС као идеалним алгоритмом. Нормални ДЕС дозвољен је само у старијим апликацијама.

3ДЕС је постао широко распрострањен алгоритам шифрирања, иако је због велике употребе ресурса и сигурносних ограничења у већини случајева примене замењен АЕС-ом..

Разумевање алгоритма ДЕС

Пре него што можемо да разговарамо о детаљима 3ДЕС-а, важно је разумети алгоритам ДЕС из којег произилази. Па кренимо одмах на почетку.

Користимо шифрирање како бисмо претворили наше податке из отвореног текста у шифрични текст, што је информација којој нападачи не могу приступити (све док користимо одговарајуће алгоритме).

Алгоритми за шифровање су у основи сложене математичке формуле. Када је у питању шифрирање нечега попут „Идемо на плажу“, многи се збуне. На крају крајева, како можете примијенити математику на ствари попут слова и знакова?

Кодирање текста

Реалност је да рачунари не тргују словима и знаковима. Уместо тога, они раде на систему 1 и 0 познат као бинарни. Сваки 1 или 0 познат је као мало, а збирка од осам њих позната је као бајт.

Можете га погледати ручно или користити интернетски претварач да бисте видели да у бинарном формату „Идемо на плажу“ постаје:

01001100 01100101 01110100 00100111 01110011 00100000 01100111 01101111 00100000 01110100 01101111 00100000 01110100 01101000 01100101 00100000 01100010 01100101 01100001 01100011 01101000

Блокови

Када се подаци шифрирају, они се деле на одвојене блокове за обраду. ДЕС има 64-битну величину блока, што у суштини значи да сваки блок одговара мешавини од 64 јединице и нула. Наш први блок (првих 64 цифара бинарног приказа приказаног горе) био би:

01001100 01100101 01110100 00100111 01110011 00100000 01100111 01101111

Наш други би био:

00100000 01110100 01101111 00100000 01110100 01101000 01100101 00100000

А наш коначни блок био би:

01100010 01100101 01100001 01100011 01101000

Паддинг

Можда сте приметили да је наш трећи блок дугачак само 40 бита. Пре него што се може шифровати, треба га направити до 64-битне величине блока. То је учињено са паддинг, што укључује додавање додатних информација у блок да бисте га довршили. То се може учинити с више различитих шема, а може послужити и да се шифроване информације теже испуцају, али то нећемо уводити у овом чланку.

ДЕС кључни распоред

Алгоритми за шифровање користе кључеве за додавање података који ће изменити крајњи резултат процеса. Ако ДЕС укључује само кораке попут пермутације и С-кутија (пермутација је објашњена у даљем тексту, док су С-кутије обухваћене у Замена одељак), све што би нападач морао да уради је открити детаље алгоритма, а затим урадите сваки корак уназад да бисте открили почетну поруку.

Будући да је већина наших алгоритама широко позната, то не би заиста додало пуно сигурности. Уместо тога, додају се тајни кључеви за промену излаза на начин који се не може предвидети само познавањем алгоритма (све док се користи довољно сложен алгоритам).

ДЕС започиње једним типком, која се користи за прављење поткључева који се примењују у сваком кругу. Ово је 64-битни кључ који је исте величине као и наши блокови. Рецимо да је наш кључ:

01001010 10101101 11101000 10100101 01110001 01010100 10101001 11111010

Сада је овај кључ у бинарном облику, што је начин на који се подаци изражавају када их рачунари обрађују. Када се људи баве кључевима, обично ће се појавити као комбинација знакова, овако:

кј329нф982бц9вн1

У ДЕС-у, први корак генерисања наших округлих тастера је пермутација кључа (померање око њега) према следећој табели:

3дес-2а

У пермутацији, сваки део нашег оригиналног кључа премешта се у нову позицију како је назначено у табели. Пошто ћелија у горњем левом углу (на Ц) каже 57, први број нашег пермутираног кључа биће број у 57. позицији нашег старог блока:

01001010 10101101 11101000 10100101 01110001 01010100 10101001 11111010

Друга ћелија каже 49, што значи да ће друга цифра нашег новог кључа бити број који се налази на 49. месту нашег старог блока:

01001010 10101101 11101000 10100101 01110001 01010100 10101001 1111010

Трећа ћелија каже 41, па тражимо цифру на 41. позицији:

01001010 10101101 11101000 10100101 01110001 01010100 10101001 1111010

За сада се наш кључ састоји од „110“.

Остатак кључа распоређен је на исти начин, према вредностима табеле. Померимо се лево удесно, а када стигнемо до краја реда, скачемо на следећи, као и обично. Једном табела Ц је готов, скочимо на табела Д да довршите другу половину кључа.

Не постоји једноставан начин транспоновања целог блока према почетној табели пермутације. Можете све то да урадите ручно или да напишете скрипту за то (или да чак будете и срећни и пронађите је у дубини интернета), али ми ћемо варати и измислити:

1100010 1010010 1010101 0101010 1010000 1111001 0001011 1000111

Можда сте забринути да ми стварамо неке од бројева у овом водичу, али стварност је да то заправо и није важно. Нико више не шифрира податке ручно, већ се то ради преко програма. Најкритичнији аспект овог водича је да стекнете јасну представу о појмовима са којима имамо посла. Сами бројеви служе само да вам помогну да визуализујете шта се догађа.

Неки читаоци су можда приметили да у табели (а сада је наш кључ) има само 56 битова, а не 64. То је зато што је сваки осми залогај прескочен. Ово је артефакт из старијих дана технологије, када је било важно да имају парне чекове за паритет, који су верификовали да ли је кључ правилно примљен. Ови парни чекови значе да ДЕС у пракси има сигурност 56-битног кључа.

Табеле Ц и Д дају нам кључ који има две 28-битне половине. Понекад се половине називају Ц и Д, али у овом чланку ћемо их назвати Л и Р, за лево и десно. Наша лева страна је:

1100010 1010010 1010101 0101010

Док је наше право:

1010000 1111001 0001011 1000111

Сљедећи корак је помицање кључа за један или два размака улијево, зависно од круга. Тачан број размака одлучује се према следећој унапред одређеној табели:

Округли број Број левих смена
1 1
2 1
3 2
4 2
5 2
6 2
7 2
8 2
9 1
10 2
11 2
12 2
13 2
14 2
15 2
16 1

Па узмимо леву и десну половину:

Л 1010010 1010010 1010101 0101010

Р 1010000 1111001 0001011 1000111

И померите обојицу за једну позицију улево, пошто је у првом кругу померање 1 према табели (број на левом крају се помера на десни крај).

Поткључак првог круга:

Л 0100101 0100101 0101010 1010101

Р 0100001 1110010 0010111 0001111

У другом кругу пише и табела 1, па ће се овај резултат поново изменити померањем сваке позиције број један улево.

Друга рунда поткључ:

Л 1001010 1001010 1010101 0101010

Р 1000011 1100100 0101110 0011110

У трећем кругу бројеви ће бити помјерени за два мјеста улево, јер сада пише у табели 2.

Поткључак трећег круга:

Л 0101010 0101010 1010101 0101010

Р 0001111 0010001 0111000 1111010

У наредним круговима бројеви се померају улево у складу са растојањима наведеним у табели, при чему се сваки помак примењује на резултат претходног круга. На крају, то нам даје шеснаест различитих поткључева, по један за сваки круг ДЕС процеса.

Следећи корак је још једна пермутација према ПЦ2 табели која је приказана испод:

дес-3а

До сада би требали бити упознати са пермутацијама, тако да нећемо улазити у процес дубински. Ако желите да детаљније видите како то функционише, погледајте објашњење на почетку овог одељка. Иако су позиције пресељења различите, поступак је исти.

Сваки од 16 кључева добијених у поступку померања сада се помера према табели, при чему се број са 14. позиције помера на прво место, од 17 на друго, од 11 у треће, итд...

Ако пажљиво погледате таблицу, приметићете да постоји само 48 бита, пре него 56 бита које смо претходно имали. Овај процес је познат као компресијска пермутација.

Такође можете да видите да горња половина табеле садржи бројеве између један и 28, док доња половина садржи бројеве од 29 до 56. Лева и десна половина наших поткључева одвајају, а испод је назначено већим размаком на средини кључева.

Опет ћемо варати и састављати бројеве. Рецимо да су нам цео овај процес дали следеће поткључеве:

Први круг:         010101 010101 101010 110100 101001 100101 101010 101010

Друго коло:         011010 110101 101110 110010 010100 110010 111101 101101

Треће коло:     010100 100110 110110 101010 100110 011000 101011 011001

Четврти круг:         011001 110101 011001 110101 000011 001011 010101 010101

Пето коло:         110101 001101 010101 010101 010011 001011 010111 100101

Шеста рунда:           010111 110101 011001 111001 101001 100101 101010 101010

Седмо коло:     110101 111010 101110 101010 100110 010110 111011 001110

Осмо коло:       011001 110101 010101 001001 010011 001011 010100 101010

9. коло:         111011 011010 011110 100010 100010 010110 110011 110010

10. круг:             011010 010101 101110 101001 010010 010110 111000 101010

11. коло:             110101 001101 101110 101010 100101 100101 101010 001010

12. коло:             101001 100100 101001 101010 100110 011000 101011 011001

13. коло:             010010 010010 010101 010101 010110 110001 100101 101010

14. коло:             101001 100110 010101 011101 010001 001010 110010 111110

15. коло:             011001 011010 011001 110101 001001 011001 100101 101101

16. коло:             010010 100110 010101 010101 010001 101000 110010 111010    

Овај процес померања резултира у сваком биту од почетног кључа који се користи у око 14 од 16 поткључева, мада се неки битови користе нешто више од других.

Почетна пермутација

Једном када се подаци поделе у блокове и додају ако је потребно, време је да се започне процес шифровања ДЕС. Вратићемо се на поткључеве које смо тек створили у каснијој фази. Први корак је познат као почетна пермутација, где су подаци преуређени у следећој табели:

3дес-12

Овај почетни поступак пермутације не чини алгоритам више безбедним. То је зато што не укључује унос ниједног кључа и може се лако преокренути. Алгоритам је првобитно замишљен на овај начин јер је у одређеним контекстима олакшао имплементацију.

Пошто смо прекрили пермутације неколико пута, овде ћемо прескочити било које веће објашњење. Вратите се назад ДЕС кључни распоред одељак ако вам требају додатне информације о томе како раде.

Узмимо први блок из поруке „Идемо на плажу“, коју смо добили у Блокирати одељак под Разумевање алгоритма ДЕС:

01001100 01100101 01110100 00100111 01110011 00100000 01100111 01101111

Откад прва ћелија каже 58, изабрали бисмо број са 58. места:

01001100 01100101 01110100 00100111 01110011 00100000 01100111 01101111

Тада бисмо узели број са 50. места:

01001100 01100101 01110100 00100111 01110011 00100000 01100111 01101111

А број са 42. места:

01001100 01100101 01110100 00100111 01110011 00100000 01100111 01101111

То нам даје „110" досад. Саставићемо остатак броја:

11010111 01001010 10101000 10011101 01001011 10110101 10000111 10101001

Када је почетна пермутација завршена, подаци се прелазе на следећи корак.

Дељење блокова

Једном када су подаци прошли почетну пермутацију, они се деле на две половине. Узимамо наш блок који је управо прошао своју почетну пермутацију:

11010111 01001010 10101000 10011101 01001011 10110101 10000111 10101001

И раздвојићемо га у два блока, леви блок (који се састоји од прве 32 цифре), познат као Л0:

Л0    11010111 01001010 10101000 10011101

И десни блок (састављен од друге 32 цифре), познат као Р0:

Р0    01001011 10110101 10000111 10101001

Ф функција

Сада када је блок подељен, време је за функцију Ф. У првом кругу биће примењен само на десну половину блока, док се лева половина држи до краја до касније. Десна страна пролази следећа четири корака као део Ф функције:

  • Пермутација експанзије (Е на дијаграму)
  • Мешање кључева (⊕ на дијаграму)
  • Замјена (сваки С1, С2 итд. У дијаграму)
  • Пермутација (П у дијаграму)

дес-5

Пермутација експанзије

Пермутација експанзије остварује три ствари. Најважније је да омогућава да појединачни битови улазних података утичу на излаз два друга бита, изазивајући ефект лавине. Такође прави десну половину од 48 бита, тако да је исте величине као поткључак за следећи корак. Други ефекат пермутације проширења је тај што чини излаз дужи од улаза. Ово омогућава да се компримира у поступку замене.

Битови су распоређени према следећој табели. Неки од појединачних битова налазе се у табели два пута, тако се блок проширио са 32 на 48 бита:

дес - 6а

Пошто прва ћелија каже 32, узимамо наш десни блок и бирамо број из 32. позиције, баш као што смо то радили у осталим горе наведеним примерима пермутације:

Р0    01001011 10110101 10000111 10101001

Затим узимамо бројеве из прве, друге позиције и тако даље, све док не дођемо до доњег десног угла блока. Откад постоји 1 у овој ћелији последња цифра ће такође бити број који се појављује на првој позицији нашег блока.

Рецимо да нам пермутација проширења даје нови 48-битни блок:

101110 100110 100100 000000 001100 001110 101101 011110

Мешање кључева

Након што се блок прошири на 48 бита, време је да применимо поткључак првог круга, који смо добили у ДЕС кључни распоред одељак изнад. Блок модификује поткључ помоћу шифре КСОР.

КСОР шифра је додатна шифра која следи једноставан поступак, посебно у поређењу са другим елементима о којима смо већ говорили.

У КСОР шифру:

0 + 0 = 0

1 + 0 = 1

1 + 1 = 0

Дакле, рецимо да морате да КСОР следећа два броја у бинарном облику:

1101

0101

Свака цифра би се додала оној испод ње. Према три приказана правила, ово даје резултат:

1000

За довршавање корака мијешања кључева узимамо десну страну блока коју смо управо проширили на 48 бита и први округли кључ. Затим изводимо додатак КСОР:

Блокирати:                      101110 100110 100100 000000 001100 001110 101101 011110

Заокружи један кључ:     010101 010101 101010 110100 101001 100101 101010 101010

КСОР резултат:             111011 110011 001110 110100 100101 101011 000111 110100

Резултат КСОР операције се затим преноси у следећу рунду.

Замена

Замјена додаје збуњујуће податке. Обично се ради помоћу таблица за претраживање, које су такође познате као замјенске кутије или С-кутије. ДЕС користи осам засебних табела или С-кутија, по једну за сваких 6 бита података. Следећа табела приказује осам С-кутија ДЕС:

дес - 7

Осам засебних С-кутија користе се за превођење сваког 6-битног улаза у 4-битни излаз. Први корак у процесу је узимање цифара на почетку и на крају 6-битног сегмента, а затим претварање те бинарне вредности у децималну.

Узмимо податке да смо КСОРинг управо завршили у претходном кораку:

111011 110011 001110 110100 100101 101011 000111 110100

Погледаћемо први 6-битни сегмент да бисмо вам показали како функционише процес замене:

111011

Будући да су и први и задњи број 1, ово нам даје вредност 11. Затим претварамо 11 од бинарних до децималних што нам даје 3. Ово су само еквивалентне вредности, написане на различите начине. Замислите то као претварање рачунарског језика у људски језик. Ако желите, претворбу за себе можете провјерити помоћу мрежног калкулатора.

Затим узмемо четири средње цифре првог 6-битног сегмента:

111011

И претворити их из бинарних у децималних. 1101 преводи на број 13.

Сада узмемо ова два броја и погледамо их у С1 сто:

                дес - 7а

Наш први број, 3, говори нам да погледамо у трећем реду, док је наш други број, 13 говори нам да погледамо у 13. колону. Вредност у трећем реду 13. колоне је 0.

Сада када смо погледали наш број у табели, претварамо га у четвороцифрени бинарни запис. Нула се обично пише као 0 у бинарном облику, али 0000 је исти, а ово је формат који је најприкладнији за наше потребе.

Након овог процеса, С-бок претвара наш први 6-битни одељак података (111011) у другу 4-битну вредност (0000). Чини се испреплетеном, али ова техника помаже да се још више засенчи однос између шифротекста и отвореног текста са којим је повезан..

Следећи 6-битни одељак затим пролази кроз исти поступак, али уместо тога користи С2 оквир приказан горе. Трећи одељак користи С3 табелу и тако даље, све док се последњи део не подвргне замјени кроз С8 табелу.

Опет ћемо варати за остале вредности. Рецимо да нам замјенски оквири дају резултат:

0000 1010 1100 1001 0100 1001 0111 0001

Једном када сваки део података прође кроз С-оквир, прелази се на следећи корак.

Пермутација

Последња фаза Ф функције је још једна пермутација, користећи следећу табелу:дес - 8а

До сада би требало да имате пристојно разумевање како пермутације пребацују цифре са старог блока на друго место у новом блоку, тако да нећемо поново ући у њега.

Рецимо да ова пермутација узима наш претходни резултат:

0000 1010 1100 1001 0100 1001 0111 0001

И даје нам излаз:

0101 0110 1001 0101 0010 0100 0101 0010

Сада када је пермутација завршена, у овом кругу смо завршили са четири корака Ф функције. У математичком запису ова вредност је позната као ф (Р0, К1). То значи да је резултат функција (ф) почетне десне стране блока (Р0) и поткључа у првом кругу (К1).

КСОР са левим блоком

Сећате се како смо поделили блок на пола пре него што смо започели кораке функције Ф? Одложили смо леву страну блока (Л0), док је десна страна прошла сваки од ових процеса. Па, сада је време да се Л0 врати у акцију.

Заузимамо праву страну коју смо управо обрадили ф (Р0, К1) и додајте је старој левој страни (Л0) помоћу КСОР шифре. Ово нам даје Р1, резултат нашег првог круга:

ф (Р0, К1):                         0101 0110 1001 0101 0010 0100 0101 0010

Л0:                                    1101 0111 0100 1010 1010 1000 1001 1101

КСОР резултат (Р1):              1000 0001 1101 1111 1000 1100 1100 1111

Односи се Мешање кључева одељак изнад ако вам треба подсетник о томе како функционише КСОР шифра.

Још 15 кругова…

Ако сте стигли овако далеко, ДЕС се вероватно чини тешким процесом. Али то још није ни близу завршетка. Подаци иду кроз четири корака Ф функције, а затим КСОР, још 15 пута, у укупно 16 рунди.

У другом кругу узимамо оригиналну, нетакнуту верзију десне стране блока (Р0) и направимо је новом левом страном (Л1). У међувремену, узимамо резултат нашег првог круга и шаљемо га преко Ф функције. Све се догађа исто као и прошли пут, али овај пут се уместо тога користи подкључ за друго коло. Рецимо да нам овај процес даје резултат:

ф (Р1, К2):        1011 0111 1000 1011 1001 1101 1001 1110

Затим КСОР даје резултат са Л1, што је заправо Р0 (то смо добили у Дељење блокова одељак). Ово нам даје резултат другог круга, Р2:

ф (Р1, К2):           1011 0111 1000 1011 1001 1101 1001 1110

Л1:                      0100 1011 1011 0101 1000 0111 1010 1001

Р2:                     1111 1100 0011 1110 0001 1010 0011 0111

Овај корак може изгледати мало збуњујуће, али према Феистеловој шеми, стара десна страна постаје нова лева, док резултат операције постаје нова десна страна.

Следећи дијаграм даје вам визуелни приказ онога што се дешава. ИП представља почетну пермутацију, Ф је станд-ин за целу Ф функцију, бо симболизира КСОР функцију, а стрелице означавају сваку страну блока који се креће између леве и десне:

дес-9

Тачна формула за сваки корак је:

Лн = Рн-1

Рн = Лн-1 + ф(Рн-1,Кн)

Где:

Л = Лева половина блока (почевши од Л0 када је блок у почетку подељен)

Р = десна половина блока (почевши од Р0 када је блок првобитно подељен)

н = Округли број (почиње са 0, када је блок првобитно подељен)

ф = Ф функција

Кн = поткључак за округли н

Према формули и дијаграму, у трећем кругу Р1 постаје нова лева половина (Л2), док се Р2 обрађује кроз Ф функцију. Рецимо да нам то даје резултат:

ф (Р2, К3)        1001 0111 0000 1011 1101 0111 1011 1011

Затим израчунавамо резултат нашег трећег круга (Р3), користећи шифру КСОР, баш као и пре:

ф (Р2, К3):           1011 0111 1000 1011 1001 1101 1001 1110

Л2:                      0100 1011 1011 0101 1000 0111 1010 1001

Р3:                      1111 1100 0011 1110 0001 1010 0011 0111

Исти процес се наставља све до петнаестог круга, при чему се блокови пребацују, а следећи поткључак се користи у свакој рунди. У 16. и последњем колу блокови се не пребацују. Уместо тога, они су комбиновани да би добили 64-битни блок. Уздржавање од замјене блокова у овој посљедњој фази омогућава да се алгоритам користи и за шифровање и за дешифровање.

Рецимо да нам финални круг даје резултат:

1010 0101 0100 1011 1001 0001 0100 1000 0101 1010 1101 0001 1101 1001 1001 1101

Завршна пермутација

Ова пермутација је обрнута од почетне пермутације, и опет, она не даје додатну вредност сигурности. Преуређује податке према следећој табели:

дес-10а

Ова табела пермутације функционише исто као и претходна. Пошто је то последњи корак процеса шифрирања, резултат ће бити шифротекст првог блока „Идемо на плажу". Рецимо да је шифровани блок:

0100 1001 0011 0010 1001 0101 0111 0100 1011 1010 0111 0101 0111 1010 0101 0101

Ако сте желели прави шифрични текст за „Идемо на плажу“, могли сте једноставно прескочити цео процес учења и прећи директно на онлине алатку за шифровање ДЕС-а. Ако унесемо реченицу поред кључа (рецимо кј329нф982бц9вн1), алатка ће нам дати шифровани текст:

У2ФсдГВкКс19Пиениу3в3к4зЦд2ИПКЕПУВБзу3АеиВу2Х3ФеимЗе6хА

Ако желите, можете да претворите кључ и шифрични текст у бинарни облик и затим упоредите како шифратек првог блока усклађује се са читавим процесом који је назначен.

ДЕС дешифровање

У ДЕС-у је поступак дешифровања невероватно једноставан. Феистел структура алгоритма омогућава лако враћање уназад. Процес се изводи готово потпуно исто за дешифровање информација. Једина разлика је у томе што се поткључеви примењују обрнуто. Ово је ефикасно подешавање, јер значи да се исти софтвер и хардвер могу користити и у процесима шифрирања и дешифровања..

Да бисте дешифровали податке, прво се пролази кроз почетну пермутацију, затим се блок подели, а десна половина прође кроз Ф функцију. Разлика је у томе што се у првом кругу дешифровања примењује 16. поткључ. Све остало иде нормално. Једном када је функција Ф завршена, она се КСОРед левом страном блока.

Блокови се пребацују и резултат пролази исти поступак за други круг, са једином изузетком да се примењује 15. поткључ. Овај процес се наставља до 16. круга, када се користи 1. поткључ.

Баш као у поступку шифрирања, блокови се не мењају у завршној фази, а затим се подаци подвргавају коначној пермутацији. Овим се завршава поступак дешифровања, што резултира оригиналним текстом текста.

3ДЕС

Како су сигурносне слабости ДЕС-а постале очигледније, 3ДЕС је предложен као начин за проширење величине кључа без потребе за стварањем потпуно новог алгоритма. Уместо да користи један тастер као у ДЕС, 3ДЕС алгоритам води три пута, са три 56-битна тастера:

  • Један кључни је навикнут шифровати отворени текст.
  • Кључ два је навикнут дешифрирај текст који је шифрован кључним.
  • Кључ три је навикнут шифровати текст који је дешифрован трећим кључем.

У свакој фази, следи се комплетни ДЕС процес као што је претходно описано.

Сада се можда питате „Како применом дешифрирања у другом кораку можете побољшати сигурност?“

Одговор је да користи посебан тастер. Ако се први кључ користио и за дешифровање података у другом кораку, подаци би били тамо где су започели.

Међутим, с обзиром да користи другачији кључ, поступак дешифровања заправо не служи за дешифровање података. Можда се чини логично перверзно, али дешифровање одвојеним кључем служи само за још бржи скок података.

Једном када је други кључ „дешифровао“ податке, трећи кључ се примењује да би се поново шифровао. Резултат је 3ДЕС шифротекст.

3ДЕС је структуриран на овај начин јер омогућава да имплементације буду компатибилне са ДЕС кључем са једним кључем, ДЕС са два кључа и са три кључа (они су обрађени у следећем одељку). Ово неће радити ако се шифрирање користи у сва три корака.

3ДЕС опције уноса

Технички се 3ДЕС може имплементирати у три различите кључне конфигурације. Упркос томе, друга и трећа опција су несигурне и никада их не треба спровести.

  • Опција прва типка - Ова опција користи три независна тастера и најсигурнији је.
  • Кључна опција две - У овој конфигурацији, први и трећи тастер су исти.
  • Опција три - Овде се користе три идентична тастера. Када се користе идентични кључеви, процес дешифрирања у другој фази поништава прво шифровање, остављајући само коначну енкрипцију за промену података. То резултира резултатом исто као и обични ДЕС.

Процес 3ДЕС: Опција прва типка

Будимо искрени, целокупност 3ДЕС процеса може да вам се врти у глави, посебно ако сте нови у криптографији. Да бисте му помогли да потоне, ево кратког сажетка целокупне шеме шифрирања 3ДЕС алгоритма:

Плаинтект улази у алгоритам 3ДЕС и први је шифровано кључем у следећим корацима:

    • Кључни распоред - 16 поткључева су изведени из кључног

    • Почетна пермутација

    • Блок је подељен на леву и десну половину

      • Десна половина се шаље преко Ф функције

        • Пермутација експанзије

        • КСОР са поткључем за коло

        • Замена

        • Пермутација

      • КСОР резултат Ф функције с леве стране

      • Направите стару десну страну нову леву страну, а резултат нову десну страну

        Поновите горње кораке 14 пута

      • Десна половина се шаље преко Ф функције

        • Пермутација експанзије

        • КСОР са поткључем за 16. коло

        • Замена

        • Пермутација

      • КСОР резултат Ф функције с леве стране

      • Комбинујте леву и десну страну блока заједно

    • Завршна пермутација

Узмите текст који је шифрован кључем, а затим га пошаљите кроз Процес „дешифровања“ са кључ два:

    • Кључни распоред - 16 поткључева су изведени из кључа два

    • Почетна пермутација

    • Блок је подељен на леву и десну половину

      • Десна половина се шаље преко Ф функције

        • Пермутација експанзије

        • КСОР са поткључем за круг (почев од 16. поткључа за дешифровање)

        • Замена

        • Пермутација

      • КСОР резултат Ф функције с леве стране

      • Направите стару десну страну нову леву страну, а резултат нову десну страну

        Поновите горње кораке 14 пута

      • Десна половина се шаље преко Ф функције

        • Пермутација експанзије

        • КСОР са поткључем за прву рунду

        • Замена

        • Пермутација

      • КСОР резултат Ф функције с леве стране

      • Комбинујте леву и десну страну блока заједно
    • Завршна пермутација

Узмите податке које је кључ два „дешифровао“, а затим их пошаљите кроз енпроцес крипције са кључ три:

    • Кључни распоред - 16 поткључева су изведени из кључа три

    • Почетна пермутација

    • Блок је подељен на леву и десну половину

      • Десна половина се шаље преко Ф функције

        • Пермутација експанзије

        • КСОР са поткључем за коло

        • Замена

        • Пермутација

      • КСОР резултат Ф функције с леве стране

      • Направите стару десну страну нову леву страну, а резултат нову десну страну

        Поновите горње кораке 14 пута

      • Десна половина се шаље преко Ф функције

        • Пермутација експанзије

        • КСОР са поткључем за 16. коло

        • Замена

        • Пермутација

      • КСОР резултат Ф функције с леве стране

      • Комбинујте леву и десну страну блока заједно

    • Завршна пермутација

Резултат је 3ДЕС шифротекст.

Сигурност 3ДЕС-а

Сигурност 3ДЕС-а зависи од тога која се опција кључа користи. Опција прве типке укључује три различита 56-битна тастера, што јој даје укупну дужину тастера од 168 бита. Ефективна дужина знатно се смањује нападима „изнутра у средини“, који смањују његову реалну сигурност на 112 бита.

Напади у сусрет-у средини су корисни против схема шифрирања које исти алгоритам понављају неколико пута. Техника складишти непосредне вредности из сваке фазе шифрирања, а затим користи ове информације да радикално побољша време које би требало да се брутална сила изврши алгоритам.

Опције две и три имају знатно мање тастере и подложне су и нападима који су познати - отворени текстови и одабрани плаинтект - и другим.

Познати напади у отвореном тексту могући су када противник има приступ и отвореном и шифротексту поруке. Ако је алгоритам подложан овим нападима, нападач може да искористи ове информације за закључивање кључа, што им омогућава да испуцају све остале податке који су шифровани истим кључем.

Изабрани напад у отвореном тексту је сличан, али укључује нападача који открива кључ упоређујући шифрантекс са произвољним очигледним текстовима.

Због ових рањивости и свеукупно укључених малих величина кључева, опције кључа две и три су несигурне и не треба их примењивати..

Да ли је 3ДЕС безбедан?

Будући да ће 3ДЕС бити уништен у наредних неколико година, најбоље је користити друге алгоритме. Иако се опција кључа још увек сматра сигурном за многе апликације, нема пуно добрих разлога због којих би је требало користити уместо алтернативе попут АЕС-а.

Иако је 3ДЕС важно место у криптографији као наставак ДЕС-а, године славе су завршене и време је да кренемо даље. Ако желите добро да осигурате своје системе у будућности, требало би да користите ажурнији алгоритам.

Повезан: Објашњени су уобичајени типови шифрирања

План Кс ДоД лиценцирано под ЦЦ0

Brayan Jackson Administrator
Candidate of Science in Informatics. VPN Configuration Wizard. Has been using the VPN for 5 years. Works as a specialist in a company setting up the Internet.
follow me

About the author

Candidate of Science in Informatics. VPN Configuration Wizard. Has been using the VPN for 5 years. Works as a specialist in a company setting up the Internet.

Leave a Reply

Your email address will not be published. Required fields are marked *

− 3 = 2