1 / 6

Комбинирани блокови шифри

Комбинирани блокови шифри. Многократно шифриране - Multiple encryption е една техника за комбиниране: употребявайки един алгоритъм за шифриране на един блок явен текст многократно с много ключове. Каскадирането е подобно на многократното шифриране, но употребява различни алгоритми.

tyme
Download Presentation

Комбинирани блокови шифри

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. Комбинирани блокови шифри Многократно шифриране - Multiple encryption е една техника за комбиниране: употребявайки един алгоритъм за шифриране на един блок явен текст многократно с много ключове. Каскадирането е подобно на многократното шифриране, но употребява различни алгоритми. 1. Двойно шифриране. Първо се шифрира един блок с първия ключ, след това се шифрира резултантният шифротекст с втория ключ. Дешифрирането е обратния процес. C = EK2(EK1(P)) P = DK1(DK2(C)) Ако блоковият алгоритъм еот една група, тогава винаги има един K3 такъв, че C = EK2(EK1(P)) = EK3(P) . Друг метод за двойно шифриране, понякога наричан Davies-Price, е един вариант на CBC. Ci = EK1(Pi ⊕ EK2(Ci - 1)) Pi = DK1(Ci) ⊕ EK2(Ci - 1) 2. Тройно шифриране Тройно шифриране с два ключа Една добра идея, представена от Tuchman, работи с един блок 3 пъти с 2 ключа: с първия ключ, след това с втория и накрая отново с първия ключ. Изпращачът първо шифри-ра с първия ключ, след това дешифрира с втория и накрая шифрира отново с първия ключ. Получателят дешифрира с първия ключ, след това шифрира със втория и накрая дешифри-ра с първия ключ. C = EK1(DK2(EK1(P))) P = DK1(EK2(DK1(C))) Това понякога се нарича шифриране-дешифриране-шифриране вид - encrypt-decrypt-encrypt (EDE).

  2. Комбинирани блокови шифриПродължение Тройно шифриране с три ключа Ако се употребява тройно шифриране добре е да са три различни ключа. Дължината на ключа е по-голяма, но съхранението на ключа не е проблем. Битовете са евтини. C = EK3(DK2(EK1(P))) P = DK1(EK2(DK3(C))) Тройно шифриране с минимален ключ (TEMK) Има един секретен начин за употреба на тройно шифриране с два ключа, което пред-пазва от предишната атака, наречено тройно шифриране с минимален ключ - Triple Encryption with Minimum Key (TEMK). Този трик е да се получат три ключа от два: X1 и X2: K1 = EX1(DX2(EX1(T1))) K2 = EX1(DX2(EX1(T2))) K3 = EX1(DX2(EX1(T3))) T1, T2, и T3 са константи, които не правят нищо секретно. Това е специална конструкция, която гарантира, че за всяка отделна двойка ключове, най-добрата атака е атаката на известния явен текст. Видове на тройно-шифриране Не е достатъчно да се определи тройното шифриране - има различни начини да се направи. Решението е да се употребят действия на двете – секретността и продуктив-ността. Тук са дадени два възможни вида тройно шифриране: Вътрешен Inner-CBC: шифриране на целия файл в CBC вид три различни пъти. Това изисква три различни IV. Ci = EK3(Si ⊕ Ci - 1); Si = DK2(Ti ⊕ Si - 1); Ti = EK1(Pi ⊕ Ti - 1) Pi = Ti - 1 ⊕ DK1(Ti); Ti = Si - 1 ⊕ EK2(Si); Si = Ci - 1 ⊕ DK3(Ci) C0, S0, и T0 са IV.

  3. Комбинирани блокови шифриПродължение Triple encryption in CBC mode. Външен Outer-CBC: тройно шифриране на целия файл в CBC вид. Това изисква един IV. Ci = EK3(DK2(EK1(Pi ⊕ Ci - 1))) Pi = Ci - 1 ⊕ DK1(EK2(DK3(Ci))) Triple encryption with padding. C = EK3(T(EK2(T(EK1(P)))))

  4. Комбинирани блокови шифри Продължение Най-съвременният вариант на тази схема отговаря на атаката на Biham за inner-CBC с включване едно избелващо минаване за да се скрие макета на явния текст. Това минаване е един потоков XOR с криптографски секретен генератор на случайни числа нарече по-долу R. От двете страни T защитава от криптоанализатора от предварително (a priori) знаене кой ключ е употребен за да се шифрира даден байт на входа в последното шифриране. Второто шифриране е обозначено с nE (шифриране с n различни ключа, употребени циклично): C = EK3(R(T(nEK2(T(EK1(R)))))) 3. Дублиране на блоковата дължина Удвояване на дължината на блока 4 Други схеми за многократни шифрирания. Проблемът с трикратното шифриране с два ключа е този, който само дублира размера на ключовото пространство, но изисква по три шифрирания на блок явен текст. Не би ли било по-добре да се намери умен начин за комбиниране две шифрирания, който ще дублира размера на пространството на ключовете? Двоен OFB/брояч Този метод употребява блоков алгоритъм за да се генерират два ключови потока, които са употребени да шифрират явния текст. Si = EK1(Si - 1 ⊕ I1); I1 = I1 + 1 Ti = EK2(Ti - 1 ⊕ I2); I2 = I2 + 1 Ci = Pi ⊕ Si ⊕ Ti

  5. Комбинирани блокови шифри Продължение Петкратно шифриране (Quintuple Encryption) C = EK1(DK2(EK3(DK2(EK1(P))))) P = DK1(EK2(DK3(EK2(DK1(C))))) 5. CDMF скъсяване на ключа (Key Shortening) Този метод е проектиран от IBM за техните Commercial Data Masking Facility (CDMF) за да намали 56-битовия ключ на DES на 40-битов удобен за експорт. Той приема, че оригиналния ключ на DES включва битове за четност. (1)  Нула битове за четност: битове 8, 16, 24, 32, 40, 48, 56, 64. (2)  Шифриране на изхода от стъпка 1 с DES и ключът 0xc408b0540ba1e0ae и XOR на резултата с изхода от стъпка 1. (3)  Вземане на изхода от ст.2 и нула на следните битове: 1, 2, 3, 4, 8, 16, 17, 18, 19, 20, 24, 32, 33, 34, 35, 36, 40, 48, 49, 50, 51, 52, 56, 64. (4)  Шифриране на изхода от ст. 3 с DES и следния ключ: 0xef2c041ce6382fe6. Този ключ е след това употребен за шифриране на съобщението. Методът скъсява дължината на ключа, следователно отслабва алгоритъма. 6. Избелване (Whitening) Whitening е името дадено на техниката за XOR на някакъв материал на ключа с входа към блоковия алгоритъм и също XOR на някакъв материал на друг ключ с изхода. Това първо е направено в варианта DESX, развит от RSA Data Security, Inc., и след това в Khufu and Khafre. Идеята е да се защити един криптоанализатор от получаване на двойката явен текст/шифрован текст за подразбиращ се алгоритъм. Техниката форсира криптоанализатора да отгатне не само ключа на алгоритъма, но също една от избелващите стойности. Тъй като има XOR преди и след блоковия алгоритъм, тази техника е неподатлива на атака meet-in-the-middle. C = K3 ⊕ EK2(P ⊕ K1) P = K1 ⊕ DK2(C ⊕ K3)

  6. Комбинирани блокови шифри Продължение 7. Каскадни многочислени блокови алгоритми (Cascading Multiple Block Algorithms) Какво е шифриране на едно съобщение веднъж с алгоритъм А и ключ KA, след това отново с алгоритъм В и ключ KB? Може би Боб и Алис имат различни идеи за кои алгоритми са секретни: Алис иска да употребява А, а Боб – В. Тази техника понякога се нарича каскадна - cascading и може да бъде разширена отвъд двата алгоритъма и ключа.

More Related