60 likes | 191 Views
Комбинирани блокови шифри. Многократно шифриране - Multiple encryption е една техника за комбиниране: употребÑвайки един алгоритъм за шифриране на един блок Ñвен текÑÑ‚ многократно Ñ Ð¼Ð½Ð¾Ð³Ð¾ ключове. КаÑкадирането е подобно на многократното шифриране, но употребÑва различни алгоритми.
E N D
Комбинирани блокови шифри Многократно шифриране - 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).
Комбинирани блокови шифриПродължение Тройно шифриране с три ключа Ако се употребява тройно шифриране добре е да са три различни ключа. Дължината на ключа е по-голяма, но съхранението на ключа не е проблем. Битовете са евтини. 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.
Комбинирани блокови шифриПродължение 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)))))
Комбинирани блокови шифри Продължение Най-съвременният вариант на тази схема отговаря на атаката на 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
Комбинирани блокови шифри Продължение Петкратно шифриране (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)
Комбинирани блокови шифри Продължение 7. Каскадни многочислени блокови алгоритми (Cascading Multiple Block Algorithms) Какво е шифриране на едно съобщение веднъж с алгоритъм А и ключ KA, след това отново с алгоритъм В и ключ KB? Може би Боб и Алис имат различни идеи за кои алгоритми са секретни: Алис иска да употребява А, а Боб – В. Тази техника понякога се нарича каскадна - cascading и може да бъде разширена отвъд двата алгоритъма и ключа.