БЕЗОПАСНЫЙ СПОСОБ ИЗМЕНЕНИЯ ДАННЫХ, ЗАПИСАННЫХ В КАРТОЧКЕ С ПАМЯТЬЮ
SAFE METHOD FOR MODIFICATION OF DATA WRITTEN ON CARD WITH MEMORY

Область техники, к которой относится изобретение
Настоящее изобретение относится к системам, в которых часть записей данных, хранящихся в интеллектуальной карточке, изменяется, когда совершается сделка с помощью устройства считывания карточек, а более конкретно - относится к безопасному способу изменения данных, записанных в интеллектуальной карточке, во время сделки с помощью устройства считывания.
Уровень техники
Интеллектуальные карточки также называют карточками с микропроцессорами, используемыми в качестве носителя данных, связанных с владельцами карточек. Эти карточки включают в себя бесконтактные карточки, при наличии которых обмен информацией осуществляется посредством бесконтактной электромагнитной связи между антенной, заключенной в карточке, и соответствующим устройством считывания, и которые разработаны в качестве карточек доступа в зоны контролируемого доступа или в качестве электронных кошельков.
Вообще говоря, в интеллектуальных карточках используются такие виды памяти, как энергонезависимая, стираемая и перезаписываемая - электрически стираемая программируемая постоянная память EEPROM-типа (электрически стираемая программируемая постоянная память) или флэш-память EPROM-типа (стираемая программируемая постоянная флэш-память), так что данные остаются записанными в памяти даже тогда, когда последняя отключена. Они также допускают обновление записанных данных путем стирания содержимого одной или нескольких ячеек памяти и записи новых данных.
Возможна ситуация, когда во время сделки информация в памяти разрушается из-за случайного прерывания подачи электропитания, обычно - вследствие «внезапного извлечения» карточки, т.е. извлечения ее до окончания операции обработки, что приводит к потере ранее записанных данных без записи новых данных. Подобный риск велик, в частности, в случае карточек бесконтактного типа, когда пространственные пределы, в которых карточки могут функционировать правильно, неощутимы.
Дополнительный риск возникает в случае энергонезависимых видов памяти EEPROM-типа, при наличии которых, если операцию записи прерывают до ее нормального окончания, данные все же можно записать и, следовательно, можно считывать вскоре после операции записи. Вместе с тем, если это считывание повторяют позже, то вовсе не факт, что оно пройдет правильно, поскольку сохранение информации в ячейке памяти окажется неудовлетворительным в результате преждевременно прерванной операции записи.
Следовательно, чтобы гарантировать целостность данных, желательно защитить карточки от таких рисков, гарантируя, что данные либо находятся в измененном состоянии, либо в состоянии перед изменением, но никогда не находятся в неопределенном промежуточном состоянии, возникающем из-за «внезапного извлечения».
По причинам защиты сделки существенным моментом является обеспечение перезапуска всей сделки, когда во время совершения сделки происходит прерывание электропитания с риском невосстановимой потери чувствительных данных (например, кредитного баланса электронного кошелька), если невозможно снова начать операцию с запуска сделки.
Чтобы решить проблему, подробно описанную выше, предложено сохранение записи данных в буферной памяти перед проведением их изменения. Сразу же после того, как все изменения внесены в те записи, которые следовало изменить, старые записи стираются из буферной памяти.
К сожалению, для каждой записи этот способ требует проведения операции сохранения в буферной зоне, операции стирания записи, которую следует изменить, операции перезаписи и операции стирания старой записи в буферной зоне, что в общей сложности составляет 4 операции. Следовательно, такая работа страдает недостатком, заключающимся в затратах времени, что является основным недостатком бесконтактных карточек.
Кроме того, сохранение данных в другой ячейке памяти перед стиранием ранее записанных данных требует наличия «флага», указывающего, что операция изменения проведена правильно или - в противном случае - в соответствии со значением флага. Флаг может представлять собой одиночный бит, который принимает значение 0 или 1 в соответствии с тем, прошло изменение правильно или нет. Постольку поскольку - по очевидным причинам - оказывается невозможной запись контрольных битов в той же ячейке, что и данных, единственное решение заключается в записи флага (контрольного бита или контрольных битов) в ячейке памяти, зарезервированной для этой цели, т.е. в записи целого блока из 16 или 32 битов, когда достаточно единственного бита или всего нескольких битов.
Вышеупомянутые недостатки приобретают еще большее значение, когда интеллектуальную карточку используют в некоторых приложениях, требующих лишь памяти малой емкости, и становится настоятельно необходимым не тратить попусту место в памяти, и при этом значение данных, изменяемых в каждой сделке, является монотонной функцией во времени. В таких приложениях запись данных в памяти реализует либо суммирующий счетчик, содержимое которого нарастает во времени, например, в случае фотокопировального устройства, либо вычитающий счетчик - в случае карточки для общественного транспорта, в которой значение записи уменьшается на единицу с каждой поездкой, или электронного кошелька, в котором значение записи может только уменьшаться.
Раскрытие изобретения
Таким образом, целью изобретения является разработка способа изменения данных в интеллектуальной карточке во время сделки, которая осуществляется за минимальный промежуток времени, совместимый со временем доступа, являющимся ограничением, накладываемым на карточку во время сделки.
Еще одной целью изобретения является разработка способа изменения данных в интеллектуальной карточке бесконтактного типа при отсутствии необходимости резервирования контрольных битов (флага) в ячейке памяти.
Следовательно, задача изобретения состоит в том, чтобы разработать способ изменения данных в системе для совершения сделок с помощью карточек, включающей в себя интеллектуальную карточку или аналогичное средство и устройство считывания, выполненное с возможностью считывания карточки, когда та находится в определенном положении относительно устройства считывания, причем эта карточка включает в себя энергонезависимую, стираемую и перезаписываемую память, содержащую, по меньшей мере, одну ячейку для записи значения данных, связанного со сделками, проводимыми посредством карточки, при этом каждая сделка приводит к изменению значения данных, а последнее является монотонной функцией во времени. При каждой сделке операция записи значения данных обеспечивает запись нового значения данных в первой ячейке из двух предварительно определенных ячеек, образующих счетчик в памяти, причем упомянутая операция записи обеспечивает стирание старого значения данных, записанного во второй ячейке, так что в конце правильно проведенной операции записи первая ячейка содержит новое значение данных, а вторая ячейка содержит значение нуль.
Краткое описание чертежей
Цели, задачи и характеристики изобретения станут более понятными по прочтении нижеследующего описания, приводимого со ссылками на прилагаемые чертежи, при этом:
на фиг.1 приведено схематическое представление памяти интеллектуальной карточки, в которой осуществляется способ, соответствующий изобретению;
на фиг.2 приведено схематическое представление содержимого двухуровневого счетчика памяти для каждой фазы операции записи;
на фиг.3 приведено схематическое представление содержимого двухуровневого счетчика памяти для каждой фазы операции перезаписи в первой ситуации после внезапного извлечения;
на фиг.4 приведено схематическое представление содержимого двухуровневого счетчика памяти для каждой фазы операции перезаписи во второй ситуации после внезапного извлечения;
на фиг.5 приведено схематическое представление содержимого двухуровневого счетчика памяти для каждой фазы операции перезаписи в третьей ситуации после внезапного извлечения;
на фиг.6 приведено схематическое представление содержимого двухуровневого счетчика памяти для каждой фазы операции перезаписи в четвертой ситуации после внезапного извлечения;
на фиг.7 приведено схематическое представление содержимого двухуровневого счетчика памяти для каждой фазы операции перезаписи в пятой ситуации после внезапного извлечения.
Осуществление изобретения
В карточке с микропроцессором того типа, который предусматривает память с «монтажной» логикой, используемую в приложениях, требующих малого объема памяти, количество ячеек памяти ограничено. Так, память карточки с микропроцессором, такой как изображенная на фиг.1, является памятью EEPROM-типа, емкость которой составляет 32 16-разрядных слова. Изобретение, описываемое ниже, обеспечивает исключение контрольной зоны в памяти, требующей резервирования целого слова. С этой целью две ячейки памяти, образующие двухуровневый счетчик (уровень А, уровень В), резервируются во время записи нового значения данных при каждой сделке, проводимой между устройством считывания и интеллектуальной карточкой.
Принципы данного изобретения преимущественно используются во всех приложениях, в которых значение данных, изменяемое во время каждой сделки, является монотонной функцией во времени. В некоторых случаях (например, в случае карточки, используемой для изготовления фотокопий) записанное значение получает положительное приращение, а в других приложениях, таких как доступ в контролируемые зоны доступа, или электронный кошелек, значение данных уменьшается. Вместе с тем, положительное приращение содержимого счетчика предпочтительнее, чем отрицательное приращение содержимого счетчика. Фактически, когда происходит внезапное извлечение, возникает риск, что не произойдет правильное сохранение битов, которые были записаны в памяти. В этом случае записанное значение может уменьшиться, потому что каждый бит 1 может превратиться в 0. Если используется придание отрицательного приращения, то при уменьшении неправильно записанного значения это уменьшение создает для владельца карточки риск, что будет невозможно узнать, является ли значение в памяти результатом нормального придания отрицательного приращения или аномального уменьшения содержимого карточки. В отличие от этого, когда используется придание положительного приращения, уменьшение содержимого памяти не вызывает риск, поскольку рассматриваемое значение является предыдущим значением перед приданием положительного приращения, когда происходит уменьшение неправильно записанного значения вследствие внезапного извлечения.
В случае придания отрицательного приращения весьма простым методом является учет каждый раз дополнения до двух, выполненного над значением данных. Таким образом, в нижеследующем тексте речь идет о придании значению данных положительного приращения при каждой сделке, независимо от конкретного приложения.
Способ согласно изобретению заключается в том, что записывают новое значение данных, которые были объектом изменения, на уровне счетчика, который содержал значение 0, и стирают содержимое другого уровня счетчика, чтобы установить его значение в 0. Эти две фазы, которые нельзя провести в обратном порядке, переключаются по команде записи нового значения из устройства считывания в момент сделки.
Фиг.2 иллюстрирует процесс нормальной работы. Вначале считывание счетчика приводит к тому, что значение Х появляется на уровне А, а значение 0 - на уровне В. Затем команда записи обеспечивает запись нового значения Y на уровне В, после чего происходит стирание значение Х из уровня А. Таким образом, в процессе выполнения одной команды счетчик получает положительное приращение.
К сожалению, во время сделки может произойти внезапное извлечение карточки, в частности, когда карточка с микропроцессором является бесконтактной карточкой. В этом случае операция записи не протекает правильно, и либо запись нового значения оказывается проведенной неправильно, либо старое значение оказывается не стертым. В этом случае сделка не завершается успешно или оказывается недействительной. Результатом этого может стать запрет на открывание задвижки, обеспечивающей доступ в контролируемую зону доступа, или запрет на покупку с помощью автомата розничной торговли - в случае электронного кошелька.
Следовательно, владелец карточки перезапускает операцию, заключающуюся в пропускании карточки этого владельца в устройство считывания или перед этим устройством. Сначала осуществляется считывание счетчика, которое показывает, что ни один из двух уровней счетчика не содержит значение 0. Из этого делается вывод, что произошло внезапное извлечение, и поэтому проводится восстановление содержимого счетчика, описанное ниже.
Фиг.3-7 иллюстрируют операции восстановления содержимого счетчика после того, как произошло внезапное извлечение, в зависимости от того, когда это внезапное извлечение произошло - во время фазы записи, между фазами записи и стирания или во время фазы стирания.
В первой ситуации, иллюстрируемой фиг.3, внезапное извлечение имело место во время фазы записи, значение Y было записано, но значение Х не было стерто. В этом случае, хотя значение Y и является правильным, невозможно гарантировать сохранение этого значения на уровне В. Следовательно, значение Y перезаписывается перед проведением стирания значения Х из уровня А, чтобы установить его в 0. Следует отметить, что проведение записи в ячейку памяти представляет собой реализацию функции ИЛИ между значением, которое находится в этой ячейке, и новым значением, и что вследствие этого новое значение можно записать лишь в ситуации, когда старое значение равно 0 или идентично новому значению (что и имеет место в данном случае).
Во второй ситуации, проиллюстрированной на фиг.4, внезапное извлечение имело место во время фазы записи, значение Y', находящееся между Х и Y, было записано на уровне В, а значение Х не было стерто из уровня А. В этом случае первая операция записи обеспечивает перезапись Y' на уровне В и стирание Y из уровня А. Затем операция записи обеспечивает запись Y на уровне А и стирание Y' из уровня В, так что счетчик снова оказывается в обычной ситуации, когда один уровень содержит новое значение, а другой уровень - значение 0.
В третьей ситуации, проиллюстрированной на фиг.5, внезапное извлечение имело место во время фазы записи, значение Y', которое меньше, чем Х, записано на уровне В, а значение Х не было стерто. В этом случае первая операция перезаписи обеспечивает перезапись значения Х на уровне А и стирание Y' из уровня В. Это оправдано тем, что восстановление счетчика всегда проводится с достижением наибольшего значения, которым в этом случае является значение Х. Затем операция записи обеспечивает запись Y на уровне В и стирание Х из уровня А.
В четвертой ситуации, проиллюстрированной на фиг.6, внезапное извлечение имело место между фазой записи и фазой стирания, значение Y записано на уровне В, а значение Х не было стерто из уровня А. Поскольку сохранение значения Y не гарантировано, операция перезаписи обеспечивает перезапись значения Y на уровне B и стирание значения Х из уровня А.
В пятой ситуации, проиллюстрированной на фиг.7, внезапное извлечение имело место во время фазы стирания, значение Y записано на уровне В, значение Х не было правильно стерто, и на уровне А находится значение X'. Поэтому необходимо провести операцию перезаписи значения Y на уровне B, которая, следовательно, обеспечивает стирание значения X' из уровня А.
Во всех этих ситуациях, которые только что описаны, предпринималось восстановление содержимого счетчика, потому что ни один из двух уровней не содержал значение 0, а после восстановления один из двух уровней содержит новое значение данных, а другой уровень содержит 0. Следует отметить, что ни в одной ситуации счетчик не оказывается снова в состоянии, когда максимальное значение, находящееся на уровне А или уровне В, меньше, чем старое значение (Х).