Upgrade to Pro — share decks privately, control downloads, hide ads and more …

TMPA-2013 Keynote: Zakharov Obfuscation

TMPA-2013 Keynote: Zakharov Obfuscation

Tools & Methods of Program Analysis (TMPA-2013)
Vladimir A. Zakharov, Associate Professor of Mathematical Cybernetics Department, Head of Laboratory of Mathematical Problems of Computer Security, Faculty of Computational Mathematics and Cybernetics, Moscow State University (MSU)
Mathematical Aspects of Program Obfuscation

5206c19df417b8876825b5561344c1a0?s=128

Exactpro
PRO

October 12, 2013
Tweet

Transcript

  1. Ìàòåìàòè÷åñêèå àñïåêòû çàäà÷è îáôóñêàöèè ïðîãðàìì Â.À. Çàõàðîâ ô-ò ÂÌèÊ ÌÃÓ

    èì. Ì.Â. Ëîìîíîñîâà
  2. ÎÁÔÓÑÊÀÖÈß ÏÐÎÃÐÀÌÌ  ýòî òàêàÿ ðàçíîâèäíîñòü ýêâèâàëåíòíûõ ïðåîáðàçîâàíèé ïðîãðàìì, êîòîðàÿ

    ïðåäíàçíà÷åíà äëÿ çàòðóäíåíèÿ ïîíèìàíèÿ ïðîãðàìì è èçâëå÷åíèÿ èç íèõ ïîëåçíîé èíôîðìàöèè îá àëãîðèòìàõ, ñòðóêòóðàõ äàííûõ, ñåêðåòíûõ êëþ÷àõ, ñîäåðæàùèõñÿ â ïðîãðàììàõ.
  3. ÎÁÔÓÑÊÀÖÈß ÏÐÎÃÐÀÌÌ  ýòî òàêàÿ ðàçíîâèäíîñòü ýêâèâàëåíòíûõ ïðåîáðàçîâàíèé ïðîãðàìì, êîòîðàÿ

    ïðåäíàçíà÷åíà äëÿ çàòðóäíåíèÿ ïîíèìàíèÿ ïðîãðàìì è èçâëå÷åíèÿ èç íèõ ïîëåçíîé èíôîðìàöèè îá àëãîðèòìàõ, ñòðóêòóðàõ äàííûõ, ñåêðåòíûõ êëþ÷àõ, ñîäåðæàùèõñÿ â ïðîãðàììàõ. Îñíîâíûå çàäà÷è Êàê ïîñòðîèòü îáôóñêàòîð ïðîãðàìì? Êàê îöåíèòü ñòîéêîñòü îáôóñêàöèè?
  4. ÄÂÀ ÍÀÏÐÀÂËÅÍÈß ÈÑÑËÅÄÎÂÀÍÈÉ Îáôóñêàöèÿ äëÿ íóæä êðèïòîãðàôèè Die W., Hellman

    M. New directions in cryptography . IEEE Transactions in Information Theory, 1976. Îáôóñêàöèÿ ïîçâîëÿåò ïðåîáðàçîâûâàòü êðèïòîñèñòåìû ñ ñåêðåòíûì êëþ÷îì â êðèïòîñèñòåìû ñ îòêðûòûì êëþ÷îì. Äëÿ ýòîãî äîñòàòî÷íî ïîäâåðãíóòü îáôóñêàöèè ïðîãðàììó, ðåàëèçóþùóþ àëãîðèòì øèôðîâàíèÿ ñ âñòàâëåííûì â íåå ñåêðåòíûì êëþ÷îì. Ïðåîáðàçîâàííóþ òàêèì îáðàçîì ïðîãðàììó ìîæíî èñïîëüçîâàòü â êà÷åñòâå ïðîãðàììû øèôðîâàíèÿ êðèïòîñèñòåìû ñ îòêðûòûì êëþ÷îì.
  5. ÄÂÀ ÍÀÏÐÀÂËÅÍÈß ÈÑÑËÅÄÎÂÀÍÈÉ Îáôóñêàöèÿ äëÿ íóæä êðèïòîãðàôèè Îáôóñêàöèÿ ïðîãðàìì ïîçâîëÿåò

    ïðåâðàùàòü êðèïòîñèòåìû ñ ñåêðåòíûì êëþ÷îì â êðèïòîñèñòåìû ñ îòêðûòûì êëþ÷îì, ñòðîèòü ñèñòåìû âû÷èñëåíèé íàä çàøèôðîâàííûìè äàííûìè (êðèïòîñèñòåìû ãîìîìîðôíûõ âû÷èñëåíèé), èçáàâèòüñÿ îò ìîäåëè ñëó÷àéíîãî îðàêóëà â êðèïòîãðàôè÷åñêèõ ïðîòîêîëàõ, ñîçäàâàòü âåðèôèöèðóåìûå ñèñòåìû òàéíîãî ãîëîñîâàíèÿ, îáåñïå÷èòü êîíôèäåíöèàëüíîñòü â ïîèñêîâûõ ñèñòåìàõ è áàçàõ äàííûõ.
  6. ÄÂÀ ÍÀÏÐÀÂËÅÍÈß ÈÑÑËÅÄÎÂÀÍÈÉ Îáôóñêàöèÿ äëÿ íóæä êðèïòîãðàôèè Íî äëÿ ýòîãî

    îáôóñêàöèÿ äîëæíà óäîâëåòâîðÿòü î÷åíü ñòðîãèì òðåáîâàíèÿì ñòîéêîñòè, ïðèíÿòûì â êðèïòîãðàôèè. Ñîâðåìåííîå ñîñòîÿíèå äåë â ýòîì íàïðàâëåíèè èññëåäîâàíèé òàêîâî: î÷åíü ìíîãî îòðèöàòåëüíûõ ðåçóëüòàòîâ, è î÷åíü ìàëî ïîëîæèòåëüíûõ äîñòèæåíèé.
  7. ÄÂÀ ÍÀÏÐÀÂËÅÍÈß ÈÑÑËÅÄÎÂÀÍÈÉ Îáôóñêàöèÿ äëÿ îáåñïå÷åíèÿ êîìïüþòåðíîé áåçîïàñíîñòè Collberg C.,

    Thomborson C., Low D. A taxonomy of obfuscating transformations , Tech. Report, N 148, Dept. of Computer Science, University of Auckland, 1997. Îáôóñêèðóþùèå ïðåîáðàçîâàíèÿ ìîæíî èñïîëüçîâàòü äëÿ çàùèòû èíòåëëåêòóàëüíîé ñîáñòâåííîñòè íà ïðîãðàììíîå îáåñïå÷åíèå, èíôîðìàöèîííîé çàùèòû ìîáèëüíûõ àãåíòîâ è ìèêðîýëåêòðîííûõ ñõåì íà ýòàïå ïðîåêòèðîâàíèÿ, à òàêæå äëÿ
  8. ÄÂÀ ÍÀÏÐÀÂËÅÍÈß ÈÑÑËÅÄÎÂÀÍÈÉ Îáôóñêàöèÿ äëÿ îáåñïå÷åíèÿ êîìïüþòåðíîé áåçîïàñíîñòè Collberg C.,

    Thomborson C., Low D. A taxonomy of obfuscating transformations , Tech. Report, N 148, Dept. of Computer Science, University of Auckland, 1997. Îáôóñêèðóþùèå ïðåîáðàçîâàíèÿ ìîæíî èñïîëüçîâàòü äëÿ çàùèòû èíòåëëåêòóàëüíîé ñîáñòâåííîñòè íà ïðîãðàììíîå îáåñïå÷åíèå, èíôîðìàöèîííîé çàùèòû ìîáèëüíûõ àãåíòîâ è ìèêðîýëåêòðîííûõ ñõåì íà ýòàïå ïðîåêòèðîâàíèÿ, à òàêæå äëÿ ñîêðûòèÿ èñêóññòâåííûõ óÿçâèìîñòåé â ïðîãðàììàõ , ìàñêèðîâêè êîìïüþòåðíûõ ¾âèðóñîâ¿ , óäàëåíèÿ ¾âîäÿíûõ çíàêîâ¿ èç ïðîãðàìì .
  9. ÄÂÀ ÍÀÏÐÀÂËÅÍÈß ÈÑÑËÅÄÎÂÀÍÈÉ Îáôóñêàöèÿ äëÿ îáåñïå÷åíèÿ êîìïüþòåðíîé áåçîïàñíîñòè Öåëü îáôóñêàöèè

     îêàçàòü ïðîòèâîäåéñòâèå ìåòîäàì îáðàòíîé èíæåíåðèè è àëãîðèòìàì ñòàòè÷åñêîãî è äèíàìè÷åñêîãî àíàëèçà ïðîãðàìì. Ñîâðåìåííîå ñîñòîÿíèå äåë â ýòîì íàïðàâëåíèè èññëåäîâàíèé òàêîâî: ìíîãî ¾ýâðèñòè÷åñêèõ¿ ìåòîäîâ îáôóñêàöèè, è íèêàêèõ îöåíîê èõ ñòîéêîñòè.
  10. ÄÂÀ ÍÀÏÐÀÂËÅÍÈß ÈÑÑËÅÄÎÂÀÍÈÉ Îáôóñêàöèÿ äëÿ îáåñïå÷åíèÿ êîìïüþòåðíîé áåçîïàñíîñòè 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
  11. ÄÂÀ ÍÀÏÐÀÂËÅÍÈß ÈÑÑËÅÄÎÂÀÍÈÉ Îáôóñêàöèÿ äëÿ îáåñïå÷åíèÿ êîìïüþòåðíîé áåçîïàñíîñòè 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.
  12. ÄÂÀ ÍÀÏÐÀÂËÅÍÈß ÈÑÑËÅÄÎÂÀÍÈÉ Îáôóñêàöèÿ äëÿ îáåñïå÷åíèÿ êîìïüþòåðíîé áåçîïàñíîñòè Í.À. Êîíîíîâ,

    ¾Ñòðóêòóðíàÿ îïòèìèçàöèÿ è îáôóñêàöèÿ êîìáèíàöèîííûõ öèôðîâûõ ñõåì â áàçèñå ÏËÈÑ/ÑÁÌÊ¿, Äèññ. íà ñîèñêàíèå ó÷. ñò. ê.ò.í., ÌÈÝÒ, 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.
  13. ÄÂÀ ÍÀÏÐÀÂËÅÍÈß ÈÑÑËÅÄÎÂÀÍÈÉ Ðàçðûâ ïðîëåãàåò ìåæäó ôîðìàëüíîé ïîñòàíîâêîé çàäà÷è îáôóñêàöèè

    è ïðèëîæåíèÿìè : Îáëàñòü ïðèìåíåíèÿ îáôóñêàöèè îáøèðíà, íî ëèøü â ðåäêèõ ñëó÷àÿõ óäàâàëîñü äîáèòüñÿ ñòðîãîé ìàòåìàòè÷åñêîé ïîñòàíîâêè çàäà÷è îáôóñêàöèè ñ ïîäõîäÿùèì îïðåäåëåíèåì ñòîéêîñòè îáôóñêàöèè.
  14. ÄÂÀ ÍÀÏÐÀÂËÅÍÈß ÈÑÑËÅÄÎÂÀÍÈÉ Ðàçðûâ ïðîëåãàåò ìåæäó ôîðìàëüíîé ïîñòàíîâêîé çàäà÷è îáôóñêàöèè

    è ïðèëîæåíèÿìè : Îáëàñòü ïðèìåíåíèÿ îáôóñêàöèè îáøèðíà, íî ëèøü â ðåäêèõ ñëó÷àÿõ óäàâàëîñü äîáèòüñÿ ñòðîãîé ìàòåìàòè÷åñêîé ïîñòàíîâêè çàäà÷è îáôóñêàöèè ñ ïîäõîäÿùèì îïðåäåëåíèåì ñòîéêîñòè îáôóñêàöèè. ïîëîæèòåëüíûìè è îòðèöàòåëüíûìè ðåçóëüòàòàìè : Åñòü ìíîãî ðåçóëüòàòîâ î íåâîçìîæíîñòè ïîñòðîåíèÿ óíèâåðñàëüíûõ îáôóñêàòîðîâ, íî ìàëî ÷òî èçâåñòíî î âîçìîæíîñòè ñòîéêîé îáôóñêàöèè äëÿ îòäåëüíûõ ñïåöèàëüíûõ êëàññîâ ïðîãðàìì.
  15. ÄÂÀ ÍÀÏÐÀÂËÅÍÈß ÈÑÑËÅÄÎÂÀÍÈÉ Ðàçðûâ ïðîëåãàåò ìåæäó ôîðìàëüíîé ïîñòàíîâêîé çàäà÷è îáôóñêàöèè

    è ïðèëîæåíèÿìè : Îáëàñòü ïðèìåíåíèÿ îáôóñêàöèè îáøèðíà, íî ëèøü â ðåäêèõ ñëó÷àÿõ óäàâàëîñü äîáèòüñÿ ñòðîãîé ìàòåìàòè÷åñêîé ïîñòàíîâêè çàäà÷è îáôóñêàöèè ñ ïîäõîäÿùèì îïðåäåëåíèåì ñòîéêîñòè îáôóñêàöèè. ïîëîæèòåëüíûìè è îòðèöàòåëüíûìè ðåçóëüòàòàìè : Åñòü ìíîãî ðåçóëüòàòîâ î íåâîçìîæíîñòè ïîñòðîåíèÿ óíèâåðñàëüíûõ îáôóñêàòîðîâ, íî ìàëî ÷òî èçâåñòíî î âîçìîæíîñòè ñòîéêîé îáôóñêàöèè äëÿ îòäåëüíûõ ñïåöèàëüíûõ êëàññîâ ïðîãðàìì. òåîðèåé è ïðàêòèêîé îáôóñêàöèè : Èçâåñòíî ìíîãî ïðàêòè÷åñêèõ ìåòîäîâ îáôóñêàöèè ïðîãðàìì, îäíàêî, íà íèõ íå îêàçàëè íèêàêîãî âëèÿíèÿ îñíîâîïîëàãàþùèå ðåçóëüòàòû èç îáëàñòè êðèïòîãðàôèè.
  16. ÄÂÀ ÍÀÏÐÀÂËÅÍÈß ÈÑÑËÅÄÎÂÀÍÈÉ Äàëüíåéøèé ïðîãðåññ áóäåò âîçìîæåí, åñëè óäàñòñÿ ñáëèçèòü

    îáà ýòèõ íàïðàâëåíèÿ èññëåäîâàíèé çà ñ÷åò ñîçäàíèÿ ñîãëàñîâàííîé ñèñòåìû òðåáîâàíèé ñòîéêîñòè, êîòîðûå ìîæíî áóäåò ïðèìåíÿòü äëÿ ðàçðàáîòêè ðàçíûõ ìåòîäîâ îáôóñêàöèè ïðîãðàìì â ðàçíûõ ïðèëîæåíèÿõ.
  17. ÄÂÀ ÍÀÏÐÀÂËÅÍÈß ÈÑÑËÅÄÎÂÀÍÈÉ Äàëüíåéøèé ïðîãðåññ áóäåò âîçìîæåí, åñëè óäàñòñÿ ñáëèçèòü

    îáà ýòèõ íàïðàâëåíèÿ èññëåäîâàíèé çà ñ÷åò ñîçäàíèÿ ñîãëàñîâàííîé ñèñòåìû òðåáîâàíèé ñòîéêîñòè, êîòîðûå ìîæíî áóäåò ïðèìåíÿòü äëÿ ðàçðàáîòêè ðàçíûõ ìåòîäîâ îáôóñêàöèè ïðîãðàìì â ðàçíûõ ïðèëîæåíèÿõ. Áëàãîäàðÿ ýòîìó ìîæíî áóäåò ïîíÿòü, êàêèì òðåáîâàíèÿì ñòîéêîñòè äîëæíû óäîâëåòâîðÿòü òå èëè èíûå ðàçíîâèäíîñòè îáôóñêàöèè ïðîãðàìì; îöåíèòü, êàêèìè äîñòîèíñòâàìè è íåäîñòàòêàìè îáëàäàþò ðàçíûå ìåòîäû îáôóñêàöèè, ïðèñïîñîáèòü ôîðìàëüíûå ìåòîäû òåîðèè âû÷èñëåíèé è êðèïòîãðàôèè äëÿ íóæä îáôóñêàöèè ïðîãðàìì.
  18. ÎÁÔÓÑÊÀÖÈß ×ÀÑÒÈ×ÍÎ ÇÀÙÈÙÅÍÍÛÕ ÏÐÎÃÐÀÌÌ R. Ostrovsky, Ecient computation on oblivious

    RAM, Proc. of 22nd ACM Symposium on Theory of Computing (STOC-90) Çàùèùåííûé ïðîöåññîð P èìååò îòêðûòóþ ïàìÿòü M : M ⇐⇒ P
  19. ÎÁÔÓÑÊÀÖÈß ×ÀÑÒÈ×ÍÎ ÇÀÙÈÙÅÍÍÛÕ ÏÐÎÃÐÀÌÌ 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(π) ïî ïîñëåäîâàòåëüíîñòè åå îáðàùåíèé ê ïàìÿòè.
  20. ÑÒÎÉÊÎÑÒÜ ÎÁÔÓÑÊÀÖÈÈ Â ÌÎÄÅËÈ ÂÈÐÒÓÀËÜÍÎÃÎ ¾×ÅÐÍÎÃÎ ßÙÈÊÀ¿ [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 .
  21. ÑÒÎÉÊÎÑÒÜ ÎÁÔÓÑÊÀÖÈÈ Â ÌÎÄÅËÈ ÂÈÐÒÓÀËÜÍÎÃÎ ¾×ÅÐÍÎÃÎ ßÙÈÊÀ¿ Òåîðåìà [Barak B.,

    Goldreich O., Impagliazzo R., et al., 2001] Îáôóñêàòîðîâ, ñòîéêèõ â ìîäåëè ¾÷åðíîãî ÿùèêà¿, íå ñóùåñòâóåò .
  22. ÑÒÎÉÊÎÑÒÜ ÎÁÔÓÑÊÀÖÈÈ Â ÌÎÄÅËÈ ÂÈÐÒÓÀËÜÍÎÃÎ ¾×ÅÐÍÎÃÎ ßÙÈÊÀ¿ Äîêàçàòåëüñòâî. Ñóùåñòâóþò òàêèå

    âû÷èñëèìûå ôóíêöèè, ÷òî ëþáóþ èõ ïðîãðàììíóþ ðåàëèçàöèþ íåâîçìîæíî îáôóñêèðîâàòü.
  23. ÑÒÎÉÊÎÑÒÜ ÎÁÔÓÑÊÀÖÈÈ Â ÌÎÄÅËÈ ÂÈÐÒÓÀËÜÍÎÃÎ ¾×ÅÐÍÎÃÎ ßÙÈÊÀ¿ Äîêàçàòåëüñòâî. Ñóùåñòâóþò òàêèå

    âû÷èñëèìûå ôóíêöèè, ÷òî ëþáóþ èõ ïðîãðàììíóþ ðåàëèçàöèþ íåâîçìîæíî îáôóñêèðîâàòü. Fα,β (x) = β, åñëè x = α , 0 â îñòàëüíûõ ñëó÷àÿõ . Gγ,δ (x) = 1, åñëè x(γ) = δ , 0 â îñòàëüíûõ ñëó÷àÿõ . Hα,β,γ,δ (x, y) = Fα,β (x), åñëè y = 0 , Gγ,δ (x), åñëè y = 0.
  24. ÑÒÎÉÊÎÑÒÜ ÎÁÔÓÑÊÀÖÈÈ Â ÌÎÄÅËÈ ÂÈÐÒÓÀËÜÍÎÃÎ ¾×ÅÐÍÎÃÎ ßÙÈÊÀ¿ Äîêàçàòåëüñòâî. Ïðåäïîëîæèì, ÷òî

    π  ïðîãðàììà, âû÷èñëÿþùàÿ ôóíêöèþ Hα,β,γ,δ , è O(π)  ýòî îáôóñêàöèÿ ïðîãðàììû π. Ðàñïîëàãàÿ ïðîãðàììîé O(π), òðåáóåòñÿ âûÿñíèòü, ïðàâäà ëè, ÷òî α = γ è β = δ.
  25. ÑÒÎÉÊÎÑÒÜ ÎÁÔÓÑÊÀÖÈÈ Â ÌÎÄÅËÈ ÂÈÐÒÓÀËÜÍÎÃÎ ¾×ÅÐÍÎÃÎ ßÙÈÊÀ¿ Äîêàçàòåëüñòâî. Ïðåäïîëîæèì, ÷òî

    π  ïðîãðàììà, âû÷èñëÿþùàÿ ôóíêöèþ Hα,β,γ,δ , è O(π)  ýòî îáôóñêàöèÿ ïðîãðàììû π. Ðàñïîëàãàÿ ïðîãðàììîé O(π), òðåáóåòñÿ âûÿñíèòü, ïðàâäà ëè, ÷òî α = γ è β = δ. Åñëè òåêñò ïðîãðàììû O(π) íåäîñòóïåí, òî ýòî ìîæíî ñäåëàòü òîëüêî ïîëíûì ïåðåáîðîì.
  26. ÑÒÎÉÊÎÑÒÜ ÎÁÔÓÑÊÀÖÈÈ Â ÌÎÄÅËÈ ÂÈÐÒÓÀËÜÍÎÃÎ ¾×ÅÐÍÎÃÎ ßÙÈÊÀ¿ Äîêàçàòåëüñòâî. Ïðåäïîëîæèì, ÷òî

    π  ïðîãðàììà, âû÷èñëÿþùàÿ ôóíêöèþ Hα,β,γ,δ , è O(π)  ýòî îáôóñêàöèÿ ïðîãðàììû π. Ðàñïîëàãàÿ ïðîãðàììîé O(π), òðåáóåòñÿ âûÿñíèòü, ïðàâäà ëè, ÷òî α = γ è β = δ. Åñëè òåêñò ïðîãðàììû O(π) íåäîñòóïåí, òî ýòî ìîæíî ñäåëàòü òîëüêî ïîëíûì ïåðåáîðîì. Åñëè òåêñò ïðîãðàììû O(π) äîñòóïåí, òî äîñòàòî÷íî âû÷èñëèòü O(π)[O(π)[·, 0], 1] .
  27. ÑÒÎÉÊÎÑÒÜ ÎÁÔÓÑÊÀÖÈÈ Â ÌÎÄÅËÈ ÂÈÐÒÓÀËÜÍÎÃÎ ¾ÑÅÐÎÃÎ ßÙÈÊÀ¿ Âåðîÿòíîñòíûé àëãîðèòì 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 .
  28. ÑÒÎÉÊÎÑÒÜ ÎÁÔÓÑÊÀÖÈÈ Â ÌÎÄÅËÈ ÂÈÐÒÓÀËÜÍÎÃÎ ¾ÑÅÐÎÃÎ ßÙÈÊÀ¿ Ðàññìîòðèì ñåìåéñòâî ðåàãèðóþùèõ

    ÌÒ (RMT), íà âõîä êîòîðûõ ïîäàåòñÿ áåñêîíå÷íûé ïîòîê äàííûõ (çàïðîñîâ) x1, x2, . . . , xn, . . . . RMT âû÷èñëÿåò áåñêîíå÷íûé ïîòîê âûõîäíûõ äàííûõ (îòêëèêîâ) y1, y2, . . . , yn, . . . : yn = Fn(x1, x2, . . . , xn). Òåîðåìà[Âàðíîâñêèé Í.Ï., 2002] Åñëè ñóùåñòâóþò îäíîñòîðîííèå ôóíêöèè, òî îáôóñêàòîðîâ, ñòîéêèõ â ìîäåëè âèðòóàëüíîãî ¾ñåðîãî ÿùèêà¿, äëÿ ðåàãèðóþùèõ ÌÒ íå ñóùåñòâóåò .
  29. ÑÒÎÉÊÎÑÒÜ ÎÁÔÓÑÊÀÖÈÈ Â ÌÎÄÅËÈ ÂÈÐÒÓÀËÜÍÎÃÎ ¾ÑÅÐÎÃÎ ßÙÈÊÀ¿ Îòêðûòàÿ ïðîáëåìà À

    ñóùåñòâóþò ëè îáôóñêàòîðû, ñòîéêèå â ìîäåëè âèðòóàëüíîãî ¾ñåðîãî ÿùèêà ¿, äëÿ îáû÷íûõ ìàøèí Òüþðèíãà?
  30. ÎÁÔÓÑÊÀÖÈß ÄËß ÇÀÙÈÒÛ ÀËÃÎÐÈÒÌÎÂ Âåðîÿòíîñòíûé àëãîðèòì 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)).
  31. ÎÁÔÓÑÊÀÖÈß ÄËß ÇÀÙÈÒÛ ÀËÃÎÐÈÒÌÎÂ Òåîðåìà Ñóùåñòâóåò îáôóñêàòîð, ñòîéêî çàùèùàþùèé àëãîðèòìû,

    ïðåäñòàâëåííûå äåòåðìèíèðîâàííûìè êîíå÷íûìè àâòîìàòàìè.
  32. ÎÁÔÓÑÊÀÖÈß ÄËß ÇÀÙÈÒÛ ÀËÃÎÐÈÒÌÎÂ Òåîðåìà Ñóùåñòâóåò îáôóñêàòîð, ñòîéêî çàùèùàþùèé àëãîðèòìû,

    ïðåäñòàâëåííûå äåòåðìèíèðîâàííûìè êîíå÷íûìè àâòîìàòàìè. Îáôóñêàòîð äåòåðìèíèðîâàííûõ êîíå÷íûõ àâòîìàòîâ  ýòî ïðîñòî àëãîðèòì ìèíèìèçàöèè êîíå÷íûõ àâòîìàòîâ. Ýòî òèïè÷íûé ïðèìåð òðèâèàëüíîé îáôóñêàöèè àëãîðèòìîâ ïóòåì ýôôåêòèâíîãî ïðèâåäåíèÿ ïðîãðàìì ê åäèíñòâåííîé íîðìàëüíîé ôîðìå (ñòðîãàÿ íîðìàëèçóåìîñòü).
  33. ÎÁÔÓÑÊÀÖÈß ÄËß ÇÀÙÈÒÛ ÀËÃÎÐÈÒÌÎÂ 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) âû÷èñëèòåëüíî íåîòëè÷èìû çà ïîëèíîìèàëüíîå âðåìÿ.
  34. ÎÁÔÓÑÊÀÖÈß ÄËß ÇÀÙÈÒÛ ÀËÃÎÐÈÒÌÎÂ Òåîðåìà [S. Goldwasser, G. N. Rothblum,

    2007] Ñóùåñòâóåò íàèëó÷øèé âîçìîæíûé îáôóñêàòîð äëÿ OBDD ïîëèíîìèàëüíîãî ðàçìåðà.
  35. ÎÁÔÓÑÊÀÖÈß ÄËß ÇÀÙÈÒÛ ÀËÃÎÐÈÒÌÎÂ Òåîðåìà [S. Goldwasser, G. N. Rothblum,

    2007] Ñóùåñòâóåò íàèëó÷øèé âîçìîæíûé îáôóñêàòîð äëÿ OBDD ïîëèíîìèàëüíîãî ðàçìåðà. Òåîðåìà Åñëè äëÿ ñåìåéñòâà 3-CNF ñóùåñòâóåò íàèëó÷øèé âîçìîæíûé îáôóñêàòîð, òî Σpoly 2 = PSPACE .
  36. ÎÁÔÓÑÊÀÖÈß ÄËß ÇÀÙÈÒÛ ÀËÃÎÐÈÒÌÎÂ [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)
  37. ÎÁÔÓÑÊÀÖÈß ÄËß ÇÀÙÈÒÛ ÀËÃÎÐÈÒÌÎÂ Îòêðûòûå ïðîáëåìû Ñóùåñòâóþò ëè êëàññû ïðîãðàìì,

    äîïóñêàþùèõ íåòðèâèàëüíóþ ñòîéêóþ îáôóñêàöèþ, çàùèùàþùóþ àëãîðèòìû ? Ñóùåñòâóþò ëè ïðîãðàììû, íå èìåþùèå ñòîéêîé îáôóñêàöèè, çàùèùàþùåé àëãîðèòìû ? Êàê ñâÿçàíû äðóã ñ äðóãîì îáôóñêàöèÿ, çàùèùàþùàÿ àëãîðèòìû è íàèëó÷øàÿ âîçìîæíàÿ îáôóñêàöèÿ?
  38. ÎÁÔÓÑÊÀÖÈß, ÑÊÐÛÂÀÞÙÀß ÊÎÍÑÒÀÍÒÓ Ïóñòü 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.
  39. ÎÁÔÓÑÊÀÖÈß, ÑÊÐÛÂÀÞÙÀß ÊÎÍÑÒÀÍÒÓ ÃÈÏÎÒÅÇÀ Ñòîéêàÿ îáôóñêàöèÿ, ñêðûâàþùàÿ êîíñòàíòó, íåâîçìîæíà ,

    åñëè Mx  ýòî óíèâåðñàëüíàÿ ìàøèíà Òüþðèíãà; âîçìîæíà , åñëè Mx = E(key(x), m)  ýòî ïðîãðàììà øèôðîâàíèÿ ñòîéêîé êðèïòîñèñòåìû ñ îòêðûòûì êëþ÷îì key(x) è ñåêðåòíûì êëþ÷îì x .
  40. ÎÁÔÓÑÊÀÖÈß ÏÐÅÄÈÊÀÒÎÂ Âåðîÿòíîñòíûé àëãîðèòì 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) .
  41. ÎÁÔÓÑÊÀÖÈß ÏÐÅÄÈÊÀÒΠÒî÷å÷íîé íàçûâàåòñÿ ôóíêöèÿ 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 , èìååò ñòîéêóþ îáôóñêàöèþ.
  42. ÎÁÔÓÑÊÀÖÈß ÏÐÅÄÈÊÀÒΠÄîêàçàòåëüñòâî Íóæíî ñäåëàòü íåîòëè÷èìûìè äðóã îò äðóãà äâå

    ïðîãðàììû 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
  43. ÎÁÔÓÑÊÀÖÈß ÏÐÅÄÈÊÀÒΠÄîêàçàòåëüñòâî Íóæíî ñäåëàòü íåîòëè÷èìûìè äðóã îò äðóãà äâå

    ïðîãðàììû 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 è ãåíåðàòîð ñëó÷àéíûõ ñòðîê, êîòîðûé ìîæíî ïîñòðîèòü íà îñíîâå îäíîñòðîííåé ïåðåñòàíîâêè.
  44. ÎÁÔÓÑÊÀÖÈß ÏÐÅÄÈÊÀÒΠÄëÿ ïðîãðàììû π0 : 1) âûáðàòü äâå ñëó÷àéíûå

    ñòðîêè w, u , 2) âû÷èñëèòü v = ϕ(w) è σ = n i=1 wi ui mod 2 .
  45. ÎÁÔÓÑÊÀÖÈß ÏÐÅÄÈÊÀÒΠÄëÿ ïðîãðàììû π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 .
  46. ÎÁÔÓÑÊÀÖÈß ÏÐÅÄÈÊÀÒΠÄëÿ ïðîãðàììû π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
  47. ÎÁÔÓÑÊÀÖÈß ÏÐÅÄÈÊÀÒÎÂ Òåîðåìà Ïóñòü O1 , O2  îáôóñêàòîðû ôóíêöèîíàëüíûõ

    ñâîéñòâ π1 , π2 ñîîòâåòñòâåííî, è ïðè ýòîì îáëàñòü çíà÷åíèé îáôóñêàòîðà O2 ñîäåðæèòñÿ â îáëàñòè îïðåäåëåíèÿ îáôóñêàòîðà O1 . Òîãäà êîìïîçèöèÿ O = O1O2 ÿâëÿåòñÿ îáôóñêàòîðîì îáîèõ ïðåäèêàòîâ π1 è π2 .
  48. ÇÀÊËÞ×ÅÍÈÅ Íóæíî ïðîäîëæàòü ýòîò ñïèñîê îïðåäåëåíèé, ôîðìóëèðóÿ âñå áîëåå è

    áîëåå ñëàáûå òðåáîâàíèÿ ñòîéêîñòè, ïðèãîäíûå äëÿ ðåøåíèÿ äðóãèõ ïðèëîæåíèé îáôóñêàöèè.
  49. ÇÀÊËÞ×ÅÍÈÅ Íóæíî ïðîäîëæàòü ýòîò ñïèñîê îïðåäåëåíèé, ôîðìóëèðóÿ âñå áîëåå è

    áîëåå ñëàáûå òðåáîâàíèÿ ñòîéêîñòè, ïðèãîäíûå äëÿ ðåøåíèÿ äðóãèõ ïðèëîæåíèé îáôóñêàöèè. Íóæíî àêòèâíåå ïðèâëåêàòü äëÿ îáôóñêàöèè äîñòèæåíèÿ êðèïòîãðàôèè è òåîðèè ñëîæíîñòè  ñèñòåìû ãîìîìîðôíîãî øèôðîâàíèÿ, òðóäíîðåøàåìûå çàäà÷è.
  50. ÄÎÑÒÈÆÅÍÈß ÏÎÑËÅÄÍÈÕ ËÅÒ Â èþëå 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] Íåîòëè÷èìàÿ îáôóñêàöèÿ âîçìîæíà äëÿ ïðîèçâîëüíûõ ïðîãðàìì (ïðè íåêîòîðûõ ïðåäïîëîæåíèÿõ î òðóäíîñòè ðåøåíèÿ çàäà÷ òåîðèè ãðóïï)
  51. ÄÎÑÒÈÆÅÍÈß ÏÎÑËÅÄÍÈÕ ËÅÒ 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.
  52. Áëàãîäàðþ çà âíèìàíèå Âàøè âîïðîñû?