保护隐私的计量的制作方法

文档序号:6435391阅读:149来源:国知局
专利名称:保护隐私的计量的制作方法
技术领域
本发明涉及计量,尤其涉及保护隐私的计量。
背景技术
在许多应用领域中都涉及计量,如电计量,水计量,燃气计量,按驾驶付费的车辆保险,交通堵塞计费,诸如按观看付费式的数字权限管理、作为服务计量的软件等在线服务计量,以及其他。然而,随着计量的复杂度的增加,存在着对用户隐私保护的顾虑。例如,通过细粒度的电量计量读数,通过负载监视来标识使用了哪些电器是可能的。详细的消费数据可以便于创建用户的生活方式简档,带有诸如他们何时在家、他们何时吃饭、他们是否上班迟到等等信息。在存在计量的其他应用领域中也引发了用户隐私顾虑。例如,按驾驶付费的车辆保险,基于车辆的时间、距离和位置的税可能使该细粒度的信息可由提供者获得。执行计量的用于保护用户隐私的现有方法通常是行政性的,例如基于行为守则、 规章及法律。用于保护用户隐私的其他解决方案涉及允许生活在同一邻域的用户群在不公开他们单独的消费的情况下计算他们的消费的总和。然而,这一类型的方法很复杂并且依赖于该群体中的用户之间的协作。以下描述的各实施例不限于解决已知保护隐私的计量系统的缺点中的任一个或全部的实现。

发明内容
以下呈现了本公开简化的概述,以便向读者提供基本理解。本概述不是本公开详尽的概述,并且它不旨在标识本发明关键/决定性的元素或者描绘本发明的范围。其唯一目的是以简化形式呈现此处公开的一些概念,作为稍后呈现的更详细描述的序言。描述了保护隐私的计量,诸如用于电、燃气、或水的计量,使用云计算资源的计量, 交通堵塞计费以及其他计量应用。在各示例中,细粒度的用户消费数据被保持私密,并且不公开给用户所使用资源的提供者。在各示例中,账单生成器接收经证实的计量读数以及经证实的定价策略,并且生成省去细粒度用户消费数据的账单。例如,账单生成器生成证明该账单正确的零知识证明并且将该证明与该账单一起发送给提供者。在各示例中,提供者能够使用该零知识证明来检验该账单是正确的,而无需找出用户的私密消费数据。在一实施例中,定价策略被存储成表的经签署的各行,以便能够高效地生成零知识查找。通过参考结合附图考虑的以下详细描述,众多伴随的特征将会更加容易理解并更好理解。


