Mikä on 3DES-salaus ja miten DES toimii?

Mikä on 3DES-salaus ja miten DES toimii (1)


3DES on salaussalaus, joka johdettiin alkuperäisestä tietojen salausstandardista (DES). Se tuli näkyväksi 1990-luvun lopulla, mutta on sittemmin menettänyt suosionsa turvallisempien algoritmien noustessa.

Vaikka se vanhenee vuonna 2023, se toteutetaan silti joissakin tilanteissa. Koska se perustuu yhdeksi ensimmäisistä laajasti julkaistuista ja tutkituista algoritmeista, DES, on silti tärkeää oppia, mikä 3DES on ja miten se toimii.

Tämä opas vie sinut läpi jokaisen DES-prosessin vaiheen yksityiskohtaisesti ja kuvaa sitten kuinka DES: ää muokataan 3DES: ssä sen turvallisuuden lisäämiseksi. Se koskettaa myös erilaisia ​​tietoturvakysymyksiä ja sitä, pitäisikö sinun käyttää algoritmia.

Mikä on 3DES?

Vaikka sitä kutsutaan virallisesti kolminkertaiseksi tietojen salausalgoritmiksi (3DEA), kutsutaan siitä yleisimmin nimellä 3DES. Tämä johtuu siitä, että 3DES-algoritmi käyttää Data Encryption Standard (DES) -salaketta kolme kertaa tietojen salaamiseen.

DES on symmetrisen avaimen algoritmi, joka perustuu Feistel-verkkoon. Symmetrisen avaimen salauksena se käyttää samaa avainta sekä salaus- että salauksen purkuprosesseihin. Feistel-verkko tekee molemmat näistä prosesseista lähes täsmälleen samat, mikä johtaa algoritmin toteuttamiseen, joka on tehokkaampi.

DES: ssä on sekä 64-bittinen lohko että avaimen koko, mutta käytännössä avain antaa vain 56-bittisen suojauksen. 3DES kehitettiin turvallisemmaksi vaihtoehdoksi, koska DES on pieni näppäimen pituus. 3DES: ssä DES-algoritmi suoritetaan kolme kertaa kolmella avaimella, mutta sitä pidetään turvallisena vain, jos käytetään kolmea erillistä avainta.

3DES: n käyttö

Kun normaalin DES: n heikkoudet tulivat ilmi, 3DES otettiin käyttöön monissa sovelluksissa. Se oli yksi yleisimmin käytetyistä salausohjelmista ennen AES: n nousua.

Joitakin esimerkkejä sen toteutuksista olivat Microsoft Office, Firefox ja EMV maksujärjestelmät. Monet näistä alustoista eivät enää käytä 3DES: ää, koska on olemassa parempia vaihtoehtoja.

Kansallinen standardointi- ja teknologiainstituutti (NIST) on julkaissut ehdotusluonnoksen, jonka mukaan kaikki 3DES-muodot ovat vanhentuneita vuoteen 2023 mennessä ja poistetaan käytöstä vuodesta 2024 alkaen. Vaikka ehdotus on vain luonnos, ehdotus merkitsee aikakauden loppua, ja on jo aika mennä siirtymään muille, turvallisemmille algoritmeille.

3DES-salauksen historia

Koska 3DES on johdettu DES: stä, on parasta esitellä ensin aikaisempi standardi. Seitsemänkymmenenluvulla National Bureau of Standards (NBS - siitä on sittemmin tullut uusi nimi NIST) haki algoritmia, jota se voisi käyttää standardina salaamalla herkät mutta luokittelemattomat hallitustiedot..

NBS hyväksyi ehdotuksia standardiksi, joka sopisi sen vaatimuksiin, mutta yksikään alkuperäisen kierroksen ehdokkaista ei ollut sopiva. Se kutsui lisää kommentteja, ja tällä kertaa IBM lähetti ryhmänsä kehittämän algoritmin kautta. Esitys on johdettu Horst Feistelin suunnittelemasta Lucifer-salauksesta.

Vuonna 1975 NBS julkaisi IBM-algoritmin ehdotettua tietojen salausstandardia varten. Yleisöä pyydettiin kommentoimaan mallia, joka herätti kritiikkiä.

Tunnetut kryptograffailijat, kuten Whitfield Diffie ja Martin Hellman, Diffie-Hellman-avaimenvaihdon suunnittelijat, väittivät, että avaimen pituus oli liian lyhyt ja S-laatikot oli vaihdettu alkuperäisestä suunnittelustaan.

Tuolloin monet salausyhteisön mielestä NSA oli sabotoinut projektia ja heikentänyt algoritmia niin, että se olisi ainoa virasto, joka voisi rikkoa DES: n..

Kun Yhdysvaltain senaatin tiedustelupalvelu valitsi tämän tutkimuksen, havaittiin, että ”NSA vakuutti IBM: n, että pienennetty avaimen koko oli riittävä; avustettu epäsuorasti S-box-rakenteiden kehittämisessä; ja todisti, että lopullinen DES-algoritmi oli heidän tietämyksensä mukaan vapaa kaikista tilastollisista tai matemaattisista heikkouksista. "

Samassa raportissa jatkettiin, että ”NSA ei ole millään tavalla käsitellyt suunnittelua.” Tätä ovat tukeneet jotkut IBM: n entiset työntekijät, jotka väittivät, että DES-algoritmi oli kokonaan IBM-tiimin suunnittelema..

NSA: n oma turvaluokiteltu dokumentaatio väittää, että virasto "teki tiivistä yhteistyötä IBM: n kanssa vahvistaakseen algoritmia kaikkia paitsi brutaalivoimahyökkäyksiä vastaan ​​ja vahvistaakseen korvaustaulukoita ..."

