RU2680761C1 - Безопасные преобразования данных - Google Patents
Безопасные преобразования данных Download PDFInfo
- Publication number
- RU2680761C1 RU2680761C1 RU2016129282A RU2016129282A RU2680761C1 RU 2680761 C1 RU2680761 C1 RU 2680761C1 RU 2016129282 A RU2016129282 A RU 2016129282A RU 2016129282 A RU2016129282 A RU 2016129282A RU 2680761 C1 RU2680761 C1 RU 2680761C1
- Authority
- RU
- Russia
- Prior art keywords
- conversion means
- value
- conversion
- values
- depends
- Prior art date
Links
- 238000013501 data transformation Methods 0.000 title abstract description 4
- 230000009466 transformation Effects 0.000 claims abstract description 49
- 238000000844 transformation Methods 0.000 claims abstract description 27
- 238000006243 chemical reaction Methods 0.000 claims description 124
- 230000006870 function Effects 0.000 claims description 53
- 238000000034 method Methods 0.000 claims description 39
- 238000013507 mapping Methods 0.000 claims description 21
- 230000002441 reversible effect Effects 0.000 claims description 16
- 230000014509 gene expression Effects 0.000 claims description 3
- 238000012545 processing Methods 0.000 abstract description 7
- 239000000126 substance Substances 0.000 abstract 1
- 238000004590 computer program Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013079 data visualisation Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/16—Obfuscation or hiding, e.g. involving white box
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Facsimile Transmission Control (AREA)
Abstract
Изобретение относится к вычислению преобразования данных с использованием зашифрованных представлений значения данных. Технический результат – повышение эффективности защиты от атак системы обработки данных. Система криптографии для выполнения безопасной последовательности преобразований значения данных с использованием зашифрованных представлений значения данных содержит первое средство преобразования для применения преобразования к значению входных данных для получения его обфусцированного представления, при этом обфусцированное представление содержит избыточность, которая зависит от входной переменной. Система содержит последовательность вторых средств преобразования для применения преобразования для вычисления преобразованных обфусцированных представлений. Система дополнительно содержит четвертое средство преобразования для применения преобразования так, что получаются конечные обфусцированные преобразованные данные. Система содержит пятое средство преобразования для применения преобразования, которое зависит от конечных обфусцированных преобразованных данных и входных данных. 4 н. и 9 з.п. ф-лы, 3 ил.
Description
Область техники, к которой относится изобретение
Изобретение относится к вычислению преобразования данных с использованием зашифрованных представлений значения данных.
Уровень техники изобретения
В последние годы были выполнены разработки, направленные на то, чтобы сделать компьютерные операции более безопасными. Например, устройству может быть позволено декодировать некоторые данные, но эта возможность не должна с легкостью передаваться другим устройствам или пользователям.
Криптография типа «белый ящик» является технологией, в которой вычисление функций выполняется посредством предварительно вычисленных таблиц поиска. Эта технология может использоваться для того, чтобы скрыть функциональность от злоумышленников, у которых может иметься доступ к коду программы. Таблицы поиска могут быть спроектированы таким образом, что последовательность табличных поисков выполняется с использованием различных таблиц поиска для реализации алгоритма. Таблицы поиска могут дополнительно быть спроектированы таким образом, что промежуточные результаты между последовательными табличными поисками кодируются посредством случайных взаимно однозначных соответствий. Технология типа «белый ящик» известна, например, из ʺ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 является линейным относительно оператора , если в целом выполняется, что .
Например, равно . Это означает, что переменная состояния зависит от . Соотношение между входными данными и переменной состояния может оставаться непонятным злоумышленнику при обфускации этого соотношения соотношением, реализованным первым средством преобразования, например, путем реализации соответствия между входными данными и обфусцированным представлением с использованием таблицы поиска таким образом, что значение не вычисляется как промежуточный результат в системе.
Например, имеет вычислительную сложность, которая меньше, чем вычислительная сложность . Это позволяет преобразованию иметь относительно небольшую вычислительную сложность. Например, вычислительная сложность не зависит от .
Например, является тождественной функцией. Это облегчает конструирование , поскольку значение также неявно используется в его зависимости от в первом средстве преобразования.
Например, по меньшей мере одно из: первое, второе, третье, четвертое или пятое средство преобразования выполнены с возможностью поиска преобразованного значения в таблице поиска. Например, каждое из: первое, второе и третье средство преобразования выполнены с возможностью поиска преобразованного значения в таблице поиска. В другом примере каждое из: первое, второе, четвертое и пятое средство преобразования выполнены с возможностью поиска преобразованного значения в таблице поиска. Эти примеры позволяют осуществить особенно безопасную реализацию, поскольку таблица поиска позволяет скрыть любой используемый алгоритм.
Другой аспект содержит способ обеспечения системы для выполнения безопасной последовательности преобразований , где , над значением данных с использованием зашифрованных представлений значения данных, способ, содержащий этапы, на которых
обеспечивают первое средство преобразования и конфигурируют первое средство преобразования для применения преобразования к значению входных данных для получения обфусцированного представления значения , при этом обфусцированное представление содержит избыточность, которая зависит от входной переменной ;
обеспечивают второе средство преобразования и конфигурируют второе средство преобразования для применения, для каждого из , преобразования для вычисления из , так что ;
обеспечивают четвертое средство преобразования и конфигурируют четвертое средство преобразования для применения преобразования , так что ; и
обеспечивают пятое средство преобразования и конфигурируют пятое средство преобразования для применения преобразования , так что , для получения результата последовательности преобразований, где ;
при этом для , где является предварительно заданной обфускационной функцией, которая задает взаимно-однозначное соответствие между и , и где удовлетворяет условию, что имеется взаимно-однозначное отображение, которое отображает любое значение на значение таким образом, что ;
при этом первое средство преобразования, второе средство преобразования, четвертое средство преобразования и пятое средство преобразования выполнены с возможностью обфусцирования значений и .
Этот способ позволяет сформировать систему.
Этап, на котором конфигурируют второе средство преобразования, может содержать вычисление по меньшей мере одной таблицы поиска по меньшей мере одной из функций , при этом таблица поиска отображает значения на значения , путем вычисления
где является функцией, обратной . Таким образом, алгоритмические этапы, задействованные в вычислении , могут быть спрятаны в одной или нескольких таблицах поиска. Использование таблиц поиска позволяет использовать дополнительные методики обфускации, в том числе упомянутые выше реализации типа «белый ящик».
Альтернативно, этап, на котором конфигурируют второе средство преобразования, может содержать этап, на котором вычисляют по меньшей мере одну таблицу поиска по меньшей мере одной из функций , при этом таблица поиска отображает значения на значения , путем вычисления
и является функцией, обратной . Таким образом, алгоритмические этапы, задействованные в вычислении , и , могут быть спрятаны в одной или нескольких таблицах поиска. Использование таблиц поиска позволяет использовать дополнительные методики обфускации, в том числе упомянутые выше реализации типа «белый ящик».
Например, равно , и этап, на котором конфигурируют третье средство преобразования, содержит этап, на котором вычисляют по меньшей мере одну таблицу поиска, представляющую собой функцию , при этом по меньшей мере одна таблица поиска отображает кортежи на соответствующие значения . В соответствующем примере этап, на котором конфигурируют пятое средство преобразования, содержит этап, на котором вычисляют по меньшей мере одну таблицу поиска, представляющую собой функцию , при этом по меньшей мере одна таблица поиска отображает пары на соответствующие значения . В этих примерах алгоритмические этапы, задействованные в вычислении или могут быть спрятаны в одной или нескольких таблицах поиска. Использование таблиц поиска позволяет использовать дополнительные методики обфусцирования, в том числе упомянутые выше реализации типа «белый ящик».
В соответствии с другим аспектом обеспечен способ для выполнения безопасной последовательности преобразований , где , над значением данных с использованием зашифрованных представлений значения данных, способ, содержащий этапы, на которых
применяют преобразование к значению входных данных для получения обфусцированного представления значения , при этом обфусцированное представление содержит избыточность, которая зависит от входной переменной ;
применяют преобразование , которое зависит от , и , путем вычисления для получения результата последовательности преобразований, где ;
при этом для , где является заранее заданной обфускационной функцией, которая задает взаимно-однозначное соответствие между и , и где удовлетворяет условию, что имеется взаимно-однозначное отображение, которое отображает любое значение на значение таким образом, что ;
при этом и для для предварительно заданных функций и , при этом и обфусцируются на этапах применения преобразования.
В конкретном примере этап, на котором применяют преобразование , содержит этапы, на котором примененяют преобразование , так что ; и применяют преобразование , так что , для получения результата последовательности преобразований, где .
В соответствии с другим аспектом обеспечен компьютерный программный продукт, содержащий инструкции, заставляющие процессорную систему выполнять способ, изложенный в настоящем документе.
Специалисту в области техники будет понятно, что признаки, описанные выше, могут сочетаться любим образом, который можно счесть полезным. Кроме того, модификации и вариации, описанные в отношении системы, могут аналогично быть применены к способу и к компьютерному программному продукту, и модификации и вариации, описанные в отношении способа, могут быть аналогично применены к системе и к компьютерному программному продукту.
Краткое описание чертежей
Ниже будут объяснены аспекты изобретения с помощью примеров со ссылкой на чертежи. Чертежи являются схематичными и могут быть выполнены не в масштабе. На всех чертежах аналогичные элементы обозначаются одинаковыми номерами позиций.
Фиг. 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 применения преобразования к значению входных данных для получения обфусцированного представления значения , где обфусцированное представление содержит избыточность, которая зависит от входной переменной .
Затем способ переходит к этапу 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. Эта таблица может отображать пары на соответствующие значения . Аналогичные таблицы могут быть подготовлены для случая, в котором является другим входным значением, отдельным от .
Может быть обеспечена система для выполнения безопасной последовательности преобразований значения данных с использованием зашифрованных представлений значения данных. Система содержит первое средство преобразования для применения преобразования к значению входных данных для получения его обфусцированного представления, при этом обфусцированное представление содержит избыточность, которая зависит от входной переменной. Система содержит последовательность вторых средств преобразования для применения преобразования для вычисления преобразованных обфусцированных представлений. Система дополнительно содержит четвертое средство преобразования для применения преобразования так, что получаются последние обфусцированные преобразованные данные. Система содержит пятое средство преобразования для применения преобразования, которое зависит от последних обфусцированных преобразованных данных и входных данных.
Некоторые или все аспекты изобретения могут быть подходящими для реализации в форме программного обеспечения, в частности, компьютерного программного продукта. Такой компьютерный программный продукт может содержать носители данных, на которых хранится программное обеспечение. Такие носители данных могут содержать, например, оптический диск, магнитный диск или флэш-память. Кроме того, компьютерная программа может быть представлена сигналом, таким как оптический сигнал или электромагнитный сигнал, который переносится передающей средой, такой как волоконно-оптический кабель или воздух. Компьютерная программа может частично или полностью быть в форме исходного кода, объектного кода или псевдокода, пригодного для исполнения компьютерной системой. Например, код может исполняться непосредственно одним или несколькими процессорами. Альтернативно, код может интерпретироваться интерпретатором, который исполняется одним или несколькими процессорами. Следует иметь в виду, что части систем, описанных в настоящем документе, могут быть реализованы в форме программного обеспечения. Кроме того, этапы способа, описанные в настоящем документе, могут быть реализованы частично или полностью в программном обеспечении. Программное обеспечение может быть организовано с помощью подпрограмм. Подпрограммы могут быть объединены для формирования автономной исполняемой программы. Альтернативно, подпрограммы могут быть организованы как динамически подключаемая библиотека. Может быть обеспечен исполняемый файл основной программы, который использует подпрограммы из динамически подключаемой библиотеки. Каждый из этапов обработки и/или системных компонентов, описанных в настоящем документе, может быть представлен исполняемым кодом, находится ли он в динамически подключаемой библиотеке или в исполняемом файле. Некоторые или все функциональные возможности могут быть реализованы как часть операционной системы, некоторые функциональные возможности могут быть реализованы в динамически подключаемой библиотеке, а некоторые функциональные возможности могут быть реализованы как файл прикладной программы.
Примеры и варианты воплощения, описанные в настоящем документе, предназначены для иллюстрации, а не ограничения изобретения. Специалист в области техники сможет разработать альтернативные варианты воплощения, не выходя за пределы объема формулы изобретения. Ссылочные позиции, размещенные в круглых скобках в формуле изобретения, не должны интерпретироваться как ограничивающие объем формулы изобретения. Элементы, описанные как отдельные объекты в формуле изобретения или описании, могут быть реализованы как один элемент аппаратного или программного обеспечения, сочетающий признаки описанных элементов.
Claims (60)
при этом третье средство преобразования содержит:
6. Система по п.1, в которой по меньшей мере одно из первого, второго и третьего средства преобразования реализовано посредством по меньшей мере одной предварительно вычисленной таблицы поиска.
обеспечивают первое средство преобразования и конфигурируют первое средство преобразования для применения преобразования к значению входных данных для получения обфусцированного представления значения , при этом обфусцированное представление содержит избыточность, которая зависит от входной переменной ;
при этом третье средство преобразования содержит:
при этом третье средство преобразования содержит:
13. Машиночитаемый носитель информации, на котором сохранен программный код, который при его исполнении компьютерной системой предписывает компьютерной системе выполнять способ по п.7 или 12.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP13198922.0 | 2013-12-20 | ||
EP13198922 | 2013-12-20 | ||
PCT/EP2014/077301 WO2015091172A1 (en) | 2013-12-20 | 2014-12-11 | Secure data transformations |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2016129282A RU2016129282A (ru) | 2018-01-25 |
RU2680761C1 true RU2680761C1 (ru) | 2019-02-26 |
Family
ID=49916885
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2016129282A RU2680761C1 (ru) | 2013-12-20 | 2014-12-11 | Безопасные преобразования данных |
Country Status (6)
Country | Link |
---|---|
US (1) | US10256970B2 (ru) |
EP (1) | EP3085005B1 (ru) |
JP (1) | JP6502945B2 (ru) |
CN (1) | CN105814833B (ru) |
RU (1) | RU2680761C1 (ru) |
WO (1) | WO2015091172A1 (ru) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10256970B2 (en) * | 2013-12-20 | 2019-04-09 | Konnklijke Philips N.V. | Secure data transformations |
KR101933649B1 (ko) * | 2016-05-27 | 2018-12-28 | 삼성에스디에스 주식회사 | 화이트박스 암호 알고리즘을 이용한 공개키 암호화를 위한 장치 및 방법 |
DE102016008456B4 (de) * | 2016-07-12 | 2018-03-29 | Giesecke+Devrient Mobile Security Gmbh | White Box AES Implementierung |
EP3376705A1 (en) | 2017-03-17 | 2018-09-19 | Koninklijke Philips N.V. | Elliptic curve point multiplication device and method in a white-box context |
CN109714152B (zh) * | 2019-01-17 | 2020-04-07 | 西安电子科技大学 | 基于大型仿射编码的白盒aes加密方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070140478A1 (en) * | 2005-12-15 | 2007-06-21 | Yuichi Komano | Encryption apparatus and encryption method |
RU2411666C1 (ru) * | 2009-08-26 | 2011-02-10 | Николай Андреевич Молдовян | Способ шифрования |
RU2417410C2 (ru) * | 2008-08-19 | 2011-04-27 | Общество С Ограниченной Ответственностью "Крипто-Про" | Способ хранения и использования криптографического ключа |
US20120020476A1 (en) * | 2009-03-31 | 2012-01-26 | France Telecom | Method for Performing a Cryptographic Task in an Electronic Hardware Component |
US20120300922A1 (en) * | 2009-12-30 | 2012-11-29 | France Telecom | Method of generating a correspondence table for a cryptographic white box |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020051537A1 (en) * | 2000-09-13 | 2002-05-02 | Rogaway Phillip W. | Method and apparatus for realizing a parallelizable variable-input-length pseudorandom function |
US7099469B2 (en) * | 2001-10-17 | 2006-08-29 | Motorola, Inc. | Method of scrambling and descrambling data in a communication system |
EP1326363A1 (en) * | 2001-12-27 | 2003-07-09 | STMicroelectronics S.r.l. | Chaos-based block encryption |
EP1387519A3 (fr) * | 2002-07-09 | 2004-02-18 | Cp8 | Procédé de sécurisation d'un ensemble électronique contre des attaques par introduction d'erreurs |
EP1475920A4 (en) * | 2002-12-03 | 2005-03-02 | Matsushita Electric Ind Co Ltd | KEY SHARING SYSTEM, SHARED KEY CREATING DEVICE, AND SHARED KEY RESTORING DEVICE |
KR100546375B1 (ko) * | 2003-08-29 | 2006-01-26 | 삼성전자주식회사 | 자체 오류 감지 기능을 강화한 상호 의존적 병렬 연산방식의 하드웨어 암호화 장치 및 그 하드웨어 암호화 방법 |
US7715553B2 (en) * | 2005-08-01 | 2010-05-11 | Durward D. Dupre | Encrypting a plaintext message with authentication |
US8379841B2 (en) * | 2006-03-23 | 2013-02-19 | Exegy Incorporated | Method and system for high throughput blockwise independent encryption/decryption |
JP2008098690A (ja) * | 2006-10-05 | 2008-04-24 | Sharp Corp | 暗号化装置、復号化装置、暗号化プログラム、復号化プログラム、暗号化プログラムが格納された記録媒体、復号化プログラムが格納された記録媒体、暗号化方法、復号化方法およびテーブル作成方法 |
EP2186250B1 (en) * | 2007-08-31 | 2019-03-27 | IP Reservoir, LLC | Method and apparatus for hardware-accelerated encryption/decryption |
US8891756B2 (en) * | 2008-10-30 | 2014-11-18 | Certicom Corp. | Collision-resistant elliptic curve hash functions |
KR101715027B1 (ko) * | 2009-03-10 | 2017-03-22 | 이르데토 비.브이. | 입력 의존형 인코딩들을 이용한 화이트-박스 암호화 시스템 |
KR101246241B1 (ko) * | 2009-04-24 | 2013-03-22 | 니뽄 덴신 덴와 가부시키가이샤 | 암호화 장치, 복호장치, 암호화 방법, 복호방법, 세큐러티 방법, 프로그램 및 기록매체 |
EP2899713B1 (en) * | 2012-09-21 | 2019-04-24 | Mitsubishi Electric Corporation | Hash value calculation device, hash value calculation method and hash value calculation program |
US10256970B2 (en) * | 2013-12-20 | 2019-04-09 | Konnklijke Philips N.V. | Secure data transformations |
US9425952B2 (en) * | 2014-03-27 | 2016-08-23 | Samsung Israel Research Corporation | Algebraic manipulation detection codes from algebraic curves |
-
2014
- 2014-12-11 US US15/105,872 patent/US10256970B2/en active Active
- 2014-12-11 EP EP14809656.3A patent/EP3085005B1/en active Active
- 2014-12-11 CN CN201480069933.4A patent/CN105814833B/zh active Active
- 2014-12-11 WO PCT/EP2014/077301 patent/WO2015091172A1/en active Application Filing
- 2014-12-11 RU RU2016129282A patent/RU2680761C1/ru active
- 2014-12-11 JP JP2016540585A patent/JP6502945B2/ja active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070140478A1 (en) * | 2005-12-15 | 2007-06-21 | Yuichi Komano | Encryption apparatus and encryption method |
RU2417410C2 (ru) * | 2008-08-19 | 2011-04-27 | Общество С Ограниченной Ответственностью "Крипто-Про" | Способ хранения и использования криптографического ключа |
US20120020476A1 (en) * | 2009-03-31 | 2012-01-26 | France Telecom | Method for Performing a Cryptographic Task in an Electronic Hardware Component |
RU2411666C1 (ru) * | 2009-08-26 | 2011-02-10 | Николай Андреевич Молдовян | Способ шифрования |
US20120300922A1 (en) * | 2009-12-30 | 2012-11-29 | France Telecom | Method of generating a correspondence table for a cryptographic white box |
Also Published As
Publication number | Publication date |
---|---|
US10256970B2 (en) | 2019-04-09 |
EP3085005A1 (en) | 2016-10-26 |
CN105814833A (zh) | 2016-07-27 |
CN105814833B (zh) | 2019-12-13 |
JP2017501447A (ja) | 2017-01-12 |
RU2016129282A (ru) | 2018-01-25 |
US20160323099A1 (en) | 2016-11-03 |
WO2015091172A1 (en) | 2015-06-25 |
JP6502945B2 (ja) | 2019-04-17 |
EP3085005B1 (en) | 2019-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2680761C1 (ru) | Безопасные преобразования данных | |
CN105453481B (zh) | 包括表网络的计算设备 | |
US20190251233A1 (en) | Protecting the input/output of modular encoded white-box rsa | |
JP2019523492A (ja) | 難読化算術を実行するためのデバイス及び方法 | |
KR20200047002A (ko) | 동형 암호를 이용한 암호문 비교 방법 및 이를 수행하기 위한 장치 | |
US10235506B2 (en) | White-box modular exponentiation | |
EP3127271B1 (en) | Obfuscated performance of a predetermined function | |
US11632234B2 (en) | Apparatus and method for generating cryptographic algorithm, apparatus and method for encryption | |
EP3644547B1 (en) | Apparatus and method for generating cryptographic algorithm, apparatus and method for encryption | |
EP3078154B1 (en) | A computing device for iterative application of table networks | |
JPWO2018008547A1 (ja) | 秘密計算システム、秘密計算装置、秘密計算方法、およびプログラム | |
KR101440680B1 (ko) | 중국인 나머지 정리에 기반한 준동형 암복호화 방법 및 이를 이용한 장치 | |
RU2708439C1 (ru) | Вычислительное устройство и способ | |
JP6522860B2 (ja) | 計算装置及び方法 | |
EP3238113B1 (en) | Hiding of a program execution | |
WO2022009384A1 (ja) | 最終べき計算装置、ペアリング演算装置、暗号処理装置、最終べき計算方法及び最終べき計算プログラム | |
KR101688636B1 (ko) | 고속 메시지 해싱을 위한 압축함수를 제공하는 연산 방법 및 그 장치 | |
JP2011018119A (ja) | プログラム難読化装置及びプログラム |