姚期智百万富翁问题:隐私安全

今天听莫老师讲了姚期智提出的百万富翁问题,简直神了,这也太厉害了吧,我觉得是和零知识证明一样的神奇,或许这就是数学的魅力吧。在不泄露个人隐私的情况下,可以比较两个富翁的财富大小。着实太强了,佩服,其实归根结底都是数学,学好数学的重要性不言而喻,加油吧好好学习数学!

下面个我将从初学者的角度,来写明白《百万富翁》的问题,同时下方也有姚期智老师的论文下载地址,需要的自取。

1、百万富翁问题:

首先我们假设有两个富翁 A 和 B ,且 A 和 B 的财产都在同一水平,设 A 有 i 亿,B 有 j 亿,0<i,j<\=10 0<i,j<=100<i,j<\=10。那么下面开始财富大PK。

首先初始化:A 有一个公钥PKAPK_APKA​和私钥SKASK_ASKA​,加密函数 E 和解密函数 D ,B 知道 A 的公钥但不知道私钥。

1)B 要做到事情

1.首先 B 拿出一个随机大数 x ,然后用 A 的公钥加密得到k\=E(x,PKA)k=E(x, PK_A)k\=E(x,PKA​),相应的 x\=D(k,SKA)x=D(k, SK_A)x\=D(k,SKA​) 2.计算出m\=k−j+1m=k-j+1m\=k−j+1,将 m 发送给 A。

2)A 要做的事情:

1.计算出k−j+1,k−j+2,⋯ ,k−j+j,⋯ ,k−j+10k-j+1,k-j+2,\cdots,k-j+j,\cdots,k-j+10k−j+1,k−j+2,⋯,k−j+j,⋯,k−j+10,因为m\=k−j+1m=k-j+1m\=k−j+1,所以等价于计算m,m+1,⋯ ,k,⋯ ,m+9m,m+1,\cdots,k,\cdots,m+9m,m+1,⋯,k,⋯,m+9,你会发现k−jk-jk−j从加 1 到加 10 中必然会加上 j 的,因为j⊆(0,10]j\subseteq(0, 10]j⊆(0,10]。 2.然后使用 A 的私钥,y\=D(m,SKA)y=D(m, SK_A)y\=D(m,SKA​),解密出m,m+1,⋯ ,k,⋯ ,m+9m,m+1,\cdots,k,\cdots,m+9m,m+1,⋯,k,⋯,m+9的值分别为y1,y2,⋯ ,yj,⋯ ,y10y_1, y_2,\cdots,y_j,\cdots,y_{10}y1​,y2​,⋯,yj​,⋯,y10​。 3.对yny_nyn​进行求模运算,zn\=ynmod pz_n=y_n\mod\ pzn​\=yn​mod p,其中 p 是 A 随机生成的一个素数,得出集合 {zn}\=z1,z2,⋯ ,zi,⋯ ,zj,⋯ ,z10\{z_n\}=z_1, z_2,\cdots,z_i,\cdots,z_j,\cdots,z_{10}{zn​}\=z1​,z2​,⋯,zi​,⋯,zj​,⋯,z10​,如果这个集合中至少有两个是不一样的,则进行下一步,反之则重新生成素数p,重复第三步。 4.之后,保持z1,⋯ ,ziz_1,\cdots,z_iz1​,⋯,zi​不变,zi+1,⋯ ,z10z_{i+1},\cdots,z_{10}zi+1​,⋯,z10​都加1,就变成z1,z2,⋯ ,zi,zi+1+1,⋯ ,z9+1,z10+1z_1,z_2,\cdots,z_i,z_{i+1}+1,\cdots,z_9+1,z_{10}+1z1​,z2​,⋯,zi​,zi+1​+1,⋯,z9​+1,z10​+1,然后 A 将该集合和素数 p 发送给 B 。

3)最后的结果:

1.如果 xmodp\=zjx\mod p=z_jxmodp\=zj​,说明zj⊆{z1,⋯ ,zi}z_j\subseteq\{z_1,\cdots,z_i\}zj​⊆{z1​,⋯,zi​},推出j<\=ij<=ij<\=i。 2.如果xmodp\=zjx\mod p=z_jxmodp\=zj​,则说明zj⊆{zi+1+1,⋯ ,z10+1}z_j\subseteq\{z_{i+1}+1,\cdots,z_{10}+1\}zj​⊆{zi+1​+1,⋯,z10​+1},推出j>ij>ij>i。 3.最后由 B 告诉 A ,到底谁才是最有钱的。

