智能卡应用中的实用加密技术

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
36
Tcert DCert
其它问题?
37
16
公钥算法


各方得到一个唯一的密钥对(即一个公钥和一个 私钥) 其中的公钥向外界公开(自由读取) 另一个私钥是保密的,只有一方知道。 公钥由密钥颁发机构通过密钥证书颁发。 密钥颁发机构的公钥对外公开,可以自由读取。
17
CA – 数字证书认证中心

证实您的身份,方法是... 将单独用户与公钥联系在一起,通过... 使用CA密钥签署公钥,从而... 生成密钥证书,其中包括...
mac7-5
2.发送Get Response以获取mac7-5
00 C0 00 00 03
3.校验mac7-5
34
交易认证
Tcert = MAC(K,交易记录) Tcert
终端 ID
卡片 ID
日期 & 时间
终端 & 卡片 交易 #
35
消费证书&验证
请按照Tcert确定的金额扣款$ 已经扣款,交易凭证为DCert POS验证扣款证书
29
3DES密钥分散
Ap s/no Ap s/no
MK-A (8)
DES
MK-A (8)
DES
MK-B (8)
DES-1
MK-B (8)
DES-1
MK-A (8)
DES
DK-A (8)
MK-A (8)
DES
DK-B (8)
Ki = 3DES(Km,s/no) | 3DES(Km,s/no), where s/no complements s/no
00 82 algo @Kt 08 Ct
2.如果Kt没有被锁定,计算Ct’ Ct’=E(Kt,Rc) ,并且比较 (Ct,Ct’) 3.如果OK,授予与Kt或与增量错误计数器 相关的访问权限
26
真实性 – 持卡人验证
1.持卡人输入PIN 2.终端通过Verify_PIN(PIN)命令 将PIN发送给卡片
13
ECB – 电子密码本模式
14
CBC – 密码分组链接模式
15
散列(Hash)

一种加密函数 以任意长度的报文作为输入 返回固定长度的散列值 又叫做报文摘要函数 例如MD5(128位),SHA(160位) 类似于信息指纹 不需要密钥 对消息的散列值进行签名与对消息直 接签名一样有效。
Key A
DES
Key A
DES
Key A
DES
8 bytes MAC
mac=MAC(Kmac,message)
10
MAC – 基于3DES的报文认证码
D1 D2 Dn
Initial Vector 8 bytes
Key A
DES
Key A
DES
Key A
DES
Key B
DES-1
Key A
DES
mac=3MAC(Kmac,message)
具有卡片/终端验证密钥以及卡片/终端随机数的功 能 必须不易复制/不易重复使用

用来执行安全报文发送 实现端到端安全(例如:一端是卡片,另一端是 应用SAM) 如果不正确执行,容易出现漏洞
32

安全报文发送



确保发送给卡片的ISO-IN命令没有被 篡改,并且卡片确实执行了该命令 确保ISO-OUT命令没有被篡改,并且 确实来自于卡片 确保完整性和机密性 允许端到端安全实施
智能卡应用中的实用加 密技术
目录

加密技术概述 加密算法
DES 3DES MAC CBC HASH

PKI概述
2
加密安全的目的

真实性
验证发送方和接收方 防止假冒和篡改 验证卡片和终端

机密性
保证所交换信息的私密性和机密性

完整性
保证信息内容完整并且没有被篡改

非对称/公钥加密算法(例如RSA和ECC)
适宜多对多的加密信息交换(例如电子邮件和电子 商务) 密钥管理基础设施复杂 公钥算法对DES进行了补充,但不能替代DES
5
DES – 数据加密标准




