Ano ang pag-encrypt ng 3DES at paano gumagana ang DES?

Ano ang pag-encrypt ng 3DES at paano gumagana ang DES (1)

Ang 3DES ay isang encryption cipher na nagmula sa orihinal na Data Encryption Standard (DES). Naging tanyag ito sa huli na mga nineties, ngunit mula nang bumagsak sa pabor dahil sa pagtaas ng mas ligtas na mga algorithm.

Kahit na ito ay maialis sa 2023, ipinatupad pa rin ito sa ilang mga sitwasyon. Dahil batay ito sa isa sa unang malawak na nai-publish at pinag-aralan na mga algorithm, ang DES, mahalaga pa ring malaman ang tungkol sa kung ano ang 3DES at kung paano ito gumagana.

Dadalhin ka ng gabay na ito sa bawat hakbang ng proseso ng DES, pagkatapos ay takpan kung paano nabago ang DES sa 3DES upang mas ligtas ito. Nakaka-touch din ito sa iba’t ibang mga isyu sa seguridad at dapat mong gamitin ang algorithm o hindi.

Ano ang 3DES?

Bagaman opisyal na ito ay kilala bilang Triple Data Encryption Algorithm (3DEA), ito ay kadalasang tinutukoy bilang 3DES. Ito ay dahil ang 3DES algorithm ay gumagamit ng Data Encryption Standard (DES) cipher ng tatlong beses upang i-encrypt ang data nito.

Ang DES ay isang simetriko-key algorithm batay sa isang Feistel network. Bilang isang simetriko key cipher, gumagamit ito ng parehong susi para sa parehong mga proseso ng pag-encrypt at decryption. Ginagawa ng network ng Feistel ang parehong mga prosesong ito na halos eksaktong pareho, na nagreresulta sa isang algorithm na mas mahusay na ipatupad.

Ang DES ay may parehong 64-bit block at pangunahing sukat, ngunit sa pagsasagawa, ang susi ay nagbibigay lamang ng 56-bits ng seguridad. Ang 3DES ay binuo bilang isang mas ligtas na alternatibo dahil sa maliit na haba ng susi ng DES. Sa 3DES, ang algorithm ng DES ay pinapatakbo nang tatlong beses na may tatlong mga susi, subalit isinasaalang-alang lamang itong ligtas kung tatlong magkahiwalay na mga susi ang ginagamit.

Ang mga gamit ng 3DES

Kapag ang mga kahinaan ng normal na DES ay naging mas maliwanag, ang 3DES ay pinagtibay sa isang malawak na hanay ng mga aplikasyon. Ito ay isa sa mga karaniwang ginagamit na mga scheme ng pag-encrypt bago tumaas ang AES.

Ang ilang mga halimbawa ng mga pagpapatupad nito ay kasama ang Microsoft Office, Firefox at mga sistema ng pagbabayad ng EMV. Marami sa mga platform na ito ay hindi na gumagamit ng 3DES dahil may mas mahusay na mga kahalili.

Ang National Institute of Standards and Technology (NIST) ay naglabas ng isang draft proposal na nagsasabing ang lahat ng mga anyo ng 3DES ay maialis sa pamamagitan ng 2023 at hindi papayag mula 2024 pasulong. Bagaman isang draft lamang ito, ang panukala ay nagpapahiwatig ng pagtatapos ng isang panahon, at napakahusay na lumipas ang oras upang lumipat sa iba pa, mas ligtas na mga algorithm.

Ang kasaysayan ng pag-encrypt ng 3DES

Dahil nagmula ang 3DES mula sa DES, mas mahusay na ipakilala muna ang naunang pamantayan. Noong mga pitumpu, ang National Bureau of Standards (NBS – mula nang pinalitan ng pangalan na NIST) ay naghahanap para sa isang algorithm na maaaring magamit bilang isang pamantayan para sa pag-encrypt ng sensitibo ngunit hindi pa natukoy na impormasyon ng gobyerno..

Tinanggap ng NBS ang mga panukala para sa isang pamantayang angkop sa mga kinakailangan nito, ngunit wala sa mga kandidato mula sa orihinal na pag-ikot ang naaangkop. Inanyayahan nito ang maraming mga pagsumite, at sa oras na ito ipinadala ng IBM sa pamamagitan ng isang algorithm na binuo ng koponan nito. Ang pagsusumite ay nagmula sa Lucifer cipher na idinisenyo ni Horst Feistel.

Noong 1975, ang algorithm ng IBM ay nai-publish ng NBS bilang iminungkahing Data Encryption Standard. Inanyayahan ang publiko na magkomento sa disenyo, na nakakaakit ng ilang pagpuna.

Ang mga kilalang cryptographers tulad ng Whitfield Diffie at Martin Hellman, ang mga taga-disenyo ng switch ng selyo-Hellman, ay inaangkin na ang haba ng susi ay masyadong maikli at ang mga S-box ay nabago mula sa kanilang paunang disenyo.

Sa oras na iyon, marami sa komunidad ng cryptographic ang nag-iisip na ang NSA ay nag-sabotahe sa proyekto at nagpahina ng algorithm, kaya ito ay ang tanging ahensya na maaaring masira ang DES.

Nang ito ay sinisiyasat ng Komite sa Pagpipilian sa Senado ng Estados Unidos, natagpuan na ang “NSA kumbinsido ang IBM na sapat na ang isang nabawasan na susi na sukat; hindi tuwirang tumulong sa pagbuo ng mga istruktura ng S-box; at napatunayan na ang panghuling DES algorithm ay, sa abot ng kanilang kaalaman, libre mula sa anumang kahinaan sa istatistika o matematika. “

Ang parehong ulat ay nagpunta sa sabihin na ang “NSA ay hindi naging tampuhan sa disenyo sa anumang paraan.” Ito ay na-back up ng ilang dating kawani ng IBM na inaangkin na ang algorithm ng DES ay ganap na idinisenyo ng pangkat ng IBM.

Ang sariling deklaradong dokumentasyon ng NSA ay nagsasabing ang ahensya ay “nagtatrabaho malapit sa IBM upang palakasin ang algorithm laban sa lahat maliban sa mga pag-atake ng brute-force at palakasin ang mga talahanayan ng pagpapalit …”

Ang mga hinala sa pag-uugali ng NSA ay eased sa mga siyamnapung sandaling natuklasan sa publiko ang pagkakaiba-iba ng cryptanalysis. Kapag ang mas maligno na S-box ay nasubok sa bagong pamamaraan, nahanap silang mas lumalaban sa pag-atake kaysa sa kung sila ay pinili nang sapalaran.