证明完毕,但是我还是有点疑问就是,这个(3).1,j<\=ij<=ij<\=i的情况下,还是判断不出来谁最有钱呀?

2、小例子

首先生成 10 个箱子,序号从1,2,3,⋯ ,101,2,3,\cdots,101,2,3,⋯,10,A 有 i 亿,B 有 j 亿,0<i,j<\=10 0<i,j<=100<i,j<\=10。

  • 然后 B 首先将找到第 j 个箱子

  • 设置1,2,⋯ ,j1, 2,\cdots,j1,2,⋯,j号箱子设置为0,j+1,j+2,⋯ ,10j+1, j+2,\cdots,10j+1,j+2,⋯,10号箱子设置为1。

  • 然后轮到 A 找到第 i 箱子,如果箱子的值为0,则j≥ij\geq ij≥i,反之为1,则j≤ij \leq ij≤i。

总结:

姚期智老师在1986年就发表了这个论文,当时互联网处于发展阶段,隐私问题也就没多少人重视,姚老师很有前瞻性,不亏是首位获得图灵奖的华人。但是如今开始重视隐私问题了,滴滴就是前车之鉴,国家也很重视信息安全的建设,所以好好学习吧,哈哈😄

网络安全入门学习路线

其实入门网络安全要学的东西不算多,也就是网络基础+操作系统+中间件+数据库,四个流程下来就差不多了。

1.网络安全法和了解电脑基础

其中包括操作系统Windows基础和Linux基础,标记语言HTML基础和代码JS基础,以及网络基础、数据库基础和虚拟机使用等...

别被这些看上去很多的东西给吓到了,其实都是很简单的基础知识,同学们看完基本上都能掌握。计算机专业的同学都应该接触了解过,这部分可以直接略过。没学过的同学也不要慌,可以去B站搜索相关视频,你搜关键词网络安全工程师会出现很多相关的视频教程,我粗略的看了一下,排名第一的视频就讲的很详细。 当然你也可以看下面这个视频教程仅展示部分截图 学到http和https抓包后能读懂它在说什么就行。

2.网络基础和编程语言

3.入手Web安全

web是对外开放的,自然成了的重点关照对象,有事没事就来入侵一波,你说不管能行吗! 想学好Web安全,咱首先得先弄清web是怎么搭建的,知道它的构造才能精准打击。所以web前端和web后端的知识多少要了解点,然后再学点python,起码得看懂部分代码吧。

最后网站开发知识多少也要了解点,不过别紧张,只是学习基础知识。

等你用几周的时间学完这些,基本上算是具备了入门合格渗透工程师的资格,记得上述的重点要重点关注哦! 再就是,要正式进入web安全领域,得学会web渗透,OWASP TOP 10等常见Web漏洞原理与利用方式需要掌握,像SQL注入/XSS跨站脚本攻击/Webshell木马编写/命令执行等。

这个过程并不枯燥,一边打怪刷级一边成长岂不美哉,每个攻击手段都能让你玩得不亦乐乎,而且总有更猥琐的方法等着你去实践。

学完web渗透还不算完,还得掌握相关系统层面漏洞,像ms17-010永恒之蓝等各种微软ms漏洞,所以要学习后渗透。可能到这里大家已经不知所云了,不过不要紧,等你学会了web渗透再来看会发现很简单。

其实学会了这几步,你就正式从新手小白晋升为入门学员了,真的不算难,你上你也行。

4.安全体系

不过我们这个水平也就算个渗透测试工程师,也就只能做个基础的安全服务,而这个领域还有很多业务,像攻防演练、等保测评、风险评估等,我们的能力根本不够看。

所以想要成为一名合格的网络工程师,想要拿到安全公司的offer,还得再掌握更多的网络安全知识,能力再更上一层楼才行。即便以后进入企业,也需要学习很多新知识,不充实自己的技能就会被淘汰。

从时代发展的角度看,网络安全的知识是学不完的,而且以后要学的会更多,同学们要摆正心态,既然选择入门网络安全,就不能仅仅只是入门程度而已,能力越强机会才越多。

尾言

因为入门学习阶段知识点比较杂,所以我讲得比较笼统,最后联合CSDN整理了一套【282G】网络安全从入门到精通资料包,需要的小伙伴可以点击链接领取哦!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值