A message publishing method, device and storage medium

By using group public and private key pairs and the public and private key pairs of each confusion server for encryption and nested encryption in the blockchain technology and confusion server network, combined with the message confusion method of position replacement, the identity anonymity in the existing technology is solved. Protection and malicious node detection issues, achieving efficient anonymous message publishing and system reliability.

CN114430318BActive Publication Date: 2025-01-24CHINA MOBILE COMM LTD RES INST +1
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202011096155.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-10-14
Publication Date
2025-01-24
Estimated Expiration
2040-10-14

AI Technical Summary

Technical Problem

In the anonymous message and privacy protection based on blockchain technology, the prior art fails to effectively protect the identity anonymity of both parties or parties of the transaction, and does not consider the detection and exclusion of untrusted obfuscated nodes.

Method used

By obtaining the public private key pair of the public private key pair at the message sending end, and the public private key pair of each confusing server, layers of encryption and nested and encrypted, combined with the blockchain technology and the confusion server network to confuse Sexuality and irreversible.

Benefits of technology

The anonymous protection of the identity of both parties or a certain parties, detecting and identifying the malicious confusion server, which improves the availability and strength fault of the system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114430318B_ABST
    Figure CN114430318B_ABST
Patent Text Reader

Abstract

The present invention discloses a message publishing method, device and storage medium, the method comprising: obtaining first encrypted information, using the first encrypted information to encrypt the first message to obtain a second message; obtaining second encrypted information, using the second encrypted information to perform nested encryption on the second message to obtain a third message; sending the third message; the third message is presented after being obfuscated by an obfuscation server network; the obfuscation server network comprises at least two obfuscation servers; the message obfuscation comprises at least position replacement.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of security, and in particular to a message publishing method, device and storage medium. Background Art

[0002] In recent years, anonymous message publishing and obfuscation have been hot topics in the field of privacy protection research. Combining them with blockchain technology can achieve the characteristics of non-tamperability, irreversibility, and traceability of related operation records.

[0003] At present, the industry has carried out a series of research works on anonymous messaging and privacy protection technologies based on blockchain technology. However, most of them rely on encryption and decryption to protect the privacy of transaction data, but do not consider the protection of the anonymity of the identities of both parties or one party to the transaction. Summary of the invention

[0004] In view of this, the main purpose of the present invention is to provide a message publishing method, device and storage medium.

[0005] To achieve the above object, the technical solution of the present invention is achieved as follows:

[0006] An embodiment of the present invention provides a message publishing method, which is applied to a message sending end, and the method includes:

[0007] Obtaining first encryption information, and using the first encryption information to encrypt the first message to obtain a second message;

[0008] Obtaining second encrypted information, and performing nested encryption on the second message using the second encrypted information to obtain a third message;

[0009] The third message is sent; the third message is presented after being obfuscated by the obfuscation server network; the obfuscation server network includes at least two obfuscation servers; the message obfuscation includes at least position replacement.

[0010] In the above solution, the obtaining of the first encrypted information includes:

[0011] Obtaining first encrypted information from a first block in the blockchain; wherein the first encrypted information includes a group public-private key pair for encrypting a message; the group public-private key pair is generated by at least two obfuscation servers in the obfuscation server network;

[0012] Accordingly, the using the first encryption information to encrypt the first message includes:

[0013] The first message is encrypted using the group public key in the group public-private key pair.

[0014] In the above solution, the obtaining of the second encrypted information includes:

[0015] Obtaining second encrypted information from the first block in the blockchain; wherein the second encrypted information includes: a public-private key pair generated by each of the at least two obfuscation servers;

[0016] Correspondingly, the using the second encryption information to perform nested encryption on the second message includes:

[0017] The second message is nestedly encrypted using the public key in the public-private key pair generated by each of the obfuscation servers.

[0018] In the above scheme, the method further comprises:

[0019] Obtaining a fourth message set; the fourth message set includes messages that are presented after being obfuscated by the obfuscation server network;

[0020] Determine that the second message belongs to the fourth message set, and send a confirmation message to the obfuscation server network; the confirmation message is received by the obfuscation server network and instructs the obfuscation server network to decrypt the fourth message set and then present it;

[0021] Determine that the second message does not belong to the fourth message set, obtain an encrypted intermediate message set; determine a target obfuscation server based on the encrypted intermediate message set; wherein the encrypted intermediate messages in the encrypted intermediate message set are messages included in a nested encryption process; each of the encrypted intermediate messages corresponds to an obfuscation server identifier corresponding to a public key used for encryption; the target obfuscation server represents a server that does not meet the obfuscation requirements.

[0022] In the above scheme, determining the target obfuscation server according to the encrypted intermediate message set includes:

[0023] Determine a verification message corresponding to each layer of encryption in the nested encryption process of the second message; the verification message corresponding to each layer of encryption corresponds to an identifier of an obfuscation server of a public key used;

[0024] Determining a set of encrypted intermediate messages published by each of the obfuscation servers;

[0025] According to the encrypted intermediate message set published by each obfuscation server, the verification message corresponding to each layer of encryption and the identifier of the obfuscation server of the public key used, the obfuscation server that does not contain the corresponding verification message in the encrypted intermediate message set and meets the obfuscation order symbol requirement is determined as the target obfuscation server.

[0026] In the above scheme, the method further comprises:

[0027] According to the information corresponding to the target obfuscation server, the target obfuscation server table in the blockchain is updated.

[0028] An embodiment of the present invention provides a message publishing method, which is applied to an obfuscation server. The method includes:

[0029] Obtain at least two first ciphertexts;

[0030] Determine first decryption information, and use the first decryption information to decrypt each of the first ciphertexts to obtain at least two fifth messages;

[0031] Permuting the positions of the at least two fifth messages to obtain at least two fifth messages after position permutation;

[0032] The at least two fifth messages after the position replacement are sent to the message publishing end; the at least two fifth messages after the position replacement are presented through the message publishing end.

[0033] In the above scheme, the obfuscation server belongs to an obfuscation server network; the obfuscation server network includes at least two obfuscation servers arranged in sequence; each obfuscation server has a corresponding order number;

[0034] The step of sending the at least two fifth messages after the positions have been replaced to the message publishing terminal comprises:

[0035] Determine the sorting number of the obfuscation server as the last number, sign the at least two fifth messages after the position replacement as an output message set and send them to the message publishing end; the sorting number represents the obfuscation order of the obfuscation server;

[0036] Determine that the sorting number of the obfuscation server is not the last number, sign the at least two fifth messages and send them to the message publishing end; the at least two fifth messages are replaced by other obfuscation servers related to the sorting number of the obfuscation server; and so on, until the obfuscation server corresponding to the last number signs the at least two fifth messages after the position replacement as the output message set and sends them to the message publishing end.

[0037] In the above solution, before signing the at least two fifth messages after position replacement as an output message set and sending the signed messages to the message publishing terminal, the method may further include:

[0038] Obtaining a confirmation message; the confirmation message indicates that the obfuscation server network does not include a target obfuscation server;

[0039] According to the confirmation message, obtaining a group private key corresponding to the obfuscation server network;

[0040] The at least two fifth messages are decrypted using the group private key to obtain and present the first information corresponding to each of the fifth messages.

[0041] An embodiment of the present invention provides a message publishing device, which is applied to a message sending end, and the device includes:

[0042] A first processing module, configured to obtain first encrypted information, and use the first encrypted information to encrypt the first message to obtain a second message;

[0043] A second processing module is used to obtain second encrypted information, and use the second encrypted information to perform nested encryption on the second message to obtain a third message;

[0044] The first communication module is used to send the third message; the third message is presented after being obfuscated by the obfuscation server network; the obfuscation server network includes at least two obfuscation servers; the message obfuscation includes at least position replacement.

[0045] In the above solution, the first processing module is used to obtain first encrypted information from the first block in the blockchain; wherein the first encrypted information includes a group public-private key pair for encrypting a message; the group public-private key pair is generated by at least two obfuscation servers in the obfuscation server network;

[0046] Accordingly, the using the first encryption information to encrypt the first message includes:

[0047] The first message is encrypted using the group public key in the group public-private key pair.

[0048] In the above solution, the second processing module is used to obtain second encrypted information from the first block in the blockchain; wherein the second encrypted information includes: a public-private key pair generated by each of the at least two obfuscation servers;

[0049] Correspondingly, the using the second encryption information to perform nested encryption on the second message includes:

[0050] The second message is nestedly encrypted using the public key in the public-private key pair generated by each of the obfuscation servers.

[0051] In the above solution, the device further includes: a third processing module, used to obtain a fourth message set; the fourth message set includes messages presented after being obfuscated by the obfuscation server network;

[0052] Determine that the second message belongs to the fourth message set, and send a confirmation message to the obfuscation server network; the confirmation message is received by the obfuscation server network and instructs the obfuscation server network to decrypt the fourth message set and then present it;

[0053] Determine that the second message does not belong to the fourth message set, obtain an encrypted intermediate message set; determine a target obfuscation server based on the encrypted intermediate message set; wherein the encrypted intermediate messages in the encrypted intermediate message set are messages included in a nested encryption process; each of the encrypted intermediate messages corresponds to an obfuscation server identifier corresponding to a public key used for encryption; the target obfuscation server represents a server that does not meet the obfuscation requirements.

[0054] In the above scheme, the third processing module is used to determine the verification message corresponding to each layer of encryption in the process of nested encryption of the second message; the verification message corresponding to each layer of encryption corresponds to the identifier of the obfuscation server of the public key used;

[0055] Determining a set of encrypted intermediate messages published by each of the obfuscation servers;

[0056] According to the encrypted intermediate message set published by each obfuscation server, the verification message corresponding to each layer of encryption and the identifier of the obfuscation server of the public key used, the obfuscation server that does not contain the corresponding verification message in the encrypted intermediate message set and meets the obfuscation order symbol requirement is determined as the target obfuscation server.

[0057] In the above solution, the device also includes: a fourth processing module, used to update the target obfuscation server table in the blockchain according to the information corresponding to the target obfuscation server.

[0058] An embodiment of the present invention provides a message publishing device, which is applied to an obfuscation server, and the device includes:

[0059] A second communication module, used to obtain at least two first ciphertexts;

[0060] an obfuscation module, configured to determine first decryption information, and use the first decryption information to decrypt each of the first ciphertexts to obtain at least two fifth messages;

[0061] Permuting the positions of the at least two fifth messages to obtain at least two fifth messages after position permutation;

[0062] The second communication module is further used to send the at least two fifth messages after the position replacement to the message publishing end; the at least two fifth messages after the position replacement are presented through the message publishing end.

[0063] In the above scheme, the obfuscation server belongs to an obfuscation server network; the obfuscation server network includes at least two obfuscation servers arranged in sequence; each obfuscation server has a corresponding order number;

