14 lines
51 KiB
JavaScript
14 lines
51 KiB
JavaScript
import{_ as e,c as i,a as l,b as m,d as s,o as n}from"./app-DDhCkyt5.js";const a="/images/2015/05/dh_01.png",p="/images/2015/05/dh_02.png",o="/images/2015/05/dh_03.png",r="/images/2015/05/dh_01_add_02.png",x="/images/2015/05/dh_04.png",t="/images/2015/05/dh_05.png",u="/images/2015/05/dh_01_add_03.png",h="/images/2015/05/dh_07.png",d="/images/2015/05/dh_05_add_02.png",g="/images/2015/05/dh_04_add_03.png",j="/images/2015/05/dh_08.png",D={};function y(T,c){return n(),i("div",null,c[0]||(c[0]=[l('<h1 id="一个简单的dh密钥协商算法的实现" tabindex="-1"><a class="header-anchor" href="#一个简单的dh密钥协商算法的实现"><span>一个简单的DH密钥协商算法的实现</span></a></h1><p>密码的管理可以说是加密体系中最为性命攸关的问题,在计算机发明之前,加密方法只能使用简单的移位、查表等简单的方法,这种级别的加密算法,基本上都无法逃脱被破解的命运,比如二战中德国发明的“英格玛”可以说是前计算机时代人类所发明的最为复杂的加密方法了,但以图灵为首的盟军科学家们,仍然可以用粗暴的暴力破解法硬生生从密文中破解出原文出来。<br> 进入计算机时代后,加密算法的复杂度有了质的飞跃,相对应的破解难度也不断加大,到了如今,像AES这样变态的加密算法,已经比英格玛不知复杂了多少个数量级,在没有密码的情况下,想直接从密文中破解出明文,即使图灵重生也全无可能了。于是,密钥本身的管理变成了加密环节中最脆弱的环节,“如何安全的把密码告诉别人”成了一个难题,比如,如果你需要发给同事一封包含加密附件的邮件,一般都会把密码放在另外一封邮件中发送,或者用其他方式告诉他,尽管这样做也并不安全,但总比那种傻乎乎的把密码和加密附件直接放在一起强多了。<br> 1976年,美国的两位数学家<a href="http://en.wikipedia.org/wiki/Whitfield_Diffie" target="_blank" rel="noopener noreferrer">Whitfield Diffie</a>和<a href="http://en.wikipedia.org/wiki/Martin_Hellman" target="_blank" rel="noopener noreferrer">Martin Hellman</a>率先发表了一种解决该密钥传输的方法,因此这种方法被大家称为<a href="http://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange" target="_blank" rel="noopener noreferrer">Diffie–Hellman key exchange</a>算法,这种算法提出这么一个做法:“在加密通讯之前双方各自生成密码的一部分,然后互换后合成起来,作为最终的密码”。这就是密钥协商,维基百科上使用了一个很有趣的比喻,就是颜料的混合:<br> 设想这样一个场景,Alice(A)和Bob(B),他们想在不见面的情况下秘密约定出一种颜色,但他们互相沟通的信息都会被公开,应该怎么办呢?</p><table class="gridtable" style="width:100%;text-align:center;border-collapse:collapse;"><tbody><tr><th rowspan="2" width="20%"></th><th colspan="2" style="text-align:center;">Alice</th><th rowspan="2" width="15%"></th><th colspan="2" style="text-align:center;">Bob</th></tr><tr><th style="text-align:center;">私密信息</th><th style="text-align:center;">公开信息</th><th style="text-align:center;">公开信息</th><th style="text-align:center;">私密信息</th></tr><tr><td style="vertical-align:middle;">A和B首先约定好公开的一种颜色,比如黄色</td><td></td><td><img src="'+a+'"></td><td></td><td><img src="'+a+'"></td><td></td></tr><tr><td style="vertical-align:middle;">A,B各自挑选出一种私密的颜色,比如橙色和兰色</td><td><img src="'+p+'"></td><td></td><td></td><td></td><td><img src="'+o+'"></td></tr><tr><td style="vertical-align:middle;">A,B各自将两种颜色混合起来</td><td><img src="'+r+'"></td><td><img src="'+x+'"></td><td></td><td><img src="'+t+'"></td><td><img src="'+u+'"></td></tr><tr><td></td><td></td><td></td><td><img src="'+h+'"></td><td></td><td></td></tr><tr><td style="vertical-align:middle;">双方交换混合后的颜色</td><td></td><td><img src="'+t+'"></td><td></td><td><img src="'+x+'"></td><td></td></tr><tr><td style="vertical-align:middle;">A,B各自将自己的私密颜色再次混入得到的颜色中</td><td><img src="'+d+'"></td><td></td><td></td><td></td><td><img src="'+g+'"></td></tr><tr><td style="vertical-align:middle;">现在A,B得到了一种相同的颜色,这种颜色是由一份黄色、一份橙色、一份兰色混合而来,但外界无法得知</td><td><img src="'+j+'"></td><td></td><td></td><td></td><td><img src="'+j+'"></td></tr></tbody></table>',3),m("p",null,[s("秘密在于,颜色混合是一种“不可逆”的操作,当双方交换颜色时,尽管我们知道他们交换的颜色都是由一份黄色和另一份其他颜色混合得到的,但我们还是无法或者很难得到他们的私密颜色。而DH秘钥交换的原理非常相似,也是利用了数学上的一个“不可逆”的运算,就是离散对数(Discrete logarithm)"),m("br"),s(" 乘方得逆运算称为对数运算,比如已知"),m("mjx-container",{class:"MathJax",jax:"CHTML",style:{position:"relative"}},[m("mjx-math",{class:"MJX-TEX","aria-hidden":"true"},[m("mjx-msup",null,[m("mjx-mn",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c37"})]),m("mjx-script",{style:{"vertical-align":"0.363em"}},[m("mjx-mi",{class:"mjx-i",size:"s"},[m("mjx-c",{class:"mjx-c1D465 TEX-I"})])])]),m("mjx-mo",{class:"mjx-n",space:"4"},[m("mjx-c",{class:"mjx-c3D"})]),m("mjx-mn",{class:"mjx-n",space:"4"},[m("mjx-c",{class:"mjx-c34"}),m("mjx-c",{class:"mjx-c39"})])]),m("mjx-assistive-mml",{unselectable:"on",display:"inline"},[m("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[m("msup",null,[m("mn",null,"7"),m("mi",null,"x")]),m("mo",null,"="),m("mn",null,"49")])])]),s(",那么可知"),m("mjx-container",{class:"MathJax",jax:"CHTML",style:{position:"relative"}},[m("mjx-math",{class:"MJX-TEX","aria-hidden":"true"},[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D465 TEX-I"})]),m("mjx-mo",{class:"mjx-n",space:"4"},[m("mjx-c",{class:"mjx-c3D"})]),m("mjx-mi",{class:"mjx-i",space:"4"},[m("mjx-c",{class:"mjx-c1D459 TEX-I"})]),m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D45C TEX-I"})]),m("mjx-msub",null,[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D454 TEX-I"})]),m("mjx-script",{style:{"vertical-align":"-0.15em"}},[m("mjx-mn",{class:"mjx-n",size:"s"},[m("mjx-c",{class:"mjx-c37"})])])]),m("mjx-mn",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c34"}),m("mjx-c",{class:"mjx-c39"})]),m("mjx-mo",{class:"mjx-n",space:"4"},[m("mjx-c",{class:"mjx-c3D"})]),m("mjx-mn",{class:"mjx-n",space:"4"},[m("mjx-c",{class:"mjx-c32"})])]),m("mjx-assistive-mml",{unselectable:"on",display:"inline"},[m("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[m("mi",null,"x"),m("mo",null,"="),m("mi",null,"l"),m("mi",null,"o"),m("msub",null,[m("mi",null,"g"),m("mn",null,"7")]),m("mn",null,"49"),m("mo",null,"="),m("mn",null,"2")])])]),s(", 对数运算非常容易,即使在数字很大的时候是,但如果是下面的情况")],-1),m("mjx-container",{class:"MathJax",jax:"CHTML",display:"true",style:{position:"relative"}},[m("mjx-math",{display:"true",style:{"margin-left":"0","margin-right":"0"},class:"MJX-TEX","aria-hidden":"true"},[m("mjx-msup",null,[m("mjx-mn",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c37"})]),m("mjx-script",{style:{"vertical-align":"0.413em"}},[m("mjx-mi",{class:"mjx-i",size:"s"},[m("mjx-c",{class:"mjx-c1D465 TEX-I"})])])]),m("mjx-mo",{class:"mjx-n",space:"4",rspace:"4"},[m("mjx-c",{class:"mjx-c6D"}),m("mjx-c",{class:"mjx-c6F"}),m("mjx-c",{class:"mjx-c64"})]),m("mjx-mn",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c31"}),m("mjx-c",{class:"mjx-c33"})]),m("mjx-mo",{class:"mjx-n",space:"4"},[m("mjx-c",{class:"mjx-c3D"})]),m("mjx-mn",{class:"mjx-n",space:"4"},[m("mjx-c",{class:"mjx-c38"})])]),m("mjx-assistive-mml",{unselectable:"on",display:"block"},[m("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[m("msup",null,[m("mn",null,"7"),m("mi",null,"x")]),m("mo",{lspace:"thickmathspace",rspace:"thickmathspace"},"mod"),m("mn",null,"13"),m("mo",null,"="),m("mn",null,"8")])])],-1),m("p",null,"求X的过程称为“离散对数”,就不那么容易了,在数字很大时几乎是一个不可能的运算,而DH秘钥交换就是利用了这种离散对数计算非常困难的特性来设计的。公式里的mod是取模运算,取模运算有几条基本的定律如下",-1),m("mjx-container",{class:"MathJax",jax:"CHTML",display:"true",style:{position:"relative"}},[m("mjx-math",{display:"true",style:{"margin-left":"0","margin-right":"0"},class:"MJX-TEX","aria-hidden":"true"},[m("mjx-mtable",{style:{"min-width":"20.033em"}},[m("mjx-table",null,[m("mjx-itable",null,[m("mjx-mtr",null,[m("mjx-mtd",{style:{"text-align":"right","padding-right":"0","padding-bottom":"0.15em"}},[m("mjx-mo",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c28"})]),m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D44E TEX-I"})]),m("mjx-mo",{class:"mjx-n",space:"3"},[m("mjx-c",{class:"mjx-c2B"})]),m("mjx-mi",{class:"mjx-i",space:"3"},[m("mjx-c",{class:"mjx-c1D44F TEX-I"})]),m("mjx-mo",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c29"})]),m("mjx-mo",{class:"mjx-n",space:"4",rspace:"4"},[m("mjx-c",{class:"mjx-c6D"}),m("mjx-c",{class:"mjx-c6F"}),m("mjx-c",{class:"mjx-c64"})]),m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D443 TEX-I"})]),m("mjx-tstrut")]),m("mjx-mtd",{style:{"text-align":"left","padding-left":"0","padding-bottom":"0.15em"}},[m("mjx-mi",{class:"mjx-n"}),m("mjx-mo",{class:"mjx-n",space:"4"},[m("mjx-c",{class:"mjx-c3D"})]),m("mjx-mo",{class:"mjx-n",space:"4"},[m("mjx-c",{class:"mjx-c28"})]),m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D44E TEX-I"})]),m("mjx-mo",{class:"mjx-n",space:"4",rspace:"4"},[m("mjx-c",{class:"mjx-c6D"}),m("mjx-c",{class:"mjx-c6F"}),m("mjx-c",{class:"mjx-c64"})]),m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D443 TEX-I"})]),m("mjx-mo",{class:"mjx-n",space:"3"},[m("mjx-c",{class:"mjx-c2B"})]),m("mjx-mi",{class:"mjx-i",space:"3"},[m("mjx-c",{class:"mjx-c1D44F TEX-I"})]),m("mjx-mo",{class:"mjx-n",space:"4",rspace:"4"},[m("mjx-c",{class:"mjx-c6D"}),m("mjx-c",{class:"mjx-c6F"}),m("mjx-c",{class:"mjx-c64"})]),m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D443 TEX-I"})]),m("mjx-mo",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c29"})]),m("mjx-mo",{class:"mjx-n",space:"4",rspace:"4"},[m("mjx-c",{class:"mjx-c6D"}),m("mjx-c",{class:"mjx-c6F"}),m("mjx-c",{class:"mjx-c64"})]),m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D443 TEX-I"})]),m("mjx-tstrut")])]),m("mjx-mtr",null,[m("mjx-mtd",{style:{"text-align":"right","padding-right":"0","padding-top":"0.15em","padding-bottom":"0.15em"}},[m("mjx-mo",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c28"})]),m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D44E TEX-I"})]),m("mjx-mo",{class:"mjx-n",space:"3"},[m("mjx-c",{class:"mjx-c2217"})]),m("mjx-mi",{class:"mjx-i",space:"3"},[m("mjx-c",{class:"mjx-c1D44F TEX-I"})]),m("mjx-mo",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c29"})]),m("mjx-mo",{class:"mjx-n",space:"4",rspace:"4"},[m("mjx-c",{class:"mjx-c6D"}),m("mjx-c",{class:"mjx-c6F"}),m("mjx-c",{class:"mjx-c64"})]),m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D443 TEX-I"})]),m("mjx-tstrut")]),m("mjx-mtd",{style:{"text-align":"left","padding-left":"0","padding-top":"0.15em","padding-bottom":"0.15em"}},[m("mjx-mi",{class:"mjx-n"}),m("mjx-mo",{class:"mjx-n",space:"4"},[m("mjx-c",{class:"mjx-c3D"})]),m("mjx-mo",{class:"mjx-n",space:"4"},[m("mjx-c",{class:"mjx-c28"})]),m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D44E TEX-I"})]),m("mjx-mo",{class:"mjx-n",space:"4",rspace:"4"},[m("mjx-c",{class:"mjx-c6D"}),m("mjx-c",{class:"mjx-c6F"}),m("mjx-c",{class:"mjx-c64"})]),m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D443 TEX-I"})]),m("mjx-mo",{class:"mjx-n",space:"3"},[m("mjx-c",{class:"mjx-c2217"})]),m("mjx-mi",{class:"mjx-i",space:"3"},[m("mjx-c",{class:"mjx-c1D44F TEX-I"})]),m("mjx-mo",{class:"mjx-n",space:"4",rspace:"4"},[m("mjx-c",{class:"mjx-c6D"}),m("mjx-c",{class:"mjx-c6F"}),m("mjx-c",{class:"mjx-c64"})]),m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D443 TEX-I"})]),m("mjx-mo",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c29"})]),m("mjx-mo",{class:"mjx-n",space:"4",rspace:"4"},[m("mjx-c",{class:"mjx-c6D"}),m("mjx-c",{class:"mjx-c6F"}),m("mjx-c",{class:"mjx-c64"})]),m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D443 TEX-I"})]),m("mjx-tstrut")])]),m("mjx-mtr",null,[m("mjx-mtd",{style:{"text-align":"right","padding-right":"0","padding-top":"0.15em"}},[m("mjx-mo",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c28"})]),m("mjx-msup",null,[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D44E TEX-I"})]),m("mjx-script",{style:{"vertical-align":"0.413em"}},[m("mjx-mi",{class:"mjx-i",size:"s"},[m("mjx-c",{class:"mjx-c1D44F TEX-I"})])])]),m("mjx-mo",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c29"})]),m("mjx-mo",{class:"mjx-n",space:"4",rspace:"4"},[m("mjx-c",{class:"mjx-c6D"}),m("mjx-c",{class:"mjx-c6F"}),m("mjx-c",{class:"mjx-c64"})]),m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D443 TEX-I"})]),m("mjx-tstrut")]),m("mjx-mtd",{style:{"text-align":"left","padding-left":"0","padding-top":"0.15em"}},[m("mjx-mi",{class:"mjx-n"}),m("mjx-mo",{class:"mjx-n",space:"4"},[m("mjx-c",{class:"mjx-c3D"})]),m("mjx-mo",{class:"mjx-n",space:"4"},[m("mjx-c",{class:"mjx-c28"})]),m("mjx-mo",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c28"})]),m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D44E TEX-I"})]),m("mjx-mo",{class:"mjx-n",space:"4",rspace:"4"},[m("mjx-c",{class:"mjx-c6D"}),m("mjx-c",{class:"mjx-c6F"}),m("mjx-c",{class:"mjx-c64"})]),m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D443 TEX-I"})]),m("mjx-msup",null,[m("mjx-mo",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c29"})]),m("mjx-script",{style:{"vertical-align":"0.413em"}},[m("mjx-mi",{class:"mjx-i",size:"s"},[m("mjx-c",{class:"mjx-c1D44F TEX-I"})])])]),m("mjx-mo",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c29"})]),m("mjx-mo",{class:"mjx-n",space:"4",rspace:"4"},[m("mjx-c",{class:"mjx-c6D"}),m("mjx-c",{class:"mjx-c6F"}),m("mjx-c",{class:"mjx-c64"})]),m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D443 TEX-I"})]),m("mjx-tstrut")])])])])])]),m("mjx-assistive-mml",{unselectable:"on",display:"block"},[m("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[m("mtable",{displaystyle:"true",columnalign:"right left",columnspacing:"0em",rowspacing:"3pt"},[m("mtr",null,[m("mtd",null,[m("mo",{stretchy:"false"},"("),m("mi",null,"a"),m("mo",null,"+"),m("mi",null,"b"),m("mo",{stretchy:"false"},")"),m("mo",{lspace:"thickmathspace",rspace:"thickmathspace"},"mod"),m("mi",null,"P")]),m("mtd",null,[m("mi"),m("mo",null,"="),m("mo",{stretchy:"false"},"("),m("mi",null,"a"),m("mo",{lspace:"thickmathspace",rspace:"thickmathspace"},"mod"),m("mi",null,"P"),m("mo",null,"+"),m("mi",null,"b"),m("mo",{lspace:"thickmathspace",rspace:"thickmathspace"},"mod"),m("mi",null,"P"),m("mo",{stretchy:"false"},")"),m("mo",{lspace:"thickmathspace",rspace:"thickmathspace"},"mod"),m("mi",null,"P")])]),m("mtr",null,[m("mtd",null,[m("mo",{stretchy:"false"},"("),m("mi",null,"a"),m("mo",null,"∗"),m("mi",null,"b"),m("mo",{stretchy:"false"},")"),m("mo",{lspace:"thickmathspace",rspace:"thickmathspace"},"mod"),m("mi",null,"P")]),m("mtd",null,[m("mi"),m("mo",null,"="),m("mo",{stretchy:"false"},"("),m("mi",null,"a"),m("mo",{lspace:"thickmathspace",rspace:"thickmathspace"},"mod"),m("mi",null,"P"),m("mo",null,"∗"),m("mi",null,"b"),m("mo",{lspace:"thickmathspace",rspace:"thickmathspace"},"mod"),m("mi",null,"P"),m("mo",{stretchy:"false"},")"),m("mo",{lspace:"thickmathspace",rspace:"thickmathspace"},"mod"),m("mi",null,"P")])]),m("mtr",null,[m("mtd",null,[m("mo",{stretchy:"false"},"("),m("msup",null,[m("mi",null,"a"),m("mi",null,"b")]),m("mo",{stretchy:"false"},")"),m("mo",{lspace:"thickmathspace",rspace:"thickmathspace"},"mod"),m("mi",null,"P")]),m("mtd",null,[m("mi"),m("mo",null,"="),m("mo",{stretchy:"false"},"("),m("mo",{stretchy:"false"},"("),m("mi",null,"a"),m("mo",{lspace:"thickmathspace",rspace:"thickmathspace"},"mod"),m("mi",null,"P"),m("msup",null,[m("mo",{stretchy:"false"},")"),m("mi",null,"b")]),m("mo",{stretchy:"false"},")"),m("mo",{lspace:"thickmathspace",rspace:"thickmathspace"},"mod"),m("mi",null,"P")])])])])])],-1),m("p",null,"根据上面的公式,可以推导出一个非常重要的公式",-1),m("mjx-container",{class:"MathJax",jax:"CHTML",display:"true",style:{position:"relative"}},[m("mjx-math",{display:"true",style:{"margin-left":"0","margin-right":"0"},class:"MJX-TEX","aria-hidden":"true"},[m("mjx-mo",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c28"})]),m("mjx-msup",null,[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D43A TEX-I"})]),m("mjx-script",{style:{"vertical-align":"0.413em"}},[m("mjx-TeXAtom",{size:"s",texclass:"ORD"},[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D44E TEX-I"})]),m("mjx-mo",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c2217"})]),m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D44F TEX-I"})])])])]),m("mjx-mo",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c29"})]),m("mjx-mo",{class:"mjx-n",space:"4",rspace:"4"},[m("mjx-c",{class:"mjx-c6D"}),m("mjx-c",{class:"mjx-c6F"}),m("mjx-c",{class:"mjx-c64"})]),m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D443 TEX-I"})]),m("mjx-mo",{class:"mjx-n",space:"4"},[m("mjx-c",{class:"mjx-c3D"})]),m("mjx-mo",{class:"mjx-n",space:"4"},[m("mjx-c",{class:"mjx-c28"})]),m("mjx-msup",null,[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D43A TEX-I"})]),m("mjx-script",{style:{"vertical-align":"0.413em"}},[m("mjx-mi",{class:"mjx-i",size:"s"},[m("mjx-c",{class:"mjx-c1D44E TEX-I"})])])]),m("mjx-mo",{class:"mjx-n",space:"4",rspace:"4"},[m("mjx-c",{class:"mjx-c6D"}),m("mjx-c",{class:"mjx-c6F"}),m("mjx-c",{class:"mjx-c64"})]),m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D443 TEX-I"})]),m("mjx-msup",null,[m("mjx-mo",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c29"})]),m("mjx-script",{style:{"vertical-align":"0.413em"}},[m("mjx-mi",{class:"mjx-i",size:"s"},[m("mjx-c",{class:"mjx-c1D44F TEX-I"})])])]),m("mjx-mo",{class:"mjx-n",space:"4",rspace:"4"},[m("mjx-c",{class:"mjx-c6D"}),m("mjx-c",{class:"mjx-c6F"}),m("mjx-c",{class:"mjx-c64"})]),m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D443 TEX-I"})]),m("mjx-mo",{class:"mjx-n",space:"4"},[m("mjx-c",{class:"mjx-c3D"})]),m("mjx-mo",{class:"mjx-n",space:"4"},[m("mjx-c",{class:"mjx-c28"})]),m("mjx-msup",null,[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D43A TEX-I"})]),m("mjx-script",{style:{"vertical-align":"0.413em"}},[m("mjx-mi",{class:"mjx-i",size:"s"},[m("mjx-c",{class:"mjx-c1D44F TEX-I"})])])]),m("mjx-mo",{class:"mjx-n",space:"4",rspace:"4"},[m("mjx-c",{class:"mjx-c6D"}),m("mjx-c",{class:"mjx-c6F"}),m("mjx-c",{class:"mjx-c64"})]),m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D443 TEX-I"})]),m("mjx-msup",null,[m("mjx-mo",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c29"})]),m("mjx-script",{style:{"vertical-align":"0.413em"}},[m("mjx-mi",{class:"mjx-i",size:"s"},[m("mjx-c",{class:"mjx-c1D44E TEX-I"})])])]),m("mjx-mo",{class:"mjx-n",space:"4",rspace:"4"},[m("mjx-c",{class:"mjx-c6D"}),m("mjx-c",{class:"mjx-c6F"}),m("mjx-c",{class:"mjx-c64"})]),m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D443 TEX-I"})])]),m("mjx-assistive-mml",{unselectable:"on",display:"block"},[m("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[m("mo",{stretchy:"false"},"("),m("msup",null,[m("mi",null,"G"),m("mrow",{"data-mjx-texclass":"ORD"},[m("mi",null,"a"),m("mo",null,"∗"),m("mi",null,"b")])]),m("mo",{stretchy:"false"},")"),m("mo",{lspace:"thickmathspace",rspace:"thickmathspace"},"mod"),m("mi",null,"P"),m("mo",null,"="),m("mo",{stretchy:"false"},"("),m("msup",null,[m("mi",null,"G"),m("mi",null,"a")]),m("mo",{lspace:"thickmathspace",rspace:"thickmathspace"},"mod"),m("mi",null,"P"),m("msup",null,[m("mo",{stretchy:"false"},")"),m("mi",null,"b")]),m("mo",{lspace:"thickmathspace",rspace:"thickmathspace"},"mod"),m("mi",null,"P"),m("mo",null,"="),m("mo",{stretchy:"false"},"("),m("msup",null,[m("mi",null,"G"),m("mi",null,"b")]),m("mo",{lspace:"thickmathspace",rspace:"thickmathspace"},"mod"),m("mi",null,"P"),m("msup",null,[m("mo",{stretchy:"false"},")"),m("mi",null,"a")]),m("mo",{lspace:"thickmathspace",rspace:"thickmathspace"},"mod"),m("mi",null,"P")])])],-1),m("p",null,"根据这个公式,我们可以向上面交换颜色那样设计出一个秘密交换数字的流程出来",-1),m("table",{class:"gridtable",style:{width:"100%","text-align":"center","border-collapse":"collapse"}},[m("tbody",null,[m("tr",null,[m("th",{rowspan:"2",width:"40%"}),m("th",{colspan:"2",style:{"text-align":"center"}},"Alice"),m("th",{rowspan:"2"}),m("th",{colspan:"2",style:{"text-align":"center"}},"Bob")]),m("tr",null,[m("th",{style:{"text-align":"center"}},"私密信息"),m("th",{style:{"text-align":"center"}},"公开信息"),m("th",{style:{"text-align":"center"}},"公开信息"),m("th",{style:{"text-align":"center"}},"私密信息")]),m("tr",null,[m("td",{style:{"vertical-align":"middle"}},"A和B首先约定两个公开的质数p和g"),m("td"),m("td",null,[m("p",null,[m("mjx-container",{class:"MathJax",jax:"CHTML",style:{position:"relative"}},[m("mjx-math",{class:"MJX-TEX","aria-hidden":"true"},[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D45D TEX-I"})]),m("mjx-mo",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c2C"})]),m("mjx-mi",{class:"mjx-i",space:"2"},[m("mjx-c",{class:"mjx-c1D454 TEX-I"})])]),m("mjx-assistive-mml",{unselectable:"on",display:"inline"},[m("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[m("mi",null,"p"),m("mo",null,","),m("mi",null,"g")])])])])]),m("td"),m("td",null,[m("p",null,[m("mjx-container",{class:"MathJax",jax:"CHTML",style:{position:"relative"}},[m("mjx-math",{class:"MJX-TEX","aria-hidden":"true"},[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D45D TEX-I"})]),m("mjx-mo",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c2C"})]),m("mjx-mi",{class:"mjx-i",space:"2"},[m("mjx-c",{class:"mjx-c1D454 TEX-I"})])]),m("mjx-assistive-mml",{unselectable:"on",display:"inline"},[m("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[m("mi",null,"p"),m("mo",null,","),m("mi",null,"g")])])])])]),m("td")]),m("tr",null,[m("td",{style:{"vertical-align":"middle"}},"A和B各自随机产生两个数a,b,作为自己的私钥"),m("td",null,[m("p",null,[m("mjx-container",{class:"MathJax",jax:"CHTML",style:{position:"relative"}},[m("mjx-math",{class:"MJX-TEX","aria-hidden":"true"},[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D44E TEX-I"})])]),m("mjx-assistive-mml",{unselectable:"on",display:"inline"},[m("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[m("mi",null,"a")])])])])]),m("td"),m("td"),m("td"),m("td",null,[m("p",null,[m("mjx-container",{class:"MathJax",jax:"CHTML",style:{position:"relative"}},[m("mjx-math",{class:"MJX-TEX","aria-hidden":"true"},[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D44F TEX-I"})])]),m("mjx-assistive-mml",{unselectable:"on",display:"inline"},[m("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[m("mi",null,"b")])])])])])]),m("tr",null,[m("td",{style:{"vertical-align":"middle"}},"各自计算出自己的公钥A,B"),m("td"),m("td",null,[m("p",null,[m("mjx-container",{class:"MathJax",jax:"CHTML",style:{position:"relative"}},[m("mjx-math",{class:"MJX-TEX","aria-hidden":"true"},[m("mjx-mstyle",{size:"sm"},[m("mjx-TeXAtom",{texclass:"ORD"},[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D434 TEX-I"})]),m("mjx-mo",{class:"mjx-n",space:"4"},[m("mjx-c",{class:"mjx-c3D"})]),m("mjx-msup",{space:"4"},[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D454 TEX-I"})]),m("mjx-script",{style:{"vertical-align":"0.363em"}},[m("mjx-mi",{class:"mjx-i",size:"s"},[m("mjx-c",{class:"mjx-c1D44E TEX-I"})])])]),m("mjx-mo",{class:"mjx-n",space:"4",rspace:"4"},[m("mjx-c",{class:"mjx-c6D"}),m("mjx-c",{class:"mjx-c6F"}),m("mjx-c",{class:"mjx-c64"})]),m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D45D TEX-I"})])])])]),m("mjx-assistive-mml",{unselectable:"on",display:"inline"},[m("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[m("mstyle",{mathsize:"0.85em"},[m("mrow",{"data-mjx-texclass":"ORD"},[m("mi",null,"A"),m("mo",null,"="),m("msup",null,[m("mi",null,"g"),m("mi",null,"a")]),m("mo",{lspace:"thickmathspace",rspace:"thickmathspace"},"mod"),m("mi",null,"p")])])])])])])]),m("td"),m("td",null,[m("p",null,[m("mjx-container",{class:"MathJax",jax:"CHTML",style:{position:"relative"}},[m("mjx-math",{class:"MJX-TEX","aria-hidden":"true"},[m("mjx-mstyle",{size:"sm"},[m("mjx-TeXAtom",{texclass:"ORD"},[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D435 TEX-I"})]),m("mjx-mo",{class:"mjx-n",space:"4"},[m("mjx-c",{class:"mjx-c3D"})]),m("mjx-msup",{space:"4"},[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D454 TEX-I"})]),m("mjx-script",{style:{"vertical-align":"0.363em"}},[m("mjx-mi",{class:"mjx-i",size:"s"},[m("mjx-c",{class:"mjx-c1D44F TEX-I"})])])]),m("mjx-mo",{class:"mjx-n",space:"4",rspace:"4"},[m("mjx-c",{class:"mjx-c6D"}),m("mjx-c",{class:"mjx-c6F"}),m("mjx-c",{class:"mjx-c64"})]),m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D45D TEX-I"})])])])]),m("mjx-assistive-mml",{unselectable:"on",display:"inline"},[m("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[m("mstyle",{mathsize:"0.85em"},[m("mrow",{"data-mjx-texclass":"ORD"},[m("mi",null,"B"),m("mo",null,"="),m("msup",null,[m("mi",null,"g"),m("mi",null,"b")]),m("mo",{lspace:"thickmathspace",rspace:"thickmathspace"},"mod"),m("mi",null,"p")])])])])])])]),m("td")]),m("tr",null,[m("td",{style:{"vertical-align":"middle"}},"交换公钥A,B"),m("td"),m("td",null,[m("p",null,[m("mjx-container",{class:"MathJax",jax:"CHTML",style:{position:"relative"}},[m("mjx-math",{class:"MJX-TEX","aria-hidden":"true"},[m("mjx-mstyle",{size:"sm"},[m("mjx-TeXAtom",{texclass:"ORD"},[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D435 TEX-I"})]),m("mjx-mo",{class:"mjx-n",space:"4"},[m("mjx-c",{class:"mjx-c3D"})]),m("mjx-msup",{space:"4"},[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D454 TEX-I"})]),m("mjx-script",{style:{"vertical-align":"0.363em"}},[m("mjx-mi",{class:"mjx-i",size:"s"},[m("mjx-c",{class:"mjx-c1D44F TEX-I"})])])]),m("mjx-mo",{class:"mjx-n",space:"4",rspace:"4"},[m("mjx-c",{class:"mjx-c6D"}),m("mjx-c",{class:"mjx-c6F"}),m("mjx-c",{class:"mjx-c64"})]),m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D45D TEX-I"})])])])]),m("mjx-assistive-mml",{unselectable:"on",display:"inline"},[m("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[m("mstyle",{mathsize:"0.85em"},[m("mrow",{"data-mjx-texclass":"ORD"},[m("mi",null,"B"),m("mo",null,"="),m("msup",null,[m("mi",null,"g"),m("mi",null,"b")]),m("mo",{lspace:"thickmathspace",rspace:"thickmathspace"},"mod"),m("mi",null,"p")])])])])])])]),m("td"),m("td",null,[m("p",null,[m("mjx-container",{class:"MathJax",jax:"CHTML",style:{position:"relative"}},[m("mjx-math",{class:"MJX-TEX","aria-hidden":"true"},[m("mjx-mstyle",{size:"sm"},[m("mjx-TeXAtom",{texclass:"ORD"},[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D434 TEX-I"})]),m("mjx-mo",{class:"mjx-n",space:"4"},[m("mjx-c",{class:"mjx-c3D"})]),m("mjx-msup",{space:"4"},[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D454 TEX-I"})]),m("mjx-script",{style:{"vertical-align":"0.363em"}},[m("mjx-mi",{class:"mjx-i",size:"s"},[m("mjx-c",{class:"mjx-c1D44E TEX-I"})])])]),m("mjx-mo",{class:"mjx-n",space:"4",rspace:"4"},[m("mjx-c",{class:"mjx-c6D"}),m("mjx-c",{class:"mjx-c6F"}),m("mjx-c",{class:"mjx-c64"})]),m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D45D TEX-I"})])])])]),m("mjx-assistive-mml",{unselectable:"on",display:"inline"},[m("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[m("mstyle",{mathsize:"0.85em"},[m("mrow",{"data-mjx-texclass":"ORD"},[m("mi",null,"A"),m("mo",null,"="),m("msup",null,[m("mi",null,"g"),m("mi",null,"a")]),m("mo",{lspace:"thickmathspace",rspace:"thickmathspace"},"mod"),m("mi",null,"p")])])])])])])]),m("td")]),m("tr",null,[m("td",{style:{"vertical-align":"middle"}},"计算出加密用的密钥S"),m("td",null,[m("mjx-container",{class:"MathJax",jax:"CHTML",display:"true",style:{position:"relative"}},[m("mjx-math",{display:"true",style:{"margin-left":"0","margin-right":"0"},class:"MJX-TEX","aria-hidden":"true"},[m("mjx-mstyle",{size:"sm"},[m("mjx-TeXAtom",{texclass:"ORD"},[m("mjx-mtable",{style:{"min-width":"10.397em"}},[m("mjx-table",null,[m("mjx-itable",null,[m("mjx-mtr",null,[m("mjx-mtd",{style:{"text-align":"right","padding-right":"0","padding-bottom":"0.15em"}},[m("mjx-msub",null,[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D446 TEX-I"})]),m("mjx-script",{style:{"vertical-align":"-0.15em","margin-left":"-0.032em"}},[m("mjx-mi",{class:"mjx-i",size:"s"},[m("mjx-c",{class:"mjx-c1D44E TEX-I"})])])]),m("mjx-tstrut")]),m("mjx-mtd",{style:{"text-align":"left","padding-left":"0","padding-bottom":"0.15em"}},[m("mjx-mi",{class:"mjx-n"}),m("mjx-mo",{class:"mjx-n",space:"4"},[m("mjx-c",{class:"mjx-c3D"})]),m("mjx-msup",{space:"4"},[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D435 TEX-I"})]),m("mjx-script",{style:{"vertical-align":"0.413em"}},[m("mjx-mi",{class:"mjx-i",size:"s"},[m("mjx-c",{class:"mjx-c1D44E TEX-I"})])])]),m("mjx-mo",{class:"mjx-n",space:"4",rspace:"4"},[m("mjx-c",{class:"mjx-c6D"}),m("mjx-c",{class:"mjx-c6F"}),m("mjx-c",{class:"mjx-c64"})]),m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D45D TEX-I"})]),m("mjx-tstrut")])]),m("mjx-mtr",null,[m("mjx-mtd",{style:{"text-align":"right","padding-right":"0","padding-top":"0.15em","padding-bottom":"0.15em"}},[m("mjx-tstrut")]),m("mjx-mtd",{style:{"text-align":"left","padding-left":"0","padding-top":"0.15em","padding-bottom":"0.15em"}},[m("mjx-mi",{class:"mjx-n"}),m("mjx-mo",{class:"mjx-n",space:"4"},[m("mjx-c",{class:"mjx-c3D"})]),m("mjx-mo",{class:"mjx-n",space:"4"},[m("mjx-c",{class:"mjx-c28"})]),m("mjx-msup",null,[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D454 TEX-I"})]),m("mjx-script",{style:{"vertical-align":"0.413em"}},[m("mjx-mi",{class:"mjx-i",size:"s"},[m("mjx-c",{class:"mjx-c1D44F TEX-I"})])])]),m("mjx-mo",{class:"mjx-n",space:"4",rspace:"4"},[m("mjx-c",{class:"mjx-c6D"}),m("mjx-c",{class:"mjx-c6F"}),m("mjx-c",{class:"mjx-c64"})]),m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D45D TEX-I"})]),m("mjx-msup",null,[m("mjx-mo",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c29"})]),m("mjx-script",{style:{"vertical-align":"0.413em"}},[m("mjx-mi",{class:"mjx-i",size:"s"},[m("mjx-c",{class:"mjx-c1D44E TEX-I"})])])]),m("mjx-mo",{class:"mjx-n",space:"4",rspace:"4"},[m("mjx-c",{class:"mjx-c6D"}),m("mjx-c",{class:"mjx-c6F"}),m("mjx-c",{class:"mjx-c64"})]),m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D45D TEX-I"})]),m("mjx-tstrut")])]),m("mjx-mtr",null,[m("mjx-mtd",{style:{"text-align":"right","padding-right":"0","padding-top":"0.15em"}},[m("mjx-tstrut")]),m("mjx-mtd",{style:{"text-align":"left","padding-left":"0","padding-top":"0.15em"}},[m("mjx-mi",{class:"mjx-n"}),m("mjx-mo",{class:"mjx-n",space:"4"},[m("mjx-c",{class:"mjx-c3D"})]),m("mjx-msup",{space:"4"},[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D454 TEX-I"})]),m("mjx-script",{style:{"vertical-align":"0.413em"}},[m("mjx-TeXAtom",{size:"s",texclass:"ORD"},[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D44E TEX-I"})]),m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D44F TEX-I"})])])])]),m("mjx-mo",{class:"mjx-n",space:"4",rspace:"4"},[m("mjx-c",{class:"mjx-c6D"}),m("mjx-c",{class:"mjx-c6F"}),m("mjx-c",{class:"mjx-c64"})]),m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D45D TEX-I"})]),m("mjx-tstrut")])])])])])])])]),m("mjx-assistive-mml",{unselectable:"on",display:"block"},[m("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[m("mstyle",{mathsize:"0.85em"},[m("mrow",{"data-mjx-texclass":"ORD"},[m("mtable",{displaystyle:"true",columnalign:"right left",columnspacing:"0em",rowspacing:"3pt"},[m("mtr",null,[m("mtd",null,[m("msub",null,[m("mi",null,"S"),m("mi",null,"a")])]),m("mtd",null,[m("mi"),m("mo",null,"="),m("msup",null,[m("mi",null,"B"),m("mi",null,"a")]),m("mo",{lspace:"thickmathspace",rspace:"thickmathspace"},"mod"),m("mi",null,"p")])]),m("mtr",null,[m("mtd"),m("mtd",null,[m("mi"),m("mo",null,"="),m("mo",{stretchy:"false"},"("),m("msup",null,[m("mi",null,"g"),m("mi",null,"b")]),m("mo",{lspace:"thickmathspace",rspace:"thickmathspace"},"mod"),m("mi",null,"p"),m("msup",null,[m("mo",{stretchy:"false"},")"),m("mi",null,"a")]),m("mo",{lspace:"thickmathspace",rspace:"thickmathspace"},"mod"),m("mi",null,"p")])]),m("mtr",null,[m("mtd"),m("mtd",null,[m("mi"),m("mo",null,"="),m("msup",null,[m("mi",null,"g"),m("mrow",{"data-mjx-texclass":"ORD"},[m("mi",null,"a"),m("mi",null,"b")])]),m("mo",{lspace:"thickmathspace",rspace:"thickmathspace"},"mod"),m("mi",null,"p")])])])])])])])])]),m("td"),m("td"),m("td"),m("td",null,[m("mjx-container",{class:"MathJax",jax:"CHTML",display:"true",style:{position:"relative"}},[m("mjx-math",{display:"true",style:{"margin-left":"0","margin-right":"0"},class:"MJX-TEX","aria-hidden":"true"},[m("mjx-mstyle",{size:"sm"},[m("mjx-TeXAtom",{texclass:"ORD"},[m("mjx-mtable",{style:{"min-width":"10.326em"}},[m("mjx-table",null,[m("mjx-itable",null,[m("mjx-mtr",null,[m("mjx-mtd",{style:{"text-align":"right","padding-right":"0","padding-bottom":"0.15em"}},[m("mjx-msub",null,[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D446 TEX-I"})]),m("mjx-script",{style:{"vertical-align":"-0.15em","margin-left":"-0.032em"}},[m("mjx-mi",{class:"mjx-i",size:"s"},[m("mjx-c",{class:"mjx-c1D44F TEX-I"})])])]),m("mjx-tstrut")]),m("mjx-mtd",{style:{"text-align":"left","padding-left":"0","padding-bottom":"0.15em"}},[m("mjx-mi",{class:"mjx-n"}),m("mjx-mo",{class:"mjx-n",space:"4"},[m("mjx-c",{class:"mjx-c3D"})]),m("mjx-msup",{space:"4"},[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D434 TEX-I"})]),m("mjx-script",{style:{"vertical-align":"0.413em"}},[m("mjx-mi",{class:"mjx-i",size:"s"},[m("mjx-c",{class:"mjx-c1D44F TEX-I"})])])]),m("mjx-mo",{class:"mjx-n",space:"4",rspace:"4"},[m("mjx-c",{class:"mjx-c6D"}),m("mjx-c",{class:"mjx-c6F"}),m("mjx-c",{class:"mjx-c64"})]),m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D45D TEX-I"})]),m("mjx-tstrut")])]),m("mjx-mtr",null,[m("mjx-mtd",{style:{"text-align":"right","padding-right":"0","padding-top":"0.15em","padding-bottom":"0.15em"}},[m("mjx-tstrut")]),m("mjx-mtd",{style:{"text-align":"left","padding-left":"0","padding-top":"0.15em","padding-bottom":"0.15em"}},[m("mjx-mi",{class:"mjx-n"}),m("mjx-mo",{class:"mjx-n",space:"4"},[m("mjx-c",{class:"mjx-c3D"})]),m("mjx-mo",{class:"mjx-n",space:"4"},[m("mjx-c",{class:"mjx-c28"})]),m("mjx-msup",null,[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D454 TEX-I"})]),m("mjx-script",{style:{"vertical-align":"0.413em"}},[m("mjx-mi",{class:"mjx-i",size:"s"},[m("mjx-c",{class:"mjx-c1D44E TEX-I"})])])]),m("mjx-mo",{class:"mjx-n",space:"4",rspace:"4"},[m("mjx-c",{class:"mjx-c6D"}),m("mjx-c",{class:"mjx-c6F"}),m("mjx-c",{class:"mjx-c64"})]),m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D45D TEX-I"})]),m("mjx-msup",null,[m("mjx-mo",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c29"})]),m("mjx-script",{style:{"vertical-align":"0.413em"}},[m("mjx-mi",{class:"mjx-i",size:"s"},[m("mjx-c",{class:"mjx-c1D44F TEX-I"})])])]),m("mjx-mo",{class:"mjx-n",space:"4",rspace:"4"},[m("mjx-c",{class:"mjx-c6D"}),m("mjx-c",{class:"mjx-c6F"}),m("mjx-c",{class:"mjx-c64"})]),m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D45D TEX-I"})]),m("mjx-tstrut")])]),m("mjx-mtr",null,[m("mjx-mtd",{style:{"text-align":"right","padding-right":"0","padding-top":"0.15em"}},[m("mjx-tstrut")]),m("mjx-mtd",{style:{"text-align":"left","padding-left":"0","padding-top":"0.15em"}},[m("mjx-mi",{class:"mjx-n"}),m("mjx-mo",{class:"mjx-n",space:"4"},[m("mjx-c",{class:"mjx-c3D"})]),m("mjx-msup",{space:"4"},[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D454 TEX-I"})]),m("mjx-script",{style:{"vertical-align":"0.413em"}},[m("mjx-TeXAtom",{size:"s",texclass:"ORD"},[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D44E TEX-I"})]),m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D44F TEX-I"})])])])]),m("mjx-mo",{class:"mjx-n",space:"4",rspace:"4"},[m("mjx-c",{class:"mjx-c6D"}),m("mjx-c",{class:"mjx-c6F"}),m("mjx-c",{class:"mjx-c64"})]),m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D45D TEX-I"})]),m("mjx-tstrut")])])])])])])])]),m("mjx-assistive-mml",{unselectable:"on",display:"block"},[m("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[m("mstyle",{mathsize:"0.85em"},[m("mrow",{"data-mjx-texclass":"ORD"},[m("mtable",{displaystyle:"true",columnalign:"right left",columnspacing:"0em",rowspacing:"3pt"},[m("mtr",null,[m("mtd",null,[m("msub",null,[m("mi",null,"S"),m("mi",null,"b")])]),m("mtd",null,[m("mi"),m("mo",null,"="),m("msup",null,[m("mi",null,"A"),m("mi",null,"b")]),m("mo",{lspace:"thickmathspace",rspace:"thickmathspace"},"mod"),m("mi",null,"p")])]),m("mtr",null,[m("mtd"),m("mtd",null,[m("mi"),m("mo",null,"="),m("mo",{stretchy:"false"},"("),m("msup",null,[m("mi",null,"g"),m("mi",null,"a")]),m("mo",{lspace:"thickmathspace",rspace:"thickmathspace"},"mod"),m("mi",null,"p"),m("msup",null,[m("mo",{stretchy:"false"},")"),m("mi",null,"b")]),m("mo",{lspace:"thickmathspace",rspace:"thickmathspace"},"mod"),m("mi",null,"p")])]),m("mtr",null,[m("mtd"),m("mtd",null,[m("mi"),m("mo",null,"="),m("msup",null,[m("mi",null,"g"),m("mrow",{"data-mjx-texclass":"ORD"},[m("mi",null,"a"),m("mi",null,"b")])]),m("mo",{lspace:"thickmathspace",rspace:"thickmathspace"},"mod"),m("mi",null,"p")])])])])])])])])])])])],-1),m("p",null,[s("最终两个人得到的秘密数字都是"),m("mjx-container",{class:"MathJax",jax:"CHTML",style:{position:"relative"}},[m("mjx-math",{class:"MJX-TEX","aria-hidden":"true"},[m("mjx-msup",null,[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D454 TEX-I"})]),m("mjx-script",{style:{"vertical-align":"0.363em"}},[m("mjx-TeXAtom",{size:"s",texclass:"ORD"},[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D44E TEX-I"})]),m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D44F TEX-I"})])])])]),m("mjx-mo",{class:"mjx-n",space:"4",rspace:"4"},[m("mjx-c",{class:"mjx-c6D"}),m("mjx-c",{class:"mjx-c6F"}),m("mjx-c",{class:"mjx-c64"})]),m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D45D TEX-I"})])]),m("mjx-assistive-mml",{unselectable:"on",display:"inline"},[m("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[m("msup",null,[m("mi",null,"g"),m("mrow",{"data-mjx-texclass":"ORD"},[m("mi",null,"a"),m("mi",null,"b")])]),m("mo",{lspace:"thickmathspace",rspace:"thickmathspace"},"mod"),m("mi",null,"p")])])]),s(",而窃听者仅从"),m("mjx-container",{class:"MathJax",jax:"CHTML",style:{position:"relative"}},[m("mjx-math",{class:"MJX-TEX","aria-hidden":"true"},[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D45D TEX-I"})]),m("mjx-mo",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c2C"})]),m("mjx-mi",{class:"mjx-i",space:"2"},[m("mjx-c",{class:"mjx-c1D454 TEX-I"})]),m("mjx-mo",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c2C"})]),m("mjx-mi",{class:"mjx-i",space:"2"},[m("mjx-c",{class:"mjx-c1D434 TEX-I"})]),m("mjx-mo",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c2C"})]),m("mjx-mi",{class:"mjx-i",space:"2"},[m("mjx-c",{class:"mjx-c1D435 TEX-I"})])]),m("mjx-assistive-mml",{unselectable:"on",display:"inline"},[m("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[m("mi",null,"p"),m("mo",null,","),m("mi",null,"g"),m("mo",null,","),m("mi",null,"A"),m("mo",null,","),m("mi",null,"B")])])]),s("四个公开信息,是无法得到这个秘密数字的。"),m("br"),s(" 举个例子,假如")],-1),m("mjx-container",{class:"MathJax",jax:"CHTML",display:"true",style:{position:"relative"}},[m("mjx-math",{display:"true",style:{"margin-left":"0","margin-right":"0"},class:"MJX-TEX","aria-hidden":"true"},[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D45D TEX-I"})]),m("mjx-mo",{class:"mjx-n",space:"4"},[m("mjx-c",{class:"mjx-c3D"})]),m("mjx-mn",{class:"mjx-n",space:"4"},[m("mjx-c",{class:"mjx-c32"}),m("mjx-c",{class:"mjx-c33"})]),m("mjx-mo",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c2C"})]),m("mjx-mi",{class:"mjx-i",space:"2"},[m("mjx-c",{class:"mjx-c1D454 TEX-I"})]),m("mjx-mo",{class:"mjx-n",space:"4"},[m("mjx-c",{class:"mjx-c3D"})]),m("mjx-mn",{class:"mjx-n",space:"4"},[m("mjx-c",{class:"mjx-c35"})])]),m("mjx-assistive-mml",{unselectable:"on",display:"block"},[m("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[m("mi",null,"p"),m("mo",null,"="),m("mn",null,"23"),m("mo",null,","),m("mi",null,"g"),m("mo",null,"="),m("mn",null,"5")])])],-1),m("p",null,[s("Alice选取的秘密数字"),m("mjx-container",{class:"MathJax",jax:"CHTML",style:{position:"relative"}},[m("mjx-math",{class:"MJX-TEX","aria-hidden":"true"},[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D44E TEX-I"})]),m("mjx-mo",{class:"mjx-n",space:"4"},[m("mjx-c",{class:"mjx-c3D"})]),m("mjx-mn",{class:"mjx-n",space:"4"},[m("mjx-c",{class:"mjx-c36"})])]),m("mjx-assistive-mml",{unselectable:"on",display:"inline"},[m("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[m("mi",null,"a"),m("mo",null,"="),m("mn",null,"6")])])]),s(", 那么")],-1),m("mjx-container",{class:"MathJax",jax:"CHTML",display:"true",style:{position:"relative"}},[m("mjx-math",{display:"true",style:{"margin-left":"0","margin-right":"0"},class:"MJX-TEX","aria-hidden":"true"},[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D434 TEX-I"})]),m("mjx-mo",{class:"mjx-n",space:"4"},[m("mjx-c",{class:"mjx-c3D"})]),m("mjx-msup",{space:"4"},[m("mjx-mn",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c35"})]),m("mjx-script",{style:{"vertical-align":"0.413em"}},[m("mjx-mn",{class:"mjx-n",size:"s"},[m("mjx-c",{class:"mjx-c36"})])])]),m("mjx-mo",{class:"mjx-n",space:"4",rspace:"4"},[m("mjx-c",{class:"mjx-c6D"}),m("mjx-c",{class:"mjx-c6F"}),m("mjx-c",{class:"mjx-c64"})]),m("mjx-mn",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c32"}),m("mjx-c",{class:"mjx-c33"})]),m("mjx-mo",{class:"mjx-n",space:"4"},[m("mjx-c",{class:"mjx-c3D"})]),m("mjx-mn",{class:"mjx-n",space:"4"},[m("mjx-c",{class:"mjx-c38"})])]),m("mjx-assistive-mml",{unselectable:"on",display:"block"},[m("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[m("mi",null,"A"),m("mo",null,"="),m("msup",null,[m("mn",null,"5"),m("mn",null,"6")]),m("mo",{lspace:"thickmathspace",rspace:"thickmathspace"},"mod"),m("mn",null,"23"),m("mo",null,"="),m("mn",null,"8")])])],-1),m("p",null,[s("Bob选取的秘密数字是"),m("mjx-container",{class:"MathJax",jax:"CHTML",style:{position:"relative"}},[m("mjx-math",{class:"MJX-TEX","aria-hidden":"true"},[m("mjx-mn",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c31"}),m("mjx-c",{class:"mjx-c35"})])]),m("mjx-assistive-mml",{unselectable:"on",display:"inline"},[m("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[m("mn",null,"15")])])]),s(", 那么")],-1),m("mjx-container",{class:"MathJax",jax:"CHTML",display:"true",style:{position:"relative"}},[m("mjx-math",{display:"true",style:{"margin-left":"0","margin-right":"0"},class:"MJX-TEX","aria-hidden":"true"},[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D435 TEX-I"})]),m("mjx-mo",{class:"mjx-n",space:"4"},[m("mjx-c",{class:"mjx-c3D"})]),m("mjx-msup",{space:"4"},[m("mjx-mn",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c35"})]),m("mjx-script",{style:{"vertical-align":"0.413em"}},[m("mjx-TeXAtom",{size:"s",texclass:"ORD"},[m("mjx-mn",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c31"}),m("mjx-c",{class:"mjx-c35"})])])])]),m("mjx-mo",{class:"mjx-n",space:"4",rspace:"4"},[m("mjx-c",{class:"mjx-c6D"}),m("mjx-c",{class:"mjx-c6F"}),m("mjx-c",{class:"mjx-c64"})]),m("mjx-mn",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c32"}),m("mjx-c",{class:"mjx-c33"})]),m("mjx-mo",{class:"mjx-n",space:"4"},[m("mjx-c",{class:"mjx-c3D"})]),m("mjx-mn",{class:"mjx-n",space:"4"},[m("mjx-c",{class:"mjx-c31"}),m("mjx-c",{class:"mjx-c39"})])]),m("mjx-assistive-mml",{unselectable:"on",display:"block"},[m("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[m("mi",null,"B"),m("mo",null,"="),m("msup",null,[m("mn",null,"5"),m("mrow",{"data-mjx-texclass":"ORD"},[m("mn",null,"15")])]),m("mo",{lspace:"thickmathspace",rspace:"thickmathspace"},"mod"),m("mn",null,"23"),m("mo",null,"="),m("mn",null,"19")])])],-1),m("p",null,[s("交换"),m("mjx-container",{class:"MathJax",jax:"CHTML",style:{position:"relative"}},[m("mjx-math",{class:"MJX-TEX","aria-hidden":"true"},[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D434 TEX-I"})])]),m("mjx-assistive-mml",{unselectable:"on",display:"inline"},[m("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[m("mi",null,"A")])])]),s("和"),m("mjx-container",{class:"MathJax",jax:"CHTML",style:{position:"relative"}},[m("mjx-math",{class:"MJX-TEX","aria-hidden":"true"},[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D435 TEX-I"})])]),m("mjx-assistive-mml",{unselectable:"on",display:"inline"},[m("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[m("mi",null,"B")])])]),s("后,Alice计算出的密钥")],-1),m("mjx-container",{class:"MathJax",jax:"CHTML",display:"true",style:{position:"relative"}},[m("mjx-math",{display:"true",style:{"margin-left":"0","margin-right":"0"},class:"MJX-TEX","aria-hidden":"true"},[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D446 TEX-I"})]),m("mjx-mo",{class:"mjx-n",space:"4"},[m("mjx-c",{class:"mjx-c3D"})]),m("mjx-msup",{space:"4"},[m("mjx-mn",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c31"}),m("mjx-c",{class:"mjx-c39"})]),m("mjx-script",{style:{"vertical-align":"0.413em"}},[m("mjx-mn",{class:"mjx-n",size:"s"},[m("mjx-c",{class:"mjx-c36"})])])]),m("mjx-mo",{class:"mjx-n",space:"4",rspace:"4"},[m("mjx-c",{class:"mjx-c6D"}),m("mjx-c",{class:"mjx-c6F"}),m("mjx-c",{class:"mjx-c64"})]),m("mjx-mn",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c32"}),m("mjx-c",{class:"mjx-c33"})]),m("mjx-mo",{class:"mjx-n",space:"4"},[m("mjx-c",{class:"mjx-c3D"})]),m("mjx-mn",{class:"mjx-n",space:"4"},[m("mjx-c",{class:"mjx-c32"})])]),m("mjx-assistive-mml",{unselectable:"on",display:"block"},[m("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[m("mi",null,"S"),m("mo",null,"="),m("msup",null,[m("mn",null,"19"),m("mn",null,"6")]),m("mo",{lspace:"thickmathspace",rspace:"thickmathspace"},"mod"),m("mn",null,"23"),m("mo",null,"="),m("mn",null,"2")])])],-1),m("p",null,"Bob计算出的密钥",-1),m("mjx-container",{class:"MathJax",jax:"CHTML",display:"true",style:{position:"relative"}},[m("mjx-math",{display:"true",style:{"margin-left":"0","margin-right":"0"},class:"MJX-TEX","aria-hidden":"true"},[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D446 TEX-I"})]),m("mjx-mo",{class:"mjx-n",space:"4"},[m("mjx-c",{class:"mjx-c3D"})]),m("mjx-msup",{space:"4"},[m("mjx-mn",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c38"})]),m("mjx-script",{style:{"vertical-align":"0.413em"}},[m("mjx-TeXAtom",{size:"s",texclass:"ORD"},[m("mjx-mn",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c31"}),m("mjx-c",{class:"mjx-c35"})])])])]),m("mjx-mo",{class:"mjx-n",space:"4",rspace:"4"},[m("mjx-c",{class:"mjx-c6D"}),m("mjx-c",{class:"mjx-c6F"}),m("mjx-c",{class:"mjx-c64"})]),m("mjx-mn",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c32"}),m("mjx-c",{class:"mjx-c33"})]),m("mjx-mo",{class:"mjx-n",space:"4"},[m("mjx-c",{class:"mjx-c3D"})]),m("mjx-mn",{class:"mjx-n",space:"4"},[m("mjx-c",{class:"mjx-c32"})])]),m("mjx-assistive-mml",{unselectable:"on",display:"block"},[m("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[m("mi",null,"S"),m("mo",null,"="),m("msup",null,[m("mn",null,"8"),m("mrow",{"data-mjx-texclass":"ORD"},[m("mn",null,"15")])]),m("mo",{lspace:"thickmathspace",rspace:"thickmathspace"},"mod"),m("mn",null,"23"),m("mo",null,"="),m("mn",null,"2")])])],-1),m("p",null,[s("当然,实际运算中不可能取这么小的数值,比如如果需要128bit长度的密钥,那么p值需要是128bit长度的质数,由于有模运算,所获得的密钥不会大于"),m("mjx-container",{class:"MathJax",jax:"CHTML",style:{position:"relative"}},[m("mjx-math",{class:"MJX-TEX","aria-hidden":"true"},[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D45D TEX-I"})])]),m("mjx-assistive-mml",{unselectable:"on",display:"inline"},[m("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[m("mi",null,"p")])])]),s(",所以"),m("mjx-container",{class:"MathJax",jax:"CHTML",style:{position:"relative"}},[m("mjx-math",{class:"MJX-TEX","aria-hidden":"true"},[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D45D TEX-I"})])]),m("mjx-assistive-mml",{unselectable:"on",display:"inline"},[m("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[m("mi",null,"p")])])]),s("值可以是128bit数字中最大的一个质数,"),m("mjx-container",{class:"MathJax",jax:"CHTML",style:{position:"relative"}},[m("mjx-math",{class:"MJX-TEX","aria-hidden":"true"},[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D454 TEX-I"})])]),m("mjx-assistive-mml",{unselectable:"on",display:"inline"},[m("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[m("mi",null,"g")])])]),s("可以随便设置一个小的质数即可。"),m("br"),s(" 我在"),m("a",{href:"https://github.com/thejinchao/dhexchange",target:"_blank",rel:"noopener noreferrer"},"github"),s("上写了一个DH密钥交换算法,支持128bit长度密钥运算,纯C完成,没有引用其他库,只有两个接口,用法如下")],-1),l(`<div class="language-cpp" data-highlighter="prismjs" data-ext="cpp" data-title="cpp"><pre><code><span class="line"><span class="token comment">//Alice获得随机私钥a并计算出对应的公钥A</span></span>
|
||
<span class="line">DH_KEY alice_private<span class="token punctuation">,</span> alice_public<span class="token punctuation">;</span></span>
|
||
<span class="line"><span class="token function">DH_generate_key_pair</span><span class="token punctuation">(</span>alice_public<span class="token punctuation">,</span> alice_private<span class="token punctuation">)</span><span class="token punctuation">;</span></span>
|
||
<span class="line"><span class="token comment">//Bob获得随机私钥b并计算出对应的公钥B</span></span>
|
||
<span class="line">DH_KEY bob_private<span class="token punctuation">,</span> bob_public<span class="token punctuation">;</span></span>
|
||
<span class="line"><span class="token function">DH_generate_key_pair</span><span class="token punctuation">(</span>bob_public<span class="token punctuation">,</span> bob_private<span class="token punctuation">)</span><span class="token punctuation">;</span></span>
|
||
<span class="line"><span class="token comment">//交换公钥后Alice计算出加密用密钥s</span></span>
|
||
<span class="line">DH_KEY alice_secret<span class="token punctuation">;</span></span>
|
||
<span class="line"><span class="token function">DH_generate_key_secret</span><span class="token punctuation">(</span>alice_secret<span class="token punctuation">,</span> alice_private<span class="token punctuation">,</span> bob_public<span class="token punctuation">)</span><span class="token punctuation">;</span></span>
|
||
<span class="line"><span class="token comment">//Bob计算出加密用密钥s</span></span>
|
||
<span class="line">DH_KEY bob_secret<span class="token punctuation">;</span></span>
|
||
<span class="line"><span class="token function">DH_generate_key_secret</span><span class="token punctuation">(</span>bob_secret<span class="token punctuation">,</span> bob_private<span class="token punctuation">,</span> alice_public<span class="token punctuation">)</span><span class="token punctuation">;</span></span>
|
||
<span class="line"></span></code></pre></div>`,1)]))}const M=e(D,[["render",y],["__file","DH.html.vue"]]),E=JSON.parse('{"path":"/blog/2025/02/DH.html","title":"一个简单的DH密钥协商算法的实现","lang":"zh-CN","frontmatter":{"title":"一个简单的DH密钥协商算法的实现","tags":"加密 程序 算法"},"headers":[],"git":{"updatedTime":1740225290000,"contributors":[{"name":"thejinchao","username":"thejinchao","email":"thejinchao@gmail.com","commits":1,"url":"https://github.com/thejinchao"}]},"filePathRelative":"blog/2025/02/DH.md"}');export{M as comp,E as data};
|