SlideShare a Scribd company logo
1 of 22
Download to read offline
Теоретические аспекты проблемы обфускации
                  программ

Н.П. Варновский, В.А. Захаров, Н.Н. Кузюрин, А.В. Шокуров

           Институт системного программирования РАН ,
           ф-т ВМиК и ИПИБ МГУ им. М.В. Ломоносова


                     10 октября 2008 г.




                                                        1 / 22
ОБФУСКАЦИЯ ПРОГРАММ




Обфускация — эквивалентные преобразования программ для
затруднения:
   понимания программ;
   извлечения полезной информации содержащейся в программе:
       алгоритмов;
       структур данных;
       секретных ключей;
       ...




                                                         2 / 22
История исследований



    1976 Первое упоминание:
         Diffie W., Hellman M.
          New directions in cryptography“, 1976.
         ”
    1997 Первая научная статья:
         Collberg C., Thomborson C., Low D.
          A taxonomy of obfuscating transformations“, 1997.
         ”
    2001 Первая математическая постановка задачи:
         Barak B., Goldreich O., Impagliazzo R., Rudich S., Sahai A.,
         Vedhan S., Yang K.
          On the (Im)possibility of obfuscating programs“, 2001.
         ”



                                                              3 / 22
Обфускация: модель «черного ящика»

Вероятностный алгоритм O называется обфускатором, стойким в
модели «черного ящика», если
  1 (функциональность) π ≈ O(π) для любой программы π;

  2 (полиномиальное замедление) существует полином p(·), такой что



             ∀π : |O(π)| ≤ p(|π|),    time(O(π)) ≤ p(time(π));
  3   (стойкость) Для любой PPT A (противника ) существует PPT S
      (симулятор ) и пренебрежимо малая функция ν, такие что, для
      любой машины Тьюринга π:

               |Pr{A(O(π)) = 1} − Pr{Sπ (1|π| ) = 1}| ≤ ν(|π|)


Barak B., Goldreich O., Impagliazzo R., Rudich S., Sahai A., Vedhan S.,
Yang K. On the (Im)possibility of obfuscating programs“, 2001.
        ”
                                                                  4 / 22
Обфускация: новые модели и определения

     2003 обфускация предикатов:
          Захаров В.А., Варновский Н.П.;
     2004 обфускация в модели «серого ящика»:
          Варновский Н.П.
     2004 обфускация алгоритмов:
          Варновский Н.П.
     2004 защита констант (ключей):
          Варновский Н.П.;
          Hofheinz D., Malobe-Lee J., Stam M. 2007.
     2005 обфускация с дополнительным входом:
          Goldwasser S., Tauman Kalai Y.T.
     2007 наилучшая возможная обфускация:
          Goldwasser S., Rothblum G.N.

                                                      5 / 22
ОТРИЦАТЕЛЬНЫЕ РЕЗУЛЬТАТЫ

    2001 Не существует обфускаторов, стойких в модели
         «черного ящика».
         Barak B., Goldreich O., Impagliazzo R., et al., 2001;
    2004 Не существует обфускаторов, стойких в модели
         «серого ящика», если существуют односторонние
         функции.
         Варновский Н.П., 2004;
    2005 Не существует обфускаторов с дополнительным
         входом.
         Goldwasser S., Tauman Kalai Y.T., 2005;
    2007 Не существует наилучшей возможной обфускации для
         семейства 3-CNF формул, если полиномиальная иерархия
         не вырождается на втором уровне (т. е. Σp = Σp ).
                                                     2      3
         Goldwasser S., Rothblum G.N., 2007.
                                                       6 / 22
ПОЛОЖИТЕЛЬНЫЕ РЕЗУЛЬТАТЫ

  «Обфускация точечных функций »
  Canetti R. 1997; Захаров В.А., Варновский Н.П., 2003; Lynn B.,
  Prabhakaran M., Sahai A. 2004, Wee H. 2005, Canetti R.,
  Dakdouk R. 2008.
  «Обфускация POBDD и конечных автоматов »
  Кузюрин Н.П., Шокуров А.А. и др., 2007; Goldwasser, S.,
  Rothblum G., 2007.
  «Обфускация программ решифрования »
  Hohenberger S., Rothblum G. N., Shelat A., Vaikuntanathan V., 2007.
  «Обфускация программ перемешивания шифртекстов »
  B. Adida, D. Wikstrom, 2005.
  «Обфускация баз данных »
  Narayanan A., Shmatikov V., 2005.

                                                             7 / 22
ПОЛОЖИТЕЛЬНЫЕ РЕЗУЛЬТАТЫ


Определение
Точечной называется функция fa,b : {0, 1}n → {0, 1}n , a, b ∈ {0, 1}n ,
удовлетворяющая условию
             b, если x = a,
 fa,b (x) =
             0n , если x = a.