通过依照附图阅读的以下详细描述,将会更好地理解本描述,其中图1是保护隐私的计量系统的示意图2是保护隐私的账单生成器处的方法的流程图;图3是在提供者处用于验证保护隐私的账单的方法的流程图;图4是用于诸如云计算资源等计算资源的计量系统的示意图;图5是用于计量系统中的保护隐私的账单生成器处的方法的流程图,其中相信该计量除计量读数之外不会泄露更多信息;图6是提供者处的用于与图5的方法一起使用的方法的流程图;图7是用于公用事业的计量系统的示意图,其中计量以公共的固定时间间隔来提供经证实的读数;图8是在其中计量以公共的固定时间间隔来提供经证实的读数的情况下生成保护隐私的账单的方法的流程图;图9示出了其中可以实现智能计量或账单生成器或账单验证器的各实施例的示例性基于计算的设备。在附图中,相同的附图标记用于表示相同的部分。
具体实施例方式下面结合附图提供的详细描述旨在作为本发明示例的描述,并不旨在表示可以构建或使用本发明示例的唯一形式。本描述阐述了本发明示例的功能,以及用于构建和操作本发明示例的步骤的序列。然而,可以通过不同的示例来实现相同或等效功能和序列。虽然在本文中将本发明的示例描述并示出为在智能计量系统中实现,但是所描述的系统只是作为示例而非限制来提供的。本领域的技术人员将会明白,本发明示例适合在各种不同类型的计量系统中的应用。在下文中给出的示例中,在计量应用中使用密码技术来保护用户的隐私。现在不使用正式数学定义在高层面解释密码学领域的一些术语,以帮助理解本发明的各示例。承诺方案是使发送者能够对值作出承诺并以对接收者隐藏的方式将该值发送给接收者的方法。发送者稍后能够揭示该隐藏的值。因为发送者对该值作出承诺,所以发送者不能够通过在该值被揭示给接收者之前改变该值来“欺骗”或偏置发送者与接收者之间的交互。想出用于对值作出承诺的过程是可能的,例如将该值置于一个盒中、锁住该盒并将该盒给予不能解锁该盒的接收者。发送者不能改变该值,因为接收者拥有该盒。该值对接收者而言是隐藏的,因为该盒是锁住的。然而,发送者可以通过帮助接收者解锁该盒来揭示该值。并非使用盒子和物理锁,可以使用类似的数学过程来使发送者能够对值作出承诺。在揭示阶段,发送者可以提供与上例中的钥匙类似的开启值,并使接收者能够使用数学过程来揭示或开启该承诺。同态承诺方案是这样的方案通过将各单独承诺的开启要求进行组合,可将使用该方案形成的两个承诺进行组合以使得经组合的承诺可被开启(即,揭示)。对承诺的操作造成对所承诺的值的操作。关于同态承诺方案的更多细节将在以下给出。零知识证明是两个实体(证明者和验证者)之间的方法,它使证明者能够在除一声明的真实性之外不揭示任何事物的情况下向验证者展示该声明是真实的。例如,在计量应用的情况下,用户可能希望在不向公用事业公司或其他提供者(验证者)揭示计量读数的情况下向该提供者证明他或她的账单是正确的。例如,零知识证明可以是允许证明者使接收者确信他们在不揭示一些所承诺的值情况下知道这些值的三方协议。在第一阶段,证明者生成对随机值的一组承诺,它想要为其提供知识的值中的每一个都有一个承诺。在第二方,通过将单向函数用于对随机值的这些承诺上,证明者生成质询。在第三方,证明者计算应变于这些秘密值、随机值、以及该质询的一组响应。验证者随后可以确保该响应满足公共等式,以使它自己确信证明者知道该秘密的所承诺的值。为了对证明知晓的零知识证明进行验证,给定质询和来自证明者的响应,验证者首先计算承诺。随后,它重新计算质询并检查它是否等于证明者给出的质询。非交互式零知识证明是特定类型的零知识证明,其中证明者能通过向验证者发送消息(例如,该消息包括质询和响应)(验证者随后可以检查该消息)来以零知识向验证者证明一声明。以此方式,验证者不需要向证明者发送任何信息,并且因而证明者与验证者之间没有交互。数字签名方案(在本文中称为签名方案)是使诸如文档、电子邮件、消息或其他内容等项能够由发送者以使接收者能够确信该内容实际上由所声称的发送者发送的方式来签署的密码方案。签名随后由任何人验证为是有效的并且被称为是“可普遍验证的”。可重新随机化的签名方案是这样的方案任何人可以生成许多签名,每一签名与另一签名稍微不同,并且接收实体能够验证这些签名中的任一个源自签署实体。给定有效的可重新随机化的签名,任何人(不需要秘密)可以在同一消息上生成另一有效的签名。这一新鲜签名不可连接到原始签名。签名方案可具有对拥有签名的有效零知识证明。图1是保护隐私的计量系统102的示意图。用户108消费可以是任何商品或服务的资源并且该消费由计量器100来监视。该资源由提供者114提供,在一些示例中提供者 114能够向计量器100发送通信(提供者并非必需能够向计量器发送通信)。为保护用户 108的隐私,计量器100的可信内核与提供者114之间不存在直接的无中介通信链路。提供者与计量器的同计量不相关的其他各方之间的直接通信可以存在。例如,以使提供者能够将电力供应打开和关闭。计量器100在地理上可以远离提供者来放置。用户108具有代理,在图1中示为保护隐私的账单生成器106。这是计算机实现的并且被安排成接收来自计量器100的经证实的读数104。保护隐私的账单生成器106具有被安排成接收来自提供者的经证实的定价策略110或价目表的输入组件。它将这些存储在经证实的定价策略存储中。保护隐私的账单生成器使用计量器读数以及定价策略来计算要由用户108支付给提供者的账单。计算得到的账单给出要支付的总额并且省去可损害用户隐私的详细的计量读数。在用户授权的情况下,计算得到的账单可包含计量读数细节。保护隐私的账单生成器106包括确定用于证实该账单正确的零知识证明的证明引擎,并且将该证明与账单112 —起发送给提供者。该账单不包含单独的计量读数或只包含用户已授权发布给提供者的计量读数。因为该证明是零知识的,所以它不公开任何用户消费数据并且用户108的隐私得到保护。提供者114处的计算机实现的验证者116接收经证实的账单和证明112,并通过检查该证明来验证该账单是正确的。这一验证是在不需要验证者或提供者访问任何计量读数的情况下来实现的。各方(计量器、提供者、以及账单生成器)中的每一方生成公钥私钥对,并在可信登记实体处登记其公钥。提供者计算承诺方案的参数,并将这些参数发送给计量器(在计量器将承诺输出给计量读数的示例中)和账单生成器106。
在本文描述的示例中,计量器100是防篡改的。即,假定计量器正确地监视资源的消费并提供准确的经证实的读数104。因为计量器是防篡改的,所以提供者、用户、或第三方难以用不能由用户和/或提供者检测到的未经授权的方式来更改计量器的工作。计量器的大小在物理上和功能上可以都是小型的,因为计量器只需要测量并签署消费。计量器可被认为是可信计算基础的一部分。这一可信计算基础的最小大小提供了用于安全工程设计的好处。例如,它允许更彻底的评估、易于验证、易于代码复查、更便宜的防篡改、以及更小的攻击面。保护隐私的账单生成器106独立于计量器100。因此,最终账单的计算可以在防篡改外壳之外完成,并且可以随时间或在顾客更换提供者时应用和修改各种策略,而无需修改可信计算基础。这在诸如电力和燃气计量等顾客经常更换提供者的应用领域中是有益的。在一些示例中,保护隐私的账单生成器106和计量器100作为更大的智能计量器的一部分来提供,该更大的智能计量器提供用户界面、计算最终账单和相关联的正确性证明、以及将这些发送给提供者。智能计量器可具有用于提供丰富功能的全CPU、显示器、局域网和广域网通信、以及远程升级能力。在这种情况下,智能计量器的不与消费测量和记账相关联的功能可以在可信内核之外执行。在这种情况下,顾客必须信任智能计量器的提供者会只发送保护隐私的账单信息。在其他示例中,保护隐私的账单生成器106可以使用用户108所拥有的家庭服务器来实现。这在顾客不愿信任智能计量器的情况下是有用的。在计量器不与提供者直接通信而是改为使用顾客的设备来进行网络访问的情况下,这也是适用的。在其他示例中,保护隐私的账单生成器106可被实现成诸如web服务等第三方服务。这提高了对故障或拒绝服务的稳健性。在这种情况下,用户108将它们的私密数据委托给第三方服务。在其他示例中,保护隐私的账单生成器106被合并在带有WAN连接的移动电话或其他计算设备中。现在描述其中由计量器提供的经证实的计量读数104是实际计量读数而非对这些计量读数的承诺的各实施例。如果计量器输出经证实的读数104(其是对计量读数的承诺),则这些计量读数的隐私性得到增强。这是因为计量器所输出的承诺不公开实际计量读数值,直至这些承诺被揭示为止。然而,在制造阶段在提供者114与计量器100之间存在勾结风险的情况下,提供者可能与计量器相勾结以知晓如何揭示计量器所输出的承诺并找出私密计量读数值。为了防止这样的勾结,计量器可被安排成输出经签署的计量读数而非对这些读数的承诺。在这种情况下,保护隐私的账单生成器106具有更困难的工作来确保计量读数的隐私性,因为它们是作为实际值而非作为承诺来提供的。现在参考图2-3给出这一类型的情况的示例。图2是保护隐私的账单生成器处的方法的示例,而图3是提供者处的要结合图2 的方法来使用的方法的示例。在图2和3的示例中,提供者以表的形式来发出离散定价策略,其中每一计量读数被映射到一价格或费用f。例如,在交通堵塞计费应用中,每一计量读数可以是街道名称并且费用可以是通行费。如在以下示例中进一步描述的,可以使用其他类型的定价策略。
账单生成器接收并可任选地验证200来自计量器的经签署的计量读数元组。每一元组是一组三个值(d,cons, other),其中d是初始化为0且在计量器每次输出新元组时递增的计数值。cons (消费)是消费计量读数(例如,街道名称)并且other (其他)是计量器提供的影响费用的任何其他信息,如读数的时间。账单生成器接收并可任选地验证202来自提供者的经签署的定价策略表的各行。 例如,该表的每一行可以将计量读数(例如,街道名称)映射到费用f。每一行都是分开签署的。账单生成器获取204经签署的计量读数之一(例如,指定街道的计量读数)。它随后找出206包含适当的费用&的经签署的表行(例如,该指定街道的费用)并将该经签署的表行重新随机化。账单生成器生成208对&的承诺并且生成210零知识证明以示出 它持有经证实的读数; 它持有经证实的表行; 消费(cons值)对读数和表行(例如,街道名称相同)而言是相同的;以及 所生成的承诺表示该表行的费用。如上所述,形成零知识证明的过程可包括三个步骤。第一,生成对随机值的一组承诺,账单生成器想要证明知道的各值中的每一个值都有一个承诺。第二,通过将单向函数用于对随机值的这些承诺上,账单生成器生成质询。第三,账单生成器计算作为这些秘密值、 随机值、以及该质询的函数的一组响应。该质询和响应被发送给执行验证过程的提供者。该证明被构建成非交互式地对用于形成该账单的所有计量读数和定价策略信息进行证明的位串。。该证明可以是可普遍验证的,即不需要秘密就能验证其正确性。该零知识证明是使用将消费数据映射到价格或费用的信息上的一个或多个签名来生成的。然而, 提供者处的验证者不能够获得在其上使用签名来计算证明的任何信息。否则,如果提供者找出这些签名,则提供者可能能够从费用映射到消费数据。该零知识证明是使用一个或多个构件块来生成的,在该示例中构件块是对拥有签名的非交互式零知识证明、证明所承诺的值是两个所承诺的值的乘积的证明、以及证明所承诺的值处于区间内的证明。本文稍后给出这些构件块的详细示例。如上所述,该零知识证明包括证明账单生成器持有经证实的计量读数并且持有经证实的表行的证明。即,该证明示出账单生成器拥有计量读数和表行上的签名。以零知识来证明拥有签名的目的是验证者不能获得在其上使用签名来计算该证明的任何信息。验证者只知道证明者(账单生成器)拥有由其签名公钥被用来验证该证明的一方所签署的签名。 在该示例中,提供者P计算将消费值映射到价格的若干签名并将它们发送给账单生成器U。 在记账时间段的结尾时,U计算要支付的总费用并将它连同证明该总费用被正确地计算的证明一起揭示给P。该证明不向P揭示与U的消费数据有关的任何信息。因此,U不向P揭示被用来计算费用的签名(将消费值映射到价格),因为签名揭示了与消费有关的信息。为了避免揭示签名,U计算证明拥有签名的零知识证明,这仍然允许P知道这些签名是由他根据定价策略来计算的并且因而是有效的。如上所述,账单生成器不向P揭示被用来计算费用的签名。在其中计量不被信任 (即,在制造阶段提供者与计量器之间可能存在勾结)的实施例中,所使用的签名方案至少部分地是可重新随机化的,以提供附加保护来免于向P揭示被用来计算费用的签名。例如,如图2所示,包含费用和消费的表行的签名由账单生成器来重新随机化206。因为这些签名是在被用来生成该证明之前由账单生成器来重新随机化的,所以不存在它们被提供者识别的风险。然而,并非必须使用可重新随机化的签名方案。对每一计量读数重复该生成对费用的承诺以及生成零知识证明的过程。账单生成器形成对总费用的承诺212并将包含证明质询和响应以及对总费用的承诺的经签署的消息发送给214提供者。该经签署的消息或者包括对策略条目的承诺和计量读数,或者包括它们的经重新随机化的签名。验证者使用这一信息来将行承诺(策略片段和计量读数)链接到每读数的最终费用。提供者继续进行来如参考图3所描述的那样验证该证明。现在参考图3来描述提供者处的过程,除了已经在上文描述了的签署并将定价策略发送给账单生成器的过程之外。如上所述,为了验证零知识证明,给定来自账单生成器的质询和响应,验证者可以计算承诺。随后,它重新计算质询并检查它是否等于账单生成器给出的质询。提供者接收300包含证明和对总费用的承诺的经签署的消息。它验证消息上的签名并随后验证302该证明。这通过对每一计量读数进行以下操作来完成 检查cons对读数和表行而言是相同的;以及 检查承诺是针对正确的表行的。提供者还检查306承诺的组合与对总费用的承诺相同,并且检查计量读数是顺序的308并且没有计量读数被省去(否则用户可能欺骗并避免支付所省去的计量读数)。为此,提供者可知道计量器在每一记账时间段输出的元组的数量(因为这一信息是公用域)。 另一可能性是使计量器能够在记账时间段的结尾时在该时间段内输出的元组的数量上输出签名。这一签名随后由账单生成器报告给提供者。提供者可任选地能够请求314账单生成器揭示某些指定的计量读数。如果账单生成器准许这一点,例如如果用户给予授权,则将适当的开口细节发送给提供者。提供者接收 316对这些承诺的开口,并且能够揭示指定的计量读数。在一些实施例中,提供者能够发起新定价策略。为了确保账单生成器使用最新定价策略,提供者可以生成318新密钥对。将该新公钥通知给账单生成器,并随后用该新密钥来签署新定价策略并将其发送给322账单生成器。定价策略中可包括有效性时间段。在该示例中,账单生成器向提供者揭示总费用,并且可通过任意支付渠道来支付该账单。在一些情况下,用户也可能想要隐藏总费用。这可以通过使用现在描述的预付费机制来实现。用户通过任意支付渠道来向提供者支付初始保证金。为了计算账单,账单生成器对保证金的新值(即,旧值减去该记账时间段期间的总费用)作出承诺,并以零知识来证明所承诺的值是保证金的正确更新且它是非负的,使得提供者可以检查用户仍然具有足够资金。在图2和3的示例中,提供者以表的形式来发出离散定价策略,其中每一计量读数被映射到一价格或费用f。可使用其他类型的定价策略。例如,在可能的消费值的集合是大型集合的情况下,线性定价策略是有益的。线性策略指定每单位价格,而非指定每一可能消费的价格。例如,如果该策略说每单位价格是3并且消费是6,则应付款是18。在线性定价策略的情况下,账单生成器和提供者要证明和验证更多。各类型的定价策略的其他示例包括但不限于区间策略、累积策略、以及由多项式函数定义的策略。区间策略对一定范围的消费量设置固定费用。累积策略考虑将消费值域分成各个区间,每一区间被映射到一价格, 该价格是每消费单位的价格。通过以这些方式来表示不同类型的定价策略,表达复杂的非线性定价策略是可能的。可以对任何时间间隔,如每天、每星期、或每月,应用任何策略。这些类型的策略的更多细节在下文给出。在一些示例中,用户信任计量器。即,用户信任计量器不会泄露除计量读数之外的更多信息。现在参考图4来描述这一类型的实施例的示例,其中资源是可使用云计算、作为服务的软件、或以任何其他方式来提供的计算资源。然而,可使用任何其他合适的资源。图4是用于对计算资源402的使用进行计量的保护隐私的计量系统的示意图。该计算资源可以是web服务,一个或多个CPU、GPU、或其他处理器,分布式计算资源,将软件作为服务来提供的一个或多个计算设备,社交网络服务,公共数据库,或其他计算资源。计算资源402可由用户设备400使用任何类型的通信网络404来访问。用户设备400可以是个人计算机、移动通信设备、膝上型计算机、个人数字助理、或能够使用通信网络404访问计算资源402的任何其他计算设备。用户设备400包括监视用户设备400对计算资源的使用的计量器406。如上所述, 计量器406在物理上和/或在功能上是防篡改的,并且如上所述被安排成提供经证实的计量读数和/或使用指定的承诺方案提供对计量读数的经证实的承诺。计量器406不必如图 4中示出的那样与用户设备400集成在一起。计量器可以位于与用户设备400进行通信以使得它能够以准确且可证实的方式来监视用户108对计算资源的消费的任何位置。用户设备400还包括保护隐私的账单生成器106,它与计量器406进行通信并且被安排成将零知识证明和保护隐私的账单发送给提供者114。如上所述,保护隐私的账单生成器106可以在远离用户设备400的其他位置处提供。提供者114控制对计算资源402的使用并且根据一个或多个定价策略来向对计算资源402的使用进行收费。它包括被安排成验证由账单生成器提供的零知识证明的计算机实现的验证者116。在安装了计量器之后,可以阻止该计量器与提供者之间的通信以保护用户的隐私。提供者能够与账单生成器进行通信来对用户的消费记账,并且在用户准许的情况下能够知道消费数据。在图4的示例中,用户信任计量器。如上所述,计量器因而能够输出对计量读数的承诺而非实际计量读数本身。同样,计量器和提供者所使用的签名方案可以是或不是具有证明拥有签名的有效证明的可重新随机化的签名方案。可以使用不可伪造且可普遍验证的任何签名方案。不可伪造的签名方案是这样的签名方案没有签名密钥的人在他们没有预先看到有效签名之前不能作出对消息的签名。可普遍验证的签名方案是这样的签名方案 具有公共验证密钥的任何人都可以验证签名消息对是真实的。图5是诸如图4的账单生成器或保护隐私的计量系统中使用的任何其他账单生成器等账单生成器处的方法的流程图,其中用户信任计量器不会泄露除计量读数之外的任何 fn息ο如上所述,各方(计量器M、提供者P、以及账单生成器U)中的每一方生成公钥私钥对,并在可信登记实体处登记其公钥。提供者计算附加同态承诺方案的参数并将这些参数发送给计量器和账单生成器。不必使用附加同态承诺方案。在初始化阶段,提供者能够选择将消费值映射到价格的定价策略。提供者签署该策略并将其发送给账单生成器。提供者稍后能够通过向账单生成器发送新签署的策略来更新定价策略。参考图5,现在描述账单生成器处的示例过程。账单生成器接收并验证500经签署的定价策略上的签名。账单生成器从计量器获取502对计量读数的经签署的承诺以及这些承诺的开口。 例如,在记账时间段期间,计量器产生如以上参考图2所描述的元组(d,cons,other)。计量器对cons和other作出承诺,并随后计算这些承诺上的以及d上的签名sc。计量器将该消息签名对和这些承诺的开口发送给账单生成器。在该示例中,计量器分别对cons和other 作出承诺。这使得U能够在揭示阶段选择性地向P公开一个值或另一个值。然而,在两个参数被一起公开或省去揭示阶段的应用中,计量器可在单个承诺中对这两个值作出承诺以提高效率。对于对计量读数的每一经签署的承诺504,账单生成器获取计量读数并根据定价策略来计算506该计量读数的价格。它计算508对该价格的承诺。同样,它生成零知识证明,该零知识证明证明 账单生成器持有对计量读数的承诺的开口 ; 账单生成器持有对价格的承诺的开口 ; 账单生成器持有对定价策略的签名,该定价策略在被用于计算计量读数的价格时给出计算得到的价格。如上所述,生成零知识证明的过程可包括生成质询和响应。该零知识证明包括证明拥有签名的证明和证明拥有对承诺的开口的证明。这确保该证明不向提供者公开可用于找出消费值的任何细节。在这两种情况下,该零知识证明包括证明拥有将消费值从计量器映射到价格的信息上的签名的证明。因为所使用的承诺方案是附加同态的,所以账单生成器能够合计512对价格的承诺的开口以获取对总费用的开口。这简化了账单生成器处的计算。在使用其他非同态承诺方案的情况下,总费用的开口是用任何其他合适的方式来计算得到的。例如,账单生成器可以构建对总费用的承诺并以零知识来证明这是对各部分费用的总和的承诺。账单生成器签署支付消息并将其发送给514提供者。该支付消息包括对总费用的承诺、总费用的开口、对计量读数的经签署的承诺、对价格的承诺、以及零知识证明质询和响应。在该示例中,对于每一 504经签署的对计量读数的承诺,账单生成器计算对要支付的价格的承诺和证明这一价格正确的证明。为了证明总费用是所有所承诺的价格的总和,账单生成器向P提供所有承诺的开口的总和。在不知道总费用时,计算每一元组的承诺和证明使得账单生成器能够从记账时间段的开头来开始账单的计算。在支付消息的计算被延迟直至账单生成器知道了元组为止的应用中,避免对价格的承诺的计算以及避免对每一元组计算证明知晓的一个证明是可能的。相反,对每一账单消息计算证明知晓的一个零知识证明是可能的。该证明示出要为每一元组支付的价格的总和等于总费用。
参考图6,现在给出提供者处的示例方法以与图5的示例方法结合使用。提供者接收600来自账单生成器的支付消息并验证签名以确信该消息实际上是从账单生成器接收到的。提供者还验证602计量器在对计量读数的承诺上的签名。以此方式,提供者确信计量读数确实实际上源自该计量器。提供者处的验证者验证604零知识证明。例如,这包括给定来自账单生成器的质询和响应来计算承诺。验证者重新计算质询并检查它是否等于账单生成器给出的质询。验证者合计606对价格的承诺以获取对总费用的承诺。它检查608在支付消息中接收到的开口是否是所合计的承诺的有效开口并从如果是则获取总费用。验证者还检查610对计量读数的承诺是顺序的并且没有计量读数被省去。在一些情况下,提供者可以请求612账单生成器揭示一些特定计量读数。这是可任选步骤。响应于这样的请求,在用户给出了用于公开该信息的授权的情况下,提供者可以接收614对指定计量读数的承诺的开口。在这种情况下,计量读数不能被伪造,并且提供者能够向第三方证明它们正确或不正确。现在给出实现图5和6的方法的协议的详细示例。在该示例中,使用包括算法(Keygen ;Sign ;Verify)(密钥生成器;签署;验证)的签名方案。Keygen(Ik)输出密钥对(sk,pk)。Sign(sk,m)输出消息m上的签名S。如果s 是m上的有效签名,则Verify (pk,s,m)输出接受(acc印t),都则输出拒绝(reject) 0这一定义可被扩展以支持多块消息m= Im1,...,mn}。提供了不可伪造性,由此p. p. t.(概率性多项式时间)对手不能够输出消息-签名对(s,m),除非该对手先前获得了 m上的签名。在该示例中,使用了包括算法ComSetup (设置承诺)、Commit (承诺)、以及 Open (开启)的非交互式承诺方案。ComSetup(Ik)生成承诺方案的参数par。。Commit (parc, x)输出对χ的承诺cx以及辅助信息openx。承诺是通过揭示(X,Openx)并检查Open (parc, cx, c, openx)是否输出接受来开启的。承诺方案具有隐藏属性和绑定属性。简言之,隐藏属性确保对χ的承诺cx不揭示关于χ的任何信息,而绑定属性确保cx不对另一值χ ‘开
启。如果给定分别具有开口(A,Opewjci)和( ,OpewjJ的两个承诺、和 ,存在一运算使得在c = cXi 、的情况下Open^are5C5X1 + x2openx、+ openXi)输出接受,则说承诺方案是附加同态的。另外,承诺方案还可提供承诺、与值&之间的运算Θ,O,使得在° =、 &的情况下 Open ( parc ,c,xxxx2, ορβηΧχ, x ^)输出接受。在该示例中,使用陷门承诺方案,其中算法ComSetup (Ik)生成par。和陷门td。给定具有开口 (X1, openXi)的承诺c和值x2,陷门td允许找出openXi使得算法 Open (parc ,c,x2, openXi)输出接受。在该示例中,证明知晓的零知识证明是证明者与验证者之间的双方协议。证明者向验证者证明知晓某些秘密输入(证明),该秘密输入可以在不向验证者公开这一输入的情况下满足某一声明。该协议满足两个属性。第一,它是证明知晓的证明,即证明者在不知道秘密输入的情况下基本不可能使验证者信服。技术上而言,基本上不可能存在从成功的证明者提取秘密输入的知识提取器。第二,它是零知识,即验证者除了该声明的真实性之外不知道任何事。技术上而言,对于可能的验证者,存在着这样的仿真器在不知道秘密输入的情况下,它产生不能与同真实证明者的交互区分开的分布。证明不可区分性是要求该证明不揭示证明者(在所有可能的证明中)使用的那些证明的较弱属性。在该示例中,账单生成器可以使用以下证明中的任何一个或多个来生成零知识证明证明知晓秘密算法的证明;证明知晓不同表示中的某一元素的等同性的证明;具有区间检查的证明、范围证明、以及前述证明中的任何两个的分开或结合的证明。这些结果通常以Σ protocol ( Σ协议)的形式给出,但在随机谕示(oracle)模型中它们可经由 Fiat-Shamir试探法被转换成非交互式零知识论据。在引用上述证明时,本文遵循Camenisch和Stadler对证明知晓离散算法的各种证明和证明与离散算法有关的声明的有效性的证明引入的记法。ΝΙΡΚ{( , β,δ)\γ = g0ag/ 八罗=J;"八 J < 5}表示“知晓整数《、
β、以及S的零知识证据,使得yJ = JT 以及 A 彡 α 彡 B 成立。,,其中7,而,&,55,^是具有相同次数的一些群7,而,&,爻€,€的元素。(注意, y和J5的表示中的一些元素是相同的)。约定如下圆括号中的字母(在该示例中是α、β、 和δ)表示已证明知晓的数量值,而其他值对验证者而言是已知的。在本文中,证明拥有签名的非交互式证明表示为NIPK{(x, sx) Verify (pk, χ, sx)=接受}。在该示例中,M、U、以及P所使用的签名方案表示为(Mkeygen ;Msign ;Mverify)、 (Ukeygen ;Usign ;Uverify)、以及(Pkeygen ;Psign ;Pverify)。H 表示抗冲突散列函数。在设置阶段,M运行Mkeygen (Ik)来获取密钥对(skM,pkM),U运行Ukeygen (Ik)来获取密钥对 (Skl^pku),且P运行Hceygen(Ik)来获取密钥对(skP,pkP)。每一方向可信登记实体登记其公钥,并通过查询该可信登记实体来检索来自其他方的公钥。P运行ComSetup (Ik)来获取 par。和陷门 td,计算证明 Ji = NIPKKtd) (parc, td) 一 ComSetup (Ik)}并将(parc, ji)发送给U且将(parc)发送给M。U验证π。提供隐私的计量的示例协议包括以下阶段,初始化、消费、支付、以及揭示。现在更详细地描述这些阶段。初始化。在用(策略,Τ)激活P时,P运行SignP0liCy(Skp,Τ)(签署策略)来获取经签署的策略Ts。P将Ts发送给U。U运行VerifyPolicy (pkP,Ts)(验证策略)来获取一个位b。如果b = O,则U拒绝该策略。否则,U存储T s。消费。在用(consume, cons, other)((消费,消费,其他))激活M时,M使计数器dM(初始化为0)递增,并运行SignConsumption (skM,par。,cons, other, dM)(签署消费)来获取经签署的消费SC。M将(SC)发送给U。U递增计数器Clu并运行VerifyC0nsUmpti0n(pkM, par。,SC, du)(验证消费)来获取一个位b。如果b = 0,则U拒绝SC并向P发送指示计量器不正常工作的消息。否则,U将SC附加到存储所有消费的表T。支付。在用(payment)(支付)激活P时,P将(payment)发送给U。令N是U自接收到前一消息(payment)以来接收到的(consume,· · ·)(消费)消息的数量。U运行Pay(Sku,parc,UWu-tdJ)(支付)来获取支付消息Q并将(Q)发送给P。P运行VerifyI^yment(pkM, Pku, pkP, par。,Q,dP)(验证支付)来获取(b,d' p)。如果b = 0,则P拒绝该支付,而否则接受它并设置dp= (Τ ρ。揭示。在用(reveal,i)(揭示)激活P时,P检查i e
并且将⑴发送给U。U运行Reveal (sku;T, i)(揭示)来获取开口消息R并将(R)发送给P。P选取包含i的支付消息Q并运行VerifyReveal (p、,par。,Q,R,i)(验证揭示)来获取一个位b。如果b = 0,则 P将(reject, Q,R)(拒绝)发送给U,而否则它将(accept)(接受)发送给U。现在指定在各示例协议阶段中使用的函数的示例。SignPolicy(skP,T)。对于每一元组(cons, other, price) e T ,计算 sp = Psign(skP<cons, other, price(如以下更详细地描述的,签署元组(c0ns,0ther,price)(消费,其他,价格)的方式取决于要被签署的特定策略T。)令丫,= (CWWpO沩巧,pWce,.,sp,.)=是消息-签名元
组的集合。输出Ts。VerifyPolicy (pkp, T s)。对于i = 1至Ij n,将T s解析成(con、0认巧·,PrZcepSPi)二,且对于i = 1至Ij n,运
行Pverify (pkP,sPi,〈cons" Otheri, price,)。如果这些输出中的任一个是拒绝,则输出b =0,而否则输出b = 1。SignConsumption (skM, parc, cons, other, dM)。执冲亍(ccons, opencons) = Commit (parc, cons)禾口 (Cother, openother) = Commit (parc, other)两者。运行 sc = Msign (skM, <dM, Ccons, cother>)并输出 SC = (dM, cons, opencons, Ccons, other, openother, Cother, sc)。VerifyConsumption (pkM, parc, SC, (Iu).夺 f肖肩、SC 角军析成(dM, cons, opencons, Ccons, other, openother, Cother, sc)。计算 Open (parc, Ccons, cons, opencons)禾口 0pen(parc, Cother, other, openother),并且如果它们中的任一个输出拒绝则输出b = O。运行Mverify (pkM,sc, <(! , Ccons, cother>)并且如果该输出是拒绝则输出b = O。否则输出b= 1。Pay(sku,parc,Ts,T)。对于每一条目(dM, cons, opencons, Ccons, other, open。ther, Cother, sc) e Τ,计算 price (价格)=T (cons, other),运行(cprice, openprice) = Commit (parc, price)并计算非交互式的证明不可区分开的证明η 1NIPK {(price, openprice, cons, opencons, other, openother, sp)(ccons, opencons) = Commit (parc, cons) Λ(cother, openother) = Commit (parc, other) Λ(cprice, openprice) = Commit (parc, price) ΛPverify (pkP, sp, <cons, other, price = accept}令N是T中的条目的数量。计算总费用
权利要求
1.一种保护隐私的记账系统,包括被安排成至少实现以下组件的一个或多个计算设备被安排成在记账时间段期间接收来自计量器(100)的经证实的计量读数(104)的输入组件,所述计量读数指示用户对公用事业、商品、或服务的消费,所述计量器被安排成测量所述用户(108)对公用事业、商品、或服务的消费;经证实的定价策略存储,所述定价策略存储被安排成持有作为多个表行的至少一个经证实的定价策略以及由所述公用事业、商品、或服务的提供者来签署的所述多个表行中的至少一个的至少一个签名,所述经证实的定价策略指示所述公用事业、商品、或服务的消费的定价;被安排成至少部分地基于所述经证实的定价策略和所述经证实的计量读数来生成账单(112)的账单生成器(106),所述账单包括在所述记账时间段期间消费的总费用并省去了所述经证实的计量读数;被安排成生成展示所述账单是从所述经证实的计量读数和所述经证实的定价策略来形成的非交互式零知识证明的证明引擎,所述零知识证明包括用于证明拥有被用来计算所述总费用的所述表行上的签名的质询和响应;被安排成接收所述账单和非交互式零知识证明的验证者(116);所述验证者被安排成在不获取所述经证实的计量读数的任何知识的情况下,通过给定所述非交互式零知识证明的质询和响应并至少部分地基于所述响应来计算承诺、计算第二质询并检查该第二质询是否等于所述零知识证明的各质询中的第一质询,以验证所述零知识证明。
2.如权利要求1所述的保护隐私的账单系统,其特征在于,所述账单生成器被安排成向所述验证者(116)发送包括所述非交互式零知识证明质询和响应、以及对被用于计算所述总费用的定价策略的各段的承诺、以及对所述计量读数的承诺的经签署的消息,并且其中所述验证者被安排成将所述经签署的消息账单承诺链接到对每计量读数费用的承诺。
3.如权利要求1所述的保护隐私的账单系统,其特征在于,所述账单生成器被安排成向所述验证者(116)发送包括对与各单独计量读数相关联的费用的承诺的经签署的消息, 并且其中所述验证者被安排成检查对这些费用的承诺的组合与对所述总费用的承诺相同。
4.如权利要求1所述的保护隐私的账单系统,其特征在于,所述账单生成器被安排成向所述验证者(116)发送包括对所述计量读数的承诺的经签署的消息,并且其中所述验证者访问所述记账时间段期间预期计量读数的数量,并且其中所述验证者检查计量读数的该预期数量被用于计算总费用且检查这些计量读数是顺序的。
5.如权利要求1所述的保护隐私的账单系统,其特征在于,所述验证者(116)被安排成向所述账单生成器发送揭示一些指定的计量读数的请求,并且其中所述账单生成器被安排成只有在所述用户授权的情况下才揭示所指定的计量读数。
6.一种计算机实现的生成对由提供者提供的公用事业、商品、或服务的消费的账单 (112)的方法,所述方法包括在记账时间段期间,接收来自计量器(100)的经证实的计量读数(104),所述计量器被安排成测量用户(108)对所述公用事业、商品、或服务的消费,所述计量读数指示所述用户对所述公用事业、商品、或服务的消费;接收来自所述提供者的经证实的定价策略,所述经证实的定价策略指示对所述公用事业、商品、或服务的消费的定价;至少部分地基于所述经证实的定价策略和所述经证实的计量读数来生成账单(112), 所述账单包括在所述记账时间段期间消费的总费用并省去了所述经证实的计量读数;生成展示所述账单是从所述经证实的计量读数和所述经证实的定价策略形成的证明; 所述证明是在不揭示所述经证实的计量读数的情况下可普遍验证的。
7.如权利要求6所述的方法,其特征在于,所述证明是非交互式零知识证明,其中证明者可以用零知识来向验证者证明一声明,而无需所述验证者向所述证明者发送任何信息。
8.如权利要求7所述的方法,其特征在于,包括使用将所述计量读数映射到费用的所述经证实的定价策略的各部分上的签名来生成所述证明,并且其中所述证明包括对拥有这些签名的零知识证明。
9.如权利要求6所述的方法,其特征在于,所述计量读数包括多个计量读数,并且接收所述经证实的定价策略包括作为多个经签署的表行来接收并存储所述经证实的定价策略, 每一表行将所述多个计量读数中的特定计量读数映射到所述经证实的定价策略的费用;并且其中生成所述证明包括生成所述证明以包括对拥有被用于生成所述总费用的所述表行上的签名的零知识证明和对被用于生成所述总费用的所述表行中的值与对所述账单的总费用的承诺中的值之间的相等性的零知识证明,其中承诺是以隐藏的形式以在隐藏的值被揭示给接收者之前发送者不能够改变该隐藏的值的方式发送给接收者的值。
10.如权利要求6所述的方法,其特征在于,接收所述经证实的定价策略包括作为多个经签署的表行来接收所述经证实的定价策略,每一表行将特定计量读数映射到每消费单位费用;并且其中生成所述证明包括生成所述证明以包括证明拥有被用于生成所述账单的总费用的所述表行上的签名的零知识证明、对相等性的零知识证明、以及对所述总费用的承诺中的值等于所述经证实的计量读数的消费值乘以所述经证实的定价策略的每单位消费费用的零知识证明。
11.如权利要求6所述的方法,其特征在于,接收所述经证实的定价策略包括作为多个经签署的表行来接收所述经证实的定价策略,每一表行将一定范围的消费值映射到一费用;并且其中生成所述证明包括对于每一计量读数,生成所述证明以包括对拥有适当表行上的签名的零知识证明、所述计量读数消费值处于该经签署的表行的消费值范围内的零知识证明、以及对该经签署的表行中的费用与对所述费用的承诺中的值之间的相等性的零知识证明。
12.如权利要求6所述的方法,其特征在于,接收并存储所述经证实的定价策略包括作为多个经签署的表行来接收并存储所述经证实的定价策略,每一表行将一定范围的消费值映射到每消费单位费用;并且其中生成所述证明包括对于每一计量读数,生成所述证明以包括对拥有适当表行上的签名的零知识证明、所述计量读数消费值处于该经签署的表行的消费值范围内的零知识证明、以及对所述费用的承诺中的值等于所述计量读数的消费值乘以所述每消费单位费用的零知识证明、以及对相等性的另一零知识证明;其中承诺是以隐藏的形式以在隐藏的值被揭示给接收者之前发送者不能够改变该隐藏的值的方式发送给接收者的值。
13.如权利要求6所述的方法,其特征在于,接收并存储所述经证实的定价策略包括作为多个经签署的表行来接收并存储所述经证实的定价策略,每一表行包括将一定范围的消费值映射到费用的多项式函数;其中承诺是以隐藏的形式以在隐藏的值被揭示给接收者之前发送者不能够改变该隐藏的值的方式发送给接收者的值。
14.一种计算机实现的验证对公用事业、商品、或服务的消费的账单的方法,所述方法包括接收经签署的支付消息,所述经签署的支付消息包括具有总价格并省去消费值的账单 (112);以及证实所述账单的非交互式零知识证明,所述证明包括第一质询和响应;使用数字签名方案来验证所述支付消息上的签名;在不找出被用来计算所述总价格的消费值的情况下,通过给定所述质询和响应来计算承诺并计算第二质询并且检查该第二质询是否等于在所述支付消息中接收到的第一质询来验证所述零知识证明。
15.如权利要求14所述的方法,其特征在于,所述经签署的支付消息包括对被用于计算所述账单(11 的计量读数的承诺;所述方法还包括访问计量读数的预期数量并检查所述支付消息账单承诺的数量等于计量读数的预期数量以及检查对被用来计算所述账单的所述计量读数的承诺是顺序的。
全文摘要
本发明涉及保护隐私的计量。描述了保护隐私的计量,诸如用于电、燃气、或水的计量,使用云计算资源的计量,交通堵塞计费以及其他计量应用。在各示例中,细粒度的用户消费数据被保持私密,并且不公开给用户所使用资源的提供者。在各示例中,账单生成器接收经证实的计量读数以及经证实的定价策略,并且生成省去细粒度用户消费数据的账单。例如,账单生成器生成证明该账单正确的零知识证明并且将该证明与该账单一起发送给提供者。在各示例中,提供者能够使用该零知识证明来检验该账单是正确的,而无需找出用户的私密消费数据。在一实施例中,定价策略被存储成表的经签署的各行,以便能够高效地生成零知识证明。
文档编号G06Q30/02GK102446329SQ20111030803
公开日2012年5月9日 申请日期2011年9月28日 优先权日2010年10月8日
发明者A·R·杜兰, G·达纳齐 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1