RU2586020C2 - Способ применения контрмер против атак по сторонним каналам - Google Patents

Способ применения контрмер против атак по сторонним каналам Download PDF

Info

Publication number
RU2586020C2
RU2586020C2 RU2012131957/08A RU2012131957A RU2586020C2 RU 2586020 C2 RU2586020 C2 RU 2586020C2 RU 2012131957/08 A RU2012131957/08 A RU 2012131957/08A RU 2012131957 A RU2012131957 A RU 2012131957A RU 2586020 C2 RU2586020 C2 RU 2586020C2
Authority
RU
Russia
Prior art keywords
function
adr
compare
mip
data
Prior art date
Application number
RU2012131957/08A
Other languages
English (en)
Other versions
RU2012131957A (ru
Inventor
Жан-Себастьен КОРОН
Original Assignee
Крокус Текнолоджи Са
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Крокус Текнолоджи Са filed Critical Крокус Текнолоджи Са
Publication of RU2012131957A publication Critical patent/RU2012131957A/ru
Application granted granted Critical
Publication of RU2586020C2 publication Critical patent/RU2586020C2/ru

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

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

Description

Область техники
Настоящее изобретение относится к способу принятия контрмер против атак по сторонним каналам для блочных шифров и, в частности, но не исключительно, к способу принятия контрмер, который использует функцию сопоставления по месту.
Уровень техники
Многие существующие алгоритмы шифрования, которые в настоящее время используются, такие как наиболее широко используемый алгоритм шифрования 'Расширенный стандарт шифрования (AES)', являются уязвимыми для разностного анализа мощности (DPA). DPA является атакой по сторонним каналам, которая состоит в том, что сначала измеряют потребляемую мощность микропроцессора, когда криптографический алгоритм исполняется, и затем выполняют статистический анализ, чтобы восстанавливать секретные ключи, используемые в криптографическом алгоритме для шифрования. Как только секретные ключи определяются, является возможным дешифровать зашифрованную информацию.
Электромагнитные излучения микропроцессора могут также измеряться и использоваться, чтобы определять секретные ключи, используемые в криптографическом алгоритме для шифрования.
Общий способ для защиты алгоритмов секретных ключей против DPA состоит в маскировании каждой промежуточной переменной с помощью случайной маски. Маскированные данные и случайная маска затем обрабатываются отдельно и в итоге рекомбинируются в конце алгоритма. Атакующий, пытающийся анализировать потребляемую мощность микропроцессора в одиночной точке, будет получать случайные значения (случайные значения данных и случайные значения маски); поэтому такое маскирование будет защищенным против DPA первого порядка.
Контрмера маскирования характеризуется количеством случайных масок, используемых, чтобы защищать заданную чувствительную переменную; маскирование с d случайными масками называется маскированием порядка d. Маскирование порядка d может взламываться только посредством анализа стороннего канала порядка (d+1), т.е. атаки, которая требует обработки d+1 переменных одновременно. Количество исполнений, требуемых, чтобы взломать контрмеру, растет экспоненциально с порядком d. Поэтому порядок d является хорошим защитным критерием. Однако на практике наиболее эффективные контрмеры имеют только порядок d=1.
Было показано, что являются возможными атаки DPA второго порядка, чтобы дешифровать маскированные данные. Поэтому, необходимы более лучшие контрмеры, чтобы получать полностью защищенное шифрование данных.
Делались дополнительные разработки в контрмерах; одна из наиболее недавних контрмер против атак по сторонним каналам является контрмерой с порядком d=2.
Для любой контрмеры маскирования главной трудностью является защищать нелинейные части алгоритма; для Расширенного стандарта шифрования (AES) нелинейные части алгоритма являются, по существу, функциями SBOX. Используемый способ состоит из осуществления итераций по всей функции SBOX для каждого поиска SBOX, с использованием алгоритма сравнения, который реализуется как подпрограмма. Алгоритм сравнения вызывается для каждого ввода SBOX, при этом является возможным показать, что контрмера может сопротивляться любой атаке по сторонним каналам второго порядка.
Однако такие контрмеры маскирования являются весьма неэффективными, так как это требует много операций в течение исполнения и также использует много памяти микропроцессоров в течение исполнения.
Целью настоящего изобретения является устранить или ослабить, по меньшей мере, некоторые из вышеупомянутых недостатков.
Сущность изобретения
Согласно изобретению, эти цели достигаются посредством способа принятия контрмер против атак по сторонним каналам, при этом способ содержит исполнение алгоритма блочного шифра, чтобы маскировать промежуточные переменные, при этом алгоритм блочного шифра содержит одну или более нелинейных функций, отличающихся тем, что, по меньшей мере, одна из нелинейных функций реализуется с использованием функции сопоставления по месту.
В соответствии со способом по настоящему изобретению используют функции сопоставления по месту, чтобы улучшать эффективность способа. Использование функции сопоставления по месту уменьшает количество операций, которые требуются, чтобы обеспечивать эффективное принятие контрмер против атак по сторонним каналам. Дополнительно, требуется меньше памяти, чтобы осуществлять способ настоящего изобретения по сравнению с известными способами.
Функция сопоставления по месту может быть рандомизированной по битам функцией сопоставления по месту (MIP I (data; adr,b)).
Рандомизированная по битам функция сопоставления по месту может определяться как
Figure 00000001
,
где adr является адресом в памяти, data является переменной, которая может храниться по адресу в памяти, и b является значением, которое возвращается, если переменная data равняется фактическим данным, которые присутствуют по адресу adr в памяти; иначе возвращается дополнение b. b может быть битовым значением.
Может существовать следующее отношение:
Figure 00000002
,
где
Figure 00000003
является дополнением b.
Упомянутая, по меньшей мере, одна из нелинейной функции может содержать функцию compare b, определенную посредством
Figure 00000004
,
где x является первой входной переменной функции compare b и y является второй входной переменной функции compare b, и b является значением, которое возвращается, если x равняется y, так что функция compare b может реализовываться посредством: записи переменной x по адресу adr в памяти; исполнения рандомизированной по битам функции сопоставления по месту, определенной как
Figure 00000005
,
и возвращения MIP I (y; adr,b).
Нелинейная функция может содержаться в операции SubByte. Нелинейная функция может содержаться в операции SubByte алгоритма AES.
Алгоритм блочного шифра может дополнительно содержать одну или более линейных функций. По меньшей мере, одна из упомянутой одной или более линейных функций может маскироваться посредством применения операции XOR к переменным функции.
Алгоритм блочного шифра может являться алгоритмом Расширенного стандарта шифрования (AES).
Согласно дополнительному аспекту настоящего изобретения обеспечивается машиночитаемый носитель, содержащий компьютерную программу, которая сконфигурирована с возможностью осуществлять способ согласно любому из вышеупомянутых способов.
Согласно дополнительному аспекту настоящего изобретения обеспечивается способ вычисления маскированной функции Sbox второго порядка из маскированного ввода второго порядка, содержащий этапы
Figure 00000006
,
где b является переменной, которая представляет случайный бит, который индексирует регистр, и a является переменной, которая представляет индекс, который определяет количество, сколько раз этапы (a)-(c) должны выполняться, r1, r2 являются парой входных масок,
Figure 00000007
является маскированным значением, при этом
Figure 00000008
, и s1, s2 являются парой выходных масок, и adr является свободным адресом памяти, cmp является битовой переменной, которая индексирует регистр и является выводом функции MIPI(r 2 ; adr; b), Rcmp является регистровым адресом регистра микропроцессора. Обычно используются, по меньшей мере, два регистра R0 и R1 в микропроцессоре (т.е. cmp может быть 0 или 1; первый регистр R0 индексируется/адресуется, если cmp=0, и второй регистр R1 индексируется/адресуется, если cmp=1). Rb является регистровым адресом регистра микропроцессора. Обычно используются, по меньшей мере, два регистра R0 и R1 в микропроцессоре (т.е. b может быть 0 или 1; регистр R0 индексируется/адресуется, если b=0, и регистр R1 индексируется/адресуется, если b=1). MIPI(r 2 ; adr; b) является рандомизированной по битам функцией сопоставления по месту, определенной как
Figure 00000009
.
Согласно дополнительному аспекту настоящего изобретения обеспечивается машиночитаемый носитель, содержащий компьютерную программу, которая сконфигурирована с возможностью выполнять вышеупомянутый способ вычисления маскированной функции Sbox второго порядка.
Краткое описание чертежей
Изобретение будет более хорошо пониматься с помощью описания одного варианта осуществления, данного в качестве примера и проиллюстрированного посредством фигур, на которых:
фиг.1 показывает псевдокод для шифрования AES;
фиг.2 показывает псевдокод для дешифрования AES;
фиг.3 показывает таблицу, содержащую количество переносов памяти (фаза предварительной обработки), количество операций XOR и переносов памяти (главная фаза) и память, требуемую для исходного варианта осуществления функции compare b и варианта осуществления функции compare b согласно настоящему изобретению;
фиг.4 показывает таблицу, содержащую количество операций XOR, количество переносов памяти и память, требуемую для полного второго варианта осуществления алгоритма Ривайна-Доттакса-Проуффа (Rivain-Dottax-Prouff) (RDP2), который использует способ настоящего изобретения для осуществления функции compare b.
Подробное описание возможных вариантов осуществления
Будет подробно описываться использование способа настоящего изобретения в алгоритме шифрования AES. Однако следует понимать, что способ настоящего изобретения не ограничен использованием с алгоритмом шифрования AES; способ настоящего изобретения может использоваться в любом алгоритме блочного шифра.
[0025] Алгоритм шифрования AES работает над 4×4 матрицей байтов si,j, называемых 'состоянием'. Для шифрования каждая составная часть алгоритма шифрования AES (за исключением последней составной части) содержит следующие четыре этапа:
1. AddRoundKey: к каждому байту состояния применяется операция XOR с раундовым ключом ki,j, выведенным из плана смены ключей
Figure 00000010
.
2. SubBytes: каждый байт состояния обновляется с использованием 8-битной функции S-box
Figure 00000011
.
Функция S-box определяется как
Figure 00000012
,
где Aff является аффинной функцией над GF(28), и
Figure 00000013
является обратной функцией над GF(28) (с
Figure 00000014
).
3. ShiftRows: байты состояния циклически сдвигаются в каждой строке на некоторое смещение; первая строка остается неизменной.
4. MixColumns: байты состояния модифицируются столбец за столбцом следующим образом:
Figure 00000015
.
Псевдокод для шифрования AES с 128-битным ключом дан на фиг.1. Матрица слов 'w' содержит раундовые ключи
Figure 00000016
, которые генерируются посредством алгоритма плана смены ключей.
Для дешифрования каждый раунд (за исключением последнего) содержит следующие операции:
1. InvShiftRows: является обратной для операции ShiftRows (этап 3 шифрования). Байты состояния (набор промежуточных переменных, используемых в шифровании AES, как определено в абзаце [0025]) циклически сдвигаются в каждой строке на некоторое смещение; первая строка байтов остается неизменной.
2. InvSubBytes: является обратной для операции SubByte (этап 2 шифрования). Обратное S-box
Figure 00000017
применяется над каждым байтом состояния с:
Figure 00000018
.
3. AddRoundKey: операция равняется своей собственной обратной.
4. InvMixColumns: является обратной для операции MixColumns (этап 4 шифрования). Байты состояния модифицируются столбец за столбцом следующим образом:
Figure 00000019
Псевдокод для обратного шифра дается на фиг.2.
В заключение, план смены раундовых ключей
Figure 00000020
основывается на следующих операциях:
1. SubWord: берет четырехбайтное входное слово и применяет S-box (S(x)) к каждому из четырех байтов.
2. RotWord: берет слово
Figure 00000021
как ввод и выполняет циклическую перестановку, чтобы возвратить
Figure 00000022
.
3. Xor с Rcon: берет в качестве ввода 32-битное слово, и к нему применяется операция xor с раундовой постоянной матрицей слов Rcon[i]=
Figure 00000023
для раунда
Figure 00000024
Figure 00000025
. Мы ссылаемся на [5] для полного описания плана смены ключей.
Как описано во введении, принцип контрмеры маскирования состоит в том, чтобы маскировать каждую промежуточную переменную с помощью одной или более случайных масок. В случае контрмеры маскирования с порядком d=2 используются две маски, что дает в целом три составляющие. Более точно, любая переменная состояния p (представленная как байт в AES) разделяется в три составляющие
Figure 00000026
с:
Figure 00000027
,
где составляющие p1 и p2 называются масками.
Три составляющие p0, p1 и p2 должны обрабатываться таким способом, что предыдущее отношение сохраняется на всем протяжении исполнения алгоритма шифрования. Отметим, что аналогично каждый байт k раундового ключа должен разделяться в три составляющие
Figure 00000028
, так что
Figure 00000029
.
Линейные части блочного шифра легко обрабатываются. Функция f называется линейной, когда выполняется следующее:
Figure 00000030
Уравнение (1).
Тогда для такой линейной функции, когда заданы как ввод три составляющие
Figure 00000031
так, что:
Figure 00000032
является достаточным вычислить
Figure 00000033
и
Figure 00000034
отдельно, и, формируя Уравнение (1), получаем:
Figure 00000035
.
Поэтому три выходные составляющие
Figure 00000036
и
Figure 00000037
являются действительным разделением выходного f(p). Для шифрования AES операции AddRoundKey, ShiftRows и MixColumns являются линейными функциями и могут, поэтому, обрабатываться таким способом. Однако операция SubBytes (такая как функция S-box в случае AES) является нелинейной и должна обрабатываться другим образом.
Чтобы обрабатывать нелинейные операции, такие как функция S-box в случае AES, алгоритм может определяться следующим образом:
Figure 00000038
.
Отметим, что для AES n=m=8. Алгоритм предпочтительно содержит маскированную функцию compare b, определенную следующим образом:
Figure 00000039
,
где x и y являются входными переменными функции compare b.
Вычисление маскированной функции S-box второго порядка по маскированному вводу второго порядка может выполняться следующим образом:
Ввод: маскированное значение
Figure 00000040
, где r1; r2 являются парой входных масок, и
Figure 00000041
являются парой выходных масок.
Вывод: вывод маскированной функции S-box
Figure 00000042
Figure 00000043
1. b
Figure 00000044
rand(1).
2. Для a=0 по 2n-1 делать
(a)
Figure 00000045
,
(b)
Figure 00000046
.
3. Возвратить Rb.
При этом
Figure 00000047
являются входными переменными функции compare b,
Figure 00000048
, тогда cmp=compare b(
Figure 00000049
, r2)=compare b(r2; r2)=b, что дает
Figure 00000050
Figure 00000051
, как требуется.
В этом конкретном варианте осуществления необходимо проявлять осторожность при реализации функции compare b. Именно функция compare b (x; y) предпочтительно не должна реализовываться посредством вычисления
Figure 00000052
напрямую, так как в вышеописанном алгоритме это сводится к вычислению
Figure 00000053
a), которое, комбинируясь с
Figure 00000054
, дает утечку второго порядка.
Теперь будет описываться способ, реализующий функцию compare b, чтобы предотвращать любую утечку стороннего канала первого порядка на
Figure 00000055
Напомним, что функция compare b определяется как
Figure 00000056
.
Способ осуществления требует таблицу T из 2n битов в RAM. Таблица T предварительно обрабатывается следующим образом:
1.
Figure 00000057
.
2. Для i=0 по 2n-1 делать
Figure 00000058
.
3.
Figure 00000059
.
Это завершает этап предварительной обработки.
В конце этого этапа предварительной обработки таблица T удовлетворяет:
Figure 00000060
.
Затем функция compare b реализуется как:
возвратить
Figure 00000061
.
В этом случае все промежуточные переменные в вычислении являются независимыми от
Figure 00000062
; это предотвращает любую утечку стороннего канала первого порядка на
Figure 00000063
.
Вышеупомянутый вариант осуществления compare b является известным в данной области техники. Неблагоприятно, вышеупомянутый вариант осуществления compare b является неэффективным; алгоритм compare b требует 2n битов RAM; на практике, однако, может являться более удобным использовать 2n байтов RAM, так как иначе должны использоваться способы битного доступа, что может являться обременительным для реализации защиты. Предварительная обработка требует 2n+1 переносов памяти; такая предварительная обработка должна делаться до каждого вызова алгоритма RDP2. Каждый вызов compare b затем требует две операции XOR и один перенос памяти. Для AES с n=8 функция compare b, поэтому требует 256 байтов RAM и 257 переносов памяти в течение предварительной обработки. В целом, алгоритм RDP2 тогда требует 6·2n операций XOR, 3·2n+1 переносов памяти и генерирование n+1 случайных битов.
Способ согласно настоящему изобретению основывается на другом варианте осуществления функции compare b, и, в частности, варианте осуществления, который использует функцию сопоставления по месту.
Любой процессор имеет обычные инструкций dataсчитывание(adr) и запись(data; adr), которые считывают и записывают некоторые данные по некоторому адресу adr в памяти. В способе сопоставления по месту процессор имеет дополнительную функцию MIP(data; adr), которая работает следующим образом:
Figure 00000064
.
Другими словами, данные сопоставляются в местоположении памяти adr, и значение по адресу adr никогда не покидает память.
В настоящем изобретении обеспечивается дополнительная функция MIP I, которая является рандомизированной по битам версией функции MIP, определенная следующим образом:
Figure 00000065
.
Предпочтительно имеется следующее отношение:
Figure 00000066
.
С использованием функции MIP I функция compare b может просто реализовываться следующим образом, где adr является свободным адресом в памяти.
compare b(x; y):
1. запись (x; adr),
2. возврат MIP I (y; adr; b).
Как только x записывается по адресу adr в памяти, функция MIP I (y; adr; b) возвращает b, если x=y, и
Figure 00000067
иначе, как требуется функцией compare b.
С использованием функции MIP I вычисление маскированной функции S-box второго порядка по маскированному вводу второго порядка становится следующей:
Ввод: маскированное значение
Figure 00000068
, пара выходных масок
Figure 00000069
, свободный адрес памяти adr.
Вывод: вывод маскированной функции S-box
Figure 00000070
Figure 00000071
1. b
Figure 00000072
rand(1).
2. для a=0 по 2n-1 делать
(a) запись
Figure 00000073
,
(b) cmp
Figure 00000074
,
(c) Rcmp
Figure 00000075
.
3. Возвратить Rb.
Вариант осуществления функции compare b на основе функции MIP I удовлетворяет такому же свойству, что и исходный вариант осуществления функции compare b; именно все промежуточные переменные являются независимыми от
Figure 00000076
.
Отметим, что рандомизированная функция MIP I (y; adr; b) является предпочтительной. Если вместо этого используется функция MIP(y; adr) (посредством сначала вычисления MIP(y; adr) и затем возврата MIP(y; adr)
Figure 00000077
), то вариант осуществления будет небезопасным, так как промежуточная переменная MIP(y; adr) не является независимой от
Figure 00000078
.
Фиг.3 показывает таблицу, которая сравнивает эффективность исходного варианта осуществления функции compare b и варианта осуществления функции compare b согласно настоящему изобретению (т.е. с использованием функции MIP I). Ясно, что требуется меньше операций и меньше RAM, чтобы реализовывать функцию compare b согласно настоящему изобретению.
Фиг.4 показывает таблицу, которая сравнивает эффективность алгоритма маскирования, исходно реализованного, и алгоритма маскирования, осуществленного согласно настоящему изобретению (т.е. с использованием функции MIP I). Для AES с n=8 настоящее изобретение требует 1 байта RAM (вместо 2n), 1024 операций XOR (вместо 1536) и 512 переносов памяти (вместо 769). Если операции XOR и переносы памяти имеют одну и ту же стоимость, вариант настоящего изобретения является на 33% более быстрым исходного варианта осуществления. Таким образом, для одного и того же уровня защиты настоящее изобретение обеспечивает более быструю контрмеру, которая требует меньше RAM.
Различные модификации и изменения для описанных вариантов осуществления изобретения должны быть очевидными для специалистов в данной области техники без отхода от объема изобретения, как определяется в прилагаемой формуле изобретения. Хотя изобретение было описано в соединении с конкретными предпочтительными вариантами осуществления, следует понимать, что изобретение, как заявлено, не должно неподобающим образом ограничиваться таким конкретным вариантом осуществления.

