著录项信息
专利名称 | 基于第三方的安全文件存储和共享系统及方法 |
申请号 | CN201510273917.3 | 申请日期 | 2015-05-26 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2015-09-16 | 公开/公告号 | CN104917759A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04L29/06 | IPC分类号 | H;0;4;L;2;9;/;0;6;;;G;0;6;F;2;1;/;6;2;;;H;0;4;L;9;/;0;8查看分类表>
|
申请人 | 西安电子科技大学 | 申请人地址 | 陕西省西安市太白南路2号西安电子科技大学
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 西安电子科技大学 | 当前权利人 | 西安电子科技大学 |
发明人 | 樊凯;苏锐丹;葛楠;刘中山;潘永强;李晖 |
代理机构 | 北京科亿知识产权代理事务所(普通合伙) | 代理人 | 汤东凤 |
摘要
本发明公开了一种基于第三方的安全文件存储和共享系统及方法,实现加密文件上传,文件下载解密以及文件安全存储于第三方,并且实现了文件在系统内的安全共享方法。本发明实现了在用户端的文件加密与文件解密,在用户端对文件密钥进行解密然后再用对方公钥重新进行加密生成新的文件密钥,然后将文件密钥上传至服务端存储,在共享文件接收者方的文件列表中进行共享文件标记,当共享文件接收者需要获取共享文件时使用私钥解密文件密钥进而再解密文件即获得最终文件。本发明使得共享系统中的文件更为安全,降低了密文文件共享方法的复杂度;从根本上降低了系统计算量;所采用密钥分配方式使得用户有且仅有对自己文件控制权,使得文件存储更为安全。
1.一种基于第三方的安全文件存储和共享方法,其特征在于,所述基于第三方的安全文件存储和共享方法当文件需要共享时,在加密上传后将用户文件密钥获取到用户端,在用户端对文件密钥进行解密然后再用对方的公钥重新进行加密生成新的文件密钥,然后上传至服务端存储,对方使用文件时使用私钥解密文件密钥进而再解密文件获得最终文件;
所述基于第三方的安全文件存储和共享方法具体包括以下步骤:
步骤一,系统初始化:
用户A与用户B在首次登录系统时进行初始化;
用户A与用户B在完成初始化后即进行登录系统,登录过程如下:
用户登录系统,用户端将自动获取存储于服务端服务端的密钥文件,并通过对注册信息进行哈希计算获取到口令密钥,通过口令密钥解密密钥文件,对密钥文件进行解析后分别获得用户主密钥与用户私钥,并将主密钥与私钥存储于用户端;
步骤二,文件加密上传;
步骤三,密文共享;
步骤四,文件下载解密;
步骤五,注销:
当需要注销时,用户端会自动清除存储于用户端的主密钥与用户私钥;
在步骤一中所述初始化过程包括:
第一步,用户进入注册界面,按要求提供用户名与口令进行注册,然后用户端会根据注册信息在用户端通过哈希函数生成符合对称加密密钥长度要求的用户口令密钥;
第二步,用户端会通过本地函数调用在本地生成大小为m的安全随机数,随机数作为用户的主密钥,m的大小根据对称加密算法对密钥长度的要求来进行确定,与此同时也在本地生成用户的非对称加密的密钥对;
第三步,将生成的用户主密钥与用户私钥通过口令密钥进行加密,生成密文状态的密钥文件,将文件通过编码后上传至服务端进行存储,存储至用户注册信息列表中;
第四步,将生成的公钥直接上传至用户注册信息列表中,进行存储从而完成注册;
在步骤二中所述文件加密上传过程包括:
第一步,用户A选择需要加密上传的文件,然后由用户端随机生成一个安全的随机数,长度符合对称加密密钥长度,将随机数作为文件密钥;
第二步,通过使用文件密钥对所选文件进行加密,并将加密结果缓存在本地;
第三步,文件密钥通过用户主密钥进行加密,并且将加密后的文件密钥通过文件拼接的方式拼接到通过第二步加密后的文件前,组成一个新的文件,前m字节为加密后的文件密钥,m字节后为加密后的文件内容;
第四步,用户A将新组成的加密文件上传至服务端进行存储;
在步骤三中所述密文共享具体包括:
第一步,用户A首先在自己的存储空间内选择需要共享的文件,设置文件属性为共享,提供用户查询的窗口,当用户A在窗口内输入用户B的用户名后用户端自动发送查询请求到服务端查询用户B是否存在,如果用户B存在则将返回一个确认信息以及用户B的公钥;
第二步,用户A通过发送请求获取当前所要共享文件的加密后的文件密钥,服务端接收到请求后则会将服务端中存储的当前文件密态的文件密钥发送给用户A;
第三步,用户A接收到文件的文件密钥后,通过存储在本地的主密钥解密获取文件的明文状态的文件密钥;
第四步,通过使用在第一步中获取到的用户B的公钥对明文的文件密钥进行加密处理,形成新密态的文件密钥;
第五步,用户A的用户端自动将新加密得到的密钥通过可视化编码为字符串,然后将编码后的密钥上传到服务端,并在共享文件信息列表中插入一条记录用来存储密钥以及相关信息;
第六步,服务端根据共享文件信息列表对用户B进行文件标记,使得用户B能够在自己的存储空间中看到并识别出共享文件;
在步骤四中所述文件下载解密具体包括:
共享文件的下载解密:
第一步,用户B在自己的文件列表内选择接收到的共享文件,发送下载请求;
第二步,服务端根据下载请求判断该文件是否为共享文件,如果是共享文件则将存储于共享文件信息列表中的文件密钥发送给用户B,同时将请求的共享文件发送到用户B进行缓存;
第三步,用户端将使用获取到的用户私钥对第二步中获取到的文件密钥进行解密,从而获取到文件密钥,通过使用文件密钥对文件进行解密获取到明文的原始文件;
非共享文件的下载解密:
第一步,用户A或者B选择需下载的非共享文件,发送下载请求;
第二步,服务端根据下载请求判断该文件是否为共享文件,如果不是共享文件,则将请求的文件发送到用户A或者B进行缓存;
第三步,用户端获取缓存的文件头部信息,并通过用户的主密钥解密头部信息,获取得到明文的文件密钥,通过明文的文件密钥解密获取明文的原始文件,从而完成下载;
所述系统包括:
用于存储数据的服务端;
用于进行文件加密解密以及共享操作,进行密钥的生成以及文件的加密与解密操作的用户端;
所述系统使用三层密钥;
第一层是文件密钥,用来对文件进行加密保护;
第二层是用户公私钥和主密钥,用户公私钥对用于共享文件时对文件密钥进行加密保护,用户的主密钥用于非共享存储时加密文件的文件密钥;
第三层是口令密钥,口令密钥用于对用户的公私钥对以及主密钥进行加密保护。
基于第三方的安全文件存储和共享系统及方法\n技术领域\n[0001] 本发明属于信息处理技术领域,尤其涉及一种基于第三方的安全文件存储和共享系统及方法。\n背景技术\n[0002] 现在越来越多的个人用户或者是机构用户使用第三方服务来存储数据。第三方存储服务可以为用户提供多种益处,包括成本低廉、使用方便、灵活存储、附加服务和对数据的集中访问。\n[0003] 许多用户想要确保自己存储在第三方的信息不会被第三方机构随意获取。因此,用户希望将自己的数据在提交给第三方之前进行加密处理。例如,由于隐私问题,可能个人用户希望对发送给第三方存储供应商的数据进行加密。类似的,一些机构用户可能希望对发送给第三方存储供应商的数据加密以便确保遵守内部或者外部数据保护要求,诸如政府法律法规、与其他组织的合作协议等,并且对于用户来说我们往往希望我们的数据可以进行相互之间共享。因此,基于第三方存储的用户数据加密存储和解密下载以及加密数据共享成为了现在迫切需要解决的问题。用户需要通过灵活的访问控制策略,实现权限的灵活设置,从而控制数据的共享范围,以及在与用户通信过程中保证数据的机密性。\n[0004] 通常我们加密文件使用一个密钥,加密与解密都使用同一个密钥,因为这种方式加密文件具有较高的效率,但是当我们想将文件共享给其他用户时,并且想让他阅读到文件内容,我们必须将密钥一起交予对方,他才能得到共享的文件。但是安全的密钥交付在单一密钥使用情况下是非常难以实现的。\n发明内容\n[0005] 本发明的目的在于提供一种基于第三方的安全文件存储和共享系统及方法,旨在解决基于第三方的存储中,无法很好保证用户数据机密性以及加密后的文件方便快速的共享给其他用户的问题。\n[0006] 本发明的目的在于提供一种基于第三方的安全文件存储和共享系统及方法,所述基于第三方的安全文件存储和共享系统及方法对用户端文件的加密上传和用户解密下载文件,当文件在加密上传后将用户文件密钥获取到用户端,在用户端对文件密钥进行解密然后再用对方的公钥重新进行加密生成新的文件密钥,然后上传至服务端存储,对方使用文件时使用私钥解密文件密钥进而再解密文件获得最终文件。\n[0007] 进一步,所述基于第三方的安全文件存储和共享系统及方法具体包括以下步骤:\n[0008] 步骤一,系统初始化:\n[0009] 用户A与用户B在首次登录系统时进行初始化;\n[0010] 用户A与用户B在完成初始化后即进行登陆系统,登陆过程如下:\n[0011] 用户登录系统,用户端将自动获取存储于第三方存储机构的密钥文件,并通过对注册信息进行哈希计算获取到口令密钥,通过口令密钥解密密钥文件,对密钥文件进行解析后分别获得用户主密钥与用户私钥,并将主密钥与私钥存储于用户端;\n[0012] 步骤二,文件加密上传;\n[0013] 步骤三,密文共享;\n[0014] 步骤四,文件下载解密;\n[0015] 步骤五,注销:\n[0016] 当需要注销时,用户端会自动清除存储于用户端的主密钥与用户私钥。\n[0017] 进一步,在步骤一中所述初始化过程包括:\n[0018] 第一步,用户进入注册界面,按要求提供用户名与口令进行注册,然后用户端会根据注册信息在用户端通过哈希函数生成符合对称加密密钥长度要求的用户口令密钥;\n[0019] 第二步,用户端会通过本地函数调用在本地生成大小为m的安全随机数,随机数作为用户的主密钥,m的大小根据对称加密算法对密钥长度的要求来进行确定,与此同时也在本地生成用户的非对称加密的密钥对;\n[0020] 第三步,将生成的用户主密钥与用户私钥通过口令密钥进行加密,生成密文状态的密钥文件,将文件通过编码后上传至第三方平台机构进行存储,存储至用户注册信息列表中;\n[0021] 第四步,将生成的公钥直接上传至用户注册信息列表中,进行存储从而完成注册。\n[0022] 进一步,在步骤二中所述文件上传过程包括:\n[0023] 第一步,用户A选择需要加密上传的文件,然后由用户端随机生成一个安全的随机数,长度符合对称加密密钥长度,将随机数作为文件密钥;\n[0024] 第二步,通过使用文件密钥对所选文件进行加密,并将加密结果缓存在本地;\n[0025] 第三步,文件密钥通过用户主密钥进行加密,并且将加密后的文件密钥通过文件拼接的方式拼接到通过第二步加密后的文件前,组成一个新的文件,前m字节为加密后的文件密钥,m字节后为加密后的文件内容;\n[0026] 第四步,用户A将新组成的加密文件上传至服务端进行存储。\n[0027] 进一步,在步骤三中所述文件共享具体包括:\n[0028] 第一步,用户A首先在自己的存储空间内选择需要共享的文件,设置文件属性为共享,提供用户查询的窗口,当用户A在窗口内输入用户B的用户名后用户端自动发送查询请求到服务端查询用户B是否存在,如果用户B存在则将返回一个确认信息以及用户B的公钥;\n[0029] 第二步,用户A通过发送请求获取当前所要共享文件的加密后的文件密钥,第三方平台机构接收到请求后则会将第三方平台机构中存储的当前文件密态的文件密钥发送给用户A;\n[0030] 第三步,用户A接收到文件的文件密钥后,通过存储在本地的主密钥解密获取文件的明文状态的文件密钥;\n[0031] 第四步,通过使用在第一步中获取到的用户B的公钥对明文的文件密钥进行加密处理,形成新密态的文件密钥;\n[0032] 第五步,用户A的用户端自动将新加密得到的密钥通过可视化编码为字符串,然后将编码后的密钥上传到第三方平台机构,并在共享文件信息列表中插入一条记录用来存储密钥以及相关信息;\n[0033] 第六步,第三方平台机构根据共享文件信息列表对用户B进行文件标记,使得用户B能够在自己的存储空间中看到并识别出共享文件。\n[0034] 进一步,在步骤四中所述文件下载具体包括:\n[0035] 共享文件的下载解密:\n[0036] 第一步,用户B在自己的文件列表内选择接受到的共享文件,发送下载请求;\n[0037] 第二步,第三方平台机构根据下载请求判断该文件是否为共享文件,如果是共享文件则将存储于共享文件信息列表中的文件密钥发送给用户B,同时将请求的共享文件发送到用户B进行缓存;\n[0038] 第三步,用户端将使用获取到的用户私钥对第二步中获取到的文件密钥进行解密,从而获取到文件密钥,通过使用文件密钥对文件进行解密获取到明文的原始文件;\n[0039] 非共享文件的下载解密:\n[0040] 第一步,用户A或者B选择需下载的非共享文件,发送下载请求;\n[0041] 第二步,第三方平台机构根据下载请求判断该文件是否为共享文件,如果不是共享文件,则将请求的文件发送到用户A或者B进行缓存;\n[0042] 第三步,用户端获取缓存的文件头部信息,并通过用户的主密钥解密头部信息,获取得到明文的文件密钥,通过明文的文件密钥解密获取明文的原始文件,从而完成下载。\n[0043] 本发明的另一目的在于提供一种基于第三方的安全文件存储和共享系统,所述基于第三方的安全文件存储和共享系统包括:\n[0044] 用于存储数据的第三方存储机构的服务端;\n[0045] 用于进行文件加密解密以及共享操作,进行密钥的生成以及文件的加密与解密操作的用户端。\n[0046] 进一步,所述基于第三方的安全文件存储和共享系统使用三层密钥;\n[0047] 第一层是文件密钥,用来对文件进行加密保护;\n[0048] 第二层是用户公私钥和主密钥,用户公私钥对用于共享文件时对文件密钥进行加密保护,用户的主密钥用于非共享存储时加密文件的文件密钥;\n[0049] 第三层口令密钥,口令密钥用于对用户的公私钥对以及主密钥进行加密保护。\n[0050] 本发明保证了存储于第三方数据的安全性,以及在文件上传及下载过程中由于都是加密的,所以都是安全的;通过采用完全客户端加解密的方式对用户数据进行保密,从而确保了用户数据的安全性;采用了对用户完全透明的操作方式,用户使用简单方便,不需额外工作即可完成文件共享的目的;采用多级密钥,充分利用了公私钥的特点使得共享系统中的文件更为安全,且大大降低了密文文件共享方法的复杂度;通过采用一文一密以及密钥重加密的方式使得共享无需对全文进行重新加密,在保证一定安全性的条件下从根本上降低了系统的计算量;所采用的密钥分配方式使得用户有且仅有对自己文件的控制权,使得文件存储更为安全。\n附图说明\n[0051] 图1是本发明实施例提供的基于第三方的安全文件存储和共享系统结构示意图;\n[0052] 图2是本发明实施例提供的基于第三方的安全文件存储和共享方法流程图;\n具体实施方式\n[0053] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。\n[0054] 本发明主要包括文件的加密上传,文件的下载解密以及密文的分享操作,其中文件的加密与解密操作在用户端完成,密文共享操作过程包括将文件密钥获取到用户端,在用户端对文件密钥进行解密然后再用对方的公钥重新进行加密生成新的文件密钥,然后上传至服务端存储,当需要使用文件时使用自己的私钥解密文件密钥进而再解密文件即可获得最终文件。\n[0055] 下面结合附图及具体实施例对本发明的应用原理作进一步描述。\n[0056] 如图1所示,本发明实施例的基于第三方的安全文件存储和共享系统主要包括:服务端1、用户端2;\n[0057] 用于存储数据的第三方存储机构的服务端1,以及用户终端,为用户端2;其中,服务端1主要进行用户数据的存储,即它会接受用户端2的请求并按用户端2的要求进行处理数据,同时他也存在泄露数据的可能。\n[0058] 用户端2是文件的所有者所持有的合法设备,它是用户进行文件加密解密以及共享操作的核心作业环境,对用户来说是安全的。在用户端2进行密钥的生成以及文件的加密与解密操作。\n[0059] 为了更好地理解本实施范例中的方法与过程,选取一次密文共享过程来进行详细说明,该过程的参与者主要有三方,包括:用户A(可进行文件的加密上传、文件解密下载和文件共享发起)与用户B(可进行文件的加密上传、文件解密下载和文件共享接收)以及用于存储数据的第三方平台机构;其中用户A是共享文件的所有者,它对所要共享的文件具有任何权利;用户B是共享文件的接受者,在经用户A授权共享的情况下对文件进行访问;第三方平台机构主要用于存储用户的文件数据,以及加密后的密钥信息和用户注册信息并且响应用户请求。\n[0060] 如图2所示,本发明实施的具体步骤如下:\n[0061] (1)系统初始化\n[0062] 为了实现共享功能,用户A与用户B在首次登录系统的时候需要进行初始化。初始化过程包括:\n[0063] 1a)用户进入注册界面,按要求提供用户名与口令进行注册,然后用户端系统会根据注册信息在用户端通过哈希函数1生成符合对称加密密钥长度要求的用户口令密钥;\n[0064] 1b)用户端会通过本地函数调用在本地生成大小为m的安全随机数,该随机数作为用户的主密钥,其中m的大小根据对称加密算法对密钥长度的要求来进行确定,与此同时也在本地生成用户的非对称加密的密钥对,其长度也由具体算法来进行确定。\n[0065] 1c)将生成的用户主密钥与用户私钥通过口令密钥进行加密,生成密文状态的密钥文件,将该文件通过编码后上传至第三方平台机构进行存储,存储至用户注册信息列表中。\n[0066] 1d)将生成的公钥直接上传至用户注册信息列表中,进行存储从而完成注册。\n[0067] 用户A与用户B在完成初始化后即可进行登陆系统,登陆过程如下所述:\n[0068] 用户登录系统,用户端系统将自动获取存储于第三方存储机构的密钥文件,并通过对注册信息进行哈希计算获取到口令密钥,通过口令密钥解密密钥文件,对密钥文件进行解析后分别获得用户主密钥与用户私钥,并将主密钥与私钥存储于用户端。\n[0069] (2)文件加密上传\n[0070] 2a)用户A选择需要加密上传的文件,然后由用户端随机生成一个安全的随机数,其长度符合对称加密密钥长度,将该随机数作为文件密钥;\n[0071] 2b)通过使用文件密钥对所选文件进行加密,并将加密结果缓存在本地;\n[0072] 2c)文件密钥通过用户主密钥进行加密,并且将加密后的文件密钥通过文件拼接的方式拼接到通过步骤2b)加密后的文件前,组成一个新的文件,其中前m字节为加密后的文件密钥,m字节后为加密后的文件内容。\n[0073] 2d)用户A将新组成的加密文件上传至服务端进行存储。\n[0074] (3)密文共享\n[0075] 3a)用户A首先在自己的存储空间内选择需要共享的文件,设置文件属性为共享,这时系统会提供用户查询的窗口,当用户A在窗口内输入用户B的用户名后用户端自动发送查询请求到服务端查询用户B是否存在,如果用户B存在则将返回一个确认信息以及用户B的公钥;\n[0076] 3b)用户A通过发送请求获取当前所要共享文件的加密后的文件密钥,第三方平台机构接收到请求后则会将第三方平台机构中存储的当前文件密态的文件密钥发送给用户A;\n[0077] 3c)用户A接收到文件的文件密钥后,通过存储在本地的主密钥解密获取该文件的明文状态的文件密钥;\n[0078] 3d)通过使用在步骤3a)中获取到的用户B的公钥对明文的文件密钥进行加密处理,形成新密态的文件密钥,在这里步骤3d)生成的密文文件密钥只有用户B才能进行解密获取到真正的文件密钥,也由此确保了共享文件的安全性;\n[0079] 3e)用户A的用户端自动将新加密得到的密钥通过可视化编码为字符串,然后将编码后的密钥上传到第三方平台机构,并在共享文件信息列表中插入一条记录用来存储密钥以及相关信息;\n[0080] 3f)第三方平台机构根据共享文件信息列表对用户B进行文件标记,使得用户B能够在自己的存储空间中看到并识别出共享文件。\n[0081] (4)文件下载解密\n[0082] 4a)用户B在自己的文件列表内选择接受到的共享文件,发送下载请求;\n[0083] 4b)第三方平台机构根据下载请求判断该文件是否为共享文件,如果是共享文件则将存储于共享文件信息列表中的文件密钥发送给用户B,同时将请求的共享文件发送到用户B进行缓存,然后执行步骤4c;如果不是共享文件则直接将请求的文件发送到用户B进行解密操作,从而获得最终明文的文件。\n[0084] 4c)用户端将使用步骤1c)中获取到的用户私钥对4b)中获取到的文件密钥进行解密,从而获取到文件密钥,通过使用文件密钥对文件进行解密获取到明文的原始文件。\n[0085] (5)注销\n[0086] 当系统系统需要注销时,为了安全需要用户端会自动清除存储于用户端的主密钥与用户私钥。\n[0087] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
法律信息
- 2022-04-15
专利实施许可合同备案的生效
IPC(主分类): H04L 29/06
合同备案号: X2022980003331
专利申请号: 201510273917.3
申请日: 2015.05.26
让与人: 西安电子科技大学
受让人: 西安磐石安创信息技术有限公司
发明名称: 基于第三方的安全文件存储和共享系统及方法
申请公布日: 2015.09.16
授权公告日: 2019.02.22
许可种类: 普通许可
备案日期: 2022.03.28
- 2019-02-22
- 2015-10-14
实质审查的生效
IPC(主分类): H04L 29/06
专利申请号: 201510273917.3
申请日: 2015.05.26
- 2015-09-16
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2013-08-14
|
2012-02-06
| | |
2
| |
2014-01-15
|
2012-06-28
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |