用于传达秘密的方法和系统与流程

文档序号:23396160发布日期:2020-12-22 14:04阅读:108来源:国知局
本公开涉及一种计算机实现的系统和方法,并且更具体地,涉及一种用于转移数字资产的计算机实现的系统和方法。本发明特别适合但不限于基于区块链的数据传输系统。
背景技术
::在本文中,我们使用术语“区块链”来包括所有形式的电子的、基于计算机的分布式账本。这些包括基于共识的区块链和交易链技术、许可和未许可的账本、共享账本及其变体。区块链技术最广为人知的应用是比特币账本,尽管已经提出并开发了其他区块链实施。尽管为了方便和说明的目的在本文中可以提及比特币,但是应当注意,本公开不限于与比特币区块链一起使用,并且替代性的区块链实施和协议落入本公开的范围内。术语“用户”在本文中可以指基于人或基于处理器的资源。区块链是一种点对点的电子账本,其实现为基于计算机的分散式分布式系统,该系统由区块组成,而区块又由交易组成。每个交易是一种数据结构,该数据结构对数字资产控制权在区块链系统中的参与者之间的转移进行编码,并且包括至少一个输入和至少一个输出。每个区块都包含前一个区块的散列,使得区块被链接在一起以创建自区块链创建以来已写入区块链的所有交易的永久、不可更改的记录。交易包含嵌入到其输入和输出中的称为脚本的小程序,这些程序指定如何以及由谁可访问交易的输出。在比特币平台上,这些脚本是使用基于堆栈(stack)的脚本语言编写的。为了将交易写入区块链,必须对其进行“验证”。网络节点(矿工)执行工作以确保每笔交易均有效,而无效交易则被网络拒绝。安装在节点上的软件客户端通过执行其锁定和解锁脚本来对未花费的交易(utxo)执行此验证工作。如果锁定和解锁脚本的执行评估为真(true),则该交易有效,并将该交易写入区块链。因此,为了将交易写入区块链,其必须:i)由接收交易的第一个节点验证–如果交易被验证,则该节点将其中继到网络中的其他节点;ii)被添加到矿工建造的新区块中;iii)被开采,即添加到过去交易的公共账本中。尽管区块链技术因使用加密货币实施而闻名,但是数字企业家已开始探索使用比特币所基于的加密安全系统以及可以存储在区块链上的数据来实施新系统。如果区块链可以用于不限于加密货币领域的自动化任务和流程,那将是非常有利的。这样的方案将能够利用区块链的好处(例如,事件、分布式处理等的永久性、防篡改记录),同时在其应用程序中更具通用性。在各方之间交换数据的情况下,通常期望数据文件的接收方能够仅访问选择的一个或有限数量的文件,而不能使数据的发送方知道访问了哪个文件。这种布置被称为遗忘传输(oblivioustransfer),并且在下面参照图1至图3进行描述。参照图1,“遗忘传输”是一种用于控制对资源(文件、数据库记录或任何其他数字资产)的访问并以增强的隐私性来传输该资源的方法。遗忘传输的基本问题是定义一种机制,其中发送方不应该知道在发送给接收方的许多文件中接收方打开了哪个文件。爱丽丝(alice)是发送方,鲍勃(bob)是接收方,m是消息,b是消息的索引。爱丽丝发送许多消息,鲍勃选择他希望接收和解码的消息。爱丽丝不知道鲍勃选择了哪一个。参照图2,可以通过考虑迪菲-赫尔曼(dh)(diffie-hellman)密钥交换[10]来定义基本机制。从cdh(核心迪菲-赫尔曼(corediffiehellman))密钥交换中可以看出,如图2所示,清楚正在交换哪些密钥,因此,根据迪菲-赫尔曼协议,清楚将解密哪个消息。c是加密的消息,e是使用私钥k和消息m的参数的加密函数,d是使用加密消息c和私钥k的参数的解密函数。在某些情况下,第三方知道哪个消息正在被解密可能导致数据安全性降低,从而可能导致未经授权的第三方访问数据。现在参照图3,描述了dh机制的变体以适应遗忘传输。可以看出,接收方将多个密钥发送回发送方,只有一个是真实密钥,其他是“虚拟”或冗余密钥。图3所示的布置与图2所示的标准核心迪菲-赫尔曼(cdh)协议之间的主要区别在于,密钥从鲍勃传回爱丽丝,其取决于位“b”的值。该计算由鲍勃完成。然后,爱丽丝基于她从鲍勃那里接收到的密钥构造了两个密钥。爱丽丝将这两个密钥发回给鲍勃。然后,鲍勃能够使用他从爱丽丝接收到的密钥以及从爱丽丝传给他的先前值计算出的密钥来解密从爱丽丝接收到的消息。与图2的布置的情况一样,e是加密算法,d是解密算法。鲍勃只能解密其中一个消息对,而其他组合是“虚拟”消息,因此不起作用。可以看出,使用迪菲-赫尔曼机制的变体,爱丽丝对鲍勃解密的消息保持“遗忘”。在此示例中,鲍勃仅可以解密两个可能消息中的一个。因此,期望通过提供适用于区块链的遗忘传输机制来提高数据安全性。现已设计出这样的改善的方案。技术实现要素:因此,根据本公开,提供了如所附权利要求中限定的方法和系统。可以提供一种从发送方向接收方传达至少一个秘密的方法,所述方法包括:从发送方向接收方发送信息,所述信息标识接收方可选择的多个秘密;在发送方处从接收方接收至少一个第一公钥,第一公钥对应于被接收方选择用于访问的相应的第一所述秘密,其中,第一公钥或每个所述第一公钥是椭圆曲线密码系统的公钥/私钥对的一部分,与所述第一公钥对应的第一私钥对接收方是可访问的;在发送方处从接收方接收至少一个第二公钥,第二公钥对应于未被接收方选择用于访问的相应的第二所述秘密,其中,第二公钥或每个所述第二公钥是所述椭圆曲线密码系统的公钥,与所述第二公钥对应的相应的第二私钥对接收方是不可用的;从发送方向接收方发送通过对应的所述第一公钥加密的至少一个所述第一秘密;以及从发送方向接收方发送通过对应的所述第二公钥加密的至少一个所述第二秘密;其中,第一秘密或每个所述第一秘密是所述接收方通过对应的所述第一私钥可访问的,第二秘密或每个所述第二秘密对所述接收方是不可访问的,所述发送方不能区分所述第一秘密和所述第二秘密。可以提供一种接收从发送方发送到接收方的至少一个秘密的方法,所述方法包括:在接收方处接收信息,所述信息标识接收方可选择的多个秘密;从接收方向发送方发送至少一个第一公钥,第一公钥对应于被接收方选择用于访问的相应的第一所述秘密,其中,第一公钥或每个所述第一公钥是椭圆曲线密码系统的公钥/私钥对的一部分,与所述第一公钥对应的第一私钥对接收方是可访问的;从接收方向发送方发送至少一个第二公钥,第二公钥对应于未被接收方选择用于访问的相应的第二所述秘密,其中,第二公钥或每个所述第二公钥是所述椭圆曲线密码系统的公钥,与所述第二公钥对应的相应的第二私钥对接收方是不可用的;在接收方处从发送方接收通过对应的所述第一公钥加密的至少一个所述第一秘密;以及在接收方处从发送方接收通过对应的所述第二公钥加密的至少一个所述第二秘密;其中,第一秘密或每个所述第一秘密是所述接收方通过对应的所述第一私钥可访问的,第二秘密或每个所述第二秘密对所述接收方是不可访问的,所述发送方不能区分所述第一秘密和所述第二秘密。可以提供一种系统,包括:处理器;以及存储器,包括可执行指令,所述可执行指令由于处理器的执行而导致系统执行本文所述的计算机实现的方法的任何实施例。可以提供一种其上存储有可执行指令的非暂时性计算机可读存储介质,所述可执行指令由于由计算机系统的处理器执行而导致计算机系统至少执行本文所述的计算机实现的方法的实施例。附图说明将参考附图描述根据本公开的各种实施例,其中:图1示出发送方与接收方之间的消息传输;图2示出迪菲-赫尔曼(diffiehellman)密钥交换的操作;图3示出遗忘传输的操作原理;图4和图5显示了遗忘传输过程;图6是示出其中可以实现各种实施例的计算环境的示意图。具体实施方式参照图4,显示了一种用于在比特币区块链上进行从发送方鲍勃到接收方爱丽丝的遗忘传输过程的方法。鲍勃首先创建n个密钥:{k1,k2,...,kn}。通过国际专利申请wo2017/145016中公开的方法,将它们确定地创建为椭圆曲线数字签名算法(ecdsa)主密钥k0的子密钥。这些n个密钥将用于加密n个不同的值。爱丽丝试图访问这些值中的一个值且仅一个值,而不让鲍勃知道选择了哪个值。鲍勃试图确保爱丽丝在每次交换中仅能访问一个值和一个密钥。该过程由爱丽丝和鲍勃设置椭圆曲线密码术(ecc)/椭圆曲线数字签名算法(ecdsa)系统(诸如使用比特币)的曲线参数而开始。根据ecdsa机制daqb=dadbg=dbdag=dbqa其中爱丽丝计算点。(xk,yk)=daqb并且鲍勃计算点。(xk,yk)=dbqaxk是共享的秘密。da和db分别是爱丽丝和鲍勃的私钥。qa和qb分别是公钥。根据这种基本算法,可以创建一种交换数字对的方法。可以将此逻辑重复log2(n)次,以选择n个值中的一个值。通过确保仅有一对交换的密钥有效来完成此过程。该第一步骤允许爱丽丝从2个可能的选择k0和k1中选择一个值且仅一个值。1.爱丽丝和鲍勃首先就值c达成共识。他们使用ecdsa交换来选择当前区块高度的散列和由其主密钥生成的秘密。在国际专利申请wo2017/145016中更详细地描述了这种交换,c=h(bh|s)或c=h(bh|s|blockhash)其中h()是散列函数,|是串联运算符(concatenateoperator)。bh是区块高度。s是例如通过国际专利申请wo2017/145016中公开的方法生成的共享的秘密。blockhash=区块散列应注意,可以使用任何随机值,但是区块高度是外部商定随机性(externalagreedrandomness)的良好来源。2.爱丽丝选择值。她把这个值自己保密。该值(i)代表鲍勃在ki创建的密钥。3.然后爱丽丝通过国际专利申请wo2017/145016的方法从她的主密钥对da/qa中创建子密钥,并且现在具有qa0,其中qa是qa0的主密钥。爱丽丝将首先使用ecdsa交换让鲍勃知道qa0。鲍勃将进行加密。鲍勃对爱丽丝的选择ki进行加密。为了确保鲍勃不知道爱丽丝选择的i=0或1,爱丽丝还创建了诱饵公钥(decoypublickey)qa1。4.鲍勃不知道哪个是真实值。在爱丽丝希望使用私钥da0解密所选值的情况下爱丽丝创建子密钥:da0,对应于公钥qa0=(xa0,ya0)爱丽丝知道da0并且因此知道qa0爱丽丝还知道:da0qa1=da0da1g=da1da0g=qa0da1爱丽丝知道da0,但是不能计算da1。接下来,鲍勃需要c≡xa0=da0qa1=da1qa0爱丽丝知道da0并且可以计算qa1。qa0是da0的产物并且为爱丽丝所知。5.爱丽丝给鲍勃两个密钥。qa0qa1即使爱丽丝可以仅解码针对qa0加密的信息。即,爱丽丝具有针对qa0的私钥da0,但是没有针对qa1的私钥da1。6.鲍勃对爱丽丝加密ki。在该示例中,k0是爱丽丝可以加密的那个。即,当鲍勃将k0加密成qa0并且将ki加密成qa1时,鲍勃不知道爱丽丝是否想要k0或ki,但是知道她将仅具有解密该包所需的密钥da0或da1中的一个。7.鲍勃选择两个随机值r0和r1。鲍勃计算两个密钥:qr0=r0gqr1=r1g并将这些发送给爱丽丝。8.鲍勃计算:h(qa0)以及h(qa1)9.鲍勃制作公钥。qab0=(h(qa0)+r0)gqab1=(h(qa1)+r1)g鲍勃分别用qab0和qab1加密k0和ki。鲍勃向爱丽丝发送qr0和qr1:qr0=r0gqr1=r1g.10.爱丽丝不能反转以得到r0或r1。11.爱丽丝需要决定,但仅能解密一个值。(空白密钥没有用)。爱丽丝和鲍勃都受到如下限制:爱丽丝可以选择解密(接收)k0或k1,但不是二者,鲍勃不知道是哪一个,因此他可以将两者都发送给她。在2选1系统中,爱丽丝有两个秘密,但仅试图露其中一个。同时,鲍勃不希望爱丽丝知道他想要的两个秘密中的哪个。鲍勃仅对爱丽丝的秘密中的一个感兴趣,但不希望爱丽丝知道哪个秘密。鲍勃仅在爱丽丝不知道鲍勃想要什么被回答的时候接收一个答案。图5显示了非交互的遗忘传输协议的操作,该协议开始于爱丽丝向鲍勃发送两个值:k0和k1。这些是根据鲍勃的公钥和私钥发送的,使得鲍勃能够提取两个密钥中的一个且仅其中一个。使用以(p)作为素数的有限域zp上的椭圆曲线。所有值都在0与(p-1)之间,并且所有计算都以p为模完成。椭圆曲线方程的一般形式为:y2modp=(x3+ax+b)modp。满足椭圆曲线方程的点(x,y)集由ep(a,b)给出。椭圆曲线上的点t=(x1,y1)的阶r被定义为最小正整数r,使得:rt=0,其中0为无穷远的点。点g是ep(a,b)中的基点。选择该值以使阶r非常大。系统的安全性基于难以解决的椭圆曲线离散对数问题(ecdlp)。求解点q的ecdlp等效于求解整数k,使得q=kp(或q=kg)其中q和p是已知的。爱丽丝和鲍勃均使用同一椭圆曲线和基点g。爱丽丝选择两个值k0和k1,并且生成两个点p0和p1p0=k0gp1=k1g.值k0和k1不为鲍勃所知并且用作爱丽丝持有的秘密密钥。这些值可以使用国际专利申请wo2017/145016中描述的交换过程来确定。如果爱丽丝具有主密钥ksa,则值k0和k1可以连接到ksaksa+v0=k0ksa+v1=k1其中v0和v1是爱丽丝已知的值。此过程可以在遗忘传输消息交换之前完成。协议如下定义:参照图5,以基点g以及点p0和p1开始。让:p=p0+p1以及i∈{0,1}.1.鲍勃通过选择随机整数m并如下设置来创建公钥(u0,u1):ui=mg,其中ui代表u0或u1中的哪个对应于鲍勃已经选择的k0或k1。鲍勃将公钥u0和u1发送给爱丽丝。接下来,让ub=mg-piu1-i=p1-i-ub鲍勃的私钥为m。可以使用如国际专利申请wo2017/145016中描述的过程来导出m。2.爱丽丝选择两个随机整数a0和a1并且计算:v0=a0g以及v1=a1g然后爱丽丝计算:w0=a0u0以及w1=a1u1爱丽丝将值v0,v1发送给鲍勃。然后爱丽丝计算:以及其中代表通过专用或密码(orcipher)对秘密值si的二进制表示进行加密,该或密码将wi的二进制表示作为加密密钥。爱丽丝还将x0和x1发送给鲍勃。3.鲍勃计算值:mvi=maig=wi这允许他将si提取为si为第i个秘密。应该注意的是,鲍勃无法提取s1-i,因为他无法计算n,其中u1-i=ng。爱丽丝不知道u0或u1的哪个值等于mg,使得鲍勃能够确定m的值。因此,爱丽丝不知道鲍勃接收到了两个秘密中的哪个。爱丽丝可以通过如下来验证鲍勃的公钥是否正确形成1.检查ui+u1-i=p2.计算ub=ui-pi这用于验证其是否为u1-i-p1-i的负数协议的安全性方面如下:1.爱丽丝无法判断鲍勃已经接收到两个秘密中的哪个。2.如果离散对数问题(dlp)对于椭圆曲线成立,则协议的安全性成立。3.如果爱丽丝遵循协议,则鲍勃无法发现她的秘密中的一个。该系统允许对交换的公平控制。鲍勃和爱丽丝可以在不知道所交换内容的情况下交换信息。这可以用于控制数据或信息的所有浏览,对数据库和其他记录(例如,医疗文件)的访问,并且可以对该信息进行一点一点地分割和泄露,并记录哪些当事方看到了什么信息。它可以消除对可信服务器或第三方的需求。现在转向图6,提供了可以用于实践本公开的至少一个实施例的计算装置2600的说明性简化框图。在各个实施例中,计算装置2600可以用于实现以上示出和描述的任何系统。例如,计算装置2600可以被配置为用作数据服务器、网络服务器、便携式计算装置、个人计算机或任何电子计算装置。如图6中所示,计算装置2600可以包括:一个或多个处理器,具有一个或多个级别的高速缓冲存储器;以及存储器控制器(共同标记为2602),可以被配置为与包括主存储器2608和持久性存储器2610的存储子系统2606通信。主存储器2608可以包括如图所示的动态随机存取存储器(dram)2618和只读存储器(rom)2620。存储子系统2606和高速缓冲存储器2602并可以用于存储信息,诸如与本公开中所描述的与交易和块相关联的细节。处理器2602可以用于提供如本公开中所描述的任何实施例的步骤或功能。处理器2602还可以与一个或多个用户界面输入装置2612、一个或多个用户界面输出装置2614以及网络接口子系统2616通信。总线子系统2604可以提供用于使计算装置2600的各个组件和子系统能够按预期彼此通信的机制。尽管总线子系统2604被示意性地示出为单个总线,但是总线子系统的替代实施例可以利用多个总线。网络接口子系统2616可以提供与其他计算装置和网络的接口。网络接口子系统2616可以用作用于从其他系统接收数据以及从计算装置2600向其他系统传输数据的接口。例如,网络接口子系统2616可以使数据技术人员能够将装置连接到网络,使得数据技术人员可以能够在远程位置(诸如数据中心)将数据传输到装置并从装置接收数据。用户界面输入装置2612可以包括一个或多个用户输入装置,诸如键盘;指点装置,诸如集成鼠标、轨迹球、触摸板或图形输入板;扫描仪;条形码扫描仪;包含在显示器中的触摸屏;音频输入装置,诸如语音识别系统、麦克风;以及其他类型的输入装置。通常,术语“输入装置”的使用旨在包括用于将信息输入到计算装置2600的所有可能类型的装置和机制。一个或多个用户界面输出装置2614可以包括显示子系统、打印机或诸如音频输出装置等的非可视显示器。显示子系统可以是阴极射线管(crt),诸如液晶显示器(lcd)、发光二极管(led)显示器的平板装置,或投影仪或其他显示装置。通常,术语“输出装置”的使用旨在包括用于从计算装置2600输出信息的所有可能类型的装置和机制。一个或多个用户界面输出装置2614可以用于例如呈现用户界面,以在这样的交互可以是适当的时,促进用户与执行本文所描述的过程和其中的变化的应用的交互,。存储子系统2606可以提供计算机可读存储介质,所述计算机可读存储介质用于存储可以提供本公开的至少一个实施例的功能的基本编程和数据构造。当由一个或多个处理器执行时,应用程序(程序、代码模块、指令)可以提供本公开的一个或多个实施例的功能,并且可以被存储在存储子系统2606中。这些应用程序模块或指令可以由一个或多个处理器2602来执行。存储子系统2606可以另外提供用于存储根据本公开使用的数据的存储库。例如,主存储器2608和高速缓冲存储器2602可以为程序和数据提供易失性存储。永久性存储器2610可以为程序和数据提供永久性(非易失性)存储,并且可以包括闪存、一个或多个固态驱动器、一个或多个磁性硬盘驱动器、一个或多个具有相关联的可移动介质的软盘驱动器、一个或多个具有相关联的可移动介质的光驱(例如cd-rom或dvd或蓝光)和其他类似存储介质。这样的程序和数据可以包括用于执行本公开中所描述的一个或多个实施例的步骤的程序,以及与本公开中所描述的交易和块相关联的数据。计算装置2600可以是各种类型,包括便携式计算机装置、平板计算机、工作站或以下描述的任何其他装置。另外,计算装置2600可以包括可通过一个或多个端口(例如,usb、耳机插孔、闪电连接器(lightningconnector)等)连接到计算装置2600的另一装置。可以连接到计算装置2600的装置可以包括被配置为接受光纤连接器的多个端口。因此,该装置可以被配置为将光信号转换为电信号,该电信号可以通过将装置连接到计算装置2600的端口进行传输以进行处理。由于计算机和网络的不断变化的性质,因此对图6中描绘的计算装置2600的描述仅旨在作为用于说明装置的优选实施例的目的的具体示例。与图6中描绘的系统相比,具有更多或更少组件的许多其他配置也是可以的。列举的示例实施例可以鉴于以下条款描述本公开的实施例的示例:1.一种从发送方向接收方传送至少一个秘密的方法,所述方法包括:从发送方向接收方发送信息,所述信息标识接收方可选择的多个秘密;在发送方处从接收方接收至少一个第一公钥,第一公钥对应于被接收方选择用于访问的相应的第一所述秘密,其中,所述第一公钥或每个所述第一公钥是椭圆曲线密码系统的公钥/私钥对的一部分,与所述第一公钥对应的第一私钥对接收方是可访问的;在发送方处从接收方接收至少一个第二公钥,第二公钥对应于未被接收方选择用于访问的相应的第二所述秘密,其中,所述第二公钥或每个所述第二公钥是所述椭圆曲线密码系统的公钥,与所述第二公钥对应的相应的第二私钥对接收方是不可用的;从发送方向接收方发送通过对应的所述第一公钥加密的至少一个所述第一秘密;以及从发送方向接收方发送通过对应的所述第二公钥加密的至少一个所述第二秘密;其中,所述第一秘密或每个所述第一秘密是所述接收方通过对应的所述第一私钥可访问的,所述第二秘密或每个所述第二秘密对所述接收方是不可访问的,所述发送方不能区分所述第一秘密和所述第二秘密。这提供了如下优点:通过仅允许接收方访问有限数量的消息,同时防止发送方知道接收方已经访问了哪个消息或哪些消息,提高了所述方法的数据安全性。2.根据条款1所述的方法,还包括:通过对应的所述第一公钥来加密至少一个所述第一秘密,并且通过对应的所述第二公钥来加密至少一个所述第二秘密。3.根据条款2所述的方法,其中,至少一个所述第一秘密和至少一个所述第二秘密通过相应的专用或密码进行加密。这提供了能够快速且有效加密和解密的优点。4.根据条款3所述的方法,其中,至少一个所述专用或密码具有基于对应的所述第一公钥或第二公钥的相应的加密密钥。5.根据条款4所述的方法,其中,至少一个所述加密密钥包括通过标量椭圆曲线点乘法与发送方已知的相应的第一加密整数或第二加密整数相乘的对应的所述第一公钥或第二公钥。6.根据条款5所述的方法,还包括:从所述发送方向所述接收方发送通过对应的所述第一公钥或第二公钥加密的至少一个所述第一加密整数和/或第二加密整数。7.根据前述条款中的任一项所述的方法,其中,至少一个所述第一秘密是通过相应的第三公钥加密的,第三公钥包含通过椭圆曲线点加法加至相应的第一加密项的相应的第一掩蔽项,第一掩蔽项包括椭圆曲线密码系统的椭圆曲线发生器点与发送方已知的相应的第一掩蔽整数的标量乘法的结果。8.根据条款7所述的方法,其中,至少一个所述第一加密项包括椭圆曲线发生器点与基于对应的所述第一公钥的相应的第三加密整数的标量乘法的结果。9.根据条款8所述的方法,其中,至少一个所述第三加密整数是对应的所述第一公钥的散列值。10.根据条款7至9中的任一项所述的方法,其中,至少一个所述第二秘密是通过相应的第四公钥加密的,第四公钥包含通过椭圆曲线点加法加至相应的第二加密项的相应的第二掩蔽项,第二掩蔽项包括椭圆曲线密码系统的椭圆曲线发生器点与发送方已知的相应的第二掩蔽整数的标量乘法的结果。11.根据条款10所述的方法,其中,至少一个所述第二加密项包括椭圆曲线发生器点与基于对应的所述第二公钥的相应的第四加密整数的标量乘法的结果。12.根据条款11所述的方法,其中,至少一个所述第四加密整数是对应的所述第二公钥的散列值。13.根据前述条款中的任一项所述的方法,其中,至少一个所述第一公钥和/或第二公钥能从对应的所述第二公钥和/或第一公钥确定。14.根据前述条款中的任一项所述的方法,还包括:生成至少一个要在发送方与接收方之间共享的第三秘密。15.根据条款13和14所述的方法,其中,至少一个所述第一公钥和/或第二公钥基于对应的所述第二公钥和/或第一公钥和至少一个所述第三秘密。16.根据前述条款中的任一项所述的方法,还包括:在所述发送方处,检查从接收方接收的至少一个所述第一公钥和/或第二公钥与从接收方接收的对应的所述第二公钥和/或第一公钥的一致性。17.根据前述条款中的任一项所述的方法,其中,至少一个所述第一公钥与所述第二私钥的标量乘法的结果等于相应的所述第二公钥与相应的所述第一私钥的标量乘法的结果。18.根据前述条款中的任一项所述的方法,其中,至少一个所述第一私钥和至少一个所述第二私钥是从发送方已知的所述椭圆曲线密码系统的私钥确定性地导出的。19.一种接收从发送方发送到接收方的至少一个秘密的方法,所述方法包括:在接收方处接收信息,所述信息标识接收方可选择的多个秘密;从接收方向发送方发送至少一个第一公钥,第一公钥对应于被接收方选择用于访问的相应的第一所述秘密,其中,所述第一公钥或每个所述第一公钥是椭圆曲线密码系统的公钥/私钥对的一部分,与所述第一公钥对应的第一私钥对接收方是可访问的;从接收方向发送方发送至少一个第二公钥,第二公钥对应于未被接收方选择用于访问的相应的第二所述秘密,其中,所述第二公钥或每个所述第二公钥是所述椭圆曲线密码系统的公钥,与所述第二公钥对应的相应的第二私钥对接收方是不可用的;在接收方处从发送方接收通过对应的所述第一公钥加密的至少一个所述第一秘密;以及在接收方处从发送方接收通过对应的所述第二公钥加密的至少一个所述第二秘密;其中,所述第一秘密或每个所述第一秘密是所述接收方通过对应的所述第一私钥可访问的,所述第二秘密或每个所述第二秘密对所述接收方是不可访问的,所述发送方不能区分所述第一秘密和所述第二秘密。20.根据条款19所述的方法,其中,至少一个所述第一秘密和至少一个所述第二秘密通过相应的专用或密码进行加密。21.根据条款20所述的方法,其中,至少一个所述专用或密码具有基于对应的所述第一公钥或第二公钥的相应的加密密钥。22.根据条款21所述的方法,其中,至少一个所述加密密钥包括通过标量椭圆曲线点乘法与发送方已知的相应的第一加密整数或第二加密整数相乘的对应的所述第一公钥或第二公钥。23.根据条款22所述的方法,还包括:在所述接收方处从所述发送方接收通过对应的所述第一公钥或第二公钥加密的至少一个所述第一加密整数和/或第二加密整数。24.根据条款19至23中的任一项所述的方法,其中,至少一个所述第一秘密是通过相应的第三公钥加密的,第三公钥包含通过椭圆曲线点加法加至相应的第一加密项的相应的第一掩蔽项,第一掩蔽项包括椭圆曲线密码系统的椭圆曲线发生器点与发送方已知的相应的第一掩蔽整数的标量乘法的结果。25.根据条款24所述的方法,其中,至少一个所述第一加密项包括椭圆曲线发生器点与基于对应的所述第一公钥的相应的第三加密整数的标量乘法的结果。26.根据条款25所述的方法,其中,至少一个所述第三加密整数是对应的所述第一公钥的散列值。27.根据条款24至26中的任一项所述的方法,其中,至少一个所述第二秘密是通过相应的第四公钥加密的,第四公钥包含通过椭圆曲线点加法加至相应的第二加密项的相应的第二掩蔽项,第二掩蔽项包括椭圆曲线密码系统的椭圆曲线发生器点与发送方已知的相应的第二整数的标量乘法的结果。28.根据条款27所述的方法,其中,至少一个所述第二加密项包括椭圆曲线发生器点与基于对应的所述第二公钥的相应的第四加密整数的标量乘法的结果。29.根据条款28所述的方法,其中,至少一个所述第四加密整数是对应的所述第二公钥的散列值。30.根据条款19至29中的任一项所述的方法,其中,至少一个所述第一公钥和/或第二公钥能从对应的所述第二公钥和/或第一公钥确定。31.根据条款19至30中的任一项所述的方法,还包括:生成至少一个要在发送方与接收方之间共享的第三秘密。32.根据条款30和31所述的方法,其中,至少一个所述第一公钥和/或第二公钥基于对应的所述第二公钥和/或第一公钥和至少一个所述第三秘密。33.根据条款19至32中的任一项所述的方法,其中,至少一个所述第一公钥与所述第二私钥的标量乘法的结果等于相应的所述第二公钥与相应的所述第一私钥的标量乘法的结果。一种计算机实现的系统,被设置成执行根据前述条款中的任一项所述的方法。应注意,上述实施例说明而不是限制本发明,并且本领域技术人员将能够设计许多替代实施例,而不脱离由所附权利要求限定的本发明的范围。在权利要求中,置于括号中的任何附图标记都不应解释为对权利要求的限制。词语“包括”和“包含”等不排除任何权利要求或整个说明书中列出的元件或步骤之外的元件或步骤的存在。在本说明书中,“包括”是指“包括或由……组成”,“包含”是指“包括或由……组成”。元件的单数引用并不排除此类元件的复数引用,反之亦然。本发明可以通过包括多个不同元件的硬件以及通过适当编程的计算机来实现。在列举多个装置的装置权利要求中,这些装置中的多个可以由一个且相同的硬件项来体现。在互不相同的从属权利要求中记载某些措施的这一事实,并不表示不能利用这些措施的组合来获得益处。1参考[1]“generalisedoblivioustransferprotocol”,parthasarathiroy,departmentofpuremathematics,universitycacuttaindia[2]“generalisedoblivioustransferbysecretsharing”tamirtassa[3]“computationallysecureoblivioustransfer”moninaor,bennypinkas[4]“thesimplestprotocolforoblivioustransfer”tungchouandclaudioorlandi[5]“smoothprojectivehashingandtwomessageoblivioustransfer”yuritaumankalaimit[6]“oblivioustransferwithaccesscontrol”jancamenisch,mariadubovitskaya,gregoryneven[7]“practicalfullysimulatableoblivioustransferwithsub-linearcommunication”bingshengzhang,helgerlipmaa,congwang,kuriren[8]rabin(1981)forpapersonoblivioustransfer[9]bellarem.;micalli,s.[1989]“non-interactiveoblivioustransferandapplications”:proc.onadvincryptographycrypto89.pp547-557.[10]diffie,w.;hellman,m.(1976)."newdirectionsincryptography"(pdf).ieeetransactionsoninformationtheory.22(6):644–654.doi:10.1109/tit.1976.1055638.[11]profbillbuchanan,www.asecuritysite.com[12]boneh,franklin,“identity-basedencryptionfromtheweilpairing”.appearsinsiamj.ofcomputing,vol.32,no.3,pp.586-615,2003.anextendedabstractofthispaperappearsintheproceedingsofcrypto2001,volume2139oflecturenotesincomputerscience,pages213–229,springer-verlag,2001.“bilinearparing”.当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1