Share
Embed
Математические аспекты задачи обфускации программ
Захаров В.А
ф-т ВМиК МГУ им. М.В. Ломоносова
crdoo
October 09, 2018
Transcript
52 slides
-
Ìàòåìàòè÷åñêèå àñïåêòû çàäà÷è îáôóñêàöèè ïðîãðàìì Â.À. Çàõàðîâ ô-ò ÂÌèÊ ÌÃÓ
èì. Ì.Â. Ëîìîíîñîâà -
ÎÁÔÓÑÊÀÖÈß ÏÐÎÃÐÀÌÌ ýòî òàêàÿ ðàçíîâèäíîñòü ýêâèâàëåíòíûõ ïðåîáðàçîâàíèé ïðîãðàìì, êîòîðàÿ
ïðåäíàçíà÷åíà äëÿ çàòðóäíåíèÿ ïîíèìàíèÿ ïðîãðàìì è èçâëå÷åíèÿ èç íèõ ïîëåçíîé èíôîðìàöèè îá àëãîðèòìàõ, ñòðóêòóðàõ äàííûõ, ñåêðåòíûõ êëþ÷àõ, ñîäåðæàùèõñÿ â ïðîãðàììàõ. -
ÎÁÔÓÑÊÀÖÈß ÏÐÎÃÐÀÌÌ ýòî òàêàÿ ðàçíîâèäíîñòü ýêâèâàëåíòíûõ ïðåîáðàçîâàíèé ïðîãðàìì, êîòîðàÿ
ïðåäíàçíà÷åíà äëÿ çàòðóäíåíèÿ ïîíèìàíèÿ ïðîãðàìì è èçâëå÷åíèÿ èç íèõ ïîëåçíîé èíôîðìàöèè îá àëãîðèòìàõ, ñòðóêòóðàõ äàííûõ, ñåêðåòíûõ êëþ÷àõ, ñîäåðæàùèõñÿ â ïðîãðàììàõ. Îñíîâíûå çàäà÷è Êàê ïîñòðîèòü îáôóñêàòîð ïðîãðàìì? Êàê îöåíèòü ñòîéêîñòü îáôóñêàöèè? -
ÄÂÀ ÍÀÏÐÀÂËÅÍÈß ÈÑÑËÅÄÎÂÀÍÈÉ Îáôóñêàöèÿ äëÿ íóæä êðèïòîãðàôèè Die W., Hellman
M. New directions in cryptography . IEEE Transactions in Information Theory, 1976. Îáôóñêàöèÿ ïîçâîëÿåò ïðåîáðàçîâûâàòü êðèïòîñèñòåìû ñ ñåêðåòíûì êëþ÷îì â êðèïòîñèñòåìû ñ îòêðûòûì êëþ÷îì. Äëÿ ýòîãî äîñòàòî÷íî ïîäâåðãíóòü îáôóñêàöèè ïðîãðàììó, ðåàëèçóþùóþ àëãîðèòì øèôðîâàíèÿ ñ âñòàâëåííûì â íåå ñåêðåòíûì êëþ÷îì. Ïðåîáðàçîâàííóþ òàêèì îáðàçîì ïðîãðàììó ìîæíî èñïîëüçîâàòü â êà÷åñòâå ïðîãðàììû øèôðîâàíèÿ êðèïòîñèñòåìû ñ îòêðûòûì êëþ÷îì. -
ÄÂÀ ÍÀÏÐÀÂËÅÍÈß ÈÑÑËÅÄÎÂÀÍÈÉ Îáôóñêàöèÿ äëÿ íóæä êðèïòîãðàôèè Îáôóñêàöèÿ ïðîãðàìì ïîçâîëÿåò
ïðåâðàùàòü êðèïòîñèòåìû ñ ñåêðåòíûì êëþ÷îì â êðèïòîñèñòåìû ñ îòêðûòûì êëþ÷îì, ñòðîèòü ñèñòåìû âû÷èñëåíèé íàä çàøèôðîâàííûìè äàííûìè (êðèïòîñèñòåìû ãîìîìîðôíûõ âû÷èñëåíèé), èçáàâèòüñÿ îò ìîäåëè ñëó÷àéíîãî îðàêóëà â êðèïòîãðàôè÷åñêèõ ïðîòîêîëàõ, ñîçäàâàòü âåðèôèöèðóåìûå ñèñòåìû òàéíîãî ãîëîñîâàíèÿ, îáåñïå÷èòü êîíôèäåíöèàëüíîñòü â ïîèñêîâûõ ñèñòåìàõ è áàçàõ äàííûõ. -
ÄÂÀ ÍÀÏÐÀÂËÅÍÈß ÈÑÑËÅÄÎÂÀÍÈÉ Îáôóñêàöèÿ äëÿ íóæä êðèïòîãðàôèè Íî äëÿ ýòîãî
îáôóñêàöèÿ äîëæíà óäîâëåòâîðÿòü î÷åíü ñòðîãèì òðåáîâàíèÿì ñòîéêîñòè, ïðèíÿòûì â êðèïòîãðàôèè. Ñîâðåìåííîå ñîñòîÿíèå äåë â ýòîì íàïðàâëåíèè èññëåäîâàíèé òàêîâî: î÷åíü ìíîãî îòðèöàòåëüíûõ ðåçóëüòàòîâ, è î÷åíü ìàëî ïîëîæèòåëüíûõ äîñòèæåíèé. -
ÄÂÀ ÍÀÏÐÀÂËÅÍÈß ÈÑÑËÅÄÎÂÀÍÈÉ Îáôóñêàöèÿ äëÿ îáåñïå÷åíèÿ êîìïüþòåðíîé áåçîïàñíîñòè Collberg C.,
Thomborson C., Low D. A taxonomy of obfuscating transformations , Tech. Report, N 148, Dept. of Computer Science, University of Auckland, 1997. Îáôóñêèðóþùèå ïðåîáðàçîâàíèÿ ìîæíî èñïîëüçîâàòü äëÿ çàùèòû èíòåëëåêòóàëüíîé ñîáñòâåííîñòè íà ïðîãðàììíîå îáåñïå÷åíèå, èíôîðìàöèîííîé çàùèòû ìîáèëüíûõ àãåíòîâ è ìèêðîýëåêòðîííûõ ñõåì íà ýòàïå ïðîåêòèðîâàíèÿ, à òàêæå äëÿ -
ÄÂÀ ÍÀÏÐÀÂËÅÍÈß ÈÑÑËÅÄÎÂÀÍÈÉ Îáôóñêàöèÿ äëÿ îáåñïå÷åíèÿ êîìïüþòåðíîé áåçîïàñíîñòè Collberg C.,
Thomborson C., Low D. A taxonomy of obfuscating transformations , Tech. Report, N 148, Dept. of Computer Science, University of Auckland, 1997. Îáôóñêèðóþùèå ïðåîáðàçîâàíèÿ ìîæíî èñïîëüçîâàòü äëÿ çàùèòû èíòåëëåêòóàëüíîé ñîáñòâåííîñòè íà ïðîãðàììíîå îáåñïå÷åíèå, èíôîðìàöèîííîé çàùèòû ìîáèëüíûõ àãåíòîâ è ìèêðîýëåêòðîííûõ ñõåì íà ýòàïå ïðîåêòèðîâàíèÿ, à òàêæå äëÿ ñîêðûòèÿ èñêóññòâåííûõ óÿçâèìîñòåé â ïðîãðàììàõ , ìàñêèðîâêè êîìïüþòåðíûõ ¾âèðóñîâ¿ , óäàëåíèÿ ¾âîäÿíûõ çíàêîâ¿ èç ïðîãðàìì . -
ÄÂÀ ÍÀÏÐÀÂËÅÍÈß ÈÑÑËÅÄÎÂÀÍÈÉ Îáôóñêàöèÿ äëÿ îáåñïå÷åíèÿ êîìïüþòåðíîé áåçîïàñíîñòè Öåëü îáôóñêàöèè
îêàçàòü ïðîòèâîäåéñòâèå ìåòîäàì îáðàòíîé èíæåíåðèè è àëãîðèòìàì ñòàòè÷åñêîãî è äèíàìè÷åñêîãî àíàëèçà ïðîãðàìì. Ñîâðåìåííîå ñîñòîÿíèå äåë â ýòîì íàïðàâëåíèè èññëåäîâàíèé òàêîâî: ìíîãî ¾ýâðèñòè÷åñêèõ¿ ìåòîäîâ îáôóñêàöèè, è íèêàêèõ îöåíîê èõ ñòîéêîñòè. -
ÄÂÀ ÍÀÏÐÀÂËÅÍÈß ÈÑÑËÅÄÎÂÀÍÈÉ Îáôóñêàöèÿ äëÿ îáåñïå÷åíèÿ êîìïüþòåðíîé áåçîïàñíîñòè C. Wang,
¾A Security Architecture for survivability Mechanisms¿, PhD thesis, Dep. of Computer Science, University of Virginia, 2000. G. Wroblewski, ¾General Method of Program Code Obfuscation¿, PhD thesis, Wroclaw University, 2002. À.Â. ×åðíîâ, ¾Èññëåäîâàíèå è ðàçðàáîòêà ìåòîäîëîãèè ìàñêèðîâêè ïðîãðàìì¿, Äèññ. íà ñîèñêàíèå ó÷. ñò. ê.ô.-ì.í, ÂÌÊ ÌÃÓ, 2003. Y. T. Kalai, ¾Attacks on the Fiat-Shamir Paradigm and Program Obfuscation¿, PhD thesis, MIT, 2006 -
ÄÂÀ ÍÀÏÐÀÂËÅÍÈß ÈÑÑËÅÄÎÂÀÍÈÉ Îáôóñêàöèÿ äëÿ îáåñïå÷åíèÿ êîìïüþòåðíîé áåçîïàñíîñòè S. Drape,
¾Obfuscation of Abstract Data-Types¿, PhD thesis, University of Oxford, 2004. Ä.À. Ùåëêóíîâ, ¾Ðàçðàáîòêà ìåòîäèê çàùèòû ïðîãðàìì îò àíàëèçà è ìîäèôèêàöèè íà îñíîâå çàïóòûâàíèÿ êîäà è äàííûõ¿, Äèññ. íà ñîèñêàíèå ó÷. ñò. ê.ò.íàóê, ÌÃÒÓ èì. Í.Ý. Áàóìàíà, 2009. Mila Dalla Preda, ¾Code Obfuscation and Malware Detection by Abstract Interpretation¿, Ph.D. Thesis. Universita degli Studi di Verona, 2007. -
ÄÂÀ ÍÀÏÐÀÂËÅÍÈß ÈÑÑËÅÄÎÂÀÍÈÉ Îáôóñêàöèÿ äëÿ îáåñïå÷åíèÿ êîìïüþòåðíîé áåçîïàñíîñòè Í.À. Êîíîíîâ,
¾Ñòðóêòóðíàÿ îïòèìèçàöèÿ è îáôóñêàöèÿ êîìáèíàöèîííûõ öèôðîâûõ ñõåì â áàçèñå ÏËÈÑ/ÑÁÌÊ¿, Äèññ. íà ñîèñêàíèå ó÷. ñò. ê.ò.í., ÌÈÝÒ, 2011. J. Cappaert, ¾Code Obfuscation Techniques for Software Protection¿, PhD thesis, Katholieke Universiteit Leuven, B. Preneel (promotor), 112+14 pages, 2012. C. Collberg, J. Nagra. ¾Surreptitious Software: Obfuscation, Watermarking, and Tamperproong for Program Protection.¿ Addison-Wesley Professional, 2009. -
ÄÂÀ ÍÀÏÐÀÂËÅÍÈß ÈÑÑËÅÄÎÂÀÍÈÉ Ðàçðûâ ïðîëåãàåò ìåæäó ôîðìàëüíîé ïîñòàíîâêîé çàäà÷è îáôóñêàöèè
è ïðèëîæåíèÿìè : Îáëàñòü ïðèìåíåíèÿ îáôóñêàöèè îáøèðíà, íî ëèøü â ðåäêèõ ñëó÷àÿõ óäàâàëîñü äîáèòüñÿ ñòðîãîé ìàòåìàòè÷åñêîé ïîñòàíîâêè çàäà÷è îáôóñêàöèè ñ ïîäõîäÿùèì îïðåäåëåíèåì ñòîéêîñòè îáôóñêàöèè. -
ÄÂÀ ÍÀÏÐÀÂËÅÍÈß ÈÑÑËÅÄÎÂÀÍÈÉ Ðàçðûâ ïðîëåãàåò ìåæäó ôîðìàëüíîé ïîñòàíîâêîé çàäà÷è îáôóñêàöèè
è ïðèëîæåíèÿìè : Îáëàñòü ïðèìåíåíèÿ îáôóñêàöèè îáøèðíà, íî ëèøü â ðåäêèõ ñëó÷àÿõ óäàâàëîñü äîáèòüñÿ ñòðîãîé ìàòåìàòè÷åñêîé ïîñòàíîâêè çàäà÷è îáôóñêàöèè ñ ïîäõîäÿùèì îïðåäåëåíèåì ñòîéêîñòè îáôóñêàöèè. ïîëîæèòåëüíûìè è îòðèöàòåëüíûìè ðåçóëüòàòàìè : Åñòü ìíîãî ðåçóëüòàòîâ î íåâîçìîæíîñòè ïîñòðîåíèÿ óíèâåðñàëüíûõ îáôóñêàòîðîâ, íî ìàëî ÷òî èçâåñòíî î âîçìîæíîñòè ñòîéêîé îáôóñêàöèè äëÿ îòäåëüíûõ ñïåöèàëüíûõ êëàññîâ ïðîãðàìì. -
ÄÂÀ ÍÀÏÐÀÂËÅÍÈß ÈÑÑËÅÄÎÂÀÍÈÉ Ðàçðûâ ïðîëåãàåò ìåæäó ôîðìàëüíîé ïîñòàíîâêîé çàäà÷è îáôóñêàöèè
è ïðèëîæåíèÿìè : Îáëàñòü ïðèìåíåíèÿ îáôóñêàöèè îáøèðíà, íî ëèøü â ðåäêèõ ñëó÷àÿõ óäàâàëîñü äîáèòüñÿ ñòðîãîé ìàòåìàòè÷åñêîé ïîñòàíîâêè çàäà÷è îáôóñêàöèè ñ ïîäõîäÿùèì îïðåäåëåíèåì ñòîéêîñòè îáôóñêàöèè. ïîëîæèòåëüíûìè è îòðèöàòåëüíûìè ðåçóëüòàòàìè : Åñòü ìíîãî ðåçóëüòàòîâ î íåâîçìîæíîñòè ïîñòðîåíèÿ óíèâåðñàëüíûõ îáôóñêàòîðîâ, íî ìàëî ÷òî èçâåñòíî î âîçìîæíîñòè ñòîéêîé îáôóñêàöèè äëÿ îòäåëüíûõ ñïåöèàëüíûõ êëàññîâ ïðîãðàìì. òåîðèåé è ïðàêòèêîé îáôóñêàöèè : Èçâåñòíî ìíîãî ïðàêòè÷åñêèõ ìåòîäîâ îáôóñêàöèè ïðîãðàìì, îäíàêî, íà íèõ íå îêàçàëè íèêàêîãî âëèÿíèÿ îñíîâîïîëàãàþùèå ðåçóëüòàòû èç îáëàñòè êðèïòîãðàôèè. -
ÄÂÀ ÍÀÏÐÀÂËÅÍÈß ÈÑÑËÅÄÎÂÀÍÈÉ Äàëüíåéøèé ïðîãðåññ áóäåò âîçìîæåí, åñëè óäàñòñÿ ñáëèçèòü
îáà ýòèõ íàïðàâëåíèÿ èññëåäîâàíèé çà ñ÷åò ñîçäàíèÿ ñîãëàñîâàííîé ñèñòåìû òðåáîâàíèé ñòîéêîñòè, êîòîðûå ìîæíî áóäåò ïðèìåíÿòü äëÿ ðàçðàáîòêè ðàçíûõ ìåòîäîâ îáôóñêàöèè ïðîãðàìì â ðàçíûõ ïðèëîæåíèÿõ. -
ÄÂÀ ÍÀÏÐÀÂËÅÍÈß ÈÑÑËÅÄÎÂÀÍÈÉ Äàëüíåéøèé ïðîãðåññ áóäåò âîçìîæåí, åñëè óäàñòñÿ ñáëèçèòü
îáà ýòèõ íàïðàâëåíèÿ èññëåäîâàíèé çà ñ÷åò ñîçäàíèÿ ñîãëàñîâàííîé ñèñòåìû òðåáîâàíèé ñòîéêîñòè, êîòîðûå ìîæíî áóäåò ïðèìåíÿòü äëÿ ðàçðàáîòêè ðàçíûõ ìåòîäîâ îáôóñêàöèè ïðîãðàìì â ðàçíûõ ïðèëîæåíèÿõ. Áëàãîäàðÿ ýòîìó ìîæíî áóäåò ïîíÿòü, êàêèì òðåáîâàíèÿì ñòîéêîñòè äîëæíû óäîâëåòâîðÿòü òå èëè èíûå ðàçíîâèäíîñòè îáôóñêàöèè ïðîãðàìì; îöåíèòü, êàêèìè äîñòîèíñòâàìè è íåäîñòàòêàìè îáëàäàþò ðàçíûå ìåòîäû îáôóñêàöèè, ïðèñïîñîáèòü ôîðìàëüíûå ìåòîäû òåîðèè âû÷èñëåíèé è êðèïòîãðàôèè äëÿ íóæä îáôóñêàöèè ïðîãðàìì. -
ÎÁÔÓÑÊÀÖÈß ×ÀÑÒÈ×ÍÎ ÇÀÙÈÙÅÍÍÛÕ ÏÐÎÃÐÀÌÌ R. Ostrovsky, Ecient computation on oblivious
RAM, Proc. of 22nd ACM Symposium on Theory of Computing (STOC-90) Çàùèùåííûé ïðîöåññîð P èìååò îòêðûòóþ ïàìÿòü M : M ⇐⇒ P -
ÎÁÔÓÑÊÀÖÈß ×ÀÑÒÈ×ÍÎ ÇÀÙÈÙÅÍÍÛÕ ÏÐÎÃÐÀÌÌ R. Ostrovsky, Ecient computation on oblivious
RAM, Proc. of 22nd ACM Symposium on Theory of Computing (STOC-90) Çàùèùåííûé ïðîöåññîð P èìååò îòêðûòóþ ïàìÿòü M : M ⇐⇒ P Òåîðåìà Åñëè ñóùåñòâóþò îäíîñòîðîííèå ôóíêöèè, òî ëþáóþ ïðîãðàììó π ìîæíî ïðåîáðàçîâàòü â ýêâèâàëåíòíóþ ïðîãðàììó O(π) òàê, ÷òî: 1. Time(O(π)) = Time(π) × log3(Time(π)); 2. Ïðè âûïîëíåíèè O(π) íà âû÷èñëèòåëüíîì óñòðîéñòâå ñ çàêðûòûì ïðîöåññîðîì P è îòêðûòîé ïàìÿòüþ M íèêàêîé ïðîòèâíèê, îãðàíè÷åííûé ïîëèíîìèàëüíûì âðåìåíåì, íå ñïîñîáåí ðàñïîçíàòü ïðîãðàììó O(π) ïî ïîñëåäîâàòåëüíîñòè åå îáðàùåíèé ê ïàìÿòè. -
ÑÒÎÉÊÎÑÒÜ ÎÁÔÓÑÊÀÖÈÈ Â ÌÎÄÅËÈ ÂÈÐÒÓÀËÜÍÎÃÎ ¾×ÅÐÍÎÃÎ ßÙÈÊÀ¿ [Barak B., Goldreich
O., Impagliazzo R., et al., 2001] Âåðîÿòíîñòíûé àëãîðèòì O íàçûâàåòñÿ îáôóñêàòîðîì, ñòîéêèì â ìîäåëè ¾÷åðíîãî ÿùèêà¿, åñëè îí óäîâëåòâîðÿåò ñëåäóþùèì òðåáîâàíèÿì: 1. (ôóíêöèîíàëüíîñòü) äëÿ ëþáîé ìàøèíû Òüþðèíãà M M ≈ O(M). 2. (ïîëèíîìèàëüíîå çàìåäëåíèå) Ñóùåñòâóåò òàêîé ïîëèíîì p(·) , ÷òî äëÿ ëþáîé ìàøèíû Òüþðèíãà M size(O(M)) ≤ p(size(M)), time(O(M)) ≤ p(time(M)). 3. (ñòîéêîñòü) Äëÿ ëþáîé PPT A (ïðîòèâíèêà ) ñóùåñòâóåò PPT S (ñèìóëÿòîð ) è ïðåíåáðåæèìî ìàëàÿ ôóíêöèÿ ν , òàêèå ÷òî íåðàâåíñòâî |Pr{A(O(M))=1} − Pr{SM(1size(M))=1}| ≤ ν(size(M)) âûïîëíÿåòñÿ äëÿ ëþáîé ìàøèíû Òüþðèíãà M . -
ÑÒÎÉÊÎÑÒÜ ÎÁÔÓÑÊÀÖÈÈ Â ÌÎÄÅËÈ ÂÈÐÒÓÀËÜÍÎÃÎ ¾×ÅÐÍÎÃÎ ßÙÈÊÀ¿ Òåîðåìà [Barak B.,
Goldreich O., Impagliazzo R., et al., 2001] Îáôóñêàòîðîâ, ñòîéêèõ â ìîäåëè ¾÷åðíîãî ÿùèêà¿, íå ñóùåñòâóåò . -
ÑÒÎÉÊÎÑÒÜ ÎÁÔÓÑÊÀÖÈÈ Â ÌÎÄÅËÈ ÂÈÐÒÓÀËÜÍÎÃÎ ¾×ÅÐÍÎÃÎ ßÙÈÊÀ¿ Äîêàçàòåëüñòâî. Ñóùåñòâóþò òàêèå
âû÷èñëèìûå ôóíêöèè, ÷òî ëþáóþ èõ ïðîãðàììíóþ ðåàëèçàöèþ íåâîçìîæíî îáôóñêèðîâàòü. -
ÑÒÎÉÊÎÑÒÜ ÎÁÔÓÑÊÀÖÈÈ Â ÌÎÄÅËÈ ÂÈÐÒÓÀËÜÍÎÃÎ ¾×ÅÐÍÎÃÎ ßÙÈÊÀ¿ Äîêàçàòåëüñòâî. Ñóùåñòâóþò òàêèå
âû÷èñëèìûå ôóíêöèè, ÷òî ëþáóþ èõ ïðîãðàììíóþ ðåàëèçàöèþ íåâîçìîæíî îáôóñêèðîâàòü. Fα,β (x) = β, åñëè x = α , 0 â îñòàëüíûõ ñëó÷àÿõ . Gγ,δ (x) = 1, åñëè x(γ) = δ , 0 â îñòàëüíûõ ñëó÷àÿõ . Hα,β,γ,δ (x, y) = Fα,β (x), åñëè y = 0 , Gγ,δ (x), åñëè y = 0. -
ÑÒÎÉÊÎÑÒÜ ÎÁÔÓÑÊÀÖÈÈ Â ÌÎÄÅËÈ ÂÈÐÒÓÀËÜÍÎÃÎ ¾×ÅÐÍÎÃÎ ßÙÈÊÀ¿ Äîêàçàòåëüñòâî. Ïðåäïîëîæèì, ÷òî
π ïðîãðàììà, âû÷èñëÿþùàÿ ôóíêöèþ Hα,β,γ,δ , è O(π) ýòî îáôóñêàöèÿ ïðîãðàììû π. Ðàñïîëàãàÿ ïðîãðàììîé O(π), òðåáóåòñÿ âûÿñíèòü, ïðàâäà ëè, ÷òî α = γ è β = δ. -
ÑÒÎÉÊÎÑÒÜ ÎÁÔÓÑÊÀÖÈÈ Â ÌÎÄÅËÈ ÂÈÐÒÓÀËÜÍÎÃÎ ¾×ÅÐÍÎÃÎ ßÙÈÊÀ¿ Äîêàçàòåëüñòâî. Ïðåäïîëîæèì, ÷òî
π ïðîãðàììà, âû÷èñëÿþùàÿ ôóíêöèþ Hα,β,γ,δ , è O(π) ýòî îáôóñêàöèÿ ïðîãðàììû π. Ðàñïîëàãàÿ ïðîãðàììîé O(π), òðåáóåòñÿ âûÿñíèòü, ïðàâäà ëè, ÷òî α = γ è β = δ. Åñëè òåêñò ïðîãðàììû O(π) íåäîñòóïåí, òî ýòî ìîæíî ñäåëàòü òîëüêî ïîëíûì ïåðåáîðîì. -
ÑÒÎÉÊÎÑÒÜ ÎÁÔÓÑÊÀÖÈÈ Â ÌÎÄÅËÈ ÂÈÐÒÓÀËÜÍÎÃÎ ¾×ÅÐÍÎÃÎ ßÙÈÊÀ¿ Äîêàçàòåëüñòâî. Ïðåäïîëîæèì, ÷òî
π ïðîãðàììà, âû÷èñëÿþùàÿ ôóíêöèþ Hα,β,γ,δ , è O(π) ýòî îáôóñêàöèÿ ïðîãðàììû π. Ðàñïîëàãàÿ ïðîãðàììîé O(π), òðåáóåòñÿ âûÿñíèòü, ïðàâäà ëè, ÷òî α = γ è β = δ. Åñëè òåêñò ïðîãðàììû O(π) íåäîñòóïåí, òî ýòî ìîæíî ñäåëàòü òîëüêî ïîëíûì ïåðåáîðîì. Åñëè òåêñò ïðîãðàììû O(π) äîñòóïåí, òî äîñòàòî÷íî âû÷èñëèòü O(π)[O(π)[·, 0], 1] . -
ÑÒÎÉÊÎÑÒÜ ÎÁÔÓÑÊÀÖÈÈ Â ÌÎÄÅËÈ ÂÈÐÒÓÀËÜÍÎÃÎ ¾ÑÅÐÎÃÎ ßÙÈÊÀ¿ Âåðîÿòíîñòíûé àëãîðèòì O
íàçûâàåòñÿ îáôóñêàòîðîì, ñòîéêèì â ìîäåëè ¾ñåðîãî ÿùèêà¿, åñëè îí óäîâëåòâîðÿåò ñëåäóþùèì òðåáîâàíèÿì: 1. (ôóíêöèîíàëüíîñòü) 2. (ïîëèíîìèàëüíîå çàìåäëåíèå) 3. (ñòîéêîñòü) Äëÿ ëþáîé PPT A (ïðîòèâíèêà) ñóùåñòâóåò PPT S (ñèìóëÿòîð) è ïðåíåáðåæèìî ìàëàÿ ôóíêöèÿ ν , òàêèå ÷òî íåðàâåíñòâî |Pr{A(O(M))=1} − Pr{STr(M)(1size(M))=1}| ≤ ν(size(M)) âûïîëíÿåòñÿ äëÿ ëþáîé ìàøèíû Òüþðèíãà M . Îðàêóë Tr(M) â îòâåò íà çàïðîñ x âûäàåò ïàðó (y, trM(x)) , ñîñòîÿùóþ èç ðåçóëüòàòà âû÷èñëåíèÿ y = M(x) òðàññû trM(x) âûïîëíåíèÿ ÌÒ M íà âõîäå x . -
ÑÒÎÉÊÎÑÒÜ ÎÁÔÓÑÊÀÖÈÈ Â ÌÎÄÅËÈ ÂÈÐÒÓÀËÜÍÎÃÎ ¾ÑÅÐÎÃÎ ßÙÈÊÀ¿ Ðàññìîòðèì ñåìåéñòâî ðåàãèðóþùèõ
ÌÒ (RMT), íà âõîä êîòîðûõ ïîäàåòñÿ áåñêîíå÷íûé ïîòîê äàííûõ (çàïðîñîâ) x1, x2, . . . , xn, . . . . RMT âû÷èñëÿåò áåñêîíå÷íûé ïîòîê âûõîäíûõ äàííûõ (îòêëèêîâ) y1, y2, . . . , yn, . . . : yn = Fn(x1, x2, . . . , xn). Òåîðåìà[Âàðíîâñêèé Í.Ï., 2002] Åñëè ñóùåñòâóþò îäíîñòîðîííèå ôóíêöèè, òî îáôóñêàòîðîâ, ñòîéêèõ â ìîäåëè âèðòóàëüíîãî ¾ñåðîãî ÿùèêà¿, äëÿ ðåàãèðóþùèõ ÌÒ íå ñóùåñòâóåò . -
ÑÒÎÉÊÎÑÒÜ ÎÁÔÓÑÊÀÖÈÈ Â ÌÎÄÅËÈ ÂÈÐÒÓÀËÜÍÎÃÎ ¾ÑÅÐÎÃÎ ßÙÈÊÀ¿ Îòêðûòàÿ ïðîáëåìà À
ñóùåñòâóþò ëè îáôóñêàòîðû, ñòîéêèå â ìîäåëè âèðòóàëüíîãî ¾ñåðîãî ÿùèêà ¿, äëÿ îáû÷íûõ ìàøèí Òüþðèíãà? -
ÎÁÔÓÑÊÀÖÈß ÄËß ÇÀÙÈÒÛ ÀËÃÎÐÈÒÌÎÂ Âåðîÿòíîñòíûé àëãîðèòì O íàçûâàåòñÿ îáôóñêàòîðîì, ñòîéêî
çàùèùàþùèì àëãîðèòìû, åñëè îí óäîâëåòâîðÿåò ñëåäóþùèì òðåáîâàíèÿì: 1. (ôóíêöèîíàëüíîñòü) 2. (ïîëèíîìèàëüíîå çàìåäëåíèå) 3. (ñòîéêîñòü) Äëÿ ëþáîé PPT A (ïðîòèâíèêà) ñóùåñòâóåò PPT S (ñèìóëÿòîð) è ïðåíåáðåæèìî ìàëàÿ ôóíêöèÿ ν , òàêèå ÷òî íåðàâåíñòâî |Pr{A(O(M),N)=1} − Pr{SM(1size(M),N)=1}|≤ν(size(M)) âûïîëíÿåòñÿ äëÿ ëþáîé òàêîé ïàðû ÌÒ (M, N) , êîòîðàÿ óäîâëåòâîðÿåò óñëîâèÿì M ≈ N, size(N) = poly(size(M)). -
ÎÁÔÓÑÊÀÖÈß ÄËß ÇÀÙÈÒÛ ÀËÃÎÐÈÒÌÎÂ Òåîðåìà Ñóùåñòâóåò îáôóñêàòîð, ñòîéêî çàùèùàþùèé àëãîðèòìû,
ïðåäñòàâëåííûå äåòåðìèíèðîâàííûìè êîíå÷íûìè àâòîìàòàìè. -
ÎÁÔÓÑÊÀÖÈß ÄËß ÇÀÙÈÒÛ ÀËÃÎÐÈÒÌÎÂ Òåîðåìà Ñóùåñòâóåò îáôóñêàòîð, ñòîéêî çàùèùàþùèé àëãîðèòìû,
ïðåäñòàâëåííûå äåòåðìèíèðîâàííûìè êîíå÷íûìè àâòîìàòàìè. Îáôóñêàòîð äåòåðìèíèðîâàííûõ êîíå÷íûõ àâòîìàòîâ ýòî ïðîñòî àëãîðèòì ìèíèìèçàöèè êîíå÷íûõ àâòîìàòîâ. Ýòî òèïè÷íûé ïðèìåð òðèâèàëüíîé îáôóñêàöèè àëãîðèòìîâ ïóòåì ýôôåêòèâíîãî ïðèâåäåíèÿ ïðîãðàìì ê åäèíñòâåííîé íîðìàëüíîé ôîðìå (ñòðîãàÿ íîðìàëèçóåìîñòü). -
ÎÁÔÓÑÊÀÖÈß ÄËß ÇÀÙÈÒÛ ÀËÃÎÐÈÒÌÎÂ S. Goldwasser, G. N. Rothblum, On
Best Possible Obfuscation, TCC 2007. Âåðîÿòíîñòíûé àëãîðèòì O íàçûâàåòñÿ íàèëó÷øèì âîçìîæíûì îáôóñêàòîðîì, åñëè îí óäîâëåòâîðÿåò ñëåäóþùèì òðåáîâàíèÿì: 1. (ôóíêöèîíàëüíîñòü) 2. (ïîëèíîìèàëüíîå çàìåäëåíèå) 3. (ñòîéêîñòü) Äëÿ ëþáîé PPT L (âûâåäûâàòåëü) ñóùåñòâóåò òàêàÿ PPT S (ñèìóëÿòîð), ÷òî äëÿ äîñòàòî÷íî áîëüøèõ n è äëÿ ïðîèçâîëüíîé ïàðû ÌÒ M1 , M2 , âû÷èñëÿþùèõ îäíó è òó æå ôóíêöèþ è èìåþùèõ ðàçìåð n , ò. å. M1 ≈ M2 , size(M1) = size(M2) = n , äâà ðàñïðåäåëåíèÿ âåðîÿòíîñòåé L(O(M1)) è S(M2) âû÷èñëèòåëüíî íåîòëè÷èìû çà ïîëèíîìèàëüíîå âðåìÿ. -
ÎÁÔÓÑÊÀÖÈß ÄËß ÇÀÙÈÒÛ ÀËÃÎÐÈÒÌÎÂ Òåîðåìà [S. Goldwasser, G. N. Rothblum,
2007] Ñóùåñòâóåò íàèëó÷øèé âîçìîæíûé îáôóñêàòîð äëÿ OBDD ïîëèíîìèàëüíîãî ðàçìåðà. -
ÎÁÔÓÑÊÀÖÈß ÄËß ÇÀÙÈÒÛ ÀËÃÎÐÈÒÌÎÂ Òåîðåìà [S. Goldwasser, G. N. Rothblum,
2007] Ñóùåñòâóåò íàèëó÷øèé âîçìîæíûé îáôóñêàòîð äëÿ OBDD ïîëèíîìèàëüíîãî ðàçìåðà. Òåîðåìà Åñëè äëÿ ñåìåéñòâà 3-CNF ñóùåñòâóåò íàèëó÷øèé âîçìîæíûé îáôóñêàòîð, òî Σpoly 2 = PSPACE . -
ÎÁÔÓÑÊÀÖÈß ÄËß ÇÀÙÈÒÛ ÀËÃÎÐÈÒÌÎÂ [Barak B., Goldreich O., Impagliazzo R.,
et al., 2001] Âåðîÿòíîñòíûé àëãîðèòì O îáëàäàåò ñâîéñòâîì íåîòëè÷èìîãî îáôóñêàòîðà, åñëè îí óäîâëåòâîðÿåò ñëåäóþùèì òðåáîâàíèÿì: 1. (ôóíêöèîíàëüíîñòü) äëÿ ëþáîé ìàøèíû Òüþðèíãà M M ≈ O(M). 2. (ïîëèíîìèàëüíîå çàìåäëåíèå) Ñóùåñòâóåò òàêîé ïîëèíîì p(·) , ÷òî äëÿ ëþáîé ìàøèíû Òüþðèíãà M size(O(M)) ≤ p(size(M)), time(O(M)) ≤ p(time(M)). 3. (ñòîéêîñòü) Äëÿ ëþáîé PPT A (ïðîòèâíèêà ) ñóùåñòâóåò òàêàÿ ïðåíåáðåæèìî ìàëàÿ ôóíêöèÿ ν , ÷òî äëÿ ëþáîé ïàðû ìàøèí Òüþðèíãà M1, M2 , åñëè M1 ∼ M2 , òî |Pr{A(O(M1))=1}−Pr{A(O(M2))=1}|≤ν(size(M1) + size(M2) -
ÎÁÔÓÑÊÀÖÈß ÄËß ÇÀÙÈÒÛ ÀËÃÎÐÈÒÌÎÂ Îòêðûòûå ïðîáëåìû Ñóùåñòâóþò ëè êëàññû ïðîãðàìì,
äîïóñêàþùèõ íåòðèâèàëüíóþ ñòîéêóþ îáôóñêàöèþ, çàùèùàþùóþ àëãîðèòìû ? Ñóùåñòâóþò ëè ïðîãðàììû, íå èìåþùèå ñòîéêîé îáôóñêàöèè, çàùèùàþùåé àëãîðèòìû ? Êàê ñâÿçàíû äðóã ñ äðóãîì îáôóñêàöèÿ, çàùèùàþùàÿ àëãîðèòìû è íàèëó÷øàÿ âîçìîæíàÿ îáôóñêàöèÿ? -
ÎÁÔÓÑÊÀÖÈß, ÑÊÐÛÂÀÞÙÀß ÊÎÍÑÒÀÍÒÓ Ïóñòü M ýòî ïðîãðàììà ñ ïàðàìåòðîì
(ïåðåìåííîé) x . Îáîçíà÷èì Mc ïðèìåð ïðîãðàììû M , â êîòîðîé âìåñòî ïàðàìåòðà x ïîäñòàâëåíà êîíñòàíòà c ∈ {0, 1}n. Âåðîÿòíîñòíûé àëãîðèòì O íàçûâàåòñÿ îáôóñêàòîðîì, ñêðûâàþùèì êîíñòàíòó, äëÿ ïàðàìåòðèçîâàííîãî ñåìåéñòâà ïðîãðàìì F = {Mc : c ∈ {0, 1}n, n ≥ 1} , åñëè îí óäîâëåòâîðÿåò ñëåäóþùèì òðåáîâàíèÿì: 1. (ôóíêöèîíàëüíîñòü) 2. (ïîëèíîìèàëüíîå çàìåäëåíèå) 3. (ñòîéêîñòü) Äëÿ ëþáîé PPT A (ïðîòèâíèêà) ñóùåñòâóåò PPT S (ñèìóëÿòîð) è ïðåíåáðåæèìî ìàëàÿ ôóíêöèÿ ν , òàêèå ÷òî íåðàâåíñòâî |Pr{A[O(Mc0 ), Mc]=1} − Pr{SMc0 [1size(Mc0 ), Mc]=1} ≤ ν(n) âåðíî äëÿ ëþáîé ïàðû êîíñòàíò c0 ∈ {0, 1}n è c ∈R {0, 1}n. -
ÎÁÔÓÑÊÀÖÈß, ÑÊÐÛÂÀÞÙÀß ÊÎÍÑÒÀÍÒÓ ÃÈÏÎÒÅÇÀ Ñòîéêàÿ îáôóñêàöèÿ, ñêðûâàþùàÿ êîíñòàíòó, íåâîçìîæíà ,
åñëè Mx ýòî óíèâåðñàëüíàÿ ìàøèíà Òüþðèíãà; âîçìîæíà , åñëè Mx = E(key(x), m) ýòî ïðîãðàììà øèôðîâàíèÿ ñòîéêîé êðèïòîñèñòåìû ñ îòêðûòûì êëþ÷îì key(x) è ñåêðåòíûì êëþ÷îì x . -
ÎÁÔÓÑÊÀÖÈß ÏÐÅÄÈÊÀÒÎÂ Âåðîÿòíîñòíûé àëãîðèòì O íàçûâàåòñÿ îáôóñêàòîðîì ïðåäèêàòà π ,
çàäàííîãî íà ñåìåéñòâå ìàøèí Òüþðèíãà F , åñëè îí óäîâëåòâîðÿåò ñëåäóþùèì òðåáîâàíèÿì: 1. (ôóíêöèîíàëüíîñòü) 2. (ïîëèíîìèàëüíîå çàìåäëåíèå) 3. (ñòîéêîñòü) Äëÿ ëþáîé PPT A (ïðîòèâíèêà) ñóùåñòâóåò PPT S (ñèìóëÿòîð) è ïðåíåáðåæèìî ìàëàÿ ôóíêöèÿ ν , òàêèå ÷òî íåðàâåíñòâî |Pr{A[O(M)]=π(M)} − Pr{SM[1size(M)]=π(M)}|≤neg(size(M)) âåðíî äëÿ êàæäîé ÌÒ M èç F è åå îáôóñêàöèè O(M) . -
ÎÁÔÓÑÊÀÖÈß ÏÐÅÄÈÊÀÒΠÒî÷å÷íîé íàçûâàåòñÿ ôóíêöèÿ fa : {0, 1}n →
{0, 1} , a ∈ {0, 1}n, óäîâëåòâîðÿþùàÿ óñëîâèþ fa(x) = 1 , åñëè x = a , 0 , åñëè x = a . Ðàññìîòðèì ñåìåéñòâî Fn , ñîñòîÿùåå èç òî÷å÷íûõ ôóíêöèé {fu : u ∈ {0, 1}n} è ôóíêöèè, òîæäåñòâåííî ðàâíîé 0. Íà ýòîì ñåìåéñòâå îïðåäåëåí ïðåäèêàò P(f ) = (f ≡ 0) . Òåîðåìà [Çàõàðîâ Â.À., Âàðíîâñêèé Í.Ï., 2003] Åñëè ñóùåñòâóþò îäíîñòîðîííèå ïåðåñòàíîâêè, òî ïðåäèêàò P , îïðåäåëåííûé íà ñåìåéñòâå ïðîãðàìì, âû÷èñëÿþùèõ ôóíêöèè ñåìåéñòâà Fn , èìååò ñòîéêóþ îáôóñêàöèþ. -
ÎÁÔÓÑÊÀÖÈß ÏÐÅÄÈÊÀÒΠÄîêàçàòåëüñòâî Íóæíî ñäåëàòü íåîòëè÷èìûìè äðóã îò äðóãà äâå
ïðîãðàììû prog π0 ; prog πa ; var x : string y : bit; var x : string y : bit; input (x) ; const a : string; y = 0; output (y); input (x) ; end of prog if x==a then y=1 else y=0; output (y); end of prog -
ÎÁÔÓÑÊÀÖÈß ÏÐÅÄÈÊÀÒΠÄîêàçàòåëüñòâî Íóæíî ñäåëàòü íåîòëè÷èìûìè äðóã îò äðóãà äâå
ïðîãðàììû prog π0 ; prog πa ; var x : string y : bit; var x : string y : bit; input (x) ; const a : string; y = 0; output (y); input (x) ; end of prog if x==a then y=1 else y=0; output (y); end of prog Íàì ïîíàäîáèòñÿ îäíîñòîðîííÿÿ ïåðåñòàíîâêà ϕ íà ìíîæåñòâå ñòðîê {0, 1}n è ãåíåðàòîð ñëó÷àéíûõ ñòðîê, êîòîðûé ìîæíî ïîñòðîèòü íà îñíîâå îäíîñòðîííåé ïåðåñòàíîâêè. -
ÎÁÔÓÑÊÀÖÈß ÏÐÅÄÈÊÀÒΠÄëÿ ïðîãðàììû π0 : 1) âûáðàòü äâå ñëó÷àéíûå
ñòðîêè w, u , 2) âû÷èñëèòü v = ϕ(w) è σ = n i=1 wi ui mod 2 . -
ÎÁÔÓÑÊÀÖÈß ÏÐÅÄÈÊÀÒΠÄëÿ ïðîãðàììû π0 : 1) âûáðàòü äâå ñëó÷àéíûå
ñòðîêè w, u , 2) âû÷èñëèòü v = ϕ(w) è σ = n i=1 wi ui mod 2 . Äëÿ ïðîãðàììû πa : 1) âûáðàòü ñëó÷àéíóþ ñòðîêó u , 2) âû÷èñëèòü v = ϕ(a) è σ = 1 + n i=1 ai ui mod 2 . -
ÎÁÔÓÑÊÀÖÈß ÏÐÅÄÈÊÀÒΠÄëÿ ïðîãðàììû π0 : 1) âûáðàòü äâå ñëó÷àéíûå
ñòðîêè w, u , 2) âû÷èñëèòü v = ϕ(w) è σ = n i=1 wi ui mod 2 . Äëÿ ïðîãðàììû πa : 1) âûáðàòü ñëó÷àéíóþ ñòðîêó u , 2) âû÷èñëèòü v = ϕ(a) è σ = 1 + n i=1 ai ui mod 2 . Òîãäà êàæäàÿ èç ïðîãðàìì π0 , πa , ãäå a ∈ {0, 1}n ïðèìåò âèä: prog O(π) ; var x : string y : bit; const u,v : string, σ : bit; input (x) ; if ϕ (x)==v then if σ == n i=1 xi ∗ ui mod 2 then y=0 else y=1 else y=0; output (y); end of prog -
ÎÁÔÓÑÊÀÖÈß ÏÐÅÄÈÊÀÒÎÂ Òåîðåìà Ïóñòü O1 , O2 îáôóñêàòîðû ôóíêöèîíàëüíûõ
ñâîéñòâ π1 , π2 ñîîòâåòñòâåííî, è ïðè ýòîì îáëàñòü çíà÷åíèé îáôóñêàòîðà O2 ñîäåðæèòñÿ â îáëàñòè îïðåäåëåíèÿ îáôóñêàòîðà O1 . Òîãäà êîìïîçèöèÿ O = O1O2 ÿâëÿåòñÿ îáôóñêàòîðîì îáîèõ ïðåäèêàòîâ π1 è π2 . -
ÇÀÊËÞ×ÅÍÈÅ Íóæíî ïðîäîëæàòü ýòîò ñïèñîê îïðåäåëåíèé, ôîðìóëèðóÿ âñå áîëåå è
áîëåå ñëàáûå òðåáîâàíèÿ ñòîéêîñòè, ïðèãîäíûå äëÿ ðåøåíèÿ äðóãèõ ïðèëîæåíèé îáôóñêàöèè. -
ÇÀÊËÞ×ÅÍÈÅ Íóæíî ïðîäîëæàòü ýòîò ñïèñîê îïðåäåëåíèé, ôîðìóëèðóÿ âñå áîëåå è
áîëåå ñëàáûå òðåáîâàíèÿ ñòîéêîñòè, ïðèãîäíûå äëÿ ðåøåíèÿ äðóãèõ ïðèëîæåíèé îáôóñêàöèè. Íóæíî àêòèâíåå ïðèâëåêàòü äëÿ îáôóñêàöèè äîñòèæåíèÿ êðèïòîãðàôèè è òåîðèè ñëîæíîñòè ñèñòåìû ãîìîìîðôíîãî øèôðîâàíèÿ, òðóäíîðåøàåìûå çàäà÷è. -
ÄÎÑÒÈÆÅÍÈß ÏÎÑËÅÄÍÈÕ ËÅÒ Â èþëå 2013 ã. áûëà îïóáëèêîâàíà ñòàòüÿ
Candidate Indistinguishability Obfuscation and Functional Encryption for All Circuits S. Garg, C. Gentry, S. Halevi, M. Raykova, A. Sahai, B. Waters â êîòîðîé àâòîðû ïîêàçàëè, ÷òî âåðíà Òåîðåìà [S. Carg, C. Gentry, et al, 2013] Íåîòëè÷èìàÿ îáôóñêàöèÿ âîçìîæíà äëÿ ïðîèçâîëüíûõ ïðîãðàìì (ïðè íåêîòîðûõ ïðåäïîëîæåíèÿõ î òðóäíîñòè ðåøåíèÿ çàäà÷ òåîðèè ãðóïï) -
ÄÎÑÒÈÆÅÍÈß ÏÎÑËÅÄÍÈÕ ËÅÒ 30 ñåíòÿáðÿ 2013 ã. áûëà îïóáëèêîâàíà ñòàòüÿ
Virtual Black-Box Obfuscation for All Circuits via Generic Graded Encoding. Zvika Brakerski, Guy N. Rothblum We present a new general-purpose obfuscator for all polynomial-size circuits. The obfuscator uses graded encoding schemes, a generalization of multilinear maps. We prove that the obfuscator exposes no more information than the program's black-box functionality, and achieves virtual black-box security , in the generic graded encoded scheme model.