浅谈基于CPU卡的流量计功能要求及设计方案
扫描二维码
随时随地手机看文章
随着城市燃气用户的快速发展及应用,CPU卡流量计因功能强大、安全性能强的优点在城市燃气应用中越来越广泛,它取代了传统的上门抄表工作,为燃气公司节省了大量的人力、物力。根据CPU卡以及城市燃气的特点,设计了用于城市燃气的CPU卡文件结构以及密钥管理体系,实现了CPU卡流量计的计量及预付费功能。
0 引言
IC卡是一种半导体卡,其采用微电子技术进行信息的存储、处理。自1970 年诞生第一张IC卡以来, IC卡经历了一般存储卡、加密存储卡、CPU卡和超级智能卡4 个时代。IC卡是多学科技术综合发展的结果,它的应用已成为一个国家科技发展水平的标志之一[1]。
IC卡在城市燃气流量计量上的应用越来越广泛。在CPU卡流量计之前,大量使用的是逻辑加密卡。由于逻辑加密卡的技术所限,产品供应商的密钥不能向应用方( 燃气公司) 公开,因此应用方无法掌握核心安全,系统安全取决于产品供应商,并且不同型号的逻辑加密卡互不兼容,导致不同厂商的芯片数据存储方案也不兼容,应用方在使用多家卡表时会带来多种密钥和密钥算法管理上的复杂化[2 - 3]。
CPU卡又称智能卡,卡片内自带CPU,程序容量和数据容量大,且带加、解密算法协处理器,运算速度快[4]。采用CPU卡,并且制定一种统一的技术规范,燃气公司能完全掌握CPU卡流量计的技术核心及密钥算法,保证燃气准确计量、实现先购气再用气、防止用户偷气。由此可见,CPU卡工业流量计成功应用的关键是设计完善的CPU卡密钥系统[5]。
1 CPU卡流量计的功能要求
目前,新型的CPU卡流量计是集计量基表、电子表头和控制阀于一体的流量计。此前,CPU卡流量计通常是集成商将流量计和IC卡控制阀通过电气连接而成,流量计在计量一定的量( 通常为1 m3 ) 时输出一个脉冲给IC卡控制阀, IC卡控制阀进行扣减,当扣减超过允许透支量时,控制阀关闭。对于这种方式,电气连接的可靠性是关键,经常出现的情况是扣减不同步,流量计运行的量与IC卡控制阀扣减的量不尽相同,造成计量纠纷。
所以,从CPU卡流量计功能上讲,一体化流量计是发展的趋势。燃气贸易中,用户通过CPU卡购气后充值到流量计中,燃气公司通过CPU卡达到管理用户用气的目的,CPU卡起着联系用户和燃气公司的关键作用。另外,当上游气价浮动时,燃气公司能及时通过CPU卡或其他方式调整气价。
综上所述,CPU卡应至少保存如下信息: 用户信息、燃气公司标志、购气量和购气次数,以及为安全需要而设计的密钥组、不同功能卡的卡标志。为避免异常操作造成卡内数据丢失,还可以在卡文件中记录主要操作过程,异常操作后再次插卡能恢复继续进行正常的操作。
2 密钥体系总体设计
本密钥体系设计采用三级分散四级密钥方式,从根密钥逐级分散,到最终的应用卡片密钥,如图1 所示。
图1 密钥体系图
2. 1 密钥的管理
由图1 可见,在密钥体系中,各应用卡处在体系的最底层,其密钥是根据上一级母卡和分散因子进行密钥分散得到的。因此,必须加强对母卡的管理。为防止各级母卡在应用中不可预料的物理性损坏,必须对各级母卡进行备份并根据单位需要设置管理权限。
2. 2 密钥分散
在进行密码运算时,可根据密钥长度选择数据加密标准( data encryption standard,DES) ,或3DES 算法。一般而言,密钥长度为8 B 用DES,16 B 用3DES 算法。这两种算法的逻辑框图如图2 所示。
图2 运算逻辑框图
2. 3 DES 算法
DES 算法为一种对称密码体制,它是IBM 公司于1975 年研究成功并公开发表的,开创了公开全部算法的先例。DES 算法的基本技巧是把每一位明文的影响尽可能迅速地作用到较多位输出密文中去; 同时把每一位密钥的影响尽可能扩散到较多位输出密文中,以隐蔽明文的统计特性。
DES 主要采用替换和移位的方法,用56 位密钥( 密钥为64 位,其中8 位是奇偶校验位,所以实际上密钥为56 位) 对64 位二进制数据块进行加密。每次加密可对64 位的输入数据进行16 轮编码,经一系列替换和移位后,输入的64 位输入数据被转换成完全不同的64 位的输出数据。
3DES 是在DES 的基础上采用三重DES,即用两个56 位的密钥K1、K2进行加密与解密。发送方用K1加密、K2解密,再使用K1加密; 接收方使用K1解密、K2加密,再使用K1解密,其效果相当于密钥长度加倍。[6]
3 CPU卡密钥类型及应用
所有CPU卡的密钥类型如下。在实际应用中,可以根据系统要求适当删减。
DES 加密密钥,用于进行DES 加密运算的密钥,在内部认证操作时使用。
DES 解密密钥,用于进行DES 解密运算的密钥,在内部认证操作时使用。
DES&MAC 密钥,用于进行报文鉴别代码( messageauthentication code,MAC) 运算的密钥,在内部认证操作时使用。
内部密钥,用于产生消费、取现和圈存交易中使用的交易验证码( transaction authentication code,TAC) ,涉及圈存、圈提、消费/取现、修改透支限额操作命令。
维护密钥,用于在以安全报文方式访问文件时,产生安全报文的密钥。它涉及读/写文件/记录、存款、扣款、卡片锁定、应用锁定和应用解锁操作命令。