Software license verification method based on satisfiability problem

By leveraging the NP completeness and zero-knowledge proof technology of the 3-SAT problem, digital licenses are generated and keyless verification are carried out, and security risks and complex attack problems of the existing software license verification mechanism are solved, achieving strong anti-cracking capabilities and security.

CN120180390APending Publication Date: 2025-06-20NANJING UNIV +1
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510273449.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-03-10
Publication Date
2025-06-20

AI Technical Summary

Technical Problem

The existing software license verification mechanism has obvious security risks and difficult means to resist complex attacks.

Method used

The software license verification method based on NP completeness and zero-knowledge proof technology based on 3-SAT problems is used to perform keyless verification to ensure the security of the verification process by generating random 3-SAT problems and their solutions as digital licenses.

Benefits of technology

Effectively resist classical and post-quantum attacks, ensure the security of software licenses and the confidentiality of keys, and reduce the risks of software piracy and illegal replication.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120180390A_ABST
    Figure CN120180390A_ABST
Patent Text Reader

Abstract

The invention discloses a software license verification method based on a satisfiability problem, which comprises the following steps that: a license issuing center generates a random 3-SAT problem for an authorized user of software, takes information of the 3-SAT problem and a solution of the 3-SAT problem as digital license information of the authorized user, and then sends the digital license information to the authorized user and a software verification party; when the authorized user needs to use the software, two communication devices are used for sending an interaction application to a software verification party; performing multi-round interaction between the two communication devices and the software verification party, and recording information of each round; and the software verification party checks the interaction information of each round and judges whether the authentication is passed or not, namely whether the authorized user is authorized to have an effective license or not. The security of the method is based on the NP completeness of the 3-SAT problem, and does not depend on the key length or the complexity of an encryption algorithm; meanwhile, the absolute confidentiality of the license key is ensured by using the zero-knowledge proving technology.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the technical field of software security, and particularly relates to a software license verification method based on the satisfiability problem. Background Art

[0002] Software license management is crucial for the healthy development of the software industry. However, traditional software verification mechanisms, such as simple serial numbers, keys, or verification methods based on account passwords, all have obvious security vulnerabilities and are difficult to resist increasingly complex attack means. These traditional methods usually rely on the complexity of passwords or the confidentiality of keys. Once the key is leaked or the password is cracked, the copyright protection of the software will be in vain, causing huge economic losses to software developers. At the same time, centralized account password management also faces the risks of single-point failure and data leakage. Further, malicious attackers can imitate legitimate verification parties and deceive users' passwords, resulting in great risks in account password management.

[0003] The rise of post-quantum cryptography solutions provides new ideas for solving these problems, but their deployment and application still have technical thresholds. Cryptography solutions based on NP-complete problems, such as systems constructed using the computational complexity of the satisfiability problem (i.e., the 3-SAT problem), provide a more robust solution approach. The 3-SAT problem belongs to the NP-complete problem, and its solution difficulty increases exponentially with the increase in the problem scale. Currently, there is no polynomial-time algorithm that can effectively solve it. This inherent computational complexity provides a solid theoretical basis for constructing highly secure software license verification.

[0004] In the traditional account password verification process, if a malicious attacker can successfully disguise as a verification server or steal the control of the verification server, they can easily intercept the password entered by the user, thereby obtaining the user's sensitive information and causing serious security risks. The introduction of zero-knowledge proof technology can further enhance the security and practicality of verification. Zero-knowledge proof allows the verification party to confirm the validity of the license without obtaining any information about the license key, thus effectively protecting the confidentiality of the key and preventing key leakage.

[0005] In summary, aiming at the deficiencies of the existing software license verification mechanism, how to utilize the NP-completeness of the 3-SAT problem and the advantages of zero-knowledge proof technology to effectively resist various attacks (including classical attacks and post-quantum attacks) in the software license verification process has become a technical problem to be solved. Summary of the Invention

[0006] Objective of the Invention: The objective of the present invention is to provide a software license verification method based on the satisfiability problem, which solves the problems of obvious security risks in the existing software license verification mechanism and difficulty in resisting increasingly complex attack means. The software license verification method of the present invention utilizes the NP-completeness of the 3-SAT problem and the advantages of zero-knowledge proof technology, and does not rely on complex key management technology, and can effectively resist various classical attacks and post-quantum attacks.