Epäilykset NSA: n peukaloinnista helpottuivat 1990-luvulla, kun differentiaalinen kryptoanalyysi löydettiin julkisesti. Kun paljon malignit S-laatikot testattiin uudella tekniikalla, niiden havaittiin olevan kestävämpiä hyökkäykselle kuin jos ne olisi valittu satunnaisesti..

Tämä osoittaa, että IBM-ryhmä oli jo tiennyt erotetusta kryptoanalysistä seitsemänkymmenenluvulla, ja Steven Levy väitti, että NSA pyysi heitä pitämään tekniikan salassa kansallisen turvallisuuden suojelemiseksi..

Kuuluisa kryptographer Bruce Schneier sanoi kerran: "Akateemiselle yhteisölle kului kaksi vuosikymmentä selvittää, että NSA: n" tweaks "todella paransivat DES: n turvallisuutta."

Algoritmin turvallisuutta ja NSA: n osallistumista koskevista alkuperäisistä kysymyksistä huolimatta IBM-algoritmi hyväksyttiin edelleen tietojen salausstandardiksi vuonna 1976. Se julkaistiin vuonna 1977 ja vahvistettiin uudelleen standardiksi vuosina 1983, 1988 ja 1993..

Kun lineaarinen kryptoanalyysi julkaistiin ensimmäisen kerran vuonna 1994, se alkoi herättää kysymyksiä algoritmin turvallisuudesta. Vuonna 1997 NIST ilmoitti etsimään algoritmia DES: n korvaamiseksi. Uuden algoritmin tarvetta vahvistettiin, kun tekniikka kehittyi edelleen ja mahdolliset hyökkäykset vahvistuivat.

Erilaiset krakkausyritykset osoittivat, että algoritmin murtaminen oli vähemmän vaikeaa kuin aiemmin ajateltiin. Vuonna 1998 hajottu.net pystyi murtamaan DES: n 39 päivää.

Vuoden 1999 alkuun mennessä Electronic Frontier Foundation -säätiön Deep Crack oli saanut aikaan hiukan yli 22 tuntia. Tämä merkitsi DES: n päättymistä, koska tämän tyyppinen hyökkäys oli nyt hyvin resursseitetun vastustajan ulottuvilla.

Pääasia oli pieni avaintila, ja uutta algoritmia tarvittiin kipeästi. Tämä oli ongelma, koska NIST: ltä kesti vielä useita vuosia, ennen kuin asema algoritmiin, josta tuli korvaava standardi, Advanced Encryption Standard (AES).

Samalla kun AES-salauksesta päätettiin, 3DES: ää ehdotettiin pysäytyskohdeksi. Siihen kuuluu DES-algoritmin suorittaminen kolme kertaa, kolmella erillisellä näppäimellä. Vuonna 1999 DES vahvistettiin, mutta 3DES oli ihanteellinen algoritmi. Normaali DES oli sallittu vain vanhoissa sovelluksissa.

3DES: stä tuli edelleen laajalle levinnyt salausalgoritmi, vaikkakin sen resurssien runsas käyttö ja tietoturvarajoitukset ovat johtaneet sen korvaamiseen AES: lla useimmissa käyttötapauksissa.

DES-algoritmin ymmärtäminen

Ennen kuin voimme puhua 3DES: n yksityiskohdista, on tärkeää ymmärtää DES-algoritmi, josta se on johdettu. Joten aloitetaan heti alussa.

Käytämme salausta muuttaaksemme selkeän tekstin salattuksi tekstiksi, joka on tietoa, johon hyökkääjät eivät pääse (niin kauan kuin käytämme sopivia algoritmeja).

Salausalgoritmit ovat olennaisesti monimutkaisia ​​matemaattisia kaavoja. Kun kyse on salaisuudesta, kuten "Mennään rannalle", monet ihmiset hämmentyvät. Loppujen lopuksi kuinka voit soveltaa matematiikkaa esimerkiksi kirjaimiin ja merkkeihin?

Tekstin koodaus

Tosiasia on, että tietokoneet eivät käsittele kirjaimia ja merkkejä. Sen sijaan he työskentelevät 1: n ja 0: n järjestelmässä, joka tunnetaan binaarina. Jokainen 1 tai 0 tunnetaan bittinä, ja kahdeksan niistä koostuva kokoelma tunnetaan tavuna.

Voit joko etsiä sen manuaalisesti tai käyttää online-muunnosta nähdäksesi, että binaarissa "Let 's go the beach" tulee:

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

lohkot

Kun tiedot salataan, ne jaetaan erillisiin lohkoihin käsittelyä varten. DES: llä on 64-bittinen lohko, mikä tarkoittaa olennaisesti, että kukin lohko sopii 64: n ja nollan sekoitukseen. Ensimmäinen lohko (yllä esitetyn binaarin 64 ensimmäistä numeroa) olisi:

01001100 01100101 01110100 00100111 01110011 00100000 01100111 01101111

Toinen olisi:

00100000 01110100 01101111 00100000 01110100 01101000 01100101 00100000

Ja viimeinen esto olisi:

01100010 01100101 01100001 01100011 01101000

täyte

Olet ehkä huomannut, että kolmas lohkomme on vain 40 bittiä pitkä. Ennen kuin se voidaan salata, se on rakennettava 64-bittiseen lohkoon. Tämä tehdään täyte, johon sisältyy lisätietojen lisäämistä lohkoon sen suorittamiseksi. Tämä voidaan tehdä useilla erilaisilla järjestelmillä, ja se voi myös tehdä salattuja tietoja vaikeammiksi murtaa, mutta emme puhu tähän artikkeliin..

DES-näppäimen aikataulu

Salausalgoritmit käyttävät avaimia lisätäkseen tietoja, jotka muuttavat prosessin lopputulosta. Jos DES sisälsi vain vaiheet, kuten permutaatio ja S-laatikot (permutaatio selitetään alla, kun taas S-ruudut on katettu korvaaminen osio), kaikki, jotka hyökkääjän olisi tehtävä, on paljastaa algoritmin yksityiskohdat ja suorittaa sitten kaikki vaiheet käänteisesti paljastaaksesi alkuperäisen viestin.

