一种共享加密数据的方法、装置、存储介质和电子设备与流程

文档序号:30660184发布日期:2022-07-06 01:38阅读:154来源:国知局
一种共享加密数据的方法、装置、存储介质和电子设备与流程

1.本技术涉及数据共享技术领域,具体而言,尤其涉及一种共享加密数据的方法、装置、存储介质和电子设备。


背景技术:

2.随着互联网技术的发展,越来越多的应用选择将大量数据存储在云端,而本地可通过合适的身份认证和访问控制机制访问云端的文件,甚至有不少第三方应用,提高专门的存储空间以租用方式供用户应用。例如,云图册、云文档和云盘等,甚至可以是区块链。在这种模式下,由于用户对第三方存储空间并不能无条件信任,其会担心数据泄漏或被非法使用,故用户通常会希望对全部数据或部分数据进行加密。
3.目前,现有的代理重加密的方法支持代理服务器将一个用户用自己公钥加密的密文转换为另一个用户可以用自己私钥解密的密文,且不泄露用户的私钥和明文信息。例如,第一设备利用自己的公钥pa对原始数据m进行加密后,得到加密数据c,并且该加密数据c可用第一设备存储的私钥sa进行解密,随后第一设备可将加密数据c上传到云端服务器。随后,在第二设备需要解密加密数据c时,可由为其产生转换密钥k
ab
,以及云端服务器可使用转换密钥k
ab
将加密数据c转换成中间数据c’,并可将中间数据c’发送给第二设备。随后,第二设备可以使用私钥sb对中间数据c’进行解密,获得原始数据m。从而,在这种机制下,云端服务器并不能得到原始数据m、私钥sa和私钥sb,其仅可得到转换密钥k
ab
,从而能够保证数据的安全。
4.在实现本发明的过程中,发明人发现现有技术中存在如下问题:现有的代理重加密的方法存在着不便捷的技术问题。例如,虽然现有的代理重加密的方法基本能够实现第一设备到第二设备的共享,但是第一设备和第二设备在数据解密方面是非对等的,即第一设备可以将文档分享给第二设备,而第二设备却不能使用自己持有的密钥将修改后的数据加密分享给第一设备,如果需要加密还需要第二设备再次使用上述代理重加密机制才能做到。


技术实现要素:

5.本技术实施例的目的在于提供一种共享加密数据的方法、装置、存储介质和电子设备,以达到提高便捷性的效果。
6.第一方面,本技术实施例提供了一种共享加密数据的方法,方法应用于数据保护系统中的服务器,数据保护系统包括第一终端设备、第二终端设备和服务器,并且第一终端设备存储有用于计算第一共享私钥的第一私钥因子,以及服务器存储有用于计算第一共享私钥的第二私钥因子,方法包括:生成第一随机数和第二随机数;向第一终端设备发送第一随机数,以便于第一终端设备利用第一随机数和第一私钥因子计算第一中间值;向第二终端设备发送第二随机数,以便于第二终端设备利用其随机生成的第三私钥因子、第二随机数和第一中间值计算第二中间值;其中,第三私钥因子用于计算第二共享私钥,并且第二共
享私钥和第一共享私钥为相同的私钥;接收第二终端设备返回的第二中间值;利用第一随机数、第二随机数、第二私钥因子和第二中间值,计算用于计算第二共享私钥的第四私钥因子;接收第二终端设备发送的携带有第三私钥因子的数据共享请求;其中,数据共享请求用于请求共享由第一终端设备利用第一私钥因子加密的加密数据;利用第三私钥因子和第四私钥因子对加密数据进行解密,得到待共享数据;向第二终端设备发送待共享数据。
7.因此,本技术实施例借助于上述技术方案使得第一终端设备和第二终端设备在数据解密方面是对等的,相比于现有的代理重加密的方法来说,其对跨设备文件通过外部存储服务共享场景的支持更加便捷。
8.在一个可能的实施例中,通过如下公式计算第四私钥因子:
[0009][0010]
其中,d4为第四私钥因子,d2为第二私钥因子,β为第二中间值;ρ2为第二随机数,ρ1为第一随机数。
[0011]
在一个可能的实施例中,通过如下公式计算第二中间值:
[0012]
β=α(d3ρ2)-1