[0007] Technical Solution: A software license verification method based on the satisfiability problem of the present invention includes the following steps:

[0008] (1) License Issuance: The license issuance center generates a random 3-SAT problem for the authorized users of the software, and takes the information of the 3-SAT problem and the solution of the 3-SAT problem as the digital license information of the authorized users; the license issuance center then sends the digital license information to the authorized users and the software verification party through an unconditionally secure communication method;

[0009] (2) Application Interaction: When an authorized user needs to use the software, the user sends an interaction application to the software verification party using two communication devices;

[0010] (3) Interactive Communication: The two communication devices and the software verification party conduct multiple rounds of interaction, and record the information of each round;

[0011] (4) License Authentication: The software verification party checks the interaction information of each round to determine whether the authentication is passed, that is, whether it recognizes that the authorized user has a valid license.

[0012] Further, the specific process steps of step (1) are as follows:

[0013] 1) The license issuance center randomly generates a binary random bit string str of length n. Each bit in the binary random bit string str corresponds to a unique index value, and this index value is an integer between 1 and n, indicating the position of this bit in the bit string str; each bit in the binary random bit string str is represented as str i , i ∈ {1, 2,..., n};

[0014] 2) The license issuance center randomly selects three positive integers greater than or equal to 1 and less than or equal to n, denoted as a, b, c; if the bits at the a, b, c positions of the random bit string str are all 0, then discard them; otherwise, use these three integers a, b, c as the index values of three bits, and form a clause to be added to the 3-SAT problem;

[0015] 3) Check all the clauses contained in the current 3-SAT problem. If there are two identical clauses, randomly delete one of them;

[0016] 4) Repeat the above steps 2) to 3) multiple times until there are m clauses in the 3-SAT problem, where m = [4.15n], that is, m is the ceiling of 4.15 times the length n of the binary bit string;

[0017] 5) The license issuing center takes the information of the 3-SAT problem and the solution of the 3-SAT problem, that is, the binary random bit string str of length n, as the digital license information of the authorized user, and then sends the digital license information to the authorized user and the software verification party through an unconditionally secure communication method.

[0018] Further, in the application interaction of step (2), the spatial distance between the two communication devices for the authorized user to send the interaction application is denoted as d, and the two communication devices are respectively denoted as the first interaction device and the second interaction device.

[0019] Further, the specific process steps of step (3) are as follows:

[0020] A: The authorized user randomly rearranges and combines the bits in the n-bit random bit string str through the permutation matrix P and stores them in the first interaction device and the second interaction device. The randomly rearranged and combined random bit string is denoted as Pstr; according to the new index value of the randomly arranged and combined random bit string Pstr, the authorized user generates a new 3-SAT problem based on the original 3-SAT problem and stores it in the first interaction device and the second interaction device; each bit in the random bit string Pstr is represented as Pstr i , i ∈ {1, 2,..., n};

[0021] B: The authorized user randomly generates n random bit strings of length l, denoted as {h i}, i ∈ {1, 2,..., n}, and stores them in the first interaction device and the second interaction device;

[0022] C: The software verification party simultaneously sends information to the first interaction device and the second interaction device; among them, the information sent to the first interaction device is a binary bit string que of length l; the information sent to the second interaction device is a positive integer ch ∈ {1, 2,..., m}; then, the software verification party records the sending time T and the sent information que and ch;

[0023] D: After receiving que, the first interaction device calculates n bit strings i ∈ {1, 2,..., n}, and then sends the n bit strings {s i} to the software verification party; where (que · Pstr i ) represents that each bit of the bit string que is multiplied by the single bit Pstr i to form a new bit string; represents the bitwise exclusive OR of two bit strings; then, the software verifier records the received time T1 and {s i};

