RU2279123C2 - Вычислительный модуль и способ выполнения арифметической операции с зашифрованными операндами - Google Patents

Вычислительный модуль и способ выполнения арифметической операции с зашифрованными операндами Download PDF

Info

Publication number
RU2279123C2
RU2279123C2 RU2004121784/09A RU2004121784A RU2279123C2 RU 2279123 C2 RU2279123 C2 RU 2279123C2 RU 2004121784/09 A RU2004121784/09 A RU 2004121784/09A RU 2004121784 A RU2004121784 A RU 2004121784A RU 2279123 C2 RU2279123 C2 RU 2279123C2
Authority
RU
Russia
Prior art keywords
encrypted
operand
encryption
operands
bit
Prior art date
Application number
RU2004121784/09A
Other languages
English (en)
Other versions
RU2004121784A (ru
Inventor
Берндт ГАММЕЛЬ (DE)
Берндт ГАММЕЛЬ
Франц КЛУГ (DE)
Франц КЛУГ
Оливер КНИФФЛЕР (DE)
Оливер КНИФФЛЕР
Original Assignee
Инфинеон Текнолоджиз Аг
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Инфинеон Текнолоджиз Аг filed Critical Инфинеон Текнолоджиз Аг
Publication of RU2004121784A publication Critical patent/RU2004121784A/ru
Application granted granted Critical
Publication of RU2279123C2 publication Critical patent/RU2279123C2/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7223Randomisation as countermeasure against side channel attacks
    • G06F2207/7233Masking, e.g. (A**e)+r mod n
    • G06F2207/7238Operand masking, i.e. message blinding, e.g. (A+r)**e mod n; k.(P+R)

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Storage Device Security (AREA)
  • Image Processing (AREA)

Abstract

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

Description

Настоящее изобретение относится к устройствам обработки данных и, в частности, к устройствам обработки данных, требующим обработки данных или адресов на высоком уровне защищенности, обеспечивающим защиту от физических атак и перехвата.
При вычислении и/или обработке данных, связанных с необходимостью обеспечения защиты, используются микропроцессоры или маркеры доступа или другие устройства обработки данных с высоким уровнем защищенности, обеспечивающим защиту от физических атак и перехвата. Блоки кэш-памяти и буферной памяти, наборы регистров, а также каналы передачи, например, в виде шин, на микропроцессорах, представляют собой регулярные структуры на кристалле, которые легко идентифицировать. Таким образом, они представляют собой предпочтительные точки атаки. Атаки могут состоять в перехвате посредством атак на выводах или в анализе профиля тока.
Методы шифрования позволяют эффективно защищать блоки внешней памяти, блоки буферной памяти и шины, в результате чего, обрабатываемые данные, например, пользовательские данные или программы, перемещаются и сохраняются на всем кристалле, предпочтительно, только в зашифрованном виде.
На фиг.10 показана общая схема вычислительного устройства. Главным блоком вычислительного устройства является арифметико-логическое устройство (АЛУ) 800. Простейшее АЛУ, способное выполнять операцию с двумя операндами, требует двух входных шин А, В (802, 804) и выходной шины Z (806). Входные шины и выходная шина АЛУ 800 присоединены к главной шине F (808). К главной шине (808) обычно также подключены две дополнительные шины D, E (810, 812), причем шина 810 подключена к кэшу М2 (814), который, в свою очередь, подключен к внешней памяти М1 (812) через шину памяти С (816). Кроме того, согласно варианту осуществления, показанному на фиг.10, вычислительное устройство содержит наборы регистров М3 (820), причем каждый набор регистров содержит регистры, в которых могут храниться (первоначально) входные данные АЛУ или выходные данные АЛУ, не подлежащие переносу в кэш 814 или во внешнюю память 818, т.е. не подлежащие загрузке из наборов регистров во внешнюю память до окончания сравнительно долгого вычисления.
В вычислительном устройстве, осуществляющем вычисления, критические с точки зрения обеспечения защищенности, данные шифруются до сохранения в различных блоках памяти М1-М3. Кроме того, во избежание атаки на шинные линии 802, 804, 806, 810, 812 и 816, предпочтительно передавать данные по этим шинным линиям в зашифрованном виде. В этом случае, на двух входах АЛУ предусмотрены две схемы 822, 824 дешифрования для дешифрования операндов, присутствующих на шинах А, В, например, данных или адресов, подлежащих обработке на АЛУ 800, перед их обработкой. Для защиты результата операции АЛУ, на выходе АЛУ 800 предусмотрено устройство 826 шифрования, поэтому на шинах 802, 804, 806 присутствуют зашифрованные данные.
Хотя эта концепция позволяет эффективно подавлять атаки на шинные линии, например, главную шину 808, а также шины 810, 812, 816 памяти, она обладает тем недостатком, что между двумя схемами 822, 824 дешифрования и схемой 826 шифрования присутствуют незащищенные данные открытого текста, поэтому, хотя атакующему труднее выяснить, где в вычислительном устройстве находится АЛУ 800, задача атакующего значительно облегчается, когда он определит местоположения устройств дешифрования, поскольку на выходах устройств 822 и 824 дешифрования присутствуют данные открытого текста.
С другой стороны, данные нужно дешифровать, поскольку операции АЛУ, которые могут представлять собой, например, простые арифметические операции, например, И, ИЛИ, «исключающее или», НЕ-И, НЕ-ИЛИ, НЕ или «сложение», нельзя просто осуществлять над зашифрованными данными, поскольку операции шифрования и дешифрования и простая операция в общем случае не коммутируются, что приводит к искажению результатов. Чтобы, тем не менее, закрыть этот пробел в защите, устройства 822, 824 дешифрования и устройство 826 шифрования обычно предпочитают размещать как можно ближе к АЛУ 800, чтобы линии передачи, по которым идут данные открытого текста, были как можно короче, что позволяет снизить эффективность атаки. Альтернативно, линии передачи, по которым передаются данные открытого текста, можно «скрывать» в кристалле с использованием технологических мер, например, с использованием особых профилей легирования или с использованием совокупности ложных линий, из-за чего атакующему приходится выявлять линии, по которым фактически передаются данные открытого текста, в отличие от ложных линий, по которым передаются только диверсионные, т.е. фальшивые, данные.
Эти традиционные меры защиты вычислительного устройства от атак сталкиваются с той проблемой, что они требуют дополнительных затрат и ограничивают свободу в разработке АЛУ. Ограничение свободы конструкции является недостатком, в частности, если АЛУ должно быть высокопроизводительным АЛУ, которое призвано выполнять совокупность вычислений, в частности, например, расчеты с длинными числами. Чтобы, тем не менее, поддерживать время вычисления в разумных пределах, АЛУ следует конструировать с учетом оптимизации производительности. Конечно, клиент вправе ожидать от любой системы защиты высокого уровня защищенности. Однако, в то же время, клиент также ожидает приемлемо продолжительного, предпочтительно, короткого времени вычисления. Короткое время вычисления важно, чтобы система защиты была принята на рынке, поскольку долгое время вычисления в идентификации защиты будет рассматриваться клиентом как раздражающий фактор.
Задачей настоящего изобретения является обеспечение простой и недорогой концепции реализации выполнения операции на зашифрованном операнде, сумматора с выборочным переносом для зашифрованных данных, а также криптографического процессора, который, тем не менее, обеспечивает высокий уровень защиты от атак. Для решения этой задачи предусмотрены вычислительное устройство, заявленное в пункте 1 формулы изобретения, способ, заявленный в п.27, криптографический процессор, заявленный в п.28, и способ или устройство для формирования средства вычислительного устройства, заявленный/ое в п.36 и/или в п.37.
Настоящее изобретение основано на том, что наивысшего уровня защищенности можно достичь, когда вычислительное устройство работает с полностью зашифрованными операндами, в связи с чем на входе обрабатывающего устройства не осуществляется дешифрование, и на выходе обрабатывающего устройства или АЛУ не осуществляется шифрование. Согласно изобретению, реализация АЛУ предусматривает, помимо входа для первого зашифрованного операнда и входа для второго зашифрованного операнда, наличие третьего входа для параметра шифрования, причем реализация АЛУ позволяет связывать зашифрованные операнды и параметры шифрования в соответствии со спецификацией вычисления над шифрованным текстом с учетом того, каким образом зашифрованы два операнда, в результате чего на выходе получается зашифрованный результат, равный значению, которое можно было бы получить, подвергнув первый операнд арифметической операции в соответствии со спецификацией вычисления над открытым текстом в незашифрованном виде и подвергнув второй операнд арифметической операции в соответствии со спецификацией вычисления над открытым текстом в незашифрованном виде, а затем зашифровав полученный результат. Другими словами, арифметическая операция, подлежащая выполнению над двумя зашифрованными операндами, например, операция OR (ИЛИ) в качестве спецификации вычисления над открытым текстом заменяется несколькими арифметическими подоперациями, формирующими спецификацию вычисления над шифрованным текстом, причем арифметические подоперации выбираются так, чтобы они имели на входе зашифрованные операнды либо инвертированные зашифрованные операнды и параметр шифрования либо инвертированный параметр шифрования.
При необходимости, можно предусмотреть дополнительные подоперации, имеющие на входе промежуточные результаты, полученные из зашифрованных входных операндов и ключа, так что входные операнды в виде открытого текста сами по себе нигде не присутствуют в АЛУ. Для повышения уровня защищенности, предпочтительно, чтобы не существовало также никаких промежуточных результатов из входных операндов в виде открытого текста. На примере операции ИЛИ это означает, что зашифрованные операнды и параметр шифрования подвергаются нескольким операциям AND (И) и нескольким операциям OR (ИЛИ) и, при необходимости, операциям отрицания (инвертирования), в результате чего АЛУ выдает результат, который равен результату, который был бы получен, если бы зашифрованные входные операнды были бы сначала дешифрованы, затем подвергнуты единичной операции ИЛИ, а затем повторно зашифрованы.
В случае использования метода шифрования, состоящего из алгоритма шифрования и ключа, для каждого алгоритма шифрования получается отдельная структура АЛУ для арифметической операции. В этом случае, уровень защищенности может возрастать просто за счет смены ключа алгоритма шифрования, либо для каждой операции, либо через несколько операций, что имеет преимущество в том, что изменяющиеся ключи можно использовать в случае идентичной структуры АЛУ, что еще больше затрудняет для атакующего извлечение данных открытого текста, например, из структуры АЛУ.
Иными словами, реализация обрабатывающего блока вычислительного устройства, отвечающего изобретению, позволяет выполнять одну или несколько математических подопераций, которые, совместно, обеспечивают спецификацию вычисления, выведенную из спецификации для операции с незашифрованными операндами, так что, по меньшей мере, один незашифрованный операнд, из которого получается, по меньшей мере, один зашифрованный операнд, заменяется математической комбинацией, по меньшей мере, одного зашифрованного операнда и параметра шифрования, причем математическая комбинация является обратной по отношению к алгоритму шифрования, с помощью которого зашифрован зашифрованный операнд.
Посредством математической комбинации, спецификация вычисления над открытым текстом преобразуется в спецификацию вычисления над шифрованным текстом, содержащую одну или несколько математических подопераций, которые получают, в качестве входной величины, только зашифрованный операнд или его инвертированную версию, или комбинацию зашифрованного операнда и/или его инвертированной версии с другими операндами. Незашифрованный операнд сам по себе нигде не появляется в качестве входной величины для математической подоперации и, потому, не может быть перехвачен.
Ясно, что спецификация вычисления над шифрованным текстом, которая получается из одного или нескольких математических подопераций, может быть реализована любым желаемым способом. Иными словами, это значит, что математические подоперации, которые совместно формируют спецификацию вычисления над шифрованным текстом, могут быть любого рода. Необходимо только, чтобы совместно они формировали именно ту спецификацию вычисления над шифрованным текстом, которая обеспечивает те же результаты, что и соответствующая спецификация вычисления над открытым текстом после шифрования результата.
Еще одно предварительное условие состоит в том, чтобы алгоритм шифрования, с помощью которого шифруется, по меньшей мере, один операнд, был обратимым алгоритмом шифрования. Если алгоритм шифрования является, например, побитовой функцией «исключающее ИЛИ» (XOR) или функцией «исключающее НЕ-ИЛИ» (XNOR), то алгоритм, обратный алгоритму шифрования, прост. Это также будет, опять же, функция «исключающее ИЛИ» и/или «исключающее НЕ-ИЛИ».
Концепция изобретения, в принципе, может быть реализована для любого обратимого алгоритма шифрования, в зависимости от степени сложности, который может быть оправдан в каждом случае. Простейшая реализация зашифрованного вычислительного устройства состоит в использовании побитовой операции XOR с ключом в качестве алгоритма шифрования, поскольку алгоритм, обратный алгоритму шифрования, опять же, представляет собой операцию «исключающее ИЛИ» с тем же ключом. Конечно, то же справедливо для функции «исключающее НЕ-ИЛИ».
В предпочтительных вариантах осуществления настоящего изобретения, сам по себе алгоритм шифрования является, опять же, побитовой арифметической операцией, например, операцией «исключающее ИЛИ» или «исключающее НЕ-ИЛИ». С учетом правил преобразования для арифметических операций, можно найти арифметическое уравнение, и, начиная с арифметической операции, подлежащей вычислению, и с алгоритма шифрования, причем в уравнении имеются не операнды в виде открытого текста, а зашифрованные операнды, логически связанные друг с другом и/или с параметром шифрования с использованием подопераций, чтобы обеспечить, опять же, тот же результат, который был бы получен, если бы входные параметры были бы сначала дешифрованы, затем подвергнуты арифметической операции, а затем снова зашифрованы.
Преимущество настоящего изобретения состоит в том, что в вычислительных устройствах, отвечающих изобретению, нигде нет операндов в виде открытого текста, а присутствуют только зашифрованные операнды. Таким образом, атакующий уже не может перехватить операнды в виде открытого текста в каком-либо месте вычислительного устройства.
Еще одно преимущество настоящего изобретения состоит в том, что, если метод шифрования, для которого реализовано вычислительное устройство, отвечающее изобретению, используется для сохранения данных в памяти, то никакие данные открытого текста уже не присутствуют ни в каком месте компьютера, но видны только зашифрованные данные и параметры шифрования. Если вычислительное устройство, отвечающее изобретению, реализовано на плате с микросхемами, для которой не гарантировано постоянное пребывание в защищенной среде, но напротив, она может оказаться в руках атакующего и в полном его распоряжении, атакующий никоим образом не может получить из платы с микросхемами никаких данных открытого текста, поскольку там находятся только зашифрованные данные. Данные открытого текста, подлежащие обработке, будут, таким образом, шифроваться в защищенной среде прежде, чем будут загружены в плату с микросхемами, и в качестве защищенной среды выступает, например, стационарный терминал, который может представлять собой, например, устройство для выдачи наличности, доступ к которому разрешен только определенным лицам. Структура интерфейса к плате с микросхемами не позволяет атакующему извлечь данные открытого текста из устройства выдачи наличности, поскольку данные открытого текста зашифрованы на защищенном терминале прежде, чем поступили на интерфейс к плате с микросхемами, и, поскольку защищенный терминал шифрует данные открытого текста таким образом, в частности, потому, что алгоритм шифрования согласуется со структурой АЛУ на плате с микросхемами. При этом, ни в одном месте не требуется двустороннего шифрования, вследствие чего получается фактически замкнутая система. Эту замкнутую систему легко защитить, если место, где в систему вводятся данные открытого текста, находится в надежной среде.
Еще одно преимущество настоящего изобретения в том, что АЛУ может быть реализовано различными способами в зависимости от имеющейся технологии изготовления кристаллов. Например, подоперации можно выбирать по-разному, в зависимости от правил арифметики, которая может быть, например, двоичной, чтобы всегда выдавать один и тот же результат, т.е. одну и ту же таблицу истинности. Если существует полная система, например, НЕ-И (NAND) или НЕ-ИЛИ (NOR), то может быть найдена соответствующая реализация.
Если, например, существуют только вентили НЕ-И, которые имеют всего лишь два входа, то можно найти реализацию, в которой присутствуют только вентили НЕ-И с двумя входами. Если же присутствуют вентили НЕ-И или вентили НЕ-ИЛИ, имеющие несколько входов, и, если, дополнительно, можно простым способом реализовать операции НЕ (NOT), то такую же таблицу истинности можно реализовать с использованием совокупности других связей и подопераций. Эту гибкость или изменяемость можно дополнительно использовать для нахождения наиболее подходящей компоновки в плане конструкций схем и времени вычисления или для использования сменных компоновок для одних и тех же вычислительных устройств, чтобы дополнительно сбить с толку потенциальных атакующих, желающих, например, сравнить несколько плат с микросхемами для получения секретной информации.
В наиболее общем случае, только операнд операции, подлежащей выполнению вычислительным устройством, является зашифрованным операндом, тогда как другие операнды являются операндами в виде открытого текста. Это уже обеспечивает определенный уровень защищенности в арифметической и/или логической операции, поскольку результат операции И между первым параметром «а» и вторым параметром «b» уже зашифрован, если только один из операндов, т.е. «а» или «b», зашифрован.
Альтернативно, оба операнда могут быть зашифрованы одним и тем же и/или разными алгоритмами шифрования, или одним алгоритмом шифрования, но с разными ключами.
Вычислительное устройство, отвечающее изобретению, может быть также выполнено с возможностью осуществления операции мультиплексирования, в которой, по меньшей мере, один операнд, который зашифрован, является управляющим сигналом. Мультиплексор, имеющий зашифрованный управляющий сигнал, может либо мультиплексировать незашифрованные входные данные зашифрованным способом, либо мультиплексировать зашифрованные входные данные зашифрованным способом. В зависимости от размера мультиплексора, управляющий сигнал имеет длину всего лишь одного бита, т.е. в случае мультиплексора 2:1. Для мультиплексоров большего размера, управляющий сигнал может иметь длину в 2 или несколько битов. В зависимости от нужного стандарта защиты, каждый бит управляющего сигнала может быть зашифрован своим собственным ключом, или все биты управляющего сигнала могут быть зашифрованы одним и тем же ключом.
Фиг.1 - схема вычислительного устройства, отвечающего изобретению.
Фиг.2а - реализация вычислительного устройства, отвечающего изобретению, для шифрования посредством побитовой операции «исключающее ИЛИ» операндов и, таким образом, для реализации на АЛУ операции «исключающее ИЛИ».
Фиг.2b - таблица истинности для схемы, показанной на фиг.2а.
Фиг.3а - схема АЛУ для вычислительного устройства, отвечающего изобретению, для реализации операции И, где операнды зашифрованы посредством операции «исключающее ИЛИ».
Фиг.3b - таблица истинности для схемы, показанной на фиг.3а.
Фиг.4а - схема АЛУ для вычислительного устройства, отвечающего изобретению, для реализации операции ИЛИ, где операнды зашифрованы посредством операции «исключающее ИЛИ».
Фиг.4b - таблица истинности для схемы, показанной на фиг.4а.
Фиг.5а - схема АЛУ для вычислительного устройства, отвечающего изобретению, для реализации операции НЕ-ИЛИ, где операнды зашифрованы посредством операции «исключающее ИЛИ».
Фиг.5b - таблица истинности для схемы, показанной на фиг.5а.
Фиг.6а - схема АЛУ для вычислительного устройства, отвечающего изобретению, для реализации операции НЕ-И, где операнды зашифрованы посредством операции «исключающее ИЛИ».
Фиг.6b - таблица истинности для схемы, показанной на фиг.6а.
Фиг.7а - схема АЛУ для вычислительного устройства, отвечающего изобретению, для реализации операции «сложение» для трех операндов, где три операнда зашифрованы посредством операции «исключающее ИЛИ».
Фиг.7b - таблица истинности для схемы, показанной на фиг.7а, в отношении переносов.
Фиг.8а - блок-схема мультиплексора 2:1 с зашифрованным управляющим сигналом.
Фиг.8b - блок-схема мультиплексора 3:1 с зашифрованным управляющим сигналом.
Фиг.8с - блок-схема мультиплексора 4:1 с зашифрованным управляющим сигналом.
Фиг.8d - пример реализации мультиплексора 2:1 с зашифрованным управляющим сигналом.
Фиг.9а-9с - блок-схемы вычислительного устройства, отвечающего изобретению, реализованного в качестве сумматора, где операнды шифруются с помощью разных ключей и переносы зашифрованы по-разному.
Фиг.10 - вычислительное устройство, отвечающее уровню техники, с дешифрованием на входе АЛУ и шифрованием на выходе АЛУ.
Фиг.11а - блок-схема криптопроцессора, отвечающего изобретению, имеющего вычислительное устройство, отвечающее изобретению.
Фиг.11b - более подробное представление устройства шифрования/дешифрования, показанного на фиг.11а.
Фиг.12а - схема двух битовых секций сумматора, причем каждая битовая секция содержит 1-битовый полный сумматор в качестве вычислительного устройства, отвечающего изобретению.
Фиг.12b - обобщенная блок-схема сумматора со сквозным переносом для зашифрованных данных.
Фиг.13 - блок-схема сумматора с выборочным переносом для зашифрованных данных с выборочным переносом в области шифрованного текста.
На фиг.1 показано вычислительное устройство, отвечающее изобретению, для выполнения арифметической операции над, по меньшей мере, двумя операндами, причем, по меньшей мере, два операнда являются зашифрованными операндами ak и bk. Вычислительное устройство, отвечающее изобретению, содержит арифметико-логическое устройство АЛУ 10, которое содержит, помимо первого входа 12 для первого зашифрованного операнда ak, второй вход 14 для второго зашифрованного операнда bk. АЛУ 10, отвечающее изобретению, дополнительно содержит третий вход 16 для параметра шифрования k, а также выход 18 для вывода зашифрованного результата арифметической операции ОП (ОР), осуществляемой АЛУ 10. Арифметико-логическое устройство 10 позволяет связывать первый вход 12, второй вход 14 и третий вход 16 для параметра шифрования k с учетом вида шифрования операндов ak, bk, с использованием арифметических подопераций таким образом, что на выходе получаются зашифрованный результат, который равен значению, можно было бы получить, подвергнув первый операнд «а» арифметической операции ОП в незашифрованном виде и подвергнув второй операнд «b» арифметической операции ОП в незашифрованном виде, а потом зашифровав полученный результат, что представлено квадратными скобками и индексом k на фиг.1. В арифметико-логическом устройстве 10 не осуществляется никакого дешифрования операндов ak и bk, но имеют место только такие подоперации, которые выполняются над зашифрованными операндами ak, bk и над параметром шифрования k или над инвертированными зашифрованными операндами, или над инвертированным параметром шифрования, или над промежуточными результатами предыдущих операций.
Описанное арифметико-логическое устройство, отвечающее изобретению, позволяет выполнять арифметико-логические операции непосредственно над зашифрованными данными и выводить результат также в зашифрованном виде. При этом, предпочтительно, также гарантируется, что ни в каком промежуточном результате не появляется открытый текст. Таким образом, реализуется структура процессора, обеспечивающая работу в полностью зашифрованном режиме в сочетании с зашифрованным хранением.
АЛУ 10, отвечающий изобретению, позволяет осуществлять все манипуляции в ЦП с зашифрованными данными. На нижеследующих чертежах простые операции АЛУ, такие, как «сложение», И, ИЛИ, НЕ, НЕ-И, НЕ-ИЛИ и «исключающее ИЛИ», представлены лишь в порядке примера. При этом данные на всех шинах (фиг.10), а также в блоках памяти М1-М3 (фиг.10) предполагаются зашифрованными.
Исключительно в порядке примера, в качестве простого метода шифрования на шинах A-F, показанных на фиг.10, используется побитовая операция «исключающее ИЛИ» над предпочтительно временным ключом kn и данными, однако и этот метод шифрования обеспечивает защиту вследствие возможности осуществления частой смены ключа. В данном случае n - это индекс ключа. Ключ kn предпочтительно является временным и область его действия ограничена, например, только одной или несколькими последовательными операциями. Для простейшего ЦП требуются две входные шины А, В, которые представляют собой две входные линии 12, 14, показанные на фиг.1. Данные на обеих шинах побитово шифруются одним и тем же ключом kn в целях упрощенного представления. Однако, на двух входах 12, 14, показанных на фиг.1, можно, конечно, использовать разные ключи. Кроме того, не обязательно использовать побитовое шифрование, но можно также шифровать, например, каждый второй, каждый четвертый, каждый шестой или каждый восьмой бит, оставляя перемежающие биты незашифрованными. Определенного уровня шифрования можно достичь, зашифровав только один бит операнда или один единственный разряд операнда, оставив другие разряды незашифрованными.
Хотя на нижеследующих фиг. 2а-7b в качестве основы всегда предполагается шифрование посредством побитового «исключающего ИЛИ» с ключом kn, очевидно, что в качестве алгоритма шифрования можно использовать любую другую обратимую операцию, например, операцию «исключающее НЕ-ИЛИ». Кроме того, в качестве алгоритмов шифрования можно использовать любые другие обратимые алгоритмы шифрования. Единственное предварительное условие состоит в том, что нужно найти выражения, в которых только зашифрованные операнды ak, bk и параметр шифрования k существуют в состоянии, когда они подверглись некоторой логической обработке, например, инвертированы или связаны или появляются в общем случае в математической функции, что становится очевидным при обзоре математических законов, например, правил эквивалентности для арифметических вычислений по аналогии с приведенными ниже примерами.
Как уже было объяснено, для нижеследующих иллюстративных реализаций АЛУ 10, отвечающего изобретению, в целях упрощения представления, предполагается шифрование операндов «а» и «b» посредством побитового «исключающего ИЛИ», причем зашифрованные операнды и/или зашифрованные результаты обозначаются индексом k, параметр шифрования обозначается k, и индекс n является индексом счета для n-го бита соответствующего операнда и/или ключа. Зашифрованные биты на входе вычислительного устройства, отвечающего изобретению, вычисляются следующим образом:
Figure 00000002
(1a)
Figure 00000003
(2a)
Уравнения, обратные уравнениям (1а) и (2а) (уравнения дешифрования), таковы:
Figure 00000004
(1b)
Figure 00000005
(2b)
Следующее вычисление вытекает из этого для операции «исключающее ИЛИ», т.е., скажем, если АЛУ должно выполнять операцию «исключающее ИЛИ»:
Figure 00000006
(3)
Нижеследующее уравнение 4 доказывает уравнение 3.
Figure 00000007
(4)
На фиг.2а представлена схемотехническая реализация уравнения 3. Для обеспечения результата, который эквивалентен операции «исключающее ИЛИ» над незашифрованными операндами a, b и последующему шифрованию, АЛУ 10 в этом случае содержит для выполнения арифметико-логических подопераций тройной вентиль 120 «исключающее ИЛИ», который связывает друг с другом зашифрованные входные параметры ak, bk и k. Таким образом, можно видеть, что параметры «а» и «b» открытого текста не присутствуют нигде в АЛУ 10, показанном на фиг.2а.
В реализации тройного вентиля «исключающее ИЛИ» гарантируется, что на внутренней линии нет никаких данных открытого текста. Например, запрещено использовать двухкаскадные двойные вентили «исключающее ИЛИ», поскольку в этом случае могут появиться промежуточные результаты открытого текста. Поэтому, для реализации тройного вентиля «исключающее ИЛИ» предпочтительно использовать таблицу перекодировки, имеющую, в качестве входных параметров, значения, представленные на фиг.2b для входных параметров kn, akn и bkn и (an XOR bn XOR kn). Таблица может быть реализована в ПЗУ.
Следует указать, что реализация операции «исключающее ИЛИ», показанная на фиг.2а, является лишь иллюстративной. Конечно, выражение, представленное в середине уравнения (4), также можно реализовать схемотехническими средствами. В этом случае, потребуются четыре соответствующим образом соединенных вентиля «исключающее ИЛИ». Хотя эта реализация затратна в отношении схемотехники и времени вычисления, ее, тем не менее, можно выбрать для того, чтобы ввести в заблуждение потенциальных атакующих.
На фиг.2b представлена таблица истинности. В первых трех столбцах представлены все возможные комбинации ключа k, первого операнда «а» и второго операнда «b». В столбцах №4 и №5 показаны зашифрованные входные операнды для всех возможных комбинаций битов. В столбце №6 показан результат операции «исключающее ИЛИ» для двух незашифрованных операндов a и b. В седьмом столбце показан результат, который получается в результате перешифрования выхода операции «исключающее ИЛИ» над незашифрованными операндами, что можно реализовать, например, посредством схемы 826 на фиг.10.
В восьмом столбце на фиг.2b показан результат первой арифметической подоперации 120. В предпоследнем столбце на фиг.2b показан результат второй подоперации 122, сравнение девятого столбца с седьмым столбцом на фиг.2b подтверждает правильность связи с арифметическими подоперациями.
На фиг.3а представлена реализация вычислительного устройства, отвечающего изобретению, в котором АЛУ выполняет операцию И. На фиг.3b представлена соответствующая таблица истинности. В нижеследующем уравнении (5) указан путь от операции И над незашифрованными операндами «а» и «b» с последующим шифрованием посредством «исключающего ИЛИ», что можно реализовать посредством схемы, показанной на фиг.10, к реализации настоящего изобретения, заданной, например, последней строкой уравнения (5). АЛУ, выполняющее операцию И, включает в себя всего пять подопераций 131-135, которые являются операциями И и операциями ИЛИ. Таблица истинности на фиг.3b подтверждает правильность реализации АЛУ, отвечающего изобретению, с использованием нескольких арифметико-логических операций для связывания зашифрованных операндов и ключа. Здесь уместно отметить, что любая из промежуточных строк уравнения (5) может быть реализована схемотехническими средствами в зависимости от того, какие вентили доступны разработчику схемы, и в зависимости от допустимых вычислительных затрат. Предполагается, что схемотехническая реализация, показанная на фиг.3а, более эффективна в отношении времени вычислений, чем схемотехническая реализация, например, четвертой строки уравнения (5). Однако, эту реализацию также можно использовать, чтобы вводить в заблуждение потенциальных атакующих, как уже было показано ранее.
Figure 00000008
(5)
Ниже даются ссылки на уравнение (5) для представления основной предложенной концепции создания средства вычислительного устройства посредством преобразования спецификации вычисления над открытым текстом в спецификацию вычисления над шифрованным текстом. Операция И обеспечена как спецификация вычисления над открытым текстом.
Кроме того, предполагается, как в случае уравнения (5), что зашифрованный операнд akn получается из незашифрованного операнда an посредством операции «исключающее ИЛИ» с ключом kn. Для простоты то же самое предполагается для операнда bkn. Таким образом, bkn эквивалентно результату операции «исключающее ИЛИ» над незашифрованным операндом bn с ключом kn. В вышеприведенном примере, спецификация вычисления над открытым текстом имеет вид: a И b. Спецификация вычисления над шифрованным текстом, которая получается в результате нескольких математических подопераций и в соответствии с которой реализуется блок шифрования, вытекает следующим образом из первой строки уравнения (5):
Figure 00000009
(5a)
Незашифрованные операнды an и bn были заменены в уравнении (5) математической комбинацией зашифрованного операнда akn и ключа kn и bkn и ключа kn, соответственно, и эта математическая комбинация является обратной алгоритму шифрования. Таким образом, в правой части уравнения (5а) представлена спецификация вычисления над шифрованным текстом, полученная непосредственно из спецификации вычисления над открытым текстом.
Если операция «исключающее ИЛИ» используется в качестве алгоритма шифрования, то обратной функцией алгоритма шифрования вновь является функция «исключающее ИЛИ», т.е. она идентична алгоритму шифрования.
Для получения фактической реализации нужно иметь возможность преобразования спецификации вычисления над шифрованным текстом правой части уравнения (5а), где теперь присутствуют только зашифрованные операнды и ключи, любым описанным способом. Это преобразование может быть обеспечено соответствующими математическими законами и т.д. и представлено здесь для случая шифрования посредством «исключающего ИЛИ» или «исключающего НЕ-ИЛИ».
Предпочтительно использовать последнюю строку уравнения (5), полученную из правой части уравнения (5а), когда выполняется совокупность математических преобразований, как основание для реализации обрабатывающего устройства (10 на фиг.1). Таким образом, из уравнения (5а) можно видеть, как спецификация открытого текста для операции с незашифрованными операндами (an×bn) преобразуется в спецификацию вычисления над шифрованным текстом с математическими подоперациями путем замены незашифрованных операндов комбинацией зашифрованных операндов и параметров шифрования, причем эти математические подоперации можно реализовать любым способом, необходимым для математических преобразований, а именно, в соответствии с предварительным условием, согласно которому никакие подоперации не должны содержать в качестве входной величины операнда в виде открытого текста, для которого существует зашифрованный операнд.
Если шифруется только один операнд, то предварительное условие состоит в том, что операнд в виде открытого текста, соответствующий зашифрованному операнду, нельзя использовать нигде в качестве входной величины для математической подоперации.
На фиг.4а показана реализация операции ИЛИ над двумя операндами «а» и «b».
Figure 00000010
(6)
Уравнение (6) также указывает путь, которым можно следовать, чтобы получить совокупность подопераций, начиная с операции, использующей незашифрованные операнды, и с последующим шифрованием, причем совокупность подопераций такова, что они теперь содержат только зашифрованные операнды и параметр шифрования. На фиг.4а показано, как схемотехническая реализация канонической дизъюнктивной формы зашифрованной операции ИЛИ, использующая три подоперации И 141, 142, 143, две подоперации ИЛИ 144 и 145, а также операцию 146 отрицания и/или НЕ с ключом k, осуществляется на фиг.3а. Различные промежуточные результаты в уравнении (6) показывают, что АЛУ можно, конечно, реализовать различными способами, в данном случае, например, с использованием инвертирования зашифрованного первого операнда ak, зашифрованного второго операнда bk и/или ключа k.
Таблица истинности на фиг.4b показывает правильность схемотехнической реализации АЛУ, показанной на фиг.4а, при сравнении седьмого столбца с восьмым столбцом.
Ниже со ссылкой на фиг.5а описана реализация операции НЕ-ИЛИ над зашифрованными операндами. Для этого рассмотрим следующее уравнение (7).
Figure 00000011
(7)
На фиг.5а показана схемотехническая реализация уравнения (7). В качестве арифметических подопераций используются операции И 151-153, операции ИЛИ 154, 155 и операции НЕ 156 и 157, взаимодействующие и связанные друг с другом, согласно показанному на фиг.5а. Следует еще раз указать, что на фиг.5а, как и во всех остальных вариантах осуществления настоящего изобретения, присутствуют не только операнды ak и bk, зашифрованные на входе, но также все промежуточные результаты, например, на выходах вентилей 151-153, имеются промежуточные результаты, полученные из зашифрованных операндов, но не из операндов в виде открытого текста, вследствие чего, в вычислительном устройстве, отвечающем изобретению, нигде не появляются данные открытого текста, но везде присутствуют зашифрованные данные и/или результаты, полученные из зашифрованных данных. Таблица истинности, представленная на фиг.5b, и, в частности, сравнение седьмого столбца с восьмым столбцом показывает правильность схемотехнической реализации согласно фиг.5а.
Следует указать, что промежуточный результат, приведенный в уравнении (7), также можно реализовать схемотехническими средствами.
Ниже со ссылкой на фиг.6а описана реализация в соответствии с изобретением операции НЕ-И над зашифрованными операндами ak, bk с использованием параметра шифрования k. Уравнение (8) показывает арифметику для фиг.6а:
Figure 00000012
(8)
Показанное на фиг.6а АЛУ для вычислительного устройства, отвечающего изобретению, включает в себя в качестве арифметических подопераций три операции И 161-163, три операции НЕ 164-166, а также две операции ИЛИ 167, 168, которые, как показано на фиг.6а, связаны друг с другом и/или со входными операндами для обеспечения зашифрованного результата операции НЕ-И между незашифрованными операндами «а» и «b». Таблица истинности, показанная на фиг.6а, показывает на примере сравнения седьмого столбца с восьмым столбцом правильность реализации согласно фиг.6а.
Ниже со ссылкой на фиг.7а описана операция «сложение» как пример операции с тремя операндами над операндами a, b и c. Характеристическим уравнением будет нижеследующее уравнение (9):
Figure 00000013
(9)
Операция с тремя операндами и/или тремя битами операндов, при рассмотрении битовой секции сумматора, приводит к переносу «с», причем во втором с конца столбце и в третьем с конца столбце таблицы истинности, показанной на фиг.7b, переносы в операции «сложение» между незашифрованными операндами a, b и c обозначены как ср («р» от «plain» - незашифрованный), и в предпоследнем столбце показан перенос ck операции «сложение» АЛУ, отвечающего изобретению. Перенос ckn(n+1) получается из уравнения (10):
Figure 00000014
(10)
Реализация уравнения (10) представлена на фиг.7а. АЛУ, показанное на фиг.7а, для вычислительного устройства, отвечающего изобретению, включает в себя арифметические подоперации, а именно, операции И 171-173 и операции ИЛИ 179 и 180. На выходе получается перенос (ckn)n+1 для операции «сложение» с тремя входными операндами. Этот перенос совпадает, согласно таблице истинности, показанной на фиг.7b, с переносом, который можно получить, суммировав три операнда в незашифрованном виде с последующим шифрованием. В частности, (ckn)n+1 обозначает перенос для следующей более старшей ((n+1)-й) позиции (битовой секции), зашифрованный ключом kn, т.е. ключом текущей позиции n, который не зашифрован ключом kn+1 для следующей более старшей позиции. Это значит, что перешифрование (ckn)n+1 от ключа kn к ключу kn+1 происходит в зависимости от реализации битовой секции.
Уравнения (9) и (10) предписывают такую реализацию сумматора с зашифрованными операндами, при которой сумматор выводит зашифрованный агрегированный бит или бит суммы s' (s'=skn) и зашифрованный бит переноса с' (с'=(ckn)n+1), причем сумматор получает на входе, помимо двух зашифрованных операндов, зашифрованный бит переноса. Такой сумматор известен в технике как однобитовый полный сумматор.
Однобитовый полный сумматор используется для создания n-битового полного сумматора в качестве вычислительного устройства, отвечающего изобретению. В этом случае, однобитовый полный сумматор, согласно варианту осуществления настоящего изобретения, именуется битовой секцией или средством битовой секции. На фиг.12а показаны два средства битовой секции, связанные друг с другом. В частности, на фиг.12а показаны первая битовая секция 1200 для бита порядка n и битовая секция 1202 для бита порядка n+1. Главной частью каждой битовой секции является вычислительное устройство для зашифрованных операндов, обозначенное на фиг.12а позицией 1204. Согласно вышесказанному, возможны любые другие реализации зашифрованного сумматора при условии использования зашифрованных входных операндов и подачи зашифрованного переноса для создания зашифрованных выходных величин, т.е. зашифрованных битов суммы и зашифрованных битов переноса. В зависимости от необходимого уровня защищенности, можно использовать перенос в виде открытого текста и зашифрованный бит суммы, или же зашифрованный бит переноса и бит суммы в виде открытого текста. В сравнении с полностью незашифрованной реализацией АЛУ, здесь уже достигается повышенный уровень защищенности, хотя и не наивысший возможный уровень защищенности.
Однобитовый полный сумматор, показанный на фиг.12а, задан следующими двумя характеристическими уравнениями:
Figure 00000015
(11)
Figure 00000016
(12)
Здесь, уравнения сумматора выбраны так, что в сам однобитовый полный сумматор 1204 не нужно вводить никакого ключа шифрования, но его нужно вводить в битовую секцию 1202 или 1200 в соответствии с вариантом осуществления настоящего изобретения. Кроме того, однобитовый полный сумматор 1204 выполнен таким образом, что, для функции сумматора, на следующее более старшее средство битовой секции пересылается не сам зашифрованный бит переноса c′, а инвертированный зашифрованный бит переноса. Текущий бит зашифрованного операнда «а», т.е. a′n+1, поступает на первый вход «х» однобитового полного сумматора битовой секции для бита n+1. Текущий зашифрованный бит второго операнда, т.е. b′n+1, поступает на второй вход «y». Бит, который зависит от выходного бита переноса c′n предыдущей битовой секции 1200, поступает на третий вход «z».
Заметим, что выходной бит переноса предыдущей битовой секции может не использоваться напрямую, поскольку для разных средств 1200 и 1202 битовых секций существуют разные ключи шифрования kn+1 и kn, соответственно. Поэтому должно осуществляться перешифрование выходного бита переноса предыдущего средства битовой секции от ключа шифрования kn для предыдущего средства битовой секции в ключ шифрования kn+1 текущего средства битовой секции.
В случае шифрования посредством операции «исключающее ИЛИ», перешифрование может достигаться просто путем выполнения операции «исключающее ИЛИ» над зашифрованным выходным битом битовой секции 1200 с ключом перешифрования tn+1. Эта операция представлена вентилем 1206 «исключающее ИЛИ». Ключ перешифрования tn+1 вычисляется, согласно его определению, путем выполнения операции «исключающее ИЛИ» над двумя ключами, относящимися к двум битовым секциям, т.е. путем выполнения «исключающего ИЛИ» над kn+1 для битовой секции 1202 и kn для битовой секции 1200.
Средство 1202 битовой секции выводит выходной бит переноса, который, однако, зашифрован ключом kn+1 и подлежит перешифрованию согласно следующему более старшему каскаду (не показан на фиг.12а). То же применяется ко входному переносу битовой секции 1200. В данном случае, получают выходной бит переноса следующего более младшего каскада, n-1, причем этот бит подлежит перешифрованию вентилем 1206 «исключающего ИЛИ» перешифрования.
Если несколько битовых секций соединены последовательно, как показано на фиг.12а, получается, в общем случае, сумматор со сквозным переносом (фиг.12b), который получает два зашифрованных операнда a′, b′, а также ключи перешифрования для отдельных битов ti в качестве входных величин. Сумматор со сквозным переносом, представленный на фиг.12b, дополнительно получает в качестве входного сигнала входной сигнал переноса, заданный равным 0 для обычного сумматора со сквозным переносом, работающего в режиме сумматора.
Очевидно, что вместо 0 можно применить 1, как будет объяснено для описанного ниже сумматора с выбором переноса. На выходе, сумматор, изображенный на фиг.12b, обеспечивает биты суммы в зашифрованном виде, а именно, s0', s1', ..., sN'. Кроме того, сумматор, изображенный на фиг.12b, выдает в качестве выходного сигнала бит переноса самой старшей битовой секции сумматора, если такой бит переноса создается.
Сумматор с выборочным переносом для зашифрованных данных можно построить, согласно фиг.13, из сумматора со сквозным переносом для зашифрованных данных, показанного на фиг.12а и фиг.12b, соответственно. Сумматоры с выборочным переносом работают быстрее, чем простые сумматоры со сквозным переносом, и описаны в "Computer Architecture a Quantitative Approach", Second Edition, Hennessy and Patterson, Morgan Kaufmann Publishers, Inc., 1996, appendix А. Однако, известные сумматоры с выборочным переносом, описанные в вышеупомянутой литературе, работают только с незашифрованными операндами и выдают незашифрованные результаты.
Ниже со ссылкой на фиг.13 описан сумматор с выборочным переносом, отвечающий изобретению, который выдает зашифрованные выходные сигналы. Прежде всего, предусмотрен первый сумматор 1300 со сквозным переносом, построенный из нескольких битовых секций, которые были описаны со ссылкой на фиг.12а. В частности, первый сумматор 1300 содержит совокупность средств битовой секции для суммирования зашифрованных битов операндов а', b' от младшего бита операндов до первого граничного бита операндов. На выходе, первый сумматор 1300 со сквозным переносом обеспечивает зашифрованные биты суммы r' для всех битов операндов от младшего бита операндов до первого граничного бита.
Выходной сигнал переноса битовой секции в сумматоре 1300 для первого граничного бита выводится посредством линии 1302, перешифруется посредством ключа преобразования tkn+1 (средством 1303 перешифрования) и поступает на средство 1304 выбора в виде мультиплексора. Сумматор с выборочным переносом дополнительно содержит второй сумматор 1306, а также третий сумматор 1308, которые обычно имеют такую же внутреннюю структуру, как первый сумматор 1300 и, как любые дополнительные сумматоры 1310 и 1312, которые могут присутствовать. Для перешифрования выходных битов переноса предусмотрено еще одно средство шифрования (например, 1315) в каждом случае между выходом мультиплексора предыдущего каскада и входом «1» мультиплексора следующего каскада.
На входы переноса младших битовых секций второго сумматора 1306 и третьего сумматора 1308 поступают HE(kn+1) и kn+1, соответственно (или, для третьего сумматора, HE(km+1) и km+1, соответственно).
Выбор битов суммы, которые вычисляются сумматором 1306 и сумматором 1308 (функция «выбора»), осуществляется в зависимости от того, 0 или 1 имеется на выходе 1302 переноса первого сумматора после перешифрования. Если получен 0, то в качестве битов r' результата выбирают биты результата второго сумматора 1306. Если же после перешифрования присутствует 1, то в качестве битов r' результата выбирают биты результата второго сумматора 1308. Если сумматор с выборочным переносом содержит дополнительные каскады, как показано на фиг.13, то выбор правильного сигнала переноса второго каскада производится с использованием средства 1314 выбора переноса. В частности, выбранным выходным сигналом переноса является выходной сигнал переноса того сумматора второго каскада, биты результата, т.е. биты суммы которого были выбраны в качестве результата r'.
Заметим, что фактический выбор «выбора переноса» осуществляется на линии 1302 посредством зашифрованного бита переноса. Поэтому не появляется никаких битов открытого текста. Дело в том, что биты HE(kn+1), а также kn+1, и HE(km+1), а также km+1, соответственно, поступающие на два сумматора второго и третьего каскадов, соответственно, также считаются, так сказать, зашифрованными битами и поступают, согласно фиг.12а, на вентиль 1206 «исключающего ИЛИ» младшей битовой секции соответствующего сумматора и, таким образом, подвергаются «перешифрованию», чтобы быть зашифрованными с помощью ключа фактического средства шифрования. Хотя на фиг.13 показано только, что ключи шифрования t поступают на сумматоры, следует отметить, что операция вычисления ключа перешифрования также может осуществляться в битовых секциях сумматора. В этом случае, на сумматоры должны поступать отдельные параметры шифрования ki для соответствующих битов, и операция «исключающее ИЛИ» над параметрами шифрования двух соседних битовых секций осуществляется на сумматорах.
Однако, из соображений скорости, предпочтительно вычислять параметры шифрования вне битовых секций.
Наконец, следует заметить, что вместо вышеописанного однобитового полного сумматора 1204, для выполнения однобитового полного сложения можно использовать другие средства, которые должны иметь возможность выполнять вычисление зашифрованных операндов и выводить зашифрованный бит результата и/или зашифрованный бит переноса без необходимости создавать промежуточные результаты в виде открытого текста.
Ниже описан еще один вариант осуществления вычислительного устройства, отвечающего изобретению, со ссылкой на фиг.8а-8d, где операция, подлежащая осуществлению над несколькими операндами, является операцией мультиплексирования. Если, например, как показано на фиг.8а, имеется два входных операнда a′, b′, где штрих «′» обозначает зашифрованные значения, операция над входными операндами состоит в том, что либо a′ поступает на выход, т.е. a′ становится сигналом m′, а b′ блокируется, либо b′ становится сигналом m′, а другой входной сигнал a′ блокируется.
Выбор осуществляется на основании зашифрованного управляющего сигнала x′, зашифрованного параметром шифрования k.
Вычислительное устройство, отвечающее изобретению, может, конечно, мультиплексировать незашифрованные операнды a, b с использованием зашифрованного управляющего сигнала x′.
Характеристическое уравнение и/или спецификация вычисления над открытым текстом для операции мультиплексирования 2:1 с незашифрованными операндами выглядит следующим образом:
Figure 00000017
(13)
Аналогично, характеристическое уравнение и/или спецификация вычисления над открытым текстом для операции мультиплексирования 3:1 с незашифрованными операндами выглядит следующим образом:
Figure 00000018
(14)
Для мультиплексора 4:1, показанного на фиг.8с, спецификация вычисления над открытым текстом для операции мультиплексирования 3:1 с незашифрованными операндами выглядит следующим образом:
Figure 00000019
(15)
Теперь получим спецификацию вычисления над шифрованным текстом из спецификации вычисления над открытым текстом путем замены управляющего сигнала в уравнениях 11-13 комбинацией зашифрованного управляющего сигнала и параметра шифрования.
В данном примере, алгоритмом шифрования является операция «исключающее ИЛИ» с ключом. Математическая комбинация зашифрованного управляющего сигнала и параметра шифрования, которая является обратной алгоритму шифрования, также является операцией «исключающее ИЛИ». Вставляя x′ XOR k в уравнение 11, получаем следующую спецификацию вычисления над шифрованным текстом для зашифрованного мультиплексора 2:1, причем несколько преобразований уже произведено для указания предпочтительной реализации обрабатывающего устройства: зашифрованного мультиплексора 3:1, причем несколько преобразований уже произведено для указания предпочтительной реализации обрабатывающего устройства:
Figure 00000020
Мультиплексор, показанный на фиг.8b, является мультиплексором 3:1, где управляющий сигнал содержит 2 бита x, y. Для простоты, предположим, что два бита x, у управляющего сигнала шифруются одним и тем же ключом для получения зашифрованных управляющих битов x′ и y′. Вставляя x′ XOR k и y′ XOR k, соответственно, в характеристическое уравнение (12) для незашифрованных операндов для мультиплексора 3:1, получаем следующую спецификацию вычисления над шифрованным текстом для зашифрованного мультиплексора 3:1, причем несколько преобразований уже произведено для указания предпочтительной реализации обрабатывающего устройства:
Figure 00000021
Аналогичный подход приводит к следующей спецификации вычисления над шифрованным текстом для мультиплексора 4:1, показанного на фиг.8с, причем эта спецификация вычисления над шифрованным текстом состоит из многих математических подопераций, указанных в уравнении (18):
Figure 00000022
Ниже со ссылкой на фиг.8d описана схемотехническая реализация спецификации вычисления, заданная уравнением (14), причем в качестве математических подопераций используются только операция И, операция ИЛИ и операция НЕ.
Схема зашифрованного мультиплексора, показанного на фиг.8d, включает в себя два входа 80, 81 для потоков данных a′, b′, которые зашифрованы и подлежат мультиплексированию. Обрабатывающее устройство мультиплексора, отвечающего изобретению, показанное на фиг.8d, дополнительно включает в себя вход 82 для зашифрованного управляющего сигнала, а также вход 83 для параметра шифрования k. Согласно уравнению (16), схема 4 содержит вентили И 84a, 84b, 84c, 84d, вентиль ИЛИ 85 и два инвертора 86a, 86b для создания инвертированной версии зашифрованного управляющего сигнала и инвертированной версии параметра шифрования, соответственно, которые входят в уравнение (16). Специалистам в данной области очевидно, что на фиг.8d представлена непосредственная схемотехническая реализация уравнения (16). Преобразовав уравнение (16) в соответствии с определенными математическими законами, можно получить другие реализации обрабатывающего устройства, аналогичного показанному на фиг.8d.
Все эти различные реализации имеют то общее, что они реализуют спецификацию вычисления, заданную уравнением (16) для мультиплексора 2:1, причем спецификация вычисления состоит из совокупности математических подопераций (84a-84d, 85, 86a, 86b), которые включают в себя, в качестве входных величин, только зашифрованный управляющий сигнал и параметр шифрования, но не управляющий сигнал в виде открытого текста.
Заметим, что мультиплексор представляет собой основной и часто незаменимый элемент многих электронных схем. Существуют разные варианты реализации мультиплексоров n-в-1, оптимизированные в отношении скорости, площади или топологии. Концепция изобретения позволяет значительно ограничить возможности осуществления атаки, в частности, тестирования посредством выводов, и атак стороннего канала, например, DPA (дифференциального анализа мощности) или SPA (простого анализа мощности). Согласно вышесказанному, в качестве метода шифрования используется принцип одноразовой набивки. Все N входных сигналов ai (i = 2,..., N), т.е. данные, подлежащие мультиплексированию, а также линии управления xn (n = 1... [log2N]; операция [x] означает наименьшее целое число, превышающее х), присутствуют в зашифрованном виде. Для шифрования предпочтительно использовать сложение по модулю 2 согласно шифру Вернама с непрерывно изменяющимся ключом ki, что соответствует операции «исключающее ИЛИ». Результат операции напрямую генерируется в пространстве шифрованного текста, без создания какого-либо промежуточного результата в пространстве открытого текста. Поток независимых и равномерно распределенных случайных битов для ключей обеспечивает полностью стохастический текущий профиль и стохастическую битовую комбинацию результата. Это в значительной мере затрудняет атаки SPA и DPA. Увеличение сложности/времени выполнения вследствие реализации мультиплексора, например, при сравнении уравнения (16) с уравнением (13), незначительно в отношении повышения безопасности.
Для обеспечения мультиплексора с n-битовыми входами на n-битовый выход, схему, показанную на фиг.8d, нужно повторить, например, для каждого бита для мультиплексора 2:1. Таким образом, на фиг.8d показана битовая секция для мультиплексора со входными сигналами, имеющая ширину более 1 бита.
Выше, со ссылкой на фиг.1-7b, были описаны, в частности, реализации вычислительного устройства, в которых оба операнда a, b, подлежащие связыванию посредством операции, зашифрованы одним и тем же ключом k. Предполагалось также, что результат также зашифрован этим ключом, что представлено характеристическими уравнениями и/или спецификациями вычисления, например, уравнениями (5) и (5а). В данном случае, вероятной целью атаки может быть генератор ключей, входящий в состав криптографического процессора. Одновременно перехватывая последовательность ключей, а также зашифрованный выходной поток данных, атакующий может вывести результат в виде открытого текста. Затратность такой атаки высока, поскольку, например, в случае 32-разрядного ЦП, чтобы добиться полного дешифрования, нужно одновременно отслеживать 64 бита. Чтобы, тем не менее, исключить эту локализованную точку атаки в виде генератора ключей, который также может быть деактивирован атакующим, предпочтительно, в ряде случаев, когда требуются высокие стандарты защищенности, использовать несколько разных алгоритмов шифрования или использовать один и тот же алгоритм шифрования, но разные ключи шифрования. Это, опять же, существенно повышает затраты, необходимые для осуществления успешной атаки.
Операнды для операции уже не шифруются одним и тем же ключом k, как показано, например, со ссылкой на фиг.2а, но операнды шифруются разными ключами. В данном случае, предпочтительно использовать отдельный ключ для каждого операнда, а именно, ключ i для операнда «а», ключ j для операнда «b». Также предпочтительно шифровать результат операции дополнительным ключом, который будем обозначать k. Ключ k, которым шифруется результат операции, можно выбирать независимо от i и j. Однако, предпочтительно использовать в качестве ключа k результат операции «исключающее ИЛИ» над ключами i и j.
Преимущество этого метода состоит в том, что перехвата отдельного потока ключей уже недостаточно для реконструкции выходного потока данных операции. Таким образом, порог атаки еще больше поднимается, тогда как затраты на оборудование возрастают незначительно. Использование нескольких независимых генераторов ключей дополнительно повышает защищенность в отношении криптоанализа, поскольку реальные генераторы ключей не могут генерировать независимые и равномерно распределенные случайные ключи. Кроме того, защищенность также повышается за счет того, что, при физической атаке с деактивацией генератора ключей, шифрование не полностью проваливается.
На фиг.9а-9с показаны три варианта вычислительного устройства (АЛУ), отвечающего изобретению, действующего как сумматор входных операндов a, b и имеющего дополнительный входной перенос cin, выходную сумму r и выходной перенос cout. В своей форме, показанной на фиг.9а-9с, вычислительное устройство, отвечающее изобретению, дополнительно содержит i, j для разных входов i, j параметров шифрования для различных ключей операндов a и b, соответственно.
Вычислительные устройства, показанные на фиг.9а-9с, также именуемые 1-битовыми полными сумматорами и работающие, в принципе, таким же образом, как описано со ссылкой на фиг.7а и 7b, не содержат входа для выходного ключа k, поскольку он задан, по определению, операцией «исключающее ИЛИ» ключей i и j. Это имеет то преимущество, что ключ k, который потребовался бы для дешифрования результата r, не появляется в явном виде и, поэтому, не может быть перехвачен в таком виде.
Согласно фиг.9а, входной перенос cin дополнительно шифруется ключом k, и выходной перенос cout также шифруется ключом k. Согласно фиг.9b, входной перенос cin шифруется тем же ключом, что и операнд «а», т.е. ключом i, тогда как выходной перенос шифруется ключом k. На фиг.9с показан еще один вариант, где входной перенос шифруется дополнительным ключом l, и выходной перенос также шифруется тем же дополнительным ключом l. Возможен также вариант с незашифрованным входным переносом или незашифрованным выходным переносом, хотя он и не изображен.
Нижеследующие уравнения шифрования применяются ко всем ключам:
Figure 00000023
Уравнения, обратные уравнениям шифрования уравнения (19), идентичны, поскольку, как уже было неоднократно указано, функция, обратная функции «исключающее ИЛИ», опять является функцией «исключающее ИЛИ».
Ниже приведен обзор логических операций, а также функций «сумма» (SUM) (бит суммы) и «перенос» (CARRY) (бит переноса) сумматора для версий, представленных на фиг.9а-9с:
Входы: операнды а(i), b(j), а также входной перенос cin(k)
Вспомогательные переменные: k=i⊕j, a'=a(i)⊕j, b'=b(j)⊕i
Логические операции:
Спецификация вычисления над открытым текстом Спецификация вычисления над шифрованным текстом
OR:
Figure 00000024
AND:
Figure 00000025
NOR:
Figure 00000026
NAND:
Figure 00000027
XOR:
Figure 00000028
XNOR:
Figure 00000029
Вариант фиг.9а: полный сумматор с суммой и выходным
переносом:
Вспомогательные
переменные:
a′ = a(i)⊕j, b′ = b(j)⊕i, c′ = Cin(k)
SUM:
Figure 00000030
CARRY:
Figure 00000031
Вариант фиг.9b: полный сумматор с суммой и выходным переносом:
Вспомогательные
переменные:
a′ = a(i)⊕j, b′ = b(j)⊕i, c" = cin(i)
SUM:
Figure 00000032
CARRY:
Figure 00000033
Вариант фиг.9c: полный сумматор с суммой и выходным переносом:
Вспомогательные
переменные:

a′ = a(i)⊕j⊕l, b′ = b(j)⊕i⊕l, c′ = cin(l)⊕k
SUM:
Figure 00000034
CARRY:
Figure 00000035
Ниже перечислены те канонические формы вышеописанных спецификаций вычисления над шифрованным текстом, которые могут быть реализованы непосредственно обрабатывающим устройством и которые могут включать в себя только математические подоперации, не имеющие данных открытого текста в качестве входных операндов. Ниже приведена спецификация вычисления для варианта полного сумматора (SUM, carry), показанного на фиг.9а. Преимущество этой спецификации вычислений состоит в том, что ключ k нигде не появляется в явном виде и, потому, не может быть перехвачен.
AND:
Figure 00000036
(20)
OR:
Figure 00000037
(21)
NAND:
Figure 00000038
(22)
NOR:
Figure 00000039
(23)
XOR:
Figure 00000040
(24)
XNOR:
Figure 00000041
(25)
SUM:
Figure 00000042
(26)
CARRY:
Figure 00000043
(27)
Специалисты в данной области могут легко вывести из уравнений (20)-(27) реализацию обрабатывающего устройства, причем здесь используются только математические подоперации, которые совместно дают спецификацию вычисления, которая является операцией И, операцией НЕ, операцией ИЛИ и операцией «исключающее ИЛИ».
Заметим также, что ключ k, которым шифруется результат r, получается в результате операции «исключающее ИЛИ» над i и j. Поэтому, обрабатывающее устройство вычислительного устройства, отвечающего изобретению, не имеет явного входа для ключа k.
На фиг.11а показана блок-схема криптографического процессора, отвечающего изобретению, который не содержит шифрования операнда (блока 822 и блока 824 на входе АЛУ 800) и результата шифрования (блока 826 на выходе АЛУ 800) в отличие от «незащищенного» криптографического процессора, показанного на фиг.10. АЛУ 800′ это вычислительное устройство для, по меньшей мере, одного зашифрованного операнда, осуществляющее операцию мультиплексирования, логическую операцию в соответствии с простой логической операцией, функцию 1-битового полного сумматора или алгоритма сложения с выборочным переносом и т.д., которые были объяснены выше или будут объяснены ниже.
Криптографический процессор, показанный на фиг.11а, включает в себя устройство 1100 шифрования/дешифрования, находящееся между внешней памятью 818 и кэшем 814 или, если кэш не предусмотрен, между внешней памятью 818 и шиной 808.
Согласно изобретению, предпочтительно шифровать данные в памяти посредством первого алгоритма шифрования, тогда как данные, передаваемые по шине 808 или хранящиеся в кэше 814, шифруются посредством второго алгоритма шифрования. Первый и второй алгоритмы шифрования, предпочтительно, отличаются друг от друга тем, что алгоритм шифрования, посредством которого зашифрованы данные, размещенные во внешней памяти 818, зашифрованы так называемым «жестким» алгоритмом шифрования, например, затратным криптоалгоритмом в виде, например, алгоритма DES или алгоритма AES. Второй алгоритм шифрования, посредством которого зашифрованы данные, размещенные в вычислительном устройстве 800′, отвечающем изобретению, предпочтительно, является «мягким» алгоритмом шифрования, который является малозатратным. Например, таким мягким алгоритмом шифрования является побитовая операция «исключающее ИЛИ» с ключом. В то время, как ключ для жесткого алгоритма шифрования никогда не меняется или меняется редко, ключ мягкого алгоритма шифрования меняется часто, или даже с каждым шифрованием, для достижения высокого уровня защищенности также для мягкого алгоритма шифрования.
На фиг.11b показано более подробное представление блока 1100, показанного на фиг.11а. В прямом пути передачи данных из памяти 818 на шину 808 или в кэш 814 сначала располагается устройство 1102 дешифрования DES, за которым следует устройство 1104 шифрования посредством «исключающего ИЛИ». Аналогично, в обратном пути передачи данных сначала располагается устройство 1106 дешифрования посредством «исключающего ИЛИ», за которым следует устройство 1108 шифрования DES. Таким образом, данные, сохраненные в памяти 818 посредством жесткого шифрования, первоначально дешифруются, а потом шифруются посредством второго (мягкого) алгоритма шифрования для подачи зашифрованных данных на АЛУ 800′. Результаты, полученные в АЛУ, при необходимости сохранения во внешней памяти 818, первоначально дешифруются согласно мягкому алгоритму шифрования (блок 1106), а потом шифруются согласно жесткому алгоритму шифрования (блок 1108).
Эта процедура гарантирует, что незашифрованные данные никуда не переносятся по шине в криптографическом процессоре. Единственно, где присутствуют незашифрованные данные, это между средствами 1102 и 1104 и между средствами 1106 и 1108, соответственно. Однако, это не шина связи, которую можно обнаружить и в дальнейшем перехватить с ограниченными затратами, в силу его широко распространенных структур.
Согласно изобретению, предпочтительно двухкаскадное шифрование, поскольку для данных, присутствующих во внешней памяти, требуется высокий уровень защищенности, которого можно добиться с помощью жесткого алгоритма шифрования. Однако, этот жесткий алгоритм шифрования привел бы к весьма затратной схеме, если бы АЛУ был приспособлен к этому жесткому алгоритму шифрования и, поэтому, привел бы к очень заметным потерям скорости, Поэтому предпочтительно переводить данные из жесткого алгоритма шифрования в мягкий алгоритм шифрования, чтобы структура АЛУ оставалась управляемой и имела разумную скорость вычисления, несмотря на оперирование зашифрованными данными.
Список обозначений
Вычислительное устройство и способ осуществления арифметической операции с зашифрованными операндами
10 арифметико-логическое устройство
12 первый вход
14 второй вход
16 третий вход
18 выход
80 вход для первого входного сигнала
81 вход для второго входного сигнала
82 вход для зашифрованного управляющего сигнала
83 вход для параметра шифрования
84а-84d вентиль И
85 вентиль ИЛИ
86а, 86b вентиль НЕ
120 вентиль «исключающее ИЛИ»
131 вентиль И
132 вентиль И
133 вентиль И
134 вентиль ИЛИ
135 вентиль ИЛИ
141 вентиль И
142 вентиль И
143 вентиль И
144 вентиль ИЛИ
145 вентиль ИЛИ
146 вентиль НЕ
151 вентиль И
152 вентиль И
153 вентиль И
154 вентиль ИЛИ
155 вентиль ИЛИ
156 вентиль НЕ
157 вентиль НЕ
161 вентиль И
162 вентиль И
163 вентиль И
164 вентиль НЕ
165 вентиль НЕ
166 вентиль НЕ
167 вентиль ИЛИ
168 вентиль ИЛИ
171 вентиль И
172 вентиль И
173 вентиль И
179 вентиль ИЛИ
180 вентиль ИЛИ
800 АЛУ
802 первая шина
804 вторая шина
806 выходная шина
808 центральная шина
810 первая шина памяти
812 вторая шина памяти
814 кэш
816 третья шина памяти
818 внешняя память
820 наборы регистров
822 первое средство дешифрования
824 второе средство дешифрования
826 средство шифрования
828 декодер команд
1100 устройство шифрования/дешифрования
1102 устройство дешифрования DES
1104 устройство шифрования посредством «исключающего ИЛИ»
1106 устройство дешифрования посредством «исключающего ИЛИ»
1108 устройство шифрования DES
1200 битовая секция для бита n
1202 битовая секция для бита n+1
1204 1-битовый полный сумматор для зашифрованных данных
1206 средство перешифрования
1300 первый сумматор со сквозным переносом
1302 линия для выходного сигнала переноса
1303 средство перешифрования
1304 средство выбора
1306 второй сумматор
1308 третий сумматор
1310 дополнительный сумматор
1312 дополнительный сумматор
1315 средство перешифрования

