Jump to content

Неподатливый код

Понятие неподатливых кодов было введено в 2009 году Дзембовским, Петржаком и Вихсом. [1] за смягчение понятий исправления и обнаружения ошибок . Неформально код является неподатливым, если сообщение, содержащееся в измененном кодовом слове, является либо исходным сообщением, либо совершенно несвязанным значением. Негибкие коды обеспечивают полезную и значимую гарантию безопасности в ситуациях, когда традиционное исправление и обнаружение ошибок невозможно; например, когда злоумышленник может полностью перезаписать закодированное сообщение. Хотя такие коды не существуют, если семейство « функций вмешательства » F совершенно неограничено, известно, что они существуют для многих широких семейств F вмешательства.

Эксперимент по фальсификации

[ редактировать ]

Чтобы знать схему работы неподатливого кода, нам необходимо знать базовый эксперимент, на котором он основан. Ниже приводится трехэтапный метод эксперимента по фальсификации .

  1. Исходное сообщение кодируется с помощью (возможно , рандомизированной) процедуры , давая кодовое слово = .
  2. Кодовое слово модифицируется под действием какой-либо функции вмешательства. к ошибочному кодовому слову = .
  3. Ошибочное кодовое слово декодируется с помощью процедуры , в результате чего получается декодированное сообщение = .

Эксперимент по фальсификации можно использовать для моделирования нескольких интересных реальных условий, таких как передача данных по зашумленному каналу или состязательное вмешательство в данные, хранящиеся в памяти физического устройства. Имея эту экспериментальную базу, мы хотели бы построить специальные процедуры кодирования/декодирования. , которые дают нам некоторые значимые гарантии относительно результатов вышеупомянутого эксперимента по вмешательству для больших и интересных семей. функций вмешательства. Ниже приведены несколько возможных типов гарантий, на которые мы можем надеяться. [2]

Исправление ошибок

[ редактировать ]

Одна очень естественная гарантия, называемая коррекцией ошибок , заключается в том, чтобы потребовать, чтобы для любой функции вмешательства и любого исходного сообщения эксперимент по изменению всегда производил правильное декодированное сообщение. . [3]

Обнаружение ошибок

[ редактировать ]

Более слабая гарантия, называемая обнаружением ошибок , требует, чтобы эксперимент по изменению всегда приводил либо к правильному значению, либо к правильному значению. или специальный символ указывает на то, что было обнаружено вмешательство. Это понятие обнаружения ошибок является более слабой гарантией, чем исправление ошибок, и достижимо для большего F функций вмешательства.

Описание алгоритма

[ редактировать ]

Неподатливый код гарантирует, что любой эксперимент по вмешательству приведет к правильному декодированию сообщения. , или декодированное сообщение полностью независим и не связан с исходным сообщением . Другими словами, понятие неподатливости кодов по духу схоже с понятиями неподатливости криптографических примитивов (таких как шифрование2, обязательства и доказательства с нулевым разглашением), введенных в плодотворной работе Долева, Дворка и Наор. [4]

По сравнению с исправлением или обнаружением ошибок «правильную» формализацию неподатливых кодов определить несколько сложнее. Позволять быть случайной величиной для значения декодированного сообщения, которое получается, когда мы запускаем эксперимент по вмешательству в исходное сообщение. и функция взлома , над случайностью процедуры кодирования. Интуитивно мы хотим сказать, что распределение не зависит от закодированного сообщения . Конечно, мы также хотим учесть случай, когда эксперимент по вмешательству приводит к (например, если функцией взлома является идентичность), что, очевидно, зависит от .

Таким образом, мы требуем, чтобы для каждой тамперной функции , существует распределение который выводит либо конкретные значения или особенный же символ и точно моделирует распределение для всех в следующем смысле: для каждого исходного сообщения , распределения и статистически близки, когда символ интерпретируется как . То есть, правильно моделирует «результат» эксперимента по изменению функции не зная исходных сообщений , но допускается некоторая двусмысленность, выводя одно и то же символ, указывающий, что декодированное сообщение должно быть таким же, как исходное сообщение, без указания точного значения. Тот факт, что зависит только от и не на , показывает, что результат не зависит от , исключая равенство.

Отношение к исправлению/обнаружению ошибок

[ редактировать ]

Обратите внимание, что неподатливость является более слабой гарантией, чем исправление/обнаружение ошибок; последние гарантируют, что любое изменение кодового слова может быть исправлено или, по крайней мере, обнаружено процедурой декодирования, тогда как первый позволяет изменять сообщение, но только до несвязанного значения. Однако при изучении исправления/обнаружения ошибок мы обычно ограничиваемся ограниченными формами вмешательства, которые сохраняют некоторое представление о расстоянии (например, обычно расстоянии Хэмминга ) между исходным и подделанным кодовым словом. Например, для простого семейства функций уже невозможно добиться исправления/обнаружения ошибок. что для каждой константы , включает в себя « константную » функцию который отображает все входы в . Всегда есть какая-то функция который сопоставляет все с действительным кодовым словом . Напротив, легко построить коды, которые не податливы относительно , поскольку выход постоянной функции явно не зависит от ее входа. Предыдущие работы над неподатливыми кодами показывают, что можно создавать неподатливые коды для очень сложных семейств функций вмешательства. для которых исправление/обнаружение ошибок невозможно. [1]

Применение функций несанкционированного вмешательства

[ редактировать ]

Побитовое независимое вмешательство

[ редактировать ]