[0024] The second interaction device receives a positive integer ch ∈ {1, 2, …, m}, searches for the ch-th clause in the newly generated 3-SAT problem in this round of interaction, and obtains the three index values included in this clause, denoted as r1, r2, and r3; then the second interaction device looks up three-bit binary bits in the rearranged bit string Pstr Denote the index value with any one bit being 1 as r res , and then the index value r res , permutation matrix P, positive integer ch, and bit string are sent to the software verifier; the software verifier records the received time T2, index value r res , permutation matrix P, positive integer ch, and bit string

[0025] E: Repeat the above steps A to D for a total of k rounds, where the number of rounds k is represented by the following expression:

[0026] k = [m · (1 - ε2)]

[0027] where ε2 is a preset positive number representing the probability that an unauthorized user passes the verification.

[0028] Furthermore, the permutation matrix P is an n×n matrix, and each of the n matrix elements in each row and each column of the permutation matrix P has and only has one number that is 1, and the rest of the matrix elements are 0; the permutation matrix P is stored in the first interaction device and the second interaction device.

[0029] Furthermore, the generation of a new 3-SAT problem by the authorized user based on the new index value of the rearranged random bit string Pstr means:

[0030] Since the bits in the random bit string str are randomly rearranged through the permutation matrix P to obtain the random bit string Pstr, the index values corresponding to the bits in the random bit string str change to obtain new index values;

[0031] Then, according to the index values in all clauses of the 3-SAT problem, the corresponding bits are found in the random bit string str, and the index value of this bit is updated to the new index value corresponding to it in the random bit string Pstr, thereby generating a new 3-SAT problem.

[0032] Furthermore, the lengths l of the bit strings {h i} and que are represented by the following expression:

[0033]

[0034] Among them, ε1 is a preset positive number, representing the probability that a malicious node posing as a legitimate software verifier obtains information related to the random bit string str through the interactive information.

[0035] Furthermore, the specific process steps of step (4) are as follows:

[0036] The software verifier performs the following checks on the interactive information for each round:

[0037] (a) Determine whether the relational expressions |T - T1| < d / v and |T - T2| < d / v are satisfied; where v represents the speed of light in vacuum. If not satisfied, end the check and announce that the authentication fails; otherwise, if satisfied, continue to the next check;

[0038] (b) The software verifier rearranges and combines the bits in the random bit string str according to the received permutation matrix P; then, based on the new index values of the rearranged and combined random bit string and the original 3 - SAT problem, generates a new 3 - SAT problem; then, the software verifier searches for the ch - th clause of the new 3 - SAT problem and checks whether the index value r res is one of the three distinct positive integers involved in this clause; if not satisfied, end the check and announce that the authentication fails; otherwise, if satisfied, continue to the next check;

[0039] (c) Determine whether the relational expression is satisfied. If not satisfied, end the check and announce that the authentication fails; otherwise, announce that the authentication passes and recognize that the authorized user has a valid license.

[0040] Furthermore, the unconditional - security communication method is the one - time - pad method based on quantum key distribution.

[0041] Advantages of the present invention:

[0042] (1) For the software license verification method of the present invention, its security is based on the NP - completeness of the 3 - SAT problem, rather than relying on the key length or the complexity of the encryption algorithm; this enables it to provide strong anti - cracking capabilities even in the face of future powerful computing capabilities, including quantum computing, ensures the unconditional security of the verification, and effectively prevents software piracy and illegal copying;

[0043] (2) The use of zero - knowledge proof technology in the software license verification method of the present invention ensures the absolute confidentiality of the license key; the verification process only proves the validity of the key without revealing any information about the key itself. Even if the software verification party is completely compromised or entirely played by malicious attackers, the user's key remains secure, which is conducive to combating fraud and key theft behavior;

[0044] (3) The software license verification method of the present invention is easy to integrate into existing software distribution and management platforms, reducing its deployment and maintenance costs and improving its practicability. BRIEF DESCRIPTION OF THE DRAWINGS

[0045] Figure 1 It is a schematic diagram of the license issuing center of the present invention sending digital license information to an authorized user and a software verification party;

[0046] Figure 2 It is a schematic diagram of the authorized user of the present invention using the first interaction device and the second interaction device to interact with the software verification party. DETAILED DESCRIPTION OF THE EMBODIMENTS

[0047] The present invention will be further described below in conjunction with the drawings and embodiments:

[0048] Existing software verification mechanisms, such as simple serial numbers, keys, or verification methods based on account passwords, all have obvious security vulnerabilities and are difficult to resist increasingly complex attack means; moreover, in the traditional account password verification process, if a malicious attacker can successfully disguise as the verification server or steal the control right of the verification server, they can easily intercept the password entered by the user, thereby obtaining the user's sensitive information and causing serious security risks. Based on the current problems, how to utilize the NP - completeness of the 3 - SAT problem and the advantages of zero - knowledge proof technology to effectively resist various attacks in the software license verification process and ensure the security of software verification has become a technical problem urgently needed to be solved in the industry.

[0049] In view of this, the present application proposes a software license verification method based on the satisfiability problem, including the following steps:

[0050] (1) Issuing a license: As Figure 1 shown, the license issuing center 1 generates a random 3 - SAT problem for the authorized user 2 who has purchased the software, and takes the information of the 3 - SAT problem and the solution of the 3 - SAT problem as the digital license information of the authorized user 2; the license issuing center 1 then sends the digital license information to the authorized user 2 and the software verification party 3 through an unconditionally secure communication method; the unconditionally secure communication method is preferably a one - time pad method based on quantum key distribution.

[0051] The specific process of step (1) is as follows:

[0052] 1) The license issuing center 1 randomly generates a binary random bit string str of length n. The size of n depends on the storage space of the system device. Theoretically, the larger n is, the more complex the resulting 3-SAT problem is and the higher the security. Each bit in the binary random bit string str corresponds to a unique index value, which is an integer between 1 and n, including 1 and n, representing the position of the bit in the bit string str; each bit in the binary random bit string str is represented as str i , where i ∈ {1, 2, …, n};

[0053] 2) The license issuing center 1 randomly selects three positive integers greater than or equal to 1 and less than or equal to n, denoted as a, b, c; if the bits at the a, b, and c positions of the random bit string str are all 0, then discard them; otherwise, use these three integers a, b, c as the index values of three bits and form a clause to add to the 3-SAT problem; a 3-SAT problem consists of several clauses, and each clause contains three distinct positive integers between 1 and n, representing the index values of three different binary bits. The order of the positive integers in the clause is irrelevant. If two clauses contain exactly the same three positive integers, they are considered the same clause. Initially, the 3-SAT problem has no clauses;

[0054] 3) Check all the clauses contained in the current 3-SAT problem. If there are two identical clauses, randomly delete one of them;

[0055] 4) Repeat steps 2) to 3) multiple times until the 3-SAT problem contains m clauses, where m = [4.15n], that is, m is the ceiling of 4.15 times the length n of the binary bit string, and [4.15n] represents the ceiling of the value 4.15n. This is a setting recognized in computational complexity theory to make a 3-SAT problem reach the maximum computational difficulty;

[0056] 5) The license issuing center 1 takes the information of the 3-SAT problem and the solution of the 3-SAT problem, that is, the binary random bit string str of length n, as the digital license information of the authorized user 2, and then sends the digital license information to the authorized user 2 and the software verification party 3 through an unconditionally secure communication method.

[0057] (2) Application interaction: When the authorized user 2 needs to use the software, send an interaction application to the software verification party 3 using two communication devices; the communication devices can be mobile phones, electronic computers, etc.; in the application interaction, record the spatial distance between the two communication devices used by the authorized user 2 to send the interaction application as d, and the two communication devices are respectively denoted as the first interaction device and the second interaction device.

[0058] (3) Interactive communication: As Figure 2 shown, two communication devices conduct multiple rounds of interaction with the software verification party 3 and record the information of each round. The specific process steps are as follows:

[0059] A: The authorized user 2 randomly rearranges and combines the bits in the n-bit random bit string str through the permutation matrix P and stores them in the first interaction device and the second interaction device. The randomly rearranged and combined random bit string is denoted as Pstr; the permutation matrix P is an n×n matrix, and each row and each column of the n matrix elements of the permutation matrix P has and only has one number that is 1, and the rest of the matrix elements are 0. The permutation matrix P is stored in the first interaction device and the second interaction device. According to the new index value of the randomly rearranged and combined random bit string Pstr, the authorized user 2 generates a new 3-SAT problem based on the original 3-SAT problem and stores it in the first interaction device and the second interaction device; each bit in the random bit string Pstr is represented as Pstr i , i ∈ {1, 2, …, n};