Claims (9)

1. Способ принятия контрмер против атак по сторонним каналам, при этом способ содержит исполнение алгоритма блочного шифра, чтобы маскировать промежуточные переменные, при этом алгоритм блочного шифра содержит одну или более нелинейных функций, отличающийся тем, что по меньшей мере одна из нелинейных функций реализуется с использованием функции сопоставления по месту.
2. Способ по п. 1, в котором функция сопоставления по месту является рандомизированной по битам функцией сопоставления по месту (MIPI (data; adr,b)).
3. Способ по п. 2, в котором рандомизированная по битам функция сопоставления по месту определяется как
Figure 00000079

где adr является адресом в памяти, data является переменной, которая может храниться по адресу в памяти, и b является значением, которое возвращается, если переменная data равняется фактическим данным, которые присутствуют по адресу adr в памяти; иначе возвращается дополнение b.
4. Способ по п. 3, в котором MIPI (data; adr; b)=MIP (data; adr)
Figure 00000080
, где
Figure 00000081
является дополнением b.
5. Способ по п. 2, в котором упомянутая по меньшей мере одна из нелинейной функции содержит функцию compareb, определенную посредством
Figure 00000082

где х является первой входной переменной функции compareb и у является второй входной переменной функции compareb, и b является значением, которое возвращается, если х равняется у, и
Figure 00000083
является значением, которое возвращается, если х не равняется у, так что функция compareb может реализовываться посредством: записи переменной х по адресу adr в памяти; исполнения рандомизированной по битам функции сопоставления по месту, определенной как
Figure 00000084

