其他

科学松鼠会的电影科学书

2014-06-03 科学松鼠会

科学松鼠会的又一本书上市了!


S先生,可以理解成松鼠,也可以理解成科学(Science),它负责从科学角度解答好奇宝宝们看电影时冒出的奇怪问题。如果你也爱在看电影时胡思乱想,欢迎坐过来,找出这些经典电影,和S先生一起来看第二眼。


未来属于好奇心,好奇心属于“这也许没什么用但我就是想知道”星人。


点击阅读原文,跳转至豆瓣页面了解本书详情,同时,欢迎大家关注微信号“c-reading”,回复“登机牌”,参加“带本书上飞机”赠书活动。


◤他们看完这本书以后...◢

贾樟柯(导演)

电影是我描述事物的途径,我愿意了解并接纳这个世界的任何一面,这本有意思的书,让我看到了它原本不那么显性的一面,图像、形象之外,还有数据和基本规律。在这里,科学的精准和文艺的多义居然无缝对接,它可以是电影呼啸翻涌的情怀里让人心下妥帖的技术细节,也可以直接用来构建电影本身。

韩松落(影评人)

电影汇聚了我们这个时代的一切进展,一切成果。比穿越而来的宋朝人幸运的是,我们是站在一个连贯的人类经验线上,不但知其然,而且愿意并有能力知其所以然。

这本书做的就是这件事,从电影里的星星点点入手,扯出一条线头,帮我们梳理时代进展,以及我们的经验成型过程。它之所以让人感到兴味盎然,并且读出一种热烈讨论的节奏和基调,就是因为策划者、作者和读者之间,达成了类似的默契:咱们是一群兴致勃勃的人。


史航(编剧)

《植物人怀孕问题》,《与金刚相爱的问题》,一本科普读物,信手一翻就看到了这两个问题,我登时懂得了,什么叫做业界良心。

◤先睹为快◢


香港电影《无间道》非常精彩,警察黑帮互派卧底,斗争激烈扣人心弦。片中的主角陈永仁(梁朝伟饰)是个悲剧性人物,警校没毕业就被秘密派到黑帮去做卧底,剧情进展到最高潮时,打入警局做卧底的黑帮成员刘建明(刘德华饰),将警局里陈永仁的卧底证明彻底删除,更关键的是,一直与陈永仁单线联系的黄督察(黄秋生饰)也已牺牲,陈永仁再也没法证明自己是警察了,他成了一个黑人。或许,剧情安排他死去,想来也是无奈之举--否则,即使他完成任务,如何再回到警局去上班呢?谁能帮他证明警察身份呢?

且慢。似乎命运也可以透出一些转机……比如,如果事先保管好警察卧底证明,说不定可以打动编剧,欣慰之余为他另寻安全返回警局的命运,以及清白的身份与名声。


如果我是陈永仁,我会选择"盲签字"

《无间道》| 导演:刘伟强、麦兆辉

文|奥卡姆剃刀


如果我是陈永仁,我该怎么做?

我首先想到的就是把存在警局电脑里的卧底证明加密,密码由我一人掌握,以防刘建明之流从中获取我的信息。但这还不够,因为刘建明或其他人虽然打不开,获取不了我的信息,但倘若他一时恼羞成怒,将这个加密文件删除,那我仍会陷入悲剧。

命运一定要掌握在自己手里!卧底证明由别人掌管我怎能放心,因此我决定要亲自掌管。跟黄督察谈妥任务及待遇后,我会按约定好的条款写一份卧底证明,包含以下内容:我的掩护名为"阿仁",黑帮覆灭后就回警局工作,升一级且获奖金50万元,等等,并要求黄督察签字。

但是,注意,我不能让黄督察看到这份证明--尽管我非常信任他,但还是担心他将来可能有意或无意地泄露内容。为了杜绝一切可能的风险,在证明写好后,我会把文字部分遮挡住,只留下空白处让黄督察签字。不过,黄督察未必会配合,因为他也怕我蒙他,比如我可能写一份"卧底1个月即退休,退休金2000万"这样的骗钱证明,他若签字岂不是为自己招惹了大麻烦。