Ipinapahiwatig nito na ang koponan ng IBM ay alam na ang tungkol sa kaugalian na cryptanalysis noong mga pitumpu’t pitumpu, kasama si Steven Levy na inaangkin na tinanong sila ng NSA na panatilihing lihim ang pamamaraan upang maprotektahan ang pambansang seguridad.

Ang kilalang cryptographer na si Bruce Schneier ay minsang kumalipas, “Kinuha ng pamayanang pang-akademiko ng dalawang dekada upang malaman na ang mga NSA ‘tweaks’ ay talagang nagpabuti sa seguridad ng DES.”

Sa kabila ng mga unang katanungan tungkol sa seguridad ng algorithm at pagkakasangkot ng NSA, ang algorithm ng IBM ay nagpatuloy na naaprubahan bilang Data Encryption Standard noong 1976. Inilathala ito noong 1977 at kinumpirma bilang pamantayan noong 1983, 1988 at 1993.

Kapag ang linear cryptanalysis ay unang nai-publish noong 1994, nagsimula itong magtaas ng mga katanungan tungkol sa seguridad ng algorithm. Noong 1997, inihayag ng NIST na naghahanap ng isang algorithm upang mapalitan ang DES. Ang pangangailangan para sa isang bagong algorithm ay tumindi habang ang teknolohiya ay umuunlad at lumakas ang mga potensyal na pag-atake.

Ang iba’t ibang mga pagtatangka sa pag-crack ay nagpakita na hindi gaanong mahirap masira ang algorithm kaysa sa naisip noon. Noong 1998, ang distribut.net ay nagawang basagin ang DES ay 39 araw.

Sa pagsisimula ng 1999, ang Malalim na Crack ng Electronic Frontier Foundation ay nakababa ng kaunti sa loob ng 22 na oras. Ito ay nag-sign sa pagtatapos ng DES, dahil ang pag-atake ng kalikasan na ito ay maabot ngayon ng isang mahusay na resourced na kalaban.

Ang pangunahing isyu ay ang maliit na key space, at ang isang bagong algorithm ay lubhang kailangan. Ito ay isang problema, dahil tatagal ng maraming taon para sa NIST na tumira sa algorithm na naging pamantayang pamantayan, ang Advanced Encryption Standard (AES).

Habang ang cipher para sa AES ay napagpasyahan, ang 3DES ay iminungkahi bilang isang panipi sa paghinto. Ito ay nagsasangkot sa pagpapatakbo ng DES algorithm ng tatlong beses, na may tatlong hiwalay na mga susi. Noong 1999, muling pinatunayan ang DES, ngunit may 3DES bilang ideal algorithm. Pinapayagan lamang ang mga normal na DES sa mga aplikasyon ng legacy.

Nagpatuloy ang 3DES upang maging isang malawak na pag-encrypt algorithm, bagaman ang mabibigat na paggamit ng mga mapagkukunan at mga limitasyon sa seguridad ay humantong ito upang mapalitan ng AES sa karamihan ng mga kaso ng paggamit.

Pag-unawa sa algorithm ng DES

Bago natin mapag-usapan ang mga detalye ng 3DES, mahalagang maunawaan ang DES algorithm na nagmula sa. Kaya’t magsimula kaagad sa simula.

Gumagamit kami ng pag-encrypt upang gawing ciphertext ang aming data ng plaintext, na impormasyon na hindi ma-access ng mga umaatake (hangga’t gumagamit kami ng naaangkop na mga algorithm).

Ang mga algorithm ng pag-encrypt ay mahalagang kumplikadong mga formula ng matematika. Pagdating sa pag-encrypt ng isang bagay tulad ng “Hayaan ang beach”, maraming mga tao ang nalilito. Pagkatapos ng lahat, paano mo mailalapat ang matematika sa mga bagay tulad ng mga titik at character?

Pag-encode ng teksto

Ang katotohanan ay ang mga computer ay hindi makitungo sa mga titik at character. Sa halip, nagtatrabaho sila sa isang sistema ng 1s at 0 na kilala bilang binary. Ang bawat isa o 0 ay kilala bilang isang bit, at isang koleksyon ng walong sa kanila ay kilala bilang isang bait.

Maaari mo itong hanapin nang manu-mano, o gumamit ng isang online converter upang makita na sa binary, “Pumunta tayo sa beach” ay:

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

Mga bloke

Kapag naka-encrypt ang data, nahahati ito sa hiwalay na mga bloke para sa pagproseso. Ang DES ay may 64-bit na sukat ng bloke, na nangangahulugang nangangahulugan na ang bawat bloke ay umaangkop sa isang halo ng 64 na mga at zero. Ang aming unang bloke (ang unang 64 na numero ng binary na ipinakita sa itaas) ay:

01001100 01100101 01110100 00100111 01110011 00100000 01100111 01101111

Ang aming pangalawa ay:

00100000 01110100 01101111 00100000 01110100 01101000 01100101 00100000

At ang aming pangwakas na bloke ay:

01100010 01100101 01100001 01100011 01101000

Padding

Maaaring napansin mo na ang aming ikatlong bloke ay 40 bits lamang ang haba. Bago ito mai-encrypt, kinakailangang bumuo ng hanggang sa 64-bit na sukat ng bloke. Ginagawa ito sa padding, na nagsasangkot ng pagdaragdag ng karagdagang impormasyon sa isang bloke upang makumpleto ito. Magagawa ito sa maraming iba’t ibang mga scheme, at maaari rin itong magsilbi upang mas mahirap masikip ang naka-encrypt na impormasyon upang masira, ngunit hindi kami makakasama sa artikulong ito.

Ang pangunahing iskedyul ng DES

Ang mga algorithm ng pag-encrypt ay gumagamit ng mga susi upang idagdag sa data na magbabago sa pagtatapos ng resulta. Kung ang mga DES ay kasangkot sa mga hakbang tulad ng permutation at S-box (pinahihintulutan ang permutation sa ibaba, habang ang mga S-box ay sakop sa Pagpapalit seksyon), ang dapat gawin ng isang umaatake ay alisan ng takip ang mga detalye ng algorithm, pagkatapos ay gawin ang bawat isa sa mga hakbang upang baligtarin ang paunang mensahe.

Dahil ang karamihan sa aming mga algorithm ay malawak na kilala, hindi ito magdagdag ng maraming seguridad. Sa halip, ang mga lihim na susi ay idinagdag upang baguhin ang output sa isang paraan na hindi mahuhulaan sa pamamagitan lamang ng pag-alam ng algorithm (hangga’t ginagamit ang isang sapat na kumplikadong algorithm).

