基于国密SM1算法的CPU卡应用

时间:2022-06-01 11:33:17

基于国密SM1算法的CPU卡应用

摘 要: 为了解决Mifare 1加密技术、算法的破解带来的安全隐患,经过市场调研和技术对比,发现CPU卡采用动态密码和双向认证,安全性有较大提升。而基于国密SM1算法的CPU卡采用国家密码管理局组织制定的国密SM1算法,高达128 b的密钥长度以及算法本身的强度和不公开性保证了通信的安全性,用这类CPU卡来代替原有的IC卡,用于解决门禁卡片的安全问题。通过系统一年以来的试运行,达到了设计目标。

关键词: 国密SM1算法; 双向认证; CPU卡; 安全性

中图分类号: TN918.91?34 文献标识码: A 文章编号: 1004?373X(2013)15?0082?02

Application of CPU card based on SM1 cryptographic algorithm

YAN Yong?zhao, ZHENG Jin?zhou

(General Hospital of PLA, Beijing 100853, China)

Abstract: In order to solve the potential safety hazard brought by the breaking of Mifare 1 encryption technology and algorithm, through market survey and technology comparison, it is found that dynamic password and mutual authentication applied to CPU card can increase its security. The CPU card based on SM1 cryptographic algorithm adopts SM1 cryptographic algorithm drafted by State Password Bureau, its password length with 128 b, strength and non?public properties of the algorithm guarantee the safety of communication. If this kind of CPU card is used instead of the original IC card, the security problem of entrance guard card can be solved. The actual application of the system for one year proved that the system reached the design goal.

Keywords: SM1 cryptographic algorithm; mutual authentication; CPU card; security

Mifare 1卡属于逻辑加密卡类别的IC产品,在过去相当长的一段时间内,统治着国内大部分的智能卡应用领域,但随着近些年国内外对Mifare 1加密技术、算法的破解,导致卡片可以被复制,使得这一类别的卡片在大规模的金融支付、身份认证等领域显现出极大的安全隐患[1]。自从Mifare智能卡芯片加密算法被破译,非接触式CPU智能卡技术正得到越来越广泛的应用,CPU卡的加解密及安全控制技术是CPU卡应用的关键[2]。现有的CPU卡解决方案一般采用公开的CPU卡加密算法及相应的安全控制技术,同样存在被破解的安全缺陷[3]。针对这种安全缼陷,采用国密SIM算法的非接触式CPU卡片,将SM1(SM1 Cryptographic Algorithm)国密算法纳入到门禁系统中,无疑又为门禁应用的安全提供了重要保障[4]。

1 CPU卡简介

CPU卡是真正意义上的智能化IC卡,其内具有中央处理器(CPU)、随机存储器(RAM)、程序存储器(ROM)、数据存储器(EEPROM)以及片内操作系统(COS)[5]。CPU卡不仅仅是单一的非接触卡,而是一个带有卡片操作系统(COS)的应用平台,装有COS的CPU卡相当于一台微型计算机,不仅具有数据存储功能,同时具有命令处理、计算和数据加密等功能。CPU卡一卡通具备最高安全级别,CPU卡采用动态密码,并且是一用一密即同一张卡,每刷一次卡的认证密码都不相同,实现了“一用一密”,有效防止重复卡、仿制卡、卡上数据/金额非法修改等安全漏洞,提高整个系统的安全性[2]。适用于各种安全性要求较高的企事业单位以及公交、地铁等社会性应用场合,具有用户空间大、读取速度快、支持一卡多用、安全性高等特点,符合《ISO非接触式读写标准》、支持《中国人民银行PBOC2.0标准》以及《建设部IC卡应用规范》。卡片外观和尺寸和普通IC M1卡一样。

2 国密SM1算法简介

数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为“密文”,使其只能在输入相应的密钥之后才能显示出本来内容,通过这样的途径来达到保护数据不被非法人窃取、阅读的目的。 该过程的逆过程为解密,即将该编码信息转化为其原来数据的过程。国密SM1算法(以下简称国密算法)是由国家密码管理局编制的一种商用密码分组标准对称算法,分组长度和密钥长度都为128 b,该算法不公开,仅以IP核的形式存在于芯片中[6]。采用该算法已经研制了系列芯片、智能 IC卡、智能密码钥匙、加密卡、加密机等安全产品,广泛应用于电子政务、电子商务及国民经济的各个应用领域(包括国家政务通、警务通等重要领域)。

3 系统组成

该系统由硬件和应用软件两大部分组成。硬件包括读卡器、CPU卡片及后端管理设备,软件包括操作员安全认证系统、发卡系统、管理软件等,如图1所示。

图1 基于SM1算法的非接触式CPU卡系统原理图

3.1 国密算法读卡器

国密算法读卡器是基于国密SM1算法自主研发出的一款读卡器。该读卡器可读取由多个厂商提供的采用国密算法的非接触式CPU卡片内容。使用时,需要在国密读卡器上插入一张PSAM卡,此PSAM卡由具有资质的第三方供应商提供。读卡器和卡片之间进行内部及外部双向认证。所有密钥都保存在PSAM卡上,由PSAM卡统一完成读卡器与卡片交互时的所有密钥运算,应用PSAM卡和CPU卡的安全认证读写机制,密钥注入PSAM卡后外部无法读取。

