КРИПТОГРАФИЧЕСКАЯ СИСТЕМА И СПОСОБ Российский патент 2019 года по МПК H04L9/00 

Описание патента на изобретение RU2710670C2

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

Изобретение относится к криптографической системе и способу.

УРОВЕНЬ ТЕХНИКИ ИЗОБРЕТЕНИЯ

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

"White-Box Cryptography and an AES Implementation", авторов S. Chow, P.A. Eisen, H. Johnson, и P.C. van Oorschot, опубликованная в: Proceeding SAC 2002 Revised Papers from the 9th Annual International Workshop on Selected Areas in Cryptography, pages 250-270, Springer-Verlag London, UK раскрывает способ, называемый криптографией "белого ящика" в котором, ключ распространяется на одну или более таблиц поиска, которые являются неотъемлемой частью реализации шифрования. Входные данные и выходные данные указанных таблиц поиска шифруются, возможно, с использованием различных кодировок, чтобы затруднить понимание этапов процесса, которые представляют таблицы поиска.

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

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

блок сообщений для обеспечения первого представления сообщения, в котором первое представление сообщения является представлением сообщения;

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

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

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

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

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

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

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

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

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

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

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

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

Согласно другому аспекту представляется способ криптографической обработки. Способ включает в себя:

предоставление первого представления сообщения, где первое представление сообщения является представлением сообщения;

предоставление представления ключа, где представление ключа является шифрованным представлением первого ключа первого криптографического алгоритма и второго ключа второго криптографического алгоритма, где первый криптографический алгоритм отличается от второго криптографического алгоритма и

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

В другом аспекте предоставляется способ обеспечения системы для криптографической обработки. Способ включает в себя:

предоставление блока для обеспечения первого представления сообщения, где первое представление сообщения является представлением сообщения;

предоставление блока для обеспечения представления ключа, где представление ключа является шифрованным представлением первого ключа первого криптографического алгоритма и второго ключа второго криптографического алгоритма, где первый криптографический алгоритм отличается от второго криптографического алгоритма;

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

сохранение в тайне, по меньшей мере, части второго алгоритма.

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

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

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

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

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

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

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

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

Данные и другие аспекты изобретения очевидны из описания и будут разъяснены со ссылкой на варианты осуществления изобретения, описанные ниже.

ФИГ. 1 является структурной схемой системы для криптографической обработки.

ФИГ. 2 является блок-схемой способа криптографической обработки.

ФИГ. 3 является блок-схемой способа предоставления криптографических систем.

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

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

На ФИГ. 1 показан пример системы для криптографической обработки. Система включает в себя блок сообщений 1, который конфигурируется для предоставления представления сообщения 3. Например, представление сообщения 3 является зашифрованным сообщением. Блок сообщений 1 может быть сконфигурирован для приема или получения, представленного сообщения из внешнего источника, например, с использованием коммуникационной и/или технологии хранения, известной в данной области техники как таковой. Кроме того, система включает в себя блок ключей 2. Блок ключей 2 конфигурируется для предоставления представления ключа 4. Данное представление ключа 4 является зашифрованным представлением первого ключа первого криптографического алгоритма и второго ключа второго криптографического алгоритма.

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

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

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

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

Блок сообщений 7 предоставляет данное промежуточное представление сообщения 6 для блока этапов 10. Блок этапов 10 выполняет второй этап обоих криптографических алгоритмов и в результате это требует выходных данных первого этапа первых криптографических алгоритмов и выходных данных первого этапа второго криптографического алгоритма. Данная информация предоставляется блоком сообщений 7 в зашифрованном виде с помощью промежуточного представления сообщения 6. Кроме того, блоку этапов 10 могут потребоваться ключи для каждого криптографического алгоритма, например, итерационные ключи. Данные ключи могут предоставляться блоком ключей 2 в форме представления ключа 9. Представление ключа 9 представляет указанные (итерационные) ключи в зашифрованном виде. В некоторых случаях представление ключа 9 формируется блоком этапов 5 и передается блоку ключей 2.

Блок этапов 10 выводит дополнительное промежуточное представление сообщения 11. Данное промежуточное представление сообщения 11 представляет выходные данные второго этапа первого криптографического алгоритма и второго этапа второго криптографического алгоритма.