[0064] The second communication module is used to determine that the sorting number of the obfuscation server is the last number, and to sign the at least two fifth messages after the position replacement as an output message set and send them to the message publishing end; the sorting number represents the obfuscation order of the obfuscation server;

[0065] Determine that the sorting number of the obfuscation server is not the last number, sign the at least two fifth messages and send them to the message publishing end; the at least two fifth messages are replaced by other obfuscation servers related to the sorting number of the obfuscation server; and so on, until the obfuscation server corresponding to the last number signs the at least two fifth messages after the position replacement as the output message set and sends them to the message publishing end.

[0066] In the above scheme, the second communication module is further used to obtain a confirmation message before signing the at least two fifth messages after the position replacement as an output message set and sending them to the message publishing terminal; the confirmation message indicates that the obfuscation server network does not include the target obfuscation server;

[0067] According to the confirmation message, obtaining a group private key corresponding to the obfuscation server network;

[0068] The at least two fifth messages are decrypted using the group private key to obtain and present the first information corresponding to each of the fifth messages.

[0069] An embodiment of the present invention provides a message publishing device, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein when the processor executes the program, the steps of any one of the message publishing methods executed by the message sending end are implemented; or,

[0070] When the processor executes the program, the steps of any one of the message publishing methods executed by the obfuscation server are implemented.

[0071] An embodiment of the present invention provides a computer-readable storage medium on which a computer program is stored. When the computer program is executed by a processor, the steps of any one of the message publishing methods executed by the message sending end are implemented; or,

[0072] When the computer program is executed by a processor, the steps of any one of the message publishing methods executed by the obfuscation server are implemented.

[0073] The embodiment of the present invention provides a message publishing method, device and storage medium, the method comprising: the message sending end obtains the first encrypted information, uses the first encrypted information to encrypt the first message to obtain the second message; obtains the second encrypted information, uses the second encrypted information to perform nested encryption on the second message to obtain the third message; sends the third message; the third message is presented after being obfuscated by the obfuscation server network; the obfuscation server network includes at least two obfuscation servers; the message obfuscation includes at least position replacement. Correspondingly, the obfuscation server obtains at least two first ciphertexts; determines the first decryption information, uses the first decryption information to decrypt each of the first ciphertexts to obtain at least two fifth messages; performs position replacement on the at least two fifth messages to obtain at least two fifth messages after position replacement; sends the at least two fifth messages after position replacement to the message publishing end; the at least two fifth messages after position replacement are presented through the message publishing end; in this way, the anonymity of the identity of the two parties to the transaction or one party (i.e., the message sending end) is protected. BRIEF DESCRIPTION OF THE DRAWINGS

[0074] Figure 1 A flow chart of a message publishing method provided by an embodiment of the present invention;

[0075] Figure 2 A flowchart of another message publishing method provided by an embodiment of the present invention;

[0076] Figure 3 A flowchart of another message publishing method provided by an embodiment of the present invention;

[0077] Figure 4 A schematic diagram of an anonymous message publishing system provided by an embodiment of the present invention;

[0078] Figure 5 A schematic diagram of the management of an anonymous message publishing system based on blockchain provided by an embodiment of the present invention;

[0079] Figure 6 A schematic diagram of the principle of message obfuscation provided by an embodiment of the present invention;

[0080] Figure 7 A schematic diagram of a flow chart of a message obfuscation method provided by an embodiment of the present invention;

[0081] Figure 8 A schematic diagram of the structure of a message publishing device provided by an embodiment of the present invention;

[0082] Fig. 9 A structural diagram of another message publishing device provided by an embodiment of the present invention

[0083] Fig.10A schematic diagram of the structure of another message publishing device provided in an embodiment of the present invention. DETAILED DESCRIPTION

[0084] The present invention will be further described in detail in conjunction with embodiments.

[0085] As mentioned above, anonymous message publishing and obfuscation have always been hot issues in the field of privacy protection research. Combining them with blockchain technology can achieve the characteristics of irreversibility, irrevocability, and traceability of related operation records. Related technologies for anonymous messages and privacy protection based on blockchain technology include the following:

[0086] Method 1: A method for protecting privacy data on the blockchain, which protects the privacy of transaction data by combining public key and symmetric key encryption and other means; specifically, when the two parties to a transaction on the blockchain conduct a transaction and obtain the generated transaction information, a symmetric encryption key is generated, the private data is encrypted by the key, and the symmetric encryption key is encrypted by the public key of the access end of the private data, the encrypted private data and the symmetric encryption key are packaged and uploaded to the chain, and when the private data needs to be viewed, the private data is decrypted by the private keys of the access ends to obtain the private data.

[0087] Method 2: A user privacy anonymity protection method based on blockchain, which includes three roles: user, obfuscation service provider and public log. Blind signatures, multiple threshold signatures and mixed networks are applied to similar electronic currencies such as Bitcoin to improve the ability to protect user privacy anonymity. A user privacy anonymity protection method based on blockchain is proposed.

[0088] Method three: A transaction data obfuscation method based on blockchain, which is used to obfuscate transactions of supplier node devices, regulatory agency node devices, etc.; specifically includes: receiving an obfuscation request sent by a supplier node device for a target confidential transaction; using a target random number to obfuscate the target confidential transaction to obtain an obfuscated transaction; obtaining a random mapping parameter and a first challenge parameter after signing from a regulatory agency node device; performing a product proof and a power proof; and outputting the obfuscated transaction, the result of the product proof, and the result of the power proof.

[0089] With respect to the above method, the shortcomings of the existing technology can be summarized as follows: the main application scenario is the protection of transaction data based on blockchain; it mainly relies on encryption and decryption to protect the privacy of transaction data, rather than the anonymity of the identities of the two or one party to the transaction; it does not consider the detection and exclusion of untrusted obfuscated nodes; and it does not address the specific issue of anonymous message publishing.

[0090] Based on this, the method provided by the embodiment of the present invention is that the message sending end obtains the first encrypted information, uses the first encrypted information to encrypt the first message to obtain the second message; obtains the second encrypted information, uses the second encrypted information to perform nested encryption on the second message to obtain the third message; sends the third message; the third message is presented after being obfuscated by the obfuscation server network; the obfuscation server network includes at least two obfuscation servers; the message obfuscation includes at least position replacement. Accordingly, the obfuscation server obtains at least two first ciphertexts; determines the first decryption information, uses the first decryption information to decrypt each of the first ciphertexts to obtain at least two fifth messages; performs position replacement on the at least two fifth messages to obtain at least two fifth messages after position replacement; sends the at least two fifth messages after position replacement to the message publishing end; the at least two fifth messages after position replacement are presented through the message publishing end.

[0091] Figure 1 A flow chart of a message publishing method provided by an embodiment of the present invention; Figure 1 As shown, the method is applied to a message sending end, which may be a mobile phone, a tablet computer, a computer or other device; the method may include:

[0092] Step 101: Obtain first encryption information, and use the first encryption information to encrypt a first message to obtain a second message;

[0093] Step 102: Obtain second encryption information, and use the second encryption information to perform nested encryption on the second message to obtain a third message;

[0094] Step 103: Send the third message; the third message is obfuscated by the obfuscation server network and then presented;

[0095] The obfuscation server network includes at least two obfuscation servers; the message obfuscation includes at least position replacement.

[0096] Specifically, the first encrypted information and the second encrypted information are generated by at least two obfuscation servers and stored in the blockchain. Alternatively, it can be understood that there are one or more obfuscation server networks in the obfuscation server network as one or more nodes in the blockchain, and the first encrypted information and the second encrypted information are obtained from the corresponding nodes.

[0097] The first encrypted information and the second encrypted information are first described below.

[0098] Second encrypted information: For a probabilistic public key encryption system that is secure and satisfies multiplicative homomorphism, each obfuscation server (which can be recorded as MS1, MS2, MS3, ..., MSt) generates a public-private key pair for message encryption (i.e., the second encrypted information), which can be recorded as {(PK1, SK1), (PK2, SK2), ..., (PKt, SKt)}, signs the public key with the private key, and publishes the public key together with the signature information {(PK1, SIG1), (PK2, SIG2), ..., (PKt, SIGt)} (or certificate information containing the public key and signature) on the blockchain. Among them, the public-private key pair (or certificate) of the obfuscation server can be reused.

[0099] It should be noted that the public key encryption system in this embodiment needs to be a probabilistic encryption algorithm and satisfy multiplicative homomorphism, that is, for any plaintext m1 and m2, use random numbers r1 and r2 to encrypt m1 and m2 respectively, that is, ENC (m1, r1), ENC (m2, r2), then there exists r3 that satisfies:

[0100] ENC(m1*m2,r3)=ENC(m1,r1)*ENC(m2,r2); wherein ENC represents an encryption algorithm.

[0101] Taking the ElGamal algorithm as an example, the generator g of the finite q-order cyclic group G, the obfuscated server MSi randomly selects an integer xi from {1, 2, ..., q-1}, then (g xi , xi) is the public and private key (PKi, Ski) of MSI, which encrypts messages m1 and m2, that is, calculates:

[0102] ENC(m1,r1)=(g r1 ,m1*g xi*r1 ), ENC(m2,r2)=(g r2 ,m2*g xi*r2 );

[0103] Then, r3=r1+r2 is the result of encrypting m1*m2 using r1+r2 as the random number:

[0104] ENC(m1*m2,r1+r2)=(g r1+r2 ,m1*m2*g xi*(r1+r2) )=ENC(m1,r1)*ENC(m2,r2).

[0105] First encrypted information: The obfuscation servers MS1, MS2, MS3, ..., MSt respectively generate group public-private key pairs (GPK1, GSK1), (GPK2, GSK2), ..., (GPKt, GSKt) for message group encryption, i.e., the first encrypted information; at the same time, the obfuscation servers commit to the group public key and publish the group public key commitment information CM_GSK1, CM_GSK2, ..., CM_GSKt on the message publishing terminal respectively;

[0106] After all group public key commitment information is released, obfuscation servers MS1, MS2, MS3, …, MSt respectively publish the group public keys GPK1, GPK2, …, GPKt and the corresponding commitment verification information on the message publishing end, and all participants can use the group public key and commitment public information to verify the commitment CM_GSK1, CM_GSK2, …, CM_GSKt; after the verification is passed, the obfuscation servers MS1, MS2, MS3, …, MSt publish the group public key together with the signature information GPK1, GPK2, …, GPKt on the blockchain.

[0107] Since the public key encryption system selected in this embodiment satisfies multiplicative homomorphism, the message senders S1, S2, ..., Sn and any participating party can calculate the final group public key of MS1, MS2, MS3, ..., MSt based on GPK1, GPK2, ..., GPKt: GPK = GPK1*GPK2*...*GPKt.

