CN108471404A - 文件共享方法、装置、计算机设备和存储介质 - Google Patents

文件共享方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN108471404A
CN108471404A CN201810169085.4A CN201810169085A CN108471404A CN 108471404 A CN108471404 A CN 108471404A CN 201810169085 A CN201810169085 A CN 201810169085A CN 108471404 A CN108471404 A CN 108471404A
Authority
CN
China
Prior art keywords
user
file
key
symmetric
symmetric key
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
Application number
CN201810169085.4A
Other languages
English (en)
Other versions
CN108471404B (zh
Inventor
孙亚洲
陈斌
郭雨舜
杜晓骏
陈杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Darren Gene Technology Co Ltd
Original Assignee
Shenzhen Darren Gene Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Darren Gene Technology Co Ltd filed Critical Shenzhen Darren Gene Technology Co Ltd
Priority to CN201810169085.4A priority Critical patent/CN108471404B/zh
Priority to PCT/CN2018/086482 priority patent/WO2019165707A1/zh
Publication of CN108471404A publication Critical patent/CN108471404A/zh
Application granted granted Critical
Publication of CN108471404B publication Critical patent/CN108471404B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/067Network architectures or network communication protocols for network security for supporting key management in a packet data network using one-time keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • H04L63/0838Network architectures or network communication protocols for network security for authentication of entities using passwords using one-time-passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

本申请涉及一种文件共享方法、装置、计算机设备和存储介质。该方法包括:接收第一加密文件传递请求;获取第二用户公钥,并生成临时对称加密密码;获取第一加密文件;根据第一用户对称密钥得到原始文件,将原始文件使用临时对称加密密码加密得到第二加密文件;利用第二用户公钥得到加密密码文件;向第二用户对应的终端发送第一加密文件传递请求,接收终端根据第一加密文件传递请求返回的第二用户对称密钥;根据第二用户公钥获取第二用户私钥,根据第二用户私钥得到临时对称加密密码;根据临时对称加密密码得到原始文件,根据第二用户对称密钥得到第三加密文件,将第三加密文件传递给第二用户对应终端。采用本方法能够提高文件在共享时的安全性。

Description

文件共享方法、装置、计算机设备和存储介质
技术领域
本申请涉及计算机技术技术领域,特别是涉及一种文件共享方法、装置、计算机设备和存储介质。
背景技术
随着计算机技术的发展,人们对文件存储和文件的传输的安全性要求越来越高,然而,目前要进行文件的分享一般是将文件在解密之后进行分享,或者是将加密文件分享的同时也分享加密密钥。
传统的在文件的共享过程中,用户是无法立刻接收到共享的文件,都需要将共享的文件存储在服务器中一段时间,在这段时间中存储在服务器中的共享的文件就比较容易泄露。而将文件在解密之后进行分享,并不能保证文件在共享过程中的安全,传输的文件很容易泄漏。而将加密文件分享的同时也分享加密密钥,这种方法在加密文件和加密密钥在服务器存储时也比较容易泄露无法有效的保证文件在共享过程中的安全。
发明内容
基于此,有必要针对上述技术问题,提供一种能够有效提高文件共享过程中安全性的文件共享方法、装置、计算机设备和存储介质。
一种文件共享方法,所述方法包括:
接收第一加密文件传递请求,第一加密文件传递请求包括第二用户标识、文件标识和第一用户对称密钥;
根据第二用户标识获取第二用户公钥,并生成临时对称加密密码;
根据文件标识获取第一加密文件;
根据第一用户对称密钥解密第一加密文件得到原始文件,将原始文件使用临时对称加密密码加密,得到第二加密文件;
利用第二用户公钥加密临时对称加密密码,得到加密密码文件;
根据第二用户标识向第二用户对应的终端发送第一加密文件传递请求,接收终端根据第一加密文件传递请求返回的第二用户对称密钥;
根据第二用户公钥获取第二用户私钥,使用第二用户私钥对加密密码文件进行解密,得到临时对称加密密码;
根据临时对称加密密码对第二加密文件进行解密得到原始文件,并使用第二用户对称密钥将原始文件进行加密,得到第三加密文件,将第三加密文件并将第三加密文件保存。
在其中一个实施例中,在根据第二用户标识向第二用户对应的终端发送第一加密文件传递请求之后,还包括:
接收终端根据第一加密文件传递请求返回的拒绝接收指令;
根据拒绝接收指令删除第二加密文件和加密密码文件,将第二加密文件和加密密码文件使用过的存储空间进行数据覆盖。
在其中一个实施例中,第一加密文件的生成步骤包括:
获取大数据,将大数据写入数据缓存块中,并将大数据按照数据组成类型进行分块,得到数据子块;
根据数据子块建立对应的数据模型,根据数据模型和压缩算法将数据子块进行压缩;
获取第一用户对称密钥,使用第一用户对称密钥将压缩后的数据子块进行加密,将加密的数据子块进行封装,将封装后的数据子块写入输出文档中;
当数据子块全部写入输出文档中时,获取加密的文件头和/或文件尾信息,将加密的文件头和/或文件尾信息写入输出文档中对应的预设位置,得到第一加密文件,其中,文件头和/或文件尾信息包括第一用户对称密钥对应的对称密钥校验信息;
将使用过的数据缓存块进行数据覆盖并释放内存。
在其中一个实施例中,根据第一用户对称密钥对第一加密文件进行解密,将解密结果使用临时对称加密密码加密,得到第二加密文件,包括:
获取第一加密文件的封装结构,根据封装结构获取第一加密文件中加密的数据子块;
使用第一用户对称密钥对数据子块进行解密,使用临时对称加密密码对解密的数据子块进行加密,得到第二加密文件。
在其中一个实施例中,所述方法还包括:
获取第一用户对称密钥,生成第三对称密钥,使用第三对称密钥加密第一用户对称密钥;
将加密后的第一用户对称密钥保存到对称密钥数据库中;
生成第一用户公钥和对应的第一用户私钥,第一用户公钥处于激活状态,将第一用户公钥保存到公钥数据库中;
生成第四对称密钥并计算第一用户公钥的哈希值,使用第四对称密钥加密第一用户私钥和第一用户公钥的哈希值,将加密后的第一用户私钥和加密后的第一用户公钥的哈希值关联保存到私钥数据库中。
在其中一个实施例中,第一加密文件的解密步骤,包括:
获取对第一加密文件的解密请求,解密请求携带有第三对称密钥;
获取对称密钥数据库中加密的当前对称密钥,使用第三对称密钥对加密的当前对称密钥进行解密,得到当前对称密钥;
获取第一加密文件中的文件头和/或文件尾信息,根据当前对称密钥对文件头和/或文件尾信息进行解密,得到对称密钥校验信息;
若对称密钥校验信息是随机数和所述随机数对应的第一哈希值,则获取对称密钥校验信息中的随机数,计算随机数的第二哈希值;或者若对称密钥校验信息是第一用户对称密钥对应的第一哈希值,则计算当前对称密钥的第二哈希值;
当第一哈希值和第二哈希值一致时,则使用所述当前对称密钥解密第一加密文件。
在其中一个实施例中,根据第二用户公钥获取第二用户私钥,包括:
根据第二用户公钥计算第三哈希值;
获取第四对称密钥,获取所述第二用户私钥数据库中加密的第二用户私钥和对应的加密的第二用户公钥的哈希值,使用所述第四对称密钥解密所述加密的第二用户公钥的哈希值,得到第四哈希值;
当所述第三哈希值与所述第四哈希值一致时,使用第四对称密钥解密加密的第二用户私钥,得到第二用户私钥。
一种文件共享装置,所述装置包括:
请求接收模块,用于接收第一加密文件传递请求,第一加密文件传递请求包括第二用户标识、文件标识和第一用户对称密钥;
第二用户公钥获取模块,用于根据第二用户标识获取第二用户公钥,并生成临时对称加密密码;
第一文件获取模块,用于根据文件标识获取第一加密文件;
第二文件获取模块,用于根据第一用户对称密钥解密第一加密文件得到原始文件,将原始文件使用临时对称加密密码加密,得到第二加密文件;
密码文件获取模块,用于利用第二用户公钥加密临时对称加密密码,得到加密密码文件;
第二用户对称密钥获取模块,用于根据第二用户标识向第二用户对应的终端发送第一加密文件传递请求,接收终端根据第一加密文件传递请求返回的第二用户对称密钥;
加密密码获取模块,用于根据第二用户公钥获取第二用户私钥,使用第二用户私钥对加密密码文件进行解密,得到临时对称加密密码;
文件共享模块,用于根据临时对称加密密码对第二加密文件进行解密得到原始文件,并使用第二用户对称密钥将原始文件进行加密,得到第三加密文件,并将第三加密文件保存。
一种计算机设备,包括存储器、处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
接收第一加密文件传递请求,所述第一加密文件传递请求包括第二用户标识、文件标识和第一用户对称密钥;
根据所述第二用户标识获取第二用户公钥,并生成临时对称加密密码;
根据所述文件标识获取第一加密文件;
根据所述第一用户对称密钥解密所述第一加密文件得到原始文件,将所述原始文件使用所述临时对称加密密码加密,得到第二加密文件;
利用所述第二用户公钥加密所述临时对称加密密码,得到加密密码文件;
根据所述第二用户标识向第二用户对应的终端发送第一加密文件传递请求,接收所述终端根据所述第一加密文件传递请求返回的第二用户对称密钥;
根据所述第二用户公钥获取第二用户私钥,使用所述第二用户私钥对所述加密密码文件进行解密,得到临时对称加密密码;
根据临时对称加密密码对第二加密文件进行解密得到所述原始文件,并使用所述第二用户对称密钥将所述原始文件进行加密,得到第三加密文件,并将第三加密文件保存。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
接收第一加密文件传递请求,所述第一加密文件传递请求包括第二用户标识、文件标识和第一用户对称密钥;
根据所述第二用户标识获取第二用户公钥,并生成临时对称加密密码;
根据所述文件标识获取第一加密文件;
根据所述第一用户对称密钥解密所述第一加密文件得到原始文件,将所述原始文件使用所述临时对称加密密码加密,得到第二加密文件;
利用所述第二用户公钥加密所述临时对称加密密码,得到加密密码文件;
根据所述第二用户标识向第二用户对应的终端发送第一加密文件传递请求,接收所述终端根据所述第一加密文件传递请求返回的第二用户对称密钥;
根据所述第二用户公钥获取第二用户私钥,使用所述第二用户私钥对所述加密密码文件进行解密,得到临时对称加密密码;
根据临时对称加密密码对第二加密文件进行解密得到所述原始文件,并使用所述第二用户对称密钥将所述原始文件进行加密,得到第三加密文件,并将第三加密文件保存。
上述文件共享方法、装置、计算机设备和存储介质,通过接收第一加密文件传递请求;根据所述第二用户标识获取第二用户公钥,并生成临时对称加密密码;根据所述文件标识获取第一加密文件;根据所述第一用户对称密钥解密所述第一加密文件得到原始文件,将所述原始文件使用所述临时对称加密密码加密,得到第二加密文件;利用所述第二用户公钥加密所述临时对称加密密码,得到加密密码文件;根据所述第二用户标识向第二用户对应的终端发送第一加密文件传递请求,接收所述终端根据所述第一加密文件传递请求返回的第二用户对称密钥;根据所述第二用户公钥获取第二用户私钥,使用所述第二用户私钥对所述加密密码文件进行解密,得到临时对称加密密码;根据临时对称加密密码对第二加密文件进行解密得到所述原始文件,并使用所述第二用户对称密钥将所述原始文件进行加密,得到第三加密文件,并将第三加密文件保存。通过将第一解密文件解密得到原始文件,将原始文件使用临时加密密码进行加密,再将临时加密密码使用第二用户公钥加密,使得服务器不必长时间保存对称密钥,保证了在文件共享过程中文件和对称密钥的安全性。
附图说明
图1为一个实施例中文件共享方法的应用环境图;
图2为一个实施例中文件共享方法的流程示意图;
图3为一个实施例中接收第二用户对应的终端返回拒绝接收指令的流程示意图;
图4为一个实施例中生成第一加密文件的流程示意图;
图5为一个实施例中得到第二加密文件的流程示意图;
图6为一个实施例中保存密钥的流程示意图;
图7为一个实施例中解密第一加密文件的流程示意图;
图8为一个实施例中得到第二用户私钥的流程示意图;
图9为一个实施例中文件共享装置的结构框图;
图10为一个实施例中第二用户对称密钥获取模块的结构框图;
图11为另一个实施例中文件共享装置的结构框图;
图12为一个实施例中第二文件获取模块的结构框图;
图13为又一个实施例中文件共享装置的结构框图;
图14为再一个实施例中文件共享装置的结构框图;
图15为一个实施例中加密密码获取模块的结构框图;
图16为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的文件共享方法,可以应用于如图1所示的应用环境中。其中,服务器102通过网络与终端104进行通信,通过网络与终端106进行通信。服务器102接收终端104发送的向终端106的第一加密文件传递请求,第一加密文件传递请求包括第二用户标识、文件标识和第一用户对称密钥;服务器102 根据第二用户标识获取第二用户公钥,并生成临时对称加密密码;根据文件标识获取第一加密文件;根据第一用户对称密钥解密第一加密文件得到原始文件,将原始文件使用临时对称加密密码加密,得到第二加密文件;利用第二用户公钥加密临时对称加密密码,得到加密密码文件;服务器102根据第二用户标识向第二用户对应的终端106发送第一加密文件传递请求,接收终端106根据第一加密文件传递请求返回的第二用户对称密钥;服务器102根据第二用户公钥获取第二用户私钥,使用第二用户私钥对加密密码文件进行解密,得到临时对称加密密码;服务器102根据临时对称加密密码对第二加密文件进行解密得到原始文件,并使用第二用户对称密钥将原始文件进行加密,得到第三加密文件,并将第三加密文件保存。其中,终端104和终端106可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器102 可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种文件共享方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
S202,接收第一加密文件传递请求,第一加密文件传递请求包括第二用户标识、文件标识和第一用户对称密钥。
对称密钥又叫专用密钥加密,即发送和接收数据的双方必使用相同的密钥对明文进行加密和解密运算。
其中,文件标识用于标识第一加密文件,第一加密文件是原始文件在第一用户对应的终端使用第一用户对称密钥加密之后上传到服务器存储的解密文件,该解密文件存储在第一用户标识的数据库中。第一用户对称密钥用于对应第一加密文件进行解密,是由用户自己保存的,服务器在使用时需要用户提供。
具体地,服务器接收到第一用户对应的终端向具有第二用户标识的第二用户发送的第一解密文件传递请求,在该第一加密文件传递请求中包括第二用户标识、第一加密文件和第一用户对称密钥。
S204,根据第二用户标识获取第二用户公钥,并生成临时对称加密密码。
公钥(Public Key)与私钥(Private Key)是通过算法得到的一个密钥对(即一个公钥和一个私钥),公钥是密钥对中公开的部分,只要有需求即可取得并使用,私钥则是非公开的部分。通过这种算法得到的密钥对能保证在世界范围内是唯一的。使用这个密钥对的时候,如果用其中一个密钥加密一段数据,必须用另一个密钥解密。比如用公钥加密数据就必须用私钥解密,如果用私钥加密也必须用公钥解密,否则解密将不会成功。
其中,第二用户公钥是服务器预先生成第二用户对应的密钥对并保存的。
具体地,根据第二用户标识获取服务器中保存的第二用户对应的第二用户公钥。其中,第二用户对应的预先生成的密钥对可以有多个,并全部保存到服务器中,则此时获取的第二用户公钥可以是服务器预先生成的第二用户对应的公钥或者是用户提供的公钥。此时,服务器再通过密码学安全伪随机数生成器生成一个临时对称加密密码,该临时对称加密密码在使用完时就会删除。
S206,根据文件标识获取第一加密文件。
具体地,第一用户可以在服务器中存储多个加密文件,根据要向第二用户传递的加密文件的文件标识在第一用户标识的数据库中获取对应的第一加密文件。
S208,根据第一用户对称密钥解密第一加密文件得到原始文件,将原始文件使用临时对称加密密码加密,得到第二加密文件。
其中,原始文件是指未经加密的初始的数据文件。第二加密文件是经过临时加密密码加密原始文件得到的加密文件。具体地,使用第一用户对称密钥对第一加密文件进行解密,就得到了原始文件,此时,立刻使用临时对称加密密码对得到的原始文件进行加密,得到第二加密文件。
S210,利用第二用户公钥加密临时对称加密密码,得到加密密码文件。
具体地,第二用户公钥是当前可用的处于激活状态的,对临时对称加密密码使用第二用户公钥进行加密,得到加密密码文件,保证临时对称加密密码在服务器中的安全性,服务器会生成一个临时文件夹来存放第二加密文件和加密密码文件。
S212,根据第二用户标识向第二用户对应的终端发送第一加密文件传递请求,接收终端根据第一加密文件传递请求返回的第二用户对称密钥。
其中,第二用户标识是指第二用户对应的用户识别码,用户可以使用该识别码通过终端登录服务器。该第二用户标识可以是用户名、可以是电话号码、可以是邮箱号码、也可以是服务器分配给用户的识别码等。第二用户对称密钥是第二用户使用的用来加密原始文件的对称密钥。
具体地,第二用户使用第二用户识别码通过终端与服务器建立连接,此时,服务器根据第二用户标识向第二用户对应的终端发送第一加密文件传递请求,该传递请求携带有文件标识,当第二用户对应的终端接收到第一加密文件传递请求时,第二用户对应的终端接收到传递指令,所述传递指令携带有第二用户对称密钥。第二用户对应的终端就向服务器发送接收到的传递指令。服务器就接收到终端根据第一加密文件传递请求返回的传递指令,得到了第二用户对称密钥。
S214,根据第二用户公钥获取第二用户私钥,使用第二用户私钥对加密密码文件进行解密,得到临时对称加密密码。
其中,第二用户公钥和对应的第二用户私钥是用来加解密临时对称加密密码的,第二用户公钥和对应的第二用户私钥可以是服务器通过伪随机数生成器生成的,也可以是第二用户通过终端提供给服务器密码根据密码通过密钥导出函数生成,然后服务器将生成的第二用户公钥和对应的第二用户私钥提供给第二用户,服务器不会保存生成的第二用户公钥和对应的第二用户私钥。
具体地,服务器通过第二用户公钥得到对应的第二用户私钥,使用第二用户私钥对加密密码文件进行解密,得到临时对称加密密码。
S216,根据临时对称加密密码对第二加密文件进行解密得到原始文件,并使用第二用户对称密钥将原始文件进行加密,得到第三加密文件,并将第三加密文件保存。
具体地,使用临时对称加密密码对第二加密文件进行解密得到原始文件,并使用第二用户对称密钥将原始文件进行加密,得到第三加密文件,并将第三加密文件保存在第二用户标识的加密文件数据库中,该第二用户标识的加密文件数据库只能使用第二用户标识去获取数据库中存放的加密文件。当第二用户要使用加密文件时,第二用户对应的终端向服务器发送下载加密文件请求,该下载加密文件请求携带有第二用户标识和文件标识,服务器接收到下载加密文件请求就在第二用户标识的加密文件数据库找到对应的加密文件,传递给第二用户对应的终端。在上述实施例中,每次将文件进行加密和解密的操作之后,服务器立刻对使用过的内存空间写入随机字节或者随机比特进行覆盖,然后将内存空间进行释放。
上述文件共享方法中,通过接收第一加密文件传递请求,根据所述第二用户标识获取第二用户公钥,并生成临时对称加密密码。根据所述文件标识获取第一加密文件,根据所述第一用户对称密钥解密所述第一加密文件得到原始文件,将所述原始文件使用所述临时对称加密密码加密,得到第二加密文件。利用所述第二用户公钥加密所述临时对称加密密码,得到加密密码文件。根据所述第二用户标识向第二用户对应的终端发送第一加密文件传递请求,接收所述终端根据所述第一加密文件传递请求返回的第二用户对称密钥,根据所述第二用户公钥获取第二用户私钥,使用所述第二用户私钥对所述加密密码文件进行解密,得到临时对称加密密码。根据临时对称加密密码对第二加密文件进行解密得到所述原始文件,并使用所述第二用户对称密钥将所述原始文件进行加密,得到第三加密文件,并将第三加密文件保存。在该实施例中,服务器不会保存任何未加密的对称密钥和私钥,服务器要使用对称密钥和私钥时都需要用户提供。通过将第一解密文件解密得到原始文件,将原始文件使用临时加密密码进行加密,再将临时加密密码使用第二用户公钥加密,使得服务器不必长时间保存对称密钥,保证了在文件共享过程中文件和对称密钥的安全性。
在一个实施例中,如图3所示,在根据第二用户标识向第二用户对应的终端发送第一加密文件传递请求之后,还包括步骤:
S302,接收终端根据第一加密文件传递请求返回的拒绝接收指令。
具体地,当第二用户不想接收第一加密文件时,第二用户对应的终端接收到第一加密文件拒绝接收指令,向服务器发送第一加密文件拒绝接收指令,服务器接收第二用户对应的终端根据第一加密文件传递请求返回的拒绝接收指令。
S304,根据拒绝接收指令删除第二加密文件和加密密码文件,将第二加密文件和加密密码文件使用过的存储空间进行数据覆盖。
具体地,服务器根据接收到的拒绝接收指令删除保存在服务器中的第二加密文件和加密密码文件,并将二加密文件和加密密码文件使用过的存储空间写入随机字节或随机比特进行覆盖。
上述实施例中,当第二用户拒绝接收第一加密文件时,删除服务器中保存的第二加密文件和加密密码文件,并将使用过的存储空间进行数据覆盖,保证了文件在第二用户拒绝接收之后的安全性。
在一个实施例中,如图4所示,第一加密文件的生成步骤包括:
S402,获取大数据,将大数据写入数据缓存块中,并将大数据按照数据组成类型进行分块,得到数据子块。
其中,大数据是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。数据组成类型是指大数据可能会由不同的类型来构成,比如,基因组大数据可以包括记录DNA序列数据的部分、数据质量的部分、以及数据注释信息等的部分。
具体地,获取终端传输的大数据,按照大数据的数据量大小将大数据写入相同数据容量的数据缓存块中,并将大数据按照数据组成类型进行分块,得到数据子块。例如对于普通DNA测序数据,可以分为DNA序列数据子块、测序质量数据子块、注释数据子块三个部分。
在一个实施例中,当写入的数据缓存块比大数据的数据量大时,则使用预先设置好的特殊数值补充到大数据中,使之和数据缓存块的数据容量相同,可以节约内存空间,并且方便后续的处理。
在一个实施例中,当写入的数据缓存块比大数据的数据量大时,记录实际使用的数据缓存块中的容量,方便后续的处理。
在一个实施例中,当写入的数据缓存块比大数据的数据量大时,更改数据缓存的数据容量大小,使之和大数据的数据量大小相同,可以节约内存空间,并且方便后续的处理。
S404,根据数据子块建立对应的数据模型,根据数据模型和压缩算法将数据子块进行压缩。
其中,数据模型是指统计学及概率论范畴内的统计模型,用来描述数据结构、数据操作和数据约束。比如,根据基因组大数据可以确定其中字符表大小、字符分布比例、马尔可夫模型级数的选择等,并根据上述得到的参数来构建数据模型。
具体地,服务器根据数据子块的内容建立对应的数据模型,然后根据数据模型和压缩算法将数据子块进行压缩。其中压缩算法可以是自适应型区间编码。
S406,获取第一用户对称密钥,使用第一用户对称密钥将压缩后的数据子块进行加密,将加密的数据子块进行封装,将封装后的数据子块写入输出文档中。
具体地,服务器获取第一用户对应的终端发送的第一用户对称密钥,使用第一用户对称密钥将压缩后的数据子块进行加密,将加密的数据子块进行封装,将封装后的数据子块写入输出文档中。
在一个实施例中,服务器获取到第一用户对应的终端发送的密码,根据该密码使用密钥导出函数,生成第一用户对称密钥。其中,密钥导出函数可以通过一个较短的字符串(例如一个密码)生成可以用于加密的密钥的函数,当用户不能提供密钥的情况下,可以根据用户提供的密码生成用于加密的密钥,方便用户的使用。
S408,当数据子块全部写入输出文档中时,获取加密的文件头和/或文件尾信息,将加密的文件头和/或文件尾信息写入输出文档中对应的预设位置,得到第一加密文件,其中,文件头和/或文件尾信息包括第一用户对称密钥对应的对称密钥校验信息。
其中,对称密钥校验信息可以是一个长度足够长(例如,可以是大于或等于1024比特,也可以是大于或等于4096比特)的随机数和通过密码哈希函数计算出的随机数对应的哈希值。也可以是通过密码哈希函数计算出的第一用户对称密钥对应的哈希值
具体地,当数据子块全部写入输出文档中时,此时在输出文档中预先设置好存储文件头和/或文件尾信息的位置。获取利用第一用户对称密钥加密的文件头和/或文件尾信息,将加密的文件头和/或文件尾信息写入输出文档中对应的预设位置,得到第一加密文件。其中,文件头和/或文件尾信息可以包括第一用户对称密钥对应的对称密钥校验信息,还可以包括输出文件中数据长度信息、原始文件中的原始数据的校验码信息、加密后的数据的校验码信息、初始向量信息和上述信息在文件头和/或文件尾的具体位置信息等。
在一个实施例中,获取到的是加密的文件头信息,则在输出文档中预先设置好存储文件头信息的位置,将得到的文件头信息写入对应的预设位置,得到第一加密文件,其中,预设位置可以是连续的,也可以是间隔的。
在一个实施例中,获取到的是加密的文件尾信息,则在输出文档中预先设置好存储文件尾信息的位置,将得到的文件尾信息写入对应的预设位置,得到第一加密文件。其中,预设位置可以是连续的,也可以是间隔的。
在一个实施例中,获取到的是加密的文件头和文件尾信息,则在输出文档中预先设置好存储文件头和文件尾信息的位置,将得到的文件头和文件尾信息写入对应的预设位置,得到第一加密文件。其中文件头和文件尾信息中包括对称密钥校验信息和对称密钥校验信息对应的位置信息。具体的,文件头信息中可以包括对称密钥校验信息,或者文件尾信息中可以包括对称密钥校验信息,或者文件头信息中可以包括对称密钥校验信息的一部分,文件尾信息中可以包括对称密钥校验信息的另一部分。使用位置信息记录对称密钥校验信息在文件头和/或文件尾信息中的具体位置和顺序,将加密的文件头和文件尾信息写入对应的预设位置,得到第一加密文件。例如,对于一个500字节的文件头位置, 400字节的文件尾位置,可以在文件头的第89字节和99字节写入对称密钥校验信息的一部分,将另一部分的对称密钥校验信息写入文件尾的第101字节、128 字节和169字节中,然后使用位置信息记录对称密钥校验信息在文件头和/或文件尾信息中的具体位置和顺序,也将该位置信息记录在文件头和文件尾信息中,将加密的文件头和文件尾信息写入对应的预设位置,得到第一加密文件。
S410,将使用过的数据缓存块进行数据覆盖并释放内存。
具体地,服务器将使用过的数据缓存块写入随机字节或随机比特进行覆盖,然后释放内存,进一步保证文件的安全性。
在一个实施例中,在第一用户对应的终端中采用上述步骤S402到S410的方法生成第一加密文件,第一用户对应的终端将生成的第一加密文件传递给服务器,保证了大数据在传递到服务器的过程中的安全性。
上述实施例中,通过获取大数据,将大数据写入数据缓存块中,并将大数据按照数据组成类型进行分块,得到数据子块,根据数据子块建立对应的数据模型,根据数据模型和压缩算法将数据子块进行压缩。获取第一用户对称密钥,使用第一用户对称密钥将压缩后的数据子块进行加密,将加密的数据子块进行封装,将封装后的数据子块写入输出文档中。当数据子块全部写入输出文档中时,获取加密的文件头和/或文件尾信息,将加密的文件头和/或文件尾信息写入输出文档中对应的预设位置,得到第一加密文件。将使用过的数据缓存块进行数据覆盖并释放内存。将大数据分块进行压缩加密,增加了破解第一加密文件的难度,进一步保证了生成的第一加密文件的安全性。
在一个实施例中,如图5所示,步骤S208,即根据第一用户对称密钥对第一加密文件进行解密,将解密结果使用临时对称加密密码加密,得到第二加密文件,包括步骤:
S502,获取第一加密文件的封装结构,根据封装结构获取第一加密文件中加密的数据子块。
具体地,获取第一加密文件压缩加密之后的封装结构,根据第一加密文件在压缩加密之后的封装结构,依次读取第一加密文件中封装的加密数据子块。
S504,使用第一用户对称密钥对数据子块进行解密,使用临时对称加密密码对解密的数据子块进行加密,得到第二加密文件。
具体地,使用第一用户对称密钥对读取的加密数据子块进行解密,然后离开将解密的数据子块使用临时对称加密密码进行加密。当所有的加密数据子块都被依次使用第一用户对称密钥对数据子块进行解密再使用临时对称加密密码对解密的数据子块进行加密完成时,就得到了第二加密文件。
上述实施例中,通过获取第一加密文件的封装结构,根据封装结构获取第一加密文件中加密的数据子块,使用第一用户对称密钥对数据子块进行解密,使用临时对称加密密码对解密的数据子块进行加密,得到第二加密文件。使得第一加密文件在解密时只会将一部分的内容即数据子块进行解密,并且立即进行了加密,而不是整体进行解密,既保证了解加密时的速度,又增加了文件在破解过程中的难度,提高了文件的安全性。
在一个实施例中,如图6所示,一种文件共享方法,还包括步骤:
S602,获取第一用户对称密钥。
具体地,服务器获取第一用户对称密钥。
S604,生成第三对称密钥,使用第三对称密钥加密第一用户对称密钥。
具体地,服务器生成第三对称密钥,使用第三对称密钥加密第一用户对称密钥,然后将生成的第三对称密钥传递给第一用户对应的终端并删除服务器中生成的第三对称密钥,以使第一用户得到第三对称密钥,第一用户可以将第三对称密钥在线下进行保存,然后将终端中的第三对称密钥删除。比如:第一用户对应的终端根据第三对称密钥生成一个二维码,用户打印该二维码进行保存,然后将终端中的二维码删除。此时,在线上不存在第三对称密钥,则即使服务器被破解,得到的是加密的第一用户对称密钥和第一加密文件,依然无法得到第一加密文件的具体内容,保证的了第一用户对称密钥和第一加密文件在服务器中存储的安全性。
在一个实施例中,服务器获取第一用户对应的终端发送的指定密码,根据指定密码和密钥导出函数生成第三对称密钥,使用第三对称密钥加密第一用户对称密钥,能够满足用户的需求。
在一个实施例中,服务器通过伪随机数生成器生成第三对称密钥,使用第三对称密钥加密第一用户对称密钥。
S606,将加密后的第一用户对称密钥保存到对称密钥数据库中。
具体地,服务器预先设置好第一用户对应的对称密钥数据库,将加密后的第一用户对称密钥保存到对称密钥数据库中。第一用户可能会有多个对应的对称密钥,将所有的第一用户对应的对称密钥都加密保存在第一用户对应的对称密钥数据库。
S608,生成第一用户公钥和对应的第一用户私钥,第一用户公钥处于激活状态,将第一用户公钥保存到公钥数据库中。
具体地,服务器预先设置好公钥数据库和对应的私钥数据库,生成第一用户公钥和对应的第一用户私钥,该第一用户公钥处于激活状态,即是当前可用的,将第一用户公钥保存到公钥数据库中。
S610,生成第四对称密钥并计算第一用户公钥的哈希值,使用第四对称密钥加密第一用户私钥和第一用户公钥的哈希值,将加密后的第一用户私钥和第一用户公钥的哈希值关联保存到私钥数据库中。
具体地,服务器生成第四对称密钥,并使用密码哈希函数计算第一用户公钥的哈希值,使用第四对称密钥加密第一用户私钥和第一用户公钥的哈希值,将加密后的第一用户私钥和加密后的第一用户公钥的哈希值关联保存到私钥数据库中。当第一用户有多个私钥和对应的公钥的哈希值,则将所有的第一用户的私钥和对应的公钥的哈希值都加密之后存储在私钥数据库。
在上述实施例中,通过使用第三对称密钥和第三对称密钥加密第一用户对应密钥和第一用户私钥,然后将加密后的第一用户对应密钥和第一用户私钥保存到对应的数据库中,服务器不会保存第三对称密钥和第四对称密钥,服务器将生成的第三对称密钥和第四对称密钥提供给用户对应的终端,让用户自己进行保存,则服务器存储的只有加密的密钥和加密文件,即使服务器也查看不了用户存储在服务器中加密文件的具体的内容,服务器必须要用户提供第三对称密钥才能对加密文件进行解密,即保证了密钥在服务器存储时的安全性,也进一步保证了第一加密文件在服务器中存储的安全性。
在一个实施例中,如图7所示,对第一加密文件的解密步骤,包括步骤:
S702,获取对第一加密文件的解密请求,解密请求携带有第三对称密钥。
其中,第三对称密钥是对加密的第一用户对称密钥进行解密的密钥。该第三对称密钥可以是一个存储在终端的二进制文档,或者可以是经过16进行编码过的仅仅包含ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)字符的纯文本文档,或者是线下存储的二维码图像,终端通过获取二维码图像进行扫描得到第三对称密钥。
具体地,当第一用户要对服务器中存储的第一加密文件进行解密时,第一用户对应的终端向服务器发送对第一加密文件的解密请求,解密请求携带有第三对称密钥。
S704,获取对称密钥数据库中加密的当前对称密钥,使用第三对称密钥对加密的当前对称密钥进行解密,得到当前对称密钥。
具体地,对称密钥数据库可能存储多个加密的对称密钥,服务器获取对称密钥数据库中加密的当前对称密钥,即获取对称密钥数据库中存储的加密的对称密钥中的一个。使用第三对称密钥对加密的当前对称密钥进行解密,得到当前对称密钥。
S706,获取第一加密文件中的文件头和/或文件尾信息,根据当前对称密钥对文件头和/或文件尾信息进行解密,得到对称密钥校验信息。
具体地,获取第一加密文件中的加密的文件头和/或文件尾信息,使用当前对称密钥对加密的文件头和/或文件尾信息进行解密,得到了对称密钥校验信息,其中对称密钥校验信息是第一用户对称密钥对应的对称密钥校验信息。
S708,若对称密钥校验信息是随机数和所述随机数对应的第一哈希值,则获取对称密钥校验信息中的随机数,计算随机数的第二哈希值;或者若对称密钥校验信息是第一用户对称密钥对应的第一哈希值,则计算当前对称密钥的第二哈希值。
其中,随机数可以是通过伪随机数生成器生成的,其长度可以是大于或等于1024比特,也可以是大于或者等于4096比特。
具体地,若对称密钥校验信息是随机数和所述随机数对应的第一哈希值,则获取对称密钥校验信息中的随机数,利用密码哈希函数计算出该随机数的第二哈希值;或者,若对称密钥校验信息是第一用户对称密钥对应的第一哈希值,则通过密码哈希函数计算当前对称密钥的第二哈希值。
S710,当第一哈希值和第二哈希值一致时,则使用当前对称密钥解密第一加密文件。
具体地,当第一哈希值与第二哈希值相同时,说明当前对称密钥为第一用户对称密钥,则使用当前对称密钥解密第一加密文件,就得到了原始文件。
在一个实施例中,当第一哈希值和第二哈希值不一致时,则返回步骤S704 继续执行,直到第一哈希值和第二哈希值一致,则使用当前对称密钥解密第一加密文件。
在一个实施例中,当对称密钥库中所有存储的对称密钥对应的哈希值和第一哈希值不一致时,则说明该第一加密文件的第一用户对称密钥没有存储在对称密钥库中,则服务器向第一用户对应的终端发送获取第一用户对称密钥的请求,第一用户对应的终端根据该请求获取含有对称密钥的文档,或者通过采集设备读取含有对称密钥的二维码,或者获取用户输入的密码并根据密钥导出函数生成对称密钥。服务器获取第一用户对应的终端返回的第一用户对称密钥,根据该第一用户对称密钥解密第一加密文件。
上述实施例中,通过获取对第一加密文件的解密请求,解密请求携带有第三对称密钥,获取对称密钥数据库中加密的当前对称密钥,使用第三对称密钥对加密的当前对称密钥进行解密,得到当前对称密钥。获取第一加密文件中的文件头和/或文件尾信息,根据当前对称密钥对文件头和/或文件尾信息进行解密,得到对称密钥校验信息若对称密钥校验信息是随机数和所述随机数对应的第一哈希值,则获取对称密钥校验信息中的随机数,计算随机数的第二哈希值;或者若对称密钥校验信息是第一用户对称密钥对应的第一哈希值,则计算当前对称密钥的第二哈希值。当第一哈希值和第二哈希值一致时,则使用所述当前对称密钥解密第一加密文件,使得保存在服务器中的加密文件能够解密,使用户可以使用解密后的文件。
在一个实施例中,如图8所示,步骤S214,即根据第二用户公钥获取第二用户私钥,包括步骤:
S802,根据第二用户公钥计算第三哈希值。
具体地,根据第二用户公钥使用密码哈希函数计算哈希值,该第三哈希值就是第二用户私钥对应的哈希值。
S804,获取第四对称密钥,获取第二用户私钥数据库中加密的第二用户私钥和对应的加密的第二用户公钥的哈希值,使用第四对称密钥解密加密的第二用户公钥的哈希值,得到第四哈希值。
其中,第四对称密钥是对第二用户私钥和对应的哈希值进行加密的对称密钥。第四对称密钥可以和第三对称密钥相同,也可以和第三对称密钥不同。第二用户私钥数据库是预设设置好的用来存储私钥和对应的公钥的哈希值的数据库,第二用户私钥数据库可能存储有多个第二用户对应的私钥和对应的哈希值。
具体地,获取第四对称密钥。获取第二用户私钥数据库中任意一个加密的第二用户私钥和对应的加密的第二用户公钥的哈希值,使用第四对称密钥解密加密的哈希值,得到第四哈希值。
S806,当第三哈希值与第四哈希值一致时,使用第四对称密钥解密加密的第二用户私钥,得到第二用户私钥。
具体地,当第三哈希值与第四哈希值一致时,说明找到了第二用户公钥对应的第二用户私钥,则使用第四对称密钥解密加密的第二用户私钥,得到第二用户私钥。当第三哈希值与第四哈希值不一致,说明第四哈希值对应的私钥不是第二用户公钥对应的第二用户私钥,则返回步骤S804继续执行,直到找到与第三哈希值一致第四哈希值,则使用第四对称密钥解密第四哈希值对应的加密的第二用户私钥,得到第二用户私钥。
上述实施例中,通过根据第二用户公钥计算哈希值,获取第四对称密钥,获取第二用户私钥数据库中加密的第二用户私钥和对应的加密的第二用户公钥的哈希值,使用第四对称密钥解密加密的第二用户公钥的哈希值,得到第四哈希值。当第三哈希值与第四哈希值一致时,使用第四对称密钥解密加密的第二用户私钥,得到第二用户私钥,使服务器可以根据公钥得到私钥,方边后续的处理。
在一个具体地实施例中,用户A要对基因组大数据进行共享,此时,为保证基因组大数据不被泄露,先对其进行加密。首先终端将基因组大数据依次按照顺序读取到大小为K的数据缓存块中。若基因组大数据的大小不满K,则使用预先设定好的特殊数据将基因组大数据的数据长度补齐为K。将数据缓存块中的基因组大数据按照其数据组成分为不同的数据子块,例如对于普通的DNA 测序数据,那么可以分为DNA序列数据子块、测序质量数据子块、注释数据子块三个部分。在不同的数据子块上建立处不同的数据模型,可以确定字符表的大小、字符分布比例、马尔可夫模型级数的选择,并最终根据上述参数构建数据模型,以便于对不同的子块进行更加有效的压缩。使用压缩算法自适应型区间编码和建立的数据模型对数据子块进行压缩。将压缩后的数据子块立刻被对称加密算法加密比如AES(高级加密标准,Advanced Encryption Standard)或者 SM4算法。然后对加密后的数据子块进行封装,将封装后的数据子块写入输出文档。当整个输出文档被处理完毕后,写入特定加密后的文件头和/或文件尾信息。当每次的加密操作完成后,对内存中使用过的空间写入随机字节或者随机比特进行覆盖并释放内存。
用户A通过账号登录到安全基因组大数据文件存储和共享系统,系统预先在对应的服务器建立了对应的密钥数据库和用户A账号对应的加密文件数据库,其中密钥数据库包括:私钥、公钥和对称密钥数据库。系统会在用户第一次登录时自动生成一对公钥和私钥,并产生对称密钥。此时,对产生的私钥再使用对称密钥进行加密,对对称密钥再使用对称密钥进行加密,然后将公钥、加密后的私钥和加密后的对称密钥存入对应的数据库中。
当用户要将加密的文件共享时,先将加密的文件通过系统存入到服务器用户A账号对应的加密文件数据库中,并向服务器发送文件传递请求,该传递请求携带有用户B的账号标识,要共享的加密文件X,和对加密文件进行解密的对称密钥K1。此时服务器将获取用户B存储在服务器中处于激活状态的公钥,此时,服务器在通过密码学安全伪随机数生成器生成一个临时的对称加密密码 K2,使用对称密钥K1对要共享的加密文件X进行解密,同时利用临时的对称加密密码K2对加密的文件重新进行加密,并得到一个新的文件X1。服务器在对临时的对称加密密码K2使用用户B的公钥进行加密,得到加密密码文件。服务器将生成的新的文件X1和加密密码文件存入缓存位置。当用户B通过账号登录到系统时,服务器向用户B发送提示信息,是否接收用户A传递的加密文件 X,若用户B选择接收加密文件X,则向服务器发送用户B的用于该加密文件X 在接收后在用户B的账户内加密存储时使用的对称加密密钥K3和对私钥加密的对称密钥。当服务器获取到用户B的对称加密密钥K3和对私钥加密的对称密钥时,首先使用对私钥加密的对称密钥获取用户B的公钥对应的私钥,然后对加密密码文件进行解密,再将解密的结果使用对称加密密钥K3进行加密,当加密完成时生成一个新的加密文件,将该加密文件保存在服务器中用户B的账号对应的加密文件数据库中,当用户B在终端中通过用户B的账号登录到系统中下载加密文件时,服务器就将保存的加密文件传递给用户B对应的终端。在该过程中,只要有对文件的解密和加密操作服务器就在操作完成之后立即对内存中使用过的空间进行写入随机字节或随机比特进行覆盖,然后释放内存。在整个共享过程中,用户A的K1不用提供给用户B,由用户A的对称加密密钥K1 加密过的加密文件X最终变成由用户B的对称加密密钥K3加密过的文件。在整个过程中系统不保存任何用户的任何没有加密过的对称密钥和私钥,因此在没有用户的授权的情况下,即在用户不提供解密加密过的对称密钥和私钥的密钥的情况下,系统对于任何用户的任何加密内容是不可见的,提高了用户共享过程中和系统中存储的加密文件和密钥的安全性。
应该理解的是,虽然图2-8的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-8中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图9所示,提供了一种文件共享装置900,包括:请求接收模块902、第二用户公钥获取模块904、第一文件获取模块906、第二文件获取模块908、密码文件获取模块910、第二用户对称密钥获取模块912、加密密码获取模块914和文件共享模块916,其中:
请求接收模块902,用于接收第一加密文件传递请求,第一加密文件传递请求包括第二用户标识、文件标识和第一用户对称密钥。
第二用户公钥获取模块904,用于根据第二用户标识获取第二用户公钥,并生成临时对称加密密码。
第一文件获取模块906,用于根据文件标识获取第一加密文件。
第二文件获取模块908,用于根据第一用户对称密钥解密第一加密文件得到原始文件,将原始文件使用临时对称加密密码加密,得到第二加密文件。
密码文件获取模块910,用于利用第二用户公钥加密临时对称加密密码,得到加密密码文件。
第二用户对称密钥获取模块912,用于根据第二用户标识向第二用户对应的终端发送第一加密文件传递请求,接收终端根据第一加密文件传递请求返回的第二用户对称密钥。
加密密码获取模块914,用于根据第二用户公钥获取第二用户私钥,使用第二用户私钥对加密密码文件进行解密,得到临时对称加密密码。
文件共享模块916,用于根据临时对称加密密码对第二加密文件进行解密得到原始文件,并使用第二用户对称密钥将原始文件进行加密,得到第三加密文件,并将第三加密文件保存。
在上述实施例中,通过请求接收模块902接收传递请求,在第二用户公钥获取模块904中得到第二用户公钥,在第一文件获取模块906得到第一加密文件,在第二文件获取模块908中得到第二加密文件,通过密码文件获取模块910 得到加密密码文件,在第二用户对称密钥获取模块912获取第二用户对称密钥,在加密密码获取模块914得到临时加密密码,最后在文件共享模块916中根据临时对称加密密码对第二加密文件进行解密得到原始文件,并使用第二用户对称密钥将原始文件进行加密,得到第三加密文件,并将第三加密文件保存,提高了加密文件和密钥在文件共享过程中的安全性。
在一个实施例中,第二用户对称密钥获取模块912,还包括:
指令接收模块1002,用于接收终端根据第一加密文件传递请求返回的拒绝接收指令。
删除模块1004,用于根据拒绝接收指令删除第二加密文件和加密密码文件,将第二加密文件和加密密码文件使用过的存储空间进行数据覆盖。
在一个实施例中,一种文件共享装置900,包括:
划分子块模块1102,用于获取大数据,将大数据写入数据缓存块中,并将大数据按照数据组成类型进行分块,得到数据子块。
压缩模块1104,用于根据数据子块建立对应的数据模型,根据数据模型和压缩算法将数据子块进行压缩。
加密模块1106,获取第一用户对称密钥,使用第一用户对称密钥将压缩后的数据子块进行加密,将加密的数据子块进行封装,将封装后的数据子块写入输出文档中。
第一加密文件生成模块1108,用于当数据子块全部写入输出文档中时,获取加密的文件头和/或文件尾信息,将加密的文件头和/或文件尾信息写入输出文档中对应的预设位置,得到第一加密文件,其中,所述文件头和/或文件尾信息包括第一用户对称密钥对应的对称密钥校验信息。
内存释放模块1110,用于将使用过的数据缓存块进行数据覆盖并释放内存。
在一个实施例中,第二文件获取模块908,包括:
数据子块获取模块1202,用于获取第一加密文件的封装结构,根据封装结构获取第一加密文件中加密的数据子块。
第二加密文件得到模块1204,用于使用第一用户对称密钥对数据子块进行解密,使用临时对称加密密码对解密的数据子块进行加密,得到第二加密文件。
在一个实施例中,一种文件共享装置900,还包括:
第一用户对称密钥获取模块1302,用于获取第一用户对称密钥。
对称密钥加密模块1304,用于生成第三对称密钥,使用第三对称密钥加密第一用户对称密钥。
对称密钥保存模块1306,用于将加密后的第一用户对称密钥保存到对称密钥数据库中。
生成公钥和私钥模块1308,用于生成第一用户公钥和对应的第一用户私钥,第一用户公钥处于激活状态,将第一用户公钥保存到公钥数据库中。
私钥保存模块1310,用于生成第四对称密钥并计算第一用户公钥的哈希值,使用第四对称密钥加密第一用户私钥和第一用户公钥的哈希值,将加密后的第一用户私钥和加密后的第一用户公钥的哈希值关联保存到私钥数据库中。
在一个实施例中,一种文件共享装置900,包括:
解密请求获取模块1402,用于获取对第一加密文件的解密请求,解密请求携带有第三对称密钥。
当前对称密钥获取模块1404,用于获取对称密钥数据库中加密的当前对称密钥,使用第三对称密钥对加密的当前对称密钥进行解密,得到当前对称密钥。
校验信息得到模块1406,用于获取第一加密文件中的文件头和/或文件尾信息,根据当前对称密钥对文件头和/或文件尾信息进行解密,得到对称密钥校验信息。
校验模块1408,用于若对称密钥校验信息是随机数和所述随机数对应的第一哈希值,则获取对称密钥校验信息中的随机数,计算随机数的第二哈希值;或者若对称密钥校验信息是第一用户对称密钥对应的第一哈希值,则计算当前对称密钥的第二哈希值。
解密模块1410,用于当第一哈希值和第二哈希值一致时,则使用所述当前对称密钥解密第一加密文件。
在一个实施例中,加密密码获取模块914,包括:
第二用户私钥查找模块,用于根据第二用户公钥计算第三哈希值;获取第四对称密钥,获取第二用户私钥数据库中加密的第二用户私钥和对应的加密的哈希值,使用第四对称密钥解密加密的哈希值,得到第四哈希值。
第二用户私钥得到模块,用于当第三哈希值与第四哈希值一致时,使用第四对称密钥解密加密的第二用户私钥,得到第二用户私钥。
关于文件共享装置的具体限定可以参见上文中对于文件共享方法的限定,在此不再赘述。上述文件共享装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图16所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储密钥。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种文件共享方法。
本领域技术人员可以理解,图16中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:接收第一加密文件传递请求,第一加密文件传递请求包括第二用户标识、文件标识和第一用户对称密钥;根据第二用户标识获取第二用户公钥,并生成临时对称加密密码;根据文件标识获取第一加密文件;根据第一用户对称密钥解密第一加密文件得到原始文件,将原始文件使用临时对称加密密码加密,得到第二加密文件;利用第二用户公钥加密临时对称加密密码,得到加密密码文件;根据第二用户标识向第二用户对应的终端发送第一加密文件传递请求,接收终端根据第一加密文件传递请求返回的第二用户对称密钥;根据第二用户公钥获取第二用户私钥,使用第二用户私钥对加密密码文件进行解密,得到临时对称加密密码;根据临时对称加密密码对第二加密文件进行解密得到原始文件,并使用第二用户对称密钥将原始文件进行加密,得到第三加密文件,并将第三加密文件保存。
在一个实施例中,处理器执行计算机程序时还使得实现以下步骤:接收终端根据第一加密文件传递请求返回的拒绝接收指令;根据拒绝接收指令删除第二加密文件和加密密码文件,将第二加密文件和加密密码文件使用过的存储空间进行数据覆盖。
在一个实施例中,处理器执行计算机程序时还使得实现以下步骤:获取大数据,将大数据写入数据缓存块中,并将大数据按照数据组成类型进行分块,得到数据子块;根据数据子块建立对应的数据模型,根据数据模型和压缩算法将数据子块进行压缩;获取第一用户对称密钥,使用第一用户对称密钥将压缩后的数据子块进行加密,将加密的数据子块进行封装,将封装后的数据子块写入输出文档中;当数据子块全部写入输出文档中时,获取加密的文件头和/或文件尾信息,将加密的文件头和/或文件尾信息写入输出文档中对应的预设位置,得到第一加密文件,其中,所述文件头和/或文件尾信息包括第一用户对称密钥对应的对称密钥校验信息;将使用过的数据缓存块进行数据覆盖并释放内存。
在一个实施例中,处理器执行计算机程序时还使得实现以下步骤:获取第一加密文件的封装结构,根据封装结构获取第一加密文件中加密的数据子块;使用第一用户对称密钥对数据子块进行解密,使用临时对称加密密码对解密的数据子块进行加密,得到第二加密文件。
在一个实施例中,处理器执行计算机程序时还使得实现以下步骤:获取第一用户对称密钥;生成第三对称密钥,使用第三对称密钥加密第一用户对称密钥;将加密后的第一用户对称密钥保存到对称密钥数据库中;生成第一用户公钥和对应的第一用户私钥,第一用户公钥处于激活状态,将第一用户公钥保存到公钥数据库中;生成第四对称密钥并计算第一用户公钥的哈希值,使用第四对称密钥加密第一用户私钥和第一用户公钥的哈希值,将加密后的第一用户私钥和加密后的第一用户公钥的哈希值关联保存到私钥数据库中。
在一个实施例中,处理器执行计算机程序时还使得实现以下步骤:获取对第一加密文件的解密请求,解密请求携带有第三对称密钥;获取对称密钥数据库中加密的当前对称密钥,使用第三对称密钥对加密的当前对称密钥,得到当前对称密钥;获取第一加密文件中的文件头和/或文件尾信息,根据当前对称密钥对文件头和/或文件尾信息进行解密,得到对称密钥校验信息;若对称密钥校验信息是随机数和所述随机数对应的第一哈希值,则获取对称密钥校验信息中的随机数,计算随机数的第二哈希值;或者若对称密钥校验信息是第一用户对称密钥对应的第一哈希值,则计算当前对称密钥的第二哈希值。当第一哈希值和第二哈希值一致时,则使用所述当前对称密钥解密第一加密文件。
在一个实施例中,处理器执行计算机程序时还使得实现以下步骤:根据第二用户公钥计算第三哈希值;获取第四对称密钥,获取所述第二用户私钥数据库中加密的第二用户私钥和对应的加密的第二用户公钥的哈希值,使用所述第四对称密钥解密所述加密的第二用户公钥的哈希值,得到第四哈希值;当所述第三哈希值与所述第四哈希值一致时,使用第四对称密钥解密加密的第二用户私钥,得到第二用户私钥。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:接收第一加密文件传递请求,第一加密文件传递请求包括第二用户标识、文件标识和第一用户对称密钥;根据第二用户标识获取第二用户公钥,并生成临时对称加密密码;根据文件标识获取第一加密文件;根据第一用户对称密钥解密第一加密文件得到原始文件,将原始文件使用临时对称加密密码加密,得到第二加密文件;利用第二用户公钥加密临时对称加密密码,得到加密密码文件;根据第二用户标识向第二用户对应的终端发送第一加密文件传递请求,接收终端根据第一加密文件传递请求返回的第二用户对称密钥;根据第二用户公钥获取第二用户私钥,使用第二用户私钥对加密密码文件进行解密,得到临时对称加密密码;根据临时对称加密密码对第二加密文件进行解密得到原始文件,并使用第二用户对称密钥将原始文件进行加密,得到第三加密文件,并将第三加密文件保存。
在一个实施例中,计算机程序被处理器执行时还使得实现以下步骤:接收终端根据第一加密文件传递请求返回的拒绝接收指令;根据拒绝接收指令删除第二加密文件和加密密码文件,将第二加密文件和加密密码文件使用过的存储空间进行数据覆盖。
在一个实施例中,计算机程序被处理器执行时还使得实现以下步骤:获取大数据,将大数据写入数据缓存块中,并将大数据按照数据组成类型进行分块,得到数据子块;根据数据子块建立对应的数据模型,根据数据模型和压缩算法将数据子块进行压缩;获取第一用户对称密钥,使用第一用户对称密钥将压缩后的数据子块进行加密,将加密的数据子块进行封装,将封装后的数据子块写入输出文档中;当数据子块全部写入输出文档中时,获取加密的文件头和/或文件尾信息,将加密的文件头和/或文件尾信息写入输出文档中对应的预设位置,得到第一加密文件,其中,所述文件头和/或文件尾信息包括第一用户对称密钥对应的对称密钥校验信息;将使用过的数据缓存块进行数据覆盖并释放内存。
在一个实施例中,计算机程序被处理器执行时还使得实现以下步骤:获取第一加密文件的封装结构,根据封装结构获取第一加密文件中加密的数据子块;使用第一用户对称密钥对数据子块进行解密,使用临时对称加密密码对解密的数据子块进行加密,得到第二加密文件。
在一个实施例中,计算机程序被处理器执行时还使得实现以下步骤:获取第一用户对称密钥;生成第三对称密钥,使用第三对称密钥加密第一用户对称密钥;将加密后的第一用户对称密钥保存到对称密钥数据库中;生成第一用户公钥和对应的第一用户私钥,第一用户公钥处于激活状态,将第一用户公钥保存到公钥数据库中;生成第四对称密钥并计算第一用户公钥的哈希值,使用第四对称密钥加密第一用户私钥和第一用户公钥的哈希值,将加密后的第一用户私钥和加密后的第一用户公钥的哈希值关联保存到私钥数据库中。
在一个实施例中,计算机程序被处理器执行时还使得实现以下步骤:获取对第一加密文件的解密请求,解密请求携带有第三对称密钥;获取对称密钥数据库中加密的当前对称密钥,使用第三对称密钥对加密的当前对称密钥进行解密,得到当前对称密钥;获取第一加密文件中的文件头和/或文件尾信息,根据当前对称密钥对文件头和/或文件尾信息进行解密,得到对称密钥校验信息;若对称密钥校验信息是随机数和所述随机数对应的第一哈希值,则获取对称密钥校验信息中的随机数,计算随机数的第二哈希值;或者若对称密钥校验信息是第一用户对称密钥对应的第一哈希值,则计算当前对称密钥的第二哈希值;当第一哈希值和第二哈希值一致时,则使用所述当前对称密钥解密第一加密文件。
在一个实施例中,计算机程序被处理器执行时还使得实现以下步骤:根据第二用户公钥计算第三哈希值;获取第四对称密钥,获取所述第二用户私钥数据库中加密的第二用户私钥和对应的加密的第二用户公钥的哈希值,使用所述第四对称密钥解密所述加密的第二用户公钥的哈希值,得到第四哈希值;当所述第三哈希值与所述第四哈希值一致时,使用第四对称密钥解密加密的第二用户私钥,得到第二用户私钥。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程 ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限, RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步 DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM (ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus) 直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种文件共享方法,所述方法包括:
接收第一加密文件传递请求,所述第一加密文件传递请求包括第二用户标识、文件标识和第一用户对称密钥;
根据所述第二用户标识获取第二用户公钥,并生成临时对称加密密码;
根据所述文件标识获取第一加密文件;
根据所述第一用户对称密钥解密所述第一加密文件得到原始文件,将所述原始文件使用所述临时对称加密密码加密,得到第二加密文件;
利用所述第二用户公钥加密所述临时对称加密密码,得到加密密码文件;
根据所述第二用户标识向第二用户对应的终端发送第一加密文件传递请求,接收所述终端根据所述第一加密文件传递请求返回的第二用户对称密钥;
根据所述第二用户公钥获取第二用户私钥,使用所述第二用户私钥对所述加密密码文件进行解密,得到临时对称加密密码;
根据临时对称加密密码对第二加密文件进行解密得到所述原始文件,并使用所述第二用户对称密钥将所述原始文件进行加密,得到第三加密文件,并将所述第三加密文件保存。
2.根据权利要求1所述的方法,其特征在于,在所述根据所述第二用户标识向第二用户对应的终端发送第一加密文件传递请求之后,还包括:
接收所述终端根据所述第一加密文件传递请求返回的拒绝接收指令;
根据所述拒绝接收指令删除所述第二加密文件和所述加密密码文件,将所述第二加密文件和所述加密密码文件使用过的存储空间进行数据覆盖。
3.根据权利要求1所述的方法,其特征在于,所述第一加密文件的生成步骤包括:
获取大数据,将所述大数据写入数据缓存块中,并将所述大数据按照数据组成类型进行分块,得到数据子块;
根据所述数据子块建立对应的数据模型,根据所述数据模型和压缩算法将所述数据子块进行压缩;
获取第一用户对称密钥,使用所述第一用户对称密钥将压缩后的数据子块进行加密,将加密的数据子块进行封装,将封装后的数据子块写入输出文档中;
当所述数据子块全部写入输出文档中时,获取加密的文件头和/或文件尾信息,将所述加密的文件头和/或文件尾信息写入输出文档中对应的预设位置,得到第一加密文件,其中,所述文件头和/或文件尾信息包括第一用户对称密钥对应的对称密钥校验信息;
将使用过的数据缓存块进行数据覆盖并释放内存。
4.根据权利要求1所述的方法,其特征在于,根据所述第一用户对称密钥对所述第一加密文件进行解密,将解密结果使用临时对称加密密码加密,得到第二加密文件,包括:
获取第一加密文件的封装结构,根据所述封装结构获取所述第一加密文件中加密的数据子块;
使用所述第一用户对称密钥对所述数据子块进行解密,使用临时对称加密密码对解密的数据子块进行加密,得到第二加密文件。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取第一用户对称密钥;
生成第三对称密钥,使用所述第三对称密钥加密所述第一用户对称密钥;
将加密后的第一用户对称密钥保存到对称密钥数据库中;
生成第一用户公钥和对应的第一用户私钥,所述第一用户公钥处于激活状态,将所述第一用户公钥保存到公钥数据库中;
生成第四对称密钥并计算所述第一用户公钥的哈希值,使用所述第四对称密钥加密所述第一用户私钥和所述第一用户公钥的哈希值,将加密后的第一用户私钥和加密后的所述第一用户公钥的哈希值关联保存到私钥数据库中。
6.根据权利要求5所述的方法,其特征在于,所述第一加密文件的解密步骤,包括:
获取对第一加密文件的解密请求,所述解密请求携带有第三对称密钥;
获取对称密钥数据库中加密的当前对称密钥,使用所述第三对称密钥对加密的当前对称密钥进行解密,得到当前对称密钥
获取所述第一加密文件中的文件头和/或文件尾信息,根据所述当前对称密钥对所述文件头和/或文件尾信息进行解密,得到对称密钥校验信息;
若所述对称密钥校验信息是随机数和所述随机数对应的第一哈希值,则获取所述对称密钥校验信息中的随机数,计算所述随机数的第二哈希值;或者若所述对称密钥校验信息是所述第一用户对称密钥对应的第一哈希值,则计算所述当前对称密钥的第二哈希值;
当所述第一哈希值和所述第二哈希值一致时,则使用所述当前对称密钥解密第一加密文件。
7.根据权利要求5所述的方法,其特征在于,根据所述第二用户公钥获取第二用户私钥,包括:
根据所述第二用户公钥计算第三哈希值;
获取第四对称密钥,获取所述第二用户私钥数据库中加密的第二用户私钥和对应的加密的第二用户公钥的哈希值,使用所述第四对称密钥解密所述加密的第二用户公钥的哈希值,得到第四哈希值;
当所述第三哈希值与所述第四哈希值一致时,使用所述第四对称密钥解密所述加密的第二用户私钥,得到第二用户私钥。
8.一种文件共享装置,其特征在于,所述装置包括:
请求接收模块,用于接收第一加密文件传递请求,所述第一加密文件传递请求包括第二用户标识、文件标识和第一用户对称密钥;
第二用户公钥获取模块,用于根据所述第二用户标识获取第二用户公钥,并生成临时对称加密密码;
第一文件获取模块,用于根据所述文件标识获取第一加密文件;
第二文件获取模块,用于根据所述第一用户对称密钥解密所述第一加密文件得到原始文件,将所述原始文件使用所述临时对称加密密码加密,得到第二加密文件;
密码文件获取模块,用于利用所述第二用户公钥加密所述临时对称加密密码,得到加密密码文件;
第二用户对称密钥获取模块,用于根据所述第二用户标识向第二用户对应的终端发送第一加密文件传递请求,接收所述终端根据所述第一加密文件传递请求返回的第二用户对称密钥;
加密密码获取模块,用于根据所述第二用户公钥获取第二用户私钥,使用所述第二用户私钥对所述加密密码文件进行解密,得到临时对称加密密码;
文件共享模块,用于根据临时对称加密密码对第二加密文件进行解密得到所述原始文件,并使用所述第二用户对称密钥将所述原始文件进行加密,得到第三加密文件,并将所述第三加密文件保存。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
CN201810169085.4A 2018-02-28 2018-02-28 文件共享方法、装置、计算机设备和存储介质 Expired - Fee Related CN108471404B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201810169085.4A CN108471404B (zh) 2018-02-28 2018-02-28 文件共享方法、装置、计算机设备和存储介质
PCT/CN2018/086482 WO2019165707A1 (zh) 2018-02-28 2018-05-11 文件共享方法、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810169085.4A CN108471404B (zh) 2018-02-28 2018-02-28 文件共享方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN108471404A true CN108471404A (zh) 2018-08-31
CN108471404B CN108471404B (zh) 2020-10-16

