SHA-2 - SHA-2

[Hash algoritmlari]
Tushunchalar
xash funktsiyalari  · SHA  · DSA
Asosiy standartlar
SHA-0  · SHA-1  · SHA-2  · SHA-3
SHA-2
Umumiy
DizaynerlarMilliy xavfsizlik agentligi
Birinchi marta nashr etilgan2001
Seriya(SHA-0 ), SHA-1, SHA-2, SHA-3
SertifikatlashFIPS PUB 180-4, CRYPTREC, Nessi
Tafsilot
Ovqat hazm qilish o'lchamlari224, 256, 384 yoki 512 bit
TuzilishiMerkle-Damgård qurilishi bilan Devies – Meyerni siqish funktsiyasi
Davralar64 yoki 80
Eng yaxshi jamoatchilik kriptanaliz
2011 yilgi hujum to'xtaydi preimage qarshilik SHA-512 80 turidan 57tasi, SHA-256 uchun 64 turdan 52tasi.[1]

SHA-256 ning 46 ta turiga qarshi psevdo-to'qnashuv hujumi.[2]

SHA-256 va SHA-512 moyil uzunlikni kengaytirish hujumlari. Shtatning yashirin qismini taxmin qilib, SHA-224 va SHA-384-ga uzunliklarni uzaytirish hujumlari 2-ehtimollik bilan muvaffaqiyatli bo'ladi−(256−224) = 2−32 > 2−224 va 2−(512−384) = 2−128 > 2−384 navbati bilan.

SHA-2 (Xashsiz algoritm 2) to'plamidir kriptografik xash funktsiyalari Amerika Qo'shma Shtatlari tomonidan ishlab chiqilgan Milliy xavfsizlik agentligi (NSA) va birinchi marta 2001 yilda nashr etilgan.[3][4] Ular yordamida qurilgan Merkle-Damgård tuzilishi, a bir tomonlama siqish funktsiyasi o'zi yordamida qurilgan Devies-Meyer tuzilishi ixtisoslashgan blok shifr.

SHA-2 avvalgisidan sezilarli o'zgarishlarni o'z ichiga oladi, SHA-1. SHA-2 oilasi oltita xash funktsiyadan iborat hazm qilish (xash qiymatlari) 224, 256, 384 yoki 512 bit: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256. SHA-256 va SHA-512 mos ravishda 32 va 64 bitli so'zlar bilan hisoblangan yangi xash funktsiyalari. Ular har xil siljish miqdorlari va qo'shimchalar doimiylaridan foydalanadilar, ammo ularning tuzilmalari deyarli bir xil, faqat turlar soni bilan farq qiladi. SHA-224 va SHA-384 SHA-256 va SHA-512 navbati bilan qisqartirilgan bo'lib, ular har xil boshlang'ich qiymatlari bilan hisoblab chiqilgan. SHA-512/224 va SHA-512/256 ham SHA-512 ning qisqartirilgan versiyasidir, ammo dastlabki qiymatlar Federal axborotni qayta ishlash standartlari (FIPS) PUB 180-4.

SHA-2 birinchi tomonidan nashr etilgan Milliy standartlar va texnologiyalar instituti (NIST) AQSh federal standarti (FIPS) sifatida. Algoritmlarning SHA-2 oilasi AQShning 6829355-sonli patentida patentlangan.[5] Qo'shma Shtatlar patentni a royalti bepul litsenziya.[6]

Ayni paytda, eng yaxshi ommaviy hujumlar buzilmoqda preimage qarshilik SHA-256 64 turidan 52 tasiga yoki SHA-512 ning 80 turidan 57tasiga va to'qnashuv qarshilik SHA-256 ning 64 turidan 46 tasiga.[1][2]

Hash standarti

SHA-2 oilaviy siqishni funktsiyasida bitta takrorlash. Moviy komponentlar quyidagi operatsiyalarni bajaradi:
    
    
    
    
Bittadan aylantirish SHA-512 uchun har xil konstantalardan foydalanadi. Berilgan raqamlar SHA-256 uchun.
Qizil qo'shimcha modul 232 SHA-256 yoki 2 uchun64 SHA-512 uchun.

FIPS PUB 180-2 nashr etilishi bilan NIST SHA oilasida uchta qo'shimcha xash funktsiyasini qo'shdi. Algoritmlar SHA-2 deb nomlanadi, ularning hazm uzunligi (bit bilan) nomi bilan ataladi: SHA-256, SHA-384 va SHA-512.

Algoritmlar birinchi marta 2001 yilda FIPS PUB 180-2 loyihasida e'lon qilingan, o'sha paytda ommaviy ko'rib chiqish va sharhlar qabul qilingan. 2002 yil avgust oyida FIPS PUB 180-2 yangi bo'ldi Xavfsiz hash standarti, 1995 yil aprel oyida chiqarilgan FIPS PUB 180-1 o'rnini bosdi. Yangilangan standart SHA-1 oilasining ichki ishlarini tavsiflovchi texnik yozuvlari bilan original SHA-1 algoritmini o'z ichiga oldi.[4]

2004 yil fevral oyida, FIPS PUB 180-2 uchun ikkita tugmachaning kalit uzunligiga mos keladigan SHA-224 qo'shimcha variantini ko'rsatib, o'zgartirish to'g'risida xabar e'lon qilindi. Uch karra DES.[7] 2008 yil oktyabr oyida standart FIPS PUB 180-3-da yangilandi, shu jumladan o'zgartirish to'g'risidagi xabarnomadan SHA-224, ammo aks holda standartga hech qanday o'zgartirish kiritilmadi. Standartni yangilashning asosiy motivatsiyasi xash algoritmlari to'g'risidagi xavfsizlik ma'lumotlarini va ulardan foydalanish bo'yicha tavsiyalarni 800-107 va 800-57 Maxsus nashrlariga ko'chirish edi.[8][9][10] Sinovlarning batafsil ma'lumotlari va xabarlarni tarqatish misollari standartdan olib tashlandi va alohida hujjatlar sifatida taqdim etildi.[11]

