ЗАЩИЩЕННЫЙ ОТ НЕСАНКЦИОНИРОВАННОГО ДОСТУПА НОСИТЕЛЬ ДАННЫХ, СПОСОБ ВЫПОЛНЕНИЯ В НЕМ ОПЕРАЦИЙ, В ТОМ ЧИСЛЕ ОТНОСЯЩИХСЯ К ЗАЩИТЕ ДАННЫХ, И СПОСОБ ЗАЩИТЫ КОНФИДЕНЦИАЛЬНЫХ ДАННЫХ Российский патент 2005 года по МПК G07F7/10 G06F1/00 

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

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

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

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

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

Из французской выложенной заявки FR-A 2745924 известно применение генератора случайных чисел для изменения внешнего вида, соответственно, для искажения сигналов, что приводит к рассинхронизации при выполнении в процессоре последовательностей команд и/или частей программы.

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

Указанная задача решается в носителе данных рассмотренного выше типа за счет того, что для осуществления относящихся к защите данных операций носитель данных выполнен с возможностью выполнения только таких команд операционной системы или с возможностью выполнения этих команд таким образом, чтобы на основании обнаруженных сигналов невозможно было получить информацию о данных, обрабатываемых по соответствующим командам. При этом в операционной системе предусмотрена возможность выполнения последовательности линейных по отношению к логической операции ИСКЛЮЧАЮЩЕЕ ИЛИ операций, для выполнения которых необходимы исходные данные и при выполнении которых формируются выходные данные. Перед выполнением одной или нескольких таких операций исходные данные искажаются путем их комбинирования посредством логической операции ИСКЛЮЧАЮЩЕЕ ИЛИ со вспомогательными данными, которыми является случайное число, а для компенсации искажений, внесенных в исходные данные, выходные данные, полученные в результате выполнения одной или нескольких операций, комбинируются посредством логической операции ИСКЛЮЧАЮЩЕЕ ИЛИ со значением вспомогательной функции, которое определяется предварительно в безопасной обстановке путем выполнения указанных одной или нескольких операций со вспомогательными данными в качестве исходных данных и так же, как и вспомогательные данные, сохраняется в памяти носителя данных.

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

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

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

С целью обеспечить работоспособность носителя данных необходимо, чтобы этот носитель данных при его легальном использовании выдавал правильные результаты несмотря на искаженность конфиденциальных данных. Достигается это прежде всего за счет задания некоторой функции, используемой для искажения истинных конфиденциальных данных, а именно - за счет логического комбинирования этих данных со случайным числом путем выполнения логической операции ИСКЛЮЧАЮЩЕЕ ИЛИ. Истинные конфиденциальные данные искажаются с помощью такой предварительно заданной функции.

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

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

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

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

Для повышения надежности защиты конфиденциальных данных предпочтительно предусмотреть возможность варьирования вспомогательных данных, сохраняя при этом соответствующие каждым из них значения вспомогательной функции в памяти носителя данных. В этом случае может быть предусмотрена возможность формирования новых вспомогательных данных и новых значений вспомогательной функции путем выполнения логических операций ИСКЛЮЧАЮЩЕЕ ИЛИ над двумя или более существующими вспомогательными данными и значениями вспомогательной функции. В частности, может быть предусмотрена возможность случайного выбора каждых из предназначенных для выполнения логических операций ИСКЛЮЧАЮЩЕЕ ИЛИ существующих вспомогательных данных и соответствующих им значений вспомогательной функции.

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

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

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

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

Ниже изобретение поясняется на примере некоторых вариантов его выполнения со ссылкой на прилагаемые чертежи, на которых показано:

на фиг.1 - чип-карта в виде сверху,

на фиг.2 - увеличенное изображение фрагмента чипа чип-карты по фиг.1,

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

на фиг.4 - модифицированная блок-схема по фиг.3 и

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

На фиг.1 в качестве примера носителя данных показана карточка 1 со встроенной интегральной микросхемой, называемая также чип-картой. Эта чип-карта 1 состоит из корпуса 2 и модуля 3 с интегральной микросхемой (ИС-модуля), который расположен в предусмотренной для него выемке в корпусе 2. Основными компонентами ИС-модуля 3 являются контактные площадки 4, с помощью которых может быть установлено электрическое соединение чип-карты с внешним устройством, и чип 5, который электрически соединен с контактными площадками 4. Для соединения чипа 5 с внешним устройством с целью обмена между ними данными вместо контактных площадок 4 или дополнительно к ним может быть также предусмотрена не показанная на фиг.1 катушка или иное средство передачи данных.

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

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

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

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

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

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

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