Как в общем случае указано точками 21, дополнительный блок сообщений и блок этапов может предоставляться для реализации следующих этапов обоих криптографических алгоритмов. Данные этапы могут быть реализованы таким же способом, как блок сообщений 7 и блок этапов 2. Кроме того, блок ключей 2 может предоставлять представление ключа 9 и представление ключа 14 в качестве входных данных блоку этапов 10 и блоку этапов n. Например, указанные представления ключа 9, 14 могут включать в себя итерационные ключи для обоих алгоритмов в зашифрованном виде. Конечно, фактическое содержание каждого блока может различаться, поскольку они реализуют этапы первого криптографического алгоритма и этапов второго криптографического алгоритма. Однако способ в котором этапы двух алгоритмов объединяются и способ в котором промежуточные результаты шифруются с помощью, например, биекций является тем же самым.

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

Блок проверки достоверности 17 выполняет проверку конечного представления сообщения 16. Данная проверка выполняется на основе выходных данных последнего этапа второго криптографического алгоритма, который доступен в зашифрованном виде в конечном представлении сообщения. Второй криптографический алгоритм, реализованный с помощью блока этапов 5, 10, 15, конфигурируется для взаимодействия с блоком проверки достоверности таким образом, что проверка успешна для заранее заданного набора вторых ключей и оказывается неудачной для другого заранее заданного набора вторых ключей. Если набор достоверных ключей (для которых проверка была успешной) мал по сравнению с набором всех возможных ключей, злоумышленнику затруднительно угадать достоверный ключ. В частности, трудно угадать представление ключа 4, который работает в системе. Проверка может быть сделана несколькими способами. Таким образом, имеется несколько различных возможностей того, как реализовать блок проверки достоверности 17.

В первом примере блок проверки достоверности 17 получает представление сообщения 3 (проиллюстрировано стрелкой 19) и выполняет сравнение представления сообщения 3 и выходных данных второго криптографического алгоритма. В данном случае, блок проверки достоверности 17 может быть сконфигурирован для доставки выходных данных первого криптографического алгоритма, возможно зашифрованного с помощью биекции, как описано выше, как обработанное сообщение 18, если сравнение имеет подходящий результат. Если сравнение не имеет подходящего результата, блок проверки достоверности 17 может быть сконфигурирован для доставки сообщения ошибки в качестве обработанного сообщения 18. Данное сообщение ошибки может, например, состоять из случайных битов или может включать в себя заранее заданную строку. Данное сравнение и формирование подходящих выходных данных (обработанного сообщения 18) может быть реализовано, например, с помощью таблицы поиска или сети таблиц поиска. Таблица поиска может отображать комбинацию представления сообщения 3 и конечного представления сообщения 16 на соответствующее обработанное сообщение 18.

Во втором примере, блок проверки достоверности 17 предоставляет выходные данные второго алгоритма блоку сообщений 1, как показано стрелкой 20. Блок сообщений 1 может быть сконфигурирован для объединения данных, полученных от блока проверки достоверности 17 со следующим блоком входных данных. Указанный следующий блок входных данных может обрабатываться системой тем же способом, как описано выше. То есть, после того как блок сообщений 1 объединил следующий блок входных данных с выходными данными второго алгоритма, результат данного объединения предоставляется как представление сообщения 3 блоку этапов 5 и так далее. Другие возможности передачи обратно выходных данных второго алгоритма следующему блоку данных будут очевидны специалисту в данной области техники, на основе схем цепочек шифрованных блоков, известных в данной области техники как таковые. Блок проверки достоверности 17, таким образом, может быть сконфигурирован для разделения выходных данных первого криптографического алгоритма от выходных данных второго криптографического алгоритма. Выходные данные первого криптографического алгоритма могут выводиться в качестве обработанного сообщения 18. Обработанное сообщение 18 может быть зашифровано с использованием биекции, как описано выше. Хотя обработанное сообщение 18 может включать в себя выходные данные первого криптографического алгоритма независимо от проверки, если выходные данные второго криптографического алгоритма не являются ожидаемыми, криптографическая обработка следующего блока данных будет неуспешной вследствие того факта, что выходные данные второго криптографического алгоритма объединяется со следующим блоком данных. Примером способа объединения является объединение с помощью операции XOR.

