Криптографическое устройство, приспособленное для вычисления целевого блочного шифра

Изобретение относится к области вычислительной техники. Технический результат заключается в защите от криптографических атак по побочным каналам. Технический результат достигается за счёт вычисления целевого блочного шифра по входному сообщению с получением первого и второго результатов блочного шифра, использования первого и второго результатов блочного шифра в качестве входа при первом действии управления, включающего объединение первого и второго значений посредством применения первой функции объединения к первому и второму значениям с получением значения сравнения, вычисление вспомогательного блочного шифра по значению сравнения с получением вычисленного значение управления, объединение первого значения, вычисленного значения управления и сохраненного значения управления посредством применения второй функции объединения, причем вторая функция объединения выдает первое значение, только если вычисленное значение управления равно сохраненному значению управления. 2 н. и 12 з.п. ф-лы, 7 ил.

 

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ

Изобретение относится к криптографическому устройству, криптографическому способу, компьютерной программе и компьютерно-читаемому носителю.

УРОВЕНЬ ТЕХНИКИ

В документе "A White-Box DES Implementation for DRM Applications" от S. Chow, и др. представлена реализация типа белый ящик для стандарта шифрования данных (DES) (называемая ниже "Chow"). Реализация типа белый ящик является криптографической реализацией, спроектированной для противостояния атаке в контексте белого ящика. В контексте белого ящика, атакующий имеет полную видимость программной реализации и исполнения. Тем не менее, при этом реализация типа белый ящик нацелена на предотвращение извлечения секретных ключей из программы.

Chow образует реализацию DES, которая состоит полностью из операций поиска по таблице. Посредством нескольких промежуточных способов обычный шифр преобразовывается в реализацию в этой форме, так что табличная сеть может быть использована для вычисления DES. Посредством кодирования таблиц в табличной сети сопротивление системы анализу и атаке увеличивается.

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

Например, в документе "Differential Fault Analysis of Secret Key Cryptosystems" от Biham и др., неустойчивые неисправности вносятся в смарт-карту посредством изменения напряжения электропитания, вызывая выдачу DES-вычислением неверного результата. Посредством анализа ошибок, которые возникают из-за неустойчивых неисправностей, получают информацию о секретном ключе.

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

Контрмеры, введенные в предшествующем уровне техники, против атаки посредством дифференциального анализа неисправностей показали неэффективность в модели типа белый ящик; например, в патенте США US8386791B2, "Secure data processing method based particularly on a cryptographic algorithm. DES с блочным шифром применяется к входным данным дважды. Затем сравниваются результаты двух вычислений. Если они неравны, обнаружена неисправность.

В модели типа белый ящик эта контрмера легко обходится. Например, кто-то может отключить второе исполнение, или сравнение, или кто-то может внести некоторую неисправность в обе копии DES. Есть необходимость в новых контрмерах DFA, которые могут быть защищены при атаке при модели белой коробки.

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

Предусматривается криптографическое устройство, приспособленное для вычисления целевого блочного шифра по входному сообщению. Устройство содержит

- первый блочный шифратор, приспособленный для

- вычисления целевого блочного шифра по входному сообщению, получая первый результат блочного шифра,

- второй блочный шифратор, приспособленный для

- вычисления целевого блочного шифра по входному сообщению, получая второй результат блочного шифра,

- первый блок управления, приспособленный для принятия первого результата блочного шифра и второго результата блочного шифра в качестве входа. В основном, блок управления принимает в качестве входа первое значение и второе значение и выдает первое значение, только если первое значение и второе значение равны, причем блок управления приспособлен для

- объединения первого значения и второго значения посредством применения первой функции объединения к первому значению и второму значению, получая значение сравнения, причем вышеуказанная функция объединения равна предварительно определенному значению, только если первое значение и второе значение равны, и

- вычисления вспомогательного блочного шифра по значению сравнения, получая вычисленное значение управления, и

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

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

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

В варианте осуществления, криптографическое устройство содержит более, чем два блочных шифратора для целевого блочного шифра и несколько блоков управления, чтобы дополнительно усложнить DFA для атакующего.

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

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

Способ согласно изобретению может быть реализован на компьютере в качестве компьютерно-реализуемого способа, либо в виде специализированных аппаратных средствах, либо в виде их комбинации. Исполняемый код для способа согласно изобретению может храниться на компьютерном программном продукте. Примеры компьютерных программных продуктов включают в себя устройства памяти, оптические запоминающие устройства, интегральные схемы, серверы, программное обеспечение, находящееся в сети, и т.д. Предпочтительно, компьютерный программный продукт содержит долговременный программный код, хранящийся на компьютерно-читаемом носителе, для выполнения способа согласно изобретению, когда вышеуказанный программный продукт исполняется на компьютере.

В предпочтительном варианте осуществления, компьютерная программа содержит компьютерный программный код, приспособленный для выполнения всех этапов способа согласно изобретению, когда компьютерная программа исполняется на компьютере. Предпочтительно, компьютерная программа осуществлена на компьютерно-читаемом носителе.

Другой аспект данного изобретения предусматривает способ обеспечения доступности загрузки компьютерной программы. Этот аспект используется, когда компьютерная программа выгружается, например, в магазин App Store компании Apple, магазин Play Store компании Google или магазин Windows Store компании Microsoft, и когда компьютерная программа доступна для загрузки из такого магазина.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

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

Фигуры 1a, 1b, 2, 3, 4a, и 4b схематично показывают примеры варианта осуществления криптографического устройства,

Фигура 5a схематично показывает примеры последовательности раундов,

Фигура 5b схематично показывает примеры последовательности раундов,

Фигура 6 схематично показывает примеры схем последовательностей операций криптографических способов,

Фигура 7a схематично показывает компьютерно-читаемый носитель, имеющий записываемую часть, содержащую компьютерную программу, согласно варианту осуществления,

Фигура 7b схематично показывает представление процессорной системы согласно варианту осуществления.

ПОДРОБНОЕ ОПИСАНИЕ ПРЕДПОЧТИТЕЛЬНЫХ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ

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

В нижеследующем, для понимания, элементы вариантов осуществления описаны в работе. Однако, будет понятно, что соответствующие элементы приспособлены для выполнения функций, описанных как выполняемые ими.

Кроме того, данное изобретение не ограничивается вариантами осуществления, и данное изобретение лежит в каждом новаторском признаке или комбинации признаков, описанных выше или изложенных в обоюдно разных зависимых пунктах формулы изобретения.

Фигура 1a схематично показывает пример варианта осуществления криптографического устройства 100.

Криптографическое устройство 100 выполнено с возможностью вычисления целевого блочного шифра по входному сообщению 110. Блочный шифр имеет множественные раунды, которые успешно осуществляют действия над входом, чтобы произвести выход. Большинство блочных шифров уязвимы для разных атак на неисправность. Например, блочные шифры, для которых конечный раунд основан на раундовой функции, как используется, например, шифры Фейстеля уязвимы для конкретного типа атаки посредством дифференциального анализа неисправности. Посредством применения шифра дважды к одному и тому же входу, но манипулируя значением в конечном раунде, так называемой неисправностью, атакующий может получить информацию о секретном криптографическом ключе посредством сравнения выхода с неисправностью и без нее. Обычно, атаки посредством дифференциального анализа неисправностей выполняются посредством манипулирования аппаратными средствами, на которых исполняется шифр, чтобы физически вызвать неисправность; например, могут быть внесены пики напряжения, чтобы вызвать внесение в вычисление неисправности аппаратными средствами. Изобретатель понял, что атаки посредством дифференциального анализа неисправности могут также быть исполнены в моделях атаки типа белый ящик. В модели атаки типа белый ящик, предполагается, что атакующий имеет возможность манипулировать переменной блочного шифра во время исполнения шифра. Для многих применений, модель атаки типа белый ящик наиболее близко напоминает реалии защиты компьютерных данных и программного обеспечения.