Рассмотрим семейство точечных функций Fn = {fu,v : u, v ∈ {0, 1}n } и
предикат πa,b (f ) = (f ≡ fa,b ).


Если существуют односторонние перестановки, то предикат πa,b ,
определенный на семействе программ, вычисляющих точечные
функции Fn , имеет стойкую обфускацию.


                                                                  8 / 22
ПОЛОЖИТЕЛЬНЫЕ РЕЗУЛЬТАТЫ




Теорема
Существует обфускатор, стойко защищающий алгоритмы,
представленные детерминированными конечными автоматами
или OBDD полиномиального размера.

   Кузюрин Н.Н., Шокуров А.В., Варновский Н.П., Захаров В.А.,
   ISC 2007;
   Goldwasser, S., Rothblum G., TCC 2007.




                                                          9 / 22
Наилучшая возможная обфускация


Вероятностный алгоритм O называется наилучшим возможным
обфускатором, если он удовлетворяет следующим требованиям:
 1   (функциональность)
 2   (полиномиальное замедление)
 3   (стойкость) Для любой PPT A (противника) существует PPT S
     (симулятор) такие что для любой пары эквивалентных булевых
     схем (программ) M и M одинакового размера распределения

                       Pr {A[O(M)]} и Pr {S[M ]}

     вычислительно неотличимы.



                                                         10 / 22
Модели обфускации: взаимосвязь

                                           Защита алгоритмов



                                                    ?



                   Серый ящик                 Best Possible




                  Черный ящик                Неотличимость




           . . . с дополнительным входом



                                                               11 / 22
Обфускация с разделением программы

                         ПРОГРАММА
                                            -
       Блок A                                    Блок B
                 



Блок А : вычисляется на защищенном устройстве небольшой
вычислительной мощности (смарт-карта, процессор с малым объемом
памяти и др.)

Блок B : вычисляется на открытом высокопроизводительном
вычислительном устройстве.

Goldreich O., 1985; Ostrovsky R., 2005; Anderson W.E., 2008.

                                                               12 / 22
ЭЛЕКТРОННАЯ СХЕМА (конечный автомат)

     Секретная часть                      - Открытая часть

     (Оракул R)                            (Программа O(M))


Обфускация с оракулом [Anderson W.E., 2008]
Вероятностный алгоритм O и оракул R образуют обфускатор
семейства программ F, если:
 1    (функциональность) π ≈ OR (π) для любой π из F;
 2    (полиномиальное замедление)
 3    (стойкость) Для любой PPT A (противника) существует PPT S
      (симулятор) и пренебрежимо малая функция ν, такие что

                  |Pr[AR (OR (π))] = 1} − Pr[Sπ (1n ) = 1]| ≤ ν(n)

      для любой программы π размера n.

                                                                     13 / 22
Обфускация с разделением программы

      Вычисление над зашифрованными данными

     Шифратор Ex           - Схема вычисления O(π, x)

     Дешифратор Dx          над зашифрованными данными


Теорема. [Sander, Tchudin, 1998; Шокуров А.В., 2004. ]
Существует обфускатор O ациклических алгебраических программ, в
системы вычислений над зашифрованными данными со следующими
свойствами:
 1   преобразование программы A в схему вычислений
     (Ex ; O(A, x); Dx ) корректно и эффективно;
 2   size(O(A, x)) = poly (size(A));
 3   для любой схемы вычислений B с n входами существует не менее
     2O(n) пар (A, x), удовлетворяющих условию B = O(A, x).
                                                          14 / 22
Новые приложения обфускации
Повторное шифрование


  mK = E(m, K)    - Re-encryption R    - mK = E(m, K )


Программа повторного шифрования принимает на вход шифр mK
сообщения m, зашифрованного при помощи ключа K , и вычисляет
шифр mR того же сообщения m, зашифрованного при помощи другого
ключа R.
[Hohenberger S., Rothblum G. N., Shelat A., Vaikuntanathan V.,
2007]
Для некоторых криптосистем с открытым ключом существуют
программы повторного шифрования, для которых можно построить
обфускацию, стойкую в среднем в модели «черного ящика».

                                                          15 / 22
Новые приложения обфускации
Перемешивание шифртекстов

x1 -           - c1 -                                  - ci1      -       - xi1
x2 -           - c2 -                                  - ci2      -       - xi2
x3 -    E      - c3 -      C = C ⊗ Mπ                  - ci3      -   D   - xi3



xn -           - cn -                                  - cin      -       - xin


Обфускация программы предусматривает использование
криптосистемы (K , G , E , D), гомоморфной относительно сложения и
однократного умножения, т. е.:
    Ek (x1 , r1 ) ⊕ Ek (x2 , r2 ) = Ek (x1 + x2 , ϕ(r1 , r2 )),
    Ek (x1 , r1 ) ⊗ Ek (x2 , r2 ) = Ek (x1 × x2 , ψ(r1 , r2 )).

                                                                            16 / 22