На фиг.3 показана блок-схема, иллюстрирующая часть выполняемых в чипе чип-карты операций. В качестве примера на чертеже показана блок-схема процесса шифрования. Однако проиллюстрированные на этом примере принципы применимы также к любым другим относящимся к защите данных процессам. В начале процесса шифрования, блок-схема которого показана на фиг.3, данные abc, которые могут присутствовать как в незашифрованном, так и в уже зашифрованном виде, поступают в комбинационную точку 7. В этой комбинационной точке 7 данные abc логически комбинируются с ключом К1. В рассматриваемом примере под логической комбинацией имеется в виду логическая операция ИСКЛЮЧАЮЩЕЕ ИЛИ, однако с этой целью можно использовать и иные логические операции. Затем в функциональном блоке 8 результат логической операции задается в виде нелинейной функции g. С целью подчеркнуть, что функциональный блок 8 представляет собой нелинейную функцию, он изображен на фиг.3 в форме параллелограмма. Данные, сформированные функциональным блоком 8, логически комбинируют затем в комбинационной точке 9 со случайным числом Z путем выполнения логической операции ИСКЛЮЧАЮЩЕЕ ИЛИ, после чего они обрабатываются в функциональном блоке 10. В результате логического комбинирования со случайным числом Z данные искажаются, что затрудняет возможному злоумышленнику анализ происходящих в функциональном блоке 10 процессов, в котором осуществляется линейное отображение данных с использованием функции f. Для обозначения такой линейной функции на фиг.3 использован прямоугольник. Полученные в функциональном блоке 10 данные логически комбинируются затем в комбинационной точке 11 с данными f(Z), которые были сформированы предварительно, например при изготовлении чип-карты, путем задания случайного числа Z как функции f. За счет такого логического комбинирования компенсируется искажение данных, которое было внесено в них при использовании числа Z в комбинационной точке 9. Необходимость подобной компенсации связана с тем, что в последующем данные должны быть представлены в функциональном блоке 12 в виде нелинейной функции g, а после представления данных в виде нелинейной функции компенсация искажений уже невозможна. Затем в комбинационной точке 11 данные с использованием логической операции ИСКЛЮЧАЮЩЕЕ ИЛИ логически комбинируются с ключом К2, который необходим в процессе шифрования.

Логическое комбинирование с данными f(Z) и К2 в комбинационной точке 11 может осуществляться либо по отдельности с каждым из этих компонентов К2 и f(Z), либо с результатом, полученным при выполнении логической операции ИСКЛЮЧАЮЩЕЕ ИЛИ над этими отдельными компонентами. В последнем случае нет необходимости обязательно делать ключ К2 доступным в незашифрованном виде, а можно использовать лишь ключ К2, логически скомбинированный путем выполнения логической операции ИСКЛЮЧАЮЩЕЕ ИЛИ с функцией случайного числа f(Z). Если значение, получаемое в результате этой логической операции, было вычислено предварительно и сохранено в памяти чип-карты, например при инициализации или персонализации чип-карты 1, то нет необходимости сохранять ключ К2 в памяти чип-карты 1 в незашифрованном виде. Тем самым удается дополнительно повысить уровень защиты чип-карты 1.

После представления данных в функциональном блоке 12 как функции g полученный таким путем результат снова логически комбинируется в комбинационной точке 13 со случайным числом Z, и тем самым данные вновь искажаются. Затем результат логического комбинирования вновь представляется в функциональном блоке 14 в виде линейной функции f. В завершение в комбинационной точке 15 данные путем выполнения логической операции ИСКЛЮЧАЮЩЕЕ ИЛИ логически комбинируются с результатом, полученным при представлении случайного числа Z в виде функции f, а также с ключом КЗ. За этой операцией логического комбинирования могут выполняться последующие операции обработки данных, не представленные на фиг.3.

