一种共享所有权证明的方法及系统与流程

文档序号:11138817阅读:463来源:国知局
一种共享所有权证明的方法及系统与制造工艺

本发明涉及云数据安全存储领域,具体涉及协作云数据安全去重的一种共享所有权证明的方法及系统。



背景技术:

随着云计算、大数据技术的快速发展,越来越多的企业和个人利用云计算平台进行协同工作,以实现资源共享、无缝沟通、降低成本与提高服务质量。云协作应用平台采用多用户协同参与的工作模式,协作应用中产生的共享文件由多参与者共同所有。与普通文件由单用户拥有、可单方面设定访问权限不同,共享文件的访问、决策控制等都要求参与者共同决定。在共享文件的产生、使用、访问、更新、存储等过程中,都将产生多个版本或者多副本文件,增加云平台的存储开销。

为了提高存储效率和盈利,云存储服务商采用有效存储的方法来存储用户数据,如数据压缩技术,但不同的压缩算法得到不同的压缩文件,从而一份文件需存储多个副本,大量浪费存储空间。数据重复性删除(数据去重),作为一种有效的数据缩减方法,被各大云服务提供商广泛使用,如DropBox、Google Drive、阿里云OSS。数据去重典型的代表方案为收敛加密与消息锁加密,但这两种机制的安全性都依赖原始文件的哈希值,即用户只需拥有文件的哈希值就可以向云存储服务器获取文件,而哈希值本身容易遭受离线蛮力攻击。

为了解决上述攻击,最典型的解决方法为所有权证明方案,使用Merkle树与纠删码,即用户对上传文件进行纠删码编码,服务器使用Merkle树对文件进行存储与管理,该方案可以帮助云存储服务器确认用户是否真实拥有请求的文件。

上述方案可实现文件的安全去重或所有权证明,但均考虑用户单独拥有某普通文件,可单方面对该文件实施管控、设置访问权限等,证明其确实拥有该文件。这种用户单方面进行证明的方式不能解决云协作应用中多用户拥有的共享文件的所有权证明与共享文件的安全去重问题。



技术实现要素:

本发明的目的在于提供一种共享所有权证明的方法及系统,既能实现对共享文件的安全访问又能实现共享文件的安全去重要求。

为实现上述目的,本发明的技术方案是:一种共享所有权证明的方法及系统,包括上传共享文件阶段和共享所有权证明阶段;

所述上传共享文件阶段包括以下步骤:

S100、将共享文件进行分块处理得到数据块,对所述数据块进行哈希运算得到密钥,使用所述密钥对所述数据块进行加密处理得到密文块;对所述密文块进行哈希运算得到token值,对所有所述token值进行哈希运算得到文件标识符;将所述密钥与所述token值进行秘密共享处理得到密钥与token值分量;对共享所有者账号进行哈希运算;

S200、将步骤 S100所得的文件标识符、密文块、token值、共享所有者账号哈希值上传至云存储服务器;

S300、将步骤S100所得的密钥与token值分量通过通信网络发送至所述共享文件的其他共享所有者;

S400、存储步骤S200所得文件标识符、密文块、token值、共享所有者账号哈希值;随机生成1000个挑战;

所述共享所有权证明阶段包括以下步骤:

S500、所述共享所有者之一将步骤S100所得文件标识符与共享所有者账号哈希值上传至云存储服务器;

S600、判断步骤S500所得文件标识符是否存储,若存在,则进一步检查步骤S500所得共享所有者账号哈希值是否存储,若存在,则选择一个由步骤S400所得的挑战;

S700、将步骤S600所得挑战发送至步骤S500中的共享所有者;

S800、步骤S500中的共享所有者通过通信网络向其他共享所有者获取token值分量与密钥分量;对所述token值分量进行解码得到所述token值;

S900、将步骤S800所得token值上传至云存储服务器;

S1000、对步骤S900所得token值与步骤S600所得挑战对应的哈希值进行对比,若相同,则验证成功;

S1100、发送步骤S1000所得验证结果与步骤S500中的共享所有者请求的密文块;

S1200、对步骤S1100所得密文块解密。