Блок этапов 5, 10, 15 может быть реализован с помощью таблиц поиска. Например, соответствующий блок этапов включает в себя блок поиска для поиска второго зашифрованного представления в таблице поиска или сети таблиц поиска, где таблица поиска или сеть таблиц поиска включает в себя отображение из комбинаций первых представлений сообщения и представлений ключа с соответствующими вторыми представлениями сообщения. Указанные таблицы поиска могут иметь свои закодированные входные данные и выходные данные (зашифрованные), например, с помощью случайной биекции. Случайная биекция может изменяться после каждой операции поиска. Таким образом, как представление ключа(ключей), так и представления сообщения могут быть зашифрованы с помощью случайных биекций. Такая процедура называется реализацией "белого ящика". Реализация "белого ящика" операции известна сама по себе от Chow с соавторами.

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

Как описано в вышеприведенном примере, первый криптографический алгоритм может включать в себя первую последовательность этапов, а второй криптографический алгоритм может включать в себя вторую соответствующую последовательность этапов. Этапы обоих алгоритмов могут быть идентичными, похожими или могут, в противном случае, отличаться. Например, первый алгоритм может включать в себя этап применения XOR в случае, когда второй алгоритм может включать в себя этап применения блока подстановки. Блок сообщений 7, 12 конфигурируется для предоставления представления сообщения его блоку этапов 10, 15, чье представление сообщения является зашифрованным представлением результата предыдущего этапа первого криптографического алгоритма и результатом предыдущего этапа второго криптографического алгоритма, полученного из предыдущего этапа блока. Например, блок этапов 5 является блоком этапов, выполняющим предыдущий этап в соответствии с этапом, выполненным блоком этапов 10. Последующие этапы криптографических алгоритмов могут выполняться множеством блоков этапов 5, 10, 15.

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

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

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

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

На ФИГ. 2 показан способ криптографической обработки. На этапе 201 показывается первое представление сообщения. Первое представление сообщения является представлением сообщения. На этапе 202 показывается представление ключа. Представление ключа является шифрованным представлением первого ключа первого криптографического алгоритма и второго ключа второго криптографического алгоритма, где первый криптографический алгоритм отличается от второго криптографического алгоритма. На этапе 203 этап первого криптографического алгоритма и этап второго криптографического алгоритма выполняется на основе первого представления сообщения и представления ключа, для получения второго представления сообщения. Второе представление сообщения является зашифрованным представлением результата этапа первого криптографического алгоритма и результата этапа второго криптографического алгоритма. Способ может быть реализован, например, с помощью компьютерной программы.

На ФИГ. 3 показан способ предоставления систем для криптографической обработки. На этапе 301 дистрибьютор предоставляет пользователю блок для обеспечения первого представления сообщения. Первое представление сообщения является представлением сообщения. На этапе 302 дистрибьютор предоставляет пользователю блок для обеспечения представления ключа. Представление ключа является зашифрованным представлением первого ключа первого криптографического алгоритма и второго ключа второго криптографического алгоритма, где первый криптографический алгоритм отличается от второго криптографического алгоритма. На этапе 303 дистрибьютор предоставляет блок этапов для выполнения этапа первого криптографического алгоритма и этапа второго криптографического алгоритма на основе первого представления сообщения и представления ключа для получения второго представления сообщения. Второе представление сообщения является зашифрованным представлением результата этапа первого криптографического алгоритма и результата этапа второго криптографического алгоритма. Следует отметить, что этапы 301, 302 и 303 могут быть реализованы посредством предоставления системы, как описано выше в настоящем документе в отношении ФИГ. 1. На этапе 304 дистрибьютор хранит в тайне, по меньшей мере, часть второго алгоритма, таким образом, потенциальный злоумышленник не знает развертки ключа второго алгоритма, затрудняя нахождение альтернативных работающих ключей.

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

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

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

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

