【摘 要】 针对逻辑加密卡的特点,从加强软件设计的角度出发,巧妙实现了一卡一密,从而给出了一种安全可靠的加密方案。
关键词:逻辑加密卡,软件,设计
1 引 言
目前使用的ic卡一般有两种类型,即cpu卡和逻辑加密卡。cpu卡的加密性能自不必说,然而其编程复杂,价格远远高于逻辑加密卡。如果在程序设计上对逻辑加密卡的安全性多加考虑,选择逻辑加密卡几乎是无法破译的,而且成本低,用户容易接受。下面我们以sle4428逻辑加密卡为例设计一种安全实现方案,该ic卡在本地区经过约10万人使用,两年来未发生一起失密事故。
2 sle4428性能描述和设计原则
为了更好地说明设计流程,首先简要地介绍一下sle4428的性能。
·sle4428容量大小为1k字节,地址为0-1023,存储区分配图如图1所示。
·所有数据除密码外,在任意情况下均可被读出,密码在核对正确后可以被读出。
·所有数据包括密码本身在核对密码正确后可以写入或更改。
·所有数据都可以按字节进行写保护,写保护后数据固化,任意情况下不可更改。
·有一个密码出错计数器。地址是1021。初始值为8,密码核对出错一次,便减1。若计数器值为0,则整张卡的数据被锁死,只可读出,不可更改或写入且无法继续核对密码;若不为0,则只需要一次核对正确,计数器将恢复为初始值8。
·密码长度为2字节,地址是1022,1023。共有216种组合,在密码核对正确之前,读这两地址的结果是“00”,也无法写入和更改;在密码核对正确后可以读出密码和更改密码,密码会一直有效至卡掉电为止。
·地址0-7、21-26,出厂前由厂家固化,不可更改,其中地址21-26是卡的用户代码,是由制造卡的厂家向siemens公司申请注册的全球唯一的用户代码。
针对sle4428安全性的局限性,我们采用了下面的设计原则。
(1)首先生成密钥文件,该文件为二进制加密文件,由用户方提供的算法种子经过加密算法,生成用户卡密钥所需要的算法种子(以下简称密钥种子)和加密用户卡数据所需要的算法种子(以下简称加密种子)。
(2)用算法种子通过加密算法以密文方式存储用户卡重要数据,使其它系统无法读出卡上内容,从而保护用户的隐私。
(3)用户卡的改写必须经过下述操作:首先,调用密钥文件中的密钥种子,其次,通过加密算法校验用户卡密钥,如果正确就可以进行改写,如果不正确,sle4428将记数,超过8次不正确,sle4428将自动锁死,从而避免用穷尽法破译用户卡密钥。
3 设计流程
ic卡的设计分为发行用户新卡和改写用户卡两种情况,对这两种情况,首先都需要从二进制加密文件获取密钥种子和加密种子。该二进制加密文件由用户输入8位字符经加密算法m1生成,用户应记住该8位字符,以免加密文件丢失后可重新生成。
3.1 发行用户新卡
发行新卡大约有如下的步骤:
(1)从二进制加密文件中,通过算法m2读取密钥种子和加密种子。
(2)取随机数,并与密钥种子经加密算法m3生成用户卡密码(new pass)。
(3)核对新卡密码,新卡密码为ffff,并修改新卡密码为用户卡密码(new pass)。
(4)有关数据写入ic卡,重要数据和第2条取出的随机数,经加密算法m4生成数据密文,再写入ic卡。
(5)根据需要将不可更改的数据进行写保护,以免误操作,如第2条取出的随机数密文。
根据上述步骤,设计发行新卡的流程如下:
(1)建立用户对象u secret,主要由解密函数、函数、取密钥种子函数等函数组成。
(2)调用u secret中的取密钥种子函数读取密钥种子和加密种子。
(3)取随机数,调用u secret中的加密函数生成并更新新卡密码。
(4)随机数加密写入ic卡并固化,再写入其他数据。
使用pb设计主程序如下:(为减少篇幅,程序只列出主要部分)
3.2 改写用户卡
ic卡在日常使用中其实就是改写用户卡的过程,主要过程同发行新卡一样,即首先读取密钥种子和加密种子,再从用户卡中读出随机数、解密并核对密码,最后写卡。程序类似发行新卡,这里省略。
4 安全说明
(1)sle4428有三项安全机制:唯一代码、固化写入、用户密码。唯一代码是由制造卡的厂家向siemens公司申请注册的全球唯一的用户代码。采用唯一代码作为系统所用ic卡的标识,可防止其它厂家的卡进入系统,但同时也决定了用户卡只能来源于该厂家;固化写入对于需要不断改卡的用户也不适用;只有建立安全的用户密码才是最有效的手段。
(2)sle4428无须密码便可读出除密码外的整张卡的数据,密码一经核对便可向任一地址写入或修改数据,因此,设计时要注意适当固化数据和将数据内容加密,以防止无意破坏数据或非法修改数据。
(3)密码核对正确后便可读出,因此,设计程序时,要能防止破坏者采用非法中断程序运行、直接去
读取密码的方法来窃取密码。在本方案中,对加密和解密函数均写入到一个用户对象u secret中,在需要写卡前定义,写完后立即destroy掉,这样就可以防止程序跟踪破译。
(4)总之,假如要破译该方案设计的ic卡,必须要同时做到以下几点:
·获得二进制加密文件的加密算法m1,才能得到密钥种子和加密种子,获得密钥种子和加密种子后,必须通过算法m2才能得到有效的密钥种子和加密种子。
·密文数据(包括解密用的随机数)是由加密算法m4生成的,需要解密算法m5才可获得。
·取出的随机数要与密钥种子经加密算法m3才可生成用户卡密码。
·由于随机数的不同,所以实现了一卡一密,即使窃取一张或几张用户卡的密码,也无法破译一批用户卡的密码。
根据上述分析,该方案的安全性和可靠性已达到较高的水平。
参考文献
1 纪风华.基于ic卡的一种实用加密方法.中国科技论文.信息产业部编,2001
2 李平文.ic卡及其在医疗保险中的应用.中国科技论文.信息产业部编,2001
3 周玉程.ic卡及其应用.中国科技论文.信息产业部编,2001
阿联酋能效标识强制性要求增加EESL认证
精准传感监测锂电“体温”,合作共进“驶”向绿色安全
峰会回顾第8期 | OpenHarmony 分布式硬件关键技术
红外线传感器的作用
无线蓝牙运动耳机哪款好、适合运动佩戴的耳机
关于逻辑加密卡一种安全方案的设计
CWDM无源模块测试解决方案简介
收购案的各家都是什么算盘,英特尔会笑到最后吗
什么是电瓶充电器显示浮充
SiTime发布以MEMS技术的Oscillator新产品S
5G与国家电网的创新应用青岛5G智能电网示范基地正式成立
OPPO Find X2 Pro综合续航测试和测到死续航测试
赵长鹏找到火币破发率超80% 源头
多晶硅历史“冰点”再临 光伏产业难言乐观
iPhone 12开启5G网络后续航能力下降多达2小时
PLC中怎样用X和Y两个轴走出直线轨迹?
凌力尔特推出8通道I2C温度、电压和电流监视器LTC2991
微软Windows版本2004将删除SwiftKey键盘
离散域下PI调节器设计学习与实现
北斗星通首次在单颗芯片上实现基带+射频+高精度算法一体化