Новые приложения обфускации
Перемешивание шифртекстов
x1 -        - c1 -                       - ci1   -       - xi1
x2 -        - c2 -                       - ci2   -       - xi2
x3 -   E    - c3 -   C = C ⊗ Mπ          - ci3   -   D   - xi3



xn -        - cn -                       - cin   -       - xin

Теорема 1. [B. Adida, D. Wikstrom, 2005]
Если криптосистема (K , G , E , D) является семантически стойкой, то
обфускированная программа
                               C = C ⊗ Mπ
является стойкой относительно угрозы различения пары перестановки
π ,π .
                                                           17 / 22
Новые приложения обфускации
Перемешивание шифртекстов

x1 -        - c1 -                     - ci1   -       - xi1

x2 -        - c2 -                     - ci2   -       - xi2
x3 -   E    - c3 -   C = C ⊗ Mπ        - ci3   -   D   - xi3


xn -        - cn -                     - cin   -       - xin


Теорема 2. [B. Adida, D. Wikstrom, 2005]
Существует протокол с нулевым разглашением для доказательства
корректности обфускированной программы перестановки шифртекстов
                           C = C ⊗ Mπ .


                                                         18 / 22
Новые приложения обфускации



Другие приложения
   Ostrovsky R., Skeith W., 2005.
   Применение обфускации с разделением программ для скрытного
   эффективного выбора текстов из потока данных по заданному
   набору ключевых слов. В основу обфускации положено
   семантически стойкая гомоморфная криптосистема.
   Narayanan A., Shmatikov V., 2005
   Обфускация баз данных для ограничения доступа к атрибутам
   данных. В основу обфускации положена стойкая в модели
   случайного оракула обфускация точечных функций.




                                                       19 / 22
Новые приложения обфускации


    Обфускация компьютерных вирусов
    Использование алгебраических моделей программ для
    классификации компьютерных вирусов



Н.П. Варновский, В.А. Захаров, Р.И. Подловченко, В.С. Щербина, Н.Н.
Кузюрин, А.В. Шокуров, О применении методов деобфускации
программ для обнаружения сложных компьютерных вирусов, Известия
ТРТУ, №7, 2006.




                                                          20 / 22
Враг не дремлет: методы обфускации полиморфных компьютерных
вирусов постоянно совершенствуются.

Trojan.Win32.Obfuscated.ev: use polymorphic tactics to self-mutate,
disable security software, modify system files, and install additional
malware. Last updated on Jun 24 2008 .
                            [www.viruslist.com]




                                                                21 / 22
СПАСИБО ЗА ВНИМАНИЕ.
   ВАШИ ВОПРОСЫ?




                       22 / 22

More Related Content

What's hot

Монголбанк Бодлогын Хүүгээ Яагаад Өсгөв /МБ www.mongolbank.mn/
Монголбанк Бодлогын Хүүгээ Яагаад Өсгөв /МБ www.mongolbank.mn/Монголбанк Бодлогын Хүүгээ Яагаад Өсгөв /МБ www.mongolbank.mn/
Монголбанк Бодлогын Хүүгээ Яагаад Өсгөв /МБ www.mongolbank.mn/Adilbishiin Gelegjamts
 
Hienadz Drahun Quality & Usability Sef
Hienadz Drahun   Quality & Usability SefHienadz Drahun   Quality & Usability Sef
Hienadz Drahun Quality & Usability Sefsef2009
 
Научные тренды продления жизни. Обзор исследований в области биологии старения
Научные тренды продления жизни. Обзор исследований в области биологии старенияНаучные тренды продления жизни. Обзор исследований в области биологии старения
Научные тренды продления жизни. Обзор исследований в области биологии старенияIlya Klabukov
 
Marketing Places
Marketing PlacesMarketing Places
Marketing Placesplaceid
 
Sbeul6.2020 2021
Sbeul6.2020  2021Sbeul6.2020  2021
Sbeul6.2020 2021hicheel2020
 
Spyral dynamics in Life Management club (rus)
Spyral dynamics in Life Management club (rus)Spyral dynamics in Life Management club (rus)
Spyral dynamics in Life Management club (rus)dan voronov
 
Любовни престрелки (Джули Джеймс)
 Любовни престрелки (Джули Джеймс) Любовни престрелки (Джули Джеймс)
Любовни престрелки (Джули Джеймс)tlisheva
 
стратегический план презентация
стратегический план презентациястратегический план презентация
стратегический план презентацияdacenkoff
 
Делтата на Венера (Анаис Нин)
Делтата на Венера (Анаис Нин) Делтата на Венера (Анаис Нин)
Делтата на Венера (Анаис Нин) tlisheva
 
Экологический отчёт 2008
Экологический отчёт 2008Экологический отчёт 2008
Экологический отчёт 2008isavr
 
КОТ - Новая Площадь
КОТ - Новая ПлощадьКОТ - Новая Площадь
КОТ - Новая Площадьguest4f99c3
 