2011 yil yanvar oyida NIST SP800-131A-ni e'lon qildi, unda 2013 yil oxirigacha federal hukumatdan foydalanish uchun ruxsat berilgan 80 bitli xavfsizlikning (SHA-1 tomonidan taqdim etilgan) minimal qiymatidan 112 bitli xavfsizlikka o'tishni belgilab qo'ydi. SHA-2 bo'yicha) minimal talab (2014 yildan boshlab) va tavsiya etiladi xavfsizlik darajasi (2011 yilda nashr etilgan kundan boshlab).[12]

2012 yil mart oyida standart FIPS PUB 180-4-da yangilandi va SHA-512/224 va SHA-512/256 xash funktsiyalarini qo'shdi va SHA-512 ning qisqartirilgan versiyalari uchun dastlabki qiymatlarni yaratish usulini tavsifladi. Bundan tashqari, cheklov to'ldirish xashni hisoblashdan oldin kirish ma'lumotlari olib tashlandi, bu xash ma'lumotlarini tarkibni yaratish bilan bir vaqtda hisoblash imkonini berdi, masalan, real vaqtda video yoki audio tasma. Oxirgi ma'lumotlar blokini to'ldirish xash chiqishidan oldin sodir bo'lishi kerak.[13]

2012 yil iyul oyida NIST kriptografik kalitlarni boshqarish bo'yicha ko'rsatma beradigan SP800-57-ni qayta ko'rib chiqdi. Nashr 2013 yildan keyin xash xavfsizligi 112 bitdan past bo'lgan raqamli imzolarni yaratishga ruxsat bermadi. 2007 yildagi avvalgi tahrirda 2010 yilning oxiri belgilangan edi.[10] 2012 yil avgust oyida NIST SP800-107-ni xuddi shu tarzda qayta ko'rib chiqdi.[9]

The NIST xash funktsiyalari raqobati yangi xash funktsiyasini tanladi, SHA-3, 2012 yilda.[14] SHA-3 algoritmi SHA-2 dan kelib chiqmagan.

Ilovalar

SHA-2 xash funktsiyasi ba'zi keng qo'llaniladigan xavfsizlik dasturlari va protokollarida, shu jumladan TLS va SSL, PGP, SSH, S / MIME va IPsec.

SHA-256 autentifikatsiya jarayonida qatnashadi Debian dasturiy ta'minot to'plamlari[15] va DKIM xabarlarni imzolash standarti; SHA-512 - bu arxiv videoni tasdiqlash tizimining bir qismi Ruanda genotsidining xalqaro jinoyat ishlari bo'yicha tribunali.[16] SHA-256 va SHA-512 ni ishlatish uchun taklif qilingan DNSSEC.[17] Unix va Linux sotuvchilari parolni xavfsiz ravishda xeshlash uchun 256 va 512 bitli SHA-2 dan foydalanishga o'tmoqdalar.[18]

Bir nechta kripto-valyutalar kabi Bitcoin bitimlarni tekshirish va hisoblash uchun SHA-256 dan foydalaning ishning isboti[19] yoki qoziq dalili.[20] Ning ko'tarilishi ASIC SHA-2 tezlashtiruvchi chiplari foydalanishga olib keldi skript - ishni tasdiqlovchi sxemalar.

SHA-1 va SHA-2 bu Xash algoritmlarining xavfsizligi aniq foydalanish uchun qonun tomonidan talab qilingan AQSh hukumati ilovalar, shu jumladan boshqa maxfiy ma'lumotni himoya qilish uchun boshqa kriptografik algoritmlar va protokollar ichida foydalanish. FIPS PUB 180-1 shuningdek SHA-1ni xususiy va tijorat tashkilotlari tomonidan qabul qilinishi va ishlatilishini rag'batlantirdi. SHA-1 hukumatning ko'pgina foydalanishi uchun nafaqaga chiqqan; AQSh Milliy Standartlar va Texnologiyalar Instituti «Federal idoralar kerak to'qnashuv qarshiligini talab qiladigan amaliy dasturlar uchun SHA-1dan foydalanishni to'xtating va 2010 yildan keyin ushbu dasturlar uchun SHA-2 xash funktsiyalaridan foydalanish kerak "(diqqat asl nusxada).[21] NISTning AQSh davlat idoralari 2010 yildan keyin SHA-1dan foydalanishni to'xtatishi kerakligi to'g'risidagi ko'rsatmasi[22] SHA-1 dan uzoqlashishni tezlashtirishga umid qilingan edi.

SHA-1 ga nisbatan xavfsizligi yaxshiroq bo'lishiga qaramay, SHA-2 funktsiyalari dastlab tezda qabul qilinmadi. Buning sabablari Windows XP SP2 yoki undan yuqori versiyalarida ishlaydigan tizimlarda SHA-2-ni qo'llab-quvvatlamaslikni o'z ichiga olishi mumkin[23] va SHA-1 to'qnashuvlari hali topilmagandan beri sezilgan shoshilinchlikning etishmasligi. The Gugl xrom jamoasi o'z veb-brauzerini 2014 yil oxiri va 2015 yil boshidan SHA-1 ga bog'liq bo'lgan TLS sertifikatlarini hurmat qilishni asta-sekin to'xtatishni rejalashtirganligini e'lon qildi.[24][25][26] Xuddi shunday, Microsoft ham e'lon qildi[27] bu Internet Explorer va Yon 2017 yil fevralidan boshlab ommaviy SHA-1 imzolangan TLS sertifikatlarini taqdirlashni to'xtatadi. Mozilla 2016 yil yanvar oyining boshida SHA-1-ni o'chirib qo'ydi, lekin uni vaqtincha qayta yoqish kerak edi Firefox yangilash, ba'zi router modellarining veb-ga asoslangan foydalanuvchi interfeyslari bilan bog'liq muammolardan so'ng va xavfsizlik vositalari.[28]