Ang mga DES ay nagsisimula sa isang solong key, na ginagamit upang gumawa ng mga sub key na inilalapat sa bawat pag-ikot. Ito ay isang 64-bit key, na kung saan ay ang parehong laki ng aming mga bloke. Sabihin nating ang susi natin ay:

01001010 10101101 11101000 10100101 01110001 01010100 10101001 11111010

Ngayon, ang key na ito sa binary, na kung saan ay ang paraan na ipinahayag ng data kapag pinoproseso ito ng mga computer. Kapag ang mga tao ay nakitungo sa mga susi, normal silang lilitaw bilang isang halo ng mga character, tulad nito:

kj329nf982bc9wn1

Sa DES, ang unang hakbang ng pagkuha ng aming mga pindutan ng pag-ikot ay pahintulutan ang susi (ilipat ito) ayon sa sumusunod na talahanayan:

3des-2a

Sa permutation, ang bawat piraso ng aming orihinal na susi ay shuffled sa isang bagong posisyon tulad ng ipinahiwatig ng talahanayan. Dahil ang cell sa tuktok na kaliwang sulok (ng C) sabi 57, ang unang bilang ng aming pinahihintulutang key ay ang bilang sa ika-57 na posisyon ng aming lumang bloke:

01001010 10101101 11101000 10100101 01110001 01010100 10101001 11111010

Sabi ng pangalawang cell 49, na nangangahulugang ang pangalawang numero ng aming bagong key ay ang bilang na nasa ika-49 na posisyon ng aming lumang bloke:

01001010 10101101 11101000 10100101 01110001 01010100 10101001 1111010

Sabi ng pangatlong cell 41, kaya hinahanap namin ang numero sa ika-41 na posisyon:

01001010 10101101 11101000 10100101 01110001 01010100 10101001 1111010

Sa ngayon, ang aming susi ay binubuo ng “110“.

Ang natitirang susi ay nakaayos sa parehong paraan, ayon sa mga halaga ng talahanayan. Lumipat kami pakaliwa sa kanan, at sa sandaling nakarating kami sa dulo ng isang hilera, tumalon kami sa susunod, tulad ng normal. Minsan talahanayan C tapos na, tumalon kami papunta talahanayan D upang makumpleto ang pangalawang kalahati ng susi.

Walang madaling paraan upang maihatid ang aming buong bloke ayon sa paunang talahanayan ng permutation. Maaari mong gawin nang manu-mano ang buong bagay, o magsulat ng isang script para dito (o kahit na mapalad at makahanap ng isa sa kailaliman ng internet), ngunit gagawa kami at gagawa ito:

1100010 1010010 1010101 0101010 1010000 1111001 0001011 1000111

Maaari kang mag-alala na bumubuo kami ng ilan sa mga numero sa patnubay na ito, ngunit ang katotohanan ay hindi ito mahalaga. Wala nang mano-mano ang pag-encrypt ng data, nagawa na ang lahat sa pamamagitan ng mga programa. Ang pinaka-kritikal na aspeto ng tutorial na ito ay makakuha ka ng isang malinaw na ideya ng mga konsepto na nakikipag-usap sa atin. Ang mga numero mismo ang nagsisilbi upang matulungan kang mailarawan ang nangyayari.

Ang ilan sa mga mambabasa ay maaaring napansin na ang talahanayan (at ngayon ang aming susi), mayroon lamang 56 na piraso sa halip na 64. Ito ay dahil sa bawat ikawalong bit ay nilaktawan. Ito ay isang artifact mula sa mga mas lumang araw ng teknolohiya, kapag ito ay mahalaga na magkaroon ng mga pagkita ng mga parits check, na napatunayan kung tama ang natanggap nang tama. Ang mga parits check bits ay nangangahulugan na sa pagsasagawa, ang DES lamang ang may seguridad ng isang 56-bit key.

Ang mga talahanayan C at D ay nagbibigay sa amin ng isang susi na mayroong dalawang 28-bit na halves. Minsan, ang mga halves ay tinutukoy bilang C at D, ngunit sa buong artikulong ito ay tinutukoy namin ang mga ito bilang L at R, para sa kaliwa at kanan. Ang aming kaliwang bahagi ay:

1100010 1010010 1010101 0101010

Habang ang aming karapatan ay:

1010000 1111001 0001011 1000111

Ang susunod na hakbang ay ang paglipat ng susi ng alinman sa isa o dalawang puwang sa kaliwa, depende sa pag-ikot. Ang eksaktong bilang ng mga puwang ay napagpasyahan ayon sa sumusunod na paunang natukoy na talahanayan:

Round numberNumber of left shifts
11
21
32
42
52
62
72
82
91
102
112
122
132
142
152
161

Kaya’t kunin natin ang aming kaliwa at kanang halves:

L 1010010 1010010 1010101 0101010

R 1010000 1111001 0001011 1000111

At ilipat ang pareho sa kanila ng isang posisyon sa kaliwa, dahil ang unang pag-ikot ay may shift ng 1 ayon sa talahanayan (ang bilang sa kaliwang dulo ay lumilipat sa kanang dulo).

Unang pag-ikot na subkey:

L 0100101 0100101 0101010 1010101

R 0100001 1110010 0010111 0001111

Sa ikalawang pag-ikot, sinasabi din ng talahanayan 1, kaya ang resulta na ito ay muling mababago sa pamamagitan ng paglipat ng bawat numero ng isang posisyon sa kaliwa.

Pangalawang ikot subkey:

L 1001010 1001010 1010101 0101010

R 1000011 1100100 0101110 0011110

Sa ikatlong pag-ikot, ang mga numero ay ililipat ng dalawang lugar sa kaliwa, dahil ang talahanayan na ngayon ang nagsasabi 2.

Ikatlong bilog na subkey:

L 0101010 0101010 1010101 0101010

R 0001111 0010001 0111000 1111010

Sa kasunod na pag-ikot, ang mga numero ay inilipat sa kaliwa ayon sa mga distansya na tinukoy sa talahanayan, kasama ang bawat shift na inilalapat sa resulta ng nakaraang pag-ikot. Sa huli, binibigyan kami ng labing-anim na iba’t ibang mga subkey, isa para sa bawat pag-ikot ng proseso ng DES.

Ang susunod na hakbang ay isa pang permutation ayon sa talahanayan ng PC2 na ipinakita sa ibaba:

des-3a

Sa ngayon, dapat kang pamilyar sa mga permutasyon, kaya’t hindi kami pumasok sa proseso. Kung nais mong makita kung paano ito gumagana nang mas detalyado, sumangguni sa paliwanag malapit sa simula ng seksyon na ito. Kahit na magkakaiba ang mga posisyon ng relocation, pareho ang proseso.