[0108] It should be noted that the public and private key pair of the obfuscation server can only be used in a single obfuscation process and cannot be reused.

[0109] The above commitment can be implemented in many ways. Taking Pederson commitment as an example, two different generators g and h of the finite q-order cyclic group G are randomly selected;

[0110] For i=1, 2, ..., t, the obfuscation server MSi randomly selects an integer ki from {1, 2, ..., q-1}, then (g ki , ki) is the corresponding group public and private key (GPKi, GSKi), and the public key commitment is calculated using the random number ri and announced, that is, calculation: CM_GPKi = g ki h ri ;

[0111] After all obfuscation servers publish the commitment information, in order to verify the correctness of the group public key commitment, for i = 1, 2, ..., t, the obfuscation server MSi publishes the random number ri and the public key g ki , any participant can calculate g ki h ri Is it equal to the public commitment of MSi?ki h ri ;

[0112] After the commitment verification is passed, the message senders S1, S2, ..., Sn and any participating parties can calculate the group public key GPK = GPK1*GPK2*...*GPKt as follows:

[0113] g k =g k1 g k2 ... kt =g k1+k2+...+kt .

[0114] Here, the first encrypted information is generated by the above-mentioned mechanism of generating and publishing the group key, which is used for subsequent detection and identification of malicious obfuscation servers and prevention of identity information leakage.

[0115] In combination with the above description of the first encrypted information and the second encrypted information, encryption description of using the first encrypted information and the second encrypted information is given.

[0116] In one embodiment, in step 101, obtaining the first encrypted information includes:

[0117] Obtaining first encrypted information from a first block in the blockchain; wherein the first encrypted information includes a group public-private key pair for encrypting a message; the group public-private key pair is generated by at least two obfuscation servers in the obfuscation server network;

[0118] Accordingly, the using the first encryption information to encrypt the first message includes:

[0119] The first message is encrypted using the group public key in the group public-private key pair.

[0120] Here, the group public-private key pair includes: a group public key and a group private key; the group public key is used for encryption, and the group private key is used for decrypting a message encrypted by the group public key.

[0121] The group public-private key pair is generated by at least two obfuscation servers in the obfuscation server network; it can be understood that it is generated based on the group public-private key pair corresponding to each obfuscation server in the at least two obfuscation servers;

[0122] For example, the group public keys in the group public-private key pair corresponding to each obfuscation server may be multiplied, and the result obtained may be used as the final group public key, that is, the group public key used in the first encrypted information.

[0123] In one embodiment, in step 102, obtaining the second encrypted information includes:

[0124] Obtaining second encrypted information from the first block in the blockchain; wherein the second encrypted information includes: a public-private key pair generated by each of the at least two obfuscation servers;

[0125] Correspondingly, the using the second encryption information to perform nested encryption on the second message includes:

[0126] The second message is nestedly encrypted using the public key in the public-private key pair generated by each of the obfuscation servers.

[0127] Here, the public-private key pair includes: a public key and a private key; the public key is used for encryption, and the private key is used for decrypting a message encrypted with the public key.

[0128] The public key in the second encrypted information satisfies multiplication homomorphism and is generated based on a probabilistic encryption algorithm.

[0129] For example, for a message INi (i=1, 2, ..., n) in the input message set {IN1, IN2, ..., INn}, its corresponding message sending end Si uses the group public key to encrypt the first message INi, that is, GCi=ENC(GPK, INi);

[0130] For the message GCi (i=1, 2, ..., n) in the encrypted message set {GC1, GC2, ..., GCn}, the corresponding message sending end Si respectively performs nested encryption on the second message GCi, that is, GCi is encrypted layer by layer using the public keys PKt, PKt-1, PKt-2, ..., PK1 corresponding to the obfuscated servers MSt, MSt-2, MSt-2, ..., MS1, namely:

[0131] Ci=ENC(PK1,...ENC(PKt-2,ENC(PKt-1,ENC(PKt,GCi))));

[0132] After the message sending end Si completes the encryption process on GCi, it obtains the final ciphertext Ci (ie, the third message) and publishes the ciphertext Ci to the message publishing end.

[0133] Specifically, taking the ElGamal algorithm as an example, the obtaining of first encryption information, and encrypting the first message using the first encryption information to obtain the second message includes:

[0134] For the first message INi input, the message sender Si uses the group public key g k Encrypt the first message INi, that is, select a random number ri, and calculate the ciphertext GCi as the second message;

[0135] GCi=(g ri ,INi*gk*ri );

[0136] The obtaining of the second encrypted information and performing nested encryption on the second message using the second encrypted information to obtain the third message includes:

[0137] For the encrypted intermediate message TVij+1 output using the public key PKj+1 of the obfuscation server MSj+1, the message sender Si uses the public key PKj=g corresponding to the obfuscation server MSj. xj Encryption; that is, select a random number rij and calculate the ciphertext TVj: TVij = (g rij ,TVij+1*g xj*rij ).

[0138] The second message, ie, the ciphertext GCi, is nested and encrypted according to the above steps until the final ciphertext Ci (ie, the third message) is obtained by encrypting using the public key PK1 corresponding to the obfuscation server MS1, and the ciphertext Ci is published to the message publishing terminal.

[0139] In actual application, the message sender can check the message set {GC} published by the obfuscation server MSt and try to identify malicious obfuscation servers.

[0140] Based on this, in one embodiment, the method further includes:

[0141] Step 104: Detect whether there is a malicious obfuscation server; if it is determined that there is a malicious obfuscation server, identify the malicious obfuscation server.

[0142] The detecting whether there is a malicious obfuscation server includes:

[0143] Obtaining a fourth message set; the fourth message set includes messages that are presented after being obfuscated by the obfuscation server network;

[0144] Determine that the second message belongs to the fourth message set, and send a confirmation message to the obfuscation server network; the confirmation message is received by the obfuscation server network and instructs the obfuscation server network to decrypt the fourth message set and then present it;

[0145] Determine that the second message does not belong to the fourth message set, obtain an encrypted intermediate message set; determine a target obfuscation server based on the encrypted intermediate message set; wherein the encrypted intermediate messages in the encrypted intermediate message set are messages included in a nested encryption process; each of the encrypted intermediate messages corresponds to an obfuscation server identifier corresponding to a public key used for encryption; the target obfuscation server represents a server that does not meet the obfuscation requirements.

[0146] Among them, the fourth message set includes messages presented after message obfuscation by the obfuscation server network, that is, the fourth message set is a message set after each obfuscation server in the obfuscation server network has performed layer-by-layer decryption using its own private key, but without using the group private key to decrypt.

[0147] Wherein, determining the target obfuscation server according to the encrypted intermediate message set includes:

[0148] Determine a verification message corresponding to each layer of encryption in the nested encryption process of the second message; the verification message corresponding to each layer of encryption corresponds to an identifier of an obfuscation server of a public key used;

[0149] Determining a set of encrypted intermediate messages published by each of the obfuscation servers;

[0150] According to the encrypted intermediate message set published by each obfuscation server, the verification message corresponding to each layer of encryption and the identifier of the obfuscation server of the public key used, the obfuscation server that does not contain the corresponding verification message in the encrypted intermediate message set and meets the obfuscation order symbol requirement is determined as the target obfuscation server.

[0151] Here, the verification message corresponding to each layer of encryption in the nested encryption process is, that is, in the nested encryption process, a message obtained after encryption using the public key corresponding to each obfuscation server.

[0152] If there is no malicious obfuscation server (i.e., the target obfuscation server), the verification message obtained by each layer of encryption should belong to the set of encrypted intermediate messages issued by each obfuscation server. For example, in the absence of malicious obfuscation servers, in the nested encryption process, a message A is encrypted using the public key corresponding to a certain obfuscation server MSa to obtain an encrypted message B; in the message obfuscation process, the obfuscation server MSa should use its own private key to decrypt the encrypted message B to obtain message A; that is, the message A should belong to the set of encrypted intermediate messages output by the obfuscation server MSa.

[0153] The obfuscation order represents the order in which each obfuscation server in the obfuscation server network performs message obfuscation;

[0154] The obfuscation server required by the obfuscation order symbol represents the obfuscation server that first has an error (that is, the encrypted intermediate message set does not contain the corresponding verification message).

[0155] Specifically, the identification of malicious obfuscated servers includes:

[0156] Step 1041, the message publishers S1, S2, ..., Sn respectively check whether the encrypted intermediate messages GC1, GC2, ..., GCn in step 103 appear in the set {GC};

[0157] Here, the set {GC} is consistent with the content of the message set {GCi, i=1, 2, ..., n}, but the message order of the set {GC} is fully obfuscated by the t-layer obfuscation server.

[0158] Step 1042: If the check is passed and GC1, GC2, ..., GCn (equivalent to the second message) all appear in the set {GC} (equivalent to the fourth message set), the obfuscation servers MS1, MS2, ..., MSt publish their respective group private keys GSK1, GSK2, ..., GSKt.

[0159] According to the multiplicative homomorphism of the encryption system, the final group private key value GSK can be calculated from the group private keys GSK1, GSK2, ..., GSKt, and GSK is used to decrypt GCi (i = 1, 2, ..., n), that is:

[0160] OUTi=DEC(GPK,GCi);

[0161] Among them, the content of {OUT1, OUT2, ..., OUTn} is consistent with the input message set {IN1, IN2, ..., INn}, but the message sequence has been fully obfuscated by the t-layer obfuscation server, and the output message set {OUT1, OUT2, ..., OUTn} is published on the message publishing end to complete the obfuscation and publication of the input message.

[0162] Step 1043, the check fails, there are several {p1, p2, ..., pm}, and GCP1, GCP2, ..., GCpm do not appear in the set {GC} (pm represents the identifier of the error message that appears, and the error message here refers to the message that does not appear in the set {GC}: GCP1, GCP2, ..., GCpm), there is a malicious obfuscation server, obfuscation fails, and the malicious obfuscation server is identified.

[0163] The identifying of malicious obfuscated servers comprises:

[0164] 1043-1), for all elements pj in the set {p1, p2, ..., pm}, the message sender Spj (specifically, the sender whose information may be maliciously obfuscated) verifies the encrypted intermediate message set {TV'qj+1} published and signed by the obfuscated server MSqj, qj=1, 2, ..., t on the message publishing end, and finds the minimum qj value that satisfies: when performing each layer of nested encryption in step 102, the original encrypted intermediate message TVpj,qj+1 of a certain layer does not appear in {TV'qj+1}, and step 1 When each layer of nested encryption is performed in 02, the original encrypted intermediate message TVpj,qj of the previous layer of encryption TVpj,qj+1 appears in {TV'qj}, then the message sender Spj marks the obfuscated server MSqj to be verified as a malicious obfuscated server, and sends the obfuscated server MSqj to be verified together with the evidence {{TV'qj+1},{TV'qj},rand}, where rand represents the random number TVpj,qj obtained by the message sender Spj after encrypting TVpj,qj+1, and publishes it at the message publishing end, and then exits this obfuscation.

[0165] Here, any third party can calculate based on rand: TVpj,qj=ENC(PKqj,TVpj,qj+1);

[0166] Due to the characteristics of the probabilistic encryption algorithm, it can be seen that TVpj,qj is indeed the encryption result of TVpj,qj+1 using the random number rand, and the sender Spj cannot forge it; at the same time, TVpj,qj+1 does not appear in {TV'qj+1} published by MSqj, which shows that MSqj is indeed a malicious obfuscation server.

[0167] Taking ElGamal as an example, assuming a=TVpj,qj、b=TVpj,qj+1、PKqj=g xqj , then a=ENC(PKqj,b), that is: a=(g rand ,b*g rand*xqj );

[0168] According to the characteristics of the probabilistic encryption algorithm, it is impossible for the sender to forge another different plaintext TVpj,qj+1, and the encrypted result is TVpj,qj. At the same time, TVpj,qj+1 does not appear in TV'qj+1 published by MSqj, so it can be known that MSqj is indeed a malicious obfuscation server.

[0169] 1043-2), the malicious obfuscation servers in 1043-1) are summarized to obtain a set of malicious obfuscation servers {MSq1, MSq2, ..., MSqm} (it is possible that the same obfuscation server is repeatedly marked by multiple senders).

[0170] Here, in step 1043-1, if the obfuscation is successful, the final information is decrypted and published based on the group key, and the information is published without destroying the anonymity of the identity; in step 1043-2, if the obfuscation fails, the intermediate results are compared by decrypting layer by layer, and the malicious obfuscation server is detected and identified, and the corresponding malicious obfuscation server (i.e., the above-mentioned target obfuscation server) can be detected.

[0171] In one embodiment, the method further comprises:

[0172] According to the information corresponding to the target obfuscation server, the target obfuscation server table in the blockchain is updated.

[0173] Specifically, if the obfuscation is successful, the obfuscation server {MS1, MS2, …, MSt} can permanently publish the serial number, operation time, parameter configuration, success result and status of this obfuscation on the blockchain, thereby making the relevant records tamper-proof, irrevocable, open, transparent and traceable.

[0174] If the obfuscation fails, the obfuscation server will permanently publish the serial number, operation time, parameter configuration, failure result and status of this obfuscation on the blockchain, so as to make the relevant records tamper-proof, irrevocable, open, transparent and traceable.

[0175] At the same time, the message sender can also permanently publish the set of malicious obfuscation servers {MSq1, MSq2, …, MSqm} information on the blockchain, which not only ensures that the relevant records cannot be tampered with, cannot be revoked, is open and transparent, and can be traced, but also effectively avoids malicious obfuscation servers through public disclosure, thereby improving the system's availability and strong fault tolerance.

[0176] Here, by publishing and publicizing the detected malicious obfuscation servers through blockchain, malicious obfuscation servers can be effectively avoided, improving the system's availability and fault tolerance.

[0177] Figure 2 A flow chart of another message publishing method provided by an embodiment of the present invention; Figure 2 As shown, the method is applied to an obfuscation server, and the method includes:

[0178] Step 201, obtaining at least two first ciphertexts;

[0179] Step 202: determine first decryption information, and use the first decryption information to decrypt each of the first ciphertexts to obtain at least two fifth messages;

[0180] Step 203: Permutate the positions of the at least two fifth messages to obtain at least two fifth messages after position permutation;

[0181] Step 204: Send the at least two fifth messages after the position replacement to the message publishing terminal;

[0182] The at least two fifth messages after the position replacement are presented through the message publishing terminal.

[0183] The at least two first ciphertexts are generated respectively by at least two message sending ends.

[0184] The obtaining of at least two first ciphertexts may be: after the message sending end sends the message to the message publishing end, the obfuscation server obtains the message from the message publishing end (it should be noted that the message publishing end does not present the message at this time) and executes the above steps before sending the message to the message publishing end for message presentation; or the obfuscation server obtains the message from each message sending end and executes the above steps before sending the message to the message publishing end for message presentation.

[0185] In one embodiment, the method further includes: generating first encrypted information and second encrypted information.

[0186] The method for generating the first encrypted information and the second encrypted information is specifically described in Figure 1 The method is described in detail and will not be repeated here.

[0187] In one embodiment, the obfuscation server belongs to an obfuscation server network; the obfuscation server network includes at least two obfuscation servers arranged in sequence; each of the obfuscation servers has a corresponding order number;

[0188] The step of sending the at least two fifth messages after the positions have been replaced to the message publishing terminal comprises:

[0189] Determine the sorting number of the obfuscation server as the last number, sign the at least two fifth messages after the position replacement as an output message set and send them to the message publishing end; the sorting number represents the obfuscation order of the obfuscation server;

[0190] Determine that the sorting number of the obfuscation server is not the last number, sign the at least two fifth messages and send them to the message publishing end; the at least two fifth messages are replaced by other obfuscation servers related to the sorting number of the obfuscation server; and so on, until the obfuscation server corresponding to the last number signs the at least two fifth messages after the position replacement as the output message set and sends them to the message publishing end.

[0191] Specifically, the obfuscation server network includes at least two obfuscation servers, assuming that there are t obfuscation servers, and the obfuscation servers are denoted as MSj, where j = 1, 2, 3, ..., t;

[0192] When the obfuscation server currently performing the obfuscation operation is MSj, the other obfuscation servers related to the ranking number (ie, j) of the obfuscation server (MSj) may be MSj+1.

[0193] Here, at least two fifth messages obtained after the obfuscation by the obfuscation server MSj can be recorded as {TVij+1, i=1, 2, ..., n};

[0194] The obfuscation server MSj+1 performs obfuscation processing (including the above-mentioned decryption and position obfuscation) on {TVij+1, i=1, 2, ..., n}, and obtains at least two fifth messages after re-obfuscation, which can be recorded as {TVij, i=1, 2, ..., n};

[0195] By analogy, after the obfuscation processing by the obfuscation server MSt, at least two final obfuscated fifth messages are obtained, which can be recorded as {TVit+1, i=1, 2, ..., n}.

[0196] In one embodiment, before signing the at least two fifth messages after position replacement as an output message set and sending the signed messages to the message publishing end, the method may further include:

[0197] Obtaining a confirmation message; the confirmation message indicates that the obfuscation server network does not include a target obfuscation server;

[0198] According to the confirmation message, obtaining a group private key corresponding to the obfuscation server network;

[0199] The at least two fifth messages are decrypted using the group private key to obtain and present the first information corresponding to each of the fifth messages.

[0200] Each of the at least two fifth messages is Figure 1 The contents of any second message in the at least two second messages in the method are consistent but the position order is different.

[0201] That is, we can use Figure 1 The group private key corresponding to the group public key in the method shown is decrypted to obtain the original first message.

[0202] like Figure 1 As described in the method shown, the group public-private key pair is generated by at least two obfuscation servers in the obfuscation server network; it can be understood as being generated based on the group public-private key pair corresponding to each obfuscation server in the at least two obfuscation servers; specifically, the group public key in the group public-private key pair corresponding to each obfuscation server can be multiplied, and the result obtained is used as the final group public key, that is, the first encrypted information.

[0203] Correspondingly, it is possible to multiply the group private keys in the group public-private key pairs corresponding to each obfuscation server, and use the obtained result as the final group private key, that is, the group private key corresponding to the obfuscation server network.

[0204] Specifically, the obtaining of the group private key corresponding to the obfuscation server network may include: according to the determined message, each obfuscation server in the obfuscation server network publishes its own group private key;

[0205] Thus, a device that needs to perform final decryption (such as the current obfuscation server) can multiply the group private keys in the group public-private key pairs corresponding to each obfuscation server to obtain the final group private key and perform decryption.

[0206] Combined with Figure 1 the descriptions of the first encrypted information, the second encrypted information, the first message, the second message, and the third message in

[0207] Specifically, the obfuscation server MSj (j = 1, 2, 3,..., t) performs message obfuscation, including:

[0208] Step 001: Use the private key SKj to decrypt the n ciphertexts TVij received, where i = 1, 2,..., n, that is, calculate: TEMPij+1 = DEC(SKj, TVij); where DEC represents the decryption operation.

[0209] According to step 703, it can be known that the message set {TEMPij+1, i = 1, 2,..., n} is the result of the message set {GCi, i = 1, 2,..., n} encrypted layer by layer by the public keys PKt, PKt-1,..., PKj+1 of MSt, MSt-1,..., MSj+1;

[0210] Step 002: The obfuscation server MSj randomly generates a permutation PERMj on the set {1, 2, 3,..., n} and calculates: TVij+1 = TEMPij+1[PERMj(i)], where i = 1, 2, 3,..., n; where [PERMj(i)] represents the position permutation operation.

[0211] That is, use the permutation PERMj to randomly shuffle the order of the set {TEMPij+1, i = 1, 2,..., n} obtained after the decryption by MSj;

[0212] Step 003: If the sorting number of the obfuscation server is less than the total number of obfuscation servers in the obfuscation server network (i.e., j < t), the obfuscation server MSj signs {TVij+1, i = 1, 2,..., n}, submits it to the message publishing end together, and the obfuscation server MSj+1 performs the next encryption and obfuscation;

[0213] Step 004: If the ranking number of the obfuscation server is equal to the total number of obfuscation servers in the obfuscation server network (i.e., j=t), then the output message set {TVit+1, i=1, 2, ..., n} is obtained. After being processed in series by obfuscation servers MS1, MS2, MS3, ..., MSt, the final output message set {TVit+1, i=1, 2, ..., n} is consistent with the message set {GCi, i=1, 2, ..., n}, but the message sequence has been fully obfuscated by the t-layer obfuscation servers. MSt signs the output message set and publishes it on the message publishing terminal.

[0214] Here, taking the ElGamal algorithm as an example, for j=1, 2, 3, ..., t, the obfuscation server MSj performs the following processing:

[0215] Step 011, use the private key SKj=xj to receive the n ciphertexts TVij=(a,b)=(g rij ,TVij+1*g xj *rij ) for decryption, i = 1, 2, ..., n, that is, calculate the plaintext: TVij+1 = b / a xj =TVij+1*g xj*rij / g rij*xj ;

[0216] Step 012 is the same as the above step 001 and will not be described in detail.

[0217] Step 013 is the same as the above step 002 and will not be described in detail.

[0218] Step 014 is the same as the above step 003 and will not be described again.

[0219] Figure 3 A flowchart of another message publishing method provided by an embodiment of the present invention; Figure 3 As shown, the method is applied to a message publishing end, and the method includes:

[0220] Step 301: receiving at least two first ciphertexts; the at least two first ciphertexts are obtained by the obfuscation server network and decrypted to obtain at least two fifth messages;

[0221] Step 302, receiving at least two fifth messages, and presenting the at least two fifth messages; the at least two fifth messages are a message set after each pair of the at least two first ciphertexts is obfuscated once (including performing a layer of decryption followed by position obfuscation).

[0222] Here, the message publishing end receives at least two fifth messages after position replacement sent by each obfuscation server (except for the at least two fifth messages after position replacement output by the last obfuscation service, the at least two fifth messages after position replacement output by other obfuscation services can be understood as the above-mentioned encrypted intermediate message set) and presents them.

[0223] In one embodiment, the method further comprises:

[0224] A fourth message set is received and presented; the fourth message set includes messages presented after being obfuscated by the obfuscation server network.

[0225] The message sending end can determine whether there is a malicious obfuscation server based on the fourth message set. The specific method is in Figure 1 The method is described in detail and will not be repeated here.

[0226] An embodiment of the present invention also provides a blockchain; the blockchain is used to publicly record and store obfuscation servers, obfuscation operation processes, etc., and the recorded and stored content includes a complete list of obfuscation servers, the publication, update, and destruction of the public keys (or certificates) of the obfuscation servers, and the entire process, operation results, and status of a single obfuscation operation. At the same time, malicious obfuscation servers detected in failed message obfuscation processes are recorded and publicized.

[0227] The method provided by the embodiment of the present invention is particularly suitable for anonymous message publishing scenarios. For example, the message sender hopes to publish or deliver the message in an anonymous manner, and the message sender hopes that after the message is publicly released, it is difficult for the receiver and any third party to match the output message to the specific identity of the sender.

[0228] Through a system consisting of at least the above-mentioned message sending end, obfuscation server, and message publishing end, the message content is publicly released through an obfuscation service network formed by a group of obfuscation servers in series, while maintaining the anonymity of the sender; using public key encryption algorithms such as commitment, multiplicative homomorphic encryption, and group encryption, malicious obfuscation servers in the system are detected and identified, and marked and publicized under the premise of ensuring message confidentiality and anonymity; and based on blockchain technology, the entire life cycle of the creation and operation of the anonymous message publishing system is recorded and managed, which can ensure that the information published on the chain cannot be tampered with, cannot be revoked, is open and transparent, and can be traced, thereby improving the availability, service quality, and credibility of obfuscation servers and obfuscation networks.

[0229] Figure 4 A schematic diagram of an anonymous message publishing system provided by an embodiment of the present invention; Figure 4 As shown, the anonymous message publishing system at least includes:

[0230] The message publishing terminal is used to publish public content. It provides basic message publishing and display functions and has basic availability and integrity protection.

[0231] The obfuscation service network includes: an obfuscation server; the obfuscation server is used to obfuscate messages; each obfuscation server corresponds to a dedicated public-private key pair, and the signed public key (or certificate) information is published through the blockchain. A group of obfuscation servers connected in series can form an obfuscation service network. In this embodiment, it is assumed that there may be malicious obfuscation servers that maliciously tamper with, delete or destroy the data in the obfuscation process. For details, please refer to the above Figures 1 to 3 The methods provided;

[0232] The message sender hopes to publish the input message on the message publishing end after obfuscating it through the obfuscation server;

[0233] Blockchain is used to publicly record and store obfuscation servers, obfuscation operation processes, etc. The recorded and stored content includes a complete list of obfuscation servers, the publication, update, and destruction of the public keys (or certificates) of obfuscation servers, the entire process of a single obfuscation operation, the operation results, the status, etc. At the same time, malicious obfuscation servers detected in failed message obfuscation processes are recorded and publicized.

[0234] Figure 5 A schematic diagram of an anonymous message publishing system management based on blockchain provided by an embodiment of the present invention; Figure 5 As shown in the figure, the entire life cycle of the creation and operation of the anonymous message publishing system is recorded and managed based on blockchain technology. The use of blockchain technology can ensure that the information published on the chain cannot be tampered with, cannot be revoked, is open and transparent, and can be traced, etc., and improve the availability, service quality, and credibility of obfuscation servers and obfuscation networks. The types of data recorded in the blockchain mainly include: maintenance and update of the obfuscation server list, maintenance and update of the currently marked malicious obfuscation server list, release, update and destruction records of the public key (or certificate) of a single obfuscation server, and the initiation, status and result records of a single obfuscation process.

[0235] The obfuscation server list is used to record all currently available obfuscation server lists, and is updated synchronously with the update of the block content in the blockchain. Users of the obfuscation service (such as the message sender) can obtain the currently available obfuscation server list by accessing the latest block.

[0236] The malicious obfuscation server list is used to record all the malicious obfuscation servers that have been marked. Specifically, the list of malicious obfuscation servers that have been marked can be maintained and updated based on the information of malicious obfuscation servers (equivalent to the target obfuscation servers mentioned above) fed back in all the failed obfuscation operations. It is updated synchronously with the update of the block content in the blockchain. The users of the obfuscation service (message publishers) can obtain the current list of malicious obfuscation servers by accessing the latest block; according to parameters such as the frequency of malicious obfuscation operations of malicious obfuscation servers, different disposal strategies such as temporary marking or permanent cancellation can be adopted.

[0237] The lifecycle management of the public key (or certificate) of a single obfuscation server includes: recording the generation, update, and destruction of the public key (or certificate) of a single obfuscation server.

[0238] Here, a single obfuscation server joins the obfuscation service network by publishing a public key (or certificate) on the chain, and the obfuscation server list is updated synchronously in the latest block on the blockchain. The public key (or certificate) of the obfuscation server has a lifetime or validity period and needs to be updated. At this time, the obfuscation server triggers the update operation and publishes the updated public key (or certificate) information in the latest block on the chain. At the same time, the block data of the block body where the obfuscation server public key (or certificate) is located before this update points to the block data in the block body after the current update is completed, completing the key update operation;

[0239] The obfuscation server may need to suspend service or exit the obfuscation service network. At this time, its public key (or certificate) needs to be destroyed. That is, the obfuscation server list needs to be synchronized and updated in the latest block on the blockchain, and the obfuscation server that has exited the obfuscation server or marked as suspended service is removed; at the same time, the obfuscation server publishes the public key (or certificate) destruction information in the latest block on the chain, and points the block data of the block body where the obfuscation server public key (or certificate) is located before the destruction to the corresponding block data in the block body of the current destroyed public key (or certificate), completing the key destruction operation.

[0240] The recording and management of a single obfuscation process include: recording and lifecycle management of a single obfuscation process; specifically including: initiation of the obfuscation operation (recording the message initiator, initiation time, and obfuscation parameters); configuration of obfuscation members (collecting the obfuscation requirements and parameters of the message sender, determining the information of the obfuscation servers participating in this obfuscation process, numbering this obfuscation operation and starting the obfuscation operation); obfuscation operation results (recording the results of this obfuscation operation, such as success / failure, etc.).

[0241] The method provided in the embodiment of the present invention records and stores the obfuscation server list and the life cycle of public and private key pairs based on blockchain, and marks and publicizes malicious obfuscation servers; at the same time, it records and stores the single obfuscation process, status and results. Blockchain technology is used to make the above-mentioned stored content tamper-proof, irrevocable, open, transparent, and traceable, thereby improving system availability, service usability, and service quality.

[0242] Figure 6 A schematic diagram of the principle of message obfuscation provided by an embodiment of the present invention; Figure 6 As shown, for a certain message obfuscation operation, it may include:

[0243] n message senders S1, S2, ..., Sn want to send n input messages (i.e. Figure 1 The first message (IN1, IN2, ..., INn) in the method shown is published or delivered through an obfuscated service network and maintains anonymity, that is, after the message is publicly released, it is difficult for the receiver and any third party to match the output message OUT1, OUT2, ..., OUTn with the identity of the sender (that is, it is impossible to know the correspondence between {Si} and {OUTj}, i=0, 1, ..., n, j=0, 1, ..., n).

[0244] To achieve the above objectives, the message sender reorders and confuses the input messages IN1, IN2, ..., INn through t serially connected message obfuscation servers MS1, MS2, MS3, ..., MSt, and finally outputs n output messages OUT1, OUT2, ..., OUTn.

[0245] At the same time, in order to ensure the confidentiality of the input message (that is, before the obfuscation operation is completed, the obfuscation server and any third party cannot obtain the content of the message), the sender needs to encrypt the input message.

[0246] Finally, for possible malicious obfuscation servers, it is necessary to detect and identify malicious obfuscation servers in the system, mark them and publicize them while ensuring the confidentiality and anonymity of messages.

[0247] Figure 7 A flow chart of a message obfuscation method provided by an embodiment of the present invention; Figure 7 As shown, for a certain anonymous message release, the message obfuscation method may include:

[0248] Step 701: Initialization. Specifically, step 701 includes:

[0249] For a secure probabilistic public-key encryption system that satisfies multiplicative homomorphism, obfuscation servers MS1, MS2, MS3, …, MSt respectively generate public-private key pairs {(PK1, SK1), (PK2, SK2), …, (PKt, SKt)} for message encryption, use the private key to sign the public key, and publish the public key together with the signature information {(PK1, SIG1), (PK2, SIG2), …, (PKt, SIGt)} (or certificate information containing the public key and signature) on the blockchain; among them, the public-private key pair (or certificate) of the obfuscation server can be reused.

[0250] It should be noted that the public key encryption system in this embodiment needs to be a probabilistic encryption algorithm and satisfy multiplicative homomorphism, that is, for any plaintext m1 and m2, random numbers r1 and r2 are used to encrypt m1 and m2 respectively, that is, ENC(m1, r1) and ENC(m2, r2), then there exists r3 that satisfies:

[0251] ENC(m1*m2,r3)=ENC(m1,r1)*ENC(m2,r2); wherein ENC represents an encryption algorithm.

[0252] Taking the ElGamal algorithm as an example, the generator g of the finite q-order cyclic group G, the obfuscated server MSi randomly selects an integer xi from {1, 2, ..., q-1}, then (g xi , xi) is the public and private key (PKi, SKi) of MSI, which encrypts the message m1, m2, that is, calculate:

[0253] ENC(m1,r1)=(g r1 ,m1*g xi*r1 ), ENC(m2,r2)=(g r2 ,m2*g xi*r2 );

[0254] Then, r3=r1+r2 is the result of encrypting m1*m2 using r1+r2 as the random number:

[0255] ENC(m1*m2,r1+r2)=(g r1+r2 ,m1*m2*g xi*(r1+r2) )=ENC(m1,r1)*ENC(m2,r2).

[0256] Step 702: preprocessing. Specifically, step 702 includes:

[0257] Step 7021, the obfuscation servers MS1, MS2, MS3, ..., MSt respectively generate a group public and private key pair for message group encryption (i.e. Figure 1The first encrypted information in the method shown in the figure), the group public and private key pairs are recorded as (GPK1, GSK1), (GPK2, GSK2), ..., (GPKt, GSKt) respectively; at the same time, the group public key is committed, and the group public key commitment information CM_GSK1, CM_GSK2, ..., CM_GSKt are published on the message publishing terminal (i.e., a public message board, a message board for publishing public content) respectively;

[0258] Step 7022: After all group public key commitment information is published, the obfuscation servers MS1, MS2, MS3, ..., MSt publish the group public keys GPK1, GPK2, ..., GPKt and the corresponding commitment verification information on the message publishing terminal respectively;

[0259] Here, all participants can verify the commitments CM_GSK1, CM_GSK2, …, CM_GSKt using the group public key and the commitment public information;

[0260] Step 7023: After verification, the obfuscation servers MS1, MS2, MS3, ..., MSt publish the group public key together with the signature information GPK1, GPK2, ..., GPKt on the blockchain.

[0261] Since the public key encryption system selected in this proposal satisfies multiplicative homomorphism, the message senders S1, S2, ..., Sn and any participating party can calculate the final group public key of MS1, MS2, MS3, ..., MSt based on GPK1, GPK2, ..., GPKt: GPK = GPK1*GPK2*...*GPKt.

[0262] It should be noted that the public and private key pair of the obfuscation server can only be used in a single obfuscation process and cannot be reused.

[0263] The above commitment can be implemented in a variety of ways. Taking Pederson commitment as an example, two different generators g and h of the finite q-order cyclic group G are randomly selected; specifically:

[0264] 2-a), for i = 1, 2, ..., t, the obfuscation server MSi randomly selects an integer ki from {1, 2, ..., q-1}, then (g ki , ki) is the corresponding group public and private key (GPKi, GSKi), and the public key commitment is calculated using the random number ri and announced, that is, calculation: CM_GPKi = g ki h ri ;

