Кіріспе
Криптографиялық шабуыл түрі
Туған күн шабуылы – ықтималдық теориясындағы туған күн мәселесінің математикалық негізін пайдаланатын күш қолдану арқылы соқтығысуды іздейтін шабуыл. Бұл шабуыл екі немесе одан көп тарап арасындағы байланыстың қауіпсіздігін бұзу үшін қолданылуы мүмкін. Шабуылдың сәттілігі кездейсоқ шабуыл әрекеттері мен белгілі бір деңгейдегі мүмкіндіктер (құпия сақтау орындары) арасында соқтығысудың жоғары ықтималдығына байланысты. Туған күн шабуылы арқылы хэш-функцияда соқтығысуды табуға болады. Кванттық компьютерлер туған күн шабуылын жүзеге асыра алады деген жалпы (бірақ даулы) нәтиже бар, бұл соқтығысуға қарсы тұру қабілетін жояды. Туған күн шабуылымен байланысты цифрлық қолтаңбаның осалдықтары болғанымен, ол шифрлеу схемасын күш қолдану шабуылынан тезірек бұзуға мүмкіндік бермейді.
A birthday attack is a bruteforce collision attack that exploits the mathematics behind the birthday problem in probability theory. This attack can be used to abuse communication between two or more parties. The attack depends on the higher likelihood of collisions found between random attack attempts and a fixed degree of permutations (pigeonholes). With a birthday attack, it is possible to find a collision of a hash function with chance in , There is a general (though disputed) result that quantum computers can perform birthday attacks, thus breaking collision resistance, in
Although there are some digital signature vulnerabilities associated with the birthday attack, it cannot be used to break an encryption scheme any faster than a brute force attack.
Проблеманы түсіну
Мысалы, 30 оқушыдан тұратын сыныптағы мұғалімнің (n = 30) кез келген екі оқушының туған күні бірдей ме екендігін анықтау үшін әркімнің туған күнін сұраған жағдайды қарастырайық (ең оңайлығы үшін, қамшы жылдарын ескермеңіз). Интуитивті түрде бұл мүмкіндік аз болып көрінуі мүмкін. Керісінше, кез келген күні кем дегенде бір оқушының басқа оқушымен бірдей туған күні болу ықтималдығы шамамен 70% (n = 30) құрайды, бұл формуладан көрінеді. Егер мұғалім белгілі бір күнді таңдаса (мысалы, 16 қыркүйек), онда кем дегенде бір оқушының сол күні тууының ықтималдығы шамамен 7,9% болады. Туған күнге жасалатын шабуыл кезінде шабуылшы әрқайсысына цифрлық қолтаңба қойылған көптеген түрлі қауіпсіз және зиянды келісімшарттарды дайындайды. Бірдей қолтаңбасы бар екі қауіпсіз және зиянды келісімшарт ізделеді. Бұл ойдан шығарылған мысалда, жолдың цифрлық қолтаңбасы оның SHA 256 хэшінің бірінші байтынан тұрады деп есептейік. Табылған жұп жасыл түспен көрсетілген – қауіпсіз келісімшарттар жұбын (көк) немесе зиянды келісімшарттар жұбын (қызыл) табудың қажеті жоқ. Жәбірленуші қауіпсіз келісімшартты қабылдағаннан кейін, шабуылшы оны зиянды келісімшартқа ауыстырып, құрбанның оған қол қойғандығын дәлелдейді, бұл цифрлық қолтаңбамен расталады.
If the teacher had picked a specific day (say, 16 September), then the chance that at least one student was born on that specific day is , about 7.9%. In a birthday attack, the attacker prepares many different variants of benign and malicious contracts, each having a digital signature. A pair of benign and malicious contracts with the same signature is sought. In this fictional example, suppose that the digital signature of a string is the first byte of its SHA 256 hash. The pair found is indicated in green – note that finding a pair of benign contracts (blue) or a pair of malicious contracts (red) is useless. After the victim accepts the benign contract, the attacker substitutes it with the malicious one and claims the victim signed it, as proven by the digital signature.
Цифрлық қолтаңбаның сезімталдығы
Цифрлық қолтаңбалар туған күн шабуылына немесе дәлірек айтқанда, таңдалған префикс соқтығысу шабуылына ұшырауы мүмкін. Хабарлама әдетте ең алдымен криптографиялық хэш функциясы есептеліп, содан кейін құпия кілт қолданылып қол қойылады. Егер Маллори Бобты жалған келісімшартқа қол қоюға итергісі келсе, ол әділ келісімшарт пен жалған келісімшарт дайындайды. Содан кейін ол мағынасын өзгертпей өзгертуге болатын позицияларды табады, мысалы, үтірлерді қосу, бос жолдар, сөйлемнен кейін бір немесе екі бос орын, синонимдерді алмастыру және т.б. Осы өзгерістерді біріктіру арқылы ол әділ келісімшарттардың көптеген нұсқаларын жасай алады. Сол сияқты, Маллори жалған келісімшарттың да көптеген нұсқаларын жасайды. Содан кейін ол барлық нұсқаларға хэш функциясын қолданып, әділ келісімшарттың және жалған келісімшарттың бірдей хэш мәніне ие нұсқаларын табады. Ол Бобқа қол қою үшін әділ нұсқаны ұсынады. Боб қол қойғаннан кейін, Маллори қолтаңбаны алып, оны жалған келісімшартқа тіркейді. Бұл қолтаңба Бобтың жалған келісімшартқа қол қойғанын "дәлелдейді". Ықтималдықтар бастапқы туған күн мәселесінен сәл өзгеше, себебі Маллори бірдей хэшпен екі әділ немесе екі жалған келісімшартты тауып ешқандай пайда таппайды. Маллоридің стратегиясы – бір әділ және бір жалған келісімшарт жұптарын жасау. Берілген хэш функциясы үшін – мүмкін хэштердің саны. Туған күн мәселесінің теңдеулері мұнда толық қолданылмайды, Маллори жасайтын хэштердің саны қарапайым соқтығысу үшін қажетті хэштер санынан екі есе көп. Осы шабуылдан сақтану үшін қолтаңба схемасы үшін қолданылатын хэш функциясының шығыс ұзындығы жеткілікті түрде үлкен болуы керек, сондықтан туған күн шабуылы есептеу тұрғысынан мүмкін болмайды, яғни қарапайым күшпен шабуылдың алдын алу үшін қажетті биттердің шамамен екі есе көп. Бит ұзындығы үлкенірек болумен қатар, қол қоюшы (Боб) құжатқа кездейсоқ, зиянсыз өзгерістер енгізу арқылы және өзі қол қойған келісімшарттың көшірмесін сақтап, сотта оның қолтаңбасы тек жалған емес, нақты келісімшартқа сәйкес екенін дәлелдей алады. Логарифмдер үшін Полардтың rho алгоритмі дискретті логарифмдерді есептеу үшін туған күн шабуылын пайдаланатын алгоритмнің мысалы болып табылады.
To avoid this attack, the output length of the hash function used for a signature scheme can be chosen large enough so that the birthday attack becomes computationally infeasible, i. e. about twice as many bits as are needed to prevent an ordinary brute force attack. Besides using a larger bit length, the signer (Bob) can protect himself by making some random, inoffensive changes to the document before signing it, and by keeping a copy of the contract he signed in his own possession, so that he can at least demonstrate in court that his signature matches that contract, not just the fraudulent one. Pollard's rho algorithm for logarithms is an example for an algorithm using a birthday attack for the computation of discrete logarithms.
Кері шабуыл
Сол сияқты, қол қоюшы Боб емес, Мэллори болса, алаяқтық жасау мүмкін. Боб Мэллориге келісімшартты қол қоюға ұсынып, оған келісімшарт жіберуі мүмкін. Мэллори осы әділ келісімшарттың, жалған келісімшартпен бірдей қолтаңбасы бар, бірақ көрінеу өзгертілген нұсқасын таба алады, содан кейін өзгертілген әділ келісімшартты және қолтаңбаны Бобқа жіберуі мүмкін. Кейін Мэллори жалған көшірмені ұсына алады. Егер Бобта келісімшарттың көрінеу өзгертілген нұсқасы болмаса (мысалы, тек бастапқы ұсынысын тапса), Мэллоридің алаяқтығы табысқа жетеді. Егер Бобта ол нұсқа болса, Мэллори кем дегенде Бобтың алаяқ екенін айта алады.