Криптографическое устройство 100 приспособлено для вычисления целевого блочного шифра по входному сообщению 110. Например, криптографическое устройство 100 может содержать приемник для приема сообщения 110, или устройство 100 может содержать хранилище для сообщений, в котором хранится сообщение 110 (не показано отдельно на Фигуре 1a). Криптографическое устройство 100 может быть приспособлено для вычисления целевого блочного шифра в режиме шифрования или режиме дешифрования.

Криптографическое устройство 100 содержит первый блочный шифратор 121 и второй блочный шифратор 122. Первый и второй блочные шифраторы 121, 122 приспособлены для вычисления целевого блочного шифра по входному сообщению 110 для получения первого и второго результата блочного шифра и , соответственно.

Целевой блочный шифр является блочным шифром, который должен быть защищен от атак на неисправность. Например, целевым блочным шифром может быть DES, triple-DES, AES и подобные. В варианте осуществления, первый и второй блочные шифраторы 121 и 122 реализуют целевой блочный шифр в табличной сети с использованием криптографии типа белый ящик, например, как показано в Chow. Реализации табличной сети также известны для AES, и т.д.

Атакующий может иметь возможность взять полный контроль над программным обеспечением, которое выполняется на вычислительном устройстве, например, смартфоне или PC, и подобном. Целью криптографии типа белый ящик является защитить программную реализацию от такого атакующего.

Блочный шифр преобразовывает открытый текст P из некоторого числа битов, например, 64 бита для DES, в шифрованный текст C того же размера. Это преобразование управляется посредством ключа, например, из 56 битов для DES, 168 битов для triple DES. Одной из целей криптографии типа белый ящик является сделать трудным для атакующего извлечение ключа из реализации. Многим атакам на программную реализацию можно помешать посредством кодирования внутренних переменных и осуществления операций в отношении кодированных переменных посредством таблиц, например, в форме табличной сети. Так как таблицы адаптированы к кодированию переменных это все равно может дать те же результаты.

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

Криптографическое устройство 100 дополнительно содержит первый блок 130 управления. Блоки управления будут проиллюстрированы посредством первого блока 130 управления и блока 131 управления маскированием, рассмотренных со ссылкой на Фигуры 1a и 1b.

Блок управления, такой как блок 130 управления, принимает в качестве входа первое значение и второе значение и выдает первое значение, только если первое значение и второе значение равны. В этом случае, первый блок 130 управления приспособлен для приема первого результата блочного шифра и второго результата блочного шифра в качестве входа.

Блок управления приспособлен для объединения первого значения и второго значения посредством применения первой функции объединения к первому значению и второму значению, получая значение сравнения, причем вышеуказанная функция объединения равна предварительно определенному значению, только если первое значение и второе значение равны. Например, первая функция сравнения может быть реализована как первая таблица сравнения или табличная сеть. Как показано на Фигуре 1a, первая функция сравнения может быть реализована как первый блок 140 функции сравнения. Первый блок 140 функции сравнения принимает в качестве входа первое и второе значение, и выдает предварительно определенное значение сравнения в качестве выхода.

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

Например, первой функцией 140 сравнения может быть исключающее ИЛИ (XOR) для первого значения и второго значения: .

Сравнением может быть разность, скажем . Вышеуказанная разность может быть представлена в дополнении до двух, или вычислена по модулю модулем, и т.д. Например, по меньшей мере часть первой функции объединения образована арифметической разностью между по меньшей мере частью первого значения и по меньшей мере частью второго значения. Например, пусть и , в которых маленькая c представляет части первого и второго значения соответственно. Например, частями могут быть байты или полубайты, и т.д. Первой функцией сравнения может быть , разность по частям между первым и вторым значением. Разность может быть по модулю модулем, скажем, по модулю 2 до степени размера в битах для частей. Разность может быть абсолютной разностью и т.д.

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

Предпочтительно функция имеет свойство, что является постоянной функцией, и что и являются биекциями для любой постоянной и переменной .

Ниже приведен пример подфункции, производящей действия над 2-битовыми значениями, заданными в первом ряду и столбце. Следует отметить, что подфункция является биективной в каждой координате.

00 01 10 11
00 00 11 10 01
01 10 00 01 11
10 10 11 00 10
11 01 10 11 00

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

Предварительно определенным значением может быть ноль (0). Предварительно определенным значением может быть любое другое значение, скажем . Если задана первая функция сравнения, которая имеет предварительно определенное значение 0, первая функция сравнения может быть сконструирована для любого другого постоянного значения, скажем , или , и т.д., и наоборот. Ниже будет предполагаться, что предварительно определенное значение составляет 0, хотя опытный читатель напомнит, что это может быть любое желаемое значение.

Блок управления дополнительно содержит вспомогательный блочный шифр 142. Вспомогательный блочный шифр 142 может быть любым блочным шифром , скажем DES, AES и т.д. Преимуществом является, если вспомогательный блочный шифр 142 имеет такую же структуру как целевой блочный шифр. В основном, блочный шифр с такой же структурой может быть получен посредством модификации параметров целевого блочного шифра, например, модификации блоков подстановки, модификации линейных операторов или перестановок, и т.д. Вспомогательный блочный шифр с аналогичной структурой может также быть получен посредством своего ключа. Например, посредством замены ключа другим ключом. Вспомогательный блочный шифр и целевой блочный шифр могут быть идентичными и использовать одинаковый ключ, но с разным кодированием. Например, если кодирование, используемое во вспомогательном блочном шифре для кодирования ключа является другим, например, произвольно выбранным, то фактически ключ, используемый во вспомогательном блочном шифре, не имеет отношения к ключу, используемому в целевом блочном шифре.

Вспомогательный блочный шифр 142 вычисляется на основе значения сравнения, получая вычисленное значение управления . Если неисправностей в первом или втором блочных шифраторах не возникло, вспомогательный блочный шифр 142 вычисляется на основе предварительно определенного значения, например, . Таким образом, если неисправностей не возникло, вычисленное значение управления известно. Известное значение вычисленного значения управления, в случае, если неисправностей не возникло, сохраняется, например, криптографическим устройством, например, в хранилище 160. Сохраненное значение управления может быть кодировано.

Вспомогательный блочный шифр может быть реализован посредством блочного шифратора.

Блок управления содержит вторую функцию 150 объединения 150, например, реализованную во втором блоке функции объединения. Вторая функция 150 объединения объединяет первое значение, вычисленное первым блочным шифратором 121, вычисленное значение управления , вычисленное посредством первой функции сравнения 140, и сохраненное значение управления . Вторая функция 150 объединения производит первое значение, только если вычисленное значение управления равняется сохраненному значению управления .

Например, вторая функция объединения может быть сконструирована из первой функции сравнения. Например, если обозначает вторую функцию объединения и первую функцию объединения с предварительно определенным значением 0, то она может принять вид, например, , или , и т.д. Здесь, обозначает первое значение, возможно в маскированном виде.