[0265] 2-b) After all obfuscation servers publish the commitment information, in order to verify the correctness of the group public key commitment, for i=1, 2, ..., t, the obfuscation server MSi publishes the random number ri and the public key g ki, any participant can calculate g ki h ri Is it equal to the public commitment of MSi? ki h ri ;

[0266] 2-c) After the commitment verification is passed, the message senders S1, S2, ..., Sn and any participating parties can calculate the group public key GPK = GPK1*GPK2*...*GPKt as follows:

[0267] g k =g k1 g k2 ... kt =g k1+k2+...+kt .

[0268] Here, through the above 2-a) to 2-c), the mechanism of generating and publishing group keys is used for subsequent detection and identification of malicious obfuscation servers and avoiding identity information leakage.

[0269] Step 703: Message encryption. Specifically, step 703 includes:

[0270] Step 7031: For the message INi in the input message set {IN1, IN2, ..., INn}, i = 1, 2, ..., n, the message sending end Si uses the group public key to encrypt INi, that is, GCi = ENC (GPK, INi) (GCi is equivalent to Figure 1 The second message in the method shown);

[0271] Step 7032, for the message GCi in the encrypted message set {GC1, GC2, ..., GCn}, i = 1, 2, ..., n, the message sending end Si performs nested encryption on GCi respectively, that is, uses the public keys PKt, PKt-1, PKt-2, ..., PK1 of the obfuscation servers MSt, MSt-2, MSt-2, ..., MS1 to encrypt GCi layer by layer, namely:

[0272] Ci=ENC(PK1,...ENC(PKt-2,ENC(PKt-1,ENC(PKt,GCi))));

[0273] After Si encrypts GCi, the final ciphertext Ci is obtained (equivalent to Figure 1 The third message in the method shown), publishes the ciphertext Ci to the message publishing end.

[0274] Here, taking the ElGamal algorithm as an example, it includes:

[0275] Step 3-a), for the input message INi, the message sender Si uses the group public key g kTo encrypt INi, select a random number ri and calculate the ciphertext GCi: GCi = (g ri ,INi*g k*ri );

[0276] Step 3-b), for the encrypted intermediate message TVij+1 output using the public key PKj+1 of the obfuscated server MSj+1, the message sender Si uses the public key PKj=g xj To encrypt, select a random number rij and calculate the ciphertext TVj: TVij = (g rij ,TVij+1*g xj*rij );

[0277] According to the above steps, GCi is nested and encrypted until the final ciphertext Ci is obtained by encrypting it with the public key of MS1, and the ciphertext Ci is published to the message publishing end.

[0278] Step 704: Message obfuscation.

[0279] Specifically, in step 704, the obfuscation server MSj (j=1, 2, 3, ..., t) performs message obfuscation, which specifically includes:

[0280] Step 7041, the obfuscation server MSj uses the private key SKj to decrypt the n ciphertexts TVij received, i = 1, 2, ..., n, that is, calculate: TEMPij+1 = DEC(SKj, TVij); wherein DEC represents the decryption operation.

[0281] According to step 703, the message set {TEMPij+1, i=1, 2, ..., n} is the result of the message set {GCi, i=1, 2, ..., n} being encrypted layer by layer with the public keys PKt, PKt-1, ..., PKj+1 of MSt, MSt-1, ..., MSj+1.

[0282] Step 7042, the obfuscation server MSj randomly generates a permutation PERMj on the set {1, 2, 3, ..., n}, and calculates: TVij+1=TEMPij+1[PERMj(i)], i=1, 2, 3, ..., n; wherein [PERMj(i)] represents a position permutation operation;

[0283] That is, using replacement PERM j MS j The set {TEMPij+1,i=1,2,…,n} obtained after decryption is randomly shuffled;

[0284] Step 7043: If the obfuscation order of the current obfuscation server (i.e., the order of the obfuscation operation among all obfuscation servers in the obfuscation server network) is less than the total number of all obfuscation servers in the obfuscation server network (i.e., j < t), the obfuscation server MSj signs {TVij+1, i = 1, 2, …, n}, submits them to the message publishing end, and the obfuscation server MSj+1 performs the next encryption and obfuscation;

[0285] Step 7044: If the obfuscation order of the current obfuscation server is equal to the total number of all obfuscation servers in the obfuscation server network (i.e., j = t), the output message set {TVit+1, i = 1, 2, …, n} is obtained. After the concatenated processing of the obfuscation servers MS1, MS2, MS3, …, MSt, the final output message set {TVit+1, i = 1, 2, …, n} is consistent with the message set {GCi, i = 1, 2, …, n} in content, but the message order has been fully obfuscated by the t-layer obfuscation servers. MSt signs the output message set and publishes it on the message publishing end.

[0286] Here, taking the ElGamal algorithm as an example, for j = 1, 2, 3, …, t, the obfuscation server MSj performs the following processing:

[0287] Step 4-a): Use the private key SKj = xj to decrypt the n received ciphertexts TVij = (a, b) = (g rij , TVij+1*g xj *rij ), i = 1, 2, …, n, that is, calculate the plaintext: TVij+1 = b / a xj = TVij+1*g xj*rij / g rij*xj ;

[0288] Step 4-b): Same as step 7042;

[0289] Step 4-c): Same as step 7043;

[0290] Step 4-d): Same as step 7044.

[0291] Step 705: Message review.

[0292] Here, the message sender can check the message set {GC} published by the obfuscation server network MSt and try to identify malicious obfuscation servers. Specifically, step 705 includes:

[0293] Step 7051: The message publishers S1, S2, …, Sn respectively check whether their encrypted messages GC1, GC2, …, GCn in step 7032 appear in the set {GC};

[0294] Here, the set {GC} is a set that is consistent with the message set {GCi, i=1, 2, ..., n} in content, but the message sequence is fully obfuscated by t-layer obfuscation servers.

[0295] Step 7052: When it is determined that GC1, GC2, ..., GCn all appear in the set {GC} (i.e., the check passes), perform the following steps:

[0296] 7052-1. Notify the obfuscation server network, and the obfuscation servers MS1, MS2, ..., MSt in the obfuscation server network publish their respective group private keys GSK1, GSK2, ..., GSKt;

[0297] 7052-2. The obfuscation server in the obfuscation server network (which may be any obfuscation server or the last obfuscation server to perform the obfuscation operation) can calculate the final group private key value GSK from the group private keys GSK1, GSK2, ..., GSKt according to the multiplication homomorphism of the encryption system, and use GSK to decrypt GCi (i = 1, 2, ..., n), that is, OUTi = DEC (GPK, GCi);

[0298] Among them, the content of {OUT1, OUT2, ..., OUTn} is consistent with the input message set {IN1, IN2, ..., INn}, but the message sequence has been fully obfuscated by the t-layer obfuscation server, and the output message set {OUT1, OUT2, ..., OUTn} is published on the message publishing end to complete the obfuscation and publication of the input message.

[0299] Step 7053: If the check fails and it is determined that there are several {p1, p2, ..., pm}, and GCP1, GCP2, ..., GCpm do not appear in the set {GC}, it is determined that there is a malicious obfuscation server and the obfuscation fails.

[0300] Furthermore, specific malicious obfuscated servers can be identified, including:

[0301] Step 5-a), for all elements pj in the set {p1, p2, ..., pm}, the message sender Spj (specifically the sender whose information may be maliciously obfuscated) verifies the encrypted intermediate message set {TV'qj+1} published and signed by the obfuscated server MSqj, qj=1, 2, ..., t on the message publishing end, and finds the minimum qj value that satisfies:

[0302] If the original encrypted intermediate message TVpj,qj+1 in step 3-b) does not appear in {TV'qj+1}, and the original encrypted intermediate message TVpj,qj+1 in step 3-b) appears in {TV'qj+1}, the message sender Spj marks the obfuscation server MSqj to be verified as a malicious obfuscation server, sends the malicious obfuscation server MSqj together with the evidence {{TV'qj+1},{TV'qj},rand}, where rand represents the random number obtained by Spj encrypting TVpj,qj+1 to obtain TVpj,qj+1, to the message publishing end, and then exits this obfuscation.

[0303] Here, any third party can calculate based on rand:

[0304] TVpj,qj=ENC(PKqj,TVpj,qj+1);

