目 录 1
第1章初识IC卡 1
1.1 IC卡的发展与现状 1
1.1.1 IC卡的发展历史 1
1.1.2 IC卡在国外的应用情况 2
1.1.3 IC卡在国内的广泛应用 3
1.2 IC卡的应用特点 4
1.2.1 IC卡应用系统 4
1.2.2 IC卡的应用优势 5
1.2.3 IC卡支持的典型应用 6
1.3卡内操作系统COS 7
1.3.1 COS的主要功能 7
1.3.2 COS的发展与现状 8
第2章COS开发的预备知识 9
2.1 COS的需求分析 9
2.1.1 卡片所支持的应用 9
2.1.2卡片的使用环境 10
2.1.3 “应用”在卡内的存在方式 10
2.1.4数据存储的特殊要求 11
2.1.6开发与发行 12
2.1.5安全要求 12
2.2相关知识的准备 13
2.2.1 与IC卡相关的规范 13
2.2.2与应用相关的规范 14
2.2.3相关的加密算法 16
2.2.4 COS开发商提供的相似范例 17
2.3 COS的开发过程 18
2.3.1准备环境 18
2.3.2设计系统 19
2.3.5检测 20
2.3.4测式 20
2.3.3编程实现 20
2.3.6掩模发行 21
2.4 COS的基本结构 21
2.4.1总体结构 21
2.4.2基本系统服务 21
2.4.3高级系统服务 22
2.4.4系统调度 23
2.4.5应用服务接口 23
2.4.6模块划分 24
3.1 IC卡芯片结构 25
3.1.1 IC卡芯片的种类 25
第3章IC卡芯片 25
3.1.2 IC卡芯片的逻辑结构 26
3.2芯片的性能指标及其选择 29
3.2.1处理器 29
3.2.2存储空间 29
3.2.3加密协处理器 30
3.2.4硬件安全保护 30
3.2.5其他机制 30
3.3.1 ST16系列芯片 31
3.3典型芯片浏览 31
3.3.2 ST19系列芯片 32
3.3.3 ST22系列芯片 33
第4章IC卡的传输协议 36
4.1 IC卡的操作过程 36
4.1.1正常操作流程 36
4.1.2异常中断 39
4.2字符的物理传送 39
4.2.1位持续时间 39
4.2.2字符帧 40
4.3.1回送的物理传输 41
4.3.2回送字符 41
4.3复位应答 41
4.3.3字符定义 42
4.3.4应答次序和一致性 46
4.3.5终端流程 46
4.4传输协议 47
4.4.1概述 47
4.4.2物理层 48
4.4.3数据链路层 48
4.4.4终端传输层 56
4.4.5应用层 59
5.1.1文件系统的逻辑结构 61
5.1文件系统的组织形式 61
第5章IC卡的文件系统 61
5.1.2对文件系统的操作 62
5.2卡内文件的类型 63
5.2.1主文件——MF 63
5.2.2专用文件——DF 63
5.2.3基本数据文件EF 65
5.2.4文件系统逻辑结构示例 69
5.3文件在卡内的存储结构 70
5.3.1卡内文件的存储 70
5.3.2文件描述块的内容定义 72
5.3.3文件描述块的设计示例 72
5.3.4不同数据类型EF文件体设计示例 77
5.3.5不同用途类型EF文件体设计示例 78
5.4操作卡片文件的相关命令 82
5.4.1创建文件(CREATEFILE)命令 82
5.4.2删除文件(DELETE FILE)命令 85
5.4.3选择文件(SELECT)命令 88
5.4.4读二进制(READ BINARY)命令 91
5.4.5 写二进制(UPDATE BINARY)命令 93
5.4.6读记录(READ RECORD)命令 95
5.4.7写记录(UPDATE RECORD)命令 97
6.1.1卡片安全状态 100
6.1卡片安全结构 100
第6章IC卡的安全体系 100
6.1.2卡片安全属性 101
6.1.3卡片安全机制 102
6.2安全相关的主要算法 104
6.2.1单向散列算法(HASH) 104
6.2.2对称数据加解密算法 125
6.2.3 RSA算法 139
6.2.4安全报文计算算法 141
6.3安全结构设计示例 142
6.3.1 卡片安全环境 142
6.3.3安全机制的选择 144
6.3.2安全状态的维护 144
6.3.4安全属性的实现 145
6.4安全操作相关的基本命令 146
6.4.1取随机数(GETCHALENGE)命令 146
6.4.2 内部认证(INTERNAL AUTHENTICATION)命令 148
6.4.3外部认证(EXTERNAL AUTHENTICATION)命令 150
6.4.4添加密码(APPEND PIN)命令 152
6.4.5修改密码(CHANGE PIN)命令 154
6.4.6验证密码(VERIFY)命令 156
6.4.7 密码解锁(PIN UNBLOCK)命令 158
6.4.8写密钥(WRITE KEY)命令 159
6.4.9其他相关命令 162
第7章多应用IC卡的实现 163
7.1 IC卡的生命周期 163
7.1.1 IC卡的使用流程 163
7.1.2 IC卡的生命周期状态图 166
7.2应用模式 167
7.2.1卡应用中的角色定义 167
7.2.2卡应用中的角色关系 168
7.2.3 卡应用的不同模式 168
7.3.1 多应用状态下的应用状态 169
7.3多应用环境下的卡片状态维护 169
7.3.2支持多应用的COS设计 171
7.4卡片和应用生命周期维护相关命令 172
7.4.1 应用锁定(APPLICATION BLOCK)命令 172
7.4.2应用解锁(APPLICATION UNBLOCK)命令 175
7.4.3 卡片锁定(CARD BLOCK)命令 176
7.4.4激活文件(ACTIVEFILE)命令 178
7.4.5屏蔽文件(DEACTIVATE FILE)命令 181
第8章COS的工作流程 184
8.1主守护流程 184
8.1.1 工作原理 184
8.1.2设计示例 185
8.1.3 示例涉及的数据结构 187
8.2数据IO流程 189
8.2.1流程的工作原理 189
8.2.2设计示例 190
8.2.3示例涉及的数据结构 196
8.3命令处理流程 197
8.3.1工作原理 197
8.3.2设计示例 197
8.3.3示例涉及的数据结构 198
8.4.1工作原理 199
8.4数据安全写流程 199
8.4.2设计示例 200
8.4.3示例涉及的数据结构 201
第9章 中国金融集成电路(IC)卡应用 203
9.1应用描述 203
9.1.1应用及其实现要求 203
9.1.2应用过程中包含的交易 203
9.2应用文件的设计 204
9.2.1 DF文件 204
9.2.2数据EF文件 204
9.2.3相关的数据描述 206
9.3应用相关的命令集 208
9.3.1修改密码(CHANGEPIN)命令 208
9.3.2圈存(CREDITFORLOAD)命令 209
9.3.3消费/取现(DEBITFORPUURCHASE/CASHWITHDRAW)命令 210
9.3.4圈提(DEBITFORUNLOAD)命令 211
9.3.5读余额(GETBALANCE)命令 212
9.3.6取交易认证(GETTRANSACTIONPROOF)命令 213
9.3.7取现初始化(INITIALIZE FOR CASH WITHDRAW)命令 214
9.3.8圈存初始化(INITIALIZEFORLOAD)命令 215
9.3.9消费初始化(INITIALIZEFORPURCHASE)命令 216
9.3.10 圈提初始化(INITIALIZEFORUNLOAD)命令 217
9.3.11 修改初始化(INITIALIZEFORUPDATE)命令 219
9.3.12重装个人密码(RELOADPIN)命令 220
9.3.13修改透支限额(UPDATEOVERDRAWLIMIT)命令 221
9.4卡片的状态维护 222
9.4.1卡片的状态 222
9.4.2卡片状态的变化 222
9.4.3状态和命令之间的关系 222
9.5.1密钥管理原则 223
9.5.2应用涉及的密钥 223
9.5安全结构设计 223
9.5.3子密钥的计算方法 224
9.5.4过程密钥的计算方法 224
9.6交易流程 225
9.6.1交易预处理 225
9.6.2圈存交易 227
9.6.3圈提交易 230
9.6.4消费交易 232
9.6.5取现交易 235
9.6.6修改透支限额交易 237
9.6.9应用维护功能 240
9.6.8查询明细交易 240
9.6.7查询余额交易 240
9.6.10防拔 242
9.7命令在交易过程中的使用示例 243
9.7.1 圈存交易 243
9.7.2圈提交易 244
9.7.3消费交易 245
9.7.4取现交易 246
9.7.5修改透支限额交易 247
9.7.6查询余额交易 248
9.7.7修改PIN 249
9.7.8重装PIN 250
第10章社会保障(个人)卡应用 251
10.1 应用描述 251
10.1.1 应用及其实现要求 251
10.1.2应用过程中包含的交易 252
10.2应用文件的设计 252
10.2.1 应用及其文件结构 252
10.2.2基本应用数据区 254
10.2.3公共应用数据区 258
10.2.4就业与失业数据区 262
10.2.5社会保险数据区 269
10.2.6 医疗保险数据区 273
10.2.7生命与健康数据区 277
10.2.8社会救助与优待抚恤数据区 279
10.2.9应用对文件系统的扩展 283
10.2.10相关的数据描述 284
10.3医疗保险应用相关的命令集 285
10.3.1账户划入(CREDITFORLOAD)命令 285
10.3.2 医疗消费(DEBITFOR PURCHASE)命令 286
10.3.3读取卡内余额(GET BALANCE)命令 287
10.3.4取交易认证码(GET TRANSACTION PROOF)命令 288
10.3.5账户划入初始化(INITIALIZE FORLOAD)命令 289
10.3.6 医疗消费初始化(INITIALIZE FOR PURCHASE)命令 290
10.3.7修改年度起始日期(UPDATE STARTING DAY)命令 292
10.3.8取年度起始日期(GET STARTING DAY)命令 293
10.4安全结构设计 294
10.4.1 密钥管理原则 294
10.4.2 应用涉及的密钥 294
10.5交易与命令的实现流程 296
10.5.1交易预处理 296
10.5.2查询应用信息 298
10.5.3操作员更新应用信息 300
10.5.4持卡人联网更新应用信息 302
10.5.5更改个人密码 303
10.5.6初始化医疗保险支付 305
10.5.7账户划入交易 306
10.5.8 医疗消费交易 309
10.5.9应用维护功能 312
10.5.10 防拔 312
10.6命令在交易过程中的使用示例 313
10.6.1账户划入交易 313
10.6.2 医疗消费交易 314
10.6.3其他交易 316
11.1.1 应用及其实现要求 317
11.1应用描述 317
第11章 中国石化加油集成电路卡应用 317
11.1.2应用过程中包含的交易 318
11.2应用文件的设计 318
11.2.1DF文件 318
11.2.2数据EF文件 319
11.2.3相关的数据描述 321
11.3应用相关的命令集 323
11.3.1修改个人密码(CHANGE PIN)命令 323
11.3.2圈存(CREDIT FOR LOAD)命令 324
11.3.3消费(DEBITFORPURCHASE)命令 325
11.3.4圈提(DEBITFOR UNLOAD)命令 326
11.3.5 解扣(DEBITFOR UNLOCK)命令 327
11.3.6读余额(GETBALANCE)命令 328
11.3.7读取灰锁(GETLOCK PROOF)命令 329
11.3.8取交易认证(GETTRANSACTIONPROOF)命令 331
11.3.9灰锁(GREYLOCK)命令 332
11.3.10联机解扣(GREY UNLOCK)命令 333
11.3.11 灰锁初始化(INITIALIZEFOR GREY LOCK)命令 334
11.3.12 联机解扣初始化(INITIALIZE FOR GREYUNLOCK)命令 335
11.3.13 圈存初始化(INITIALIZEFORLOAD)命令 336
11.3.14消费初始化(INITIALIZE FOR PURCHASE)命令 337
11.3.15 圈提初始化(INITIALIZE FOR UNLOAD)命令 338
11.3.16修改初始化(INITIALIZE FOR UPDATE)命令 340
11.3.17重装个人密码(RELOAD PIN)命令 341
11.3.18修改透支限额(UPDATE OVERDRAW LIMIT)命令 342
11.4卡片的状态维护 343
11.4.1卡片的状态 343
11.4.2卡片状态的变化 343
11.4.3 状态和命令之间的关系 343
11.5安全结构设计 344
11.5.1 密钥管理原则 344
11.5.3子密钥的计算方法 345
11.5.2应用涉及的密钥 345
11.5.4过程密钥的计算方法 346
11.6交易与命令的实现流程 346
11.6.1交易预处理 346
11.6.2加油专用消费交易 349
11.6.3联机解扣交易 353
11.6.4补扣交易 356
11.6.5补充交易 359
11.6.6圈存交易 360
11.6.7圈提交易 362
11.6.8加油普通消费交易 365
11.6.9修改透支限额交易 367
11.6.10查询余额交易 370
11.6.11查询明细交易 370
11.6.12应用维护功能 370
11.6.13 防拔 372
11.7命令在交易过程中的使用示例 372
11.7.1 加油专用消费交易 372
11.7.2联机解扣交易 375
11.7.3补扣交易 376
11.7.4补充交易 377
11.7.5圈存交易 378
11.7.6圈提交易 379
11.7.7普通消费交易 380
11.7.8修改透支限额交易 381
11.7.9查询余额交易 382
11.7.10修改PIN 383
11.7.11 重装PIN 383
第12章支持公钥应用的公钥(PKI)卡 385
12.1PKI体系 385
12.1.1 PKI体系介绍 385
12.1.2 PKI体系的结构 386
12.1.3 PKI体系的工作 388
12.1.4 PKI体系的安全分析 389
12.2 PKI体系相关算法 390
12.2.1数字签名 390
12.2.2加密算法 401
12.3 PKI卡的实现 406
12.3.1 算法在卡内的选择与实现 406
12.3.2文件结构 407
12.3.3处理流程 408
12.4 PK相关的命令 410
12.4.1 管理安全环境(MANAGE SECURITY ENVIRONMENT) 410
12.4.2 密钥导入(WRITE KEY) 413
12.4.3 密钥生成(GENERATE KEY) 415
12.4.4密钥导出(EXPORT KEY) 417
12.4.5 散列计算(HASH) 418
12.4.6数据加密(ENCIPHER) 421
12.4.7数据解密(DECIPHER) 422
12.4.8 数字签名(SIGNATURE) 423
12.4.9 数字签名验证(VERIFY SIGNATURE) 426
第13章智能卡应用解决方案示例 429
13.1校园一卡通应用 429
13.1.1校园一卡通系统介绍 429
13.1.2 一卡通系统的结构 430
13.2.1社会保障卡系统介绍 432
13.1.3 一卡通系统的配置 432
13.2社会保障卡应用 432
13.2.2社会保障卡系统的结构 433
13.2.3社会保障卡系统的配置 433
13.3网吧监管系统应用 434
13.3.1 网吧监管系统介绍 434
13.3.2 网吧监管系统的结构 435
13.3.3 网吧监管系统的配置 436
13.4关于智能卡应用系统的设计开发 436
附录主要缩略词列表 437