Кіріспе

Күшпен бұзу шабуылынан қорғау үшін криптографиялық кілтіні тексеруге қажетті уақытты ұзарту

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

Тарих

Алғашқы қасақана баяу парольге негізделген кілт шығару функциясы "CRYPT" 1978 жылы Роберт Моррис Unix парольдерін шифрлау үшін сипаттады. Ол 25 итерация санын, 12 бит тұзды және DES-тің бір түрін қосалқы функция ретінде қолданды. (Стандартты DES аппараттық құралдарын пайдаланып шабуылдар жасауды қиын ету үшін нақты DES-тен аулақ болды.) Парольдер ASCII кодировкасында ең көп сегіз таңбаға дейін шектелген. CRYPT(3) өз заманы үшін үлкен жетістік болғанымен, қазір ол жеткіліксіз деп саналады. PDP 11 дәуірі үшін есептелген итерация саны тым төмен, 12 бит тұз ыңғайсыздық тудырады, бірақ алдын ала есептелген сөздіктерді пайдаланып жасалатын шабуылдарды тоқтата алмайды, ал сегіз таңбалық шектеу күшті парольдік фразаларды қолдануға мүмкіндік бермейді. PBKDF2 сияқты қазіргі заманғы парольге негізделген кілт шығару функциялары SHA 2 сияқты криптографиялық хэш, ұзын тұз (мысалы, 64 бит) және жоғары итерация санын қолданады. АҚШ Ұлттық Стандарттар және Технология Институты (NIST) кемінде 10 000 итерацияны ұсынады. "Өте маңызды кілттер үшін немесе өте қуатты жүйелер үшін, немесе пайдаланушы сезетін жылдамдық маңызды емес жүйелер үшін 10 000 000 итерация саны орынды болуы мүмкін."

2009 жылы кілтті тестілеу жылдамдығын арттыру үшін арнайы, жоғары параллельді аппаратты пайдалануды шектеу мақсатымен жадты көп пайдаланатын кілт күшейту алгоритмі scrypt енгізілді. 2013 жылы графикалық процессорлар мен арнайы аппараттық құралдардың шабуылдарына қарсы тұра алатын жақсартылған кілт созу стандартын таңдау үшін парольді хэштеу бойынша бәйге ұйымдастырылды. Жеңімпаз – Argon2, 2015 жылдың 1 шілдесінде жарияланды.