и возвращения MIPI (у; adr,b).
6. Способ по п. 1, в котором нелинейная функция содержится в операции SubByte.
7. Способ по п. 1, в котором алгоритм блочного шифра дополнительно содержит одну или более линейных функций, при этом по меньшей мере одна из упомянутых одной или более линейных функций шифруются посредством применения операции XOR к переменным функции.
8. Способ по п. 1, в котором алгоритм блочного шифра является алгоритмом Расширенного стандарта шифрования (AES).
9. Машиночитаемый носитель, содержащий компьютерную программу, которая сконфигурирована с возможностью осуществлять способ по п. 1.
RU2012131957/08A 2011-07-26 2012-07-25 Способ применения контрмер против атак по сторонним каналам RU2586020C2 (ru)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP11290337 2011-07-26
EPEP11290337 2011-07-26

Publications (2)

Publication Number Publication Date
RU2012131957A RU2012131957A (ru) 2014-01-27
RU2586020C2 true RU2586020C2 (ru) 2016-06-10

Family

ID=47576770

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2012131957/08A RU2586020C2 (ru) 2011-07-26 2012-07-25 Способ применения контрмер против атак по сторонним каналам

Country Status (5)

Country Link
US (1) US8971526B2 (ru)
JP (1) JP5892887B2 (ru)
KR (1) KR20130012940A (ru)
CN (1) CN102904716A (ru)
RU (1) RU2586020C2 (ru)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2738321C1 (ru) * 2018-09-20 2020-12-11 Общество с ограниченной ответственностью "Цифра" Способ криптографического преобразования и устройство для его осуществления

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3012234B1 (fr) * 2013-10-23 2017-02-24 Proton World Int Nv Protection de l'execution d'un algorithme contre des attaques par canaux caches
EP2884387B1 (en) * 2013-12-13 2016-09-14 Thomson Licensing Efficient modular addition resistant to side-channel attacks
KR20150123476A (ko) * 2014-04-25 2015-11-04 한국전자통신연구원 부채널 공격 방지를 위한 대칭키 암호 알고리즘의 함수 마스킹 장치 및 그 방법
WO2016102180A1 (en) * 2014-12-22 2016-06-30 Koninklijke Philips N.V. Hiding of a program execution
CN106161005B (zh) * 2015-03-31 2019-05-07 北京南瑞智芯微电子科技有限公司 一种分组加密算法防攻击的掩码方法和装置
FR3040515B1 (fr) 2015-09-02 2018-07-27 St Microelectronics Rousset Verification de la resistance d'un circuit electronique a des attaques par canaux caches
FR3040514B1 (fr) * 2015-09-02 2017-09-15 Stmicroelectronics Rousset Protection dpa d'un algorithme de rijndael
NL2015745B1 (en) * 2015-11-09 2017-05-26 Koninklijke Philips Nv A cryptographic device arranged to compute a target block cipher.
US10103873B2 (en) 2016-04-01 2018-10-16 Intel Corporation Power side-channel attack resistant advanced encryption standard accelerator processor
US11303436B2 (en) 2016-06-23 2022-04-12 Cryptography Research, Inc. Cryptographic operations employing non-linear share encoding for protecting from external monitoring attacks
US10256973B2 (en) * 2016-09-30 2019-04-09 Intel Corporation Linear masking circuits for side-channel immunization of advanced encryption standard hardware
CN108234107B (zh) * 2016-12-21 2022-11-22 国民技术股份有限公司 一种带仿射掩码的s盒变换方法及装置
EP3367606B1 (en) * 2017-02-24 2019-09-18 Secure-IC SAS Automatic insertion of masking into an algorithm
EP3422176A1 (en) * 2017-06-28 2019-01-02 Gemalto Sa Method for securing a cryptographic process with sbox against high-order side-channel attacks
CN108809622B (zh) * 2018-06-15 2021-10-26 上海科技大学 一种抗功耗侧信道攻击对策验证方法
CN111339577B (zh) * 2020-02-12 2022-06-07 南京师范大学 一种具有优良dpa抗性s盒的构造方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7848514B2 (en) * 2004-05-24 2010-12-07 Research In Motion Limited Table masking for resistance to power analysis attacks
JP2007006184A (ja) * 2005-06-24 2007-01-11 Nippon Telegr & Teleph Corp <Ntt> 暗号処理装置及び認証アプリケーションプログラム
FR2893796B1 (fr) * 2005-11-21 2008-01-04 Atmel Corp Procede de protection par chiffrement
US8306216B2 (en) * 2007-01-11 2012-11-06 Irdeto B.V. Method and system for tracking or identifying copy of implementation of computational method, and computation system
JP2008233683A (ja) * 2007-03-22 2008-10-02 Toshiba Corp 暗号処理装置及びプログラム
JP4962165B2 (ja) * 2007-06-22 2012-06-27 大日本印刷株式会社 暗号処理装置,暗号処理プログラム及び暗号処理方法
US8615078B2 (en) * 2009-08-21 2013-12-24 Electronics And Telecommunications Research Institute Method and apparatus for processing F-function in seed encryption system
FR2950721B1 (fr) * 2009-09-29 2011-09-30 Thales Sa Procede d'execution d'un algorithme de protection d'un dispositif electronique par masquage affine et dispositif associe
CN101938349A (zh) * 2010-10-01 2011-01-05 北京航空航天大学 一种适用于硬件实现的s盒及其电路实现方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2738321C1 (ru) * 2018-09-20 2020-12-11 Общество с ограниченной ответственностью "Цифра" Способ криптографического преобразования и устройство для его осуществления

