Кіріспе

Криптографиялық шабуыл түрі
Туған күн шабуылы – ықтималдық теориясындағы туған күн мәселесінің математикалық негізін пайдаланатын күш қолдану арқылы соқтығысуды іздейтін шабуыл. Бұл шабуыл екі немесе одан көп тарап арасындағы байланыстың қауіпсіздігін бұзу үшін қолданылуы мүмкін. Шабуылдың сәттілігі кездейсоқ шабуыл әрекеттері мен белгілі бір деңгейдегі мүмкіндіктер (құпия сақтау орындары) арасында соқтығысудың жоғары ықтималдығына байланысты. Туған күн шабуылы арқылы хэш-функцияда соқтығысуды табуға болады. Кванттық компьютерлер туған күн шабуылын жүзеге асыра алады деген жалпы (бірақ даулы) нәтиже бар, бұл соқтығысуға қарсы тұру қабілетін жояды. Туған күн шабуылымен байланысты цифрлық қолтаңбаның осалдықтары болғанымен, ол шифрлеу схемасын күш қолдану шабуылынан тезірек бұзуға мүмкіндік бермейді.

Проблеманы түсіну

Мысалы, 30 оқушыдан тұратын сыныптағы мұғалімнің (n = 30) кез келген екі оқушының туған күні бірдей ме екендігін анықтау үшін әркімнің туған күнін сұраған жағдайды қарастырайық (ең оңайлығы үшін, қамшы жылдарын ескермеңіз). Интуитивті түрде бұл мүмкіндік аз болып көрінуі мүмкін. Керісінше, кез келген күні кем дегенде бір оқушының басқа оқушымен бірдей туған күні болу ықтималдығы шамамен 70% (n = 30) құрайды, бұл формуладан көрінеді. Егер мұғалім белгілі бір күнді таңдаса (мысалы, 16 қыркүйек), онда кем дегенде бір оқушының сол күні тууының ықтималдығы шамамен 7,9% болады. Туған күнге жасалатын шабуыл кезінде шабуылшы әрқайсысына цифрлық қолтаңба қойылған көптеген түрлі қауіпсіз және зиянды келісімшарттарды дайындайды. Бірдей қолтаңбасы бар екі қауіпсіз және зиянды келісімшарт ізделеді. Бұл ойдан шығарылған мысалда, жолдың цифрлық қолтаңбасы оның SHA 256 хэшінің бірінші байтынан тұрады деп есептейік. Табылған жұп жасыл түспен көрсетілген – қауіпсіз келісімшарттар жұбын (көк) немесе зиянды келісімшарттар жұбын (қызыл) табудың қажеті жоқ. Жәбірленуші қауіпсіз келісімшартты қабылдағаннан кейін, шабуылшы оны зиянды келісімшартқа ауыстырып, құрбанның оған қол қойғандығын дәлелдейді, бұл цифрлық қолтаңбамен расталады.

Цифрлық қолтаңбаның сезімталдығы

Цифрлық қолтаңбалар туған күн шабуылына немесе дәлірек айтқанда, таңдалған префикс соқтығысу шабуылына ұшырауы мүмкін. Хабарлама әдетте ең алдымен криптографиялық хэш функциясы есептеліп, содан кейін құпия кілт қолданылып қол қойылады. Егер Маллори Бобты жалған келісімшартқа қол қоюға итергісі келсе, ол әділ келісімшарт пен жалған келісімшарт дайындайды. Содан кейін ол мағынасын өзгертпей өзгертуге болатын позицияларды табады, мысалы, үтірлерді қосу, бос жолдар, сөйлемнен кейін бір немесе екі бос орын, синонимдерді алмастыру және т.б. Осы өзгерістерді біріктіру арқылы ол әділ келісімшарттардың көптеген нұсқаларын жасай алады. Сол сияқты, Маллори жалған келісімшарттың да көптеген нұсқаларын жасайды. Содан кейін ол барлық нұсқаларға хэш функциясын қолданып, әділ келісімшарттың және жалған келісімшарттың бірдей хэш мәніне ие нұсқаларын табады. Ол Бобқа қол қою үшін әділ нұсқаны ұсынады. Боб қол қойғаннан кейін, Маллори қолтаңбаны алып, оны жалған келісімшартқа тіркейді. Бұл қолтаңба Бобтың жалған келісімшартқа қол қойғанын "дәлелдейді". Ықтималдықтар бастапқы туған күн мәселесінен сәл өзгеше, себебі Маллори бірдей хэшпен екі әділ немесе екі жалған келісімшартты тауып ешқандай пайда таппайды. Маллоридің стратегиясы – бір әділ және бір жалған келісімшарт жұптарын жасау. Берілген хэш функциясы үшін – мүмкін хэштердің саны. Туған күн мәселесінің теңдеулері мұнда толық қолданылмайды, Маллори жасайтын хэштердің саны қарапайым соқтығысу үшін қажетті хэштер санынан екі есе көп. Осы шабуылдан сақтану үшін қолтаңба схемасы үшін қолданылатын хэш функциясының шығыс ұзындығы жеткілікті түрде үлкен болуы керек, сондықтан туған күн шабуылы есептеу тұрғысынан мүмкін болмайды, яғни қарапайым күшпен шабуылдың алдын алу үшін қажетті биттердің шамамен екі есе көп. Бит ұзындығы үлкенірек болумен қатар, қол қоюшы (Боб) құжатқа кездейсоқ, зиянсыз өзгерістер енгізу арқылы және өзі қол қойған келісімшарттың көшірмесін сақтап, сотта оның қолтаңбасы тек жалған емес, нақты келісімшартқа сәйкес екенін дәлелдей алады. Логарифмдер үшін Полардтың rho алгоритмі дискретті логарифмдерді есептеу үшін туған күн шабуылын пайдаланатын алгоритмнің мысалы болып табылады.

Кері шабуыл

Сол сияқты, қол қоюшы Боб емес, Мэллори болса, алаяқтық жасау мүмкін. Боб Мэллориге келісімшартты қол қоюға ұсынып, оған келісімшарт жіберуі мүмкін. Мэллори осы әділ келісімшарттың, жалған келісімшартпен бірдей қолтаңбасы бар, бірақ көрінеу өзгертілген нұсқасын таба алады, содан кейін өзгертілген әділ келісімшартты және қолтаңбаны Бобқа жіберуі мүмкін. Кейін Мэллори жалған көшірмені ұсына алады. Егер Бобта келісімшарттың көрінеу өзгертілген нұсқасы болмаса (мысалы, тек бастапқы ұсынысын тапса), Мэллоридің алаяқтығы табысқа жетеді. Егер Бобта ол нұсқа болса, Мэллори кем дегенде Бобтың алаяқ екенін айта алады.