1.加密算法
智能卡中的加密算法是整个智能卡安全体系的基础,包括对称密钥加密算法和非对称密钥加密算法两种。
对称密钥加密算法也称为私钥加密算法,其加密和解密采用相同的密钥,且该密钥必须保持秘密。对称加密算法的优点是对称加密算法效率高,速度快;缺点是由于加/解密双方都要使用相同的密钥,密钥的分发便成了该加密体系中最薄弱的环节,一旦密钥被破解,整个体系就会崩溃。
常用的对称加密算法有DES、3DES及AES算法。
DES(Data Encryption Standard,数据加密标准)算法是美国IBM公司研制的一种分组密码算法,目前已广泛使用。该算法输入的是64bit明文,在64bit密钥的控制下产生64bit的密文;反之输入64bit的密文,输出64bit的明文。由于64bit的密钥中含有8bit的奇偶校验位,所以实际有效密钥长度为56bit。
3DES是DES算法扩展其密钥长度的一种方法,可使加密密钥长度扩展到128bit(112bit有效)或192bit(168bit有效)。明文长度依然是64bit,其基本原理是将128bit的密钥分为两组64bit,对明文多次进行普通的DES加/解密操作,从而增强加密强度。
AES(Advanced Encryption Standard,高级加密标准)是2001年NIST(美国国家标准与技术研究院)宣布的DES后继算法,明文长度为128bit,可以用长为128bit、192bit或256bit的密钥加密。
非对称密钥加密算法也称为公钥加密算法,要求每个参与方拥有一对密钥、一个公钥(Public Key)和一个私钥(Private Key)。用公钥加密的密文只能用私钥解密,用私钥加密的密文只能用公钥解密。在操作过程中,公钥是公开的,私钥是秘密的。如果A要发一份秘密信息给B,则A只需要得到B的公钥,用B的公钥加密秘密信息,此加密的信息只能用B保密的私钥进行解密。反之,B也可以用A的公钥加密保密信息给A。信息在传送过程中,即使被第三方截取,也不可能解密其内容。非对称加密算法的加/解密速度比对称加密算法要慢,但它适合于保密通信、密钥分配和鉴别,成功解决了网络环境下的身份鉴别、数字签名等问题。典型的非对称密钥加密算法有RSA算法、ECC(Elliptic Curve Cryptosystem,椭圆曲线密码系统)等。(www.xing528.com)
2.密钥管理
加密算法的核心是对密钥的管理。对密钥的管理可采用分级管理。通常采用主控密钥、子密钥和会话密钥三级管理,如图2-21所示。
图2-21 密钥三级管理
在智能卡和终端设备中存放着相同的主控密钥(假设为对称密钥体系),主控密钥可以是一个或多个。通常在专用文件(DF)下都包含一个主控密钥,主控密钥是整个DF下密钥体系的基础,只有通过主控密钥的验证,才能对该DF下的子文件做进一步的操作。主控密钥可由几个相互信任的人独立给出数据组合成一个密钥,然后用该密钥对随机数做加密运算而获得,这样获得的主控密钥很难预先估计。
子密钥是通过主密钥对某些指定的数据加密后生成的。一般每张卡片内置了制造商标识码、卡的序列号或应用序列号等,其中卡的序列号或应用序列号是各不相同的,因此可利用序列号进行加密生成子密钥,这样即使主控密钥相同,各卡的子密钥也是互不相同的。
会话密钥是利用子密钥对可变数据进行加密,加密的结果即为会话密钥(或过程密钥)。如IC卡和终端设备间传送的数据就是用会话密钥加密的。一个会话密钥仅使用一次。为保证会话密钥的不同,通常采用子密钥对交易时间或命令计数器进行加密生成会话密钥,这样即使是同一张卡,每次使用时其会话密钥都不同。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。