Kriptanaliz va tekshirish

Buning uchun xash funktsiyasi uchun L soni bitlar ichida Xabar hazm qilish, berilgan xabar dayjestiga mos keladigan xabarni topish har doim a yordamida amalga oshirilishi mumkin qo'pol kuch 2 da qidirishL baholash. Bunga a deyiladi oldindan hujum va qarab amaliy bo'lishi mumkin yoki bo'lmasligi mumkin L va ma'lum hisoblash muhiti. Ikkinchi mezon, bir xil xabarlar dayjestini ishlab chiqaradigan ikki xil xabarni topish, a to'qnashuv, o'rtacha 2 ta talab qilinadiL/2 a yordamida baholash tug'ilgan kungi hujum.

Kriptografik xeshlardan foydalanadigan ba'zi bir dasturlarga, masalan, parolni saqlashga faqat minimal ta'sir ko'rsatiladi to'qnashuv hujumi. Muayyan hisob uchun ishlaydigan parolni yaratish uchun oldindan hujum, shuningdek asl parolning xashiga kirish kerak (odatda soya fayl) ahamiyatsiz bo'lishi mumkin yoki bo'lmasligi mumkin. Parolni shifrlashni bekor qilish (masalan, foydalanuvchi hisob raqamini boshqa joyda sinab ko'rish uchun parolni olish) hujumlar orqali amalga oshirilmaydi. (Ammo, hatto xavfsiz parol bilan aralashish ham qo'pol hujumlarga yo'l qo'ymaydi zaif parollar.)

Hujjat imzolangan taqdirda, tajovuzkor mavjud bo'lgan hujjatdan shunchaki imzo soxtalashtira olmadi - tajovuzkor bitta zararli va bittasi zarar etkazadigan hujjat juftligini yaratishi va shaxsiy kalit egasini zararsiz hujjatni imzolashi kerak. Bu mumkin bo'lgan amaliy holatlar mavjud; 2008 yil oxirigacha qalbaki yaratish mumkin edi SSL dan foydalangan holda sertifikatlar MD5 keng tarqalgan veb-brauzerlar tomonidan qabul qilinadigan to'qnashuv.[29]

SHA-3 tanlovi davomida kriptografik xash-tahlilga bo'lgan qiziqishning ortishi SHA-2 oilasiga bir nechta yangi hujumlarni keltirib chiqardi, ularning eng yaxshisi quyidagi jadvalda keltirilgan. Faqat to'qnashuv hujumlari amaliy murakkablikka ega; hujumlarning hech biri to'liq dumaloq xesh funktsiyasiga taalluqli emas.

Da FSE 2012 yil, tadqiqotchilar Sony psevdo-to'qnashuv hujumlari SHA-256 da 52 ta turga va SHA-512 da 57 ta turga asoslangan holda kengaytirilishi mumkinligi haqida taqdimot qildi. velosiped psevdo-preimage hujumi.[30]

Nashr etilganYilHujum usuliHujumVariantDavralarMurakkablik
Yangi to'qnashuv hujumlari
24 bosqichli SHA-2 ga qadar
[31]
2008DeterministikTo'qnashuvSHA-25624/64228.5
SHA-51224/80232.5
Bosqich bilan qisqartirilgan SHA-2 uchun oldingi rasmlar[32]2009Uchrashuv o'rtadaPreimageSHA-25642/642251.7
43/642254.9
SHA-51242/802502.3
46/802511.5
Ilg'or o'rtada uchrashish
oldindan hujumlar
[33]
2010Uchrashuv o'rtadaPreimageSHA-25642/642248.4
SHA-51242/802494.6
Yuqori darajadagi differentsial hujum
Kamaytirilgan SHA-256-da
[2]
2011DifferentsialSoxta to'qnashuvSHA-25646/642178
33/64246
Preimages uchun velosipedlar: hujumlar
Skein-512 va SHA-2 oilasi
[1]
2011BiklikPreimageSHA-25645/642255.5
SHA-51250/802511.5
Psevdo-preimageSHA-25652/642255
SHA-51257/802511
Mahalliy to'qnashuvlarni yaxshilash: yangi
Kamaytirilgan SHA-256 ga hujum
[34]
2013DifferentsialTo'qnashuvSHA-25631/64265.5
Soxta to'qnashuvSHA-25638/64237
Diferensial to'qnashuvda tarvaqaylab ketgan evristika
SHA-512-ga ilovalar yordamida qidirish
[35]
2014Evristik differentsialSoxta to'qnashuvSHA-51238/80240.5
SHA-512/224 va SHA-512/256 tahlillari[36]2016DifferentsialTo'qnashuvSHA-25628/64amaliy
SHA-51227/80amaliy
Soxta to'qnashuvSHA-51239/80amaliy

Rasmiy tasdiqlash

Barcha FIPS tomonidan tasdiqlangan xavfsizlik funktsiyalarining amallari rasmiy tasdiqlash orqali CMVP dasturi, tomonidan birgalikda boshqariladi Milliy standartlar va texnologiyalar instituti (NIST) va Aloqa xavfsizligini o'rnatish (CSE). Norasmiy tekshirish uchun juda ko'p miqdordagi test vektorlarini yaratish uchun to'plam NIST saytida yuklab olish uchun tayyorlanadi; natijada tekshirish, ammo ba'zi dasturlar uchun qonunda talab qilingan rasmiy CMVP tekshiruvini almashtirmaydi.