[0305] Due to the characteristics of the probabilistic encryption algorithm, it can be seen that TVpj,qj is indeed the encryption result of TVpj,qj+1 using the random number rand, and the sender Spj cannot forge it; at the same time, TVpj,qj+1 does not appear in {TV'qj+1} published by MSqj, which shows that MSqj is indeed a malicious obfuscation server.

[0306] Here, taking ElGamal as an example, assuming a = TVpj,qj, b = TVpj,qj+1, PKqj = g xqj , then a=ENC(PKqj,b), that is: a=(g rand ,b*g rand*xqj );

[0307] According to the characteristics of the probabilistic encryption algorithm, it is impossible for the sender to forge another different plaintext TVpj,qj+1, and the encrypted result is TVpj,qj. At the same time, TVpj,qj+1 does not appear in TV'qj+1 published by MSqj, so it can be known that MSqj is indeed a malicious obfuscation server.

[0308] 5-b) Summarize the malicious obfuscation servers in step 5-a) to obtain a set of malicious obfuscation servers {MSq1, MSq2, ..., MSqm} (it is possible that the same obfuscation server is repeatedly marked by multiple senders).

[0309] Here, in step 7052), if the obfuscation is successful, the final information is decrypted and published based on the group key, and the information is published without destroying the anonymity of the identity; in step 7053), if the obfuscation fails, the intermediate results are compared by decrypting layer by layer, and the malicious obfuscation server is detected and identified, so that the corresponding malicious obfuscation server can be detected.

[0310] Step 706: post-processing. Specifically, step 706 includes:

[0311] Step 7061: The obfuscation is successful. The obfuscation server {MS1, MS2, …, MSt} permanently publishes the serial number, operation time, parameter configuration, success result and status of this obfuscation on the blockchain, thereby making the relevant records tamper-proof, irrevocable, open, transparent and traceable.

[0312] Step 7062: If the obfuscation fails, the obfuscation server will permanently publish the serial number, operation time, parameter configuration, failure result and status of this obfuscation on the blockchain, so as to make the relevant records tamper-proof, irrevocable, open and transparent, and traceable. At the same time, the set of malicious obfuscation servers {MSq1, MSq2, ..., MSqm} will be permanently published on the blockchain, which not only ensures that the relevant records are tamper-proof, irrevocable, open and transparent, and traceable, but also effectively avoids malicious obfuscation servers through public disclosure, thereby improving the availability and strong fault tolerance of the system.

[0313] Here, step 7062 publishes and publicizes the detected malicious obfuscation servers through blockchain, which can effectively avoid malicious obfuscation servers and improve the availability and fault tolerance of the system.

[0314] Figure 8 A schematic diagram of the structure of a message publishing device provided by an embodiment of the present invention; Figure 8 As shown, the device is applied to a message sending end which can be a mobile phone, a tablet computer, a computer or other device, and the message sending end device includes:

[0315] A first processing module, configured to obtain first encrypted information, and use the first encrypted information to encrypt the first message to obtain a second message;

[0316] A second processing module is used to obtain second encrypted information, and use the second encrypted information to perform nested encryption on the second message to obtain a third message;

[0317] The first communication module is used to send the third message; the third message is presented after being obfuscated by the obfuscation server network; the obfuscation server network includes at least two obfuscation servers; the message obfuscation includes at least position replacement.

[0318] In one embodiment, the first processing module is used to obtain first encrypted information from a first block in the blockchain; wherein the first encrypted information includes a group public-private key pair for encrypting a message; the group public-private key pair is generated by at least two obfuscation servers in the obfuscation server network;

[0319] Correspondingly, the first processing module is specifically configured to encrypt the first message using the group public key in the group public-private key pair.

[0320] In one embodiment, the second processing module is used to obtain second encrypted information from the first block in the blockchain; wherein the second encrypted information includes: a public-private key pair generated by each of the at least two obfuscation servers;

[0321] Correspondingly, the second processing module is specifically used to use the public key in the public-private key pair generated by each of the obfuscation servers to perform nested encryption on the second message.

[0322] In one embodiment, the device further includes: a third processing module, configured to obtain a fourth message set; the fourth message set includes messages presented after being obfuscated by the obfuscation server network;

[0323] Determine that the second message belongs to the fourth message set, and send a confirmation message to the obfuscation server network; the confirmation message is received by the obfuscation server network and instructs the obfuscation server network to decrypt the fourth message set and then present it;

[0324] Determine that the second message does not belong to the fourth message set, obtain an encrypted intermediate message set; determine a target obfuscation server based on the encrypted intermediate message set; wherein the encrypted intermediate messages in the encrypted intermediate message set are messages included in a nested encryption process; each of the encrypted intermediate messages corresponds to an obfuscation server identifier corresponding to a public key used for encryption; the target obfuscation server represents a server that does not meet the obfuscation requirements.

[0325] In one embodiment, the third processing module is used to determine the verification message corresponding to each layer of encryption in the process of nested encryption of the second message; the verification message corresponding to each layer of encryption corresponds to the identifier of the obfuscation server of the public key used;

[0326] Determining a set of encrypted intermediate messages published by each of the obfuscation servers;

[0327] According to the encrypted intermediate message set published by each obfuscation server, the verification message corresponding to each layer of encryption and the identifier of the obfuscation server of the public key used, the obfuscation server that does not contain the corresponding verification message in the encrypted intermediate message set and meets the obfuscation order symbol requirement is determined as the target obfuscation server.

[0328] In one embodiment, the device further includes: a fourth processing module, configured to update a target obfuscation server table in the blockchain according to information corresponding to the target obfuscation server.

[0329] It should be noted that: the message publishing device provided in the above embodiment only uses the division of the above program modules as an example when implementing the corresponding message publishing method. In actual applications, the above processing can be assigned to different program modules as needed, that is, the internal structure of the message sending end is divided into different program modules to complete all or part of the processing described above. In addition, the device provided in the above embodiment and the embodiment of the corresponding method belong to the same concept, and the specific implementation process is detailed in the method embodiment, which will not be repeated here.

[0330] Fig. 9 A schematic diagram of the structure of another message publishing device provided by an embodiment of the present invention; Fig. 9 As shown, the device is applied to an obfuscation server, and the device includes:

[0331] A second communication module, used to obtain at least two first ciphertexts;

[0332] an obfuscation module, configured to determine first decryption information, and use the first decryption information to decrypt each of the first ciphertexts to obtain at least two fifth messages;

[0333] Permuting the positions of the at least two fifth messages to obtain at least two fifth messages after position permutation;

[0334] The second communication module is further used to send the at least two fifth messages after the position replacement to the message publishing end; the at least two fifth messages after the position replacement are presented through the message publishing end.

[0335] In one embodiment, the obfuscation server belongs to an obfuscation server network; the obfuscation server network includes at least two obfuscation servers arranged in sequence; each of the obfuscation servers has a corresponding order number;

[0336] The second communication module is used to determine that the sorting number of the obfuscation server is the last number, and to sign the at least two fifth messages after the position replacement as an output message set and send them to the message publishing end; the sorting number represents the obfuscation order of the obfuscation server;

[0337] Determine that the sorting number of the obfuscation server is not the last number, sign the at least two fifth messages and send them to the message publishing end; the at least two fifth messages are replaced by other obfuscation servers related to the sorting number of the obfuscation server; and so on, until the obfuscation server corresponding to the last number signs the at least two fifth messages after the position replacement as the output message set and sends them to the message publishing end.

[0338] In one embodiment, before signing the at least two fifth messages after the position replacement as the output message set and sending them to the message publishing terminal, the second communication module is also used to obtain a confirmation message; the confirmation message indicates that the obfuscation server network does not include the target obfuscation server;

[0339] According to the confirmation message, obtaining a group private key corresponding to the obfuscation server network;

[0340] The at least two fifth messages are decrypted using the group private key to obtain and present the first information corresponding to each of the fifth messages.

[0341] It should be noted that: the message publishing device provided in the above embodiment only uses the division of the above program modules as an example when implementing the corresponding message publishing method. In actual applications, the above processing can be assigned to different program modules as needed, that is, the internal structure of the obfuscated server is divided into different program modules to complete all or part of the processing described above. In addition, the device provided in the above embodiment and the embodiment of the corresponding method belong to the same concept, and the specific implementation process is detailed in the method embodiment, which will not be repeated here.

[0342] Fig.10 A schematic diagram of a message publishing device provided by an embodiment of the present invention is shown in FIG. Fig.10 As shown, the apparatus 100 comprises: a processor 1001 and a memory 1002 for storing a computer program that can be run on the processor;

[0343] Corresponding to when the device is applied to a message sending end, the processor 1001 is used to run the computer program to execute: obtaining first encryption information, using the first encryption information to encrypt the first message to obtain a second message; obtaining second encryption information, using the second encryption information to perform nested encryption on the second message to obtain a third message; sending the third message; the third message is presented after being obfuscated by an obfuscation server network; the obfuscation server network includes at least two obfuscation servers; the message obfuscation includes at least position replacement.

[0344] When the processor runs the computer program, the corresponding processes of the message sending end in each method of the embodiment of the present invention are implemented, which will not be described here for the sake of brevity.

[0345] Corresponding to when the device is applied to an obfuscation server, the processor 1001 is used to run the computer program to execute: obtaining at least two first ciphertexts; determining first decryption information, and using the first decryption information to decrypt each of the first ciphertexts to obtain at least two fifth messages; permuting the positions of the at least two fifth messages to obtain at least two permuted fifth messages; sending the at least two permuted fifth messages to a message publishing terminal; and presenting the at least two permuted fifth messages through the message publishing terminal.

[0346] When the processor runs the computer program, the corresponding processes of the obfuscation server in each method of the embodiments of the present invention are implemented, which will not be described here for the sake of brevity.

[0347] In actual application, the device 100 may further include: at least one network interface 1003. The various components in the device 100 are coupled together via a bus system 1004. It is understood that the bus system 1004 is used to achieve connection and communication between these components. In addition to the data bus, the bus system 1004 also includes a power bus, a control bus, and a status signal bus. However, for the sake of clarity, Fig.10 In the figure, various buses are marked as bus system 1004. There may be at least one processor 1001. The network interface 1003 is used for wired or wireless communication between the apparatus 100 and other devices.

[0348] The memory 1002 in the embodiment of the present invention is used to store various types of data to support the operation of the device 100 .

[0349] The method disclosed in the above embodiment of the present invention can be applied to the processor 1001, or implemented by the processor 1001. The processor 1001 may be an integrated circuit chip with signal processing capabilities. In the implementation process, each step of the above method can be completed by the hardware integrated logic circuit in the processor 1001 or the instruction in the form of software. The above processor 1001 may be a general processor, a digital signal processor (DSP, DiGital Signal Processor), or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components, etc. The processor 1001 can implement or execute the methods, steps and logic block diagrams disclosed in the embodiment of the present invention. The general processor can be a microprocessor or any conventional processor, etc. In combination with the steps of the method disclosed in the embodiment of the present invention, it can be directly embodied as a hardware decoding processor to execute, or it can be executed by a combination of hardware and software modules in the decoding processor. The software module can be located in a storage medium, which is located in the memory 1002. The processor 1001 reads the information in the memory 1002 and completes the steps of the above method in combination with its hardware.

