Németh L. Zoltán SZTE, Számítástudomány Alapjai Tanszék 2018 ősz Kriptográfia Negyedik előadás A DES Lecture slides by Lawrie Brown for “Cryptography and Network Security”, 4/e, by William Stallings, Chapter 1 “Introduction”. Németh L. Zoltán SZTE, Számítástudomány Alapjai Tanszék 2018 ősz
Modern Blokktitkosítók az eddig módszerek mind feltörhetőek akkor hogyan titkosítsunk? modern (gépi) módszerek következnek ma is a szimmetrikus blokktitkosítók a legelterjedtebbek (gyorsak, sokat vizsgáltak) titkosságot / hitelességet biztosítanak a DES-re (Data Encryption Standard, 1977) fogunk koncentrálni hogy bemutassuk a blokktitkosítók általános tervezési elveit Modern block ciphers are widely used to provide encryption of quantities of information, and/or a cryptographic checksum to ensure the contents have not been altered. We continue to use block ciphers because they are comparatively fast, and because we know a fair amount about how to design them. Will use the widely known DES algorithm to illustrate some key block cipher design principles.
A blokkok mérete a blokk titkosítók az üzenetet fix hosszú-ságú egységenként titkosítják/fejtik meg tekinthetjük őket hatalmas ábécék feletti helyettesítésnek (64-bites vagy még több) elég sok bitre szükség van, hogy a helyettesítés feltörésére alkalmazott gyakoriságanalízisnek ne legyen esélye a DES blokkmérete 64 bit az AES blokkmérete 128 bit Block ciphers work a on block / word at a time, which is some number of bits. All of these bits have to be available before the block can be processed. Stream ciphers work on a bit or byte of the message at a time, hence process it as a “stream”. Block ciphers are currently better analysed, and seem to have a broader range of applications, hence focus on them.
Block vagy folyam titkosítók ? a folyamtitkosítók (stream ciphers) az üzenetet bitenként vagy bájtonként titkosítják / fejtik meg ekkor nem kell egy blokknyi adatot összevárni a titkosítás megkezdéséhez számos mai titkosító blokktitkosító szélesebb körben alkalmazottak, mint a folyamtitkosítók blokkonként lehet velük adatfolyamot is továbbítani majd később nézzük a működési módjaikat Block ciphers work a on block / word at a time, which is some number of bits. All of these bits have to be available before the block can be processed. Stream ciphers work on a bit or byte of the message at a time, hence process it as a “stream”. Block ciphers are currently better analysed, and seem to have a broader range of applications, hence focus on them.
Az ideális blokktitkosító Feistel refers to an n-bit general substitution as an ideal block cipher, because it allows for the maximum number of possible encryption mappings from the plaintext to ciphertext block. A 4-bit input produces one of 16 possible input states, which is mapped by the substitution cipher into a unique one of 16 possible output states, each of which is represented by 4 ciphertext bits. The encryption and decryption mappings can be defined by a tabulation, as shown in Stallings Figure 3.1. It illustrates a tiny 4-bit substitution to show that each possible input can be arbitrarily mapped to any output - which is why its complexity grows so rapidly.
A példa által definiált helyettesítés
Blokk titkosítók alapelvei a blokktitksosítók hatalmas ábécék feletti helyettesítések de szükség van rá, hogy a helyettesítés injektív legyen, sőt effektíven kiszámítható általános esetben 64 biten 264! darab helyettesítés definiálható egy helyettesítés leírásához egy 264 soros 64-bites értékeket tartalmazó táblázat kell, ami 64·264 = 270 ≈ 1021 bites kulcsméretet jelent. hogyan készíthető akkor biztonságos invertálható helyettesítés kisebb komponensekből? a legtöbb szimmetrikus blokktitkopsító ún. Feistel titkosító stuktúrán alapszik Most symmetric block encryption algorithms in current use are based on a structure referred to as a Feistel block cipher. A block cipher operates on a plaintext block of n bits to produce a ciphertext block of n bits. An arbitrary reversible substitution cipher for a large block size is not practical, however, from an implementation and performance point of view. In general, for an n-bit general substitution block cipher, the size of the key is n x 2n. For a 64-bit block, which is a desirable length to thwart statistical attacks, the key size is 64 x 264 = 270 = 1021 bits. In considering these difficulties, Feistel points out that what is needed is an approximation to the ideal block cipher system for large n, built up out of components that are easily realizable.
Helyettesítő-keverő titkosítók (Substitution-Permutation Ciphers) Claude Shannon vezette be a helyettesítő-keverő hálózatokat (S-P networks) 1949-ben a modern blokktitkosítók rajtuk alapulnak az S-P hálózatok pedig a két korábbi alap kriptográfiai műveletből épülnek fel: helyettesítés (S-doboz) / substitution (S-box) / keverés (P-doboz) / permutation (P-box) / ezek biztosítják a titkos szövegnek mind a nyílt szövegtől, mind a kulcstól való minél komplexebb, de könnyen megadható függését Claude Shannon’s 1949 paper has the key ideas that led to the development of modern block ciphers. Critically, it was the technique of layering groups of S-boxes separated by a larger P-box to form the S-P network, a complex form of a product cipher. He also introduced the ideas of confusion and diffusion, notionally provided by S-boxes and P-boxes (in conjunction with S-boxes).
Diffúzió és konfúzió (Confusion and Diffusion) a titkosítónak a nyílt szöveg statisztikai jellemzőit a felismerhetetlenségig el kell rejtenie a titkosított szövegben mint például a OTP, és az ideális blokktitkosító a gyakorlatban erre Shannon az S és P dobzok kombinálását javasolta, a két cél: diffúzió (szétterjesztés) – szétoszlatja a nyílt szöveg statisztikai struktúráit egy terjedelmes méretű titkos szöveg részekben konfúzió (összekeverés) – a titkos szöveg és a kulcs kapcsolatát minél komplexebbé teszi The terms diffusion and confusion were introduced by Claude Shannon to capture the two basic building blocks for any cryptographic system. Every block cipher involves a transformation of a block of plaintext into a block of ciphertext, where the transformation depends on the key. The mechanism of diffusion seeks to make the statistical relationship between the plaintext and ciphertext as complex as possible in order to thwart attempts to deduce the key. Confusion seeks to make the relationship between the statistics of the ciphertext and the value of the encryption key as complex as possible, again to thwart attempts to discover the key. So successful are diffusion and confusion in capturing the essence of the desired attributes of a block cipher that they have become the cornerstone of modern block cipher design.
A Feistel titkosító struktúra Horst Feistel ötlete a 70-es évek elején Shannon (S-P hálózatos) produkciós titkosítós ötletéből könnyen invertálható titkosítók általános terve más körfüggvény használatával más tikosítót kapunk a bemenő blokkot két félre osztja (pl. 32-32 bit) a titkosítás több körben (round) zajlik, melyekben az adatok bal felén helyettesítést hajt végre (XOR-ol) melyhez a körfüggvényt (round function) használja, ami az adatok jobb felének és a körkulcsnak a függvénye végül a bal és jobb feleket felcseréli (ez permutáció) Horst Feistel, working at IBM Thomas J Watson Research Labs devised a suitable invertible cipher structure in early 70's. One of Feistel's main contributions was the invention of a suitable structure which adapted Shannon's S-P network in an easily inverted structure. It partitions input block into two halves which are processed through multiple rounds which perform a substitution on left data half, based on round function of right half & subkey, and then have permutation swapping halves. Essentially the same h/w or s/w is used for both encryption and decryption, with just a slight change in how the keys are used. One layer of S-boxes and the following P-box are used to form the round function.
A Feistel Struktúra vázlata Stallings Figure 3.2 illustrates the classical feistel cipher structure, with data split in 2 halves, processed through a number of rounds which perform a substitution on left half using output of round function on right half & key, and a permutation which swaps halves, as listed previously.
Miért jó ez? Ez a struktúra azért (is) kedvező, mert míg tipikusan egy kör csak gyenge (egyszerű) titkosítást ad, a körök egymás utáni alkalmazása jelentősen növeli az erősséget a megfejtés algoritmusa majdnem ugyanaz, csak a körkulcsokat kell fordított sorrendben alkalmazni (ld. a következő ábrát) ezért került az utolsó kör végére még egy csere
Titkosítás (bal) és megfejtése (jobb) The process of decryption with a Feistel cipher, as shown in Stallings Figure 3.3, is essentially the same as the encryption process. The rule is as follows: Use the ciphertext as input to the algorithm, but use the subkeys Ki in reverse order. That is, use Kn in the first round, Kn–1 in the second round, and so on until K1 is used in the last round. This is a nice feature because it means we need not implement two different algorithms, one for encryption and one for decryption.
Feistel struktúrák tervetésének elemei blokkméret kulcsméret körök száma (pl. DES-nél 16 kör van) körkulcs generálás algoritmusa körfüggvény (további S és P dobozok) Figyelembe kell venni: gyors szoftveres/hardveres megvalósítha-tóságot könnyű legyen analizálni The exact realization of a Feistel network depends on the choice of the following parameters and design features: block size - increasing size improves security, but slows cipher key size - increasing size improves security, makes exhaustive key searching harder, but may slow cipher number of rounds - increasing number improves security, but slows cipher subkey generation algorithm - greater complexity can make analysis harder, but slows cipher round function - greater complexity can make analysis harder, but slows cipher fast software en/decryption - more recent concern for practical use ease of analysis - for easier validation & testing of strength
Data Encryption Standard (DES) (Adat titkosítási szabvány) a világon ma is a legelterjedtebb blokktitkosító 1977-ben vezették be az NBS (National Bureau of Standards, ma NIST) FIPS 46 szabvány: http://csrc.nist.gov/publications/fips/fips46-3/fips46-3.pdf 64-bites adatblokk, 56-bites kulcssal biztonsága sok vitát váltott ki bár (nyilvános) ismereteink szerint csak brute force módon törhető ma már új általános szabvány is van az AES (128, 196 vagy 256 bites kulccsal) The most widely used private key block cipher, is the Data Encryption Standard (DES). It was adopted in 1977 by the National Bureau of Standards as Federal Information Processing Standard 46 (FIPS PUB 46). DES encrypts data in 64-bit blocks using a 56-bit key. The DES enjoys widespread use. It has also been the subject of much controversy its security.
A DES története I az IBM kifejleszti a Lucifer titkosítót Feistel vezette csoport, 60-as évek végétől 1971-ig 64-bites blokkonklént 128-bites kulccsal majd újra tervezték: kereskedelmi célokra NSA (National Security Agency = az USA Nemzetbiztonsági Hivatala) és más szakértőkkel közösen férjen el egyetlen chipen -> csak 56 bites kulcs In the late 1960s, IBM set up a research project in computer cryptography led by Horst Feistel. The project concluded in 1971 with the development of the LUCIFER algorithm. LUCIFER is a Feistel block cipher that operates on blocks of 64 bits, using a key size of 128 bits. Because of the promising results produced by the LUCIFER project, IBM embarked on an effort, headed by Walter Tuchman and Carl Meyer, to develop a marketable commercial encryption product that ideally could be implemented on a single chip. It involved not only IBM researchers but also outside consultants and technical advice from NSA. The outcome of this effort was a refined version of LUCIFER that was more resistant to cryptanalysis but that had a reduced key size of 56 bits, to fit on a single chip. In 1973, the National Bureau of Standards (NBS) issued a request for proposals for a national cipher standard. IBM submitted the modified LUCIFER. It was by far the best algorithm proposed and was adopted in 1977 as the Data Encryption Standard.
A DES története II 1973-ban NBS pályázatot hirdetett az USA-ban nemzeti titkosító algoritmusra az IBM a Lucifer módosított változatát nevezte melyet el is fogadtak, mint Data Encryption Standard-ot, azaz adattitkosítási szabványt 1977-ben In the late 1960s, IBM set up a research project in computer cryptography led by Horst Feistel. The project concluded in 1971 with the development of the LUCIFER algorithm. LUCIFER is a Feistel block cipher that operates on blocks of 64 bits, using a key size of 128 bits. Because of the promising results produced by the LUCIFER project, IBM embarked on an effort, headed by Walter Tuchman and Carl Meyer, to develop a marketable commercial encryption product that ideally could be implemented on a single chip. It involved not only IBM researchers but also outside consultants and technical advice from NSA. The outcome of this effort was a refined version of LUCIFER that was more resistant to cryptanalysis but that had a reduced key size of 56 bits, to fit on a single chip. In 1973, the National Bureau of Standards (NBS) issued a request for proposals for a national cipher standard. IBM submitted the modified LUCIFER. It was by far the best algorithm proposed and was adopted in 1977 as the Data Encryption Standard.
Viták a DES tervezéséről annak ellenére, hogy a DES nyilvános szabvány vitákra adott okot tervezésében a kulcs 56-bitre választása (a Luciferé 128-bit) a részletes tervezési kritériumokat (pl. az S dobozokét) nem hozták nyilvánosságra a későbbi analízis mégis azt mutatja, hogy jól tervezett, bevált rendszer széles körben alkalmazzák ma is különösen pénzügyi alkalmazásokban használata ma is szabványos meglevő rendszerekben új alkalmazásokban, persze már modernebb titkosítást (pl. AES-t, vagy 3DES-t) kell bevezetni Before its adoption as a standard, the proposed DES was subjected to intense & continuing criticism over the size of its key & the classified design criteria. Recent analysis has shown despite this controversy, that DES is well designed. DES is theoretically broken using Differential or Linear Cryptanalysis but in practise is unlikely to be a problem yet. Also rapid advances in computing speed though have rendered the 56 bit key susceptible to exhaustive key search, as predicted by Diffie & Hellman. DES has flourished and is widely used, especially in financial applications. It is still standardized for legacy systems, with either AES or triple DES for new applications.
A DES titkosításának áttekintése The overall scheme for DES encryption is illustrated in Stallings Figure3.4, which takes as input 64-bits of data and of key. The left side shows the basic process for enciphering a 64-bit data block which consists of: - an initial permutation (IP) which shuffles the 64-bit input block - 16 rounds of a complex key dependent round function involving substitutions & permutations - a final permutation, being the inverse of IP The right side shows the handling of the 56-bit key and consists of: - an initial permutation of the key (PC1) which selects 56-bits out of the 64-bits input, in two 28-bit halves - 16 stages to generate the 48-bit subkeys using a left circular shift and a permutation of the two 28-bit halves
A kezdeti keverés (Initial Permutation IP) ez a legelső lépés a 64 bites adatblokkon IP átrendezi a biteket sorrendjét, közben a páros sorszámú bitek a bal félbe (LH) a páratlanok a jobb félbe (RH) kerülnek meglehetősen szabályos strukturát mutat (felülről lefele, majd jobbról-balra) például: IP(675a6967 5e5a6b5a) = (ffb2194d 004df6fb) The initial permutation and its inverse are defined by tables, as shown in Stallings Tables 3.2a and 3.2b, respectively. The tables are to be interpreted as follows. The input to a table consists of 64 bits numbered left to right from 1 to 64. The 64 entries in the permutation table contain a permutation of the numbers from 1 to 64. Each entry in the permutation table indicates the position of a numbered input bit in the output, which also consists of 64 bits. Note that the bit numbering for DES reflects IBM mainframe practice, and is the opposite of what we now mostly use - so be careful! Numbers from Bit 1 (leftmost, most significant) to bit 32/48/64 etc (rightmost, least significant). Note that examples are specified using hexadecimal. Here a 64-bit plaintext value of “675a6967 5e5a6b5a” (written in left & right halves) after permuting with IP becomes “ffb2194d 004df6fb”.
A kezdeti keverés táblázata IP
A kezdeti keverés grafikusan
A kezdeti keverés inverze IP-1
A DES egy köre
A DES köreinek felépítése a két fél 32-bites blokk az i-dik körben: Li és Ri ahogy minden Feistel struktúrában itt is: Li = Ri–1 Ri = Li–1 F(Ri–1, Ki) F körfüggvény így egy 32-bites R blokkfelet és egy 48-bites körkulcsot kap és kiterjeszti R-et 48-bitre az E-segítségével (expansion) XOR műveletet végez vele a körkulccsal a 8 darab egyenként 6-bemeneti és 4 kimeneti bites S-dobozzal a 48=8·6 bitet 8·4 = 32 bittel helyettesíti végül a P pemutációval összekeveri a 32 bitet Detail here the internal structure of the DES round function F, which takes R half & subkey, and processes them through E, add subkey, S & P. This follows the classic structure for a feistel cipher. Note that the s-boxes provide the “confusion” of data and key values, whilst the permutation P then spreads this as widely as possible, so each S-box output affects as many S-box inputs in the next round as possible, giving “diffusion”.
A DES körfüggvénye Stallings Figure 3.6 illustrates the internal structure of the DES round function F. The R input is first expanded to 48 bits by using expansion table E that defines a permutation plus an expansion that involves duplication of 16 of the R bits (Stallings Table 3.2c). The resulting 48 bits are XORed with Ki. This 48-bit result passes through a substitution function comprising 8 S-boxes which each map 6 input bits to 4 output bits, producing a 32-bit output, which is then permuted by permutation P as defined by Stallings Table 3.2d.
Az S-dobozok a 8 S-doboz mindegyike 6-ból 4 bitet készít igazából minden S-doboz 4 darab „4-ből 4 bites” kis dobozból áll a külső bitek az 1. és a 6. (sor bitek) kijelölnek egyet a 4 sorból (azaz a 4 kisdobozból) a belső bitek 2-5. (oszlop bitek) e sor szerint helyettesítődnek így egy S-doboz egy 4 (soros) x 16 (oszlopos) táblázat ír le, melynek elemei 4 bites értékek (0-15 számok) pl hexadecimális jelöléssel : S(18 09 12 3d 11 17 38 39) = 5fd25e03 S1(011000)=5, mert S1 00 sor 1100 oszlopában 5 van S2(001001)=f mert S2 01 sor 0100 oszlopában 15=f van The substitution consists of a set of eight S-boxes, each of which accepts 6 bits as input and produces 4 bits as output. These transformations are defined in Stallings Table 3.3, which is interpreted as follows: The first and last bits of the input to box Si form a 2-bit binary number to select one of four substitutions defined by the four rows in the table for Si. The middle four bits select one of the sixteen columns. The decimal value in the cell selected by the row and column is then converted to its 4-bit representation to produce the output. For example, in S1, for input 011001, the row is 01 (row 1) and the column is 1100 (column 12). The value in row 1, column 12 is 9, so the output is 1001. The example lists 8 6-bit values (ie 18 in hex is 011000 in binary, 09 hex is 001001 binary, 12 hex is 010010 binary, 3d hex is 111101 binary etc), each of which is replaced following the process detailed above using the appropriate S-box. ie S1(011000) lookup row 00 col 1100 in S1 to get 5 S2(001001) lookup row 01 col 0100 in S2 to get 15 = f in hex S3(010010) lookup row 00 col 1001 in S3 to get 13 = d in hex S4(111101) lookup row 11 col 1110 in S4 to get 2 etc
Az S1 doboz Az S2 doboz
S dobozok tervezése az S-dobozok a DES egyedüli nemlineáris komponensei tervezésük különös figyelemmel történt ezek tervezési részleteit nem hozták nyilvánosságra pl. a differenciális kriptoanalízis ellen védelmet nyújtanak, amely módszer csak 90-ben került nyilvánosságra általában a biztonságos S-dobozok tervezése a kriptográfia egy külön fejezete
A DES S dobozainak tulajdonságai nem lineárisak soraikban a 0..15 számok mindegyike pontosan egyszer szerepel a bemenetet 1 bittel változtatva a kimenet legalább 2 bitben megváltozik S(x) és S(x 001100) legalább 2 biten eltér S(x) ≠ S(x 11ab00) minden a,b{0,1} -re
DES kulcsszervezés (Key Schedule) hogyan kapjuk a körkulcsot az eredetiből? a szabványos kulcs 64 bit, de ebből a kezdeti (kulcs) keverés PC1 (Permuted Choice 1) csak 56 bitet választ ki, ezt két 28 bites félre osztjuk a 16 db körkulcs generálás lépései: forgassuk mindkét felet külön-külön balra 1 vagy 2 bittel (a forgatás mértékét egy táblázat adja meg) válasszunk ki 24-bitet mindkét félből és permutáljuk őket PC2 (Permuted Choice 2) segítségével vegyük észre a könnyű hw/sw megvalósíthatóságot The DES Key Schedule generates the subkeys needed for each data encryption round. The 64-bit key input is first processed by Permuted Choice One (Stallings Table 3.4b). The resulting 56-bit key is then treated as two 28-bit quantities C & D. In each round, these are separately processed throgh a circular left shift (rotation) of 1 or 2bits as shown in Stallings Table 3.4d. These shifted values serve as input to the next round of the key schedule. They also serve as input to Permuted Choice Two (Stallings Table 3.4c), which produces a 48-bit output that serves as input to the round function F. The 56 bit key size comes from security considerations as we know now. It was big enough so that an exhaustive key search was about as hard as the best direct attack (a form of differential cryptanalysis called a T-attack, known by the IBM & NSA researchers), but no bigger. The extra 8 bits were then used as parity (error detecting) bits, which makes sense given the original design use for hardware communications links. However we hit an incompatibility with simple s/w implementations since the top bit in each byte is 0 (since ASCII only uses 7 bits), but the DES key schedule throws away the bottom bit! A good implementation needs to be cleverer!
A kör kulcsgeneráláshoz szükséges forgatások táblázata Összesen 28 forgatás, éppen körülfordul a két fél körkulcs Crypt Tool DES animáció
A DES megfejtése a megfejtéskor fordítva kell alkalmazni a titkosítás lépéseit az adatokon mivel a kezdeti és végső keverés egymás inverze a többi pedig Feistel-struktúra ezért elég a körkulcsokat (jobbra forgatással) fordítva K16 … K1 sorrendben generálva megismételni a titkosítást IP visszarendezi a végső keverés FP hatását az 1. kör az K16 visszafejti a 16. kör titkosítását …. az 16. kör az K1 visszafejti a 1. kör titkosítását végül a végső keverés (FP) hatástalanítja a kezdeti keverést (IP) így visszakapjuk a nyílt szöveget As with any Feistel cipher, DES decryption uses the same algorithm as encryption except that the subkeys are used in reverse order SK16 .. SK1. If you trace through the DES overview diagram can see how each decryption step top to bottom with reversed subkeys, undoes the equivalent encryption step moving from bottom to top.
A lavina hatás az egyik igen kívánatos tulajdonsága bármely titkosításnak, hogy a nyílt szöveg vagy a kulcs kisméretű változtatása is, jelentősen változtassa meg a titkosított szöveget. ha a bemenet vagy kulcsnak csak egy bitjét változtatjuk meg, ez a kimeneti bitek körülbelül felének a megváltozásával járjon ha csak kismértékű lenne a változás, akkor az lehetőséget adna a nyílt szöveg vagy a kulcs keresési terének leszűkítésére A DES erős lavinahatással rendelkezik, mint az a következő táblázat mutatja A desirable property of any encryption algorithm is that a small change in either the plaintext or the key should produce a significant change in the ciphertext. In particular, a change in one bit of the plaintext or one bit of the key should produce a change in many bits of the ciphertext. If the change were small, this might provide a way to reduce the size of the plaintext or key space to be searched. DES exhibits a strong avalanche effect, as may be seen in Stallings Table 3.5.
A DES lavinahatásának szemléltetése Input: ...............................................................█ Permuted: .......................................█........................ Round 1: .......█........................................................ Round 2: .█..█...█.....█........................█........................ Round 3: .█..█.█.██..█.█.█.█....██.....██.█..█...█.....█................. Round 4: ..█.█████.█.█████.█.█......█.....█..█.█.██..█.█.█.█....██.....██ Round 5: █...██..█.█...█.█.█.█...█.███..█..█.█████.█.█████.█.█......█.... Round 6: ...█..██.....█.█..██.█.██...█..██...██..█.█...█.█.█.█...█.███..█ Round 7: █████...███....██...█..█.█..█......█..██.....█.█..██.█.██...█..█ Round 8: █.█.█.█.██.....█.█.█...██.█...███████...███....██...█..█.█..█... Round 9: ███.█.███...██.█.████.....██.█..█.█.█.█.██.....█.█.█...██.█...██ Round 10: █.█..█.█.██.█..█.██.███.██.█...████.█.███...██.█.████.....██.█.. Round 11: ..██████......█..██████....█....█.█..█.█.██.█..█.██.███.██.█...█ Round 12: █..███....█...█.█.█.███...████....██████......█..██████....█.... Round 13: ██..█....█..██████...█........█.█..███....█...█.█.█.███...████.. Round 14: █.██.█....█.█....██.█...█..██.████..█....█..██████...█........█. Round 15: ██.█....█.█.█...█.██.█..█.█.██.██.██.█....█.█....██.█...█..██.██ Round 16: .█..█.█..█..█.██....██..█..█..████.█....█.█.█...█.██.█..█.█.██.█ Output: ..█..██.█.█...█....███..███.██.█...█..█..█.█.█.██.█....█.█.█.██. a tömör négyzetek a megválzozott bitek
Lavina hatás a DES-ben
Támadások a DES ellen I Brute-force kis kulcsméret a DES leggyengébb (ismert) pontja 56-bites kulcsból 256 = 7.2 x 1016 darab van ezzel látszólag ellenáll a teljes kipróbálásnak ám komoly erőfeszítéssel a brute-force módon feltörhető 1997 Internet (ditributed.net) 96 nap 1998 speciális hardwer (Deep Crark gép /EFF/) 56 óra 1999 (együtt: Deep Crack gép + ≈100000 PC) 22 óra! persze ehhez képesnek kell lenni a nyílt szöveg felismerésére is és ma már mindenképpen a DES-nek alternatíváit kell keresnünk, pl. AES, 3DES Since its adoption as a federal standard, there have been lingering concerns about the level of security provided by DES in two areas: key size and the nature of the algorithm. With a key length of 56 bits, there are 2^56 possible keys, which is approximately 7.2█10^16 keys. Thus a brute-force attack appeared impractical. However DES was finally and definitively proved insecure in July 1998, when the Electronic Frontier Foundation (EFF) announced that it had broken a DES encryption using a special-purpose "DES cracker" machine that was built for less than $250,000. The attack took less than three days. The EFF has published a detailed description of the machine, enabling others to build their own cracker [EFF98]. There have been other demonstrated breaks of the DES using both large networks of computers & dedicated h/w, including: - 1997 on a large network of computers in a few months - 1998 on dedicated h/w (EFF) in a few days - 1999 above combined in 22hrs! It is important to note that there is more to a key-search attack than simply running through all possible keys. Unless known plaintext is provided, the analyst must be able to recognize plaintext as plaintext. Clearly must now consider alternatives to DES, the most important of which are AES and triple DES.
A Deep Crack gép Speciális hardwer a DES brute-force módú feltörésére Már 1977-ben Diffie és Hellman tervezett papíron egy ilyen gépet, ami akkor 20 millió $-ba került volna 1998-ban az Electronic Frontier Foundation épített is egy ilyet kevesebb mint 250.000 $-ból Ez a Deep Crack Machine http://en.wikipedia.org/wiki/Deep_Crack a tervet nyilvánosságra is hozták ma már pár új autó áráért készíthető olyan berendezés, ami a DES-t 1 napon belül feltöri, avagy olcsóbban: 2006: 8980 Euro, 9 nap, 2007: 6,4 nap (átlagosan) COPACOBANA (Cost-Optimized Parallel COde Breaker) http://www.copacobana.org/
Támadások a DES ellen II egyéb támadások elég sok ismert, de a gyakorlatban kivitelezhetetlenek pl. rengetek ismert vagy választott nyíltszöveg kell hozzájuk, pl. differenciális kriptoanalízis 247 DES művelet, 247 választott nyílt szöveggel lineáris kriptoanalízis 239 - 241 DES művelet, 243 ismert nyílt szöveggel időméréses támadás (timing attack) konkrét implementációt elemez, az alapján, hogy a titkosítás ideje függ a bemenettől és a használt kulcstól ha a kulcs néhány bitje már meghatározott a maradék teljes kipróbálással kereshető
A kétszeres DES és feltörése a DES igazán gyenge pontja az 56 bites kulcsméret ezt megpróbálhatjuk orvosolni, úgy, hogy a DES titkosítást egymás után többször alkalmazzuk, különböző kulcsokkal két egymásutáni DES-t végezni kevés, mert középen találkozó (meet in the middle) támadással feltörhető: néhány ismert nyílt szöveg-titkosszöveg pár birtokában a nyíltszöveget minden DES kulccsal titkosítva a párját, minden DES kulccsal megfejtve táblázatot vezetve az értékekről az egyezéseket találhatunk melyeket a többi párra ellenőrizve 257 lépésben feltörhetjük a 112 bites kulcsot táblázat a mérete az idő rovására csökkenthető !
Háromszoros DES (Triple DES vagy TDES) Így marad a DES 3-szor egymás után történő alkalmazása EK1(EK2(EK3(x))) titkosítás helyett, azonban szerencsésebb az EK1(DK2(EK3(x))) forma mert ekkor K1=K2=K3 alkalmazásával a módszer kompatibilis marad a DES-sel ha mindhárom kulcs különböző akkor 3TDES ha K1=K3≠K2, akkor 2TDES mivel a titkosítás és megfejtés algoritmusa csak a kulcs kezelésben tér el ez nem befolyásolja a biztonságot
Háromszoros DES (Triple DES vagy TDES) így a 3TDES kulcsa K1K2K3 168 bit paritásbitekkel 192 bit EK1K2K3 (x)= EK1(DK2(EK3(x))) DK1K2K3 (x)= DK3(EK2(DK1(x))) így a 2TDES kulcsmérete K1K2 112 bit paritásbitekkel 128 bit EK1K2 (x)= EK1(DK2(EK1(x))) DK1K2 (x)= DK1(EK2(DK1(x)))
A TDES biztonsága a középen találkozó feltörés miatt a 3TDES effektív biztonsága amúgy is csak 112 bit a 2TDES-t biztonságát ismert támadások miatt pedig csak 80 bit-re teszik ez ma még elegendőnek tűnik de sajnos a sebessége a DES-ének 3-szorosa az az AES pedig kb. 6-szor gyorsabb, nagyobb blokkmérettel és persze jóval nagyobb biztonsági ráhagyással rendelkezik így a TDES is lassan hátérbe szorul kivéve talán az elektronikus fizetés területén, ahol számos szabványba beépítették (elsősorban hardveres megvalósításokban)
Felhasznált irodalom Virrasztó Tamás: Titkosítás és adatrejtés: Biztonságos kommunikáció és algoritmikus adatvédelem, NetAcademia Kft., Budapest, 2004. Online elérhető: http://www.netacademia.net/book.aspx?id=1# (3.1. fejezet) William Stallings: Cryptography and Network Security, 4th Edition, Prentice Hall, 2006. (Chapter 3) Lawrie Brown előadás fóliái (Chapter 3)