[0013]
其中,α为第一中间值,d3为第三私钥因子。
[0014]
在一个可能的实施例中,通过如下公式计算第一中间值:
[0015]
α=d1ρ1;
[0016]
其中,d1为第一私钥因子。
[0017]
第二方面,本技术实施例提供了一种共享加密数据的方法,该方法应用于数据保护系统中的第二终端设备,数据保护系统包括第一终端设备、服务器和第二终端设备,并且第一终端设备存储有用于计算第一共享私钥的第一私钥因子,以及服务器存储有用于计算第一共享私钥的第二私钥因子,方法包括:接收服务器发送的第二随机数;利用其随机生成的第三私钥因子、第二随机数和第一中间值,计算第二中间值;其中,第三私钥因子用于计算第二共享私钥,并且第二共享私钥和第一共享私钥为相同的私钥,第一中间值是由第一终端设备利用服务器发送的第一随机数和第一私钥因子计算得到的;向服务器发送第二中间值,以便于服务器利用第一随机数、第二随机数、第二私钥因子和第二中间值,计算用于计算第二共享私钥的第四私钥因子;向服务器发送携带有第三私钥因子的用于请求共享由第一终端设备利用第一私钥因子加密的加密数据的数据共享请求,以便于服务器利用第三私钥因子和第四私钥因子对加密数据进行解密,得到待共享数据;接收服务器发送的待共享数据。
[0018]
第三方面,本技术实施例提供了一种共享加密数据的装置,该装置应用于数据保护系统中的服务器,数据保护系统包括第一终端设备、第二终端设备和服务器,并且第一终端设备存储有用于计算第一共享私钥的第一私钥因子,以及服务器存储有用于计算第一共享私钥的第二私钥因子,装置包括:生成模块,用于生成第一随机数和第二随机数;第一发送模块,用于向第一终端设备发送第一随机数,以便于第一终端设备利用第一随机数和第一私钥因子计算第一中间值;第二发送模块,用于向第二终端设备发送第二随机数,以便于第二终端设备利用其随机生成的第三私钥因子、第二随机数和第一中间值计算第二中间值;其中,第三私钥因子用于计算第二共享私钥,并且第二共享私钥和第一共享私钥为相同的私钥;第一接收模块,用于接收第二终端设备返回的第二中间值;第一计算模块,用于利
用第一随机数、第二随机数、第二私钥因子和第二中间值,计算用于计算第二共享私钥的第四私钥因子;第二接收模块,用于接收第二终端设备发送的携带有第三私钥因子的数据共享请求;其中,数据共享请求用于请求共享由第一终端设备利用第一私钥因子加密的加密数据;解密模块,用于利用第三私钥因子和第四私钥因子对加密数据进行解密,得到待共享数据;第三发送模块,用于向第二终端设备发送待共享数据。
[0019]
在一个可能的实施例中,通过如下公式计算第四私钥因子:
[0020][0021]
其中,d4为第四私钥因子,d2为第二私钥因子,β为第二中间值;ρ2为第二随机数,ρ1为第一随机数。
[0022]
在一个可能的实施例中,通过如下公式计算第二中间值:
[0023]
β=α(d3ρ2)-1