Koska suurin osa algoritmeistamme tunnetaan laajalti, se ei todellakaan lisäisi paljon turvallisuutta. Sen sijaan salaiset avaimet lisätään tuloksen muuttamiseen tavalla, jota ei voida ennustaa pelkästään algoritmin tuntemisella (kunhan käytetään riittävän monimutkaista algoritmia).

DES alkaa yhdellä näppäimellä, jota käytetään ala-näppäimien valmistukseen, joita käytetään jokaisella kierroksella. Tämä on 64-bittinen avain, joka on samankokoinen kuin lohkomme. Oletetaan, että avain on:

01001010 10101101 11101000 10100101 01110001 01010100 10101001 11111010

Nyt tämä avain on binäärinen, jolla tiedot ilmaistaan, kun tietokoneet käsittelevät sitä. Kun ihmiset käsittelevät näppäimiä, ne näkyvät yleensä hahmojen sekoituksena, jotain tällaista:

kj329nf982bc9wn1

DES: ssä ensimmäinen vaihe pyöreiden näppäimien saamiseksi on avaimen jatkaminen (siirrä sitä) seuraavan taulukon mukaisesti:

3DES-2a

Permutaatiossa alkuperäisen avaimen jokainen bitti siirretään uuteen sijaintiin taulukon osoittamalla tavalla. Koska C: n vasemmassa yläkulmassa oleva solu sanoo 57, permutoidun avaimen ensimmäinen numero on vanhan lohkon 57. sijalla oleva numero:

01001010 10101101 11101000 10100101 01110001 01010100 10101001 11111010

Toinen solu sanoo 49, mikä tarkoittaa, että uuden avaimesi toinen numero on numero, joka on vanhan lohkomme 49. sijalla:

01001010 10101101 11101000 10100101 01110001 01010100 10101001 1111010

Kolmas solu sanoo 41, Joten etsimme numeroa 41. kohdasta:

01001010 10101101 11101000 10100101 01110001 01010100 10101001 1111010

Toistaiseksi avaimemme koostuu110”.

Loput näppäimet on järjestetty samalla tavalla taulukon arvojen mukaan. Liikkeemme vasemmalle oikealle ja kun olemme päässeet rivin loppuun, hyppäämme alas seuraavaan, aivan kuten normaalisti. Kerran taulukko C on valmis, hyppäämme kohti taulukko D avaimen toisen puoliskon suorittamiseksi loppuun.

Koko lohkon siirtäminen alkuperäisen permutaatiotaulukon mukaan ei ole helppoa. Voit tehdä koko asian manuaalisesti tai kirjoittaa sille komentosarjan (tai jopa onnea ja löytää sellaisen Internetin syvyyksistä), mutta huijaamme ja korjaamme sen:

1100010 1010010 1010101 0101010 1010000 1111001 0001011 1000111

Saatat olla huolissasi siitä, että olemme tekemässä joitain tämän oppaan numeroista, mutta todellisuus on, että sillä ei ole väliä. Kukaan ei salaa tietoja manuaalisesti, kaikki tapahtuu ohjelmien kautta. Tämän oppaan kriittisin osa on, että saat selkeän kuvan käsitteistämme, joita käsittelemme. Numerot itse vain auttavat sinua visualisoimaan mitä tapahtuu.

Jotkut lukijat ovat ehkä huomanneet, että taulukossa (ja nyt avaimestamme) on vain 56 bittiä eikä 64. Tämä johtuu siitä, että jokainen kahdeksas bitti ohitetaan. Tämä on artefakti tekniikan vanhemmista päivistä, jolloin oli tärkeää saada pariteetin tarkistusbittejä, joilla varmennettiin, onko avain vastaanotettu oikein. Nämä pariteetin tarkistusbitit tarkoittavat, että käytännössä DES: llä on vain 56-bittisen avaimen suojaus.

Taulukot C ja D antavat meille avaimen, jossa on kaksi 28-bittistä puolia. Joskus puoliskoihin viitataan nimellä C ja D, mutta koko tässä artikkelissa viitataan niihin L ja R vasemmalle ja oikealle. Vasemmalla puolella on:

1100010 1010010 1010101 0101010

Vaikka meidän oikeutemme on:

1010000 1111001 0001011 1000111

Seuraava vaihe on avaimen siirtäminen yhdellä tai kahdella välilyönnillä vasemmalle kierroksesta riippuen. Tarkka tilamäärä määrätään seuraavan ennalta määrätyn taulukon mukaan:

Pyöreä lukumäärä Vasen vuoro
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

Otetaan sitten vasen ja oikea puoliskomme:

L 1010010 1010010 1010101 0101010

R 1010000 1111001 0001011 1000111

Ja siirrä molemmat yksi asento vasemmalle, koska ensimmäisellä kierroksella on siirtyminen 1 taulukon mukaan (vasemman pään numero siirtyy oikeaan päähän).

Ensimmäisen kierroksen alaavain:

L 0100101 0100101 0101010 1010101

R 0100001 1110010 0010111 0001111

Toisella kierroksella taulukko sanoo myös 1, joten tätä tulosta muutetaan jälleen siirtämällä jokainen numero yksi sijainti vasemmalle.

Toinen kierros aliavaimessa:

L 1001010 1001010 1010101 0101010

R 1000011 1100100 0101110 0011110

Kolmannella kierroksella numeroita siirretään kahdesta paikasta vasemmalle, koska taulukko sanoo nyt 2.

Kolmannen kierroksen alaavain:

L 0101010 0101010 1010101 0101010

R 0001111 0010001 0111000 1111010

Seuraavilla kierroksilla numerot siirretään vasemmalle taulukossa määritettyjen etäisyyksien mukaan, kun jokainen siirto kohdistetaan edellisen kierroksen tulokseen. Loppujen lopuksi tämä antaa meille kuusitoista erilaista näppäintä, yksi jokaiselle DES-prosessin kierrokselle.