在本发明一实施例中,所述步骤S100中的分块处理具体为将所述共享文件根据共享所有者个数进行分块;所述哈希运算方式采用包括SHA-128、SHA256的算法;所述加密方式采用包括AES、DES的算法;所述秘密共享方式采用包括SSSS、IDA、RSSS、SSMS的算法。

在本发明一实施例中,所述通信网络为公共网络或专用网络,有线网络或无线网络;所述步骤S400中的存储信息方式具体为将步骤S200所得信息存入一个四元数组中;所述生成挑战方式具体为随机生成的1000个位置数组。

在本发明一实施例中,所述步骤S600还包括从数据库中读取数据与所述文件标识符进行对比;所述选择挑战方式具体为从所述1000个挑战中顺序选择,若挑战使用完后,返回步骤S400重新生成1000个挑战。

在本发明一实施例中,所述步骤S800还包括其他共享所有者将token值分量与密钥分量通过所述通信网络发送给所述步骤S500中的共享所有者。

本发明还提供了一种共享所有权证明的系统,包括数据分块模块、编码模块、上传模块、数据分发模块、存储模块、数据分量获取模块、验证模块;

所述数据分块模块,用于对共享文件进行分块得到数据块;

所述编码模块,用于对数据分块模块生成的数据块进行哈希运算得到密钥,使用所述密钥对所述数据块进行加密处理得到密文块;对所述密文块进行哈希运算,对所有所述token值进行哈希运算得到文件标识符;将所述密钥与所述token值进行秘密共享处理得到分量;对共享所有者账号进行哈希运算;

所述上传模块,用于将编码模块生成的文件标识符、密文块、token值、密钥与token值分量上传至云存储服务器;

所述数据分发模块,用于将密钥与token值分量发送至所述共享文件的其他共享所有者;

所述存储模块,用于存储上传模块所得文件标识符、密文块、token值、密钥与token值分量并随机生成1000个挑战;

所述数据分量获取模块,用于所述共享所有者之一通过所述通信网络向其他共享所有者获取token与密钥分量;

所述验证模块,用于当共享所有者之一将编码模块生成文件标识符与账号哈希值上传至云存储服务器;云存储服务器判断所得文件标识符是否存储,若存在,则检查所得账号哈希值是否存储,若存在,则选择一个存储模块生成的挑战发送至所述共享所有者之一;并将数据分量获取模块得到的token分量进行解码得到所述token值;对所得token值与所述挑战对应的哈希值进行对比,若相同,则验证成功;发送验证信息至所述共享所有者之一。

在本发明一实施例中,所述编码模块的哈希运算方式采用包括SHA-128、SHA256的算法;所述加密方式采用包括AES、DES的算法;所述秘密共享方式采用包括SSSS、IDA、RSSS、SSMS的算法。

在本发明一实施例中,所述数据分发模块中发送方式具体为通过所述通信网络发送;所述存储模块中存储信息方式具体为将上传模块所得信息存入一个四元数组中;所述生成挑战方式具体为随机生成的1000个位置数组。

在本发明一实施例中,所述数据分量获取模块还包括其他共享所有者将token值分量与密钥分量通过所述通信网络发送给所述共享所有者之一。

在本发明一实施例中,所述验证模块还包括从数据库中读取数据与所述文件标识符进行对比;所述选择挑战方式具体为从所述1000个挑战中顺序选择,若挑战使用完后,返回存储模块重新生成1000个挑战。

相较于现有技术,本发明具有以下有益效果:

本发明创建了一种共享所有权证明的方法及系统,它不但能够有效的解决共享文件的安全访问与安全去重问题,而且使用合适的对称加密算法与秘密共享机制可以降低系统开销,适用于大规模推广使用,能应用到实际生产生活过程中。

附图说明

图1为本发明具体实施方式的一种共享所有权证明的系统的系统模型图。

图2为本发明具体实施方式的一种共享所有权证明的方法的步骤流程图。

图3为本发明具体实施方式的一种共享所有权证明的系统的结构示意图。

