用于加密选择机制的系统和方法

文档序号:1146511 发布日期:2020-09-11 浏览:16次 >En<

阅读说明:本技术 用于加密选择机制的系统和方法 (System and method for encryption selection mechanism ) 是由 A·科莫 L·M·奥苏伯尔 于 2018-09-25 设计创作,主要内容包括:本发明提供了一种使用密码来保护计算机实现的选择机制的改进的系统和方法。在几个优选实施方式中,提供了一种保护参与者的提交并且同时提供对参与者的提交进行验证的能力的处理。这被称为随机排列。在其它几个优选实施方式中提供了一种保护参与者的预先指令并且同时提供对参与者的预先指令进行验证的能力的处理。这被称为安全预先指令。应用包括投票机制、学校选择机制以及拍卖机制。(The present invention provides an improved system and method for securing a computer-implemented selection mechanism using a password. In several preferred embodiments, a process is provided that protects a participant&#39;s submission while providing the ability to validate the participant&#39;s submission. This is called random permutation. In several other preferred embodiments, a process is provided that protects the participant&#39;s prior instructions and at the same time provides the ability to verify the participant&#39;s prior instructions. This is called a secure preaction. Applications include voting mechanisms, school selection mechanisms, and auction mechanisms.)

用于加密选择机制的系统和方法

相关申请

本申请要求2017年12月8日提交的美国临时专利申请No.62/596,379和2018年8月22日提交的美国临时专利申请No.62/721,328的优先权,并且通过引用将它们的全部内容并入。

本申请要求2017年12月8日提交的美国临时专利申请No.62/596,379和2018年8月22日提交的美国临时专利申请No.62/721,328的依据条款35U.S.C.§119(e)的申请日权益。

技术领域

本发明涉及改进计算机实现的加密系统和方法,更特别地,涉及使用密码来保护计算机实现的选择机制的改进的系统和方法。

背景技术

选择机制(诸如投票机制、拍卖机制以及用于诱导偏好并将它们汇总以做出判定或分配的其它机制)已经存在了差不多数千年。近年来,从业人员已经开始在计算机系统和网络上实现选择机制。计算机实现的选择机制的重要优点之一是它可以在提交时对参与者的提交进行验证。回忆一下2000年大选在佛罗里达州发生的惨败(这是通过打孔卡形式实现的选举),当时由于“未除净的孔屑(hanging chads)”而没有计入数百张选票。或者考虑在拍卖中出现的问题,其中,在密封的信封中提交的出价因其难以辨认或者定价未以正确的基础进行表示而被丢弃。良好的计算机实现的选择机制对提交进行验证,如果提交与该机制的规则不一致,则可以向参与者赋予实时反馈。

计算机实现的选择机制的第二个优点是它可以利用加密协议,以使管理该机制的管理人员无法通过篡改提交或将提交提前向其他参与者透露来作弊。与选举相关联的任何人都担心操纵投票、将假票投入选票箱或过早发布结果。在拍卖中,如果管理人员在一个参与者的出价进行提交时可以看到该出价,那么该管理人员可能提示另一位参与者,该参与者需要提交更高的价格才能获胜。

在现有技术中,验证参与者的提交并且保护他们的提交通常存在冲突。如果计算机系统验证了提交,那么可以访问该系统的管理人员也可以“看到”该提交。相反,如果系统接收到加密的提交并且该提交在该轮提交结束之前无法进行解密,则系统在该轮提交结束之前将无法验证所述提交,从而排除了参与者及时更正的可能性。

在几个优选实施方式中,本发明提供了一种保护参与者的提交并同时提供对参与者的提交进行验证的能力的系统和方法。

对于诸如迭代拍卖的选择机制,还有很长的存在过程,使得参与者能够无需亲自出席即可参与,或者在在线机制的情况下,以相关时间在线。例如,迭代式拍卖有时会允许“代理出价”,由此,参与者在系统中输入预先指令(其定价限额),然后系统会根据需要自动发出出价直至该限额。然而,预先指令的存在会加剧管理人员提早向其他参与者透露提交的问题:不诚实的管理人员不仅可以将参与者的当前提交透露给另一参与者,而且可以透露参与者的出价限额。

在现有技术中,验证预先指令和保护预先指令通常是冲突的。如果计算机系统能够验证预先指令,则可以访问该系统的管理人员也可以“看到”预先指令并“泄漏”该预先指令。相反,如果系统接收到了加密的预先指令集,在该轮提交结束之前无法进行解密,那么系统在该轮提交结束之前将无法验证该预先指令集,从而排除了参与者及时更正的可能性。

在几个优选实施方式中,本发明提供了一种保护参与者的预先指令并同时提供对该预先指令进行验证的能力的系统和方法。

发明内容

本发明是一种通过计算机网络上的密码的改进的系统和方法,所述计算机网络具有:多个计算机系统;存储位置,在该存储位置,所有所述计算机系统可以使用假名进行读取或写入;中央计算机系统,该中央计算机系统知道其他计算机系统的假名并且在所述存储位置上使用可识别的名字;处理,其中,按照以下方式在明确的时间创建对一值的承诺:所述值是无法从所述承诺中获悉的,并且所述值是要从所述承诺中揭示的唯一可能选项;以及网络设置,其中,所述中央计算机系统可以向其它计算机系统发送信息,并且其它计算机系统可以向中央计算机系统发送信息。

本发明还是一种使用密码来保护使用计算机网络实现的选择机制的改进的系统和方法。所述选择机制要求多个参与者从多个可能的选择中进行选择。这些选择可以包括:识别集合中的一个或更多个要素、对集合中的一个或更多个要素进行排名、确定集合中的一个或更多个要素的量、将价格与集合中的一个或更多个要素相关联、将参数与集合中的一个或更多个要素相关联、或者将多个参数与集合中的一个或更多个要素相关联。所述选择机制可以是静态的也可以是动态的:可以进行一次或多次选择,或者可以在一轮或更多轮提交中进行选择。实现所述选择机制的所述计算机网络包括:多个计算机系统;存储位置,在该存储位置,所有所述计算机系统可以使用假名进行读取或写入;中央计算机系统,该中央计算机系统知道其他计算机系统的假名并且在所述存储位置上使用可识别的名字;处理,其中,按照以下方式在明确的时间创建对一值的承诺:所述值是无法从承诺中获悉的,并且所述值是要从承诺中揭示的唯一可能选项;以及网络设置,其中,所述中央计算机系统可以向其它计算机系统发送信息,并且其它计算机系统可以向中央计算机系统发送信息。

在几个优选实施方式中,本发明提供了一种保护参与者的提交并同时提供对参与者的提交进行验证的能力的系统和方法。在下文中,这样的实施方式将通常被称为随机排列。

在其它几个优选实施方式中本发明提供了一种保护参与者的预先指令并同时提供对他们的预先指令进行验证的能力的系统和方法。被保护和验证的要素通常是“代理出价(proxy bid)”,但是为了避免与“代理(proxy)”的不同含义混淆,我们将尽量避免在下文中使用“代理”一词。因此,在下文中,这样的实施方式通常被称为安全预先指令。然而,应明确地注意,“代理出价”应当始终是指“预先指令”的特殊情况,并且下文对“安全预先指令”的所有描述也应当描述并涵盖“安全代理出价”。

即使没有关联的选择机制,本申请中所述的随机排列和安全预先指令系统和方法也是新颖且有用的。特别地,可以将随机排列方法应用于参与者将参数关联至各种项目(item)的任何场景,而且可以将参与者的隐私有效地保护到以下程度:中央计算机仅知道与抽象项目相关联的参数,但不知道映射至各个抽象项目的真实项目。类似地,可以将安全预先指令方法应用于参与者提前多个轮次提供了任何参数的任何场景,并且针对当前轮次的参数对指令进行测试就足够了,而无需知道参与者的最终参数。

计算机系统可以是通用计算机、专用计算机、服务器或移动装置,但不限于此。假名(pseudonym)被规定为链接由同一计算机系统写入的信息的用户名。这不同于匿名系统,在匿名系统中,无法告知两条信息是否来自同一来源。在计算机系统上,承诺采用数字字符串的形式。动态选择机制是这样的处理,即,其中,在一时刻(或在一轮提交中)做出特定的选择,并且在之前时刻(或在之前轮的提交中)做出的选择会影响将来时刻(或在将来轮的提交中)提供的选择。在一些利用多个轮次的优选实施方式中,尽管两个轮次可以在其间没有任何停顿地情况下发生,但是各个轮次都是不同的,并且是在与不同的轮次相对的单独时间进行的。

网络可以是局域网或广域网(举例来说,如互联网、内联网或虚拟专用网),或者另选地是电话系统(无论是公共的还是专用的)、传真系统、电子邮件系统、有线数据网络、无线数据网络或任何其它网络。

在本发明的一些实施方式中,在所有选择时刻(或轮次)结束之后,存在着这样的一时刻(或一轮次),即,在该时刻(或该轮次)对是否已经遵循了迭代选择模型的所有规则进行确认。具有用于验证的最终时刻或轮次是对现有技术的一种改进,因为当不再有必须继续进行至后续时刻(或下一轮次)以做出更多选择的时间约束时,这允许进行验证。

在本发明的一些实施方式中,除了原始的计算机系统之外,还有附加的计算机系统集合。该附加集合中的计算机系统将被称为代理。既不是代理也不是中央计算机系统的任何计算机系统均可以与代理相关联。在许多优选实施方式中,任何计算机系统是否具有关联的代理的情况只有该计算机系统和关联的代理(若存在的话)才知道。

在第一优选实施方式中,本发明是:

一种安全地实现选择机制的方法,所述方法是在包括至少一个计算机的计算机系统上实现的,所述选择机制使用表示从多个可能选择中采取的选择的提交,所述方法包括以下步骤:

在所述计算机系统中的计算机上接收提交,其中,所述提交表示选择,并且其中,在所述提交内表示的所述选择被加密;以及

在所述计算机上验证所述提交,其中,所述验证涉及与在所述提交内表示的加密的选择有关的一个或更多个约束。

在第二优选实施方式中,本发明是一种根据第一优选实施方式的方法来安全实现选择机制的计算机系统。所述系统包括接收装置和验证装置。

在第三优选实施方式中,本发明是:

一种使得参与者能够安全地参与选择机制的方法,所述方法是在包括至少一个计算机的计算机系统上实现的,所述选择机制使用表示从多个可能选择中采取的选择的提交,所述方法包括以下步骤:

在所述计算机系统中的计算机上对提交进行加密,其中,所述提交表示选择,并且其中,通过随机排列处理对所述提交内表示的所述选择进行加密;以及

从所述计算机向另一计算机发送所述具有加密的选择的提交。

在第四优选实施方式中,本发明是一种根据第三优选实施方式的方法来使得参与者能够安全地参与选择机制的计算机系统。所述系统包括加密装置和发送装置。

在第五优选实施方式中,本发明是:

一种使得参与者能够安全地参与选择机制的方法,所述方法是在包括至少一个计算机的计算机系统上实现的,所述选择机制使用表示从多个可能选择中采取的选择的提交,所述方法包括以下步骤:

在所述计算机系统中的计算机上对提交进行加密,其中,所述提交表示选择,并且其中,通过安全预先指令处理对所述提交内表示的所述选择进行加密;以及

从所述计算机向另一计算机发送所述具有加密的选择的提交。

在第六优选实施方式中,本发明是一种根据第三优选实施方式的方法来使得参与者能够安全地参与选择机制的计算机系统。所述系统包括加密装置和发送装置。

本发明的其它优选实施方式涉及:使用随机多项式的处理、随机排列的处理或者安全预先指令的处理来加密任何信息;以及在任何选择机制之外,验证或以其它方式处理所述加密的信息。

附图说明

图1是根据本发明的实施方式的网络图;

图2a和图2b是根据本发明的实施方式的通信布置的描绘图;

图3描绘了根据本发明的实施方式的与存储装置(公告板)的交互。

图4是提供根据本发明的一个实施方式的整个处理的概述的流程图;

图5是更详细地例示图4的流程图中的要素的流程图;

图6是更详细地例示图4的流程图中的要素的流程图;

图7是详细地例示根据本发明的一个实施方式的随机排列处理的流程图;

图8a、图8b以及图8c是更详细地例示图4的流程图中的要素的流程图;

图9a、图9b以及图9c是更详细地例示图4的流程图中的要素的流程图;

图10a和图10b是更详细地例示图4的流程图中的要素的流程图;以及

图11a、图11b以及图11c是更详细地例示图4的流程图中的要素的流程图。

具体实施方式

有关密码要素的初步内容

承诺方案允许一方将自身绑定至一价值,而无需揭示该价值是多少。在承诺方案中,有承诺阶段和揭示阶段。在承诺阶段,一方提供对一价值的承诺,同时隐藏该价值实际上是多少。在揭示阶段,一方公开该承诺以揭示被其隐藏的价值。在一些实施方式中,使用被称为Fujisaki-Okamoto承诺方案的承诺方案。为了定义Fujisaki-Okamoto承诺方案,设N是大的合数,

Figure BDA0002609256800000061

是整数对N取模的剩余类环,

Figure BDA0002609256800000063

中的可逆元的可乘组,并且g是

Figure BDA0002609256800000064

中的高阶的生成元。而且,设h是由g随机生成的元,而sr是安全参数。如果爱丽丝向鲍勃发送承诺,那么我们假设爱丽丝不知道N的因式分解、以h为底的g的离散对数或者以g为底的h的离散对数。为了创建对值x的承诺,爱丽丝首先选择

Figure BDA0002609256800000065

其中,R{...}表示集合中的要素的统一随机选择。在承诺阶段,爱丽丝创建了她的承诺E·=·E(x,r)=gxhrmod N,我们称之为以(g,h)为底(x,r)的承诺。在揭示阶段,爱丽丝通过向鲍勃发送(x,r)来为鲍勃公开她的承诺。(x,r)有效地充任该承诺的密钥。该密钥(x,r)唯一地定义了该承诺,并且在没有密钥的情况下,该承诺与随机数是无法区分的。

Fujisaki-Okamoto承诺方案在计算上具有约束力,并且在统计上是隐藏的。计算约束意味着爱丽丝无法找到(x′,r′),使得E(x,r)=E(x′,r′)。为了找到(x′,r′),爱丽丝必须找到以h为底的g的离散对数或者以g为底的h的离散对数,对于具有未知因数分解的足够大的模数,这被认为在计算上是不可行的。爱丽丝无法找到(x′,r′)意味着她只能公开E来揭示x,而不能揭示任何其它值。统计上的隐藏意味着鲍勃不会从E获悉有关x的信息。具体地,有很多(x′,r′),使得E(x,r)=E(x′,r′),因而即使鲍勃找到一对(x′,r′),他也不知道是否x=x′。该承诺方案也是加性同态的,即,

该属性允许一方在不知道两个值中的任一值的情况下找到对两个值之和的承诺。

Boudot证明是整数位于区间[a,b]中的非交互式零知识证明。零知识证明(ZKP)是证明者对某些事实的证明,而没有向验证者揭示任何其它信息。非交互式意味着证明者一次向验证者发送某一数据,然后验证者确信被证明的事实是正确的(称为“证明成功”),而无需与证明者进一步互动。Boudot证明利用了Fujisaki-Okamoto承诺方案。使用安全参数s0和s1,如果x未处于区间x∈[a,b],则证明x∈[a,b]的成功概率小于

Figure BDA0002609256800000072

如果x处于所述区间,则则成功概率大于并且只要1/s1可忽略不计,就揭示统计上的零知识。在一些实施方式中,Boudot证明将被用于自动出价,以通过检查是否bijk∈[pkj,b],来检查是否bijk≥pkj,其中,b是最大可接受出价,并因此是在拍卖期间要检查的所有区间中的最大值。该最大值应当比任何预期出价都大得多。例如,当A预期出价约为103时,最高可接受出价可能为106

有关选择机制的初步内容

出于本申请的目的,将选择机制定义为要求多个参与者从多个可能的选择中做出选择的过程。所述选择可以包括:识别集合中的一个或更多个要素;对集合中的一个或更多个要素进行排名;识别集合中的一个或更多个要素的量;将价格与集合中的一个或更多个要素相关联;将参数与集合中的一个或更多个要素相关联;或者将多个参数与集合中的一个或更多个要素相关联。参与者在选择机制中表示的选择有时被称为报告、公开、投票、出价、排名、偏好或其它名字;当在当前文档中使用“选择”时,它旨在涵盖所有这些其它的可能术语。在许多情况下,选择机制将从参与者得到的选择汇总成决定、结果或分配。

多数投票(plurality voting)是选择机制的一个示例。定义了多个可能的选择的集合通常是n个候选人的列表。在针对k个位置(k≥1)的多数投票的一种常见形式中,要求各个参与者(即,各个投票者)从n个候选人的列表中选择k个候选人。在该提交轮次之后,该机制合计n个候选人中的各个候选人的选票数,并且得到最多选票的k个候选人被视为获胜者。k=1的多数投票可能是美国最常见的投票形式。

排序选择投票(ranked choice voting)是选择机制的第二示例。同样,定义了可能的选择的集合通常是n个候选人的列表。然而,与多数投票不同,现在要求参与者对候选人进行排序,而不仅仅是在候选人当中进行选择。在排序选择投票的一种形式(称为“排序复选制(instant-runoff voting)”)中,要求各个参与者将候选人从1到n进行排序。在该提交轮之后,该机制考虑各个参与者的首选。如果没有候选人是大多数参与者的首选,那么基于相应参与者接下来进行排序的是谁,将投给具有最少次数量的首选的候选人的所有选票重新分配给其余候选人。如果这种重新分配选票未导致任何候选人得到多数票,则通过连续淘汰选票数量最少的候选人,进一步进行重新分配,直到一个候选人被视为得到多数选票为止。

排序选择投票相对于多数投票的潜在优势在于,它可以更好地反映多数意见,并且可能更难以操纵。然而,在排序复选制中,真实出价并不是主要策略。选择孔多塞胜者(Condorcet winner)可能是排序选择投票的一种更可取的形式。如果在各个假设的双向竞选中,给定的候选人相对于每个其它候选人都将获得大多数选票,那么我们将该候选人称为孔多塞胜者,其中,假设竞选的结果是基于提交的排序选择来计算的。然而,一些投票数据会产生没有任何获胜者的“孔多塞循环”,因此还需要一个回退准则。

学校选择(school choice)是选择机制的第三示例。在学校选择的一个示例性实施方式中,参与者是学区中的学生(或其家人)。要求各个参与者将他们最喜欢的k所公立学校从1到k进行排名,其中,k≤n,n是该地区中的学校的数量。此时,各个学校被认为对学生有偏好,但是这些偏好是公式化的;例如,与那些需要通勤的学生相比,学校更喜欢住在距离学校步行范围内的学生,并且与没有兄弟姐妹的学校相比,学校更喜欢那些已经有兄弟姐妹入学的学生。在该提交轮之后,该机制使用参与者提交的排序和学校的公式化偏好来运行学生提议的Gale-Shapley Deferred-Acceptance算法,以确定学生对学校的分配。学校选择机制的许多其它实施方式也是可行的,例如,使用不同算法来代替学生提议的Gale-Shapley Deferred Acceptance算法的那些实施方式,诸如Boston机制或Gale’s TopTrading Cycle算法的变体。

单个物品计时拍卖(single-item clock auction少是选择机制的第四示例。参与者是出价者,并且该机制是以一系列的提交轮次动态地进行的,在第k轮,中央计算机公布计时价格pk。如果参与者在上一轮中发出至少pk-1的出价,那么该参与者她可以发出出价pk。在一些实施方式中,参与者可以代替地选择发出介于pk-1与pk之间的任何出价。一旦参与者的出价在第k轮低于pk,该参与者就不被允许在以后的轮次中进行出价,并且该参与者退出拍卖(除非在第k轮中获胜)。一旦不超过一个参与者出价该计时价格,拍卖便结束。在一些实施方式中,维持保留价格rp,并且只有在最高出价至少为rp的情况下才出售物品。保留价格往往是由中央计算机作为秘密进行保持的,该中央计算机在拍卖结束时简单地公布是否满足该保留价格。拍卖通常是利用第二价格系统来构造的。这意味着获胜的参与者不支付她自己出价的价格,而是支付第二高的出价(或rp,以较大者为准)的价格。该系统采取拍卖理论中的公知结果的优点,即,在单个物品第二价格拍卖中,出价者的主要策略是发出他对该物品的真实价值。其它定价规则也是可能的。

多单位计时拍卖(multi-unit clock auction)是选择机制的第五示例。参与者是出价者,并且该机制是以一系列的提交轮次动态进行的,拍卖可以针对单一类型的物品(“同质”商品),也可以针对多种的物品(“异质”商品)。当物品是同质时,出价人不声明是否要以计时价格出价该项目,相反,该出价人以计时价格指示她想要的物品数量。如果允许在计时价格之间出价,则出价人可以提交在计时价格之间的任何价格点上她想要的物品数量的需求计划。一旦参与者的量之和小于或等于可用数量,拍卖便结束。对于异质商品,中央计算机公布一个计时价格向量,并且参与者提交对相应物品的量的向量的选择。然后,当参与者的量之和小于或等于每种类型物品的可用数量时,拍卖结束。在一些实施方式中,维持保留价格rp,并且只有在最高出价至少为rp的情况下才出售物品。更一般地,可能会有“供应曲线”或“需求曲线”,其中,可用数量取决于价格水平。拍卖通常是利用统一价格系统来构造的。这意味着获胜的参与者不支付他们自己所出的价格,而是支付“结算(clearing)”价格,即,供应等于需求时的价格。其它定价规则也是可能的。

同时多轮拍卖(SMRA:simultaneous multiple round auction)是选择机制的第六示例。参与者是出价者,并且该机制是以一系列的提交轮次动态进行的,以最常见的形式,拍卖多个物品,但各个物品都被视为唯一物品,使得其可用数量为1。在各提交轮中,参与者提交出价,包括物品和价格。在该提交轮之后,提交物品的最高的新出价的参与者被视为“有效(standing)高出价者”;通过抽取随机数来打破平局(ties)。如果没有收到物品的新出价,那么先前的有效高出价者(若有的话)仍然是有效高出价者。有效高出价者在给定的提交轮次中不必出价该物品。当一提交轮结束而没有新出价时,拍卖结束,然后有效高出价者以他们相应的出价金额赢得该物品。

以上拍卖机制最有用的方面之一是价格发现:参与者在每个提交轮之后获得有关对手的出价的信息,向他们传达和汇总信息。价格发现仅在参与者认真出价的范围内发生。为此,上述拍卖机制通常包括活动规则,该活动规则会基于参与者在先前提交轮次中的选择来约束参与者在当前提交轮次中的选择。例如,如已在单个物品计时拍卖概述中描述的,常见的活动规则是“不可撤销的退出”:如果参与者在前一轮中出价pk-1,该参与者仅被允许在当前提交轮次出价pk。例如,如已在多单位计时拍卖的概述中对同质商品的描述所述的,常见的活动规则是“单调性”:参与者仅被允许以pk对一数量进行出价,该数量小于或等于该参与者以pk-1出价的数量。

对于异质商品的拍卖(这可能是多单位计时拍卖或者可能是SMRA),常见的活动规则是“点单调性”。例如,考虑针对电信许可证进行的频谱拍卖。可能会认为向纽约许可证分配了40分,向洛杉矶许可证分配了20分,并且向华盛顿特区许可证分配了10分。在点单调性下,允许参与者在第1轮对{NY,LA}(60分)出价、在第2轮对{NY}(40分)出价、在第3轮对{NY}(40分)出价、在第4轮对{LA,DC}(30分)出价、在第5轮对{LA}(20分)出价以及在第6轮对{DC}(10分)出价。然而,沿相反方向的任何变化都会导致分数增加、违反单调性并且将不会被允许。在计时拍卖中,参与者在给定轮次中的活动被视为针对每种类型物品提交的数量和与该物品相关联的分数的点积。在SMRA中,参与者的活动被认为是与参与者的新出价相关联的分数之和加上与参与者的有效高出价相关联的分数之和。在一些活动规则中,允许点单调性的松弛。还有其它活动规则也基于揭示的偏好来考虑。

在针对异质商品活动规则的最简单版本中,每个物品都分配了相同的分数。在该情况下,活动规则仅仅是:参与者的选择中包括的物品数从每一轮到下一轮都不得增加。

涉及具有单个物品、同质物品以及非同质物品的拍卖的实施方式都可以包括自动出价。在这种情况下,假设自动出价意味着出价者的出价高于物品的计时价格。按照拍卖规则,大于计时价格的出价被视为大于或等于计时价格的所有轮次的计时价格的出价。

密封出价拍卖(sealed-bid auction少是选择机制的第七示例。参与者是出价者,并且该机制是以单个提交轮静态进行的。拍卖可以是单个物品,也可以是多个物品;并且如果是多个物品,那么它们可能是同质或异质商品。对于单个物品,普通的密封出价拍卖是第一价格拍卖:最高出价者赢得物品,并支付其出价金额。另一个有趣的密封出价拍卖是第二价格拍卖:最高出价者赢得物品,但支付第二高的出价金额。对于异质商品,最有趣的方法之一是打包出价。各个出价都包括所有物品集合的子集以及关联的价格参数:出价被认为是“全有或全无”;参与者赢得指定的全部物品子集,或者一无所获。为了确定此类拍卖中的分配,中央计算机求解获胜者确定问题,即,找到使关联的价格参数之和最大化的可行出价组合。

以上任何拍卖机制都可以作为采购(或“反向”)拍卖加以重新表述。在该情况下,获胜出价是最低出价,而不是最高出价;或者使关联的价格参数之和最小化的可行出价组合。此外,不是为物品进行支付,而是向提供该物品的获胜者支付。例如,在单个物品的第二价格采购拍卖中,最低出价者赢得了提供该物品的合同,但是被支付第二最低出价的金额。

如在前述中看到的,选择机制可以是静态的也可以是动态的。在静态机制中,可以在单个提交轮中或者在单个时刻进行选择。在动态机制中,可以在超过一个提交轮中或者在超过一个时刻进行选择。

总体结构

本发明使用连接至少两个计算机系统的网络以及通过内联网服务连接的至少一个计算机。图1例示了各种计算机系统之间的交互。在许多实施方式中,计算机10是与各个内联网交互的唯一计算机系统。在此将计算机10称为中央计算机(Central)。网络20表示多个非本地化的计算机系统可以同时连接至的计算机网络。在示例实施方式中,网络20是互联网。内联网30a至30n的示例包括但不限于虚拟专用网(VPN)和局域网(LAN)。这些内联网服务使中央计算机无法知道通过内联网发送信息的计算机系统。设x是a至n(含)之间的任何字母。连接到内联网30x的是计算机31x,在此将其称为节点x。在一些实施方式中,对于任何x,可能存在计算机32x,在此将其称为代理x。代理x可具有到节点x的直接传输线,并且连接至内联网30x。该代理将是可由节点x直接控制或者不受其直接控制的第三方计算机。当声明中央计算机与内联网30x通信时,这意味着中央计算机通过内联网30x与节点x或代理x进行通信,而无需知道与之通信的是节点x还是代理x。

图2a详细说明了对于存在代理x的任何x,节点x如何将直接通过代理x与中央计算机进行通信。节点x将使用直接传输线将信息发送至代理x,然后代理x将通过内联网30x将该信息发送至网络20,然后网络20将该信息中继至中央计算机。中央计算机通过以相反的方式执行先前的步骤将信息发送回代理x。由于通过内联网30x进行的传输会掩盖原始发件人,因此中央计算机无法知道它是在与代理x还是与节点x进行通信。图2b表示同一处理的不同实施方式,其中,节点x通过内联网30x将信息发送至代理x。然后,按照与针对图2a中的计算机所描绘的方式相同的方式,将信息从代理x中继至中央计算机。

图3示出了所有计算机系统如何与存储装置40交互。存储装置40是所有计算机系统都可以公布信息并使该信息与用户名相关联的存储位置。然后,其它计算机系统可以访问此信息。存储装置40将被称为公告板。在一些实施方式中,公告板将是为了主持公告板或讨论而专门设计的网站。在其它实施方式中,公告板将是包括所有必要方的电子邮件线程。公告板也可以在诸如区块链的公共分类账系统上实现。中央计算机必须在“选择可标识的用户名11”期间挑选一个可以公开标识他的用户名。在执行设定轮次(步骤102和104)之前,应将该用户名传送至所有节点。在“选择假名33x”期间,节点x或代理x将选择一假名,该假名在整个处理中将是相同的,但是在处理之外将不会标识它们。然后,节点x或代理x应通过内联网30x将该用户名传送至中央计算机。节点x和代理x共享同一假名,但除了节点x和代理x以外的任何计算机系统都不能共享该假名。没有计算机在公告板上具有删除特权,因此没有计算机系统可以去除他们以前公布的信息。

图4示出了整个处理的大致概述。该处理以步骤101开始,其中,选择机制进行初始化。在一个优选实施方式中,仅中央计算机可访问的存储器位置会利用表示候选人(针对投票机制)、学校(针对学校选择机制)或者可用物品的类型及其相应的数量(针对拍卖机制)的一个或更多个集合(即,表示选择的集合)进行初始化。可选地,该信息还被发送至公告板。初始化还可以包括有关参与者的信息,诸如有资格针对各组候选人投票的参与者或者有资格针对拍卖中每种类型的物品出价的参与者。初始化还可以包括其它相关信息,诸如学校的公式化偏好(针对学校选择机制)或者起始价格和保留价格(针对拍卖机制)。在步骤102中,设置被用于在零知识的情况下对值进行比较的随机多项式。(这将在图5中进行详细描述)。接下来,在步骤104中,设置Fujisaki-Okamoto承诺方案所需的参数。(这将在图6中进行详细描述)。在步骤106中,递增轮数(round number)。如果这是第一轮,则此处将轮数设定成等于1。在步骤107中,中央计算机通过向公告板发送信息来开始各个轮次。对于所有x,中央计算机还发送内联网30x多项式编码值,以使代理x可以执行比较,而无需知道比较的值。在应用于拍卖的实施方式中,放置在公告板上的信息可以是拍卖中不同物品的计时价格,而发送至内联网的值可以是多项式编码的计时价格。在应用于投票的实施方式中,提交给公告板的信息可能是哪个选择被淘汰,并且发送给内联网的值可能是有关每个选择的投票的多项式编码值。应注意,在步骤107至132中,将通过内联网发送信息。在步骤108中,中央计算机检查它是否仍在接受新的向量以进行处理。如果未接受新的向量,则该处理跳至步骤120。否则,该处理继续至步骤110,其中,参与者做出表示了选择机制所需要的选择的提交。在这个步骤,多数投票机制中的参与者从候选人集合中选择候选人。排序复选机制中的参与者从他们的候选人集合中指示他们的候选人排序。学校选择机制中的参与者从学校集合中指示他们的学校排序。同时多轮拍卖中的参与者指示包括物品集合中的特定物品和关联价格的对。计时拍卖机制中的参与者以计时价格指示每种可用类型的物品的数量。如果参与者已经在先前的提交期内提交了预先指令,则该参与者是否可以在当前提交期内进行提交是可选的。接下来,处理进行至步骤112,其中,一个或更多个内联网将向量发送至中央计算机,然后中央计算机检查该向量是否有效。在步骤112中,中央计算机独立于所有其它向量来考虑各个向量,并检查该向量是否满足有关选择的一个或更多个约束。要验证的约束取决于选择机制的特定类型和确切规则(参见图8a、图8b及图8c)。应注意,在步骤112,中央计算机以加密的形式接收参与者的提交内表示的选择,并且在所述选择采用加密形式时,中央计算机针对约束对提交进行验证。换句话说,中央计算机可能正在验证参与者是否提交了有效选择,而中央计算机实际上并不知道这些选择是什么!步骤114是基于所考虑的向量是否有效而进行连接的命令流语句。如果中央计算机验证了训练是有效的,则它通过转向步骤116接受向量。否则,在步骤118,它拒绝该向量,并且向发送该特定向量的内联网30x通知该向量被拒绝。中央计算机在将来的步骤中也将忽略该向量。如果没有发送有效的向量,那么该特定的内联网30x可能会被忽略,或者可以将它从任何轮次发送的最后一个有效向量用作当前的向量。当轮次结束并且中央计算机停止考虑新向量时,步骤120(提交轮次结束)在由中央计算机在公告板上公布的时间发生。

在步骤122中,各个内联网30x将附加的信息向量发送至中央计算机,以便进一步验证在该轮次期间发送的信息。因为在该轮次期间授予了近乎完美的隐私权,所以需要额外的信息,但是为了能够结束处理,必须通过内联网30x向中央计算机揭示更多的信息。步骤124考虑中央计算机是否已经处理了在步骤122中发送的所有向量。如果已经处理了所有这些向量,则处理转向步骤131。否则,该处理进行至步骤126。在步骤126中,中央计算机检查在步骤112的轮次后的向量是否验证在步骤112的轮次期间发送的信息。(这将在图9a、图9b及图9c中进行详细描述)。步骤128是如下的控制流语句:如果轮次后向量有效,则转向步骤129,否则转向步骤130。如果中央计算机接受该向量,则在一些优选实施方式中,它在步骤129期间在公告板上公告该向量已被接受,并使用整个处理中提供的信息。如果中央计算机拒绝该向量,则在一些优选实施方式中,它在步骤130期间在公告板上公告该向量已被拒绝。如果内联网30x没有发送轮次后向量,则计算机10将按与步骤130类似的方式取消内联网30x的资格。一旦考虑了所有的新向量,该处理便继续至步骤131,其中,计算提交轮次的结果。在与投票有关的实施方式中,这可能意味着所有接受的选票都已制成表格并确定了获胜者。(图11a提供了用于投票机制的示例性步骤131的更多细节)。在与学校选择有关的实施方式中,这可能意味着,结合学校的公式化偏好来处理学生的所有接受的排序列表,并且确定哪些学生被分配给每所学校。(图11b提供了用于学校选择机制的示例性步骤131的更多细节)。在与拍卖有关的实施方式中,这可能意味着,确定每种类型的物品的总需求并且将该总需求与可用供应量进行比较。(图11c提供了用于拍卖机制的示例性步骤131的更多细节)。接下来,该处理进行至步骤132,其中,确定是否应当开始新的提交轮次。如果确定应当开始新的提交轮次,则该处理返回至步骤106。否则,该处理进行至步骤134。在一些优选实施方式中,是否所有轮次均结束的确定取决于步骤131的结果。例如,在与拍卖有关的一些实施方式中,如果在步骤131计算出的总需求超过了至少一种类型物品的可用供应量,则该处理继续新的一轮,而如果总需求不超过任何类型物品的可用供应量,则所有轮次均结束。然而,在其它优选实施方式中,提交轮次的数量是预先确定的。在步骤134中,对该处理的结果进行验证。(这将在图10a和图10b中进行详细描述)。

在本发明的一些实施方式中,仅使用了单个提交轮次。例如,许多投票机制只有一轮投票。步骤108到132仍然以类似的方式完成,就好像有多个轮次一样。另选地,在这种情况下,第一提交轮的结束可以被视为提前投票或缺席投票的结束,并且第二提交轮的结束可以被视为投票关闭并对剩余选票进行计数的时间。使用一轮的其它用途和实施方式也是可能的。

安全预先指令和随机多项式设置处理

代理允许节点在选择机制中执行动作,而节点无需必须重复声明其下一个动作。通过使用内联网,中央计算机也无法区分代理与节点,并因此不知道节点是否在实时提交其选择,或者代理是否正在执行预先指令。此外,使用随机多项式以允许代理执行指令而无需知道那些指令是什么。

图5详述步骤102,随机多项式设置处理。在步骤102-1,中央计算机估计它认为该处理将进行的最大轮数的值l。然后,在步骤102-2,中央计算机检查(方程1)是否接近0或负数。N是用于Fujisaki-Okamoto承诺方案的模数,s0是安全参数,s1是不同的安全参数,s2是第三安全参数,并且b是对于输入而言的最大可接受值。如果计算出的值太小,则在步骤102-3减小l,直到该值足够大以致现代计算机无法对该值执行计算出的迭代次数。然后,对于所有x,节点x针对各个对象j创建形式h(bj)=aj0(bj)l+aj1(bj)l-1+…+aj(l-1)(bj)+ajl的第l次多项式。在步骤102-4,节点x通过随机分配系数

Figure BDA0002609256800000152

(方程2)来选择其所有多项式的系数。在一些实施方式中,这些对象将是在拍卖中出售的物品。在步骤102-5,节点x向中央计算机发送所生成的系数。然后,在步骤102-6,节点x将H(a00||a01||...||aml)(方程3)发布至公告板。H表示密码散列函数,||表示并置,并且m是对象的总数。密码安全散列函数的示例包括但不限于SHA-256和SHA-512。为了完成设置,中央计算机必须在公告板上验证节点x发送至中央计算机的系数与节点x发布的系数相匹配。

Fuiisaki-Okamoto承诺方案设置处理

图6详述了步骤104,Fujisaki-Okamoto承诺方案的设置。在步骤104-1,中央计算机选择两个大的、不可预测的安全素数P、Q。这意味着,p=(P-1)/2和q=(Q-1)/2都是素数。在步骤104-2,中央计算机选择gp∈{2,…,P},使得(gp)p=1mod P,并且选择gq∈{2,…,Q},使得(gq)q=1mod Q。然后,在步骤104-3,中央计算机能够通过使用中国余数定理以根据g=gpmod P和g=gqmod Q计算g来相对于PQ创建生成元。在步骤104-4,中央计算机选择随机α∈{1,...,pq}。在步骤104-5,中央计算机计算N=PQ。然后,在步骤104-6,中央计算机计算h=gαmod N。最后,在步骤104-7,中央计算机将N、g及h发布至公告板。接下来,中央计算机必须向每个节点x证明它知道α,使得h=gαmod N。要做到这一点,在步骤104-8到104-13中使用Chaum等人创建的零知识证明。在步骤104-8,中央计算机随机选择R∈{1,...,pq}。然后,在步骤104-9,中央计算机向节点x发送a=gRmod N。在步骤104-10,节点x发送回随机位b∈{0,1}。在步骤104-11,中央计算机向节点x发送回值z=R+bα modφ(N)。在步骤104-12,节点x检查gz=ahbmod N。中央计算机可能在不知道α的情况下针对该检查生成有效z的机会是1/2。重复执行步骤104-8到104-12sdl次,以便证明存在中央计算机知道α的大于的机会。如果这些步骤尚未被重复sdl次,则步骤104-13进行至步骤104-8,否则,该处理进行至步骤106。

随机排列

在提交轮次期间使用随机排列,以便中央计算机验证内联网30x进行的提交满足选择机制要求的一个或更多个约束,而不会揭示任何其它信息。图7详细描述了随机排列处理,该随机排列处理例如在下面的步骤112c-5中被引用。该排列处理开始于内联网30x在步骤112c-5a向中央计算机发送对各个出价的承诺。在步骤112c-5b,一旦中央计算机接收到承诺,它便使用Fujisaki-Okamoto承诺方案的同态属性来减去计时价格,而无需知道出价实际上是多少。在步骤112c-5c,中央计算机对承诺进行随机排列。中央计算机必须存储该排列,因为必须在步骤112c-6中将该排列发送至内联网30x。在步骤112c-5d,中央计算机向内联网30x发送现已排列的承诺。在步骤112c-5e,内联网30x通过同态地添加零来掩蔽承诺。掩蔽的意思是通过同态地添加零,则不可能算出掩蔽之前的哪些承诺与掩蔽之后的哪些承诺相匹配(如果任一集合都被排列)。在步骤112c-5f,内联网30x排列经掩蔽的承诺。最后,在步骤112c-5g,内联网30x向中央计算机发送经排列的、掩蔽的承诺。在该处理的这一点上,内联网30x或中央计算机都不知道哪个承诺与哪些物品相关联。

随机排列在静态机制中的应用

排序选择投票机制涉及每个投票者从1到可能的选择数量对各个候选人进行排序。在被称为排序复选制的形式中,在每轮投票中,淘汰选票数最少的候选人,针对该选择的所有选票将通过选择各个投票人列表上的下一个最喜欢的候选人而分布到其余可能的候选人当中。对于应用至排名选择投票的本发明的实施方式,图8a详细说明了步骤112的实施方式,中央计算机通过该步骤检查向量在一轮次期间是否有效。首先,对于所有x,在步骤112a-1,中央计算机向内联网30x发送

Figure BDA0002609256800000171

中的一随机数,其中,ssalt是安全参数。该随机数被称为盐(salt),其将在该轮次之后附加至要进行散列的值。在该实施方式中,所述盐是在轮次期间发送的,以允许内联网30x计算(当该轮次仍在进行时)该轮次后将需要的散列。然后,在步骤112a-2,内联网30x向中央计算机发送其对投票的承诺。如果代理x正在计算与节点x相反的承诺,则它必须使用在步骤108中中央计算机发送至内联网30x的信息。该代理使用此信息来算出那个选择正被投票。该承诺针对所有未被投票的选择采取的承诺形式为0,而针对正在被投票的选择采取的承诺形式为1。由于Fujisaki-Okamoto承诺方案是同态加性的,因此通过使用Boudot证明来证明所有承诺的总和处于[0,1]中,内联网30x可以证明该总和小于或等于1。在步骤112a-3,执行Boudot证明。如果证明失败,则该处理转向步骤118。如果证明成功,则该处理转向步骤116。

对于投票机制的示例性实施方式,图9a详细说明了示例验证处理,中央计算机通过该处理检查在提交轮次之后向量是否有效。对于所有x,在步骤126a-1期间,内联网30x将其选票向量发布至公告板。然后,在步骤126a-2,内联网30x向中央计算机公开它们在该轮次期间发送的所有承诺。在步骤126a-3,中央计算机检查发布的向量是否与从该轮次期间预期的向量相匹配。中央计算机还检查承诺是否已被成功且正确地公开。如果这两个条件均成立,则该处理进行至步骤129;否则,该处理进行至步骤130。一旦来自该提交轮的所有向量都被考虑,在步骤131中计算该提交轮的结果,在图11a中将对示例性投票机制进行详细说明。

在一些实施方式中,在任何给定的提交轮次中都可以允许选择多个选择。例如,在一些选举中,可以允许投票人为N>1个候选人投票,并且可以从各个选区选择N>1个获胜者。在那些实施方式中,步骤112a-3被修改成使得将Boudot证明用于证明总和介于0与最大可能选择数之间。在该轮结束并且考虑了所有向量之后,仍然淘汰选票数最少的选择。一旦需要选出的选择的数量与尚未被淘汰的选择的数量相同,该机制就转向步骤134。

在一些实施方式中,使用了多数投票机制。多数投票意味着在第一轮中,将选择选票数最高的N个选择。这些实施方式与上一段落中的实施方式非常相似,但是只有一个提交轮次,并且在该轮之后,得到最多选票的选择就是获胜者。

在本发明的其它实施方式中,将随机排列应用于学校选择。在这些实施方式中,每所学校都对学生有公式化的偏好(中央计算机知道),并且每个学生在所有学校中都有排序(节点x知道该排序,但中央计算机不知道)。为了让学生的选择有效,学生必须指示一个首选、一个次选等。

对于学校选择机制的示例性实施方式,图8b详细描述了步骤112的示例实施方式,通过该步骤在一轮期间检查向量是否有效。在步骤112b-1,对于所有x,中央计算机向内联网30x发送

Figure BDA0002609256800000181

中的一随机数,其中,ssalt是安全参数。该随机数被称为盐,所述盐将在该轮次之后附加至要进行散列的值。在该实施方式中,在轮次期间发送所述盐,以允许内联网30x计算(当该轮次仍在进行中时)该轮次后将需要的散列。然后,在步骤112b-2,内联网30x向中央计算机发送对其学校排序的承诺。如果代理x(与节点x相反)正在计算承诺,那么它使用在步骤108中由中央计算机向内联网30x发送的信息。该代理使用此信息来算出哪个排序正在被选择。承诺针对首选采取的承诺形式为1,针对次选采取的承诺形式为2,针对所有选择同样如此。在步骤112b-3,内联网30x将承诺打乱,然后通过同态地加0来掩蔽各个承诺。这个转换后的向量也被发送至中央计算机,但是没有向中央计算机提供有关偏好顺序的信息。在步骤112b-4,内联网30x公开了其全部的已转换的承诺,以证明该提交中包括了介于1与选择数之间的每个排序(即,该排序是学校的排列)。如果证明失败,则该处理转向步骤118;如果证明成功,则该处理转向步骤116。

对于学校选择机制的示例性实施方式,图9b详细说明了提交轮次结束之后的示例验证处理。首先,在步骤126b-1,所有内联网30x将它们的选择向量发布至公告板。然后,在步骤126b-2,内联网30x公开了它们在提交轮次期间发送给中央计算机的对所有偏好的承诺。在步骤126a-3,中央计算机检查发布的向量是否与来自该轮次的预期向量相匹配。中央计算机还检查承诺是否已被成功且正确地公开。如果这两个条件均成立,则该处理进行至步骤129;否则,该处理进行至步骤130。一旦从该轮提交中考虑了所有向量,中央计算机就获知参与者的排序,并且可以在步骤131中计算该提交轮次的结果,在图11b中将详细说明示例性学校选择机制。

随机排列在动态机制中的应用

对于应用于拍卖的本发明的实施方式,图8c详细说明了步骤112的实施方式,中央计算机通过该步骤检查向量在轮次期间是否有效。该实施方式实施简单的活动规则,其中,为每个物品分配相同的分数,并且要求参与者的出价中包括的分数从每轮到下一轮都不会增加。在该实施方式中,在提交轮次期间,将对正在接收参与者的出价的特定物品的身份进行加密,并且中央计算机无法访问。尽管如此,中央计算机仍将能够验证出价提交是否符合活动规则。其它实施方式还可以处理以下场景:为不同的物品分配不同的分数,并且要求参与者的出价中包括的分数从每轮到下一轮都不会增加。首先,在步骤112c-1,对于所有x,中央计算机向内联网30x发送中的一随机数,其中,ssalt是安全参数。该随机数被称为盐,所述盐将在该轮次之后附加至要进行散列的值。在该实施方式中,在轮次期间发送所述盐,以允许内联网30x计算(当该轮次仍在进行中时)该轮次后将需要的散列。然后,在步骤112c-2,内联网30向中央计算机发送对每个物品的承诺。该承诺是Fujisaki-Okamoto承诺,并且具有gchrmod N的形式,其中,c是正在承诺的价值,r是

Figure BDA0002609256800000192

中的随机助手值(helper value),其防止中央计算机从承诺中推导出x,并且sr是助手值的安全参数。如果是第1轮,则中央计算机通过从步骤112c-3转向步骤116,接受出价,而无需与内联网30x进行任何进一步的交互。否则,该处理从步骤112c-3进行至步骤112c-4。

内联网30x必须对各个物品执行Boudot证明,以证明出价是介于来自前一轮的计时价格与来自前一轮的计时价格和前一轮的出价中的最小值与最大可能出价之间。将所有这些价值(出价、计时价格以及最大出价)利用随机多项式进行编码,以使代理x可以执行证明而无需知道出价是什么。该证明实际上证明了当前出价大于或等于最后一个计时价格和最后一个出价中的最小值。如果证明失败,则该处理进行至步骤118。如果证明成功,则执行排列处理,以防止内联网30x和中央计算机在步骤112c-5(图7)获知哪些承诺与哪些物品相关联。排列处理还导致承诺是出价与计时价格之间的差异,而不是出价本身。在步骤112c-6期间,中央计算机向内联网30x发送在步骤112c-5c使用的排列。这允许内联网30x知道哪些出价与哪些物品相关联,并在步骤112c-7中完成更多的Boudot证明。在步骤112c-7,内联网30x针对尽可能多的承诺完成了Boudot证明:新的承诺介于0与最大出价之间。在步骤112c-8,中央计算机对成功的证明的数量进行计数,并且在步骤112c-9中使用该数量来检查是否满足活动规则。在一些实施方式中,该活动规则是:在任何给定轮次中成功的证明的数量是否大于或等于在前一轮中大于或等于计时价格的出价的数量。在其它实施方式中,没有活动规则,并因此始终满足活动规则。如果满足活动规则,则该处理转向步骤116。否则,该处理转向步骤118。在没有活动规则的实施方式中,可以忽略步骤112c-5到112c-9,并且如果112c-4中的证明成功,则该处理直接转向步骤116。此刻,虽然内联网30x可能会纯属偶然地欺骗活动规则,但在该轮结束之后,内联网30x不可能欺骗活动规则,因此,在该轮次期间没有动机去尝试并欺骗规则。

对于应用于拍卖的本发明的实施方式,图9c详细说明了示例性处理,中央计算机通过该处理检查向量在提交轮次之后是否有效。每个内联网30x均被独立考虑。步骤126c-1检查是否已经考虑了所有物品。如果已经考虑了所有物品,则处理进行至步骤126c-7。否则,处理200进行至126c-2。

在步骤126c-2期间,内联网30x将出价的密码安全散列值发布至公告板,并且该出价附加有该轮次期间向其发送的盐。该内联网还发布了对出价的承诺。如果针对物品的出价低于计时价格,则该处理从步骤126c-3进行至步骤126c-4,并且内联网30x通过向中央计算机发送出价和被用于该承诺的随机助手值,将对该出价的承诺公开给中央计算机。然后,通过从步骤126c-4转回步骤126c-1来考虑下一物品。如果出价大于或等于计时价格,则该处理从步骤126c-3转向步骤126c-5。在步骤126c-5,内联网30x执行Boudot证明:该出价介于计时价格与最大出价(含)之间,实际上检查出价是否大于或等于计时价格。如果证明失败,则该处理转向步骤130。如果证明成功,则该处理转向步骤S126c-6。在该步骤,中央计算机将计时出价的数量递增1。重复步骤126c-1到126c-6,直到已经考虑了所有物品。一旦考虑了所有物品,该处理便进行至步骤126c-7。如果是第1轮,则该处理立即转向步骤129。然而,如果不是第一1轮,那么中央计算机必须检查是否满足活动规则。如果满足活动规则,则该处理下一步进行至步骤129。如果不满足活动规则,则该处理进行至步骤130。该活动规则如上所述。

在完成了所有提交轮次之后,中央计算机可以向希望进行验证的任何节点x验证选择机制处理的结果。在一些实施方式中,该验证处理不是必需的。例如,在涉及投票的实施方式中,投票通常是在轮次完成之后发布的,并因此在所有轮次结束之后不需要进行验证。对于应用于拍卖的本发明的实施方式,图10a详细说明了这样的处理,即,中央计算机通过该处理验证了所述结果。对于赢得物品的出价者和未赢得物品的出价者,该验证处理有所不同。步骤134a-1是控制流语句:如果中央计算机正在与获胜的节点x进行交互,则转向步骤134a-2,否则就转向步骤134a-4。针对获胜者的验证处理开始于步骤134a-2,其中,中央计算机向特定物品集合的获胜者(或多个获胜者)发送最高的失败内联网的假名、出价以及盐。在步骤134a-3,获胜的计算机检查出价是否与正在支付的价格相匹配,以及发布至公告板的散列是否与附加至出价的盐的散列相匹配。

如果成功地完成了所有这些步骤,则获胜的节点x获知正在支付公平的价格。如果步骤134a-2或134a-3失败,那么获胜的节点x应当怀疑它被欺骗并寻求向中央计算机追索。针对失败者的验证处理发生在步骤134a-4。在这个步骤,中央计算机向节点x发送对象的获胜者的假名。然后,中央计算机使用Boudot证明来证明该内联网出价至少与节点x一样多。如果该步骤失败,则失败的节点x应当怀疑它被欺骗并向寻求中央计算机追索。一旦完成了验证处理,就完成了全部处理。

安全预先指令在选择机制中的应用

在使用随机多项式以使能够执行零知识的预先指令的实施方式中,该处理与上面的处理基本相同,其中唯一的差别是所有值都利用节点x和中央计算机均知道但是代理x不知道的随机多项式进行编码。

在选择机制是利用排序复选制的投票机制的实施方式中,可以使用代理,以使仅在投票者的较高排名选择被淘汰的情况下透露投票者的第二选择和后续选择。即,如果给定投票人的首选是获胜者(或者其首选直到确定获胜者时才被淘汰),则中央计算机永远不需要知道给定投票人的第二选择和后续选择。然而,如果在处理的特定阶段,给定投票人的首选在没有确定获胜者的情况下被淘汰,则中央计算机需要获悉给定投票人的第二选择。此时,代理可以执行安全预先指令,以便将投票人的第二选择传送至中央计算机。

在选择机制是使用Gale-Shapley算法的学校选择机制的实施方式中,可以类似地使用代理,使得仅在一学生未被分配她的较高排名的选择的情况下才透露该学生的第二选择和后续选择。这与上一段落中对排序复选制的描述完全相同。

在选择机制是单个物品计时拍卖的实施方式中,可以使用代理,以使参与者可以给出安全预先指令,以进行出价直至远远高于当前计时价格的出价限额。仅在代理需要代表参与者继续出价的情况下才透露参与者的出价限额,以保持参与者处于拍卖中。例如,如果给定参与者已给出出价直至250,000美元的安全预先指令,但最后一位对手在计时价格为130,000美元时在一轮中退出了拍卖,那么出价将停止在130,000美元,并且没有代理(包括中央计算机和所述代理)曾经获悉参与者的出价上限为250,000美元。

在选择机制是多单位计时拍卖的实施方式中,可以使用代理,以使参与者可以针对各种物品数量给出出价限额的安全预先指令。与单个物品计时拍卖一样,这些阈值可能会比当前的计时价格高得多,而且仅在代理需要代表参与者继续出价的情况下才透露这些阈值。例如,如果给定参与者已给出出价直至针对四个单位的每单位100,000美元、直至针对三个单位的每单位150,000美元、直至针对两个单位的每单位200,000美元以及直至针对一个单位的每单位250,000美元的安全预先指令,但是如果拍卖在计时价格为130,000美元时的一轮中成交(clear),则出价将停止在130,000美元,并且给定的参与者赢得三个单位。中央计算机和代理将了解到,该给定参与者对四个单位的出价限额为100,000美元,这是因为出价数量在达成的价格从4下降至3。然而,没有代理(包括中央计算机和所述代理)会获悉参与者对三个单位的出价限额为150,000美元等。

在与拍卖有关的实施方式中,需要进行验证处理,以便向获胜的出价者证明她正在支付公平的价格,并且向失败的出价者证明他们不应该获胜。对于应用于拍卖并且使用代理的本发明的实施方式,图10b详细说明了所述处理,中央计算机通过该处理验证了所述结果。验证处理开始于步骤134b-1,其中,中央计算机向节点x发送由节点y为所有x和不等于x的所有y生成的所有多项式。在步骤134b-2,各个节点x检查被发布至公告板的散列是否与刚接收到的多项式系数相匹配。步骤134b-3是控制流语句:如果中央计算机正在与获胜的节点x进行交互,则转向步骤134b-4,否则就转向步骤134b-6。在步骤134b-4中,对于每个物品,中央计算机向节点x发送最高的失败内联网的假名、经多项式编码的出价以及盐。在步骤134b-5,获胜的节点x检查经编码的出价的逆多项式是否与正在支付的价格相匹配,以及发布至公告板的散列是否与附加至经编码的出价的盐的散列值相匹配。如果成功地完成了所有这些步骤,那么获胜的节点x获知正在支付公平的价格。如果步骤134b-1到134b-5中的任一步骤失败,则获胜的节点x应当怀疑它被欺骗并寻求向中央计算机追索。针对失败者的验证处理发生在步骤134b-6。在这个步骤中,中央计算机向节点x发送对象的获胜者的假名。然后,中央计算机使用Boudot证明来证明该内联网出价至少与节点x一样多。如果步骤134b-1、134b-2或134b-6中的任一步骤失败,则失败的节点x应当怀疑它被欺骗并寻求向中央计算机追索。一旦完成了验证处理,就完成了全部处理。

应注意,本文档中描述的与加密处理结合的验证处理对实现密封出价拍卖也可能有用。例如,考虑针对单个物品的第二价格密封出价拍卖:提交了最高出价的参与者赢得该物品,但其支付第二高的出价金额。使用第二价格方法的一个原因是为了使获胜的出价保密,如果参与者知道获胜的出价将被保密,则他们可能愿意比透露获胜的出价更主动地进行出价。然而,该机制需要一种方式(无需公开透露出价):(1)“证明”获胜的参与者正在支付公平价格,即,存在与该价格相对应的失败出价;和(2)向失败的参与者“证明”他们应该失败,即,存在更高的获胜出价。如我们已经看到的,本文档中描述的处理达到了这两个目标。

对于投票机制的示例性实施方式,图11a详细说明了所述处理,中央计算机通过该处理计算提交轮次的结果(步骤131)。在图11a中,投票机制实现排序复选制。该处理开始于步骤131a-1,其中,中央计算机将“当前选票”分配给各个投票人的首选候选人。该处理继续至步骤131a-2,其中,中央计算机按照选票的降序对候选人进行排序(sort)。然后,该处理进行至步骤131a-3,其中,中央计算机检查该排序中的第一候选人(即,具有最多当前选票的余下候选人)在所有投票中是否具有绝对多数。如果第一候选人具有绝对多数,则该处理进行至步骤131a-7,其中,将该候选人确定为获胜者,并且该处理进行至步骤132。否则,该处理进行至步骤131a-4,其中,中央计算机淘汰了该排序中的最后一个候选人(即,具有最少当前选票的余下候选人)。然后,该处理进行至步骤131a-5,其中,中央计算机将当前投票人对被淘汰的候选人的投票重新分配给该投票人最优选的其余候选人。然后,该处理进行至步骤131a-6,该步骤检查是否已经针对被淘汰候选人考虑了所有当前的投票人。如果没有考虑,则该处理为针对被淘汰候选人的另一当前投票人重复步骤131a-5。否则,该处理返回至步骤131a-2。

对于学校选择机制的示例性实施方式,图11b详细说明了所述处理,中央计算机通过该处理计算提交轮次的结果(步骤131)。在图11b中,学校选择机制实现了Gale-ShapleyDeferred Acceptance算法。该处理始于步骤131b-1,其中,对于未被任何学校“录取”的各个学生,中央计算机将录取分发给尚未拒绝该学生的、该学生最优选的学校。在图11b的第一次迭代中,中央计算机将录取分发给每个学生的首选学校。该处理进行至步骤131b-2,其中,中央计算机考虑它以前没有考虑过的学校之一。该处理继续至步骤131b-3,其中,中央计算机按照学校的公式化偏好的降序,对申请了所考虑学校的学生进行排序。在优选实施方式中,使用随机数来打破平局。然后,该处理进行至131b-4,其中,如果学校有m个空位,但如果针对学校提出了n>m个申请,那么中央计算机“拒绝”该排名中的除了最上面m个学生以外的学生(即,在学校的公式化偏好中排名最低的学生)。然后,该处理进行至步骤131b-5,该步骤检查是否已考虑了所有学校。如果没有考虑所有学校,则该处理针对另一所学校返回至步骤131b-2。否则,该处理进行至步骤131b-6,该步骤检查是否存在仍可以录取的未匹配的学生(即,学校没有给予录取通知书、但是在他们的排名中还有尚未申请的任何学校的任何学生)。如果存在这样的学生,则该处理返回至步骤131b-1。否则,该处理进行至步骤132。此刻,被给定学校录取的所有学生分配至该给定学校,并且将未被任何学校录取的所有学生视为未分配。

对于拍卖机制的示例性实施方式,图11c详细说明了所述处理,中央计算机通过该处理计算提交轮次的结果(步骤131)。在图11c中,所述拍卖机制是示例性计时拍卖。该处理开始于步骤131c-1,其中,将状态标志初始化为“订立(Conclude)”。该处理以步骤131c-2继续,其中,中央计算机考虑拍卖中的以前没有考虑过的物品的类型之一。然后,该处理进行至步骤131c-3,其中,中央计算机以计时价格计算针对所考虑的类型物品的总需求。该处理继续至步骤131c-4,其中,中央计算机确定所计算出的总需求是否绝对大于计时价格下的可用供应量。如果所计算出的总需求绝对大于可用供应量,则该处理进行至步骤131c-5,其中,将状态标志重置成“继续”。在步骤131c-5之后,或者如果计算出的总需求小于或等于供应量,则处理进行至步骤131c-6,该步骤检查是否已考虑了拍卖中的所有类型的物品。如果没有考虑所有类型的物品,则该处理针对拍卖中的另一类型的物品返回至步骤131c-2。否则,该处理进行至步骤132。应注意,在这个实施方式中,状态标志将是在步骤132使用的有关所有轮次是否都结束的信息,并且如果存在另一提交轮,则可以将计算出的总需求透露给出价者,并且可以在设置下一轮的计时价格中使用。

附加实施方式

在其它另选实施方式中,步骤122(每个内联网皆发送附加信息)不是在提交轮次结束之后发生,而是在提交轮次期间发生的。然而,实现附加协议,以使中央计算机在提交轮次结束之前不利用附加信息。例如,存在两个中央计算机:中央计算机1和中央计算机2。中央计算机1基本上执行了迄今为止中央计算机的所描述的所有功能。中央计算机2的唯一目的是在提交轮次期间接受步骤122的附加信息的上载,并且充当附加信息的安全存储库,直到提交轮次结束。在一个优选实施方式中,对涉及中央计算机2的所有网络流量进行监测,并且在可能的范围内阻止中央计算机2的所有外传文件传输。在第二优选实施方式中,使用无需密钥就可以解密的过程进一步将步骤122的附加信息加密,但是该加密处理被设计成使得在没有密钥的情况下进行解密所需的计算时间将超过提交轮次的持续时间。这样的另选实施方式的优点在于,主要实施方式为参与者提供了宣布放弃其选择的潜在机会:参与者可能拒绝执行步骤122。在另选实施方式中,参与者已经执行了步骤122,并且在参与者执行了步骤112的一部分的同时,向中央计算机提供了解释步骤112的向量所需的信息。

本文所描述的投票系统的加密处理也可以被用于实现更多的防篡改投票系统。目前,由于电子出价系统可能会遭到黑客入侵并更改投票总数,因此选举当局对电子出价系统感到担忧。在当前技术中,检测和纠正投票计数操纵的标准方法是要求系统在每张选票被投出之后都打印纸质记录。然而,这在远程投票(与现场、投票站形成对比)的系统中是不切实际的。另选方案是参与者如下使用本文所描述的处理进行在线投票:参与者的计算机将加密的提交发送至中央计算机1(如步骤112);并且,同时或稍后,参与者的计算机将附加的信息向量发送至中央计算机2(如步骤122)。中央计算机1和中央计算机2中的一方或两方利用WORM(一次写入、多次读取)存储装置,这些存储装置仅允许将信息写入驱动器一次,并在物理上防止驱动器擦除该数据。如上所述,尽管在不访问中央计算机2的情况下投票本身难以破译,但是中央计算机1能够保持有效提交的准确实时计数。由于加密的提交和附加的信息向量是存储在独立的计算机系统上的,因此存在防止选票更改的极强保护。一个或两个系统都使用WORM存储装置,并且如果仅一个系统上的数据被更改,没有对另一个系统上的数据进行对应的复杂改变,则该更改将被完全检测到。类似地存在防止删除选票的强力保护。最后,可以将所述处理构造成,以使很难以欺诈方式增加选票(“假造选票”)。特别地,由于各个提交都与参与者相关联,并且投票记录在其中一个系统上是假名,因此黑客很难在不创建重复记录(这是可检测)的情况下投假票。而且,可以利用有效提交的实时计数来监视假造选票。最后,可以构建选举后审计过程,以使参与者能够检查他们自己的提交是否被计数。

本文所描述的几个示例是本发明的例示性示例,其范围不限于此而是在所附权利要求中指出。

44页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:用于存储用于在区块链上对交易进行签名的数字钥匙的设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!