презентация стратегич. план.Microsoft Office Power Point
презентация стратегич. план.Microsoft Office Power Pointпрезентация стратегич. план.Microsoft Office Power Point
презентация стратегич. план.Microsoft Office Power PointSheffing7
 
Стратегический план
Стратегический планСтратегический план
Стратегический планDarina14
 
Bb6e3b2c9fd0bb18bf0a051880fe95dd
Bb6e3b2c9fd0bb18bf0a051880fe95ddBb6e3b2c9fd0bb18bf0a051880fe95dd
Bb6e3b2c9fd0bb18bf0a051880fe95ddIgor Bevzenko
 
Handmade alpine emergency stretcher
Handmade alpine emergency stretcher Handmade alpine emergency stretcher
Handmade alpine emergency stretcher CyBeer
 

What's hot (20)

Монголбанк Бодлогын Хүүгээ Яагаад Өсгөв /МБ www.mongolbank.mn/
Монголбанк Бодлогын Хүүгээ Яагаад Өсгөв /МБ www.mongolbank.mn/Монголбанк Бодлогын Хүүгээ Яагаад Өсгөв /МБ www.mongolbank.mn/
Монголбанк Бодлогын Хүүгээ Яагаад Өсгөв /МБ www.mongolbank.mn/
 
Dencheva Ecolabel Paper
Dencheva Ecolabel PaperDencheva Ecolabel Paper
Dencheva Ecolabel Paper
 
Hienadz Drahun Quality & Usability Sef
Hienadz Drahun   Quality & Usability SefHienadz Drahun   Quality & Usability Sef
Hienadz Drahun Quality & Usability Sef
 
Научные тренды продления жизни. Обзор исследований в области биологии старения
Научные тренды продления жизни. Обзор исследований в области биологии старенияНаучные тренды продления жизни. Обзор исследований в области биологии старения
Научные тренды продления жизни. Обзор исследований в области биологии старения
 
Marketing Places
Marketing PlacesMarketing Places
Marketing Places
 
Ppth22
Ppth22Ppth22
Ppth22
 
Sbeul6.2020 2021
Sbeul6.2020  2021Sbeul6.2020  2021
Sbeul6.2020 2021
 
Spyral dynamics in Life Management club (rus)
Spyral dynamics in Life Management club (rus)Spyral dynamics in Life Management club (rus)
Spyral dynamics in Life Management club (rus)
 
Любовни престрелки (Джули Джеймс)
 Любовни престрелки (Джули Джеймс) Любовни престрелки (Джули Джеймс)
Любовни престрелки (Джули Джеймс)
 
стратегический план презентация
стратегический план презентациястратегический план презентация
стратегический план презентация
 
Делтата на Венера (Анаис Нин)
Делтата на Венера (Анаис Нин) Делтата на Венера (Анаис Нин)
Делтата на Венера (Анаис Нин)
 
Экологический отчёт 2008
Экологический отчёт 2008Экологический отчёт 2008
Экологический отчёт 2008
 
Seminar 7a
Seminar 7aSeminar 7a
Seminar 7a
 
Tsetsiin dugnelt 07
Tsetsiin dugnelt 07Tsetsiin dugnelt 07
Tsetsiin dugnelt 07
 
Tsetsiin dugnelt 08
Tsetsiin dugnelt 08Tsetsiin dugnelt 08
Tsetsiin dugnelt 08
 
КОТ - Новая Площадь
КОТ - Новая ПлощадьКОТ - Новая Площадь
КОТ - Новая Площадь
 
презентация стратегич. план.Microsoft Office Power Point
презентация стратегич. план.Microsoft Office Power Pointпрезентация стратегич. план.Microsoft Office Power Point
презентация стратегич. план.Microsoft Office Power Point
 
Стратегический план
Стратегический планСтратегический план
Стратегический план
 
Bb6e3b2c9fd0bb18bf0a051880fe95dd
Bb6e3b2c9fd0bb18bf0a051880fe95ddBb6e3b2c9fd0bb18bf0a051880fe95dd
Bb6e3b2c9fd0bb18bf0a051880fe95dd
 
Handmade alpine emergency stretcher
Handmade alpine emergency stretcher Handmade alpine emergency stretcher
Handmade alpine emergency stretcher
 

Viewers also liked

«Собор или базар»: системы контроля версий — централизованные или распределен...
«Собор или базар»: системы контроля версий — централизованные или распределен...«Собор или базар»: системы контроля версий — централизованные или распределен...
«Собор или базар»: системы контроля версий — централизованные или распределен...Stas Fomin
 
Dynamic Programming Knapsack
Dynamic Programming KnapsackDynamic Programming Knapsack
Dynamic Programming KnapsackStas Fomin
 
Amplifying Reduction Non Approx
Amplifying Reduction Non ApproxAmplifying Reduction Non Approx
Amplifying Reduction Non ApproxStas Fomin
 
