портативный носитель данных с их защитой от несанкционированного доступа, обеспечиваемой за счет искажения сообщений, и способ защиты конфиденциальных данных
Классы МПК: | G07F7/10 вместе с кодовым сигналом |
Автор(ы): | Германн ДРЕКСЛЕР (DE), Харальд ФАТЕР (DE) |
Патентообладатель(и): | ГИЗЕКЕ УНД ДЕВРИЕНТ ГМБХ (DE) |
Приоритеты: |
подача заявки:
2000-12-20 публикация патента:
20.07.2006 |
Изобретение относится к носителю данных с чипом, предназначенным для хранения и обработки конфиденциальной или секретной информации, а также к способу защиты конфиденциальных данных. Техническим результатом является повышение защиты конфиденциальных данных от несанкционированного доступа к ним. Носитель содержит, по меньшей мере, одну память, в которой хранится рабочая программа, содержащая множество команд, при этом выполнение каждой из таких команд сопровождается появлением сигналов, поддающихся обнаружению вне чипа. Способ защиты конфиденциальных данных на указанном носителе заключается в том, что при обработке данных, многократно используемых при шифровании сообщения М с помощью операций по модулю, рабочей программой предусмотрено искажение сообщения М путем прибавления к нему при каждом его использовании i (i=1,...,k) коэффициента ri*n, где r - случайное число, a n - модуль. 2 н. и 10 з.п. ф-лы.
Формула изобретения
1. Носитель данных с чипом, используемым для обработки и хранения конфиденциальных данных и имеющим по меньшей мере одну память, в которой хранится рабочая программа с множеством команд, выполнение каждой из которых сопровождается появлением сигналов, поддающихся обнаружению вне чипа, отличающийся тем, что при обработке данных, многократно используемых при шифровании сообщения М с помощью операций по модулю, рабочей программой предусмотрено искажение сообщения М путем прибавления к нему при каждом его использовании i (i=1,...,k) коэффициента ri*n, где r - случайное число, a n - модуль.
2. Носитель данных по п.1, отличающийся тем, что используемые данные представляют собой промежуточный результат вычислений, а последующая операция возведения в квадрат состоит в выполнении операции умножения, при этом такой промежуточный результат подвергается предварительному искажению с помощью различных функций.
3. Носитель данных по п.1, отличающийся тем, что используемые данные представляют собой промежуточный результат вычислений, а последующее удвоение этого промежуточного результата состоит в выполнении операции сложения, при этом такой промежуточный результат подвергается предварительному искажению с помощью различных функций.
4. Носитель данных по любому из пп.1-3, отличающийся тем, что шифрование сообщения М выполняется путем модульного возведения в степень согласно выражению «Y=Mdmod n», при котором при наличии "1" в показателе d используется сообщение М, которое при каждом его использовании изменяется с помощью иной функции.
5. Носитель данных по п.1, отличающийся тем, что при выполнении операции по модулю используются степени сообщения, которые при каждом использовании этого сообщения изменяются с помощью иной функции.
6. Носитель данных по п.4, отличающийся тем, что модуль n умножается на постоянный множитель k, после чего с этим модулем n выполняется еще одна операция по модулю.
7. Способ защиты конфиденциальных данных на носителях данных с чипом, используемым для обработки и хранения конфиденциальных данных и имеющим по меньшей мере одну память, в которой хранится рабочая программа, содержащая множество команд, выполнение каждой из которых сопровождается появлением сигналов, поддающихся обнаружению вне чипа, отличающийся тем, что при обработке данных, многократно используемых при шифровании сообщения М с помощью операций по модулю, сообщение М искажают путем прибавления к нему при каждом его использовании i (i=1,...,k) коэффициента ri*n, где r - случайное число, а n - модуль.
8. Способ по п.7, отличающийся тем, что используемые данные представляют собой промежуточный результат вычислений, а последующая операция возведения в квадрат состоит в выполнении операции умножения, при этом такой промежуточный результат подвергается предварительному искажению с помощью различных функций.
9. Способ по п.7, отличающийся тем, что используемые данные представляют собой промежуточный результат вычислений, а последующее удвоение этого промежуточного результата состоит в выполнении операции сложения, при этом такой промежуточный результат подвергают предварительному искажению с помощью различных функций.
10. Способ по любому из пп.7-9, отличающийся тем, что шифрование сообщения М выполняется путем модульного возведения в степень согласно выражению «Y=Md mod n», при котором при наличии "1" в показателе d используется сообщение М, которое при каждом его использовании изменяется с помощью иной функции.
11. Способ по любому из пп.7-9, отличающийся тем, что вычисления заключаются в выполнении операции по модулю, при которой используют степени сообщения, которые при каждом использовании этого сообщения изменяются с помощью иной функции.
12. Способ по п.10, отличающийся тем, что модуль n умножается на постоянный множитель k, после чего с этим модулем n выполняется еще одна операция по модулю.
Описание изобретения к патенту
Настоящее изобретение относится к носителю данных с чипом, предназначенным для хранения и обработки конфиденциальной или секретной информации, а также к реализуемому в таком носителе способу защиты конфиденциальных данных.
Оснащенные чипом носители данных находят самое различное применение, например, для осуществления финансовых операций, для оплаты товаров и услуг, а также в качестве средства идентификации в системах контроля доступа, включая доступ в помещения. При применении во всех этих областях внутри чипа носителя данных происходит обработка обычно конфиденциальной информации, которая должна быть защищена от несанкционированного доступа со стороны третьих лиц. Такая защита обеспечивается в том числе и за счет того, что внутренние структуры чипа имеют исключительно малые размеры, что осложняет доступ к таким структурам с целью несанкционированного считывания обрабатываемых в них данных. Помимо этого чип с целью дополнительно осложнить несанкционированный доступ к нему может быть заделан в обладающую высокой адгезионной способностью массу, при попытке удаления которой с применением силы происходит разрушение кристалла интегральной схемы (ИС) или по меньшей мере уничтожается вся хранящаяся в нем конфиденциальная информация. Равным образом кристалл ИС уже на стадии его изготовления можно покрывать защитным слоем, который невозможно удалить без разрушения самого этого кристалла ИС.
Однако с помощью соответствующих технических средств, которые несмотря на их исключительно высокую стоимость в принципе являются доступными, злоумышленнику возможно удастся вскрыть чип и исследовать его внутреннюю структуру. Получить доступ к внутренней структуре можно, например, удалив защитное покрытие по специальной технологии травления или же сошлифовав его с помощью соответствующего инструмента. К оголенным таким путем структурным элементам чипа, таким как токопроводящие дорожки, можно подсоединить контактные микрощупы или же исследовать эти структуры каким-либо иным способом с целью выявить форму проходящих по ним сигналов. Затем на основании этих детектированных сигналов можно попытаться извлечь содержащуюся в этом носителе данных конфиденциальную информацию, например секретные ключи, с целью ее противоправного использования. Помимо этого возможны попытки целенаправленно влиять с помощью микрощупов на форму сигналов, проходящих по оголенным структурным элементам чипа.
Помимо этого в последнее время получили известность методы, позволяющие за счет измерения потребляемого тока или временных характеристик при шифровании выявлять конфиденциальные данные и прежде всего используемый для их шифрования секретный ключ (см. Paul С. Kocher, "Timing Attacks on implementation of Diffle-Hellman, RSA, DSS, and other Systems", изд-во Springer Verlag 1998; WO 99/35782).
Наиболее простой из числа подобных метод получения несанкционированного доступа к конфиденциальной информации состоит в простом анализе электрических характеристик (SPA от анг. "Simple Power Analysis"). Этот метод анализа можно пояснить на следующем примере, когда известное сообщение М подвергается шифрованию с помощью секретного ключа d, т.е. формируется некоторый зашифрованный текст вида Y=Мd mod n. При модульном возведении в степень промежуточный результат при наличии "1" в показателе d возводится в квадрат и умножается на М, тогда как при наличии "0" в показателе d промежуточный результат только возводится в квадрат. При известном М анализ токовых и/или временных характеристик, сопровождающих выполнение указанных операций, позволяет выявить те моменты времени, в которые используется сообщение М. Поскольку это сообщение всегда используется при наличии "1" в показателе d, появляется возможность без каких-либо проблем выявить сам секретный ключ.
Воспрепятствовать подобной попытке получения несанкционированного доступа к данным можно, внеся в сообщение М, соответственно в ключ d, определенные изменения. Однако из публикации Paul С. Kocher, "Timing Attacks on implementation of Diffie-Hellman, RSA, DSS, and other Systems", изд-во Springer Verlag, 1998, и из заявки WO 99/35782 известны также методы анализа, которые позволяют выявить ключ даже при наличии измененного, т.е. закодированного ("замаскированного"), сообщения или ключа путем экспериментального снятия множества характеристик, форма которых позволяет судить о происходящем в интегральной микросхеме временном изменении тока (так называемый дифференциальный анализ электрических характеристик (DPA от англ. "Differential Power Analysis"), соответственно дифференциальный анализ электрических характеристик высшего порядка ("Higher Order DPA").
С целью воспрепятствовать простому выявлению используемого для шифрования ключа путем выявления операций, в которых при вычислениях используется шифруемое сообщение, уже было предложено вводить для шифрования сообщения коэффициент r*n. Тем самым зашифрованный текст вида Y=Мd mod n преобразуется в текст вида (M+r*n)d mod n. В результате при анализе исключается возможность обнаружить само известное сообщение М. Однако и при подобном изменении сообщения М анализ формы кривой тока позволяет выявить повторение определенных комбинаций, соответственно выявить определенные закономерности. Подобные комбинации с высокой степенью вероятности содержат текст вида (М+r*n), что позволяет и в этом случае сделать вывод о применении операции умножения, а тем самым и о наличии "1" в секретном ключе.
Еще одна проблема возникает в том случае, когда при анализе токовых характеристик появляется возможность определить, используются ли при умножении одинаковые (соответствует возведению промежуточного результата в квадрат) или различные (соответствует умножению промежуточного результата на сообщение) множители, поскольку тем самым можно выявить и операции умножения на (М+r*n).
В основу настоящего изобретения была положена задача, разработать способ защиты конфиденциальных данных, содержащихся в чипе портативного носителя данных, от несанкционированного доступа, при этом необходимо обеспечить возможность столь же эффективного, как и ранее, использования таких данных.
Указанная задача решается согласно изобретению в носителе данных с чипом, используемым для обработки и хранения конфиденциальных данных и имеющим по меньшей мере одну память, в которой хранится рабочая программа с множеством команд, выполнение каждой из которых сопровождается появлением сигналов, поддающихся обнаружению вне чипа. Согласно изобретению такой носитель данных выполнен таким образом, что для искажения данных, которые многократно используются при вычислениях, применяются различные функции, а именно, таким образом, что при обработке данных, многократно используемых при шифровании сообщения М с помощью операций по модулю, рабочей программой предусмотрено искажение сообщения М путем прибавления к нему при каждом его i-том использовании (i=1,...,k) коэффициента ri*n, где r - случайное число, a n - модуль.
Прибавление к сообщению М величины, в целое число раз большей модуля, не изменяет результат вычислений при обработке данных, но делает невозможным выявление сообщения М путем анализа токовой характеристики чипа.
В качестве используемых данных может выступать некоторый промежуточный результат вычислений, а последующая операция возведения в квадрат может заключаться в выполнении операции умножения. В другом варианте последующее удвоение такого промежуточного результата может заключаться в выполнении операции сложения. В обоих случаях такой промежуточный результат может быть подвергнут предварительному искажению с помощью различных функций. Преимущество этого варианта состоит в возможности безопасного выполнения операций и с промежуточным результатом (возведение в квадрат, сложение и т.д.).
Согласно одному из наиболее предпочтительных вариантов шифрование сообщения М выполняется путем модульного возведения в степень согласно выражению Y=Мd mod n, при котором при наличии "1" в показателе d используется сообщение М, которое при каждом его использовании изменяется с помощью иной функции.
При выполнении операции по модулю можно использовать степени сообщения, которые при каждом использовании этого сообщения изменяются с помощью иной функции.
Дополнительно повысить степень защиты данных можно за счет умножения модуля n на постоянный множитель k и лишь затем выполнять с этим модулем n последующие операции по модулю, поскольку в этом случае промежуточные результаты также подвергаются искажению.
Объектом изобретения является также способ защиты конфиденциальных данных на носителях данных с чипом, используемым для хранения и обработки конфиденциальных данных и имеющим по меньшей мере одну память, в которой хранится рабочая программа с множеством команд, выполнение каждой из которых сопровождается появлением сигналов, поддающихся обнаружению вне чипа. В предлагаемом в изобретении способе решение задачи, положенной в основу изобретения, достигается за счет того, что при обработке данных, многократно используемых при шифровании сообщения М с помощью операций по модулю, сообщение М искажают путем прибавления к нему при каждом его использовании i (i=1,...,k) коэффициента ri*n, где r - случайное число, а n - модуль.
Дополнительно к рассмотренным признакам изобретения, характеризующим его в частных вариантах осуществления, важные для защиты данных вычислительные операции f(z), у которых имеется корреляция между z и f(z), могут разделяться на вычислительные операции gl(z) и g2f(gl(z)), где такие функции gl(z) и g2f(gl(z)) не коррелированы между собой.
Ниже предлагаемое в изобретении решение поясняется на примере модульного возведения в степень. При этом без ограничения объема изобретения предполагается, что для формирования зашифрованного сообщения вида Y=Мd mod n выполняемые вычисления состоят в модульном возведении в степень, при этом промежуточный результат при наличии "1" в показателе d возводится в квадрат и умножается на сообщение М, а при наличии "0" в показателе d промежуточный результат только возводится в квадрат.
Согласно изобретению для шифрования сообщения сначала выбирается некоторое случайное число г, а затем вычисляется произведение r*n. После этого выполнение операции по возведению в степень начинается с выполнения операции по возведению в квадрат, при которой к промежуточному результату Z прибавляют произведение r*n, чтобы вместо вычисления Z*Z mod n вычислить выражение (Z*(Z+r*n) mod k*n), где k представляет собой целое число. В том случае, если соответствующий разряд показателя, т.е. секретного ключа d, представляет собой "1", то в последующем дополнительно выполняется операция умножения, для чего сначала к сообщению М прибавляется (ri*n), т.е. формируется сообщение вида М+ri*n, и вместо вычисления Z*M mod n вычисляется выражение (Z*(M+ri*n) mod k*n)). Описанная последовательность операций повторяется до тех пор, пока не будут обработаны все разряды секретного ключа, при этом при каждой последующей операции умножения i увеличивается на 1. По завершении операции по возведению в степень полученный результат дополнительно приводят к виду mod n.
Тот факт, что прибавление к сообщению М величины, которая в целое число раз больше модуля, не изменяет результат, позволяет использовать подобную дополнительную операцию без каких-либо ограничений с достижением определенного преимущества, которое состоит в том, что анализ токовой характеристики чипа не позволяет более выявить сообщение М, поскольку при этом отсутствует корреляция между последовательно выполняемыми операциями по обработке сообщения М и тем самым отсутствует возможность выявления одинаковых, повторяющихся закономерностей.
Кроме того, при попытке проанализировать выполняемые при вычислениях операции практически невозможно отличить операцию умножения от операции возведения в квадрат, поскольку при выполнении каждой операции изменяются и промежуточные результаты Z, и обработанное сообщение М+ri*n, поэтому при выполнении операции умножения, равно как и при выполнении операции возведения в квадрат, вычисляется произведение, получаемое умножением промежуточного результата на не коррелированный с ним множитель.
Дополнительно повысить степень защиты данных можно путем разделения важных для их защиты вычислительных операций f(z), у которых имеется корреляция между z и f(z), на вычислительные операции g1(z) и g2f(g1(z)), где такие функции g1(z) и g2f(g1(z)) не коррелированы между собой. При этом функции g1(z) и g2(z) представляют собой пригодные для искажения данных соответственно сообщений функции.
Класс G07F7/10 вместе с кодовым сигналом