基于SAM模块的CPU型IC卡燃气表的设计
时间:10-29
来源:作者:强英
点击:
5 预付费型智能IC卡燃气表的软件设计
5.1 软件功能模块
软件用NEC78k0S C语言编写,采用模块化、层次化的编程方法。核心部分包括以下几个模块:SAM、CPU卡的通信模块(T=0,字符方式,串行速率9.6Kbps);SAM、CPU卡的认证和读写模块;燃气计量模块;电源管理模块;LCD显示模块;报警模块;工厂测试模块等(由于篇幅原因,在此不细述)。
5.2 SAM和CPU卡的认证过程
本燃气表中,软件必须接收和处理多种CPU卡:用户购气卡、检查卡、厂家生产测试卡(如阀门检测卡等6种)、修改主密钥卡等。每种CPU卡的目录文件结构和认证访问方式不尽相同,以使用用户购气卡购气后在燃气表上插卡为例,说明软件认证过程:
(1)从卡的可读二进制文件中识别出卡的类型,即用户购气卡。
(2)燃气表从用户卡中读取卡序列号和用户号,并比较用户号是否与SAM中存储的一致,不一致则拒绝读卡。
(3)若用户号一致,IC卡燃气表将卡序列号送至SAM模块。SAM模块对卡序列号进行加密,并生成相应的内部认证密钥。
(4)燃气表用内部认证密钥对用户卡做内部认证。
(5)燃气表用气表外部认证密钥对用户卡做外部认证。
(6)燃气表从用户卡购气应用二进制文件中读取购气数据,判断其完整性,同时判断购气次数是否与IC燃气表内一致。若不一致则向IC卡燃气表返写应用二进制文件(返写数据)退出;若判断一致,则进入(7)。
(7)由IC卡燃气表用气量外部认证密钥对SAM模块进行外部认证,若一致则将购气量及状态数据存入SAM模块,并返写数据退出,完成购气操作;否则只返写数据退出。
6 结束语
基于NEC单片机和SAM模块的CPU IC卡预付费型燃气表,在安全保密性、防攻击、低功耗、低成本等方面作了有益的探索,经过几个月的实际使用,已证明达到了预期的效果。
5.1 软件功能模块
软件用NEC78k0S C语言编写,采用模块化、层次化的编程方法。核心部分包括以下几个模块:SAM、CPU卡的通信模块(T=0,字符方式,串行速率9.6Kbps);SAM、CPU卡的认证和读写模块;燃气计量模块;电源管理模块;LCD显示模块;报警模块;工厂测试模块等(由于篇幅原因,在此不细述)。
5.2 SAM和CPU卡的认证过程
本燃气表中,软件必须接收和处理多种CPU卡:用户购气卡、检查卡、厂家生产测试卡(如阀门检测卡等6种)、修改主密钥卡等。每种CPU卡的目录文件结构和认证访问方式不尽相同,以使用用户购气卡购气后在燃气表上插卡为例,说明软件认证过程:
(1)从卡的可读二进制文件中识别出卡的类型,即用户购气卡。
(2)燃气表从用户卡中读取卡序列号和用户号,并比较用户号是否与SAM中存储的一致,不一致则拒绝读卡。
(3)若用户号一致,IC卡燃气表将卡序列号送至SAM模块。SAM模块对卡序列号进行加密,并生成相应的内部认证密钥。
(4)燃气表用内部认证密钥对用户卡做内部认证。
(5)燃气表用气表外部认证密钥对用户卡做外部认证。
(6)燃气表从用户卡购气应用二进制文件中读取购气数据,判断其完整性,同时判断购气次数是否与IC燃气表内一致。若不一致则向IC卡燃气表返写应用二进制文件(返写数据)退出;若判断一致,则进入(7)。
(7)由IC卡燃气表用气量外部认证密钥对SAM模块进行外部认证,若一致则将购气量及状态数据存入SAM模块,并返写数据退出,完成购气操作;否则只返写数据退出。
6 结束语
基于NEC单片机和SAM模块的CPU IC卡预付费型燃气表,在安全保密性、防攻击、低功耗、低成本等方面作了有益的探索,经过几个月的实际使用,已证明达到了预期的效果。