
来源:http://rhythrealmz3.deviantart.com/art/the-Eye-of-i-107581226
三个好朋友到一家餐厅吃饭。饭快吃完的时候,一个服务员过来告诉他们说,他们的账单已被匿名支付了。三个人都尊重他人匿名付款的权利,但同时他们也想知道,这个匿名支付者是他们三位中的一个,还是他们三人之外的一个第四者。有没有什么办法能够让他们知道在他们之间是否有人付账,但又保证任何人都推测不出究竟是谁付的账?利用三枚硬币可以轻易做到这一点。你能想到这个办法吗?
严格地说,《牛奶可乐经济学》并不是一本经济学读物。这本书更多地是在解释各种奇怪的生活现象。书里的第一章就是很多关于产品设计的趣闻。例如,为什么装可乐的瓶子都是圆的,但是装牛奶的都是方盒子呢?原因在于,在商场里,可乐是摆在货架上的,但牛奶必须要放在专门的冰柜里。货架很便宜,可乐摆不下了再买一个货架就是了;但是,冰柜的价格很昂贵,我们必须要充分利用冰柜的空间。牛奶的方形容器设计可以让它们紧密地排列在冰柜中,节约了不少的空间。而货架上的可乐就没有必要做成方的了。人们往往拿着可乐瓶直接饮用,圆筒形容器显然更称手一些。比起在货架上节省出来的空间,增加产品易用性的收益显然更高。
产品设计是一个很有意思的话题。昨天玩NDS上的一个很纯粹的解密游戏。很多题目都是火星题了。第一个让我眼前一亮,知道答案后让我会心一笑的题目是下面这个。

事情还没有结束呢!我们前面假设,大家公开公钥的方式是“发布在一个众人可信的网站上”,这种假设是有原因的。需要临时交换双方公钥的通话协议是不安全的,这里面存在一个戏剧性的漏洞。举个例子,假如A和B认为,任何网站都是不可靠的,他们从未并且今后也不会在网上公布自己的公钥。为了加密通信,A需要亲自告诉B他的公钥,B也需要亲自告诉A自己的公钥。收到公钥后,双方便用对方的公钥加密进行数据传输。因为用这个公钥加密后,只有对方才能解开密码,因此双方都认为这条通信线路是安全的。其实,他俩的麻烦大了。这条线路并不是安全的,第三者可以用一种很搞笑的方式来窃听消息。假设有一个人C知道A和B之间将有一次加密通话。C劫持了A和B之间的通讯线路。现在,A把他的公钥发给B,这个公钥传到一半时被C拦截下来,于是C获得了A的公钥;C再把他自己的公钥发给B,让B把C的公钥错当成A的公钥。同样地,B把他自己的公钥发给A,被C拦截下来。C把自己的公钥发给A,让A以为那是B的公钥。以后,每当A给B发加密消息时,A其实是用C的公钥在加密;C把A的消息解密后,再用B的公钥加密后传给B。类似地,一旦B给A发送消息,C都可以将消息解密,并用A的公钥进行加密后传过去。此时,A和B都以为自己在用对方的公钥加密,并都能用自己的私有钥匙解开对方传来的密文;殊不知,这中间有人仅仅用了一点雕虫小技,无声无息地窃走了所有的信息。C正是利用了公钥加密术“谁都可以加密”的性质,结结实实地玩弄了A和B。这种攻击方法叫做“中间人攻击”。
这让我想起了经典的国际象棋骗术。一个象棋白痴宣称自己是个大牛。为了证实这一点,他将要与两位大师同时对弈。他说,我先下后下都能赢。于是,在与大师A的对弈中他为白方,与大师B对战则执黑。结果呢,两盘比赛下来居然都打成了平手。怎么回事呢?其实那个象棋白痴耍了个小伎俩,他把大师A走的棋记了下来,跑到另一边去下给B看,又把B的应着原封不动地搬到了和A的棋局上。来来回回搞了半天,他自己只起了个传递信息的作用,真正在对弈的是两个大师。