www.wikidata.uk-ua.nina.az
U Vikipediyi ye statti pro inshi znachennya cogo termina Mars znachennya MARS shifr kandidat v AES rozroblenij korporaciyeyu IBM yaka stvorila u svij chas DES Za zayavoyu IBM v algoritm MARS vkladeno 25 richnij kriptoanalitichnij dosvid firmi i poryad z visokoyu kriptografichnoyu stijkistyu shifr dopuskaye efektivnu realizaciyu navit v takih obmezhenih ramkah yaki harakterni dlya smart kart MARSRozrobniki Kerolin Barvik Don Koppersmit IBM Upershe oprilyudnenij 1998 r Raundiv 32Tip Merezha FejstelyaU rozrobci shifru vzyav uchast Don Koppersmit odin z avtoriv shifru Lucifer DES vidomij nizkoyu statej po kriptologiyi polipshennya strukturi S blokiv proti diferencialnogo kriptoanalizu metod shvidkogo peremnozhuvannya matric algoritm Koppersmita Vinogradu kriptoanaliz RSA Krim nogo v rozrobci algoritmu vzyali uchast Kerolin Barvik Edvard D Evinon Rosario Zhenaro Shaj Halevi Charanzhit Dzhutla Stiven M Matyas Mol Lyuk O Konnor Mohamed Per yevyan Devid Safford Nevenko Zunich Za pravilami konkursu AES uchasniki mogli vnositi neznachni zmini u svoyi algoritmi Skoristavshis cim pravilom avtori MARSa zminili proceduru rozshirennya klyucha sho dozvolilo zniziti vimogi do energonezalezhnoyi i operativnoyi pam yati Nizhche bude nadana modifikovana versiya algoritmu Za rezultatami konkursu AES MARS vijshov u final ale postupivsya Rijndael Pislya ogoloshennya rezultativ 19 travnya 2000 roku grupa rozrobnikiv sklala svoyu vlasnu dumku pro konkurs AES 1 de dala komentari na pretenziyi do svogo ditisha Zaraz MARS poshiryuyetsya po vsomu svitu pid Royalty Free licenziyeyu Zmist 1 Korotkij opis algoritmu 2 Struktura algoritmu 2 1 Pryame peremishuvannya 2 1 1 Psevdokod 2 2 Kriptografichne yadro 2 2 1 Psevdokod 2 2 2 E funkciya 2 2 2 1 Psevdokod 2 3 Zvorotne peremishuvannya 2 3 1 Psevdokod 2 4 Deshifruvannya 2 4 1 Pryame peremishuvannya 2 4 2 Kriptografichne yadro 2 4 3 Zvorotne peremishuvannya 3 Osoblivosti algoritmu 3 1 S bloki 3 1 1 Vlastivosti S blokiv 3 2 Rozshirennya klyucha 4 Perevagi i nedoliki algoritmu 5 Vidpovid analitikam AES 6 Analiz bezpeki algoritmu 7 Primitki 8 PosilannyaKorotkij opis algoritmu red MARS ye blochno simetrichnim shifrom z vidkritim klyuchem Rozmir bloku pri shifruvanni 128 bita rozmir klyucha mozhe variyuvatisya vid 128 do 448 bit vklyuchno kratni 32 bitam Tvorci pragnuli poyednati v svoyemu algoritmi shvidkist koduvannya i stijkist shifru V rezultati vijshov odin z samih kriptostijkij algoritm z algoritmiv yaki brali uchast v konkursi AES Algoritm unikalnij tim sho vikoristovuvav praktichno vsi isnuyuchi tehnologiyi zastosovuvani v kriptoalgoritmah a same Najprostishi operaciyi dodavannya vidnimannya viklyuchayuche abo Pidstanovki z vikoristannyam tablici zamin Fiksovanij ciklichnij zsuv Zalezhnij vid danih ciklichnij zsuv Mnozhennya po modulyu 2 32 Klyuchove zabilyuvannyaVikoristannya podvijnogo peremishuvannya predstavlyaye skladnist dlya kriptoanaliz a sho deyaki vidnosyat do nedolikiv algoritmu U toj zhe chas na danij moment ne isnuye bud yakih efektivnih atak na algoritm hocha deyaki klyuchi mozhut generuvati slabki pidklyuchi Struktura algoritmu red Avtori shifru vihodili z nastupnih pripushen Vibir operacij MARS buv sproektovanij dlya vikoristannya na najsuchasnishih komp yuterah togo chasu Dlya dosyagnennya najkrashih zahisnih harakteristik v nogo buli vklyucheni sami silni operaciyi pidtrimuvani v nih Ce dozvolilo dobitisya bilshogo vidnosini securityper instruction dlya riznih realizaciyi shifru Struktura shifru Dvadcyatirichnij dosvid roboti v oblasti kriptografiyi pidshtovhnuv tvorciv algoritmu do dumki sho kozhen raund shifruvannya graye svoyu rol v zabezpechenni bezpeki shifru Zokrema mi mozhemo bachiti sho pershij i ostannij raundi zazvichaj silno vidriznyayutsya vid promizhnih centralnih raundiv algoritmu v plani zahistu vid kriptoanalitichnih atak Takim chinom pri stvorenni MARSa vikoristovuvalasya zmishana struktura de pershij i ostannij raundi shifruvannya istotno vidriznyayutsya vid promizhnih Analiz Shvidshe za vse algoritm z geterogennoyu strukturoyu bude krashe protistoyati kriptoanalitichnih metodam majbutnogo nizh algoritm vsi raundi yakogo identichni Rozrobniki algoritmu MARS nadali jomu silno geterogennu strukturu raundi algoritmu duzhe riznyatsya mizh soboyu U shifri MARS vikoristovuvalisya taki metodi shifruvannya Robota z 32 h bitnimi slovami Vsi operaciyi zastosovuyutsya do 32 bitovim slovami tobto vsya pochatkova informaciya rozbivayetsya na bloki po 32 bita Yaksho zh blok opinyavsya menshoyi dovzhini to vin dopovnyuvavsya do 32 bit Merezha Fejstelya Tvorci shifru vvazhali sho ce najkrashij variant poyednannya shvidkosti shifruvannya i kriptostijkosti V MARS vikoristana merezha Fejstelya 3 go tipu Simetrichnist algoritmu Dlya stijkosti shifru do riznih atakam vsi jogo raundi buli zrobleni povnistyu simetrichnimi tobto druga chastina raundu ye dzerkalne povtorennya pershoyi jogo chastini Strukturu algoritmu MARS mozhna opisati takim chinom Poperednye nakladennya klyucha na 32 bitovi subbloki A B C D nakladayutsya 4 fragmenta rozshirenogo klyucha k 0 k 3 operaciyeyu skladannya po modulyu 2 32 Vikonuyutsya 8 raundiv pryamogo peremishuvannya bez uchasti klyucha shifruvannya Vikonuyutsya 8 raundiv pryamogo kriptoperetvorennya Vikonuyutsya 8 raundiv zvorotnogo kriptoperetvorennya 2 Vikonuyutsya 8 raundiv zvorotnogo peremishuvannya takozh bez uchasti klyucha shifruvannya Finalne nakladennya fragmentiv rozshirenogo klyucha k 36 k 39 operaciyeyu vidnimannya po modulyu 2 32 Pryame peremishuvannya red U pershij fazi na kozhne slovo danih nakladayetsya slovo klyucha a potim vidbuvayetsya visim raundiv zmishuvannya zgidno z merezheyu Fejstelya tretogo tipu spilno z deyakimi dodatkovimi zmishuvannya U kozhnomu raundi mi vikoristovuyemo odne slovo danih zvane vihidnim slovom dlya modifikaciyi troh inshih sliv zvani cilovimi slovami Mi rozglyadayemo chotiri bajta vihidnogo slova yak indeksiv na dvoh S blokiv S 0 i S 1 kozhen sho skladayetsya z 256 32 rozryadnih sliv a dali provodimo operaciyi XOR abo dodavannya danih vidpovidnogo S bloku v tri inshih slova Yaksho chotiri bajti vihidnogo slova b 0 b 1 b 2 b 3 de b 0 ye pershim bajtom a b 3 ye starshim bajtom to mi vikoristovuyemo b 0 b 2 yak indeksi v bloku S 0 i bajti b 1 b 3 yak indeksi v S bloci S 1 Spochatku zrobimo XOR S 0 do pershogo cilovim rechi a potim dodamo S 1 do togo zh slova Mi takozh dodayemo S 0 do drugogo cilovim slovu i XOR bloku S 1 do tretogo cilovim slovu U visnovku mi obertayemo vihidne slovo na 24 bita vpravo U nastupnomu raundi mi obertayemo nayavni u nas chotiri slova takim chinom ninishni pershi cilove slovo staye nastupnim vihidnim slovom potochnim drugij cilove slovo staye novim pershim cilovim slovom tretye cilove slovo staye nastupnij drugij cilovim slovom i potochne vihidne slovo staye tretim cilovim slovom Bilsh togo pislya kozhnogo z chotiroh raundiv mi dodayemo odne z cilovih sliv nazad u vihidne slovo Zokrema pislya pershogo i p yatogo raundiv mi dodav tretyu cilove slovo nazad u vihidne slovo a pislya drugogo i shostogo raundu mi dodayemo pershoyi cilovoyi slovo nazad u vihidne slovo Prichinoyu cih dodatkovih operacij zmishuvannya ye likvidaciya dekilkoh prostih diferencialnih kriptoataki v fazi peremishuvannya shob porushiti simetriyu u fazi zmishuvannya ta otrimati shvidkij potik Psevdokod red 1 Pershe nakladennya klyucha na dani 2 f o r i 0 t o 3 d o displaystyle for i 0 to 3 do nbsp 3 D i D i K i displaystyle D left i right D i K i nbsp 4 Potim 8 raundiv pryamogo peremishuvannya 5 f o r i 0 t o 7 d o displaystyle for i 0 to 7 do nbsp vikoristovuyemo D 0 dlya modifikuvannya D 1 D 2 D 3 6 Zvertayemosya do 4 em S blokam 7 D 1 D 1 S 0 l o w b y t e o f D 0 displaystyle D left 1 right D 1 oplus S0 low byte of D 0 nbsp 8 D 1 D 1 S 1 2 n d b y t e o f D 0 displaystyle D left 1 right D 1 S1 2nd byte of D 0 nbsp 9 D 2 D 2 S 0 3 r d b y t e o f D 0 displaystyle D left 2 right D 2 S0 3rd byte of D 0 nbsp 10 D 3 D 3 S 1 h i g h b y t e o f D 0 displaystyle D 3 D 3 oplus S1 high byte of D 0 nbsp 11 I obertayemo vihidne slovo vpravo 12 D 0 D 0 24 displaystyle D 0 D 0 ggg 24 nbsp 13 Takozh prorobimo dodatkovi operaciyi zmishuvannya 14 i f i 0 o r 4 t h e n displaystyle if i 0 or 4 then nbsp 15 D 0 D 0 D 3 displaystyle D left 0 right D 0 D 3 nbsp dodamo D 3 do vihidnogo slova 16 i f i 1 o r 5 t h e n displaystyle if i 1 or 5 then nbsp 17 D 0 D 0 D 1 displaystyle D left 0 right D 0 D 1 nbsp dodamo D 1 do vihidnogo slova 18 Obertayemo masiv D 19 D 3 D 2 D 1 D 0 D 0 D 3 D 2 D 1 displaystyle D 3 D 2 D 1 D 0 leftarrow D 0 D 3 D 2 D 1 nbsp 20 E n d f o r displaystyle End for nbsp Kriptografichne yadro red Kriptografichne yadro MARS merezha Fejstelya 3 go tipu sho mistit v sobi 16 raundiv U kozhnomu raundi mi vikoristovuyemo klyuchovu E funkciyu yaka ye kombinaciyeyu mnozhen obertan a takozh zvernen do S blokiv Funkciya prijmaye na vhid slovo danih a povertaye tri slova z yakimi zgodom bude zdijsnena operaciya dodavannya abo XOR do inshih troh sliv danimi U dopovnenni vihidne slovo obertayetsya na 13 bit vlivo Dlya zabezpechennya serjoznogo oporu do kriptoataki tri vihidnih znachennya E funkciyi O 1 O 2 O 3 vikoristovuyutsya v pershih vosmi raundah i v ostannih vosmi raundah v riznih poryadkah U pershi visim raundiv mi dodayemo O 1 i O 2 do pershogo i drugogo cilovim rechi vidpovidno i XOR O 3 u tretomu cilovim slovu Za ostanni visim raundiv mi dodayemo O 1 i O 2 do tretogo i drugogo cilovim rechi vidpovidno i XOR O 3 do pershogo cilovim slovu Psevdokod red 1 Prorobimo 16 raundiv shifruvannya pri vikoristanni klyucha 2 F o r i 0 t o 15 d o displaystyle For i 0 to 15 do nbsp 3 O u t 1 o u t 2 o u t 3 E f u n c t i o n D 0 K 2 i 4 K 2 i 5 displaystyle Out1 out2 out3 E function D 0 K 2i 4 K 2i 5 nbsp 4 D 0 D 0 13 displaystyle D 0 D 0 lll 13 nbsp 5 D 2 D 2 o u t 2 displaystyle D 2 D left 2 right out2 nbsp 6 I f i lt 8 t h e n displaystyle If i lt 8 then nbsp spochatku 8 raundiv pryamogo peretvorennya 7 D 1 D 1 o u t 1 displaystyle D 1 D left 1 right out1 nbsp 8 D 3 D 3 o u t 3 displaystyle D 3 D 3 oplus out3 nbsp 9 E l s e displaystyle Else nbsp potim 8 raundiv zvorotnogo peretvorennya 10 D 3 D 3 o u t 1 displaystyle D 3 D left 3 right out1 nbsp 11 D 1 D 1 o u t 3 displaystyle D 1 D 1 oplus out3 nbsp 12 E n d i f displaystyle End if nbsp 13 Obertayemo masiv D 14 D 3 D 2 D 1 D 0 D 0 D 3 D 2 D 1 displaystyle D 3 D 2 D 1 D 0 leftarrow D 0 D 3 D 2 D 1 nbsp 15 E n d f o r displaystyle End for nbsp E funkciya red E funkciya prijmaye yak vhidni dani odne slovo danih i vikoristovuye she dva klyuchovih slova viroblyayuchi na vihodi tri slova U cij funkciyi mi vikoristovuyemo tri timchasovi zminni sho poznachayutsya L M i R dlya livoyi serednoyi ta pravoyi Spochatku mi vstanovlyuyemo v R znachennya vihidnogo slova zmishenogo na 13 bit vlivo a v M suma vihidnih sliv i pershogo klyuchovogo slova Potim mi vikoristovuyemo pershi dev yat bitiv M yak indeks do odniyeyi z 512 S blokiv yake vihodit sumishennyam S 0 i S 1 zmishuvannyam fazi i zberigayemo v L znachennya vidpovidnogo S bloku Potim pomnozhimo druge klyuchove slovo na R zberigshi znachennya v R Potim obertayemo R na 5 pozicij vlivo tak 5 starshih bitiv stayut 5 nizhnimi bitami R pislya obertannya Todi mi robimo XOR R v L a takozh pereglyadayemo p yat nizhnih bit R dlya viznachennya velichini zsuvu vid 0 do 31 i obertayemo M vlivo na cyu velichinu Dali mi obertayemo R she na 5 pozicij vlivo i robimo XOR v L U visnovku mi znovu divimosya na 5 molodshih bitiv R yak na velichinu obertannya i obertayemo L na cyu velichinu vlivo Takim chinom rezultat roboti E funkciyi 3 slova po poryadku L M R Psevdokod red 1 Vikoristovuyemo 3 timchasovi zminni L M R 2 M i n k e y 1 displaystyle M in key1 nbsp dodayemo pershim klyuchovim slovom 3 R i n 13 k e y 2 displaystyle R in lll 13 otimes key2 nbsp mnozhimo na druge klyuchove slovo yake povinno buti parnim 4 I l o w e s t 9 b i t s o f M displaystyle I lowest 9 bits of M nbsp 5 L S i displaystyle L S left i right nbsp vzyattya S bloku 6 R R 5 displaystyle R R lll 5 nbsp 7 R l o w e s t 5 b i t s o f R displaystyle R lowest 5 bits of R nbsp ci biti opisuyut velichinu podalshogo obertannya 8 M M r displaystyle M M lll r nbsp persha obertannya na zminnu velichinu 9 L L R displaystyle L L oplus R nbsp 10 R R 5 displaystyle R R lll 5 nbsp 11 L L R displaystyle L L oplus R nbsp 12 R l o w e s t 5 b i t s o f R displaystyle R lowest 5 bits of R nbsp ci biti opisuyut velichinu podalshogo obertannya 13 L L r displaystyle L L lll r nbsp Druga obertannya na zminnu velichinu 14 O u t p u t L M R displaystyle Output L M R nbsp Zvorotne peremishuvannya red Zvorotne peremishuvannya praktichno zbigayetsya z pryamim peremishuvannyam za vinyatkom togo faktu sho dani obroblyayutsya v zvorotnomu poryadku Tobto yakbi mi poyednali pryame i zvorotne peremishuvannya tak shob yih vihodi i vhodi buli b z yednani v zvorotnomu poryadku D 0 pryamogo i D 3 zvorotnogo D 1 pryamogo i D 2 zvorotnogo to ne pobachili b rezultatu peremishuvannya Yak i v pryamomu zmishuvannya tut mi tezh vikoristovuyemo odne vihidne slovo i tri cilovih Rozglyanemo chotiri pershih bajta vihidnogo slova b 0 b 1 b 2 b 3 Budemo vikoristovuvati b 0 b 2 yak indeks do S bloku S 1 a b 1 b 3 dlya S 0 Zrobimo XOR S 1 b 0 v pershe cilove slovo vidnimemo S 0 b 3 z drugogo slova vidnimemo S 1 b 2 z tretogo cilovogo sliv i potim prorobimo XOR S 0 b 1 takozh do tretogo cilovogo slova Nareshti mi povertayemo pochatkove slovo na 24 pozicij vlivo Dlya nastupnogo raundu mi obertayemo nayavni slova tak shob ninishnye pershe cilove slovo stalo nastupnim vihidnim slovom potochne druge cilove slovo stalo pershim cilovim slovom potochne tretye cilove slovo stalo drugim cilovim slovom i potochne vihidne slovo stalo tretim cilovim slovom Krim togo pered odnim z chotiroh osoblivih raundiv mi vidnimayemo odne z cilovih sliv z vihidnogo slova pered chetvertim i vosmim raundami mi vidnimayemo pershoyi cilovoyi slovo pered tretomu i somim raundami mi vidnimemo tretya cilova slovo z vihidnogo Psevdokod red 1 Provodimo 8 raundiv zvorotnogo peremishuvannya 2 F o r i 0 t o 7 d o displaystyle For i 0 to 7 do nbsp 3 Dodatkovi operaciyi zmishuvannya 4 i f i 2 o r 6 t h e n displaystyle if i 2 or 6 then nbsp 5 D 0 D 0 D 3 displaystyle D 0 D 0 D 3 nbsp vidnimayemo D 3 z vihidnogo slova 6 i f i 3 o r 7 t h e n displaystyle if i 3 or 7 then nbsp 7 D 0 D 0 D 1 displaystyle D 0 D 0 D 1 nbsp vidnimayemo D 1 z vihidnogo slova 8 Zvertayemosya do chotiroh elementiv S blokiv 9 D 1 D 1 S 1 l o w b y t e o f D 0 displaystyle D 1 D 1 oplus S1 low byte of D 0 nbsp 10 D 2 D 2 S 0 h i g h b y t e o f D 0 displaystyle D 2 D 2 S0 high byte of D 0 nbsp 11 D 3 D 3 S 1 3 r d b y t e o f D 0 displaystyle D 3 D 3 oplus S1 3rd byte of D 0 nbsp 12 D 3 D 3 S 0 2 n d b y t e o f D 0 displaystyle D 3 D 3 S0 2nd byte of D 0 nbsp 13 I obertayemo vihidne slovo vlivo 14 D 0 D 0 24 displaystyle D 0 D 0 lll 24 nbsp 15 Obertayemo masiv D 16 D 3 D 2 D 1 D 0 D 0 D 3 D 2 D 1 displaystyle D 3 D 2 D 1 D 0 leftarrow D 0 D 3 D 2 D 1 nbsp 17 E n d f o r displaystyle End for nbsp 18 Vidnimayemo klyuchove slovo 19 F o r i 0 t o 3 d o displaystyle For i 0 to 3 do nbsp 20 D i D i K 36 i displaystyle D i D i K 36 i nbsp Deshifruvannya red Proces dekoduvannya obernenij procesu koduvannya Kod deshifruvannya shozhij ale ne identichnij na kod shifruvannya Pryame peremishuvannya red 1 Pochatkove nakladennya klyucha 2 F o r i 0 t o 3 d o displaystyle For i 0 to 3 do nbsp 3 D i D i K 36 i displaystyle D left i right D i K 36 i nbsp 4 Potim provodimo 8 raundiv pryamogo peremishuvannya 5 F o r i 7 d o w n t o 0 d o displaystyle For i 7 down to 0 do nbsp 6 Obertayemo masiv D 7 D 3 D 2 D 1 D 0 D 2 D 1 D 0 D 3 displaystyle D 3 D 2 D 1 D 0 leftarrow D 2 D 1 D 0 D 3 nbsp 8 I obertayemo vihidne slovo vpravo 9 D 0 D 0 24 displaystyle D 0 D 0 ggg 24 nbsp 10 Zvertayemosya do 4 em elementam S blokiv 11 D 3 D 3 S 0 2 n d b y t e o f D 0 displaystyle D 3 D 3 oplus S0 2nd byte of D 0 nbsp 12 D 3 D 3 S 1 3 r d b y t e o f D 0 displaystyle D 3 D 3 S1 3rd byte of D 0 nbsp 13 D 2 D 2 S 0 h i g h b y t e o f D 0 displaystyle D 2 D 2 S0 high byte of D 0 nbsp 14 D 1 D 1 S 1 l o w b y t e o f D 0 displaystyle D 1 D 1 oplus S1 low byte of D 0 nbsp 15 Dodatkove zmishuvannya 16 I f i 2 o r 6 t h e n displaystyle If i 2 or 6 then nbsp 17 D 0 D 0 D 3 displaystyle D 0 D left 0 right D 3 nbsp dodayemo D 3 do vihidnogo slova 18 I f i 3 o r 7 t h e n displaystyle If i 3 or 7 then nbsp 29 D 0 D 0 D 1 displaystyle D 0 D left 0 right D 1 nbsp dodayemo D 1 do vihidnogo slova 20 E n d f o r displaystyle End for nbsp Kriptografichne yadro red 1 Provedemo 16 raundiv pri vikoristannya nakladennya klyucha 2 F o r i 15 d o w n t o 0 d o displaystyle For i 15 down to 0 do nbsp 3 Obertayemo masiv D 4 D 3 D 2 D 1 D 0 D 2 D 1 D 0 D 3 displaystyle D 3 D 2 D 1 D 0 leftarrow D 2 D 1 D 0 D 3 nbsp 5 D 0 D 0 13 displaystyle D 0 D 0 ggg 13 nbsp 6 O u t 1 o u t 2 o u t 3 E f u n c t i o n D 0 K 2 i 4 K 2 i 5 displaystyle Out1 out2 out3 E function D 0 K 2i 4 K 2i 5 nbsp 7 D 2 D 2 o u t 2 displaystyle D 2 D left 2 right out2 nbsp 8 I f i lt 8 t h e n displaystyle If i lt 8 then nbsp ostanni 8 raundiv v pryamomu poryadku 9 D 1 D 1 o u t 1 displaystyle D 1 D left 1 right out1 nbsp 10 D 3 D 3 o u t 3 displaystyle D 3 D 3 oplus out3 nbsp 11 E l s e displaystyle Else nbsp pershi 8 raundiv u zvorotnomu poryadku 12 D 3 D 3 o u t 1 displaystyle D 3 D left 3 right out1 nbsp 13 D 1 D 1 o u t 3 displaystyle D 1 D 1 oplus out3 nbsp 14 E n d i f displaystyle End if nbsp 15 E n d f o r displaystyle End for nbsp Zvorotne peremishuvannya red 1 Provodimo 8 raundiv zvorotnogo peremishuvannya 2 f o r i 7 d o w n t o 0 d o displaystyle for i 7 down to 0 do nbsp 3 Obertayemo masiv D 4 D 3 D 2 D 1 D 0 D 2 D 1 D 0 D 3 displaystyle D 3 D 2 D 1 D 0 leftarrow D 2 D 1 D 0 D 3 nbsp 5 Dodatkovi operaciyi peremmeshivaniya 6 I f i 0 o r 4 t h e n displaystyle If i 0 or 4 then nbsp 7 D 0 D 0 D 3 displaystyle D 0 D left 0 right D 3 nbsp vidnimayemo D 3 z vihidnogo slova 8 I f i 1 o r 5 t h e n displaystyle If i 1 or 5 then nbsp 9 D 0 D 0 D 1 displaystyle D 0 D left 0 right D 1 nbsp vidnimayemo D 1 z vihidnogo slova 10 Obertayemo vihidne slovo vlivo 11 D 0 D 0 24 displaystyle D 0 D 0 lll 24 nbsp 12 Zvertayemosya do chotiroh elementami S blokiv 13 D 3 D 3 S 1 h i g h b y t e o f D 0 displaystyle D 3 D 3 oplus S1 high byte of D 0 nbsp 14 D 2 D 2 S 0 3 r d b y t e o f D 0 displaystyle D 2 D 2 S0 3rd byte of D 0 nbsp 15 D 1 D 1 S 1 2 n d b y t e o f D 0 displaystyle D 1 D 1 S1 2nd byte of D 0 nbsp 16 D 1 D 1 S 0 l o w b y t e o f D 0 displaystyle D 1 D 1 oplus S0 low byte of D 0 nbsp 17 E n d f o r displaystyle End for nbsp 18 Vidnimannya pidklyucha z danih 19 F o r i 0 t o 3 d o displaystyle For i 0 to 3 do nbsp 20 D i D i K i displaystyle D i D left i right K i nbsp Osoblivosti algoritmu red S bloki red Pri stvorenni S bloku S jogo elementi generuvalisya psevdovipadkovih generatorom pislya chogo testuvalisya na rizni linijni i diffirencialnie vlastivosti Psevdovipadkovi S bloki buli zgenerovani pri nastupnih parametrah i 0 102 j 0 4 S 5 i j S H A 1 5 i c 1 c 2 v e r t c 3 displaystyle i 0 ldots 102 j 0 ldots 4 S 5i j mathrm SHA 1 5i vert c1 vert c2 vertc3 nbsp De S H A 1 j displaystyle SHA 1 j nbsp ye j e slovo na vihodi SHA 1 Tut vvazhayetsya sho i 32 bitove bez znakove cile chislo a c1 c2 c3 ye deyaki konstanti U realizaciyi IBM c1 0xb7e15162 c2 0x243f6a88 yaki ye dvijkovij zapisom drobovoyi chastini e displaystyle e nbsp i p displaystyle pi nbsp vidpovidno c3 zminyuvalosya poki ne buli pidibrani S bloki z vidpovidnimi vlastivostyami SHA 1 pracyuye nad potokami danih i vikoristovuye pryamij poryadok bajt Vlastivosti S blokiv red Diferencialni vlastivosti S blok ne povinen mistiti slova sho skladayutsya vsi 0 abo 1 Kozhni dva S bloku S 0 S 1 povinni vidriznyatisya odin vid odnogo yak minimum v 3 z 4 bajtah Tak yak vikonannya ciyeyi umovi dlya psevdovipadkovih S blokiv vkraj malojmovirno to odin z dvoh S blokiv modifikuyetsya S blok ne mistit dvoh elementiv S i S j i j displaystyle S i S j i neq j nbsp takih sho S i S j S i S j displaystyle S left i right S left j right S left i right S left j right nbsp abo S i S j displaystyle S left i right S left j right nbsp V S bloci ne isnuye dvoh par elementiv xor vidminnosti yakih rivni i dvoh par elementiv vporyadkovana riznicya yakih dorivnyuye Kozhni dva elementi S bloku povinni vidriznyatisya hocha b 4 bitamiVimoga 4 ne vikonuvalosya v realizaciyi IBM dlya AES ale bulo vipravleno vidrazu pislya finalu Bulo vidmicheno sho v S blokah prisutni nastupni elementi yaki superechat cij vimozi 3 XOR VidnimannyaS 27 S 101 S 292 S 360 0 x 117 f 1 a 43 displaystyle S 27 oplus S 101 S 292 oplus S 360 0x117f1a43 nbsp S 13 S 138 S 364 S 297 0 x 75082 c 89 displaystyle S left 13 right S 138 S 364 S 297 0x75082c89 nbsp S 27 S 292 S 101 S 360 0 x 2 b 05 b 22 a displaystyle S 27 oplus S 292 S 101 oplus S 360 0x2b05b22a nbsp S 19 S 168 S 509 S 335 0 x 0 b 7 f c 4 b d displaystyle S left 19 right S 168 S 509 S 335 0x0b7fc4bd nbsp S 27 S 360 S 101 S 292 0 x 3 a 7 a a 869 displaystyle S 27 oplus S 360 S 101 oplus S 292 0x3a7aa869 nbsp S 49 S 97 S 142 S 392 0 x 725 c a 4 b e displaystyle S left 49 right S 97 S 142 S 392 0x725ca4be nbsp S 131 S 333 S 348 S 211 0 x c 73689 f e displaystyle S left 131 right S 333 S 348 S 211 0xc73689fe nbsp S 13 S 364 S 138 S 297 0 x 86 d e d c 7 c displaystyle S left 13 right S 364 S 138 S 297 0x86dedc7c nbsp S 131 S 348 S 333 S 211 0 x 22492124 displaystyle S left 131 right S 348 S 333 S 211 0x22492124 nbsp S 19 S 509 S 168 S 335 0 x 9 c e 0 e d 93 displaystyle S left 19 right S 509 S 168 S 335 0x9ce0ed93 nbsp S 49 S 142 S 97 S 392 0 x 5 d 91 f 03 a displaystyle S left 49 right S 142 S 97 S 392 0x5d91f03a nbsp Linijni vlastivosti Spivvidnoshennya zmishennya P r x p a r i t y S x 0 1 2 displaystyle left Pr x parity S x 0 1 2 right nbsp Neobhidno shob cej visliv bulo bilshe hocha b 1 32 displaystyle 1 32 nbsp Odnobitovih zsuv j P r x S x j 0 1 2 displaystyle forall j left Pr x S x j 0 1 2 right nbsp Neobhidno shob cej visliv bulo bilshe hocha b 1 30 displaystyle 1 30 nbsp Dvuhbitovij zsuv j P r x S x j S x j 1 0 1 2 displaystyle forall j left Pr x S x j oplus S x j 1 0 1 2 right nbsp Neobhidno shob cej visliv bulo bilshe hocha b 1 30 displaystyle 1 30 nbsp Odnobitovi korelyaciyi i j P r x S x j x i 1 2 displaystyle forall i j left Pr x S x j x i 1 2 right nbsp Neobhidno minimizuvati cej visliv sered usih mozhlivih S blokiv yaki zadovolnyayut poperednim punktamRozshirennya klyucha red procedura rozshirennya klyucha rozshiryuye zadanij masiv klyuchiv k sho skladayetsya z n 32 bitovih sliv de n cile chislo vid 4 do 14 v masiv K z 40 elementiv Vihidnij klyuch ne povinen dotrimuvatisya bud yakoyi strukturi Na dodatok procedura rozshirennya klyucha garantuye taki vlastivosti klyuchovogo slova vikoristovuvanogo pri peremnozhuvanni v kriptografichnomu yadri algoritmu Dva molodshih bita klyuchovogo slova budut zavzhdi odinicyami Zhodne z klyuchovih sliv ne mistitime desyat pospil jdut 0 abo 1Opishemo algoritm rozshirennya klyucha Spochatku masiv k displaystyle k nbsp povnistyu perepisuyetsya v promizhnij masiv T displaystyle T nbsp sho skladayetsya z 15 elementiv T 0 n 1 k 0 n 1 T n n T n 1 14 0 displaystyle T 0 ldots n 1 k 0 ldots n 1 T n n T n 1 ldots 14 0 nbsp Dali cej proces povtoryuyetsya 4 razi Na kozhnij iteraciyi generuyutsya 10 sliv rozshirenogo klyucha j displaystyle j nbsp minliva vidobrazhaye potochnij nomer iteraciyi dlya pershoyi iteraciyi 0 dlya drugoyi 1 i t d Masiv T peretvoritsya za nastupnim pravilom i 0 14 T i T i T i 7 mod 15 T i 2 mod 15 l l l 3 4 i j displaystyle i 0 ldots 14 T i T i oplus T i 7 mod 15 oplus T i 2 mod 15 lll3 oplus 4i j nbsp Dali mi peremishuyemo masiv T displaystyle T nbsp za dopomogoyu 4 raundiv Merezhi Fejstel 1 go tipu Povtoryuyemo chotiri razi nastupnu operaciyu T i T i S l o w 9 b i t s o f T i 1 mod 15 9 i 0 1 14 displaystyle T i T i S low 9 bits of T i 1 mod 15 lll 9 i 0 1 ldots 14 nbsp Dali beremo desyat sliv z masivu T i vstavlyayemo yih yak nastupnih desyati sliv v masiv K she raz peremishavshi K 10 j i T 4 i mod 15 i 0 1 9 displaystyle K 10j i T 4i mod 15 i 0 1 ldots 9 nbsp Ostatochno mi probigayemo po shistnadcyati slovami vikoristovuvanimi dlya peremnozhuvannya K 5 K 7 K 35 i modifikuyemo yih dlya togo shob voni vidpovidali dvom vlastivostyam opisanim vishe Zapisuyemo dva molodshih bita K i za formuloyu j K i 3 displaystyle j K i land 3 nbsp a potim zapisuyemo zamist cih dvoh bit odinici w K i 3 displaystyle w K i lor 3 nbsp Zbirayemo masku M dlya bitivw yaki nalezhat poslidovnostej z desyati i bilshe nuliv abo odinic Primirom M l 1 displaystyle M l 1 nbsp todi i tilki todi koli w l displaystyle w l nbsp nalezhit poslidovnosti z 10 abo bilshe odnakovih elementiv Todi mi skidayemo vistavlyayemo yih v 0 znachennya tih odinic M yaki znahodyatsya v kincyah nulovih abo odinichnih poslidovnostej a takozh tih odinic yaki znahodyatsya v starshomu ta molodshomu bitah Napriklad nehaj nashe slovo viglyadaye tak w 0 3 1 13 0 12 1011 displaystyle w 0 3 1 13 0 12 1011 nbsp viraz 0 i displaystyle 0 i nbsp abo zh 1 i displaystyle 1 i nbsp oznachaye sho 0 abo 1 budut povtoreni v slovi i raziv Todi maska M bude viglyadati nastupnim chinom 0 3 1 25 0 4 displaystyle 0 3 1 25 0 4 nbsp A znachit mi skidayemo biti v 4 15 16 28 poziciyah tobto M 0 4 1 11 001 10 0 5 displaystyle M 0 4 1 11 001 10 0 5 nbsp Dali dlya vipravlennya mi vikoristovuyemo tablicyu z chotiroh sliv B Vsi elementi tablici B pidibrani tak sho dlya nih i dlya vsih yih ciklichnih zrushen vikonuyetsya vlastivist sho v nih nemaye semi pospil jdut 0 abo 1 U realizaciyi IBM vikoristovuvalasya tablicya B 0 x a 4 a 8 d 57 b 0 x 5 b 5 d 193 b 0 x c 8 a 8309 b 0 x 73 f 9 a 978 displaystyle B left 0xa4a8d57b 0x5b5d193b 0xc8a8309b 0x73f9a978 right nbsp Dali vikoristovuyutsya dva zapisanih bita j dlya viboru slova z tablici B i vikoristovuyutsya molodshi p yat bit slova K i 1 dlya obertannya jogo elementiv p B j l l l l o w e s t 5 b i t s o f K i 1 displaystyle p B j lll lowest 5 bits of K i 1 nbsp Ostatochno robitsya XOR shablonu p na vihidne slovo pri obliku maski M K i w p M displaystyle K i w oplus p land M nbsp Varto zauvazhiti to sho 2 molodshih bita M ye 0 to dva molodshih bita pidsumkovogo slova budut odinicyami a vikoristannya tablici B dozvolyaye garantuvati sho v slovi ne bude 10 pospil jdut 0 abo 1Perevagi i nedoliki algoritmu red Shifr buv kandidatom AES pislya nevelikih zmin v hodi pershogo raundu konkursu pov yazanih zi zminoyu proceduri rozshirennya klyucha MARS uspishno projshov u final U finali konkursu u MARS buv vidilenij cilij ryad nedolikiv Skladna struktura Skladna geterogenna struktura algoritmu uskladnyuvala ne lishe jogo analiz ale i realizaciyu Realizaciya Vinikali problemi pri realizaciyi shifru na platformah yaki ne pidtrimuvali operaciyi 32 bitnogo mnozhennya i obertannya na dovilne chislo bit Obmezhenist resursiv Ne mozhlivist aparatno realizuvati algoritm pri malih resursah operativnoyi abo zh energonezalezhnij pam yati Zahist MARS viyavivsya pogano zahishena vid atak za chasom vikonannya i spozhivanoyi potuzhnosti Rozshirennya klyucha MARS girshe inshih finalistiv AES pidtrimuvav rozshirennya klyucha na lotu Rozparalelyuvannya Mozhna rozparaleliti lishe neveliku chastinu algoritmu Na vsi ci nedoliki ekspertna komisiya vidilila odne velike dostoyinstvo danogo algoritmu jogo simetrichnist Vihodyachi z vidilenih nedolikiv MARS ochikuvano ne stav peremozhcem AES Vidpovid analitikam AES red Pislya ogoloshennya rezultativ konkursu AES grupa tvorciv MARS vipustila svoyu recenziyu na ves konkurs U nij buli postavleni pid sumniv kriteriyi ocinki konkursu Voni vvazhali sho golovnoyu harakteristikoyu shifru povinna buti same nadijnist i jogo stijkist napriklad do brute force atakam Krim togo voni vidpovili na kozhnu pretenziyu z boku zhuri do svogo algoritmu 1 MARS ne pidhodit dlya aparatnoyi realizaciyi Sered pretenzij do shifru buli jogo vazhka aparatna realizaciya yaka mogla sprichiniti za soboyu uskladnennya roboti Internetu a takozh vprovadzhennya velikih za svoyimi rozmirami shem Rozrobniki stverdzhuyut sho yih realizaciya zdatna pracyuvati zi shvidkistyu 1 28 Gbit sek sho ye prijnyatnim dlya internetu a vartist yih chipiv mozhe buti i visoka 13 za 12Gbit sek chip abo 1 za 1Gbit sek chip ale v majbutnomu yih cina znachno vpade 2 MARS ne pidhodit dlya realizaciyi na pristroyah z maloyu pam yattyu Dlya realizaciyi na SMART kartah ye u algoritmiv ye vsogo 128 bajt pam yati Dlya proceduri rozshirennya klyucha MARS vimagaye 512 bajt Rozrobniki vvazhayut sho nemaye prichini po yakij potribno realizovuvati AES na takomu vrazlivomu resursi z maloyu pam yattyu yak smart karti tomu sho vsi ci resursi mozhna prosto i shvidko pererobiti yih na sistemi z vidkritim klyuchem 3 MARS ne pidhodit dlya realizaciyi na PPVM MARS ne pidhodit dlya realizaciyi na platformah de ne dozvoleno obertannya zalezhat vid storonnih chinnikiv Rozrobniki vidznachayut sho cya problema ne ye fatalnoyu a vimagaye nebagato chasu dlya adaptaciyi algoritmu do ciyeyi platformi4 Rozshirennya klyucha MARS ye duzhe vazhkoyu operaciyeyu Rozrobniki stverdzhuyut sho ce smishne tverdzhennya Voni stverdzhuyut sho u nih dotrimana idealna proporciya mizh dodatkovoyu pam yattyu na klyuch i propusknoyu zdatnistyu 25 bajt na klyuch U visnovku rozrobniki privodyat svij analiz algoritmiv uchasnikiv AES za rezultatami yakogo MARS poryad z Serpent buv najkrashim kandidatom na zvannya AES 1 Analiz bezpeki algoritmu red V danij chas nemaye efektivnih atak na danij algoritm Hocha u nogo ye kilka slabkih storin 1 Pidklyuchi z velikoyu kilkistyu povtoryuvanih nuliv abo odinic mozhut privesti do efektivnih atak na MARS tak yak na yih pidstavi budut zgenerovani slabki pidklyuchi Dva molodshih bita sho vikoristovuyutsya pri peremnozhuvanni zavzhdi odinici Takim chinom zavzhdi ye dva vhidnih bita yaki nezminni v hodi procesu mnozhennya na klyuch a takozh dva vihidnih biti nezalezhnih vid klyucha Primitki red a b v Cryptography Research Arhiv originalu za 16 travnya 2006 Procitovano 17 chervnya 2012 Etapi 3 i 4 nazivayutsya kriptografichnim yadrom algoritmu MARS Cryptography Research Arhiv originalu za 23 travnya 2009 Procitovano 17 chervnya 2012 Posilannya red Specifikaciya algoritmu AES versiya Arhivovano 19 listopada 2011 u Wayback Machine Vihidni teksti MARS 1248 na movi C Oficijna storinka shifru Opis problemi zgenerovanih S blokiv Arhivovano 23 travnya 2009 u Wayback Machine Komentari tvorciv shifru Arhivovano 16 travnya 2006 u Wayback Machine Otrimano z https uk wikipedia org w index php title MARS amp oldid 38390699