《Java智能卡原理与技术》PDF下载

  • 购买积分:9 如何计算积分?
  • 作  者:冉蜀阳等编著
  • 出 版 社:北京:国防工业出版社
  • 出版年份:2002
  • ISBN:7118028495
  • 页数:165 页
图书介绍:本书对智能卡的基本原理和技术、标准及开发应用、语言子集、Java智能卡虚拟机JCVM、运行环境JCRE、应用编程接口API、Java智能卡的安全性原理、方法、实现技术和应用技术,以及相关概念进行了较全面的论述。

第一章 入门 1

1.1 智能卡 1

1.1.1 简史 1

1.1.2 优点 1

1.1.3 应用 2

1.2 Java在智能卡中的应用 2

1.2.1 Java卡技术的优点 2

1.2.2 Java卡技术的简史 2

第二章 智能卡基础 4

2.1 智能卡综述 4

2.2 基本卡类型 4

2.2.1 存储卡和微处理器卡 4

2.2.2 接触卡和非接触卡 5

2.3 智能卡硬件 5

2.3.1 智能卡触点引脚 5

2.3.2 智能卡中央处理器 6

2.3.3 智能卡协处理器 6

2.3.4 智能卡存储系统 6

2.4 智能卡通信 7

2.4.1 智能卡的读写器和主机应用 7

2.4.2 智能卡通信模型 7

2.4.3 APDU协议 8

2.4.4 TPDU协议 9

第三章 Java卡技术概述 10

3.1 系统结构概述 10

3.2 Java卡语言子集 10

3.2.1 Java卡虚拟机 11

3.2.2 CAP文件和输出文件 11

3.2.3 Java智能卡解释程序 13

3.3 Java智能卡安装器和离卡安装程序 13

3.4 Java智能卡运行环境 13

3.4.1 JCRE寿命 15

3.4.2 JCRE在读写器操作期间怎样工作? 15

3.4.3 Java智能卡的运行特点 16

3.5 Java智能卡API 16

3.5.1 Java.lang包 16

3.5.2 Javacard.framework包 17

3.5.3 Javacard.security包 17

3.6 Java智能卡Applet 18

3.7 包和Applet的命名习惯 18

3.8 Applet开发过 19

3.9 Applet安装 20

3.9.1 ROM Applet 20

3.9.2 先发布Applet和后发布Applet 20

3.9.3 后发布Applet安装 21

3.9.4 在Applet安装期间的出错恢复 21

3.9.5 安装限制 21

第四章 Java智能卡对象 23

4.1 Java Card的存储模式 23

4.2 永久对象 23

4.3 临时对象 24

4.3.1 临时对象的特性 24

4.3.2 临时对象种类 25

4.3.3 建立临时对象 25

4.3.4 查询临时对象 26

4.4 对象的建立和声明 26

第五章 原子性和事务处理 27

5.1 原子性 27

5.2 数组中块数据的更新 27

5.3 事务处理 28

5.3.1 提交事务 28

5.3.2 终止事务 28

5.3.3 嵌套的事务 29

5.3.4 提交能力 29

5.3.5 事务处理异常TransactionException 30

5.3.6 事务处理中的局部变量和临时对象 30

第六章 Java智能卡异常及异常的处理 32

6.1 Java lang包中的异常 32

6.2 Java Card异常 33

6.2.1 Java Card异常的原因代码 33

6.2.2 Java Card平台上的异常抛出 34

6.2.3 ISO Exception异常 34

6.2.4 UserException异常 35

第七章 Java智能卡的Applet 36

7.1 Applet概述 36

7.1.1 Applet的安装和执行 36

7.1.2 Applet的通信机制 36

7.2 Javacard.framework.Applet类 37

7.3 Install方法 38

7.3.1 在Applet的构造函数里建立对象 39

7.3.2 在JCRE里注册Applet实例 39

7.3.3 处理安装参数 40

7.3.4 Applet初始化的深入 41

7.4 Select方法 41

7.4.1 Select APDU格式和处理 42

7.4.2 默认的Applet 42

7.5 Deselect方法 43

7.6 Process方法 43

7.7 Applet类中的其他方法 44

第八章 APDU的工作 45

8.1 APDU类 45

8.1.1 APDU对象 45

8.1.2 APDU缓冲区大小 46

8.2 ISO7816界面 46

8.3 Applet里APDU的工作 46

8.3.1 搜索APDU缓冲区 46

8.3.2 检查命令APDU头 47

8.3.3 接收APDU命令数据 47

8.3.4 处理APDU命令,生成应答数据 49

8.3.5 返回APDU应答数据 50

8.3.6 返回状态字 53

