Procházet otázky :: SZZ na MFF UK

#

- Hlavní strana
- Okruhy
- Projít
- Stáhnout
- Co je potřeba
- Chci přispět
- Kredity

Hledat:

## Prohlížení státnicových textů

### DES (Data Encryption Standard)

- bloková šifra (vstup plaintext - 64bitů, výstup ciphertext 64bitů)
- symetrický klíč (stejný pro šifrování i dešifrování) - strany si ho musí vyměnit po bezpečném kanále
- klíč - 64bitů, z nich se používá ale pouze 56bitů (zbytek se zahodí nebo funguje jako kontrola parity)
- původně implementována hardwarem
- stejný algoritmus (i hardware) použitý jak pro šifrování, tak pro dešifrování

Obrázok: Schéma hlavní sítě algoritmu DES

Šifrování:

- vstup projde iniciální permutací (IP:64b 64b), na konci probíhá inverzní finální permutace (FP), následuje 16 identických kol šifrování:
- blok 64 bitů se rozdělí na dvě půlky po 32bitech,
  - pravá půlka slouží jako vstup pro funkci F a také je v dalším kole použita jako levá část
  - levá půlka se xoruje s výstupem funkce F a výsledek je použit v dalším kole jako pravá část
- celý cyklus se provede 16x a v závěru se ještě aplikuje finální permutace

Obrázok: Funkce F v algoritmu DES

Funkce F:

- ve funkci F probíhá míchání s klíčem. V každém kole vstupuje do funkce F 32bitů z pravé půlky a 48bitový subklíč (odvozen z 56bitového klíče, detaily později).
- 32bitů z pravé půlky je nejprve expandováno na 48 bitů (fixní expanzní permutací, na obrázku označena E), potom xorováno se subklíčem.
- Výsledek xorování se rozdělí na 8 bloků po 6bitech. Každý blok je pak vstupem jedné z osmi S funkcí. Každá S funkce převádí 6 bitů na 4 bity (nelineární transformací, zadrátované).
- Výstupy S funkcí se opět spojí do jednoho bloku (8x4 = 32bitů) - to je výsledek celé funkce F.

Dešifrování:

Díky prohazování poloviček v jednotlivých kolech lze dešifrování provádět stejnou funkcí (na stejném hardwaru), jako šifrování. Pouze je potřeba používat subklíče v opačném pořadí.

Obrázok: Subklíče v algoritmu DES

Subklíče:

- protože je klíč původně 64bitový, ale ve skutečnosti se používá pouze 56bitů (ostatní se zahazují, nebo slouží pro kontrolu parity), nejprve je vybráno těchto 56bitů funkcí PC1 (Permuted Choice 1)
- Dále se vždy pro každé kolo 56 bitů rozdělí na dvě půlky po 28bitech. Každá z těchto půlek se bitově posune doleva (o jeden nebo dva bity, to je pevně určeno pro každé kolo). Takto posunuté půlky se vloží jako vstup funkce PC2, která vygeneruje 48bitový subklíč. Obě půlky také slouží jako vstup pro další kolo.
- Algoritmus zaručuje, že každý bit z původního 56bitového klíče je použit asi ve 14-ti ze 16-ti subklíčů.
- Pro dešifrování se klíče musí generovat v opačném pořadí (místo doleva se posouvá doprava).