[0060] Among them, according to the new index value of the randomly rearranged and combined random bit string Pstr, the authorized user 2 generates a new 3-SAT problem based on the original 3-SAT problem means that:

[0061] Since the bits in the random bit string str are randomly rearranged and combined through the permutation matrix P to obtain the random bit string Pstr, the index values corresponding to the bits in the random bit string str change to obtain new index values;

[0062] Then, according to the index values in all clauses in the 3-SAT problem, the corresponding bits are found in the random bit string str, and the index value of this bit is updated to the new index value corresponding to it in the random bit string Pstr, thereby generating a new 3-SAT problem. For example, if the original index value of a bit is x and the index value becomes y after permutation, then for each clause in the 3-SAT problem, if it contains x, it is modified to y;

[0063] B: The authorized user 2 randomly generates n random bit strings of length l, denoted as {h i}, i ∈ {1, 2, …, n}, and stores them in the first interaction device and the second interaction device;

[0064] C: The software verification party 3 simultaneously sends information to the first interaction device and the second interaction device; among them, the information sent to the first interaction device is a binary bit string que of length l; the information sent to the second interaction device is a positive integer ch ∈ {1, 2, … m}; then, the software verification party 3 records the sending time T and the sent information que and ch;

[0065] The bit string {h i} and the length l of que are represented by the following expressions:

[0066]

[0067] where ε1 is a preset very small positive number, representing the probability that a malicious node posing as the legitimate software verifier 3 can obtain information about the random bit string str through the interaction messages, which is preset according to the actual security requirements; represents the ceiling function of the numerical value .

[0068] D: After the first interaction device receives que, it calculates n bit strings for i ∈ {1, 2, …, n}, and then sends the n bit strings {s i} to the software verifier 3; where (que · Pstr i ) represents multiplying each bit of the bit string que by the single-bit Pstr i to form a new bit string; represents the bitwise exclusive OR of two bit strings; then, the software verifier 3 records the received time T1 and {s i};

[0069] The second interaction device receives a positive integer ch ∈ {1, 2, …, m}, searches for the ch-th clause in the newly generated 3-SAT problem in this round of interaction, and obtains the three index values included in this clause, denoted as r1, r2, r3; the second interaction device then searches for the three-bit binary bits in the rearranged bit string Pstr and records the index value r res where any one of the bits is 1, and then sends the index value r res , the permutation matrix P, the positive integer ch, and the bit string to the software verifier 3; the software verifier 3 records the received time T2, the index value r res , the permutation matrix P, the positive integer ch, and the bit string

[0070] E: Repeat the above steps A to D for a total of k rounds, where the number of rounds k is represented by the following expression:

[0071] k = [m · (1 - ε2)]

[0072] where ε2 is a preset very small positive number, representing the probability that an unauthorized user passes the verification, which is preset according to the actual security requirements; [m · (1 - ε2)] represents the ceiling function of the numerical value m · (1 - ε2).

[0073] (4) License authentication: The software verifier 3 checks the interaction information of each round to determine whether the authentication is passed, that is, whether it recognizes that the authorized user has a valid license. The specific process steps are as follows:

[0074] The software verifier 3 performs the following checks on the interaction information of each round:

[0075] (a) Determine whether the relational expressions |T - T1| < d / v and |T - T2| < d / v are satisfied; where v represents the speed of light in a vacuum. If not satisfied, end the check and announce that the authentication fails; otherwise, if satisfied, continue to the next check;

[0076] (b) The software verifier 3 rearranges and combines the bits in the random bit string str according to the received permutation matrix P; then, based on the new index values of the rearranged and combined random bit string and the original 3-SAT problem, generates a new 3-SAT problem in the same way as the above-mentioned authorized user 2 generates a new 3-SAT problem; then, the software verifier 3 searches for the ch-th clause of the new 3-SAT problem and checks whether the index value r res is one of the three distinct positive integers involved in this clause; if not satisfied, end the check and announce that the authentication fails; otherwise, if satisfied, continue to the next check;

