1、第7章 智能卡的安全与鉴别,本章主要内容:,身份鉴别技术 报文鉴别技术 密码技术 数字签名,7.1 IC卡面临的安全问题 7.2 物理安全 7.3 逻辑安全 7.4 密码技术 7.5 IC卡的安全使用,第7章 智能卡的安全与鉴别,7.1 IC卡面临的安全问题,如何保证IC卡的内部信息在存储和交易工程中的完整性、有效性和真实性 使用伪造IC卡(在个人化过程进行伪造) 主动攻击(对交换过程的信息进行截听、修改) 盗/冒用IC卡,7.2 物理安全,增强机械强度 加强电气保护 增加伪造难度(制造设备的高精尖、IC卡技术难度和专有、参数保密性) 控制制造过程(技术、管理、授权),7.3 逻辑安全,逻辑安
2、全,用户鉴别 存储区域安全 通信安全,7.3.1 用户鉴别,用户鉴别(个人身份鉴别)验证持卡人的身份。,方法:验证个人识别号PIN(personal identification number);生物特征;下意识特征;,读卡器与卡间以明码传输,在IC卡内部完成PIN的鉴别;(图7.1),1. PIN 密码运算鉴别方法,提交明码 指令,PIN,明码 PIN,卡片,是,否,用户,终端机,带密码运算的PIN鉴别( CPU卡),用户,PIN,产生随机 数指令,密码运算 Mf(N PIN,AK),提交结果 M,AK,产生随机 数N,解密运算 Nf(M,AK),M,AK参数,是,否,终端机,卡片,2. 生
3、物鉴别方法,拒绝失败率 接受失败率,访问条件 确认发行密码 确认PIN,7.3.2 存储区的保护,把智能卡的数据存储器划分为若干区,对每个区都设定各自的访问条件;只有符合设定的条件,才允许对数据存储区进行访问。,表 7.2,存储区划分后,普通数据和重要数据被有效分离,各自接受不同程度的保护,提高了逻辑安全的强度。,7.3.3 卡的通信安全与保密,通信方面对信息的修改有以下方式:,更改、删除、添加信息内容; 改变信息的源或目的; 改变信息分组帧的顺序; 重复利用曾发送或存储过的信息; 篡改回执,信息的完整性、真实性、有效性、合法性、保密性。,采取必要的技术防范措施:,保证信息交换过程,1. 完整
4、性采用报文鉴别,为保证所交换的信息内容未被非法修改,在信息报文中加入报头/尾(即鉴别码)。,鉴别码是通过对报文进行某种运算而得到的,它与报文的内容有关,报文的正确与否可以通过鉴别码来检验。,鉴别码1报文,相等,接受。 不相等,拒收并报警。,(接收方)对报文解密得到明文; (接收方)对明文用约定算法计算解密报文的鉴别码2; 将两个鉴别码比较。,接收方;,加 密,鉴别过程的安全性取决于鉴别算法的密钥管理的安全性。,DSA (decimal shift and add)算法是Sievi 在1980年提出的。,鉴别算法DSA算法,(1)DSA算法,在收发双方同时利用两个十位长的任选的十进制数b1和b2
5、,作为密钥。 将被鉴别的信息看成十进制数串,然后分组,十位一组。 每次运算(加法)取一组,两个运算流并行进行,直到所有信息组运算完毕,得到鉴别码。,(2)DSA算法举例,用R(X)D表示对D循环右移X位,如D1234567890,则R(3)D8901234567。 用S(3)D表示相加之和: S(3)D R(3)DD(mod1010)。,其中:R(3)D8901234567, D1234567890,S(3)D0135802457,假设信息M1583492637 52835869,鉴别码的计算如下:,先将信息分成十位一组,最后一组不足十位时补0; 即:m1= 1583492637, m2= 5
6、283586900; 任选密钥: b1= 5236179902, b2= 4893524771; 两个运算流同时运算。,运算流1,运算流2,m1 1583492637,m1 1583492637, b1 5236179902, b2 4893524771, R(4)p= 2539681967,p = 6819672539,q = 6477017408, R(5)q= 1740864770,S(4)p= 9359354506,S(5)q= 8217882178, m2 5283586900, m2 5283586900, R(8)u= 4294140646,u = 4642941406,v =
7、3501469078, R(2)v= 7835014690,S(8)u= 8937082052,S(2)v= 1336483768,至此,两组信息组运算完毕,得到两个十位长的十进制数,再组合一下,将它们按模1010相加。,S(8)u= 8937082052, S(2)v= 1336483768,0273565820,鉴别码,练习: 假设信息M2851392637 43715687,如何计算DSA算法的鉴别码?,2. 有效性保证对报文时间的鉴别,在传输中,防止对曾经发送过的或存储过的信息的再利用。,通过对报文时间性的鉴别,保证所传送的消息是唯一的。 随后重发的消息是非法的。,实现方法: 收发方预
8、先约定一个时间变量,然后用它作为初始化向量对所发送的报文加密; 收发方预先约定一个时间变量,然后在发送的每份报文中插入该时间变量,保证报文的唯一性。,3. 真实性保证双向鉴别,对报文发送方和接收方的鉴别。 智能卡和主机之间的相互鉴别是消息认证和电子签名的基础。,4. 安全性保证报文源鉴别,报文中加入发送者的标识号; 通过报文加密实现,而且卡和读卡器采用不同的密钥进行加密。,5. 保密性保证:加密/解密。,利用密码技术对信息进行加密处理,以掩盖真实信息,到达保密的目的。也是最安全、最有效的措施。,7.4 密码技术,密码技术 通过规则的变换(算法 algorithm)来伪装信息,其实现的方法称为密
9、码体制(cryptosystem)。,如最早的密码变换规则:, 3 mod 26,密文,明文,密钥,7.4.1 密码技术,被伪装的信息称为“明文”; 伪装后的信息称为“密文”; 加密时所采用的信息变换规则称为“密码算法”; 把密文转变为明文的过程称为“解密”。,加密,加密解密流程图,7.4.2 名词解释,明文 P:在IC卡中表现为二进制数据或比特流。 密文 C:也是二进制数据。,加密,E(P)CD(C)P 即:D(E(P)P,现代密码学总是假定密码算法是公开的,真正需要保密的是密钥。 算法是相对稳定的,变化的只是密钥。,密钥 k:密码算法中的可变参数,在现代加密算法中得到使用。,加密函数 Ek
10、(P) C 解密函数 Dk(C) PDK (Ek(P)) P,使用密钥K后,加密/解密表达式为:,与加密对应的是密码分析,也叫“破译”。是指非授权者通过各种方法窃取密文,并通过各种方法推导出密钥,从而读懂密文的操作过程。 衡量一个加密系统的不可破译性的尺度称为保密强度。,序列密码体制与分组密码体制(按照算法对明文信息的加密方式) 确定型密码体制与概率密码体制(按照加密过程中是否有随机因素) 单向函数密码体制与双向密码体制(按照是否能进行可逆的加密变换) 对称密码体制与非对称密码体制(按照能否由加密过程推导出解密过程),7.4.3 密码体制分类,加密密钥与解密密钥相同或可互相导出。 密钥管理是系
11、统安全的关键。,1 . 对称密码体制,对称密码体制也称单钥密码体制、 对称密钥密码体制、秘密密钥密码体制。,在智能卡中应用较多的加密技术也是对称密码体制,其典型的加密算法是DES算法(Data Encryption Standard),即数据加密标准。,DES算法是一种分组密码算法; 是IBM公司于1975年公开发表的; 开创了公开全部算法的先河; 1977年美国国家标准所批准DES用于非国家保密机关,称为数据加密算法DEA; 之后,出现了专门的DES加密算法的硬件。,关于DES算法,分组密码算法的技巧:扩散(diffusion) 与混乱(confusion),扩散:将每位明文尽可能扩散到较多
12、的输出密文中,以隐蔽明文的统计性。,作用:密文中的每一位都尽可能和明文相联系,防止密钥被破译。,混乱:指密文和明文之间的统计性尽可能复杂化,避免出现很有规律的、线性的相关关系。,(1)DES 算法加密过程,64位明文输入块,64位密文输出块,64位密钥( 其中8位为奇偶校验位),初始置换IP,功能:输入的64位数据块按位(表7.3)重新组合后,输出分为L0 、R0 。,初始置换IP,L0 R0,L0b58b50b8 R0b57b49b7,48位初始密钥k经分解、移位后产生子密钥ki ; 将R0与子密钥k1经密码函数f运算得到f(R0,k1); 与L0按位以模2加,得到R1; 将R0作为L1,完
13、成第一次迭代; 依次类推,得到第i次迭代:,16次迭代,密码函数f 的生成,利用放大换位表E,将32位的Ri-1扩展成48位;,放大换位表E,8个6位长,与子密钥ki按位以模2相加; 把结果分为8个6位长的数据块(48位); 再分别经选择函数(把6位转化为4位输出)S1、S2、S8的变换,产生8个4位长的块,合为32位 ; 最后经单纯换位P得到输出。,例: (1)利用放大换位表E,将32位的Ri-1扩展成48位;,放大换位表E,8个6位长,(2)与子密钥ki按位以模2相加; (3)把结果分为8个6位长的数据块(48位);设结果如下:,8个6位长,(4)再分别经选择函数(把6位转化为4位输出)S
14、1、S2、S8的变换,产生8个4位长的块,合为32位 ;,B1b1b2b3b4b5b6100101,hb2b3b4b500102 Rb1b6113,查表7.6得S181000,32位,48位,经放大换位并与子密钥模2运算的结果,经选择函数运算的结果,(5)最后经单纯换位P得到输出f。,8个4位长,单纯换位表P,16次迭代后的R16L16 ,经IP-1 得到密文。,逆置换IP-1,Ri,Li分别为32位的,故16次迭代后的LiRi为64位的; 这64位的数据经过IP-1 置换;,子密钥的生成,密钥本身是64位,但其中第8,16,24,64位是奇偶校验位,所以K实质只有56位; 这56位的数据经过
15、选择换位PC1;,C0D0,87,这56位的数据经过选择换位PC1后产生的结果分为两部分C0、D0,分别是上下各28位; 然后分别经过循环左移位,得到C1、D1;每次移位的次数有规定(表7.10)。,将C1、D1合并后再经过缩小换位PC2,即得到48位的子密钥K1。 依次类推,产生K2、K3 K16。,缩小选择换位PC2,(2)DES 算法解密过程,DES的解密算法与加密算法一样,只是第一次迭代的过程中使用密钥k16,第二次使用k15 ,最后一次使用k1。或者采用循环右移密钥的方法,每次移位的次数和加密是相同。,(3)DES算法的安全性,56位密钥的穷举空间256; 1秒钟攻击100万个密钥,
16、需2000年; 金融卡主要采用:双长度密钥3-DES算法。,(4)弱密钥,某些数据组合的密钥(全0、全1或一半全0和全1)可能形成相同的子密钥; 只产生2种不同的子密钥(半弱密钥); 只产生4种不同的子密钥。,表7.11 DES 弱密钥(16进制),对明文用不同的密钥进行多次加密。三重DES算法: CEK1(DK2(EK1(P) PDK1(EK2(DK1(C),(5)多重DES,对称密码体制的密钥使用了一段时间以后就需要更换,加密方需通过某种秘密渠道把新密钥传送给解密方。,(6)DES算法存在的问题,由于对称密码体制的加密密码和解密密码相同,因此: 当密钥使用一段时间后,需要修改,存在密钥传递
17、的过程,可能容易泄漏。 其次,发送方和接收方都可以利用密码修改信息,产生信息的不真实,而第三方也无从考证何方正确。,2. 非对称密码体制,加密密钥与解密密钥不同; 且不能用加密密钥推出解密密钥,从而使加密密钥可以公开传递。,(1)特点,(2)优点,密钥分发简单; 秘密保存的密钥量减少; 公钥的出现使得非对称密码体制可以适应开放性的使用环境; 可以实现数字签名安全。,(3)数字签名,利用加密技术实现的一种数据传送方式。,优点:,接收方能对公证的第三方证明其收到的报文的真实性; 发送源也能够说明其真实性。,(4) 非对称密码体制存在的问题,保密强度远远达不到对称密码体制; 保密强度建立在某一个特定
18、的数学问题的求解的困难上;,(5) 非对称密码体制的代表,RSA算法分组密码算法,其安全性是建立在大整数的素数因子分解的困难性上的。,(6) RSA算法简介,任选两个大素数p、q,计算乘积n;npq 相应的欧拉Euler函数;(n)(p1)(q1) 任选一个与(n)互素的整数e作为加密密钥,再根据e求出解密密钥d,d满足: de1 mod (n),(6) RSA算法简介,加密过程:,先将明文(m)数字化:(用二进制数据表示明文); 分割:把明文分成长度小于logn位的明文块,以确保每个明文块值不超过n。,注意:,在参数p、q、n、 (n)、e、d, p、q、 (n)、d是保密的, n、 e则是
19、公开的; 计算中P、q不再需要,可以舍去,但绝不能泄露。,明文和密文的对应关系:cE(m)me mod n; 解密过程:m D(c) cd mod n;,RSA算法举例:,(1)设计密钥,设素数p=5,q=17,公开密钥e19。,计算:npq51785(n) (p1)(q1)64 其中,p、q、 (n)是保密的,n和e是公开的:n85,e19。,(2)计算解密密钥d,采用转辗相除法:,首先令: G(0) (n), G(1) e, V(0) 0, V(1)1, 然后计算:,G(i1) G(i1)G(i1)/ G(i) G(i),V(i1) V(i1)G(i1)/ G(i) V(i),商取整数,一
20、直进行到G(k)1为止,此时的V(k)即为解密密钥d。,G(0) (n)64,G(1) e19V(0) 0, V(1)1,,G(2) G(0)G(0)/ G(1) G(1)6464/19 197,商取整数,V(2) V(0)G(0)/ G(1) V(1)064/19 13,G(3) G(1)G(1)/ G(2) G(2)1919/7 75,V(3) V(1)G(1)/ G(2) V(2)119/7 37,G(4) G(2)G(2)/ G(3) G(3)77/5 52,V(4) V(2)G(2)/ G(3) V(3)37/5 710,G(5) G(3)G(3)/ G(4) G(4)55/2 21
21、,V(5) V(3)G(3)/ G(4) V(4)75/2 1027,即密码的解密密钥d V(5) 27。,c 219 (mod 85)(216 ) (mod 85) 23 (mod 85)(28 )2 (mod 85) 23 (mod 85)1 8 (mod 85) 8 (mod 85),(3)用密钥e将明文转换成密文c,设明文为数字“2”,则密文:,cE(m)me mod n 219 (mod 85),取余数,m 827 (mod 85)(281 ) (mod 85)(28 )10 (mod 85) 2 (mod 85)1 2(mod 85) 2 (mod 85),(4)用密钥d将密文转换
22、成明文m,mD(c)cd mod n 827 (mod 85),得到明文“2”。,(5)RSA算法的缺点,密钥的产生过于麻烦,受到素数生成技术的限制; 为保证安全性,密钥n要求在500位以上,从而降低运算速度。,(6)RSA算法的优点,发送方不知道接收方的解密密钥; 发送方不可能伪造或修改发方的报文,可解决数字签名的问题。,7.4.4 密钥管理,IC卡采用哪种密码体制,涉及到密钥的管理问题。由于密钥是可变的,密钥成了加密系统的关键。,Question:,IC卡中采用哪种密码体制,关键是什么?,Answer:,2. 有何标准?,国际标准化组织开展了密钥管理的标准化工作,制订了密钥管理标准DIS-
23、8732。,1. 何谓密钥管理?,密钥的产生、检验、分配、传递、保管、 使用、销毁的过程。,3. 密钥管理系统层次结构密钥管理系统,基本思想:,用密钥来保护密钥; 用第i层的密钥ki 来保护第(i+1)层的密钥 Ki+1; Ki 本身也受到 ki-1 层的保护; 下层的密钥可按某种协议不断变化; 密钥管理系统是动态变化的。,(1)三层密钥管理系统的结构,(1),(2),(3),(2)三层密钥管理系统的举例,设采用对称密码体制(IC卡和读写器的加密过程),对称密码体制,主密钥相同。 主密钥对某些指定的数据加密后生成子密钥,,用子密钥对另一些数据进行加密,加密的结果即为会晤密钥。一个会晤密钥仅使用
24、一次。,如何保证每次使用,会晤密钥是不同的呢?,Question:,参考方案:,每张卡的芯片制造商的标识码的序列号或应用序列号是不相同的,且都设置在IC卡内,因此可利用序列号进行加密生成子密钥; 用子密钥对交易时间或命令计数器进行加密生成会晤密钥,这样即使是同一张卡,每次使用时的会晤密钥就不同,或做不同的操作,会晤密钥也不同。,从会晤密钥的生成方式着手考虑。,4. 主密钥的生成和下载,(1)主密钥的生成,由几个可信任的人彼此独立提出数据; 组合成一个密钥; 然后对随机数进行加密运算而获得。,这样主密钥的生成和变化规律就很难估计。,(2)主密钥的下载(IC卡),主密钥的下载是在卡个人化时进行。个
25、人化是在专门设备上进行,下载的环境应保证安全。,还要保证IC卡上的触点的信息不能被窃取,主密钥下载后,不能再读出,这由硬件(熔丝)和软件(COS卡内操作系统)来保证。,主密钥的下载,IC卡 读写器,(3)主密钥的下载(读写器),读写器内部没有COS,不能保证主密钥不被读出,常采用安全存取模块SAM,密钥下载到SAM模块中,加密/解密算法也在SAM中进行。,7.5 IC卡的安全使用,IC卡使用时,要与读写器相互确认,以防止伪卡或插错卡。使用过程:,插卡:读写器向卡加电源,并发复位信号,令卡初始化,做好交易准备,卡发出应答信号ATR; 读写器要鉴别卡的真伪; 卡也要鉴别读写器的真伪; 检查卡是否列
26、入黑名单;,检查上次交易是否完成,未完成,卡应有自动恢复数据的功能; 鉴别持卡人的身份:通常采用密码比较的方法,即由持卡人输入密码,与卡内密码比较; 根据应用需求进行交易; 拔卡。,(1)鉴别读卡器的真伪(流程),读写器向卡发命令,产生随机数; 由读写器对随机数加密成密文; 密钥已预存在卡或读写器中,层次按需定; 读写器发外部鉴别命令; 读写器将密文和外部鉴别命令送IC卡; 卡将密文解密成明文,并将明文和原随机数比较,相同:卡认为读写器是真的。,(2)鉴别IC卡的真伪(流程),读写器向卡发命令,产生随机数; 由读写器对随机数加密成密文; 密钥已预存在卡或读写器中,层次按需定; 读写器发外部鉴别命令; 读写器将密文解密成明文,并将明文和原随机数比较,相同: 读写器认为卡是真的。,本 章 小 结,对智能卡的安全造成威胁的因素 密码体制的类别,典型的加密算法及其特点 密钥管理的作用,作业:P184 6,8,10,12,14,15,思考与复习,IC卡面临的安全问题有哪些,请查阅相关资料 密码体制的分类如何? 3. DSA算法是如何计算鉴别码的? 4. 简述DES算法的加密过程。 5. DES算法加密和解密过程的特点是什么? 6. DES算法属于哪种密码体制? RSA密码体制属于哪一类型,有何特点? 三层密钥管理系统的结构是怎样的,其中如何保证会晤密钥的安全?,