智能卡的基本结构
文章出处:http://www.nexussmartsolutions.com 作者:搜狐智能卡技术博客 人气: 发表时间:2011年10月10日
智能卡(Smart Card)也常被翻译成“聪明卡”、“智慧卡”,还有另外一种称呼叫做IC卡(Integrated Circuit Card)。一般是指在卡片中嵌入了集成电路芯片,可以利用芯片中的集成电路存储单元,来进行数据存储和一些相应的数据处理工作。
其中核心部分就是智能卡芯片,而芯片首先会被封装成一个独立的模块,然后嵌入到塑料卡基上,对于非接触卡片来说卡基上还要埋置设计好的天线。
如果单独把智能卡放在我们手上,我们根本没有任何办法来操作它,一个独立的智能卡对于任何应用系统而言都是毫无意义的。我们为了操控智能卡,对其中的数据进行访问,就必须要借助一个能够操作智能卡的机具,通常叫做读卡器,或者读写器(reader),或者终端(terminal),或者卡片受理设备CAD(card acceptance device)。我们通常熟悉的商场POS(point of sales)机,银行ATM(auto-teller machine)机,手机,IC卡电表,IC卡水表,IC卡煤气表,公交车或者地铁里的验卡机等等,都可以称作是终端设备。我们只有通过这些终端设备才能够真正让智能卡的作用得以发挥。
所以从根本上讲,智能卡的芯片至少要包括以下三部分:
数据存储单元
这是智能卡存储数据的地方,按照有些公司的安全考虑,在进行数据存储单元的设计时会采用各种各样的安全措施,常用的是地址乱码(Address scrambling)技术,这样即使将来芯片被别人打开,也不能够正确获取其中存储的数据信息。目前用于数据存储的技术主要有EEPROM和Flash两种主要技术,它们之间的主要区别在于数据擦除的方式不同。EEPROM可以按照字节擦除,也就是说写入的数据是多少就擦除多少,然后重新写入;而Flash则要按照页面的方式擦除,每个页面的大小一般是64个字节或者256个字节。现在也有其他一些新兴的存储技术比如铁电存储等,但是在实际应用中使用的还很少。
逻辑控制单元
这部分主要是控制数据存储单元的访问,也就是读和写的问题。通过不同的时序组合,或者是安全机制来许可或者拒绝来自外部的数据访问要求。一般来说逻辑加密卡需要通过密码的比对才能得到读写的权限,而普通的存储卡只要命令的时序正确,就能够访问数据存储区的内容。
输入输出接口单元
这部分是和外界的接口,所有发送给卡片的数据,以及卡片传递到外面的数据都是通过这个接口来实现的。按照卡片的接口形式,可以把卡片分成接触式和非接触式的,接触式的卡片表面带有接触的触点,操作接触式卡片的终端设备内部都有一个卡座,在进行数据通讯的时候,卡片上的触点和卡片上的触点必须始终处于接触状态;而非接触卡在和终端设备进行数据通讯的时候,只要在一定的距离内就能够正常操作,无需把卡片和终端接触到一起;另外目前也有一些卡片兼备接触和非接触两种接口,我们称之为双界面卡。
除了上面的这三个基本的单元之外,对于CPU卡而言(从严格的意义上讲,只有具备CPU的卡片才能够叫做真正的智能卡),还具有:
用于数据处理的CPU单元
用于执行卡片中的嵌入式程序,完成某种特定的应用功能。按照处理能力划分目前有8位、16位和32位CPU应用在智能卡中。按照CPU的种类划分以51系列为主,还有68HC05系列,H8系列,精简指令集的RISC系列和ARM系列等。
用于存储程序的ROM或者Flash单元
用户编写的COS程序会被掩模到ROM中或者是下载到Flash中。
用于缓存的RAM单元
主要包括一些基本的寄存器和暂存数据的RAM。
用于增强功能的加密引擎
比如实现DES加密算法的硬件DES加密模块,或者为了加快RSA加密处理的加密协处理器等。
目前的智能卡数据存储空间已经可以达到若干兆,程序可以达到数百K,这都是随着半导体工艺的进步而取得的结果。比起当年只有几K的存储空间来讲,让那些COS的编写者更加得心应手,开发的卡片功能也更加强大了。