Знаймо

Додати знання

приховати рекламу

Цей текст може містити помилки.

EnRUPT



План:


Введення


EnRUPT - в криптографії симетричний блоковий криптоалгоритм і кріптопрімітів, розроблений Шоном О `Нілом ( англ. Sean O'Neil ).

Особливістю алгоритму є його надзвичайна гнучкість. По-суті справи, алгоритм - це кріптопрімітів, що дозволяє реалізувати блочний шифр з довільним розміром блоку - від 32 біт і довжиною ключа від 64 біт. При цьому, число раундів буде дорівнює 8 * (xw / 32) + 4 * (kw / 32), де xw - розмір блоку в бітах, kw - довжина ключа в бітах. Для шифру з 128-бітовим блоком і 512 бітовим ключем застосовується 96 раундів, а при 256-бітному ключі - 64 раунду.


1. Сфера використання

Схема раунду потокового шифру RUPT

Оскільки EnRUPT є, де-факто, кріптопрімітівом, він може бути використаний в режимі швидкого симетричного блокового шифру, потокового шифру (irreversible EnRUPT, irRUPT), хеш-функції (mdRUPT), MAC, ГВЧ, ГПСЧ.

2. Приклад реалізації

Як і алгоритм TEA, EnRUPT дуже простий у реалізації. Фактично, шифр є спрощеним, посиленим і прискореним варіантом алгоритму XXTEA. Нижче зазначений простий і гнучкий приклад реалізації алгоритму в режимi 32-розрядного блокового шифру.


 # Define er1 (k) (rotr (2 * x [(r-1)% xw] ^ x [(r +1)% xw] ^ k ^ r, 8) * 9 ^ k)  enRUPT  (  u32  *  x  ,  const  u32 xw  ,  u32  *  key  ,  const  u32 kw  )  {  u32 r  ,  s  =  4  ,  n  =  s  *  (  2  *  xw  +  kw  )  ;  for  (  r  =  1  ;  r  <=  n  ;  r  + +  )  x  [  r  %  xw  ]  ^ =  er1  (  key  [  r  %  kw  ]  )  ;  }  unRUPT  (  u32  *  x  ,  const  u32 xw  ,  u32  *  key  ,  const  u32 kw  )  {  u32 r  ,  s  =  4  ,  n  =  s  *  (  2  *  xw  +  kw  )  ;  for  (  r  =  n  ;  r  ;  r  -  )  x  [  r  %  xw  ]  ^ =  er1  (  key  [  r  %  kw  ]  )  ;  } 

Де x - блок з 32-розрядних беззнакових чисел, key - ключ, xw - довжина повідомлення, kw - довжина ключа.


3. Безпека

Існує атака на 32-розрядний варіант блочного шифру EnRUPT, за умови, що криптоаналітика має можливість модифікувати ключ і отримати велику кількість пар відкритого і зашифрованого тексту, для 256-бітового ключа і 128-бітного блоку необхідно близько 2 64 вибраного тексту. Дана атака застосовна і для шифру XXTEA. [2] [3]

На конкурсі SHA-3 хеш-функція на базі алгоритму EnRUPT була визначена як має колізії при всіх семи заявлених параметрах безпеки. Складність знаходження колізії склала від 2 36 до 2 40 операцій для різних варіантів алгоритму, що дозволило продемонструвати [4] практичну колізію для варіанту EnRUPT-256.

За твердженням авторів алгоритму EnRUPT, була проведена успішна атака ( англ. linearization attack ) Не хеш-функції в цілому і не її структури, а тільки заявленого варіанту з конкретним параметром s = 4. Збільшення параметра s до 8 повинне привести до посилення дифузії і забезпечити більш високий рівень безпеки, за рахунок зниження швидкості обчислення функції в два рази. Однак, незалежних досліджень даного варіанту алгоритму не проводилося.

У рамках того ж конкурсу SHA-3 була опублікована робота [5], де показана можливість знаходження прообразу для варіанту EnRUPT-512. Дана атака вимагає близько 2480 операцій, що лише трохи краще 2512 для повного перебору, але все ж показує слабкість структури алгоритму.


Примітки

  1. EnRUPT: First all-in-one symmetric cryptographic primitive. - www.enrupt.com/EnRUPT_008.pdf
  2. Enrupt related-key attack - www.enrupt.com/index.php/2009/01/20/enrupt_related-key_attack
  3. EnRUPT related-key attack - cipherdev.org / break-enrupt-kdchain.c.txt
  4. Practical Collisions for EnRUPT - drops.dagstuhl.de/opus/volltexte/2009/1950 /
  5. Cryptanalysis of EnRUPT - ehash.iaik.tugraz.at/uploads/9/9b/Enrupt.pdf

Цей текст може містити помилки.

Схожі роботи | скачати
© Усі права захищені
написати до нас