В качестве одного очень конкретного примера мы изучаем неподатливость по отношению к семейству функций которые определяют для каждого бита кодового слова , следует ли оставить его как есть, перевернуть его, установить на 0, установить на 1. То есть каждый бит кодового слова изменяется произвольно, но независимо от значения других битов кодового слова. Мы называем это семейством «побитового независимого вмешательства». . Обратите внимание, что это семейство содержит постоянные функции и функции постоянной ошибки как подмножества. Поэтому, как мы уже упоминали, исправление и обнаружение ошибок не могут быть достигнуты в отношении этого семейства. Тем не менее, нижеследующее может показать эффективный негибкий код для этого мощного семейства.

С мы обозначаем семейство, которое содержит все функции вмешательства, которые изменяют каждый бит независимо. Формально это семейство содержит все функции которые определяются n функциями (для i=1...n) как . Обратите внимание, что для каждого варианта существует только 4 возможных варианта. (т.е. как изменить конкретный бит), и мы называем их «установить в 0», «установить в 1», «перевернуть», «сохранить», где значения должны быть интуитивно понятны. Мы называем указанное выше семейство побитовым независимым семейством несанкционированного вмешательства.

Все семьи ограниченного размера

[ редактировать ]

Для любого «достаточно маленького» семейства функций , существует (возможно, неэффективная) схема кодирования, которая не податлива относительно F. Более того, для фиксированного «достаточно малого» семейства функций , схема случайного кодирования, вероятно, будет негибкой относительно F с подавляющей вероятностью. К сожалению, схемы случайного кодирования не могут быть эффективно представлены, а функция кодирования/декодирования вряд ли будет эффективной. Следовательно, этот результат следует рассматривать просто как демонстрацию «возможности» и поставленную цель, которой мы затем должны конструктивно стремиться соответствовать. Более того, этот результат также подчеркивает разницу между «исправлением/обнаружением ошибок» и «неподатливостью», поскольку результат этой формы не может быть верным для первых понятий.

Неясно, какова оценка из теоремы [4] этого типа на самом деле подразумевает. Например, он говорит нам, что неподатливые коды существуют по отношению ко всем эффективным функциям, но это вводит в заблуждение, поскольку мы знаем, что эффективные неподатливые коды (а в конечном счете нас интересуют только такие) не могут быть неподатливыми относительно этого. сорт. Тем не менее, результат вероятностного метода дает нам коды, которые не поддаются изменению по отношению к очень общим классам функций в модели случайного оракула.

Модель защиты от несанкционированного доступа

[ редактировать ]

В этой модели мы рассматриваем два способа взаимодействия с системой:

Выполнять( ): Пользователь может предоставить системе запросы Execute(x), например , и в этом случае система вычисляет , обновляет состояние системы до и результаты .

Тампер( ) : Мы также рассматриваем несанкционированные атаки на систему, смоделированные Tamper( ) команды для функций . При получении такой команды состояние системы устанавливается на .

Злоумышленник, который также может взаимодействовать с системой через запросы Tamper, потенциально может узнать значительно больше о секретном состоянии и даже полностью его восстановить. Поэтому нам хотелось бы иметь общий метод защиты систем от несанкционированных атак, чтобы иметь возможность выдавать запросы на несанкционированный доступ (по крайней мере, для функций f в каком-то большом семействе). ) не может предоставить злоумышленнику дополнительную информацию. Используя для этой цели неподатливый код, мы приходим к выводу: пусть быть любой схемой кодирования, которая не является гибкой по отношению к , затем также может быть имитирован несанкционированный доступ к .

Емкость неподатливых кодов

[ редактировать ]
  1. Для каждой семьи с , существуют неподатливые коды против со ставкой, сколь угодно близкой к 1 − (это достигается за счет рандомизированной конструкции). [5]
  2. Для большой семьи против которого нет неподатливого кода скорости 1 — (на самом деле это тот случай, когда случайная семья такого размера).
  3. 1 − — это наилучшая достижимая скорость для семейства функций, которым разрешено изменять только первые бит кодового слова, что представляет особый интерес.
  1. ^ Jump up to: а б Дзембовский, Стефан; Петржак, Кшиштоф; Вичс, Дэниел (2018). «Неподатливые коды». Дж. АКМ . 65 (4): 20:1–20:32. дои : 10.1145/3178432 . См. также предварительную версию, Архив Cryptology ePrint, Paper 2009/608.
  2. ^ Фауст, Себастьян; Мукерджи, Пратьяй; Вентури, Даниэле; Вичс, Дэниел (2014). «Эффективные неподатливые коды и получение ключей для многоуровневых схем взлома». Достижения в криптологии – EUROCRYPT 2014 (PDF) . Конспекты лекций по информатике. Том. 8441. стр. 111–128. дои : 10.1007/978-3-642-55220-5_7 . ISBN  978-3-642-55219-9 .
  3. ^ Э. Шеннон, Клод (1949). «Теория связи секретных систем». Технический журнал Bell System . 28 (4): 656–715. дои : 10.1002/j.1538-7305.1949.tb00928.x . hdl : 10338.dmlcz/119717 .
  4. ^ Jump up to: а б Долев, Дэнни; Дворк, Синтия; Мони, Наор (24 марта 2000 г.). «Неподатливая криптография». SIAM Journal по вычислительной технике . 30 (2): http://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=9A853A59C3A45DD1B67690F10232D635?doi=10.1.1.26.8267&rep=rep1&type=pdf . CiteSeerX   10.1.1.49.4643 . дои : 10.1137/s0097539795291562 .
  5. ^ Черагчи, Махди; Гурусвами, Венкатесан (2 сентября 2013 г.). «Емкость неподатливых кодов». arXiv : 1309.0458 [ cs.IT ].
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: e503a9e55cb571aeaab09821447a611b__1713479760
URL1:https://arc.ask3.ru/arc/aa/e5/1b/e503a9e55cb571aeaab09821447a611b.html
Заголовок, (Title) документа по адресу, URL1:
Non-malleable code - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)