Аспект настоящего раскрытия предмета данного изобретения состоит в том, чтобы манипулировать шифром таким образом, что работают только ключи с определенным шаблоном в ключе, сохраняя данный шаблон в секрете. Затем загрузчик будет включать в себя незначительно модифицированный шифр, например, с нестандартным блоком подстановки и данный модифицированный шифр будет правильно дешифровать только подходящие ключи. Например, производитель пакета прикладных программ может ставить условие, что для работы последние четыре бита ключа являются 0101. Он даже может использовать данный механизм, чтобы отличать своих получателей информации, поскольку он мог бы использовать, скажем, шаблон 1001 для другого набора клиентов. Пока шаблон остается секретным, это затрудняет для злоумышленника создание альтернативного достоверного ключа. Однако, когда данная процедура (включая шаблон для достоверных ключей) становится известной, эффективное пространство ключей шифра уменьшается. Для некоторых шифров результирующее пространство ключей могло бы стать настолько малым, что возможен исчерпывающий поиск, и, поэтому, они более не предлагают безопасность, для которой они когда-то были стандартизированы и изначально были встроены в приложение.

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

Это может быть реализовано, например, с использованием технологии виртуальной машины (SVM) и кусочно-эквивалентных шифров. Сначала мы подробно остановимся на последнем, а затем покажем, как данные функции могут применяться в настройке SVM.

Во всем настоящем раскрытии предмета данного изобретения, термин "кусочно-эквивалентный шифр" определяется следующим образом. Шифр A и шифр B называются кусочно-эквивалентными, если существует подпространство пространства всех возможных ключей шифра, так что для всех ключей в данном подпространстве, шифр A и шифр B предоставляют идентичные выходные данные и для всех ключей, не входящих в указанное подпространство, шифр A и шифр B предоставляют различные выходные данные.

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

Рассмотрим шифр C с ключом k. Согласно аспекту раскрытия предмета настоящего изобретения, C смешивается с другим шифром C' таким образом, что C ведет себя корректно, только если C' делает так же. Более формально, шифр C смешивается с другим шифром C', в то время, как ключ k расширяется с помощью ключа k' таким образом, что комбинация C|C' функционально эквивалентна шифру C (то есть, можно выполнить определенную криптографическую операцию с использованием C|C') только, и только если, ключ k' удовлетворяет определенным условиям.

В конкретном примере, для любого текста X,

Уравнение 1:

Теперь можно сконструировать один или несколько шифров Ci, для i=1, …, n с n положительным целым числом, где каждый Ci является кусочно-эквивалентным C'. То есть, имеется подмножество пространства ключей, для которого Ci=C'. Данное подмножество может выбираться по-разному для каждого шифра Ci так, что могут быть сгенерированы ключи, которые будут работать только с определенным шифром Ci (для определенного значения i). Затем дистрибьютор может распространять реализации программного обеспечения данных шифров C|Ci и ключи k|ki, в которых Ci, для i=1, …, n, выбираются кусочно-эквивалентными для C'.

Можно создать шифры C' и Ci, для i=1, …, n, таким образом, чтобы пространство ключей, сформированное возможными ключами k|k' имело свойство оценивать альтернативный ключ, скажем, ka|ka', который удовлетворяет "заданным условиям" уравнения 1, по меньшей мере, так же трудно, как оценивать k из k|ki. Следует обратить внимание на то, что согласно аспекту раскрытия предмета настоящего изобретения, благодаря использованию данного шифра и пространства ключей, исходный шифр не страдает и не становится легче угадывать что-либо.

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

Пусть C|C'k|k'(X) будет декартовым произведением, то есть <Ck(X), C'k'(X)>, то есть удваивается размер вывода данных. Вывод данных <Ck(X), C'k'(X)> может быть уменьшен путем ограничения вывода на Ck(X) если, и только если, вывод C'k'(X) является ожидаемым (то есть, удовлетворяет некоторым условиям).

В этом отношении примером условия является C'k'(X)=X, или в более общем виде, примером условия является то, что C'k'(X) является заранее заданной функцией X. В качестве альтернативы проверка того, удовлетворяет ли C'k'(X) условиям, может быть неявной проверкой, например, использование результата C'k'(X) путем объединения его со следующим блоком данных, к которому применяется криптографическая операция. Такая процедура известна, например, как режим цепочки шифрованных блоков (CBC). Таким образом, результат C'k'(X) может быть использован как временное значение. Результат C'k'(X) может использоваться в качестве сеансового ключа, известным в этой области техники способом. Для злоумышленника трудно угадать для какого (под)ключа выполняются условия, так как C', через смену блоков подстановки, становится "неизвестной" функцией.

