获取更多信息请下载APP

不插电编程课:网络信息如何加密?

来源:    发布日期:2018-05-06 16:20:13   阅读量:0

编者按:人人都会用计算机,但你真的懂计算机吗?透过清华大学终身教育实验室张飞老师的《不插电编程课》,你可以抛开对代码的恐惧,在游戏化的教学场景下学习前沿计算机科学知识。

撰文/张飞(清华大学终身学习实验室课程设计主管)

Facebook的用户隐私泄露事件,让人们认识到用户隐私在互联网时代的重要性;但互联网的本质是信息分享。这对矛盾如何解决?

通过一个“总统开会”场景,我们或许能更好地理解解决方案。场景设定如下:世界上每个有核国家的总统坐在一起,开一个重要的会议:他们想知道世界上所有核武器的总量。但是,每个国家都要保持自己的“核威慑”,每一位总统都不能让别人知道自己的国家拥有多少核武器,否则可能会引发无休止的“核竞备”。

各位总统,怎么才能既不泄露本国的核武数量,又正确地算出我们所有国家的核武总量呢?

解决方案(之一)如下:假设有一个组织者 X 和3个国家总统 A、B、C。组织者X 先把一个随机数 x 悄悄告诉 A;A 把这个数与本国的核武数量 a 相加,把结果 (x+a) 悄悄告诉 B;B 把得到的数与本国的核武数量 b 相加,再把结果 (x+a+b) 悄悄告诉 C;C把 (x+a+b+c) 悄悄给 X;最后X 把结果减去自己给出的随机数 x,即得到世界核武器数量(a+b+c)。

整个过程中,包括组织者 X,没有人知道别国的核武器数量(除非C总统问A总统x+a是多少)。

从此处,我们可以得到启发:在互联网的实际使用中,很多时候“密码”并不像我们通常理解的那样,把重要信息放在一个被保护的“铁箱子”里与世隔绝;相反,我们还要把信息拿出来共享创造价值,但同时也要保证其不被泄露和利用,这个时候我们就需要一种特殊的信息共享的方法,或者说“协议”;就像总统开会使用的方法那样。

信息加密协议 (Cryptographic Protocols) 是以密码学为基础的消息交换协议,其目的是在网络环境中提供各种安全服务。有了信息加密,我们既能保护自己的隐私信息,同时又能让信息被共享和使用。