БЕЗОПАСНЫЕ ПРЕОБРАЗОВАНИЯ ДАННЫХ
SECURE DATA TRANSFORMATIONS

Область техники, к которой относится изобретение
Изобретение относится к вычислению преобразования данных с использованием зашифрованных представлений значения данных.
Уровень техники изобретения
В последние годы были выполнены разработки, направленные на то, чтобы сделать компьютерные операции более безопасными. Например, устройству может быть позволено декодировать некоторые данные, но эта возможность не должна с легкостью передаваться другим устройствам или пользователям.
Криптография типа «белый ящик» является технологией, в которой вычисление функций выполняется посредством предварительно вычисленных таблиц поиска. Эта технология может использоваться для того, чтобы скрыть функциональность от злоумышленников, у которых может иметься доступ к коду программы. Таблицы поиска могут быть спроектированы таким образом, что последовательность табличных поисков выполняется с использованием различных таблиц поиска для реализации алгоритма. Таблицы поиска могут дополнительно быть спроектированы таким образом, что промежуточные результаты между последовательными табличными поисками кодируются посредством случайных взаимно однозначных соответствий. Технология типа «белый ящик» известна, например, из ʺWhite-Box Cryptography and an AES Implementationʺ, S. Chow, P.A. Eisen, H. Johnson, and P.C. van Oorschot в: Proceeding SAC 2002 Revised Papers from the 9th Annual International Workshop on Selected Areas in Cryptography, стр. 250-270, Springer-Verlag London, UK. US 2012/0300922 A1 раскрывает способ для генерации таблицы соответствия, пригодный для использования в способе криптографической обработки, содержащий хранение множества входных данных и выходных данных в таблице, при этом каждый элемент входных данных связан по меньшей мере с одним элементом выходных данных в таблице. Для каждого элемента входных данных по меньшей мере один элемент из выходных данных получается путем применения функции кодирования к первому вспомогательному элементу данных и к зашифрованному промежуточному элементу данных в зависимости от элемента входных данных.
Сущность изобретения
Было бы полезно иметь систему, которая позволяет осуществлять безопасную обработку данных, которая имеет улучшенную защиту от атак. В первом аспекте изобретение обеспечивает систему для выполнения безопасной последовательности  преобразований , где , над значением данных с использованием зашифрованных представлений значения данных, содержащую
первое средство преобразования для применения преобразования к значению  входных данных для получения обфусцированного представления  значения , при этом обфусцированное представление содержит избыточность, которая зависит от входной переменной ;
второе средство преобразования для применения, для каждого из , преобразования  для вычисления  из , так что ;
третье средство преобразования для применения преобразования , которое зависит от ,  и , путем вычисления  для получения результата последовательности преобразований, где ;
при этом  для , где  является предварительно заданной обфускационной функцией, которая задает взаимно-однозначное соответствие между  и , и где  удовлетворяет условию, что имеется взаимно-однозначное отображение, которое отображает любое значение  на значение  таким образом, что ;
зависит от ; и
при этом  и  для  для предварительно заданных функций  и , при этом  и  не вычисляются системой в явном виде.
В настоящем документе предполагается, что оператор  является «линейным относительно оператора » тогда и только тогда, когда .
Эта система имеет то преимущество, что становится труднее анализировать внутреннюю работу системы, например, путем изменения входных значений и анализа поведения системы, потому что изменение промежуточной переменной (например  или  для некоторых ) злоумышленником может вызвать изменение состояния . Из-за этого результат пятого средства преобразования станет непредсказуемым, поскольку преобразование  использует  для смешивания ожидаемого значения для  с информацией, относящейся к , которая присутствует в . Если  и информация, относящаяся к , которая присутствует в , не соответствуют тому же самому значению , вывод пятого средства преобразования может быть беспорядочным, что усложняет анализ, который злоумышленник должен выполнить, чтобы понять систему.
Третье средство преобразования может содержать четвертое средство преобразования для применения преобразования , так что ; и пятое средство преобразования для применения преобразования  путем вычисления  для получения результата последовательности преобразований, где . Это позволяет осуществить эффективную реализацию. Если преобразования реализованы в форме таблиц поиска, то этот признак позволяет реализовать таблицы поиска с уменьшенным объемом памяти.
В примере  задается следующим образом для :
,
где
является оператором,
, ,  и  являются операторами, которые являются линейными относительно оператора , операторы  и  являются обратимыми, и оператор , который отображает  на , является обратимым;
, ,  и  являются обратимыми отображениями.
Этот пример обфускационной функции  обеспечивает относительно простую конструкцию системы. Операторы  и  могут использоваться для замены или реализации . В этом примере предполагается, что оператор G является линейным относительно оператора , если в целом выполняется, что .
Например,  и  являются обратимыми линейными операторами для всех .
Например,  равно . Это означает, что переменная  состояния зависит от . Соотношение между входными данными  и переменной  состояния может оставаться непонятным злоумышленнику при обфускации этого соотношения соотношением, реализованным первым средством преобразования, например, путем реализации соответствия между входными данными  и обфусцированным представлением  с использованием таблицы поиска таким образом, что значение  не вычисляется как промежуточный результат в системе.
Например,  имеет вычислительную сложность, которая меньше, чем вычислительная сложность . Это позволяет преобразованию  иметь относительно небольшую вычислительную сложность. Например, вычислительная сложность  не зависит от .
Например,  является тождественной функцией. Это облегчает конструирование , поскольку значение  также неявно используется в его зависимости от  в первом средстве преобразования.
Например, оператор  является поразрядной операцией «исключающее ИЛИ» (XOR).
Например, по меньшей мере одно из: первое, второе, третье, четвертое или пятое средство преобразования выполнены с возможностью поиска преобразованного значения в таблице поиска. Например, каждое из: первое, второе и третье средство преобразования выполнены с возможностью поиска преобразованного значения в таблице поиска. В другом примере каждое из: первое, второе, четвертое и пятое средство преобразования выполнены с возможностью поиска преобразованного значения в таблице поиска. Эти примеры позволяют осуществить особенно безопасную реализацию, поскольку таблица поиска позволяет скрыть любой используемый алгоритм.
Другой аспект содержит способ обеспечения системы для выполнения безопасной последовательности  преобразований , где , над значением данных с использованием зашифрованных представлений значения данных, способ, содержащий этапы, на которых
обеспечивают первое средство преобразования и конфигурируют первое средство преобразования для применения преобразования к значению  входных данных для получения обфусцированного представления  значения , при этом обфусцированное представление  содержит избыточность, которая зависит от входной переменной ;
обеспечивают второе средство преобразования и конфигурируют второе средство преобразования для применения, для каждого из , преобразования  для вычисления  из , так что ;
обеспечивают четвертое средство преобразования и конфигурируют четвертое средство преобразования для применения преобразования , так что ; и
обеспечивают пятое средство преобразования и конфигурируют пятое средство преобразования для применения преобразования , так что , для получения результата последовательности преобразований, где ;
при этом  для , где  является предварительно заданной обфускационной функцией, которая задает взаимно-однозначное соответствие между  и , и где  удовлетворяет условию, что имеется взаимно-однозначное отображение, которое отображает любое значение  на значение  таким образом, что ;
зависит от ;
при этом  и  для  для предварительно заданных функций  и ;
при этом первое средство преобразования, второе средство преобразования, четвертое средство преобразования и пятое средство преобразования выполнены с возможностью обфусцирования значений  и .
Этот способ позволяет сформировать систему.
Этап, на котором конфигурируют второе средство преобразования, может содержать вычисление по меньшей мере одной таблицы поиска по меньшей мере одной из функций , при этом таблица поиска отображает значения  на значения , путем вычисления
,
где  является функцией, обратной . Таким образом, алгоритмические этапы, задействованные в вычислении , могут быть спрятаны в одной или нескольких таблицах поиска. Использование таблиц поиска позволяет использовать дополнительные методики обфускации, в том числе упомянутые выше реализации типа «белый ящик».
Альтернативно, этап, на котором конфигурируют второе средство преобразования, может содержать этап, на котором вычисляют по меньшей мере одну таблицу поиска по меньшей мере одной из функций , при этом таблица поиска отображает значения  на значения , путем вычисления
,
где  обозначает функцию, определяемую следующим образом
,
и  является функцией, обратной . Таким образом, алгоритмические этапы, задействованные в вычислении ,  и , могут быть спрятаны в одной или нескольких таблицах поиска. Использование таблиц поиска позволяет использовать дополнительные методики обфускации, в том числе упомянутые выше реализации типа «белый ящик».
Например,  равно , и этап, на котором конфигурируют третье средство преобразования, содержит этап, на котором вычисляют по меньшей мере одну таблицу поиска, представляющую собой функцию , при этом по меньшей мере одна таблица поиска отображает кортежи  на соответствующие значения . В соответствующем примере этап, на котором конфигурируют пятое средство преобразования, содержит этап, на котором вычисляют по меньшей мере одну таблицу поиска, представляющую собой функцию , при этом по меньшей мере одна таблица поиска отображает пары  на соответствующие значения . В этих примерах алгоритмические этапы, задействованные в вычислении  или  могут быть спрятаны в одной или нескольких таблицах поиска. Использование таблиц поиска позволяет использовать дополнительные методики обфусцирования, в том числе упомянутые выше реализации типа «белый ящик».
В соответствии с другим аспектом обеспечен способ для выполнения безопасной последовательности  преобразований , где , над значением данных с использованием зашифрованных представлений значения данных, способ, содержащий этапы, на которых
применяют преобразование к значению  входных данных для получения обфусцированного представления  значения , при этом обфусцированное представление содержит избыточность, которая зависит от входной переменной ;
для каждого из  применяют преобразование  для вычисления  из , так что ;
применяют преобразование , которое зависит от ,  и , путем вычисления  для получения результата последовательности преобразований, где ;
при этом  для , где  является заранее заданной обфускационной функцией, которая задает взаимно-однозначное соответствие между  и , и где  удовлетворяет условию, что имеется взаимно-однозначное отображение, которое отображает любое значение  на значение  таким образом, что ;
зависит от ;
при этом  и  для  для предварительно заданных функций  и , при этом  и  обфусцируются на этапах применения преобразования.
В конкретном примере этап, на котором применяют преобразование , содержит этапы, на котором примененяют преобразование , так что ; и применяют преобразование , так что , для получения результата последовательности преобразований, где .
В соответствии с другим аспектом обеспечен компьютерный программный продукт, содержащий инструкции, заставляющие процессорную систему выполнять способ, изложенный в настоящем документе.
Специалисту в области техники будет понятно, что признаки, описанные выше, могут сочетаться любим образом, который можно счесть полезным. Кроме того, модификации и вариации, описанные в отношении системы, могут аналогично быть применены к способу и к компьютерному программному продукту, и модификации и вариации, описанные в отношении способа, могут быть аналогично применены к системе и к компьютерному программному продукту.
Краткое описание чертежей
Ниже будут объяснены аспекты изобретения с помощью примеров со ссылкой на чертежи. Чертежи являются схематичными и могут быть выполнены не в масштабе. На всех чертежах аналогичные элементы обозначаются одинаковыми номерами позиций.
Фиг. 1 является блок-схемой системы для безопасного выполнения последовательности преобразований.
Фиг. 2 является схемой, изображающей способ, включающий в себя последовательность безопасных преобразований данных.
Фиг. 3 является схемой, изображающей способ обеспечения системы, показанной на фиг. 1.
Подробное описание вариантов воплощения
Во многих приложениях необходимо применить преобразование  к входным данным . В силу сложности или по другим причинам может быть желательно, чтобы  вычислялось путем последовательного применения преобразований . То есть для 1≤i≤n выполняется следующий вычислительный этап:
.
Преобразования  выбираются таким образом, что результат этой итерации, , равен . Однако было бы желательно скрыть алгоритмы, используемые в преобразованиях, и/или было бы желательно, чтобы промежуточные значения, , были скрыты от пользователя-злоумышленника, даже если у пользователя-злоумышленника есть полный доступ к устройству, в том числе доступ к оперативной памяти, или даже если у пользователя-злоумышленника есть возможность использовать средства отладки для анализа приложения. Поэтому вместо вычисления значений  в явном виде, вычисляются альтернативные значения , в которых скрыты значения , соответственно. Значения  содержат больше информационных битов, чем значения , потому что значение избыточной переменной  состояния также представлено значениями . В предпочтительном примере значение  вычисляется из  и . Введем некоторые обозначения, которые будут использоваться в дальнейших объяснениях. Для  набор потенциальных значений  обозначается как . Для  непустое «множество состояний»  содержит возможные значения переменной  состояния. Чтобы избежать тривиальные случаи, предполагается, что  имеет по меньшей мере два элемента; предпочтительно каждое  имеет по меньшей мере два элемента, и еще более предпочтительно каждое  имеет более двух элементов. Для 0≤i≤n−1 выбирается секретная функция  «следующего состояния», чтобы задать . Кроме того, выбирается секретная функция  «вводного состояния», так что . Наконец, для 0≤i≤n выбираются набор  с количеством элементов равным  и секретное взаимно-однозначное отображение . Например, . Отображение  описывает соотношение между значениями , которые вычисляются безопасным вычислительным устройством, и соответствующими значениями , при этом  является обработанными данными, а  является избыточной переменной состояния, которая помогает обфусцировать  в ее представление .
Пусть 1≤i≤n. По определению . Так как  обратима, можно вычислить  и  как . Следовательно, можно вычислить  из  путем вычисления вначале , а затем . Это вычисление может быть выполнено без вычисления промежуточных значений  или , например, путем занесения в таблицу значений  и соответствующих , или другого обфусцированного вычисления функции , которое вычисляет  из , так что  и соответствующее ,  из , так что .
Следует отметить, что это  может быть разделено на два компонента, так что , для 1≤i≤n. То есть информация каждого из  и  может быть распределена по обоим компонентам  и . В конкретном примере  и, таким образом,  и . Альтернативно,  выбирается из набора с количеством элементов, равным , а  выбирается из набора с количеством элементов, равным .
Вычисление может быть начато путем вычисления  из  с использованием . В настоящем документе  обозначает функцию, которая вычисляет значение  состояния из входного значения . Функции  и  могут быть объединены, например, в таблице поиска, чтобы скрыть значение  от злоумышленника. Альтернативно, значение  может зависеть от другого элемента  входных данных вместо .
Из того, как пары  вычисляются электронным устройством (описанным выше), следует, что эти значения  зависят от входного значения  и, опционально, от дополнительного входного элемента . Аналогично, значения  (хотя они не вычисляются электронным устройством) зависят от  и/или, опционально, от дополнительного входного элемента
Если электронное устройство вычисляет  таким образом, как описано выше, оно может вычислить . Однако, при наличии надлежащего ограничения, также можно вычислить  из  и  (и/или , если  зависит от ). Это ограничение состоит в следующем: для любых двух значений  и , при этом , и любом , при этом  и , должно выполняться, что . Если это свойство выполняется, то можно сконструировать преобразование, например, таблицу поиска, которая отображает пары  и  (или пары  и ) на соответствующие значения . В таком случае нет необходимости вычислять . Это может затруднить извлечение информации из электронного устройства путем изменения значений  и/или .
В этом описании  может также обозначаться как . Эти символы имеют одинаковое значение в этом описании. Соответственно,  для . В настоящем документе  является заранее заданной обфускационной функцией, которая задает взаимно-однозначное соответствие между  и . Чтобы иметь возможность определить  на основе  и , без необходимости в значении , функция  может быть выбрана так, что  удовлетворяет условию, что имеется взаимно-однозначное отображение, которое отображает любое значение  на значение  таким образом, что . Такая функция может быть создана методом проб и ошибок. Класс функций, для которых выполняется это условие, дается в следующем примере.
,
Далее будет описан конкретный пример, в котором даются более подробные примеры для нескольких компонентов алгоритма. В этом примере имеются положительные целые числа и такие, что для всех  и . Кроме того, . Следует отметить, что это эквивалентно заданию .
В еще более подробном примере в дополнение к наборам, выбранным в предыдущем примере, функции  выбираются так, что , где
.
В настоящем документе  обозначает поразрядную операцию по модулю.  является обратимым линейным отображением с  на .  является обратимым линейным отображение с  на .  является линейным отображением с  на .  является линейным отображением с  на . Верхние индексы функций обозначают индексы. Линейное отображение , которое отображает  на , является обратимым.  и  являются обратимыми отображениями на , которые могут быть нелинейными.  и  являются обратимыми отображениями на , которые могут быть нелинейными. В случае, если , предпочтительно, чтобы  и  также были обратимы. В случае, если , предпочтительно, чтобы матрицы, соответствующие линейным отображениям  и , имели полный ранг.
В принципе, можно вычислить значение  из  с использованием приведенных выше уравнений. Однако в предпочтительном примере устройство не вычисляет , а вычисляет только . В этом случае устройство выполнено с возможностью вычисления  из  и  (или , в зависимости от конкретного случая).
Следует отметить, что
.
Так как  обратима, можно вычислить значение  из данного . Кроме того, так как  может быть получено из  (или , в зависимости от конкретного случая), можно вычислить  из  (или , в зависимости от конкретного случая). По этой информации может быть определено . Предпочтительно,  получается непосредственно из  и  без раскрытия какого-либо из промежуточных результатов, упомянутых в этом абзаце. Например, взаимосвязь может быть сохранена в таблице или нескольких таблицах. Несколько таблиц могут использоваться, например, если один или несколько битов  не зависят от всех битов  и/или всех битов .
Например,  имеет вычислительную сложность, которая в значительной степени меньше, чем вычислительная сложность . Это позволяет вычислить  из  и  с относительно небольшой вычислительной сложностью. Например, вычислительная сложность  не зависит от .
Например,  является тождественной функцией. Это позволяет легко сконструировать , поскольку значение  также неявно используется в его зависимости от  в первом средстве преобразования.
Фиг. 1 изображает вариант воплощения системы для выполнения безопасной последовательности преобразований. На иллюстрациях несколько средств обработки были обозначены прямоугольниками, иногда с соответствующим символом, используемым в этом описании внутри прямоугольника. Кроме того, элементы данных были обозначены их символом переменной, а нарисованный массив символизирует последовательность битов данной длины. Однако фактическая длина последовательности битов каждого элемента данных может быть различной. Чертежи не указывают фактическую длину элементов данных. Система может быть реализована на одном устройстве обработки, таком как должным образом запрограммированный компьютер, смартфон или смарт-карта. Система также может быть распределена по нескольким различным устройствам обработки.
Система содержит блок 111 ввода данных для определения значения  входных данных. Например, блок 111 ввода выполнен с возможностью приема значения входных данных через подсистему связи устройства. Альтернативно, блок 111 ввода может быть выполнен с возможностью приема значения входных данных из памяти, которая может быть внутренней или внешней памятью. Система дополнительно содержит первое средство 101 преобразования для применения преобразования к значению  входных данных для получения обфусцированного представления  значения , так что . В конкретном примере , ,  и  являются значениями данных, имеющими одинаковое число битов.
Система дополнительно содержит второе средство 102 преобразования. Второе средство 102 преобразования содержит одно или несколько дополнительных средств 110 преобразования. Дополнительное средство 110 преобразования реализует  для конкретного значения , где . Второе средство 102 преобразования выполнено с возможностью примения дополнительного средства 110 преобразования к обфусцированным данным в одной или нескольких итерациях. А именно, дополнительное средство 110 преобразования вычисляет  для , где  является числом преобразований, которые должны быть выполнены. Следует иметь в виду, что дополнительное средство 110 преобразования может вычислять различные операции в каждой итерации; то есть  может быть различной операцией для каждого . Однако это не является ограничением, так как некоторые или все  могут быть идентичными операциями.
Система дополнительно содержит третье средство преобразования, выполненное с возможностью применения преобразования , которое зависит от ,  и , путем вычисления  для получения результата последовательности преобразований, где . В настоящем документе  задается как . В иллюстративном варианте воплощения, изображенном на фиг. 1, третье средство преобразования реализовано как комбинация четвертого средства 103 преобразования и пятого средства 104 преобразования.
Четвертое средство 103 преобразования выполнено с возможностью вычисления  с использованием преобразования , так что . Таким образом, вычисление  может быть опущено.
Пятое средство 104 преобразования выполнено с возможностью приема значения  от четвертого средства 103 преобразования и значения  для вычисления  с использованием функции , так что . Например, пятое средство 104 преобразования принимает значение  от блока 111 ввода данных.
Система дополнительно содержит блок 112 вывода, выполненный с возможностью приема вычисленного значения  от пятого средства 104 преобразования и передачи значения  другим компонентам системы (не показаны) и/или сохранения значения  в памяти. Например, блок 112 вывода может быть выполнен с возможностью отображения визуализации данных  на устройстве отображения и/или воспроизведения данных на аудиоустройстве. В конкретном примере второе средство 102 преобразования, одно или несколько дополнительных средств 110 преобразования и/или четвертое средство преобразования могут принять дополнительное значение(я) операнда(ов), например, от внешнего источника или от другого вычислительного блока системы. В таком случае, например, функция  имеет вид , где  обозначает обфусцированное представление другого элемента  данных с параметром  состояния. Это обфусцированное представление может иметь аналогичный вид, что и описанные в настоящем документе. Альтернативно, дополнительное значение(я) операнда(ов) может быть обеспечено в открытом виде, то есть  может иметь вид , где  обозначает дополнительный элемент данных, который не обфусцирован.
В конкретном варианте системы, показанном на фиг. 1, первое средство 101 преобразования может быть выполнено с возможностью приема дополнительного параметра  (не показан на чертеже), и избыточность в обфусцированном представлении  значения  может зависеть от входной переменной , как объяснялось выше. В таком случае тот же самый дополнительный параметр  обеспечивается также для третьего блока преобразования и/или пятого блока 104 преобразования, чтобы, например, пятый блок 104 преобразования мог вычислить значение  в зависимости от и , и .
Следует отметить, что первое средство 101 преобразования, второе средство 102 преобразования, третье средство преобразования, четвертое средство 103 преобразования и/или пятое средство 104 преобразования может быть реализовано посредством таблиц поиска. Например, каждое из: первое средство 101 преобразования, дополнительное средство 110 преобразования второго средства 102 преобразования, четвертое средство 103 преобразования и пятое средство 104 преобразования может быть реализовано с помощью одной таблицы поиска. Альтернативно, можно использовать множество таблиц поиска, которые предназначены для применения совместно одним из средств преобразования для реализации вместе одного из преобразований. Опционально, эти таблицы поиска могут быть обфусцированы дополнительно путем кодирования вводов и выводов таблиц поиска с использованием методик, известных, например, из Chow и др. Таблицы поиска являются примером того, как преобразования могут быть выполнены без раскрытия промежуточных результатов, которые должны остаться скрытыми, таких как значения  для  и, в частности, , которое играет роль в первом и пятом средстве преобразования (или, в более общем смысле, в первом и третьем средстве преобразования).
Фиг. 2 изображает способ выполнения безопасной последовательности  преобразований , где , над значением данных с использованием зашифрованных представлений значения данных. Способ содержит этап 201 применения преобразования к значению  входных данных для получения обфусцированного представления  значения , где обфусцированное представление  содержит избыточность, которая зависит от входной переменной .
Затем на этапе 206 инициализируется значение  индекса путем задания .
Затем способ переходит к этапу 202 применения преобразования  для вычисления  из , так что . После применения преобразования  увеличивается на единицу.
Затем способ переходит к этапу 203 проверки, завершена ли итерация, путем проверки, что . Если , способ повторяет этап 202 с обновленным значением . Если  на этапе 203, способ переходит к этапу 204 применения преобразования , так что . Затем способ переходит к этапу 205 применения преобразования , так что , для получения результата последовательности преобразований, где . Следует отметить, что этап 204 и этап 205 могут быть объединены в один этап.
В упомянутом выше способе символы являются такими, как это объяснялось выше в этом описании для нескольких примеров. Например, для
,
,
где
является оператором,
, ,  и  являются операторами, которые являются линейными относительно оператора , операторы  и  являются обратимыми, и оператор , который отображает  на , является обратимым;
, ,  и  являются обратимыми отображениями;
зависит от ;
при этом  и  для  для предварительно заданных функций  и , при этом  и  не вычисляются системой в явном виде.
Фиг. 3 изображает способ обеспечения системы для выполнения безопасной последовательности  преобразований , где , над значением данных с использованием зашифрованных представлений значения данных.
Способ начинается с этапа 301 обеспечения первого средства 101 преобразования и конфигурирования первого средства 201 преобразования для применения преобразования к значению  входных данных для получения обфусцированного представления  значения , при этом обфусцированное представление  содержит избыточность, которая зависит от входной переменной .
Затем способ переходит к этапу 302 с обеспечением второго средства 102 преобразования. На этапе 311 инициализируется значение  индекса путем задания . Затем на этапе 310 дополнительное средство 110 преобразования включается в состав второго средства 102 преобразования. Это дополнительное средство 110 преобразования выполнено с возможностью применения преобразования  для вычисления  из , так что . После этого значение  индекса увеличивается на единицу. На этапе 312 проверяется, что . Если  на этапе 312, способ повторяет этап 310 с обновленным значением . Если  на этапе 312, способ переходит к этапу 303 обеспечения четвертого средства 103 преобразования и конфигурирования четвертого средства 103 преобразования для применения преобразования , так что .
Затем на этапе 304 способ продолжается с обеспечением пятого средства 104 преобразования и конфигурированием пятого средства 104 преобразования для применения преобразования , так что , для получения результата последовательности преобразований, где . Следует отметить, что этапы 303 и 304 могут быть объединены так, что обеспечивается третье средство преобразования, которое применяет преобразование , как объяснялось выше.
Этапы способа выполняются таким образом, что первое средство преобразования, второе средство преобразования, четвертое средство преобразования и пятое средство преобразования выполнены с возможностью обфусцировать значения  и . В частности, первое средство 101 преобразования и пятое средство 104 преобразования конфигурируются так, что они обфусцируют значение , которое зависит от  (или от , как объяснялось выше), например, путем создания сокращенного пути в вычислении, который непосредственно генерирует конечный результат  на основании  и  (или на основании  и ).
Конкретный пример такого обфусцирования дается путем обеспечения таблиц поиска для самых уязвимых преобразований. Например, этап 302 конфигурирования второго средства преобразования может содержать вычисление по меньшей мере одной таблицы поиска по меньшей мере одной из функций , при этом таблица поиска отображает значения  на значения . Эта таблица поиска может быть вычислена путем вычисления для соответствующих значений :
,
где  обозначает функцию, задаваемую следующим выражением
,
и  является функцией, обратной . В приведенных выше уравнениях  использует только компонент  функции , а  использует только компонент  функции .
Четвертое преобразование может содержать таблицу поиска, аналогичную упомянутой выше, с
,
где  использует только компонент  функции , выходные значения  опускаются.
В другом конкретном примере, в котором , этап 301 конфигурирования первого преобразования может содержать обеспечение таблицы поиска функции, которая отображает значения  на соответствующие значения . Это соотношение может даваться выражением , как было описано выше, где  является секретным отображением, которое отображает значение  на . Путем обеспечения табличных значений  и соответствующих значений  система может применить преобразование, не вычисляя значение .
В соответствии с более конкретным примером, который описывается выше, соотношение, реализованное с помощью таблицы поиска первого средства преобразования, может даваться выражениями
,
.
В другом примере, в котором , этап 304 конфигурирования пятого преобразования может содержать обеспечение таблицы поиска функции F. Эта таблица может отображать пары  на соответствующие значения . Аналогичные таблицы могут быть подготовлены для случая, в котором  является другим входным значением, отдельным от .
Может быть обеспечена система для выполнения безопасной последовательности преобразований значения данных с использованием зашифрованных представлений значения данных. Система содержит первое средство преобразования для применения преобразования к значению входных данных для получения его обфусцированного представления, при этом обфусцированное представление содержит избыточность, которая зависит от входной переменной. Система содержит последовательность вторых средств преобразования для применения преобразования для вычисления преобразованных обфусцированных представлений. Система дополнительно содержит четвертое средство преобразования для применения преобразования так, что получаются последние обфусцированные преобразованные данные. Система содержит пятое средство преобразования для применения преобразования, которое зависит от последних обфусцированных преобразованных данных и входных данных.
Некоторые или все аспекты изобретения могут быть подходящими для реализации в форме программного обеспечения, в частности, компьютерного программного продукта. Такой компьютерный программный продукт может содержать носители данных, на которых хранится программное обеспечение. Такие носители данных могут содержать, например, оптический диск, магнитный диск или флэш-память. Кроме того, компьютерная программа может быть представлена сигналом, таким как оптический сигнал или электромагнитный сигнал, который переносится передающей средой, такой как волоконно-оптический кабель или воздух. Компьютерная программа может частично или полностью быть в форме исходного кода, объектного кода или псевдокода, пригодного для исполнения компьютерной системой. Например, код может исполняться непосредственно одним или несколькими процессорами. Альтернативно, код может интерпретироваться интерпретатором, который исполняется одним или несколькими процессорами. Следует иметь в виду, что части систем, описанных в настоящем документе, могут быть реализованы в форме программного обеспечения. Кроме того, этапы способа, описанные в настоящем документе, могут быть реализованы частично или полностью в программном обеспечении. Программное обеспечение может быть организовано с помощью подпрограмм. Подпрограммы могут быть объединены для формирования автономной исполняемой программы. Альтернативно, подпрограммы могут быть организованы как динамически подключаемая библиотека. Может быть обеспечен исполняемый файл основной программы, который использует подпрограммы из динамически подключаемой библиотеки. Каждый из этапов обработки и/или системных компонентов, описанных в настоящем документе, может быть представлен исполняемым кодом, находится ли он в динамически подключаемой библиотеке или в исполняемом файле. Некоторые или все функциональные возможности могут быть реализованы как часть операционной системы, некоторые функциональные возможности могут быть реализованы в динамически подключаемой библиотеке, а некоторые функциональные возможности могут быть реализованы как файл прикладной программы.
Примеры и варианты воплощения, описанные в настоящем документе, предназначены для иллюстрации, а не ограничения изобретения. Специалист в области техники сможет разработать альтернативные варианты воплощения, не выходя за пределы объема формулы изобретения. Ссылочные позиции, размещенные в круглых скобках в формуле изобретения, не должны интерпретироваться как ограничивающие объем формулы изобретения. Элементы, описанные как отдельные объекты в формуле изобретения или описании, могут быть реализованы как один элемент аппаратного или программного обеспечения, сочетающий признаки описанных элементов.