Создание кусочно-эквивалентных шифров по отношению к пространству ключей может быть выполнено путем конструирования функций, которые манипулируют материалом ключа кусочно-эквивалентно. И в AES, и в DES одна из функций, которая манипулирует материалом ключа является функцией xor, для которой один аргумент является (итерационным)ключом, который обозначается в данном абзаце как k, а другой аргумент относится к данным/сообщению, которые обрабатываются. Мы могли бы ссылаться на данную функцию как ⊕k. Учитывая, что шифр C' включает в себя операцию ⊕k, то кусочно-эквивалентный шифр Ci, для некоторого i, можно вывести из C', путем создания кусочно-эквивалентной функции для ⊕k. Примером кусочно-эквивалентной функции для ⊕k является:

Следует обратить внимание, что это только пример, в котором ⊗k (x) равно ⊕k для всех значений k, кроме 4. Заметим, что если мы заменим в Ci в итерации только один ⊕k на ⊗k, то данный новый шифр Ci будет функционально эквивалентен C' только, если соответствующий материал (под)ключ равен k. Поскольку развертки ключа являются обратимыми, квалифицированный специалист может определить все ключи k', для которых шифры Ci и C' являются кусочно-эквивалентными.

В реализации безопасной виртуальной машины (SVM), связь между C и Ci может быть полностью скрыта установлением данной связи в пределах одной таблицы. Указанная таблица может содержать кодировки ее входных данных и выходных данных, как известно в данной области техники. Предлагается смотреть, например технологию "белого ящика", известную, например, от Chow с соавторами.

Для достижения данной ситуации каждый этап шифрации Ci может быть объединен с этапом шифрации C. Промежуточный результат этапа может быть закодирован; а именно, информация, относящаяся к входным данным и выходным данным этапа шифрования C может быть смешана с информацией, относящейся к входным данным и выходным данным, соответственно, соответствующего этапа шифрации Ci. Проверка условий на Ci также может выполняться в данном закодированном пространстве, так что злоумышленник не может легко извлечь выходные данные C, если условия не были выполнены. Здесь, данному подходу помогает то, что C' структурно равняется Ci. Аналогично, ключи k и k' смешиваются с помощью шифрования/кодирования и данный подход гарантирует, что злоумышленник не сможет раскрыть, что имеется отношение между битами в объединенном ключе k|k' и битами составляющими ключи k и k', которые он разгадывает. С помощью применения шифрования k и k' данные значения становятся неотделимыми для злоумышленника.

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

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

1. Система для криптографической обработки, включающая в себя:

механизм сообщений (1, 7, 12) для обеспечения первого представления сообщения (3, 6, 11), где первое представление сообщения является представлением сообщения;

механизм ключей (2) для обеспечения представления ключа (4, 9, 14), где представление ключа является шифрованным представлением первого ключа первого криптографического алгоритма и второго ключа второго криптографического алгоритма, где первый криптографический алгоритм отличается от второго криптографического алгоритма;

механизм этапов (5, 10, 15) для выполнения этапа первого криптографического алгоритма и этапа второго криптографического алгоритма на основе первого представления сообщения (3, 6, 11) и представления ключа, для получения второго представления сообщения (6, 11, 16), где второе представление сообщения является шифрованным представлением результата этапа первого криптографического алгоритма и результатом этапа второго криптографического алгоритма.

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

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

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

5. Система по пункту 1, дополнительно включающая в себя механизм проверки достоверности (17) для проверки достоверности представления ключа на основе результата второго криптографического алгоритма.

6. Система по пункту 5, в которой механизм проверки достоверности (17) конфигурируется для сравнения выходных данных второго криптографического алгоритма с входным сообщением.

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

8. Система по пункту 1, в которой механизм этапов (5, 10, 15) скрывается в криптографической реализации "белого ящика".

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

10. Способ криптографической обработки, включающий в себя:

предоставление (201) первого представления сообщения, в котором первое представление сообщения является представлением сообщения;

предоставление (202) представления ключа, в котором представление ключа является шифрованным представлением первого ключа первого криптографического алгоритма и второго ключа второго криптографического алгоритма, где первый криптографический алгоритм отличается от второго криптографического алгоритма и

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