Ang bawat isa sa 16 na mga susi na nagmula sa proseso ng paglilipat ay nabalot ngayon ayon sa talahanayan, na ang bilang mula sa ika-14 na posisyon ay lumipat sa unang lugar, ika-17 hanggang pangalawa, ika-11 hanggang sa ikatlo, atbp…

Kung titingnan mo nang maigi ang talahanayan, mapapansin mo na mayroong 48 bits lamang, kaysa sa 56 bits na nauna namin. Ang prosesong ito ay kilala bilang compression permutation.

Maaari mo ring makita na ang nangungunang kalahati ng talahanayan ay nagtatampok ng mga numero sa pagitan ng isa at 28, habang ang ilalim na kalahati ay naglalaman ng mga numero mula 29 hanggang 56. Pinapanatili nito ang kaliwa at kanang halves ng aming mga subkey na hiwalay, at ipinapahiwatig ito sa ibaba ng mas malaking puwang sa gitna ng mga susi.

Muli, gagaya tayo at gagawa ng mga numero. Sabihin nating ang buong prosesong ito ay nagbigay sa amin ng mga sumusunod na subkey:

Unang paghaharap:         010101 010101 101010 110100 101001 100101 101010 101010

Ikalawang ikot:         011010 110101 101110 110010 010100 110010 111101 101101

Ikot na tatlo:     010100 100110 110110 101010 100110 011000 101011 011001

Round apat:         011001 110101 011001 110101 000011 001011 010101 010101

Round lima:         110101 001101 010101 010101 010011 001011 010111 100101

Ikot anim:           010111 110101 011001 111001 101001 100101 101010 101010

Ikot pitong:     110101 111010 101110 101010 100110 010110 111011 001110

Round walong:       011001 110101 010101 001001 010011 001011 010100 101010

Ikot na siyam:         111011 011010 011110 100010 100010 010110 110011 110010

Round 10:             011010 010101 101110 101001 010010 010110 111000 101010

Round 11:             110101 001101 101110 101010 100101 100101 101010 001010

Round 12:             101001 100100 101001 101010 100110 011000 101011 011001

Round 13:             010010 010010 010101 010101 010110 110001 100101 101010

Round 14:             101001 100110 010101 011101 010001 001010 110010 111110

Round 15:             011001 011010 011001 110101 001001 011001 100101 101101

Round 16:             010010 100110 010101 010101 010001 101000 110010 111010    

Ang proseso ng paglilipat na ito ay nagreresulta sa bawat bit mula sa paunang susi na ginagamit sa mga 14 sa 16 subkey, bagaman ang ilang mga piraso ay ginagamit nang kaunti kaysa sa iba.

Paunang permutation

Sa sandaling nahati ang data sa mga bloke at may palaman kung kinakailangan, oras na upang simulan ang proseso ng pag-encrypt ng DES. Babalik tayo sa mga subkey na nilikha lamang natin sa ibang yugto. Ang unang hakbang ay kilala bilang paunang permutation, kung saan ang data ay naayos ayon sa sumusunod na talahanayan:

3des-12

Ang paunang proseso ng permutation na ito ay hindi gagawing ligtas sa algorithm. Ito ay dahil hindi ito kasangkot sa pag-input ng anumang key, at madaling mababaligtad. Ang algorithm ay orihinal na dinisenyo sa ganitong paraan dahil ginagawang mas madali ang pagpapatupad sa ilang mga konteksto.

Dahil ilang beses na nating natakpan ang mga permutasyon, laktawan namin ang anumang pangunahing paliwanag dito. Tumungo pabalik sa Ang pangunahing iskedyul ng DES seksyon kung kailangan mo ng karagdagang impormasyon sa kung paano sila gumagana.

Alisin natin ang unang bloke mula sa mensahe na “Hayaan ang beach”, na nakuha namin sa I-block seksyon sa ilalim Pag-unawa sa algorithm ng DES:

01001100 01100101 01110100 00100111 01110011 00100000 01100111 01101111

Dahil sabi ng unang cell 58, pipiliin namin ang numero mula sa ika-58 na posisyon:

01001100 01100101 01110100 00100111 01110011 00100000 01100111 01101111

Pagkatapos ay kukuha kami ng numero mula sa ika-50 na posisyon:

01001100 01100101 01110100 00100111 01110011 00100000 01100111 01101111

At ang bilang mula sa ika-42 na posisyon:

01001100 01100101 01110100 00100111 01110011 00100000 01100111 01101111

Nagbibigay ito sa amin “110“Hanggang ngayon. Gagawin namin ang natitirang bilang:

11010111 01001010 10101000 10011101 01001011 10110101 10000111 10101001

Kung kumpleto ang paunang permutation, ang data ay lumipat sa susunod na hakbang.

Paghahati ng mga bloke

Kapag ang data ay sumailalim sa paunang permutation nito, nahati ito sa dalawang halves. Kinukuha namin ang aming bloke na sumailalim lamang sa paunang pahintulot nito:

11010111 01001010 10101000 10011101 01001011 10110101 10000111 10101001

At paghiwalayin natin ito sa dalawang bloke, isang kaliwang bloke (binubuo ng unang 32 na numero), na kilala bilang L0:

L0    11010111 01001010 10101000 10011101

At isang kanang bloke (binubuo ng pangalawang 32 na numero), na kilala bilang R0:

R0    01001011 10110101 10000111 10101001

Ang F function

Ngayon na nahati ang bloke, oras na para maganap ang F function na. Sa unang pag-ikot, ilalapat lamang ito sa kanang kalahati ng bloke, habang ang kaliwang kalahati ay itinatago hanggang sa kalaunan. Ang kanang bahagi ay sumasailalim sa sumusunod na apat na hakbang bilang bahagi ng F function:

  • Pagpapalawak ng pagpapalawak (E sa diagram)
  • Pangunahing paghahalo (⊕ sa diagram)
  • Pagpapalit (bawat S1, S2 atbp sa diagram)
  • Permutation (P sa diagram)

des-5

Pagpapahintulot sa pagpapalawak

Ang pagpapalawak ng pagpapahintulot ay nakakamit ng tatlong bagay. Ang pinakamahalaga ay pinapayagan nito ang solong bits ng data ng pag-input na nakakaapekto sa output ng dalawang iba pang mga bit, na nagiging sanhi ng isang epekto ng pag-avalanche. Ginagawa din nito ang tamang kalahati ng 48-bits, upang ito ay ang parehong sukat ng subkey para sa susunod na hakbang. Ang iba pang epekto ng pagpapahintulot ng pagpapalawak ay ginagawang mas mahaba ang output kaysa sa pag-input. Pinapayagan nitong mai-compress sa operasyon ng pagpapalit.