Custis Learning
Custis LearningCustis Learning
Custis LearningStas Fomin
 
Randomized Rounding
Randomized RoundingRandomized Rounding
Randomized RoundingStas Fomin
 
Randomized Complexity
Randomized ComplexityRandomized Complexity
Randomized ComplexityStas Fomin
 
testopia-missing-link
testopia-missing-linktestopia-missing-link
testopia-missing-linkStas Fomin
 
A commutative model composition operator to support software adaptation
A commutative model composition operator to support software adaptationA commutative model composition operator to support software adaptation
A commutative model composition operator to support software adaptationSébastien Mosser
 
Probabilistically Checkable Proofs
Probabilistically Checkable ProofsProbabilistically Checkable Proofs
Probabilistically Checkable ProofsStas Fomin
 
Greedy Knapsack
Greedy KnapsackGreedy Knapsack
Greedy KnapsackStas Fomin
 
Mindmaps: история и идеология
Mindmaps: история и идеологияMindmaps: история и идеология
Mindmaps: история и идеологияStas Fomin
 
Успешный программист. Современные тенденции
Успешный программист. Современные тенденцииУспешный программист. Современные тенденции
Успешный программист. Современные тенденцииStas Fomin
 
Introducing Security Access Control Policies into Legacy Business Processes
Introducing Security Access Control Policies into Legacy Business ProcessesIntroducing Security Access Control Policies into Legacy Business Processes
Introducing Security Access Control Policies into Legacy Business ProcessesSébastien Mosser
 
Derandomization Luby
Derandomization LubyDerandomization Luby
Derandomization LubyStas Fomin
 
average-knapsack.beam.pdf
average-knapsack.beam.pdfaverage-knapsack.beam.pdf
average-knapsack.beam.pdfStas Fomin
 

Viewers also liked (17)

Dnf Counting
Dnf CountingDnf Counting
Dnf Counting
 
«Собор или базар»: системы контроля версий — централизованные или распределен...
«Собор или базар»: системы контроля версий — централизованные или распределен...«Собор или базар»: системы контроля версий — централизованные или распределен...
«Собор или базар»: системы контроля версий — централизованные или распределен...
 
Dynamic Programming Knapsack
Dynamic Programming KnapsackDynamic Programming Knapsack
Dynamic Programming Knapsack
 
Amplifying Reduction Non Approx
Amplifying Reduction Non ApproxAmplifying Reduction Non Approx
Amplifying Reduction Non Approx
 
Custis Learning
Custis LearningCustis Learning
Custis Learning
 
Randomized Rounding
Randomized RoundingRandomized Rounding
Randomized Rounding
 
Randomized Complexity
Randomized ComplexityRandomized Complexity
Randomized Complexity
 
testopia-missing-link
testopia-missing-linktestopia-missing-link
testopia-missing-link
 
Intro Erevan
Intro ErevanIntro Erevan
Intro Erevan
 
A commutative model composition operator to support software adaptation
A commutative model composition operator to support software adaptationA commutative model composition operator to support software adaptation
A commutative model composition operator to support software adaptation
 
Probabilistically Checkable Proofs
Probabilistically Checkable ProofsProbabilistically Checkable Proofs
Probabilistically Checkable Proofs
 
Greedy Knapsack
Greedy KnapsackGreedy Knapsack
Greedy Knapsack
 
Mindmaps: история и идеология
Mindmaps: история и идеологияMindmaps: история и идеология
Mindmaps: история и идеология
 
Успешный программист. Современные тенденции
Успешный программист. Современные тенденцииУспешный программист. Современные тенденции
Успешный программист. Современные тенденции
 
Introducing Security Access Control Policies into Legacy Business Processes
Introducing Security Access Control Policies into Legacy Business ProcessesIntroducing Security Access Control Policies into Legacy Business Processes
Introducing Security Access Control Policies into Legacy Business Processes
 
Derandomization Luby
Derandomization LubyDerandomization Luby
Derandomization Luby
 
average-knapsack.beam.pdf
average-knapsack.beam.pdfaverage-knapsack.beam.pdf
average-knapsack.beam.pdf
 

More from Stas Fomin

Levenstein distance.beam
Levenstein distance.beamLevenstein distance.beam
Levenstein distance.beamStas Fomin
 
Какой у вас Agile: свежевыжатый или порошковый?
Какой у вас Agile: свежевыжатый или порошковый?Какой у вас Agile: свежевыжатый или порошковый?
Какой у вас Agile: свежевыжатый или порошковый?Stas Fomin
 
Теория ограничений и Линейное программирование
Теория ограничений и Линейное программированиеТеория ограничений и Линейное программирование
Теория ограничений и Линейное программированиеStas Fomin
 
Введение в Subversion
Введение в SubversionВведение в Subversion
Введение в SubversionStas Fomin
 