图中:10、数据分块模块;20、编码模块;30、上传模块;40、数据分发模块、50、存储模块;60、数据分量获取模块;70、验证模块;100、文件创建者;110、通信网络;120、共享所有者;130、共享文件;140、云存储服务器;150、敌手。

具体实施方式

下面结合附图,对本发明的技术方案进行具体说明。

本发明关键的构思在于:充分利用共享文件散布、收敛加密、秘密共享等技术对共享文件进行变换处理,实现对共享文件的分享授权,然后基于挑战—响应模型完成共享所有权证明,为共享文件的安全去重提供技术支撑。

为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。

请参阅图1,为本发明具体实施方式的一种共享所有权证明的系统的系统模型图,具体如下:

一种共享所有权证明的系统,包括:文件创建者 100、通信网络 110、共享所有者 120、共享文件 130、云存储服务器 140、敌手 150;

所述文件创建者 100,主要创建共享文件,对共享文件进行加密、编码等处理,并上传至云服务器。

所述通信网络 110,可以为公共网络或专用网络,但信道需是可信的。

所述共享所有者120,可以与其他所有者共同拥有云存储服务器上的共享文件的所有权。如果其中某个所有者想访问共享文件,必须得到至少t-1个其他所有者的授权,并通过云存储服务器发送的挑战。

所述共享文件 130,共享所有者共同拥有的文件,若要访问该文件,需得到一定数量的其他共享所有者的授权。

所述云存储服务器140,主要任务为存储共享文件,建立与该文件相关联的挑战信息,当所有者请求下载文件时,实施挑战并判断该所有者是否挑战成功,若成功则返回相应信息给该所有者。

所述敌手 150,表示对云存储服务器、共享文件传播过程中可能发起攻击。

请参照图2,为本发明具体实施方式的一种共享所有权证明的方法的步骤流程图,具体如下:

一种共享所有权证明的方法,包括:上传共享文件阶段和共享所有权证明阶段;

所述上传共享文件阶段包括以下步骤:

S100、将所述共享文件进行分块处理得到数据块,对所述数据块进行哈希运算得到密钥,使用所述密钥对所述数据块进行加密处理得到密文块;对所述密文块进行哈希运算得到token值,对所有所述token值进行哈希运算得到文件标识符;将所述密钥与所述token值进行秘密共享处理得到分量;对所述共享所有者账号进行哈希运算。

进一步的,所述分块处理具体为将所述共享文件根据共享所有者个数进行分块。

进一步的,所述哈希运算方式可以采用SHA-128、SHA-256等算法。

进一步的,所述加密方式可以采用AES、DES等算法。

进一步的,所述秘密共享方式可以采用SSSS、IDA、RSSS、SSMS等算法。

S200、将步骤S100所得的文件标识符、密文块、token值、共享所有者账号哈希值上传至云存储服务器;

S300、将步骤S100所得的密钥与token值分量通过通信网络发送至所述共享文件的其他共享所有者;

进一步的,所述通信网络可以为公共网络或者专用网络,但需建立可信信道。

S400、存储步骤S200所得文件标识符、密文块、token值、共享所有者账号哈希值;随机生成1000个挑战;

进一步的,所述存储信息方式具体为将步骤S200所得信息存入一个四元数组中。

进一步的,所述生成挑战方式具体为随机生成的1000个位置数组。

所述共享所有权证明阶段包括以下步骤:

S500、所述共享所有者之一将步骤S100所得文件标识符与账号哈希值上传至云存储服务器;

S600、判断步骤S500所得文件标识符是否存储,若存在,则进一步检查步骤S500所得账号哈希值是否存储,若存在,则选择一个由步骤S400所得的挑战;

进一步的,所述步骤S600还包括从数据库中读取数据与所述文件标识符进行对比。

进一步的,所述选择挑战方式具体为从所述1000个挑战中顺序选择,若挑战使用完后,返回步骤S400重新生成1000个挑战。

S700、将步骤S600所得挑战发送至步骤S500中所述共享所有者;

S800、步骤S500中所述共享所有者通过所述通信网络向其他共享所有者获取token值分量与密钥分量;对所述token值分量进行解码得到所述token值;

进一步的,所述步骤S800还包括其他共享所有者将token值分量与密钥分量通过所述通信网络发送给所述共享所有者。