11. Способ предоставления системы для криптографической обработки, включающий в себя:

предоставление (301) механизма для обеспечения первого представления сообщения, в котором первое представление сообщения является представлением сообщения;

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

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

хранение (304) в секрете, по меньшей мере, части второго алгоритма.

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

13. Способ по пункту 12, дополнительно включающий в себя предоставление (306) сообщения с использованием второго ключа, для которого второй криптографический алгоритм первой системы и второй криптографический алгоритм второй системы имеют одинаковый результат, если обе системы имеют доступ к сообщению и предоставление сообщения с использованием второго ключа, для которого второй криптографический алгоритм первой системы и второй криптографический алгоритм второй системы имеют различный результат, если или первая система, или вторая система не имеют доступа к сообщению.

14. Компьютерный программный продукт, включающий в себя команды для выполнения системой обработки для выполнения способа по пункту 10.

Следует иметь в виду, что изобретение также относится к компьютерным программам, в частности, к компьютерным программам на носителе или в носителе, приспособленном для воплощения изобретения на практике. Программа может быть в виде исходного кода, объектного кода, кода промежуточного источника и объектного кода такого, как в частично откомпилированной форме или в любой другой форме, подходящей для использования в реализации способа в соответствии с изобретением. Следует иметь в виду, что такие программы могут иметь много различных архитектурных конструкций. Например, программный код, реализующий функциональность способа или системы в соответствии с изобретением, может быть подразделен на одну или несколько подпрограмм. Специалисту в данной области техники будет понятно множество различных способов распределения функциональности среди указанных подпрограмм. Подпрограммы могут храниться вместе в одном исполняемом файле для создания автономной программы. Такой исполняемый файл может включать в себя исполняемые компьютером команды, например, команды процессора и/или команды интерпретатора (например, команды интерпретатора Java). Альтернативно, одна или несколько, или все подпрограммы могут храниться в, по меньшей мере, одном внешнем библиотечном файле и быть связаны с главной программой либо статически, либо динамически, например, во время выполнения. Главная программа содержит, по меньшей мере, один вызов, по меньшей мере, одной из подпрограмм. Подпрограммы также могут содержать вызовы друг друга. Вариант осуществления изобретения, относящийся к компьютерному программному продукту, включает в себя исполняемые компьютером команды, соответствующие каждому этапу обработки, по меньшей мере, одного из способов, изложенных в настоящем документе. Указанные команды могут быть разделены на подпрограммы и/или храниться в одном или нескольких файлах, которые могут быть связаны статически или динамически. Другой вариант осуществления изобретения, относящийся к компьютерному программному продукту включает в себя исполняемые компьютером команды, соответствующие каждому блоку, по меньшей мере, одной из систем и/или продуктов, указанных в настоящем документе. Данные команды могут быть разделены на подпрограммы и/или храниться в одном или нескольких файлах, которые могут быть связаны статически или динамически.

Носителем компьютерной программы может быть любой объект или устройство, способное переносить программу. Например, носитель может включать в себя носитель информации, такой как ПЗУ, например, CD ROM, или полупроводниковое ПЗУ, или магнитный носитель информации, например, флэш-накопитель или жесткий диск. Кроме того, носитель может быть передающим носителем, таким как электрический или оптический сигнал, который может передаваться через электрический, или оптический кабель, или по радио, или другими средствами. Когда программа воплощена в таком сигнале, носитель может представлять такой кабель, или другое устройство, или средство. В качестве альтернативы, носитель может быть интегральной схемой, в которую встроена программа, причем интегральная схема адаптирована для выполнения или использования при выполнении соответствующего способа.

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

В одном варианте осуществления изобретения система или блок этапов является процессорной системой. Процессорная система включает в себя одну или несколько интегральных схем. Например, схема может включать в себя блок обработки данных, например, ЦП, для выполнения компонентов компьютерной программы для выполнения способа в соответствии с вариантом осуществления изобретения и/или реализации его модулей или блоков; память для хранения программного кода, данных и так далее. Часть памяти может быть только для чтения. Схема может включать в себя коммуникационный элемент, например, антенну, разъемы или и то, и другое, и тому подобное. Схема может включать в себя специализированную интегральную схему для выполнения части или всей обработки, определенной в способе. Процессор, память и дополнительно выделенный IC и коммуникационный элемент могут быть связаны друг с другом через прямое соединение, скажем, шиной. Процессорная система может быть организована для контактной и/или бесконтактной связи с использованием антенны и/или разъемов, соответственно.

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

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

