《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年. 第 4 章 数据认证 Part I 《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年.
《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年. 为什么需要数据认证? 验证数据的来源 确认数据没有被篡改或伪造 一个使用预共享秘密的简单认证方案: Alice发送消息M 和密文C = Ek(M) 给 Bob Bob接收到消息后,用密钥 K 解密密文C 得到 M’ 如果M’ = M ,那么Bob 确认消息M 来自于Alice 公钥密码体系能够提供数据认证和抗抵赖功能 当需要认证一个很长的消息M时,只需要计算代表此消息的短字符串h,并进行加密 《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年.
《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年. 数字指纹 不需要使用秘密密钥而生成的一个长数据的短的表示,称为数字摘要或数字指纹 数字指纹可以使用密码散列函数得到,又称为单向散列函数、密码杂凑函数 使用秘密密钥产生的数据的短表示,称为消息认证码 (MAC) 或标签 MAC 可以通过加密的校验和算法得到 带密钥的散列消息认证码(HMAC) 是密码散列函数和密码校验和算法的组合 《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年.
《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年. 第4章 内容概要 4.1 密码散列函数 4.2 密码校验和 4.3 HMAC 4.4 密码本偏移操作模式 4.5 生日攻击 4.6 数字签名标准 4.7 双签名与电子交易 4.8 盲签名与电子现金 《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年.
《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年. 密码散列函数 散列函数以一个长的消息为输入,分成若干部分后,进行“打碎重组”,产生一个新的短字符串。 不是每一个散列函数都适合用于生成数字指纹,例如: M = M1 M2 … Mk 其中 Mi 是一个 16-bit 的二进制串 定义下面的散列函数H⊕: H⊕(M) = M1 ⊕ M2 ⊕ … ⊕ Mk 对于上面的散列函数,很容易举出一些例子,使得不同的明文消息具有相同的杂凑值 S1: “He likes you but I hate you” 和S2: “He hates you but I like you” 把上面消息的英文字符用8-bit ASCII码进行编码,并去掉单词之间的空格,则得到 H⊕(S1) = H⊕(S2) 《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年.
《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年. 设计要求 设H 表示一个散列函数, Γ 是输入长度的上界, γ 是比Γ小得多的固定的输出长度 单向性: 计算一个给定消息串的数字指纹是容易的, 但是找到一个数字指纹对应的消息是困难的 即:对于任意的二进制串x ,其中 |x| ≤ Γ, 计算 H(x)是容易的, 但是对于一个给定的散列值h ( |h| = γ), 很难找到它对应的原像x使得h = H(x) 《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年.
《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年. 设计要求 计算唯一性: 找到两个不同的消息具有相同的数字指纹是困难的 无碰撞性– 给定一个消息 x,满足|x| ≤ Γ, 找到另一个不同的消息y (|y| ≤ Γ)与x具有相同的散列值,即H(x) = H(y),是困难的 强无碰撞性– 很难找到两个消息x和y具有相同的散列,即H(x) = H(y) 注意:不满足强无碰撞性,并不意味着不满足无碰撞性 《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年.
《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年. 密码散列函数的探索 寻求密码散列函数 尚未知是否存在单向的、计算唯一的密码散列函数 几个曾经被认为是安全的密码散列函数, 已被证明不能满足强无碰撞性 另一个常用的散列函数SHA-1算法,已经被证明其安全性低于预期 本节介绍密码散列函数SHA-512、WHIRLPOOL和SHA-3标准 《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年.
《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年. 基本结构 SHA-1、SHA-2 系列散列函数,以及 WHIRLPOOL都具有相同的基本结构 这种结构的核心是压缩函数 F 不同的散列函数使用不同的压缩函数 反复调用不带密钥的压缩函数的CBC模式 M 是明文消息块, IV 是初始化向量, F 是压缩函数, “+” 是模加运算 《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年.
《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年. SHA-512 初始化过程 (I) SHA-512 使用512-bit 初始化向量IV 设 r1, r2, r3, r4, r5, r6, r7, and r8 be 是8个64-bit 寄存器 开始时,这8个寄存器被设为8个素数的平方根的小数部分: √2, √3, √5, √7, √11, √13, √17, √19, 《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年.
《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年. SHA-512 初始化过程 (II) 设 Γ = 2128 – 1,γ = 512 M 是二进制消息,其中|M| = L ≤ Γ 设L 是128-bit 二进制串, 标记为 b128(L) 将消息 M 进行填充,得到新的二进制字符串M’ : M’ = M || 10l || b128(L), l ≥ 0 其中|M’| (记为L’) 是1024的倍数,则有 L’ = L + (1 + l) + 128 = L + l + 129 L 可以表示为 于是,我们得到 : 因此,, L’ 是1024的倍数. 设 L’ = 1024N,则可以记作一系列1024-bit 的消息块: M’ = M1M2…MN 《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年.
《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年. SHA-512 压缩函数(I) 两个输入: 一个1024-bit明文消息块 Mi 一个512-bit 二进制串 Hi-1, 其中 1 ≤ i ≤ N ,Hi-1 是r1r2r3r4r5r6r7r8的当前值 W>>>n: 循环右移n 位 W<<n: 线性左移 n 位 《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年.
《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年. SHA-512 压缩函数(II) 设 K0,K1,…K79 表示SHA-512 常量, 其中每一个常量是一个64-bit二进制 串,T1 和 T2 表示 64-bit 的临时变量,r 是一个 64-bit 寄存器. 设 《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年.
《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年. SHA-512 压缩函数(III) 进行80 轮下面的运算: 然后, r1r2r3r4r5r6r7r8 中的512-bit 字符串 就是F(Mi, Hi-1)的输出 《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年.
《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年. SHA-512 算法 设 X = X1X2…Xk, Y = Y1Y2…Yk 是二进制串, 其中 Xi,Yi 是 l-bit 字符串. 设l-bit的下列运算: 消息 M的数字指纹是 H(M) = HN, 其中 《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年.
《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年. WHIRLPOOL初始化过程 在Whirlpool中, Γ = 2256 – 1 , γ = 512 消息M 是二进制串, |M| = L ≤ Γ,将L 表示为一个 256-bit 二进制串, 记为b256(L). 进行消息填充: M’ = M || 10l || b256(L), l ≥ 0 满足L’ = |M’| 是512的倍数. 则有 L’ = L + (1 + l) + 256 = L + l + 257 L 表示为 于是, 我们有: L’ 是512的倍数, 即 L’ = 512N. 记为 M’ = M1M2…MN 其中Mi 是一个512-bit 二进制串 《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年.
《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年. WHIRLPOOL 压缩函数 WHIRLPOOL的压缩函数定义为: W(X, K) 类似于AES的加密算法 输入: 512-bit 明文块X和 512-bit密钥K 输出: 512-bit输出 消息M的数字指纹 H(M) = HN, 是通过使用CBC模式得到的: 《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年.
W(X, K)的构造 由密钥K共生成11个 512-bit 的轮密钥, 记为K0, K1, …, K10. K0 = K Ki (1≤i ≤10) 是由Ki-1 经过4个基本运算得到的 字节替代 (sub) 列移位 (shc) 行混淆 (mir) 常数相加 (arc) Ki = arc(mir(shc(sub(Ki-1))), RCi) 其中RCi 是512-bit 常数,由WHIRLOOL S盒产生: 其中 i = 1, 2, …, 10 《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年.
《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年. 字节替代(sub) WHIRLPOOL的字节替代使用 16ⅹ16 S盒 设A = (ai,j) 8ⅹ8 是8ⅹ8 的字节状态矩阵 设x = x0x1x2x3x4x5x6x7 是8-bit字符串, 其中每一个xi∈{0,1} 设π1(x) 是二进制串x0x1x2x3 的十进制数值,π2(x) 是二进制串x4x5x6x7 的十进制值 定义替代函数S 为 其中su,v 是WHIRLPOOL’s S盒中第u行、第 v列上的元素,0≤ u, v≤7 WHIRLPOOL的字节替代操作定义为: sub(A) = (S(ai,j)) 8ⅹ8 列移位(shc) 类似于AES的行移位操作. 《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年.
《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年. 行混淆(mir) 类似于AES中的列混淆 使用下面的常数矩阵: 行混淆定义为: mir(A) = A•△ 常数加(arc) 和轮密钥加(ark) 类似于AES的轮密钥加 arc(A, RCi) = A ⊕ RCi ark(A, Ki) = A ⊕ Ki 《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年.
《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年. 加密结构 当轮密钥生成后,算法W将64字节字符串X表示成状态矩阵的形式 A = (au,v) 8×8, 其中 au,v = x8u+v , u,v = 0, 1, … ,7 然后,将A和K0进行轮密钥加运算,生成新的状态矩阵A0 进行10轮的运算, 每一轮计算(1≤i ≤10) 最后,W(X, K) = A10 《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年.
《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年. W的流程图 《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年.
《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年. SHA-3 标准 2007年开始征集,2012年Keccak系列算法当选为SHA-3标准. 采用了“海绵函数”的新型设计架构: 《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年.
《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年. 海绵函数(1) 《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年.
《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年. 海绵函数(2) 吸收: 每一个分组与当前的状态矩阵进行异或操作,然后对b比特输入进行固定长度的置换操作fb. 令Ai是当前状态矩阵 Ai对应的二进制串. 初始时, A0 = 0b. 令Mi是当前的r比特长的分组,pfxr(X)表示X的r比特前缀,sfxc(X)表示X的c比特后缀. 则 Ai=fb((pfxr(Mi⊕ Ai-1) || sfxc(Ai-1)) 压缩: 对AN的初始输入循环多次调用置换函数fb进行运算,直到 输出的二进制串至少与预期的杂凑值一样长. 《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年.
《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年. 散列值 《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年.
《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年. KECCAK系列的置换操作fb (2) 2. 字中的比特分散:执行下面的24步: (1)令 i=1, j=0. (2)从t=0到23执行以下运算: 3. 字的分散:对于所有的0 ≤ i, j ≤4, 计算: 4. 非线性映射:对于所有的0 ≤ i, j ≤4, 计算: 5. 对称性破坏:在第l轮中, 计算: 《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年.
《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年. 第4章 内容概要 4.1 密码散列函数 4.2 密码校验和 4.3 HMAC 4.4 密码本偏移操作模式 4.5 生日攻击 4.6 数字签名标准 4.7 双签名与电子交易 4.8 盲签名与电子现金 《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年.
《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年. 密码校验和 校验和通常用于检测网络通信中的传输错误 但是,这些校验和不能用于数据认证或数字指纹,因为很容易找到不同的消息具有相同的校验和 我们可以用对称密码算法生成密码校验和,用于数据认证 密码校验和又称为消息认证码 (MAC) 《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年.
《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年. 异或密码校验和 设 E 表示AES-128 加密算法,K 是AES-128 秘密密钥 这种方法是不安全的,容易受到中间人攻击. 例如, 假设Alice和Bob 共享一个AES-128 密钥K. 如果 Alice 发送M, EK(H⊕(M))) 给 来对消息M 进行认证,Malice 监听了这个密文, 那么Malice 能够用EK(H⊕(M)) 假冒Alice的身份 . 《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年.
《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年. 中间人攻击 设 M’ = Y1Y2…Yl 是任意消息, 其中Yi 是128-bit 二进制串. Malice 发送给Bob: Bob 先计算 然后,解密 , 得到 这样Bob 认为消息 M’’ 来自于Alice,但实际上不是. 《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年.
《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年. 密码校验和的设计要求 设 MACK(M) 为 M的消息认证码,其中K是秘密密钥,我们需要MACK(M) 满足下列要求: 正向有效性: 计算MACK(M) 是容易的. 反向难解性: 从MACK(M)计算出M是困难的. 计算唯一性: 从(M, MACK(M) )找到 M’≠M 使得MACK(M’) = MACK(M)是困难的. 均匀分布: 设 k 是消息认证码的长度,M是随机选取的数据. 设M’ (M’≠M) 是随机选取或由M变换而来的,则MACK(M’) = MACK(M)的概率是 2-k . 《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年.
《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年. 密码校验和的构造 尚没有已知的算法能满足这四条准则 构造密码校验和的一般性方法: 加密算法和单向散列函数 这种方法满足实际应用的需要 《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年.
《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年. 数据认证算法 1985年, NIST制定了一种数据认证码标准,称为DAC, 是基于 DES算法的CBC模式 设M = M1M2…MK, 其中Mi 是64-bit 二进制串,K 是 DES 密钥,E 是DES 密码算法. 令 则 DAC = Ck. 当 DES 的安全性受到威胁后,DAC 被新的消息认证码方案HMAC替代 《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年.
《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年. 第4章 内容概要 4.1 密码散列函数 4.2 密码校验和 4.3 HMAC 4.4 密码本偏移操作模式 4.5 生日攻击 4.6 数字签名标准 4.7 双签名与电子交易 4.8 盲签名与电子现金 《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年.
《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年. 密钥散列消息认证码-HMAC HMAC 是一种算法方案 使用散列函数和对称密码算法生成认证码 HMAC的设计要求 1. 任何散列函数可以直接嵌入使用 2. HMAC中的密码散列函数应满足单向性、计算唯一性等基本性质 3. 秘密密钥的使用是简单易行的 4. HMAC 认证码的安全性强度与所采用的散列函数的安全性强度密切相关 《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年.
《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年. HMAC参数 H: 嵌入散列函数 (例如SHA-512 和 WHIRLPOOL) IV: 散列函数的初始化向量 M: 输入的要认证的消息 L: 消息块的个数 l: 散列函数的输出长度 b: 一个消息块的比特数, 其是8的倍数,且满足b≥l K: 秘密密钥,其长度≤b K’: K’ = 0b-|K| K,是K的前缀填充,有|K’| = b ipad: ipad = (00110110)b/8 opad: opad = (01011100) b/8 K’0: K’0 = K’0 ⊕ ipad. K’1: K’1 = K’1 ⊕ opad. 《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年.
《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年. HMAC算法 HMAC算法描述如下: 《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年.
《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年. 第4章 内容概要 4.1 密码散列函数 4.2 密码校验和 4.3 HMAC 4.4 密码本偏移操作模式 4.5 生日攻击 4.6 数字签名标准 4.7 双签名与电子交易 4.8 盲签名与电子现金 《计算机网络安全的理论与实践(第3版)》. 【美】王杰、【美】Z. Kissel 、孔凡玉, 高等教育出版社, 2017年.