Data Encryption Standard (DES) on symmetrisen avaimen algoritmi digitaalisen tiedon salaukseen. Symmetrinen avaimen algoritmit käyttävät samaa avainta sekä salaukseen että salauksen purkamiseen, mikä edellyttää turvallista avainten hallintaa. DES on lohkosalaus, mikä tarkoittaa, että se salaa tiedot kiinteäkokoisiksi lohkoiksi. Tarkemmin sanottuna DES käsittelee tietoja 64-bittisissä lohkoissa käyttämällä 56-bittistä avainta salaus- ja salauksenpurkuprosessien suorittamiseen. Avaimen pituus on itse asiassa 64 bittiä, mutta 8 bittiä käytetään yksinomaan pariteetin tarkistamiseen, eivätkä ne vaikuta avaimen teholliseen vahvuuteen.
DES-algoritmi käyttää useita monimutkaisia muunnoksia varmistaakseen salauksen turvallisuuden. Yksi DES:n peruskomponenteista on aliavaimien käyttö. Alaavaimet johdetaan pääavaimesta ja niitä käytetään salausprosessin eri kierroksilla. DES:ssä salausprosessi sisältää 16 permutaatio- ja korvauskierrosta, ja jokaisella kierroksella käytetään ainutlaatuista aliavainta.
Jotta ymmärtäisit, kuinka aliavaimia luodaan ja käytetään DES:ssä, on otettava huomioon avainaikataulun algoritmi. Avainaikataulu on tärkeä osa DES:ää, joka kuvaa kuinka pääavain muunnetaan 16 aliavaimeksi. Tässä on yksityiskohtainen kuvaus tästä prosessista:
1. Alkuavaimen permutaatio (PC-1): Ensimmäinen vaihe aliavaimien luomisessa on muuttaa alkuperäinen 56-bittinen avain käyttämällä kiinteää taulukkoa, joka tunnetaan nimellä Permuted Choice 1 (PC-1). Tämä permutaatio järjestää uudelleen avaimen bitit 56-bittisen ulostulon tuottamiseksi. Bittiä ei yksinkertaisesti sekoita; ne valitaan ja järjestetään uudelleen PC-1-taulukon mukaan. 64-bittinen avain, josta on poistettu 8 pariteettibittiä, pienennetään 56 bittiin.
2. Avaimen jakaminen: 56-bittinen permutoitu avain jaetaan sitten kahteen 28-bittiseen puolikkaaseen, joita merkitään
ja
. Näitä puolikkaita käytetään kunkin kierroksen aliavaimien luomiseen.
3. Näppäinten vaihdot: Jokaiselle 16 kierrokselle kaksi puoliskoa
ja
siirretään syklisesti vasemmalle yhden tai kahden asennon verran. Siirrettyjen paikkojen määrä riippuu kierroksen numerosta. Erityisesti siirtoarvot määritetään ennalta määrätyn aikataulun mukaan. Esimerkiksi ensimmäisellä kierroksella molempia puoliskoja siirretään vasemmalle yhden pisteen verran, kun taas toisella kierroksella niitä siirretään kahdella pisteellä ja niin edelleen. Tämä siirtoprosessi varmistaa, että jokainen aliavain on johdettu alkuperäisen avaimen erilaisesta permutaatiosta.
4. Permuted Choice 2 (PC-2): Vasemman siirron jälkeen kaksi 28-bittistä puolikasta yhdistetään 56-bittiseksi ketjutetuksi avaimeksi. Tämä 56-bittinen avain permutoidaan sitten uudelleen käyttämällä toista kiinteää taulukkoa, joka tunnetaan nimellä Permuted Choice 2 (PC-2). PC-2 valitsee 48 bittiä 56-bittisestä ketjutetusta avaimesta muodostaakseen aliavaimen tälle kierrokselle. Bittien valinta ja uudelleenjärjestäminen tapahtuu PC-2-taulukon mukaisesti, mikä varmistaa, että jokainen aliavain on ainutlaatuinen ja johdettu alkuperäisestä avaimesta monimutkaisella tavalla.
5. Aliavaimen sukupolvi: Tämä prosessi toistetaan jokaisella 16 kierroksella, jolloin saadaan 16 ainutlaatuista 48-bittistä aliavainta. Näitä aliavaimia merkitään nimellä
, Jossa
edustaa tunnuksessa käytettyä aliavainta
- DES-algoritmin kierros.
Ala-avainten käyttö DES:ssä on olennainen osa salausprosessia. Jokaisen DES-kierroksen aikana aliavain yhdistetään tietolohkoon käyttämällä sarjan muunnoksia, mukaan lukien Feistel-funktio. Feistel-toiminto on DES:n kriittinen osa, ja se sisältää useita vaiheita:
1. Laajeneminen: 32-bittinen tiedon puolilohko on laajennettu 48-bittiseksi käyttämällä laajennuspermutaatiota. Tämä permutaatio replikoi tietyt bitit lisätäkseen puolilohkon kokoa varmistaen, että se vastaa aliavaimen kokoa.
2. Avainten sekoitus: Laajennettu 48-bittinen datalohko on XOR-korjattu kyseisen kierroksen 48-bittisellä aliavaimella. Tämä toiminto yhdistää tiedot aliavaimeen tavalla, jota on vaikea peruuttaa ilman aliavaimen tuntemista.
3. korvaaminen: XOR-operaation tulos jaetaan kahdeksaan 6-bittiseen segmenttiin. Jokainen segmentti kuljetetaan sitten korvauslaatikon (S-box) läpi, joka kartoittaa 6-bittisen tulon 4-bittiseksi ulostuloksi. DES käyttää kahdeksaa erilaista S-laatikkoa, joista jokaisella on ainutlaatuinen korvauskuvio. S-laatikot tuovat salausprosessiin epälineaarisuuden, mikä on tärkeää DES:n turvallisuuden kannalta.
4. vaihtelu: S-laatikoiden 32-bittinen lähtö permutoidaan käyttämällä kiinteää permutaatiotaulukkoa, joka tunnetaan nimellä P-laatikko. Tämä permutaatio järjestää bitit uudelleen hämärtääkseen selkeän tekstin ja salatekstin välistä suhdetta.
5. Feistelin rakenne: P-laatikon lähtö on XOR-korjattu toisen datalohkon kanssa. Tämä täydentää yhden Feistel-rakenteen kierroksen, ja prosessi toistetaan jokaisella 16 kierroksella käyttämällä joka kerta eri aliavainta.
Ala-avainten toistuva käyttö Feistel-toiminnon yhteydessä varmistaa, että salausprosessi on erittäin turvallinen. Jokainen kierros lisää monimutkaisuutta ja diffuusiota, mikä tekee hyökkääjän äärimmäisen vaikeaksi peruuttaa salauksen tietämättä avainta.
Havainnollistaaksesi aliavaimen luontiprosessia esimerkillä, harkitse DES:n yksinkertaistettua versiota, jossa on lyhyempi avain ja vähemmän kierroksia. Oletetaan, että meillä on 8-bittinen avain ja 4 salauskierrosta. Keskeinen aikataulu voi näyttää tältä:
1. Alkuavain: 10110110 (8 bittiä)
2. Alkuperäinen permutaatio (PC-1): Järjestä bitit uudelleen 6-bittiseksi avaimeksi: 110110 (6 bittiä)
3. Avaimen jakaminen: Jaa 6-bittinen avain kahteen 3-bittiseen puolikkaaseen:
ja ![]()
4. Näppäinten vaihdot:
– Kierros 1: Vaihto vasemmalle 1 asemalla:
ja ![]()
– Kierros 2: Vaihto vasemmalle 2 paikkaa:
ja ![]()
– Kierros 3: Vaihto vasemmalle 1 asemalla:
ja ![]()
– Kierros 4: Vaihto vasemmalle 2 paikkaa:
ja ![]()
5. Permuted Choice 2 (PC-2): Valitse 4 bittiä yhdistetystä 6-bittisestä avaimesta jokaiselle kierrokselle:
– 1. kierroksen aliavain: 1010
– 2. kierroksen aliavain: 0011
– 3. kierroksen aliavain: 1010
– 4. kierroksen aliavain: 0011
Tässä yksinkertaistetussa esimerkissä aliavaimet luodaan permutoimalla ja siirtämällä alkuperäistä avainta samalla tavalla kuin DES:ssä käytetty prosessi. Jokainen kierros käyttää eri aliavainta, mikä varmistaa, että salausprosessi on turvallinen ja hyökkäyksiltä suojattu.
Aliavainten luominen ja käyttö DES:ssä ovat perustavanlaatuisia algoritmin turvallisuudelle. Muuntamalla alkuperäisen avaimen useiksi aliavaimiksi ja käyttämällä niitä monimutkaisten muunnosten sarjassa DES saavuttaa korkean turvallisuustason. Monimutkainen avainten aikataulun ja aliavaimen luontiprosessi varmistaa, että vaikka hyökkääjä tietäisi salatekstin, hän ei voi helposti päätellä selkeää tekstiä tai avainta.
Muita viimeaikaisia kysymyksiä ja vastauksia liittyen Data Encryption Standard (DES) - Salaus:
- Otettiinko DES-protokolla käyttöön AES-kryptojärjestelmien turvallisuuden parantamiseksi?
- Mitä avaimen bittejä käytetään pariteettitarkistukseen DES:ssä?
- Voiko DES:n moni bitti selkeää tekstiä vaikuttaa yhteen salatekstibittiin?
- Onko DES riippuvainen useista diffuusion ja hämmennyksen yhdistelmistä?
- Onko DES altis kohtaamishyökkäykselle?
- Voidaanko permutaatiota pitää esimerkkinä diffuusiosta lohkosalauksessa?
- Onko DES:n S-laatikoiden vaiheessa, koska pienennämme viestin fragmenttia 50 %:lla, onko olemassa takuuta, ettemme menetä tietoja ja viesti pysyy palautettavissa/purettavissa?
- Mikä on lumivyöryefektin merkitys DES-salausprosessissa?
- Miten permutaatio P vaikuttaa f-funktion lopputulokseen DES-salauksessa?
- Mikä on S-laatikoiden rooli DES-salausprosessissa?
Katso lisää kysymyksiä ja vastauksia kohdassa Data Encryption Standard (DES) - Encryption