S900、将步骤S800所得token值上传至云存储服务器;

S1000、对步骤S900所得token值与步骤S600所得挑战对应的哈希值进行对比,若相同,则验证成功;

S1100、发送步骤S1000所得验证结果与步骤S500中所述共享所有者请求的密文块;

进一步的,所述步骤S1100还包括从步骤S400中生成的四元组中读取相应的token值。

S1200、对步骤S1100所得密文块解密。进一步的,步骤S1200还包括对步骤S800所得密钥分量进行解码,得到密钥。

请参阅图3,为本发明具体实施方式的一种共享所有权证明的系统的结构示意图,具体如下:

一种共享所有权证明的系统,包括:数据分块模块 10、编码模块 20、上传模块 30、数据分发模块40、存储模块 50、数据分量获取模块 60、验证模块 70;

所述数据分块模块 10,用于对共享文件进行分块得到数据块;

进一步的,所述分块处理具体为将所述共享文件根据共享所有者个数进行分块。

所述编码模块 20,用于对数据分块模块生成的数据块进行哈希运算得到密钥,使用所述密钥对所述数据块进行加密处理得到密文块;对所述密文块进行哈希运算得到token值,对所有所述token值进行哈希运算得到文件标识符;将所述密钥与所述token值进行秘密共享处理得到分量;对所述共享所有者账号进行哈希运算。

进一步的,所述分块处理具体为将所述共享文件根据共享所有者个数进行分块。

进一步的,所述哈希运算方式可以采用SHA-128、SHA256等算法。

进一步的,所述加密方式可以采用AES、DES等算法。

进一步的,所述秘密共享方式可以采用SSSS、IDA、RSSS、SSMS等算法。

所述上传模块 30,用于将编码模块生成的文件标识符、密文块、token值、共享所有者账号哈希值上传至云存储服务器;

所述数据分发模块 40,用于将密钥与token值分量通过通信网络发送至所述共享文件的其他共享所有者;

进一步的,所述通信网络可以为公共网络或者专用网络,但需建立可信信道。

所述存储模块 50,用于存储上传模块所得文件标识符、密文块、token值、共享所有者账号哈希值并随机生成1000个挑战;

进一步的,所述存储信息方式具体为将上传模块所得信息存入一个四元数组中。

进一步的,所述生成挑战方式具体为随机生成的1000个位置数组。

所述数据分量获取模块 60,用于所述共享所有者之一通过所述通信网络向其他共享所有者获取token与密钥分量。

进一步的,获取分量步骤还包括将token值分量通过所述通信网络发送给所述共享所有者。

所述验证模块 70,用于当共享所有者之一将编码模块生成文件标识符与账号哈希值上传至云存储服务器;云存储服务器判断所得文件标识符是否存储,若存在,则检查所得账号哈希值是否存储,若存在,则选择一个存储模块生成的挑战发送至所述共享所有者之一;所述共享所有者将数据分量获取模块得到的token分量进行解码得到所述token值;对所得token值与所述挑战对应的哈希值进行对比,若相同,则验证成功;发送验证信息至所述共享所有者。

进一步的,所述验证模块还包括从数据库中读取数据与所述文件标识符进行对比。

进一步的,所述选择挑战方式具体为从所述1000个挑战中顺序选择,若挑战使用完后,返回存储模块重新生成1000个挑战。

实施例一

本发明提供的一种共享所有权证明的方法,该方法具体包括如下步骤:

1、上传共享文件阶段

(1)数据分块步骤

该步骤由数据分块模块执行,根据所述共享所有者个数n将所述共享文件均等分为n份,得到长度相等的数据块;

进一步的,若所述共享文件不能均等分为n份,则对所述共享文件补齐字符,使其可以均等分为n份。

(2)数据编码步骤

该步骤由编码模块执行,对步骤(1)生成的数据块进行哈希运算得到密钥,使用所述密钥对所述数据块进行加密处理得到密文块;对所述密文块进行哈希运算得到token值,对所有所述token值进行哈希运算得到文件标识符;将所述密钥与所述token值进行秘密共享处理得到分量;对所述共享所有者账号进行哈希运算;