Fake Flash Drives from TopKeen
Fake Flash Drives from TopKeenFake Flash Drives from TopKeen
Fake Flash Drives from TopKeenStas Fomin
 
P Reducibility And Npc
P Reducibility And NpcP Reducibility And Npc
P Reducibility And NpcStas Fomin
 
Packing Average
Packing AveragePacking Average
Packing AverageStas Fomin
 
Maximal Independent Set
Maximal Independent SetMaximal Independent Set
Maximal Independent SetStas Fomin
 
Max Cut Semidefinite
Max Cut SemidefiniteMax Cut Semidefinite
Max Cut SemidefiniteStas Fomin
 
Intro And Samples
Intro And SamplesIntro And Samples
Intro And SamplesStas Fomin
 
Greedy Covering Almost Ok
Greedy Covering Almost OkGreedy Covering Almost Ok
Greedy Covering Almost OkStas Fomin
 
Greedy Covering
Greedy CoveringGreedy Covering
Greedy CoveringStas Fomin
 
Derandomization Maxsat
Derandomization MaxsatDerandomization Maxsat
Derandomization MaxsatStas Fomin
 
Average Knapsack
Average KnapsackAverage Knapsack
Average KnapsackStas Fomin
 

More from Stas Fomin (17)

Levenstein distance.beam
Levenstein distance.beamLevenstein distance.beam
Levenstein distance.beam
 
Какой у вас Agile: свежевыжатый или порошковый?
Какой у вас Agile: свежевыжатый или порошковый?Какой у вас Agile: свежевыжатый или порошковый?
Какой у вас Agile: свежевыжатый или порошковый?
 
Теория ограничений и Линейное программирование
Теория ограничений и Линейное программированиеТеория ограничений и Линейное программирование
Теория ограничений и Линейное программирование
 
Введение в Subversion
Введение в SubversionВведение в Subversion
Введение в Subversion
 
Fake Flash Drives from TopKeen
Fake Flash Drives from TopKeenFake Flash Drives from TopKeen
Fake Flash Drives from TopKeen
 
Ptas Knapsack
Ptas KnapsackPtas Knapsack
Ptas Knapsack
 
P Reducibility And Npc
P Reducibility And NpcP Reducibility And Npc
P Reducibility And Npc
 
Packing Average
Packing AveragePacking Average
Packing Average
 
Maximal Independent Set
Maximal Independent SetMaximal Independent Set
Maximal Independent Set
 
Max Cut Semidefinite
Max Cut SemidefiniteMax Cut Semidefinite
Max Cut Semidefinite
 
Intro And Samples
Intro And SamplesIntro And Samples
Intro And Samples
 
Greedy Covering Almost Ok
Greedy Covering Almost OkGreedy Covering Almost Ok
Greedy Covering Almost Ok
 
Greedy Covering
Greedy CoveringGreedy Covering
Greedy Covering
 
Sat Average
Sat AverageSat Average
Sat Average
 
Derandomization Maxsat
Derandomization MaxsatDerandomization Maxsat
Derandomization Maxsat
 
Christofides
ChristofidesChristofides
Christofides
 
Average Knapsack
Average KnapsackAverage Knapsack
Average Knapsack
 

