Files
thejinchao.github.io/assets/mental_poker.html-DFUSr5Lb.js
T

2 lines
9.9 KiB
JavaScript

import{_ as c,c as a,b as m,d as s,o as x}from"./app-BVb9so0E.js";const j={};function i(e,l){return x(),a("div",null,l[0]||(l[0]=[m("h1",{id:"智能扑克协议",tabindex:"-1"},[m("a",{class:"header-anchor",href:"#智能扑克协议"},[m("span",null,"智能扑克协议")])],-1),m("hr",null,null,-1),m("h2",{id:"_1-sra协议",tabindex:"-1"},[m("a",{class:"header-anchor",href:"#_1-sra协议"},[m("span",null,"1. SRA协议")])],-1),m("p",null,"假设Alice和Bob要玩一局扑克牌游戏,开局的时候他们都要一副牌(52张)中各抽取5张,那么过程就是这样:",-1),m("ol",null,[m("li",null,[s("Alice负责洗牌,她首先生成一个长度为52的数组,数组的每个元素表示一张牌,然后用她的加密算法"),m("mjx-container",{class:"MathJax",jax:"CHTML",style:{position:"relative"}},[m("mjx-math",{class:"MJX-TEX","aria-hidden":"true"},[m("mjx-msub",null,[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D438 TEX-I"})]),m("mjx-script",{style:{"vertical-align":"-0.153em","margin-left":"-0.026em"}},[m("mjx-mi",{class:"mjx-i",size:"s"},[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("msub",null,[m("mi",null,"E"),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-msub",null,[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D438 TEX-I"})]),m("mjx-script",{style:{"vertical-align":"-0.153em","margin-left":"-0.026em"}},[m("mjx-mi",{class:"mjx-i",size:"s"},[m("mjx-c",{class:"mjx-c1D434 TEX-I"})])])]),m("mjx-mo",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c28"})]),m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D440 TEX-I"})]),m("mjx-mo",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c29"})])]),m("mjx-assistive-mml",{unselectable:"on",display:"inline"},[m("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[m("msub",null,[m("mi",null,"E"),m("mi",null,"A")]),m("mo",{stretchy:"false"},"("),m("mi",null,"M"),m("mo",{stretchy:"false"},")")])])]),s("发送给下Bob")]),m("li",null,[s("Bob收到这些牌之后并不认识,因为上面都有Alice的锁,所以他只能随机挑出5张牌,用自己的加密算法之后生成"),m("mjx-container",{class:"MathJax",jax:"CHTML",style:{position:"relative"}},[m("mjx-math",{class:"MJX-TEX","aria-hidden":"true"},[m("mjx-msub",null,[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D438 TEX-I"})]),m("mjx-script",{style:{"vertical-align":"-0.15em","margin-left":"-0.026em"}},[m("mjx-mi",{class:"mjx-i",size:"s"},[m("mjx-c",{class:"mjx-c1D435 TEX-I"})])])]),m("mjx-mo",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c28"})]),m("mjx-msub",null,[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D438 TEX-I"})]),m("mjx-script",{style:{"vertical-align":"-0.153em","margin-left":"-0.026em"}},[m("mjx-mi",{class:"mjx-i",size:"s"},[m("mjx-c",{class:"mjx-c1D434 TEX-I"})])])]),m("mjx-mo",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c28"})]),m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D440 TEX-I"})]),m("mjx-mo",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c29"})]),m("mjx-mo",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c29"})]),m("mjx-mo",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c29"})])]),m("mjx-assistive-mml",{unselectable:"on",display:"inline"},[m("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[m("msub",null,[m("mi",null,"E"),m("mi",null,"B")]),m("mo",{stretchy:"false"},"("),m("msub",null,[m("mi",null,"E"),m("mi",null,"A")]),m("mo",{stretchy:"false"},"("),m("mi",null,"M"),m("mo",{stretchy:"false"},")"),m("mo",{stretchy:"false"},")"),m("mo",{stretchy:"false"},")")])])]),s("送给Alice")]),m("li",null,[s("Alice收到这5张牌之后用自己的解密函数解密,生成"),m("mjx-container",{class:"MathJax",jax:"CHTML",style:{position:"relative"}},[m("mjx-math",{class:"MJX-TEX","aria-hidden":"true"},[m("mjx-msub",null,[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D437 TEX-I"})]),m("mjx-script",{style:{"vertical-align":"-0.153em"}},[m("mjx-mi",{class:"mjx-i",size:"s"},[m("mjx-c",{class:"mjx-c1D434 TEX-I"})])])]),m("mjx-mo",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c28"})]),m("mjx-msub",null,[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D438 TEX-I"})]),m("mjx-script",{style:{"vertical-align":"-0.15em","margin-left":"-0.026em"}},[m("mjx-mi",{class:"mjx-i",size:"s"},[m("mjx-c",{class:"mjx-c1D435 TEX-I"})])])]),m("mjx-mo",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c28"})]),m("mjx-msub",null,[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D438 TEX-I"})]),m("mjx-script",{style:{"vertical-align":"-0.153em","margin-left":"-0.026em"}},[m("mjx-mi",{class:"mjx-i",size:"s"},[m("mjx-c",{class:"mjx-c1D434 TEX-I"})])])]),m("mjx-mo",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c28"})]),m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D440 TEX-I"})]),m("mjx-mo",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c29"})]),m("mjx-mo",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c29"})]),m("mjx-mo",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c29"})]),m("mjx-mo",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c29"})]),m("mjx-mo",{class:"mjx-n",space:"4"},[m("mjx-c",{class:"mjx-c3D"})]),m("mjx-msub",{space:"4"},[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D438 TEX-I"})]),m("mjx-script",{style:{"vertical-align":"-0.15em","margin-left":"-0.026em"}},[m("mjx-mi",{class:"mjx-i",size:"s"},[m("mjx-c",{class:"mjx-c1D435 TEX-I"})])])]),m("mjx-mo",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c28"})]),m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D440 TEX-I"})]),m("mjx-mo",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c29"})])]),m("mjx-assistive-mml",{unselectable:"on",display:"inline"},[m("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[m("msub",null,[m("mi",null,"D"),m("mi",null,"A")]),m("mo",{stretchy:"false"},"("),m("msub",null,[m("mi",null,"E"),m("mi",null,"B")]),m("mo",{stretchy:"false"},"("),m("msub",null,[m("mi",null,"E"),m("mi",null,"A")]),m("mo",{stretchy:"false"},"("),m("mi",null,"M"),m("mo",{stretchy:"false"},")"),m("mo",{stretchy:"false"},")"),m("mo",{stretchy:"false"},")"),m("mo",{stretchy:"false"},")"),m("mo",null,"="),m("msub",null,[m("mi",null,"E"),m("mi",null,"B")]),m("mo",{stretchy:"false"},"("),m("mi",null,"M"),m("mo",{stretchy:"false"},")")])])]),s("送还给Bob")]),m("li",null,[s("Bob收到后进行解密,得到"),m("mjx-container",{class:"MathJax",jax:"CHTML",style:{position:"relative"}},[m("mjx-math",{class:"MJX-TEX","aria-hidden":"true"},[m("mjx-msub",null,[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D437 TEX-I"})]),m("mjx-script",{style:{"vertical-align":"-0.15em"}},[m("mjx-mi",{class:"mjx-i",size:"s"},[m("mjx-c",{class:"mjx-c1D435 TEX-I"})])])]),m("mjx-mo",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c28"})]),m("mjx-msub",null,[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D438 TEX-I"})]),m("mjx-script",{style:{"vertical-align":"-0.15em","margin-left":"-0.026em"}},[m("mjx-mi",{class:"mjx-i",size:"s"},[m("mjx-c",{class:"mjx-c1D435 TEX-I"})])])]),m("mjx-mo",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c28"})]),m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D440 TEX-I"})]),m("mjx-mo",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c29"})]),m("mjx-mo",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c29"})]),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-c1D440 TEX-I"})])]),m("mjx-assistive-mml",{unselectable:"on",display:"inline"},[m("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[m("msub",null,[m("mi",null,"D"),m("mi",null,"B")]),m("mo",{stretchy:"false"},"("),m("msub",null,[m("mi",null,"E"),m("mi",null,"B")]),m("mo",{stretchy:"false"},"("),m("mi",null,"M"),m("mo",{stretchy:"false"},")"),m("mo",{stretchy:"false"},")"),m("mo",null,"="),m("mi",null,"M")])])]),s("作为自己的牌")]),m("li",null,[s("最后Bob从剩下的47张牌中随机挑出5张送给Alice,Alice直接解密得到"),m("mjx-container",{class:"MathJax",jax:"CHTML",style:{position:"relative"}},[m("mjx-math",{class:"MJX-TEX","aria-hidden":"true"},[m("mjx-msub",null,[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D437 TEX-I"})]),m("mjx-script",{style:{"vertical-align":"-0.153em"}},[m("mjx-mi",{class:"mjx-i",size:"s"},[m("mjx-c",{class:"mjx-c1D434 TEX-I"})])])]),m("mjx-mo",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c28"})]),m("mjx-msub",null,[m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D438 TEX-I"})]),m("mjx-script",{style:{"vertical-align":"-0.153em","margin-left":"-0.026em"}},[m("mjx-mi",{class:"mjx-i",size:"s"},[m("mjx-c",{class:"mjx-c1D434 TEX-I"})])])]),m("mjx-mo",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c28"})]),m("mjx-mi",{class:"mjx-i"},[m("mjx-c",{class:"mjx-c1D440 TEX-I"})]),m("mjx-mo",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c29"})]),m("mjx-mo",{class:"mjx-n"},[m("mjx-c",{class:"mjx-c29"})]),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-c1D440 TEX-I"})])]),m("mjx-assistive-mml",{unselectable:"on",display:"inline"},[m("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[m("msub",null,[m("mi",null,"D"),m("mi",null,"A")]),m("mo",{stretchy:"false"},"("),m("msub",null,[m("mi",null,"E"),m("mi",null,"A")]),m("mo",{stretchy:"false"},"("),m("mi",null,"M"),m("mo",{stretchy:"false"},")"),m("mo",{stretchy:"false"},")"),m("mo",null,"="),m("mi",null,"M")])])]),s("作为她的牌")]),m("li",null,"发牌结束后双方交换密钥以验证此过程没有作弊")],-1)]))}const n=c(j,[["render",i],["__file","mental_poker.html.vue"]]),r=JSON.parse('{"path":"/note/cryptography/mental_poker.html","title":"智能扑克协议","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"1. SRA协议","slug":"_1-sra协议","link":"#_1-sra协议","children":[]}],"git":{"updatedTime":1740235322000,"contributors":[{"name":"thejinchao","username":"thejinchao","email":"thejinchao@gmail.com","commits":1,"url":"https://github.com/thejinchao"}]},"filePathRelative":"note/cryptography/mental_poker.md"}');export{n as comp,r as data};