Запутывание неотличимости
![]() | Эта статья может быть слишком технической для понимания большинства читателей . ( Май 2021 г. ) |
В криптографии обфускация неотличимости (сокращенно IO или iO ) — это тип программной обфускации с определяющим свойством, заключающимся в том, что запутывание любых двух программ, вычисляющих одну и ту же математическую функцию , приводит к созданию программ, которые невозможно отличить друг от друга. Неформально такая обфускация скрывает реализацию программы, но при этом позволяет пользователям ее запускать. [1] Формально iO удовлетворяет тому свойству, что обфускации двух схем одинакового размера, реализующих одну и ту же функцию, неразличимы в вычислительном отношении . [2]
Обфускация неотличимости имеет несколько интересных теоретических свойств. Во-первых, iO — это «наилучшая возможная» обфускация (в том смысле, что любой секрет программы, который вообще может быть скрыт любым обфускатором, также может быть скрыт iO). Во-вторых, iO можно использовать для создания почти всего спектра криптографических примитивов , включая как обыденные, такие как криптография с открытым ключом, так и более экзотические, такие как шифрование с возможностью отрицания и функциональное шифрование (которые представляют собой типы криптографии, о применении которых никто ранее не знал). построить [3] ), но за заметным исключением семейств хеш-функций, устойчивых к коллизиям . По этой причине его называют «криптополным». Наконец, в отличие от многих других видов криптографии, запутывание неотличимости продолжает существовать, даже если P=NP (хотя в этом случае его пришлось бы конструировать по-другому), хотя это не обязательно означает, что iO существует безоговорочно.
Хотя идея запутывания криптографического программного обеспечения существует с 1996 года, запутывание неотличимости было впервые предложено Бараком и др. (2001), которые доказали, что iO существует, если P=NP. Для случая P≠NP (который сложнее, но и более правдоподобен) [2] ), прогресс был медленнее: Garg et al. (2013) [4] предложил конструкцию iO, основанную на предположении о вычислительной сложности, относящемся к полилинейным картам , но это предположение позже было опровергнуто. Построению, основанному на «хорошо обоснованных предположениях» (предположениях о надежности, которые были хорошо изучены криптографами и, таким образом, широко считались безопасными), пришлось подождать до Джайн, Лин и Сахаи (2020). (Даже в этом случае одно из этих предположений, использованных в предложении 2020 года, не защищено от квантовых компьютеров .)
Известные в настоящее время кандидаты на запутывание неотличимости очень далеки от практического применения. Согласно данным исследования 2017 года, [ нужно обновить ] даже если запутать игрушечную функцию , которая выводит логическое соединение тридцати двух входных данных логического типа, получается программа размером почти дюжину гигабайт .
Формальное определение [ править ]
Позволять — некоторый однородный вероятностный алгоритм с полиномиальным временем . Затем называется обфускатором неотличимости тогда и только тогда, когда он удовлетворяет обоим следующим двум утверждениям: [5] [6] [7]
- Полнота или функциональность : для любой логической схемы C входной длины n и входного , у нас есть
- Неотличимость : для каждой пары цепей. одинакового размера k , реализующие одну и ту же функциональность, распределения и вычислительно неотличимы. Другими словами, для любого вероятностного противника A с полиномиальным временем существует пренебрежимо малая функция ( т.е. функция, которая со временем растет медленнее, чем для любого многочлена p ) такого, что для любой пары цепей того же размера k , которые реализуют одну и ту же функциональность, мы имеем
История [ править ]
В 2001 году Барак и др., показав, что обфускация черного ящика невозможна, также предложили идею обфускатора неотличимости и построили неэффективный. [8] [7] [2] Хотя это понятие казалось относительно слабым, Голдвассер и Ротблюм (2007) показали, что эффективный обфускатор неотличимости будет наилучшим из возможных обфускаторов, а любой наилучший обфускатор будет обфускатором неотличимости. [8] [9] (Однако для неэффективных обфускаторов не существует наилучшего обфускатора, если полиномиальная иерархия не рухнет на второй уровень. [9] )
Программная с открытым исходным кодом была создана в 2015 году. реализация кандидата iO [10]
Конструкции-кандидаты [ править ]
Барак и др. (2001) доказали, что неэффективный для схем существует обфускатор неотличимости; то есть лексикографически первая схема, вычисляющая ту же функцию. [7] Если выполняется P = NP , то обфускатор неотличимости существует, даже если никакого другого вида криптографии не существует. [2]
Кандидатная конструкция iO с доказуемой безопасностью при конкретных предположениях о жесткости, относящихся к многолинейным картам, была опубликована Гаргом и др. (2013), [2] [11] [3] но позже это предположение было признано недействительным. [11] [3] (Ранее Гарг, Джентри и Халеви (2012) построили возможную версию полилинейной карты, основанную на эвристических предположениях. [4] )
Начиная с 2016 года Лин начал исследовать конструкции iO на основе менее строгих версий полилинейных отображений, строя кандидата на основе карт степени до 30 и, в конечном итоге, кандидата на основе карт степени до 3. [3] Наконец, в 2020 году Джайн, Лин и Сахаи предложили конструкцию iO, основанную на симметричном внешнем алгоритме Диффи-Хельмана , обучении с ошибками и предположениях об обучении плюс шум . [3] [5] а также существование суперлинейного растяжения псевдослучайного генератора в классе функций NC 0 . [5] (Существование псевдослучайных генераторов в NC 0 (даже при сублинейном растяжении) была давней открытой проблемой до 2006 года. [12] ) Вполне возможно, что эту конструкцию можно сломать с помощью квантовых вычислений , но существует альтернативная конструкция, которая может быть защищена даже от этого (хотя последняя опирается на менее устоявшиеся предположения о безопасности). [3] [ предположение? ]
Практичность [ править ]
Были попытки реализовать и протестировать кандидатов iO. [2] В 2017 году произошла обфускация функции при уровне безопасности 80 бит создание заняло 23,5 минуты и составило 11,6 ГБ со временем оценки 77 мс. [2] Кроме того, запутывание схемы шифрования Advanced Encryption Standard с уровнем безопасности 128 бит будет иметь размер 18 Пбайт и время оценки около 272 лет. [2]
Существование [ править ]
Полезно разделить вопрос о существовании iO, используя Рассела Импальяццо . «пять миров» [13] это пять различных гипотетических ситуаций, связанных со сложностью в среднем случае : [6]
- Алгоритма : В этом случае P = NP , но iO существует.
- Эвристика : в этом случае задачи NP в среднем просты; иО не существует. [ сомнительно – обсудить ]
- Пессиланд : В данном случае BPP ≠ NP, но односторонних функций не существует; в результате iO не существует.
- Minicrypt : в этом случае существуют односторонние функции , но безопасной криптографии с открытым ключом нет ; iO не существует (поскольку известны явные конструкции криптографии с открытым ключом из iO и односторонние функции).
- Криптомания : в этом случае безопасная криптография с открытым ключом существует, но iO не существует.
- Обфустопия : [14] [15] В этом случае считается, что iO существует.
Возможные применения [ править ]
Обфускаторы неотличимости, если они существуют, могли бы использоваться для огромного количества криптографических приложений, настолько, что их стали называть «центральным узлом» криптографии. [1] [3] «жемчужина криптографии», [3] или «крипто-полный». [2] Конкретно, обфускатор неотличимости (с дополнительным предположением существования односторонних функций [2] ) можно использовать для создания следующих видов криптографии:
- Обфускация неотличимости программ в модели оперативной памяти [5] и для машин Тьюринга [16] [17]
- IND-CCA – безопасная криптография с открытым ключом [18]
- Короткие цифровые подписи [18]
- IND-CCA — безопасной инкапсуляции ключей. схемы [18]
- разглашением Неинтерактивные доказательства с нулевым и краткие неинтерактивные аргументы. [18]
- Параллельные протоколы с постоянным циклом с нулевым разглашением [5]
- Полилинейные карты с ограниченными полиномиальными степенями [5]
- Инъективные функции-ловушки [18]
- Полностью гомоморфное шифрование [5]
- Шифрование свидетеля [5] [2]
- Функциональное шифрование [2]
- Совместное использование секретов для любого монотонного NP-языка. [5]
- Получестный забывчивый трансфер [18]
- Отклоняемое шифрование (как с возможностью отрицания отправителя, так и с полным отрицанием) [18] [5] [2]
- Многосторонний неинтерактивный обмен ключами [5]
- Адаптивно безопасная сжатая искажённая оперативная память [5]
- Корреляционные трудноразрешимые функции [5]
- Шифрование на основе атрибутов [5]
- Не обращающий внимания трансфер [2]
- Розыск предателей [2]
- Схемы градуированного кодирования [2]
Кроме того, если существуют iO и односторонние функции, то проблемы класса сложности PPAD доказуемо сложны. [5] [19]
Однако обфускация неотличимости не может использоваться для создания всех возможных криптографических протоколов: например, никакая конструкция черного ящика не может преобразовать обфускатор неотличимости в семейство устойчивых к коллизиям хеш-функций , даже с перестановкой с люком , за исключением экспоненциальной потери безопасности. [20]
См. также [ править ]
- Запутывание черного ящика , более сильная форма запутывания, оказалась невозможной.
Ссылки [ править ]
- ↑ Перейти обратно: Перейти обратно: а б Кларрайх, Эрика (3 февраля 2014 г.). «Прорыв в криптографии может сделать программное обеспечение неуязвимым» . Журнал Кванта .
- ↑ Перейти обратно: Перейти обратно: а б с д и ж г час я дж к л м н тот п Пеллет – Мэри, Алиса (26 мая 2020 г.). «Co6GC: Обфускация программы | COSIC» . www.esat.kuleuven.be . Архивировано из оригинала 11 ноября 2020 года . Проверено 22 августа 2021 г.
- ↑ Перейти обратно: Перейти обратно: а б с д и ж г час Кларрайх, Эрика (10 октября 2020 г.). «Учёные-компьютерщики достигли «жемчужины» криптографии» . Журнал Кванта .
- ↑ Перейти обратно: Перейти обратно: а б Барак, Вооз (29 декабря 2020 г.). «Новые разработки в области запутывания неотличимости (iO) | Институт теории вычислений Саймонса» . simons.berkeley.edu . Проверено 22 августа 2021 г.
- ↑ Перейти обратно: Перейти обратно: а б с д и ж г час я дж к л м н тот Джайн, Ааюш; Линь, Хуэйцзя; Сахай, Амит (2020). «Обфускация неотличимости от вполне обоснованных предположений» . Архив электронной печати по криптологии . arXiv : 2008.09317 .
- ↑ Перейти обратно: Перейти обратно: а б Моран, Тал; Розен, Алон (7 октября 2013 г.). «В Пессиленде нет маскировки неразличимости» (PDF) . Архив электронной печати криптологии IACR .
- ↑ Перейти обратно: Перейти обратно: а б с Барак, Вооз; Гольдрейх, Одед; Импальяццо, Рассел; Рудич, Стивен; Сахай, Амит; Вадхан, Салил; Ян, Кэ (3 мая 2012 г.). «О (не)возможности запутывания программ» (PDF) . Журнал АКМ . 59 (2): 6:1–6:48. дои : 10.1145/2160158.2160159 . ISSN 0004-5411 . S2CID 2409597 .
- ↑ Перейти обратно: Перейти обратно: а б Кларрайх, Эрика (30 января 2014 г.). «Совершенствование искусства разумной чепухи» . Журнал Кванта . Проверено 22 августа 2021 г.
- ↑ Перейти обратно: Перейти обратно: а б Гольдвассер, Шафи ; Ротблюм, Гай Н. (2007). «О наилучшей возможной обфускации» . В Вадхане, Салил П. (ред.). Теория криптографии . Конспекты лекций по информатике. Том. 4392. Берлин, Гейдельберг: Springer. стр. 194–213. дои : 10.1007/978-3-540-70936-7_11 . hdl : 1721.1/129413 . ISBN 978-3-540-70936-7 .
- ^ Банеску, Себастьян; Очоа, Мартин; Кунце, Нильс; Пречнер, Александр (2015). «Идея: запутывание бенчмаркинга неотличимости – возможный вариант реализации» (PDF) . В Писсенсе, Франк; Кабальеро, Хуан; Белова, Наталья (ред.). Инженерное безопасное программное обеспечение и системы . Конспекты лекций по информатике. Том. 8978. Чам: Springer International Publishing. стр. 149–156. дои : 10.1007/978-3-319-15618-7_12 . ISBN 978-3-319-15618-7 .
- ↑ Перейти обратно: Перейти обратно: а б Санджам Гарг; Крейг Джентри ; Шай Халеви ; Мариана Райкова; Амит Сахай ; Брент Уотерс (2013). «Кандидат на неотличимость, обфускация и функциональное шифрование для всех схем». 54-й ежегодный симпозиум IEEE по основам информатики , 2013 г. IEEE. стр. 40–49. CiteSeerX 10.1.1.672.1968 . дои : 10.1109/FOCS.2013.13 . ISBN 978-0-7695-5135-7 . S2CID 15703414 .
{{cite book}}
:|journal=
игнорируется ( помогите ) - ^ Эпплбаум, Б; Ишай, Ю; Кушилевиц, Э (2006). «Криптография в NC0» (PDF) . SIAM Journal по вычислительной технике . 36 (4): 845–888. дои : 10.1137/S0097539705446950 .
- ^ Импальяццо, Рассел (19–22 июня 1995 г.). «Личный взгляд на сложность среднего случая» . Труды о структуре в теории сложности. Десятая ежегодная конференция IEEE . стр. 134–147. дои : 10.1109/SCT.1995.514853 . ISBN 0-8186-7052-5 . S2CID 2154064 . Проверено 27 июля 2022 г.
- ^ Битанский, Нир; Нисимаки, Ре; Пасселег, Ален; Вичс, Дэниел (30 августа 2017 г.). «От криптомании к обфустопии посредством функционального шифрования с секретным ключом» (PDF) . Архив электронной печати криптологии IACR .
- ^ Гарг, Санджам; Пандей, Омкант; Шринивасан, Акшаярам; Жандри, Марк (2017). «Преодолев субэкспоненциальный барьер в Обфустопии» . В Короне Жан-Себастьян; Нильсен, Йеспер Буус (ред.). Достижения в криптологии – EUROCRYPT 2017 . Конспекты лекций по информатике. Том. 10212. Чам: Springer International Publishing. стр. 156–181. дои : 10.1007/978-3-319-56617-7_6 . ISBN 978-3-319-56617-7 .
- ^ Коппула, Венката; Левко, Эллисон Бишоп; Уотерс, Брент (14 июня 2015 г.). «Обфускация неотличимости для машин Тьюринга с неограниченной памятью» (PDF) . Материалы сорок седьмого ежегодного симпозиума ACM по теории вычислений . СТОК '15. Портленд, Орегон, США: Ассоциация вычислительной техники. стр. 419–428. дои : 10.1145/2746539.2746614 . ISBN 978-1-4503-3536-2 . S2CID 1368494 .
- ^ Анант, Прабханджан; Джайн, Абхишек; Сахай, Амит (2017). «Обфускация неотличимости для машин Тьюринга: постоянные накладные расходы и амортизация» (PDF) . В Каце, Джонатан; Шахам, Ховав (ред.). Достижения криптологии – CRYPTO 2017 . Конспекты лекций по информатике. Том. 10402. Чам: Springer International Publishing. стр. 252–279. дои : 10.1007/978-3-319-63715-0_9 . ISBN 978-3-319-63715-0 .
- ↑ Перейти обратно: Перейти обратно: а б с д и ж г Сахай, Амит; Уотерс, Брент (2013). «Как использовать обфускацию неотличимости: отрицаемое шифрование и многое другое» . Архив электронной печати по криптологии .
- ^ Битанский, Нир; Панет, Омер; Розен, Алон (октябрь 2015 г.). «О криптографической сложности нахождения равновесия Нэша» . 56-й ежегодный симпозиум IEEE по основам информатики , 2015 г. стр. 1480–1498. дои : 10.1109/FOCS.2015.94 . ISBN 978-1-4673-8191-8 . S2CID 217890992 .
- ^ Ашаров, Гилад; Сегев, Гил (2015). «Ограничения возможностей неотличимости, обфускации и функционального шифрования» . Архив электронной печати по криптологии .