[0077] (c) Determine whether the relational expression is satisfied. If not satisfied, end the check and announce that the authentication fails; otherwise, announce that the authentication is passed, the license is valid, and recognize that the authorized user has a valid license.

[0078] The present invention generates a unique 3-SAT problem and its digital license for each authorized user 2 who can use the software. The authorized user 2 can verify the validity of the digital license to the software verifier 3 through zero-knowledge proof without disclosing the key itself, thus avoiding the risk that a malicious attacker impersonates the software verifier to steal the key in the traditional account password verification system.

[0079] The software license verification method of the present invention uses the solution of the 3-SAT problem, which belongs to the NP-complete problem, as the specific information of the software license, thereby ensuring that the key is still difficult to crack even under the threat of an attacker with quantum computing resources, and has security. At the same time, in order to deal with malicious attackers who attack ordinary account password verification systems, that is, systems where users need to directly enter passwords for verification when logging in, and disguise themselves as verification parties to easily obtain passwords, the present invention utilizes the technology of zero-knowledge proof. Users do not need to disclose the specific information of the license to prove that the license they possess is valid, greatly improving the security of software licenses. The present invention is easy to integrate into existing software distribution and management platforms, has extremely high practicality and promotion value, is applicable to various high-security-level software authorization scenarios, significantly enhances software protection capabilities, provides a reliable business model for software developers, and ultimately promotes the healthy development of the software industry.

Claims

1. A software license verification method based on the satisfiability problem, characterized in that: The following steps are involved: (1) Issuing a license: The license issuing center generates a random 3-SAT problem for the authorized user of the software, and uses the information of the 3-SAT problem and the solution of the 3-SAT problem as the digital license information of the authorized user; the license issuing center then sends the digital license information to the authorized user and the software verifier through an unconditionally secure communication method; (2) Application for interaction: When an authorized user needs to use the software, he / she uses two communication devices to send an interaction application to the software verifier; (3) Interactive communication: The two communication devices interact with the software verifier in multiple rounds and record the information of each round; (4) License authentication: The software verifier checks the interactive information in each round to determine whether the authentication is passed, that is, whether the authorized user is recognized as having a valid license.

2. A software license verification method based on satisfiability problem according to claim 1, characterized in that: The specific process steps of step (1) are: 1) The licensing center randomly generates a binary random bit string str of length n. Each bit in the binary random bit string str corresponds to a unique index value, which is an integer between 1 and n, indicating the position of the bit in the bit string str; Each bit in the binary random bit string str is represented by str i , i∈{1,2,…,n}; 2) The licensing center randomly selects three positive integers greater than or equal to 1 and less than or equal to n, denoted as a, b, and c; if the bits at the a, b, and c positions of the random bit string str are all 0, they are discarded; otherwise, the three integers a, b, and c are used as the index values ​​of the three bits to form a clause and added to the 3-SAT problem; 3) Check all clauses in the current 3-SAT problem. If two clauses are the same, delete one of them at random. 4) Repeat steps 2) to 3) above multiple times until the 3-SAT problem contains m clauses, where m = [4.15n], i.e., m is 4.15 times the length n of the binary bit string, rounded up; 5) The licensing center uses the information of the 3-SAT problem and the solution of the 3-SAT problem, i.e., the binary random bit string str of length n, as the digital license information of the authorized user, and then sends the digital license information to the authorized user and the software verifier through an unconditionally secure communication method.

3. A software license verification method based on satisfiability problem according to claim 2, characterized in that: In the step (2) of applying for interaction, the spatial distance between the two communication devices through which the authorized user sends the interaction application is recorded as d, and the two communication devices are recorded as the first interaction device and the second interaction device respectively.