2013 yil dekabr holatiga ko'raSHA-256 va 900 dan ortiq SHA-512 dasturlarining 1300 dan ortiq tasdiqlangan dasturlari mavjud, shulardan faqat 5 tasi ikkala variantni qo'llab-quvvatlagan holda sakkizdan ko'p bo'lmagan uzunlikdagi xabarlarga ishlov berishga qodir.[37]

Sinov vektorlari

Bo'sh satrning xash qiymatlari (ya'ni nol uzunlikdagi kirish matni).

SHA224 ("")0x d14a028c2a3a2bc9476102bb288234c415a2b01f828ea62ac5b3e42fSHA256 ("")0x e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855SHA384 ("")0x 38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95bSHA512 ("")0x cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af93SHA512 / 224 ("")0x 6ed0dd02806fa89e25de060c19d3ac86cabb87d6a0ddd05c333b84f4SHA512 / 256 ("")0x c672b8d1ef56ed28ab87c3622c5114069bdd3ad7b8f9737498d0c01ecef0967a

Xabarning ozgina o'zgarishi ham (katta ehtimollik bilan) asosan turli xashga olib keladi qor ko'chkisi ta'siri. Masalan, quyidagi jumlaning oxiriga nuqta qo'shish xashdagi bitlarning deyarli yarmini (224 dan 111) o'zgartiradi:

SHA224 ("Tez jigarrang tulki dangasa itning ustidan sakrab chiqadi ")0x 730e109bd7a8a32b1cb9d9a09aa2325d2430587ddbc0c38bad911525SHA224 ("Tez jigarrang tulki dangasa itning ustidan sakrab chiqadi.")0x 619cba8e8e05826e9b8c519c0a5c68f4fb653e8a3d8aa04bb2c8cd4c

Psevdokod

Psevdokod SHA-256 algoritmi uchun quyidagilar keladi. Bitlari orasidagi aralashmaning katta o'sishiga e'tibor bering w [16..63] so'zlar SHA-1 bilan taqqoslaganda.

Izoh 1: Barcha o'zgaruvchilar 32 bit imzosiz tamsayılar va qo'shimcha 2 moduli bilan hisoblanadi322-izoh: Har bir tur uchun bitta [k] i dumaloq doimiy va w [i] xabarlar jadvalidagi bitta yozuv mavjud, 0 ≤ i-63Izoh 3: Siqish funktsiyasi 8 dan ishchi o'zgaruvchidan foydalanadi, a dan h gachaIzoh 4: Ushbu psevdokoddagi doimiylikni ifodalashda katta endian konvensiyasidan foydalaniladi,    va xabar blokirovkalash ma'lumotlarini baytlardan so'zlarga ajratishda, masalan,    to'ldirishdan keyin "abc" kirish xabarining birinchi so'zi 0x61626380Xash qiymatlarini boshlash:(birinchi 32 bit kasr qismlari birinchi 8 ta tub sonning kvadrat ildizlari 2..19):h0: = 0x6a09e667h1: = 0xbb67ae85h2: = 0x3c6ef372h3: = 0xa54ff53ah4: = 0x510e527fh5: = 0x9b05688ch6: = 0x1f83d9abh7: = 0x5be0cdDumaloq konstantalar qatorini boshlang:(birinchi 32 bit kasr qismlari birinchi 64 ta tub sonning kub ildizlaridan 2..311):k [0..63]: = 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f , 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624 , 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2Oldindan ishlov berish (to'ldirish):L uzunlikdagi asl xabar bilan boshlang va bitta '1' bit qo'shiladi K '0' bitlar qo'shiladi, bu erda K minimal son>> 0, shuning uchun L + 1 + K + 64 512 ko'paytma L ga 64 bitli bo'ladi. katta endian tamsayı, keyin qayta ishlangan umumiy uzunlikni 512 bitga ko'paytiradiXabarni ketma-ket 512 bitli qismlarga ishlov bering:xabarni 512 bitli qismlarga ajratishuchun har bir qism 32-bitli so'zlardan iborat 64 ta yozuv jadvalining w [0..63] qatorini yaratadi (W [0..63] dagi boshlang'ich qiymatlari muhim emas, shuning uchun ko'plab dasturlar bu erda nolga teng)    bir qismni xabarlar jadvali qatorining birinchi [w] [0..15] so'zlariga nusxalash Dastlabki 16 ta so'zni xabarlar jadvali qatorining qolgan 48 ta w [16..63] so'zlariga kengaytiring:    uchun men dan 16 dan 63 gacha s0: = (w [i-15] o'ng tomonga burang  7) xor (w [i-15] o'ng tomonga burang 18) xor (w [i-15] huquqlar ko'tarilishi  3) s1: = (w [i- 2] o'ng tomonga burang 17) xor (w [i- 2] o'ng tomonga burang 19) xor (w [i- 2] huquqlar ko'tarilishi 10) w [i]: = w [i-16] + s0 + w [i-7] + s1 Ishchi o'zgaruvchilarni joriy xash qiymatiga boshlash:    a: = h0 b: = h1 c: = h2 d: = h3 e: = h4 f: = h5 g: = h6 h: = h7 Siqish funktsiyasi asosiy tsikli:    uchun men dan 0 dan 63 gacha S1: = (e o'ng tomonga burang 6) xor (e o'ng tomonga burang 11) xor (e o'ng tomonga burang 25) ch: = (e va f) xor ((emas e) va g) temp1: = h + S1 + ch + k [i] + w [i] S0: = (a o'ng tomonga burang 2) xor (a o'ng tomonga burang 13) xor (a o'ng tomonga burang 22) maj: = (a va b) xor (a va v) xor (b va c) temp2: = S0 + maj h: = g g: = f f: = e e: = d + temp1 d: = c c: = b b: = a a: = temp1 + temp2 Siqilgan qismni joriy xash qiymatiga qo'shing:    h0: = h0 + a h1: = h1 + b h2: = h2 + c h3: = h3 + d h4: = h4 + e h5: = h5 + f h6: = h6 + g h7: = h7 + hYakuniy xash qiymatini yarating (big-endian):dayjest: = xash: = h0 qo'shib qo'ying h1 qo'shib qo'ying h2 qo'shib qo'ying h3 qo'shib qo'ying h4 qo'shib qo'ying h5 qo'shib qo'ying h6 qo'shib qo'ying h7

Hisoblash ch va maj qadriyatlar xuddi shu tarzda optimallashtirilishi mumkin SHA-1 uchun tavsiflanganidek.

SHA-224 SHA-256 bilan bir xil, faqat bundan:

  • dastlabki xash qiymatlari h0 orqali h7 turli xil va
  • chiqish qoldirish yo'li bilan quriladi h7.
SHA-224 boshlang'ich xash qiymatlari (katta endian bilan):(9-dan 16-gacha bo'lgan asosiy kvadratlarning ildiz qismlarining ikkinchi 32 biti 23..53)h [0..7]: = 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939, 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4