В целом проиллюстрированный на фиг.3 подход обобщенно можно описать следующим образом: данные, обрабатываемые в процессе шифрования, по возможности всегда подвергают искажению путем их логического комбинирования с помощью логической операции ИСКЛЮЧАЮЩЕЕ ИЛИ со случайным числом Z с целью предотвратить перехват конфиденциальных данных. Такое искажение в принципе возможно при всех функциях f, проявляющих линейность по отношению к логическим операциям ИСКЛЮЧАЮЩЕЕ ИЛИ. При применении нелинейных функций g необходимо использовать неискаженные данные. Поэтому перед представлением этих данных в виде нелинейной функции g необходимо скомпенсировать внесенные в них искажения путем логического комбинирования этих данных со значением функции f(Z) с использованием для этой цели логической операции ИСКЛЮЧАЮЩЕЕ ИЛИ. Тот факт, что в виде нелинейных функций g могут быть представлены только неискаженные данные, не имеет особо важного значения с точки зрения защиты данных, поскольку перехватывать эти нелинейные функции g в любом случае значительно сложнее, чем линейные функции f. Схема, показанная на фиг.3, применима как для одинаковых функций g, соответственно для одинаковых функций f, так и для различных функций g и f соответственно.

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

На фиг.4 показана блок-схема, иллюстрирующая аналогично фиг.3 часть выполняемых в микросхеме чип-карты операций в соответствии с еще одним вариантом выполнения изобретения. Обработка данных abc осуществляется аналогично схеме по фиг.3 и поэтому в последующем повторно не рассматривается. Однако в отличие от фиг.3 в схеме по фиг.4 в комбинационные точки 7, 11 и 15 поступают не ключи K1, K2 и К3, а вместо них в эти точки поступают искаженные ключи К1', K2' и К3' совместно со случайными числами Z1, Z2 и Z3, необходимыми для компенсации искажений, при этом сначала предпочтительно вводить искаженные ключи, а затем случайные числа. Благодаря этому обеспечивается создание условий, при которых истинные ключи K1, K2 и К3 вообще никак себя не обнаруживают. Такой подход наиболее предпочтительно применять в тех процессах шифрования, в которых ключи K1, K2 и К3 являются производными общего исходного ключа К. В этом случае в памяти чип-карты 1 сохраняется ключ К, искаженный с помощью случайного числа Z, а также случайные числа Z1, Z2 и Z3, которые являются производными случайного числа Z, полученными путем их расчета по алгоритму формирования производных ключа. Сама процедура сохранения такой информации в памяти должна происходить в безопасной обстановке, например на стадии персонализации чип-карты 1.

При осуществлении процесса, блок-схема которого показана на фиг.4, наряду с сохраненными в памяти данными необходимы еще и искаженные производные ключи К1', K2' и К3'. Эти ключи можно формировать по мере необходимости из искаженного ключа К. При таком подходе с истинным ключом К или с истинными производными ключами K1, K2 и К3 не выполняется никаких операций, что делает несанкционированный доступ к этим ключам практически невозможным. Поскольку производные случайные числа Z1, Z2 и Z3 также уже предварительно определяют на подготовительной стадии и сохраняют в памяти чип-карты 1, то и с ними в последующем не выполняют более никаких операций, которые могли бы быть перехвачены злоумышленником. Тем самым невозможен и доступ к истинным производным ключам K1, K2 и К3 путем перехвата искаженных производных ключей К1', К2' и К3', поскольку для этого необходимы производные случайные числа Z1, Z2 и Z3.

В целях дальнейшего повышения степени защиты данных для каждой логической операции ИСКЛЮЧАЮЩЕЕ ИЛИ можно использовать свое отдельное случайное число Z, при этом следует учитывать, что для компенсации искажений в этом случае каждое число Z должно иметь также свое собственное значение функции f(Z). В соответствии с одним из вариантов выполнения изобретения предлагается сохранять все случайные числа Z и значения функции f(Z) в памяти чип-карты. Однако равным образом существует также возможность сохранять в памяти лишь небольшое количество случайных чисел Z и значений функции f(Z) соответственно и по мере необходимости получать новые случайные числа Z и значения функции f(Z) путем выполнения логической операции ИСКЛЮЧАЮЩЕЕ ИЛИ либо применения какого-либо иного пригодного для этой цели алгоритма логического комбинирования нескольких хранящихся в памяти случайных чисел Z и значений функции f(Z). При этом случайные числа Z для такой логической операции ИСКЛЮЧАЮЩЕЕ ИЛИ можно случайным образом выбирать из всего множества хранящихся в памяти чип-карты случайных чисел Z.

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

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

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

