第1章 密码学基础 1
1.1 密码学概述 2
1.1.1 密码体制与密码系统的基本模型 2
1.1.2 Kerckhoff假设和密码系统的安全性 3
1.2 对称密码体制 4
1.2.1 分组密码的设计思想与Feistel密码结构 4
1.2.2 数据加密标准 7
1.2.3 高级加密标准 15
1.3 公钥密码体制 23
1.3.1 公钥密码的基本思想 23
1.3.2 背包加密算法 25
1.3.3 RSA算法 27
1.3.4 ElGamal算法 31
1.3.5 椭圆曲线加密算法 33
1.4 消息认证 38
1.4.1 消息认证码 38
1.4.2 Hash函数 39
1.4.3 MD5算法 41
1.4.4 SHA算法 45
1.5 数字签名 48
1.5.1 数字签名概述 48
1.5.2 数字签名过程 49
1.5.3 RSA数字签名方案 51
1.5.4 数字签名标准 52
参考文献 54
第2章 XML基础 57
2.1 XML标准和规范 58
2.1.1 XML标准分类 58
2.1.2 XML安全规范 64
2.2 XML文档的基本结构 70
2.2.1 良构的XML文档 70
2.2.2 XML声明 71
2.2.3 XML元素 72
2.2.4 XML属性 72
2.2.5 处理指令 74
2.2.6 注释 74
2.3 特殊字符的表示 76
2.3.1 实体引用 77
2.3.2 CDATA段 77
2.4 XML名称空间 79
2.4.1 名称空间的声明 79
2.4.2 名称空间的使用范围 81
2.5 XML与Java 82
参考文献 83
第3章 XML Schema与有效性验证 84
3.1 XML模式语言规范 85
3.2 XMLSchema的基本结构 88
3.3 元素声明 92
3.3.1 元素类型 92
3.3.2 全局元素与局部元素 93
3.3.3 元素的默认值和固定值 94
3.3.4 引用元素和替代 95
3.4 属性声明 96
3.4.1 创建属性 97
3.4.2 为属性值指派数据类型 98
3.4.3 属性的默认值和固定值 99
3.5 Schema内置数据类型 101
3.6 简单类型元素 103
3.6.1 基本数据类型 104
3.6.2 自定义简单类型 105
3.7 复杂类型元素 110
3.7.1 simpleContent 110
3.7.2 complexContent 111
3.7.3 几点说明 113
3.8 在XMLSpy中生成Schema文档 115
3.8.1 创建Schema文档 115
3.8.2 设置XMLSchema文档 117
参考文献 120
第4章 DOM接口技术 121
4.1 DOM的结构 122
4.2 DOM对象 125
4.2.1 Document接口 126
4.2.2 Node接口 128
4.2.3 NodeList接口 130
4.2.4 NamedNodeMap接口 131
4.3 XPath 132
4.3.1 XPath规范 132
4.3.2 XPath表达式 134
4.3.3 基本XPath函数 136
4.3.4 节点测试 142
4.3.5 谓词 143
4.4 DOM实例 144
4.4.1 显示XML文档的内容 144
4.4.2 添加XML文档的内容 147
参考文献 149
第5章 XML加密 150
5.1 XML加密规范和基本结构 151
5.1.1 XML加密的名称空间 152
5.1.2 XML加密元素 152
5.2 XML加密的Java实现 154
5.2.1 Java加密体系结构 154
5.2.2 JCE安全提供者 156
5.2.3 JCE类及接口 158
5.3 XML加密解密函数 171
5.3.1 要加密的XML文档示例 171
5.3.2 XML文档的加载 172
5.3.3 XML加密方法 172
5.3.4 XML解密函数 175
5.3.5 密钥交换 177
5.4 XML文档整体加密 180
5.4.1 整体加密后的XML文档 180
5.4.2 XML文档整体加密过程 181
5.5 XML文档元素加密 182
5.5.1 对XML元素的加密后产生的结果 182
5.5.2 XML文档元素加密过程 183
5.6 XML元素内容加密 185
5.6.1 对XML元素内容的加密后产生的结果 185
5.6.2 XML文档内容加密过程 186
5.7 XML超级加密 187
5.7.1 对非XML数据的加密 187
5.7.2 超级加密 188
参考文献 189
第6章 XML数字签名 190
6.1 XML数字签名的结构 191
6.1.1 XML数字签名的基本算法 191
6.1.2 XML签名的类型 194
6.1.3 XML签名元素的基本结构 195
6.2 XML数字签名的处理 197
6.2.1 签名过程 197
6.2.2 验证过程 198
6.3 XML数字签名的Java实现 199
6.3.1 XML数字签名示例 199
6.3.2 XML数字签名的Java类 200
6.4 封装式签名 206
6.4.1 签名过程 206
6.4.2 验证过程 214
6.5 嵌入式签名 218
6.5.1 签名过程 218
6.5.2 验证签名 221
6.6 分离式签名 224
6.6.1 签名过程 225
6.6.2 验证签名 226
参考文献 227
第7章 XML.密钥管理规范 228
7.1 XKMS概述 229
7.1.1 PKI与XKMS 229
7.1.2 XKMS的组成 231
7.2 密钥信息服务规范X-KISS 233
7.2.1 查询服务 233
7.2.2 验证服务 238
7.3 密钥注册服务规范X-KRSS 240
7.3.1 注册(Registration) 241
7.3.2 重新发布(Reissue) 247
7.3.3 撤销(Revocation) 250
7.3.4 恢复(Recover) 251
7.4 主要的XKMS系统 255
参考文献 255
第8章 安全断言标记语言SAML 257
8.1 SAML体系结构 258
8.2 SAML断言 260
8.2.1 SAML断言的类型 260
8.2.2 SAML断言结构 261
8.2.3 SAML声明 264
8.3 SAML协议 265
8.3.1 SAML请求/应答协议模型 265
8.3.2 断言查询和请求协议 267
8.3.3 认证请求协议 268
8.3.4 Artifact解析协议 269
8.4 SAML绑定 271
8.4.1 SAML SOAP绑定 271
8.4.2 反向SOAP绑定 272
8.4.3 HTTP重定向绑定 272
8.4.4 HTTP POST绑定 272
8.4.5 HTTP Artifact绑定 273
8.5 SAML配置 276
8.5.1 Browser/Post配置 277
8.5.2 Browser/Artifact方式 280
8.5.3 用JSAML实现Web SSO 282
8.5.4 SAML的安全性分析 283
参考文献 285