Family

ID=63265027

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810169085.4A Expired - Fee Related CN108471404B (zh) 2018-02-28 2018-02-28 文件共享方法、装置、计算机设备和存储介质

Country Status (2)

Country Link
CN (1) CN108471404B (zh)
WO (1) WO2019165707A1 (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109471844A (zh) * 2018-10-10 2019-03-15 深圳市达仁基因科技有限公司 文件共享方法、装置、计算机设备和存储介质
CN110138749A (zh) * 2019-04-23 2019-08-16 华为技术有限公司 一种数据安全保护方法及相关设备
CN110224814A (zh) * 2019-06-27 2019-09-10 深圳前海微众银行股份有限公司 一种区块链数据共享方法及装置
CN110430167A (zh) * 2019-07-05 2019-11-08 浙江大华技术股份有限公司 临时账户的管理方法、电子设备、管理终端及存储介质
CN111181920A (zh) * 2019-12-02 2020-05-19 中国建设银行股份有限公司 一种加解密的方法和装置
CN111193695A (zh) * 2019-07-26 2020-05-22 腾讯科技(深圳)有限公司 一种第三方账号登录的加密方法、装置及存储介质
CN111242611A (zh) * 2019-12-30 2020-06-05 航天信息股份有限公司 一种用于恢复数字钱包密钥的方法及系统
CN111953484A (zh) * 2020-08-03 2020-11-17 上海移远通信技术股份有限公司 通信方法、装置及客户端
CN113285927A (zh) * 2021-04-28 2021-08-20 深圳市联洲国际技术有限公司 一种嵌入式网络设备的文件运行方法、嵌入式网络设备

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111327616A (zh) * 2020-02-25 2020-06-23 上海东普信息科技有限公司 密钥管理方法、装置、设备及计算机可读存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030196080A1 (en) * 2002-04-16 2003-10-16 Izecom B.V. Secure communication via the internet
CN101159556A (zh) * 2007-11-09 2008-04-09 清华大学 基于组密钥服务器的共享加密文件系统中的密钥管理方法
CN103888467A (zh) * 2014-03-31 2014-06-25 武汉理工大学 一种面向共享的安全文件夹加密系统
CN105025001A (zh) * 2015-06-03 2015-11-04 浪潮电子信息产业股份有限公司 一种保护文件的装置、系统及方法
CN105516968A (zh) * 2015-11-30 2016-04-20 西安闻泰电子科技有限公司 基于智能密码钥匙的手机数据传输方法
US20170317823A1 (en) * 2016-04-28 2017-11-02 Amish Gaganvihari Gandhi Zero Knowledge Encrypted File Transfer

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL1012435C2 (nl) * 1999-06-25 2000-12-28 Koninkl Kpn Nv Systeem voor beveiligde opslag en beheer in een TTP server.
CN104917759B (zh) * 2015-05-26 2019-02-22 西安电子科技大学 基于第三方的安全文件存储和共享系统及方法
CN106254324B (zh) * 2016-07-26 2019-05-17 杭州文签网络技术有限公司 一种存储文件的加密方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030196080A1 (en) * 2002-04-16 2003-10-16 Izecom B.V. Secure communication via the internet
CN101159556A (zh) * 2007-11-09 2008-04-09 清华大学 基于组密钥服务器的共享加密文件系统中的密钥管理方法
CN103888467A (zh) * 2014-03-31 2014-06-25 武汉理工大学 一种面向共享的安全文件夹加密系统
CN105025001A (zh) * 2015-06-03 2015-11-04 浪潮电子信息产业股份有限公司 一种保护文件的装置、系统及方法
CN105516968A (zh) * 2015-11-30 2016-04-20 西安闻泰电子科技有限公司 基于智能密码钥匙的手机数据传输方法
US20170317823A1 (en) * 2016-04-28 2017-11-02 Amish Gaganvihari Gandhi Zero Knowledge Encrypted File Transfer

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109471844A (zh) * 2018-10-10 2019-03-15 深圳市达仁基因科技有限公司 文件共享方法、装置、计算机设备和存储介质
CN109471844B (zh) * 2018-10-10 2022-02-18 深圳市达仁基因科技有限公司 文件共享方法、装置、计算机设备和存储介质
CN110138749B (zh) * 2019-04-23 2021-12-21 华为技术有限公司 一种数据安全保护方法及相关设备
CN110138749A (zh) * 2019-04-23 2019-08-16 华为技术有限公司 一种数据安全保护方法及相关设备
CN110224814A (zh) * 2019-06-27 2019-09-10 深圳前海微众银行股份有限公司 一种区块链数据共享方法及装置
CN110430167A (zh) * 2019-07-05 2019-11-08 浙江大华技术股份有限公司 临时账户的管理方法、电子设备、管理终端及存储介质
CN111193695A (zh) * 2019-07-26 2020-05-22 腾讯科技(深圳)有限公司 一种第三方账号登录的加密方法、装置及存储介质
CN111193695B (zh) * 2019-07-26 2021-07-06 腾讯科技(深圳)有限公司 一种第三方账号登录的加密方法、装置及存储介质
CN111181920A (zh) * 2019-12-02 2020-05-19 中国建设银行股份有限公司 一种加解密的方法和装置
CN111242611A (zh) * 2019-12-30 2020-06-05 航天信息股份有限公司 一种用于恢复数字钱包密钥的方法及系统
CN111242611B (zh) * 2019-12-30 2023-08-18 航天信息股份有限公司 一种用于恢复数字钱包密钥的方法及系统
CN111953484A (zh) * 2020-08-03 2020-11-17 上海移远通信技术股份有限公司 通信方法、装置及客户端
CN113285927A (zh) * 2021-04-28 2021-08-20 深圳市联洲国际技术有限公司 一种嵌入式网络设备的文件运行方法、嵌入式网络设备

Also Published As

Publication number Publication date
WO2019165707A1 (zh) 2019-09-06
CN108471404B (zh) 2020-10-16

Similar Documents

Publication Publication Date Title
CN108471404A (zh) 文件共享方法、装置、计算机设备和存储介质
CN109471844B (zh) 文件共享方法、装置、计算机设备和存储介质
CN110336662A (zh) 数字信息加密方法、装置、计算机设备和存储介质
CN104023013A (zh) 数据传输方法、服务端和客户端
CN111970114B (zh) 文件加密方法、系统、服务器和存储介质
CN107154848A (zh) 一种基于cpk认证的数据加密与存储方法及装置
CN108390755B (zh) 基于内置安全芯片的sim贴膜卡的安全输入法
CN112866227A (zh) 一种文件授权保护方法和系统
CN114186249A (zh) 一种计算机文件安全加密方法、解密方法和可读存储介质
CN101795315A (zh) 利用手机终端进行短信加密的系统和方法
CN110795745B (zh) 一种基于服务器的信息存储和传送系统及其方法
CN114499857A (zh) 一种实现大数据量子加解密中数据正确性与一致性的方法
CN104735094A (zh) 基于信息分离的数据安全传输系统及方法
CN110445757A (zh) 人事信息加密方法、装置、计算机设备和存储介质
CN116455572B (zh) 数据加密方法、装置及设备
CN109687960B (zh) 基于多个公共非对称密钥池的抗量子计算代理云存储方法和系统
JPH0969831A (ja) 暗号通信システム
CN109302283B (zh) 基于公共非对称密钥池的抗量子计算代理云存储方法和系统
WO2009064002A1 (ja) 安全にファイルを送信し及び/又は管理するシステム
CN116707778A (zh) 数据混合加密传输方法、装置和电子设备
CN114244635B (zh) 通信设备的加密型数据编码方法
CN115204876A (zh) 一种用于移动支付的量子安全u盾设备及方法
CN115119200A (zh) 一种用于5g通信环境的信息传递方法
CN111541652B (zh) 一种用于提高秘密信息保管及传递安全性的系统
CN104363584B (zh) 一种短消息加、解密的方法、装置及终端

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20201016