Обработка данных abc начинается с операции Р1, представленной на фиг.5 в виде блока 70. К этому блоку последовательно примыкает блок 80, обозначающий операцию Р2. Тем самым на фиг.5 показано, что порядок выполнения операций Р1 и Р2 не может быть изменен, т.е. этот порядок строго установлен. После блока 80 показанная на фиг.5 блок-схема разветвляется на пять блоков 90, 100, 110, 120 и 130, обозначающих соответственно операции Р3, Р4, Р5, Р6 и Р7. Это означает, что операции, представленные блоками Р3, Р4, Р5, Р6 и Р7, могут выполняться параллельно, а тем самым и в произвольной последовательности. В соответствии с изобретением последовательность выполнения этих операций Р3, Р4, Р5, Р6 и Р7 в каждом цикле варьируется, т.е. злоумышленник не может предвидеть, какая из этих операций будет выполняться непосредственно за операцией Р2, какие операции в свою очередь будут выполняться в последующем и т.д. Изменять порядок выполнения операций можно либо по строго заданной схеме, либо предпочтительно случайным образом, либо в зависимости от исходных данных, когда с помощью случайного числа, соответственно на основании исходных данных в каждом случае устанавливают, какая из операций Р3, Р4, Р5, Р6 и Р7 будет выполняться следующей. Такое при необходимости случайное варьирование последовательности выполнения отдельных операций затрудняет перехват данных, обрабатываемых в ходе выполнения указанных операций, соответственно затрудняет получение к ним несанкционированного доступа. По завершении выполнения всех операций Р3, Р4, Р5, Р6 и Р7 обязательно следует операция Р8, последовательность выполнения которой не может быть изменена. Эта операция Р8 представлена блоком 140. За операцией Р8 могут следовать другие не показанные на фиг.5 операции, причем как с варьируемой, так и со строго установленной последовательностью их выполнения.

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

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

название год авторы номер документа
ЗАЩИЩЕННЫЙ ОТ НЕСАНКЦИОНИРОВАННОГО ДОСТУПА НОСИТЕЛЬ ДАННЫХ 1999
  • Фатер Харальд
  • Дрекслер Германн
RU2251153C2
ПОРТАТИВНЫЙ НОСИТЕЛЬ ДАННЫХ С ИХ ЗАЩИТОЙ ОТ НЕСАНКЦИОНИРОВАННОГО ДОСТУПА, ОБЕСПЕЧИВАЕМОЙ ЗА СЧЕТ ИСКАЖЕНИЯ СООБЩЕНИЙ, И СПОСОБ ЗАЩИТЫ КОНФИДЕНЦИАЛЬНЫХ ДАННЫХ 2000
  • Германн Дрекслер
  • Харальд Фатер
RU2280285C2
ПОРТАТИВНЫЙ НОСИТЕЛЬ ДАННЫХ С ИХ ЗАЩИТОЙ ОТ НЕСАНКЦИОНИРОВАННОГО ДОСТУПА, ОБЕСПЕЧИВАЕМОЙ ЗА СЧЕТ РАЗДЕЛЕНИЯ КЛЮЧА НА НЕСКОЛЬКО ЧАСТЕЙ 2000
  • Германн Дрекслер
  • Харальд Фатер
RU2251218C2
СПОСОБ ЗАЩИТЫ ДОСТУПНОСТИ И КОНФИДЕНЦИАЛЬНОСТИ ХРАНИМЫХ ДАННЫХ И СИСТЕМА НАСТРАИВАЕМОЙ ЗАЩИТЫ ХРАНИМЫХ ДАННЫХ 2014
  • Косолапов Юрий Владимирович
RU2584755C2
СПОСОБ И АППАРАТУРА ДЛЯ БЕЗОПАСНОЙ ОБРАБОТКИ ИНФОРМАЦИИ, ПОДЛЕЖАЩЕЙ ЗАЩИТЕ 2007
  • Фелькенинг Штефан
  • Юнгерманн Харди
  • Хупе Торстен
RU2449377C2
БЕЗОПАСНОЕ ХРАНЕНИЕ ДАННЫХ С ЗАЩИТОЙ ЦЕЛОСТНОСТИ 2006
  • Асокан Надараджа
  • Экберг Ян-Эрик
  • Паатеро Лаури
