Поддерживать
www.wikidata.ru-ru.nina.az
Secure Hash Algorithm 1 algoritm kriptograficheskogo heshirovaniya Opisan v RFC 3174 Dlya vhodnogo soobsheniya proizvolnoj dliny maksimum 264 1 displaystyle 2 64 1 bit chto primerno ravno 2 eksabajta algoritm generiruet 160 bitnoe 20 bajt hesh znachenie nazyvaemoe takzhe dajdzhestom soobsheniya kotoroe obychno otobrazhaetsya kak shestnadcaterichnoe chislo dlinoj v 40 cifr Ispolzuetsya vo mnogih kriptograficheskih prilozheniyah i protokolah Takzhe rekomendovan v kachestve osnovnogo dlya gosudarstvennyh uchrezhdenij v SShA Principy polozhennye v osnovu SHA 1 analogichny tem kotorye ispolzovalis Ronaldom Rivestom pri proektirovanii MD4 SHA 1Razrabotchiki NSA sovmestno s NISTSozdan 1995Opublikovan 1995Predshestvennik SHA 0 d Preemnik SHA 2Razmer hesha 160 bitChislo raundov 80Tip hesh funkciyaIstoriyaV 1993 godu NSA sovmestno s NIST razrabotali algoritm bezopasnogo heshirovaniya sejchas izvestnyj kak SHA 0 opublikovan v dokumente FIPS PUB 180 dlya standarta bezopasnogo heshirovaniya Odnako vskore NSA otozvalo dannuyu versiyu soslavshis na obnaruzhennuyu imi oshibku kotoraya tak i ne byla raskryta I zamenilo ego ispravlennoj versiej opublikovannoj v 1995 godu v dokumente FIPS PUB 180 1 Eta versiya i schitaetsya tem chto nazyvayut SHA 1 Pozzhe na konferencii v 1998 godu dva francuzskih issledovatelya predstavili ataku na algoritm SHA 0 kotoraya ne rabotala na algoritme SHA 1 Vozmozhno eto i byla oshibka otkrytaya NSA Opisanie algoritmaOdna iteraciya algoritma SHA1 SHA 1 realizuet hesh funkciyu postroennuyu na idee funkcii szhatiya Vhodami funkcii szhatiya yavlyayutsya blok soobsheniya dlinoj 512 bit i vyhod predydushego bloka soobsheniya Vyhod predstavlyaet soboj znachenie vseh hesh blokov do etogo momenta Inymi slovami hesh blok Mi displaystyle M i raven hi f Mi hi 1 displaystyle h i f M i h i 1 Hesh znacheniem vsego soobsheniya yavlyaetsya vyhod poslednego bloka Inicializaciya Ishodnoe soobshenie razbivaetsya na bloki po 512 bit v kazhdom Poslednij blok dopolnyaetsya do dliny kratnoj 512 bit Snachala dobavlyaetsya 1 bit a potom nuli chtoby dlina bloka stala ravnoj 512 64 448 bit V ostavshiesya 64 bita zapisyvaetsya dlina ishodnogo soobsheniya v bitah v big endian formate Esli poslednij blok imeet dlinu bolee 447 no menee 512 bit to dopolnenie vypolnyaetsya sleduyushim obrazom snachala dobavlyaetsya 1 bit zatem nuli vplot do konca 512 bitnogo bloka posle etogo sozdaetsya eshyo odin 512 bitnyj blok kotoryj zapolnyaetsya vplot do 448 bit nulyami posle chego v ostavshiesya 64 bita zapisyvaetsya dlina ishodnogo soobsheniya v bitah v big endian formate Dopolnenie poslednego bloka osushestvlyaetsya vsegda dazhe esli soobshenie uzhe imeet nuzhnuyu dlinu Inicializiruyutsya pyat 32 bitovyh peremennyh A 0x67452301 B 0xEFCDAB89 C 0x98BADCFE D 0x10325476 E 0xC3D2E1F0 Opredelyayutsya chetyre nelinejnye operacii i chetyre konstanty Ft m l k m l m k displaystyle F t m l k m wedge l vee neg m wedge k Kt displaystyle K t 0x5A827999 0 t 19Ft m l k m l k displaystyle F t m l k m oplus l oplus k Kt displaystyle K t 0x6ED9EBA1 20 t 39Ft m l k m l m k l k displaystyle F t m l k m wedge l vee m wedge k vee l wedge k Kt displaystyle K t 0x8F1BBCDC 40 t 59Ft m l k m l k displaystyle F t m l k m oplus l oplus k Kt displaystyle K t 0xCA62C1D6 60 t 79Glavnyj cikl Glavnyj cikl iterativno obrabatyvaet kazhdyj 512 bitnyj blok V nachale kazhdogo cikla vvodyatsya peremennye a b c d e kotorye inicializiruyutsya znacheniyami A B C D E sootvetstvenno Blok soobsheniya preobrazuetsya iz 16 32 bitovyh slov Mi displaystyle M i v 80 32 bitovyh slov Wj displaystyle W j po sleduyushemu pravilu Wt Mt displaystyle W t M t pri 0 t 15 Wt displaystyle W t Wt displaystyle W t 3 displaystyle oplus Wt displaystyle W t 8 displaystyle oplus Wt displaystyle W t 14 displaystyle oplus Wt displaystyle W t 16 lt lt 1 pri 16 t 79 gde lt lt eto ciklicheskij sdvig vlevo dlya t displaystyle t ot 0 do 79 temp a lt lt 5 Ft displaystyle F t b c d e Wt Kt displaystyle W t K t e d d c c b lt lt 30 b a a temp gde slozhenie bezznakovyh 32 bitnyh celyh chisel s otbrasyvaniem izbytka 33 go bita Posle etogo k A B C D E pribavlyayutsya znacheniya a b c d e sootvetstvenno Nachinaetsya sleduyushaya iteraciya Itogovym znacheniem budet obedinenie pyati 32 bitovyh slov A B C D E v odno 160 bitnoe hesh znachenie Psevdokod SHA 1 Psevdokod algoritma SHA 1 sleduyushij Zamechanie Vse ispolzuemye peremennye 32 bita Inicializaciya peremennyh h0 0x67452301 h1 0xEFCDAB89 h2 0x98BADCFE h3 0x10325476 h4 0xC3D2E1F0 Predvaritelnaya obrabotka Prisoedinyaem bit 1 k soobsheniyu Prisoedinyaem k bitov 0 gde k naimenshee chislo 0 takoe chto dlina poluchivshegosya soobsheniya v bitah sravnima po modulyu 512 s 448 length mod 512 448 Dobavlyaem dlinu ishodnogo soobsheniya do predvaritelnoj obrabotki kak celoe 64 bitnoe Big endian chislo v bitah V processe soobshenie razbivaetsya posledovatelno po 512 bit for perebiraem vse takie chasti razbivaem etot kusok na 16 chastej slov po 32 bita big endian w i 0 lt i lt 15 16 slov po 32 bita dopolnyayutsya do 80 32 bitovyh slov for i from 16 to 79 w i w i 3 xor w i 8 xor w i 14 xor w i 16 ciklicheskij sdvig vlevo 1 Inicializaciya hesh znachenij etoj chasti a h0 b h1 c h2 d h3 e h4 Osnovnoj cikl for i from 0 to 79 if 0 i 19 then f b and c or not b and d k 0x5A827999 else if 20 i 39 then f b xor c xor d k 0x6ED9EBA1 else if 40 i 59 then f b and c or b and d or c and d k 0x8F1BBCDC else if 60 i 79 then f b xor c xor d k 0xCA62C1D6 temp a leftrotate 5 f e k w i e d d c c b leftrotate 30 b a a temp Dobavlyaem hesh znachenie etoj chasti k rezultatu h0 h0 a h1 h1 b h2 h2 c h3 h3 d h4 h4 e Itogovoe hesh znachenie h0 h1 h2 h3 h4 dolzhny byt preobrazovany k big endian digest hash h0 append h1 append h2 append h3 append h4 Vmesto originalnoj formulirovki FIPS PUB 180 1 privedeny sleduyushie ekvivalentnye vyrazheniya i mogut byt ispolzovany na kompyutere f v glavnom cikle 0 i 19 f d xor b and c xor d alternativa 1 0 i 19 f b and c xor not b and d alternativa 2 0 i 19 f b and c not b and d alternativa 3 40 i 59 f b and c or d and b or c alternativa 1 40 i 59 f b and c or d and b xor c alternativa 2 40 i 59 f b and c d and b xor c alternativa 3 40 i 59 f b and c xor b and d xor c and d alternativa 4 PrimeryNizhe privedeny primery heshej SHA 1 Dlya vseh soobshenij podrazumevaetsya ispolzovanie kodirovki UTF 8 Hesh pangrammy na russkom SHA 1 V chashah yuga zhil by citrus Da no falshivyj ekzemplyar 9e32295f 8225803b b6d5fdfc c0674616 a4413c1b Hesh pangrammy na anglijskom SHA 1 The quick brown fox jumps over the lazy dog 2fd4e1c6 7a2d28fc ed849ee1 bb76e739 1b93eb12 SHA 1 sha d8f45903 20e1343a 915b6394 170650a8 f35d6926 Nebolshoe izmenenie ishodnogo teksta odna bukva v verhnem registre privodit k silnomu izmeneniyu samogo hesha Eto proishodit vsledstvie lavinnogo effekta SHA 1 Sha ba79baeb 9f10896a 46ae7471 5271b7f5 86e74640 Dazhe dlya pustoj stroki vychislyaetsya netrivialnoe hesh znachenie SHA 1 da39a3ee 5e6b4b0d 3255bfef 95601890 afd80709KriptoanalizKriptoanaliz hesh funkcij napravlen na issledovanie uyazvimosti dlya razlichnogo vida atak Osnovnye iz nih nahozhdenie kollizij situaciya kogda dvum razlichnym ishodnym soobsheniyam sootvetstvuet odno i to zhe hesh znachenie nahozhdenie proobraza ishodnogo soobsheniya po ego heshu Pri reshenii metodom gruboj sily pervaya zadacha trebuet v srednem 2160 2 280 operacij esli ispolzovat ataku Dnej rozhdeniya vtoraya trebuet 2160 operacij Ot ustojchivosti hesh funkcii k nahozhdeniyu kollizij zavisit bezopasnost elektronnoj cifrovoj podpisi s ispolzovaniem dannogo hesh algoritma Ot ustojchivosti k nahozhdeniyu proobraza zavisit bezopasnost hraneniya heshej parolej dlya celej autentifikacii V yanvare 2005 goda Vinsent Rejmen i Elisabeth Oswald opublikovali soobshenie ob atake na usechyonnuyu versiyu SHA 1 53 raunda vmesto 80 kotoraya pozvolyaet nahodit kollizii menshe chem za 280 operacij V fevrale 2005 goda i Xiaoyun Wang Yiqun Lisa Yin Hongbo Yu predstavili ataku na polnocennyj SHA 1 kotoraya trebuet menee 269 operacij O metode avtory pishut My predstavlyaem nabor strategij i sootvetstvuyushih metodik kotorye mogut byt ispolzovany dlya ustraneniya nekotoryh vazhnyh prepyatstvij v poiske kollizij v SHA 1 Snachala my ishem blizkie k kollizii differencialnye puti kotorye imeyut nebolshoj ves Hamminga v vektore pomeh gde kazhdyj bit predstavlyaet 6 shagovuyu lokalnuyu kolliziyu Potom my sootvetstvuyushim obrazom korrektiruem differencialnyj put iz pervogo etapa do drugogo priemlemogo differencialnogo puti chtoby izbezhat nepriemlemyh posledovatelnyh i usechennyh kollizij V konce koncov my preobrazuem dva odnoblokovyh blizkih k kollizii differencialnyh puti v odin dvuhblokovyj kollizionnyj put s udvoennoj vychislitelnoj slozhnostyu Originalnyj tekst angl We introduce a set of strategies and corresponding techniques that can be used to remove some major obstacles in collision search for SHA 1 Firstly we look for a near collision differential path which has low Hamming weight in the disturbance vector where each 1 bit represents a 6 step local collision Secondly we suitably adjust the differential path in the first round to another possible differential path so as to avoid impossible consecutive local collisions and truncated local collisions Thirdly we transform two one block near collision differential paths into a twoblock collision differential path with twice the search complexity Takzhe oni zayavlyayut V chastnosti nash analiz osnovan na originalnoj differencialnoj atake na SHA 0 near collision atake na SHA 0 multiblokovoj metodike a takzhe metodike modifikacii ishodnogo soobsheniya ispolzovannyh pri atakah poiska kollizij na HAVAL 128 MD4 RIPEMD i MD5 Originalnyj tekst angl In particular our analysis is built upon the original differential attack on SHA 0 the near collision attack on SHA 0 the multi block collision techniques as well as the message modification techniques used in the collision search attacks on HAVAL 128 MD4 RIPEMD and MD5 Statya s opisaniem algoritma byla opublikovana v avguste 2005 goda na konferencii V etoj zhe state avtory opublikovali ataku na usechyonnyj SHA 1 58 raundov kotoraya pozvolyaet nahodit kollizii za 233 operacij V avguste 2005 goda na 2005 eti zhe specialisty predstavili uluchshennuyu versiyu ataki na polnocennyj SHA 1 s vychislitelnoj slozhnostyu v 263 operacij V dekabre 2007 goda detali etogo uluchsheniya byli provereny Martinom Kohranom Kristof de Kaner i Kristian Rehberg pozzhe predstavili usovershenstvovannuyu versiyu ataki na SHA 1 za chto byli udostoeny nagrady za luchshuyu statyu na konferencii 2006 Imi byla predstavlena dvuhblokovaya kolliziya na 64 raundovyj algoritm s vychislitelnoj slozhnostyu okolo 235 operacij Sushestvuet masshtabnyj issledovatelskij proekt startovavshij v tehnologicheskom universitete avstrijskogo goroda Grac kotoryj ispolzuet kompyutery soedinennye cherez Internet dlya provedeniya issledovanij v oblasti kriptoanaliza Vy mozhete pouchastvovat v proekte zagruziv i zapustiv besplatnuyu programmu na svoem kompyutere glava issledovatelskogo otdela v laboratorii RSA predskazyvaet chto pervaya ataka po nahozhdeniyu proobraza budet uspeshno osushestvlena v blizhajshie 5 10 let Vvidu togo chto teoreticheskie ataki na SHA 1 okazalis uspeshnymi NIST planiruet polnostyu otkazatsya ot ispolzovaniya SHA 1 v cifrovyh podpisyah Iz za blochnoj i iterativnoj struktury algoritmov a takzhe otsutstviya specialnoj obrabotki v konce heshirovaniya vse hesh funkcii semejstva SHA uyazvimy dlya atak udlineniem soobsheniya i kolliziyam pri chastichnom heshirovanii soobsheniya Eti ataki pozvolyayut poddelyvat soobsheniya podpisannye tolko heshem SHA message key displaystyle SHA message key ili SHA key message displaystyle SHA key message putyom udlineniya soobsheniya i pereschyotu hesha bez znaniya znacheniya klyucha Prostejshim ispravleniem pozvolyayushim zashititsya ot etih atak yavlyaetsya dvojnoe heshirovanie SHAd message SHA SHA 0b message displaystyle SHA d message SHA SHA 0 b message 0b displaystyle 0 b blok nulej toj zhe dliny chto i blok hesh funkcii 2 noyabrya 2007 goda NIST anonsirovalo konkurs po razrabotke novogo algoritma SHA 3 kotoryj prodlilsya do 2012 goda SHAppening 8 oktyabrya 2015 Marc Stevens Pierre Karpman i Thomas Peyrin opublikovali ataku na funkciyu szhatiya algoritma SHA 1 kotoraya trebuet vsego 257 vychislenij Realnyj vzlom SHAttered nahozhdenie kollizij 23 fevralya 2017 goda specialisty iz Google i CWI obyavili o prakticheskom vzlome algoritma opublikovav 2 PDF fajla s odinakovoj kontrolnoj summoj SHA 1 Eto potrebovalo perebora 9 1018 displaystyle 9 times 10 18 variantov chto zanyalo by 110 let na 1 GPU Sravnenie SHA 1 s drugimi algoritmamiSravnenie s MD5 I MD5 i SHA 1 yavlyayutsya po suti uluchshennymi prodolzheniyami MD4 Shodstva Chetyre etapa Kazhdoe dejstvie pribavlyaetsya k ranee poluchennomu rezultatu Razmer bloka obrabotki ravnyj 512 bit Oba algoritma vypolnyayut slozhenie po modulyu 232 oni rasschitany na 32 bitnuyu arhitekturu Razlichiya V SHA 1 na chetvyortom etape ispolzuetsya ta zhe funkciya f chto i na vtorom etape V MD5 v kazhdom dejstvii ispolzuetsya unikalnaya pribavlyaemaya konstanta V SHA 1 konstanty ispolzuyutsya povtorno dlya kazhdoj iz chetyryoh grupp V SHA 1 dobavlena pyataya peremennaya SHA 1 ispolzuet ciklicheskij kod ispravleniya oshibok V MD5 chetyre sdviga ispolzuemye na kazhdom etape otlichayutsya ot znachenij ispolzuemyh na predydushih etapah V SHA na kazhdom etape ispolzuetsya postoyannoe znachenie sdviga V MD5 chetyre razlichnyh elementarnyh logicheskih funkcii v SHA 1 tri V MD5 dlina dajdzhesta sostavlyaet 128 bit v SHA 1 160 bit SHA 1 soderzhit bolshe raundov 80 vmesto 64 i vypolnyaetsya na 160 bitnom bufere po sravneniyu so 128 bitnym buferom MD5 Takim obrazom SHA 1 dolzhen vypolnyatsya priblizitelno na 25 medlennee chem MD5 na toj zhe apparature Bryus Shnajer delaet sleduyushij vyvod SHA 1 eto MD4 s dobavleniem rasshiryayushego preobrazovaniya dopolnitelnogo etapa i uluchshennym lavinnym effektom MD5 eto MD4 s uluchshennym bitovym heshirovaniem dopolnitelnym etapom i uluchshennym lavinnym effektom Sravnenie s GOST R 34 11 94 Ryad otlichitelnyh osobennostej GOST R 34 11 94 Pri obrabotke blokov ispolzuyutsya preobrazovaniya po algoritmu GOST 28147 89 Obrabatyvaetsya blok dlinoj 256 bit i vyhodnoe znachenie tozhe imeet dlinu 256 bit Primeneny mery borby protiv poiska kollizij osnovannom na nepolnote poslednego bloka Obrabotka blokov proishodit po algoritmu shifrovaniya GOST 28147 89 kotoryj soderzhit preobrazovaniya na S blokah chto sushestvenno oslozhnyaet primenenie metoda differencialnogo kriptoanaliza k poisku kollizij algoritma GOST R 34 11 94 Eto sushestvennyj plyus po sravneniyu s SHA 1 Teoreticheskaya kriptostojkost GOST R 34 11 94 ravna 2128 chto vo mnogo raz prevoshodit 280dlya SHA 1 Sravnenie s drugimi SHA V tablice promezhutochnyj razmer hesha oznachaet razmer vnutrennej hesh summy posle kazhdoj iteracii Variacii algoritma Razmer vyhodnogo hesha bit Promezhutochnyj razmer hesha bit Razmer bloka bit Maksimalnaya dlina vhodnogo soobsheniya bit Razmer slova bit Kolichestvo raundov Ispolzuemye operacii Najdennye kolliziiSHA 0 160 160 512 264 1 32 80 and or xor rotl EstSHA 1 160 160 512 264 1 32 80 and or xor rotl 252 operacijSHA 2 SHA 256 224 256 224 256 512 264 1 32 64 and or xor shr rotr NetSHA 512 384 512 384 512 1024 2128 1 64 80 and or xor shr rotr NetIspolzovanieHesh funkcii ispolzuyutsya v sistemah kontrolya versij sistemah elektronnoj podpisi a takzhe dlya postroeniya kodov autentifikacii SHA 1 yavlyaetsya naibolee rasprostranennym iz vsego semejstva angl i primenyaetsya v razlichnyh shiroko rasprostranennyh kriptograficheskih prilozheniyah i algoritmah SHA 1 ispolzuetsya v sleduyushih prilozheniyah S MIME dajdzhesty soobshenij SSL dajdzhesty soobshenij IPSec dlya algoritma proverki celostnosti v soedinenii tochka tochka SSH dlya proverki celostnosti peredannyh dannyh PGP dlya sozdaniya elektronnoj cifrovoj podpisi Git dlya identifikacii kazhdogo obekta po SHA 1 heshu ot hranimoj v obekte informacii Mercurial dlya identifikacii revizij BitTorrent dlya proverki celostnosti zagruzhaemyh dannyh SHA 1 yavlyaetsya osnovoj blochnogo shifra SHACAL Otkaz ot ispolzovaniya Kompaniya Google davno vyrazila svoyo nedoverie SHA 1 osobenno dlya ispolzovaniya etoj funkcii dlya podpisi sertifikatov TLS Eshyo v 2014 godu vskore posle publikacii raboty Marka Stivensa gruppa razrabotchikov Chrome obyavila o postepennom otkaze ot ispolzovaniya SHA 1 S 25 aprelya 2016 goda Yandeks Pochta perestala podderzhivat starye pochtovye programmy ispolzuyushie SHA 1 PrimechaniyaFinding Collisions in the Full SHA 1 angl Statya kitajskih issledovatelej o vzlome SHA 1 Arhivirovano iz originala 23 avgusta 2011 goda Finding SHA 1 Characteristics General Results and Applications angl Data obrasheniya 4 oktyabrya 2017 26 iyulya 2008 goda SHA 1 Collision Search Graz angl Issledovatelskij proekt tehnologicheskogo universiteta Graca 7 noyabrya 2008 goda NIST Comments on Cryptanalytic Attacks on SHA 1 angl Oficialnyj kommentarij NIST po povodu atak na SHA 1 Arhivirovano iz originala 13 oktyabrya 2012 goda Niels Ferguson Bruce Schneier and Tadayoshi Kohno Cryptography Engineering angl Arhivirovano iz originala 13 oktyabrya 2012 goda John Wiley amp Sons 2010 ISBN 978 0 470 47424 2 NIST Hash Competition angl Konkurs na razrabotku SHA 3 Arhivirovano iz originala 13 oktyabrya 2012 goda Pervyj sposob generacii kollizij dlya SHA 1 neopr Data obrasheniya 9 marta 2017 10 marta 2017 goda Obnovlenie pochtovyh programm Pochta Yandeks Pomosh neopr yandex ru Data obrasheniya 7 aprelya 2016 20 aprelya 2016 goda LiteraturaShnajer B Prikladnaya kriptografiya Protokoly algoritmy ishodnye teksty na yazyke Si Applied Cryptography Protocols Algorithms and Source Code in C M Triumf 2002 816 s 3000 ekz ISBN 5 89392 055 4 Nils Fergyuson Bryus Shnajer Prakticheskaya kriptografiya Practical Cryptography Designing and Implementing Secure Cryptographic Systems M Dialektika 2004 432 s 3000 ekz ISBN 5 8459 0733 0 ISBN 0 4712 2357 3 SsylkiRFC 3174 angl Obzor SHA 1 ot Konsorciuma Vsemirnoj pautiny ot 4 marta 2005 na Wayback Machine angl Vzlom SHA 1 ot 5 maya 2017 na Wayback Machine angl Doklad o vzlome SHA1 angl Bryus Shnajer o vzlome SHA Arhivirovano 1 dekabrya 2012 goda angl Posledstviya udachnyh atak na SHA 1 ot 26 dekabrya 2008 na Wayback Machine angl
Вершина