4. A method for verifying software license based on satisfiability problem according to claim 3, characterized in that: The specific process steps of step (3) are: A: The authorized user randomly rearranges the bits in the n-bit random bit string str through the permutation matrix P and stores them in the first interactive device and the second interactive device. The rearranged random bit string is denoted as Pstr. According to the new index value of the rearranged random bit string Pstr, the authorized user generates a new 3-SAT problem based on the original 3-SAT problem and stores it in the first interactive device and the second interactive device. Each bit in the random bit string Pstr is denoted as Pstr i , i∈{1,2,…,n}; B: The authorized user randomly generates n random bit strings of length l, denoted as {h i }, i∈{1,2,…,n}, stored in the first interactive device and the second interactive device; C: The software verifier sends information to the first interactive device and the second interactive device at the same time; the information sent to the first interactive device is a binary bit string que of length l; the information sent to the second interactive device is a positive integer ch∈{1,2,…m}; then, the software verifier records the sending time T and the sent information que and ch; D: After the first interactive device receives que, it calculates n bit strings s i =(que·Pstr i )⊕h i , i∈{1,2,…,n}, and then the n bit strings {s i } is sent to the software verifier; where (que·Pstr i ) represents each bit of the bit string que and the single bit Pstr i Multiply them together to form a new bit string; ⊕ represents the bit-by-bit XOR of two bit strings; then, the software verifier records the received time T1 and {s i }; The second interactive device receives a positive integer ch∈{1,2,…m}, searches for the chth clause in the new 3-SAT problem generated in this round of interaction, and obtains the three index values ​​included in the clause, which are recorded as r1, r2, and r3; the second interactive device then searches for the three binary bits in the rearranged bit string Pstr The index value where any bit is 1 is denoted as r res Then the index value r res , permutation matrix P, positive integer ch and bit string Sent to the software verifier; the software verifier records the received time T2 and index value r res , permutation matrix P, positive integer ch and bit string E: Repeat the above steps A to D for a total of k rounds, where the number of rounds k is represented by the following expression: k=[m·(1-ε2)] Among them, ε2 is a preset positive number, which represents the probability that an unauthorized user passes the verification.

5. A method for verifying software license based on satisfiability problem according to claim 4, characterized in that: The permutation matrix P is an n×n matrix. In each row and each column of the permutation matrix P, exactly one of the n matrix elements is 1, and the rest of the matrix elements are 0. The permutation matrix P is stored in the first interaction device and the second interaction device.

6. A method for verifying software license based on satisfiability problem according to claim 4, characterized in that: Based on the new index value of the randomly permuted random bit string Pstr, the authorized user generates a new 3-SAT problem based on the original 3-SAT problem, which means: Since the bits in the random bit string str are randomly rearranged through the permutation matrix P to obtain the random bit string Pstr, the index values corresponding to the bits in the random bit string str change to obtain new index values. Then, according to the index values in all clauses of the 3-SAT problem, the corresponding bits are found in the random bit string str, and the index value of this bit is updated to the new index value corresponding to it in the random bit string Pstr, thereby generating a new 3-SAT problem.

7. A method for verifying software license based on satisfiability problem according to claim 4, characterized in that: The bit string {h i The length l of} and que is expressed by the following expression: Among them, ε1 is a preset positive number, representing the probability that a malicious node posing as a legitimate software verifier obtains information related to the random bit string str through the interaction information.

8. The method for verifying software license based on the satisfiability problem according to claim 4, characterized in that: The specific process steps of step (4) are as follows: The software verifier performs the following checks on the interaction information for each round: (a) Determine whether the relationships |T - T1| < d / v and |T - T2| < d / v are satisfied; where v represents the speed of light in a vacuum. If not satisfied, end the check and announce that the authentication fails; otherwise, if satisfied, continue to the next check; (b) The software verifier rearranges the bits in the random bit string str according to the received permutation matrix P; then generates a new 3-SAT problem based on the new index value of the random bit string after the permutation and combination and the original 3-SAT problem; then, the software verifier searches for the chth clause of the new 3-SAT problem and checks the index value r res Is it one of the three different positive integers involved in the clause? If not, the check ends and the authentication is declared unsuccessful. Otherwise, the check continues to the next step. (c) Determine the relationship If not, the check is terminated and the authentication is declared failed; otherwise, the authentication is declared passed and the authorized user is recognized to have a valid license.

9. The method for verifying software license based on the satisfiability problem according to claim 1, characterized in that: The unconditionally secure communication method is the one-time pad method based on quantum key distribution.