Obfuscation Curstate Review

  • 1. Теоретические аспекты проблемы обфускации программ Н.П. Варновский, В.А. Захаров, Н.Н. Кузюрин, А.В. Шокуров Институт системного программирования РАН , ф-т ВМиК и ИПИБ МГУ им. М.В. Ломоносова 10 октября 2008 г. 1 / 22
  • 2. ОБФУСКАЦИЯ ПРОГРАММ Обфускация — эквивалентные преобразования программ для затруднения: понимания программ; извлечения полезной информации содержащейся в программе: алгоритмов; структур данных; секретных ключей; ... 2 / 22
  • 3. История исследований 1976 Первое упоминание: Diffie W., Hellman M. New directions in cryptography“, 1976. ” 1997 Первая научная статья: Collberg C., Thomborson C., Low D. A taxonomy of obfuscating transformations“, 1997. ” 2001 Первая математическая постановка задачи: Barak B., Goldreich O., Impagliazzo R., Rudich S., Sahai A., Vedhan S., Yang K. On the (Im)possibility of obfuscating programs“, 2001. ” 3 / 22
  • 4. Обфускация: модель «черного ящика» Вероятностный алгоритм O называется обфускатором, стойким в модели «черного ящика», если 1 (функциональность) π ≈ O(π) для любой программы π; 2 (полиномиальное замедление) существует полином p(·), такой что ∀π : |O(π)| ≤ p(|π|), time(O(π)) ≤ p(time(π)); 3 (стойкость) Для любой PPT A (противника ) существует PPT S (симулятор ) и пренебрежимо малая функция ν, такие что, для любой машины Тьюринга π: |Pr{A(O(π)) = 1} − Pr{Sπ (1|π| ) = 1}| ≤ ν(|π|) Barak B., Goldreich O., Impagliazzo R., Rudich S., Sahai A., Vedhan S., Yang K. On the (Im)possibility of obfuscating programs“, 2001. ” 4 / 22
  • 5. Обфускация: новые модели и определения 2003 обфускация предикатов: Захаров В.А., Варновский Н.П.; 2004 обфускация в модели «серого ящика»: Варновский Н.П. 2004 обфускация алгоритмов: Варновский Н.П. 2004 защита констант (ключей): Варновский Н.П.; Hofheinz D., Malobe-Lee J., Stam M. 2007. 2005 обфускация с дополнительным входом: Goldwasser S., Tauman Kalai Y.T. 2007 наилучшая возможная обфускация: Goldwasser S., Rothblum G.N. 5 / 22
  • 6. ОТРИЦАТЕЛЬНЫЕ РЕЗУЛЬТАТЫ 2001 Не существует обфускаторов, стойких в модели «черного ящика». Barak B., Goldreich O., Impagliazzo R., et al., 2001; 2004 Не существует обфускаторов, стойких в модели «серого ящика», если существуют односторонние функции. Варновский Н.П., 2004; 2005 Не существует обфускаторов с дополнительным входом. Goldwasser S., Tauman Kalai Y.T., 2005; 2007 Не существует наилучшей возможной обфускации для семейства 3-CNF формул, если полиномиальная иерархия не вырождается на втором уровне (т. е. Σp = Σp ). 2 3 Goldwasser S., Rothblum G.N., 2007. 6 / 22
  • 7. ПОЛОЖИТЕЛЬНЫЕ РЕЗУЛЬТАТЫ «Обфускация точечных функций » Canetti R. 1997; Захаров В.А., Варновский Н.П., 2003; Lynn B., Prabhakaran M., Sahai A. 2004, Wee H. 2005, Canetti R., Dakdouk R. 2008. «Обфускация POBDD и конечных автоматов » Кузюрин Н.П., Шокуров А.А. и др., 2007; Goldwasser, S., Rothblum G., 2007. «Обфускация программ решифрования » Hohenberger S., Rothblum G. N., Shelat A., Vaikuntanathan V., 2007. «Обфускация программ перемешивания шифртекстов » B. Adida, D. Wikstrom, 2005. «Обфускация баз данных » Narayanan A., Shmatikov V., 2005. 7 / 22
  • 8. ПОЛОЖИТЕЛЬНЫЕ РЕЗУЛЬТАТЫ Определение Точечной называется функция fa,b : {0, 1}n → {0, 1}n , a, b ∈ {0, 1}n , удовлетворяющая условию b, если x = a, fa,b (x) = 0n , если x = a. Рассмотрим семейство точечных функций Fn = {fu,v : u, v ∈ {0, 1}n } и предикат πa,b (f ) = (f ≡ fa,b ). Если существуют односторонние перестановки, то предикат πa,b , определенный на семействе программ, вычисляющих точечные функции Fn , имеет стойкую обфускацию. 8 / 22
  • 9. ПОЛОЖИТЕЛЬНЫЕ РЕЗУЛЬТАТЫ Теорема Существует обфускатор, стойко защищающий алгоритмы, представленные детерминированными конечными автоматами или OBDD полиномиального размера. Кузюрин Н.Н., Шокуров А.В., Варновский Н.П., Захаров В.А., ISC 2007; Goldwasser, S., Rothblum G., TCC 2007. 9 / 22
  • 10. Наилучшая возможная обфускация Вероятностный алгоритм O называется наилучшим возможным обфускатором, если он удовлетворяет следующим требованиям: 1 (функциональность) 2 (полиномиальное замедление) 3 (стойкость) Для любой PPT A (противника) существует PPT S (симулятор) такие что для любой пары эквивалентных булевых схем (программ) M и M одинакового размера распределения Pr {A[O(M)]} и Pr {S[M ]} вычислительно неотличимы. 10 / 22
  • 11. Модели обфускации: взаимосвязь Защита алгоритмов ? Серый ящик Best Possible Черный ящик Неотличимость . . . с дополнительным входом 11 / 22
  • 12. Обфускация с разделением программы ПРОГРАММА - Блок A Блок B Блок А : вычисляется на защищенном устройстве небольшой вычислительной мощности (смарт-карта, процессор с малым объемом памяти и др.) Блок B : вычисляется на открытом высокопроизводительном вычислительном устройстве. Goldreich O., 1985; Ostrovsky R., 2005; Anderson W.E., 2008. 12 / 22
  • 13. ЭЛЕКТРОННАЯ СХЕМА (конечный автомат) Секретная часть - Открытая часть (Оракул R) (Программа O(M)) Обфускация с оракулом [Anderson W.E., 2008] Вероятностный алгоритм O и оракул R образуют обфускатор семейства программ F, если: 1 (функциональность) π ≈ OR (π) для любой π из F; 2 (полиномиальное замедление) 3 (стойкость) Для любой PPT A (противника) существует PPT S (симулятор) и пренебрежимо малая функция ν, такие что |Pr[AR (OR (π))] = 1} − Pr[Sπ (1n ) = 1]| ≤ ν(n) для любой программы π размера n. 13 / 22
  • 14. Обфускация с разделением программы Вычисление над зашифрованными данными Шифратор Ex - Схема вычисления O(π, x) Дешифратор Dx над зашифрованными данными Теорема. [Sander, Tchudin, 1998; Шокуров А.В., 2004. ] Существует обфускатор O ациклических алгебраических программ, в системы вычислений над зашифрованными данными со следующими свойствами: 1 преобразование программы A в схему вычислений (Ex ; O(A, x); Dx ) корректно и эффективно; 2 size(O(A, x)) = poly (size(A)); 3 для любой схемы вычислений B с n входами существует не менее 2O(n) пар (A, x), удовлетворяющих условию B = O(A, x). 14 / 22
  • 15. Новые приложения обфускации Повторное шифрование mK = E(m, K) - Re-encryption R - mK = E(m, K ) Программа повторного шифрования принимает на вход шифр mK сообщения m, зашифрованного при помощи ключа K , и вычисляет шифр mR того же сообщения m, зашифрованного при помощи другого ключа R. [Hohenberger S., Rothblum G. N., Shelat A., Vaikuntanathan V., 2007] Для некоторых криптосистем с открытым ключом существуют программы повторного шифрования, для которых можно построить обфускацию, стойкую в среднем в модели «черного ящика». 15 / 22
  • 16. Новые приложения обфускации Перемешивание шифртекстов x1 - - c1 - - ci1 - - xi1 x2 - - c2 - - ci2 - - xi2 x3 - E - c3 - C = C ⊗ Mπ - ci3 - D - xi3 xn - - cn - - cin - - xin Обфускация программы предусматривает использование криптосистемы (K , G , E , D), гомоморфной относительно сложения и однократного умножения, т. е.: Ek (x1 , r1 ) ⊕ Ek (x2 , r2 ) = Ek (x1 + x2 , ϕ(r1 , r2 )), Ek (x1 , r1 ) ⊗ Ek (x2 , r2 ) = Ek (x1 × x2 , ψ(r1 , r2 )). 16 / 22
  • 17. Новые приложения обфускации Перемешивание шифртекстов x1 - - c1 - - ci1 - - xi1 x2 - - c2 - - ci2 - - xi2 x3 - E - c3 - C = C ⊗ Mπ - ci3 - D - xi3 xn - - cn - - cin - - xin Теорема 1. [B. Adida, D. Wikstrom, 2005] Если криптосистема (K , G , E , D) является семантически стойкой, то обфускированная программа C = C ⊗ Mπ является стойкой относительно угрозы различения пары перестановки π ,π . 17 / 22
  • 18. Новые приложения обфускации Перемешивание шифртекстов x1 - - c1 - - ci1 - - xi1 x2 - - c2 - - ci2 - - xi2 x3 - E - c3 - C = C ⊗ Mπ - ci3 - D - xi3 xn - - cn - - cin - - xin Теорема 2. [B. Adida, D. Wikstrom, 2005] Существует протокол с нулевым разглашением для доказательства корректности обфускированной программы перестановки шифртекстов C = C ⊗ Mπ . 18 / 22
  • 19. Новые приложения обфускации Другие приложения Ostrovsky R., Skeith W., 2005. Применение обфускации с разделением программ для скрытного эффективного выбора текстов из потока данных по заданному набору ключевых слов. В основу обфускации положено семантически стойкая гомоморфная криптосистема. Narayanan A., Shmatikov V., 2005 Обфускация баз данных для ограничения доступа к атрибутам данных. В основу обфускации положена стойкая в модели случайного оракула обфускация точечных функций. 19 / 22
  • 20. Новые приложения обфускации Обфускация компьютерных вирусов Использование алгебраических моделей программ для классификации компьютерных вирусов Н.П. Варновский, В.А. Захаров, Р.И. Подловченко, В.С. Щербина, Н.Н. Кузюрин, А.В. Шокуров, О применении методов деобфускации программ для обнаружения сложных компьютерных вирусов, Известия ТРТУ, №7, 2006. 20 / 22
  • 21. Враг не дремлет: методы обфускации полиморфных компьютерных вирусов постоянно совершенствуются. Trojan.Win32.Obfuscated.ev: use polymorphic tactics to self-mutate, disable security software, modify system files, and install additional malware. Last updated on Jun 24 2008 . [www.viruslist.com] 21 / 22
  • 22. СПАСИБО ЗА ВНИМАНИЕ. ВАШИ ВОПРОСЫ? 22 / 22