Ang mga bits ay muling inayos ayon sa sumusunod na talahanayan. Ang ilan sa mga indibidwal na mga piraso ay nasa talahanayan nang dalawang beses, na kung paano pinalawak ang bloke mula 32 hanggang 48 bits:

des - 6a

Dahil ang sabi ng unang cell 32, kinuha namin ang aming kanang bloke at piliin ang numero mula sa ika-32 na posisyon, tulad ng ginawa namin sa iba pang mga halimbawa ng pahintulot na nakalista sa itaas:

R0    01001011 10110101 10000111 10101001

Kinuha namin ang mga numero mula sa unang posisyon, ang pangalawang posisyon at iba pa, pataas hanggang sa makarating kami sa kanang kanang sulok ng bloke. Dahil may a 1 sa cell na ito, ang huling numero ay din ang bilang na lilitaw sa unang posisyon ng aming block.

Sabihin nating ang pagpapalawak ng permutasyon ay nagbibigay sa amin ng isang bagong 48-bit na bloke ng:

101110 100110 100100 000000 001100 001110 101101 011110

Pangunahing paghahalo

Kapag na-block ang block sa 48 bits, oras na upang ilapat ang subkey ng unang pag-ikot, na nakuha namin sa Pangunahing iskedyul ng DES seksyon sa itaas. Ang bloke ay binago ng subkey gamit ang XOR cipher.

Ang XOR cipher ay isang karagdagan cipher na sumusunod sa isang simpleng proseso, lalo na kung ihahambing sa iba pang mga elemento na tinalakay na natin.

Sa isang XOR cipher:

0 + 0 = 0

1 + 0 = 1

1 + 1 = 0

Kaya sabihin na kailangan mong XOR ang sumusunod na dalawang numero sa binary:

1101

0101

Ang bawat digit ay idadagdag sa isa sa ibaba nito. Ayon sa tatlong patakaran na ipinakita sa itaas, nagbibigay ito ng isang resulta ng:

1000

Upang makumpleto ang pangunahing hakbang sa paghahalo, kinuha namin ang kanang bahagi ng aming bloke na pinalawak lamang namin sa 48 bits, at ang unang pag-ikot na key. Pagkatapos ay isinasagawa namin ang pagdaragdag ng XOR:

I-block:                      101110 100110 100100 000000 001100 001110 101101 011110

Bilugan ang isang key:     010101 010101 101010 110100 101001 100101 101010 101010

Resulta ng XOR:             111011 110011 001110 110100 100101 101011 000111 110100

Ang resulta ng operasyon ng XOR ay pagkatapos ay ipasa sa susunod na pag-ikot.

Pagpapalit

Ang pagpapalit ay nagdaragdag ng pagkalito sa data. Karaniwang ginagawa ito sa mga talahanayan ng lookup, na kilala rin bilang mga kapalit na kahon o S-box. Gumagamit ang DES ng walong magkahiwalay na mga talahanayan o mga S-box, isang naiiba para sa bawat 6 na piraso ng data. Ang sumusunod na talahanayan ay nagpapakita ng walong S-box ng DES:

des - 7

Ang walong magkahiwalay na S-box ay ginagamit upang isalin ang bawat 6-bit input sa isang 4-bit output. Ang unang hakbang sa proseso ay ang pagkuha ng mga numero sa simula at pagtatapos ng isang 6-bit na segment, at pagkatapos ay i-convert ang binary na halaga sa desimal.

Kunin ang data na natapos na lamang namin ang XORing sa nakaraang hakbang:

111011 110011 001110 110100 100101 101011 000111 110100

Titingnan namin ang unang segment na 6-bit upang ipakita sa iyo kung paano gumagana ang proseso ng pagpapalit:

111011

Dahil ang unang numero at huling bilang ay pareho 1, nagbibigay ito sa amin ng isang halaga ng 11. Kami ay nag-convert 11 mula sa binary hanggang decimal, na nagbibigay sa amin 3. Ito ay mga katumbas na halaga lamang, na nakasulat sa iba’t ibang paraan. Isipin ito bilang pag-convert ng wika ng computer sa wika ng tao. Maaari mong suriin ang conversion para sa iyong sarili sa isang online calculator kung nais mo.

Kinuha namin ang apat na gitnang mga numero ng unang 6-bit na segment:

111011

At i-convert ang mga ito mula sa binary hanggang desimal. 1101 isinalin sa numero 13.

Ngayon, kinukuha namin ang dalawang numero at tingnan ang mga ito sa S1 talahanayan:

                des - 7a

Ang aming unang numero, 3, Sinasabi sa amin na tumingin sa ikatlong hilera, habang ang aming pangalawang numero, 13 Sinasabi sa amin na tumingin sa ika-13 haligi. Ang halaga sa pangatlong hilera ng ika-13 haligi ay 0.

Ngayon na napatingin kami sa aming talahanayan, ibinalik namin ito pabalik sa apat na digit na binary. Ang Zero ay karaniwang nakasulat bilang 0 sa binary, ngunit 0000 ay pareho, at ito ang format na pinaka-angkop para sa aming mga layunin.

Kasunod ng prosesong ito, binago ng S-box ang aming unang 6-bit na seksyon ng data (111011) sa ibang halaga ng 4-bit (0000). Tila pinagsama-sama, ngunit ang pamamaraan na ito ay nakakatulong upang higit na maitago ang kaugnayan sa pagitan ng ciphertext at plaintext na ito ay naka-link sa.

Ang susunod na 6-bit na seksyon ng data pagkatapos ay dumaan sa parehong proseso, ngunit sa halip ay ginagamit nito ang kahon ng S2 na ipinakita sa itaas. Ang ikatlong seksyon ay gumagamit ng talahanayan ng S3 at iba pa, hanggang sa ang huling seksyon ay sumasailalim sa pagpapalit sa pamamagitan ng talahanayan ng S8.

Muli, gagaya kami para sa natitirang mga halaga. Sabihin nating ang mga kahon ng pagpapalit ay nagbibigay sa amin ng isang resulta ng:

0000 1010 1100 1001 0100 1001 0111 0001

Kapag ang bawat seksyon ng data ay dumaan sa S-box nito, gumagalaw ito sa susunod na hakbang.

Permutation

Ang huling yugto ng F F ay isa pang permutation, gamit ang sumusunod na talahanayan:des - 8a