[0350] In an exemplary embodiment, the device 100 can be implemented by one or more application specific integrated circuits (ASIC), DSP, programmable logic device (PLD), complex programmable logic device (CPLD), field programmable gate array (FPGA), general processor, controller, microcontroller (MCU), microprocessor, or other electronic components to execute the aforementioned method.

[0351] An embodiment of the present invention further provides a computer-readable storage medium having a computer program stored thereon;

[0352] Corresponding to the computer program stored and applied to the message sending end, when the computer program is executed by the processor, the following is performed: obtaining first encryption information, using the first encryption information to encrypt the first message to obtain a second message; obtaining second encryption information, using the second encryption information to perform nested encryption on the second message to obtain a third message; sending the third message; the third message is presented after being obfuscated by an obfuscation server network; the obfuscation server network includes at least two obfuscation servers; the message obfuscation includes at least position replacement.

[0353] When the computer program is executed by the processor, the corresponding processes implemented by the message sending end in each method of the embodiments of the present invention are implemented, which will not be described in detail here for the sake of brevity.

[0354] Corresponding to the computer program stored and applied to the obfuscation server, when the computer program is executed by the processor, the following is performed: obtaining at least two first ciphertexts; determining first decryption information, and using the first decryption information to decrypt each of the first ciphertexts to obtain at least two fifth messages; permuting the positions of the at least two fifth messages to obtain at least two permuted fifth messages; sending the at least two permuted fifth messages to a message publishing terminal; and presenting the at least two permuted fifth messages through the message publishing terminal.

[0355] When the computer program is executed by the processor, the corresponding processes implemented by the obfuscation server in the various methods of the embodiments of the present invention are implemented, which will not be described in detail here for the sake of brevity.

[0356] In the several embodiments provided in the present application, it should be understood that the disclosed apparatus and method can be implemented in other ways. The device embodiments described above are only schematic. For example, the division of the units is only a logical function division. There may be other division methods in actual implementation, such as: multiple units or components can be combined, or can be integrated into another system, or some features can be ignored, or not executed. In addition, the coupling, direct coupling, or communication connection between the components shown or discussed can be through some interfaces, and the indirect coupling or communication connection of the devices or units can be electrical, mechanical or other forms.

[0357] The units described above as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place or distributed on multiple network units; some or all of the units may be selected according to actual needs to achieve the purpose of the present embodiment.

[0358] In addition, all functional units in the embodiments of the present invention may be integrated into one processing unit, or each unit may be separately used as a unit, or two or more units may be integrated into one unit; the above-mentioned integrated units may be implemented in the form of hardware or in the form of hardware plus software functional units.

[0359] A person skilled in the art can understand that: all or part of the steps of implementing the above method embodiment can be completed by hardware related to program instructions, and the aforementioned program can be stored in a computer-readable storage medium. When the program is executed, it executes the steps of the above method embodiment; and the aforementioned storage medium includes: mobile storage devices, read-only memories (ROM, Read-Only Memory), random access memories (RAM, Random Access Memory), disks or optical disks, etc. Various media that can store program codes.

[0360] Alternatively, if the above-mentioned integrated unit of the present invention is implemented in the form of a software function module and sold or used as an independent product, it can also be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the embodiment of the present invention can be essentially or partly reflected in the form of a software product that contributes to the prior art. The computer software product is stored in a storage medium and includes several instructions for a computer device (which can be a personal computer, a server, or a network device, etc.) to execute all or part of the methods described in each embodiment of the present invention. The aforementioned storage medium includes: various media that can store program codes, such as mobile storage devices, ROM, RAM, magnetic disks or optical disks.

[0361] The above is only a specific embodiment of the present invention, but the protection scope of the present invention is not limited thereto. Any person skilled in the art can easily think of changes or substitutions within the technical scope disclosed by the present invention, which should be included in the protection scope of the present invention. Therefore, the protection scope of the present invention should be based on the protection scope of the claims.

Claims

1. A message publishing method, characterized in that: Applied to a message sending end, the method comprises: Obtaining first encrypted information, and using the first encrypted information to encrypt a first message to obtain a second message, wherein the first encrypted information comes from a first block in a blockchain, and the first encrypted information is generated by at least two obfuscation servers in an obfuscation server network; Obtaining second encrypted information, and using the second encrypted information to perform nested encryption on the second message to obtain a third message, wherein the second encrypted information comes from the first block in the blockchain, and the second encrypted information is generated by each of the at least two obfuscation servers; The third message is sent; the third message is presented after being obfuscated by the obfuscation server network; the obfuscation server network includes at least two obfuscation servers; the message obfuscation includes at least position replacement.

2. The method according to claim 1, characterized in that The first encryption information includes a group public and private key pair used to encrypt the message; Accordingly, the using the first encryption information to encrypt the first message includes: The first message is encrypted using the group public key in the group public-private key pair.

3. The method according to claim 1, characterized in that: The second encrypted information includes: a public-private key pair generated by each obfuscation server of the at least two obfuscation servers; Correspondingly, the using the second encryption information to perform nested encryption on the second message includes: The second message is nestedly encrypted using the public key in the public-private key pair generated by each of the obfuscation servers.

4. The method according to claim 3, characterized in that The method further comprises: Obtaining a fourth message set; the fourth message set includes messages that are presented after being obfuscated by the obfuscation server network; Determine that the second message belongs to the fourth message set, and send a confirmation message to the obfuscation server network; the confirmation message is received by the obfuscation server network and instructs the obfuscation server network to decrypt the fourth message set and then present it; Determine that the second message does not belong to the fourth message set, obtain an encrypted intermediate message set; determine a target obfuscation server based on the encrypted intermediate message set; wherein the encrypted intermediate messages in the encrypted intermediate message set are messages included in a nested encryption process; each of the encrypted intermediate messages corresponds to an obfuscation server identifier corresponding to a public key used for encryption; the target obfuscation server represents a server that does not meet the obfuscation requirements.

5. The method according to claim 4, characterized in that The step of determining a target obfuscation server according to the encrypted intermediate message set includes: Determine a verification message corresponding to each layer of encryption in the nested encryption process of the second message; the verification message corresponding to each layer of encryption corresponds to an identifier of an obfuscation server of a public key used; Determining a set of encrypted intermediate messages published by each of the obfuscation servers; According to the encrypted intermediate message set published by each obfuscation server, the verification message corresponding to each layer of encryption and the identifier of the obfuscation server of the public key used, the obfuscation server that does not contain the corresponding verification message in the encrypted intermediate message set and meets the obfuscation order symbol requirement is determined as the target obfuscation server.

6. The method according to claim 5, characterized in that The method further comprises: According to the information corresponding to the target obfuscation server, the target obfuscation server table in the blockchain is updated.

7. A message publishing method, characterized in that: Applied to an obfuscation server, the method comprises: Obtain at least two first ciphertexts; Determine first decryption information, and use the first decryption information to decrypt each of the first ciphertexts to obtain at least two fifth messages; Permuting the positions of the at least two fifth messages to obtain at least two fifth messages after position permutation; sending the at least two fifth messages after the position replacement to a message publishing terminal; presenting the at least two fifth messages after the position replacement through the message publishing terminal; The obfuscation server belongs to an obfuscation server network; the obfuscation server network includes at least two obfuscation servers arranged in sequence; each obfuscation server corresponds to a sorting number; the sending of the at least two fifth messages after position replacement to a message publishing terminal includes: determining the sorting number of the obfuscation server as a last number, signing the at least two fifth messages after position replacement as an output message set and sending the messages to the message publishing terminal; the sorting number represents the obfuscation order of the obfuscation server; Determine that the sorting number of the obfuscation server is not the last number, sign the at least two fifth messages and send them to the message publishing end; the at least two fifth messages are replaced by other obfuscation servers related to the sorting number of the obfuscation server; and so on, until the obfuscation server corresponding to the last number signs the at least two fifth messages after the position replacement as the output message set and sends them to the message publishing end.

8. The method according to claim 7, characterized in that Before signing the at least two fifth messages after position replacement as an output message set and sending the signed messages to the message publishing end, the method may further include: Obtaining a confirmation message; the confirmation message indicates that the obfuscation server network does not include a target obfuscation server; According to the confirmation message, obtaining a group private key corresponding to the obfuscation server network; The at least two fifth messages are decrypted using the group private key to obtain and present the first information corresponding to each of the fifth messages.

9. A message publishing device, characterized in that: Applied to a message sending end, the device comprises: A first processing module is configured to obtain first encrypted information, and use the first encrypted information to encrypt a first message to obtain a second message; the first encrypted information comes from a first block in a blockchain, and the first encrypted information is generated by at least two obfuscation servers in an obfuscation server network; A second processing module is used to obtain second encrypted information, and use the second encrypted information to perform nested encryption on the second message to obtain a third message; the second encrypted information comes from the first block in the blockchain, and the second encrypted information is generated by each of the at least two obfuscation servers; The first communication module is used to send the third message; the third message is presented after being obfuscated by the obfuscation server network; the obfuscation server network includes at least two obfuscation servers; the message obfuscation includes at least position replacement.

10. A message publishing device, characterized in that: Applied to an obfuscation server, the device comprises: A second communication module, used to obtain at least two first ciphertexts; an obfuscation module, configured to determine first decryption information, and use the first decryption information to decrypt each of the first ciphertexts to obtain at least two fifth messages; Permuting the positions of the at least two fifth messages to obtain at least two fifth messages after position permutation; The second communication module is further used to send the at least two fifth messages after the position replacement to the message publishing terminal; the at least two fifth messages after the position replacement are presented through the message publishing terminal; The second communication module is used to determine that the sorting number of the obfuscation server is the last number, and to sign the at least two fifth messages after the position replacement as an output message set and send them to the message publishing end; the sorting number represents the obfuscation order of the obfuscation server; Determine that the sorting number of the obfuscation server is not the last number, sign the at least two fifth messages and send them to the message publishing end; the at least two fifth messages are replaced by other obfuscation servers related to the sorting number of the obfuscation server; and so on, until the obfuscation server corresponding to the last number signs the at least two fifth messages after the position replacement as an output message set and sends them to the message publishing end; wherein the obfuscation server belongs to an obfuscation server network; the obfuscation server network includes at least two obfuscation servers sorted in sequence; each of the obfuscation servers corresponds to a sorting number.

11. A message publishing device, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that: When the processor executes the program, the steps of the method according to any one of claims 1 to 6 are implemented; or, When the processor executes the program, the steps of the method according to claim 7 or 8 are implemented.

12. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 6 are implemented; or When the computer program is executed by a processor, the steps of the method according to claim 7 or 8 are implemented.

Citation Information

Patent Citations

  • Data processing method, information interaction system and computer storage medium

    CN111177739A