在信息读取过程中,所有数据都是以密文的方式出现,并且每次数据的传输都有随机数参加,确保每次传输的内容不同。即使是同一张CPU卡,由于使用动态密码机制,每刷一次卡的认证密码都不相同,相当于是“一用一密”,提高了安全防范能力[7]。传输数据即使被非法截获,也难知其真实意义。这样确保了数据的安全性,彻底杜绝了“伪卡”的出现。

3.2 双向认证算法

国密算法读卡器和卡片之间需进行内部认证及外部认证两次认证,算法流程如图2所示。

3.2.1 内部认证

执行卡片内部认证前先要用PSAM卡计算出加密数据,以下步骤全部在PSAM卡上执行:

(1)选择PSAM卡MF;

(2)取随机数,回应16 B的随机数[Rx;]

(3)加密计算初始化,Init_For_SM1crypt(通用SM1 计算初始化),数据为UID;

(4)加密计算,SM1 Crypt(通用SM1计算),数据为随机数[Rx;]

(5)取得PSAM卡响应的数据,假设响应的数据为[Ry。]

图2 国密算法读卡器算法流程图

执行CPU卡内部认证命令,以下步骤全部在非接触式CPU卡上执行:

(1)选择MF;

(2)选择门禁的ADF;

(3)执行内部认证,P1设置为加密运算,密钥类型是SM1加密密钥,P2设置为SM1密钥标识号,数据为随机数[Rx](之前从PSAM卡取得);

(4)取得卡片响应的数据,假设响应的数据为[Rz;]

(5)将[Ry](之前从PSAM卡取得)和[Rz]比较,如果相等,则内部认证通过。

3.2.2 外部认证

执行卡片外部认证前先要从非接触式CPU卡获取随机数,以下步骤全部在非接触式CPU卡上执行:

(1)选择CPU卡MF;

(2)选择汉军门禁的ADF

(3)取随机数,回应随机数[Rx;]

用PSAM卡计算出加密数据,以下步骤全部在PSAM卡上执行:

(1)选择PSAM卡MF;

(2)加密计算初始化,Init_For_SM1crypt(通用 SM1 计算初始化),数据为UID;

(3)加密计算,SM1 Crypt(通用SM1计算),数据为随机数[Rx](之前从CPU卡取得);

(4)取得PSAM卡响应的数据,假设响应数据为[Ry;]

执行CPU卡外部认证命令,以下步骤全部在非接触式CPU卡上执行:

(1)直接执行外部认证命令,P2要设置为SM1密钥标识号,数据为[Ry](之前从PSAM卡取得);

(2)判断命令返回,如果返回9 000,则外部认证通过。

3.2.3 数据读取

以上两个步骤都通过后,则读取门禁验证号文件,此文件为二进制文件,使用卡片的UID 为密钥因子,对读取到的数据进行解密后,按照汉军数据格式解析取得发卡时写入的卡号,将此卡号通过RS 485通信方式或者Wiegand方式发送出去。

4 应用前景

卡片的安全性问题一直是一卡通应用系统中的一项关键技术问题[8?10],国密算法读卡器采用不公开的SM1算法,设计相应的数据加解密传输机制,保障了卡片应用安全,能够读取多家不同厂商提供的卡片。该技术广泛适用于政府、金融、军队等安全性需求较高的部门,目前,已成功将此项技术应用于某单位一卡通系统中。

参考文献

[1] 杨寅,关佶红,田涛.一种基于国密SM1算法的CPU卡多应用解决方案[J].计算机科学,2012(1):16?23.

[2] 佟秋利,张慧琳,孙国光.基于CPU卡的大学门禁应用设计实施方案[J].计算机工程与设计, 2011,32(4):1453?1459.

[3] 陈作炳,陈燕.CPU卡技术及应用系统设计研究[J].武汉理工大学学报,2002(9):85?87.

[4] 文燕,齐蕾.一种基于国密算法CPU卡的门禁系统方案的设计[J].电子设计工程,2012,20(3):82?84.

[5] 张宁.校园一卡通系统的设计和安全性研究[D].天津:天津大学,2007.

[6] 王振.基于嵌入式实现SM1算法的系统设计[J].电子世界,2012(3):119?120.

[7] 王爱英.智能卡技术:IC卡[M].2版.北京:清华大学出版社,2000.

[8] 肖频.CPU卡自助充值过程中身份认证技术的研究与实现[D].上海:上海交通大学,2006.

[9] 刘守义,毛丰江,苏全.智能卡技术[M].西安:西安电子科技大学出版社,2004.

[10] 安静宇,雷金莉,王媛媛.基于非接触式IC卡门禁系统的设计[J].宝鸡文理学院学报:自然科学版,2008,28(2):141?143.

上一篇:通信侦察中一种新的码速率盲估计方法 下一篇:基于HNN的密钥共享机制研究