Seuraava vaihe on toinen permutaatio alla olevan PC2-taulukon mukaisesti:

des-3a

Tähän mennessä sinun pitäisi olla perehtynyt permutaatioihin, joten emme mene syvälle prosessiin. Jos haluat nähdä miten se toimii yksityiskohtaisemmin, katso selitys tämän osan alun lähellä. Vaikka sijoituspaikat ovat erilaisia, prosessi on sama.

Jokainen siirtoprosessissa johdettu 16 näppäintä on nyt sekoitettu taulukon mukaisesti siten, että numero 14. sijainnista siirretään ensimmäiseen kohtaan, 17. toiseen, 11. ja kolmanteen jne...

Jos katsot tarkkaan pöytää, huomaat, että siellä on vain 48 bittiä sen sijaan, että meillä aiemmin oli 56 bittiä. Tätä prosessia kutsutaan puristuspermutaatioksi.

Voit myös nähdä, että taulukon ylemmässä puoliskossa on numeroita välillä 28 - 28, kun taas alaosassa on numeroita välillä 29 - 56. Tämä pitää alaavaimien vasemman ja oikean puolikkaan erillään, ja sitä merkitsee alla oleva suurempi tila keskellä näppäimiä.

Jälleen huijaamme ja muodostamme numerot. Oletetaan, että koko tämä prosessi antoi meille seuraavat alaavaimet:

Yksi kierros:         010101 010101 101010 110100 101001 100101 101010 101010

2. kierros:         011010 110101 101110 110010 010100 110010 111101 101101

Kolmas kierros:     010100 100110 110110 101010 100110 011000 101011 011001

Neljäs kierros:         011001 110101 011001 110101 000011 001011 010101 010101

5. kierros:         110101 001101 010101 010101 010011 001011 010111 100101

Kierros kuusi:           010111 110101 011001 111001 101001 100101 101010 101010

Kierros seitsemän:     110101 111010 101110 101010 100110 010110 111011 001110

Kierros kahdeksan:       011001 110101 010101 001001 010011 001011 010100 101010

Kierros yhdeksän:         111011 011010 011110 100010 100010 010110 110011 110010

Kierros 10:             011010 010101 101110 101001 010010 010110 111000 101010

Kierros 11:             110101 001101 101110 101010 100101 100101 101010 001010

Kierros 12:             101001 100100 101001 101010 100110 011000 101011 011001

Kierros 13:             010010 010010 010101 010101 010110 110001 100101 101010

Kierros 14:             101001 100110 010101 011101 010001 001010 110010 111110

Kierros 15:             011001 011010 011001 110101 001001 011001 100101 101101

Kierros 16:             010010 100110 010101 010101 010001 101000 110010 111010    

Tämä siirtoprosessi johtaa siihen, että jokaista bittiä alkuperäisestä avaimesta käytetään noin 14: ssä 16: sta aliavaimesta, vaikka joitain bittejä käytetään hieman enemmän kuin toisia.

Alkupermutaatio

Kun tiedot on jaettu lohkoihin ja tarvittaessa täydennetty, on aika aloittaa DES-salausprosessi. Palaamme takaisin myöhemmin luomiin alanäppäimiin. Ensimmäinen vaihe tunnetaan alkuperäisenä permutaationa, jossa tiedot järjestetään uudelleen seuraavan taulukon mukaisesti:

3DES-12

Tämä alkuperäinen permutaatioprosessi ei tee algoritmista entistä turvallisempaa. Tämä johtuu siitä, että siihen ei sisälly minkään avaimen syöttämistä, ja se voidaan helposti kääntää. Algoritmi suunniteltiin alun perin tällä tavalla, koska se helpotti toteutusta tietyissä tilanteissa.

Koska olemme peittäneet permutaatiot muutaman kerran, ohitamme kaikki tärkeät selitykset täällä. Siirry takaisin DES-näppäimen aikataulu -osiossa, jos tarvitset lisätietoja niiden toiminnasta.

Otetaan ensimmäinen lohko viestistä "Mennään rannalle", jonka johdetimme Lohko kohta alla DES-algoritmin ymmärtäminen:

01001100 01100101 01110100 00100111 01110011 00100000 01100111 01101111

Ensimmäisen solun jälkeen 58, valitsisimme numeron 58. sijasta:

01001100 01100101 01110100 00100111 01110011 00100000 01100111 01101111

Sitten otettaisiin numero 50. sijalla:

01001100 01100101 01110100 00100111 01110011 00100000 01100111 01101111

Ja numero 42. sijalla:

01001100 01100101 01110100 00100111 01110011 00100000 01100111 01101111

Tämä antaa meille ”110" niin kaukana. Me muodostamme loput numerot:

11010111 01001010 10101000 10011101 01001011 10110101 10000111 10101001

Kun alkuperäinen permutaatio on valmis, data siirretään seuraavaan vaiheeseen.

Lohkojen jakaminen

Kun data on käynyt läpi alkuperäisen permutaation, se jaetaan kahteen puolikkaaseen. Otamme lohkon, joka on juuri käynyt läpi alkuperäisen permutaation:

11010111 01001010 10101000 10011101 01001011 10110101 10000111 10101001

Ja eromme sen kahteen lohkoon, vasempaan lohkoon (koostuu 32 ensimmäisestä numerosta), joka tunnetaan nimellä L0:

L0    11010111 01001010 10101000 10011101

Ja oikea lohko (koostuu toisesta 32 merkistä), joka tunnetaan nimellä R0:

R0    01001011 10110101 10000111 10101001

F-toiminto

