Кіріспе

Криптографиялық хэш-функцияларға қарсы шабуыл моделі
Криптографияда криптографиялық хэш-функцияларға жасалатын преимидж шабуыл белгілі бір хэш-мәні бар хабарды табуға бағытталған. Криптографиялық хэш-функция өзінің преимиджіне (мүмкін кіріс жиынтығына) қарсы шабуылдарға төтеп беруі керек. Шабуыл контекстінде преимиджге қарсылықтың екі түрі бар:

преимиджге қарсылық: барлық алдын ала белгіленген нәтижелер үшін, осы нәтижеге хэштейтін кез келген кірісті табу есептеу тұрғысынан мүмкін емес; яғни, берілген h үшін, м табу қиын, мұндайда hash(m) = h;
екінші преимиджге қарсылық: берілген кіріс үшін, сол нәтижені шығаратын басқа кірісті табу есептеу тұрғысынан мүмкін емес; яғни, берілген m үшін, hash(m) = h болатын екінші m’ табу қиын, соның салдарынан соқтығысу шабуылы жасауға болады. Кейбір хэш-функцияларды криптоталдау арқылы преимидж шабуылдарын жылдамдатуға болады, және олар сол функцияға тән. Маңызды преимидж шабуылдарының кейбіреулері анықталған, бірақ олар әлі де практикалық емес. Егер практикалық преимидж шабуылы табылатын болса, ол көптеген интернет-протоколдарға елеулі әсер етеді. Бұл жағдайда "практикалық" дегеніміз, шабуылшының ақылға қонымды ресурстары болса, оны орындай алатынын білдіреді. Мысалы, бір преимиджді табуға триллиондаған долларлар жұмсалып, ондаған жылдар кетсе, онда бұл практикалық емес; ал бірнеше мың доллар тұратын және бірнеше аптаға созылатын шабуыл өте практикалық болуы мүмкін. Қазіргі кезде белгілі барлық немесе дерлік барлық практикалық MD5 және SHA-1 шабуылдары – соқтығысу шабуылдары. Жалпы, соқтығысу шабуылдарын преимидж шабуылдарына қарағанда оңай жасауға болады, себебі ол кез келген екі мәнді соқтығыстыру үшін пайдалануға болады. Күшпен іздеу арқылы жасалатын соқтығысу шабуылдарының уақыттық күрделілігі, преимидж шабуылдарына қарағанда, тек O(2^n/2) құрайды.

Сурет алды кеңістігімен шектелген шабуылдар

Идеалдық хэш-функцияға бірінші преобраздік шабуылдың есептеу мүмкін еместігі, ықтимал хэш-кірістер жиынтығының брут-форс іздеу үшін тым үлкен екенін болжайды. Дегенмен, егер белгілі бір хэш-мәні салыстырмалы түрде кішкентай кіріс жиынтығынан немесе қандай да бір ықтималдық бойынша реттелген кіріс жиынтығынан туындағандығы белгілі болса, брут-форс іздеу тиімді болуы мүмкін. Практикалық қолданылуы кіріс жиынтығының мөлшеріне және хэш-функцияны есептеу жылдамдығына немесе құнына байланысты. Көп кездесетін мысал – кіруді растау деректерін сақтау үшін хэштерді пайдалану, осы арқылы аутентификация жасалады. Пайдаланушы парольдерінің түпнұсқа мәтінін сақтаудың орнына, кіруді басқару жүйесі парольдің хэшін сақтайды. Пайдаланушы кіруді сұрағанда, ол енгізген пароль хэштеледі және сақталған мәнмен салыстырылады. Егер сақталған растау деректері ұрланса, ұры парольдердің өзіне емес, тек хэш-мәндеріне ғана ие болады. Алайда, көптеген пайдаланушылар парольдерді болжамды түрде таңдайды және көптеген парольдер соншалықты қысқа болады, тіпті хэш преобраздік шабуылдарға қарсы қауіпсіз деп бағаланған жағдайда да, егер жылдам хэштер қолданылса, барлық мүмкін комбинацияларды тексеруге болады. Іздеуді баяулату үшін кілт тудыру функциялары деп аталатын арнайы хэштер құрастырылған. Парольді бұзу туралы қараңыз. Қысқа парольдерді сынақтан өткізудің алдын алу әдісі үшін тұз (криптография) бетіне жүгініңіз.