Как рассмотрено выше для первых функций сравнения, примеры для вторых функций сравнения включают в себя нижеследующее.

Например, вторая функция объединения может быть исключающим ИЛИ (XOR) для первого значения или маскированного первого значения, вычисленного значения управления и сохраненного значения управления . Порядок XOR может варьироваться, например, , или , или , и т.д.

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

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

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

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

Например, и в частности, если возникла только одиночная неисправность, значение все равно распространяется, но не истинное значение, имеющее неисправность. Сведения о неисправности также маскируются посредством вспомогательного блочного шифра.

Также вторая функция сравнения может быть сконструирована как таблица, посредством задания сначала для всех x и y в диапазоне, и заполнения остатка таблицы случайными значениями. В варианте осуществления, также вторая функция сравнения является биективной в любой координате. То есть посредством удержания двух из трех параметров постоянными, функция является биекцией, когда оставшаяся переменная имеет возможность варьироваться. Здесь x является первым значением, y вычисленным значением сравнения и z сохраненным значением сравнения. Это условие может быть наложено на сконструированную таблицу, например, посредством отслеживания с возвратом, если нарушено условие биекции.

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

В случае первой функции 130 управления, первый результат блочного шифра выдается, если не возникло неисправностей. В случае, если неисправность возникла в блочном шифраторе либо 121, либо 122, или в случае, когда разные неисправности возникли в обоих, значение сравнения не будет равно предварительно определенному значению сравнения. В этом случае, вычисленное значение управления будет не равно сохраненному значению управления. Наконец, вторая функция объединения не выдаст первый результат блочного шифра. Атакующий таким образом не сможет использовать первый результат блочного шифра в атаке DFA.

Сохраненное значение управления может храниться в запоминающем блоке 160. Например, запоминающим блоком 160 может быть память или другое электронное хранилище. Например, запоминающий блок 160 может хранить значение .

Фигура 1b схематично показывает пример варианта осуществления криптографического устройства 101. Криптографическое устройство 101 отличается от криптографического устройства 100 в том, что вместо блока 130 управления используется блок 131 управления маскированием. Блок 131 управления маскированием является таким же как блок 130 управления, кроме того, что добавлен маскирующий блочный шифр 141. В основном, блок управления маскированием вычисляет маскирующий блочный шифр по первому значению, таким образом получая первое значение в маскированном виде.

Маскирующий блочный шифр 141 вычисляет маскирующий блочный шифр по первому значению, таким образом получая первое значение в маскированном виде, например, . В случае по Фигуре 1b, первым значением является первый результат блочного шифра . Маскирующий блочный шифр 141 не делает различий для первой функции сравнения 140. Вторая функция 150 объединения теперь объединяет первое значение в маскированном виде, например, , вычисленное посредством маскирующего блочного шифра 141, вычисленное значение управления , вычисленное посредством первой функции сравнения 140, и сохраненное значение управления . Следует отметить, что сохраненное значение управления на Фигуре 1a является таким же как на Фигуре 1b, так как оно зависит от вспомогательного блочного шифра, а не от маскирующего блочного шифра.

Результатом является то, что, на Фигуре 1b, если неисправностей не возникло, блок 131 управления выдает маскированный первый результат блочного шифра . Как будет рассмотрено ниже, если функция управления маскированием используется в отношении разных входов, например, не в отношении результатов блочного шифра, а скажем, в отношении выходов других блоков управления, и если для маскирующего блочного шифра делается подходящий выбор, блок управления маскированием может также удалить маску со входа, вместо того, чтобы добавить маску.

Маскирующий блочный шифр 141 также вызывает эффективное придание случайного характера результату блока 131 управления в случае неисправности. В случае неисправности, атакующий может не принять маскированный первый результат блочного шифра. Примечательно, даже если вторая функция 150 объединения выдала результаты, которые близки, скажем, в пределах нескольких битов маскированного первого результата блочного шифра, то все равно выход будет нести немного информации, так как она была зашифрована посредством маскирующего блочного шифра. Например, даже если атакующий имел доступ к блоку дешифрования для маскирующего блочного шифратора 141, который он обычно иметь не будет, то дешифрование аналогичного значения будет полностью отличаться от первого результата блочного шифра, имеющего неисправность. Последнее случается, так как небольшое изменение в битах на входе блочного шифра приводит к большой разнице на его выходе.

Выход блока 131 управления может быть использован как есть, например, чтобы сохранить сообщение в зашифрованном виде. В этом случае, когда вышеуказанное сообщение дешифруется, маскирующий блочный шифр будет сначала инвертирован, затем последует дешифрование целевого блочного шифра. Фигуры 2, 3 и 4 показывают дополнительные способы, в которых может быть использован блок управления маскированием. Например, Фигура 2 показывает криптографическое устройство 102, которое является таким же как криптографическое устройство 101, кроме того, что за блоком 131 управления маскированием следует дополнительный блочный шифратор 135, приспособленный для вычисления инверсии маскирующего блочного шифра по результату первого блока управления маскированием.

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

В варианте осуществления, маскирующий блочный шифр 141 и вспомогательный блочный шифр 142 имеют одинаковую структуру. Маскирующим блочным шифром и вспомогательным блочным шифром может также быть один и тот же блочный шифр.

В варианте осуществления, маскирующий блочный шифр 141, вспомогательный блочный шифр 142 и целевой блочный шифр, все имеют одинаковую структуру. Это сделает для атакующего очень трудным отличить целевой блочный шифр от маскирующего и вспомогательного блочного шифра, особенно, если вычисления выполняются посредством табличной сети в отношении кодированных переменных, например, в реализации типа белый ящик.

В варианте осуществления, целевой блочный шифр содержит множественные раунды блочного шифра. Реализация целевого блочного шифра в блочных шифраторах 121 и 122 может включать в себя в пределах множественных раундов блочного шифра один или более фиктивных раундов. Фиктивный раунд выполняет вычисление, но не влияет на итоговый результат вычисления блочного шифра. Раунды блочного шифра и фиктивные раунды и раунды блочного шифра, вместе образуют последовательность раундов, которая включает в себя множественные раунды блочного шифра и один или более фиктивных раундов, перемеженных с раундами блочного шифра.

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

В варианте осуществления, последний раунд блочного шифра в последовательности первого блочного шифратора не совмещен с последним раундом блочного шифра в последовательности второго блочного шифратора. Например, раунды в последовательности раундов могут иметь номер раунда, или индекс, указывающие его место в последовательности; номер раунда последнего раунда блочного шифра в последовательности раундов в первом блочном шифраторе 121 и втором блочном шифраторе 122 является разным.

Например, это может быть достигнуто с использованием нижеследующих двух последовательностей для раундов в блоках 121 и 122. Здесь предполагается, что последовательность имеет 16 раундов блочного шифра, например, как в DES. Таблица на Фигуре 5 показывает примерную последовательность раундов для блока 121 и 122. В показанном примере раунды блочного шифра указаны номерами, буквы обозначают фиктивные раунды. Штрих обозначает инверсию.