название год авторы номер документа
СКРЫТИЕ ИСПОЛНЕНИЯ ПРОГРАММЫ 2015
  • Шеперс Хендрик Ян Йозеф Хюбертус
  • Гориссен Паулус Матхиас Хюбертус Мехтилдис Антониус
RU2715021C2
Повышение неоднозначности 2016
  • Фигуеира, Хелдер Сильвестре Паива
RU2737917C1
СПОСОБ ОБЕСПЕЧЕНИЯ УКАЗАНИЯ ВРЕМЕНИ И ПОЛОЖЕНИЯ С ПРОВЕРКОЙ ПОДЛИНОСТИ 2011
  • Шасань Оливье
RU2531384C2
СПОСОБЫ И УСТРОЙСТВА ВЫБОРОЧНОГО ШИФРОВАНИЯ ДАННЫХ 2009
  • Массуди Айуб
  • Лефевр Фредерик
RU2505931C2
УСТРОЙСТВО ВИРТУАЛЬНОЙ МАШИНЫ, ИМЕЮЩЕЕ УПРАВЛЯЕМУЮ КЛЮЧОМ ОБФУСКАЦИЮ, И СПОСОБ 2012
  • Денг Мина
  • Гориссен Паулус Матхиас Хюбертус Мехтилдис Антониус
  • Петкович Милан
RU2620712C2
СПОСОБ ОБМЕНА ЗАЩИЩЕННЫМИ ДАННЫМИ 2017
  • Голубев Андрей Анатольевич
  • Лебедев Анатолий Николаевич
RU2659730C1
Способ удаленной загрузки комплекта ключей в смарт-терминал 2019
  • Воронин Игорь Владимирович
  • Видякин Денис Георгиевич
RU2724793C1
Система удаленной загрузки комплекта ключей в смарт-терминал 2019
  • Воронин Игорь Владимирович
  • Видякин Денис Георгиевич
RU2713873C1
СИСТЕМА И СПОСОБ ЗАЩИТЫ ИНФОРМАЦИИ 2018
  • Ма, Баоли
  • Чжан, Вэньбинь
  • Ли, Личунь
  • Лю, Чжэн
  • Инь, Шань