Claims (37)

1. Вычислительное устройство для осуществления операции над операндами, причем, по меньшей мере, один из операндов зашифрован с использованием алгоритма шифрования и параметра шифрования для получения зашифрованного результата операции, вычислительное устройство содержит
обрабатывающее устройство (10), имеющее вход для операнда или инвертированной версии операнда, вход для, по меньшей мере, одного зашифрованного операнда или инвертированной версии, по меньшей мере, одного зашифрованного операнда, имеющее вход для параметра шифрования, с помощью которого зашифрован, по меньшей мере, один операнд, и имеющее выход (18) для зашифрованного результата,
причем обрабатывающее устройство (10) выполнено с возможностью выполнения одной или нескольких математических подопераций, которые совместно обеспечивают спецификацию вычисления над шифрованным текстом, полученную из спецификации вычисления над открытым текстом для операции с незашифрованными операндами, в результате чего незашифрованный операнд заменяется, в спецификации вычисления над открытым текстом, из которой получается, по меньшей мере, один зашифрованный операнд, математической комбинацией, по меньшей мере, одного зашифрованного операнда и параметра шифрования, являющейся обратной к алгоритму шифрования, и
спецификация вычисления над открытым текстом преобразуется вследствие математической комбинации в одну или несколько математических подопераций, которые представляют спецификацию вычисления над шифрованным текстом и которые получают в качестве входной величины только зашифрованный операнд, или его инвертированную версию, или комбинацию зашифрованного операнда или инвертированной версии зашифрованного операнда с другими операндами.
2. Вычислительное устройство по п.1, отличающееся тем, что операнды являются числами, и, по меньшей мере, один операнд зашифрован в побитовом режиме.
3. Вычислительное устройство по п.1 или 2, отличающееся тем, что алгоритм шифрования содержит операцию Исключающее ИЛИ или Исключающее НЕ-ИЛИ операнда над ключом (k) в качестве параметра шифрования.
4. Вычислительное устройство по п.1, отличающееся тем, что параметр шифрования является переменным.
5. Вычислительное устройство по п.1, отличающееся тем, что операция является операцией мультиплексирования для выбора одного или нескольких входных сигналов в качестве одного или нескольких выходных сигналов, причем количество одного или нескольких выходных сигналов меньше количества одного или нескольких входных сигналов, и, по меньшей мере, один зашифрованный операнд является управляющим сигналом.
6. Вычислительное устройство по п.5, отличающееся тем, что операция является операцией мультиплексирования 2:1, и обрабатывающее устройство выполнено с возможностью реализации спецификации вычисления, заданной уравнением
Figure 00000044
где m' - зашифрованный выходной сигнал, а' - первый зашифрованный входной сигнал, b' - второй зашифрованный входной сигнал, х' - зашифрованный управляющий сигнал и k - параметр шифрования.
7. Вычислительное устройство по п.6, отличающееся тем, что для выполнения математических подопераций, содержит первый инвертор (86а) для инвертирования параметра шифрования, второй инвертор (86b) для инвертирования зашифрованного управляющего сигнала, первый, второй, третий и четвертый вентили И (84a-84d) и вентиль ИЛИ (85), выполняющий операцию ИЛИ над выходными сигналами вентилей И с первого по четвертый (84a-84d) для получения выходного сигнала.
8. Вычислительное устройство по п.5, отличающееся тем, что операция является операцией мультиплексирования 3:1, управляющий сигнал содержит два зашифрованных бита х', у', и обрабатывающее устройство выполнено с возможностью реализации спецификации вычисления, заданной уравнением
Figure 00000045
Figure 00000046
где m' - зашифрованный выходной сигнал, а', b', с' - первый, второй и третий зашифрованные входные сигналы, соответственно, х' - первый зашифрованный бит управляющего сигнала, у' - второй зашифрованный бит управляющего сигнала, и k - параметр шифрования для шифрования первого и второго управляющих сигналов.
9. Вычислительное устройство по п.5, отличающееся тем, что операция является операцией мультиплексирования 4:1, управляющий сигнал содержит два зашифрованных бита х', у', и обрабатывающее устройство выполнено с возможностью реализации спецификации вычисления, заданной уравнением
Figure 00000047
где m' - зашифрованный выходной сигнал, а', b', с' и d' - первый, второй, третий и четвертый зашифрованные входные сигналы, соответственно, х' - первый зашифрованный бит управляющего сигнала, у' - второй зашифрованный бит управляющего сигнала, и k - параметр шифрования для шифрования первого и второго битов управляющего сигнала.
10. Вычислительное устройство по п.1, отличающееся тем, что операция является арифметической операцией над, по меньшей мере, двумя операндами, причем зашифрованный операнд является одним из операндов, над которыми может выполняться арифметическая операция.
11. Вычислительное устройство по п.10, отличающееся тем, что другой(ие) операнд(ы), над которым(и) может выполняться операция, также зашифрован(ы).
12. Вычислительное устройство по п.11, отличающееся тем, что арифметическая операция является операцией Исключающее ИЛИ, причем зашифрованные операнды являются двоичными и зашифрованы посредством побитовой операции Исключающее ИЛИ с ключом, и арифметико-логическое устройство (10) для выполнения арифметических подопераций содержит средство (120) операции Исключающее ИЛИ, обрабатывающее первый зашифрованный операнд (ak), второй зашифрованный операнд (bk) и ключ (k) для получения зашифрованного результата.
13. Вычислительное устройство по п.11, отличающееся тем, что арифметическая операция является операцией И, причем операнды являются двоичными и зашифрованы посредством побитовой операции Исключающее ИЛИ с ключом, и арифметико-логическое устройство (10) для выполнения арифметических подопераций содержит
средство (131) операции И, обрабатывающее первый зашифрованный операнд (аk) и второй зашифрованный операнд (bk) для получения первого промежуточного результата,
дополнительное средство (132) операции И, обрабатывающее первый зашифрованный операнд (аk) и ключ для получения второго промежуточного результата,
дополнительное средство (133) операции И, обрабатывающее второй зашифрованный операнд (ak) и ключ для получения третьего промежуточного результата,
средство (134) операции ИЛИ, обрабатывающее первый промежуточный результат и второй промежуточный результат для получения четвертого промежуточного результата,
средство (135) операции ИЛИ, обрабатывающее второй промежуточный результат и четвертый промежуточный результат для получения зашифрованного результата.
14. Вычислительное устройство по п.11, отличающееся тем, что арифметическая операция является операцией ИЛИ, причем операнды являются двоичными и зашифрованы посредством побитовой операции Исключающее ИЛИ с ключом (k), а арифметико-логическое устройство для выполнения арифметических подопераций содержит
средство (146) инвертирования, инвертирующее ключ (k) для получения инвертированного ключа,
первое средство (141) операции И, обрабатывающее первый зашифрованный операнд и инвертированный ключ для получения первого промежуточного результата,
второе средство (142) операции И, обрабатывающее второй зашифрованный операнд и инвертированный ключ для получения второго промежуточного результата,
третье средство (143) операции И, обрабатывающее первый зашифрованный операнд и второй зашифрованный операнд (bk) для получения третьего промежуточного результата,
первое средство (144) операции ИЛИ, обрабатывающее первый промежуточный результат и второй промежуточный результат для получения четвертого промежуточного результата,
второе средство (145) операции ИЛИ, обрабатывающее третий промежуточный результат и четвертый промежуточный результат для получения зашифрованного результата арифметической операции.
15. Вычислительное устройство по п.11, отличающееся тем, что арифметическая операция является операцией НЕ-ИЛИ, причем операнды являются двоичными и зашифрованы посредством побитовой операции Исключающее ИЛИ с ключом, и арифметико-логическое устройство (10) для выполнения арифметических подопераций содержит
первое средство (151) операции И, обрабатывающее первый зашифрованный операнд (ak) и второй зашифрованный операнд (bk) для получения первого промежуточного результата,
первое средство (158) инвертирования, инвертирующее первый промежуточный результат для получения инвертированного первого промежуточного результата,
второе средство (156) инвертирования, инвертирующее второй зашифрованный операнд для получения инвертированного второго зашифрованного операнда,
второе средство (152) операции И, обрабатывающее инвертированный второй операнд и ключ для получения второго промежуточного результата,
третье средство (157) инвертирования, инвертирующее первый зашифрованный операнд для получения инвертированного первого зашифрованного операнда,
третье средство (153) операции И, обрабатывающее инвертированный зашифрованный первый операнд и ключ для получения третьего промежуточного результата,
первое средство (154) операции ИЛИ, обрабатывающее инвертированный первый промежуточный результат и второй промежуточный результат для получения четвертого промежуточного результата, и
второе средство (155) операции ИЛИ, обрабатывающее третий промежуточный результат и четвертый промежуточный результат для получения зашифрованного результата арифметической операции.
16. Вычислительное устройство по п.11, отличающееся тем, что арифметическая операция является операцией НЕ-И, причем операнды являются двоичными и зашифрованы посредством побитовой операции Исключающее ИЛИ с ключом, и арифметико-логическое устройство для выполнения арифметических подопераций содержит
первое средство (161) операции И, обрабатывающее первый зашифрованный операнд и второй зашифрованный операнд для получения первого промежуточного результата,
первое средство (164) инвертирования, инвертирующее первый промежуточный результат для получения инвертированного первого промежуточного результата,
второе средство (162) операции И, обрабатывающее второй зашифрованный операнд (bk) и ключ (k) для получения второго промежуточного результата,
второе средство (165) инвертирования, инвертирующее второй промежуточный результат для получения инвертированного второго промежуточного результата,
третье средство (163) операции И, обрабатывающее зашифрованный первый операнд (ak) и ключ для получения третьего промежуточного результата,
третье средство (166) инвертирования, инвертирующее третий промежуточный результат для получения инвертированного третьего промежуточного результата,
первое средство (167) операции ИЛИ, обрабатывающее инвертированный первый промежуточный результат и инвертированный второй промежуточный результат для получения четвертого промежуточного результата, и
второе средство (168) операции ИЛИ, обрабатывающее четвертый промежуточный результат и третий промежуточный результат для получения зашифрованного результата арифметической операции.
17. Вычислительное устройство по п.11, отличающееся тем, что арифметическая операция является операцией "сложение", причем операнды являются двоичными и зашифрованы посредством побитовой операции Исключающее ИЛИ с ключом, и арифметико-логическое устройство для выполнения арифметических подопераций содержит
первое средство (171) операции И, обрабатывающее первый зашифрованный операнд (аkn) и второй зашифрованный операнд (bkn) для получения первого промежуточного результата,
второе средство (172) операции И, обрабатывающее первый зашифрованный операнд (akn) и третий зашифрованный операнд (сkn),
третье средство (173) операции И, обрабатывающее второй зашифрованный операнд (bkn) и третий зашифрованный операнд (сkn) для получения третьего промежуточного результата,
первое средство (179) операции ИЛИ, обрабатывающее первый промежуточный результат и второй промежуточный результат для получения четвертого промежуточного результата,
второе средство (180) операции ИЛИ, обрабатывающее четвертый промежуточный результат и третий промежуточный результат для получения зашифрованного переноса ((ckn)n+1) арифметической операции "сложение".
18. Вычислительное устройство по п.17, отличающееся тем, что арифметическая операция является операцией НЕ, и арифметико-логическое устройство для выполнения арифметических подопераций дополнительно содержит дополнительное средство инвертирования, инвертирующее зашифрованный перенос ((ckn)n+1) для получения зашифрованного результата операции НЕ.
19. Вычислительное устройство по п.11, отличающееся тем, что первый зашифрованный операнд и второй зашифрованный операнд зашифрованы с использованием двух разных алгоритмов шифрования и/или ключей шифрования, и арифметико-логическое устройство (10) дополнительно содержит дополнительный вход для дополнительного параметра шифрования.
20. Вычислительное устройство по п.1, отличающееся тем, что арифметико-логическое устройство (10) выполнено с возможностью использования только средства операции И и средства операции ИЛИ, имеющих два входа, соответственно.
21. Вычислительное устройство по п.1, отличающееся тем, что зашифрованы, по меньшей мере, два операнда, первый зашифрованный операнд зашифрован с помощью первого алгоритма шифрования и первого параметра шифрования, второй операнд зашифрован с помощью второго алгоритма шифрования и второго параметра шифрования, обрабатывающее устройство содержит дополнительный вход для второго параметра шифрования, и спецификация вычисления над шифрованным текстом выводится из спецификации вычисления над открытым текстом, в результате чего незашифрованный операнд, соответствующий второму зашифрованному операнду, заменяется дополнительной математической комбинацией второго зашифрованного операнда и второго параметра шифрования, причем дополнительная комбинация является обратной второму алгоритму шифрования.
22. Вычислительное устройство по п.21, отличающееся тем, что первый и второй алгоритмы шифрования одинаковы, а первый и второй параметры шифрования различны.
23. Вычислительное устройство по п.21 или 22, отличающееся тем, что результат операции зашифрован с помощью третьего алгоритма шифрования и третьего параметра шифрования, спецификация вычисления над шифрованным текстом, образованная совокупностью математических подопераций, выводится из спецификации вычисления над открытым текстом для операции с незашифрованными операндами, в результате чего незашифрованный результат операции заменяется дополнительной математической комбинацией незашифрованного результата операции и третьего параметра шифрования.
24. Вычислительное устройство по п.23, отличающееся тем, что третий параметр шифрования является комбинацией первого и второго параметров шифрования.
25. Вычислительное устройство по п.24, отличающееся тем, что все алгоритмы шифрования заданы операцией Исключающее ИЛИ, математические комбинации заданы операцией Исключающее ИЛИ, и третий параметр шифрования является результатом операции Исключающее ИЛИ над первым и вторым параметрами шифрования.
26. Вычислительное устройство по п.25, отличающееся тем, что обрабатывающее устройство выполнено с возможностью выполнения совокупности математических подопераций, заданных нижеследующей спецификацией вычисления над шифрованным текстом, соответственно,
для операции И
AND:
Figure 00000048
для операции ИЛИ
OR:
Figure 00000049
для операции НЕ-И
NAND:
Figure 00000050
для операции НЕ-ИЛИ
NOR:
Figure 00000051
для операции Исключающее ИЛИ
XOR:
Figure 00000052
для операции Исключающее НЕ-ИЛИ
XNOR:
Figure 00000053
для функции полного сумматора с выводом бита суммы
SUM:
Figure 00000054
или
для функции полного сумматора с выводом бита переноса
CARRY:
Figure 00000055
где a(i) - первый операнд, зашифрованный с помощью первого параметра шифрования, и b(j) - второй операнд, зашифрованный с помощью второго параметра шифрования, i - первый параметр шифрования, j - второй параметр шифрования, k - третий параметр шифрования, причем третий параметр шифрования является результатом операции Исключающее ИЛИ над первым и вторым параметрами шифрования, r(k) - результат операции, зашифрованный с помощью третьего параметра шифрования, и cin(k) - входной перенос, зашифрованный с помощью третьего параметра шифрования.
27. Сумматор с выборочным переносом, суммирующий первый и второй зашифрованные операнды (а, b) для получения зашифрованного результата, причем первый и второй зашифрованные операнды состоят из совокупности битов, параметр шифрования (ki) обеспечивается для каждого бита операндов одного и того же порядка, сумматор с выборочным переносом содержит
первый сумматор (1300) со сквозным переносом, имеющий совокупность средств (1200, 1202) битовых секций, суммирующих зашифрованные биты операндов от младшего бита операндов до первого граничного бита операндов для получения зашифрованного выходного бита переноса первого сумматора со сквозным переносом,
второй и третий сумматоры (1306, 1308) со сквозным переносом, имеющие совокупность средств битовых секций, суммирующих зашифрованные биты операндов от бита, который на одну позицию старше первого граничного бита, до второго граничного бита,
причем все средства битовых секций содержат вычислительное устройство по п.17 или 26, математическая операция является операцией сложения, создающей на входе переноса внутренний зашифрованный бит суммы и внутренний зашифрованный выходной бит переноса с использованием зашифрованного бита первого операнда, зашифрованного бита второго операнда и зашифрованного входного бита переноса,
причем каждое средство битовой секции дополнительно содержит соответствующее средство (1206) перешифрования для обеспечения перешифрования входного бита переноса, зашифрованного в соответствии с параметром шифрования для средства битовой секции, из которой он выведен, в новое шифрование с помощью параметра шифрования для текущего средства битовой секции,
второй сумматор (1306) со сквозным переносом и третий сумматор (1308) со сквозным переносом установлены параллельно, причем ключ (kn+1) для младшего средства битовой секции второго сумматора со сквозным переносом может применяться в качестве входного бита переноса для младшего средства битовой секции второго сумматора (1306) со сквозным переносом, и инвертированный ключ (НЕ kn+1) для младшего средства битовой секции третьего сумматора со сквозным переносом может применяться в качестве входного бита переноса для младшего средства битовой секции третьего сумматора (1308) со сквозным переносом,
средство (1303) перешифрования для перешифрования выходного бита переноса первого сумматора со сквозным переносом на основании ключа младшего средства битовой секции второго сумматора (1306) со сквозным переносом и
средство (1304) выбора, выбирающее в качестве зашифрованных битов суммы зашифрованные биты суммы второго сумматора со сквозным переносом, если перешифрованный выходной бит переноса старшего средства битовой секции первого сумматора (1300) со сквозным переносом равен логическому «0», и зашифрованные биты суммы третьего сумматора (1308) со сквозным переносом, если перешифрованный выходной бит переноса первого сумматора (1300) со сквозным переносом равен логической «1».
28. Криптографический процессор, содержащий
память (818) для хранения данных, зашифрованных с помощью первого алгоритма шифрования,
первое средство (1102) дешифрования для дешифрования данных, хранящихся в памяти и зашифрованных с помощью первого алгоритма шифрования,
второе средство (1104) шифрования для шифрования данных, полученных от первого средства (1102) дешифрования, с помощью второго алгоритма шифрования,
вычислительное устройство (800') по любому из пп.1-26, получающее выходные данные от второго средства (1104) шифрования,
второе средство (1106) дешифрования для дешифрования выходных данных вычислительного устройства (800') в соответствии со вторым алгоритмом шифрования и
первое средство (1108) шифрования для шифрования выходных данных второго средства дешифрования в соответствии с первым алгоритмом шифрования, причем первое средство шифрования подключено к памяти, что позволяет направлять данные, зашифрованные с помощью первого алгоритма шифрования, в память.
29. Криптографический процессор по п.28, отличающийся тем, что содержит буферную память (814), подсоединенную в направлении переноса сигнала между вторым средством (1104) шифрования и вычислительным устройством (800') и/или между вычислительным устройством (800') и вторым средством (1106) дешифрования, в которой могут храниться данные буферной памяти (814), зашифрованные в соответствии со вторым алгоритмом шифрования.
30. Криптографический процессор по п.28, отличающийся тем, что для операции шифрования в соответствии с первым алгоритмом шифрования требуется больше операций, чем для операции шифрования в соответствии со вторым алгоритмом шифрования.
31. Криптографический процессор по любому из пп.28-30, отличающийся тем, что первое средство (1102) дешифрования и первое средство (1108) шифрования выполнены с возможностью изменения ключа реже, чем второе средство (1108) дешифрования и второе средство (1104) шифрования.
32. Криптографический процессор по п.28, отличающийся тем, что второй алгоритм шифрования является алгоритмом Вернама в соответствии с формулой
с=(р+k) mod k,
где с - зашифрованная информация, р - незашифрованная информация, k - ключ и mod - обозначение операции по модулю.
33. Криптографический процессор по п.32, отличающийся тем, что ключ может принимать только значения 0 или 1, причем информация открытого текста и зашифрованная информация является одним битом, и ко второму алгоритму шифрования применяется уравнение
c=p XOR k.
34. Криптографический процессор по п.33, отличающийся тем, что для каждого бита открытого текста имеется независимый ключ для второго алгоритма шифрования.
35. Способ выполнения операций над операндами, причем, по меньшей мере, один из операндов зашифрован с использованием алгоритма шифрования и параметра шифрования для получения зашифрованного результата операции, способ содержит этапы, на которых
выполняют одну или несколько математических подопераций, которые совместно обеспечивают спецификацию вычисления над шифрованным текстом, полученную из спецификации вычисления над открытым текстом для операции с незашифрованными операндами, в результате чего незашифрованный операнд, из которого получается, по меньшей мере, один зашифрованный операнд, заменяется математической комбинацией, по меньшей мере, одного зашифрованного операнда и параметра шифрования, причем математическая комбинация является обратной к алгоритму шифрования, и
спецификация вычисления над открытым текстом преобразуется вследствие математической комбинации в одну или несколько математических подопераций, которые представляют спецификацию вычисления над шифрованным текстом и которые получают в качестве входной величины только зашифрованный операнд, или его инвертированную версию, или комбинацию зашифрованного операнда или инвертированной версии зашифрованного операнда с другими операндами.
36. Способ формирования вычислительного устройства для выполнения операции над операндами, причем, по меньшей мере, один из операндов зашифрован с использованием алгоритма шифрования и параметра шифрования для получения зашифрованного результата операции, способ содержит этапы, на которых
формируют средство для обеспечения спецификации вычисления над открытым текстом для операции,
формируют средство для обеспечения замены в спецификации вычисления над открытым текстом незашифрованного операнда, соответствующего зашифрованному операнду, математической комбинацией зашифрованного операнда и параметра шифрования, причем математическая комбинация является обратной алгоритму шифрования, чтобы получить спецификацию вычисления над шифрованным текстом,
формируют средство для преобразования полученной спецификации вычисления над шифрованным текстом в одну или несколько математических подопераций, которые получают в качестве входной величины только зашифрованный операнд, или его инвертированную версию, или комбинацию зашифрованного операнда или инвертированной версии зашифрованного операнда с другими операндами, и
реализуют одну или несколько математических подопераций посредством программного обеспечения или аппаратных средств, причем упомянутое вычислительное устройство включает в себя упомянутые программное обеспечение или аппаратные средства.
37. Вычислительное устройство для выполнения операций над операндами, причем, по меньшей мере, один из операндов зашифрован с использованием алгоритма шифрования и параметра шифрования для получения зашифрованного результата операции, при этом упомянутое вычислительное устройство содержит
средство обеспечения спецификации вычисления над открытым текстом для операции,
средство замены в спецификации вычисления над открытым текстом незашифрованного операнда, соответствующего зашифрованному операнду, математической комбинацией зашифрованного операнда и параметра шифрования, причем математическая комбинация является обратной алгоритму шифрования, для получения спецификации вычисления над шифрованным текстом,
средство преобразования получения спецификации вычисления над шифрованным текстом в одну или несколько математических подопераций, которые получают в качестве входной величины только зашифрованный операнд, или его инвертированную версию, или комбинацию зашифрованного операнда или инвертированной версии зашифрованного операнда с другими операндами, и
средство реализации одной или нескольких математических подопераций для получения вычислительного устройства.
RU2004121784/09A 2002-01-16 2003-01-10 Вычислительный модуль и способ выполнения арифметической операции с зашифрованными операндами RU2279123C2 (ru)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE10201449A DE10201449C1 (de) 2002-01-16 2002-01-16 Rechenwerk, Verfahren zum Ausführen einer Operation mit einem verschlüsselten Operanden, Carry-Select-Addierer und Kryptographieprozessor
DE10201449.3 2002-01-16

Publications (2)

Publication Number Publication Date
RU2004121784A RU2004121784A (ru) 2006-01-27
RU2279123C2 true RU2279123C2 (ru) 2006-06-27

Family

ID=7712274

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2004121784/09A RU2279123C2 (ru) 2002-01-16 2003-01-10 Вычислительный модуль и способ выполнения арифметической операции с зашифрованными операндами

Country Status (8)

Country Link
US (1) US7567668B2 (ru)
EP (1) EP1472587B1 (ru)
CN (1) CN1331013C (ru)
AU (1) AU2003206709A1 (ru)
DE (2) DE10201449C1 (ru)
RU (1) RU2279123C2 (ru)
TW (1) TW200415506A (ru)
WO (1) WO2003060691A2 (ru)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2625049C1 (ru) * 2016-04-14 2017-07-11 ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ КАЗЕННОЕ ВОЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ "Военная академия Ракетных войск стратегического назначения имени Петра Великого" МИНИСТЕРСТВА ОБОРОНЫ РОССИЙСКОЙ ФЕДЕРАЦИИ Устройство поддержки защищенных логических вычислений

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101061906B1 (ko) * 2004-02-19 2011-09-02 삼성전자주식회사 전력분석공격에 안전한 기본 연산 장치 및 방법
EP1764762B1 (en) * 2004-07-07 2019-05-15 Mitsubishi Electric Corporation Electronic element and data processing method
JP2006071695A (ja) * 2004-08-31 2006-03-16 Yamatake Corp 暗号化、復号化プログラム及び暗号システム。
US8050402B2 (en) 2004-12-01 2011-11-01 Telecom Italia S.P.A. Method and related device for hardware-oriented conversion between arithmetic and boolean random masking
US7686970B2 (en) * 2004-12-30 2010-03-30 Asml Netherlands B.V. Imprint lithography
JP2008530663A (ja) * 2005-02-11 2008-08-07 ユニバーサル データ プロテクション コーポレーション マイクロプロセッサのデータセキュリティの方法およびシステム
EP1717723A1 (en) * 2005-04-29 2006-11-02 ST Incard S.r.l. Improved virtual machine or hardware processor for IC-card portable electronic devices
US9191198B2 (en) * 2005-06-16 2015-11-17 Hewlett-Packard Development Company, L.P. Method and device using one-time pad data
AT502230A2 (de) * 2005-07-26 2007-02-15 Univ Graz Tech Verfahren und schaltung zur durchführung von rechenoperationen
US7881465B2 (en) * 2005-08-08 2011-02-01 Infineon Technologies Ag Circuit and method for calculating a logic combination of two encrypted input operands
DE102005037357B3 (de) * 2005-08-08 2007-02-01 Infineon Technologies Ag Logikschaltung und Verfahren zum Berechnen eines maskierten Ergebnisoperanden
DE102006006057B4 (de) 2006-02-09 2007-12-27 Infineon Technologies Ag Datenverschlüsselungsvorrichtung und Verfahren zum Verschlüsseln von Daten
US7921148B2 (en) 2006-08-09 2011-04-05 Infineon Technologies Ag Standard cell for arithmetic logic unit and chip card controller
US20100281092A1 (en) * 2006-08-09 2010-11-04 Thomas Kuenemund Standard cell for arithmetic logic unit and chip card controller
US8538012B2 (en) * 2007-03-14 2013-09-17 Intel Corporation Performing AES encryption or decryption in multiple modes with a single instruction
US20100246808A1 (en) * 2007-12-05 2010-09-30 Nec Corporation Side channel attack tolerance evaluation apparatus, method and program
JP5173563B2 (ja) * 2008-05-02 2013-04-03 キヤノン株式会社 ライセンス管理装置及び方法
US20100177889A1 (en) * 2009-01-15 2010-07-15 Kabushiki Kaisha Toshiba Image forming apparatus and encryption process control method
US8406423B2 (en) * 2010-03-16 2013-03-26 Telcordia Technologies, Inc. Multi-bit cryptographically secure encryptor for M-ary spectral phase encoder optical code division multiple access
KR20120070873A (ko) * 2010-12-22 2012-07-02 한국전자통신연구원 부채널 방지 마스킹 덧셈 연산 장치
US9065626B2 (en) 2011-10-25 2015-06-23 Cavium, Inc. Bit error rate impact reduction
US8855248B2 (en) * 2011-10-25 2014-10-07 Cavium, Inc. Word boundary lock
WO2013095648A1 (en) * 2011-12-23 2013-06-27 Intel Corporation Three input operand vector add instruction that does not raise arithmetic flags for cryptographic applications
MX366491B (es) * 2014-12-03 2019-07-10 Nagravision Sa Método criptográfico en bloques para encriptar/desencriptar mensajes y dispositivos criptográficos para implementar este método.
WO2016184695A1 (en) 2015-05-19 2016-11-24 Koninklijke Philips N.V. Computing with encrypted values
CN106339877A (zh) * 2015-07-13 2017-01-18 华中科技大学 一种基于产品特征变形组合与相互认证的防伪方法
US10083135B2 (en) * 2015-08-28 2018-09-25 Macronix International Co., Ltd. Cooperative overlay
DE102015116049B3 (de) 2015-09-23 2017-02-16 Infineon Technologies Ag Nulldetektionsschaltkreis und maskierter boolescher oder-schaltkreis
EP3208789B1 (en) * 2016-02-22 2020-08-05 Eshard Method of protecting a circuit against a side-channel analysis
US10210323B2 (en) * 2016-05-06 2019-02-19 The Boeing Company Information assurance system for secure program execution
CN106528043A (zh) * 2016-10-27 2017-03-22 李玮 一种数学运算***
US10642758B2 (en) * 2017-06-28 2020-05-05 Western Digital Technologies, Inc. Storage drive and method of executing a compare command
US11176278B2 (en) * 2018-12-29 2021-11-16 Intel Corporation Efficient rotate adder for implementing cryptographic basic operations
TWI700915B (zh) * 2019-02-01 2020-08-01 益力半導體股份有限公司 混合式雙重網路加密系統
CN112165380A (zh) * 2019-04-24 2021-01-01 吕志强 拆分式二进制数据加密法
TWI731407B (zh) * 2019-09-09 2021-06-21 新唐科技股份有限公司 具有旁通通道的金鑰管理裝置及處理器晶片
CN114143014B (zh) * 2020-08-12 2024-05-14 中国电信股份有限公司 媒体文件加密方法、解密方法、传输方法、装置和***
DE102021100538A1 (de) 2021-01-13 2022-07-14 Infineon Technologies Ag Schaltung und verfahren zur rotationsinvarianten ausführung einer oder mehrerer operationen mit mindestens einem operanden
CN113127911B (zh) * 2021-05-06 2022-05-20 国网河北省电力有限公司信息通信分公司 电力数据加密方法、装置及终端
US11726715B2 (en) 2021-10-11 2023-08-15 Western Digital Technologies, Inc. Efficient data path in compare command execution

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5479512A (en) * 1991-06-07 1995-12-26 Security Dynamics Technologies, Inc. Method and apparatus for performing concryption
JP3276444B2 (ja) * 1993-03-22 2002-04-22 三菱電機株式会社 除算回路
US5504915A (en) * 1993-08-05 1996-04-02 Hyundai Electronics America Modified Wallace-Tree adder for high-speed binary multiplier, structure and method
JPH11143685A (ja) * 1997-06-24 1999-05-28 Internatl Business Mach Corp <Ibm> キャリー・スキップ・アダー
US6088800A (en) * 1998-02-27 2000-07-11 Mosaid Technologies, Incorporated Encryption processor with shared memory interconnect
US6356636B1 (en) * 1998-07-22 2002-03-12 Motorola, Inc. Circuit and method for fast modular multiplication
WO2001040950A2 (de) * 1999-12-02 2001-06-07 Infineon Technologies Ag Mikroprozessoranordnung mit verschlüsselung
CN1192330C (zh) * 2000-01-18 2005-03-09 因芬尼昂技术股份公司 微处理器加密装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2625049C1 (ru) * 2016-04-14 2017-07-11 ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ КАЗЕННОЕ ВОЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ "Военная академия Ракетных войск стратегического назначения имени Петра Великого" МИНИСТЕРСТВА ОБОРОНЫ РОССИЙСКОЙ ФЕДЕРАЦИИ Устройство поддержки защищенных логических вычислений

Also Published As

Publication number Publication date
CN1331013C (zh) 2007-08-08
WO2003060691A2 (de) 2003-07-24
AU2003206709A8 (en) 2003-07-30
US7567668B2 (en) 2009-07-28
WO2003060691A3 (de) 2004-01-15
DE50300633D1 (de) 2005-07-14
RU2004121784A (ru) 2006-01-27
EP1472587A2 (de) 2004-11-03
EP1472587B1 (de) 2005-06-08
CN1701294A (zh) 2005-11-23
TW200415506A (en) 2004-08-16
DE10201449C1 (de) 2003-08-14
AU2003206709A1 (en) 2003-07-30
US20050036618A1 (en) 2005-02-17

Similar Documents

Publication Publication Date Title
RU2279123C2 (ru) Вычислительный модуль и способ выполнения арифметической операции с зашифрованными операндами
KR100594265B1 (ko) 매스킹 방법이 적용된 데이터 암호처리장치, aes암호시스템 및 aes 암호방법.
US8428251B2 (en) System and method for stream/block cipher with internal random states
De Cnudde et al. Higher-order threshold implementation of the AES S-box
Rahimunnisa et al. FPGA implementation of AES algorithm for high throughput using folded parallel architecture
EP1398901B1 (en) Feistel type encryption method and apparatus protected against DPA attacks
Mozaffari-Kermani et al. Reliable and error detection architectures of Pomaranch for false-alarm-sensitive cryptographic applications
JP2010529496A (ja) 擬似ランダム生成、データ暗号化、およびメッセージ暗号化ハッシングのための暗号化方法およびデバイス
CA2750358A1 (en) Cryptography circuit particularly protected against information-leak observation attacks by the ciphering thereof
EP1836554A1 (en) Method and related device for hardware-oriented conversion between arithmetic and boolean random masking
KR20050072537A (ko) 암호화 장치, 암호화 방법 및 그 기록매체
EA003874B1 (ru) Способ обработки данных, устойчивый к извлечению данных с помощью анализа непреднамеренных сигналов побочного ввода-вывода
US6128387A (en) Method and system for using a non-inversible transform and dynamic keys to protect firmware
EP3776305A1 (en) Using cryptographic blinding for efficient use of montgomery multiplication
Buell Modern symmetric ciphers—Des and Aes
Gupta et al. Correlation power analysis of KASUMI and power resilience analysis of some equivalence classes of KASUMI S-boxes
JP2005202757A (ja) 擬似乱数生成装置及びプログラム
JP4859370B2 (ja) 電子素子
Dinu et al. Efficient masking of ARX-based block ciphers using carry-save addition on Boolean shares
KR100564599B1 (ko) 역원 계산 회로, 역원계산 방법 및 상기 역원계산 방법을실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수있는 기록매체
Yudheksha et al. A study of AES and RSA algorithms based on GPUs
Singh et al. Design of High Performance MIPS Cryptography Processor
Sai et al. Design of a high-speed and low-power AES architecture
US7178168B2 (en) Shift device and method for shifting
CN111602367A (zh) 用于保护在使白盒密码算法安全的对策中使用的熵源的方法

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20170111