Also Published As

Publication number Publication date
US20130028412A1 (en) 2013-01-31
CN102904716A (zh) 2013-01-30
KR20130012940A (ko) 2013-02-05
JP2013029835A (ja) 2013-02-07
US8971526B2 (en) 2015-03-03
JP5892887B2 (ja) 2016-03-23
RU2012131957A (ru) 2014-01-27

Similar Documents

Publication Publication Date Title
RU2586020C2 (ru) Способ применения контрмер против атак по сторонним каналам
Gueron A memory encryption engine suitable for general purpose processors
US8199909B2 (en) Method and device for carrying out a cryptographic calculation
US9515820B2 (en) Protection against side channels
US8515057B2 (en) Method and device for executing crytographic calculation
US8553877B2 (en) Substitution table masking for cryptographic processes
US8036379B2 (en) Cryptographic processing
US20130016834A1 (en) Security countermeasures for power analysis attacks
US10210776B2 (en) DPA protection of a rijndael algorithm
US10243728B2 (en) Verification of the resistance of an electronic circuit to side-channel attacks
US8605894B2 (en) Cryptographic process execution protecting an input value against attacks
US10187198B2 (en) Protection of a rijndael algorithm
CN109726565B (zh) 在抗泄漏原语中使用白盒
US20070211890A1 (en) Table splitting for cryptographic processes
US8619985B2 (en) Table splitting for cryptographic processes
JP6793822B2 (ja) テーブルベースの実装への2次以上のdca攻撃に対抗する方法
KR101203474B1 (ko) 암호화 프로세서를 갖는 단위 전자장치의 보안화 방법
Sachdeva et al. Implementation of AES-128 using multiple cipher keys
US20210143978A1 (en) Method to secure a software code performing accesses to look-up tables
EP3484095A1 (en) Computer-implemented cryptographic method and device for implementing this method
Shi et al. Secure and Efficient White-box Encryption Scheme for Data Protection against Shared Cache Attacks in Cloud Computing
TW201312982A (zh) 旁通道攻擊的防禦方法