CN103338185A - 一种文件共享的方法及系统 - Google Patents
一种文件共享的方法及系统 Download PDFInfo
- Publication number
- CN103338185A CN103338185A CN2013102109004A CN201310210900A CN103338185A CN 103338185 A CN103338185 A CN 103338185A CN 2013102109004 A CN2013102109004 A CN 2013102109004A CN 201310210900 A CN201310210900 A CN 201310210900A CN 103338185 A CN103338185 A CN 103338185A
- Authority
- CN
- China
- Prior art keywords
- server
- uploading
- user terminal
- module
- download
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000012795 verification Methods 0.000 claims abstract description 8
- 230000006870 function Effects 0.000 claims description 45
- 230000005540 biological transmission Effects 0.000 claims description 18
- 239000000284 extract Substances 0.000 claims description 11
- 238000001514 detection method Methods 0.000 claims description 4
- 238000000605 extraction Methods 0.000 claims description 4
- 238000004321 preservation Methods 0.000 claims description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000007812 deficiency Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明公开一种文件共享的方法及系统,该方法包括:上传用户终端向服务器发送上传请求;服务器使用上传用户公钥对随机数进行加密,根据加密得到的第一随机数密文、算法信息生成第一结果并将其发送给上传用户终端;上传用户终端解析第一结果,并使用服务器证书验证解析结果,如验证成功则调用内部的预设函数,根据第一随机数密文、服务器公钥、待上传的文件得到第一随机数新密文和文件密文;根据两者生成第二结果并将其发送给服务器;服务器接收并解析第二结果,验证解析结果,如验证成功则保存第二解析结果中的第一随机数新密文及文件密文。本发明方案中使用预设函数并结合SM2非对称算法,很好的解决了共享文件的机密性及访问的可控性。
Description
技术领域
本发明涉及信息安全领域,尤其涉及一种文件共享的方法及系统。
背景技术
随着Internet的不断普及和新技术的不断发展,自动化办公系统已经在很大程度上取缔了传统办公室的许多功能。许多企业开始使用网络技术、数据库技术对日常工作中的各种报表、演讲稿和其他文件进行共享和协同操作,实现了无纸化办公。共享的文件首先需要存储到服务器的数据库中,用户访问时需要先进行身份验证,验证通过后才能查看。现有技术中存储在服务器的数据中的文件有的是以明文形式保存,有的使用对称算法加密后保存密文,如果以明文形式保存则会被不法分子查看、下载,造成数据泄露,而如果以密文形式存储则多人共享查看时,操作过程存在不便,而且密钥管理也较繁琐。
发明内容
本发明的目的是为了克服现有技术的不足,提供一种文件共享的方法及系统。
本发明提供了一种文件共享的方法,包括:
步骤S1:上传用户终端根据上传用户信息和待上传的文件信息生成上传请求并向服务器发送所述上传请求,所述上传用户信息包括上传用户标识和/或上传用户证书,所述上传用户证书中包括上传用户公钥;
步骤S2:所述服务器接收所述上传请求并对其进行解析,并使用与解析结果中的所述上传用户信息对应的上传用户公钥对生成的第一随机数进行加密得到第一随机数密文;
步骤S3:所述服务器将所述第一随机数密文和预设的算法信息组合为第一组合,使用与算法信息对应的第一预设算法对所述第一组合进行计算得到第一摘要,使用服务器私钥对所述第一摘要进行签名得到第一签名,对所述第一组合、所述第一摘要和所述第一签名进行组合得到第一结果并将所述第一结果发送给所述上传用户终端;
步骤S4:所述上传用户终端接收所述第一结果并对其解析得到第一解析结果,并使用获取的服务器证书验证所述第一解析结果,如验证成功则执行步骤S5,如验证失败则输出失败信息,结束;
步骤S5:所述上传用户终端调用上传智能密钥设备中的第一预设函数,根据所述第一解析结果中的所述第一随机数密文得到第一会话密钥句柄;
步骤S6:所述上传用户终端调用上传智能密钥设备中的第二预设函数,根据所述第一会话密钥句柄和所述服务器证书中的服务器公钥得到第一随机数新密文作为加密密钥;根据所述第一会话密钥句柄在接口内检索对应的加密密钥,使用所述检索到的加密密钥对待上传的文件进行加密得到文件密文;
步骤S7:所述上传用户终端对所述文件密文、所述第一随机数新密文进行组合得到第二组合,根据所述第一解析结果中的算法信息调用上传智能密钥设备中的第一预设算法对所述第二组合进行计算得到第二摘要,调用所述上传智能密钥设备中的上传用户私钥对所述第二摘要进行签名得到第二签名,对所述第二组合、所述第二摘要和所述第二签名进行组合得到第二结果;将所述第二结果发送给所述服务器;
步骤S8:所述服务器接收所述第二结果并对其进行解析得到第二解析结果,对所述第二解析结果进行验证,如验证成功则保存所述第二解析结果中的所述第一随机数新密文和所述文件密文,如验证失败则给所述上传用户终端返回失败信息,结束。
其中,上述方法还包括:
步骤S9:当下载用户终端接收到共享触发信息时,对将要下载的文件信息和下载用户信息进行组合得到第三组合,调用下载智能密钥设备中的第一预设算法对所述第三组合进行计算得到第三摘要,调用所述下载智能密钥设备中的下载用户私钥对所述第三摘要进行签名得到第三签名;所述下载用户信息中包括下载用户标识和/或下载用户证书,所述下载用户证书中有下载用户公钥;
步骤S10:所述下载用户终端根据所述第三组合、所述第三摘要和所述第三签名生成下载请求,并将所述下载请求发送给所述服务器;
步骤S11:所述服务器接收所述下载请求并对其进行解析得到下载请求解析结果,验证所述下载请求解析结果的有效性,如有效则执行步骤S12,如无效则给所述下载用户终端返回拒绝信息,结束;
步骤S12:所述服务器根据所述下载请求解析结果中的所述将要下载的文件信息找到要下载的文件密文和所述第一随机数新密文,调用下载智能密钥设备中的第一预设函数根据所述第一随机数新密文得到第二会话密钥句柄,调用下载智能密钥设备中的第二预设函数根据所述第二会话密钥句柄和与所述下载请求解析结果中的所述下载用户信息对应的下载用户公钥得到第二随机数密文;
步骤S13:所述服务器将所述第二随机数密文及所述文件密文组合得到第四组合,使用所述第一预设算法对所述第四组合进行计算得到第四摘要,使用所述服务器私钥对所述第四摘要进行签名得到第四签名,对所述第四组合、所述第四摘要和所述第四签名进行组合得到第四结果;并将所述第四结果发送给所述下载用户终端;
步骤S14:所述下载用户终端接收所述第四结果并对其进行解析得到第四解析结果,对所述第四解析结果进行验证,验证成功则执行步骤S15,如验证失败则输出失败信息,结束;
步骤S15:所述下载用户终端调用下载智能密钥设备中的所述第一预设函数,根据所述第四解析结果中的所述第二随机数密文得到所述第二会话密钥句柄;根据所述第二会话密钥句柄在接口内检索对应的加密密钥,使用检索到的加密密钥对所述第四解析结果中的文件密文进行解密,如解密成功则得到文件内容,如解密失败则输出失败信息,结束。
其中,所述步骤S1之前还包括:所述上传用户终端判断是否有所述上传智能密钥设备与其连接,是则从所述上传智能密钥设备中获取所述上传用户证书,执行步骤S1,否则结束;所述上传用户证书中包括所述上传用户公钥;
在所述步骤S2中所述服务器解析所述上传请求得到上传用户证书,从所述上传用户证书中获取所述上传用户公钥。
其中,在所述步骤S7之前还包括:所述上传用户终端判断是否有所述上传智能密钥设备与其连接,是则继续,否则结束;
所述步骤S2中进行加密前还包括:根据所述上传请求解析结果中的上传用户标识在内部存储用户公钥中获取对应的上传用户公钥。
其中,所述步骤S2中的所述第一随机数是所述上传用户终端接收到所述上传请求时生成的或预先生成的。
其中,所述步骤S3替换为:所述服务器使用第一预设算法对所述第一随机数密文进行计算得到第一摘要,使用服务器私钥对所述第一摘要进行签名得到第一签名,对所述随机数密文、所述第一摘要和所述第一签名进行组合得到第一结果,并将所述第一结果发送给所述上传用户终端;
所述步骤S7中所述上传用户终端直接调用所述上传智能密钥设备中预置的第一预设算法对所述第二组合进行计算得到第二摘要。
其中,在所述步骤S4之前还包括:所述上传用户终端从所述服务器中获取所述服务器证书,所述服务器证书中包括服务器公钥。
其中,所述步骤S4具体包括:
步骤S4-1:所述上传用户终端接收所述第一结果,对所述第一结果解析得到所述第一组合、所述第一摘要和所述第一签名,对所述第一组合解析得到所述第一随机数密文和所述算法信息;
步骤S4-2:所述上传用户终端根据所述算法信息调用所述上传智能密钥设备中对应的所述第一预设算法对所述第一组合进行计算得到第一验证摘要;
步骤S4-3:所述上传用户终端判断所述解析得到的第一摘要与所述第一验证摘要是否相同,是则执行步骤S4-4,否则验证失败;
步骤S4-4:所述上传用户终端使用获取的所述服务器证书中的所述服务器公钥和所述第一摘要对所述第一签名进行验证,如验证成功则执行步骤S5,如验证失败则输出失败信息,结束。
其中,所述步骤S8具体包括:
步骤S8-1:所述服务器接收所述第二结果并对所述第二结果解析得到所述第二组合、所述第二摘要和所述第二签名,对所述第二组合解析得到所述文件密文和所述第一随机数新密文;
步骤S8-2:所述服务器根据所述第一预设算法对所述第二组合进行计算得到第二验证摘要;
步骤S8-3:所述服务器判断所述解析得到的第二摘要与所述第二验证摘要是否相同,是则执行步骤S8-4,否则验证失败;
步骤S8-4:所述服务器使用所述上传用户公钥和所述第二摘要对所述第二签名进行验证,如验证成功则保存所述第一随机数新密文和所述文件密文,如验证失败则给用户终端返回失败信息,结束。
其中,在所述步骤S9之前还包括:所述下载用户终端判断是否有所述下载智能密钥设备与其连接,是则从所述下载智能密钥设备中获取所述下载用户证书,执行步骤S9,否则结束;所述下载用户证书中有下载用户公钥。
其中,所述步骤S11具体包括:
步骤S11-1:所述服务器接收所述下载请求并对其进行解析得到所述第三组合、所述第三摘要和所述第三签名;对所述第三组合解析得到所述文件信息和所述下载用户信息;
步骤S11-2:所述服务器使用所述第一预设算法对所述第三组合进行计算得到第三验证摘要,判断所述第三验证摘要与所述第三摘要是否相同,是则执行步骤S11-3,否则给所述下载用户终端返回拒绝信息,结束;
步骤S11-3:所述服务器使用与所述下载用户信息对应的下载用户公钥和所述第三摘要对所述第三签名进行验证,如验证成功则下载请求解析结果有效,如验证失败则下载请求解析结果无效。
其中,在步骤S14之前还包括:所述下载用户终端判断内部是否存储有服务器公钥,是则继续,否则从所述服务器中获取所述服务器公钥,继续。
其中,所述步骤S14具体包括:
步骤S14-1:所述下载用户终端接收所述第四结果并对所述第四结果解析得到所述第四组合、所述第四摘要和所述第四签名,对所述第四组合解析得到所述第二随机数密文及所述文件密文;
步骤S14-2:所述下载用户终端调用所述下载智能密钥设备中的第一预设算法对所述第四组合进行计算得到第四验证摘要,判断所述解析得到的第四摘要与所述第四验证摘要是否相同,是则执行步骤S14-3,否则验证失败,输出失败信息,结束;
步骤S14-3:所述下载用户终端使用所述服务器证书中的服务器公钥和所述第四摘要对所述第四签名进行验证,如验证成功则执行步骤S15,如验证失败则输出失败信息,结束。
其中,所述步骤S7中将所述第二结果发送给所述服务器和步骤S8具体包括:
步骤a1:所述上传用户终端将所述第二结果进行分包,并将第一包数据作为当前数据包发送给所述服务器;
步骤a2:所述服务器接收到当前数据包后,对当前数据包进行验证,如验证通过则给所述上传用户终端发送验证成功信息,执行步骤a3,否则给所述上传用户终端返回验证失败信息,执行步骤a3;
步骤a3:所述上传用户终端接收并检测所述服务器返回的信息,如为验证成功信息则执行步骤a4,否则输出验证失败信息,结束;
步骤a4:所述上传用户终端判断数据包是否发送完成,是则将发送完成信息发送给所述服务器,执行步骤a5,否则将下一个数据包作为当前数据包发送给所述服务器,返回步骤a2;
步骤a5:所述服务器将接收到的所有数据包顺序组合,从组合数据中提取所述第一随机数新密文及所述文件密文并保存。
其中,所述步骤S13将所述第四结果发送给所述下载用户终端和步骤S15具体包括:
步骤a1’:所述服务器将所述第四结果进行分包,并将第一包数据作为当前数据包发送给所述下载用户终端;
步骤a2’:所述下载用户终端接收到当前数据包后,对当前数据包进行验证,如验证通过则给所述服务器发送验证成功信息,执行步骤a3’,否则给输出验证失败信息,结束;
步骤a3’:所述服务器判断数据包是否发送完成,是则将发送完成信息发送给所述下载用户终端,执行步骤a4’,否则将下一个数据包作为当前数据包发送给所述下载用户终端,返回步骤a2’;
步骤a4’:所述下载用户终端将接收到的所有数据包顺序组合,并从组合数据中提取所述第二随机数密文和所述文件密文。
本发明又提供一种文件共享的系统,包括服务器和用户终端,所述用户终端包括:
第一接收模块,用于接收所述服务器发送的第一结果;
第一生成模块,用于根据上传用户信息和待上传的文件信息生成上传请求;所述上传用户信息包括上传用户标识和/或上传用户证书;
第一解析模块,用于对接收到的所述第一结果进行解析得到第一解析结果;
第一验证模块,用于使用获取的服务器证书验证所述第一解析结果;
输出模块,用于输出失败信息;
第一调用模块,用于调用上传智能密钥设备中的第一预设函数,根据所述第一解析结果中的第一随机数密文得到第一会话密钥句柄;用于调用上传智能密钥设备中的第二预设函数,根据所述第一会话密钥句柄和所述服务器证书中的服务器公钥得到第一随机数新密文作为加密密钥;
第一加密模块,根据所述第一会话密钥句柄在接口内检索对应的加密密钥,使用所述检索到的加密密钥对待上传的文件进行加密得到文件密文;
第一组合计算模块,用于对所述文件密文、所述第一随机数新密文进行组合得到第二组合,根据所述第一解析结果中的算法信息调用上传智能密钥设备中对应的第一预设算法对所述第二组合进行计算得到第二摘要,调用所述上传智能密钥设备中的上传用户私钥对所述第二摘要进行签名得到第二签名,对所述第二组合、所述第二摘要和所述第二签名进行组合得到第二结果;
第一发送模块,用于向所述服务器发送所述上传请求和所述第二结果;
所述服务器包括:
第二接收模块,用于接收所述第一发送模块发送的所述上传请求和所述第二结果;
第二加密模块,用于对所述上传请求进行解析,并使用与解析结果中的所述上传用户信息对应的上传用户公钥对生成的第一随机数进行加密得到第一随机数密文;
第二组合计算模块,用于将所述第一随机数密文和预设的算法信息组合为第一组合,使用与所述算法信息对应的第一预设算法对所述第一组合进行计算得到第一摘要,使用服务器私钥对所述第一摘要进行签名得到第一签名,对所述第一组合、所述第一摘要和所述第一签名进行组合得到第一结果;
第二解析模块,用于对所述接收到的第二结果进行解析得到第二解析结果;
第二验证模块,用于对所述第二解析结果进行验证;
保存模块,用于在所述第二验证模块验证成功时则保存所述第二解析结果中的第一随机数新密文及文件密文;
第二发送模块,用于向所述用户终端发送所述第一结果和失败信息。
其中,上述系统中的所述用户终端还包括:
第三组合计算模块,用于当接收到共享触发信息时,对将要下载的文件信息和下载用户信息进行组合得到第三组合,调用下载智能密钥设备中的第一预设算法对所述第三组合进行计算得到第三摘要,调用所述下载智能密钥设备中的下载用户私钥对所述第三摘要进行签名得到第三签名;所述下载用户信息中包括下载用户标识和/或下载用户证书;
第一生成模块,用于根据所述第三组合、所述第三摘要和所述第三签名生成下载请求;
第三解析模块,用于对接收到的所述第四结果进行解析得到第四解析结果;
第三验证模块,用于对所述第四解析结果进行验证;
解密模块,用于当所述第三验证模块验证成功时调用上传智能密钥设备中的第一预设函数,根据所述第四解析结果中的第二随机数密文得到第二会话密钥句柄;根据所述第二会话密钥句柄检索对应的加密密钥,使用检索到的加密密钥对所述第四解析结果中的文件密文进行解密;
所述第一接收模块还用于接收所述共享触发信息和所述服务器发送的第四结果;
所述第一发送模块还用于将所述下载请求发送给所述服务器;
所述服务器还包括:
第四解析模块,用于对接收到的所述下载请求进行解析得到下载请求解析结果;
第四验证模块,用于验证所述下载请求解析结果的有效性;
查找模块,用于根据所述下载请求解析结果中的所述将要下载的文件信息找到要下载的文件密文和第一随机数新密文;
第二调用模块,用于调用下载智能密钥设备中的第一预设函数根据所述第一随机数新密文得到第二会话密钥句柄,调用下载智能密钥设备中的第二预设函数根据所述第二会话密钥句柄和与所述下载请求解析结果中的下载用户信息对应的下载用户公钥得到第二随机数密文;
第四组合计算模块,用于将所述第二随机数密文及所述文件密文组合得到第四组合,使用所述第一预设算法对所述第四组合进行计算得到第四摘要,使用所述服务器私钥对所述第四摘要进行签名得到第四签名,对所述第四组合、所述第四摘要和所述第四签名进行组合得到所述第四结果;
所述第二接收模块还用于接收所述用户终端发送的下载请求;
所述第二发送模块还用于给所述用户终端发送所述第四结果和拒绝信息。
其中,所述用户终端还包括:
第一判断模块,用于判断是否有上传智能密钥设备与其连接;
获取生成模块,用于从与用户终端连接的上传智能密钥设备中获取上传用户证书;所述上传用户证书中包括所述上传用户公钥。
其中,所述用户终端还包括:
第一判断模块,用于判断是否有上传智能密钥设备与其连接;
所述服务器还包括第一获取模块,用于根据所述第二加密模块解析所述上传请求得到的上传用户信息从所述存储模块中获取对应的上传用户公钥。
其中,所述服务器还包括:第二生成模块,用于生成所述第一随机数。
其中,所述第二组合计算模块用于使用第一预设算法对所述第一随机数密文进行计算得到第一摘要,使用服务器私钥对所述第一摘要进行签名得到第一签名,对所述第一随机数密文、所述第一摘要和所述第一签名进行组合得到第一结果;
所述第一组合计算模块直接调用所述上传智能密钥设备中预置的第一预设算法对所述第二组合进行计算得到所述第二摘要。
其中,所述用户终端还包括第二获取模块,用于从所述服务器中获取服务器证书,所述服务器证书中包括服务器公钥。
其中,所述第一解析模块解析得到的第一解析结果包括所述第一随机数密文、所述算法信息、所述第一摘要和所述第一签名;
所述第一验证模块具体包括:
第一计算单元,用于根据所述算法信息调用所述上传智能密钥设备中对应的所述第一预设算法对所述第一组合进行计算得到第一验证摘要;
第一判断单元,用于判断所述解析得到的第一摘要与所述第一验证摘要是否相同;
第一验证单元,用于当所述第一判断单元判断为是时使用所述服务器证书中的服务器公钥和所述第一摘要对所述第一签名进行验证。
其中,所述第二解析模块解析得到的第二解析结果包括:所述文件密文、所述第一随机数新密文、所述第二摘要和所述第二签名;
所述第二验证模块具体包括:
第二计算单元,用于根据所述第一预设算法对所述第二组合进行计算得到第二验证摘要;
第二判断单元,用于判断所述解析得到的第二摘要与所述第二验证摘要是否相同;
第三验证单元,用于当第二判断单元判断为是时使用所述上传用户公钥和所述第二摘要对所述第二签名进行验证。
其中,所述用户终端还包括第二判断模块,用于判断是否有下载智能密钥设备与其连接。
其中,所述第四解析模块解析得到的下载请求解析结果包括:所述文件信息、所述下载用户信息、所述第三摘要和所述第三签名;
所述第四验证模块具体包括:
第三计算单元,用于使用所述第一预设算法对所述第三组合进行计算得到第三验证摘要;
第三判断单元,用于判断所述第三验证摘要与所述第三摘要是否相同;
第三验证单元,用于当所述第三判断单元判断为是时使用与所述下载用户信息对应的下载用户公钥和所述第三摘要对所述第三签名进行验证。
其中,所述用户终端还包括:
第三判断模块,用于判断所述用户终端内部是否存储有服务器证书;
第三获取模块,用于当所述第三判断模块判断为否时从所述服务器中获取服务器证书。
其中,所述第三解析模块解析得到的第四解析结果包括:所述第二随机数密文、所述文件密文、所述第四摘要和所述第四签名;
所述第三验证模块具体包括:
第四计算单元,用于调用所述下载智能密钥设备中的第一预设算法对所述第四组合进行计算得到第四验证摘要;
第四判断单元,用于判断所述解析得到的第四摘要与所述第四验证摘要是否相同;
第四验证单元,用于当所述第四判断单元判断为是时使用所述服务器公钥和所述第四摘要对所述第四签名进行验证。
其中,所述第一接收模块还用于接收第二发送模块发送的验证成功信息;
所述第一发送模块包括:
第一发送单元,用于向所述服务器发送上传请求;
第一分包单元,用于将所述第二结果进行分包;
第二发送单元,用于将分包后的数据包和发送完成信息发送给所述服务器;
第一检测单元,用于检测所述第一接收模块接收到的所述服务器返回的信息;
第五判断单元,用于当所述第一检测单元检测所述服务器返回的信息为验证成功信息时,判断所述分包后的数据包是否发送完成,是则所述第二发送单元将发送完成信息发送给所述服务器,否则所述第二发送单元发送下一个数据包;
所述第二接收模块用于接收所述第一发送单元发送的上传请求、所述第二发送单元发送的不同数据包和发送完成信息;
所述第二验证模块用于对接收到每一个数据包进行验证;
所述第二发送模块还用于向所述用户终端发送验证成功信息;
所述第二解析模块用于当所述第二接收模块接收到发送完成信息时,将所述第二接收模块接收到的所有数据包顺序组合,从组合数据中提取所述第一随机数新密文及所述文件密文;
所述保存模块用于保存所述第二解析模块提取得到的所述第一随机数新密文及所述文件密文。
其中,所述第二发送模块包括:
第三发送单元,用于向所述用户终端发送所述第一结果、失败信息、拒绝信息;
第二分包单元,用于将所述第四结果进行分包;
第四发送单元,用于将分包后的数据包和发送完成信息发送给所述用户终端;
第六判断单元,用于判断所述分包后的数据包是否发送完成;
所述第一接收模块用于接收所述第三发送单元发送的所述第一结果、失败信息、拒绝信息和第四发送单元发送的数据包;
所述第三验证模块用于对所述第一接收模块接收到的数据包进行验证;
所述第一发送模块还用于给所述服务器发送验证成功信息;
所述第三解析模块用于将接收到的所有数据包顺序组合,并从组合数据中提取所述第二随机数密文和所述文件密文。
本发明与现有技术相比,具有以下优点:
本发明的方案使用第一预设函数和第二预设函数,结合SM2非对称算法,很好的解决了共享文件的机密性及访问的可控性,共享文件加密后存储在服务器上,方便用户共享文件;并且用户可以从不安全的信道上传输数据,数据在整个存储传输过程中都是密文形式,可以方便的控制数据的有限访问。
附图说明
图1为本发明实施例一提供的一种文件共享的方法流程图;
图2为本发明实施例一提供的一种文件共享的方法中还包括的步骤流程图;
图3为本发明实施例二提供的一种文件共享的系统示意图;
图4为本发明实施例二提供的另一种文件共享系统中用户终端的方框图;
图5为本发明实施例二提供的另一种文件共享系统中服务器的方框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本发明实施例一提供了一种文件共享的方法,在本发明实现之前,用户终端已与服务器建立了连接,该方法如图1所示,包括:
步骤101:上传用户终端根据上传用户信息和待上传的文件信息生成上传请求并向服务器发送上传请求;
在本实施例中,上传用户信息包括上传用户标识和/或上传用户证书;上传用户证书中包括上传用户公钥;
优选的,在本实施例中,上传用户终端向服务器发送的上传请求格式为:数据包类型|上传用户名称|上传用户证书|上传文件信息|上传文件的作者|摘要值|签名值,其中,数据包类型的长度为1字节,上传用户名称的长度为64字节,上传用户证书的长度为2048字节,上传文件信息的长度为260字节,上传文件的作者的长度为64字节,摘要值的长度为32字节,签名值的长度为64字节;具体的,在本实施例中的数据包类型为0;
在步骤101之前还包括:上传用户终端判断是否有上传智能密钥设备与其连接,是则从上传智能密钥设备中获取上传用户证书,执行步骤101,否则结束;本实施例中的上传用户终端也可以直接根据文件信息生成上传请求,在服务器中存储有上传用户证书;
步骤102:服务器接收上传请求并对其进行解析,使用与解析结果中的上传用户信息对应的上传用户公钥对生成的第一随机数进行加密得到第一随机数密文;
本实施例中的上传用户公钥可以是从服务器对上传请求解析得到的上传用户证书中获取到的;也可以是服务器中预先存储的,服务器解析上传请求得到上传用户标识,根据上传用户标识从内部存储用户公钥中获取对应的上传用户公钥,优选的,本实施例中的上传用户公钥是从对上传请求解析得到的上传用户证书中获取到的;
本实施例中,服务器接收到数据包后,如检测到数据包类型为0,则根据上传请求格式对数据包进行解析;
具体的,本实施例中第一随机数的长度为第一预设函数和第二预设函数使用的对称算法密钥长度;本实施例中的对称算法包括SM1/SSF3/SM4;
本实施例中的第一随机数可以为服务器接收到上传请求时生成的也可以是在本步骤之前生成的;优选的本实施例中的随机数是服务器在接收到上传请求时生成的,保证每次上传文件的加密密钥是不同的,提高文件共享的安全性;
本实施例中加密过程中使用的算法具体为SM2非对称算法;
步骤103:服务器将第一随机数密文及预设的算法信息组合为第一组合,使用与算法信息对应的哈希算法对第一组合进行计算得到第一摘要,使用服务器私钥对第一摘要进行签名得到第一签名,对第一组合、第一摘要和第一签名进行组合得到第一结果;
具体的,本实施例中的算法信息包括:哈希算法ID;本实施例中的哈希算法ID与计算摘要所使用的哈希算法相对应;
本实施例中,第一预设算法也可以预先设置在终端和服务器中,则步骤103替换为:服务器使用存储的哈希算法对第一随机数密文进行计算得到第一摘要,使用服务器私钥对第一摘要进行签名得到第一签名,对随机数密文、第一摘要和第一签名进行组合得到第一结果,并将第一结果发送给上传用户终端;
步骤104:服务器将第一结果发送给上传用户终端;
优选的,在本实施例中,服务器向上传用户终端反馈数据时发送的数据包格式为:数据包类型|算法信息|第一随机数密文|第一摘要|第一签名;
其中,数据包类型的长度为1字节,算法信息的长度为1字节,第一随机数密文为180字节,第一摘要的长度为32字节,第一签名的长度为128字节;具体的,该步骤中的数据包类型为2,服务器发送的数据具体为:00000010|第一结果;
步骤105:上传用户终端接收第一结果并对其解析得到第一解析结果,并使用获取的服务器证书验证第一解析结果,如验证成功则执行步骤106,如验证失败则输出失败信息,结束;
上传用户终端接收到数据包如检测到数据包类型为2,则根据服务器反馈格式对数据包进行解析;
本实施例中在验证之前还包括:从服务器中获取服务器证书,服务器证书中有服务器公钥;
具体的,本实施例的验证过程包括:
步骤105-1:对第一结果解析得到第一组合、第一摘要和第一签名,对第一组合解析得到第一随机数密文和算法信息;
步骤105-2:根据算法信息调用上传智能密钥设备中对应的哈希算法,对第一组合进行计算得到第一验证摘要;
在本实施例中,上传智能密钥设备中也可预置一种哈希算法,与服务器中哈希算法相同,则在第一组合中不包括算法信息;在步骤103中服务器使用哈希算法对第一随机数密文进行计算得到第一摘要;步骤105-1中解析得到第一随机数密文、第一摘要和第一签名;步骤105-2中直接调用上传智能密钥设备中预置的哈希算法对第一随机数密文计算得到第一验证摘要;
在该步骤105-2之前还包括:判断是否有上传智能密钥设备与上传用户终端连接,是则继续,否则结束;
步骤105-3:判断解析得到的第一摘要与第一验证摘要是否相同,是则执行步骤105-4,否则验证失败;
步骤105-4:使用获取的服务器证书中的服务器公钥和第一摘要对第一签名进行验证,如验证成功则执行步骤106,如验证失败则给上传用户终端返回失败信息,结束;
步骤106:上传用户终端调用内部的第一预设函数,根据第一解析结果中的第一随机数密文得到第一会话密钥句柄;
具体的,在本实施例的步骤106中第一预设函数的输入的参数为:上传智能密钥设备的容器句柄、第一随机数密文、第一随机数密文长度,输出参数为第一会话密钥句柄;
本实施例中第一预设函数具体为SKF_ImportSessionKey,用于使用用户私钥对第一随机数密文进行解密;
步骤107:上传用户终端调用上传智能密钥设备中的第二预设函数,根据第一会话密钥句柄和服务器证书中的服务器公钥得到第一随机数新密文作为对称密钥;
在本实施例中,步骤107的第二预设函数的输入的参数为:第一会话密钥句柄、服务器公钥,输出参数为第一随机数新密文;
本实施例中的第二预设函数为SKF_ECCExportSessionKeyEx,用于使用服务器公钥对第一随机数进行加密得到第一随机数新密文;该第一随机数是第一预设函数的返回结果,第一预设函数用于使用用户私钥对第一随机数密文进行解密得到第一随机数;
步骤108:上传用户终端根据第一会话密钥句柄检索对应的加密密钥,使用检索到的加密密钥对待上传的文件进行加密得到文件密文;
本实施例中在步骤108中加密过程中使用的加密算法与解析得到的算法信息中的加密算法ID相对应;加密过程使用的加密算法也可以预先进行设置;加密算法为SM1/SSF3/SM4;
在本实施例中,步骤108和步骤107可调换;
步骤109:上传用户终端对文件密文、第一随机数新密文进行组合得到第二组合;
步骤110:上传用户终端根据第一解析结果中的算法信息调用上传智能密钥设备中的哈希算法对第二组合进行计算得到第二摘要,调用上传智能密钥设备中的上传用户私钥对第二摘要进行签名得到第二签名;
本实施例中上传智能密钥设备中的哈希算法与算法信息相对应;
如哈希算法时预先设置在终端和服务器中的,则步骤110替换为:上传用户终端直接调用上传智能密钥设备中预置的第一预设算法对第二组合进行计算得到第二摘要;调用上传智能密钥设备中的上传用户私钥对第二摘要进行签名得到第二签名;
如本实施例中的上传用户公钥预置在服务器中,则在步骤110之前还包括:判断是否有上传智能密钥设备与上传用户终端连接,是则继续,否则结束;
步骤111:上传用户终端对第二组合、第二摘要和第二签名进行组合得到第二结果,并将第二结果发送给服务器;
本实施例中,上传用户终端按照数据传输格式将第二结果发送给服务器,格式为:数据包类型|第二结果;其中,数据包类型的长度为1个字节,第二结果中的第二摘要和第二签名的长度分别为32字节和128字节;
具体的,该步骤中的数据包类型为2;
如果第二结果太大时需要分包发送;
步骤112:服务器接收第二结果并对其进行解析得到第二解析结果,对第二解析结果进行验证,如验证成功则保存第一随机数新密文及文件密文,如验证失败则给上传用户终端返回失败信息,结束;
服务器接收到数据包检测到数据包类型为2,根据传输数据的格式对接收到的数据包进行解析;
服务器通过给上传用户终端返回2字节的错误码表示验证失败;返回的格式具体为:数据包类型|状态码;其中数据包类型为3,状态码包括错误码和正确码。具体的在本实施例中上传用户终端接收到服务器返回的数据时,若解析得到的数据包类型为3,则表示接收到的数据是反馈数据,若解析得到的状态码为错误码则结束与服务器之间的通讯;
如上传用户终端将第二结果分包发送给服务器,则服务器接收到每包数据后会返回信息,反馈数据的结构为:数据包类型|状态码;其中状态码的长度为2个字节,表示失败或成功;
本实施例中,对第二结果进行验证具体包括:
步骤112-1:对第二结果解析得到第二组合、第二摘要和第二签名,对第二组合解析得到第一随机数新密文和文件密文;
本实施例中的第二组合中也可以包括上传用户证书;
步骤112-2:根据哈希算法对第二组合进行计算得到第二验证摘要;
步骤112-3:判断解析得到的第二摘要与第二验证摘要是否相同,是则执行步骤112-4,否则验证失败,给用户终端返回失败信息,结束;
步骤112-4:使用上传用户公钥、第二摘要对第二签名进行验证,如验证成功则保存第一随机数新密文和文件密文,如验证失败则给用户终端返回失败信息,结束;
在该步骤中的哈希算法可以是服务器预先设置的,也可以是上传用户终端发送过来的,具体的在本实施例中是服务器预先设置的;
本实施例中,在服务器上存储一个共享文件列表,列表中的文件标识(如文件名称、文件ID等)与共享文件一一对应。
如图2所示,本实施例的文件共享方法还可以包括:
步骤201:当下载用户终端接收共享触发信息时,对将要下载的文件信息和下载用户信息进行组合得到第三组合,调用下载智能密钥设备中的哈希算法对第三组合进行计算得到第三摘要,调用下载智能密钥设备中的下载用户私钥对第三摘要进行签名得到第三签名;
本实施例中的下载用户信息包括下载用户标识和/或下载用户证书,所述下载用户证书中有下载用户公钥;文件信息包括文件标识,例如下载文件名称或下载文件ID;
在步骤201之前还包括:下载用户终端判断是否有下载智能密钥设备与其连接,是则从下载智能密钥设备中获取下载用户证书,执行步骤201,否则输出错误信息,结束;所述下载用户证书中有下载用户公钥;
步骤202:下载用户终端根据第三组合、第三摘要和第三签名生成下载请求;
优选的,本实施例中的下证请求数据格式为:数据包类型|下载文件信息|下载用户名称|下载用户证书|摘要值|签名值;其中,数据包类型的长度为1字节,下载文件信息的长度为64字节,下载用户名称的长度为64字节,下载用户证书的长度为2048字节,摘要值的长度为32字节,签名值的长度为128字节;具体的,在本实施例中的数据包类型为1;下载用户证书中包括下载用户公钥;
步骤203:下载用户终端将下载请求发送给服务器;
步骤204:服务器接收下载请求,并对下载请求进行解析得到下载请求解析结果;
服务器接收到数据包检测到数据包类型为1,根据下载请求格式对数据包进行解析;
本实施例中,服务器对下载请求进行解析得到第三组合、下载用户信息、第三摘要和第三签名,对第三组合进行解析得到将要下载的文件信息和下载用户信息;
步骤205:服务器验证下载请求解析结果的有效性,如有效则执行步骤206,如无效则给下载用户终端返回拒绝信息,结束;
在本实施例中,验证下载请求解析结果的有效性包括:根据摘要检查数据的完整性、检查下载用户提供的证书的有效性、根据证书检查签名结果的有效性;服务器验证下载请求解析结果的有效性具体包括:
步骤205-1:服务器使用哈希算法对第三组合进行计算得到第三验证摘要,判断第三验证摘要与第三摘要是否相同,是则执行步骤205-2,否则给下载用户终端返回拒绝信息,结束;
步骤205-2:服务器使用与下载用户信息对应的下载用户公钥和第三摘要对第三签名进行验证,如验证成功则下载请求解析结果有效,如验证失败则下载请求解析结果无效;
服务器通过给下载用户终端返回2字节的错误码表示验证失败;返回的格式具体为:数据包类型|状态码;其中数据包类型为3,状态码包括错误码和正确码。具体的在本实施例中上传用户终端接收到服务器返回的数据时,若解析得到的数据包类型为3,则表示接收到的数据是反馈数据,若解析到的状态码为错误码,则结束与服务器之间的通讯;
步骤206:服务器根据下载请求解析结果中的将要下载的文件信息找到要下载的文件密文和第一随机数新密文,调用下载智能密钥设备中的第一预设函数根据第一随机数新密文得到第二会话密钥句柄,调用下载智能密钥设备中的第二预设函数根据第二会话密钥句柄和与下载请求解析结果中的下载用户信息对应的下载用户公钥得到第二随机数密文;
本实施例的该步骤中第一预设函数的输入的参数为:下载智能密钥设备的容器句柄、第一随机数新密文、第一随机数新密文长度,输出参数为第二会话密钥句柄;
第二预设函数的输入的参数为:第二会话密钥句柄和下载用户公钥,输出参数为第二随机数密文;本实施例中的第二预设函数为SKF_ECCExportSessionKeyEx;
步骤207:服务器将第二随机数密文及文件密文组合得到第四组合,使用哈希算法对第四组合进行计算得到第四摘要,使用服务器私钥对第四摘要进行签名得到第四签名,对第四组合、第四摘要和第四签名进行组合得到第四结果;
步骤208:服务器将第四结果发送给下载用户终端;
该步骤的实现过程与步骤111相同,在此不再赘述;
步骤209:下载用户终端接收第四结果并对其进行解析得到第四解析结果,对第四解析结果进行验证,验证成功则执行步骤210,如验证失败则输出失败信息,结束;
在本实施例中,步骤209之前还包括:下载用户终端判断内部是否存储有服务器证书,是则继续,否则从服务器中获取服务器证书,继续。
本实施例中,下载用户终端对第四解析结果进行验证具体包括:
步骤209-1:下载用户终端对第四结果解析得到第四组合、第四摘要和第四签名,对第四组合解析得到第二随机数密文及文件密文;
步骤209-2:下载用户终端调用下载智能密钥设备中的哈希算法对第四组合进行计算得到第四验证摘要,判断解析得到的第四摘要与第四验证摘要是否相同,是则执行步骤209-3,否则验证失败,输出失败信息,结束;
步骤209-3:下载用户终端使用服务器证书中的服务器公钥和第四摘要对第四签名进行验证,如验证成功则执行步骤210,如验证失败则输出失败信息,结束;
步骤210:下载用户终端调用下载智能密钥设备中的第一预设函数,根据第四解析结果中的第二随机数密文得到第二会话密钥句柄;
在本实施例中的该步骤中,第一预设函数输入的参数为:下载智能密钥设备的容器句柄、第二随机数密文、第二随机数密文长度,输出参数是第二会话密钥句柄;
步骤211:下载用户终端根据第二会话密钥句柄在接口内检索对应的加密密钥,使用检索到的加密密钥对第四解析结果中的文件密文进行解密,如解密成功则得到文件内容,如解密失败则输出失败信息,结束;
本实施例,如果终端和服务器之间传输的数据大于传输带宽时会分包处理过程,如在步骤111、步骤208中,分包过程具体为:将用户终端和服务器的数据缓冲区开辟为4K字节大小,使请求数据包都能够一次发完,当文件数据太大,一次不能全部发送完成时,则发送方将发送数据进行分包,则每个数据包格式设置为:数据包类型|包次数|数据内容|摘要值|签名值,其中数据包类型长度为1字节,包次数的长度为1字节,数据内容的长度为2048字节,摘要值的长度为32字节,签名值的长度为128字节;包次数用来表示发送的是第几包数据,接收方接收每包数据后都要进行验证,验证通过则继续接收下一包数据,如验证结束则给发送发返回错误信息,结束;接收方接收完所有数据包后将其组合在一起得到发送数据;分包发送的实现过程具体包括:
步骤a1:发送方将发送数据进行分包,并将第一包数据作为当前数据包发送给接收方;
步骤a2:接收方接收到当前数据包后,对当前数据包进行验证,如验证通过则给发送方发送成功信息,执行步骤a3,否则给发送方返回错误信息,结束;
该步骤中对当前数据包的验证过程与步骤112和步骤209相同在此不再赘述;
步骤a3:发送方判断数据包是否发送完成,是则给接收方发送成功发送信息,否则将下一个数据包作为当前数据包发送给接收方,返回步骤a2;
如本实施例中的接收方是服务器时,则在该步骤中,执行步骤a3之前先执行步骤a2’,在步骤a2中验证未通过给发送方返回错误信息之后,不结束而是执行步骤a2’;
步骤a2’:发送方(用户终端)接收并检测所述接收方返回的信息,如为验证成功信息则执行步骤a3,否则结束;
如本实施例中的发送方是上传用户终端则步骤a3之后,服务器将接收到的所有数据包组合,并从组合数据中提取第一随机数新密文及文件密文并保存;
如本实施例中的发送方是服务器则步骤a3之后,下载用户终端将接收到的数据包顺序组合,并从组合数据中提取所述第二随机数密文和文件密文。
实施例二
本发明实施例二提供了一种文件共享的系统,如图3所示,包括服务器4和用户终端3,用户终端3包括:
第一接收模块300,用于接收服务器4发送的第一结果;
第一生成模块301,用于根据上传用户信息和待上传的文件信息生成上传请求;上传用户信息包括上传用户标识和/或上传用户证书;
第一解析模块302,用于对接收到的第一结果进行解析得到第一解析结果;
具体的,本实施例中的第一解析模块302解析得到的第一解析结果包括第一随机数密文、算法信息、第一摘要和第一签名;
第一验证模块303,用于使用获取的服务器证书验证第一解析结果;
第一验证模块303具体包括:
第一计算单元,用于根据算法信息调用上传智能密钥设备中对应的第一预设算法对第一组合进行计算得到第一验证摘要;
第一判断单元,用于判断解析得到的第一摘要与第一验证摘要是否相同;
第一验证单元,用于当第一判断单元判断为是时使用服务器证书中的服务器公钥和第一摘要对第一签名进行验证;
输出模块304,用于输出失败信息;
第一调用模块305:用于调用上传智能密钥设备中的第一预设函数,根据第一解析结果中的第一随机数密文得到第一会话密钥句柄;用于调用上传智能密钥设备中的第二预设函数,根据第一会话密钥句柄和服务器证书中的服务器公钥得到第一随机数新密文作为加密密钥;
第一加密模块306,根据第一会话密钥句柄在接口内检索对应的对称密钥,使用检索到的加密密钥对待上传的文件进行加密得到文件密文;
第一组合计算模块307,用于对文件密文、第一随机数新密文进行组合得到第二组合,根据第一解析结果中的算法信息调用上传智能密钥设备中对应的第一预设算法对第二组合进行计算得到第二摘要,调用上传智能密钥设备中的上传用户私钥对第二摘要进行签名得到第二签名,对第二组合、第二摘要和第二签名进行组合得到第二结果;上传用户证书中包括上传用户公钥;
第一发送模块308,用于向服务器4发送上传请求和第二结果;
服务器4包括:
第二接收模块401,用于接收第一发送模块308发送的上传请求和第二结果;
第二加密模块402,用于对上传请求进行解析,并使用与解析结果中的上传用户信息对应的上传用户公钥对生成的第一随机数进行加密得到第一随机数密文;
第二组合计算模块403,用于将第一随机数密文和预设的算法信息组合为第一组合,使用与所述算法信息对应的第一预设算法对第一组合进行计算得到第一摘要,使用服务器私钥对第一摘要进行签名得到第一签名,对第一组合、第一摘要和第一签名进行组合得到第一结果;
第二解析模块404,用于对接收到的第二结果进行解析得到第二解析结果;
具体的,本实施例中的第二解析模块404解析得到的第二解析结果包括:文件密文、第一随机数新密文、第二摘要和第二签名;
第二验证模块405,用于对第二解析结果进行验证;
第二验证模块405具体包括:
第二计算单元,用于根据第一预设算法对第二组合进行计算得到第二验证摘要;
第二判断单元,用于判断解析得到的第二摘要与第二验证摘要是否相同;
第三验证单元,用于当第二判断单元判断为是时使用上传用户公钥、第二摘要对第二签名进行验证;
保存模块406,用于在第二验证模块405验证成功时则保存第二解析结果中的第一随机数新密文及文件密文;
第二发送模块407,用于向用户终端3发送第一结果和失败信息;
如图4所述,本实施例中系统中的用户终端3还包括:
第三组合计算模块309,用于当接收到共享触发信息时,对将要下载的文件信息和下载用户信息进行组合得到第三组合,调用下载智能密钥设备中的第一预设算法对第三组合进行计算得到第三摘要,调用下载智能密钥设备中的下载用户私钥对第三摘要进行签名得到第三签名;下载用户信息中包括下载用户标识和/或下载用户证书;
第一生成模块310,用于根据第三组合、第三摘要和第三签名生成下载请求;
第三解析模块311,用于对接收到的第四结果进行解析得到第四解析结果;
具体的,本实施例中的第三解析模块311解析得到的第四解析结果包括:第二随机数密文、文件密文、第四摘要和第四签名;
第三验证模块312,用于对第四解析结果进行验证;
第三验证模块312具体包括:
第四计算单元,用于调用下载智能密钥设备中的第一预设算法对第四组合进行计算得到第四验证摘要;
第四判断单元,用于判断解析得到的第四摘要与第四验证摘要是否相同;
第四验证单元,用于当第四判断单元判断为是时使用服务器公钥、第四摘要对第四签名进行验证;
解密模块313,用于当第三验证模块312验证成功时调用上传智能密钥设备中的第一预设函数,根据第四解析结果中的第二随机数密文得到第二会话密钥句柄;根据第二会话密钥句柄检索对应的加密密钥,使用检索到的加密密钥对第四解析结果中的文件密文进行解密;
第一接收模块301还用于接收共享触发信息和服务器4发送的第四结果;
第一发送模块308还用于将下载请求发送给服务器4;
如图5所示,本实施例中的服务器还4包括:
第四解析模块408,用于对接收到的下载请求进行解析得到下载请求解析结果;
具体的,本实施例中第四解析模块408解析得到的下载请求解析结果包括:文件信息、下载用户信息、第三摘要和第三签名;
第四验证模块409,用于验证下载请求解析结果的有效性;
第四验证模块409具体包括:
第三计算单元,用于使用第一预设算法对第三组合进行计算得到第三验证摘要;
第三判断单元,用于判断第三验证摘要与第三摘要是否相同;
第三验证单元,用于当第三判断单元判断为是时使用下载用户信息中的下载用户公钥、第三摘要对第三签名进行验证;
查找模块410,用于根据下载请求解析结果中的将要下载的文件信息找到要下载的文件密文和第一随机数新密文;
第二调用模块411,用于调用下载智能密钥设备中的第一预设函数根据第一随机数新密文得到第二会话密钥句柄,调用下载智能密钥设备中的第二预设函数根据第二会话密钥句柄和下载请求解析结果中的下载用户信息对应的下载用户公钥得到第二随机数密文;
第四组合计算模块412,用于将第二随机数密文及文件密文组合得到第四组合,使用第一预设算法对第四组合进行计算得到第四摘要,使用服务器私钥对第四摘要进行签名得到第四签名,对第四组合、第四摘要和第四签名进行组合得到第四结果;
第二接收模块401还用于接收用户终端3发送的下载请求;
第二发送模块407还用于给用户终端3发送第四结果和拒绝信息;
如本实施例系统中的服务器4所使用的上传用户证书是上传用户终端发送过来的,则用户终端3还包括:
第一判断模块,用于判断是否有上传智能密钥设备与其连接;获取生成模块,用于则从与用户终端连接的上传智能密钥设备中获取上传用户证书;;上传用户证书中包括上传用户公钥;
如本实施例系统中的服务器4所使用的上传用户证书是内部存储的,则用户终端3还包括:
第一判断模块,用于判断是否有上传智能密钥设备与其连接;
服务器4还包括第一获取模块,用于根据所述第二加密模块解析所述上传请求得到的上传用户信息从所述存储模块中获取对应的上传用户公钥;
本实施例系统中的服务器4还可包括:第二生成模块,用于生成第一随机数;
如本实施例系统中服务器与用户终端的第一预设算法是预先设置的,则第二组合计算模块403用于使用第一预设算法对第一随机数密文进行计算得到第一摘要,使用服务器私钥对第一摘要进行签名得到第一签名,对第一随机数密文、第一摘要和第一签名进行组合得到第一结果;
第一组合计算模块307直接调用上传智能密钥设备中预置的第一预设算法对第二组合进行计算得到第二摘要;
本实施例系统中的用户终端3还包括第二获取模块,用于从服务器4中获取服务器证书,服务器证书中包括服务器公钥;
本实施例的系统中用户终端3还包括第二判断模块,用于判断是否有下载智能密钥设备与其连接;
本实施例系统中的用户终端3还包括:
第三判断模块,用于判断用户终端3内部是否存储有服务器证书;
获取模块,用于当第三判断模块判断为否时从服务器4中获取服务器证书;
在本实施例中,如第二结果和第四结果太大时,则第一发送模块308和第二发送模块407需分别将第二结果和第四结果进行分包发送;当第一发送模块308将第二结果分包发送的实现方案具体为:
第一接收模块301还用于接收第二发送模块发送的验证成功信息;
第一发送模块308包括:
第一发送单元,用于向服务器4发送上传请求;
第一分包单元,用于将第二结果进行分包;
第二发送单元,用于将分包后的数据包和发送完成信息发送给服务器4;
第一检测单元,用于检测第一接收模块301接收到的服务器1返回的信息;
第五判断单元,用于当第一检测单元检测服务器4返回的信息为验证成功信息时,判断分包后的数据包是否发送完成,是则第二发送单元将发送完成信息发送给服务器,否则第二发送单元发送下一个数据包;
第二接收模块401用于接收第一发送单元发送的上传请求、第二发送单元发送的不同数据包和发送完成信息;
第二验证模块405用于对接收到每一个数据包进行验证;
第二发送模块407还用于向用户终端3发送验证成功信息;
第二解析模块404用于当第二接收模块401接收到发送完成信息时,将第二接收模块401接收到的所有数据包顺序组合,从组合数据中提取第一随机数新密文及文件密文;
保存模块406用于保存第二解析模块404提取得到的第一随机数新密文及文件密文。
当第二发送模块407将第四结果分包发送的实现方案具体为:
第二发送模块407包括:
第三发送单元,用于向用户终端发送第一结果、失败信息、拒绝信息;
第二分包单元,用于将第四结果进行分包;
第四发送单元,用于将分包后的数据包和发送完成信息发送给用户终端;
第六判断单元,用于判断分包后的数据包是否发送完成;
第一接收模块301用于接收第三发送单元发送的第一结果、失败信息、拒绝信息和第四发送单元发送的数据包;
第三验证模块312用于对第一接收模块301接收到的数据包进行验证;
第一发送模块308还用于给服务器发送验证成功信息。
第三解析模块311用于将接收到的所有数据包顺序组合,并从组合数据中提取第二随机数密文和文件密文。
本发明的方案中使用国密接口,结合SM2非对称算法,很好的解决了共享文件的机密性及访问的可控性,共享文件加密后存储在服务器上,方便用户共享文件;并且用户可以从不安全的信道上传输数据,数据在整个存储传输过程中都是密文形式,可以方便的控制数据的有限访问。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (30)
1.一种文件共享的方法,其特征在于,包括:
步骤S1:上传用户终端根据上传用户信息和待上传的文件信息生成上传请求并向服务器发送所述上传请求,所述上传用户信息包括上传用户标识和/或上传用户证书,所述上传用户证书中包括上传用户公钥;
步骤S2:所述服务器接收所述上传请求并对其进行解析,并使用与解析结果中的所述上传用户信息对应的上传用户公钥对生成的第一随机数进行加密得到第一随机数密文;
步骤S3:所述服务器将所述第一随机数密文和预设的算法信息组合为第一组合,使用与算法信息对应的第一预设算法对所述第一组合进行计算得到第一摘要,使用服务器私钥对所述第一摘要进行签名得到第一签名,对所述第一组合、所述第一摘要和所述第一签名进行组合得到第一结果并将所述第一结果发送给所述上传用户终端;
步骤S4:所述上传用户终端接收所述第一结果并对其解析得到第一解析结果,并使用获取的服务器证书验证所述第一解析结果,如验证成功则执行步骤S5,如验证失败则输出失败信息,结束;
步骤S5:所述上传用户终端调用上传智能密钥设备中的第一预设函数,根据所述第一解析结果中的所述第一随机数密文得到第一会话密钥句柄;
步骤S6:所述上传用户终端调用上传智能密钥设备中的第二预设函数,根据所述第一会话密钥句柄和所述服务器证书中的服务器公钥得到第一随机数新密文作为加密密钥;根据所述第一会话密钥句柄在接口内检索对应的加密密钥,使用所述检索到的加密密钥对待上传的文件进行加密得到文件密文;
步骤S7:所述上传用户终端对所述文件密文、所述第一随机数新密文进行组合得到第二组合,根据所述第一解析结果中的算法信息调用上传智能密钥设备中的第一预设算法对所述第二组合进行计算得到第二摘要,调用所述上传智能密钥设备中的上传用户私钥对所述第二摘要进行签名得到第二签名,对所述第二组合、所述第二摘要和所述第二签名进行组合得到第二结果;将所述第二结果发送给所述服务器;
步骤S8:所述服务器接收所述第二结果并对其进行解析得到第二解析结果,对所述第二解析结果进行验证,如验证成功则保存所述第二解析结果中的所述第一随机数新密文和所述文件密文,如验证失败则给所述上传用户终端返回失败信息,结束。
2.如权利要求1所述的方法,其特征在于,还包括:
步骤S9:当下载用户终端接收到共享触发信息时,对将要下载的文件信息和下载用户信息进行组合得到第三组合,调用下载智能密钥设备中的第一预设算法对所述第三组合进行计算得到第三摘要,调用所述下载智能密钥设备中的下载用户私钥对所述第三摘要进行签名得到第三签名;所述下载用户信息中包括下载用户标识和/或下载用户证书,所述下载用户证书中有下载用户公钥;
步骤S10:所述下载用户终端根据所述第三组合、所述第三摘要和所述第三签名生成下载请求,并将所述下载请求发送给所述服务器;
步骤S11:所述服务器接收所述下载请求并对其进行解析得到下载请求解析结果,验证所述下载请求解析结果的有效性,如有效则执行步骤S12,如无效则给所述下载用户终端返回拒绝信息,结束;
步骤S12:所述服务器根据所述下载请求解析结果中的所述将要下载的文件信息找到要下载的文件密文和所述第一随机数新密文,调用下载智能密钥设备中的第一预设函数根据所述第一随机数新密文得到第二会话密钥句柄,调用下载智能密钥设备中的第二预设函数根据所述第二会话密钥句柄和与所述下载请求解析结果中的所述下载用户信息对应的下载用户公钥得到第二随机数密文;
步骤S13:所述服务器将所述第二随机数密文及所述文件密文组合得到第四组合,使用所述第一预设算法对所述第四组合进行计算得到第四摘要,使用所述服务器私钥对所述第四摘要进行签名得到第四签名,对所述第四组合、所述第四摘要和所述第四签名进行组合得到第四结果;并将所述第四结果发送给所述下载用户终端;
步骤S14:所述下载用户终端接收所述第四结果并对其进行解析得到第四解析结果,对所述第四解析结果进行验证,验证成功则执行步骤S15,如验证失败则输出失败信息,结束;
步骤S15:所述下载用户终端调用下载智能密钥设备中的所述第一预设函数,根据所述第四解析结果中的所述第二随机数密文得到所述第二会话密钥句柄;根据所述第二会话密钥句柄在接口内检索对应的加密密钥,使用检索到的加密密钥对所述第四解析结果中的文件密文进行解密,如解密成功则得到文件内容,如解密失败则输出失败信息,结束。
3.如权利要求1或2所述的方法,其特征在于,所述步骤S1之前还包括:所述上传用户终端判断是否有所述上传智能密钥设备与其连接,是则从所述上传智能密钥设备中获取所述上传用户证书,执行步骤S1,否则结束;所述上传用户证书中包括所述上传用户公钥;
在所述步骤S2中所述服务器解析所述上传请求得到上传用户证书,从所述上传用户证书中获取所述上传用户公钥。
4.如权利要求1或2所述的方法,其特征在于,
在所述步骤S7之前还包括:所述上传用户终端判断是否有所述上传智能密钥设备与其连接,是则继续,否则结束;
所述步骤S2中进行加密前还包括:根据所述上传请求解析结果中的上传用户标识在内部存储用户公钥中获取对应的上传用户公钥。
5.如权利要求1或2所述的方法,其特征在于,所述步骤S2中的所述第一随机数是所述上传用户终端接收到所述上传请求时生成的或预先生成的。
6.如权利要求1或2所述的方法,其特征在于,所述步骤S3替换为:所述服务器使用第一预设算法对所述第一随机数密文进行计算得到第一摘要,使用服务器私钥对所述第一摘要进行签名得到第一签名,对所述随机数密文、所述第一摘要和所述第一签名进行组合得到第一结果,并将所述第一结果发送给所述上传用户终端;
所述步骤S7中所述上传用户终端直接调用所述上传智能密钥设备中预置的第一预设算法对所述第二组合进行计算得到第二摘要。
7.如权利要求1或2所述的方法,其特征在于,在所述步骤S4之前还包括:所述上传用户终端从所述服务器中获取所述服务器证书,所述服务器证书中包括服务器公钥。
8.如权利要求7所述的方法,其特征在于,所述步骤S4具体包括:
步骤S4-1:所述上传用户终端接收所述第一结果,对所述第一结果解析得到所述第一组合、所述第一摘要和所述第一签名,对所述第一组合解析得到所述第一随机数密文和所述算法信息;
步骤S4-2:所述上传用户终端根据所述算法信息调用所述上传智能密钥设备中对应的所述第一预设算法对所述第一组合进行计算得到第一验证摘要;
步骤S4-3:所述上传用户终端判断所述解析得到的第一摘要与所述第一验证摘要是否相同,是则执行步骤S4-4,否则验证失败;
步骤S4-4:所述上传用户终端使用获取的所述服务器证书中的所述服务器公钥和所述第一摘要对所述第一签名进行验证,如验证成功则执行步骤S5,如验证失败则输出失败信息,结束。
9.如权利要求8所述的方法,其特征在于,所述步骤S8具体包括:
步骤S8-1:所述服务器接收所述第二结果并对所述第二结果解析得到所述第二组合、所述第二摘要和所述第二签名,对所述第二组合解析得到所述文件密文和所述第一随机数新密文;
步骤S8-2:所述服务器根据所述第一预设算法对所述第二组合进行计算得到第二验证摘要;
步骤S8-3:所述服务器判断所述解析得到的第二摘要与所述第二验证摘要是否相同,是则执行步骤S8-4,否则验证失败;
步骤S8-4:所述服务器使用所述上传用户公钥和所述第二摘要对所述第二签名进行验证,如验证成功则保存所述第一随机数新密文和所述文件密文,如验证失败则给用户终端返回失败信息,结束。
10.如权利要求2所述的方法,其特征在于,在所述步骤S9之前还包括:所述下载用户终端判断是否有所述下载智能密钥设备与其连接,是则从所述下载智能密钥设备中获取所述下载用户证书,执行步骤S9,否则结束;所述下载用户证书中有下载用户公钥。
11.如权利要求10所述的方法,其特征在于,所述步骤S11具体包括:
步骤S11-1:所述服务器接收所述下载请求并对其进行解析得到所述第三组合、所述第三摘要和所述第三签名;对所述第三组合解析得到所述文件信息和所述下载用户信息;
步骤S11-2:所述服务器使用所述第一预设算法对所述第三组合进行计算得到第三验证摘要,判断所述第三验证摘要与所述第三摘要是否相同,是则执行步骤S11-3,否则给所述下载用户终端返回拒绝信息,结束;
步骤S11-3:所述服务器使用与所述下载用户信息对应的下载用户公钥和所述第三摘要对所述第三签名进行验证,如验证成功则下载请求解析结果有效,如验证失败则下载请求解析结果无效。
12.如权利要求11所述的方法,其特征在于,在步骤S14之前还包括:所述下载用户终端判断内部是否存储有服务器公钥,是则继续,否则从所述服务器中获取所述服务器公钥,继续。
13.如权利要求12所述的方法,其特征在于,所述步骤S14具体包括:
步骤S14-1:所述下载用户终端接收所述第四结果并对所述第四结果解析得到所述第四组合、所述第四摘要和所述第四签名,对所述第四组合解析得到所述第二随机数密文及所述文件密文;
步骤S14-2:所述下载用户终端调用所述下载智能密钥设备中的第一预设算法对所述第四组合进行计算得到第四验证摘要,判断所述解析得到的第四摘要与所述第四验证摘要是否相同,是则执行步骤S14-3,否则验证失败,输出失败信息,结束;
步骤S14-3:所述下载用户终端使用所述服务器证书中的服务器公钥和所述第四摘要对所述第四签名进行验证,如验证成功则执行步骤S15,如验证失败则输出失败信息,结束。
14.如权利要求1或2所述的方法,其特征在于,所述步骤S7中将所述第二结果发送给所述服务器和步骤S8具体包括:
步骤a1:所述上传用户终端将所述第二结果进行分包,并将第一包数据作为当前数据包发送给所述服务器;
步骤a2:所述服务器接收到当前数据包后,对当前数据包进行验证,如验证通过则给所述上传用户终端发送验证成功信息,执行步骤a3,否则给所述上传用户终端返回验证失败信息,执行步骤a3;
步骤a3:所述上传用户终端接收并检测所述服务器返回的信息,如为验证成功信息则执行步骤a4,否则输出验证失败信息,结束;
步骤a4:所述上传用户终端判断数据包是否发送完成,是则将发送完成信息发送给所述服务器,执行步骤a5,否则将下一个数据包作为当前数据包发送给所述服务器,返回步骤a2;
步骤a5:所述服务器将接收到的所有数据包顺序组合,从组合数据中提取所述第一随机数新密文及所述文件密文并保存。
15.如权利要求2所述的方法,其特征在于,所述步骤S13将所述第四结果发送给所述下载用户终端和步骤S15具体包括:
步骤a1’:所述服务器将所述第四结果进行分包,并将第一包数据作为当前数据包发送给所述下载用户终端;
步骤a2’:所述下载用户终端接收到当前数据包后,对当前数据包进行验证,如验证通过则给所述服务器发送验证成功信息,执行步骤a3’,否则给输出验证失败信息,结束;
步骤a3’:所述服务器判断数据包是否发送完成,是则将发送完成信息发送给所述下载用户终端,执行步骤a4’,否则将下一个数据包作为当前数据包发送给所述下载用户终端,返回步骤a2’;
步骤a4’:所述下载用户终端将接收到的所有数据包顺序组合,并从组合数据中提取所述第二随机数密文和所述文件密文。
16.一种文件共享的系统,包括服务器和用户终端,其特征在于,所述用户终端包括:
第一接收模块,用于接收所述服务器发送的第一结果;
第一生成模块,用于根据上传用户信息和待上传的文件信息生成上传请求;所述上传用户信息包括上传用户标识和/或上传用户证书;
第一解析模块,用于对接收到的所述第一结果进行解析得到第一解析结果;
第一验证模块,用于使用获取的服务器证书验证所述第一解析结果;
输出模块,用于输出失败信息;
第一调用模块,用于调用上传智能密钥设备中的第一预设函数,根据所述第一解析结果中的第一随机数密文得到第一会话密钥句柄;用于调用上传智能密钥设备中的第二预设函数,根据所述第一会话密钥句柄和所述服务器证书中的服务器公钥得到第一随机数新密文作为加密密钥;
第一加密模块,根据所述第一会话密钥句柄在接口内检索对应的加密密钥,使用所述检索到的加密密钥对待上传的文件进行加密得到文件密文;
第一组合计算模块,用于对所述文件密文、所述第一随机数新密文进行组合得到第二组合,根据所述第一解析结果中的算法信息调用上传智能密钥设备中对应的第一预设算法对所述第二组合进行计算得到第二摘要,调用所述上传智能密钥设备中的上传用户私钥对所述第二摘要进行签名得到第二签名,对所述第二组合、所述第二摘要和所述第二签名进行组合得到第二结果;
第一发送模块,用于向所述服务器发送所述上传请求和所述第二结果;
所述服务器包括:
第二接收模块,用于接收所述第一发送模块发送的所述上传请求和所述第二结果;
第二加密模块,用于对所述上传请求进行解析,并使用与解析结果中的所述上传用户信息对应的上传用户公钥对生成的第一随机数进行加密得到第一随机数密文;
第二组合计算模块,用于将所述第一随机数密文和预设的算法信息组合为第一组合,使用与所述算法信息对应的第一预设算法对所述第一组合进行计算得到第一摘要,使用服务器私钥对所述第一摘要进行签名得到第一签名,对所述第一组合、所述第一摘要和所述第一签名进行组合得到第一结果;
第二解析模块,用于对所述接收到的第二结果进行解析得到第二解析结果;
第二验证模块,用于对所述第二解析结果进行验证;
保存模块,用于在所述第二验证模块验证成功时则保存所述第二解析结果中的第一随机数新密文及文件密文;
第二发送模块,用于向所述用户终端发送所述第一结果和失败信息。
17.如权利要求16所述的系统,其特征在于,所述用户终端还包括:
第三组合计算模块,用于当接收到共享触发信息时,对将要下载的文件信息和下载用户信息进行组合得到第三组合,调用下载智能密钥设备中的第一预设算法对所述第三组合进行计算得到第三摘要,调用所述下载智能密钥设备中的下载用户私钥对所述第三摘要进行签名得到第三签名;所述下载用户信息中包括下载用户标识和/或下载用户证书;
第一生成模块,用于根据所述第三组合、所述第三摘要和所述第三签名生成下载请求;
第三解析模块,用于对接收到的所述第四结果进行解析得到第四解析结果;
第三验证模块,用于对所述第四解析结果进行验证;
解密模块,用于当所述第三验证模块验证成功时调用上传智能密钥设备中的第一预设函数,根据所述第四解析结果中的第二随机数密文得到第二会话密钥句柄;根据所述第二会话密钥句柄检索对应的加密密钥,使用检索到的加密密钥对所述第四解析结果中的文件密文进行解密;
所述第一接收模块还用于接收所述共享触发信息和所述服务器发送的第四结果;
所述第一发送模块还用于将所述下载请求发送给所述服务器;
所述服务器还包括:
第四解析模块,用于对接收到的所述下载请求进行解析得到下载请求解析结果;
第四验证模块,用于验证所述下载请求解析结果的有效性;
查找模块,用于根据所述下载请求解析结果中的所述将要下载的文件信息找到要下载的文件密文和第一随机数新密文;
第二调用模块,用于调用下载智能密钥设备中的第一预设函数根据所述第一随机数新密文得到第二会话密钥句柄,调用下载智能密钥设备中的第二预设函数根据所述第二会话密钥句柄和与所述下载请求解析结果中的下载用户信息对应的下载用户公钥得到第二随机数密文;
第四组合计算模块,用于将所述第二随机数密文及所述文件密文组合得到第四组合,使用所述第一预设算法对所述第四组合进行计算得到第四摘要,使用所述服务器私钥对所述第四摘要进行签名得到第四签名,对所述第四组合、所述第四摘要和所述第四签名进行组合得到所述第四结果;
所述第二接收模块还用于接收所述用户终端发送的下载请求;
所述第二发送模块还用于给所述用户终端发送所述第四结果和拒绝信息。
18.如权利要求16或17所述的系统,其特征在于,所述用户终端还包括:
第一判断模块,用于判断是否有上传智能密钥设备与其连接;
获取生成模块,用于从与用户终端连接的上传智能密钥设备中获取上传用户证书;所述上传用户证书中包括所述上传用户公钥。
19.如权利要求16或17所述的系统,其特征在于,所述用户终端还包括:
第一判断模块,用于判断是否有上传智能密钥设备与其连接;
所述服务器还包括第一获取模块,用于根据所述第二加密模块解析所述上传请求得到的上传用户信息从所述存储模块中获取对应的上传用户公钥。
20.如权利要求16或17所述的系统,其特征在于,所述服务器还包括:第二生成模块,用于生成所述第一随机数。
21.如权利要求16或17所述的系统,其特征在于,所述第二组合计算模块用于使用第一预设算法对所述第一随机数密文进行计算得到第一摘要,使用服务器私钥对所述第一摘要进行签名得到第一签名,对所述第一随机数密文、所述第一摘要和所述第一签名进行组合得到第一结果;
所述第一组合计算模块直接调用所述上传智能密钥设备中预置的第一预设算法对所述第二组合进行计算得到所述第二摘要。
22.如权利要求16或17所述的系统,其特征在于,所述用户终端还包括第二获取模块,用于从所述服务器中获取服务器证书,所述服务器证书中包括服务器公钥。
23.如权利要求22所述的系统,其特征在于,所述第一解析模块解析得到的第一解析结果包括所述第一随机数密文、所述算法信息、所述第一摘要和所述第一签名;
所述第一验证模块具体包括:
第一计算单元,用于根据所述算法信息调用所述上传智能密钥设备中对应的所述第一预设算法对所述第一组合进行计算得到第一验证摘要;
第一判断单元,用于判断所述解析得到的第一摘要与所述第一验证摘要是否相同;
第一验证单元,用于当所述第一判断单元判断为是时使用所述服务器证书中的服务器公钥和所述第一摘要对所述第一签名进行验证。
24.如权利要求23所述的系统,其特征在于,所述第二解析模块解析得到的第二解析结果包括:所述文件密文、所述第一随机数新密文、所述第二摘要和所述第二签名;
所述第二验证模块具体包括:
第二计算单元,用于根据所述第一预设算法对所述第二组合进行计算得到第二验证摘要;
第二判断单元,用于判断所述解析得到的第二摘要与所述第二验证摘要是否相同;
第三验证单元,用于当第二判断单元判断为是时使用所述上传用户公钥和所述第二摘要对所述第二签名进行验证。
25.如权利要求17所述的系统,其特征在于,所述用户终端还包括第二判断模块,用于判断是否有下载智能密钥设备与其连接。
26.如权利要求25所述的系统,其特征在于,所述第四解析模块解析得到的下载请求解析结果包括:所述文件信息、所述下载用户信息、所述第三摘要和所述第三签名;
所述第四验证模块具体包括:
第三计算单元,用于使用所述第一预设算法对所述第三组合进行计算得到第三验证摘要;
第三判断单元,用于判断所述第三验证摘要与所述第三摘要是否相同;
第三验证单元,用于当所述第三判断单元判断为是时使用与所述下载用户信息对应的下载用户公钥和所述第三摘要对所述第三签名进行验证。
27.如权利要求26所述的系统,其特征在于,所述用户终端还包括:
第三判断模块,用于判断所述用户终端内部是否存储有服务器证书;
第三获取模块,用于当所述第三判断模块判断为否时从所述服务器中获取服务器证书。
28.如权利要求27所述的系统,其特征在于,所述第三解析模块解析得到的第四解析结果包括:所述第二随机数密文、所述文件密文、所述第四摘要和所述第四签名;
所述第三验证模块具体包括:
第四计算单元,用于调用所述下载智能密钥设备中的第一预设算法对所述第四组合进行计算得到第四验证摘要;
第四判断单元,用于判断所述解析得到的第四摘要与所述第四验证摘要是否相同;
第四验证单元,用于当所述第四判断单元判断为是时使用所述服务器公钥和所述第四摘要对所述第四签名进行验证。
29.如权利要求16或17所述的系统,其特征在于,
所述第一接收模块还用于接收第二发送模块发送的验证成功信息;
所述第一发送模块包括:
第一发送单元,用于向所述服务器发送上传请求;
第一分包单元,用于将所述第二结果进行分包;
第二发送单元,用于将分包后的数据包和发送完成信息发送给所述服务器;
第一检测单元,用于检测所述第一接收模块接收到的所述服务器返回的信息;
第五判断单元,用于当所述第一检测单元检测所述服务器返回的信息为验证成功信息时,判断所述分包后的数据包是否发送完成,是则所述第二发送单元将发送完成信息发送给所述服务器,否则所述第二发送单元发送下一个数据包;
所述第二接收模块用于接收所述第一发送单元发送的上传请求、所述第二发送单元发送的不同数据包和发送完成信息;
所述第二验证模块用于对接收到每一个数据包进行验证;
所述第二发送模块还用于向所述用户终端发送验证成功信息;
所述第二解析模块用于当所述第二接收模块接收到发送完成信息时,将所述第二接收模块接收到的所有数据包顺序组合,从组合数据中提取所述第一随机数新密文及所述文件密文;
所述保存模块用于保存所述第二解析模块提取得到的所述第一随机数新密文及所述文件密文。
30.如权利要求17所述的系统,其特征在于,
所述第二发送模块包括:
第三发送单元,用于向所述用户终端发送所述第一结果、失败信息、拒绝信息;
第二分包单元,用于将所述第四结果进行分包;
第四发送单元,用于将分包后的数据包和发送完成信息发送给所述用户终端;
第六判断单元,用于判断所述分包后的数据包是否发送完成;
所述第一接收模块用于接收所述第三发送单元发送的所述第一结果、失败信息、拒绝信息和第四发送单元发送的数据包;
所述第三验证模块用于对所述第一接收模块接收到的数据包进行验证;
所述第一发送模块还用于给所述服务器发送验证成功信息;
所述第三解析模块用于将接收到的所有数据包顺序组合,并从组合数据中提取所述第二随机数密文和所述文件密文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310210900.4A CN103338185B (zh) | 2013-05-31 | 2013-05-31 | 一种文件共享的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310210900.4A CN103338185B (zh) | 2013-05-31 | 2013-05-31 | 一种文件共享的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103338185A true CN103338185A (zh) | 2013-10-02 |
CN103338185B CN103338185B (zh) | 2016-02-24 |
Family
ID=49246283
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310210900.4A Expired - Fee Related CN103338185B (zh) | 2013-05-31 | 2013-05-31 | 一种文件共享的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103338185B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017201753A1 (zh) * | 2016-05-27 | 2017-11-30 | 华为技术有限公司 | 一种移动网络的认证方法和装置 |
CN108199844A (zh) * | 2018-04-09 | 2018-06-22 | 北京无字天书科技有限公司 | 一种支持离线sm9算法密钥首次申请下载方法 |
CN108599928A (zh) * | 2018-03-27 | 2018-09-28 | 苏州科达科技股份有限公司 | 密钥管理方法及装置 |
CN108764848A (zh) * | 2018-05-31 | 2018-11-06 | 飞天诚信科技股份有限公司 | 一种电子合同的签署方法及系统 |
CN110502870A (zh) * | 2018-05-18 | 2019-11-26 | 北京果仁宝软件技术有限责任公司 | 基于区块链的作品管理方法、装置和设备 |
CN110601836A (zh) * | 2019-10-10 | 2019-12-20 | 中国建设银行股份有限公司 | 密钥获取方法、装置、服务器和介质 |
CN110796446A (zh) * | 2019-10-18 | 2020-02-14 | 飞天诚信科技股份有限公司 | 密钥注入方法、装置、电子设备及计算机可读存储介质 |
CN111191259A (zh) * | 2019-12-24 | 2020-05-22 | 绍兴市上虞区理工高等研究院 | 一种科技成果加密传输方法及装置 |
CN112019566A (zh) * | 2020-09-25 | 2020-12-01 | 中国农业银行股份有限公司 | 数据的传输方法、服务器、客户端及计算机存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102222195A (zh) * | 2011-07-29 | 2011-10-19 | 飞天诚信科技股份有限公司 | 电子书阅读方法和系统 |
CN102932343A (zh) * | 2012-10-26 | 2013-02-13 | 飞天诚信科技股份有限公司 | 一种下载数字证书的方法和装置 |
US20130097419A1 (en) * | 2011-05-09 | 2013-04-18 | Feitian Technologies Co., Ltd. | Method and system for accessing e-book data |
CN103067491A (zh) * | 2012-12-26 | 2013-04-24 | 飞天诚信科技股份有限公司 | 一种实现文件共享的方法及装置 |
-
2013
- 2013-05-31 CN CN201310210900.4A patent/CN103338185B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130097419A1 (en) * | 2011-05-09 | 2013-04-18 | Feitian Technologies Co., Ltd. | Method and system for accessing e-book data |
CN102222195A (zh) * | 2011-07-29 | 2011-10-19 | 飞天诚信科技股份有限公司 | 电子书阅读方法和系统 |
CN102932343A (zh) * | 2012-10-26 | 2013-02-13 | 飞天诚信科技股份有限公司 | 一种下载数字证书的方法和装置 |
CN103067491A (zh) * | 2012-12-26 | 2013-04-24 | 飞天诚信科技股份有限公司 | 一种实现文件共享的方法及装置 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017201753A1 (zh) * | 2016-05-27 | 2017-11-30 | 华为技术有限公司 | 一种移动网络的认证方法和装置 |
CN108599928A (zh) * | 2018-03-27 | 2018-09-28 | 苏州科达科技股份有限公司 | 密钥管理方法及装置 |
CN108199844A (zh) * | 2018-04-09 | 2018-06-22 | 北京无字天书科技有限公司 | 一种支持离线sm9算法密钥首次申请下载方法 |
CN110502870A (zh) * | 2018-05-18 | 2019-11-26 | 北京果仁宝软件技术有限责任公司 | 基于区块链的作品管理方法、装置和设备 |
CN108764848B (zh) * | 2018-05-31 | 2021-03-16 | 飞天诚信科技股份有限公司 | 一种电子合同的签署方法及系统 |
CN108764848A (zh) * | 2018-05-31 | 2018-11-06 | 飞天诚信科技股份有限公司 | 一种电子合同的签署方法及系统 |
CN110601836A (zh) * | 2019-10-10 | 2019-12-20 | 中国建设银行股份有限公司 | 密钥获取方法、装置、服务器和介质 |
CN110601836B (zh) * | 2019-10-10 | 2022-04-12 | 中国建设银行股份有限公司 | 密钥获取方法、装置、服务器和介质 |
CN110796446A (zh) * | 2019-10-18 | 2020-02-14 | 飞天诚信科技股份有限公司 | 密钥注入方法、装置、电子设备及计算机可读存储介质 |
CN110796446B (zh) * | 2019-10-18 | 2022-05-03 | 飞天诚信科技股份有限公司 | 密钥注入方法、装置、电子设备及计算机可读存储介质 |
CN111191259A (zh) * | 2019-12-24 | 2020-05-22 | 绍兴市上虞区理工高等研究院 | 一种科技成果加密传输方法及装置 |
CN112019566A (zh) * | 2020-09-25 | 2020-12-01 | 中国农业银行股份有限公司 | 数据的传输方法、服务器、客户端及计算机存储介质 |
CN112019566B (zh) * | 2020-09-25 | 2022-04-05 | 中国农业银行股份有限公司 | 数据的传输方法、服务器、客户端及计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103338185B (zh) | 2016-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103338185B (zh) | 一种文件共享的方法及系统 | |
CN109347809B (zh) | 一种面向自主可控环境下的应用虚拟化安全通信方法 | |
CN109347627B (zh) | 数据加解密方法、装置、计算机设备及存储介质 | |
CN102780698A (zh) | 物联网平台中用户终端安全通信的方法 | |
TWI489847B (zh) | 資料加密方法、資料驗證方法及電子裝置 | |
CN105162599B (zh) | 一种数据传输系统及其传输方法 | |
WO2017100217A1 (en) | Key exchange through partially trusted third party | |
CN105187450A (zh) | 一种基于认证设备进行认证的方法和设备 | |
US20170317823A1 (en) | Zero Knowledge Encrypted File Transfer | |
US9992177B2 (en) | Method and system for modifying an authenticated and/or encrypted message | |
CN105162785A (zh) | 一种基于认证设备进行注册的方法和设备 | |
CN104023013A (zh) | 数据传输方法、服务端和客户端 | |
CN111435913A (zh) | 一种物联网终端的身份认证方法、装置和存储介质 | |
CN107517194B (zh) | 一种内容分发网络的回源认证方法和装置 | |
CN104901935A (zh) | 一种基于cpk的双向认证及数据交互安全保护方法 | |
CN110662091B (zh) | 第三方直播视频接入方法、存储介质、电子设备及系统 | |
CN111080299B (zh) | 一种交易信息的防抵赖方法及客户端、服务器 | |
WO2018208546A1 (en) | Generation of shared secrets using pairwise implicit certificates | |
US20140237239A1 (en) | Techniques for validating cryptographic applications | |
CN107249002B (zh) | 一种提高智能电能表安全性的方法、系统及装置 | |
CN114915396B (zh) | 一种基于国密算法的跳变密钥数字通信加密系统和方法 | |
WO2022161369A1 (zh) | 一种光传送网的安全管理信息处理方法及装置 | |
CN101291299B (zh) | 即时通讯方法、系统及终端及生成发起其会话链接的方法 | |
Coruh et al. | Hybrid secure authentication and key exchange scheme for M2M home networks | |
CN104735094A (zh) | 基于信息分离的数据安全传输系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160224 |
|
CF01 | Termination of patent right due to non-payment of annual fee |