Nyt kun lohko on jaettu, F-toiminnon on aika tapahtua. Ensimmäisellä kierroksella sitä käytetään vain lohkon oikealle puolelle, kun taas vasen puoli pidetään sivuun myöhemmin. Oikealla puolella suoritetaan seuraavat neljä vaihetta osana F-toimintoa:

  • Laajennuspermutaatio (E kaaviossa)
  • Avaimen sekoitus (⊕ kaaviossa)
  • Substituutio (kuvassa S1, S2 jne.)
  • Permutaatio (P kaaviossa)

des-5

Laajenemisen permutaatio

Laajennuspermutaatio saa aikaan kolme asiaa. Tärkeintä on, että se sallii tulodatan yhden bitin vaikuttaa kahden muun bitin ulostuloon aiheuttaen lumivyöryn. Se tekee myös oikean puolen 48-bitistä, niin että se on samankokoinen kuin seuraavan vaiheen alaavain. Laajennuspermutaation toinen vaikutus on, että se tekee lähdöstä pidemmän kuin sisääntulo. Tämä mahdollistaa sen puristamisen korvausoperaatiossa.

Bitit järjestetään uudelleen seuraavan taulukon mukaisesti. Jotkut yksittäisistä biteistä ovat taulukossa kahdesti, jolloin lohko laajeni 32 bitistä 48 bittiin:

des - 6a

Koska ensimmäisessä solussa on 32, otamme oikean lohkon ja valitsemme luvun 32. sijainnista, aivan kuten muissa yllä luetelluissa permutaation esimerkeissä:

R0    01001011 10110101 10000111 10101001

Otamme sitten numerot ensimmäisestä sijainnista, toisesta sijainnista ja niin edelleen oikealta ylöspäin, kunnes pääsemme lohkon oikeaan alakulmaan. Koska on olemassa 1 tässä solussa viimeinen numero on myös numero, joka ilmestyy lohkomme ensimmäiseen kohtaan.

Oletetaan, että laajennuspermutaatio antaa meille uuden 48-bittisen lohkon:

101110 100110 100100 000000 001100 001110 101101 011110

Avainten sekoittaminen

Kun lohko on laajennettu 48 bittiin, on aika soveltaa ensimmäisen kierroksen alaavainta, joka johdettiin DES-avaimen aikataulu osio yllä. Alalaite muuttaa lohkoa XOR-salauksella.

XOR-salaus on lisäosake, joka seuraa yksinkertaista prosessia, etenkin verrattuna muihin elementteihin, joista olemme jo keskustelleet.

XOR-salauksessa:

0 + 0 = 0

1 + 0 = 1

1 + 1 = 0

Oletetaan, että joudut XOR-seuraaviin kahteen numeroon binäärinä:

1101

0101

Jokainen numero lisättäisiin sen alla olevaan numeroon. Edellä esitettyjen kolmen säännön mukaan tämä antaa tuloksen:

1000

Avainten sekoitusvaiheen suorittamiseksi otamme lohkon oikean puolen, jonka juuri laajensimme 48 bittiin, ja ensimmäisen kierroksen avaimen. Suoritamme sitten XOR-lisäyksen:

Lohko:                      101110 100110 100100 000000 001100 001110 101101 011110

Pyöritä yksi avain:     010101 010101 101010 110100 101001 100101 101010 101010

XOR-tulos:             111011 110011 001110 110100 100101 101011 000111 110100

XOR-operaation tulos siirretään sitten seuraavalle kierrokselle.

korvaaminen

Korvaaminen lisää sekaannusta tietoihin. Se tehdään yleensä hakutaulukoilla, joita kutsutaan myös korvaaviksi tai S-ruutuiksi. DES käyttää kahdeksan erillistä taulukkoa tai S-ruutua, erilainen jokaiselle 6 bittille. Seuraava taulukko näyttää DES: n kahdeksan S-ruutua:

des - 7

Kahdeksan erillistä S-ruutua käytetään kääntämään jokainen 6-bittinen tulo 4-bittiseksi ulostuloksi. Prosessin ensimmäinen askel on ottaa numerot 6-bittisen segmentin alussa ja lopussa, muuntaa sitten binaariarvo desimaaliksi.

Otetaan esimerkiksi ne tiedot, jotka olemme juuri viimeistellyt XORing-toiminnon edellisessä vaiheessa:

111011 110011 001110 110100 100101 101011 000111 110100

Tarkastelemme ensimmäistä 6-bittistä segmenttiä osoittaaksemme, kuinka korvausprosessi toimii:

111011

Koska ensimmäinen numero ja viimeinen numero ovat molemmat 1, tämä antaa meille arvon 11. Sitten muuntamme 11 binaarista desimaaliin, mikä antaa meille 3. Nämä ovat vain vastaavia arvoja, jotka on kirjoitettu eri tavoin. Ajattele sitä muuntaa tietokonekieli ihmisen kieleksi. Voit tarkistaa itsellesi muuntamisen online-laskurilla, jos haluat.

Otetaan sitten ensimmäisen 6-bittisen segmentin neljä keskinumeroa:

111011

Ja muunna ne binääristä desimaaliksi. 1101 kääntyy numeroon 13.

Nyt otamme nämä kaksi numeroa ja etsimme niitä S1 pöytä:

                des - 7a

Ensimmäinen numero, 3, käskee meitä katsomaan kolmannessa rivissä, kun taas toinen numero, 13 käskee meitä katsomaan 13. saraketta. 13. sarakkeen kolmannen rivin arvo on 0.

Nyt kun olemme etsineet numeromme taulukosta, muuntamme sen takaisin nelinumeroiseksi binaariksi. Nolla kirjoitetaan normaalisti nollaksi binäärinä, mutta 0000 on sama, ja tämä on muoto, joka on sopivin tarkoituksiin.

Tämän prosessin jälkeen S-laatikko muuntaa ensimmäisen 6-bittisen tietomme osan (111011) toiseen 4-bittiseen arvoon (0000). Se näyttää mutkikkaalta, mutta tämä tekniikka auttaa edelleen hämärtämään salatun tekstin ja selvän tekstin välistä suhdetta, johon se liittyy.

