CN104205132A - 在智能卡的非易失性存储器中写入数据 - Google Patents

在智能卡的非易失性存储器中写入数据 Download PDF

Info

Publication number
CN104205132A
CN104205132A CN201280067071.2A CN201280067071A CN104205132A CN 104205132 A CN104205132 A CN 104205132A CN 201280067071 A CN201280067071 A CN 201280067071A CN 104205132 A CN104205132 A CN 104205132A
Authority
CN
China
Prior art keywords
order
write
address
target
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201280067071.2A
Other languages
English (en)
Other versions
CN104205132B (zh
Inventor
迈克尔·巴塞
盖奥弗雷·斯皮诺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Idemia Identity and Security France SAS
Original Assignee
Morpho SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Morpho SA filed Critical Morpho SA
Publication of CN104205132A publication Critical patent/CN104205132A/zh
Application granted granted Critical
Publication of CN104205132B publication Critical patent/CN104205132B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Storage Device Security (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Credit Cards Or The Like (AREA)
  • Read Only Memory (AREA)

Abstract

本发明尤其涉及适用于在智能卡的非易失性存储器中写入数据的方法。本发明还涉及能够实施该方法的智能卡及其计算机程序、包括该计算机程序的存储介质以及包括智能卡和能够在该卡中进行写入的设备的***。

Description

在智能卡的非易失性存储器中写入数据
技术领域
本发明涉及在智能卡的非易失性存储器中写入数据。
背景技术
智能卡通常都包括非易失性存储器和易失性存储器。
“非易失性存储器”是一种能够在无需外部电力的情况下存储数据的存储器。非易失性存储器可为可编程的(例如EEPROM存储器,flash存储器等)或不可编程的(例如ROM存储器,其内容是一次性定义的且在制造时就已经决定的)。可编程非易失性存储器常用于存储随智能卡改变而变化的数据或者应用程序,例如包括不同目录和子目录的文件***、具有卡片持有者特定数据(名字、联系人信息等)的文件、Java卡的小应用程序等。智能卡具有容量典型值约为8KB至256KB的可编程非易失性存储器(通常为EEPROM)。不可编程非易失性存储器常用于存储操作***,以及(更多地)用于存储不太可能随着智能卡改变而变化的数据。智能卡一般具有约为64KB至512KB容量的ROM。当然,也可以采用其他种类的RAM,EEPROM或ROM。一些智能卡使用flash存储器来代替ROM和EEPROM两者。
“易失性”存储器(例如RAM存储器)是当外部电源中断对其供电时便会丢失其内容的存储器。一般来说,易失性存储器要比非易失性存储器快得多,尤其是写入操作。例如,写入EERPOM或flash存储器一般要比写入RAM慢得多。易失性存储器用于例如在软件执行期间存储暂时数据(状态变量,计算结果等)。智能卡一般都包括RAM存储器,其容量通常介于2KB和8KB之间。该大部分RAM通常是由变量(尤其是卡片操作***所使用的)和不同的应用程序所占据。部分RAM通常由缓冲区(buffer)所占据,其大小通常为几百字节并专用于接收命令。
智能卡一般不允许外部部件通过绝对寻址的方式对任何存储器进行写入操作。相反,智能卡一般可提供接口(例如ISO7816-4接口),外部部件可通过该接口发送命令至卡片(包括读取或写入命令)。该命令可在缓冲区中接收。卡片本身负责执行所接收到的命令,并且它可选择处理它们或者拒绝处理它们,禁止某些访问,使某些访问需要认证等。根据ISO7816-4标准的T=0协议,该协议是最为普通的协议,该命令包含五个字节(类字节,指令字节,以及三个参数字节P1,P2和P3),后面可选地跟随着数据(例如所要写入卡片的数据)。任意这种数据的长度通常由字节P3指定,并因此不超过255个字节(加上前面的5个字节)可一次发送。然而,这需要至少260字节的缓冲区。其他变型和其他协议同样存在(例如T=1协议,在理论上它可以一条命令来发送和接收多达64KB的数据)。
假设缓冲区的大小相当小,并在T=0协议的限定下,通常就不能将非常长的指令发送至卡片。如果要将多于255个字节写入卡片上的文件中(T=0),则该数据通常要划分为较小的子集(例如具有255字节的数据块),并且发送与数据块的块数一样多的写入命令。
例如,可以使用UPDATE BINARY命令(ISO7816-4标准的指令0xD6),它允许写入所谓的“透明(transparent)”文件。这是一种EF(基本文件)类型的文件,它可通过指定目标(在0x0000,表示文件的起始位置,和对应于文件大小并减去至少一个字节的地址之间,如果你想要修改文件的最后一个字节)进行写入。然而,这不仅需要发送部件计算数据子集(255字节的块),还需要发送部件计算目标文件中各个数据块所要写入的地址,这是不切实际的。
已知的还有使用UPDATE RECORD命令(ISO7816-4标准的指令0xDC),这允许创建一个包括多个记录的EF文件且其中各个记录都由索引标识。各个记录都有可能具有不同的大小(取决于卡片)。然而,这需要计算记录索引,这是不切实际的。此外,有时需要写入一种大小的数据块(例如11字节的数据块),然而读取另一种大小的数据块(例如13字节的数据块);在这种情况下,记录文件的结构就显得非常不切实际的,这是因为要读取的数据分布在多个记录和记录部分之间。
已知的还有使用PUT DATA命令(ISO7816-4标准的指令0xDA)。该标准规定:根据所选择的对象(PUT DATA命令要写入的),有可能执行“写入一次(writing once)”操作或“升级”操作或“追加”操作。然而,在该标准中没有指定“追加”操作的过程。
发明内容
本发明旨在改进该状况。
本发明的一方面涉及一种在智能卡的非易失性存储器中写入数据的方法,包括:
/a/在智能卡的易失性存储器的缓冲区中接收写入命令,
/b/通过智能卡比较与写入命令相关联的目标标识参数和存储在智能卡非易失性存储器中的目标标识参数,
/c/如果比较是肯定的,则:
/c1/将嵌入在写入命令中所要写入的数据从缓冲区以存储在非易失性存储器中的预定地址写入至与该写入命令相关联的目标,
/c2/计算对应于存储的预定地址和写入数据大小之和的地址,
/c3/将计算得到的地址存储在非易失性存储器中替代预定地址,
/d/如果比较是否定的,则:
/d1/将嵌入在写入命令中所要写入的数据从缓冲区以默认地址写入至与该写入命令相关联的目标,
/d2/计算对应于默认地址和写入数据大小之和的地址,
/d3/将计算得到的地址存储在非易失性存储器中作为预定地址。
该方法的优点在于,它提供了一种在智能卡中写入大量数据的简单方式。它允许将长度大于缓冲区大小的数据以及超过T=0协议限定的255字节限制的数据写入卡片,同时无需部件发送数据来计算地址或索引。这尤其适用于在诸如“match-on-card”技术的生物计量技术中使用卡片,以允许卡片自身来验证生物计量数据。确实,生物计量数据(例如指纹或面部识别数据)可以非常庞大,高达几KB。
本发明的一方面涉及一种包含一系列指令的计算机程序,当它被智能卡的处理器执行时可实施根据本发明一方面的方法。
本发明的一方面涉及一种适用于存储根据本发明一方面的计算机程序的非暂态计算机可读存储介质。
本发明的一方面涉及一种智能卡,它包括非易失性存储器,易失性存储器、包含在易失性存储器中的缓冲区,以及用于处理写入非易失性存储器的写入命令的电路,该电路设置为处理存储在缓冲区中的命令,所述命令与标识存储在非易失性存储器中的目标的参数相关联且写入非易失性存储器中,所述电路设置为将标识存储在非易失性存储器中的目标的参数和该目标内的预定地址存储在非易失性存储器中,该电路设置为当处理写入命令时比较与写入命令相关联的目标标识参数与存储在非易失性存储器中的目标标识参数,以及,如果比较是肯定的,则将嵌入在写入命令中所要写入的数据从缓冲区以存储在非易失性存储器中的预定地址写入至与写入命令相关联的目标,计算对应于存储的预定地址和写入数据大小之和的地址,并将计算得到的地址存储在非易失性存储器中替代预定地址,该电路设置为,如果比较是否定的,则将嵌入在写入命令中所要写入的数据从缓冲区以默认地址写入至与写入命令相关联的目标,计算对应于默认地址和写入数据大小之和的地址,并将计算得到的地址存储在非易失性存储器中作为预定地址。
本发明的一方面涉及包括电子设备和根据本发明一方面的智能卡的***,该电子设备设置为将要通过该设备写入智能卡的数据划分为子集,使得各个子集的大小最多等于预定值,构建一组与卡片的同一目标相关的写入命令,各个写入命令包括各自所要写入的数据子集,并将以此方式构建的各个写入命令发送至卡片。
通过以非限制的方式对某些实施例的描述,本发明的其他特征、目标和优点将变得明显。
附图说明
通过参考下述附图有助于更好地理解本发明,其中:
图1图示了实施根据本发明一个实施例的方法的六个连续步骤;
图2图示了包括便携式计算机、连接至该计算机的智能卡读取器以及根据本发明一个实施例的智能卡的***;
图3示意性地图示了根据本发明一个实施例的智能卡的架构。
具体实施方式
一个可能的实施例涉及一种在智能卡的非易失性存储器(例如EEPROM或flash存储器)中写入数据的方法。该方法包括接收写入命令。该命令可能为例如格式为IOS7816-4标准的PUT DATA命令的命令,然而以下文指定的方式在功能上进行修改。可能的是对此写入命令使用不同于IOS7816-4标准中为指令码INS所指定的数值0xDA或0xDB(例如未使用的指令码),以便允许使用常用的PUTDATA命令。该接收写入的命令因此可包括包含诸如命令类型(在根据IOS7816-4标准的命令的情况下它的指令码INS)的不同的参数的报头以及所要写入的数据。此命令从卡片的外部部件(例如银行终端、移动电话、或连接至计算机的智能卡读取器)接收在智能卡易失性存储器(例如RAM)的缓冲区中。尤其是,它可能通过智能卡的I/O接口(例如使用由IOS7816-3标准指定的I/O触点)来接受。
该方法包括通过智能卡来比较与写入命令相关联的目标标识参数和存储在智能卡非易失性存储器中的目标标识参数。该命令因此可与卡片的某些目标相关联,例如一EF文件。这一关联的效果在于该命令将其所包含的数据写入与其相关联目标中。根据本发明一个实施例,存储在非易失性存储器中的目标标识参数可标识由另一(写入)命令所指向写入智能卡的上一目标。该另一命令是相同类型的命令,例如它具有相同的指令码,这意味着与IOS7816-4标准所定义的INS字节相同,区别仅在于例如其参数(例如T=0协议中定义的参数P1,P2和P3)和数据(在T=0协议的情况下为该命令第五字节之后的字节)。当该卡片作初始化时(例如在卡片首次使用或者无论何时它连接至电源期间),都有可能将作为存储在非易失性存储器中的目标标识参数的默认值进行保存,该默认值可对应于任意可能目标(例如零值,或为此任意和惯常选择的任何其他值)。因此,在默认值和与写入命令相关联的目标标识参数之间的比较必然为否定的。
如果比较为肯定的,这意味着写入命令试图写入与相同类型的上一写入命令写入的目标相同的目标,该方法可执行下述步骤。
第一步骤包括将所要写入的数据(它包含在写入命令中)从缓冲区(在接收到写入命令后它们作为写入命令的一部分存储至该缓冲区)以存储在非易失性存储器中的预定地址写入至与该写入命令相关联的目标。因此,该卡片可从非易失性存储器中读取该预定地址的数值,然后以预定地址写入至目标。此预定地址优选为该目标内部的相对地址。因此,该卡片可写入等于目标地址(表示为绝对地址)和预定地址之和的绝对地址。当然,该卡片可执行安全机制,以确保写入操作发生于相关目标的内部(例如通过检查等于预定地址和所要写入的数据大小之和减去1的地址确实位于该目标内部)。
第二步骤包括计算对应于存储的预定地址和写入数据大小之和的地址。该地址对应于紧随上一写入字节之后的地址。
第三步骤包括将计算得到的地址存储在非易失性存储器中替代预定地址。这样,假设相同类型的这一命令与同一目标相关联,且紧接着刚刚写入的数据进行写入,那么对相同类型的写入命令的下一次调用,无需部件(例如移动电话)负责构建和发送需要存储前一地址或计算新地址的写入命令。
如果比较为否定的,这意味着写入命令所要写入的目标与调用的相同类型的上一写入命令所写入的目标不同,或者如果这一类型的写入命令被首次调用,则该方法可执行下述步骤。
第一步骤包括将嵌入在写入命令中所要写入的数据从缓冲区以默认地址写入至与该写入命令相关联的目标。该默认地址有利地为该目标内的相对地址。然后,卡片可写入至等于目标的地址(表示为绝对地址)和默认地址之和的绝对地址。当然,该卡片可执行安全机制,以确保写入操作发生在相关目标的内部(例如通过检查等于默认地址和所要写入数据的大小之和减1的地址确实位于目标内部)。
第二步骤包括计算对应于目标地址和写入数据大小之和的地址。该地址对应于紧随上一写入字节之后的地址。
第三步骤包括将计算得到的地址存储在非易失性存储器中作为预定地址。这样,假设相同类型的这一命令与相同目标相关联,且紧接着刚刚写入的数据进行写入,那么相同类型的写入命令的下一次调用,无需部件(例如移动电话)负责构建和发送需要存储前一地址或计算新地址的写入命令。
一个可能的实施例涉及一种将与写入命令关联的目标标识参数嵌入在写入命令中的方法。这样,能够例如使用参数P1和P2来存储目标(例如ISO7816-4标准中所定义的基本文件EF)的标识符(文件ID,简称为FID,如ISO7816-4标准中定义的那样)。例如,如果该命令基于ISO7816-4标准中定义的UPDATE BINARY命令,参数P1和P2,它们应该表示所要写入的目标的内部地址,就不再需要并用标识要写入的目标的文件ID替代。
一个可能的实施例涉及将与写入命令相关联的目标标识参数存储在易失性存储器中并通过智能卡的目标选择命令进行更新的方法。例如,有可能使用ISO7816-4标准所定义的SELECT命令(对于指令码INS它使用值0xA4)以选择下一写入命令所自动写入的EF,而无需进行明确指出它所要写入的目标写入命令。
一个可能的实施例涉及一种默认地址是零地址的方法。因此,每次根据本发明一个实施例的写入命令写入至目标且当所调用的相同类型的上一写入命令(如果存在)写入至另一目标时,以及每次该类型的写入命令被首次调用(例如在特定会话中的首次或者将卡片连接至电源之后的首次或者自从制造出卡片算起的真正首次),该方法写入零地址。很显然,这是相对于所讨论的目标的零地址并且它对应于该目标的起始。
作为选择的,有可能使用不同于零的默认地址。例如,如果通过根据本发明一个实施例的写入命令所要写入的目标的结构使得只有特定的地址可被写入,并且其不位于该目标的起始位置(它包含例如由卡片本身所管理的管理数据),有可能使用该目标内的有效地址作为默认值。
当默认值对所有目标共用并当该方法通过软件实现时,该值可存储在实际代码中(该代码例如可存储在ROM中)。
默认地址可随着目标类型的不同而改变(例如,卡片根据每个目标类型来存储不同的默认地址)。这种情况下,例如,不同的默认值可以表格的形式存储在ROM中。如果它们能够改变或者如果卡片开发者不能够预测所使用的目标的类型,则它们可以表格形式存储在EEPROM或flash存储器中。目标的类型可为,例如:存储指纹的透明EF文件,存储面部识别数据的透明EF文件,存储数据的透明EF文件,存储位置的透明EF文件,存储地理地址的透明EF文件(例如街道号,街道名,城市,国家)等。可以看出,目标类型并不一定(虽然可能)对应于文件类型(例如ISO7816-4“透明EF”文件类型),而是可以对应于更低一级的细分,该细分对应于这些文件的内容,所述细分并不按照智能卡操作***的定义,而是依照使用智能卡的部件的定义。这种情况下,在EEPROM或flash存储器中的表格一般就更为合适。
对于默认值来说,还有可能与各个特定目标相关联(即,对于各个目标实例来说,这意味着相同类型的两个不同目标可与两个不同的默认值相关联)。因此,包含指纹的两个透明的EF文件可与不同的默认值相关联。在创建目标时,该默认值可设置为零(或其它数值,这取决于目标的类型,如上述段落所述),然后可进行更新。默认值可存储于目标内或与目标一起存储在可重复写入的非易失性存储器(例如EEPROM或flash存储器)中。在一个可能的实施例中,智能卡仅存储一个预定数值,并不考虑目标的数量。每次根据本发明一个实施例的写入命令写入新目标(意味着该目标并不是由相同类型的上一命令执行时所写入的目标或为初始的目标)时,对预定值进行重新初始化。在这种情况下,更新指定目标所存储的默认值可以通过拷贝与该目标相关联的预定值来实现,以便将预定值用作默认值。因此,如果外部的部件使用相同类型的写入命令来写入第一目标、写入第二目标,然后再次写入第一目标,则它在最初写入的位置之后写入第一目标,不会覆盖最初的写入值。在智能卡对默认值实施自动更新的情况下,有利的是在卡片内部提供重新初始化默认值的命令,它例如可赋予在创建目标时所赋予的数值。因此,有可能通过根据本发明一个实施例的写入命令,替换之前使用根据本发明一个实施例的写入命令写入至目标的数据。
一个可能的实施例涉及一种将命令编码为根据ISO7816-4标准的APDU命令的方法。写入命令可为APDU命令,并且选择命令也可为APDU命令(根据ISO7816-4标准它可以为SELECT命令)。用于重新初始化默认值的命令,如果存在的话,也可为APDU命令。
图1图示了根据本发明一个实施例的方法的重复使用。根据本发明一个实施例,读取器RDR发送第一写入命令WRITE(FID_1,DATA_1)至智能卡SC。智能卡第一次接收到WRITE指令,并写入具有标识符FID_1的文件。因此,它将数据DATA_1写入文件的起始位置。读取器发送第二写入命令WRITE(FID_1,DATA_2)至智能卡。然后,该卡片在数据DATA_1后写入数据DATA_2。读取器发送第三写入命令WRITE(FID_1,DATA_3)至智能卡。然后,该卡片在数据DATA_2后写入数据DATA_3。读取器发送第四写入命令WRITE(FID_2,DATA_4)至智能卡。该卡片检测它已经接收到命令以写入与刚才写入的文件不同的文件。因此,它将数据DATA_4写入具有标识符FID_2的文件的起始位置。读取器发送第五写入命令WRITE(FID_2,DATA_5)至智能卡。然后,该卡片将数据DATA_5写入在具有标识符FID_2的文件中数据DATA_4之后。读取器发送第六写入命令WRITE(FID_1,DATA_6)至智能卡。该卡片检测它已经接收到命令以写入与刚才写入的文件不同的文件。它查询具有标识符FID_1的文件的默认地址,该默认地址通过对所述文件的先前写入进行更新,因此,它在数据DATA_3后写入数据DATA_6。
该操作尤其有利于支持多任务处理的设备上运行多个应用并且这些应用可发送写入命令至卡片。卡片然后可交替写入不同的文件,并且设备上的应用无需担心文件组织的细节或者计算写入的地址。在一种极端的情况下,无需彼此相互间通信的多种应用可能需要在智能卡上写入同一文件,例如记录事件发生的日志文件。所有应用都不能由它自身来确定它应当写入新事件的地址。
在另一实施例中(未示出),智能卡包含两个空目标(O1和O2)。该方法包括接收连续的写入命令(例如用于写入下述生物计量数据D1至D7):
Write(O1,D1),
Write(O1,D2),
Write(O1,D3),
Write(O2,D4),
Write(O2,D5),
Write(O1,D6),然后
Write(O1,D7)。
然后,数据D1,D2和D3在目标O1中并置,而目标O2仍然是空的,然后数据D4和D5在目标O2中并置(数据D1,D2和D3仍在目标O1中),以及最后目标O1的数据D1,D2和D3被丢失(覆盖),数据D6和D7在目标O1中并置替代数据D1至D3。一旦目标改变(例如当FID改变时),那么写入就位于新选择目标的起始位置并且覆盖旧数据。如果数据D1至D3的并置长于数据D6和D7的并置,则剩余部分在物理上仍留在智能卡的存储器中(在D7数据之后),而在逻辑方面来看它不被认为存在于目标O1中。例如,目标O1可包括指示其当前大小的参数(在本示例中对应于数据D6和D7的并置的大小),并且超出此大小的存储的任意信息都可被忽略。不删除剩余部分减少了非易失性存储器中写入操作的次数(删除是一种形式的写入),这可能特别有利于更快的处理(更少的写入操作)或者延长非易失性存储器的寿命(每次写入操作都会使存储器退化,存储器仅能保证确保一定次数的写入周期)。
一个可能的实施例涉及一种通过诸如移动电话、银行终端等的电子设备在智能卡的非易失性存储器中写入数据的方法。
该方法包括通过电子设备将要写入的数据划分为子集。这些子集中的各个子集的大小最多等于预定值。根据一个实施例,该值可定义为例如可以一个写入命令发送所要写入的数据的最大量,该写入命令的大小等于在智能卡的易失性存储器中的缓冲区的大小(接收该命令)和命令的最大大小(例如,在T=0中写入命令最多为260字节,因此,能够发送不超过255字节)之间的最小值。
例如,用于验证生物计量护照(这是一种特定形式的智能卡)的终端能够捕获声称为护照持有者的人员的指纹(例如在机场的边境管制处)并将它划分成连续的255字节分段。如果以字节表示的指纹大小不是255的倍数,则在分段中的至少一个分段会较小,例如最后分段。因此,各个分段对应于上述子集中的一个子集。
该方法包括构建一组与智能卡的同一目标相关联的写入命令,各个写入命令都包括所要写入数据的各自子集。
例如,该命令可通过置于各个数据子集之前创建,例如,各个255字节的数据块各自表示一部分指纹数据,且具有写入命令的头部。
头部可采用{CLA,INS,P1,P2,P3}的形式,其中值CLA,INS,P1,P2和P3各自都为一个字节,从而使得命令的大小为260字节。P3可能等于0xFF,以指示所要写入的255字节的数据跟随在5个头部字节之后。P1和P2可能等于零。作为替换的,P1||P2可表示写入命令所要写入数据的文件的标识符。INS字节例如可为不由ISO7816-4标准所指定的任意值或者由涉及的智能卡指定但并不使用的任意值。ISO7816-4标准并不需要执行它所指定的所有指令。这一最后选项(标准指令码的重新使用不能在卡片中预先使用)使得卡片并不严格遵循ISO7816-4标准。这一不符合性并不必然是一个问题,这取决于应用。分类字节(CLA)可采用任何适当的值。
该方法包括由电子设备发送各个写入命令至智能卡。设备依照数据子集在所要写入数据中占据的顺序(在划分之前)依次发送包含这些子集的命令。因此,在智能卡的非易失性存储器中写入的数据完全相同于所想写入的数据。
最后,依据根据本发明一个实施例的方法,该方法包括通过智能卡来处理所接收到的各个命令。
根据另一实施例,设备陆续接收或获取所要写入智能卡的数据,并当数据到达时将数据发送至该卡片(通过陆续构建写入命令)。在这种情况下,除非它一次接收到超过255字节(在T=0协议的情况下),或者超过智能卡缓冲区大小(如果它小于260字节),该设备就不需要创建子集。
如果智能卡缓冲区小于260字节,就有利于将缓冲区的大小发送至用户设备。这一大小可能出现在例如ISO7816所指定的ATR(复位应答)的空闲字节中。一般来说,限制因素是T=0所限制的255字节大小而不是缓冲区的大小(它一般至少为255字节),因此在这种情况下就无需发送缓冲区的大小。
一个可能的实施例涉及包括一系列指令的计算机程序,当由智能卡的处理器执行时可实施根据本发明一个实施例的方法。这些指令可以是例如汇编语言形式的指令或者高级语言形式的指令,以便适用于具有可通过更高级语言(例如C或Java)编程的处理器的智能卡。
一个可能的实施例涉及存储根据本发明一个实施例的计算机程序的非暂态计算机可读存储介质。存储介质可以是例如智能卡的ROM、flash存储器或EEPROM。
一个可能的实施例涉及一种智能卡SC,它包括非易失性存储器EEPROM,易失性存储器RAM,易失性存储器内的缓冲区BUF,以及用于处理在非易失性存储器中的写入命令的电路PROC和ROM。
电路可包括智能卡处理器和存储器(例如ROM),它包含可由处理器执行的软件以及实施根据本发明一个实施例的方法。图3所示的处理器PROC是集成电路的形式(采用双列直插式封装)。然而,这仅仅只是示意性表达,因为智能卡处理器一般都集成在同样包括多种存储器(RAM,EEPROM,ROM……)的微控制器中。微控制器典型为从晶片中切割出的电路芯片(或者半导体材料块)并以常用方法贴附成模块的形式。电路还可以完全电子方式来实现,没有任何处理器或软件(例如使用硬连线逻辑或FPGA)。
电路设置为处理存储在缓冲区中的命令。该命令与标识参数相关联。该标识参数可存储在易失性存储器中。标识参数标示出存储在非易失性存储器中的目标。命令必须写入该目标。该电路还设置为存储目标EF的标识参数FID至非易失性存储器中。目标EF存储在非易失性存储器中(它可以是与命令相关联的上文的目标,或另一目标)。该电路设置为存储预定地址ADDR至非易失性存储器。预定地址是位于目标EF内部的地址。该电路设置为,当处理写入命令时,比较与写入命令相关联的目标标识参数和存储在非易失性存储器中的目标EF的标识参数FID。
如果比较为肯定的,则电路设置为将嵌入在写入命令中所要写入的数据从缓冲区以存储在非易失性存储器中的预定地址写入至与写入命令相关联的目标。电路设置为计算对应于存储的预定地址ADDR和写入数据大小之和的地址。电路设置为将计算的地址存储在非易失性存储器中替代预定地址ADDR。
如果比较为否定的,则电路设置为将嵌入在写入命令中所要写入的数据从缓冲区以默认地址写入至与写入命令相关联的目标。电路设置为计算对应于默认地址和写入数据大小之和的地址。电路设置为将计算的地址存储在非易失性存储器中作为预定地址。
一个可能的实施例涉及一种包括电子设备(例如与卡片读取器RDR匹配的计算机PC)和根据本发明一个可能实施例的智能卡SC的***。电子设备设置为将要通过该设备写入智能卡的数据划分为子集,使得各个子集的大小最多等于预定值。电子设备设置为构建与卡片的同一目标相关联的一组写入命令,各个写入命令包括各自所要写入的数据子集。电子设备设置为将以该方法所构建的各个写入命令发送至卡片。
相关于本发明方法进行描述的实施例可转化为根据本发明的智能卡和***,以及根据本发明的程序的计算机程序和用于存储的介质,反之亦然。
上文已经通过特定示例对本发明做出了说明,但并不限于这些示例。尤其是,本发明可应用于所有形式的智能卡(具有或不具有触点的卡片、安全USB密钥、电子标识卡、SIM卡、银行卡、访问卡、安全令牌、生物计量护照、行驶记录仪、健康卡、电子签证、SecureMMC卡,等等)。发送写入命令至智能卡的电子设备可包括各种设备(自动柜员机、自动收费机、POS支付终端、健康卡读取器、智能卡个人化站、智能卡制造机、移动电话、安装有智能卡读取器的计算机、生物计量护照验证站,等等)。
根据一个实施例的写入命令可为菊花链型,这意味着特别是当缓冲区的大小大于命令的最大大小时,有可能接连陆续发送多个命令,并且仅当接受到这些命令中的最后一个命令时写入非易失性存储器。例如,如果缓冲区可包含三个命令,并且所要写入的数据需要十二个命令,则智能卡可将三个命令的序列串连起来并因此仅执行四个写入步骤而不是十二个(但是具有3倍的数据)。
虽然给出的示例本质上是基于T=0协议的示例,但本发明也适用其他协议。例如,根据本发明一个实施例的写入命令可为根据T=1协议的命令,其中卡片只要简单地验证命令不超过它缓冲区的大小。

Claims (10)

1.一种适用于在智能卡的非易失性存储器中写入数据的方法,包括:
/a/在智能卡的易失性存储器的缓冲区中接收写入命令,
/b/通过智能卡来比较与写入命令相关联的目标标识参数和存储在智能卡非易失性存储器中的目标标识参数,
/c/如果比较是肯定的,则:
/c1/将嵌入在写入命令中所要写入的数据从缓冲区以其值存储在非易失性存储器中的预定地址写入至与该写入命令相关联的目标,
/c2/计算对应于存储的预定地址和写入数据大小之和的地址,
/c3/将计算得到的地址存储在非易失性存储器中替代预定地址,
/d/如果比较是否定的,则:
/d1/将嵌入在写入命令中所要写入的数据从缓冲区以默认地址写入至与写入命令相关联的目标,
/d2/计算对应于默认地址和写入数据大小之和的地址,
/d3/将计算的地址存储在非易失性存储器中作为预定地址。
2.根据权利要求1所述的方法,其特征在于,所述与写入命令相关联的目标标识参数嵌入在写入命令中。
3.根据权利要求1所述的方法,其特征在于,所述与写入命令相关联的目标标识参数存储在易失性存储器中,并由智能卡的目标选择命令进行更新。
4.根据上述任一权利要求所述的方法,其特征在于,所述默认地址是零地址。
5.根据上述任一权利要求所述的方法,其特征在于,所述命令被编码为根据ISO7816-4标准的APDU命令。
6.一种通过电子设备在智能卡的非易失性存储器中写入数据的方法,该方法包括:
/a/通过设备将所要写入的数据划分为子集,使得各个子集的大小最多等于预定值,
/b/构建与卡片的同一目标相关联的一组写入命令,各个写入命令包含各自所要写入的数据子集,
/c/通过设备将各个写入命令发送至智能卡,
/d/依据根据权利要求1至5中任一项所述方法,由智能卡处理所接收到的各个命令。
7.一种包含一系列指令的计算机程序,当它被智能卡的处理器执行时实施根据权利要求1至5任一项所述方法。
8.一种存储根据权利要求7所述的计算机程序的非暂态计算机可读存储介质。
9.一种智能卡(SC),包括非易失性存储器(EEPROM),易失性存储器(RAM)、易失性存储器内的缓冲区(BUF),以及用于处理非易失性存储器中的写入命令的电路(PROC,ROM),所述电路(PROC,ROM)设置为处理存储在缓冲区(BUF)中的且与标识目标的标识参数相关联的命令,所述目标存储在命令将要写入的非易失性存储器(EEPROM)中,所述电路(PROC,ROM)设置为在非易失性存储器(EEPROM)中,一方面存储目标(EF)的标识参数(FID),目标(EF)存储在在非易失性存储器(EEPROM)中,以及另一方面存储目标(EF)内的预定地址(ADDR),电路(PROC,ROM)设置为当处理写入命令时比较与写入命令相关联的目标标识参数与存储在非易失性存储器(EEPROM)中的目标标识参数(FID),并且,如果比较是肯定的,则将嵌入在写入命令中所要写入的数据从缓冲区(BUF)以存储在非易失性存储器(EEPROM)中的预定地址(ADDR)写入至与写入命令相关联的目标,计算对应于存储的预定地址(ADDR)和写入数据大小之和的地址,并将计算得到的地址存储在非易失性存储器(EEPROM)中替代预定地址(ADDR),如果比较是否定的,电路(PROC,ROM)设置为将嵌入在写入命令中所要写入的数据从缓冲区(BUF)以默认地址写入至与写入命令相关联的目标,计算对应于默认地址和写入数据大小之和的地址,并将计算得到的地址存储在非易失性存储器(EEPROM)中作为预定地址。
10.一种包括电子设备(PC,PDR)和根据权利要求9的智能卡(SC)的***,所述电子设备(PC,PDR)设置为通过设备(PC,PDR)将写入智能卡(SC)的数据划分为子集,使得各个子集的大小最多等于预定值,构建与卡片(SC)的同一目标相关联的一组写入命令,各个写入命令包括各自所要写入的数据子集,并将以该方法所构建的各个写入命令发送至卡片(SC)。
CN201280067071.2A 2011-12-02 2012-11-30 在智能卡的非易失性存储器中写入数据 Expired - Fee Related CN104205132B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR1161102A FR2983622B1 (fr) 2011-12-02 2011-12-02 Ecriture de donnees dans une memoire non volatile de carte a puce
FR1161102 2011-12-02
PCT/FR2012/052770 WO2013079885A1 (fr) 2011-12-02 2012-11-30 Ecriture de donnees dans une memoire non volatile de carte a puce

Publications (2)

Publication Number Publication Date
CN104205132A true CN104205132A (zh) 2014-12-10
CN104205132B CN104205132B (zh) 2017-06-20

Family

ID=47599040

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280067071.2A Expired - Fee Related CN104205132B (zh) 2011-12-02 2012-11-30 在智能卡的非易失性存储器中写入数据

Country Status (13)

Country Link
US (1) US9513842B2 (zh)
EP (1) EP2786317B1 (zh)
JP (2) JP2015501039A (zh)
KR (1) KR20140108666A (zh)
CN (1) CN104205132B (zh)
BR (1) BR112014013064A2 (zh)
FR (1) FR2983622B1 (zh)
IL (1) IL232873A (zh)
IN (1) IN2014MN01055A (zh)
MY (1) MY167911A (zh)
RU (1) RU2607622C2 (zh)
SG (1) SG11201402827UA (zh)
WO (1) WO2013079885A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111813345A (zh) * 2020-07-17 2020-10-23 济南浪潮数据技术有限公司 一种数据传输方法、装置、服务器及可读存储介质

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6926945B2 (ja) * 2017-10-25 2021-08-25 大日本印刷株式会社 Icカードおよびターミナル装置
US11113608B2 (en) 2017-10-30 2021-09-07 Accenture Global Solutions Limited Hybrid bot framework for enterprises
US10958640B2 (en) * 2018-02-08 2021-03-23 Citrix Systems, Inc. Fast smart card login
JP6905486B2 (ja) 2018-03-13 2021-07-21 信越化学工業株式会社 付加硬化型シリコーン組成物、シリコーン硬化物、及び半導体装置
US11132673B1 (en) * 2018-04-25 2021-09-28 Dmitry Mikhailov Use of secure chips for storage of hashed data and private keys in hardware cryptowallets
CN109578259A (zh) * 2018-10-15 2019-04-05 Tcl家用电器(合肥)有限公司 识别、运行方法及装置、计算机设备和存储介质
CN111079890A (zh) * 2018-10-19 2020-04-28 中兴通讯股份有限公司 一种数据处理方法及装置、计算机可读存储介质
CN110210591B (zh) * 2019-06-05 2022-06-21 金邦达有限公司 一种智能ic卡个人化数据的写入方法、计算机装置及计算机可读存储介质
US10963187B2 (en) * 2019-06-11 2021-03-30 Cirrus Logic, Inc. Discrete exchange and update of multiple consistent subset views of an evolving data store
EP3825881B1 (en) * 2019-11-21 2021-12-29 IDEMIA France Managing personalisation in a device implementing a java card environment
FR3107971B1 (fr) * 2020-03-03 2022-02-18 St Microelectronics Rousset Procédé d’écriture de données dans une mémoire d’un transpondeur sans contact, et dispositif de transpondeur sans contact correspondant.

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5608902A (en) * 1993-12-10 1997-03-04 Kabushiki Kaisha Toshiba File management system for memory card
FR2842622A1 (fr) * 2002-07-18 2004-01-23 Xiring Procede et equipement de transfert de donnees entre deux cartes a microcircuit
US20050234855A1 (en) * 2004-03-31 2005-10-20 Kabushiki Kaisha Toshiba Portable electronic device
US20060079254A1 (en) * 2003-02-11 2006-04-13 Hogan Timothy J Method and apparatus for updating a control file
US20090187709A1 (en) * 2008-01-23 2009-07-23 Phison Electronics Corp. Method, system and controller for transmitting and dispatching data stream
US20100235393A1 (en) * 2009-03-10 2010-09-16 Kabushiki Kaisha Toshiba Portable electronic device and access control method in portable electronic device

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09231113A (ja) * 1995-12-22 1997-09-05 Dainippon Printing Co Ltd Icカード
FR2759795B1 (fr) * 1997-02-14 1999-05-07 Francois Charles Oberthur Fidu Procede de stockage de donnees dans une memoire reinscriptible de carte a puce
US7024532B2 (en) * 2001-08-09 2006-04-04 Matsushita Electric Industrial Co., Ltd. File management method, and memory card and terminal apparatus that make use of the method
EP1702250B1 (de) * 2003-12-30 2009-07-08 Wibu-Systems AG Verfahren zum steuern eines datenverarbeitungsgeräts
US20070094478A1 (en) * 2005-10-20 2007-04-26 Erich Plondke Pointer computation method and system for a scalable, programmable circular buffer
JP4583305B2 (ja) * 2005-12-28 2010-11-17 シャープ株式会社 記録方法、記録装置及びicカード
CN100485681C (zh) * 2006-03-23 2009-05-06 北京握奇数据***有限公司 智能卡存储***及该***中文件创建管理的方法
JP4776462B2 (ja) * 2006-07-19 2011-09-21 株式会社東芝 携帯可能電子装置および携帯可能電子装置の制御方法
JP2008070929A (ja) * 2006-09-12 2008-03-27 Matsushita Electric Ind Co Ltd メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム
JP5259513B2 (ja) * 2009-07-15 2013-08-07 株式会社東芝 携帯可能電子装置、icカードおよび携帯可能電子装置の制御方法
JP2011141928A (ja) * 2010-01-07 2011-07-21 Elpida Memory Inc 半導体装置及びその制御方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5608902A (en) * 1993-12-10 1997-03-04 Kabushiki Kaisha Toshiba File management system for memory card
FR2842622A1 (fr) * 2002-07-18 2004-01-23 Xiring Procede et equipement de transfert de donnees entre deux cartes a microcircuit
US20060079254A1 (en) * 2003-02-11 2006-04-13 Hogan Timothy J Method and apparatus for updating a control file
US20050234855A1 (en) * 2004-03-31 2005-10-20 Kabushiki Kaisha Toshiba Portable electronic device
US20090187709A1 (en) * 2008-01-23 2009-07-23 Phison Electronics Corp. Method, system and controller for transmitting and dispatching data stream
US20100235393A1 (en) * 2009-03-10 2010-09-16 Kabushiki Kaisha Toshiba Portable electronic device and access control method in portable electronic device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111813345A (zh) * 2020-07-17 2020-10-23 济南浪潮数据技术有限公司 一种数据传输方法、装置、服务器及可读存储介质

Also Published As

Publication number Publication date
JP6355699B2 (ja) 2018-07-11
FR2983622A1 (fr) 2013-06-07
JP2015501039A (ja) 2015-01-08
IL232873A0 (en) 2014-07-31
KR20140108666A (ko) 2014-09-12
SG11201402827UA (en) 2014-09-26
BR112014013064A2 (pt) 2017-06-13
JP2017027625A (ja) 2017-02-02
US20140351494A1 (en) 2014-11-27
MY167911A (en) 2018-09-26
RU2014126884A (ru) 2016-02-10
WO2013079885A1 (fr) 2013-06-06
FR2983622B1 (fr) 2014-01-24
EP2786317B1 (fr) 2015-08-26
CN104205132B (zh) 2017-06-20
IL232873A (en) 2017-09-28
IN2014MN01055A (zh) 2015-05-01
RU2607622C2 (ru) 2017-01-10
US9513842B2 (en) 2016-12-06
EP2786317A1 (fr) 2014-10-08

Similar Documents

Publication Publication Date Title
CN104205132B (zh) 在智能卡的非易失性存储器中写入数据
JP2010072965A (ja) 携帯可能電子装置および携帯可能電子装置におけるデータ処理方法
US9183400B2 (en) IC card and IC card control method
US8769243B2 (en) Apparatus with smart card chip for storing communication file in non-volatile memory
US9772937B2 (en) Data processing method, memory controller and memory storage apparatus
JP5895565B2 (ja) Icカード、及びプログラム
CN103218300B (zh) 数据处理方法、存储器控制器与存储器储存装置
CZ423598A3 (cs) Přenosný bezpečný transakční systém pro programovatelná inteligentní zařízení
US20090012975A1 (en) Portable electronic device and file management method for use in portable electronic device
US7343452B2 (en) Apparatus for direct access to only specific lower hierarchy data in a nest structure
JP5301018B2 (ja) 携帯可能電子装置
CN103870408B (zh) 数据处理方法、存储器控制器与存储器储存装置
EP3026551A1 (en) Methods and devices for compressing byte code for smart cards
EP1384197B1 (en) Method of manufacturing smart cards
CN101621494A (zh) 一种支持Web服务的终端处理***及实现方法
CN101788970B (zh) 数据串传送方法、***及其控制器
CN110334550B (zh) 一种智能卡及其保护隐私数据的方法
JP5085055B2 (ja) Icカードおよびicモジュール
RU2673394C2 (ru) Способ установки приложения на защищенный элемент
JP7040053B2 (ja) 電子情報記憶媒体、icカード、電子情報記憶媒体による情報処理方法及びos
JP6750450B2 (ja) 電子情報記憶媒体、データ送信方法、icカード及びデータ送信プログラム
KR101357518B1 (ko) Transient 메모리에 파일 데이터가 저장되는 파일을 운용하는 스마트카드 및 그의 파일 관리 방법
JP6015461B2 (ja) 情報記録媒体、データ読み書き方法、及びデータ読み書きプログラム
JP2009032249A (ja) 携帯可能電子装置、携帯可能電子装置のファイル管理方法及びicカード
CN102968652B (zh) 智能卡的访问方法及访问装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170620

Termination date: 20191130

CF01 Termination of patent right due to non-payment of annual fee