物联传媒 旗下网站
登录 注册
价格:¥32.40
智能卡研发技术与工程实践
作  者:求是科技 编
出 版 社:
出版时间:2003年11月
字  数:
版  次:0
页  数:0
开  本:16
印  次:0
I S B N:
书刊介绍

本书详细介绍了在常见的IC卡芯片平台上开发卡内操作系统(COS)的方法和技巧,力图通过生动的讲解和典型的应用实例让读者进一步学习掌握并提高这一技术。本书共分13章,主要包括了COS开发的基本概念、COS系统的模块划分、卡片的通信协议、COS文件系统、COS的安全体系、COS的多应用涉及和主要的工作流程等。

同时,本书还详细介绍了COS在金融、社会保障、石化加油和公钥体系等多个领域应用的设计实例,包括这些应用的主要特点和基本要求、应用对外的命令接口格式以及命令的主要实现流程等。

本书中COS主要工作流程设计以及大量的命令接口格式、安全算法实现等可供广大系统设计和开发人员阅读参考。本书专业性和实用性较强,对于在传统平台上进行COS开发具有较高的参考价值。本书适合中高级程序员、软件开发人员和系统分析人员阅读和参考。

第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.5 安全要求 12

2.1.6 开发与发行 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.3 编程实现 20

2.3.4 测试 20

2.3.5 检测 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章 IC卡芯片 25

3.1 IC卡芯片结构 25

3.1.1 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 典型芯片浏览 31

3.3.1 ST16系列芯片 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 复位应答 41

4.3.1 回送的物理传输 41

4.3.2 回送字符 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章 IC卡的文件系统 61

5.1 文件系统的组织形式 61

5.1.1 文件系统的逻辑结构 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 创建文件(CREATE FILE)命令 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章 IC卡的安全体系 100

6.1 卡片安全结构 100

6.1.1 卡片安全状态 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.2 安全状态的维护 144

6.3.3 安全机制的选择 144

6.3.4 安全属性的实现 145

6.4 安全操作相关的基本命令 146

6.4.1 取随机数(GET CHALLENGE)命令 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 多应用环境下的卡片状态维护 169

7.3.1 多应用状态下的应用状态 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 激活文件(ACTIVE FILE)命令 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 数据安全写流程 199

8.4.1 工作原理 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 消费/取现(DEBITFORPURCHASE/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 安全结构设计 223

9.5.1 密钥管理原则 223

9.5.2 应用涉及的密钥 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.7 查询余额交易 240

9.6.8 查询明细交易 240

9.6.9 应用维护功能 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 医疗消费(DEBIT FOR PURCHASE)命令 286

10.3.3 读取卡内余额(GET BALANCE)命令 287

10.3.4 取交易认证码(GET TRANSACTION PROOF)命令 288

10.3.5 账户划入初始化(INITIALIZE FOR LOAD)命令 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章 中国石化加油集成电路卡应用 317

11.1 应用描述 317

11.1.1 应用及其实现要求 317

11.1.2 应用过程中包含的交易 318

11.2 应用文件的设计 318

11.2.1 DF文件 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 消费(DEBIT FOR PURCHASE)命令 325

11.3.4 圈提(DEBIT FOR UNLOAD)命令 326

11.3.5 解扣(DEBIT FOR UNLOCK)命令 327

11.3.6 读余额(GET BALANCE)命令 328

11.3.7 读取灰锁(GET LOCK PROOF)命令 329

11.3.8 取交易认证(GET TRANSACTION PROOF)命令 331

11.3.9 灰锁(GREY LOCK)命令 332

11.3.10 联机解扣(GREY UNLOCK)命令 333

11.3.11 灰锁初始化(INITIALIZE FOR GREY LOCK)命令 334

11.3.12 联机解扣初始化(INITIALIZE FOR GREY UNLOCK)命令 335

11.3.13 圈存初始化(INITIALIZE FOR LOAD)命令 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.2 应用涉及的密钥 345

11.5.3 子密钥的计算方法 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.1 PKI体系 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.1.3 一卡通系统的配置 432

13.2 社会保障卡应用 432

13.2.1 社会保障卡系统介绍 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