[0024]
其中,α为第一中间值,d3为第三私钥因子。
[0025]
在一个可能的实施例中,通过如下公式计算第一中间值:
[0026]
α=d1ρ1;
[0027]
其中,d1为第一私钥因子。
[0028]
第四方面,本技术实施例提供了一种共享加密数据的装置,该装置应用于数据保护系统中的第二终端设备,数据保护系统包括第一终端设备、服务器和第二终端设备,并且第一终端设备存储有用于计算第一共享私钥的第一私钥因子,以及服务器存储有用于计算第一共享私钥的第二私钥因子,装置包括:第三接收模块,用于接收服务器发送的第二随机数;第二计算模块,用于利用其随机生成的第三私钥因子、第二随机数和第一中间值,计算第二中间值;其中,第三私钥因子用于计算第二共享私钥,并且第二共享私钥和第一共享私钥为相同的私钥,第一中间值是由第一终端设备利用服务器发送的第一随机数和第一私钥因子计算得到的;第四发送模块,用于向服务器发送第二中间值,以便于服务器利用第一随机数、第二随机数、第二私钥因子和第二中间值,计算用于计算第二共享私钥的第四私钥因子;第五发送模块,用于向服务器发送携带有第三私钥因子的用于请求共享由第一终端设备利用第一私钥因子加密的加密数据的数据共享请求,以便于服务器利用第三私钥因子和第四私钥因子对加密数据进行解密,得到待共享数据;第四接收模块,用于接收服务器发送的待共享数据。
[0029]
第五方面,本技术实施例提供了一种存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行第一方面或第一方面的任一可选的实现方式所述的方法。
[0030]
第六方面,本技术实施例提供了一种存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行第二方面或第二方面的任一可选的实现方式所述的方法。
[0031]
第七方面,本技术实施例提供了一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当所述电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行第一方面或第一方面的任一可选的实现方式所述的方法。
[0032]
第八方面,本技术实施例提供了一种电子设备,包括:处理器、存储器和总线,所述
存储器存储有所述处理器可执行的机器可读指令,当所述电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行第二方面或第二方面的任一可选的实现方式所述的方法。
[0033]
第九方面,本技术提供一种计算机程序产品,所述计算机程序产品包括存储计算机程序的存储介质,所述计算机程序在由至少一个处理器执行时,使所述至少一个处理器执行第一方面或第一方面的任一可选的实现方式所述的方法。
[0034]
第十方面,本技术提供一种计算机程序产品,所述计算机程序产品包括存储计算机程序的存储介质,所述计算机程序在由至少一个处理器执行时,使所述至少一个处理器执行第二方面或第二方面的任一可选的实现方式所述的方法。
[0035]
为使本技术实施例所要实现的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
[0036]
为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0037]
图1示出了本技术实施例提供的一种数据保护系统的示意图;
[0038]
图2示出了本技术实施例提供的一种共享加密数据的方法的流程图;
[0039]
图3示出了本技术实施例提供的一种共享加密数据的装置的结构框图;
[0040]
图4示出了本技术实施例提供的一种共享加密数据的装置的结构框图;
[0041]
图5示出了本技术实施例提供的一种电子设备的结构框图。
具体实施方式
[0042]
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
[0043]
目前,除了代理重加密的方法之外,还存在着以下几种方法:
[0044]
一种是可通过使用口令等方式对数据文件进行加密。例如,zip压缩文件可以使用口令派生密钥,采用加密算法进行加密,当用户从外部存储取回加密的数据时,可以输入同样的口令,采用与加密对等的方法解密使用。但是,这种方式简单易用,但口令本身的复杂度不足,因而对于简单的暴力破解无能为力,复杂的口令又难以记忆;
[0045]
另一种是通过第三方存储空间的运营者对数据进行加密,当用户访问数据时,在存储服务器进行先解密再提供。以及,这种方式由于密钥足够复杂,所以能够对抗猜测类、暴力分析类攻击,有效对抗外部攻击者窃取用户数据的行为。但是,对用户来讲,除担心被
外部人员获取数据外,还担心存储空间运营者自身主动或被动窃取用户数据,这种加密方式无法应对这种威胁;
[0046]
另一种是用户使用自身持有密钥进行加密的方法。由于密钥是非常敏感的数据,因此,正式场景中,合规的做法是采用专用的密码模块来产生和存储密钥。按照二级密码模块的要求,密钥在密码模块中产生后,难以导出复制到其它设备,因而,在某个设备加密的数据,难以跨设备解密使用。故其面临的问题包括:
[0047]
在发生设备丢失、损坏等情况时无法补救,尤其是用户使用移动设备的情况下;
[0048]
用户有多个设备时无法跨设备使用数据;
[0049]
用户希望授权给其他人使用自己的数据时,必须自身先解密数据再传给他人,操作复杂;
[0050]
另外一种是采用客户端和服务器协同方式完成解密,其能够通过数学方法,将密钥分割为服务器分量和客户端分量(例如,服务器侧存储有密钥因子,以及客户端侧也存储有密钥因子),虽然其可降低终端密钥安全存储和使用的风险,但对于解决上述问题,却没有什么帮助。
[0051]
基于此,本技术实施例巧妙地提供了一种用于实现跨设备的加密数据的共享方案,通过由服务器生成第一随机数和第二随机数,并由第一终端设备利用第一随机数和预先存储的第一私钥因子计算第一中间值,以及还由第二终端设备利用其随机生成的第三私钥因子、第二随机数和第一中间值计算第二中间值,以及还由服务器利用第一随机数、第二随机数、第二私钥因子和第二中间值,计算用于计算第二共享私钥的第四私钥因子,最后第二终端设备可基于第三私钥因子与服务器进行交互,从而可访问由第一终端设备加密的加密数据。
[0052]
因此,本技术实施例借助于上述技术方案使得第一终端设备和第二终端设备在数据解密方面是对等的,相比于现有的代理重加密的方法来说,其对跨设备文件通过外部存储服务共享场景的支持更加便捷。
[0053]
例如,由于第二终端设备和服务器生成了配套的第三私钥因子和第四私钥因子,并且第三私钥因子和第四私钥因子可生成与第一共享私钥相同的第二共享私钥,从而后续无论是第二共享终端访问第一共享终端加密的加密数据,还是第二共享终端向第一共享终端共享由第二共享终端加密的数据,其均无需再执行额外的过程(例如,再执行一遍代理重加密的过程等),从而能够提高便利性。
[0054]
请参见图1,图1示出了本技术实施例提供的一种数据保护系统的示意图。如图1所示,该数据保护系统包括第一终端设备、第二终端设备和服务器。其中,服务器可分别与第一终端设备和第二终端设备通信连接,以及第二终端设备还可与第一终端设备通信连接。
[0055]
应理解,第一终端设备的具体设备、第二终端设备的具体设备和服务器的具体设备等均可根据实际需求来进行设置,本技术实施例并不局限于此。
[0056]
例如,第一终端设备可以是手机,也可以是计算机等。
[0057]
再例如,服务器可以是单个服务器,也可以是服务器集群等。
[0058]
为了便于理解本技术实施例,下面通过具体地实施例来进行描述。
[0059]
具体地,服务器生成第一随机数和第二随机数。随后,服务器可向第一终端设备发送第一随机数。对应地,第一终端设备接收服务器发送的第一随机数。以及,第一终端设备
可利用第一随机数和第一私钥因子计算第一中间值,并向服务器发送第一中间值。
[0060]
以及,服务器还可向第二终端设备发送第二随机数。对应地,第二终端设备接收服务器发送的第二随机数。以及,第二终端设备利用其随机生成的第三私钥因子、第二随机数和第一中间值计算第二中间值,并向服务器发送第二中间值。
[0061]
以及,服务器可利用第一随机数、第二随机数、第二私钥因子和第二中间值,计算用于计算第二共享私钥的第四私钥因子。
[0062]
以及,在第一终端设备允许第二终端设备访问其加密数据的情况下,第二终端设备向服务器发送携带有第三私钥因子的数据共享请求。对应地,服务器接收第二终端设备发送的数据共享请求。
[0063]
以及,服务器可利用第三私钥因子和第四私钥因子对加密数据进行解密,得到待共享数据,向第二终端设备发送待共享数据。对应地,第二终端设备接收服务器发送的待共享数据。
[0064]
应理解,虽然图1示出了数据保护系统的具体示意图,但本领域的技术人员应当理解,其还可根据实际需求对数据保护系统进行设置,本技术实施例并不局限于此。
[0065]
例如,该数据保护系统还可包括更多的终端设备。
[0066]
请参见图2,图2示出了本技术实施例提供的一种共享加密数据的方法的流程图。如图2所示的方法应用于数据保护系统,该数据保护系统包括第一终端设备、第二终端设备和服务器,并且第一终端设备存储有用于计算第一共享私钥的第一私钥因子,以及服务器存储有用于计算第一共享私钥的第二私钥因子,包括:
[0067]
步骤s211,服务器获取加密数据,并将加密数据存储到外部存储装置中。
[0068]
应理解,外部存储装置的具体装置可根据实际需求来进行设置,本技术实施例并不局限于此。
[0069]
例如,外部存储装置可以是数据库等。
[0070]
为了便于理解步骤s211,下面通过具体地实施例来进行描述。
[0071]
具体地,第一终端设备和服务器可协同产生密钥对,以使得第一终端设备可持有第一私钥因子,以及服务器可持有第二私钥因子。以及,第一私钥因子和第二私钥因子可具备如下关系:
[0072]
d=ξ(d1,d2);
[0073]
其中,d为第一共享私钥,d1为第一私钥因子,d2为第二私钥因子。
[0074]
还应理解,ξ函数的具体函数可根据实际需求来进行设置,本技术实施例并不局限于此。
[0075]
例如,该函数可由特定的密钥体制不同而不同(例如,对于椭圆曲线密码体制来说,其可采用模加模减、模乘等方法;对于rsa体制来说,其均可采用模加模减等方法)。
[0076]
随后,用户可首先使用自身持有设备(例如,第一终端设备)上的密钥对待上传的数据进行加密得到加密数据。以及,待加密数据上传后,服务器可将加密数据存储到外部存储装置中。此时,用户可以使用终端侧(例如,第一终端设备)的密码模块和密码服务侧(例如,服务器)的服务协同完成解密。
[0077]
还应理解,该密钥的获取方式,以及加密的具体方法等均可根据实际需求来进行设置,本技术实施例并不局限于此。
[0078]
例如,该密钥可以采用u-key等方式获取。
[0079]
再例如,加密方法可以为sm2加密算法,也可以是ecies加密算法,也可以是rsa加密算法等。
[0080]
还应理解,用户可以使用终端侧的密码模块和密码服务侧的服务协同完成解密的具体方式可根据实际需求来进行设置,本技术实施例并不局限于此。
[0081]
步骤s212,服务器生成第一随机数和第二随机数。
[0082]
应理解,第一随机数的具体数和第二随机数的具体数均可根据实际需求来进行设置,只要保证其是随机生成的即可,本技术实施例并不局限于此。
[0083]
步骤s213,服务器向第一终端设备发送第一随机数。对应地,第一终端设备接收服务器发送的第一随机数。
[0084]
步骤s214,第一终端设备利用第一随机数和第一私钥因子,计算第一中间值。
[0085]
应理解,第一私钥因子可以是对第一共享私钥进行分片后得到的。
[0086]
也就是说,本技术实施例可基于协同密码的思想,利用安全多方计算技术将解密私钥(例如,用于解密的第一共享私钥)进行分片,参与方只能使用密钥分量而不知道完整的密钥。
[0087]
对应地,第二私钥因子也是类似的,后续不再一一说明。
[0088]
还应理解,第一终端设备利用第一随机数和第一私钥因子,计算第一中间值的具体公式可根据实际需求来进行设置,本技术实施例并不局限于次。
[0089]
例如,可通过如下公式计算第一中间值:
[0090]
α=d1ρ1;
[0091]
其中,d1为第一私钥因子,ρ1为第一随机数。
[0092]
步骤s215,第一终端设备向第二终端设备发送第一中间值。对应地,第二终端设备接收第一终端设备发送的第一中间值。
[0093]
步骤s216,服务器向第二终端设备发送第二随机数。对应地,第二终端设备接收服务器发送的第二随机数。
[0094]
步骤s217,第二终端设备利用其随机生成的第三私钥因子、第二随机数和第一中间值计算第二中间值。
[0095]
应理解,第三私钥因子还可以称为秘密值等。
[0096]
还应理解,第三私钥因子的具体值可根据实际需求来进行设置,只要保证第三私钥因子是由第二终端设备随机生成的即可,本技术实施例并不局限于此。
[0097]
还应理解,第二终端设备利用其随机生成的第三私钥因子、第二随机数和第一中间值计算第二中间值的具体公式可根据实际需求来进行设置,本技术实施例并不局限于次。
[0098]
例如,可通过如下公式计算第二中间值:
[0099]
β=α(d3ρ2)-1

