XXTEA — криптографічний алгоритм, що реалізує блочне симетричне шифрування і є мережею Фейстеля. Є розширенням алгоритму Block TEA. Розроблений і опублікований Девідом Уілером і Роджером Нідгемом в 1998 році. Виконаний на простих і швидких операціях: XOR, підстановка, додавання.
Розробники | Девід Уілер і Роджер Нідгем |
---|---|
Уперше оприлюднений | 1998 р |
Раундів | , де - кількість слів |
Тип | Мережа Фейстеля |
Історія
На симпозіумі Fast Software Encryption в грудні 1994 року Девід Уілер і Роджер Нідгем, професори Комп'ютерної Лабораторії Кембриджського Університету (Computer Laboratory, University of Cambridge), представили новий криптографічний алгоритм TEA. Даний алгоритм проектувався як альтернатива DES, який до того моменту вже вважався застарілим.
Пізніше в 1996 році в ході особистого листування Девіда Уїлера з Девідом Вагнером була виявлена уразливість до , яка була офіційно представлена в 1997 році на Першій Міжнародній Конференції ICIS групою вчених, що складалася з Брюса Шнайера, Джона Келсі і Девіда Вагнера. Ця атака стала підставою для покращення алгоритму TEA, і в жовтні 1996 року Уілер і Нідгем опублікували внутрішній звіт лабораторії, в якій наводилося два нових алгоритми: XTEA і Block TEA.
10 жовтня 1998 року група новин sci.crypt.research опублікувала статтю Маркку-Юхані Саарінена, в якій була знайдена уразливість Block TEA на стадії дешифрування. У тому ж місяці Девід Уілер і Роджер Нідгем опублікували внутрішній звіт лабораторії, в якій наводилося поліпшення алгоритму Block TEA — XXTEA.
Особливості
XXTEA, як і інші шифри колекції TEA, має ряд відмінних особливостей у порівнянні з аналогічними шифрами:
- Висока швидкість роботи
- Мале споживання пам'яті
- Проста програмна реалізація
- Відносно висока надійність.
Опис роботи алгоритму
Вихідний текст розбивається на слова по 32 біта кожне, з отриманих слів формується блок. Ключ також розбивають на 4 частини, що складаються зі слів по 32 біта кожен, і формують масив ключів. В ході одного раунду роботи алгоритму шифрується одне слово з блоку. Після того, як були зашифровані слова, закінчується цикл і починається новий. Кількість циклів залежить від кількості слів і дорівнює , де — кількість слів. Шифрування одного слова полягає в наступному:
- Над лівим сусідом виконується операція бітового зсуву вліво на два, а над правим операція бітового зсуву вправо на п'ять. Над отриманими значеннями виконують операцію побітового додавання за модулем 2.
- Над лівим сусідом виконується операція бітового зсуву вправо на три, а над правим операція бітового зсуву вліво на 4. Над отриманими значеннями виконують операцію побітового додавання за модулем 2
- Отримані числа складають по модулю 232.
- Константа δ, виведена із Золотого перетину (δ = ( — 1) * 231 = 2654435769 = 9E3779B9h) множиться на номер циклу (це було зроблено для запобігання простим атакам, заснованим на симетрії раундів).
- Отримане в попередньому пункті число складають побітово по модулю 2 з правим сусідом.
- Отримане в пункті 4 число зсувають побітово направо на 2, складають побітово по модулю два з номером раунду, і знаходять залишок від ділення на 4. З допомогою отриманого числа вибирають ключ з масиву ключів.
- Обраний в попередньому раунді ключ складають побітово по модулю 2 з лівим сусідом.
- Числа, отримані у попередньому та 4 пунктах складають по модулю 232.
- Числа, отримані в попередньому і 3 пунктах складають побітово по модулю 2, цю суму складають з шифрованим словом по модулю 232.
Криптоаналіз
На даний момент існує атака на основі адаптивно підібраного відкритого тексту, опублікована Еліасом Яаррковом в 2010 році. Існує два підходи, в яких використовується зменшення кількості циклів за рахунок збільшення кількості слів.
Перший підхід
Нехай у нас є якийсь відкритий текст. Візьмемо з нього 5 певних слів, починаючи з , які ми шифруємо з . Додамо яке-небудь число до і отримаємо новий відкритий текст. Тепер виконаємо перший цикл шифрування для цих текстів. Якщо після шифрування різниця залишилася тільки в даному слові, то продовжуємо шифрування. Якщо почали з'являтися різниці в інших словах, то починаємо пошук заново або змінюючи вихідний, або намагаючись підібрати іншу різницю. Збереження різниці тільки в одному слові можливо, так як функція шифрування не бієктивна для кожного сусіда. Еліас Яаррков провів ряд експериментів і з'ясував, що ймовірність проходження різниці 5 повних циклів давала ймовірність між і для більшості ключів, тобто якщо пара текстів пройшла 5 з 6 повних циклів, то її можна вважати вірною, так як якщо помістити різницю в кінець блоку, будуть виникати різниці в більшості слів. Дана атака була проведена і був відновлений ключ для алгоритму з кількістю циклів зменшеною до трьох.
Другий підхід
Другий підхід відрізняється від першого тим, що після першого раунду шифрування слова, різниця повинна перейти у нього самого з слова, при цьому різниця може зміниться, а після наступного раунду шифрування різниця повернеться в слово і стане дорівнювати початковому, але змінить знак. Після проведення оцінки даного методу, Еліас Яаррков отримав, що для успішного знаходження правильної пари досить 259 текстів, причому різниця повинна лежати в інтервалі , де , причому збільшення d не поліпшила результатів. Після була проведена успішна атака на XXTEA з кількістю циклом зменшеним до 4, і правильна пара була отримана за допомогою 235 пар текстів, а попередня оцінка дає необхідність у 234.7 пар текстів.
Відновлення ключа
Знаючи правильну пару текстів, досить прогнати алгоритм у зворотному порядку, оскільки тепер нам відомо все крім ключа.
Зразок коду
Оригінальне формулювання виправленого блоку TEA алгоритму, опублікованого Девідом Вільцером та Роджером Нідгем, полягає в наступному:
#define MX ((z>>5^y<<2) + (y>>3^z<<4) ^ (sum^y) + (k[p&3^e]^z)) long btea(long* v, long n, long* k) { unsigned long z=v[n-1], y=v[0], sum=0, e, DELTA=0x9e3779b9; long p, q ; if (n > 1) { /* Coding Part */ q = 6 + 52/n; while (q-- > 0) { sum += DELTA; e = (sum >> 2) & 3; for (p=0; p<n-1; p++) y = v[p+1], z = v[p] += MX; y = v[0]; z = v[n-1] += MX; } return 0 ; } else if (n < -1) { /* Decoding Part */ n = -n; q = 6 + 52/n; sum = q*DELTA ; while (sum != 0) { e = (sum >> 2) & 3; for (p=n-1; p>0; p--) z = v[p-1], y = v[p] -= MX; z = v[n-1]; y = v[0] -= MX; sum -= DELTA; } return 0; } return 1; }
За словами Нідгема та Уілера:
BTEA буде кодувати або декодувати n слів як єдиний блок, де n> 1
- v - вектор n даних слова
- k - це ключ від 4 слів
- n - для декодування є негативним
- якщо n дорівнює нулю, то результат - 1, і ніякого кодування чи декодування не відбувається, інакше результат буде нульовим
- передбачає 32-бітове "довге" та аналогічне кодування та декодування
Зверніть увагу, що ініціалізація z є невизначеною поведінкою для n <1, що може спричинити помилку сегментації або іншу небажану поведінку, - це було б краще помістити в блок «Coding Part». Крім того, у визначенні MX деякі програмісти вважатимуть за краще використовувати брекетинг, щоб визначити перевагу оператора.
Уточнена версія, включаючи такі вдосконалення, полягає в наступному:
#include <stdint.h> #define DELTA 0x9e3779b9 #define MX (((z>>5^y<<2) + (y>>3^z<<4)) ^ ((sum^y) + (key[(p&3)^e] ^ z))) void btea(uint32_t *v, int n, uint32_t const key[4]) { uint32_t y, z, sum; unsigned p, rounds, e; if (n > 1) { /* Coding Part */ rounds = 6 + 52/n; sum = 0; z = v[n-1]; do { sum += DELTA; e = (sum >> 2) & 3; for (p=0; p<n-1; p++) { y = v[p+1]; z = v[p] += MX; } y = v[0]; z = v[n-1] += MX; } while (--rounds); } else if (n < -1) { /* Decoding Part */ n = -n; rounds = 6 + 52/n; sum = rounds*DELTA; y = v[0]; do { e = (sum >> 2) & 3; for (p=n-1; p>0; p--) { z = v[p-1]; y = v[p] -= MX; } z = v[n-1]; y = v[0] -= MX; sum -= DELTA; } while (--rounds); } }
Примітки
- Wheeler et al, 1998.
- Yarrkov, 2010.
- Wheeler et al, 1994.
- Saarinen, 1998.
- Kelsey et al, 1997.
- ICIS, 1997.
- Wheeler et al, 1996.
- Sima et al, 2012.
- Cenwei, 2008.
- David J. Wheeler and Roger M. Needham (October 1998). (PDF). Computer Laboratory, Cambridge University, England. Архів оригіналу (PDF) за 20 вересня 2017. Процитовано 4 липня 2008.
Література
- David J. Wheeler, Roger M. Needham. Correction to XTEA. — 1998. — Жовтень.
- E. Yarrkov. Cryptanalysis of XXTEA. — 2010. — . — Травень.
- Saarinen M.-J. Cryptanalysis of Block Tea. — 1998. — . — Жовтень.
- David J. Wheeler, Roger M. Needham. TEA, a tiny encryption algorithm. — 1994. — Грудень.
- David J. Wheeler, Roger M. Needham. TEA extensions. — 1996. — Жовтень.
- J. Kelsey, B. Schneier and D. Wagner. Related-key cryptanalysis of 3-WAY, Biham-DES,CAST, DES-X, NewDES, RC2, and TEA. — 1997. — Листопад.
- Mao Cenwei. Comparison of a Few Small Ciphers Applicable to RFID. — 2008. — Червень.
- I. Sima, D. Tarmurean и V. Greu. XXTEA, an alternative replacement of KASUMI cipher algorithm in A5/3 GSM and f8, f9 UMTS data security functions. — 2012. — Червень.
- First International Conference, ICIS'97, Beijing, China, November 11-14, 1997, Proceedings / Editors: Yongfei Han, Tatsuaki Okamoto, Sihan Quing. — 1. — Springer-Verlag Berlin Heidelberg, 1997. — .
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
XXTEA kriptografichnij algoritm sho realizuye blochne simetrichne shifruvannya i ye merezheyu Fejstelya Ye rozshirennyam algoritmu Block TEA Rozroblenij i opublikovanij Devidom Uilerom i Rodzherom Nidgemom v 1998 roci Vikonanij na prostih i shvidkih operaciyah XOR pidstanovka dodavannya XXTEARozrobnikiDevid Uiler i Rodzher NidgemUpershe oprilyudnenij1998 rRaundiv6 n 52 displaystyle 6 n 52 de n displaystyle n kilkist slivTipMerezha FejstelyaIstoriyaNa simpoziumi Fast Software Encryption v grudni 1994 roku Devid Uiler i Rodzher Nidgem profesori Komp yuternoyi Laboratoriyi Kembridzhskogo Universitetu Computer Laboratory University of Cambridge predstavili novij kriptografichnij algoritm TEA Danij algoritm proektuvavsya yak alternativa DES yakij do togo momentu vzhe vvazhavsya zastarilim Piznishe v 1996 roci v hodi osobistogo listuvannya Devida Uyilera z Devidom Vagnerom bula viyavlena urazlivist do yaka bula oficijno predstavlena v 1997 roci na Pershij Mizhnarodnij Konferenciyi ICIS grupoyu vchenih sho skladalasya z Bryusa Shnajera Dzhona Kelsi i Devida Vagnera Cya ataka stala pidstavoyu dlya pokrashennya algoritmu TEA i v zhovtni 1996 roku Uiler i Nidgem opublikuvali vnutrishnij zvit laboratoriyi v yakij navodilosya dva novih algoritmi XTEA i Block TEA 10 zhovtnya 1998 roku grupa novin sci crypt research opublikuvala stattyu Markku Yuhani Saarinena v yakij bula znajdena urazlivist Block TEA na stadiyi deshifruvannya U tomu zh misyaci Devid Uiler i Rodzher Nidgem opublikuvali vnutrishnij zvit laboratoriyi v yakij navodilosya polipshennya algoritmu Block TEA XXTEA OsoblivostiXXTEA yak i inshi shifri kolekciyi TEA maye ryad vidminnih osoblivostej u porivnyanni z analogichnimi shiframi Visoka shvidkist roboti Male spozhivannya pam yati Prosta programna realizaciya Vidnosno visoka nadijnist Opis roboti algoritmuShema algoritmu shifruvannya XXTEA Vihidnij tekst rozbivayetsya na slova po 32 bita kozhne z otrimanih sliv formuyetsya blok Klyuch takozh rozbivayut na 4 chastini sho skladayutsya zi sliv po 32 bita kozhen i formuyut masiv klyuchiv V hodi odnogo raundu roboti algoritmu shifruyetsya odne slovo z bloku Pislya togo yak buli zashifrovani slova zakinchuyetsya cikl i pochinayetsya novij Kilkist cikliv zalezhit vid kilkosti sliv i dorivnyuye 6 52 n displaystyle 6 52 n de n displaystyle n kilkist sliv Shifruvannya odnogo slova polyagaye v nastupnomu Nad livim susidom vikonuyetsya operaciya bitovogo zsuvu vlivo na dva a nad pravim operaciya bitovogo zsuvu vpravo na p yat Nad otrimanimi znachennyami vikonuyut operaciyu pobitovogo dodavannya za modulem 2 Nad livim susidom vikonuyetsya operaciya bitovogo zsuvu vpravo na tri a nad pravim operaciya bitovogo zsuvu vlivo na 4 Nad otrimanimi znachennyami vikonuyut operaciyu pobitovogo dodavannya za modulem 2 Otrimani chisla skladayut po modulyu 232 Konstanta d vivedena iz Zolotogo peretinu d 5 displaystyle sqrt 5 1 231 2654435769 9E3779B9h mnozhitsya na nomer ciklu ce bulo zrobleno dlya zapobigannya prostim atakam zasnovanim na simetriyi raundiv Otrimane v poperednomu punkti chislo skladayut pobitovo po modulyu 2 z pravim susidom Otrimane v punkti 4 chislo zsuvayut pobitovo napravo na 2 skladayut pobitovo po modulyu dva z nomerom raundu i znahodyat zalishok vid dilennya na 4 Z dopomogoyu otrimanogo chisla vibirayut klyuch z masivu klyuchiv Obranij v poperednomu raundi klyuch skladayut pobitovo po modulyu 2 z livim susidom Chisla otrimani u poperednomu ta 4 punktah skladayut po modulyu 232 Chisla otrimani v poperednomu i 3 punktah skladayut pobitovo po modulyu 2 cyu sumu skladayut z shifrovanim slovom po modulyu 232 KriptoanalizNa danij moment isnuye ataka na osnovi adaptivno pidibranogo vidkritogo tekstu opublikovana Eliasom Yaarrkovom v 2010 roci Isnuye dva pidhodi v yakih vikoristovuyetsya zmenshennya kilkosti cikliv za rahunok zbilshennya kilkosti sliv Pershij pidhid Shema pershogo pidhodu diferencialnogo kriptoanalizu XXTEA Nehaj u nas ye yakijs vidkritij tekst Vizmemo z nogo 5 pevnih sliv pochinayuchi z r displaystyle r yaki mi shifruyemo z r 1 displaystyle r 1 Dodamo yake nebud chislo do r 2 displaystyle r 2 i otrimayemo novij vidkritij tekst Teper vikonayemo pershij cikl shifruvannya dlya cih tekstiv Yaksho pislya shifruvannya riznicya zalishilasya tilki v danomu slovi to prodovzhuyemo shifruvannya Yaksho pochali z yavlyatisya riznici v inshih slovah to pochinayemo poshuk zanovo abo zminyuyuchi vihidnij abo namagayuchis pidibrati inshu riznicyu Zberezhennya riznici tilki v odnomu slovi mozhlivo tak yak funkciya shifruvannya ne biyektivna dlya kozhnogo susida Elias Yaarrkov proviv ryad eksperimentiv i z yasuvav sho jmovirnist prohodzhennya riznici D 13 displaystyle Delta 13 5 povnih cikliv davala jmovirnist mizh 2 displaystyle 2 109 displaystyle 109 i 2 displaystyle 2 110 displaystyle 110 dlya bilshosti klyuchiv tobto yaksho para tekstiv projshla 5 z 6 povnih cikliv to yiyi mozhna vvazhati virnoyu tak yak yaksho pomistiti riznicyu v kinec bloku budut vinikati riznici v bilshosti sliv Dana ataka bula provedena i buv vidnovlenij klyuch dlya algoritmu z kilkistyu cikliv zmenshenoyu do troh Drugij pidhid Shema drugogo pidhodu diferencialnogo kriptoanalizu XXTEA Drugij pidhid vidriznyayetsya vid pershogo tim sho pislya pershogo raundu shifruvannya r 1 displaystyle r 1 slova riznicya povinna perejti u nogo samogo z r 2 displaystyle r 2 slova pri comu riznicya mozhe zminitsya a pislya nastupnogo raundu shifruvannya riznicya povernetsya v r 2 displaystyle r 2 slovo i stane dorivnyuvati pochatkovomu ale zminit znak Pislya provedennya ocinki danogo metodu Elias Yaarrkov otrimav sho dlya uspishnogo znahodzhennya pravilnoyi pari dosit 259 tekstiv prichomu riznicya povinna lezhati v intervali d d displaystyle d d de d 32 displaystyle d 32 prichomu zbilshennya d ne polipshila rezultativ Pislya bula provedena uspishna ataka na XXTEA z kilkistyu ciklom zmenshenim do 4 i pravilna para bula otrimana za dopomogoyu 235 par tekstiv a poperednya ocinka daye neobhidnist u 234 7 par tekstiv Vidnovlennya klyucha Znayuchi pravilnu paru tekstiv dosit prognati algoritm u zvorotnomu poryadku oskilki teper nam vidomo vse krim klyucha Zrazok koduOriginalne formulyuvannya vipravlenogo bloku TEA algoritmu opublikovanogo Devidom Vilcerom ta Rodzherom Nidgem polyagaye v nastupnomu define MX z gt gt 5 y lt lt 2 y gt gt 3 z lt lt 4 sum y k p amp 3 e z long btea long v long n long k unsigned long z v n 1 y v 0 sum 0 e DELTA 0x9e3779b9 long p q if n gt 1 Coding Part q 6 52 n while q gt 0 sum DELTA e sum gt gt 2 amp 3 for p 0 p lt n 1 p y v p 1 z v p MX y v 0 z v n 1 MX return 0 else if n lt 1 Decoding Part n n q 6 52 n sum q DELTA while sum 0 e sum gt gt 2 amp 3 for p n 1 p gt 0 p z v p 1 y v p MX z v n 1 y v 0 MX sum DELTA return 0 return 1 Za slovami Nidgema ta Uilera BTEA bude koduvati abo dekoduvati n sliv yak yedinij blok de n gt 1 v vektor n danih slova k ce klyuch vid 4 sliv n dlya dekoduvannya ye negativnim yaksho n dorivnyuye nulyu to rezultat 1 i niyakogo koduvannya chi dekoduvannya ne vidbuvayetsya inakshe rezultat bude nulovim peredbachaye 32 bitove dovge ta analogichne koduvannya ta dekoduvannya Zvernit uvagu sho inicializaciya z ye neviznachenoyu povedinkoyu dlya n lt 1 sho mozhe sprichiniti pomilku segmentaciyi abo inshu nebazhanu povedinku ce bulo b krashe pomistiti v blok Coding Part Krim togo u viznachenni MX deyaki programisti vvazhatimut za krashe vikoristovuvati breketing shob viznachiti perevagu operatora Utochnena versiya vklyuchayuchi taki vdoskonalennya polyagaye v nastupnomu include lt stdint h gt define DELTA 0x9e3779b9 define MX z gt gt 5 y lt lt 2 y gt gt 3 z lt lt 4 sum y key p amp 3 e z void btea uint32 t v int n uint32 t const key 4 uint32 t y z sum unsigned p rounds e if n gt 1 Coding Part rounds 6 52 n sum 0 z v n 1 do sum DELTA e sum gt gt 2 amp 3 for p 0 p lt n 1 p y v p 1 z v p MX y v 0 z v n 1 MX while rounds else if n lt 1 Decoding Part n n rounds 6 52 n sum rounds DELTA y v 0 do e sum gt gt 2 amp 3 for p n 1 p gt 0 p z v p 1 y v p MX z v n 1 y v 0 MX sum DELTA while rounds PrimitkiWheeler et al 1998 Yarrkov 2010 Wheeler et al 1994 Saarinen 1998 Kelsey et al 1997 ICIS 1997 Wheeler et al 1996 Sima et al 2012 Cenwei 2008 David J Wheeler and Roger M Needham October 1998 PDF Computer Laboratory Cambridge University England Arhiv originalu PDF za 20 veresnya 2017 Procitovano 4 lipnya 2008 LiteraturaDavid J Wheeler Roger M Needham Correction to XTEA 1998 Zhovten E Yarrkov Cryptanalysis of XXTEA 2010 Traven Saarinen M J Cryptanalysis of Block Tea 1998 Zhovten David J Wheeler Roger M Needham TEA a tiny encryption algorithm 1994 Gruden David J Wheeler Roger M Needham TEA extensions 1996 Zhovten J Kelsey B Schneier and D Wagner Related key cryptanalysis of 3 WAY Biham DES CAST DES X NewDES RC2 and TEA 1997 Listopad Mao Cenwei Comparison of a Few Small Ciphers Applicable to RFID 2008 Cherven I Sima D Tarmurean i V Greu XXTEA an alternative replacement of KASUMI cipher algorithm in A5 3 GSM and f8 f9 UMTS data security functions 2012 Cherven First International Conference ICIS 97 Beijing China November 11 14 1997 Proceedings Editors Yongfei Han Tatsuaki Okamoto Sihan Quing 1 Springer Verlag Berlin Heidelberg 1997 ISBN 978 3 540 63696 0