5.9 秘密的同时交换

    Alice知道秘密A;Bob知道秘密B。如果Bob告诉Alice B,Alice愿意告诉Bob A。如果Alice告诉他A,Bob愿意告诉Alice B。这个协议可以在一个校园里被遵守——但很明显它不起作用:

    (1)Alice:“如果你先告诉我,我就告诉你。”

    (2)Bob:“如果你先告诉我,我就告诉你。”

    (3)Alice:“不,你先讲。”

    (4)Bob:“噢,好吧”(Bob悄悄说了)。

    (5)Alice:“哈!我不告诉你。”

    (6)Bob:“那不公平。”

    密码技术可以使它变得公平。前面的两个协议是这个比较通用协议的实现,这个协议允许Alice和Bob可以同时交换秘密[529]。与其重复整个协议,倒不如简单介绍对数字证明邮件协议的修改情况。

    Alice使用A作消息完成第(1)至第(4)步。Bob用B作他的消息完成类似的步骤。Alice和Bob在第(9)步中执行不经意传输,在第(10)步中解密他们能解密的那些一半消息,并在第(11)和第(12)步中处理完那些迭代。如果他们要防范Eve,他们应当加密他们的消息。最后,Alice和Bob解密消息对余下的一半,并异或任一密钥对来得到原始消息加密密钥。

    这个协议使Alice和Bob可以同时交换秘密,但没有谈到所交换秘密的质量。Alice可以允诺给Bob Minotaur迷宫的解法,但实际上送给他一张波士顿地铁系统交通图。Bob将得到Alice送给他的任何秘密,无论这个秘密是什么。其他的协议见[1286,195,991,1524,705,753,259,358,415]。