RU2399087C2
СПОСОБ ЗАЩИТЫ ДАННЫХ 2000
  • Фогель Коля
  • Байнлих Штефан
  • Мартини Улльрих
RU2263407C2
СПОСОБ И КАРТА С ЧИПОМ ДЛЯ ПЕРЕДАЧИ ИНФОРМАЦИИ 2013
  • Бертье Маэль
  • Гонсальвес Луи-Филипп
  • Лекок Франсуа
  • Пепэн Сирилль
RU2621613C2
СПОСОБ ЗАГРУЗКИ МУЛЬТИМЕДИЙНОЙ ИНФОРМАЦИИ В ПОРТАТИВНЫЙ НОСИТЕЛЬ ДАННЫХ И ПОРТАТИВНЫЙ НОСИТЕЛЬ ДАННЫХ 2004
  • Цизингер Даниэль
RU2374779C2
СПОСОБ ЗАЩИТЫ МУЛЬТИМЕДИЙНЫХ ДАННЫХ 2006
  • Гримен Гисле
  • Менх Кристиан
RU2449494C2

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

Реферат патента 2005 года ЗАЩИЩЕННЫЙ ОТ НЕСАНКЦИОНИРОВАННОГО ДОСТУПА НОСИТЕЛЬ ДАННЫХ, СПОСОБ ВЫПОЛНЕНИЯ В НЕМ ОПЕРАЦИЙ, В ТОМ ЧИСЛЕ ОТНОСЯЩИХСЯ К ЗАЩИТЕ ДАННЫХ, И СПОСОБ ЗАЩИТЫ КОНФИДЕНЦИАЛЬНЫХ ДАННЫХ

Изобретение относится к носителю данных с чипом. Техническим результатом является защита от несанкционированного доступа к данным, записанным на носителе. Носитель содержит по крайней мере одну память, в которой содержится операционная система. Способы выполнения относящихся к защите данных операций в носителе данных с чипом описывают порядок выполнения указанных операций. Способ защиты конфиденциальных данных заключается в том, что перед выполнением одной или более операций, относящихся к защите данных, исходные данные искажают путем их комбинирования посредством логической операции ИСКЛЮЧАЮЩЕЕ ИЛИ со вспомогательными данными, а для компенсации указанных искажений выходные данные комбинируют посредством логической операции ИСКЛЮЧАЮЩЕЕ ИЛИ со значением вспомогательной функции (F(Z)). 4 н. и 30 з.п. ф-лы, 5 ил.

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

