Кіріспе

Криптографияда, бір жолды функцияның f қатты өзекті предикаты – b предикаты (яғни, шығысы бір бит болатын функция) болып табылады, оны x функциясы ретінде есептеу оңай, бірақ f(x) берілген кезде есептеу қиын. Формальды түрде, x-тің кездейсоқ таңдауы бойынша жартысынан артық ықтималдықпен f(x)-тен b(x)-ты есептейтін полиномиалдық уақыт (PPT) алгоритмі жоқ. Басқаша айтқанда, егер x біркелкі түрде кездейсоқ таңылса, онда f(x) берілген кезде, кез келген PPT қарсыласы қатты өзекті b(x) биті мен біркелкі кездейсоқ битті x ұзындығына қарағанда маргіналды айырмашылықпен ғана ажырата алады. Қатты өзекті функция да осыған ұқсас анықталуы мүмкін. Яғни, егер x біркелкі түрде кездейсоқ таңылса, онда f(x) берілген кезде, кез келген PPT алгоритмі h(x) қатты өзекті функция мәні мен h(x) ұзындығындағы біркелкі кездейсоқ биттерді x ұзындығына қарағанда маргіналды айырмашылықпен ғана ажырата алады. Қатты өзекті предикат f-ті инверттеудің қиындығын «жинақтау мағынасында» көрсетеді. Бір жолды функцияны инверттеу қиын болса да, f(x) кескінінен c преобразы туралы ішінара ақпаратты есептеудің мүмкіндігі туралы кепілдіктер жоқ. Мысалы, RSA бір жолды функция деп болжанғанмен, кескіннің алдын ала бейнесінің Якоби символын кескіннің символынан оңай есептеуге болады. f бір жолды функция болсын. g(x,r) = (f(x), r) деп анықтаңыз, онда r ұзындығы x ұзындығымен бірдей. xj – x-тің j-інші битін, rj – r-дің j-інші битін білдірсін. Содан кейін g-нің қатты өзекті предикаты болады. b(x, r) = <x, r>, мұнда <·, ·> – векторлық кеңістіктегі (Z2)n стандартты ішкі көбейтіндіні білдіреді. Бұл предикат есептеу мәселелеріне байланысты қатты өзекті; яғни, g(x, r) теориялық тұрғыдан ақпаратты жоғалтатындықтан оны есептеу қиын емес. Керісінше, егер осы предикатты тиімді есептейтін алгоритм болса, онда f-ті тиімді инверттейтін басқа алгоритм бар. Осыған ұқсас құрылым O(log |x|) шығыс биттері бар қатты өзекті функцияны береді. f бір жолды функция болсын. g(x, r) = (f(x), r) деп анықтаңыз, онда |r| = 2|x|. Ұзындық функциясы l(n) = O(log n) s. t. l(n) ≤ n болсын. Содан кейін h(x, r) := b1(x, r) b2(x, r) … bl(|x|)(x, r) – шығыс ұзындығы l(|x|) бар қатты өзекті функция. Кейде x-тың нақты биті қатты өзекті болады. Мысалы, RSA функциясына берілетін әрбір бит RSA-ның қатты өзекті предикаты болып табылады және x-тың O(log |x|) биттері полиномиалдық уақытта кездейсоқ бит тізбектерінен ажыратылмайды (RSA функциясын инверттеу қиын деген болжам бойынша). Қатты өзекті предикаттар кез келген бір жолды пермутациядан псевдокезеңді генераторды құрудың жолын береді. Егер b – f бір жолды пермутациясының қатты өзекті предикаты болса, ал s – кездейсоқ тұқым болса, онда fn – f-ті s-ке қолданудың n-інші қайталануын білдіреді, ал b – әр n-інші дөңгелекпен құрылған қатты өзекті бит. Қақпақ біржақты пермутациялардың қатты өзекті предикаттары (қақпақ предикаттары деп аталады) семантикалық қауіпсіз ашық кілт шифрлау схемаларын құру үшін пайдаланылуы мүмкін.