一、进度
(一)形式化定义
实体构成
可信第三方\(T\):负责签发证书,生成系统参数。
通信方\(A\):发起通信的一方。
通信方\(B\):参与通信方。
一)初始化阶段
1、\(T\)随机生成公钥\(Pub_T\)、私钥\(Pri_T\)。生成自签名\(CA\)证书\(Cert_T\)。
2、参与方\(A\)随机生成公钥\(Pub_A\)、私钥\(Pri_A\)。将身份信息和公钥\(Pub_A\)提交给\(T\)。
3、\(T\)根据\(A\)的身份和公钥,生成签名证书\(Cert_A\)并发送给\(A\)。
4、通信方\(B\)重复3-4步,获得自身证书\(Cert_B\)。
5、确定系统安全参数\(l_1\)和\(l_2\)。
二)密钥协商
1、\(A\)选择长度为\(l_1\)的素数\(p\),发送\((p,Sign_A(p),Cert_A)\)给\(B\)。
2、\(B\)收到后,首先使用\(CA\)证书\(Cert_T\)验证\(Cert_A\)有效性,然后使用\(A\)的公钥验证\(Verify_A(Sign_A(p))\)。若验证失败,则中止通信。若验证通过,则选择长度为\(l_2\)的随机数\(g\),选择随机串\(K_1\),计算并发送\((g,E_{Pub_A}(K_1),\)Cert_B\(,Sign_B(g))\)给\(A\)。
3、\(A\)验证\(Cert_B\)的有效性,并验证\(Verify_B(Sign_B(g))\)。若验证失败,则中止通信。若验证通过,则解密\(D_{Pri_A}(E_{Pub_A}(K_1))\)得到\(K_1\),并随机选择\(R_A \leftarrow Z_p^*\),计算并发送\(g^{R_A}(mod\:p)\)给\(B\)。
4、\(B\)随机选择\(R_B \leftarrow Z_p^*\),计算并发送\(g^{R_B}(mod\:p)\)给\(A\);\(A\)和\(B\)计算\(K=sm3(K_1,K_2=g^{R_AR_B}(mod\:p),Cert_A,Cert_B)\)。
形式化展示
密钥协商协议步骤
|
|||
---|---|---|---|
步骤1 |
$A$选择长度为$l_1$的素数$p$,发送$(p,Sign_A(p),Cert_A)$给$B$ |
||
$A$选择长度为$l_1$的素数$p$,计算$Sign_A(p)$,将$(p,Sign_A(p),Cert_A)$打包 | $B$接受包 | ||
步骤2 |
$B$收到后,首先使用$CA$证书$Cert_T$验证$Cert_A$有效性,然后使用$A$的公钥验证$Verify_A(Sign_A(p))$。若验证失败,则中止通信。若验证通过,则选择长度为$l_2$的随机数$g$,选择随机串$K_1$,计算并发送$(g,E_{Pub_A}(K_1),Cert_B,Sign_B(g))$给$A$ |
||
$A$接受包 | $B$验证$Cert_A$有效性, 计算验证$Verify_A(Sign_A(p))$。 若验证失败,则中止通信。 若验证通过,则选择长度为$l_2$的随机数$g$, 选择随机串$K_1$,计算$E_{Pub_A}(K_1)$, 计算$Sign_B(g)$, 将$(g,E_{Pub_A}(K_1),Cert_B,Sign_B(g))$打包 |
||
步骤3 |
$A$验证$Cert_B$的有效性,并验证$Verify_B(Sign_B(g))$。若验证失败,则中止通信。若验证通过,则解密$D_{Pri_A}(E_{Pub_A}(K_1))$得到$K_1$,并随机选择$R_A \leftarrow Z_p^*$,计算并发送$g^{R_A}(mod\:p)$给$B$ |
||
$A$验证$Cert_B$的有效性, 计算验证$Verify_B(Sign_B(g))$。 若验证失败,则中止通信。 若验证通过,则计算$D_{Pri_A}(E_{Pub_A}(K_1))$解密得到$K_1$,随机选择$R_A \leftarrow Z_p^*$, 计算$g^{R_A}(mod\:p)$,将$g^{R_A}(mod\:p)$打包 |
$B$接受包 | ||
步骤4 |
$B$随机选择$R_B \leftarrow Z_p^*$,计算并发送$g^{R_B}(mod\:p)$给$A$;
|
||
$A$接受包后计算$K_2=g^{R_AR_B}(mod\:p)$, 继而计算$K=sm3(K_1,K_2,Cert_A,Cert_B)$ |
$B$随机选择$R_B \leftarrow Z_p^*$,计算$g^{R_B}(mod\:p)$,将$g^{R_B}(mod\:p)$打包发送。 计算$K_2=g^{R_AR_B}(mod\:p)$,继而计算 $K=sm3(K_1,K_2,Cert_A,Cert_B)$ |
二、遇到的问题及解决
1.Markdown里的公式编辑LaTex
在博客园使用LaTeX数学公式
在博客中使用LaTeX插入数学公式
Markdown数学公式语法
[转] Markdown 中的常用 LaTex 数学公式