RU2719311C1
ЗАЩИЩЕННОЕ И КОНФИДЕНЦИАЛЬНОЕ ХРАНЕНИЕ И ОБРАБОТКА РЕЗЕРВНЫХ КОПИЙ ДЛЯ ДОВЕРЕННЫХ СЕРВИСОВ ВЫЧИСЛЕНИЯ И ДАННЫХ 2010
  • Аурадкар Рахул В.
  • Д`Суза Рой Питер
RU2531569C2

Иллюстрации к изобретению RU 2 710 670 C2

Реферат патента 2019 года КРИПТОГРАФИЧЕСКАЯ СИСТЕМА И СПОСОБ

Изобретение относится к области передачи цифровой информации. Технический результат заключается в повышении надежности шифрования данных за счет одновременного выполнения двух криптографических алгоритмов. Система для криптографической обработки включает в себя блок сообщений (1, 7, 12) для обеспечения первого представления сообщения (3, 6, 11), где первое представление сообщения является представлением сообщения, блок ключей (2) для обеспечения представления ключа (4, 9, 14), где представление ключа является шифрованным представлением первого ключа первого криптографического алгоритма и второго ключа второго криптографического алгоритма, где первый криптографический алгоритм отличается от второго криптографического алгоритма, блок этапов (5, 10, 15) для выполнения этапа первого криптографического алгоритма и этапа второго криптографического алгоритма на основе первого представления сообщения (3, 6, 11) и представления ключа для получения второго представления сообщения (6, 11, 16). 4 н. и 9 з.п. ф-лы, 3 ил.

Формула изобретения RU 2 710 670 C2

1. Система для криптографической обработки, включающая в себя:

блок сообщений (1, 7, 12) для обеспечения первого представления сообщения (3, 6, 11), в котором первое представление сообщения является представлением сообщения;

блок ключей (2) для обеспечения представления ключа (4, 9, 14), в котором представление ключа является шифрованным представлением первого ключа первого криптографического алгоритма и второго ключа второго криптографического алгоритма, причем первый криптографический алгоритм отличается от второго криптографического алгоритма;

блок этапов (5, 10, 15) для выполнения этапа первого криптографического алгоритма и этапа второго криптографического алгоритма на основе первого представления сообщения (3, 6, 11) и представления ключа для получения второго представления сообщения (6, 11, 16), причем второе представление сообщения является шифрованным представлением результата этапа первого криптографического алгоритма и результата этапа второго криптографического алгоритма.

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

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

4. Система по п. 1, в которой первый криптографический алгоритм включает в себя первую последовательность этапов и второй криптографический алгоритм включает в себя соответствующую вторую последовательность этапов, где блок сообщений (7) конфигурируется для предоставления первого представления сообщения (6), где первое представление сообщения (6) является шифрованным представлением результата предыдущего этапа первого криптографического алгоритма и результата предыдущего этапа второго криптографического алгоритма, полученного из дополнительного блока этапов (5) для выполнения предыдущего этапа первого криптографического алгоритма и предыдущего этапа второго криптографического алгоритма на основе представления сообщения (3) и представления ключа (4).

5. Система по п. 1, дополнительно включающая в себя блок проверки достоверности (17) для проверки достоверности представления ключа на основе результата второго криптографического алгоритма.

6. Система по п. 5, в которой блок проверки достоверности (17) конфигурируется для сравнения вывода второго криптографического алгоритма с входным сообщением.

7. Система по п. 5, в которой блок проверки достоверности (17) конфигурируется для объединения вывода второго криптографического алгоритма с дополнительным первым представлением сообщения (3) в режиме блока шифрования.

8. Система по п. 1, в которой блок этапов (5, 10, 15) скрыт в криптографической реализации "белого ящика".

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

10. Система по п. 9, причем блоки сообщений первой и второй систем сконфигурированы для

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

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

11. Блок этапов (5, 10, 15) для криптографической обработки, причем блок этапов сконфигурирован для

выполнения этапа первого криптографического алгоритма и этапа второго криптографического алгоритма на основе первого представления сообщения (3, 6, 11) и представления ключа для получения второго представления сообщения (6, 11, 16), где второе представление сообщения является шифрованным представлением результата этапа первого криптографического алгоритма и результата этапа второго криптографического алгоритма, где

первое представление сообщения (3, 6, 11) является представлением сообщения, и

представление ключа является шифрованным представлением первого ключа первого криптографического алгоритма и второго ключа второго криптографического алгоритма, причем первый криптографический алгоритм отличается от второго криптографического алгоритма.

12. Способ криптографической обработки, включающий в себя:

предоставление (201) первого представления сообщения, в котором первое представление сообщения является представлением сообщения;

предоставление (202) представления ключа, в котором представление ключа является шифрованным представлением первого ключа первого криптографического алгоритма и второго ключа второго криптографического алгоритма, причем первый криптографический алгоритм отличается от второго криптографического алгоритма, и

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

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

Документы, цитированные в отчете о поиске Патент 2019 года RU2710670C2

WO 2010146139 A1, 23.12.2010
US 20100303231 A1, 02.12.2010
US 20140351911 A1, 27.11.2014
US 20020080972 A1, 27.06.2002
СПОСОБ ОБМЕНА КРИПТОГРАФИЧЕСКИМИ КЛЮЧАМИ МЕЖДУ КОМПЬЮТЕРНЫМ БЛОКОМ ПОЛЬЗОВАТЕЛЯ И СЕТЕВЫМ КОМПЬЮТЕРНЫМ БЛОКОМ 1996
  • Хорн Гюнтер
  • Мюллер Клаус
  • Кесслер Фолькер
RU2175465C2

RU 2 710 670 C2

Авторы

Шеперс, Хендрик Ян Йозеф Хюбертус

Гориссен, Паулус Матхиас Хюбертус Мехтилдис Антониус

Бодландер, Мартен Петер

Гиспен, Вихер Идо-Ян

Даты

2019-12-30Публикация

2015-12-11Подача