1. Носитель данных с чипом (5), имеющим по крайней мере одну память, в которой хранится операционная система, содержащая несколько команд, при этом по каждой команде формируются сигналы, которые могут быть обнаружены вне чипа (5), отличающийся тем, что носитель (1) данных для осуществления относящихся к защите данных операций выполнен с возможностью выполнения только таких команд операционной системы или с возможностью выполнения этих команд таким образом, чтобы на основании обнаруженных сигналов невозможно было получить информацию о данных, обрабатываемых по соответствующим командам, при этом в операционной системе предусмотрена возможность выполнения последовательности линейных по отношению к логической операции Исключающее ИЛИ операций (f), для выполнения которых необходимы исходные данные и при выполнении которых формируются выходные данные, причем перед выполнением одной или нескольких операций (f) исходные данные искажаются путем их комбинирования посредством логической операции Исключающее ИЛИ со вспомогательными данными (Z), которыми является случайное число, а для компенсации искажений, внесенных в исходные данные, выходные данные, полученные в результате выполнения одной или нескольких операций (f), комбинируются посредством логической операции Исключающее ИЛИ со значением вспомогательной функции (f(Z)), которое определяется предварительно в безопасной обстановке путем выполнения указанных одной или нескольких операций (f) со вспомогательными данными (Z) в качестве исходных данных и так же, как и вспомогательные данные (Z), сохраняется в памяти носителя (1) данных.2. Носитель данных по п.1, отличающийся тем, что применяемые команды рассчитаны по меньшей мере на побайтовую обработку данных.3. Носитель данных по п.1, отличающийся тем, что применяемые команды невозможно отличить одну от другой по форме формируемых по ним сигналов.4. Носитель данных по п.1, отличающийся тем, что предусмотрена возможность формирования по каждой из применяемых команд сигнала, форма которого не зависит от данных, обрабатываемых по этой команде.5. Носитель данных по п.1, отличающийся тем, что логическая операция Исключающее ИЛИ над выходными данными и значениями вспомогательной функции (f(Z)) для компенсации искажений осуществляется самое позднее непосредственно перед выполнением операции (g), которая является нелинейной по отношению к логической операции Исключающее ИЛИ.6. Носитель данных по п.5, отличающийся тем, что предусмотрена возможность варьирования вспомогательных данных (Z), при этом соответствующие каждым из них значения вспомогательной функции (f(Z)) сохранены в памяти носителя (1) данных.7. Носитель данных по п.6, отличающийся тем, что предусмотрена возможность формирования новых вспомогательных данных (Z) и новых значений вспомогательной функции (f(Z)) путем выполнения логических операций Исключающее ИЛИ над двумя или более существующими вспомогательными данными (Z) и значениями вспомогательной функции (f(Z)).8. Носитель данных по п.7, отличающийся тем, что предусмотрена возможность случайного выбора каждых из предназначенных для выполнения логических операций Исключающее ИЛИ существующих вспомогательных данных (Z) и соответствующих им значений вспомогательной функции (f(Z)).9. Носитель данных по п.1, отличающийся тем, что предусмотрена возможность выполнения операционной системой множества операций (f), при этом по меньшей мере для одного подмножества этих операций справедливо условие, по которому общий результат, получаемый при выполнении нескольких операций этого подмножества, не зависит от последовательности выполнения этих операций (f), а последовательность выполнения входящих в указанное подмножество операций изменяется по меньшей мере в том случае, если это подмножество содержит одну или более относящихся к защите данных операций.10. Носитель данных по п.9, отличающийся тем, что предусмотрена возможность изменения последовательности выполнения операций (f), входящих в указанное подмножество, при каждом цикле.11. Носитель данных по п.9 или 10, отличающийся тем, что предусмотрена возможность изменения последовательности выполнения операций по строго установленной схеме.12. Носитель данных по п.9 или 10, отличающийся тем, что предусмотрена возможность случайного изменения последовательности выполнения операций.13. Носитель данных по п.9 или 10, отличающийся тем, что предусмотрена возможность изменения последовательности выполнения операций в зависимости от данных, обрабатываемых на этих операциях (f).14. Носитель данных по п.9 или 10, отличающийся тем, что предусмотрена возможность установления последовательности выполнения операций каждый раз перед выполнением первой операции (f) подмножества для всех входящих в это подмножество операций, которые должны выполняться непосредственно одна за другой.15. Носитель данных по п.9 или 10, отличающийся тем, что предусмотрена возможность установления каждый раз перед началом выполнения одной из входящих в подмножество операций (f), какая из операций этого подмножества, которые должны выполняться непосредственно одна за другой, будет выполняться в качестве следующей.16. Носитель данных по п.1, отличающийся тем, что относящимися к защите данных операциями являются операции по перестановке ключей или по перестановке иных конфиденциальных данных.17. Носитель данных по п.1, отличающийся тем, что он представляет собой чип-карту.18. Способ выполнения относящихся к защите данных операций в носителе (1) данных с чипом (5), имеющим по крайней мере одну память, в которой хранится операционная система, содержащая несколько команд, при этом по каждой команде формируются сигналы, которые могут быть обнаружены вне чипа (5), отличающийся тем, что при осуществлении относящихся к защите данных операций носителем (1) данных используют только такие команды операционной системы или используют эти команды таким образом, чтобы на основании обнаруженных сигналов невозможно было получить информацию о данных, обрабатываемых по соответствующим командам, при этом в операционной системе предусмотрена возможность выполнения последовательности линейных по отношению к логической операции Исключающее ИЛИ операций (f), для выполнения которых необходимы исходные данные и при выполнении которых формируются выходные данные, причем перед выполнением одной или нескольких операций (f) исходные данные искажают путем их комбинирования посредством логической операции Исключающее ИЛИ со вспомогательными данными (Z), которыми является случайное число, а для компенсации искажений, внесенных в исходные данные, выходные данные, полученные в результате выполнения одной или нескольких операций (f), комбинируют посредством логической операции Исключающее ИЛИ со значением вспомогательной функции (f(Z)), которое определяют предварительно в безопасной обстановке путем выполнения указанных одной или нескольких операций (f) со вспомогательными данными (Z) в качестве исходных данных и так же, как и вспомогательные данные (Z), сохраняют в памяти носителя (1) данных.19. Способ по п.18, отличающийся тем, что применяемые команды используют данные, которые организованы по меньшей мере в виде байтов.20. Способ по п.18 или 19, отличающийся тем, что применяемые команды невозможно отличить одну от другой по форме формируемых по ним сигналов.21. Способ по п.18 или 19, отличающийся тем, что по каждой из применяемых команд формируется сигнал, форма которого не зависит от данных, обрабатываемых по этой команде.22. Способ по п.18, отличающийся тем, что относящимися к защите данных операциями являются операции по перестановке ключей или по перестановке иных конфиденциальных данных.23. Способ защиты конфиденциальных данных, используемых в качестве исходных данных для одной или нескольких операций (f), которые являются линейными по отношению к применяемой логической операции, отличающийся тем, что перед выполнением одной или нескольких операций (f) исходные данные искажают путем их комбинирования посредством логической операции Исключающее ИЛИ со вспомогательными данными (Z), которыми является случайное число, а для компенсации искажений, внесенных в исходные данные, выходные данные, полученные в результате выполнения одной или нескольких операций (f), комбинируют посредством логической операции Исключающее ИЛИ со значением вспомогательной функции (f(Z)), которое определяют предварительно в безопасной обстановке путем выполнения указанных одной или нескольких операций (f) со вспомогательными данными (Z) в качестве исходных данных и так же, как и вспомогательные данные (Z), сохраняют в памяти носителя (1) данных.24. Способ по п.23, отличающийся тем, что логическую операцию Исключающее ИЛИ над выходными данными и значениями вспомогательной функции (f(Z)) выполняют для компенсации искажений самое позднее непосредственно перед выполнением операции (g), которая является нелинейной по отношению к той логической операции Исключающее ИЛИ, посредством которой в исходные данные было внесено искажение.25. Способ по п.24, отличающийся тем, что вспомогательные данные (Z) варьируют, при этом соответствующие каждым из них значения вспомогательной функции (f(Z)) сохранены в памяти носителя (1) данных.26. Способ по п.25, отличающийся тем, что путем выполнения логических операций Исключающее ИЛИ над двумя или более существующими вспомогательными данными (Z), а также над значениями вспомогательной функции (f(Z)) формируют новые вспомогательные данные (Z) и новые значения вспомогательной функции (f(Z)).27. Способ по п.26, отличающийся тем, что каждые из предназначенных для выполнения логических операций Исключающее ИЛИ существующих вспомогательных данных (Z) и соответствующих им значений вспомогательной функции (f(Z)) выбирают случайным образом.28. Способ выполнения в операционной системе носителя (1) данных множества операции (f), при этом по меньшей мере для одного подмножества этих операций справедливо условие, по которому общий результат, получаемый при выполнении нескольких операций этого подмножества, не зависит от последовательности выполнения этих операций, а последовательность выполнения входящих в указанное подмножество операций изменяют по меньшей мере в том случае, если это подмножество содержит одну или более относящихся к защите данных операций.29. Способ по п.28, отличающийся тем, что последовательность выполнения операций (f), входящих в указанное подмножество, изменяют при каждом цикле.30. Способ по п.28 или 29, отличающийся тем, что последовательность выполнения операций изменяют по строго установленной схеме.31. Способ по п.28 или 29, отличающийся тем, что последовательность выполнения операций изменяют случайным образом.32. Способ по п.28 или 29, отличающийся тем, что последовательность выполнения операций изменяют в зависимости от данных, обрабатываемых на этих операциях (f).33. Способ по п.28 или 29, отличающийся тем, что последовательность выполнения операций устанавливают каждый раз перед выполнением первой операции (f) подмножества для всех входящих в это подмножество операций.34. Способ по п.28 или 29, отличающийся тем, что каждый раз перед началом выполнения одной из входящих в подмножество операций устанавливают, какая из операций (f) этого подмножества, которые должны выполняться непосредственно одна за другой, будет выполняться в качестве следующей.

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

US 4932053 A, 05.06.1990.RU 2099779 C1, 20.12.1997.FR 2745924 A1, 12.09.1997.EP 0448262 A2, 25.09.1991.US 4804826 A, 14.02.1989.

RU 2 263 967 C2

Авторы

Фатер Харальд

Дрекслер Херманн

Джонсон Эрик

Даты

2005-11-10Публикация

1999-05-17Подача