В криптографії,Tiny Encryption Algorithm (TEA) — блочний алгоритм шифрування типу «Мережі Фейстеля». Алгоритм був розроблений на факультеті комп'ютерних наук Кембриджського університету (David Wheeler) і Роджером Нідгемом (Roger Needham) та вперше представлений в 1994 році на симпозіумі зі швидкими алгоритмами шифрування в Льовені (Бельгія).
Розробники | Девід Уілер і Роджер Нідгем |
---|---|
Уперше оприлюднений | 1994 р |
Деталі шифру | |
Розмір ключа | 128 біт |
Розмір блоку | 64 біт |
Раундів | 64 (32 циклу) |
Тип | Мережа Фейстеля |
Шифр не патентований, широко використовується в ряді криптографічних додатків і широкому спектрі апаратного забезпечення, завдяки вкрай низькими вимогами до пам'яті й простоті реалізації. Алгоритм має як програмну реалізацію на різних мовах програмування, так і апаратну реалізацію на інтегральних схемах типу FPGA.
Властивості
Алгоритм шифрування TEA заснований на бітових операцій з 64-бітним блоком, має 128-бітний ключ шифрування. Стандартна кількість раундів мережі Фейстеля біля 64 (32 циклу), однак, для досягнення найкращої продуктивності або шифрування, число циклів можна варіювати від 8 (16 раундів) до 64 (128 раундів). Мережа Фейстеля несиметрична через використання як операції накладення додавання по модулю 232.
Перевагами шифру є його простота в реалізації, невеликий розмір коду й досить висока швидкість виконання, а також можливість оптимізації виконання на стандартних 32-бітних процесорах, так як основні операції використовуються операції виключна «АБО» (XOR), побітового зсуву й додавання по модулю 232. Оскільки алгоритм не використовує таблиць підстановки і раундова функція досить проста, алгоритму потрібно не менше 16 циклів (32 раундів) для досягнення ефективної дифузії, хоча повна дифузія досягається вже через 6 циклів (12 раундів).
Алгоритм має відмінну стійкість до лінійного криптоаналізу і досить гарну до диференціального криптоаналізу. Головним недоліком цього алгоритму шифрування є його вразливість до атак «на пов'язаних ключах» (англ. Related-key attack). Через простий розклад ключів кожен ключ має 3 еквівалентних ключа. Це означає, що ефективна довжина ключа складає всього 126 біт, тому даний алгоритм не слід використовувати як геш-функцію.
Опис алгоритму
Вихідний текст розбивається на блоки по 64 біта кожен. 128-бітний ключ К ділиться на чотири 32-бітних підключа K[0], K[1], K[2] і K[3]. На цьому підготовчий процес закінчується, після чого кожен 64-бітний блок шифрується протягом 32 циклів (64 раундів) за нижченаведеним алгоритмом.
Припустимо, що на вхід n-го раунду (1 ≤ n ≤ 64) надходять права й ліва частини (Ln, Rn), тоді на виході n-го раунду будуть ліва й права частини (Ln+1, Rn+1), які обчислюються за такими правилами:
Ln+1 = Rn.
Якщо n = 2 * i — 1 для 1 ≤ i ≤ 32 (непарні раунди), то Rn+1 = Ln ({ [ Rn 4 ] K[0] } { Rn i * δ } { [ Rn 5 ] K[1] })
Якщо n = 2 * i для 1 ≤ i ≤ 32 (парні раунди), то Rn+1 = Ln ({ [ Rn 4 ] K[2] } { Rn i * δ } { [ Rn 5 ] K[3] })
Де
- X Y — операція додавання чисел X і Y по модулю 232.
- X Y — побітове виключне АБО» (XOR) чисел X і Y, яке в мові програмування Сі позначається як X ^ Y
- X Y і X Y — операції побітового зсуву числа X на Y біт вліво й вправо відповідно.
- Константа δ була виведена з Золотого перерізу δ = ( — 1) * 231 = 2654435769 = 9E3779B9h. У кожному раунді константа множиться на номер циклу i. Це було зроблено для запобігання простих атак, заснованих на симетрії раундів.
Також очевидно, що в алгоритмі шифрування TEA немає як такого алгоритму розкладу ключів. Замість цього в непарних раундах використовуються підключі К [0] та[1], у парних — К [2] і[3].
Так як це блочний шифроалгоритм, де довжина блоку 64-біт, а довжина даних може бути не кратна 64-біт, значення всіх байтів, які доповнюють блок до кратності в 64-біт, встановлюється в 0x01.
Реалізація
Реалізація на мові програмування Сі (адаптований варіант коду, представленого в статті Девіда Вілера та Роджера Нідгема) функцій шифрування і розшифрування з використанням алгоритму TEA:
#include <stdint.h> void encrypt (uint32_t* v, uint32_t* k) { /* set up */ uint32_t v0 = v[0]; uint32_t v1 = v[1]; uint32_t sum = 0; uint32_t i; /* a key schedule constant */ uint32_t delta = 0x9e3779b9; /* cache key */ uint32_t k0 = k[0]; uint32_t k1 = k[1]; uint32_t k2 = k[2]; uint32_t k3 = k[3]; /* basic cycle start */ for (i = 0; i < 32; i++) { sum += delta; v0 += ((v1 << 4) + k0) ^ (v1 + sum) ^ ((v1 >> 5) + k1); v1 += ((v0 << 4) + k2) ^ (v0 + sum) ^ ((v0 >> 5) + k3); } /* end cycle */ v[0] = v0; v[1] = v1; } void decrypt (uint32_t* v, uint32_t* k) { /* set up */ uint32_t v0 = v[0]; uint32_t v1 = v[1]; uint32_t sum = 0xC6EF3720; uint32_t i; /* a key schedule constant */ uint32_t delta = 0x9e3779b9; /* cache key */ uint32_t k0 = k[0]; uint32_t k1 = k[1]; uint32_t k2 = k[2]; uint32_t k3 = k[3]; /* basic cycle start */ for (i = 0; i < 32; i++) { v1 -= ((v0 << 4) + k2) ^ (v0 + sum) ^ ((v0 >> 5) + k3); v0 -= ((v1 << 4) + k0) ^ (v1 + sum) ^ ((v1 >> 5) + k1); sum -= delta; } /* end cycle */ v[0] = v0; v[1] = v1; }
Коментарі:
- v — початковий текст складається з двох частин по 32 біта
- k — ключ складається з чотирьох 32-бітних частин
Зміни у порівнянні з оригінальним кодом:
- використовується тип uint32_t внаслідок того, що він завжди має розмір 32 біта на відміну від long (присутній в оригінальному коді), який може містити 64 біта (наприклад в деяких 64 бітних системах)
- вихідний код не використовує тип const
- у вихідному коді опущені надлишкові дужки у виразах для v0 і v1, в даній модифікації вони залишені для більшої наочності
Криптоаналіз
Передбачається, що даний алгоритм забезпечує захищеність, порівнянну з алгоритмом шифрування IDEA, так як він застосовує ту ж ідею використання операцій з ортогональних алгебраїчних груп. Цей підхід відмінно захищає від методів лінійного криптоаналізу.
Атаки на пов'язаних ключах
Алгоритм найбільш уразливий до (англ. Related-key attack), через простий розклад ключів (в тому числі відсутності алгоритму розкладу ключів як такого). Існують як мінімум три відомі атаки даного типу, вони були представлені в роботі Джона Келсі (John Kelsea), Брюса Шнайєра (Bruce Schneier) і Девіда Вагнера (David Wagner) в 1997 році. Найбільш прості з них дають диференціальну характеристику з імовірністю 2-32 після 32 циклів алгоритму, тому потрібно не менше 234 обраних відкритих текстів для знаходження диференціальної характеристики з ймовірністю 1 і визначення всіх біт ключа. Більш складна в реалізації атака, що поєднує в собі ідеї «атаки на пов'язаних ключах» Елі Бихама (Eli Biham) та диференціальної атаки дає диференціальну характеристику з імовірністю 2-11, вимагає всього 223 обраних відкритих текстів і час близько 232 часів шифрування (тобто потребує кількість бітових операцій близько 232).
Диференціальний криптоаналіз
Було виявлено, що TEA досить стійкий до диференціального криптоаналізу. Атака на 10 раундів TEA вимагає 252.5 обраних відкритих текстів і має тимчасову складність 284. Кращий результат — криптоаналіз 17 раундів TEA. Дана атака вимагає всього 1920 обраних відкритих текстів, однак має тимчасову складність 2123.37.
Еквівалентні ключі
Ще одна проблема алгоритму TEA — наявність еквівалентних ключів. Було показано, що кожен ключ має три йому еквівалентних. Це означає, що ефективна довжина ключа має всього 126 біт замість 128, задуманих розробниками, тому TEA небажано використовувати як геш-функцію, що було відображено в книзі Ендрю Хуанга (Andrew Huang) «Hacking the Xbox: an introduction to reverse engineering» на прикладі злому ігрової приставки Microsoft Xbox.
Таблиця еквівалентних ключів:
K[0] | K[1] | K[2] | K[3] |
K[0] | K[1] | K[2] 80000000h | K[3] 80000000h |
K[0] 80000000h | K[1] 80000000h | K[2] | K[3] |
K[0] 80000000h | K[1] 80000000h | K[2] 80000000h | K[3] 80000000h |
Розширення алгоритму
Виявлення ряду серйозних недоліків і слабких місць у вихідному алгоритмі TEA призвело до швидкого створення його розширень. Основними відмінностями всіх цих алгоритмів є вдосконалений розклад ключів, динамічна залежність ключа від тексту, а також інший розмір ключа, вхідного блоку і/або кількість раундів мережі Фейстеля.
XTEA
XTEA має розмір блоку, який дорівнює 64 бітам, розмір ключа 128 біт, кількість раундів мережі Фейстеля дорівнює 64. Алгоритм був розроблений Девідом Вілером і Роджером Нідгемом та опублікований у 1997 році. Головна відмінність від вихідного алгоритму TEA — наявність алгоритму розкладу ключів, що дозволило усунути критичну вразливість до атак на "пов'язаних ключах», але призвело до погіршення стійкості до диференціального криптоаналізу. Існують три модифікації цього алгоритму, розроблені Томом Денісом (Tom Denis): XTEA-1 (розмір блоку — 64 біта, розмір ключа 128 біт, кількість раундів мережі Фейстеля — 32), XTEA-2 (розмір блоку 128 біт, розмір ключа 128 біт, кількість раундів мережі Фейстеля — 64) і XTEA-3 (розмір блоку 128 біт, розмір ключа — 256 біт, кількість раундів мережі Фейстеля — 64).
XXTEA
У 1998 році було опубліковано наступне розширення алгоритму, що отримало назву XXTEA. Розмір ключа 128 біт. Відмітною особливістю є можливість шифрування будь-яких блоків, довжина яких кратна 64 бітам, кількість раундів одно 52 + 6*(кількість 32-бітних слів в блоці) або 52 + 12*м при довжині блоку 64*M біт. Практична ефективність, опублікованої анонімно диференціальної атаки, не доведена.
RTEA
Існує так само альтернативна модифікація алгоритму TEA, що отримала найменування RTEA, розроблена у 2007 році «Marcos el Ruptor». Розмір блоку — 64 біта; для 128-бітного ключа число раундів мережі Фейстеля дорівнює 48, для 256-бітного — 64. За заявами розробників цей алгоритм продуктивніший і стійкіший до криптоаналізу, ніж XTEA, однак і на цей алгоритм вже існує «атака на пов'язаних ключах».
Raiden
З використанням механізмів генетичного програмування в 2006 році командою розробників на чолі з Хуліо Кастро (англ. Julio César Hernández Castro) був створений алгоритм Raiden, покликаний усунути уразливості шифру TEA. Він практично в точності повторює структуру алгоритму TEA, за винятком того, що у алгоритмі Raiden є розширений алгоритм розкладу ключів. Стандартне число раундів мережі Фейстеля одне 32 (16 циклів). Raiden використовує ключовий розклад, близький до ДПРЧ, трансформує ключ і генерує підключі для кожного раунду. Шифр успішно проходить тексти Diehard, Sexton і ENT.
Порівняння різних версій розширення алгоритму TEA
Тут наведена порівняльна таблиця основних характеристик алгоритмів колекції TEA:
Назва алгоритму | Стандартна кількість раундів мережі Фейстеля | Розмір блоку | Розмір ключа |
---|---|---|---|
TEA | 64 | 64 біта | 128 біт |
XTEA | 64 | 64 біта | 128 біт |
XTEA-1 | 32 | 64 біта | 128 біт |
XTEA-2 | 64 | 128 біт | 128 біт |
XTEA-3 | 64 | 128 біт | 256 біт |
XXTEA | 52 + 12 * M | 64 * M біт | 128 біт |
RTEA | 48 або 64 | 64 біта | 128 або 256 біт |
Raiden | 32 | 64 біта | 128 біт |
У той же час, автори алгоритму TEA на своїй офіційній сторінці звертають увагу на те, що в реальних умовах практичного використання, алгоритм TEA все ще залишається досить надійним і всі знайдені вразливості, як правило, не є критичними, наприклад, при передачі даних в реальному часі.
Див. також
Примітки
- . Архів оригіналу за 12 червня 2017. Процитовано 22 квітня 2018.
- Roger M. Needham and David J. Wheeler. TEA, a Tiny Encryption Algorithm [ 13 жовтня 2017 у Wayback Machine.]
- Kelsey, John; Schneier, Bruce; Wagner, David (1996). (PDF). Lecture Notes in Computer Science. 1109: 237—251. doi:10.1007/3-540-68697-5_19. Архів оригіналу (PDF) за 8 лютого 2012. Процитовано 22 квітня 2018.
- Andem, Vikram Reddy (2003).A cryptoanalisys of the tiny encryption algorithm [ 20 квітня 2009 у Wayback Machine.]
- Seokhie Hong, Deukjo Hong, Youngdai Ko, Donghoon Chang, Wonil Lee, Sangjin Lee, (2003). Differential Cryptanalysis of TEA and XTEA[недоступне посилання з листопадаа 2019]
- Kelsey, John; Schneier, Bruce; Wagner, David (1997). . Lecture Notes in Computer Science. 1334: 233—246. doi:10.1007/BFb0028479. Архів оригіналу за 3 грудня 2008. Процитовано 22 квітня 2018.
- Tom St Denis. Extended TEA Algorithms [ 27 серпня 2018 у Wayback Machine.]
- . Архів оригіналу за 23 вересня 2009. Процитовано 22 квітня 2018.
- Сравнительные результаты устойчивости симметричных криптоалгоритмов [ 25 липня 2008 у Wayback Machine.](англ.)
- A related key attack for RTEA.[недоступне посилання з лютого 2019]
- . Архів оригіналу за 5 березня 2016. Процитовано 22 квітня 2018. (англ.)
Посилання
- Сторінка алгоритму шифрування TEA [ 12 червня 2017 у Wayback Machine.]
- Roger M. Needham and David J. Wheeler. «TEA, a Tiny Encryption Algorithm»(PDF) [ 13 жовтня 2017 у Wayback Machine.]
- Andew Hang. «Hacking the Xbox: an introduction to reverse engineering»[1] [ 23 квітня 2018 у Wayback Machine.]
- Журнал «Хакер Онлайн», TEA: блочний шифр своїми руками, (2004)[2] [ 4 січня 2013 у Wayback Machine.]
- Paris Kitsos,Yan Zhang. «RFID Security: Techniques, Protocols and System-On-Chip Design»[3] [ 23 квітня 2018 у Wayback Machine.]
- David J. Wheeler Roger and M. Needham. «Correction to xtea.» Technical report, Computer Laboratory, University of Cambridge, October 1998 (PDF) [ 20 вересня 2017 у Wayback Machine.].
- Roger M. Needham and David J. Wheeler. «Tea extensions.» Technical report, Computer Laboratory, University of Cambridge, October 1997 (PDF) [ 20 вересня 2017 у Wayback Machine.].
- Test vectors for TEA [ 23 вересня 2017 у Wayback Machine.]
- PHP implementation of XTEA [ 13 листопада 2015 у Wayback Machine.]
- JavaScript implementation of TEA [ 12 квітня 2018 у Wayback Machine.]
- LGPL Java/J2ME implementation of TEA [ 23 квітня 2018 у Wayback Machine.]
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
V kriptografiyi Tiny Encryption Algorithm TEA blochnij algoritm shifruvannya tipu Merezhi Fejstelya Algoritm buv rozroblenij na fakulteti komp yuternih nauk Kembridzhskogo universitetu David Wheeler i Rodzherom Nidgemom Roger Needham ta vpershe predstavlenij v 1994 roci na simpoziumi zi shvidkimi algoritmami shifruvannya v Loveni Belgiya TEARozrobnikiDevid Uiler i Rodzher NidgemUpershe oprilyudnenij1994 rDetali shifruRozmir klyucha128 bitRozmir bloku64 bitRaundiv64 32 ciklu TipMerezha Fejstelya Shifr ne patentovanij shiroko vikoristovuyetsya v ryadi kriptografichnih dodatkiv i shirokomu spektri aparatnogo zabezpechennya zavdyaki vkraj nizkimi vimogami do pam yati j prostoti realizaciyi Algoritm maye yak programnu realizaciyu na riznih movah programuvannya tak i aparatnu realizaciyu na integralnih shemah tipu FPGA VlastivostiAlgoritm shifruvannya TEA zasnovanij na bitovih operacij z 64 bitnim blokom maye 128 bitnij klyuch shifruvannya Standartna kilkist raundiv merezhi Fejstelya bilya 64 32 ciklu odnak dlya dosyagnennya najkrashoyi produktivnosti abo shifruvannya chislo cikliv mozhna variyuvati vid 8 16 raundiv do 64 128 raundiv Merezha Fejstelya nesimetrichna cherez vikoristannya yak operaciyi nakladennya dodavannya po modulyu 232 Perevagami shifru ye jogo prostota v realizaciyi nevelikij rozmir kodu j dosit visoka shvidkist vikonannya a takozh mozhlivist optimizaciyi vikonannya na standartnih 32 bitnih procesorah tak yak osnovni operaciyi vikoristovuyutsya operaciyi viklyuchna ABO XOR pobitovogo zsuvu j dodavannya po modulyu 232 Oskilki algoritm ne vikoristovuye tablic pidstanovki i raundova funkciya dosit prosta algoritmu potribno ne menshe 16 cikliv 32 raundiv dlya dosyagnennya efektivnoyi difuziyi hocha povna difuziya dosyagayetsya vzhe cherez 6 cikliv 12 raundiv Algoritm maye vidminnu stijkist do linijnogo kriptoanalizu i dosit garnu do diferencialnogo kriptoanalizu Golovnim nedolikom cogo algoritmu shifruvannya ye jogo vrazlivist do atak na pov yazanih klyuchah angl Related key attack Cherez prostij rozklad klyuchiv kozhen klyuch maye 3 ekvivalentnih klyucha Ce oznachaye sho efektivna dovzhina klyucha skladaye vsogo 126 bit tomu danij algoritm ne slid vikoristovuvati yak gesh funkciyu Opis algoritmuVihidnij tekst rozbivayetsya na bloki po 64 bita kozhen 128 bitnij klyuch K dilitsya na chotiri 32 bitnih pidklyucha K 0 K 1 K 2 i K 3 Na comu pidgotovchij proces zakinchuyetsya pislya chogo kozhen 64 bitnij blok shifruyetsya protyagom 32 cikliv 64 raundiv za nizhchenavedenim algoritmom Pripustimo sho na vhid n go raundu 1 n 64 nadhodyat prava j liva chastini Ln Rn todi na vihodi n go raundu budut liva j prava chastini Ln 1 Rn 1 yaki obchislyuyutsya za takimi pravilami Ln 1 Rn Yaksho n 2 i 1 dlya 1 i 32 neparni raundi to Rn 1 Ln displaystyle boxplus Rn displaystyle ll 4 displaystyle boxplus K 0 displaystyle oplus Rn displaystyle boxplus i d displaystyle oplus Rn displaystyle gg 5 displaystyle boxplus K 1 Yaksho n 2 i dlya 1 i 32 parni raundi to Rn 1 Ln displaystyle boxplus Rn displaystyle ll 4 displaystyle boxplus K 2 displaystyle oplus Rn displaystyle boxplus i d displaystyle oplus Rn displaystyle gg 5 displaystyle boxplus K 3 De X displaystyle boxplus Y operaciya dodavannya chisel X i Y po modulyu 232 X displaystyle oplus Y pobitove viklyuchne ABO XOR chisel X i Y yake v movi programuvannya Si poznachayetsya yak X Y X displaystyle ll Y i X displaystyle gg Y operaciyi pobitovogo zsuvu chisla X na Y bit vlivo j vpravo vidpovidno Konstanta d bula vivedena z Zolotogo pererizu d 5 displaystyle sqrt 5 1 231 2654435769 9E3779B9h U kozhnomu raundi konstanta mnozhitsya na nomer ciklu i Ce bulo zrobleno dlya zapobigannya prostih atak zasnovanih na simetriyi raundiv Takozh ochevidno sho v algoritmi shifruvannya TEA nemaye yak takogo algoritmu rozkladu klyuchiv Zamist cogo v neparnih raundah vikoristovuyutsya pidklyuchi K 0 ta 1 u parnih K 2 i 3 Tak yak ce blochnij shifroalgoritm de dovzhina bloku 64 bit a dovzhina danih mozhe buti ne kratna 64 bit znachennya vsih bajtiv yaki dopovnyuyut blok do kratnosti v 64 bit vstanovlyuyetsya v 0x01 RealizaciyaRealizaciya na movi programuvannya Si adaptovanij variant kodu predstavlenogo v statti Devida Vilera ta Rodzhera Nidgema funkcij shifruvannya i rozshifruvannya z vikoristannyam algoritmu TEA include lt stdint h gt void encrypt uint32 t v uint32 t k set up uint32 t v0 v 0 uint32 t v1 v 1 uint32 t sum 0 uint32 t i a key schedule constant uint32 t delta 0x9e3779b9 cache key uint32 t k0 k 0 uint32 t k1 k 1 uint32 t k2 k 2 uint32 t k3 k 3 basic cycle start for i 0 i lt 32 i sum delta v0 v1 lt lt 4 k0 v1 sum v1 gt gt 5 k1 v1 v0 lt lt 4 k2 v0 sum v0 gt gt 5 k3 end cycle v 0 v0 v 1 v1 void decrypt uint32 t v uint32 t k set up uint32 t v0 v 0 uint32 t v1 v 1 uint32 t sum 0xC6EF3720 uint32 t i a key schedule constant uint32 t delta 0x9e3779b9 cache key uint32 t k0 k 0 uint32 t k1 k 1 uint32 t k2 k 2 uint32 t k3 k 3 basic cycle start for i 0 i lt 32 i v1 v0 lt lt 4 k2 v0 sum v0 gt gt 5 k3 v0 v1 lt lt 4 k0 v1 sum v1 gt gt 5 k1 sum delta end cycle v 0 v0 v 1 v1 Komentari v pochatkovij tekst skladayetsya z dvoh chastin po 32 bita k klyuch skladayetsya z chotiroh 32 bitnih chastin Zmini u porivnyanni z originalnim kodom vikoristovuyetsya tip uint32 t vnaslidok togo sho vin zavzhdi maye rozmir 32 bita na vidminu vid long prisutnij v originalnomu kodi yakij mozhe mistiti 64 bita napriklad v deyakih 64 bitnih sistemah vihidnij kod ne vikoristovuye tip const u vihidnomu kodi opusheni nadlishkovi duzhki u virazah dlya v0 i v1 v danij modifikaciyi voni zalisheni dlya bilshoyi naochnostiKriptoanalizPeredbachayetsya sho danij algoritm zabezpechuye zahishenist porivnyannu z algoritmom shifruvannya IDEA tak yak vin zastosovuye tu zh ideyu vikoristannya operacij z ortogonalnih algebrayichnih grup Cej pidhid vidminno zahishaye vid metodiv linijnogo kriptoanalizu Ataki na pov yazanih klyuchah Algoritm najbilsh urazlivij do angl Related key attack cherez prostij rozklad klyuchiv v tomu chisli vidsutnosti algoritmu rozkladu klyuchiv yak takogo Isnuyut yak minimum tri vidomi ataki danogo tipu voni buli predstavleni v roboti Dzhona Kelsi John Kelsea Bryusa Shnajyera Bruce Schneier i Devida Vagnera David Wagner v 1997 roci Najbilsh prosti z nih dayut diferencialnu harakteristiku z imovirnistyu 2 32 pislya 32 cikliv algoritmu tomu potribno ne menshe 234 obranih vidkritih tekstiv dlya znahodzhennya diferencialnoyi harakteristiki z jmovirnistyu 1 i viznachennya vsih bit klyucha Bilsh skladna v realizaciyi ataka sho poyednuye v sobi ideyi ataki na pov yazanih klyuchah Eli Bihama Eli Biham ta diferencialnoyi ataki daye diferencialnu harakteristiku z imovirnistyu 2 11 vimagaye vsogo 223 obranih vidkritih tekstiv i chas blizko 232 chasiv shifruvannya tobto potrebuye kilkist bitovih operacij blizko 232 Diferencialnij kriptoanaliz Bulo viyavleno sho TEA dosit stijkij do diferencialnogo kriptoanalizu Ataka na 10 raundiv TEA vimagaye 252 5 obranih vidkritih tekstiv i maye timchasovu skladnist 284 Krashij rezultat kriptoanaliz 17 raundiv TEA Dana ataka vimagaye vsogo 1920 obranih vidkritih tekstiv odnak maye timchasovu skladnist 2123 37 Ekvivalentni klyuchi She odna problema algoritmu TEA nayavnist ekvivalentnih klyuchiv Bulo pokazano sho kozhen klyuch maye tri jomu ekvivalentnih Ce oznachaye sho efektivna dovzhina klyucha maye vsogo 126 bit zamist 128 zadumanih rozrobnikami tomu TEA nebazhano vikoristovuvati yak gesh funkciyu sho bulo vidobrazheno v knizi Endryu Huanga Andrew Huang Hacking the Xbox an introduction to reverse engineering na prikladi zlomu igrovoyi pristavki Microsoft Xbox Tablicya ekvivalentnih klyuchiv K 0 K 1 K 2 K 3 K 0 K 1 K 2 displaystyle oplus 80000000h K 3 displaystyle oplus 80000000h K 0 displaystyle oplus 80000000h K 1 displaystyle oplus 80000000h K 2 K 3 K 0 displaystyle oplus 80000000h K 1 displaystyle oplus 80000000h K 2 displaystyle oplus 80000000h K 3 displaystyle oplus 80000000hRozshirennya algoritmuViyavlennya ryadu serjoznih nedolikiv i slabkih misc u vihidnomu algoritmi TEA prizvelo do shvidkogo stvorennya jogo rozshiren Osnovnimi vidminnostyami vsih cih algoritmiv ye vdoskonalenij rozklad klyuchiv dinamichna zalezhnist klyucha vid tekstu a takozh inshij rozmir klyucha vhidnogo bloku i abo kilkist raundiv merezhi Fejstelya XTEA XTEA maye rozmir bloku yakij dorivnyuye 64 bitam rozmir klyucha 128 bit kilkist raundiv merezhi Fejstelya dorivnyuye 64 Algoritm buv rozroblenij Devidom Vilerom i Rodzherom Nidgemom ta opublikovanij u 1997 roci Golovna vidminnist vid vihidnogo algoritmu TEA nayavnist algoritmu rozkladu klyuchiv sho dozvolilo usunuti kritichnu vrazlivist do atak na pov yazanih klyuchah ale prizvelo do pogirshennya stijkosti do diferencialnogo kriptoanalizu Isnuyut tri modifikaciyi cogo algoritmu rozrobleni Tomom Denisom Tom Denis XTEA 1 rozmir bloku 64 bita rozmir klyucha 128 bit kilkist raundiv merezhi Fejstelya 32 XTEA 2 rozmir bloku 128 bit rozmir klyucha 128 bit kilkist raundiv merezhi Fejstelya 64 i XTEA 3 rozmir bloku 128 bit rozmir klyucha 256 bit kilkist raundiv merezhi Fejstelya 64 XXTEA U 1998 roci bulo opublikovano nastupne rozshirennya algoritmu sho otrimalo nazvu XXTEA Rozmir klyucha 128 bit Vidmitnoyu osoblivistyu ye mozhlivist shifruvannya bud yakih blokiv dovzhina yakih kratna 64 bitam kilkist raundiv odno 52 6 kilkist 32 bitnih sliv v bloci abo 52 12 m pri dovzhini bloku 64 M bit Praktichna efektivnist opublikovanoyi anonimno diferencialnoyi ataki ne dovedena RTEA Isnuye tak samo alternativna modifikaciya algoritmu TEA sho otrimala najmenuvannya RTEA rozroblena u 2007 roci Marcos el Ruptor Rozmir bloku 64 bita dlya 128 bitnogo klyucha chislo raundiv merezhi Fejstelya dorivnyuye 48 dlya 256 bitnogo 64 Za zayavami rozrobnikiv cej algoritm produktivnishij i stijkishij do kriptoanalizu nizh XTEA odnak i na cej algoritm vzhe isnuye ataka na pov yazanih klyuchah Raiden Z vikoristannyam mehanizmiv genetichnogo programuvannya v 2006 roci komandoyu rozrobnikiv na choli z Hulio Kastro angl Julio Cesar Hernandez Castro buv stvorenij algoritm Raiden poklikanij usunuti urazlivosti shifru TEA Vin praktichno v tochnosti povtoryuye strukturu algoritmu TEA za vinyatkom togo sho u algoritmi Raiden ye rozshirenij algoritm rozkladu klyuchiv Standartne chislo raundiv merezhi Fejstelya odne 32 16 cikliv Raiden vikoristovuye klyuchovij rozklad blizkij do DPRCh transformuye klyuch i generuye pidklyuchi dlya kozhnogo raundu Shifr uspishno prohodit teksti Diehard Sexton i ENT Porivnyannya riznih versij rozshirennya algoritmu TEA Tut navedena porivnyalna tablicya osnovnih harakteristik algoritmiv kolekciyi TEA Nazva algoritmu Standartna kilkist raundiv merezhi Fejstelya Rozmir bloku Rozmir klyucha TEA 64 64 bita 128 bit XTEA 64 64 bita 128 bit XTEA 1 32 64 bita 128 bit XTEA 2 64 128 bit 128 bit XTEA 3 64 128 bit 256 bit XXTEA 52 12 M 64 M bit 128 bit RTEA 48 abo 64 64 bita 128 abo 256 bit Raiden 32 64 bita 128 bit U toj zhe chas avtori algoritmu TEA na svoyij oficijnij storinci zvertayut uvagu na te sho v realnih umovah praktichnogo vikoristannya algoritm TEA vse she zalishayetsya dosit nadijnim i vsi znajdeni vrazlivosti yak pravilo ne ye kritichnimi napriklad pri peredachi danih v realnomu chasi Div takozhXTEA XXTEA RTEA Raiden Merezha FejstelyaPrimitki Arhiv originalu za 12 chervnya 2017 Procitovano 22 kvitnya 2018 Roger M Needham and David J Wheeler TEA a Tiny Encryption Algorithm 13 zhovtnya 2017 u Wayback Machine Kelsey John Schneier Bruce Wagner David 1996 PDF Lecture Notes in Computer Science 1109 237 251 doi 10 1007 3 540 68697 5 19 Arhiv originalu PDF za 8 lyutogo 2012 Procitovano 22 kvitnya 2018 Andem Vikram Reddy 2003 A cryptoanalisys of the tiny encryption algorithm 20 kvitnya 2009 u Wayback Machine Seokhie Hong Deukjo Hong Youngdai Ko Donghoon Chang Wonil Lee Sangjin Lee 2003 Differential Cryptanalysis of TEA and XTEA nedostupne posilannya z listopadaa 2019 Kelsey John Schneier Bruce Wagner David 1997 Lecture Notes in Computer Science 1334 233 246 doi 10 1007 BFb0028479 Arhiv originalu za 3 grudnya 2008 Procitovano 22 kvitnya 2018 Eli Biham Computer Science Department Technion Israel Institute of Technology Haifa 32000 Israel 1992 New Types of Cryptanalytic Attacks Using Related Keys nedostupne posilannya z listopadaa 2019 Tom St Denis Extended TEA Algorithms 27 serpnya 2018 u Wayback Machine Arhiv originalu za 23 veresnya 2009 Procitovano 22 kvitnya 2018 Sravnitelnye rezultaty ustojchivosti simmetrichnyh kriptoalgoritmov 25 lipnya 2008 u Wayback Machine angl A related key attack for RTEA nedostupne posilannya z lyutogo 2019 Arhiv originalu za 5 bereznya 2016 Procitovano 22 kvitnya 2018 angl PosilannyaStorinka algoritmu shifruvannya TEA 12 chervnya 2017 u Wayback Machine Roger M Needham and David J Wheeler TEA a Tiny Encryption Algorithm PDF 13 zhovtnya 2017 u Wayback Machine Andew Hang Hacking the Xbox an introduction to reverse engineering 1 23 kvitnya 2018 u Wayback Machine ISBN 978 1593270292 Zhurnal Haker Onlajn TEA blochnij shifr svoyimi rukami 2004 2 4 sichnya 2013 u Wayback Machine Paris Kitsos Yan Zhang RFID Security Techniques Protocols and System On Chip Design 3 23 kvitnya 2018 u Wayback Machine David J Wheeler Roger and M Needham Correction to xtea Technical report Computer Laboratory University of Cambridge October 1998 PDF 20 veresnya 2017 u Wayback Machine Roger M Needham and David J Wheeler Tea extensions Technical report Computer Laboratory University of Cambridge October 1997 PDF 20 veresnya 2017 u Wayback Machine Test vectors for TEA 23 veresnya 2017 u Wayback Machine PHP implementation of XTEA 13 listopada 2015 u Wayback Machine JavaScript implementation of TEA 12 kvitnya 2018 u Wayback Machine LGPL Java J2ME implementation of TEA 23 kvitnya 2018 u Wayback Machine