4.3 不可抵赖的数字签名

    一般的数字签名能够被准确复制。这个性质有时是有用的,比如公开宣传品的发布。在其它时间,它可能有问题。想象一下数字签名的私人或商业信件。如果到处散布那个文件的许多拷贝,而每个拷贝又能够被任何人验证,这样可能会导致窘迫或勒索。最好的解决方案是数字签名能够被证明是有效的,但没有签名者的同意,接收者不能把它给第三方看。

    Alice软件公司发布DEW软件(Do-Everything-Word)。为了确信软件中不带病毒,他们在每个拷贝中包括一个数字签名。然而,他们只想软件的合法买主能够验证数字签名,盗版者则不能。同时,如果DEW拷贝中发现有病毒,Alice软件公司应该不可能否认一个有效的数字签名。

    不可抵赖签名[343,327]适合于这类任务。类似于通常的数字签名,不可抵赖签名依赖于签名的文件和签名者的私钥。但不象通常的数字签名,不可抵赖签名没有得到签名者同意就不能被验证。虽然对这些签名,用像“不可改变的签名”一类的名称更好,但这个名称的由来是如果Alice被强迫承认或抵赖一个签名(很可能在法庭上),她不可能不实地否认她的真实签名。

    数学描述是复杂的,但其基本思想是简单的:

        (1)Alice向Bob出示一个签名;

        (2)Bob产生一个随机数并送给Alice;

        (3)Alice利用随机数和其私钥进行计算,将计算结果送给Bob。Alice只能计算该签名是否有效。

        (4)Bob确认这个结果。

    也有另外的协议,以便Alice能够证明她没有对文件签名,又不能不实地否认签名。

    Bob不能转而让Carol确信Alice的签名是有效的,因为Carol不知道Bob的数字是随机数。Bob很容易在文件上完成这个协议,而不用Alice的任何帮助,然后将结果出示给Carol。Carol只有在她与Alice本人完成这个协议后才能确信Alice的签名是有效的。现在或许没有什么意义,但是一旦你明白在23.4节的数学原理,就会显而易见了。

    这个解决方法并不完美,Yvo Desmedt和Moti Yung研究表明,在某些情况下,Bob让Carol确信Alice的签名有效是可能的[489]。

    例如,Bob买了DEW的一个合法拷贝,他能在任何时候验证软件包的签名。然后,Bob使Carol相信他是来自于Alice软件公司的销售商。他卖给她一个DEW的盗版。当Carol试图验证Bob的签名时,他同时要验证Alice的签名。当Carol发给Bob随机数时,Bob然后把它送给Alice。当Alice响应后,Bob就将响应送给Carol。于是Carol相信她是该软件的合法买主,尽管她并不是。这种攻击是象棋大师问题的一个例子,在5.2节中有详细的讨论。

    即使如此,不可抵赖的签名仍有许多应用,在很多情况中,Alice不想任何人能够验证她的签名。她不想她的个人通信被媒体核实、展示并从文中查对,或者甚至在事情已经改变后被验证。如果她对她卖出的信息签名,她不希望没有对信息付钱的那些人能够验证它的真实性。控制谁验证她的签名是Alice保护她的个人隐私的一种方法。

    不可抵赖签名的一种变化是把签名者与消息之间的关系与签名者与签名之间的关系分开[910]。在这种签名方案中,任何人能够验证签名者实际产生的签名,但签名者的合作者还需要验证该消息的签名是有效的。

    相关的概念是“受托不可抵赖签名”[1229]。设想Alice 为Toxins公司工作,并使用不可抵赖的签名协议发送控告文件给报纸。Alice能够对报社记者验证她的签名,但不向其它任何人验证签名。然而执行总裁Bob怀疑文件是Alice提供的,他要求Alice执行否认协议来澄清她的名字,Alice拒绝了。Bob认为Alice不得不拒绝的唯一理由是她有罪,于是便解雇她。

    除了否认协议只能由Trent执行外,受托不可抵赖签名类似不可抵赖签名。Bob不能要求Alice执行否认协议,只有Trent能够。如果Trent是法院系统,那么他将只执行协议去解决正式的争端。