способ инициализации чип-карты
Классы МПК: | G06K19/07 с кристаллами интегральных схем G11C7/10 устройства интерфейса ввода-вывода данных, например схемы управления вводом-выводом данных, ввода-вывода буферных данных |
Автор(ы): | Макаров Александр Иванович (RU) |
Патентообладатель(и): | Закрытое акционерное общество "ОРГА ЗЕЛЕНОГРАД" (RU) |
Приоритеты: |
подача заявки:
2005-03-14 публикация патента:
10.11.2006 |
Изобретение относится к области производства пластиковых карт с чипом (карты со встроенной микросхемой). Его использование в пластиковых картах с чипом на основе микропроцессора, например в SIM-картах, позволяет получить технический результат в виде повышения скорости (сокращения времени) инициализации карты. Способ состоит в выполнении циклов операций, состоящих из загрузки команды внешним устройством в буфер чип-карты, выполнении команды чип-картой и возврате чип-картой сообщения о результате выполнения команды внешнему устройству. Технический результат достигается благодаря тому, что перед операцией загрузки внешним устройством формируют блок команд, содержащий административную команду, в которой в качестве данных используются несколько команд, подаваемых на карту, выполняют упомянутый блок команд и возвращают сообщение о результате выполнения блока команд внешнему устройству. При этом количество команд в блоке должно быть максимально возможным для сокращения циклов обмена и определяется длиной команд, размером буфера команд, максимально допустимой длиной данных в используемом протоколе передачи. 5 з.п. ф-лы, 2 ил.
Формула изобретения
1. Способ инициализации чип-карты, заключающийся в выполнении циклов операций, состоящих из загрузки команды внешним устройством в буфер чип-карты, выполнения команды чип-картой и возврата чип-картой сообщения о результате выполнения команды внешнему устройству, отличающийся тем, что перед операцией загрузки внешним устройством формируют блок команд, содержащий административную команду, в которой в качестве данных используют более чем одну команду из подаваемых на карту в процессе инициализации, загружают упомянутый блок команд в буфер чип-карты, выполняют упомянутый блок команд, после чего и возвращают сообщение о результате выполнения блока команд внешнему устройству.
2. Способ инициализации чип-карты по п.1, отличающийся тем, что буфер чип-карты расположен в оперативной памяти чип-карты.
3. Способ инициализации чип-карты по п.1, отличающийся тем, что буфер чип-карты расположен в энергонезависимой памяти чип-карты.
4. Способ инициализации чип-карты по любому из пп.1-3, отличающийся тем, что количество команд, передаваемых в одном блоке, определяется максимальным размером буфера чип-карты.
5. Способ инициализации чип-карты по любому из пп.1-3, отличающийся тем, что количество команд, передаваемых в одном блоке, определяется максимально разрешенной длиной данных, передаваемых чип-карте в одной команде.
6. Способ инициализации чип-карты по любому из пп.1-3, отличающийся тем, что после выполнения одной или группы команд из блока команд производится освобождение части буфера чип-карты, содержащего уже выполненные команды.
Описание изобретения к патенту
Изобретение относится к области производства пластиковых карт с чипом (карты со встроенной микросхемой, далее чип-карта или карта), более конкретно к производству пластиковых карт с чипом на основе микропроцессора, например к SIM-картам [1].
В составе микропроцессора карты присутствуют, как правило, три вида памяти [2]:
- ROM (Read Only Memory) - память, в которой хранится операционная система карты (загружается на этапе производства чипа);
- EEPROM (Electrically Erasable Programmable Read Only Memory) - энергонезависимая память, в которой хранится файловая структура карты, приложения (например, SIM ToolKit приложение [3]) и, возможно, расширения операционной системы карты (загружается на этапе производства карты);
- RAM (Random Access Memory) - оперативная память, используемая в процессе работы карты.
Процесс загрузки данных в память второго вида (EEPROM), выполняемый на этапе производства карт, как правило, называют инициализацией (или предперсонализацией [2]) карты. Изобретение относится именно к процессу инициализации. В процессе инициализации карты создаются заголовки файлов, содержащие служебные данные о файле (идентификатор файла, тип файла, условия доступа и т.д.), и тела файлов, содержащие собственно данные (контент, содержимое файла).
Известен способ инициализации карты, суть которого состоит в следующем. Каким-либо из известных способов (например, программирование на языке Ассемблер, выгрузка данных из Эмулятора карты) создается бинарный файл, представляющий "Образ" (Image-файл) этой памяти. (Здесь под Image-файлом понимается файл, имеющий побайтное соответствие между его содержимым и содержимым EEPROM карты). Затем путем подачи административных команд этот файл поблочно (здесь блок - часть бинарного файла определенной длины) загружается по указанным адресам памяти второго типа (EEPROM). Недостатком этого способа инициализации карты является необходимость передачи большого объема данных, равной объему загружаемой памяти, и, следовательно, большое время инициализации карты. Например, в SIM-картах объем передаваемых данных при использовании этого способа в настоящее время составляет от 16 кбайт до 256 кбайт [2].
Наиболее близким техническим решением является способ, использующий специальные административные команды, создающие файлы (команда CREATE) и записывающие в них необходимые данные (команда UPDATE) [2]. Поскольку ряд файлов может содержать "гладкие" (например, все единицы) данные, то объем передаваемых данных в этом случае значительно сокращается и тем самым сокращается время инициализации карты. Объем загружаемых на карту данных в этом случае сокращается до единиц (десятков) кбайт. Недостатком такого способа инициализации карты является последовательное выполнение следующих операций:
- передача команды на карту (команда подготавливается на управляющем компьютере или специализированном компьютерном устройстве, затем передается на считыватель, затем от считывателя - на карту);
- исполнение команды операционной системой карты;
- получение отчета карты (SW1, SW2 - Status_Word, [1]) о результате выполнения команды (карта - считыватель - управляющий компьютер).
Указанный блок действий выполняется, по меньшей мере, такое количество раз, сколько файлов создается на карте. Например, если на карте создается 50 файлов, то указанный блок действий выполняется более 50 раз. Кроме того, часть файлов требует записи данных определенного вида, отличного от "гладкого", т.е. выполнение команды UPDATE. Следовательно, количество циклов N обмена будет еще большим и в общем случае равно количеству команд.
В каждом цикле обмена микропроцессор переключается сначала на прием данных (от считывателя), затем на выполнение команды под управлением операционной системы и, наконец, на выдачу данных (на считыватель). Кроме того, в каждом цикле выполняется обмен данными между считывателем и управляющим компьютером. При этом наиболее медленной является операция по обмену данными между микропроцессором карты и считывателем. Очевидно, что уменьшение количества циклов (N) обмена приведет к повышению скорости инициализации карты.
Техническим результатом, на достижение которого направлено предлагаемое изобретение, является повышение скорости (сокращение времени) инициализации карты. Технический результат достигается за счет сокращения циклов обмена данными. Предлагается в буфер команд карты загружать блок команд, содержащий k команд, при этом k>1. Количество команд в блоке должно быть максимально возможным с целью сокращения количества этих блоков, а следовательно, и циклов обмена. Количество циклов обмена сокращается до М (M=N/k). Максимально возможное количество команд в блоке определяется длиной команд, размером буфера команд, максимально допустимой длиной данных в используемом протоколе передачи. Затем карта осуществляет выполнение этих команд и возвращает результат выполнения. Если это необходимо, вышеописанная процедура повторяется М раз, при этом M<N.
Следует отметить, что использование буфера команд является известным техническим решением. Даже в случае прототипа, команда сначала загружается в буфер команд, а затем происходит ее выполнение. В предлагаемом техническом решении команды (более чем одна) сначала загружаются в буфер, а затем последовательно выполняются.
Буфер команд может быть сформирован в оперативной памяти карты (в современных чипах объем RAM может достигать нескольких килобайт, что сравнимо с объемом загружаемой информации). При большом объеме блока команд и в случае недостаточности объема оперативной памяти буфер команд может быть сформирован в энергонезависимой памяти карты. Буфер команд может периодически очищаться после выполнения одной или группы команд, если это необходимо. Периодическое очищение буфера команд может иметь смысл при размещении буфера в EEPROM для использования места, занимаемого буфером команд, под файловую структуру карты.
На фиг.1. схематично представлен способ инициализации чип-карты, осуществляемый по прототипу.
На фиг.2. схематично представлен заявляемый способ инициализации чип-карты.
Предлагаемое техническое решение работает следующим образом. Управляющий компьютер формирует административную команду (условное название EXECUTE_BLOCK). В качестве данных этой команды используются команды, подаваемые на карту в процессе инициализации. Количество этих команд определяется размером данных, которые возможно передать в одной команде. Например, если используемый протокол передачи не разрешает, чтобы количество данных в команде было более 256 байт, то в этом случае суммарный объем передаваемых команд должен быть не более 256 байт. Затем эта команда (EXECUTE_BLOCK) передается на карту и попадает в буфер команд. Операционная система карты, обнаружив в буфере команд команду EXECUTE_BLOCK, начинает последовательно выполнять команды, находящиеся в буфере команд. В случае удачного выполнения всех команд буфера карта информирует управляющий компьютер об удачном завершении и готова принять следующую команду EXECUTE_BLOCK. В противном случае карта информирует управляющий компьютер о номере команды, при исполнении которой произошла ошибка.
Другими словами, процесс инициализации отличается от прототипа тем, что за один цикл обмена с картой можно передать более чем одну команду.
В качестве предельного случая для понимания предлагаемого решения следует рассмотреть инициализацию карты за один цикл обмена информацией между картой и считывателем. Предельный случай реализуем при выполнении следующих условий:
- размер буфера команд достаточен для размещения всех команд, необходимых для инициализации карты;
- протокол передачи позволяет передать такое количество данных в одной команде.
Размер буфера команд, при его размещении в RAM, не может превышать размер этой памяти. Если необходимо использовать буфер команд большего размера, например при ограниченном объеме RAM, то буфер команд может быть размещен в EEPROM. Недостатком такого решения является относительно большое время стирания (очищения) буфера, которое необходимо выполнять по завершению каждого цикла. В остальном, место размещения буфера команд (RAM или EEPROM) не оказывает влияния на работу предлагаемого технического решения.
Проведем оценку уменьшения количества циклов обмена информацией с картой в случае прототипа и предлагаемого технического решения. Предположим, что в процессе инициализации карты используются только команды CREATE и создается 50 файлов. В случае прототипа потребуется 50 циклов обмена. Типичная длина команды CREATE составляет примерно 25 байт (5 байт команда, примерно 20 байт данные [2]). Если принять максимальную длину блока равной 256 байт, то примерно 10 команд CREATE могут быть переданы на карту и помещены в буфер команд в одном блоке. Следовательно, в предлагаемом техническом решении количество циклов обмена информации уменьшится до 50/10=5 циклов. Поскольку процесс инициализации карты выполняется на этапе производства карты, а не на этапе ее использования (который более стандартизован), длина разово передаваемого блока может быть более 256 байт, а следовательно, количество циклов обмена сокращено в большее количество раз.
Следует отметить, что в предлагаемом решении объем загружаемых на карту данных такой же, как и в прототипе. Увеличение же скорости инициализации карты достигается за счет сокращения количества циклов обмена.
Ссылки
1. GSM11.11 ETSI TS 151 011 V4.1.0 (2001-06).
2. Тимоти М. Юргенсен, Скотт Б. Гатери. Смарт-карты: настольная книга разработчика. Пер. с англ. - М.: КУДИЦ-ОБРАЗ, 2003, 416 с.
3. GSM11.14 ETSI TS 101 267 V8.9.0 (2001-12).
4. ISO/IES (1987): ISO 7816-4, integrated circuit(s) cards with contacts. Part 4: Interindustry command for interchange.
Класс G06K19/07 с кристаллами интегральных схем
Класс G11C7/10 устройства интерфейса ввода-вывода данных, например схемы управления вводом-выводом данных, ввода-вывода буферных данных