RU2357365C2 - Способ и устройство для выполнения криптографического вычисления - Google Patents
Способ и устройство для выполнения криптографического вычисления Download PDFInfo
- Publication number
- RU2357365C2 RU2357365C2 RU2007101704/09A RU2007101704A RU2357365C2 RU 2357365 C2 RU2357365 C2 RU 2357365C2 RU 2007101704/09 A RU2007101704/09 A RU 2007101704/09A RU 2007101704 A RU2007101704 A RU 2007101704A RU 2357365 C2 RU2357365 C2 RU 2357365C2
- Authority
- RU
- Russia
- Prior art keywords
- masked
- bit
- data block
- data blocks
- algorithm
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/04—Masking or blinding
- H04L2209/046—Masking or blinding of operations, operands or results of the operations
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
Изобретение относится к области криптографии. Технический результат заключается в уменьшении требуемой памяти для выполнения шифрования. Сущность изобретения заключается в том, что криптографическое вычисление осуществляют в электронном компоненте согласно определенному криптографическому алгоритму, включающему, по меньшей мере, одну точно определенную нелинейную операцию на k-битовых блоках данных, при этом k является целым числом больше 2. Генерируют несколько промежуточных маскированных блоков данных из j бит (b⊕m, с⊕m2, Δ⊕n) на основании исходного блока данных (а) из k бит, при этом j является целым числом, меньшим k. Затем производят нелинейную операцию S, по меньшей мере, на одном j-битовом маскированном промежуточном блоке данных (Δ⊕n) при помощи таблицы замещения (106) с 2j входами, получая j-битовый измененный блок данных (S(Δ)⊕n). Измененный j-битовый блок данных объединяют, по меньшей мере, с некоторыми из указанных j-битовых маскированных промежуточных блоков данных в один итоговый k-битовый блок (а'), соответствующий исходному k-битовому блоку данных, через преобразование, включающее указанную точно определенную нелинейную операцию. 2 н. и 17 з.п. ф-лы, 2 ил.
Description
Настоящее изобретение относится к области криптографии и, в частности, к защите секретности ключей, используемых для криптографических алгоритмов. В дальнейшем его описание связано с неограничительным применением для выполнения шифрования или дешифрования.
Алгоритмы шифрования, соответственно дешифрования, называемые еще алгоритмами криптографической защиты, предназначены для шифрования и соответственно дешифрования информации. Как правило, такие алгоритмы содержат последовательность из нескольких операций или вычислений, которые последовательно производят над предназначенными для шифрования данными для получения зашифрованных данных.
Такие алгоритмы шифрования могут подвергаться «атаке» с целью нарушения секретности используемых ключей. В настоящее время известны многие типы атак.
Так, некоторые атаки основаны на утечке информации, обнаруживаемой во время выполнения алгоритмов шифрования. В основном эти атаки основаны на корреляции между утечками информации, обнаруживаемыми во время обработки данных и ключа или ключей алгоритмом шифрования (атаки путем анализа потребления тока, электромагнитных излучений, времени вычисления и т.д.).
Известны методы защиты от таких атак. Одним из таких наиболее используемых методов защиты является случайное маскирование промежуточных данных, обрабатываемых алгоритмом шифрования или дешифрования. В таком типе защиты данные на входе маскируются случайными значениями. Таким образом, промежуточные данные, получаемые в результате операций, осуществляемых в алгоритме, могут быть декоррелированы от ключа или ключей.
Атаки с целью нарушения секретности ключей алгоритма шифрования аналогичны атакам с целью нарушения секретности ключей алгоритма дешифрования. В дальнейшем признаки, описанные для алгоритма шифрования, относятся также и к алгоритму дешифрования.
Как правило, алгоритм шифрования содержит несколько линейных и/или нелинейных операций. Для шифрования исходных данных получают промежуточные данные после каждой из операций алгоритма шифрования. При манипулировании маскированными промежуточными данными после каждой операции получают маскированные промежуточные данные. Таким образом получают защиту алгоритма шифрования.
Вместе с тем после каждой из этих операций имеет смысл извлечь немаскированные промежуточные данные путем «демаскирования» данных. Легче демаскировать промежуточные данные, полученные в результате линейной операции. Действительно, линейную операцию L, производимую на данных х, маскированных при помощи единицы или исключения со случайной маской m, можно записать следующим образом:
L(х⊕m)=L(x)⊕L(m).
Таким образом, зная m, можно легко демаскировать L(х⊕m), чтобы получить L(х).
Совсем иначе обстоит дело с нелинейными операциями. Действительно, для нелинейной операции F, производимой на данных х, маскированной при помощи единицы или исключения со случайной маской m, можно записать:
F(x⊕m)=F(x)⊕F(m).
Чтобы демаскировать промежуточные данные, обработанные алгоритмом шифрования, необходимо осуществить ряд вычислений, которые могут быть сложными и дорогостоящими в зависимости от защищаемого алгоритма шифрования.
Известны алгоритмы шифрования, в которых используются нелинейные операции, такие как алгоритмы DES от "Data Encryption Standard" или алгоритм AES от "Advanced Encryption Standard". Было предложено несколько способов защиты алгоритма AES при помощи маскирования.
В таких алгоритмах нелинейные операции, как правило, осуществляют в виде таблиц замещения. Так, нелинейную операцию, соответствующую таблице замещения tab[i], применяемой к данным х, можно записать в следующем виде:
у=tab[x].
В этом случае защита маскированием требует спонтанного генерирования случайно маскированных таблиц. Так, маскированную нелинейную операцию, соответствующую маскированной таблице замещения tab'[i], применяемой к данным х, маскированной случайной маской ml, можно записать в следующем виде:
y=tab'[x⊕m1]=y⊕m2
Чтобы иметь возможность демаскировать полученные таким образом данные у', применяют сохранение в памяти маскированных таблиц. Способы защиты такого типа были предложены для алгоритма шифрования DES в документе авторов Louis Goubin и Jacques Patarin "DES and Differential Power Analysis - The "Duplication" Methode" в Cetin Кауа Кос and Christof Paar, editors, Proceedings of CHES'99, том 1717 "Lectures Notes in Computer Science", стр.158-172, Springer-Verlag, 2000, а также в патенте FR 2802741 «Устройство для применения алгоритма поблочного шифрования с повторением раундов».
Однако такое решение может оказаться чрезвычайно дорогим с учетом необходимого объема памяти, в частности, когда немаскированная таблица замещения имеет относительно большой размер.
Например, нелинейная операция AES может быть осуществлена с использованием таблицы замещения размером 256 байт. Одновременное шифрование 16 байт сообщения требует наличия в памяти 16 маскированных таблиц замещения на 256 байт каждая. Следовательно, размер памяти, необходимый для маскирования осуществляемой таким образом нелинейной операции, должен составлять 4 кбайт.
Таким образом, недостатком данного типа защиты является то, что он требует значительного объема памяти.
Известен также документ "Provably Secure Masking of AES", Johannes Blomer, Guajardo Merchan, Volker Krummel, опубликованный 30.04.04, и документ "Secure and Efficient Masking of AES - A Mission Impossible" версия 1, E.Oswald, Stephan Mangard, Norbert Pramstaller, 4 июня 2004 г., в котором предложено осуществлять нелинейную операцию алгоритма AES в конечном поле GF(4).
В этой последней статье предложен метод маскирования операций, в котором нелинейную операцию на промежуточных маскированных данных преобразуют в линейную операцию путем транспонирования из одного конечного поля (GF(28)) в другое (GF(4)).
Вместе с тем, такой способ маскирования AES предполагает осуществлять нелинейные операции в GF(4) и, следовательно, обрабатывать биты попарно.
Как правило, легче производить эффективные операции на блоках бит размером, по существу, равном числу бит, обрабатываемых одновременно используемым микропроцессором, чем операции, осуществляемые на блоках бит размером, существенно отличающимся от числа бит, обрабатываемых одновременно микропроцессором.
Таким образом, эффективную реализацию алгоритма шифрования с обработкой бит попарно сложно производить на 8, 16, 32 и даже 64-разрядных микропроцессорах.
Настоящее изобретение призвано предложить решение для устранения этих недостатков.
Первым объектом настоящего изобретения является способ выполнения криптографического вычисления в электронном компоненте согласно определенному криптографическому алгоритму, включающему, по меньшей мере, одну точно определенную нелинейную операцию на блоках данных из k бит, при этом k является целым числом, превышающим 2, при этом способ содержит следующие этапы:
- генерируют несколько промежуточных маскированных блоков данных из j бит на основании исходного блока данных из k бит, при этом j является целым числом, меньшим k;
- производят нелинейную операцию, по меньшей мере, на одном из j-битовых маскированных промежуточных блоков данных при помощи таблицы замещения с 2j входами, получая j-битовый измененный блок данных;
- измененный j-битовый блок данных объединяют, по меньшей мере, с некоторыми из указанных j-битовых маскированных промежуточных блоков данных в один итоговый k-битовый блок, соответствующий исходному k-битовому блоку данных, через преобразование, включающее указанную точно определенную нелинейную операцию.
Таким образом, можно реализовать нелинейную операцию, точно определенную для блоков данных размером k, на блоках данных размером j, генерируя несколько промежуточных блоков данных размером j, при этом размер выражается в битах, на основании блока данных размером k. После обработки промежуточных блоков данных и, в частности, применения нелинейной операции объединяют полученные таким образом блоки данных, чтобы получить блок данных размером k, соответствующий преобразованию исходного блока данных. Это преобразование включает точно определенную нелинейную операцию. Оно может также включать другие операции алгоритма. Действительно, может быть более предпочтительным осуществлять другие операции алгоритма на j-битовых блоках данных, чем на k-битовых блоках данных, прежде чем объединять эти блоки, чтобы снова получить k-битовый блок данных.
Этап генерирования нескольких промежуточных блоков данных на основании исходного блока данных может содержать несколько этапов, что будет подробнее описано ниже. Так, предпочтительно обрабатывают блоки данных размером, меньшим, чем исходный блок данных, предназначенный для шифрования при помощи алгоритма. Следовательно, точно определенная нелинейная операция, включенная в алгоритм шифрования, может применяться для промежуточных блоков данных меньшего размера, и поэтому таблица замещения, соответствующая нелинейной операции, применяемой для промежуточных блоков данных, имеет размер, строго меньший, чем размер таблицы замещения, которая соответствовала бы точно определенной нелинейной операции алгоритма, применяемой для исходного блока данных.
Благодаря этому можно защищать при помощи маскирования криптографические вычисления алгоритма шифрования, содержащего нелинейную операцию, в частности, в случае, когда эта нелинейная операция соответствует таблице замещения относительно большого размера.
Этап маскирования предпочтительно можно осуществлять либо на исходных блоках данных перед этапом генерирования блоков промежуточных данных, либо на блоках промежуточных данных.
В варианте выполнения настоящего изобретения этап генерирования содержит операцию разложения (Т), состоящую в разложении k-битовых блоков данных (а) на j-битовые блоки данных (b, с), и этап объединения содержит обратную операцию разложения (Т-1), состоящую в создании k-битового блока данных (а') на основании j-битовых блоков данных (В, С).
В варианте выполнения настоящего изобретения криптографическое вычисление алгоритма дополнительно включает, по меньшей мере, одну линейную операцию, и маскированную линейную операцию осуществляют перед операцией разложения Т или после обратной операции разложения Т-1. В этом случае, если алгоритм шифрования содержит линейные операции перед нелинейной операцией, операцию разложения Т осуществляют после линейных операций. Если алгоритм шифрования содержит линейные операции после нелинейной операции, обратную операцию разложения Т-1 осуществляют после линейных операций.
В другом варианте выполнения, если алгоритм шифрования включает линейные операции, то эти маскированные линейные операции осуществляют после операции разложения Т и перед обратной операцией разложения Т-1. Таким образом, если такой алгоритм шифрования является алгоритмом с повторением раундов, при этом каждый из раундов содержит, по меньшей мере, одну линейную операцию и, по меньшей мере, одну нелинейную операцию, каждый раунд осуществляют после операции разложения Т и перед обратной операцией разложения Т-1.
Можно также применять операцию разложения Т в начале алгоритма шифрования и обратную операцию разложения Т-1 - в конце алгоритма шифрования. Таким образом, если такой алгоритм шифрования является алгоритмом с повторением раундов, все операции всех раундов алгоритма осуществляют, обрабатывая блоки строго меньшего размера, чем исходный блок данных.
На фиг.2 показан такой вариант выполнения, применяемый для алгоритма типа AES. Так, предназначенный для шифрования блок данных 201 размером k разбивают при помощи операции разложения Т на несколько предназначенных для шифрования промежуточных блоков данных (202) размером j. В этом случае для промежуточных блоков данных размером j применяют операции, защищенные маскированием (203), эквивалентные операциям алгоритма AES, точно определенным для блоков данных размером k. Получают зашифрованные промежуточные блоки данных 204. Затем применяют обратную операцию разложения Т-1 для получения зашифрованного блока данных 206 размером k. Таким образом, этот вариант выполнения требует изменения операций алгоритма, чтобы их можно было применять для промежуточных блоков данных.
Этап генерирования маскированных промежуточных блоков данных может содержать маскированные сложения и маскированные умножения, которые осуществляют согласно алгоритму маскированного умножения, использующему на входе маскированные блоки данных размером j и случайную маску и выдающему маскированное произведение двух немаскированных блоков данных.
Этап объединения промежуточных блоков данных и измененного блока данных может также содержать маскированные сложения и маскированные умножения, которые осуществляют согласно алгоритму маскированного умножения, использующему на входе маскированные блоки данных размером j и выдающему маскированное произведение двух немаскированных блоков данных.
Как детально поясняется далее, когда исходный блок данных имеет размер в один байт и когда можно осуществлять точно определенную нелинейную операцию при помощи таблицы замещения размером, равным 256 байт, как в алгоритме типа AES, то предпочтительно можно применять нелинейную операцию для промежуточного блока данных, используя таблицу замещения размером 8 байт.
В варианте выполнения настоящего изобретения нелинейная операция является биективной и для не нулевых элементов соответствует мультипликативной инверсии в конечном поле. Предпочтительно условно эта операция приводит элемент 0 в соответствие с элементом 0.
В варианте выполнения настоящего изобретения алгоритм шифрования, использующий на входе сообщение, содержащее определенное число исходных блоков размером k, последовательно обрабатывает каждый из исходных блоков данных. Таким образом, генерируют и вводят в память таблицу замещения для каждого исходного блока данных, затем один за другим обрабатывают каждый блок данных.
В другом варианте выполнения настоящего изобретения алгоритм шифрования обрабатывает одновременно все блоки данных входящего сообщения. Таким образом, генерируют и вводят в память одновременно таблицы замещения для каждого из исходных блоков данных сообщения, затем одновременно обрабатывают указанные блоки данных сообщения. Этот тип одновременной обработки требует области памяти большего размера, чем последовательная обработка блоков данных. С этой точки зрения, как будет подробно пояснено ниже, оказывается наиболее предпочтительным уменьшить таблицу замещения, соответствующую нелинейной операции, как предлагается настоящим изобретением.
В варианте выполнения настоящего изобретения исходный блок данных обрабатывают, используя каждый раз при осуществлении нелинейной операции алгоритма шифрования таблицу замещения, генерированную в начале алгоритма шифрования. Таким образом, одну и ту же таблицу замещения используют во время всей обработки исходного блока данных при помощи алгоритма шифрования.
Можно также генерировать и сохранять в памяти таблицу замещения перед каждой маскированной нелинейной операцией. В этом варианте выполнения перед каждым осуществлением нелинейной операции используют новую таблицу замещения.
Такие алгоритмы классически содержат несколько раундов, каждый из которых содержит линейные операции и, по меньшей мере, одну нелинейную операцию. Наиболее часто встречающиеся атаки на выполнение вычислений в таких алгоритмах основаны на обнаружении утечки информации во время выполнения первых раундов и последних раундов, так как именно эти раунды обрабатывают блоки данных, близкие к предназначенным для шифрования блокам данных и к зашифрованным блокам данных. Таким образом, для защиты таких алгоритмов от атак можно маскировать блоки данных, обрабатываемые в первом или первых раундах и/или в последнем или последних раундах. Следовательно, предпочтительно генерировать и вводить в память таблицы замещения, по меньшей мере, для первого раунда и, по меньшей мере, для последнего раунда.
Вторым объектом настоящего изобретения является электронный компонент выполнения криптографического вычисления согласно определенному криптографическому алгоритму, включающему, по меньшей мере, одну точно определенную нелинейную операцию на k-битовых блоках данных, при этом k является целым числом больше 2, при этом компонент содержит:
- средства генерирования нескольких j-битовых маскированных блоков на основании исходного k-битового блока данных, при этом j является целым числом меньше k;
- средства применения нелинейной операции, по меньшей мере, для одного из j-битовых маскированных блоков при помощи таблицы замещения с 2j входами с последующим получением измененного j-битового блока;
- средства объединения измененного j-битового блока и, по меньшей мере, некоторых из указанных j-битовых маскированных блоков в один итоговый k-битовый блок, соответствующий исходному k-битовому блоку данных, через преобразование, включающее указанную точно определенную нелинейную операцию.
Благодаря этому можно защитить от атаки путем обнаружения утечек информации электронный компонент, использующий алгоритм шифрования типа AES, содержащий нелинейную операцию, при помощи манипулирования маскированными блоками данных, и используя маскированные таблицы замещения размером, равным 8 байт, вместо маскированных таблиц замещения размером, равным 256 байт.
Следовательно, такой способ защиты алгоритма шифрования требует относительно небольшого размера памяти. Он может применяться в электронных компонентах шифрования с относительно небольшой областью памяти.
Кроме того, в варианте выполнения настоящего изобретения обрабатывают промежуточные блоки данных размером в 4 бит. Такой размер позволяет более легко и эффективно осуществлять операции, чем при обработке блоков данных меньшего размера.
Другие аспекты, задачи и преимущества настоящего изобретения будут более очевидны из нижеследующего описания одного из вариантов его выполнения.
Изобретение будет более понятно при рассмотрении прилагаемых чертежей, на которых:
фиг.1 иллюстрирует способ защиты алгоритма шифрования согласно варианту выполнения настоящего изобретения;
фиг.2 иллюстрирует способ защиты алгоритма шифрования типа AES согласно варианту выполнения настоящего изобретения.
В варианте выполнения настоящего изобретения используют хорошо известные математические свойства конечных полей (или полей Галуа, Galois Fields (GF)), чтобы на основании исходного блока данных размером k генерировать несколько блоков данных размером строго меньше k. В описании представлен вариант выполнения настоящего изобретения для защиты путем маскирования алгоритма шифрования типа AES, использующего на входе сообщение, состоящее из 16 байт, при этом каждый из байт обрабатывают путем повторения раундов, каждый из которых содержит последовательность линейных операций и, по меньшей мере, одну нелинейную операцию. Изобретение касается и других типов алгоритма шифрования, содержащих, по меньшей мере, одну нелинейную операцию, независимо от того, осуществляется ли он с повторением раундов или нет.
В алгоритме типа AES нелинейная операция соответствует мультипликативной инверсии для ненулевых элементов в конечном поле GF(28). Таким образом, чтобы на основании одного блока данных генерировать несколько промежуточных блоков данных строго меньшего размера, в варианте выполнения настоящего изобретения предлагается транспонировать нелинейную операцию из поля GF(28) на поле GF((24)2).
Известен документ авторов Tsing-Fu Ling, Chih-Pin Su, Chih-Tsun Huang и Cheng-Wen Wu "A high-throuhput low-cost AES cipher chip", а также документ Vincent Rijmen "Efficient implementation of the Rijndael S-box" и документ Atri Rudra, Pradeep K.Dubey, Charanjit S.Jutia, Vijay Kurmar, Josyula R.Rao и Pankaj Rohatgi "Efficient Rijndael Encryption Implementation with Composite Field Arithmetic", затем документ R.W.Ward и T.C.A.Molteno "Efficient hardware calculation of inversion in GF(28)", в которых показывается, как нелинейная операция алгоритма AES может быть транспонирована в сложное поле GF((24)2) и как такое транспонирование позволяет улучшить эффективность алгоритма шифрования.
Таким образом, классически алгоритм AES использует на входе сообщение, состоящее из 16 байт. Для каждого из этих байт применяется несколько раундов, при этом каждый раунд использует подключ, производный от главного секретного ключа. Как правило, AES содержит следующие операции:
- нелинейную операцию, классически обозначаемую SubBytes, соответствующую 8-битовой таблице замещения, которая применяется для каждого из 16 байт входящего сообщения;
- линейную операцию добавления единицы или исключения, классически обозначаемую AddRoundKey, применяемую между 16 байт подключа и 16 байт входящего сообщения;
- линейную операцию, классически обозначаемую ShiftRows, соответствующую перемещению, применяемому для 16 байт;
- линейную операцию, классически обозначаемую MixColumns, применяемую для 16 байт.
Операция SubBytes алгоритма AES содержит нелинейную операцию, которая в конечном поле GF(28) для ненулевых элементов соответствует мультипликативной инверсии. Такую операцию можно транспонировать в сложное поле GF((24)2) таким образом, чтобы обрабатывать блоки данных размером 4 бит перед реализацией обратной операции преобразования Т-1 для других операций обработки байт.
Выбирают отображение GF(24) и следующий полином поля:
Р(х)=х2+Dx+Е;
при этом D и Е являются элементами конечного поля GF(24), таким образом, можно записать:
GF(28)≅GF(24)[x]/P(x)
На фиг.1 показан вариант выполнения настоящего изобретения.
Конструируют операцию 102 разложения Т, которая записывается следующим образом:
Т(а)=bx+с;
где а является элементом GF(28), (bx+с) является элементом GF((24)2), a b и с являются элементами конечного поля GF(24).
На основании блока данных размером в один байт эта операция разложения Т генерирует промежуточные блоки данных b и с размером, равным 4 бит.
Эту операцию разложения можно осуществить в виде умножения с матрицей 8×8.
После этой операции разложения обработанные блоки данных являются промежуточными блоками данных размером 4 бит, строго меньшим размера исходного 8-битового блока данных.
Такая операция разложения Т позволяет уменьшить размер обработанных блоков данных таким образом, чтобы уменьшить размер таблицы замещения, соответствующей первой нелинейной операции. Поэтому ее осуществляют перед осуществлением нелинейной операции. Вместе с тем, ее можно осуществлять на различных этапах алгоритма шифрования. Так, для каждого из 16 байт входящего сообщения эту операцию разложения можно осуществлять либо в начале алгоритма, либо в начале каждого из раундов алгоритма, либо перед каждой реализацией нелинейной операции.
Настоящее изобретение охватывает варианты выполнения, независимо от этапа алгоритма, на котором реализуют эту операцию разложения.
После осуществления нелинейной операции с использованием таблицы замещения можно реализовать обратную операцию разложения Т-1 для возвращения в конечное поле GF(28) и новой обработки байт.
Настоящее изобретение охватывает варианты выполнения независимо от этапа алгоритма, на котором реализуют эту обратную операцию разложения.
В зависимости от этапов, на которых реализуют операцию разложения Т и обратную операцию разложения Т-1, к конечному полю GF((24)2) адаптируют другие операции алгоритма, определенные в GF(28).
Таким образом, если операцию разложения Т осуществляют перед нелинейной операцией и если операцию обратного разложения Т-1 осуществляют после нелинейной операции, то нет необходимости адаптировать другие операции алгоритма к конечному полю GF((24)2). Зато в случае, когда операцию разложения осуществляют в начале алгоритма, а операцию обратного разложения Т-1 - в конце алгоритма шифрования, все операции алгоритма приводят в соответствие с конечным полем
GF((24)2). В этом случае операции алгоритма шифрования заменяют их эквивалентами в конечном поле GF((24)2).
В варианте выполнения настоящего изобретения производят маскирование 103, по меньшей мере, промежуточных блоков данных, обработанных в момент нелинейной операции, по меньшей мере, для первого раунда и последнего раунда алгоритма AES, что будет подробнее показано далее. Изобретение охватывает также вариант выполнения, в котором промежуточные блоки, обработанные в момент нелинейной операции, маскируют для всех раундов алгоритма, а также вариант выполнения, в котором маскируют все или часть промежуточных блоков, обработанных во время исполнения алгоритма, независимо от того, являются ли эти блоки данных элементами GF(28) или элементами GF((24)2).
В варианте выполнения настоящего изобретения нелинейная операция представляет собой мультипликативную инверсию в GF(24) для ненулевых элементов.
В конечном поле GF((24)2) инверсию элемента (bx+с) можно записать в следующем виде:
(bx+с)-1=bΔ-1х+(с+bD)Δ-1;
где Δ=b2E+bcD+с2.
Таким образом, первая нелинейная операция мультипликативной инверсии конечного поля GF(28), транспонированная в конечное поле GF((24)2), соответствует умножениям, сложениям и нелинейной операции мультипликативной инверсии. Эта нелинейная операция в конечном поле GF((24)2) может быть осуществлена при помощи таблицы замещения 4 бит на 4 бит, занимающей 8 байт.
Как было указано выше, требуется маскировать обработанные таким образом блоки данных. Маскирование сложений хорошо известно.
Чтобы маскировать умножения, вводят алгоритм 104 маскированного умножения М(х, у, z). В дальнейшем элементы m1, m2, m3, n, n', n1, n2 являются случайными масками. Такой алгоритм на входе использует:
- маскированные элементы GF(24), (b⊕m1) и (с⊕m2);
- маску m3.
Такой алгоритм на выходе выдает маскированное произведение в виде:
bc⊕m3.
Можно записать следующие этапы:
u=(b⊕m1)(c⊕m2)=bc⊕bm2⊕cm1⊕m1m2
v=(с⊕m2)m1=cm1⊕m1m2
w=(b⊕m1)m2=bm2⊕m1m2
M(b⊕m1,с⊕m2,m3)=u⊕v⊕wm1m2⊕m3=bc⊕m3
В варианте выполнения настоящего изобретения маскируют первые промежуточные блоки данных. Таким образом, получают первое маскированное разложение, которое записывается в следующем виде:
(b⊕m1)x+(с⊕m2).
Затем используют алгоритм маскированного умножения для вычисления маскированного умножения в следующем виде:
М(b⊕m1,с⊕m2,m3)=bc⊕m3.
Затем на этапе 105 точно так же вычисляют следующие произведения для получения маскированного блока данных Δ:
р=(bc⊕m3)D=bcD⊕m3D;
q=(b⊕m1)2E=b2E⊕m12E;
r=(с⊕m2)2=с2⊕m22.
В результате получают следующее уравнение:
р⊕q⊕r⊕m12E⊕m22⊕m3D⊕n=Δ⊕n.
Таким образом, в конечном поле GF(24) путем сложения и умножения получают маскированный блок данных Δ⊕n, к которому применяют нелинейную операцию мультипликативной инверсии.
В варианте выполнения настоящего изобретения эту нелинейную операцию осуществляют на маскированном блоке данных, используя на этапе 106 таблицу замещения tab(x), проверяя следующее уравнение:
tab[x⊕n]=х-1⊕n'.
Таким образом, эта маскированная таблица замещения позволяет получить инверсию маскированного блока данных, то есть Δ-1⊕n'.
Применяя алгоритм маскированного умножения, вычисляют:
- М(b⊕m1,Δ-1⊕n',n1)=bΔ-1⊕n1=В;
- M(bD+с)⊕(m1D+m2),Δ-1⊕n',n2)=(bD+с),Δ-1⊕n2=С.
Таким образом, путем объединения 108 маскированных блоков данных b⊕m1, с⊕m2 и Δ-1⊕n' получают Вх+С.
Таким образом, получают маскированное значение (bx+с)-1, причем не обрабатывая для реализации этой нелинейной операции немаскированные блоки данных b, с и Δ.
Затем выполняют обратную операцию 109 разложения Т-1 для получения элемента 110:
а'=T-1(Вх+С).
В варианте выполнения настоящего изобретения определяют D, равное 1, чтобы уменьшить число производимых умножений.
Предпочтительно нелинейную операцию транспонируют из конечного поля GF(28) в конечное поле GF((24)2), в котором нелинейная операция соответствует комбинации сложений, умножений и эквивалентной нелинейной операции в поле с меньшим числом элементов.
Таким образом, можно защитить электронные компоненты от атак путем обнаружения утечек информации во время исполнения криптографического вычисления, содержащего нелинейную операцию, осуществляя операции, эквивалентные этой нелинейной операции, на блоках данных меньшего размера, что позволяет реализовать эти вычисления на маскированных блоках данных, так как соответствующая таблица замещения имеет меньший размер.
Claims (19)
1. Способ выполнения криптографического расчета в электронном компоненте согласно определенному криптографическому алгоритму, включающему, по меньшей мере, одну точно определенную нелинейную операцию на блоках данных из k бит, при этом k является целым числом, превышающим 2, при этом способ содержит следующие этапы:
генерируют несколько промежуточных маскированных блоков данных из j бит (b⊕m, c⊕m2, Δ⊕n) на основании исходного блока данных из k бит, при этом j является целым числом, меньшим k;
производят нелинейную операцию S, соответствующую указанной точно определенной нелинейной операции, по меньшей мере, на одном j-битовом маскированном промежуточном блоке данных (Δ⊕n) при помощи таблицы замещения (106) с 2j входами, получая j-битовый измененный блок данных (S(Δ)⊕n);
измененный j-битовый блок данных объединяют, по меньшей мере, с некоторыми из указанных j-битовых маскированных промежуточных блоков данных в один итоговый k-битовый блок (а'), соответствующий исходному k-битовому блоку данных, через преобразование, включающее указанную точно определенную нелинейную операцию.
генерируют несколько промежуточных маскированных блоков данных из j бит (b⊕m, c⊕m2, Δ⊕n) на основании исходного блока данных из k бит, при этом j является целым числом, меньшим k;
производят нелинейную операцию S, соответствующую указанной точно определенной нелинейной операции, по меньшей мере, на одном j-битовом маскированном промежуточном блоке данных (Δ⊕n) при помощи таблицы замещения (106) с 2j входами, получая j-битовый измененный блок данных (S(Δ)⊕n);
измененный j-битовый блок данных объединяют, по меньшей мере, с некоторыми из указанных j-битовых маскированных промежуточных блоков данных в один итоговый k-битовый блок (а'), соответствующий исходному k-битовому блоку данных, через преобразование, включающее указанную точно определенную нелинейную операцию.
2. Способ по п.1, в котором исходный блок данных маскируют перед этапом генерирования промежуточных блоков данных.
3. Способ по п.1, в котором промежуточные блоки данных маскируют (103) перед применением нелинейной операции.
4. Способ по п.1, в котором этап генерирования содержит операцию разложения (Т), состоящую в разложении k-битового блока данных на j-битовые блоки данных (b, с), и этап объединения содержит обратную операцию разложения (Т-1), состоящую в составлении k-битового блока данных на основании j-битовых блоков данных (В, С) в k-битовый блок данных (а').
5. Способ по п.4, в котором криптографическое вычисление алгоритма дополнительно включает, по меньшей мере, одну линейную операцию, и согласно которому маскированную линейную операцию осуществляют перед операцией разложения (Т) или после обратной операции разложения (Т-1).
6. Способ по п.4, в котором криптографическое вычисление алгоритма дополнительно включает линейную операцию, и согласно которому указанную маскированную линейную операцию осуществляют после операции разложения (Т) и перед обратной операцией разложения (Т-1).
7. Способ по п.4, в котором операцию разложения (Т) применяют в начале криптографического алгоритма и обратную операцию разложения (Т-1) - в конце криптографического алгоритма.
8. Способ по п.1, в котором этап генерирования маскированных промежуточных блоков данных содержит маскированные сложения и маскированные умножения, которые осуществляют согласно алгоритму маскированного умножения, использующему на входе маскированные блоки данных размером j и случайную маску и выдающему маскированное произведение двух не маскированных блоков данных.
9. Способ по п.1, в котором этап объединения промежуточных блоков данных и измененного блока данных содержит маскированные сложения и маскированные умножения, которые осуществляют согласно алгоритму маскированного умножения, использующему на входе маскированные блоки данных размером j и случайную маску и выдающему маскированное произведение двух не маскированных блоков данных.
10. Способ по п.1, в котором блок данных имеет размер в 1 байт, и таблица замещения имеет размер в 8 байт, и согласно которому нелинейная операция является биективной и для ненулевых элементов является мультипликативной инверсией в конечном поле.
11. Способ по п.1, в котором блок данных маскируют, реализуя единицу или исключение между блоком данных и случайной маской.
12. Способ по п.1, в котором криптографический алгоритм использует на входе сообщение, содержащее определенное число исходных блоков размером k, и согласно которому генерируют и вводят в память таблицу замещения последовательно для каждого исходного блока данных указанного сообщения, затем один за другим обрабатывают каждый блок данных.
13. Способ по п.12, в котором таблицы замещения генерируют и вводят в память одновременно для каждого из исходных блоков данных сообщения, затем одновременно обрабатывают указанные блоки данных сообщения.
14. Способ по п.12, в котором блок данных шифруют, используя для всех операций криптографического алгоритма таблицу замещения, генерированную в начале криптографического алгоритма.
15. Способ по п.12, в котором таблицу замещения генерируют перед каждой маскированной нелинейной операцией.
16. Способ по п.12, в котором алгоритм содержит определенное число раундов и согласно которому таблицу замещения генерируют и вводят в память, по меньшей мере, для первого раунда и, по меньшей мере, для последнего раунда.
17. Способ по п.1, в котором криптографический алгоритм является алгоритмом AES.
18. Электронный компонент, предназначенный для криптографического вычисления согласно определенному криптографическому алгоритму, включающему, по меньшей мере, одну точно определенную нелинейную операцию на k-битовых блоках данных, при этом к является целым числом больше 2, при этом компонент содержит
средства генерирования нескольких j-битовых маскированных блоков на основании исходного k-битового блока данных, при этом j меньше k;
средства применения нелинейной операции S, соответствующей указанной точно определенной нелинейной операции, по меньшей мере, для одного из j-битовых маскированных блоков при помощи таблицы замещения с 2j входами с последующим получением измененного j-битового блока;
средства объединения измененного j-битового блока и, по меньшей мере, некоторых из указанных j-битовых маскированных блоков в один итоговый k-битовый блок, соответствующий исходному k-битовому блоку данных, через преобразование, включающее указанную точно определенную нелинейную операцию.
средства генерирования нескольких j-битовых маскированных блоков на основании исходного k-битового блока данных, при этом j меньше k;
средства применения нелинейной операции S, соответствующей указанной точно определенной нелинейной операции, по меньшей мере, для одного из j-битовых маскированных блоков при помощи таблицы замещения с 2j входами с последующим получением измененного j-битового блока;
средства объединения измененного j-битового блока и, по меньшей мере, некоторых из указанных j-битовых маскированных блоков в один итоговый k-битовый блок, соответствующий исходному k-битовому блоку данных, через преобразование, включающее указанную точно определенную нелинейную операцию.
19. Электронный компонент по п.18, в котором криптографический алгоритм является алгоритмом AES.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0406678A FR2871969B1 (fr) | 2004-06-18 | 2004-06-18 | Procede et dispositif d'execution d'un calcul cryptographique |
FR0406678 | 2004-06-18 |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2007101704A RU2007101704A (ru) | 2008-07-27 |
RU2357365C2 true RU2357365C2 (ru) | 2009-05-27 |
Family
ID=34947876
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2007101704/09A RU2357365C2 (ru) | 2004-06-18 | 2005-06-06 | Способ и устройство для выполнения криптографического вычисления |
Country Status (9)
Country | Link |
---|---|
US (1) | US8199909B2 (ru) |
EP (1) | EP1757009B1 (ru) |
JP (1) | JP4828526B2 (ru) |
CN (1) | CN101006677B (ru) |
AU (1) | AU2005263805B2 (ru) |
CA (1) | CA2570617C (ru) |
FR (1) | FR2871969B1 (ru) |
RU (1) | RU2357365C2 (ru) |
WO (1) | WO2006008355A1 (ru) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2580018C2 (ru) * | 2014-05-26 | 2016-04-10 | Закрытое акционерное общество "Лаборатория Касперского" | Способ определения маски зашифрованной области диска |
RU2692419C1 (ru) * | 2015-10-12 | 2019-06-24 | Конинклейке Филипс Н.В. | Криптографическое устройство и кодирующее устройство |
RU2711193C2 (ru) * | 2015-11-09 | 2020-01-15 | Конинклейке Филипс Н.В. | Криптографическое устройство, приспособленное для вычисления целевого блочного шифра |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2899751B1 (fr) * | 2006-04-10 | 2008-07-04 | Oberthur Card Syst Sa | Procede de traitement cryptographique de donnees, dispositif et programme associes |
US7860240B2 (en) * | 2007-06-29 | 2010-12-28 | Intel Corporation | Native composite-field AES encryption/decryption accelerator circuit |
ATE513377T1 (de) * | 2007-12-13 | 2011-07-15 | Oberthur Technologies | Verfahren für kryptografische datenverarbeitung, insbesondere unter verwendung einer s box und diesbezügliche einrichtung und software |
FR2935503A1 (fr) * | 2008-08-28 | 2010-03-05 | St Microelectronics Rousset | Protection d'un algorithme de chiffrement |
FR2948792B1 (fr) * | 2009-07-30 | 2011-08-26 | Oberthur Technologies | Procede de traitement de donnees protege contre les attaques par faute et dispositif associe |
EP2293487A1 (en) * | 2009-09-08 | 2011-03-09 | Thomson Licensing | A method of diversification of a round function of an encryption algorithm |
JP5822757B2 (ja) * | 2012-02-28 | 2015-11-24 | Kddi株式会社 | ストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラム |
US9143325B2 (en) * | 2012-12-14 | 2015-09-22 | Microsoft Technology Licensing, Llc | Masking with shared random bits |
CN104219045B (zh) * | 2013-06-03 | 2018-11-09 | 中国科学院上海高等研究院 | Rc4 流密码生成器 |
FR3040514B1 (fr) * | 2015-09-02 | 2017-09-15 | Stmicroelectronics Rousset | Protection dpa d'un algorithme de rijndael |
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 |
FR3040513B1 (fr) * | 2015-09-02 | 2018-11-16 | Stmicroelectronics (Rousset) Sas | Protection d'un algorithme de rijndael |
WO2017223509A1 (en) * | 2016-06-23 | 2017-12-28 | Cryptography Research, Inc. | Cryptographic operations employing non-linear share encoding for protecting from external monitoring attacks |
CN107689863A (zh) * | 2017-09-05 | 2018-02-13 | 成都三零嘉微电子有限公司 | 一种算术加法掩码转布尔异或掩码的防护电路 |
US11227065B2 (en) * | 2018-11-06 | 2022-01-18 | Microsoft Technology Licensing, Llc | Static data masking |
US10922494B2 (en) * | 2018-12-11 | 2021-02-16 | Mitel Networks Corporation | Electronic communication system with drafting assistant and method of using same |
US11507699B2 (en) * | 2019-09-27 | 2022-11-22 | Intel Corporation | Processor with private pipeline |
CN115001728B (zh) * | 2021-06-28 | 2024-01-23 | 河南科家创新科技集团有限公司 | 一种计算机前端处理方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100250803B1 (ko) * | 1995-09-05 | 2000-04-01 | 다니구찌 이찌로오 | 데이타 변환장치 및 데이타 변환방법 |
EP0839418B1 (en) * | 1996-05-20 | 2003-05-02 | Koninklijke Philips Electronics N.V. | Cryptographic method and apparatus for non-linearly merging a data block and a key |
JP3499810B2 (ja) * | 2000-03-06 | 2004-02-23 | 株式会社東芝 | 暗号化装置、暗号化方法及び暗号化装置としてコンピュータを機能させるためのプログラムを記録したコンピュータ読取り可能な記録媒体並びに復号装置、復号方法及び復号装置としてコンピュータを機能させるためのプログラムを記録したコンピュータ読取り可能な記録媒体 |
JP2005534973A (ja) * | 2002-08-06 | 2005-11-17 | ディスクレティックス・テクノロジーズ・リミテッド | 有限体内でデータを操作する方法および装置 |
WO2004070510A2 (en) | 2003-02-06 | 2004-08-19 | Discretix Technologies Ltd. | Device and method of manipulating masked data |
KR100594265B1 (ko) * | 2004-03-16 | 2006-06-30 | 삼성전자주식회사 | 매스킹 방법이 적용된 데이터 암호처리장치, aes암호시스템 및 aes 암호방법. |
-
2004
- 2004-06-18 FR FR0406678A patent/FR2871969B1/fr not_active Expired - Fee Related
-
2005
- 2005-06-06 EP EP05775259.4A patent/EP1757009B1/fr not_active Not-in-force
- 2005-06-06 WO PCT/FR2005/001376 patent/WO2006008355A1/fr active Application Filing
- 2005-06-06 JP JP2007515982A patent/JP4828526B2/ja not_active Expired - Fee Related
- 2005-06-06 US US11/569,704 patent/US8199909B2/en not_active Expired - Fee Related
- 2005-06-06 AU AU2005263805A patent/AU2005263805B2/en not_active Ceased
- 2005-06-06 CN CN2005800201508A patent/CN101006677B/zh not_active Expired - Fee Related
- 2005-06-06 CA CA2570617A patent/CA2570617C/fr not_active Expired - Fee Related
- 2005-06-06 RU RU2007101704/09A patent/RU2357365C2/ru not_active IP Right Cessation
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2580018C2 (ru) * | 2014-05-26 | 2016-04-10 | Закрытое акционерное общество "Лаборатория Касперского" | Способ определения маски зашифрованной области диска |
RU2692419C1 (ru) * | 2015-10-12 | 2019-06-24 | Конинклейке Филипс Н.В. | Криптографическое устройство и кодирующее устройство |
RU2711193C2 (ru) * | 2015-11-09 | 2020-01-15 | Конинклейке Филипс Н.В. | Криптографическое устройство, приспособленное для вычисления целевого блочного шифра |
Also Published As
Publication number | Publication date |
---|---|
RU2007101704A (ru) | 2008-07-27 |
CN101006677A (zh) | 2007-07-25 |
EP1757009B1 (fr) | 2017-05-10 |
FR2871969B1 (fr) | 2006-12-01 |
US20080253557A1 (en) | 2008-10-16 |
CN101006677B (zh) | 2011-09-28 |
FR2871969A1 (fr) | 2005-12-23 |
WO2006008355A1 (fr) | 2006-01-26 |
CA2570617A1 (fr) | 2006-01-26 |
US8199909B2 (en) | 2012-06-12 |
JP4828526B2 (ja) | 2011-11-30 |
EP1757009A1 (fr) | 2007-02-28 |
CA2570617C (fr) | 2015-08-04 |
JP2008502931A (ja) | 2008-01-31 |
AU2005263805B2 (en) | 2009-11-19 |
AU2005263805A1 (en) | 2006-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2357365C2 (ru) | Способ и устройство для выполнения криптографического вычисления | |
CN106788974B (zh) | 掩码s盒、分组密钥计算单元、装置及对应的构造方法 | |
US7899190B2 (en) | Security countermeasures for power analysis attacks | |
Akkar et al. | An implementation of DES and AES, secure against some attacks | |
JP3600454B2 (ja) | 暗号化・復号装置、暗号化・復号方法、およびそのプログラム記憶媒体 | |
Trichina | Combinational logic design for AES subbyte transformation on masked data | |
Trichina et al. | Simplified adaptive multiplicative masking for AES | |
Akkar et al. | A generic protection against high-order differential power analysis | |
US8971526B2 (en) | Method of counter-measuring against side-channel attacks | |
US8515057B2 (en) | Method and device for executing crytographic calculation | |
US20120170739A1 (en) | Method of diversification of a round function of an encryption algorithm | |
KR100574965B1 (ko) | 유한체 곱셈기 | |
Jeong et al. | Differential fault analysis on block cipher SEED | |
Wang et al. | Higher-order masking in practice: A vector implementation of masked AES for ARM NEON | |
KR101506499B1 (ko) | 마스킹이 적용된 seed를 이용한 암호화 방법 | |
WO2008064704A1 (en) | Method and device for preventing information leakage attacks on a device implementing a cryptographic function | |
CA2504338C (en) | Security countermeasures for power analysis attacks | |
Trichina et al. | Secure and efficient AES software implementation for smart cards | |
US11201724B2 (en) | Method to counter DCA attacks of order 2 and higher on table-based implementations | |
Liu et al. | iCETD: An improved tag generation design for memory data authentication in embedded processor systems | |
Karunakaran et al. | FPGA based Fault Analysis for Encrypted Code | |
Baihan et al. | A high-order masking approach for CLEFIA implementation on FPGA and Intel | |
Minier | A three rounds property of the AES | |
Benhadjyoussef et al. | The research of correlation power analysis on a aes implementations | |
Miyajan | An Efficient Leakage Free Countermeasure of AES against Side Channel Attacks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PD4A | Correction of name of patent owner | ||
MM4A | The patent is invalid due to non-payment of fees |
Effective date: 20190607 |