8.4 协议规范的APDU处理 53

8.4.1 getProtocol方法 54

8.4.2 getInBlockSize方法 54

8.4.3 getOutBlockSize方法 54

8.4.4 getOutgoingNoChaining方法 55

8.4.5 getNAD方法 56

8.4.6 waitExtension方法 56

8.5 小结 56

第九章 Java智能卡的安全性 58

9.1 常用安全模型 58

9.1.1 MAC和DAC模型 58

9.1.2 访问控制 58

9.1.3 静态和动态模型 59

9.2 Java的安全性 59

9.2.1 Java语言和平台 59

9.2.2 基本安全结构 60

9.2.3 字节代码验证和类型安全 61

9.2.4 签名应用 62

9.3 Java卡平台的安全特性 62

9.4 Java卡平台安全机制 64

9.4.1 编译时间检查 64

9.4.2 类文件的证实和子集检查 64

9.4.3 CAP文件和出口文件验证 65

9.4.4 安装检查 66

9.4.5 使用密码加强信任链 67

9.4.6 运行安全保证 68

9.4.7 Java卡密码支持 68

第十章 Applet防火墙和对象共享 69

10.1 Applet防火墙 69

10.1.1 上下文(context) 69

10.1.2 对象所属 69

10.1.3 对象访问 70

10.1.4 临时(Transient)数组和上下文 71

10.1.5 表态域和方法 71

10.2 通过上下文的对象共享 71

10.2.1 上下文转换 71

10.2.2 JCRE权限 72

10.2.3 JCRE入口点对象 72

10.2.4 全局数组 73

10.2.5 对象共享界面机制 73

第十一章 加密编程 84

11.1 密码简介 84

11.2 常用的加密 85

11.2.1 单向散列函数(Hash) 85

11.2.2 对称密码 86

11.2.3 非对称密码 87

11.2.4 鉴别 88

11.2.5 移动代码 89

11.2.6 数字签名 89

11.2.7 随机数 90

11.3 智能卡应用中的加密实践 90

11.3.1 保证应用安全性 90

11.3.2 作为安全标志 91

11.3.3 总结 91

11.4 Java卡加密APIs 91

11.4.1 设计原则 91

11.4.2 体系结构 92

11.4.3 包结构 93

11.5 代码举例 93

11.5.1 计算一个信息鉴别 94

11.5.2 建造一个密钥 95

11.5.3 签名和验证签名 96

11.5.4 中密和解密数据 97

11.5.5 产生随机数字 98

第十二章 Java语言 99

12.1 Java编程概况 99

12.1.1 程序结构 99

12.1.2 注释 99

12.1.3 标识符 99

12.1.4 数据类型 100

12.1.5 表达式 101

12.1.6 Java流控制 103

12.2 Java变量和函数的实例 104

12.3 对象有效范围和垃圾自动回收 105

12.4 子类 106

12.5 this和super 107

12.6 类的类型 108

12.7 抽象类 108

12.8 接口 109

12.9 包(Packages) 110

12.10 异常 111

12.10.1 “异常”的类型 114

12.10.2 不捕捉“异常” 114

12.10.3 try与catch 115

12.10.4 多个catch子句 115

12.10.5 try语句的嵌套 116

12.10.6 throw语句 117

12.10.7 语句 117

12.10.8 finally 118

12.11 运行时刻异常 120

12.12 编码规范 122

12.12.1 命名规范 122

12.12.2 Java文件样式 123

12.12.3 代码编写格式 126

12.13 Java卡语言子集 129

12.13.1 不被支持的项目 129

12.13.2 支持的项目 130

12.13.3 可选支持项目 131

12.13.4 Java卡虚拟机的局限性 132

第十三章 Applet开发指南 133

13.1 Applet的设计 133

13.1.1 确定Applet要使用的函数 133

13.1.2 确定Applet的AID 133

13.1.3 定义Applet的结构和方法函数 134

13.1.4 定义Applet和主机程序之间的接口 134

13.2 编写Applet的代码 137

13.2.1 钱夹Applet源代码 137

13.2.2 实现错误检查 143

13.3 下一步做什么 144

第十四章 Applet优化 145

14.1 优化Applet的整体设计 145

14.2 优化卡上的执行时间 145

14.3 方法调用 146

14.4 在Applet中创建对象 146

14.5 可重用对象 146

14.6 删除冗除代码 147

14.7 访问数组 148

14.8 switch语句和if-else语句 149

14.9 算术语句 151

14.10 在Applet中优化变量 151

第十五章 使用Int数据类型 153

15.1 32b算术操作 153

15.2 数组大小和数组下标 160

15.3 存储和计算int类型的值 161

15.4 总结 164