[0100]
其中,β为第二中间值,α为第一中间值,d3为第三私钥因子,ρ2为第二随机数。
[0101]
步骤s218,第二终端设备向服务器发送第二中间值。对应地,服务器接收第二终端设备发送的第二中间值。
[0102]
步骤s219,服务器利用第一随机数、第二随机数、第二私钥因子和第二中间值,计
算用于计算第二共享私钥的第四私钥因子。
[0103]
应理解,服务器利用第一随机数、第二随机数、第二私钥因子和第二中间值,计算用于计算第二共享私钥的第四私钥因子的具体公式可根据实际需求来进行设置,本技术实施例并不局限于次。
[0104]
例如,可通过如下公式计算第四私钥因子:
[0105][0106]
其中,d4为第四私钥因子;d2为第二私钥因子;β为第二中间值;ρ2为第二随机数;ρ1为第一随机数。
[0107]
因此,通过上述相关步骤可以确定如下关系:
[0108][0109]
d=d1d2=d3d4;
[0110]
其中,d为第一共享私钥或者第二共享私钥。
[0111]
此外,在第一终端设备和服务器可具有其专有的私钥因子对(即第一私钥因子和第二私钥因子)的基础上,通过上述步骤,使得第二终端设备和服务器也可具有专有的私钥因子对(即第三私钥因子和第四私钥因子),并且这两个私钥因子对对应的共享私钥是相同的。
[0112]
步骤s220,在第一终端设备允许第二终端设备访问其加密数据的情况下,第二终端设备生成携带有第三私钥因子的数据共享请求。其中,该数据共享请求用于请求共享由第一终端设备利用第一私钥因子加密的加密数据。
[0113]
步骤s221,第二终端设备向服务器发送数据共享请求。对应地,该服务器接收第二终端设备发送的数据共享请求。
[0114]
步骤s222,服务器利用所述第三私钥因子和所述第四私钥因子对所述加密数据进行解密,得到待共享数据。
[0115]
应理解,服务器利用所述第三私钥因子和所述第四私钥因子对所述加密数据进行解密的具体方法可根据实际需求来进行设置,本技术实施例并不局限于次。
[0116]
例如,在步骤s219后,第二终端设备和服务器可基于协同解密的方式来解密加密数据,获得待共享数据(即原始数据)。例如,在加密数据为第一终端设备上传的加密数据的情况下,第二终端设备可基于协同解密的方式来解密加密数据,获得原始数据。
[0117]
还应理解,第二终端设备和服务器可基于协同解密的方式来解密加密数据的具体过程可根据实际需求来进行设置,本技术实施例并不局限于此。
[0118]
例如,第二终端设备和服务器可基于现有的协同密码算法来解密加密数据。
[0119]
步骤s223,服务器向第二终端设备发送待共享数据。对应地,第二终端设备接收服务器发送的待共享数据。
[0120]
因此,本技术实施例借助于上述技术方案使得第一终端设备和第二终端设备在数据解密方面是对等的,相比于现有的代理重加密的方法来说,其对跨设备文件通过外部存储服务共享场景的支持更加便捷。
[0121]
为了便于理解本技术实施例,下面通过具体地实施例来进行描述。
[0122]
具体地,在想要将第一终端上传的加密数据共享给第二终端设备的场景(即跨设
备的数据共享)下,第一终端设备和第二终端设备均安装了实现上述机制的密码模块以及文件共享应用程序,服务器提供外部存储服务,当存储加密数据时同时提供密码功能,密码功能也可以由单独的密码服务提供者来提供。以及,用户在第一终端设备上加密一个或多个文件,以及服务器将加密后的文件存储到外部存储装置中。
[0123]
此外,在将第一终端上传的加密数据共享给第二终端设备包括以下两种情况:
[0124]
第一种情况
[0125]
在第一终端设备和第二终端设备均是属于同一个用户,并且第一终端可通过短距离通信或者扫码二维码等方式将其上传的加密数据共享给第二终端设备的情况下,响应于用户在第一终端设备的外部存储文件应用程序上选择用于允许其他终端设备使用加密数据的操作,第一终端设备向服务器发送允许第二终端设备访问其加密数据的携带有会话标识的请求。对应地,服务器接收第一终端设备发送的请求。
[0126]
随后,服务器可基于该请求,生成第一随机数,并通过安全通道将携带有该会话标识和第一随机数以及其他附加请求的信息传递给第一终端设备中的密码模块,以及该第一终端设备中的密码模块通过步骤s214的方式生成第一中间值,以及第一终端设备中的密码模块可基于该第一中间值生成二维码。
[0127]
以及,用户在第二终端设备上接收到通知,触发打开文件共享应用程序,然后打开扫码功能,扫描到上述二维码,从二维码中解析得到第一中间值和会话标识。以及,第二终端设备的密码模块通过安全通道,将会话标识和请求打开文件(或者请求共享的加密数据)的信息传递给服务器。
[0128]
以及,服务器接收到第二终端设备请求中的数据,进行保存,同时产生第二随机数,并通过安全通道将会话标识和第二随机数传递给第二终端设备的密码模块。
[0129]
以及,第二终端设备可通过步骤s217的方法生成第二中间值,并通过安全通道将会话标识和第二中间值发送到服务器。
[0130]
随后,服务器可按照步骤s220和步骤s223进行进行操作,完成后销毁会话标识和所代表会话的临时数据。
[0131]
至此,第二终端设备具备了解密第一终端设备所加密的文件的能力,并且两个终端设备可并行使用。
[0132]
此外,在用户更换终端设备的情况下,在执行完上述操作后,用户可通过第一终端设备选择禁用共享文件,并通过安全通道向服务器发送携带有会话标识及其其他附加数据的终端禁用请求。服务器在接收到终端禁用请求后,可销毁第二私钥因子,并通知第一终端设备,以便第一终端设备销毁第一私钥因子。
[0133]
当然可以理解,除了上述实施方式之外,还可在第二终端设备上选择设备管理,并可对第一终端设备进行禁用。其中,该禁用的具体实现方式与上述销毁第一私钥因子和第二私钥因子的相关步骤是类似的。
[0134]
第二种情况
[0135]
在第一终端设备为第一用户的设备并且第二终端设备为第二用户的设备以及第一终端可将其上传的加密数据共享给第二终端设备的情况下,第二终端设备可使用应用程序,并可通过安全通道向服务器发送请求打开特定的文件。
[0136]
随后,服务器可判断该特定的文件是属于第一终端设备的,并可通知第一终端设
备。
[0137]
以及,在第一终端设备和第二终端设备可按照现有的协商过程达成一致后,第一终端设备可通过强认证身份技术向服务器证明身份,并向服务器发送允许第二终端设备解密的信息,以及若不同意第二终端设备解密,则无需执行后续过程。
[0138]
应理解,第一终端设备可通过强认证身份技术向服务器证明身份的具体手段可根据实际需求来进行设置,本技术实施例并不局限于此。
[0139]
例如,通过第一终端设备上的双因素认证、密码模块、密钥、数字证书等或其它手段向服务器证明身份。
[0140]
以及,第一终端设备可按照步骤s213和步骤s214,使用第一终端设备的密码密码生成第一中间值,同时可生成一定长度的字符串τ,随后可利用预设哈希算法计算字符串τ的哈希值,并可通过安全通道将包含会话标识以及通过第一中间值和哈希值确定的特定值的消息发送给服务器。
[0141]
应理解,预设哈希算法的具体算法可根据实际需求来进行设置,本技术实施例并不局限于此。
[0142]
还应理解,通过第一中间值和哈希值确定的特定值的具体计算方式可根据实际需求来进行设置,本技术实施例并不局限于此。
[0143]
例如,可通过如下公式计算特定值:
[0144]
a=βxor h;
[0145]
其中,a为特定值,β为第一中间值,xor为异或运算,h为哈希值。
[0146]
还应理解,选取的哈希函数输出的位数(例如,其可以是128位)和第一中间值的位数相同。
[0147]
这里需要说明的是,虽然上面是以异或运算为例来进行描述的,但本领域的技术人员应当理解,还可通过其他的手段或者算法对第一中间值进行相关保护,只要保证第二终端设备有能力从接收的数据中解析出第一中间值即可,本技术实施例并不局限于次。
[0148]
例如,第一终端设备可利用哈希值对第一中间值进行加密等。
[0149]
以及,第一终端设备可通过电话等方式通知第二终端设备关于字符串τ的消息。
[0150]
以及,服务器可将会话标识以及通过第一中间值和哈希值确定的特定值的消息发送给第二终端设备。以及,在服务器接收到该消息后,第二终端设备可解析得到会话标识以及特定值。随后,第二终端设备可通过字符串τ计算获得第一中间值。随后,第二终端设备可按照步骤s217,生成第二中间值,并向服务器发送第二中间值。
[0151]
以及,服务器可按照步骤s220和步骤s223执行相关操作,并在跨设备的加密数据共享操作后,销毁会话标识及其对应的会话的临时数据。
[0152]
至此,第二终端设备具备了解密第一终端设备所加密的文件的能力。但是,第二终端设备的解密需要按照如下步骤执行:
[0153]
第二终端设备打开外部存储的文件,服务器接收到打开请求后,首先检索是否有许可该第二终端设备打开该加密文件的策略,如果策略存在,则检查策略,该策略包括但不限于是否在授权的时间范围内或者是否超出授权的次数等;如果策略不存在或者策略检查不允许,则服务器拒绝与第二终端设备协同解密;如果策略允许,则可按照协同解密的方法,服务器和第二终端设备协同完成解密。
[0154]
按照这一过程,第二终端设备在与第一终端设备协商一致的情况下,能够在第一终端设备设定的限制策略下,通过第二终端设备与服务器协同完成解密。以及,第一终端设备可以随时在认证身份后取消对第二终端设备的许可。
[0155]
综上,本技术实施例能够有效防止用户设备丢失、损坏等情况下数据无法解密的情况。例如,用户可在第一终端设备初始化完成之后的可用状态,并和第二终端设备完成本技术方案所述的操作,使得第二终端设备可作为第一终端设备的备份存在,假如第一终端设备丢失或损坏,数据可通过第二终端设备打开。
[0156]
以及,本技术实施例可支持用户持有的多台设备均可打开某一设备加密的数据。例如,由第一终端设备和第二终端设备完成本技术方案所述的操作,则第二终端设备在服务器的配合下,具备与第一终端设备相同的加密和解密能力,但密钥并不相同。因此,第一终端设备加密的数据在第二终端设备可正常打开,第二终端设备加密的数据也可在第一终端设备打开。
[0157]
以及,本技术实施例可支持用户授权自己加密的文件给其它人。例如,用户可以在需要时,由第一终端设备授权给第二终端设备,使第二终端设备在服务器的配合下,具备与第一终端设备相同的加密和解密能力,但同时通过策略的设定,使第二终端设备必须在服务器的配合下完成解密。因此,第二终端设备在策略许可的范围内,可正常打开密文文件,但如果违反策略,则服务器拒绝配合完成协同解密的服务器部分,因而,第一终端设备能够有效控制数据分享的授权策略。
[0158]
应理解,上述共享加密数据的方法仅是示例性的,本领域技术人员根据上述的方法可以进行各种变形,修改或变形之后的内容也在本技术保护范围内。
[0159]
例如,虽然上面是按照固定的步骤进行描述的,但本领域的技术人员应当理解,其并非是对相关步骤的限制。
[0160]
请参见图3,图3示出了本技术实施例提供的一种共享加密数据的装置300的结构框图,应理解,该装置300与上述方法实施例的方法对应,能够执行上述方法实施例中服务器侧的各个步骤,该装置300具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。该装置300包括至少一个能以软件或固件(firmware)的形式存储于存储器中或固化在装置300的操作系统(operating system,os)中的软件功能模块。具体地,该装置300应用于数据保护系统中的服务器,数据保护系统包括第一终端设备、第二终端设备和服务器,并且第一终端设备存储有用于计算第一共享私钥的第一私钥因子,以及服务器存储有用于计算第一共享私钥的第二私钥因子,该装置300包括:
[0161]
生成模块310,用于生成第一随机数和第二随机数;
[0162]
第一发送模块320,用于向第一终端设备发送第一随机数,以便于第一终端设备利用第一随机数和第一私钥因子计算第一中间值;
[0163]
第二发送模块330,用于向第二终端设备发送第二随机数,以便于第二终端设备利用其随机生成的第三私钥因子、第二随机数和第一中间值计算第二中间值;其中,第三私钥因子用于计算第二共享私钥,并且第二共享私钥和第一共享私钥为相同的私钥;
[0164]
第一接收模块340,用于接收第二终端设备返回的第二中间值;
[0165]
第一计算模块350,用于利用第一随机数、第二随机数、第二私钥因子和第二中间值,计算用于计算第二共享私钥的第四私钥因子;
[0166]
第二接收模块360,用于接收第二终端设备发送的携带有第三私钥因子的数据共享请求;其中,数据共享请求用于请求共享由第一终端设备利用第一私钥因子加密的加密数据;
[0167]
解密模块370,用于利用第三私钥因子和第四私钥因子对加密数据进行解密,得到待共享数据;
[0168]
第三发送模块380,用于向第二终端设备发送待共享数据。
[0169]
在一个可能的实施例中,通过如下公式计算第四私钥因子:
[0170][0171]
其中,d4为第四私钥因子,d2为第二私钥因子,β为第二中间值;ρ2为第二随机数,ρ1为第一随机数。
[0172]
在一个可能的实施例中,通过如下公式计算第二中间值:
[0173]
β=α(d3ρ2)-1