对称密钥算法 把数据明文分成以8字节为单位的数据 块,一次加密一个数据块 唯一已知的攻击是穷举攻击,计算量 级为2的56次方 使用当今每微秒可进行一次计算的计 算机来破解密文需要两千年,使用经 过特殊设计的硬件并行处理要几个小 时 使用三重DES(3DES)可以提高安全性
用户的公钥 与用户有关的信息(例如姓名和ID号码... 证书失效日期、使用政策 CA电子签名

其它功能 - 证书分发&存储、替换、更新、吊 销等
18
证书吊销列表

不再会受到信任的证书涉及:
密钥泄露 – 密钥丢失或泄露 隶属关系改变 – 姓名错误、公司更改 证书被替代 – 已经更新为另一个证书 停止操作 – 不需要再为原目的进行操作
28
密钥分散

主密钥必须位于安全模块中(例如终端SAM和主机HSM)。 分散密钥必须位于卡片中。 主密钥存储在可以控制并且发行数量较少的设备中(例如 终端)。 分散密钥存储在难以控制(例如难以更新密钥)并且发行 数量较多(例如给每位用户分发一张卡片)的设备中。 已发行的卡片均有一个使用年限,在使用年限到期后会失 效。 需要进行审核(必要时,必须启用后台系统卡片黑名单管 理功能)。
6
DES加密
明文, P
DES DES
知道K, P - 可以轻松的找出Z 知道K, Z - 可以轻松的找出P 知道P, Z - 找不出K,除非通过 穷举攻击
Z=DES(K,P)
密钥, K
密文, Z
-1 -1 DES DES
P=DES-1(K,Z)
7
DES / 3DES


单DES采用单长度密钥:(8个字节), K(8). 3DES采用双长度密钥:(16个字节), K(16) = KL(8) | KR(8) 或 KA(8) | KB(8). 如果左半部分和右半部分相同,则3DES变为单DES。 允许DES和3DES计算之间相互转换算法。 不会使用字节的最低有效位。
19
密钥证书
X.509证书 签名算法标识符 签名值
待签名(TBS)证书 版本号 证书序列号 签名算法标识符 颁发者名称 有效期 主体名称 主体公钥信息 颁发者唯一标识符 主体唯一标识符 扩展域
20
使用私钥进行签名
21
使用公钥进行签名验证
22
使用公钥算法进行加密
Bob的 公钥 Bob的 私钥
发送方
00 20 20 @PIN 08 PIN
1.如果PIN没有被锁定,将 卡片中的PIN与终端发送 过来的PIN进行比较 2.如果OK,授予与PIN或与增量错误计数器 相关的访问权限
27
密钥分散



一种用于确保每张卡片中的密钥都具有唯一性的加 密技术。 密钥管理简单 使用一组主密钥(例如卡片验证密钥、终端验证密 钥、充值密钥、消费密钥) 使用卡片的唯一数据(例如芯片序列号和客户编号 )生成卡片的唯一密钥 用于对称密钥管理系统
00 C0 00 00 08
25
真实性 – 终端验证
1.发送获取随机数命令以获取 卡片随机数, Get_Challenge()
00 84 00 00 08
1.生成卡片随机数 #, Rc
Rc, 卡片随机数
2.使用终端验证密钥Kt 加密Rc,计算出终端 响应密文数据, Ct=E(Kt,Rc) 3.发送外部认证命令, Ext_Auth(algo,@Kt,Ct)
30
密钥分散

Q:分散密钥泄露可能导致该密钥所处的卡片被
列入黑名单,那么消费密钥等主密钥泄露的话 又会怎样呢?

多组分散密钥存储在卡片中。 单独的一组主密钥存储在SAM中。 终端在SAM的主密钥组中进行选择。 如果一个主密钥泄露,需要替换所有的SAM。
31源自文库
会话密钥

只在一个具体会话过程中使用的独特密钥
24
真实性 – 卡片验证
1.生成终端随机数 #, Rt 2.发送Internal Authenticate命令 Int_Auth(algo,@Kc,Rt)
00 88 algo @Kc 08 Rt
1.使用Kc加密终端随机数# Cc=E(Kc,Rt) 2.准备返回卡片密文数据
Cc=E(Kc,Rt)
3.获取卡片密文数据, GetResp()
33
安全报文发送
1.计算ISO-IN命令的mac 命令的mac=3DES, Kmac,ISO-IN命令
CLA INS P1 P2 Lin+3 Data-in | mac0-2
1.计算ISO-IN命令的mac mac=3DES, Kmac,ISO-IN-命令 2.校验mac 3.如果OK,执行该命令


信道
接收方
使用CA公钥检查接收方的公钥证书 查看公钥吊销列表 生成随机的3DES密钥 使用3DES对报文进行加密 使用另一方公钥对3DES密钥进行加密 将加密的报文附加在加密的3DES密钥后面
23
使用公钥算法进行解密

使用私钥解密3DES密钥 使用解密后的3DES密钥解密报文

不可抵赖性
证明交易确实发生,不能够抵赖
3
加密安全的实施

真实性
通过挑战应答来实现

机密性
通过数据加密来实现

完整性
通过报文签名来实现

不可抵赖性
通过报文签名来实现
4
对称和非对称加密算法

对称加密算法(例如DES或3DES)
适合多对一和一对一的信息加密传输过程(例如: 银行–客户) 密钥管理简单 难以实现不可抵赖性
8
3DES
3-DES 加密
明 文
3-DES 解密
密 文
密钥左半部分
DES DES-1
密钥左半部分
DES-1
密钥右半部分
密钥右半部分
DES
密钥左半部分
DES
密文
密钥左半部分
DES-1
明文
Z=3DES(K,P)
P=3DES-1 (K,Z)
9
MAC – 基于DES的报文认证码
D1 D2 Dn
Initial Vector 8 bytes
8 bytes MAC
11
MAC – 基于3DES的报文认证码
D1 D2 Dn
Initial Vector 8 bytes
3DES Key A|B Key A|B
3DES Key A|B
3DES
8 bytes MAC
mac=3MAC(Kmac,message)
12
MAC





由于(IV + x) xor (block0+x) = IV xor block0,使用随 机的IV可能成为潜在漏洞 用IV=0来代替 如果报文 <= 8个字节,MAC变为DES加密,可能导 致安全漏洞 用80后接数个00做为填充,使报文的最后一个数 据块变为8字节 如果报文长度正好是8的倍数,则填充8000 0000 0000 0000
相关文档
最新文档