密码学中的身份验证与换位密码
1. 身份验证与认证
身份验证和认证在密码学中至关重要,它能确保通信双方的身份真实性以及信息的完整性。我们先来看HMAC - SHA - 256的相关内容。
HMAC - SHA - 256是一种基于哈希的消息认证码,其结构如下:
sk
0. . . 0
OutPad
sk
0. . . 0
InPad
InKey
y
OutKey
z
mac
⊕
⊕
SHA - 256
SHA - 256
每个框容纳256位,相邻两个框共512位,表达式为 macsk(y) = HMAC - SHA - 256sk(y)
。
1.1 认证密钥协商
迪菲 - 赫尔曼密钥交换是非对称密码学的伟大成就之一,但存在中间人攻击的危险。为了防范这种攻击,我们采用认证密钥协商机制,这也是对称和非对称密码学共生的重要工具。
假设存在一个循环群$G = \langle g\rangle$,其阶$d = #G$为$n$位。爱丽丝的私钥和公钥分别为$a \in Z_d$和$A = g^a \in G$,鲍勃的私钥和公钥分别为$b$和$B = g^b$。所有参与者使用签名方案,例如埃尔伽马签名,并且存在一个可信权威机构TA,爱丽丝有她的证书$C_{Alice} = (ID(Alice), A, sig_{TA}(ID(Alice), A))$,其他用户也类似。
认证密钥协商的步骤如下:
1. 爱丽丝将$A$发送给鲍勃。
2. 鲍勃计算$k = A^b