Следует отметить, что на Фигуре 5a итоговый раунд блочного шифра, раунд 16, не совмещен в двух последовательностях. Для блочного шифратора 121 итоговый раунд блочного шифра имеет индекс 22. Для блочного шифратора 122 итоговый раунд блочного шифра имеет индекс 24. Эти два индекса разные. Следует также отметить, что индекс раунда рядом с последним раундом, в этом случае раунд 15, также не совмещен, имея индекс 21 и 23 соответственно. Изобретатели также обнаружили, что раунд рядом с последним раундом уязвим к DFA, особенно в случае DES и triple DES. Последовательности раундов включают в себя фиктивные раунды. За некоторыми из фиктивных раундов непосредственно следует их инверсия. Например, фиктивный раунд "c" с индексом 14. Последовательность также включает в себя шаблоны, такие как b b' a', например, первый фиктивный раунд, второй фиктивный раунд, за которыми следует инверсия второго фиктивного раунда и инверсия первого фиктивного раунда.

В примере по Фигуре 5a, итоговые результаты первого и второго блочных шифров являются одинаковыми. В варианте осуществления, результаты итоговых раундов первого и второго блочных шифров совместно кодируются и должны предпочтительно не раскрывать или раскрывать немного информации атакующему. Хотя потенциальный риск состоит в том, что совместное кодирование двух идентичных значений может коррелировать с итоговым выходом всей системы. При усовершенствованной атаке, атакующий должен запустить систему много раз и идентифицировать все промежуточные данные, которые коррелируют с итоговым результатом. Это может в свою очередь раскрыть размещение в табличной сети, где вычисляются итоговый (фиктивный) раунд первого и второго блочных шифров. Это в общем нежелательно, если атакующий имеет доступ к этой информации.

Чтобы улучшить защиту, может быть использована мера, описанная со ссылкой на Фигуру 5b ниже. В действительности, в некоторых случаях, может быть предпочтительно более слабое кодирование, например, из-за конкурирующих требований ресурсов, в таких случаях вариант осуществления ниже может также быть полезным. Фигура 5b, как и Фигура 5a, показывает последовательность раундов блочного шифра вместе с фиктивными раундами.

