File encryption transmission method, device, electronic device and computer-readable medium
By using elliptic curve non-zero multiplication group and addition generator in file encryption transmission, the security and efficiency problems caused by KGC master key leakage are solved, and the file transmission security and encryption efficiency are achieved.
Patent Information
- Application Number
- CN202411953171.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-27
- Publication Date
- 2025-09-05
- Estimated Expiration
- 2044-12-27
AI Technical Summary
The leakage of KGC's master key in existing file encryption transmission leads to the exposure of user's private keys, bilinear encryption computing is high and the computational complexity and low efficiency, and file transfer security is low.
The elliptic curve non-zero multiplication group and elliptic curve addition generator are used to generate part of the user's public and private key pairs, and the file transmission byte stream is carried out through key splicing and signature processing, and a file transmission byte stream is sent in the hidden channel.
It improves the security and encryption efficiency of file transfer, reduces the possibility of key leakage, and enhances the anonymity and privacy protection of the file receiver.
Smart Images

Figure CN119834981B_ABST
Abstract
Description
Technical Field
[0001] Embodiments of the present disclosure relate to the field of computer technology, and more particularly to a file encryption transmission method, device, electronic device, and computer-readable medium. Background Art
[0002] With the continuous development of mobile communication technology and the increasing business needs of enterprises, internal file transfers are becoming more frequent. Ensuring the security of transmitted files and preventing the leakage of private data during transmission are becoming increasingly important issues. For encrypted file transmission, a common approach is to use a Key Generation Center (KGC) to generate a master key. This master key is then used to generate a user private key and a user public key that identify the user. Finally, the file set to be transferred is encrypted using a bilinear pairing operation using the user public and private keys, allowing the receiving user to decrypt and receive the files.
[0003] However, in practice, it has been found that when the above method is used to encrypt and transmit files, the following technical problems often occur: Since the user private keys of all users are generated through the KGC master key, once the KGC master key is leaked, the user's private keys will be exposed. In addition, the file set is encrypted by bilinear pairing operations without signing operations, resulting in high encryption calculation complexity and low encryption efficiency. There is also the possibility of leakage of stored private keys, which in turn causes low security in file transmission.
[0004] The above information disclosed in this Background section is only for enhancement of understanding of the background of the present disclosure concept and therefore it may contain information that does not form the prior art that is already known in this country to a person of ordinary skill in the art. Summary of the Invention
[0005] The content of this disclosure is used to briefly introduce concepts that will be described in detail in the detailed description section below. The content of this disclosure is not intended to identify key features or essential features of the claimed technical solution, nor is it intended to limit the scope of the claimed technical solution.
[0006] Some embodiments of the present disclosure provide a file encryption transmission method, apparatus, electronic device, and computer-readable medium to solve one or more of the technical problems mentioned in the above background technology section.
[0007] In a first aspect, some embodiments of the present disclosure provide a method for encrypted file transmission, comprising: obtaining a set of files to be transmitted, a key generation parameter set sent by a key generation server, and a first user partial public-private key pair, wherein the key generation parameter set comprises at least one of the following: an elliptic curve non-zero multiplication group, an elliptic curve addition generator, and a system public key; generating a second user partial public-private key pair based on the elliptic curve non-zero multiplication group and the elliptic curve addition generator; performing key concatenation on the first user partial public-private key pair and the second user partial public-private key pair based on the system public key and the key generation parameter set to obtain a user public-private key pair; determining the file receiving user The receiving user signature information of the terminal set, wherein the file receiving user terminal in the above-mentioned file receiving user terminal set is the user terminal that receives the above-mentioned file set to be transmitted; based on the above-mentioned user public-private key pair and the above-mentioned receiving user signature information, the above-mentioned file set to be transmitted is signcrypted to obtain a signcrypted transmission file; the above-mentioned user public-private key pair is key encrypted to obtain an encryption key pair; the above-mentioned signcrypted transmission file is segmented to obtain a segmented signcrypted transmission file set; based on the above-mentioned encryption key pair and the above-mentioned segmented signcrypted transmission file set, a file transmission byte stream is generated; the above-mentioned file transmission byte stream is sent and transmitted through a covert channel for decryption and reception by the above-mentioned file receiving user terminal set.
[0008] In a second aspect, some embodiments of the present disclosure provide a file encryption transmission device, comprising: an acquisition unit, configured to acquire a file set to be transmitted, a key generation parameter set sent by a key generation server, and a first user partial public-private key pair, wherein the key generation parameter set includes at least one of the following: an elliptic curve non-zero multiplication group, an elliptic curve addition generator, and a system public key; a first generation unit, configured to generate a second user partial public-private key pair based on the elliptic curve non-zero multiplication group and the elliptic curve addition generator; a key splicing unit, configured to perform key splicing on the first user partial public-private key pair and the second user partial public-private key pair based on the system public key and the key generation parameter set to obtain a user public-private key pair; a determination unit, configured to determine the receiving user signature of the file receiving user set Information, wherein the file receiving user terminal in the above-mentioned file receiving user terminal set is the user terminal that receives the above-mentioned file set to be transmitted; the file signcryption unit is configured to perform file signcryption processing on the above-mentioned file set to be transmitted according to the above-mentioned user public-private key pair and the above-mentioned receiving user signature information to obtain a signcrypted transmission file; the key encryption unit is configured to perform key encryption processing on the above-mentioned user public-private key pair to obtain an encryption key pair; the segmentation unit is configured to perform segmentation processing on the above-mentioned signcrypted transmission file to obtain a segmented signcrypted transmission file set; the second generation unit is configured to generate a file transmission byte stream according to the above-mentioned encryption key pair and the above-mentioned segmented signcrypted transmission file set; the covert channel sending and transmission unit is configured to perform covert channel sending and transmission on the above-mentioned file transmission byte stream for decryption and reception by the above-mentioned file receiving user terminal set.
[0009] In a third aspect, some embodiments of the present disclosure provide an electronic device comprising: one or more processors; a storage device on which one or more programs are stored, and when the one or more programs are executed by one or more processors, the one or more processors implement the method described in any implementation manner in the first aspect.
[0010] In a fourth aspect, some embodiments of the present disclosure provide a computer-readable medium having a computer program stored thereon, wherein when the computer program is executed by a processor, the method described in any implementation manner in the first aspect is implemented.
[0011] The above-described embodiments of the present disclosure have the following beneficial effects: The file encryption transmission method of some embodiments of the present disclosure can improve the security of file transmission by partially generating public and private keys and merging one-to-many user identity information with signcryption. Specifically, the low security of related file transmission is caused by the following reasons: since all user private keys are generated using the KGC master key, once the KGC master key is leaked, all user private keys will be exposed. Furthermore, the file set is encrypted using a bilinear pairing operation without a signature operation, resulting in high encryption computational complexity, low encryption efficiency, and the possibility of leaking the stored private key, which in turn leads to low file transmission security. Based on this, the file encryption transmission method of some embodiments of the present disclosure can first obtain a file set to be transmitted, a key generation parameter set sent by a key generation server, and a partial public-private key pair of the first user, wherein the key generation parameter set includes at least one of the following: a non-zero multiplicative group of an elliptic curve, an elliptic curve addition generator, and a system public key. Here, the parameter set is used to subsequently generate a second user distributed public-private key pair and perform signcryption on the file set to be transmitted. Next, a second user partial public-private key pair is generated based on the non-zero multiplicative group of the elliptic curve and the additive generators of the elliptic curve. By having the user and key generation server each generate a partial public-private key pair, the possibility of key pair leakage can be reduced to a certain extent, the security of the partial public-private key pair can be improved, and the waste of key transmission resources can be reduced. Third, based on the system public key and the key generation parameter set, the first user partial public-private key pair and the second user partial public-private key pair are concatenated to generate a user public-private key pair. This improves the security and complexity of the user public-private key pair, thereby enhancing the security of subsequent file encryption transmission. Subsequently, the receiving user signature information of the set of file receiving clients is determined, where the file receiving client in the set of file receiving clients is the client that receives the set of files to be transferred. By fusing the identity information of multiple file receiving clients, the anonymity of the file recipients is achieved, thereby improving the privacy protection of the file receiving clients. Next, the set of files to be transferred is signcrypted based on the user public-private key pair and the receiving user signature information to generate a signcrypted transmission file. Signcryption adds user signature technology to encryption, ensuring file security, integrity, and unforgeability. Furthermore, encryption through elliptic curve operations reduces encryption complexity and improves efficiency. Subsequently, the user's public-private key pair is encrypted to produce an encrypted key pair. This improves the security of the user's public-private key pair. The signcrypted transmission file is then segmented to produce a segmented signcrypted transmission file set. Segmentation facilitates subsequent processing, improves transmission efficiency, and enables retransmission.Then, based on the above-mentioned encryption key pair and the above-mentioned segmented and signed transmission file set, a file transmission byte stream is generated. Here, the design of the file transmission byte stream for the file transmission scenario can improve the security and applicability of the file transmission. Finally, the above-mentioned file transmission byte stream is sent and transmitted through a covert channel for decryption and reception by the above-mentioned file receiving user terminal set. Here, the covert channel transmission can improve the security of file transmission and reduce the possibility of file leakage. Therefore, the file encryption transmission method can reduce the possibility of user private key leakage by generating a user's partial public and private key pair through the key generation server and the user terminal sending the file set, and perform file signcryption with identity fusion for multiple file recipients. It is suitable for one-to-many encryption transmission scenarios, improves the anonymity of the sender and receiver, and thus improves the security of file transmission. BRIEF DESCRIPTION OF THE DRAWINGS
[0012] The above and other features, advantages, and aspects of the various embodiments of the present disclosure will become more apparent with reference to the following detailed description in conjunction with the accompanying drawings. Throughout the drawings, the same or similar reference numerals represent the same or similar elements. It should be understood that the drawings are schematic and that components and elements are not necessarily drawn to scale.
[0013] Figure 1 is a flow chart of some embodiments of the file encryption transmission method according to the present disclosure;
[0014] Figure 2 is a schematic structural diagram of some embodiments of the file encryption transmission device according to the present disclosure;
[0015] Figure 3 It is a structural diagram of an electronic device suitable for implementing some embodiments of the present disclosure. DETAILED DESCRIPTION
[0016] Embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. Although certain embodiments of the present disclosure are shown in the accompanying drawings, it should be understood that the present disclosure can be implemented in various forms and should not be construed as being limited to the embodiments described herein. On the contrary, these embodiments are provided to provide a more thorough and complete understanding of the present disclosure. It should be understood that the drawings and embodiments of the present disclosure are for illustrative purposes only and are not intended to limit the scope of protection of the present disclosure.
[0017] It should also be noted that, for ease of description, only the parts related to the invention are shown in the drawings. In the absence of conflict, the embodiments and features in the embodiments of the present disclosure may be combined with each other.
[0018] It should be noted that the concepts of "first" and "second" mentioned in this disclosure are only used to distinguish different devices, modules or units, and are not used to limit the order or interdependence of the functions performed by these devices, modules or units.
[0019] It should be noted that the modifications of "one" and "multiple" mentioned in the present disclosure are illustrative rather than restrictive, and those skilled in the art should understand that unless otherwise clearly indicated in the context, they should be understood as "one or more".
[0020] The names of the messages or information exchanged between multiple devices in the embodiments of the present disclosure are only used for illustrative purposes and are not used to limit the scope of these messages or information.
[0021] The present disclosure will be described in detail below with reference to the accompanying drawings and in conjunction with embodiments.
[0022] Figure 1 The process 100 of some embodiments of the file encryption transmission method according to the present disclosure is shown. The file encryption transmission method includes the following steps:
[0023] Step 101: Obtain a set of files to be transferred, a set of key generation parameters sent by a key generation server, and a partial public-private key pair of a first user.
[0024] In some embodiments, the execution entity of the above-mentioned file encryption transmission method (e.g., an electronic device) can obtain, via a wired or wireless connection, a set of files to be transferred, a set of key generation parameters sent by a key generation server, and a partial public-private key pair of the first user. The key generation parameter set includes at least one of the following: a non-zero multiplicative group of an elliptic curve, an elliptic curve additive generator, and a system public key. The files to be transferred in the set of files to be transferred can be files waiting to be transferred to another user or server. The key generation server can be a server for generating and managing secret keys. The key generation parameters in the key generation parameter set can be parameters related to the secret key. The elliptic curve additive generator can be a point on an elliptic curve obtained by performing integer multiple addition operations on the elliptic curve additive generator to obtain all points on the elliptic curve except for the point at infinity. The non-zero multiplicative group of the elliptic curve can be a non-zero multiplicative cyclic group based on a target prime number. The target prime number can be a prime number. It should be noted that the target prime number can be determined based on actual circumstances and is not limited here. The non-zero multiplicative cyclic group may be a bilinear map of an elliptic curve additive cyclic group and a Cartesian product of elliptic curve additive cyclic groups. The elliptic curve additive cyclic group may be a cyclic group consisting of points on an elliptic curve, with order equal to a target prime number, and with group operation addition. The elliptic curve multiplicative cyclic group may be a cyclic group consisting of points on an elliptic curve, with order equal to a target prime number, and with group operation multiplication. The system public key may be the product of a randomly selected value from the non-zero multiplicative group of the elliptic curve and an elliptic curve additive generator. The first user partial public-private key pair may be a public key and private key generated by the key generation server. The public key may be a value set used to encrypt the set of files to be transmitted. The private key may be a value set used to decrypt the encrypted set of files to be transmitted.
[0025] Step 102: Generate a partial public-private key pair of the second user based on the non-zero multiplication group of the elliptic curve and the elliptic curve addition generator.
[0026] In some embodiments, the execution entity may generate a second user partial public-private key pair based on the non-zero multiplicative group of the elliptic curve and the elliptic curve additive generator. The second user partial public-private key pair may be a public key and a private key generated by a client sending the set of files to be transferred.
[0027] As an example, the execution entity may first randomly select a value from the non-zero multiplicative group of the elliptic curve as the second user partial private key. The second user partial public key is different from the first and second values and is a value in the non-zero multiplicative group of the elliptic curve. Then, the product of the second user partial private key and the elliptic curve additive generator is determined as the second user partial public key. Finally, the second user partial private key and the second user partial public key are determined as the second user partial public-private key pair.
[0028] Step 103 : Concatenate the first user's partial public-private key pair and the second user's partial public-private key pair according to the system public key and the key generation parameter set to obtain a user public-private key pair.
[0029] In some embodiments, the execution entity may concatenate the first user partial public-private key pair and the second user partial public-private key pair based on the system public key and the key generation parameter set to obtain a user public-private key pair. The user public-private key pair may represent the public key and private key used to encrypt and decrypt the set of files to be transferred, representing the user's identity information.
[0030] In some optional implementations of some embodiments, the key generation parameter set further includes: a first hash function and an elliptic curve additive cyclic group, and the second user partial public-private key pair includes: a second user partial public key and a second user partial private key. The elliptic curve additive cyclic group may be a cyclic group composed of points on an elliptic curve with an order equal to a target prime number. The target prime number may be a prime number. It should be noted that the target prime number can be determined based on actual circumstances and is not limited here. The first hash function may be a bilinear mapping function between a byte sequence of arbitrary length consisting of 0s or 1s, the domain of the elliptic curve additive cyclic group and the Cartesian product of the elliptic curve additive cyclic group, and the range of the elliptic curve non-zero multiplicative group based on the target prime number. The second user partial public key may be any value from the elliptic curve non-zero multiplicative group. The second user partial private key may be the value of the product of the second user partial public key and the elliptic curve additive generator.
[0031] Optionally, the concatenation of the first user partial public-private key pair and the second user partial public-private key pair based on the system public key and the key generation parameter set to obtain the user public-private key pair may include the following steps:
[0032] In the first step, based on the second user's partial private key, the following determination steps are performed:
[0033] Sub-step 1, sending the user identity information and the second user partial public key to the above-mentioned key generation server, so that the above-mentioned key generation server can generate the above-mentioned first user partial public-private key pair based on the above-mentioned user identity information, wherein the above-mentioned first user partial public-private key pair includes: a first user partial public key and a first user partial private key. The above-mentioned user identity information can be identification information representing the identity of the user terminal that sends the above-mentioned file set to be transferred. For example, the above-mentioned user identity information can be but is not limited to at least one of the following: the employee number, email address, and user mobile phone number of the user corresponding to the user terminal. The above-mentioned first user partial public key can be a public key generated by the key generation server. The above-mentioned first user partial private key can be a private key generated by the key generation server.
[0034] Sub-step 2: Input the above-mentioned user identity information, the first target user partial public key and the second user partial public key into the first hash function to obtain a user hash byte sequence, wherein the first target user partial public key is the first user partial public key received from the above-mentioned key generation server, and the above-mentioned first hash function represents a byte sequence of any length composed of 0 or 1, the domain of the above-mentioned elliptic curve additive cyclic group and the Cartesian product of the above-mentioned elliptic curve additive cyclic group, and a mapping function of the elliptic curve non-zero multiplication group based on the target prime number.
[0035] Sub-step 3: Determine the product of the user hash byte sequence and the system public key and the sum of the first target user partial public key as the first verification byte sequence.
[0036] Sub-step 4: Determine the product of the first target user partial private key and the above-mentioned elliptic curve addition generator as the second verification byte sequence, wherein the above-mentioned first target user partial private key is the first user partial private key received from the above-mentioned key generation server.
[0037] Sub-step 5: In response to determining that the first verification byte sequence and the second verification byte sequence are the same, concatenate the second user partial public key, the first user partial public key, and the second verification byte sequence to determine the user public key.
[0038] Sub-step 6: Determine the inverse of the sum of the product of the user hash byte sequence and the second user partial private key and the first user partial private key as the target user partial private key.
[0039] Sub-step 7: concatenate the second user partial private key and the target user partial private key to obtain the user private key.
[0040] Sub-step 8: Determine the user public key and the user private key as a user public-private key pair.
[0041] In the second step, in response to determining that the first verification byte sequence and the second verification byte sequence are different, a value is re-selected from the above-mentioned elliptic curve non-zero multiplication group as the second user partial private key to continue executing the above-mentioned determination step.
[0042] In some optional implementations of some embodiments, the first user partial public-private key pair may be obtained by the following steps:
[0043] In the first step, the non-zero values included in the non-zero multiplication group of the elliptic curve are screened to obtain a first value and a second value. The first value and the second value may be different elements of the non-zero multiplication group of the elliptic curve. The execution entity of the first user's partial public-private key pair is a key generation server.
[0044] The second step is to determine the product of the first numerical value and the elliptic curve addition generator as the first user partial public key.
[0045] In the third step, the user identity information, the first user partial public key and the second user partial public key are input into the first hash function to obtain a first hash byte sequence.
[0046] The fourth step is to determine the product of the second value and the first hash byte sequence and the sum of the first value as the first user partial private key.
[0047] In the fifth step, the first user partial public key and the first user partial private key are determined as a first user partial public-private key pair.
[0048] Step 104: Determine the signature information of the receiving user of the file receiving user terminal set.
[0049] In some embodiments, the execution entity may determine the signature information of a receiving user of a set of file receiving user terminals, wherein the file receiving user terminals in the set of file receiving user terminals are the user terminals that receive the set of files to be transferred. The signature information may represent the identity information of the set of file receiving user terminals and the integrity authentication of the set of files to be transferred.
[0050] In some optional implementations of some embodiments, the above-mentioned determination of the receiving user signature information of the file receiving user terminal set may include the following steps:
[0051] The first step is to determine the product of a third value and the elliptic curve additive generator as the user signature parameter, where the third value is a value in the non-zero multiplicative group of the elliptic curve. The third value may be different from the first value, the second value, and the second user's partial private key, and may be a value in the non-zero multiplicative group of the elliptic curve.
[0052] In the second step, for each file receiving client in the above file receiving client set, the following generation steps are performed:
[0053] Sub-step 1: Determine the user public key and user identity information corresponding to the file receiving client as the receiving user public key and receiving user identity information. The receiving user public key may be the public key corresponding to the file receiving client. The receiving user public key may be generated using the same method as the user public key.
[0054] Sub-step 2: Determine the product of the sum of the second user partial private key and the target user partial private key included in the user private key and the third value as the first user signature.
[0055] Sub-step 3: Determine the sum of the second receiving user partial public key, the first receiving user partial public key, the second receiving verification byte sequence, and the product of the receiving user hash byte sequence and the system public key, as the second user signature, wherein the receiving user hash byte sequence is a byte sequence obtained by inputting the first receiving user partial public key, the second receiving user partial public key, and the receiving user identity information into the first hash function. The second receiving user partial public key can be a partial public key generated by the file receiving user terminal itself. The first receiving user partial public key can be a partial public key generated by the key generation server based on the receiving user identity information. The second receiving verification byte sequence can be the product of the first receiving user partial private key and the elliptic curve addition generator. The first receiving user partial private key can be a partial key generated by the key generation server based on the receiving user identity information.
[0056] Sub-step 4: Determine the product of the first user signature and the second user signature as the target user signature.
[0057] Sub-step 5: Input the receiving user identity information, the target user signature, and the user signature parameter into the first hash function to obtain a second hash byte sequence.
[0058] Sub-step 6: Determine the sum of the difference between the sending signature parameter and the second hash byte sequence, and the remainder of dividing a fourth value by the target prime number, as the receiving user signature item, where the fourth value is any value in the non-zero multiplicative group of the elliptic curve. The sending signature parameter is an unknown parameter.
[0059] The third step is to perform cumulative multiplication on each of the received user signature items to obtain a user signature polynomial as the received user signature information.
[0060] Step 105 : Based on the public-private key pair of the user and the signature information of the receiving user, the set of files to be transferred is signcrypted to obtain a signcrypted transfer file.
[0061] In some embodiments, the execution entity may perform file signcryption on the set of files to be transferred based on the user's public-private key pair and the receiving user's signature information to obtain a signcrypted transfer file. The signcrypted transfer file may be a file obtained by concatenating each file to be transferred in the set of files to be transferred after the user has signed and encrypted the file.
[0062] In some optional implementations of some embodiments, the process of performing file signcryption on the set of files to be transmitted based on the user public-private key pair and the receiving user signature information to obtain the signcrypted transmission file may include the following steps:
[0063] In the first step, a user signature is performed on the file sender corresponding to the set of files to be transferred based on the third value, the system public key, and the user public key included in the user public-private key pair to obtain a target user signature. The target user signature can represent the identity of the file sender itself.
[0064] As an example, the execution entity may first input the user identity information and user public key into the first hash function to obtain a user signature hash byte sequence. Subsequently, the product of the user signature hash byte sequence and the system public key is determined as the target signature hash byte sequence. Next, the sum of the target signature hash byte sequence, the second user partial public key, the first user partial public key, and the second verification value included in the user public key is determined as the signcrypted hash byte sequence. Finally, the product of the signcrypted hash byte sequence and the third value is determined as the target user signature.
[0065] In the second step, the set of files to be transferred is segmented and obfuscated to obtain an obfuscated reorganized file. The obfuscated reorganized file includes file segmentation granularity information and segmented file location information. The obfuscated reorganized file may be a file obtained by segmenting each file to be transferred in the set of files to be transferred twice at different granularities and then reorganizing the file. The file segmentation granularity information may indicate the number of file segmentations. The segmented file location information may indicate the location information of each segmented file within the set of files to be transferred.
[0066] As an example, the execution entity may first perform a first segmentation on each file to be transferred in the set of files to be transferred to generate a first segmented file group, thereby obtaining a first segmented file group set. Then, each first segmented file in the set of first segmented file groups may be second segmented to generate a second segmented file, thereby obtaining a second segmented file group set. Finally, the second segmented file group sets may be sequentially combined to obtain an obfuscated reassembled file. The sequential combination may include first combining each second segmented file group set with a second segmented file located at the same position in the file to obtain a first combined file set, and then combining each obtained first combined file with a first combined file group located at the same position in the file to obtain an obfuscated reassembled file.
[0067] In a third step, the fifth value is input into a second hash function and XORed with the obfuscated reconstructed file to obtain a signcrypted file. The second hash function represents a mapping between the domain of byte sequences of arbitrary length consisting of 0s or 1s and a non-zero multiplicative group of an elliptic curve based on a target prime number. The second hash function is a parameter in the key generation parameter set. The fifth value can be any value in the non-zero multiplicative group of the elliptic curve.
[0068] In the fourth step, the signcryption file, the target user signature and the user signature parameters are input into the first hash function to obtain a third hash byte sequence.
[0069] The fifth step is to determine the sum of the third hash byte sequence, the second user partial private key, and the target user partial private key included in the user private key as a ciphertext validity parameter.
[0070] Step 6: Combine and concatenate the signcrypted file, the receiving user signature information, the user signature parameter, the target user signature, and the ciphertext validity parameter to obtain a signcrypted transmission file.
[0071] Step 106: Perform key encryption processing on the user's public and private key pair to obtain an encrypted key pair.
[0072] In some embodiments, the execution entity may perform key encryption on the user's public-private key pair to obtain an encryption key pair, wherein the encryption key pair may be a key pair obtained by asymmetric encryption of the user's public-private key pair.
[0073] Step 107: segment the signcrypted transmission file to obtain a segmented signcrypted transmission file set.
[0074] In some embodiments, the execution entity may segment the signcrypted transmission file to obtain a segmented signcrypted transmission file set. The segmentation may be performed by segmenting into 4 bytes.
[0075] Step 108: Generate a file transmission byte stream based on the encryption key pair and the segmented and signed transmission file set.
[0076] In some embodiments, the execution entity may generate a file transfer byte stream based on the encryption key pair and the segmented, signcrypted transfer file set. The file transfer byte stream may be a byte stream obtained by converting the encryption key pair and the segmented, signcrypted transfer file set into a byte format for transmission.
[0077] In some optional implementations of some embodiments, generating a file transfer byte stream based on the encryption key pair and the segmented, signcrypted transfer file set may include the following steps:
[0078] In the first step, for each segmented post-signcryption transmission file in the above segmented post-signcryption transmission file set, perform the following combined steps:
[0079] Sub-step 1: Determine the message length, file encryption identification information, segment sequence number, and receiving address information of the segmented, signcrypted transmission file. The message length may be the number of bytes included in the segmented, signcrypted transmission file. The file encryption identification information may be identification information obtained by numerically encoding the encryption algorithm employed. The segment sequence number may be the position number of the segmented, signcrypted transmission file within the signcrypted transmission file. The receiving address information may be the address information of the file receiving client.
[0080] Sub-step 2: Perform an integrity check on the segmented, signcrypted, and transmitted files to obtain a file checksum value. The file checksum value may be used to verify whether the file set obtained after transferring the set of files to be transferred is identical to the set of files to be transferred. In practice, the execution entity may utilize a cyclic redundancy check algorithm to perform an integrity check on the segmented, signcrypted, and transmitted files to obtain the file checksum value.
[0081] Sub-step 3: Combine the message length, the file encryption identification information, the encryption key pair, the file checksum, and the receiving address information to obtain transmission header information. The transmission header information may be located before the segmented, signcrypted transmission file and is used to ensure secure and efficient transmission of the segmented, signcrypted transmission file.
[0082] Sub-step 4: Convert the transmission header information and the segmented, signcrypted transmission file into byte streams to obtain a transmission header byte stream and a transmission body byte stream. The transmission header byte stream may be a byte stream representing the transmission header information in byte format. The transmission body byte stream may be a byte stream representing the segmented, signcrypted transmission file in byte format.
[0083] Sub-step 5: combining the above-mentioned transmission header byte stream and the above-mentioned transmission body byte stream to obtain a file segment transmission byte stream.
[0084] In the second step, the obtained file segment transmission byte streams are sequentially combined according to the obtained segment sequence numbers to obtain a file transmission byte stream.
[0085] Step 109: The file transmission byte stream is transmitted via a covert channel for decryption and reception by the file receiving user terminal set.
[0086] In some embodiments, the execution entity may transmit the file transfer byte stream via a covert channel for decryption and reception by the set of file receiving client terminals. The set of file receiving client terminals performing the decryption and reception may perform decryption by the following steps: first, parsing the file transfer byte stream to obtain the target user signature, user signature parameters, and a signcryption file. Second, determining the product of the target user signature and the sum of the second user partial private key and the target user partial private key, included in the receiving user private key corresponding to the file receiving client terminal. Third, inputting the receiving user identity information of the file receiving client terminal, the receiving user signature, and the user signature parameters into the first hash function to obtain a received hash byte sequence. Subsequently, the received hash byte sequence is substituted into the target user signature term to obtain a solution value. The target user signature term may be a signature function obtained by replacing the sending signature parameters in the receiving user signature term with the receiving hash byte sequence and using the fourth value as the unknown term. Then, using the solution, the signcrypted file is decrypted to obtain the obfuscated transfer file sets, file segmentation granularity information, and segmented file location information. Finally, the obfuscated transfer file sets are reordered according to the file segmentation granularity information and segmented file location information to obtain the files to be transferred.
[0087] As an example, the execution subject may construct a time-based covert channel, and then utilize the time-based covert channel to transmit the file transmission byte stream for decryption and reception by the file receiving client.
[0088] In the process of adopting technical solutions to solve the above-mentioned technical problem 1, the following technical problem 2 is often accompanied: with the emergence of random quantum computers and the improvement of computer computing power, there are more and more attacks on encryption technology. The security of simply encrypting the private data in the files to be transmitted is getting lower and lower. How to further improve the security of the files to be transmitted based on encryption technology? In response to the above-mentioned technical problem 2, the conventional solution is generally to fill the encrypted segmented file transmission byte stream into the payload part of the network protocol message to transmit the segmented file transmission byte stream. However, the above-mentioned conventional solution still has the following problems: because the payload part of the network protocol message is the key detection part of the message anomaly detection and destroys the original communication effect of the message, and the amount of data that can be filled in the payload part is small, the security of the encrypted segmented file transmission byte stream is low, there is a possibility of covert channel exposure, the transmission efficiency and transmission capacity are low, and the waste of transmission resources is increased. The inventors have considered the shortcomings and combined with the advantages / technical status of the encryption technology and covert channel construction owned by the inventor's company, we decided to adopt the following solution:
[0089] In some optional implementations of some embodiments, the above-mentioned covert channel transmission of the above-mentioned file transmission byte stream for decryption and reception by the above-mentioned file receiving user terminal set may include the following steps:
[0090] In the first step, for each file receiving client in the above file receiving client set, the following sending and transmission steps are performed:
[0091] Sub-step 1: determining the network protocol address of the file receiving client corresponding to the file transmission byte stream, wherein the network protocol address can be the domain name or IP (Internet Protocol Address) address of the file receiving client using SSL (Secure Sockets Layer) protocol.
[0092] Sub-step 2: In response to determining that a communication connection has been successfully established with the file receiving client, a covert handshake message is sent to the file receiving client via the network protocol address. The covert handshake message includes: the size of the file transfer byte stream, a file integrity check value, covert channel version information, and covert channel type information. The covert handshake message may be used to inform the file receiving client of the client identity information and covert channel information of the file set to be transferred. The file integrity check value may be a value used to verify the consistency of the file set to be transferred before and after the transfer. The covert channel type information may be information about the type of covert channel established with the file receiving client. The covert channel type information may include: storage-type covert channel, sequence-type covert channel, time-type covert channel, and packet-length-type covert channel. The sequence-type covert channel may be a covert channel that transmits ciphertext by using the sort order of different cipher suites in the cipher suite list field of the Client Hello message used to establish the first handshake connection with the file receiving client. The packet-length-type covert channel may be a covert channel that transmits ciphertext by using the length information in the Client Hello message.
[0093] Sub-step 3: In response to receiving a response message to the covert handshake message sent by the file receiving client, and the covert channel type information is a storage-type covert channel, generating a first symmetric key. The first symmetric key may be a symmetric key used to encrypt and decrypt a file transmission byte stream.
[0094] Sub-step 4: performing the following encryption steps based on the first symmetric key and the segmented file transfer byte stream set:
[0095] The first sub-step is to encrypt the segmented file transfer byte stream located at the starting position in the segmented file transfer byte stream set according to the first symmetric key to obtain a first encrypted file transfer byte stream.
[0096] As an example, the execution entity may utilize a symmetric encryption algorithm to encrypt the segmented file transfer byte stream located at the starting position in the segmented file transfer byte stream set according to the first symmetric key to obtain a first encrypted file transfer byte stream.
[0097] The second sub-step is to determine the first encrypted file transmission byte stream as the second symmetric encryption key.
[0098] The third sub-step is to symmetrically encrypt the target segmented file transfer byte stream according to the above-mentioned second symmetric encryption key to obtain a second encrypted file transfer byte stream, wherein the above-mentioned target segmented file transfer byte stream is the byte stream after the segmented file transfer byte stream located at the starting position.
[0099] The fourth sub-step is, in response to determining that the above-mentioned target segmented file transfer byte stream is a transfer byte stream located at the end position of the above-mentioned segmented file transfer byte stream set, determining the first encrypted file transfer byte stream and the above-mentioned second encrypted file transfer byte stream as an encrypted transfer byte stream set.
[0100] Sub-step 5, in response to determining that the above-mentioned target segmented file transfer byte stream is not the byte stream located at the end position in the above-mentioned segmented file transfer byte stream set, the second encrypted file transfer byte stream is determined as the third symmetric encryption key as the first symmetric encryption key, and the segmented file transfer byte stream set with the segmented file transfer byte streams corresponding to the above-mentioned first encrypted file transfer byte stream and the above-mentioned second encrypted file transfer byte stream removed is determined as the segmented file transfer byte stream set, so as to perform the above-mentioned encryption step again.
[0101] Sub-step 6, embeds the above-mentioned encrypted transmission byte stream set and synchronous transmission identifier information into the target field set in the handshake protocol message to obtain a handshake embedded protocol message. Among them, the above-mentioned synchronous transmission identifier information can be the information of the sequence identifier used to prevent the encrypted transmission byte stream in the encrypted transmission byte stream set from being out of order. The above-mentioned target field set can be the Random field and Session ID field in the Client Hello message. The above-mentioned synchronous transmission identifier information is the information embedded in the Session ID field. It should be noted that since the Random field and Session ID field in the Client Hello message store some random fields generated by sending the file set to be transmitted in the original message, modifying them will not affect the recognition of the message, and can avoid being identified as an abnormal message to a certain extent.
[0102] Sub-step 7, performs traffic anomaly detection on the above-mentioned handshake embedded protocol message to obtain a traffic anomaly detection value. The above-mentioned traffic anomaly detection value can represent the probability value of the above-mentioned embedded handshake protocol message being identified as an abnormal message. The larger the above-mentioned traffic anomaly detection value, the greater the possibility that the above-mentioned embedded handshake protocol message is identified as an abnormal message. In practice, the above-mentioned execution entity can first input the above-mentioned handshake embedded protocol message into a denoising autoencoder to obtain a protocol feature vector set. Then, the above-mentioned protocol feature vector set is input into a message traffic anomaly detection model optimized based on the moth-to-flame optimization algorithm to obtain a traffic anomaly value. The above-mentioned message traffic anomaly detection model can be a model in which a gated recurrent unit network is added to a convolutional neural network.
[0103] Sub-step 8: In response to determining that the traffic anomaly detection value is less than or equal to a preset anomaly threshold, determining the number of times the handshake embedded protocol message is sent based on the encrypted transmission byte stream set. The preset anomaly threshold may be a predetermined minimum value for identifying an anomaly message. For example, the preset anomaly threshold may be 0.85.
[0104] As an example, the execution entity may determine the number of bytes corresponding to the encrypted transmission byte stream set divided by the number of bytes transmitted by the handshake embedded protocol message as the number of transmissions in response to determining that the traffic anomaly value is less than or equal to a preset anomaly value threshold.
[0105] Sub-step 9: sending and transmitting the embedded handshake protocol messages and the corresponding handshake end messages for the file receiving user end to decrypt and receive.
[0106] The above technical solution and its related contents, as an inventive point of an embodiment of the present disclosure, solve the second technical problem mentioned in the background technology: "Because the payload part of the network protocol message is the key detection part of the message anomaly detection, and destroys the original communication effect of the message, and the amount of data that can be filled in the payload part is small, the security of the encrypted segmented file transmission byte stream is low, there is a possibility of covert channel exposure, low transmission efficiency and transmission capacity, and increased waste of transmission resources." The factors that lead to the low security of the encrypted segmented file transmission byte stream, the possibility of covert channel exposure, low transmission efficiency and transmission capacity, and increased waste of transmission resources are often as follows: Because the payload part of the network protocol message is the key detection part of the message anomaly detection, and destroys the original communication effect of the message, and the amount of data that can be filled in the payload part is small. If the above factors are solved, the security of the encrypted segmented file transmission byte stream can be improved, the possibility of covert channel exposure can be reduced, the transmission efficiency and transmission capacity can be improved, and the waste of transmission resources can be reduced. To achieve this effect, the present invention first determines the network protocol address of the file receiving user end, establishes a network connection, and sends a covert handshake message. This can determine the type of covert channel constructed by the user end sending the set of files to be transferred, so that the file receiving user end can perform corresponding extraction and decryption operations for the specific covert channel, thereby improving the decryption and reception efficiency of the file receiving user end. Then, a cyclic symmetric key is generated and the segmented file transmission byte stream set is subjected to cyclic symmetric encryption encoding processing, which can improve the concealment of the covert channel and enhance the security of the transmission. Subsequently, synchronous transmission identifier information is added to the encrypted transmission byte stream and embedded into the Random field and Session ID field of the handshake protocol message. This can increase the transmission capacity of the covert channel and enhance the transmission robustness of the covert channel by embedding the synchronous transmission identifier information. Finally, traffic anomaly detection is performed on the handshake embedded protocol message, which can reduce the possibility of the handshake embedded protocol message being detected, further improve the concealment of the handshake embedded protocol message, and enhance the security of the encrypted segmented file transmission byte stream.
[0107] The above-described embodiments of the present disclosure have the following beneficial effects: The file encryption transmission method of some embodiments of the present disclosure can improve the security of file transmission by partially generating public and private keys and merging one-to-many user identity information with signcryption. Specifically, the low security of related file transmission is caused by the following reasons: since all user private keys are generated using the KGC master key, once the KGC master key is leaked, all user private keys will be exposed. Furthermore, the file set is encrypted using a bilinear pairing operation without a signature operation, resulting in high encryption computational complexity, low encryption efficiency, and the possibility of leaking the stored private key, which in turn leads to low file transmission security. Based on this, the file encryption transmission method of some embodiments of the present disclosure can first obtain a file set to be transmitted, a key generation parameter set sent by a key generation server, and a partial public-private key pair of the first user, wherein the key generation parameter set includes at least one of the following: a non-zero multiplicative group of an elliptic curve, an elliptic curve addition generator, and a system public key. Here, the parameter set is used to subsequently generate a second user distributed public-private key pair and perform signcryption on the file set to be transmitted. Next, a second user partial public-private key pair is generated based on the non-zero multiplicative group of the elliptic curve and the additive generators of the elliptic curve. By having the user and key generation server each generate a partial public-private key pair, the possibility of key pair leakage can be reduced to a certain extent, the security of the partial public-private key pair can be improved, and the waste of key transmission resources can be reduced. Third, based on the system public key and the key generation parameter set, the first user partial public-private key pair and the second user partial public-private key pair are concatenated to generate a user public-private key pair. This improves the security and complexity of the user public-private key pair, thereby enhancing the security of subsequent file encryption transmission. Subsequently, the receiving user signature information of the set of file receiving clients is determined, where the file receiving client in the set of file receiving clients is the client that receives the set of files to be transferred. By fusing the identity information of multiple file receiving clients, the anonymity of the file recipients is achieved, thereby improving the privacy protection of the file receiving clients. Next, the set of files to be transferred is signcrypted based on the user public-private key pair and the receiving user signature information to generate a signcrypted transmission file. Signcryption adds user signature technology to encryption, ensuring file security, integrity, and unforgeability. Furthermore, encryption through elliptic curve operations reduces encryption complexity and improves efficiency. Subsequently, the user's public-private key pair is encrypted to produce an encrypted key pair. This improves the security of the user's public-private key pair. The signcrypted transmission file is then segmented to produce a segmented signcrypted transmission file set. Segmentation facilitates subsequent processing, improves transmission efficiency, and enables retransmission.Then, based on the above-mentioned encryption key pair and the above-mentioned segmented and signed transmission file set, a file transmission byte stream is generated. Here, the design of the file transmission byte stream for the file transmission scenario can improve the security and applicability of the file transmission. Finally, the above-mentioned file transmission byte stream is sent and transmitted through a covert channel for decryption and reception by the above-mentioned file receiving user terminal set. Here, the covert channel transmission can improve the security of file transmission and reduce the possibility of file leakage. Therefore, the file encryption transmission method can reduce the possibility of user private key leakage by generating a user's partial public and private key pair through the key generation server and the user terminal sending the file set, and perform file signcryption with identity fusion for multiple file recipients. It is suitable for one-to-many encryption transmission scenarios, improves the anonymity of the sender and receiver, and thus improves the security of file transmission.
[0108] Further references Figure 2 As an implementation of the methods shown in the above figures, the present disclosure provides some embodiments of a file encryption transmission device. These device embodiments are similar to Figure 1 Corresponding to the method embodiments shown, the file encryption transmission device can be specifically applied to various electronic devices.
[0109] like Figure 2As shown, a file encryption transmission device 200 includes: an acquisition unit 201, a first generation unit 202, a key concatenation unit 203, a determination unit 204, a file signcryption unit 205, a key encryption unit 206, a segmentation unit 207, a second generation unit 208, and a covert channel transmission unit 209. The acquisition unit 201 is configured to acquire a set of files to be transmitted, a set of key generation parameters sent by a key generation server, and a first user partial public-private key pair, wherein the key generation parameter set includes at least one of the following: an elliptic curve non-zero multiplicative group, an elliptic curve additive generator, and a system public key. The first generation unit 202 is configured to generate a second user partial public-private key pair based on the elliptic curve non-zero multiplicative group and the elliptic curve additive generator. The key concatenation unit 203 is configured to concatenate the first user partial public-private key pair with the second user partial public-private key pair based on the system public key and the key generation parameter set to obtain a user public-private key pair. The determination unit 204 is configured to determine the signature information of the receiving user of the file receiving user terminal set, wherein the file receiving user terminal in the above-mentioned file receiving user terminal set is the user terminal that receives the above-mentioned file set to be transmitted. The file signcryption unit 205 is configured to perform file signcryption processing on the above-mentioned file set to be transmitted based on the above-mentioned user public-private key pair and the above-mentioned receiving user signature information to obtain a signed transmission file. The key encryption unit 206 is configured to perform key encryption processing on the above-mentioned user public-private key pair to obtain an encryption key pair. The segmentation unit 207 is configured to segment the above-mentioned signed transmission file to obtain a segmented signed transmission file set. The second generation unit 208 is configured to generate a file transmission byte stream based on the above-mentioned encryption key pair and the above-mentioned segmented signed transmission file set. The covert channel sending and transmission unit 209 is configured to perform covert channel sending and transmission on the above-mentioned file transmission byte stream for decryption and reception by the above-mentioned file receiving user terminal set.
[0110] It is understandable that the various units described in the file encryption transmission device 200 are similar to those in the reference Figure 1 Therefore, the operations, features and beneficial effects described above for the method are also applicable to the file encryption transmission device 200 and the units included therein, and will not be repeated here.
[0111] Reference below Figure 3 , which shows a structural schematic diagram of an electronic device (eg, an electronic device) 300 suitable for implementing some embodiments of the present disclosure. Figure 3 The electronic device shown is only an example and should not bring any limitation to the functions and scope of use of the embodiments of the present disclosure.
[0112] like Figure 3As shown, the electronic device 300 may include a processing device (e.g., a central processing unit, a graphics processing unit, etc.) 301, which can perform various appropriate actions and processes according to a program stored in a read-only memory (ROM) 302 or a program loaded from a storage device 308 into a random access memory (RAM) 303. Various programs and data required for the operation of the electronic device 300 are also stored in the RAM 303. The processing device 301, the ROM 302, and the RAM 303 are connected to each other via a bus 304. An input / output (I / O) interface 305 is also connected to the bus 304.
[0113] Typically, the following devices may be connected to the I / O interface 305: an input device 306 including, for example, a touch screen, a touchpad, a keyboard, a mouse, a camera, a microphone, an accelerometer, a gyroscope, etc.; an output device 307 including, for example, a liquid crystal display (LCD), a speaker, a vibrator, etc.; a storage device 308 including, for example, a magnetic tape, a hard disk, etc.; and a communication device 309. The communication device 309 may allow the electronic device 300 to communicate with other devices wirelessly or by wire to exchange data. Figure 3 The electronic device 300 is shown with various devices, but it should be understood that it is not required to implement or possess all of the devices shown. More or fewer devices may be implemented or possessed instead. Figure 3 Each block shown in the figure may represent one device, or may represent multiple devices as needed.
[0114] In particular, according to some embodiments of the present disclosure, the processes described above with reference to the flowcharts can be implemented as computer software programs. For example, some embodiments of the present disclosure include a computer program product comprising a computer program carried on a computer-readable medium, the computer program comprising program code for executing the method shown in the flowchart. In some such embodiments, the computer program can be downloaded and installed from a network via the communication device 309, or installed from the storage device 308, or installed from the ROM 302. When the computer program is executed by the processing device 301, the above-mentioned functions defined in the method of some embodiments of the present disclosure are performed.
[0115] It should be noted that in some embodiments of the present disclosure, the computer-readable medium mentioned above may be a computer-readable signal medium or a computer-readable storage medium, or any combination of the two. The computer-readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or device, or any combination of the above. More specific examples of computer-readable storage media may include, but are not limited to: an electrical connection with one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above. In some embodiments of the present disclosure, the computer-readable storage medium may be any tangible medium containing or storing a program that can be used by or in conjunction with an instruction execution system, device, or device. In some embodiments of the present disclosure, the computer-readable signal medium may include a data signal propagated in baseband or as part of a carrier wave, which carries computer-readable program code. Such a propagated data signal may take a variety of forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the above. A computer-readable signal medium may also be any computer-readable medium other than a computer-readable storage medium that can transmit, propagate, or transport a program for use by or in conjunction with an instruction execution system, apparatus, or device. The program code contained on the computer-readable medium may be transmitted using any suitable medium, including but not limited to wires, optical cables, RF (radio frequency), etc., or any suitable combination thereof.
[0116] In some embodiments, the client and server can communicate using any currently known or future developed network protocol, such as HTTP (Hypertext Transfer Protocol), and can be interconnected with any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network ("LAN"), a wide area network ("WAN"), an internet (e.g., the Internet), and a peer-to-peer network (e.g., an ad hoc peer-to-peer network), as well as any currently known or future developed network.
[0117] The above-mentioned computer-readable medium may be included in the above-mentioned electronic device; or it may exist independently without being assembled into the electronic device. The above-mentioned computer-readable medium carries one or more programs. When the above-mentioned one or more programs are executed by the electronic device, the electronic device: obtains the set of files to be transmitted, the key generation parameter set sent by the key generation server, and the first user partial public-private key pair, wherein the above-mentioned key generation parameter set includes at least one of the following: an elliptic curve non-zero multiplication group, an elliptic curve addition generator, and a system public key; generates a second user partial public-private key pair based on the above-mentioned elliptic curve non-zero multiplication group and the above-mentioned elliptic curve addition generator; performs key splicing on the above-mentioned first user partial public-private key pair and the above-mentioned second user partial public-private key pair based on the above-mentioned system public key and the above-mentioned key generation parameter set to obtain a user public-private key pair. ; Determine the receiving user signature information of the file receiving user terminal set, wherein the file receiving user terminal in the above-mentioned file receiving user terminal set is the user terminal that receives the above-mentioned file set to be transmitted; perform file signcryption processing on the above-mentioned file set to be transmitted according to the above-mentioned user public-private key pair and the above-mentioned receiving user signature information to obtain a signcrypted transmission file; perform key encryption processing on the above-mentioned user public-private key pair to obtain an encryption key pair; segment the above-mentioned signcrypted transmission file to obtain a segmented signcrypted transmission file set; generate a file transmission byte stream according to the above-mentioned encryption key pair and the above-mentioned segmented signcrypted transmission file set; perform covert channel transmission on the above-mentioned file transmission byte stream for decryption and reception by the above-mentioned file receiving user terminal set.
[0118] Computer program code for performing the operations of some embodiments of the present disclosure may be written in one or more programming languages, or a combination thereof, including object-oriented programming languages such as Java, Smalltalk, C++, and conventional procedural programming languages such as "C" or similar programming languages. The program code may be executed entirely on the user's computer, partially on the user's computer, as a stand-alone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving a remote computer, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., through the Internet using an Internet service provider).
[0119] The flowcharts and block diagrams in the accompanying drawings illustrate the possible implementation architecture, functions and operations of the systems, methods and computer program products according to various embodiments of the present disclosure. In this regard, each box in the flowchart or block diagram can represent a module, program segment, or a part of code, and the module, program segment, or a part of code contains one or more executable instructions for realizing the specified logical function. It should also be noted that in some alternative implementations, the functions marked in the box can also occur in a different order than that marked in the accompanying drawings. For example, two boxes represented in succession can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each box in the block diagram and / or flowchart, and the combination of the boxes in the block diagram and / or flowchart, can be implemented with a dedicated hardware-based system that performs the specified function or operation, or can be implemented with a combination of dedicated hardware and computer instructions.
[0120] The units described in some embodiments of the present disclosure may be implemented in software or in hardware. The described units may also be provided in a processor, for example, they may be described as: a processor including an acquisition unit, a first generation unit, a key splicing unit, a determination unit, a file signcryption unit, a key encryption unit, a segmentation unit, a second generation unit, and a covert channel transmission unit. The names of these units do not, in some cases, constitute limitations on the units themselves. For example, the acquisition unit may also be described as a "unit for acquiring a set of files to be transmitted, a set of key generation parameters sent by a key generation server, and a partial public-private key pair of a first user."
[0121] The functions described above herein may be performed, at least in part, by one or more hardware logic components. For example, and without limitation, exemplary types of hardware logic components that may be used include: field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), systems on chip (SOCs), complex programmable logic devices (CPLDs), and the like.
[0122] The above description is only an illustration of some preferred embodiments of the present disclosure and the technical principles used. Those skilled in the art should understand that the scope of the invention involved in the embodiments of the present disclosure is not limited to the technical solutions formed by the specific combination of the above-mentioned technical features, but should also cover other technical solutions formed by any combination of the above-mentioned technical features or their equivalent features without departing from the above-mentioned inventive concept. For example, the above-mentioned features are replaced with (but not limited to) technical features with similar functions disclosed in the embodiments of the present disclosure.
Claims
1. A file encryption transmission method, comprising: Obtaining a set of files to be transferred, a key generation parameter set sent by a key generation server, and a partial public-private key pair of the first user, wherein the key generation parameter set includes: an elliptic curve non-zero multiplication group, an elliptic curve additive generator, a system public key, a first hash function, and an elliptic curve additive cyclic group; generating a second user partial public-private key pair according to the elliptic curve non-zero multiplicative group and the elliptic curve additive generator, wherein the second user partial public-private key pair comprises: a second user partial public key and a second user partial private key; Based on the second user partial private key, perform the following determination steps: Sending the user identity information and the second user partial public key to the key generation server, so that the key generation server generates the first user partial public-private key pair according to the user identity information, wherein the first user partial public-private key pair includes: the first user partial public key and the first user partial private key; Inputting the user identity information, the first target user partial public key, and the second user partial public key into a first hash function to obtain a user hash byte sequence, wherein the first target user partial public key is the first user partial public key received from the key generation server, and the first hash function represents a mapping function of a byte sequence of any length consisting of 0s or 1s, the domain of the elliptic curve additive cyclic group and the Cartesian product of the elliptic curve additive cyclic group, and an elliptic curve non-zero multiplicative group based on a target prime number; Determine the product of the user hash byte sequence and the system public key and the sum of the first target user partial public key as a first verification byte sequence; Determine a product of a first target user partial private key and the elliptic curve addition generator as a second verification byte sequence, wherein the first target user partial private key is the first user partial private key received from the key generation server; In response to determining that the first verification byte sequence and the second verification byte sequence are the same, concatenating the second user partial public key, the first user partial public key, and the second verification byte sequence to determine the user public key; Determine the inverse of the sum of the product of the user hash byte sequence and the second user partial private key and the first user partial private key as the user partial private key; Concatenate the second user partial private key and the user partial private key to obtain the user private key; Determine the user's public key and the user's private key as a user's public-private key pair; In response to determining that the first verification byte sequence and the second verification byte sequence are different, reselecting a value from the non-zero multiplication group of the elliptic curve as the second user partial private key to continue performing the determining step; Determining the signature information of a receiving user of a file receiving user terminal set, wherein the file receiving user terminals in the file receiving user terminal set are the user terminals that receive the file set to be transmitted; performing file signcryption processing on the file set to be transmitted based on the user public-private key pair and the signature information of the receiving user to obtain a signcrypted transmission file; Performing key encryption processing on the user's public and private key pair to obtain an encrypted key pair; Segmenting the signcrypted transmission file to obtain a segmented signcrypted transmission file set; generating a file transmission byte stream based on the encryption key pair and the segmented signcrypted transmission file set; The file transmission byte stream is transmitted via a covert channel so as to be decrypted and received by the file receiving user terminal set.
2. The method according to claim 1, wherein Generating a file transmission byte stream according to the encryption key pair and the segmented and signcrypted transmission file set includes: For each segmented post-signcryption transmission file in the segmented post-signcryption transmission file set, perform the following combined steps: Determine the message length, file encryption identification information, segment sequence number and receiving address information of the segmented and signed encrypted transmission file; Performing integrity check on the segmented and signed encrypted transmission file to obtain a file check value; Combining the message length, the file encryption identification information, the encryption key pair, the file check value, and the receiving address information to obtain transmission header information; Performing byte stream conversion on the transmission header information and the segmented signcrypted transmission file to obtain a transmission header byte stream and a transmission body byte stream; Combining the transmission header byte stream and the transmission body byte stream to obtain a file segment transmission byte stream; According to the obtained segment sequence numbers, the obtained file segment transmission byte streams are sequentially combined to obtain a file transmission byte stream.
3. The method according to claim 1, wherein The first user partial public-private key pair is obtained by the following steps: Screening non-zero values included in the non-zero multiplication group of the elliptic curve to obtain a first value and a second value; Determine a product of the first value and the elliptic curve addition generator as a first user partial public key; Inputting the user identity information, the first user partial public key, and the second user partial public key into the first hash function to obtain a first hash byte sequence; Determine a sum of a product of the second value and the first hash byte sequence and the first value as a first user partial private key; The first user part public key and the first user part private key are determined as a first user part public-private key pair.
4. The method according to claim 1, wherein The step of determining the signature information of the receiving user of the file receiving user terminal set includes: Determine a product of a third value and the elliptic curve additive generator as a user signature parameter, wherein the third value is a value in the non-zero multiplicative group of the elliptic curve; For each file receiving client in the file receiving client set, the following generation steps are performed: Determine the user public key and user identity information corresponding to the file receiving user terminal as the receiving user public key and receiving user identity information; Determine a product of a sum of a second user partial private key and a user partial private key included in the user private key and the third value as the first user signature; Determine the sum of the second receiving user partial public key, the first receiving user partial public key, the second receiving verification byte sequence, and the product of the receiving user hash byte sequence and the system public key, as the second user signature, wherein the receiving user hash byte sequence is a byte sequence obtained by inputting the first receiving user partial public key, the second receiving user partial public key, and the receiving user identity information into the first hash function; Determine a product of the first user signature and the second user signature as a target user signature; Inputting the receiving user identity information, the target user signature, and the user signature parameter into the first hash function to obtain a second hash byte sequence; Determine the sum of a difference between a sending signature parameter and the second hash byte sequence and a remainder of a fourth value divided by the target prime number as the receiving user signature item, wherein the fourth value is any value in the non-zero multiplication group of the elliptic curve, and the sending signature parameter is an unknown parameter; Perform cumulative multiplication processing on each received user signature item to obtain a user signature polynomial as the received user signature information.
5. The method according to claim 4, wherein The step of performing file signcryption processing on the set of files to be transmitted based on the user public-private key pair and the receiving user signature information to obtain a signcrypted transmission file includes: Performing a user signature on the file sending end corresponding to the set of files to be transferred according to the third value, the system public key, and the user public key included in the user public-private key pair to obtain a target user signature; Segmenting and obfuscating the file set to be transmitted to obtain an obfuscated reorganized file, wherein the obfuscated reorganized file includes file segmentation granularity information and segmented file location information; Inputting a fifth value into a second hash function and performing an XOR operation with the obfuscated reconstructed file to obtain a signcrypted file, wherein the second hash function represents a function of mapping a domain of a byte sequence of arbitrary length consisting of 0 or 1 and a non-zero multiplicative group of an elliptic curve based on a target prime number, and the fifth value is any value in the non-zero multiplicative group of the elliptic curve; Inputting the signcryption file, the target user signature, and the user signature parameter into the first hash function to obtain a third hash byte sequence; Determine a sum of the third hash byte sequence, the second user partial private key included in the user private key, and the user partial private key as a ciphertext validity parameter; The signcrypted file, the receiving user signature information, the user signature parameter, the target user signature and the ciphertext validity parameter are combined and spliced to obtain a signcrypted transmission file.
6. A file encryption transmission device comprising: an acquisition unit configured to acquire a set of files to be transferred, a set of key generation parameters sent by a key generation server, and a partial public-private key pair of a first user, wherein the set of key generation parameters includes: an elliptic curve non-zero multiplication group, an elliptic curve additive generator, a system public key, a first hash function, and an elliptic curve additive cyclic group; a first generating unit configured to generate a second user partial public-private key pair based on the elliptic curve non-zero multiplicative group and the elliptic curve additive generator, wherein the second user partial public-private key pair includes: a second user partial public key and a second user partial private key; The key splicing unit is configured to perform the following determination steps based on the second user partial private key: sending the user identity information and the second user partial public key to the key generation server, so that the key generation server generates the first user partial public-private key pair according to the user identity information, wherein the first user partial public-private key pair includes: a first user partial public key and a first user partial private key; inputting the user identity information, the first target user partial public key and the second user partial public key into a first hash function to obtain a user hash byte sequence, wherein the first target user partial public key is the first user partial public key sent by the key generation server, and the first hash function represents a byte sequence of any length consisting of 0 or 1, the domain of the elliptic curve additive cyclic group and the Cartesian product of the elliptic curve additive cyclic group, and a mapping function of the elliptic curve non-zero multiplication group based on the target prime number; determining the product of the user hash byte sequence and the system public key, and the product of the user hash byte sequence and the system public key. the sum of the first target user partial public key as a first verification byte sequence; determining the product of the first target user partial private key and the elliptic curve addition generator as a second verification byte sequence, wherein the first target user partial private key is the first user partial private key received from the key generation server; in response to determining that the first verification byte sequence and the second verification byte sequence are the same, concatenating the second user partial public key, the first user partial public key, and the second verification byte sequence to determine the user public key; determining the product of the user hash byte sequence and the second user partial private key and the inverse of the sum of the first user partial private key as the user partial private key; concatenating the second user partial private key and the user partial private key to obtain the user private key; determining the user public key and the user private key as a user public-private key pair; in response to determining that the first verification byte sequence and the second verification byte sequence are different, reselecting a value from the non-zero multiplication group of the elliptic curve as the second user partial private key, so as to continue executing the determining step; a determining unit configured to determine signature information of a receiving user of a file receiving user terminal set, wherein the file receiving user terminals in the file receiving user terminal set are user terminals that receive the file set to be transmitted; A file signcryption unit is configured to perform file signcryption processing on the set of files to be transmitted according to the user public-private key pair and the receiving user signature information to obtain a signcrypted transmission file; a key encryption unit configured to perform key encryption processing on the user public-private key pair to obtain an encrypted key pair; A segmentation unit is configured to segment the signcrypted transmission file to obtain a segmented signcrypted transmission file set; A second generating unit is configured to generate a file transmission byte stream according to the encryption key pair and the segmented and signed encrypted transmission file set; The covert channel transmission unit is configured to perform covert channel transmission on the file transmission byte stream for decryption and reception by the file receiving user terminal set.
7. An electronic device comprising: one or more processors; a storage device having one or more programs stored thereon, When the one or more programs are executed by the one or more processors, the one or more processors implement the method according to any one of claims 1 to 5.
8. A computer-readable medium having a computer program stored thereon, wherein: When the computer program is executed by a processor, the method according to any one of claims 1 to 5 is implemented.
Citation Information
Patent Citations
Multi-receiver signcryption method based on interpolation polynomial
CN111934887A
Concealed channel transmission method based on SSL protocol complete communication
CN114666073A