读和写类命令主要用于智能卡安全地存储数据。使用这些命令有可能把数据写人有关的BF并在以后重行读 回。EF具有特定的访问条件,只有被授权的用户才可能读出这些文件,信息在卡内的存储受到了保护以防止 未授权的访问。
由于存在着不同数据结构的Ⅲ,就有了对于这些文件不同的读和写命令。遗憾地是,这并不完全相应于一 个面向对象的文件管理结构。在纯粹的面向对象的设计中,操作系统必须构造得使对象本身可以决定其访问 机制。这不是智能卡文件的情况,这种不协调可回溯到从历史上出现的命令被相继地结合到现行标准的日子 。智能卡的先驱是存储卡,只有一个存储区,能够经区距(offset)和长度参数读写。从外部看来,这个存 储器可以看作是有透明结构的单个文件,第1张智能卡也基本上是按同样的方式构造的,对透明文件的读写 访问的定义就起源于那个时候。另外,专门修改了的命令则用于有数据结构的文件类型。它们较晚才被定义 ,这就是为什么含有两种不同类型的访问的缘故。
于是,必须把这类命令区分为访问透明结构的EF的命令和访问其余文件结构的命令。这些文件结构是:循 环的、线性固定和线性可变的。不同的标准有的规定(如用于电子钱包的EN 1546)也可用读取其他结构类 型文件的读命令来读取透明结构的文件。在任何情况下,都有可能以此种方式去获得关于文件内部结构的额 外数据。
透明的EF的逻辑结构是无定形的,这就是说它们不具有内部结构。它们表现为线性可编址的可访问字节的 存储器。READ BINARY命令用于读,而两条命令WRITE BINAY和UPDATE BINARY则用于写。这些命令的功能已 列举在表1至表2中。
表1 按照ISO/IEC 7816-4的READ BINARY的功能
表2 按照ISO/IEC 7816-4的WRITE BINARY的功能
表3 按照ISO/IEC 7816-4的UPDATE BINARY的功能
WRITE BlNARY和UPDATE BINARY的根本区别关系到卡的EEPROM取得的状态,EEPROM稳定的状态是EEPROM的存储单元采取其能量状态时的位逻辑状态。由于逻辑单元都是小电容,就是说在稳定状态时它们不含有电荷,通常这是逻辑0状态。为了把一位从0态复位为1态,它必须被清除,从而使电容中重存了电荷。
WRITE BINARY命令仅能用于把该位从非稳定的状态即1的情况,复位为0的情况即稳定的状态。在这个例子中WRITE BINARY执行输人数据和文件内容的逻辑与(AND)操作。另一方面,如果芯片的稳定状态被用来表示1之值,则硒TtITE BINARY命令必须实行—个命令数据和文件数据的逻辑或(OR)操作。命令数据和文件数据的逻辑相互作用总是在WRITE命令中使EEPROM达到其稳定状态。此外,取决于文件,Ⅷ盯Ⅲ BINARY命令可能支持写,读多次WORM(Write Once,Read Multiple)写访问。
相反,UPDATE BINARY命令是一条真正向文件写人的命令。文件中数据的原有状态不会影响执行了UPDATE BINARY命令后的文件内容,因此,UPDATE BINARY可以看成是和用ERASE清除数据后接着执行WRITE BINARY是一样的。
图1 访问一透明结构的文件
这些命令可用来构造物理上稳定的智能卡计数器。其原理包括了一个位段,其中每一置位的位表示一货币单位。当做成一项支付时,计数器由UPDATE BINARY命令产生的OR操作逐位减去。经鉴别后,计数器之值可用UPDATE BINARY命令重新增加。这种技术的主要好处是它使得篡改EEPROM去增值计数器成为不可能(例如去加热它),因为每一位的安全状态表示之值就是0。
就像它们的名字所显示的那样,READ BINARY是一条读命令,而WRITE BINARY和UPDATE BINARY则是写命令, 文件访问`总是借以一个长度参数和第1个访问字节的区距来进行的。某些操作系统也许可在真实的数据访问 发生前用补充的短FID参数的隐式文件选择。然而,此特性在所有的标准和操作系统中并未提供。
图1说明了READ BINARY,WRITE BINARY和UPDATE BINARY组成的典型序列。对所选择的文件内容的作用如图2 所示。当然,在例中假定对文件的选择是成功的并满足了所述文件的访问条件。
图2对透明结构的BF进行写人访问
ERASE BINARY是操作于透明的EF的命令中的一个例外,它不能用来对一个文件写人数据,只能从指定的区距 起擦除数据,如果没有说明第2个区距参数,则命令将擦除至文件末尾处的所有数据。这里,擦除的意思是把 命令中规定的数据区设置为逻辑上清除的状态,参见表4。每一操作系统必须单独定义这种状态,因为存储器 的物理上清除的状态可能各不相同。
表4 遵照lSO/lEC 7816-4的ERASE BINARY的功能
因为线性固定,线性可变和循环FF的结构从根本上不同于透明文件,在上述命令之外,就要用特别的命令来 访问这些专门的数据结构。所有这些文件都是面向记录的。对于写访问,在数据域中可编址的单元是一个 单独的记录。对于读访问,从第1个字节开始,或是整个记录或是它的某个部分可以被读出。这些文件结构, 把一个线性一维的存储器变换为二维可编址的存储器,导致访问类型比在透明结构中用到的那些要较为复杂。 原则上,所有数据结构均可用透明的予以模拟,可以证明在特殊的情况下,比起用数据结构来,这样要相 应的复杂多了。
当一个面向记录结构的EF被选择之后,卡的操作系统要建立一个初值尚未规定的记录指针,指针之值可用 READ,WRITE,UPDATE RECORD和SEEK命令来设定。只要现行文件仍被选择,则此文件的指针就一直被保留。随 着显式或隐式选择了另一个文件,记录指针的内容再次成为未予规定的。
对于面向记录的文件的所有命令都可用一个参数字节来指明访问文件的类型。基本的类型是直接访问,使用 预期文件的编号。这种类型的访问不改变记录指针。预期记录的编号传送给卡,响应中包含了提到的记录中的内容。如果提供的参数为“第1”,则操作系统置记录指针指向 文件中的第1个记录,而根据命令的类型此记录将被读或写。参数“”以类似的方式访问的记录。 参数中的“其次”或“前者”则相应地选择次一个或前一个记录进行读写。,参数的“现行”则用来对 记录针指当前值所标志的记录编址。
面向记录的数据结构的大量访问方法起源于电话号码表的典型结构。考虑一个记录,它的初始部分含有名 和姓,接着在同一记录内的是其相关的电话号码。用一条READ RECORD命令和上述参数,在建立于EF的电话 号码表内可以按愿望向前或向后翻找,或者跳到第1个或1个条目。记录指针也可用搜索命令SEEK来改变 ,该命令将在后面叙述,参见图3和图4。
图3 访问面向记录的文件名字
图4 具有“线性固定”结构的电话号码表文件之例
ISO/IEC 7816-4还提供了从第1个记录起读到指定记录编号的所有记录的选项,或在是从指定记录编号起直 到一个记录,在一个命令-响应循环中用READ RECORD即可。这些命令的一个实际问题是把它们用于大 量文件时,将迅速超出I/O缓存的容量。相应地执行写操作的命令为WRITE RECORD和UPDATE RECORD,所有这 几条命令的具体功能已列举在表5至表7中。
表5 遵照ISO/IEC 7816-4的READ RECORD的功能
表6 遵照ISO/IEC 7816-4的WRITE RECORD的功能
表7 遵照ISO/IEC 7816-4的UPDAT RECORD的功能
APPEND RECORD(增补记录)命令被赋予的功能也完全适合放在本章的“文仵管理命令”一节中。它可用来 给已有的面向记录的文件增补记录,整个新记录的数据由命令同时给出。就智能卡而言,一个相对复杂的存 储器管理器是充分利用其功能的可用性的前提条件。存储器管理器的任务是在新记录和已经存在的一个文件 之间建立起链接。于是就有可能在可用的存储器限度内,对一个文件增加任意数量的新记录。然而,可以增 加的新记录的数量经常受制于简单的原因。在这种情况下,当建立一个面向记录的文件时,需要为未来增加 的记录保留一些存储量,这些空间,以后可用APPEND RECORD命令予以填充,一旦占用了自由空间,就不再 能使用APPEND RECORD命令了。
如果APPEND RECORD是和线性固定或线性可变文件一起使用时,则新纪录总是加在文件的末尾。如果是循环 结构,无论如何,新记录总是编为1号,这相应于在这种类型的文件中当前写人的记录。
图5 对一个面向记录的文件的读写操作之例
APPEND RECORD可用于不同的目的,可能性之一是电话目录,另一可能性是日志文件,其中的记录的数据是 借以建立新记录而直接写入卡内的。
这里还有两条补充的以文件为基础的读和写命令,它们是设计来直接访问数据对象的。取决于选择的DF, 可以绕过面向文件的访问机制,某些数据可以写人或读自文件或内部的操作系统结构。数据对象可用PUT DATA(赋予数据)写入并用GET DATA(获取数据)读出。对这样的两种命令,就必须用命令提供准确的叽弘 编码的数据对象结构。这就意味着必须了解这些数据对象的是专门应用的还是标准编码的。在操作系统内这 个信息是重要的,因为这样可以识别出数据对象是如何包装的。在使用这些命令之前,适当的访问条件应当 要满足。这几条命令的具体功能,如表7~表9所示。
表7遵照ISO/IEC 7816-4的APPEND RECORD的功能
表8 遵照ISO/IEC 7816-4的GET DATA的功能
表9 遵照ISO/IEC 7816-4的PUT DATA的功能
欢迎转载,信息来源维库电子市场网(www.dzsc.com)
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。