进一步的,所述分块处理具体为将所述共享文件根据共享所有者个数进行分块。

进一步的,所述哈希运算方式可以采用SHA-128、SHA256等算法。

进一步的,所述加密方式可以采用AES、DES等算法。

进一步的,所述秘密共享方式可以采用SSSS、IDA、RSSS、SSMS等算法。

(3)数据上传步骤

该步骤由上传模块完成,将步骤(2)生成的文件标识符、密文块、token值、共享所有者账号哈希值上传至云存储服务器;

(4)数据分发步骤

该步骤由数据分发模块完成,用于步骤(2)生成密钥与token值分量通过通信网络发送至所述共享文件的其他共享所有者;

进一步的,所述通信网络可以为公共网络或者专用网络,但需建立可信信道。

2、共享所有权证明阶段

(5)数据存储步骤

该步骤由存储模块完成,云存储服务器接收到步骤(3)上传的文件标识符、密文块、token值、共享所有者账号哈希值后,存储步骤(3)上传的信息并根据用户个数n随机生成1000个挑战;

进一步的,所述存储信息方式具体为将步骤(3)上传的信息存入一个四元数组中。

进一步的,所述生成挑战方式具体为随机生成的1000个位置数组。

(6)共享所有权证明步骤

该步骤由验证模块执行,用于当共享所有者之一将编码模块生成文件标识符与账号哈希值上传至云存储服务器;云存储服务器判断所得文件标识符是否存储,若存在,则检查所得账号哈希值是否存储,若存在,则选择一个存储模块生成的挑战发送至所述共享所有者之一;所述共享所有者将数据分量获取模块得到的token分量进行解码得到所述token值; 对所得token值与所述挑战对应的哈希值进行对比,若相同,则验证成功;发送验证信息至所述共享所有者。

进一步的,所述步骤还包括从数据库中读取数据与所述文件标识符进行对比。

进一步的,所述选择挑战方式具体为从所述1000个挑战中顺序选择,若挑战使用完后,返回存储模块重新生成1000个挑战。

综上所述,本发明结合秘密共享、收敛加密、所有权证明等技术,提供一种共享所有权证明方法及系统,既能实现对共享文件的安全访问又能实现共享文件的安全去重要求,具体为: 对共享文件进行相关分割和加密操作,然后通过安全文件散布算法和秘密共享算法对密钥与token值进行分享,并将共享文件密文与分量值上传至云存储服务器中保存;若该文件已经存在,则对共享所有者发起挑战,即云存储服务器通过随机抽样等方式从上传的密文中产生挑战种子信息,并计算相应的token值,然后将挑战种子发送给发起挑战的所有者,该所有者通过通信网络从其他所有者中获取足够的分量信息,并根据种子计算相应的响应信息并发回给服务器,服务器校验这两个响应是否相同,相同则通过共享所有权证明,说明其确实拥有共享文件,从而通知该共享所有者不需要再次上传该共享文件,实现对所有者源端的数据去重。

进一步的,所述步骤(1)(2)(3)(4)中的数据分块模块、编码模块、上传模块、数据分发模块在共享所有者客户端实现,所述步骤(5)(6)中的存储模块、数据分量获取模块、验证模块在云存储服务器端实现。

进一步的,所述云存储服务器为公有服务器,还可添加可信的私有云服务器或可信的第三方服务器,所述私有云存储服务器或第三方服务器的主要工作为对共享文件进行分块,编码处理;并将处理后的文件标识符、密文块、token值、密钥与token值分量上传公共有云存储服务器。

进一步的,所述共享文件为多个参与方通过通信网络共同参与制定、创建、使用、签署的文件,属于参与方共同所有。如健康医疗的联合会诊文件、工程项目合同、联合项目申请书等均属于此列。

进一步的,所述通信网络可以是公共网络、专用网络,有线网络、无线网络等。

以上所述仅为本发明的较佳实施例,并非因此限制本发明的专利范围,凡是在本发明的精神和原则之内,利用本发明说明书及附图内容所作的任何修改、等同变换、等同替换、改进等,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1