[0174]
其中,α为第一中间值,d3为第三私钥因子。
[0175]
在一个可能的实施例中,通过如下公式计算第一中间值:
[0176]
α=d1ρ1;
[0177]
其中,d1为第一私钥因子。
[0178]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法中的对应过程,在此不再过多赘述。
[0179]
请参见图4,图4示出了本技术实施例提供的一种共享加密数据的装置400的结构框图,应理解,该装置400与上述方法实施例的方法对应,能够执行上述方法实施例中第二终端设备侧的各个步骤,该装置400具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。该装置400包括至少一个能以软件或固件(firmware)的形式存储于存储器中或固化在装置400的操作系统(operating system,os)中的软件功能模块。具体地,该装置400应用于数据保护系统中的第二终端设备,数据保护系统包括第一终端设备、服务器和第二终端设备,并且第一终端设备存储有用于计算第一共享私钥的第一私钥因子,以及服务器存储有用于计算第一共享私钥的第二私钥因子,该装置400包括:
[0180]
第三接收模块410,用于接收服务器发送的第二随机数;
[0181]
第二计算模块420,用于利用其随机生成的第三私钥因子、第二随机数和第一中间值,计算第二中间值;其中,第三私钥因子用于计算第二共享私钥,并且第二共享私钥和第一共享私钥为相同的私钥,第一中间值是由第一终端设备利用服务器发送的第一随机数和第一私钥因子计算得到的;
[0182]
第四发送模块430,用于向服务器发送第二中间值,以便于服务器利用第一随机数、第二随机数、第二私钥因子和第二中间值,计算用于计算第二共享私钥的第四私钥因子;
[0183]
第五发送模块440,用于向服务器发送携带有第三私钥因子的用于请求共享由第一终端设备利用第一私钥因子加密的加密数据的数据共享请求,以便于服务器利用第三私钥因子和第四私钥因子对加密数据进行解密,得到待共享数据;
[0184]
第四接收模块450,用于接收服务器发送的待共享数据。
[0185]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置
的具体工作过程,可以参考前述方法中的对应过程,在此不再过多赘述。
[0186]
请参见图5,图5示出了本技术实施例提供的一种电子设备500的结构框图。电子设备500可以包括处理器510、通信接口520、存储器530和至少一个通信总线540。其中,通信总线540用于实现这些组件直接的连接通信。其中,本技术实施例中的通信接口520用于与其他设备进行信令或数据的通信。处理器510可以是一种集成电路芯片,具有信号的处理能力。上述的处理器510可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器510也可以是任何常规的处理器等。
[0187]
存储器530可以是,但不限于,随机存取存储器(random access memory,ram),只读存储器(read only memory,rom),可编程只读存储器(programmable read-only memory,prom),可擦除只读存储器(erasable programmable read-only memory,eprom),电可擦除只读存储器(electric erasable programmable read-only memory,eeprom)等。存储器530中存储有计算机可读取指令,当所述计算机可读取指令由所述处理器510执行时,电子设备500可以执行上述方法实施例中对应装置侧的各个步骤。
[0188]
电子设备500还可以包括存储控制器、输入输出单元、音频单元、显示单元。
[0189]
所述存储器530、存储控制器、处理器510、外设接口、输入输出单元、音频单元、显示单元各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通信总线540实现电性连接。所述处理器510用于执行存储器530中存储的可执行模块。
[0190]
输入输出单元用于提供给用户输入数据实现用户与所述服务器(或本地终端)的交互。所述输入输出单元可以是,但不限于,鼠标和键盘等。
[0191]
音频单元向用户提供音频接口,其可包括一个或多个麦克风、一个或者多个扬声器以及音频电路。
[0192]
显示单元在所述电子设备与用户之间提供一个交互界面(例如用户操作界面)或用于显示图像数据给用户参考。在本实施例中,所述显示单元可以是液晶显示器或触控显示器。若为触控显示器,其可为支持单点和多点触控操作的电容式触控屏或电阻式触控屏等。支持单点和多点触控操作是指触控显示器能感应到来自该触控显示器上一个或多个位置处同时产生的触控操作,并将该感应到的触控操作交由处理器进行计算和处理。
[0193]
可以理解,图5所示的结构仅为示意,所述电子设备500还可包括比图5中所示更多或者更少的组件,或者具有与图5所示不同的配置。图5中所示的各组件可以采用硬件、软件或其组合实现。
[0194]
本技术还提供一种存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行方法实施例所述的方法。
[0195]
本技术还提供一种计算机程序产品,所述计算机程序产品在计算机上运行时,使得计算机执行方法实施例所述的方法。
[0196]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统的具体工作过程,可以参考前述方法中的对应过程,在此不再过多赘述。
[0197]
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0198]
本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本技术的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0199]
另外,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
[0200]
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0201]
以上所述仅为本技术的优选实施例而已,并不用于限制本技术,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
[0202]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应所述以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1