SHA-512 tuzilishi bo'yicha SHA-256 bilan bir xil, ammo:

  • xabar 1024-bitli qismlarga bo'linadi,
  • boshlang'ich xash qiymatlari va dumaloq doimiylari 64 bitgacha kengaytiriladi,
  • 64 o'rniga 80 ta tur bor,
  • xabarlar jadvali massivida 64 32 bitli so'zlar o'rniga 80 ta 64 bitli so'zlar mavjud,
  • xabarlar jadvali qatorini kengaytirish uchun w, 16 dan 63 gacha emas, 16 dan 79 gacha,
  • dumaloq konstantalar birinchi 80 ta 2..409 soniga asoslanadi,
  • hisoblash uchun ishlatiladigan so'z hajmi 64 bit uzunlikda,
  • xabarning qo'shilgan uzunligi (oldindan ishlov berishdan oldin), yilda bitlar, 128-bit katta endian tamsayı va
  • ishlatiladigan siljish va aylantirish miqdori har xil.
SHA-512 boshlang'ich xash qiymatlari (katta endian tilida):h [0..7]: = 0x6a09e667f3bcc908, 0xbb67ae8584caa73b, 0x3c6ef372fe94f82b, 0xa54ff53a5f1d36f1, 0x510e527fade682d1, 0x9b0568bfbbbbbbbbbbbebbbbee0bbb9e1SHA-512 dumaloq doimiylari:k [0..79]: = [0x428a2f98d728ae22, 0x7137449123ef65cd, 0xb5c0fbcfec4d3b2f, 0xe9b5dba58189dbbc, 0x3956c25bf348b538, 0x59f111f1b605d019, 0x923f82a4af194f9b, 0xab1c5ed5da6d8118, 0xd807aa98a3030242, 0x12835b0145706fbe, 0x243185be4ee4b28c, 0x550c7dc3d5ffb4e2, 0x72be5d74f27b896f, 0x80deb1fe3b1696b1, 0x9bdc06a725c71235, 0xc19bf174cf692694, 0xe49b69c19ef14ad2, 0xefbe4786384f25e3, 0x0fc19dc68b8cd5b5, 0x240ca1cc77ac9c65, 0x2de92c6f592b0275, 0x4a7484aa6ea6e483, 0x5cb0a9dcbd41fbd4, 0x76f988da831153b5, 0x983e5152ee66dfab, 0xa831c66d2db43210, 0xb00327c898fb213f, 0xbf597fc7beef0ee4, 0xc6e00bf33da88fc2, 0xd5a79147930aa725, 0x06ca6351e003826f, 0x142929670a0e6e70, 0x27b70a8546d22ffc, 0x2e1b21385c26c926, 0x4d2c6dfc5ac42aed, 0x53380d139d95b3df, 0x650a73548baf63de, 0x766a0abb3c77b2a8, 0x81c2c92e47edaee6, 0x92722c851482353b, 0xa2bfe8a14cf10364, 0xa81a664bbc423001, 0xc24b8b70d0f89791, 0xc76c51a30654 be30, 0xd192e819d6ef5218, 0xd69906245565a910, 0xf40e35855771202a, 0x106aa07032bbd1b8, 0x19a4c116b8d2d0c8, 0x1e376c085141ab53, 0x2748774cdf8eeb99, 0x34b0bcb5e19b48a8, 0x391c0cb3c5c95a63, 0x4ed8aa4ae3418acb, 0x5b9cca4f7763e373, 0x682e6ff3d6b2b8a3, 0x748f82ee5defb2fc, 0x78a5636f43172f60, 0x84c87814a1f0ab72, 0x8cc702081a6439ec, 0x90befffa23631e28, 0xa4506cebde82bde9, 0xbef9a3f7b2c67915, 0xc67178f2e372532b, 0xca273eceea26619c, 0xd186b8c721c0c207, 0xeada7dd6cde0eb1e, 0xf57d4f7fee6ed178, 0x06f067aa72176fba, 0x0a637dc5a2c898a6, 0x113f9804bef90dae, 0x1b710b35131c471b, 0x28db77f523047d84, 0x32caab7b40c72493, 0x3c9ebe0a15c9bebc, 0x431d67c49c100d4c, 0x4cc5d4becb3e42b6, 0x597f299cfc657e2a, 0x5fcb6fab3ad6faec, 0x6c44198c4a475817]SHA-512 Sum & Sigma:S0: = (a o'ng tomonga burang 28) xor (a o'ng tomonga burang 34) xor (a o'ng tomonga burang 39) S1: = (e o'ng tomonga burang 14) xor (e o'ng tomonga burang 18) xor (e o'ng tomonga burang 41)s0: = (w [i-15] o'ng tomonga burang 1) xor (w [i-15] o'ng tomonga burang 8) xor (w [i-15] huquqlar ko'tarilishi 7) s1: = (w [i-2] o'ng tomonga burang 19) xor (w [i-2] o'ng tomonga burang 61) xor (w [i-2] huquqlar ko'tarilishi 6)

SHA-384 SHA-512 bilan bir xil, bundan tashqari:

  • dastlabki xash qiymatlari h0 orqali h7 har xil (9-dan 16-gacha bo'lgan asosiy sonlardan olingan) va
  • chiqish qoldirish yo'li bilan quriladi h6 va h7.
SHA-384 boshlang'ich xash qadriyatlari (katta endian tilida):h [0..7]: = 0xcbbb9d5dc1059ed8, 0x629a292a367cd507, 0x9159015a3070dd17, 0x152fecd8f70e5939, 0x67332667ffc00b31, 0x8eb44a87685815f8f8ffa8f8f8fdf, 55bf8bf8bf8bf8fdfdfdfcbbb9b

SHA-512 / t SHA-512 bilan bir xil, bundan tashqari:

  • dastlabki xash qiymatlari h0 orqali h7 tomonidan berilgan SHA-512 / t IV avlod funktsiyasi,
  • chiqishining kesimini qisqartirish yo'li bilan quriladi h0 orqali h7 da t bitlar,
  • t 384 ga teng ruxsat berilmaydi, buning o'rniga SHA-384 ni belgilangan tartibda ishlatish kerak va
  • t 224 va 256 qiymatlari ayniqsa tasdiqlangan deb eslatiladi.

The SHA-512 / t IV avlod funktsiyasi baholaydi a o'zgartirilgan SHA-512 "SHA-512 / ASCII satridat", ning o'nli belgisi bilan almashtirilgan t. The o'zgartirilgan SHA-512 boshlang'ich qiymatlaridan tashqari SHA-512 bilan bir xil h0 orqali h7 har biri bo'lgan XORed o'n oltilik doimiy bilan 0xa5a5a5a5a5a5a5a5.

SHA-2 oilaviy xash funktsiyalari uchun C namunasini amalga oshirish mumkin RFC 6234.

SHA funktsiyalarini taqqoslash

Quyidagi jadvalda, ichki holat ma'lumotlar blokining har bir siqilishidan keyin "ichki xesh yig'indisi" degan ma'noni anglatadi.

SHA funktsiyalarini taqqoslash
Algoritm va variantChiqish hajmi
(bit)
Ichki davlat kattaligi
(bit)
Blok hajmi
(bit)
DavralarAmaliyotlarXavfsizlik (ichida bit) qarshi to'qnashuv hujumlariImkoniyatlar
qarshi uzunlikni kengaytirish hujumlari
Ishlash Skylake (o'rtacha cpb )[38]Birinchi marta nashr etilgan
uzoq xabarlar8 bayt
MD5 (ma'lumotnoma sifatida)128128
(4 × 32)
51264Va, Xor, Rot, Qo'shish (mod 232), Yoki≤18
(to'qnashuvlar topildi)[39]
04.9955.001992
SHA-0160160
(5 × 32)
51280Va, Xor, Rot, Qo'shish (mod 232), Yoki<34
(to'qnashuvlar topildi)
0A SHA-1A SHA-11993
SHA-1<63
(to'qnashuvlar topildi)[40]
3.4752.001995
SHA-2SHA-224
SHA-256
224
256
256
(8 × 32)
51264Va, Xor, Rot, Qo'shish (mod 232), Yoki, Shr112
128
32
0
7.62
7.63
84.50
85.25
2004
2001
SHA-384
SHA-512
384
512
512
(8 × 64)
102480Va, Xor, Rot, Qo'shish (mod 264), Yoki, Shr192
256
128 (≤ 384)
0[41]
5.12
5.06
135.75
135.50
2001
SHA-512/224
SHA-512/256
224
256
112
128
288
256
≈ SHA-384≈ SHA-3842012
SHA-3SHA3-224
SHA3-256
SHA3-384
SHA3-512
224
256
384
512
1600
(5 × 5 × 64)
1152
1088
832
576
24[42]Va, Xor, Rot, yo'q112
128
192
256
448
512
768
1024
8.12
8.59
11.06
15.88
154.25
155.50
164.00
164.00
2015
128
256
d (o'zboshimchalik bilan)
d (o'zboshimchalik bilan)
1344
1088
min (d/2, 128)
min (d/2, 256)
256
512
7.08
8.59
155.25
155.50

Bitsel operatsiyalar ustunida "Rot" so'zi ko'rsatilgan transport vositasini aylantirmang, va "Shr" so'zining ma'nosi to'g'ri mantiqiy siljish. Ushbu algoritmlarning barchasi ishlaydi modulli qo'shimcha SHA-3 bundan mustasno.

Zamonaviy protsessor me'morchiligida ishlash ko'rsatkichlari batafsilroq quyidagi jadvalda keltirilgan.

CPU arxitekturasiChastotaniAlgoritmSo'z hajmi (bit)Tsikllar / bayt x86MiB / s x86Tsikllar / bayt x86-64MiB / s x86-64
Intel Ivy Bridge3,5 gigagertsliSHA-2563216.8019913.05256
SHA-5126443.66768.48394
AMD Piledriver APU3,8 gigagertsliSHA-2563222.8715818.47196
SHA-5126488.364112.43292

"X86" deb nomlangan ishlash raqamlari 64-bitli protsessorlarda 32-bitli kod yordamida ishlayotgan bo'lsa, "x86-64" raqamlari mahalliy 64-bitli koddir. SHA-256 32 bitli hisob-kitoblar uchun mo'ljallangan bo'lsa-da, x86 arxitekturasidagi 64 bitli protsessorlar uchun optimallashtirilgan koddan foydalanadi. SHA-512 ning 32-bitli tatbiq etilishi ularning 64-bitli analoglaridan sezilarli darajada sustroq. Ikkala algoritmning har xil chiqish o'lchamiga ega variantlari xuddi shunday bajariladi, chunki xabarni kengaytirish va siqish funktsiyalari bir xil va faqat boshlang'ich xash qiymatlari va chiqish o'lchamlari boshqacha. MD5 va SHA-1 ning eng yaxshi dasturlari zamonaviy protsessorlarda har baytda 4,5 dan 6 tsiklgacha ishlaydi.

Sinovlar tomonidan amalga oshirildi Chikagodagi Illinoys universiteti 3,5 gigagertsli soat tezligida Intel Xeon E3-1275 V2 ishlaydigan gidra8 tizimida va 3,8 gigagertsli soat tezligida AMD A10-5800K APU ishlaydigan gidra9 tizimida.[43] Yuqoridagi bayt tezligiga havola qilingan tsikllar SUPERCOP kriptografik benchmarking dasturi yordamida 4,096 baytli xabarni hazm qilish algoritmining o'rtacha ko'rsatkichidir.[44] MiB / s ishlashi bir yadroda CPU soat tezligidan ekstrapolyatsiya qilinadi; turli xil omillar ta'sirida haqiqiy hayot ko'rsatkichlari turlicha bo'ladi.

Amaliyotlar

Quyida SHA-2-ni qo'llab-quvvatlaydigan kriptografiya kutubxonalari ro'yxati keltirilgan:

Uskuna tezlashishi quyidagi protsessor kengaytmalari bilan ta'minlanadi:

Shuningdek qarang

Adabiyotlar

  1. ^ a b v Dmitriy Xovratovich, Kristian Rechberger va Aleksandra Savelieva (2011). "Preimages uchun velosipedlar: Skein-512 va SHA-2 oilasiga hujumlar" (PDF). IACR Cryptology ePrint arxivi. 2011:286.
  2. ^ a b v Mario Lamberger va Florian Mendel (2011). "Kamaytirilgan SHA-256 ga yuqori darajadagi differentsial hujum" (PDF). IACR Cryptology ePrint arxivi. 2011:37.
  3. ^ "Xash algoritmining xavfsiz oilasi to'g'risida" (PDF). Arxivlandi asl nusxasi (PDF) 2016-03-30.
  4. ^ a b Federal ro'yxatdan o'tish to'g'risida xabarnoma 02-21599, FIPS nashrining tasdiqlanishi to'g'risida e'lon 180-2
  5. ^ AQSh 6829355 
  6. ^ "AQSh patentiga litsenziyalash to'g'risidagi deklaratsiya 6829355". Olingan 2008-02-17. Iqtibos jurnali talab qiladi | jurnal = (Yordam bering)
  7. ^ "FIPS 180-2-ga o'zgartirish to'g'risida ogohlantirish 1" (PDF). csrc.nist.gov.
  8. ^ Federal ro'yxatdan o'tish to'g'risidagi bildirishnoma E8-24743, FIPS nashrining tasdiqlanishi to'g'risida e'lon 180-3
  9. ^ a b FIPS SP 800-107 Tasdiqlangan xash algoritmlaridan foydalangan holda dasturlarga tavsiya
  10. ^ a b FIPS SP 800-57 Kalit menejment bo'yicha tavsiyalar: 1-qism: Umumiy
  11. ^ "NIST.gov - kompyuter xavfsizligi bo'limi - kompyuter xavfsizligi resurs markazi".
  12. ^ FIPS SP 800-131A Kriptografik algoritmlardan va asosiy uzunliklardan foydalanishga o'tish bo'yicha tavsiyalar
  13. ^ Federal Ro'yxatdan o'tish Xabarnomasi 2012-5400, FIPS nashrining tasdiqlanishini e'lon qilish 180-4
  14. ^ "NIST Secure Hash algoritmi (SHA-3) tanlovining g'olibini tanladi". Olingan 24 fevral 2015.
  15. ^ "Google kodidagi Debian kod bazasi". Arxivlandi asl nusxasi 2011 yil 7-noyabrda. Olingan 2011-11-08.
  16. ^ Jon Markoff, Raqamli yozuvlarni tekshirish vositasi, hattoki texnologiya o'zgarganda ham, Nyu-York Tayms, 2009 yil 26-yanvar
  17. ^ RFC 5702,RFC-Editor.org
  18. ^ Ulrix Drepper, Unix-kriptovalyutasi SHA-256/512 bilan
  19. ^ Bitcoin, ortiqcha. "Bitcoin energiya sarf qilmaydi". Ortiqcha Bitcoin. Olingan 2020-04-20.
  20. ^ "SHA-256 nima va u Bitcoin bilan qanday bog'liq? - Mikriptopediya". Mikriptopediya. 2017-09-21. Olingan 2018-09-17.
  21. ^ Milliy standartlar va texnologiyalar instituti kompyuter xavfsizligi bo'yicha resurs markazi, NIST-ning xash funktsiyalari bo'yicha siyosati Arxivlandi 2011-06-09 da Orqaga qaytish mashinasi, 2009 yil 29 martda kirilgan.
  22. ^ "Xavfsiz xashlash". NIST. Arxivlandi asl nusxasi 2011-06-25. Olingan 2010-11-25.
  23. ^ "Windows XP Service Pack 3 haqida umumiy ma'lumot" (PDF). Microsoft korporatsiyasi. Arxivlandi asl nusxasi (PDF) 2008 yil 30 mayda.
  24. ^ Chromium Blog, 2014 yil 5 sentyabr, Asta-sekin quyosh botishi SHA-1
  25. ^ Erik Mill. "SHAAAAAAAAAAAAAA". SHAAAAAAAAAAAAA.com.
  26. ^ Filippo Valsorda, Norasmiy Chrome SHA1 eskirishi bilan bog'liq savollar
  27. ^ "SHA-1 eskirishi bo'yicha yo'l xaritamizga yangilanish - Microsoft Edge Dev BlogMicrosoft Edge Dev Blog". bloglar.windows.com. Olingan 2016-11-28.
  28. ^ Fabian A. Sherschel, HeiseSecurity: Firefox: Mozilla schaltet SHA-1 ab ... und direkt wieder an (Nemis)
  29. ^ Aleksandr Sotirov, Mark Stivens, Yakob Appelbaum, Arjen Lenstra, Devid Molnar, Dag Arne Osvik, Benne de Veger, MD5 bugungi kunda zararli deb hisoblanadi: soxta CA sertifikatini yaratish, 2009 yil 29 martda kirgan.
  30. ^ Ji Li, Takanori Isobe va Kyoji Shibutani, Sony China tadqiqot laboratoriyasi va Sony Corporation, O'rta uchrashuvda hujumni psevdo to'qnashuv hujumiga aylantirish: SHA-2 ga ariza
  31. ^ Somitra Kumar Sanadxya va Palash Sarkar (2008). "24 bosqichli SHA-2 ga qarshi yangi to'qnashuvlar" (PDF). IACR Cryptology ePrint arxivi. 2008:270.
  32. ^ Kazumaro Aoki; Dzyan Guo; Krystian Matusevich; Yu Sasaki va Ley Vang (2009). Bosqichma-bosqich qisqartirilgan SHA-2 uchun oldingi rasmlar. Kriptologiya sohasidagi yutuqlar - ASIACRYPT 2009 y. Kompyuter fanidan ma'ruza matnlari. 5912. Springer Berlin Heidelberg. 578-597 betlar. doi:10.1007/978-3-642-10366-7_34. ISBN  978-3-642-10366-7. ISSN  0302-9743.
  33. ^ Dzyan Guo; San Ling; Christian Rechberger & Huaxiong Vang (2010). O'rtacha oldindan uchrashuvlar bo'yicha rivojlangan hujumlar: Birinchi natijalar to'liq Tiger-da, MD4 va SHA-2-da yaxshilangan natijalar (PDF). Kriptologiya sohasidagi yutuqlar - ASIACRYPT 2010. Kompyuter fanidan ma'ruza matnlari. 6477. Springer Berlin Heidelberg. 56-75 betlar. doi:10.1007/978-3-642-17373-8_4. ISBN  978-3-642-17373-8. ISSN  0302-9743.
  34. ^ Florian Mendel; Tomislav Nad; Martin Schläffer (2013). Mahalliy to'qnashuvlarni yaxshilash: qisqartirilgan SHA-256 ga yangi hujumlar. Kriptologiya sohasidagi yutuqlar - EUROCRYPT 2013. Kompyuter fanidan ma'ruza matnlari. 7881. Springer Berlin Heidelberg. 262–278 betlar. doi:10.1007/978-3-642-38348-9_16. ISBN  978-3-642-38348-9. ISSN  0302-9743.
  35. ^ Mariya Eyxlseder va Florian Mendel va Martin Shlafer (2014). "SHA-512-ga ilovalar bilan differentsial to'qnashuvda qidirishdagi evristikani targ'ib qilish" (PDF). IACR Cryptology ePrint arxivi. 2014:302.
  36. ^ Kristof Dobraunig; Mariya Eyxlseder va Florian Mendel (2016). "SHA-512/224 va SHA-512/256 tahlillari" (PDF). Iqtibos jurnali talab qiladi | jurnal = (Yordam bering)
  37. ^ "SHSni tasdiqlash ro'yxati". NIST. 2017-06-16. Arxivlandi asl nusxasi 2017-06-17.
  38. ^ "O'lchovlar jadvali". bench.cr.yp.to.
  39. ^ Tao, Xie; Lyu, Fanbao; Feng, Dengguo (2013). MD5-da tez to'qnashuv hujumi (PDF). Kriptologiya ePrint arxivi (Texnik hisobot). IACR.
  40. ^ Stivens, Mark; Bursztein, Eli; Karpman, Per; Albertini, Anj; Markov, Yarik. To'liq SHA-1 uchun birinchi to'qnashuv (PDF) (Texnik hisobot). Google tadqiqotlari. XulosaGoogle Xavfsizlik blogi (2017 yil 23-fevral).
  41. ^ Kesishsiz, to'qnashuv qarshiligidan qat'i nazar, xash funktsiyasining to'liq ichki holati ma'lum. Agar chiqish qisqartirilsa, xash funktsiyasini tiklashdan oldin holatning olib tashlangan qismini qidirish va topish kerak, bu hujumni davom ettirishga imkon beradi.
  42. ^ "Keccak shimgichni funktsiyasi oilasi". Olingan 2016-01-27.
  43. ^ SUPERCOP mezonlari Mashina tomonidan indekslangan xash funktsiyalarini o'lchash
  44. ^ "SUPERCOP". Olingan 24 fevral 2015.
  45. ^ SSL / TLS shifrlari qo'llab-quvvatlanadi
  46. ^ Mbed TLS Changelog, 2007 yil 7-iyul
  47. ^ "ARM Cortex-A53 MPCore protsessori texnik qo'llanmasi Kriptografik kengaytma".

Qo'shimcha o'qish

Tashqi havolalar