RU2680761C1 - Безопасные преобразования данных - Google Patents

Безопасные преобразования данных Download PDF

Info

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
Application number
RU2016129282A
Other languages
English (en)
Other versions
RU2016129282A (ru
Inventor
Паулус Матхиас Хюбертус Мехтилдис Антониус ГОРИССЕН
Людовикус Маринус Герардус Мария ТОЛХЭЙЗЕН
Original Assignee
Конинклейке Филипс Н.В.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Конинклейке Филипс Н.В. filed Critical Конинклейке Филипс Н.В.
Publication of RU2016129282A publication Critical patent/RU2016129282A/ru
Application granted granted Critical
Publication of RU2680761C1 publication Critical patent/RU2680761C1/ru

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/16Obfuscation 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 раскрывает способ для генерации таблицы соответствия, пригодный для использования в способе криптографической обработки, содержащий хранение множества входных данных и выходных данных в таблице, при этом каждый элемент входных данных связан по меньшей мере с одним элементом выходных данных в таблице. Для каждого элемента входных данных по меньшей мере один элемент из выходных данных получается путем применения функции кодирования к первому вспомогательному элементу данных и к зашифрованному промежуточному элементу данных в зависимости от элемента входных данных.
Сущность изобретения
Было бы полезно иметь систему, которая позволяет осуществлять безопасную обработку данных, которая имеет улучшенную защиту от атак. В первом аспекте изобретение обеспечивает систему для выполнения безопасной последовательности
Figure 00000001
преобразований
Figure 00000002
, где
Figure 00000003
, над значением данных с использованием зашифрованных представлений значения данных, содержащую
первое средство преобразования для применения преобразования к значению
Figure 00000004
входных данных для получения обфусцированного представления
Figure 00000005
значения
Figure 00000006
, при этом обфусцированное представление содержит избыточность, которая зависит от входной переменной
Figure 00000007
;
второе средство преобразования для применения, для каждого из
Figure 00000008
, преобразования
Figure 00000009
для вычисления
Figure 00000010
из
Figure 00000011
, так что
Figure 00000012
;
третье средство преобразования для применения преобразования
Figure 00000013
, которое зависит от
Figure 00000014
,
Figure 00000015
и
Figure 00000016
, путем вычисления
Figure 00000017
для получения результата последовательности преобразований, где
Figure 00000018
;
при этом
Figure 00000019
для
Figure 00000020
, где
Figure 00000021
является предварительно заданной обфускационной функцией, которая задает взаимно-однозначное соответствие между
Figure 00000010
и
Figure 00000022
, и где
Figure 00000023
удовлетворяет условию, что имеется взаимно-однозначное отображение, которое отображает любое значение
Figure 00000024
на значение
Figure 00000025
таким образом, что
Figure 00000019
;
Figure 00000026
зависит от
Figure 00000027
; и
при этом
Figure 00000028
и
Figure 00000029
для
Figure 00000003
для предварительно заданных функций
Figure 00000030
и
Figure 00000031
, при этом
Figure 00000032
и
Figure 00000033
не вычисляются системой в явном виде.
В настоящем документе предполагается, что оператор
Figure 00000034
является «линейным относительно оператора
Figure 00000035
» тогда и только тогда, когда
Figure 00000036
.
Эта система имеет то преимущество, что становится труднее анализировать внутреннюю работу системы, например, путем изменения входных значений и анализа поведения системы, потому что изменение промежуточной переменной (например
Figure 00000037
или
Figure 00000038
для некоторых
Figure 00000039
) злоумышленником может вызвать изменение состояния
Figure 00000040
. Из-за этого результат пятого средства преобразования станет непредсказуемым, поскольку преобразование
Figure 00000041
использует
Figure 00000042
для смешивания ожидаемого значения для
Figure 00000043
с информацией, относящейся к
Figure 00000044
, которая присутствует в
Figure 00000045
. Если
Figure 00000046
и информация, относящаяся к
Figure 00000044
, которая присутствует в
Figure 00000045
, не соответствуют тому же самому значению
Figure 00000044
, вывод пятого средства преобразования может быть беспорядочным, что усложняет анализ, который злоумышленник должен выполнить, чтобы понять систему.
Третье средство преобразования может содержать четвертое средство преобразования для применения преобразования
Figure 00000047
, так что
Figure 00000048
; и пятое средство преобразования для применения преобразования
Figure 00000049
путем вычисления
Figure 00000050
для получения результата последовательности преобразований, где
Figure 00000018
. Это позволяет осуществить эффективную реализацию. Если преобразования реализованы в форме таблиц поиска, то этот признак позволяет реализовать таблицы поиска с уменьшенным объемом памяти.
В примере
Figure 00000019
задается следующим образом для
Figure 00000020
:
Figure 00000051
Figure 00000052
,
где
Figure 00000053
является оператором,
Figure 00000054
,
Figure 00000055
,
Figure 00000056
и
Figure 00000057
являются операторами, которые являются линейными относительно оператора
Figure 00000058
, операторы
Figure 00000059
и
Figure 00000060
являются обратимыми, и оператор
Figure 00000061
, который отображает
Figure 00000062
на
Figure 00000063
, является обратимым;
Figure 00000064
,
Figure 00000065
,
Figure 00000066
и
Figure 00000067
являются обратимыми отображениями.
Этот пример обфускационной функции
Figure 00000068
обеспечивает относительно простую конструкцию системы. Операторы
Figure 00000064
и
Figure 00000065
могут использоваться для замены или реализации
Figure 00000069
. В этом примере предполагается, что оператор G является линейным относительно оператора
Figure 00000070
, если в целом выполняется, что
Figure 00000071
.
Например,
Figure 00000054
и
Figure 00000072
являются обратимыми линейными операторами для всех
Figure 00000020
.
Например,
Figure 00000073
равно
Figure 00000074
. Это означает, что переменная
Figure 00000075
состояния зависит от
Figure 00000076
. Соотношение между входными данными
Figure 00000076
и переменной
Figure 00000077
состояния может оставаться непонятным злоумышленнику при обфускации этого соотношения соотношением, реализованным первым средством преобразования, например, путем реализации соответствия между входными данными
Figure 00000076
и обфусцированным представлением
Figure 00000078
с использованием таблицы поиска таким образом, что значение
Figure 00000079
не вычисляется как промежуточный результат в системе.
Например,
Figure 00000080
имеет вычислительную сложность, которая меньше, чем вычислительная сложность
Figure 00000081
. Это позволяет преобразованию
Figure 00000082
иметь относительно небольшую вычислительную сложность. Например, вычислительная сложность
Figure 00000083
не зависит от
Figure 00000084
.
Например,
Figure 00000083
является тождественной функцией. Это облегчает конструирование
Figure 00000085
, поскольку значение
Figure 00000079
также неявно используется в его зависимости от
Figure 00000086
в первом средстве преобразования.
Например, оператор
Figure 00000087
является поразрядной операцией «исключающее ИЛИ» (XOR).
Например, по меньшей мере одно из: первое, второе, третье, четвертое или пятое средство преобразования выполнены с возможностью поиска преобразованного значения в таблице поиска. Например, каждое из: первое, второе и третье средство преобразования выполнены с возможностью поиска преобразованного значения в таблице поиска. В другом примере каждое из: первое, второе, четвертое и пятое средство преобразования выполнены с возможностью поиска преобразованного значения в таблице поиска. Эти примеры позволяют осуществить особенно безопасную реализацию, поскольку таблица поиска позволяет скрыть любой используемый алгоритм.
Другой аспект содержит способ обеспечения системы для выполнения безопасной последовательности
Figure 00000088
преобразований
Figure 00000089
, где
Figure 00000003
, над значением данных с использованием зашифрованных представлений значения данных, способ, содержащий этапы, на которых
обеспечивают первое средство преобразования и конфигурируют первое средство преобразования для применения преобразования к значению
Figure 00000090
входных данных для получения обфусцированного представления
Figure 00000091
значения
Figure 00000092
, при этом обфусцированное представление
Figure 00000093
содержит избыточность, которая зависит от входной переменной
Figure 00000094
;
обеспечивают второе средство преобразования и конфигурируют второе средство преобразования для применения, для каждого из
Figure 00000008
, преобразования
Figure 00000095
для вычисления
Figure 00000010
из
Figure 00000011
, так что
Figure 00000096
;
обеспечивают четвертое средство преобразования и конфигурируют четвертое средство преобразования для применения преобразования
Figure 00000097
, так что
Figure 00000048
; и
обеспечивают пятое средство преобразования и конфигурируют пятое средство преобразования для применения преобразования
Figure 00000098
, так что
Figure 00000099
, для получения результата последовательности преобразований, где
Figure 00000018
;
при этом
Figure 00000019
для
Figure 00000020
, где
Figure 00000068
является предварительно заданной обфускационной функцией, которая задает взаимно-однозначное соответствие между
Figure 00000010
и
Figure 00000022
, и где
Figure 00000068
удовлетворяет условию, что имеется взаимно-однозначное отображение, которое отображает любое значение
Figure 00000024
на значение
Figure 00000025
таким образом, что
Figure 00000019
;
Figure 00000026
зависит от
Figure 00000100
;
при этом
Figure 00000028
и
Figure 00000029
для
Figure 00000003
для предварительно заданных функций
Figure 00000030
и
Figure 00000031
;
при этом первое средство преобразования, второе средство преобразования, четвертое средство преобразования и пятое средство преобразования выполнены с возможностью обфусцирования значений
Figure 00000032
и
Figure 00000033
.
Этот способ позволяет сформировать систему.
Этап, на котором конфигурируют второе средство преобразования, может содержать вычисление по меньшей мере одной таблицы поиска по меньшей мере одной из функций
Figure 00000101
, при этом таблица поиска отображает значения
Figure 00000102
на значения
Figure 00000103
, путем вычисления
Figure 00000104
,
где
Figure 00000105
является функцией, обратной
Figure 00000106
. Таким образом, алгоритмические этапы, задействованные в вычислении
Figure 00000107
, могут быть спрятаны в одной или нескольких таблицах поиска. Использование таблиц поиска позволяет использовать дополнительные методики обфускации, в том числе упомянутые выше реализации типа «белый ящик».
Альтернативно, этап, на котором конфигурируют второе средство преобразования, может содержать этап, на котором вычисляют по меньшей мере одну таблицу поиска по меньшей мере одной из функций
Figure 00000108
, при этом таблица поиска отображает значения
Figure 00000102
на значения
Figure 00000103
, путем вычисления
Figure 00000109
,
где
Figure 00000110
обозначает функцию, определяемую следующим образом
Figure 00000111
,
и
Figure 00000112
является функцией, обратной
Figure 00000113
. Таким образом, алгоритмические этапы, задействованные в вычислении
Figure 00000114
,
Figure 00000115
и
Figure 00000116
, могут быть спрятаны в одной или нескольких таблицах поиска. Использование таблиц поиска позволяет использовать дополнительные методики обфускации, в том числе упомянутые выше реализации типа «белый ящик».
Например,
Figure 00000117
равно
Figure 00000118
, и этап, на котором конфигурируют третье средство преобразования, содержит этап, на котором вычисляют по меньшей мере одну таблицу поиска, представляющую собой функцию
Figure 00000119
, при этом по меньшей мере одна таблица поиска отображает кортежи
Figure 00000120
на соответствующие значения
Figure 00000121
. В соответствующем примере этап, на котором конфигурируют пятое средство преобразования, содержит этап, на котором вычисляют по меньшей мере одну таблицу поиска, представляющую собой функцию
Figure 00000122
, при этом по меньшей мере одна таблица поиска отображает пары
Figure 00000123
на соответствующие значения
Figure 00000124
. В этих примерах алгоритмические этапы, задействованные в вычислении
Figure 00000125
или
Figure 00000126
могут быть спрятаны в одной или нескольких таблицах поиска. Использование таблиц поиска позволяет использовать дополнительные методики обфусцирования, в том числе упомянутые выше реализации типа «белый ящик».
В соответствии с другим аспектом обеспечен способ для выполнения безопасной последовательности
Figure 00000127
преобразований
Figure 00000128
, где
Figure 00000003
, над значением данных с использованием зашифрованных представлений значения данных, способ, содержащий этапы, на которых
применяют преобразование к значению
Figure 00000129
входных данных для получения обфусцированного представления
Figure 00000130
значения
Figure 00000131
, при этом обфусцированное представление содержит избыточность, которая зависит от входной переменной
Figure 00000132
;
для каждого из
Figure 00000008
применяют преобразование
Figure 00000133
для вычисления
Figure 00000010
из
Figure 00000011
, так что
Figure 00000096
;
применяют преобразование
Figure 00000134
, которое зависит от
Figure 00000135
,
Figure 00000136
и
Figure 00000132
, путем вычисления
Figure 00000137
для получения результата последовательности преобразований, где
Figure 00000018
;
при этом
Figure 00000019
для
Figure 00000020
, где
Figure 00000068
является заранее заданной обфускационной функцией, которая задает взаимно-однозначное соответствие между
Figure 00000010
и
Figure 00000022
, и где
Figure 00000068
удовлетворяет условию, что имеется взаимно-однозначное отображение, которое отображает любое значение
Figure 00000024
на значение
Figure 00000025
таким образом, что
Figure 00000019
;
Figure 00000026
зависит от
Figure 00000100
;
при этом
Figure 00000028
и
Figure 00000138
для
Figure 00000003
для предварительно заданных функций
Figure 00000030
и
Figure 00000031
, при этом
Figure 00000032
и
Figure 00000033
обфусцируются на этапах применения преобразования.
В конкретном примере этап, на котором применяют преобразование
Figure 00000139
, содержит этапы, на котором примененяют преобразование
Figure 00000140
, так что
Figure 00000048
; и применяют преобразование
Figure 00000049
, так что
Figure 00000050
, для получения результата последовательности преобразований, где
Figure 00000018
.
В соответствии с другим аспектом обеспечен компьютерный программный продукт, содержащий инструкции, заставляющие процессорную систему выполнять способ, изложенный в настоящем документе.
Специалисту в области техники будет понятно, что признаки, описанные выше, могут сочетаться любим образом, который можно счесть полезным. Кроме того, модификации и вариации, описанные в отношении системы, могут аналогично быть применены к способу и к компьютерному программному продукту, и модификации и вариации, описанные в отношении способа, могут быть аналогично применены к системе и к компьютерному программному продукту.
Краткое описание чертежей
Ниже будут объяснены аспекты изобретения с помощью примеров со ссылкой на чертежи. Чертежи являются схематичными и могут быть выполнены не в масштабе. На всех чертежах аналогичные элементы обозначаются одинаковыми номерами позиций.
Фиг. 1 является блок-схемой системы для безопасного выполнения последовательности преобразований.
Фиг. 2 является схемой, изображающей способ, включающий в себя последовательность безопасных преобразований данных.
Фиг. 3 является схемой, изображающей способ обеспечения системы, показанной на фиг. 1.
Подробное описание вариантов воплощения
Во многих приложениях необходимо применить преобразование
Figure 00000141
к входным данным
Figure 00000142
. В силу сложности или по другим причинам может быть желательно, чтобы
Figure 00000143
вычислялось путем последовательного применения преобразований
Figure 00000144
. То есть для 1≤i≤n выполняется следующий вычислительный этап:
Figure 00000145
.
Преобразования
Figure 00000144
выбираются таким образом, что результат этой итерации,
Figure 00000146
, равен
Figure 00000147
. Однако было бы желательно скрыть алгоритмы, используемые в преобразованиях, и/или было бы желательно, чтобы промежуточные значения,
Figure 00000148
, были скрыты от пользователя-злоумышленника, даже если у пользователя-злоумышленника есть полный доступ к устройству, в том числе доступ к оперативной памяти, или даже если у пользователя-злоумышленника есть возможность использовать средства отладки для анализа приложения. Поэтому вместо вычисления значений
Figure 00000149
в явном виде, вычисляются альтернативные значения
Figure 00000150
, в которых скрыты значения
Figure 00000149
, соответственно. Значения
Figure 00000151
содержат больше информационных битов, чем значения
Figure 00000149
, потому что значение избыточной переменной
Figure 00000152
состояния также представлено значениями
Figure 00000151
. В предпочтительном примере значение
Figure 00000153
вычисляется из
Figure 00000154
и
Figure 00000155
. Введем некоторые обозначения, которые будут использоваться в дальнейших объяснениях. Для
Figure 00000156
набор потенциальных значений
Figure 00000157
обозначается как
Figure 00000158
. Для
Figure 00000159
непустое «множество состояний»
Figure 00000160
содержит возможные значения переменной
Figure 00000161
состояния. Чтобы избежать тривиальные случаи, предполагается, что
Figure 00000162
имеет по меньшей мере два элемента; предпочтительно каждое
Figure 00000160
имеет по меньшей мере два элемента, и еще более предпочтительно каждое
Figure 00000160
имеет более двух элементов. Для 0≤i≤n−1 выбирается секретная функция
Figure 00000163
«следующего состояния», чтобы задать
Figure 00000164
. Кроме того, выбирается секретная функция
Figure 00000165
«вводного состояния», так что
Figure 00000166
. Наконец, для 0≤i≤n выбираются набор
Figure 00000167
с количеством элементов равным
Figure 00000168
и секретное взаимно-однозначное отображение
Figure 00000169
. Например,
Figure 00000170
. Отображение
Figure 00000171
описывает соотношение между значениями
Figure 00000172
, которые вычисляются безопасным вычислительным устройством, и соответствующими значениями
Figure 00000173
, при этом
Figure 00000174
является обработанными данными, а
Figure 00000175
является избыточной переменной состояния, которая помогает обфусцировать
Figure 00000174
в ее представление
Figure 00000176
.
Пусть 1≤i≤n. По определению
Figure 00000177
. Так как
Figure 00000178
обратима, можно вычислить
Figure 00000179
и
Figure 00000180
как
Figure 00000181
. Следовательно, можно вычислить
Figure 00000182
из
Figure 00000183
путем вычисления вначале
Figure 00000181
, а затем
Figure 00000177
. Это вычисление может быть выполнено без вычисления промежуточных значений
Figure 00000184
или
Figure 00000173
, например, путем занесения в таблицу значений
Figure 00000176
и соответствующих
Figure 00000183
, или другого обфусцированного вычисления функции
Figure 00000185
, которое вычисляет
Figure 00000176
из
Figure 00000183
, так что
Figure 00000176
и соответствующее
Figure 00000183
,
Figure 00000186
из
Figure 00000187
, так что
Figure 00000188
.
Следует отметить, что это
Figure 00000176
может быть разделено на два компонента, так что
Figure 00000189
, для 1≤i≤n. То есть информация каждого из
Figure 00000190
и
Figure 00000191
может быть распределена по обоим компонентам
Figure 00000192
и
Figure 00000193
. В конкретном примере
Figure 00000194
и, таким образом,
Figure 00000195
и
Figure 00000196
. Альтернативно,
Figure 00000197
выбирается из набора с количеством элементов, равным
Figure 00000198
, а
Figure 00000199
выбирается из набора с количеством элементов, равным
Figure 00000200
.
Вычисление может быть начато путем вычисления
Figure 00000201
из
Figure 00000202
с использованием
Figure 00000203
. В настоящем документе
Figure 00000204
обозначает функцию, которая вычисляет значение
Figure 00000205
состояния из входного значения
Figure 00000206
. Функции
Figure 00000207
и
Figure 00000208
могут быть объединены, например, в таблице поиска, чтобы скрыть значение
Figure 00000209
от злоумышленника. Альтернативно, значение
Figure 00000209
может зависеть от другого элемента
Figure 00000210
входных данных вместо
Figure 00000211
.
Из того, как пары
Figure 00000189
вычисляются электронным устройством (описанным выше), следует, что эти значения
Figure 00000189
зависят от входного значения
Figure 00000211
и, опционально, от дополнительного входного элемента
Figure 00000210
. Аналогично, значения
Figure 00000212
(хотя они не вычисляются электронным устройством) зависят от
Figure 00000211
и/или, опционально, от дополнительного входного элемента
Figure 00000210
Если электронное устройство вычисляет
Figure 00000213
таким образом, как описано выше, оно может вычислить
Figure 00000214
. Однако, при наличии надлежащего ограничения, также можно вычислить
Figure 00000215
из
Figure 00000216
и
Figure 00000217
(и/или
Figure 00000218
, если
Figure 00000219
зависит от
Figure 00000220
). Это ограничение состоит в следующем: для любых двух значений
Figure 00000221
и
Figure 00000222
, при этом
Figure 00000223
, и любом
Figure 00000224
, при этом
Figure 00000225
и
Figure 00000226
, должно выполняться, что
Figure 00000227
. Если это свойство выполняется, то можно сконструировать преобразование, например, таблицу поиска, которая отображает пары
Figure 00000216
и
Figure 00000217
(или пары
Figure 00000216
и
Figure 00000228
) на соответствующие значения
Figure 00000215
. В таком случае нет необходимости вычислять
Figure 00000229
. Это может затруднить извлечение информации из электронного устройства путем изменения значений
Figure 00000230
и/или
Figure 00000231
.
В этом описании
Figure 00000232
может также обозначаться как
Figure 00000233
. Эти символы имеют одинаковое значение в этом описании. Соответственно,
Figure 00000019
для
Figure 00000020
. В настоящем документе
Figure 00000234
является заранее заданной обфускационной функцией, которая задает взаимно-однозначное соответствие между
Figure 00000235
и
Figure 00000236
. Чтобы иметь возможность определить
Figure 00000215
на основе
Figure 00000237
и
Figure 00000238
, без необходимости в значении
Figure 00000239
, функция
Figure 00000240
может быть выбрана так, что
Figure 00000241
удовлетворяет условию, что имеется взаимно-однозначное отображение, которое отображает любое значение
Figure 00000242
на значение
Figure 00000243
таким образом, что
Figure 00000244
. Такая функция может быть создана методом проб и ошибок. Класс функций, для которых выполняется это условие, дается в следующем примере.
Далее будет описан конкретный пример, в котором даются более подробные примеры для нескольких компонентов алгоритма. В этом примере имеются положительные целые числа
Figure 00000245
и
Figure 00000246
, такие, что для всех
Figure 00000247
Figure 00000248
и
Figure 00000249
. Кроме того,
Figure 00000250
. Следует отметить, что это эквивалентно заданию
Figure 00000251
.
В еще более подробном примере в дополнение к наборам, выбранным в предыдущем примере, функции
Figure 00000252
выбираются так, что
Figure 00000253
, где
Figure 00000254
Figure 00000255
.
В настоящем документе
Figure 00000256
обозначает поразрядную операцию по модулю.
Figure 00000257
является обратимым линейным отображением с
Figure 00000258
на
Figure 00000259
.
Figure 00000260
является обратимым линейным отображение с
Figure 00000261
на
Figure 00000262
.
Figure 00000263
является линейным отображением с
Figure 00000264
на
Figure 00000259
.
Figure 00000265
является линейным отображением с
Figure 00000259
на
Figure 00000264
. Верхние индексы функций обозначают индексы. Линейное отображение
Figure 00000266
, которое отображает
Figure 00000267
на
Figure 00000268
, является обратимым.
Figure 00000269
и
Figure 00000270
являются обратимыми отображениями на
Figure 00000259
, которые могут быть нелинейными.
Figure 00000271
и
Figure 00000272
являются обратимыми отображениями на
Figure 00000264
, которые могут быть нелинейными. В случае, если
Figure 00000273
, предпочтительно, чтобы
Figure 00000274
и
Figure 00000275
также были обратимы. В случае, если
Figure 00000276
, предпочтительно, чтобы матрицы, соответствующие линейным отображениям
Figure 00000274
и
Figure 00000277
, имели полный ранг.
В принципе, можно вычислить значение
Figure 00000278
из
Figure 00000279
с использованием приведенных выше уравнений. Однако в предпочтительном примере устройство не вычисляет
Figure 00000280
, а вычисляет только
Figure 00000281
. В этом случае устройство выполнено с возможностью вычисления
Figure 00000282
из
Figure 00000283
и
Figure 00000284
(или
Figure 00000285
, в зависимости от конкретного случая).
Следует отметить, что
Figure 00000286
.
Так как
Figure 00000287
обратима, можно вычислить значение
Figure 00000288
из данного
Figure 00000281
. Кроме того, так как
Figure 00000289
может быть получено из
Figure 00000284
(или
Figure 00000285
, в зависимости от конкретного случая), можно вычислить
Figure 00000290
из
Figure 00000284
(или
Figure 00000285
, в зависимости от конкретного случая). По этой информации может быть определено
Figure 00000282
. Предпочтительно,
Figure 00000282
получается непосредственно из
Figure 00000281
и
Figure 00000284
без раскрытия какого-либо из промежуточных результатов, упомянутых в этом абзаце. Например, взаимосвязь может быть сохранена в таблице или нескольких таблицах. Несколько таблиц могут использоваться, например, если один или несколько битов
Figure 00000282
не зависят от всех битов
Figure 00000284
и/или всех битов
Figure 00000281
.
Например,
Figure 00000080
имеет вычислительную сложность, которая в значительной степени меньше, чем вычислительная сложность
Figure 00000081
. Это позволяет вычислить
Figure 00000282
из
Figure 00000281
и
Figure 00000291
с относительно небольшой вычислительной сложностью. Например, вычислительная сложность
Figure 00000080
не зависит от
Figure 00000292
.
Например,
Figure 00000080
является тождественной функцией. Это позволяет легко сконструировать
Figure 00000085
, поскольку значение
Figure 00000079
также неявно используется в его зависимости от
Figure 00000086
в первом средстве преобразования.
Фиг. 1 изображает вариант воплощения системы для выполнения безопасной последовательности преобразований. На иллюстрациях несколько средств обработки были обозначены прямоугольниками, иногда с соответствующим символом, используемым в этом описании внутри прямоугольника. Кроме того, элементы данных были обозначены их символом переменной, а нарисованный массив символизирует последовательность битов данной длины. Однако фактическая длина последовательности битов каждого элемента данных может быть различной. Чертежи не указывают фактическую длину элементов данных. Система может быть реализована на одном устройстве обработки, таком как должным образом запрограммированный компьютер, смартфон или смарт-карта. Система также может быть распределена по нескольким различным устройствам обработки.
Система содержит блок 111 ввода данных для определения значения
Figure 00000293
входных данных. Например, блок 111 ввода выполнен с возможностью приема значения входных данных через подсистему связи устройства. Альтернативно, блок 111 ввода может быть выполнен с возможностью приема значения входных данных из памяти, которая может быть внутренней или внешней памятью. Система дополнительно содержит первое средство 101 преобразования для применения преобразования к значению
Figure 00000294
входных данных для получения обфусцированного представления
Figure 00000295
значения
Figure 00000294
, так что
Figure 00000296
. В конкретном примере
Figure 00000294
,
Figure 00000297
,
Figure 00000298
и
Figure 00000299
являются значениями данных, имеющими одинаковое число битов.
Система дополнительно содержит второе средство 102 преобразования. Второе средство 102 преобразования содержит одно или несколько дополнительных средств 110 преобразования. Дополнительное средство 110 преобразования реализует
Figure 00000300
для конкретного значения
Figure 00000301
, где
Figure 00000008
. Второе средство 102 преобразования выполнено с возможностью примения дополнительного средства 110 преобразования к обфусцированным данным в одной или нескольких итерациях. А именно, дополнительное средство 110 преобразования вычисляет
Figure 00000096
для
Figure 00000008
, где
Figure 00000302
является числом преобразований, которые должны быть выполнены. Следует иметь в виду, что дополнительное средство 110 преобразования может вычислять различные операции в каждой итерации; то есть
Figure 00000300
может быть различной операцией для каждого
Figure 00000008
. Однако это не является ограничением, так как некоторые или все
Figure 00000300
могут быть идентичными операциями.
Система дополнительно содержит третье средство преобразования, выполненное с возможностью применения преобразования
Figure 00000303
, которое зависит от
Figure 00000304
,
Figure 00000305
и
Figure 00000306
, путем вычисления
Figure 00000307
для получения результата последовательности преобразований, где
Figure 00000018
. В настоящем документе
Figure 00000303
задается как
Figure 00000308
. В иллюстративном варианте воплощения, изображенном на фиг. 1, третье средство преобразования реализовано как комбинация четвертого средства 103 преобразования и пятого средства 104 преобразования.
Четвертое средство 103 преобразования выполнено с возможностью вычисления
Figure 00000309
с использованием преобразования
Figure 00000310
, так что
Figure 00000048
. Таким образом, вычисление
Figure 00000311
может быть опущено.
Пятое средство 104 преобразования выполнено с возможностью приема значения
Figure 00000312
от четвертого средства 103 преобразования и значения
Figure 00000313
для вычисления
Figure 00000314
с использованием функции
Figure 00000315
, так что
Figure 00000316
. Например, пятое средство 104 преобразования принимает значение
Figure 00000317
от блока 111 ввода данных.
Система дополнительно содержит блок 112 вывода, выполненный с возможностью приема вычисленного значения
Figure 00000318
от пятого средства 104 преобразования и передачи значения
Figure 00000319
другим компонентам системы (не показаны) и/или сохранения значения
Figure 00000319
в памяти. Например, блок 112 вывода может быть выполнен с возможностью отображения визуализации данных
Figure 00000319
на устройстве отображения и/или воспроизведения данных на аудиоустройстве. В конкретном примере второе средство 102 преобразования, одно или несколько дополнительных средств 110 преобразования и/или четвертое средство преобразования могут принять дополнительное значение(я) операнда(ов), например, от внешнего источника или от другого вычислительного блока системы. В таком случае, например, функция
Figure 00000133
имеет вид
Figure 00000320
, где
Figure 00000321
обозначает обфусцированное представление другого элемента
Figure 00000322
данных с параметром
Figure 00000323
состояния. Это обфусцированное представление может иметь аналогичный вид, что и описанные в настоящем документе. Альтернативно, дополнительное значение(я) операнда(ов) может быть обеспечено в открытом виде, то есть
Figure 00000133
может иметь вид
Figure 00000324
, где
Figure 00000325
обозначает дополнительный элемент данных, который не обфусцирован.
В конкретном варианте системы, показанном на фиг. 1, первое средство 101 преобразования может быть выполнено с возможностью приема дополнительного параметра
Figure 00000326
(не показан на чертеже), и избыточность в обфусцированном представлении
Figure 00000091
значения
Figure 00000327
может зависеть от входной переменной
Figure 00000328
, как объяснялось выше. В таком случае тот же самый дополнительный параметр
Figure 00000329
обеспечивается также для третьего блока преобразования и/или пятого блока 104 преобразования, чтобы, например, пятый блок 104 преобразования мог вычислить значение
Figure 00000330
в зависимости от и
Figure 00000331
, и
Figure 00000332
.
Следует отметить, что первое средство 101 преобразования, второе средство 102 преобразования, третье средство преобразования, четвертое средство 103 преобразования и/или пятое средство 104 преобразования может быть реализовано посредством таблиц поиска. Например, каждое из: первое средство 101 преобразования, дополнительное средство 110 преобразования второго средства 102 преобразования, четвертое средство 103 преобразования и пятое средство 104 преобразования может быть реализовано с помощью одной таблицы поиска. Альтернативно, можно использовать множество таблиц поиска, которые предназначены для применения совместно одним из средств преобразования для реализации вместе одного из преобразований. Опционально, эти таблицы поиска могут быть обфусцированы дополнительно путем кодирования вводов и выводов таблиц поиска с использованием методик, известных, например, из Chow и др. Таблицы поиска являются примером того, как преобразования могут быть выполнены без раскрытия промежуточных результатов, которые должны остаться скрытыми, таких как значения
Figure 00000333
для
Figure 00000334
и, в частности,
Figure 00000335
, которое играет роль в первом и пятом средстве преобразования (или, в более общем смысле, в первом и третьем средстве преобразования).
Фиг. 2 изображает способ выполнения безопасной последовательности
Figure 00000336
преобразований
Figure 00000337
, где
Figure 00000003
, над значением данных с использованием зашифрованных представлений значения данных. Способ содержит этап 201 применения преобразования к значению
Figure 00000338
входных данных для получения обфусцированного представления
Figure 00000005
значения
Figure 00000006
, где обфусцированное представление
Figure 00000005
содержит избыточность, которая зависит от входной переменной
Figure 00000339
.
Затем на этапе 206 инициализируется значение
Figure 00000340
индекса путем задания
Figure 00000341
.
Затем способ переходит к этапу 202 применения преобразования
Figure 00000009
для вычисления
Figure 00000010
из
Figure 00000011
, так что
Figure 00000012
. После применения преобразования
Figure 00000342
увеличивается на единицу.
Затем способ переходит к этапу 203 проверки, завершена ли итерация, путем проверки, что
Figure 00000343
. Если
Figure 00000344
, способ повторяет этап 202 с обновленным значением
Figure 00000345
. Если
Figure 00000346
на этапе 203, способ переходит к этапу 204 применения преобразования
Figure 00000047
, так что
Figure 00000048
. Затем способ переходит к этапу 205 применения преобразования
Figure 00000347
, так что
Figure 00000050
, для получения результата последовательности преобразований, где
Figure 00000018
. Следует отметить, что этап 204 и этап 205 могут быть объединены в один этап.
В упомянутом выше способе символы являются такими, как это объяснялось выше в этом описании для нескольких примеров. Например, для
Figure 00000020
Figure 00000051
,
Figure 00000052
,
где
Figure 00000053
является оператором,
Figure 00000054
,
Figure 00000055
,
Figure 00000056
и
Figure 00000057
являются операторами, которые являются линейными относительно оператора
Figure 00000053
, операторы
Figure 00000348
и
Figure 00000349
являются обратимыми, и оператор
Figure 00000350
, который отображает
Figure 00000062
на
Figure 00000063
, является обратимым;
Figure 00000064
,
Figure 00000065
,
Figure 00000066
и
Figure 00000067
являются обратимыми отображениями;
Figure 00000077
зависит от
Figure 00000351
;
при этом
Figure 00000028
и
Figure 00000029
для
Figure 00000003
для предварительно заданных функций
Figure 00000030
и
Figure 00000031
, при этом
Figure 00000032
и
Figure 00000033
не вычисляются системой в явном виде.
Фиг. 3 изображает способ обеспечения системы для выполнения безопасной последовательности
Figure 00000352
преобразований
Figure 00000353
, где
Figure 00000003
, над значением данных с использованием зашифрованных представлений значения данных.
Способ начинается с этапа 301 обеспечения первого средства 101 преобразования и конфигурирования первого средства 201 преобразования для применения преобразования к значению
Figure 00000354
входных данных для получения обфусцированного представления
Figure 00000005
значения
Figure 00000006
, при этом обфусцированное представление
Figure 00000005
содержит избыточность, которая зависит от входной переменной
Figure 00000355
.
Затем способ переходит к этапу 302 с обеспечением второго средства 102 преобразования. На этапе 311 инициализируется значение
Figure 00000356
индекса путем задания
Figure 00000357
. Затем на этапе 310 дополнительное средство 110 преобразования включается в состав второго средства 102 преобразования. Это дополнительное средство 110 преобразования выполнено с возможностью применения преобразования
Figure 00000009
для вычисления
Figure 00000010
из
Figure 00000011
, так что
Figure 00000012
. После этого значение
Figure 00000356
индекса увеличивается на единицу. На этапе 312 проверяется, что
Figure 00000358
. Если
Figure 00000359
на этапе 312, способ повторяет этап 310 с обновленным значением
Figure 00000360
. Если
Figure 00000361
на этапе 312, способ переходит к этапу 303 обеспечения четвертого средства 103 преобразования и конфигурирования четвертого средства 103 преобразования для применения преобразования
Figure 00000047
, так что
Figure 00000048
.
Затем на этапе 304 способ продолжается с обеспечением пятого средства 104 преобразования и конфигурированием пятого средства 104 преобразования для применения преобразования
Figure 00000362
, так что
Figure 00000050
, для получения результата последовательности преобразований, где
Figure 00000018
. Следует отметить, что этапы 303 и 304 могут быть объединены так, что обеспечивается третье средство преобразования, которое применяет преобразование
Figure 00000363
, как объяснялось выше.
Этапы способа выполняются таким образом, что первое средство преобразования, второе средство преобразования, четвертое средство преобразования и пятое средство преобразования выполнены с возможностью обфусцировать значения
Figure 00000032
и
Figure 00000033
. В частности, первое средство 101 преобразования и пятое средство 104 преобразования конфигурируются так, что они обфусцируют значение
Figure 00000364
, которое зависит от
Figure 00000365
(или от
Figure 00000366
, как объяснялось выше), например, путем создания сокращенного пути в вычислении, который непосредственно генерирует конечный результат
Figure 00000367
на основании
Figure 00000368
и
Figure 00000369
(или на основании
Figure 00000370
и
Figure 00000371
).
Конкретный пример такого обфусцирования дается путем обеспечения таблиц поиска для самых уязвимых преобразований. Например, этап 302 конфигурирования второго средства преобразования может содержать вычисление по меньшей мере одной таблицы поиска по меньшей мере одной из функций
Figure 00000095
, при этом таблица поиска отображает значения
Figure 00000011
на значения
Figure 00000010
. Эта таблица поиска может быть вычислена путем вычисления для соответствующих значений
Figure 00000011
:
Figure 00000372
,
где
Figure 00000373
обозначает функцию, задаваемую следующим выражением
Figure 00000111
,
и
Figure 00000112
является функцией, обратной
Figure 00000374
. В приведенных выше уравнениях
Figure 00000375
использует только компонент
Figure 00000376
функции
Figure 00000377
, а
Figure 00000378
использует только компонент
Figure 00000379
функции
Figure 00000112
.
Четвертое преобразование может содержать таблицу поиска, аналогичную упомянутой выше, с
Figure 00000380
,
где
Figure 00000381
использует только компонент
Figure 00000382
функции
Figure 00000383
, выходные значения
Figure 00000384
опускаются.
В другом конкретном примере, в котором
Figure 00000385
, этап 301 конфигурирования первого преобразования может содержать обеспечение таблицы поиска функции, которая отображает значения
Figure 00000386
на соответствующие значения
Figure 00000091
. Это соотношение может даваться выражением
Figure 00000387
, как было описано выше, где
Figure 00000388
является секретным отображением, которое отображает значение
Figure 00000386
на
Figure 00000389
. Путем обеспечения табличных значений
Figure 00000386
и соответствующих значений
Figure 00000091
система может применить преобразование, не вычисляя значение
Figure 00000390
.
В соответствии с более конкретным примером, который описывается выше, соотношение, реализованное с помощью таблицы поиска первого средства преобразования, может даваться выражениями
Figure 00000391
,
Figure 00000392
.
В другом примере, в котором
Figure 00000393
, этап 304 конфигурирования пятого преобразования может содержать обеспечение таблицы поиска функции F. Эта таблица может отображать пары
Figure 00000394
на соответствующие значения
Figure 00000395
. Аналогичные таблицы могут быть подготовлены для случая, в котором
Figure 00000396
является другим входным значением, отдельным от
Figure 00000397
.
Может быть обеспечена система для выполнения безопасной последовательности преобразований значения данных с использованием зашифрованных представлений значения данных. Система содержит первое средство преобразования для применения преобразования к значению входных данных для получения его обфусцированного представления, при этом обфусцированное представление содержит избыточность, которая зависит от входной переменной. Система содержит последовательность вторых средств преобразования для применения преобразования для вычисления преобразованных обфусцированных представлений. Система дополнительно содержит четвертое средство преобразования для применения преобразования так, что получаются последние обфусцированные преобразованные данные. Система содержит пятое средство преобразования для применения преобразования, которое зависит от последних обфусцированных преобразованных данных и входных данных.
Некоторые или все аспекты изобретения могут быть подходящими для реализации в форме программного обеспечения, в частности, компьютерного программного продукта. Такой компьютерный программный продукт может содержать носители данных, на которых хранится программное обеспечение. Такие носители данных могут содержать, например, оптический диск, магнитный диск или флэш-память. Кроме того, компьютерная программа может быть представлена сигналом, таким как оптический сигнал или электромагнитный сигнал, который переносится передающей средой, такой как волоконно-оптический кабель или воздух. Компьютерная программа может частично или полностью быть в форме исходного кода, объектного кода или псевдокода, пригодного для исполнения компьютерной системой. Например, код может исполняться непосредственно одним или несколькими процессорами. Альтернативно, код может интерпретироваться интерпретатором, который исполняется одним или несколькими процессорами. Следует иметь в виду, что части систем, описанных в настоящем документе, могут быть реализованы в форме программного обеспечения. Кроме того, этапы способа, описанные в настоящем документе, могут быть реализованы частично или полностью в программном обеспечении. Программное обеспечение может быть организовано с помощью подпрограмм. Подпрограммы могут быть объединены для формирования автономной исполняемой программы. Альтернативно, подпрограммы могут быть организованы как динамически подключаемая библиотека. Может быть обеспечен исполняемый файл основной программы, который использует подпрограммы из динамически подключаемой библиотеки. Каждый из этапов обработки и/или системных компонентов, описанных в настоящем документе, может быть представлен исполняемым кодом, находится ли он в динамически подключаемой библиотеке или в исполняемом файле. Некоторые или все функциональные возможности могут быть реализованы как часть операционной системы, некоторые функциональные возможности могут быть реализованы в динамически подключаемой библиотеке, а некоторые функциональные возможности могут быть реализованы как файл прикладной программы.
Примеры и варианты воплощения, описанные в настоящем документе, предназначены для иллюстрации, а не ограничения изобретения. Специалист в области техники сможет разработать альтернативные варианты воплощения, не выходя за пределы объема формулы изобретения. Ссылочные позиции, размещенные в круглых скобках в формуле изобретения, не должны интерпретироваться как ограничивающие объем формулы изобретения. Элементы, описанные как отдельные объекты в формуле изобретения или описании, могут быть реализованы как один элемент аппаратного или программного обеспечения, сочетающий признаки описанных элементов.

Claims (60)

1. Система криптографии типа «белый ящик» для выполнения безопасной последовательности
Figure 00000398
преобразований
Figure 00000399
, где
Figure 00000400
, значения
Figure 00000401
данных с использованием зашифрованных представлений значения данных, при этом система содержит:
первое средство (101) преобразования для применеиня преобразования к значению
Figure 00000402
входных данных для получения обфусцированного представления
Figure 00000403
значения
Figure 00000402
, при этом обфусцированное представление
Figure 00000403
содержит избыточность, которая зависит от входной переменной
Figure 00000404
;
второе средство преобразования для применения, для каждого из
Figure 00000405
, преобразования
Figure 00000406
для вычисления
Figure 00000407
из
Figure 00000408
, так что
Figure 00000409
;
третье средство преобразования для применения преобразования
Figure 00000410
, которое зависит от
Figure 00000411
,
Figure 00000412
и
Figure 00000413
, путем вычисления
Figure 00000414
для получения результата последовательности преобразований, где
Figure 00000415
;
при этом
Figure 00000416
для
Figure 00000417
, где
Figure 00000418
является предварительно заданной обфускационной функцией, которая задает взаимно-однозначное соответствие между
Figure 00000407
и
Figure 00000419
, и где
Figure 00000418
удовлетворяет условию, что имеется взаимно-однозначное отображение, которое отображает любое значение
Figure 00000420
на значение
Figure 00000421
таким образом, что
Figure 00000416
;
Figure 00000422
зависит от
Figure 00000423
; и
при этом
Figure 00000424
и
Figure 00000425
для
Figure 00000400
для предварительно заданных функций
Figure 00000426
и
Figure 00000427
,
при этом первое средство преобразования, второе средство преобразования и третье средство преобразования выполнены с возможностью обфусцировать значения
Figure 00000428
и
Figure 00000429
,
при этом третье средство преобразования содержит:
четвертое средство преобразования для применения преобразования
Figure 00000430
, так что
Figure 00000431
; и
пятое средство преобразования для применения преобразования
Figure 00000432
, которое зависит от
Figure 00000433
и
Figure 00000434
, путем вычисления
Figure 00000435
для получения значения
Figure 00000436
.
2. Система по п.1, в которой
Figure 00000416
задается следующим образом для
Figure 00000417
:
Figure 00000437
,
Figure 00000438
, где
Figure 00000439
является оператором,
Figure 00000440
,
Figure 00000441
,
Figure 00000442
и
Figure 00000443
являются операторами, которые являются линейными относительно оператора
Figure 00000439
, операторы
Figure 00000444
и
Figure 00000445
являются обратимыми, и оператор
Figure 00000446
, который отображает
Figure 00000447
на
Figure 00000448
, является обратимым; и
Figure 00000449
,
Figure 00000450
,
Figure 00000451
и
Figure 00000452
являются обратимыми отображениями.
3. Система по п.2, в которой оператор
Figure 00000439
является поразрядной операцией «исключающее ИЛИ» (XOR).
4. Система по п.1, в которой
Figure 00000453
равно
Figure 00000454
.
5. Система по п.1, в которой
Figure 00000455
является тождественной функцией.
6. Система по п.1, в которой по меньшей мере одно из первого, второго и третьего средства преобразования реализовано посредством по меньшей мере одной предварительно вычисленной таблицы поиска.
7. Способ криптографии типа «белый ящик» для обеспечения системы для выполнения безопасной последовательности
Figure 00000456
преобразований
Figure 00000457
, где
Figure 00000400
, над значением данных с использованием зашифрованных представлений значения данных, при этом способ содержит этапы, на которых:
обеспечивают первое средство преобразования и конфигурируют первое средство преобразования для применения преобразования к значению
Figure 00000458
входных данных для получения обфусцированного представления
Figure 00000459
значения
Figure 00000460
, при этом обфусцированное представление
Figure 00000459
содержит избыточность, которая зависит от входной переменной
Figure 00000461
;
обеспечивают второе средство преобразования и конфигурируют второе средство преобразования для применения, для каждого из
Figure 00000405
, преобразования
Figure 00000462
для вычисления
Figure 00000407
из
Figure 00000408
, так что
Figure 00000463
;
обеспечивают третье средство преобразования и конфигурируют третье средство преобразования для применения преобразования
Figure 00000464
, которое зависит от
Figure 00000411
,
Figure 00000412
и
Figure 00000465
, путем вычисления
Figure 00000466
для получения результата последовательности преобразований, где
Figure 00000415
;
при этом
Figure 00000416
для
Figure 00000417
, где
Figure 00000418
является предварительно заданной обфускационной функцией, которая задает взаимно-однозначное соответствие между
Figure 00000407
и
Figure 00000419
, и где
Figure 00000418
удовлетворяет условию, что имеется взаимно-однозначное отображение, которое отображает любое значение
Figure 00000420
на значение
Figure 00000421
таким образом, что
Figure 00000416
;
Figure 00000422
зависит от
Figure 00000467
;
при этом
Figure 00000424
и
Figure 00000425
для
Figure 00000400
для предварительно заданных функций
Figure 00000426
и
Figure 00000427
;
при этом первое средство преобразования, второе средство преобразования и третье средство преобразования выполнены с возможностью обфусцировать значения
Figure 00000428
и
Figure 00000429
,
при этом третье средство преобразования содержит:
четвертое средство преобразования для применения преобразования
Figure 00000430
, так что
Figure 00000431
; и
пятое средство преобразования для применения преобразования
Figure 00000432
, которое зависит от
Figure 00000433
и
Figure 00000434
, путем вычисления
Figure 00000435
для получения значения
Figure 00000436
.
8. Способ по п.7, в котором
Figure 00000468
равно
Figure 00000469
и в котором этап, на котором конфигурируют первое средство преобразования, содержит этап, на котором вычисляют по меньшей мере одну таблицу поиска, представляющую собой отображение значений
Figure 00000470
на соответствующие значения
Figure 00000403
.
9. Способ по п.7, в котором этап, на котором конфигурируют второе средство преобразования, содержит вычисление по меньшей мере одной таблицы поиска по меньшей мере одной из функций
Figure 00000406
, при этом таблица поиска отображает значения
Figure 00000408
на значения
Figure 00000407
, путем вычисления
Figure 00000471
,
где
Figure 00000472
является функцией, обратной
Figure 00000473
.
10. Способ по п.7, в котором
Figure 00000416
задается следующим образом:
Figure 00000437
,
Figure 00000438
, где
Figure 00000439
является оператором,
Figure 00000440
,
Figure 00000441
,
Figure 00000442
и
Figure 00000443
являются операторами, которые являются линейными относительно оператора
Figure 00000439
, операторы
Figure 00000444
и
Figure 00000445
являются обратимыми, и оператор
Figure 00000446
, который отображает
Figure 00000447
на
Figure 00000448
, является обратимым; и
Figure 00000449
,
Figure 00000450
,
Figure 00000451
и
Figure 00000452
являются обратимыми отображениями; и
при этом этап, на котором конфигурируют второе средство преобразования содержит вычисление по меньшей мере одной таблицы поиска по меньшей мере одной из функций
Figure 00000406
, причем таблица поиска отображает значения
Figure 00000408
на значения
Figure 00000407
, путем вычисления
Figure 00000474
,
где
Figure 00000475
обозначает функцию, определяемую следующим выражением
Figure 00000476
,
и
Figure 00000477
является функцией, обратной
Figure 00000478
.
11. Способ по п.7, в котором
Figure 00000479
равно
Figure 00000480
и в котором этап, на котором конфигурируют третье средство преобразования, содержит вычисление по меньшей мере одной таблицы поиска, представляющей собой функцию
Figure 00000481
, при этом по меньшей мере одна таблица поиска отображает кортежи
Figure 00000482
на соответствующие значения
Figure 00000483
.
12. Способ криптографии типа «белый ящик» для выполнения безопасной последовательности
Figure 00000484
преобразований
Figure 00000485
, где
Figure 00000400
, над значением данных с использованием зашифрованных представлений значения данных, содержащий этапы, на которых:
применяют преобразование к значению
Figure 00000486
входных данных для получения обфусцированного представления
Figure 00000487
значения
Figure 00000488
, при этом обфусцированное представление содержит избыточность, которая зависит от входной переменной
Figure 00000489
;
для каждого из
Figure 00000405
применяют преобразование
Figure 00000490
для вычисления
Figure 00000407
из
Figure 00000408
, так что
Figure 00000463
;
применяют преобразование
Figure 00000491
, которое зависит от
Figure 00000492
,
Figure 00000493
и
Figure 00000494
, путем вычисления
Figure 00000495
для получения результата последовательности преобразований, где
Figure 00000415
;
при этом
Figure 00000416
для
Figure 00000417
, где
Figure 00000496
является предварительно заданной обфускационной функцией, которая задает взаимно-однозначное соответствие между
Figure 00000407
и
Figure 00000419
, и где
Figure 00000496
удовлетворяет условию, что имеется взаимно-однозначное отображение, которое отображает любое значение
Figure 00000420
на значение
Figure 00000421
таким образом, что
Figure 00000416
;
Figure 00000422
зависит от
Figure 00000497
;
при этом
Figure 00000424
и
Figure 00000498
для
Figure 00000400
для предварительно заданных функций
Figure 00000426
и
Figure 00000427
, при этом
Figure 00000428
и
Figure 00000429
обфусцированы на этапах применения преобразования,
при этом третье средство преобразования содержит:
четвертое средство преобразования для применения преобразования
Figure 00000430
, так что
Figure 00000431
; и
пятое средство преобразования для применения преобразования
Figure 00000432
, которое зависит от
Figure 00000433
и
Figure 00000434
, путем вычисления
Figure 00000435
для получения значения
Figure 00000436
.
13. Машиночитаемый носитель информации, на котором сохранен программный код, который при его исполнении компьютерной системой предписывает компьютерной системе выполнять способ по п.7 или 12.

RU2016129282A 2013-12-20 2014-12-11 Безопасные преобразования данных RU2680761C1 (ru)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
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) プログラム難読化装置及びプログラム