Seuraava 6-bittinen dataosa menee sitten läpi saman prosessin, mutta sen sijaan se käyttää yllä olevaa S2-ruutua. Kolmas osa käyttää S3-taulukkoa ja niin edelleen, kunnes viimeinen osa korvataan S8-taulukon kautta.

Jälleen huijaamme loput arvot. Oletetaan, että korvauslaatikot antavat meille seuraavan tuloksen:

0000 1010 1100 1001 0100 1001 0111 0001

Kun jokainen tiedon osa on käynyt läpi S-ruudun, se siirtyy seuraavaan vaiheeseen.

vaihtelu

F-toiminnon viimeinen vaihe on toinen permutaatio seuraavan taulukon avulla:des - 8a

Tähän mennessä sinulla pitäisi olla kunnollinen käsitys siitä, kuinka permutaatiot siirtävät numeroita vanhasta lohkosta uuteen kohtaan uuteen lohkoon, joten emme enää mene siihen.

Oletetaan, että tämä permutaatio vie edellisen tuloksemme:

0000 1010 1100 1001 0100 1001 0111 0001

Ja antaa meille tuloksen:

0101 0110 1001 0101 0010 0100 0101 0010

Nyt kun permutaatio on suoritettu loppuun, olemme lopettaneet F-funktion neljällä vaiheella tällä kierroksella. Matemaattisessa merkinnässä tämä arvo tunnetaan nimellä f (R0, K1). Tämä tarkoittaa, että tulos on funktio (f) lohkon alkuperäisestä oikeasta reunasta (R0) ja ensimmäisen kierroksen alaavaimesta (K1).

XOR vasemmalla lohkolla

Muistatko kuinka jaoimme lohkon puoliksi juuri ennen F-toiminnon vaiheiden aloittamista? Me syrjäytimme lohkon vasemman puolen (L0), kun taas oikea puoli suoritti nämä prosessit. No, nyt on aika L0: n palata takaisin toimintaan.

Otamme oikean puolen, jonka juuri käsittelemme f (R0, K1) ja lisää se vanhaan vasempaan reunaan (L0) käyttämällä XOR-salausta. Tämä antaa meille R1, ensimmäisen kierroksen tulos:

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

L0:                                    1101 0111 0100 1010 1010 1000 1001 1101

XOR-tulos (R1):              1 000 0001 1101 1111 1000 1100 1100 1111

Viittaavat Avainten sekoittaminen yllä olevassa osassa, jos tarvitset muistutuksen siitä, kuinka XOR-salaus toimii.

15 lisäkierrosta ...

Jos olet päässyt niin pitkälle, DES näyttää todennäköisesti vaikealta prosessilta. Mutta se ei ole edes lähellä valmistumista. Tiedot kulkevat F-toiminnon neljästä vaiheesta, jota seuraa XOR, vielä 15 kertaa, yhteensä 16 kierrosta.

Toisella kierroksella otamme alkuperäisen, koskemattoman version lohkon oikealta puolelta (R0) ja teemme siitä uuden vasemman puolen (L1). Sillä välin otamme ensimmäisen kierroksen tulos ja lähetämme sen F-funktion kautta. Kaikki tapahtuu samalla tavalla kuin viime kerralla, mutta tällä kertaa sen sijaan käytetään toisen kierroksen alaavainta. Oletetaan, että tämä prosessi antaa meille tuloksen:

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

Sitten XOR-tulos saadaan L1: llä, joka on tosiasiallisesti R0 (johdetimme tämän taulukossa Halkaisulohko kohta). Tämä antaa meille toisen kierroksen R2: n tuloksen:

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

Tämä vaihe voi tuntua vähän hämmentävältä, mutta Feistel-järjestelmän mukaan vanhasta oikeasta puolella tulee uusi vasen ja toiminnan tuloksena uusi oikea puoli.

Seuraava kaavio antaa sinulle visuaalisen kuvan siitä, mitä tapahtuu. IP edustaa alkuperäistä permutaatiota, F on koko F-toiminnon stand-in, ⊕ symboloi XOR-toimintoa ja nuolet osoittavat lohkon kummallakin puolella liikkuvan vasemmalta ja oikealta:

des-9

Kunkin vaiheen tarkka kaava on:

Ln = Rn-1

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

Missä:

L = lohkon vasen puoli (alkaen L0, kun lohko alunperin jaettiin)

R = lohkon oikea puoli (alkaen R0, kun lohko alunperin jaettiin)

n = pyöreä numero (alkaa nollasta, kun lohko alunperin jaettiin)

f = F-toiminto

Kn = alanäppäin kierrokselle n

Kaavan ja kaavion mukaan R1: stä tulee kolmannella kierroksella uusi vasen puoli (L2), kun taas R2 prosessoidaan F-funktion kautta. Oletetaan, että se antaa meille tuloksen:

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

Sitten lasketaan kolmannen kierroksen (R3) tulos XOR-salauksella, kuten aiemmin:

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

Sama prosessi jatkuu viidenteentoista kierrokseen saakka, jolloin lohkot vaihdetaan ja seuraavaa alaavainta käytetään kussakin kierroksessa. 16. ja viimeisellä kierroksella lohkoja ei vaihdeta. Sen sijaan ne yhdistetään muodostamaan 64-bittinen lohko. Lopettamalla lohkojen vaihtaminen tässä viimeisessä vaiheessa voidaan algoritmia käyttää sekä salaamiseen että salauksen purkamiseen.

Oletetaan, että viimeinen kierros antaa meille seuraavan tuloksen:

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

Lopullinen permutaatio

Tämä permutaatio on käänteinen alkuperäiselle permutaatiolle, ja se taas ei lisää ylimääräistä suojausarvoa. Se järjestää tiedot seuraavan taulukon mukaisesti:

des-10a