Sa ngayon, dapat kang magkaroon ng isang disenteng pag-unawa sa kung paano ang mga pinahihintulutan na paglilipat ng mga numero mula sa lumang bloke tungo sa ibang posisyon sa bagong bloke, kaya hindi na kami muling pumasok.

Sabihin natin na ang permutation na ito ay tumatagal ng aming nakaraang resulta:

0000 1010 1100 1001 0100 1001 0111 0001

At nagbibigay sa amin ng isang output ng:

0101 0110 1001 0101 0010 0100 0101 0010

Ngayon na ang permutation ay nakumpleto, natapos na namin ang apat na mga hakbang ng F F sa ikot na ito. Sa notasyong matematika, ang halagang ito ay kilala bilang f (R0, K1). Nangangahulugan ito na ang resulta ay ang pagpapaandar (f) ng paunang kanang bahagi ng block (R0) at subkey ng unang pag-ikot (K1).

XOR na may kaliwang bloke

Alalahanin kung paano namin nahati ang bloke sa kalahati bago namin sinimulan ang mga hakbang ng F F? Inihiwalay namin ang kaliwang bahagi ng block (L0), habang ang kanang bahagi ay sumasailalim sa bawat isa sa mga prosesong ito. Ngayon, oras na para sa L0 na bumalik sa aksyon.

Kinukuha namin ang kanang bahagi na aming naproseso f (R0, K1) at idagdag ito sa kaliwang kaliwang bahagi (L0) gamit ang XOR cipher. Nagbibigay ito sa amin R1, ang resulta ng aming unang pag-ikot:

f (R0, K1):                         0101 0110 1001 0101 0010 0100 0101 0010

L0:                                    1101 0111 0100 1010 1010 1000 1001 1101

Ang resulta ng XOR (R1):              1000 0001 1101 1111 1000 1100 1100 1111

Sumangguni sa Pangunahing paghahalo seksyon sa itaas kung kailangan mo ng isang paalala kung paano gumagana ang cipher ng XOR.

15 pang pag-ikot …

Kung nakuha mo ito nang malayo, marahil ang DES ay parang isang mahirap na proseso. Ngunit hindi pa ito malapit na matapos. Ang data ay napupunta kahit na ang apat na mga hakbang ng F function, na sinusundan ng XOR, isa pang 15 beses, para sa isang kabuuang 16 na pag-ikot.

Sa ikalawang pag-ikot, kinukuha namin ang orihinal, hindi naipakita na bersyon ng kanang bahagi ng block (R0) at ginagawa itong bagong kaliwang bahagi (L1). Samantala, kinukuha namin ang resulta ng aming unang pag-ikot at ipadala ito sa pamamagitan ng F function. Nangyayari ang lahat ng parehong bilang huling oras, gayunpaman sa oras na ito ang subkey para sa ikot na dalawa ay ginagamit sa halip. Sabihin nating ang prosesong ito ay nagbibigay sa amin ng isang resulta ng:

f (R1, K2):        1011 0111 1000 1011 1001 1101 1001 1110

Kami pagkatapos XOR ang resulta sa L1, na kung saan ay talagang R0 (nakuha namin ito sa Paghahati ng mga bloke seksyon). Nagbibigay ito sa amin ng resulta ng ikalawang pag-ikot, R2:

f (R1, K2):           1011 0111 1000 1011 1001 1101 1001 1110

L1:                      0100 1011 1011 0101 1000 0111 1010 1001

R2:                     1111 1100 0011 1110 0001 1010 0011 0111

Ang hakbang na ito ay maaaring medyo nakalilito, ngunit sa ilalim ng pamamaraan ng Feistel, ang lumang kanang bahagi ay naging bagong kaliwa, habang ang resulta ng operasyon ay naging bagong kanang bahagi.

Ang sumusunod na diagram ay nagbibigay sa iyo ng isang visual na representasyon ng kung ano ang nangyayari. Ang IP ay kumakatawan sa paunang permutation, F ay isang stand-in para sa buong F function, ang ⊕ ay sumisimbolo sa XOR function at ang mga arrow ay nagpapahiwatig sa bawat panig ng block na lumipat sa pagitan ng kaliwa at kanan:

des-9

Ang eksaktong pormula para sa bawat hakbang ay:

Ln = Rn-1

Rn = Ln-1 + f(Rn-1,Kn)

Kung saan:

L = Ang kaliwang kalahati ng bloke (nagsisimula sa L0 kapag ang bloke ay una nahati)

R = Ang kanang kalahati ng bloke (nagsisimula sa R0 kapag ang block ay una nahati)

n = Ang bilog na numero (na nagsisimula sa 0, nang ang split ay una nahati)

f = Ang F function

Kn = Ang subkey para sa pag-ikot n

Ayon sa pormula at diagram, sa ikatlong pag-ikot, ang R1 ay naging bagong kaliwang kalahati (L2), habang ang R2 ay naproseso sa pamamagitan ng F function. Sabihin natin na nagbibigay ito sa amin ng isang resulta ng:

f (R2, K3)        1001 0111 0000 1011 1101 0111 1011 1011

Pagkatapos ay kinakalkula namin ang resulta ng aming ikatlong pag-ikot (R3), gamit ang XOR cipher, tulad ng dati:

f (R2, K3):           1011 0111 1000 1011 1001 1101 1001 1110

L2:                      0100 1011 1011 0101 1000 0111 1010 1001

R3:                      1111 1100 0011 1110 0001 1010 0011 0111

Ang parehong proseso ay nagpapatuloy hanggang sa ika-labinlimang pag-ikot, kasama ang mga bloke na lumilipat at ang susunod na subkey na ginagamit sa bawat pag-ikot. Sa ika-16 at pangwakas na pag-ikot, ang mga bloke ay hindi nakabukas. Sa halip, pinagsama sila upang makabuo ng isang 64-bit block. Ang pag-iwas mula sa pagpapalit ng mga bloke sa huling yugto na ito ay nagbibigay-daan sa algorithm na magamit para sa parehong pag-encrypt at decryption.

Sabihin nating ang huling pag-ikot ay nagbibigay sa amin ng isang resulta ng:

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

Pangwakas na permutasyon

Ang permutation na ito ay ang kabaligtaran ng paunang permutation, at muli, nagdaragdag ito ng walang labis na halaga ng seguridad. Susuriin nito ang data ayon sa sumusunod na talahanayan:

des-10a

Ang talahanayan ng permutation na ito ay gumagana pareho sa mga nauna. Dahil ito ang huling hakbang ng proseso ng pag-encrypt, ang magiging resulta ay ang ciphertext para sa unang bloke ng “Umalis na tayo sa beach “. Sabihin nating ang naka-encrypt na bloke ay:

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