Как на Фигуре 5a, в варианте осуществления по Фигуре 5b, итоговые раунды первого и второго блочного шифра размещены так, что они не совмещены. Обратимся к результату итогового раунда первого и второго блочного шифра как . Шифрованный текст вычисляется в обоих ветках, т.е., в первом и втором блочном шифре, но не совмещенных, не в одном и том же раунде. Как только вычислен, в каждой ветке совершается дополнительное нетривиальное вычисление, например, несколько дополнительных раундов DES или AES, со случайным ключом, приводя в результате к шифрованному тексту . Разница с Фигурой 5a состоит в том, что фиктивные раунды, следующие за итоговыми раундами, не сбалансированы. В примере по Фигуре 5b, блок 121 приспособлен для исполнения четырех дополнительных фиктивных раундов, и блок 122 для исполнения двух дополнительных фиктивных раундов. Фиктивные раунды выбираются так, чтобы блок 121 и 122 исполняли, в итоге, одинаковое число раундов. Кроме того, фиктивные раунды выбираются так, чтобы, при одном и том же входе, они выдавали один и тот же выход. В примере по Фигуре 5b фиктивный раунд либо инвертируется в том же блоке (например, фиктивные раунды d и d' в блоке 121), либо дублируется в другом блоке (например, фиктивные раунды g). Следует отметить, что фиктивные раунды не сбалансированы. Если раунд 26 на Фигуре 5b, использовал g', а не g, система будет сбалансирована, и оба будут выдавать шифрованный текст , как на Фигуре 5a, но фактически оба выдают другой шифрованный текст . Следует отметить, что раунд 26 может быть опущен, или заменен другим фиктивным раундом. Также возможно больше фиктивных раундов. Другой шифрованный текст может быть рассматриваться как шифрованная версия правильного шифрованного текста , в случае по Фигуре 5b как .

Посредством использования фиктивных раундов, вычисление или совмещенных. Таким образом, если не возникли неисправности, оба блока выдают одинаковое значение . Затем в первом блоке 130 управления, который следует далее, разность (например XOR, и т.д.) берется из двух веток. Если неисправностей не возникло, разность будет составлять 0, как на Фигуре 5a. Вспомогательный блочный шифр 142 действует в отношении значения сравнения, вычисляя вычисленное значение управления как ранее. В маскирующем блочном шифре 141 не сбалансированные фиктивные раунды инвертируются в начале маскирующего блочного шифра 141 как новые фиктивные раунды. Это в примере по Фигуре 5b, маскирующий блочный шифр 141 может начаться с двух фиктивных раундов g'. Фиктивные раунды, вставленные в начале маскирующего блочного шифра 141, выбираются так, чтобы в конце вставленных фиктивных раундов получался шифрованный тест , например, посредством инвертирования фиктивных раундов, которые возникают после итоговых раундов блочного шифра, которые вычисляются , либо в блоке 121, либо в блоке 122.

Дополнительные фиктивные раунды предотвращают то, что шифрованный текст возникает при совместном кодировании. Совместное кодирование в конце блоков 121 и 122 гораздо меньше коррелируется из-за дополнительных фиктивных раундов (например, фиктивного раунда g). Хотя шифрованный текст все равно возникает при вычислениях, например, после раундов 22 и 24 в блоках 121 и 122, так он не кодируется совместно сам с собой, так возможная корреляция там гораздо меньше.

В криптографических устройствах по Фигурам 1a-1c и 2, контрмеру DFA можно обойти посредством исполнения одинаковой неисправности в блочном шифраторе 121 и 122. Наличие несовмещенных раундов гарантирует, что две позиции внесения неисправностей не размещаются в одинаковых позициях. Поиск подходящего места для внесения неисправности в реализации типа белый ящик уже является сложной задачей, однако когда нужно найти два таких места, количество работы значительно увеличивается. Атакующий может только понять, что он правильно исполнил неисправность, если он правильно исполнил все неисправности во время одного и того же запуска.

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

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

Совместное кодирование двух переменных делает исполнение атаки DFA на эти переменные более трудной. В варианте осуществления, совместно кодируются несколько или даже все переменные в первом и втором блочном шифраторе или в маскирующем и вспомогательном блочном шифраторе.

Например, обращаясь к Фигуре 5a, переменная в раунде 26 (d') блочного шифратора 121 может быть совместно кодирована с переменной в раунде 26 (j') блочного шифратора 122. Соответствующая переменная возникает в том же относительном размещении. В случае целевых блочных шифраторов соответствующая переменная также осуществляет операции в отношении тех же данных. В случае маскирующего и вспомогательного блочных шифров, соответствующая переменная может осуществлять операции на разных данных.

Совместное кодирование имеет преимущество в том, что изменение переменной будет обычно порождать изменение соответствующей переменной в другом блочном шифре. Например, переменные могут быть кодированы как . Здесь обозначает кодирование. Например, кодирование может быть биективным отображением, выбранным случайным образом, например, выбранным во время компиляции. В варианте осуществления, первый и второй блочные шифраторы действуют в отношении совместно кодированных переменных.

Например, операция , действующая в отношении , и операция , действующая в отношении , могут быть выполнены совместно посредством операции , как следует . В последнем равенстве и обозначают декодирование , так что .

Если неисправность модифицирует , то вероятно влиянию подвергается как , так и , если только не случится неисправность, которая соответствует , для некоторой модифицированной , что маловероятно.

Также первая и вторая функции сравнения могут быть выполнены в отношении кодированных данных. Например, первая функция сравнения может быть поднята в кодированную область как . Последнее может быть реализовано как одиночная таблица.

Кодирование может также включать в себя так называемую переменную состояния. Переменная состояния вносит дополнительные избыточные данные в кодирование. Например, , в которой s является переменной состояния. В частности, переменные могут быть распределены на множественные доли и , так что , суммой может быть операция XOR или арифметическая сумма и т.д. Переменные могут теперь быть кодированы как множественные кодированные доли , причем кодированная доля является кодированием .

Например, криптографическое устройство может содержать хранилище данных, приспособленное для хранения множественных переменных в кодированном виде, в отношении которых криптографическое устройство действует по меньшей мере для вычисления целевых блочных шифров. Криптографическое устройство может дополнительно содержать табличное хранилище, хранящее множественные таблицы соответствия, причем таблица соответствия, принимающая в качестве входа одну или более кодированных долей одной или более переменных, причем множественные таблицы соответствия, вместе образующие табличную сеть, реализующую, по меньшей мере, целевые блочные шифры. В варианте осуществления, переменные маскирующего блочного шифра совместно кодируются с переменными вспомогательного блочного шифра. Множественные таблицы соответствия также, реализующие остальную часть криптографического устройства, например, маскирующий и вспомогательный блочный шифр и первую и вторую функцию управления.

Хранилище данных и таблиц может быть объединено с запоминающим блоком 160. Хранилищем данных может быть энергозависимая память, и хранилищем таблиц, и запоминающим блоком могут быть либо энергозависимая, либо энергонезависимая память.

Совместное кодирование проще, если целевые блочные шифры имеют одинаковую структуру, и аналогично маскирующий и вспомогательный блочный шифр; например, если каждая переменная в первом блочном шифре имеет соответствующую переменную во втором блочном шифре.

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

Табличные сети сами по себе известны из криптографии типа белый ящик. См., например, документ Chow, упомянутый выше, или "White-box cryptography and an AES implementation", также от Chow и др., включенный в настоящий документ посредством ссылки. Табличная сеть принимает один или более входов и выдает один или более выходов. В табличной сети могут быть использованы множественные таблицы соответствия, например, хранящиеся в хранилище таблиц. Таблицы принимают входы непосредственно из входов и/или выходов других таблиц. Таблица может принять одиночный вход, два входа, или более, чем два входа.

Удобный способ для преобразования вычисления в отношении некодированных переменных в вычисление в отношении переменных w, кодированных как множественные доли, что может также быть реализовано как табличная сеть, предоставляется в документе "Higher-Order Masking Schemes for S-boxes", от Carlet и др., включенном в настоящий документ посредством ссылки.

В варианте осуществления, криптографическое устройство содержит

- множественные блочные шифраторы, каждый из которых приспособлен для вычисления целевого блочного шифра по входному сообщению, получая результат блочного шифра ,

- один или более первых блоков управления, приспособленных для принятия в качестве входа двух результатов блочного шифра из результата блочного шифра множественных блочных шифраторов, и

- один или более вторых блоков управления для объединения результатов первых блоков управления для выдачи итогового результата блочного шифра, причем итоговый результат блочного шифра равен результату блочного шифра первого блочного шифратора из множественных блочных шифраторов, только если все результаты блочного шифра из множественных блочных шифраторов равны. В варианте осуществления, число первых блоков управления больше, чем 2. Варианты осуществления этого типа проиллюстрированы на Фигурах 3, 4a и 4b.

Фигура 3 схематично показывает пример варианта осуществления криптографического устройства 200.

Криптографическое устройство 200 содержит первый и второй блочный шифратор 121 и 122 и блок 131 управления, как показано на Фигуре 1b. Криптографическое устройство 200 дополнительно содержит

- третий блочный шифратор 123, приспособленный для вычисления целевого блочного шифра по входному сообщению, получая третье значение , и

- четвертый блочный шифратор 124, приспособленный для вычисления целевого блочного шифра по входному сообщению, получая четвертое значение ,

Если неисправности не возникают, каждый из множественных блочных шифраторов выдает одинаковый результат блочного шифра. Следует отметить, что каждый из блочных шифраторов может использовать разное кодирование. Таким образом, то, что эти значения являются одинаковыми, может быть верифицировано только если кто-то имеет доступ к кодированию, используемому криптографическим устройством. Обычно, атакующему не будет предоставляться доступ к кодированиям, используемым для создания, например, компиляции, криптографического устройства 200.

Криптографическое устройство 200 содержит второй блок 230 управления маскированием, приспособленный для принятия третьего результата блочного шифра и четвертого результата блочного шифра в качестве входа.

Блок 230 управления маскированием содержит первую функцию 240 объединения, маскирующий блочный шифратор 241, вспомогательный блочный шифратор 242 и вторую функцию 250 объединения. Части управления второго блока 230 управления 230 могут отличаться от части управления блока 131 управления маскированием. Например, могут быть использованы другой вспомогательный блочный шифратор 242 и другие первая и/или вторая функции объединения. Однако, маскирующий блочный шифр 241 выбирается такой же как маскирующий блочный шифр 141, так что если неисправность не возникает, каждая из функций управления маскированием, как и 131, так и 230, выдает одинаковое значение, например, первый результат блочного шифра в маскированном виде, . Еще раз, из-за разных кодирований, используемых в блоках 131 и 230 управления маскированием, это может быть непосредственно видно атакующему.

Если блок 230 управления маскированием использует ту же первую функцию объединения, вспомогательный блочный шифр как блок 131 управления маскированием и кодирования, сохраненное значение управления может совместно использоваться между блоками 131 и 230 управления маскированием.

Криптографическое устройство 200 дополнительно содержит третий блок 330 управления маскированием, приспособленный для принятия результата первого блока управления маскированием и результата второго блока управления маскированием в качестве входа, причем третий блок маскирования, использующий инверсию маскирующего блочного шифра первого и второго блока управления маскированием. Следует отметить, что как в криптографическом устройстве 200, так и в криптографическому устройстве 102, за блоком 131 управления следует инверсия маскирующего блочного шифра.

Блок 330 управления маскированием содержит первую функцию 340 объединения, маскирующий блочный шифратор 341, вспомогательный блочный шифратор 342 и вторую функцию объединения 350. Маскирующий блочный шифратор 341 использует инверсию маскирующих блочных шифров 141 и 241 блоков 131 и 230 управления маскированием.

Если неисправность не возникает в любом из блочных шифраторов 121-124, каждый из блоков 131 и 230 управления выдает одинаковый результат блочного шифра в маскированном виде. В этом случае блок 330 управления маскированием отменит маскирование посредством инверсии маскирующего результата блочного шифра, и выдаст результат блочного шифра.

Если любой из блочных шифраторов 121-124 выдает неправильный результат блочного шифра посредством неисправности, соответствующий блок 131 или 230 управления выдаст неправильный маскированный результат блочного шифра. Неправильный маскированный результат блочного шифра вызовет выдачу блоком 330 управления маскированием неправильного результата.

Блоки 230 и 330 управления маскированием могут быть реализованы как указано выше для блока 131 управления маскированием. Например, первой и второй функциями объединения может быть xor, переменные могут быть совместно кодированы, раунды должны быть не совмещены, и т.д.

Предположим, атакующий хочет модифицировать переменную, скажем, полубайт, последнего ввода раунда целевого блочного шифра в одном из блочных шифраторов 121-124. Он хочет сделать заключения в отношении ключа на основе наблюдаемых изменений в выводе шифрованного текста, принятого на выходе блока 330 управления маскированием. Например, в этот момент вывод может быть некодированным, например, если целевой блочный шифр является дешифровкой, скажем, контента, предназначенного для воспроизведения. Чтобы изменения, сделанные атакующим, были значимыми, он должен "попасть" во все четыре блочных шифратора 121-124 одинаковым образом, так что они все превратятся в один и тот же . Если ему не удастся сделать так, вывод не является значимым для атакующего, например, посредством маскирующих блочных шифров.

Предположим, что переменные в двух блочных шифраторах 121 и 122 совместно кодируются, и что раунды блочного шифра не совмещены, например, как на Фигуре 5a. Нижеследующее рассуждение применимо к любому атакующему, использующему DFA в любом раунде, но в целях презентации рассмотрим атакующего, который выбирает ввести неисправности в начале раунда 16 целевого блочного шифра. На Фигуре 5a 26 раундов и чтобы попасть в оба целевых блочных шифра в начале из соответствующих 16-х раундов, он должен внести неисправности в начале раундов 22 и 24. Неисправность, внесенная в раунд 24, должна попасть только в нижнюю ветку, и пропустить верхнюю ветку, неисправность, внесенная в раунд 22, должна только попасть в верхнюю ветку и пропустить нижнюю ветку. Так если неисправности вносятся в кодированные пары полубайтов, есть 2552 возможностей, из которых только 15 дадут одинаковый .

Для блочных шифраторов 123 и 124 применяется аналогичное рассуждение, атакующий снова должен применить изменение в двух раундах, которое попадает в полубайты в точности таким же образом, как в блоке 121 и 122: есть только одна из 2552 возможностей, которая это делает. Так количество работы, требуемой для поиска всех значимых изменений, составляет 2554. Здесь предположим, что атакующий уже знает, какие кодированные полубайты он должен изменить в каких раундах: выяснение этого также является огромной работой, хотя это должно быть сделано только раз.

В вышеуказанной оценке рабочей нагрузки, мы только рассмотрели рабочую нагрузку дифференциального анализа неисправности. По всей видимости, атакующий может попытаться атаковать систему посредством обнаружения всех действительных представителей по каждому полубайту пар (,) или (, 0). Используя эту информацию, рабочая нагрузка атаки DFA будет уменьшена с 2554 до 154. Однако, если совместное кодирование использует множественные доли, например, 16 долей, чтобы кодировать значения, обнаружение полного набора действительных представителей становится невыполнимым.

Фигура 4a схематично показывает пример варианта осуществления криптографического устройства 400.

Криптографическое устройство 400 содержит блочные шифраторы 121-128, выходы которых объединяются в пары посредством первых блоков 431-434 управления. Результаты первых блоков 431-434 управления дополнительно объединяются посредством вторых блоков 435-437 управления, пока не останется только один результат.

Например, блоки 435 и 436 управления могут не использовать маскирующий блочный шифр, и блок 437 управления маскированием может использовать инверсию маскирующих блочных шифров блоков 431-434. В качестве альтернативы, блоки 435 и 436 управления могут использовать дополнительный маскирующий блочный шифр, и блок 437 управления маскированием может использовать инверсию дополнительного маскирующего блочного шифра, за которой следует инверсия маскирующего блочного шифра блока 431-434 управления маскированием.

По мере увеличения числа блочных шифраторов и блоков управления, быстро увеличивается рабочая нагрузка атакующего.

Фигура 4b схематично показывает пример варианта осуществления криптографического устройства 400, в котором число блочных шифраторов не является степенью двух, и более того, в частности является нечетным.

Блочные шифраторы 121-123 объединены посредством блоков 431 и 432 управления. Один из результатов блочного шифра используется как вход для двух разных блоков управления. В варианте осуществления, криптографическое устройство содержит два разных блока управления, которые принимают один из двух входов от одного и того же блочного шифратора. Блоки управления по Фигуре 4b могут быть сконфигурированы, например, как на Фигуре 3.

Обычно, каждое из криптографических устройств, показанных в настоящем документе, содержит микропроцессор (отдельно не показан), который исполняет соответствующее программное обеспечение, хранящееся на устройстве; например, это программное обеспечение можно загрузить и/или хранить в соответствующей памяти, например, энергозависимой памяти, такой как RAM, или энергонезависимой памяти, такой как Flash (отдельно не показана). В качестве альтернативы, устройства могут, в целом или частично, быть реализованы в виде программируемой логики, например, как программируемая пользователем вентильная матрица (FPGA). Устройства могут быть реализованы, в целом или частично, как так называемая специализированная интегральная схема (ASIC), т.е., интегральная схема (IC), настроенная для ее конкретного использования. Например, схемы могут быть реализованы в виде CMOS, например, с использованием языка описания аппаратных средств, такого как Verilog, VHDL и т.д.

В варианте осуществления, криптографическое устройство содержит первую схему блочного шифра, вторую схему блочного шифра и первую схему управления. Устройство может содержать дополнительные схемы, например, первую и/или вторую схему сравнения, схему вспомогательного блочного шифра, схему маскирующего блочного шифра; эти схемы могут содержаться в первой схеме управления. Устройство может содержать дополнительную схему блочного шифра, и т.д. Схемы реализуют соответствующие блоки, описанные в настоящем документе. Схемами могут быть процессорная схема и схема хранения, причем процессорная схема, исполняющая инструкции, представленные в электронном виде в схемах хранения. Схемами могут также быть FPGA, ASIC или подобные.

Фигура 6 показывает схематичные представления последовательностей операций, которые иллюстрируют криптографический способ 600 для вычисления целевого блочного шифра по входному сообщению 110. Способ 600 содержит

- вычисление 610 целевого блочного шифра по входному сообщению, получая первый результат блочного шифра ,

- вычисление 620 целевого блочного шифра по входному сообщению, получая второй результат блочного шифра , и

- использование 630 первого результата блочного шифра и второго результата блочного шифра в качестве входа при первом действии управления.

Действие управления проиллюстрировано схемой последовательности операций 601. Действие управления принимает в качестве входа первое значение и второе значение и выдает первое значение, только если первое значение и второе значение равны. Действие управления 601 содержит

- объединение 631 первого значения и второго значения посредством применения первой функции объединения 140 к первому значению и второму значению, получая значение сравнения, причем вышеуказанная функция объединения равна предварительно определенному значению, например, 0 или , только если первое значение и второе значение равны, и

- вычисление 632 вспомогательного блочного шифра 142, по значению сравнения, получая вычисленное значение управления , и

- объединение 633 первого значения, вычисленного значения управления и сохраненного значения управления посредством применения второй функции объединения, причем вышеуказанная вторая функция объединения выдает первое значение, только если вычисленное значение управления равняется сохраненному значению управления .

Возможны многие разные способы исполнения способа, которые будут понятны специалисту в данной области техники. Например, порядок этапов может варьироваться или некоторые этапы могут исполняться параллельно. Более того, между этапами могут быть вставлены другие этапы способов. Вставленные этапы могут представлять усовершенствования способа, такие как описаны в настоящем документе, или могут не относиться к способу. Например, этапы 610 и 620 могут исполняться, по меньшей мере частично, параллельно. Более того, заданный этап может не завершиться полностью до того, как начинается следующий этап.

Способ согласно изобретению может исполняться с использованием программного обеспечения, которое содержит инструкции для предписания процессорной системе выполнить способ 600. Программное обеспечение может только включать в себя те этапы, которые осуществляются конкретным подобъектом системы. Программное обеспечение может храниться на подходящем носителе информации, таком как жесткий диск, floppy-диск, память, оптический диск и т.д. Программное обеспечение может быть отправлено как сигнал по проводу, или беспроводным образом, или с использованием сети передачи данных, например, Интернета. Программное обеспечение может быть сделано доступным для загрузки и/или для удаленного использования на сервере. Способ согласно изобретению может быть исполнен с использованием битового потока, приспособленного для конфигурирования программируемой логики, например, программируемой пользователем вентильной матрицы (FPGA), для выполнения способа.

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

Фигура 7a показывает компьютерно-читаемый носитель 1000, имеющий записываемую часть 1010, содержащую компьютерную программу 1020, причем компьютерная программа 1020, содержащая инструкции для предписания процессорной системе выполнять криптографический способ, согласно варианту осуществления. Компьютерная программа 1020 может быть осуществлена на компьютерно-читаемом носителе 1000 как физические отметки или посредством намагниченности компьютерно-читаемого носителя 1000. Однако, любой доступный подходящий вариант осуществления также возможен. Кроме того, будет понятно, что хотя компьютерно-читаемый носитель 1000 показан здесь как оптический диск, компьютерно-читаемым носителем 1000 может быть любой подходящий компьютерно-читаемый носитель, такой как жесткий диск, твердотельная память, flash-память и т.д., и может быть незаписываемым или записываемым. Компьютерная программа 1020 содержит инструкции для предписания процессорной системе выполнить вышеуказанный криптографический способ.

Фигура 7b показывается в схематичном представлении процессорной системы 1140 согласно варианту осуществления. Процессорная система содержит одну или более интегральных схем 1110. Архитектура одной или более интегральных схем 1110 схематично показана на Фигуре 7b. Схема 1110 содержит блок 1120 обработки, например, CPU, для выполнения компонентов компьютерной программы для исполнения способа согласно варианту осуществления и/или реализации ее модулей или блоков. Схема 1110 содержит память 1121 для хранения программного кода, данных, и т.д. Часть памяти 1121 может быть только для чтения. Схема 1110 может содержать элемент 1150 связи, например, антенну, соединители, или и то, и другое, и подобное. Схема 1110 может содержать выделенную интегральную схему 1122 для выполнения части или всей обработки, описанной в способе. Процессор 1120, память 1121, выделенная IC 1122 и элемент 1150 связи могут быть соединены друг с другом посредством межсоединения 1130, скажем, шины. Процессорная система 1110 может быть приспособлена для контактной и/или бесконтактной связи, с использованием антенны и/или соединителей, соответственно.

Следует отметить, что вышеупомянутые варианты осуществления иллюстрируют скорее не ограничение данного изобретения, и что специалисты в данной области техники будут иметь возможность проектирования множества альтернативных вариантов осуществления.

В формуле изобретения, любые ссылочные позиции, помещенные в скобках, не следует толковать в качестве ограничения формулы изобретения. Использование глагола "содержать" и его спряжения не исключают присутствия элементов или этапов отличных от тех, которые указаны в формуле изобретения. Указание единственного числа элемента не исключает присутствия множества таких элементов. Данное изобретение может быть реализовано посредством аппаратных средств, содержащих несколько отдельных элементов, и посредством соответствующим образом запрограммированного компьютера. В пунктах формулы изобретения, относящихся к устройству, перечисляющих некоторые средства, некоторые из этих средств могут быть осуществлены одним и тем же элементом аппаратных средств. Сам факт, что некоторые меры перечислены в обоюдно разных зависимых пунктах формулы изобретения, не указывает на то, что сочетания этих мер нельзя использовать с пользой.

В формуле изобретения ссылки в скобках ссылаются на ссылочные обозначения на чертежах вариантов осуществления или на формулы вариантов осуществления, таким образом увеличивая разборчивость формулы изобретения. Эти ссылки не должны толковаться как ограничивающие формулу изобретения.

Список ссылочных обозначений:

100, 101, 102 Криптографическое устройство
110 Входное сообщение
121-128 Блочные шифраторы
121 Первый блочный шифратор
122 Второй блочный шифратор
123 Третий блочный шифратор
124 Четвертый блочный шифратор
130 Первый блок управления
131 Первый блок управления маскированием
135 Дополнительный блочный шифратор
140, 240, 340 Первая функция объединения
141, 241, 341 Маскирующий блочный шифр
142, 242, 342 Вспомогательный блочный шифр
150, 250, 350 Вторая функция объединения
160 Запоминающий блок
200 Криптографическое устройство
230 Второй блок управления маскированием
330 Третий блок управления
330 Третий блок управления маскированием
400 Криптографическое устройство
431-434 Первый блок управления
435-437 Второй блок управления
Результат блочного шифра
Сохраненное значение управления
Вычисленное значение управления
Целевой блочный шифр
Маскирующий блочный шифр
Вспомогательный блочный шифр

1. Криптографическое устройство (100), приспособленное для вычисления целевого блочного шифра по входному сообщению (110), причем устройство содержит:

первый блочный шифратор (121), выполненный с возможностью вычислять целевой блочный шифр по входному сообщению, получая первый результат блочного шифра (),

второй блочный шифратор (122), выполненный с возможностью вычислять целевой блочный шифр по входному сообщению, получая второй результат блочного шифра (),

первый блок управления (130), выполненный с возможностью принятия первого результата блочного шифра и второго результата блочного шифра в качестве входа, при этом блок управления принимает в качестве входа первое значение и второе значение и выдает первое значение, только если первое значение и второе значение равны, причем блок управления выполнен с возможностью:

- объединять первое значение и второе значение посредством применения первой функции объединения (140) к первому значению и второму значению, получая значение сравнения (), причем функция объединения равна предварительно определенному значению (), только если первое значение и второе значение равны,

- вычислять вспомогательный блочный шифр (142, ) по значению сравнения, получая вычисленное значение управления , и

- объединять (150) первое значение, вычисленное значение управления и сохраненное значение управления посредством применения второй функции объединения, причем вторая функция объединения выдает первое значение, только если вычисленное значение управления равно сохраненному значению управления .

2. Криптографическое устройство по п. 1, в котором первым блоком управления является блок управления маскированием, причем блок управления маскированием вычисляет маскирующий блочный шифр (141, ) по первому значению, таким образом получая первое значение в маскированном виде, причем вторая функция объединения применяется в отношении первого значения в маскированном виде, при этом блок управления маскированием выдает первое значение в маскированном виде, только если первое значение и второе значение равны.

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

4. Криптографическое устройство по п. 2, содержащее

третий блочный шифратор (123), выполненный с возможностью вычислять целевой блочный шифр по входному сообщению, получая третье значение (),

четвертый блочный шифратор (124), выполненный с возможностью вычислять целевой блочный шифр по входному сообщению, получая четвертое значение (),

второй блок управления маскированием (230), выполненный с возможностью принятия третьего результата блочного шифра и четвертого результата блочного шифра в качестве входа, причем второй маскирующий блок использует тот же маскирующий блочный шифр, что и первый блок управления маскированием,

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

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

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

7. Криптографическое устройство по п. 6, при этом последовательность раундов в целевом блочном шифре в первом или втором блочном шифраторе содержит фиктивный раунд и инверсию этого фиктивного раунда.

8. Криптографическое устройство по п. 6 или 7, при этом первая переменная раунда в последовательности целевого блочного шифра в первом блочном шифраторе совместно кодируется с соответствующей второй переменной в том же раунде в последовательности целевого блочного шифра во втором блочном шифраторе.

9. Криптографическое устройство по п. 8, при этом совместное кодирование первой и второй переменных распределяется на множественные доли.

10. Криптографическое устройство по любому из предыдущих пунктов, содержащее:

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

множественные первые блоки управления, выполненные с возможностью принятия в качестве входа двух результатов блочного шифра из результатов блочного шифра множественных блочных шифраторов,

один или более вторых блоков управления для объединения результатов множественных первых блоков управления для выдачи итогового результата блочного шифра, причем итоговый результат блочного шифра равен результату блочного шифра первого блочного шифратора из множественных блочных шифраторов, только если все результаты блочного шифра множественных блочных шифраторов равны.

11. Криптографическое устройство по любому из предыдущих пунктов, при этом

первой функцией объединения является исключающее ИЛИ (XOR) для первого значения и второго значения, или

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

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

12. Криптографическое устройство по любому из предыдущих пунктов, при этом

второй функцией объединения является исключающее ИЛИ (XOR) для первого значения или маскированного первого значения, вычисленного значения управления и сохраненного значения управления ,

по меньшей мере часть второй функции объединения образована посредством суммы по меньшей мере части первого значения или маскированного первого значения, по меньшей мере части вычисленного значения управления минус по меньшей мере часть сохраненного значения управления ,

по меньшей мере часть второй функции объединения образована посредством суммы по меньшей мере части первого значения или маскированного первого значения, по меньшей мере части сохраненного значения управления минус по меньшей мере часть вычисленного значения управления ,

по меньшей мере часть второй функции объединения образована посредством применения таблицы соответствий к по меньшей мере части первого значения или маскированного первого значения, по меньшей мере части вычисленного значения управления и по меньшей мере части сохраненного значения управления , причем таблица соответствий дает по меньшей мере часть первого значения или маскированного первого значения, если по меньшей мере часть вычисленного значения управления и по меньшей мере часть сохраненного значения управления равны.

13. Криптографическое устройство по любому из предыдущих пунктов, при этом первый блочный шифратор, второй блочный шифратор и первый блок управления реализованы как одна или более табличных сетей.

14. Криптографический способ (600) для вычисления целевого блочного шифра по входному сообщению (110), содержащий этапы, на которых:

вычисляют (610) целевой блочный шифр по входному сообщению, получая первый результат блочного шифра (),

вычисляют (620) целевой блочный шифр по входному сообщению, получая второй результат блочного шифра (),

используют (630) первый результат блочного шифра и второй результат блочного шифра в качестве входа при первом действии управления, при этом первое действие управления принимает в качестве входа первое значение и второе значение и выдает первое значение, только если первое значение и второе значение равны, причем данное действие управления содержит этапы, на которых:

- объединяют (631) первое значение и второе значение посредством применения первой функции объединения (140) к первому значению и второму значению, получая значение сравнения (), причем функция объединения равна предварительно определенному значению (), только если первое значение и второе значение равны,

- вычисляют (632) вспомогательный блочный шифр (142, ) по значению сравнения, получая вычисленное значение управления , и

- объединяют (633) (150) первое значение, вычисленное значение управления и сохраненное значение управления посредством применения второй функции объединения, причем вторая функция объединения выдает первое значение, только если вычисленное значение управления равно сохраненному значению управления .



 

Похожие патенты:

Изобретение относится к вычислительной технике. Технический результат заключается в повышении производительности процесса шифрования.

Изобретение относится к вычислительной технике. Технический результат заключается в повышении производительности процесса шифрования.

Группа изобретений относится к области вычислительной техники и может быть использована для защиты программного обеспечения от взлома. Техническим результатом является повышение защищенности.

Изобретение относится к конструкции интегральных электронных схем. Технический результат – повышение уровня гибкости при развертывании интегральных схем специального назначения в системах проверки доказательства выполнения работы.

Изобретение относится к конструкции интегральных электронных схем. Технический результат – повышение уровня гибкости при развертывании интегральных схем специального назначения в системах проверки доказательства выполнения работы.

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

Группа изобретений относится к вариантам системы удаленного бесключевого входа для транспортного средства и брелоку для ключей для данной системы. Система содержит брелок для ключей и процессор транспортного средства.

Группа изобретений относится к области вычислительной техники и может быть использована для выполнения арифметики с обфускацией в коммутативном кольце. Техническим результатом является повышение защищенности.

Изобретение относится к области криптографии. Техническим результатом является повышение криптозащиты информации.

Изобретение относится к области преобразования двоичной информации при ее хранении и передаче. Техническим результатом является обеспечение многопоточной обработки информации для ее последующей передачи и хранения.

Изобретение относится к вычислительной технике. Технический результат заключается в повышении надежности генерирования криптограмм.

Изобретение относится к области передачи цифровой информации. Технический результат заключается в повышении надежности шифрования данных за счет одновременного выполнения двух криптографических алгоритмов.

Изобретение относится к вычислительной технике. Технический результат заключается в повышении производительности процесса шифрования.

Группа изобретений относится к области вычислительной техники и может быть использована для выполнения запутанных арифметических действий. Техническим результатом является повышение защищенности.

Изобретение относится к области вычислительной техники для аутентификации пользователя. Технический результат заключается в повышении эффективности аутентификации пользователя.

Группа изобретений относится к средствам связывания аутентификации абонента и аутентификации устройства. Технический результат – повышение безопасности связи.

Изобретение относится к области средств для управления ключевой информацией. Техническим результатом является предотвращение недобросовестной регистрации третьим лицом, не имеющим на то разрешения, услуги по использованию транспортного средства.

Группа изобретений относится к области вычислительной техники и может быть использована для защиты программного обеспечения от взлома. Техническим результатом является повышение защищенности.

Изобретение относится к конструкции интегральных электронных схем. Технический результат – повышение уровня гибкости при развертывании интегральных схем специального назначения в системах проверки доказательства выполнения работы.

Изобретение относится к области обнаружения вредоносных файлов. Техническим результатом является снижение количества ошибок первого и второго родов при обнаружении вредоносных файлов.

Изобретение относится к способу передачи данных, реализованному в модуле беспроводной передачи/приема (WTRU). Технический результат заключается в обеспечении передачи данных восходящей линии связи от модуля WTRU в сеть.

Изобретение относится к области вычислительной техники. Технический результат заключается в защите от криптографических атак по побочным каналам. Технический результат достигается за счёт вычисления целевого блочного шифра по входному сообщению с получением первого и второго результатов блочного шифра, использования первого и второго результатов блочного шифра в качестве входа при первом действии управления, включающего объединение первого и второго значений посредством применения первой функции объединения к первому и второму значениям с получением значения сравнения, вычисление вспомогательного блочного шифра по значению сравнения с получением вычисленного значение управления, объединение первого значения, вычисленного значения управления и сохраненного значения управления посредством применения второй функции объединения, причем вторая функция объединения выдает первое значение, только если вычисленное значение управления равно сохраненному значению управления. 2 н. и 12 з.п. ф-лы, 7 ил.

Наверх