Tämä permutaatiotaulukko toimii samalla tavalla kuin edelliset. Koska se on salausprosessin viimeinen vaihe, tuloksena on salausteksti ensimmäiselle ”Mennään rannalle". Oletetaan, että salattu lohko on:

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

Nyt, jos halusit todellista salaustekstiä ”Let’s go to the beach”, olisit voinut ohittaa koko oppimisprosessin ja siirtyä suoraan online-DES-salaustyökaluun. Jos kirjoitamme lauseemme avaimen viereen (sanotaan esimerkiksi kj329nf982bc9wn1), työkalu antaa meille salatun tekstin:

U2FsdGVkX19Pienyu3w3q4zCd2IPKEPUWBzu3AeyVu2H3FeimZe6hA

Halutessasi voit muuntaa avaimen ja salatekstin binaariksi ja sitten vertailla kuinka ensimmäisen lohkon salattu teksti noudattaa koko hahmoteltua prosessia.

DES-salauksen purku

DES: ssä salauksen purkuprosessi on uskomattoman suoraviivainen. Algoritmin Feistel-rakenne antaa sen helposti kääntää. Prosessi suoritetaan melkein samalla tavalla tietojen salauksen purkamiseksi. Ainoa ero on, että alaavaimia käytetään päinvastaisesti. Tämä on tehokas asennus, koska se tarkoittaa, että samaa ohjelmistoa ja laitteistoa voidaan käyttää sekä salaus- että salauksenpurkuprosesseissa.

Tietojen salauksen purkamiseksi se suoritetaan ensin alkuperäisen permutaation läpi, sitten lohko jaetaan ja oikea puoli menee F-toiminnon läpi. Ero on siinä, että salauksen ensimmäisellä kierroksella käytetään 16. alinäppäintä. Kaikki muu etenee normaalisti. Kun F-toiminto on valmis, se XORED lohkon vasemmalla puolella.

Lohkot vaihdetaan ja tulos käy läpi saman prosessin toisella kierroksella, ainoana poikkeuksena, että 15. aliavainta sovelletaan. Tämä prosessi jatkuu 16. kierrokseen saakka, jolloin käytetään ensimmäistä alaavainta.

Aivan kuten salausprosessissa, lohkoja ei vaihdeta viimeisessä vaiheessa, ja sitten tiedot käyvät läpi lopullisen permutaation. Tämä purkaa salausprosessin, jolloin sanoman alkuperäinen teksti on alkuperäinen.

3DES

Kun DES: n turvallisuusheikkoudet tulivat ilmeisemmiksi, 3DES: ää ehdotettiin tapana laajentaa avaimen kokoa tarvitsematta rakentaa täysin uutta algoritmia. Sen sijaan, että käytettäisiin yhtä avainta kuten DES: ssä, 3DES ajaa DES-algoritmia kolme kertaa kolmella 56-bittisellä näppäimellä:

  • Avain on tottunut Salaa selkeä teksti.
  • Avain kaksi on tottunut decrypt avaimen salattu teksti.
  • Avain kolme on tottunut Salaa teksti, joka salattiin avaimella kolme.

Jokaisessa vaiheessa seurataan koko DES-prosessia, kuten edellä on kuvattu.

Nyt saatat ihmetellä: "Kuinka salauksen käyttäminen toisessa vaiheessa voi parantaa turvallisuutta?"

Vastaus on, että se käyttää erillistä avainta. Jos ensimmäistä avainta käytetään myös datan salauksen purkamiseen toisessa vaiheessa, data olisi oikeassa paikassa, missä se alkoi.

Koska salauksenpurkuprosessi käyttää toista avainta, salauksenpurkua ei tosiasiallisesti käytetä tietojen salauksen purkamiseen. Se voi vaikuttaa loogisesti vääristyneeltä, mutta salauksen purkaminen erillisellä avaimella palvelee vain datan kasvattamista entisestään.

Kun toinen avain on ”purkanut” tiedot, kolmas avain käytetään salaamaan se uudelleen. Tuloksena on 3DES-salausteksti.

3DES on rakennettu tällä tavalla, koska sen avulla toteutukset ovat yhteensopivia yhden avaimen DES, kahden avaimen DES ja kolmen avaimen DES kanssa (nämä käsitellään seuraavassa osassa). Tämä ei toimi, jos salausa käytetään kaikissa kolmessa vaiheessa.

3DES-avainnusvaihtoehdot

Teknisesti 3DES voidaan toteuttaa kolmella eri avainkokoonpanolla. Siitä huolimatta toinen ja kolmas vaihtoehto ovat epävarmoja, eikä niitä koskaan pidä toteuttaa.

  • Avainvaihtoehto yksi - Tämä vaihtoehto käyttää kolmea riippumatonta avainta ja on turvallisin.
  • Avainvaihtoehto kaksi - Tässä kokoonpanossa ensimmäinen ja kolmas näppäin ovat samat.
  • Avainvaihtoehto kolme - Tämä käyttää kolmea identtistä näppäintä. Kun käytetään identtisiä avaimia, toisen vaiheen salauksen purkuprosessi peruuttaa ensimmäisen salauksen, jättäen vain lopullisen salauksen datan muuttamiseksi. Tämä tekee tuloksesta sama kuin tavallinen DES.

3DES-prosessi: Näppäimistövaihtoehto yksi

Olkaamme rehellisiä, koko 3DES-prosessi voi saada pään pyörimään, varsinkin jos olet uusi salaustekniikka. Tässä on lyhyt yhteenveto 3DES-algoritmin salausjärjestelmästä, jotta se voi uppoaa sisään:

Selkeä teksti tulee 3DES-algoritmiin ja on ensimmäinen salattu avaimella yksi seuraavissa vaiheissa:

    • Avainaikataulu - 16 alinäppäintä johdetaan avaimesta

    • Alkupermutaatio

    • Lohko on jaettu vasen ja oikea puoli

      • Oikea puoli lähetetään F-toiminnon kautta

        • Laajenemisen permutaatio

        • XOR kierroksen alanäppäimen kanssa

        • korvaaminen

        • vaihtelu

      • XOR F-toiminnon tulos vasemmalla puolella

      • Tee vanha oikea puoli uudesta vasemmasta ja tuloksena uusi oikea puoli

        Toista yllä olevat vaiheet 14 kertaa

      • Oikea puoli lähetetään F-toiminnon kautta

        • Laajenemisen permutaatio

        • XOR alanäppäimen kanssa 16. kierrokselle

        • korvaaminen

        • vaihtelu

      • XOR F-toiminnon tulos vasemmalla puolella

      • Yhdistä lohkon vasen ja oikea puoli yhteen

    • Lopullinen permutaatio

Ota avaimella salattu teksti ja lähetä se sitten ”Salauksen purku” prosessilla avain kaksi:

    • Avainaikataulu - 16 alinäppäintä on johdettu avaimesta kaksi

    • Alkupermutaatio

    • Lohko on jaettu vasen ja oikea puoli

      • Oikea puoli lähetetään F-toiminnon kautta

        • Laajenemisen permutaatio

        • XOR kierroksen alanäppäimellä (alkaen salakoodin purkamisen 16. alinäppäimestä)

        • korvaaminen

        • vaihtelu

      • XOR F-toiminnon tulos vasemmalla puolella

      • Tee vanha oikea puoli uudesta vasemmasta ja tuloksena uusi oikea puoli

        Toista yllä olevat vaiheet 14 kertaa

      • Oikea puoli lähetetään F-toiminnon kautta

        • Laajenemisen permutaatio

        • XOR ensimmäisen kierroksen alanäppäimen kanssa

        • korvaaminen

        • vaihtelu

      • XOR F-toiminnon tulos vasemmalla puolella

      • Yhdistä lohkon vasen ja oikea puoli yhteen
    • Lopullinen permutaatio

Ota tiedot, jotka on salattu avaimen toisella, ja lähetä ne sitten fisalausprosessin kanssa avain kolme:

    • Avainaikataulu - 16 alinäppäintä on johdettu avaimesta kolme

    • Alkupermutaatio

    • Lohko on jaettu vasen ja oikea puoli

      • Oikea puoli lähetetään F-toiminnon kautta

        • Laajenemisen permutaatio

        • XOR kierroksen alanäppäimen kanssa

        • korvaaminen

        • vaihtelu

      • XOR F-toiminnon tulos vasemmalla puolella

      • Tee vanha oikea puoli uudesta vasemmasta ja tuloksena uusi oikea puoli

        Toista yllä olevat vaiheet 14 kertaa

      • Oikea puoli lähetetään F-toiminnon kautta

        • Laajenemisen permutaatio

        • XOR alanäppäimen kanssa 16. kierrokselle

        • korvaaminen

        • vaihtelu

      • XOR F-toiminnon tulos vasemmalla puolella

      • Yhdistä lohkon vasen ja oikea puoli yhteen

    • Lopullinen permutaatio

Tuloksena on 3DES-salausteksti.

3DES: n turvallisuus

3DES: n turvallisuus riippuu käytetystä avainnusvaihtoehdosta. Avainvaihtoehto yksi sisältää kolme erilaista 56-bittistä näppäintä, mikä antaa sille avaimen kokonaispituuden 168 bittiä. Tosiasiallinen pituus pienenee huomattavasti keskustapaamiset, jotka vähentävät reaalimaailman turvallisuutta 112 bittiin.

Keskitetyt tapaamiset ovat hyötyä salausohjelmista, jotka toistavat saman algoritmin useita kertoja. Tekniikka tallentaa välittömät arvot jokaisesta salausasteesta, käyttää sitten näitä tietoja radikaalisti parantamaan aikaa, joka kuluu algoritmin raa'alle voimalle.

Vaihtoehdoilla 2 ja 3 on huomattavasti pienemmät avaimet ja ne ovat alttiita sekä tunnetuille selkeä teksti- että valitulle selkeän tekstin hyökkäyksille kuin muille..

Tunnetut selkeän tekstin hyökkäykset ovat mahdollisia, kun vastustajalla on pääsy sekä viestin selkeään tekstiin että salaustekstiin. Jos algoritmi on herkkä näille hyökkäyksille, hyökkääjä voi käyttää näitä tietoja päättääkseen avaimen, mikä antaa heille mahdollisuuden murtaa kaikki muut tiedot, jotka on salattu samalla avaimella.

Valittu selvätekstihyökkäys on samanlainen, mutta hyökkääjä paljastaa avaimen vertaamalla salakirjoituksia mielivaltaisiin selkeisiin teksteihin.

Näiden haavoittuvuuksien ja mukana olevien pienten avainkokojen vuoksi näppäinvaihtoehdot kaksi ja kolme ovat epävarmoja, joten niitä ei pidä ottaa käyttöön.

Onko 3DES turvallinen?

Koska 3DES vanhenee seuraavien vuosien aikana, on parasta käyttää muita algoritmeja. Vaikka avainnusvaihtoehtoa pidetään edelleen turvallisena monille sovelluksille, ei ole monia hyviä syitä, miksi sitä tulisi käyttää AES: n kaltaisen vaihtoehdon sijasta..

Vaikka 3DES: llä on tärkeä asema kryptografiassa DES: n jatkona, sen loistovuot ovat ohitse ja on aika siirtyä eteenpäin. Jos haluat suojata järjestelmiäsi hyvin tulevaisuuteen, sinun pitäisi käyttää sen sijaan päivitetympää algoritmia.

Related: Yleiset salauslajit selitetty

Suunnitelma X DoD lisensoitu alle CC0

Brayan Jackson Administrator
Sorry! The Author has not filled his profile.
follow me

Add a Comment

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

81 − = 80