Ngayon, kung nais mo ang tunay na ciphertext para sa “Pumunta ka sa beach”, maaari mo lamang laktawan ang buong proseso ng pag-aaral at dumiretso sa isang online na tool sa pag-encrypt ng DES. Kung ipinasok namin ang aming pangungusap sa tabi ng isang susi (sabihin natin kj329nf982bc9wn1) ang tool ay nagbibigay sa amin ng isang naka-encrypt na teksto ng:

U2FsdGVkX19Pienyu3w3q4zCd2IPKEPUWBzu3AeyVu2H3FeimZe6hA

Kung nais mo, maaari mong i-convert ang key at ang ciphertext sa binary at pagkatapos ay ihambing kung paano ciphertext ng unang bloke linya kasama ang buong proseso na na-outline.

Ang decryption ng DES

Sa DES, ang proseso ng decryption ay hindi mapaniniwalaan o tuwiran. Pinapayagan nito ang istraktura ng Feistel ng algorithm na madaling mababaligtad. Ang proseso ay tatakbo halos eksaktong pareho upang i-decrypt ang impormasyon. Ang pagkakaiba lamang ay ang mga subkey ay inilalapat sa baligtad. Ito ay isang mahusay na pag-setup, sapagkat nangangahulugan ito na ang parehong software at hardware ay maaaring magamit sa parehong mga proseso ng pag-encrypt at decryption.

Upang i-decrypt ang data, una itong dumaan sa isang paunang permutation, pagkatapos ang block ay nahati at ang kanang kalahati ay dumadaan sa F F function. Ang pagkakaiba ay na sa unang pag-ikot ng decryption, ang ika-16 na subkey ay inilalapat. Lahat ng iba pa ay nagpapatuloy bilang normal. Kapag kumpleto ang pag-andar ng F, ito ay XORed sa kaliwang bahagi ng block.

Ang mga bloke ay nakabukas at ang resulta ay dumadaan sa parehong proseso para sa ikalawang pag-ikot, na may tanging pagbubukod na inilalapat ang ika-15 na subkey. Ang prosesong ito ay nagpapatuloy hanggang sa ika-16 na pag-ikot, kung ginamit ang 1st subkey.

Tulad ng proseso ng pag-encrypt, ang mga bloke ay hindi napalitan sa pangwakas na yugto, at pagkatapos ang data ay sumailalim sa isang pangwakas na pahintulot. Natapos nito ang proseso ng decryption, na nagreresulta sa orihinal na plaintext ng mensahe.

3DES

Habang ang mga kahinaan sa seguridad ng DES ay naging mas maliwanag, ang 3DES ay iminungkahi bilang isang paraan ng pagpapalawak ng pangunahing sukat nito nang hindi kinakailangang bumuo ng isang ganap na bagong algorithm. Sa halip na gumamit ng isang solong key tulad ng sa DES, ang 3DES ay nagpapatakbo ng algorithm ng DES nang tatlong beses, na may tatlong 56-bit key:

  • Key isa ay ginagamit upang i-encrypt ang plaintext.
  • Ang pangunahing dalawang ay ginagamit upang i-decrypt ang teksto na na-encrypt ng susi.
  • Ang pangunahing tatlong ay ginagamit upang i-encrypt ang teksto na na-decc ng key key.

Sa bawat yugto, ang kumpletong proseso ng DES ay sinusunod tulad ng nakabalangkas sa itaas.

Ngayon, maaari kang magtataka “Paano ang pag-apply ng decryption sa ikalawang hakbang mapahusay ang seguridad?”

Ang sagot ay gumagamit ito ng isang hiwalay na susi. Kung ang unang susi ay ginamit din upang i-decrypt ang data sa ikalawang hakbang, kung gayon ang data ay babalik sa kung saan ito nagsimula.

Gayunpaman, dahil gumagamit ito ng ibang susi, ang proseso ng decryption ay hindi talaga nagsisilbi upang i-decrypt ang data. Ito ay maaaring mukhang lohikal na baluktot, ngunit ang pag-decrypting na may isang hiwalay na susi ay nagsisilbi lamang upang mapagsama ang data.

Kapag ang pangalawang key ay “decrypted” ang data, ang pangatlong key ay inilapat upang i-encrypt ito muli. Ang resulta ay ang ciphertext ng 3DES.

Naayos ang 3DES sa ganitong paraan dahil pinapayagan nito ang mga pagpapatupad na maging katugma sa solong key DES, dalawang key DES at tatlong key DES (ang mga ito ay nasasakop sa sumusunod na seksyon). Hindi ito gagana kung ginamit ang pag-encrypt sa lahat ng tatlong mga hakbang.

Mga pagpipilian sa keating 3DES

Sa teknolohiyang, ang 3DES ay maaaring maipatupad kasama ang tatlong magkakaibang mga pangunahing mga pagsasaayos. Sa kabila nito, ang pangalawa at pangatlong pagpipilian ay hindi sigurado at hindi dapat ipatupad.

  • Ang pagpipilian ng keying – Ang pagpipiliang ito ay gumagamit ng tatlong independyenteng mga susi at ang pinaka ligtas.
  • Opsyon ng keying dalawa – Sa pagsasaayos na ito, ang una at pangatlong key ay pareho.
  • Ang pagpipilian ng keying tatlo – Gumagamit ito ng tatlong magkaparehong mga susi. Kapag ginagamit ang magkaparehong mga susi, ang proseso ng decryption sa ikalawang yugto ay nag-aalis ng unang pag-encrypt, na iniiwan lamang ang pangwakas na pag-encrypt upang baguhin ang data. Ginagawa nito ang resulta katulad ng ordinaryong DES.

Ang proseso ng 3DES: Ang pagpipilian ng keying

Maging matapat, ang kabuuan ng proseso ng 3DES ay maaaring gawing paikutin ang iyong ulo, lalo na kung bago ka sa krograpiya. Upang matulungan itong lumubog, narito ang isang maikling buod ng buong scheme ng pag-encrypt ng 3DES algorithm:

Ang plaintext ay pumapasok sa 3DES algorithm at una naka-encrypt na may susi sa mga sumusunod na hakbang:

    • Pangunahing iskedyul – ang 16 mga subkey ay nagmula sa pangunahing susi

    • Paunang permutation

    • Ang bloke ay nahati sa kaliwa at kanang halves

      • Ang kanang kalahati ay ipinadala sa pamamagitan ng F function

        • Pagpapahintulot sa pagpapalawak

        • XOR kasama ang subkey para sa pag-ikot

        • Pagpapalit

        • Permutation

      • XOR ang resulta ng F function na may kaliwang bahagi

      • Gawin ang lumang kanang bahagi sa bagong kaliwang bahagi, at ang resulta ng bagong kanang bahagi

        Ulitin ang mga hakbang sa itaas 14 beses

      • Ang kanang kalahati ay ipinadala sa pamamagitan ng F function

        • Pagpapahintulot sa pagpapalawak

        • XOR kasama ang subkey para sa ika-16 na pag-ikot

        • Pagpapalit

        • Permutation

      • XOR ang resulta ng F function na may kaliwang bahagi

      • Pagsamahin ang kaliwa at kanang bahagi ng bloke nang magkasama

    • Pangwakas na permutasyon

Kunin ang teksto na na-encrypt na may susi, pagkatapos ay ipadala ito sa “Decryption” na proseso kasama susi dalawa:

    • Pangunahing iskedyul – ang 16 mga subkey ay nagmula sa pangunahing dalawa

    • Paunang permutation

    • Ang bloke ay nahati sa kaliwa at kanang halves

      • Ang kanang kalahati ay ipinadala sa pamamagitan ng F function

        • Pagpapahintulot sa pagpapalawak

        • XOR kasama ang subkey para sa pag-ikot (simula sa ika-16 na subkey para sa decryption)

        • Pagpapalit

        • Permutation

      • XOR ang resulta ng F function na may kaliwang bahagi

      • Gawin ang lumang kanang bahagi sa bagong kaliwang bahagi, at ang resulta ng bagong kanang bahagi

        Ulitin ang mga hakbang sa itaas 14 beses

      • Ang kanang kalahati ay ipinadala sa pamamagitan ng F function

        • Pagpapahintulot sa pagpapalawak

        • XOR kasama ang subkey para sa unang pag-ikot

        • Pagpapalit

        • Permutation

      • XOR ang resulta ng F function na may kaliwang bahagi

      • Pagsamahin ang kaliwa at kanang bahagi ng bloke nang magkasama
    • Pangwakas na permutasyon

Kunin ang data na “nai-decrypted” ng mga key key, pagkatapos ay ipadala ito sa pamamagitan ng enproseso ng cryption na may susi tatlo:

    • Pangunahing iskedyul – ang 16 mga subkey ay nagmula sa pangunahing tatlo

    • Paunang permutation

    • Ang bloke ay nahati sa kaliwa at kanang halves

      • Ang kanang kalahati ay ipinadala sa pamamagitan ng F function

        • Pagpapahintulot sa pagpapalawak

        • XOR kasama ang subkey para sa pag-ikot

        • Pagpapalit

        • Permutation

      • XOR ang resulta ng F function na may kaliwang bahagi

      • Gawin ang lumang kanang bahagi sa bagong kaliwang bahagi, at ang resulta ng bagong kanang bahagi

        Ulitin ang mga hakbang sa itaas 14 beses

      • Ang kanang kalahati ay ipinadala sa pamamagitan ng F function

        • Pagpapahintulot sa pagpapalawak

        • XOR kasama ang subkey para sa ika-16 na pag-ikot

        • Pagpapalit

        • Permutation

      • XOR ang resulta ng F function na may kaliwang bahagi

      • Pagsamahin ang kaliwa at kanang bahagi ng bloke nang magkasama

    • Pangwakas na permutasyon

Ang resulta ay ang ciphertext ng 3DES.

Ang seguridad ng 3DES

Ang seguridad ng 3DES ay depende sa kung aling pagpipilian ng keying ang ginagamit. Ang pagpipilian ng keying ay nagsasangkot ng tatlong magkakaibang 56-bit na mga susi, na nagbibigay ito ng isang kabuuang haba ng 168 bit. Ang mabisang haba ay nabawasan nang malaki sa pamamagitan ng meet-in-the-middle na pag-atake, na nagdadala ng seguridad ng tunay na mundo sa 112 bits.

Ang mga pag-atake sa meet-in-the-middle ay kapaki-pakinabang laban sa mga scheme ng pag-encrypt na ulitin ang parehong algorithm nang maraming beses. Inilalagay ng diskarteng ito ang mga agarang halaga mula sa bawat yugto ng pag-encrypt, at pagkatapos ay ginagamit ang impormasyong ito upang radikal na mapabuti ang oras na aabutin upang mapusok ang puwersa ng algorithm.

Ang mga pagpipilian sa dalawa at tatlo ay may makabuluhang mas maliit na mga susi at mahina sa parehong kilalang-plaintext, at napiling pag-atake ng plaintext, pati na rin ang iba.

Ang mga kilalang pag-atake ng plaintext ay posible kapag ang isang kalaban ay may access sa parehong plaintext at ciphertext ng isang mensahe. Kung ang isang algorithm ay madaling kapitan sa mga pag-atake na ito, maaaring gamitin ng attacker ang impormasyong ito upang maibawas ang susi, na nagpapahintulot sa kanila na basagin ang lahat ng iba pang mga data na na-encrypt ng parehong key.

Ang isang napiling-plaintext na pag-atake ay magkapareho, ngunit nagsasangkot ito sa attacker na walang takip ang susi sa pamamagitan ng paghahambing ng mga ciphertext sa mga di-makatwirang mga plaintext.

Dahil sa mga kahinaan na ito at ang pangkalahatang maliit na susi na sukat na kasangkot, ang mga pagpipilian sa keying dalawa at tatlo ay hindi sigurado at hindi dapat ipatupad.

Ligtas ba ang 3DES?

Dahil ang 3DES ay maialis sa susunod na ilang taon, pinakamahusay na gumamit ng iba pang mga algorithm. Habang ang pagpipilian ng keying ang isa ay itinuturing na ligtas pa rin para sa maraming mga aplikasyon, walang maraming magagandang dahilan kung bakit dapat itong gamitin sa halip na isang alternatibong tulad ng AES.

Bagaman ang 3DES ay may mahalagang lugar sa krograpiya bilang follow-up sa DES, ang mga taon ng kaluwalhatian nito at oras na upang magpatuloy. Kung nais mong ma-secure nang maayos ang iyong mga system sa hinaharap, dapat mong gamitin ang isang mas napapanahon na algorithm.

Kaugnay: Ipinaliwanag ang mga karaniwang uri ng pag-encrypt

Plano X sa pamamagitan ng lisensyado ng DoD sa ilalim CC0

Kim Martin
Kim Martin Administrator
Sorry! The Author has not filled his profile.
follow me