如何才能让黄督察既看不到我写的证明内容,又让他确信他已经知道了我的证明内容呢?这看似一个悖论,但却是可以实现的,这就是信息安全理论中的"盲签字"。


根据盲签字理论,我会设计这样的签字流程:


第一步,我写10份掩护名不同的证明,有的叫"阿仁",有的叫"阿德"等等,其他任务待遇等内容都完全一致,用同一种加密方法进行加密,得到10份不同的密文。特别的是,这种加密方法对明文的变化很敏感,即使两份证明中仅有"仁""德"两个字不同,这两份密文的差别也很大,显得毫无关系,这种一丁点的扰动就会引起结果差别巨大的现象,叫作"雪崩效应"。


第二步,我找黄督察签字,请他随机挑出9份。我将这9份密文当场解密,当他看到解密后的明文条件与我们的约定相同,只是掩护名不同时就放心了,于是他放心地在第10份密文上签字,而我也放心他并不知道我的掩护名是什么,可以毫无牵绊地去执行卧底使命了。


第三步,将这份签字后的证明妥善保管起来,以备将来回警局时使用。掩护名具体是哪一个,取决于黄督察的手气和我的运气,运气不好便会带来些许遗憾:本来我更中意"阿德"这个名字,但黄督察恰好把"阿仁"这份留给了我。

你可能会想,加密算法有很多,我为什么非要选择具有雪崩效应的加密算法呢?


如果没有这种特性,由于10份明文的大部分内容都相同,我加密后的10份密文就会非常相似,只有个别位置不相同,黄督察当然会知道这些不同之处就是掩护名的密文,他获得了10份掩护名的密文及一一对应的9份掩护名的明文,就会更加容易地根据这些规律推算出他签字的那份证明的掩护名的明文。而有了雪崩效应,他就难以找出掩护名所对应的密文是哪个了,我的处境也就相对安全。


你可能又会想:如果对同一个密文有两种不同的解法,一种可解成双方约定好的明文,另一种解成我骗钱的明文,若我当着黄督察的面用前一种解密算法解成双方约定好的明文骗他签了字,下个月我拿他签字的密文,使用另一种解密算法解成骗钱的明文去找他要钱,黄督察怎么办?


这其中涉及到了单向函数问题。什么是单向函数呢?给定了被除数和除数,余数就很容易确定了,例如被除数7除以除数3,余数是1,但给定了除数3和余数1,被除数会有4、7、10……无穷多个。正向推很容易得到唯一解,反向推就难以得到确定解了,这就是一种单向函数。黄督察规定我必须使用某个尚未被破解的单向函数加密算法,他有理由确信我不可能破解了这个算法,否则我就当知名数学家了,还做卧底这苦差干吗?


你可能还会想,如果有的证明是按约定内容写的,有的是骗钱证明,并都用黄督察提供的加密算法加了密。黄督察恰恰把那份骗钱证明的密文留了下来,而让我当场解密的内容都是双方约定内容,黄督察验证后放心了,在那份骗钱证明上签了字,那不就被我欺骗了吗?难道黄督察不担心这种情况的发生吗?

首先,如果我写了1份以上(不含)的骗钱证明,当场解开9份后一定就会被发现。我只写1份骗钱证明,并恰巧被黄督察留下的概率只占1/10,这是我欺骗成功的唯一机会。其次,为了避免这种欺骗的发生,黄督察会事先跟我约定一个严厉的欺诈惩罚办法,只要发现我作弊就法办我。如果他还不放心,可以要求我搞100份或更多的证明来,直到他认定我不会傻到为了这么小的可能性而去冒这么大的风险为止。


10个样本是很少的,在实际"盲签字"运用中,样本量可以有几百万个甚至更多,用电脑处理起来也并不麻烦。欺骗成功的可能性只有几百万分之一,而在绝大多数的情况下会受到严厉的惩罚,但凡有一点理智的人都是不会干这种傻事的。正是基于这样的考虑,盲签字是安全的,这种协议最不怕的就是非常理智的唯利是图的人,他们对自己获利的小算盘打得越精,就越是作茧自缚。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存