1 / 15

Data Encryption Standard (DES)

Data Encryption Standard (DES). 1. Основи Стандартът за шифриране на данна - Data Encryption Standard (DES) е известен като алгоритъм за шифриране на данни - Data Encryption Algorithm (DEA) на ANSI и DEA-1 на ISO, е бил световен стандарт . Развитие на стандарта

Télécharger la présentation

Data Encryption Standard (DES)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Data Encryption Standard (DES) 1. Основи Стандартът за шифриране на данна - Data Encryption Standard (DES) е известен като алгоритъм за шифриране на данни - Data Encryption Algorithm (DEA) на ANSI и DEA-1 на ISO, е бил световен стандарт. Развитие на стандарта На 15.05. 1973 Federal Register, NBS издава едно публично искане за предло-жение за стандарт на криптографски алгоритъм. Те определят една серия от критерии за проектирането на алгоритъма: • да дава висока степен на секретност; • да бъде напълно специфичен и лесно разбираем; • секретността на алгоритъма трябва да пребивава в ключа - секретността да не зависи от секретността на алгоритъма; • да е наличен за всички потребители; • да е адаптивен за употреба в различни приложения; • да е икономично приложим в електронни устройства; • да бъде ефективен за употреба; • да възможен за валидизация/утвърждаване; • да бъде експортабилен.

  2. DESПродължение 2. Описание на DES DES е блоков шифър - той шифрира данна в 64-битови блокове - 64-битов блок на явния текст в единия край на алгоритъма и един 64-битов блок на шифрования текст излиза от другия край. DES е един симетричен алгоритъм: същият алгоритъм и ключ са употребени за двете – шифрирането и дешифрирането -с изключение на минимални разлики в описанието / таблицата на ключа. Дължината на ключа е 56 бита. На своето най-просто ниво, алгоритъмът не е нищо повече от две основни техники за шифриране: конфузия и дифузия (смесване и разпространение). Основните изграждащи блокове на DES е една комбинация от тези техники. Това е известно като рунд - round. DES има 16 рунда. Скица на алгоритъма

  3. DESПродължение Li = Ri-1 Ri = Li-1 ⊕ f (Ri-1, Ki) Балансирана мрежа на Файстел Небалансирана мрежа на Файстел Feistel Network- Мрежа на Файстел с няколко рунда

  4. DESПродължение Начална пермутация Table 1Initial Permutation 58,50, 42, 34, 26, 18, 10, 2, 60, 52, 44, 36, 28, 20, 12, 4,   62, 54, 46, 38, 30, 22, 14, 6, 64, 56, 48, 40, 32, 24, 16, 8,   57, 49, 41, 33, 25, 17, 9, 1, 59, 51, 43, 35, 27, 19, 11, 3,   61, 53, 45, 37, 29, 21, 13, 5, 63, 55, 47, 39, 31, 23, 15, 7 Table 2 Key Permutation 57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36, 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4

  5. DESПродължение Трансформация на ключа (Пермутация на ключа) Генерира се по един 48-битов подключ - subkey за всеки от 16-те рунда на DES. Тези подключове Ki са определени по определен начин. Първо, 56-битовият ключ се разделя на две половини по 28 бита, половинките се изместват циклични наляво на един или два бита, в зависимост от рунда. Изместването е дадено в табл. 3. Table 3Number of Key Bits Shifted per Round Round 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Number 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1

  6. DESПродължение DES key scheduler

  7. DESПродължение След като е изместен, се избират 48 бита от 56-те бита. Тази операция размества реда на битовете, също така избира едно подмножество от битове и се нарича пермутация на компресия - compression permutation - дава едно подмножество от 48 бита. Table 4 Compression Permutation 14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10, 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2, 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32 Разширена пермутация Tази операция разширява дясната половина на данната, Ri, от 32 бита до 48 бита. Защото тази операция променя реда на битовете също така повтаря определени битове, тя е известна като една разширена пермутация - expansion permutation. Операцията цели: • да направи дясната половина със същия размер като на ключа за операцията XOR; • Да даде един по-дълъг резултат, който може да бъде компресиран през време на операцията субституция. Обаче нито една не е главна цел на криптографията, защото когато един бит да действа на две субституции, зависимостта на изходните битове от входните битове се разпространява бързо. Това се нарича лавинен ефект - avalanche effect.

  8. DESПродължение Фигурата обяснява разширената пермутация. Това понякога се нарича E-box. За всеки 4-битов входен блок, първият и четвъртият битове всеки един представя два бита на изходния блок, докато вторият и третият битове - всеки един представят един бит на изходния блок. Табл. 5 показва кои изходни позиции на кои входни позиции отговарят. Table 5Expansion Permutation (Е bit table) 32, 1, 2, 3, 4, 5, 4, 5, 6, 7, 8, 9, 8, 9, 10, 11, 12, 13, 12, 13, 14, 15, 16, 17, 16, 17, 18, 19, 20, 21, 20, 21, 22, 23, 24, 25, 24, 25, 26, 27, 28, 29, 28, 29, 30, 31, 32, 1

  9. DESПродължение Субституция/заместване S-Box Core function of DES След компресирането на ключа и операцията XOR с разширен блок, 48-битовият резултат се предвижва към една операция субституция. Заместванията се изпълняват чрез осем заместващи кутии - substitution boxes, или S-кутии. Всеки S-бокс има 6 битов вход и един 4 битов изход и има 8 различни S-кутии -цялата необходима памет за 8 DES S-кутии е 256 байта. 48 бита се делят на осем 6-битови подблока. Всеки отделен блок работи с отделен S-бокс: първият блок работи с S-бокс 1, вторият - с S-бокс 2, и т.н.

  10. DESПродължение Table 6 S-BoxesS-box 1: 14, 4, 13, 1, 2, 15, 11, 8, 3, 10, 6, 12, 5, 9, 0, 7, 0, 15, 7, 4, 14, 2, 13, 1, 10, 6, 12, 11, 9, 5, 3, 8, 4, 1, 14, 8, 13, 6, 2, 11, 15, 12, 9, 7, 3, 10, 5, 0, 15, 12, 8, 2, 4, 9, 1, 7, 5, 11, 3, 14, 10, 0, 6, 13, Входните битове определят един вход в S-бокс по много специален начин. Разглежда се един S-бокс входове за 6 бита, означени с b1 b2 b3 b4 b5 и b6. Битове b1 и b6 дават една комбинация 2-битово число - от 0 до 3, което отговаря на един ред в таблицата. Средните 4 бита - b2 до b5 определят едно 4-битово число - от 0 до 15, отговарящо на номера на колоната в таблицата. Пример: b = (100101).  row = (11)2 = 3 (четвърта редица).  column = (0010)2 = 2 (трета колона). S1(37 = 1001012) = 8 = 10002. S-бокс субституцията е една критична стъпка в DES. Алгоритмите на други операции са линейни и лесни за анализ. S-боксовете са нелинейни S(a) XOR S(b)  S(a XOR b). и повече от нещо друго дават на DES неговата секретност.

  11. DESПродължение Резултатът от субституцията е осем 4 битови блока, които са рекомбинирани в един единствен 32-битов блок. Този блок се предвижва към следващата стъпка: P-бокс пермутация. Пермутация P-Box 32-битовият изход от заместването от S-бокс е разместено съгласно P-бокс. Тази пермутация нанася всеки входен бит на една изходна позиция; никой бит не се употребява два пъти и никой бит не се игнорира. Това се нарича директна пермутация - straight permutation или само пермутация. Table 7 P-Box Permutation 16, 7, 20, 21, 29, 12, 28, 17, 1, 15, 23, 26, 5, 18, 31, 10, 2, 8, 24, 14, 32, 27, 3, 9, 19, 13, 30, 6, 22, 11, 4, 25 Накрая, резултатът от P-бокс пермутацията е подложен на операция XOR с лявата половина на началния 64-битов блок. Тогава лявата и дясната половини се разменят и другият рунд започва.

  12. DESПродължение Последна пермутация Последната пермутация е обратната на началната пермутация (табл. 8). Забележете, че лявата и дясната половини не са разменени след последния рунд на DES; вместо съединяване на блокове R16L16 е употребен като вход на последната пермутация. Няма нищо тука; размяната на половините и цикличното изместване пермутацията ще получи точно същия резултат. Това е така, защото алгоритъмът може да бъде употребен за двете – шифриране и дешифриране. IP-1(IP(X)) = X. Table 8 Final Permutation 40, 8, 48, 16, 56, 24, 64, 32, 39, 7, 47, 15, 55, 23, 63, 31, 38, 6, 46, 14, 54, 22, 62, 30, 37, 5, 45, 13, 53, 21, 61, 29, 36, 4, 44, 12, 52, 20, 60, 28, 35, 3, 43, 11, 51, 19, 59, 27, 34, 2, 42, 10, 50, 18, 58, 26, 33, 1, 41, 9, 49, 17, 57, 25

  13. DESПродължение Дешифриращ DES С DES е възможно да се употребят същите функции за шифриране или дешифриране на блок. Единствената разлика е, че ключовете трябва да се употребяват в обратен ред. Това е, ако шифриращите ключове за всеки рунд са K1 K2 K3,..., K16 , тогава дешифриращите са - K16 K15 K14, ..., K1. Това се дължи на факта, че DES е базиран на Feistel -мрежи. Алгоритъмът, който генерира ключа за всеки рунд е също цикличен. Изместването на ключа (броят на позициите на изместване) е 0,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1. Да намерим какво се случва в началната степен на дешифрирането. (Ld0,Rd0) = IP(Y ) = IP(IP-1(R16, L16)) = (R16, L16). (Ld0,Rd0) = IP(Y ) = (R16, L16). Ld0= R16. Rd0 = L16 = R15. Да намерим какво става в итерациите. Какво е (Ld1,Rd1) ? Ld1= Rd0 = L16 = R15. Замества се в горното уравнение и се получава: Rd1 = Ld0 f(Rd0, k16) = R16 f(L16, k16). Rd1 = [L15 f(R15 , k16)]  f(R15 , k16). Rd1 = L15[f(R15 , k16) f(R15 , k16)] = L15. Най-общо: Ldi= R16-i и Rdi = L16-i; така че : Ld16 = R16-16 = R0 и Rd16 = R0. намира се какво става в последната степен. IP-1(Rd16, Ld16) = IP-1(L0,R0)=IP-1(IP(X)) = X.

  14. DESПродължение Reversed Key Schedule: Даден ключ K, как може лесно да генерира k16? k16 = PC2(C16,D16) = PC2(C0,D0) = PC2(PC1(k)). k15 = PC2(C15,D15) = PC2(RS1(C16),RS1(D16)) = PC2(RS1(C0),RS1(D0)). Reversed key scheduler for decryption of DES

  15. DESПродължение Decryption of DES

More Related