WO2024058298A1 - Method for generating hard sat and method for implementing sat-based quantum-resistant cryptographic algorithm - Google Patents

Method for generating hard sat and method for implementing sat-based quantum-resistant cryptographic algorithm Download PDF

Info

Publication number
WO2024058298A1
WO2024058298A1 PCT/KR2022/014158 KR2022014158W WO2024058298A1 WO 2024058298 A1 WO2024058298 A1 WO 2024058298A1 KR 2022014158 W KR2022014158 W KR 2022014158W WO 2024058298 A1 WO2024058298 A1 WO 2024058298A1
Authority
WO
WIPO (PCT)
Prior art keywords
clauses
literals
tree
value
solution
Prior art date
Application number
PCT/KR2022/014158
Other languages
French (fr)
Korean (ko)
Inventor
조금배
Original Assignee
조금배
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 조금배 filed Critical 조금배
Publication of WO2024058298A1 publication Critical patent/WO2024058298A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0852Quantum cryptography
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy

Definitions

  • Hard SAT refers to a satisfiability problem (SAT) that is difficult to find a solution, specifically, the time required to find a solution exceeds polynomial time (the time complexity of the algorithm is expressed as a polynomial for the number of input data). do.
  • the present invention relates to a method of generating a Hard SAT and a method of generating a quantum-resistant cryptographic algorithm based on Hard SAT. More specifically, the present invention relates to a newly created concept of toroidal binomial tree and modular random encapsulation. This is about a method of generating a Hard 3-CNF with a password as the solution using the encapsulation technique and a method of implementing a quantum-resistant encryption algorithm based on the difficulty of finding a solution to the SAT problem using this method.
  • Prime factorization and discrete logarithms problems which were the basis of existing public key-based algorithms, could be solved in polynomial time using a quantum computer through the Shor algorithm announced in 1994, and quantum computer development technology was developed. Due to continuous development, the safety of the applied encryption algorithm cannot be guaranteed. Therefore, as a new public key-based algorithm that does not take advantage of the difficulty of prime factorization or the discrete log problem is required, research on public key-based encryption algorithms that are safe even for operations on quantum computers is being actively conducted, and such encryption technology is being developed. It is called quantum-resistant or quantum-safe cryptography, or Post Quantum Cryptography (PQC), which means cryptography that can be safely used even after quantum computers.
  • PQC Post Quantum Cryptography
  • quantum-resistant cryptographic algorithms include multivariable-based, code-based, isogeny-based, and lattice-based.
  • the Isogeny-based algorithm has a problem that the calculation speed is slow, and the multivariate-based algorithm has a high decryption failure rate. Therefore, grid-based algorithms or code-based algorithms are mainly used in the PKE (Public Key Encryption) field.
  • PKE Public Key Encryption
  • the grid-based encryption algorithm has the disadvantage of being vulnerable to side-channel attacks using additional information (power, electromagnetic waves, time difference, error injection, etc.) generated during the encryption and decryption process.
  • additional information power, electromagnetic waves, time difference, error injection, etc.
  • the code-based algorithm the original key is not found and the ISD (Information Set Decoding) techniques are being continuously researched as a method of recovering data.
  • ISD Information Set Decoding
  • all public key-based cryptographic algorithms used or studied to date have a relationship expressed as a formula between the public key and private key, which is a trapdoor one-way function, and are based on that relationship. Attacks are constantly being attempted to find vulnerabilities in the algorithm and obtain private keys or original data or make decryption impossible.
  • the safety of the algorithm depends on the performance of SAT solvers based on the search algorithm, and since there is no formal relationship between the private key and the public key through arithmetic operations, it is free from various attacks that attempt to find the private key from the public key.
  • no method has been found to systematically generate Hard SAT, and no encryption method applicable to real life has been researched using the Boolean expression that makes up SAT, so an encryption algorithm using SAT has not been developed.
  • a SAT instance created using a specific method is a Hard SAT.
  • the assumption that the time it takes to find a solution will exceed the polynomial boundary is called the Exponential Time Hypothesis (ETH), and the problem of proving whether ETH is correct becomes the P vs. NP problem, one of the seven difficult problems in mathematics.
  • ETH Exponential Time Hypothesis
  • SAT solvers developed to date are DPLL based on back-tracking (a technique that assumes the value of a variable and when it is confirmed that the assumption is incorrect, goes back to the assumed step and changes the value of the assumed variable to find a solution again) It was created based on an algorithm. The proof in this patent is limited to all back-tracking-based SAT solvers developed to date.
  • the 3-CNF generated by modular random encapsulation of the single toroidal binomial tree described in the present invention has as many solutions as the sub-exponential number in addition to the basis solution and complement solution (hereinafter referred to as dual solution), and the desired solution (password) It is proven that at least the number of sub-exponential calculation steps is required to find .
  • 3-CNF which is generated by modular random encapsulation of a dual toroidal binomial tree, has no solution other than a dual solution if the number of input variables is sufficiently large, and that the number of exponential-calculation steps is required to find a dual solution. do.
  • the present invention provides a method of generating a Hard SAT and a method of implementing an encryption algorithm that discloses the Hard SAT as a public key, encrypts it using this, and then decrypts only if the password that is the solution of the Hard SAT is known.
  • the method for generating Hard 3-CNF with a password as a solution is to generate a single toroidal binomial tree with a password as a solution using (method 1) below. It is characterized by deriving the 3-CNF formula by modular random encapsulation using (method 2) below.
  • n ixj, i: number of levels in the tree, j: number of columns in the tree
  • Figure 1 shows the procedure for creating a toroidal binomial tree through a transformation process to satisfy expressional equality and geometric equality from a unit clause. Create a toroidal binomial tree frame like (g) in [Figure 1].
  • n literals with TRUE values or n literal sets with FALSE values consisting of the variables assigned in 1) above, and then sort them randomly.
  • TRUE x 7 , x 2 , -x 12 , -x 16 , x 10 , -x 4 , x 3 , -x 9 , -x 1 , x 15 , x 5 -x 13 , -x 6 , -x 14 , x 8 , x 11
  • a method of generating 3-CNF with a password as a solution according to another preferred embodiment of the present invention for realizing the above object generates a dual toroidal binomial tree with a password as a solution using (method 3) below, and It is characterized by deriving the 3-CNF formula by modular random encapsulation using (method 4).
  • n ixj, i: number of levels in the tree, j: number of columns in the tree
  • a clause with only one TRUE value is defined as a 1-TRUE clause
  • a clause with only two literals with a TRUE value is defined as a 2-TRUE clause.
  • 3-CNF In order to apply the encryption algorithm using 3-CNF proposed in this patent, 3-CNF must satisfy the following three conditions.
  • a method of generating a quantum-resistant encryption algorithm based on Hard SAT uses (method 1) and (method 2) or (method 3) and (method 4) 3-CNF derivation step that satisfies the above three conditions using or other methods;
  • 2n arrays are recorded by sequentially combining the n arrays constituting a k and the n arrays constituting b k .
  • a k and b k are exchanged to create b k .
  • An encryption step of recording 2n arrays by sequentially combining the n arrays constituting the n arrays and the n arrays constituting a k ;
  • a formula generation step that reads the ciphertext, sequentially sets the values a k and b k , and then calculates the threshold value, t, as shown below (Equation 9);
  • 2n arrays are recorded by sequentially combining the n arrays constituting a k and the n arrays constituting b k .
  • a k and b k are exchanged to create b k .
  • An encryption step of recording 2n arrays by sequentially combining the n arrays constituting the n arrays and the n arrays constituting a k ;
  • the CNF formula possessed by the sender to transmit the ciphertext and the generator of the CNF formula are consistent with the CNF formula possessed by the recipient who will receive the ciphertext, and the receiver knows the solution of the above CNF formula. It is characterized by further performing the step of confirming the constructor of the existing CNF formula by (Method 5) below.
  • the receiver decrypts the ciphertext received with his password, checks the key value, substitutes this key value into the CNF formula to obtain the return values of all clauses, and sequentially sends them to the sender.
  • the sender generates return values by substituting the generated key value into the CNF formula holding the generated key value, and then compares the received return values with the generated return values.
  • the recipient becomes the creator of the CNF formula, and it is characterized in that it is performed as a step of confirming that both parties have the same CNF formula.
  • the present invention provides that, due to the characteristics of the circular structure of the circular binomial tree and the characteristics of the indistinguishability of the variables, all 3-SAT objects (instances) created must at least find a solution for backtracking-based algorithms. It can be used in encryption because it proves that the number of sub-exponential calculation steps is required. In addition, by disclosing the CNF formula that makes up the Hard SAT, using it for encryption, and suggesting a method of decryption only when the private key that is the solution to the CNF formula is known, other disclosures have been subjected to various attacks due to the formal relationship between the public key and private key. It has an advantage in terms of safety compared to key-based algorithms.
  • the present invention has improved advantages in both fast calculation and ease of implementation, so advanced encryption technology utilizing it can be applied to various fields.
  • Figure 1 is a schematic diagram illustrating the process of generating a toroidal binomial tree from a unit clause consisting of only one literal.
  • Figure 2 is a diagram showing an example of a single toroidal binomial tree in which no random variables are added;
  • Figure 3 is a diagram showing an example of a single toroidal binomial tree with added random variables
  • Figure 4 is a diagram showing an example of a dual toroidal binomial tree without random variables added
  • Figure 5 is a diagram showing an example of a dual toroidal binomial tree with added random variables
  • Figure 6 is a diagram to explain the concept of a dual toroidal binomial tree
  • Figure 7 is a diagram to compare and explain the propagation of the effect when the value of one variable changes and unit propagation (Boolean constraint propagation);
  • Figure 8 is a diagram for explaining the concept of modular random encapsulation
  • Figure 9 is a diagram for explaining the concept of CDC (Conditional Don't-Care) variable
  • Figure 10 is a diagram illustrating the process of selecting decision literals and implied literals to find circular loops created in TRUE trees and FALSE trees;
  • Figure 11 is a diagram illustrating the process of changing clauses consisting of three literals into clauses consisting of two literals by deleting the complements of the decision literal and implied literal selected in the previous step from the clause;
  • Figure 12 is a diagram illustrating the results of an experiment conducted to confirm that 3-CNF generated by modular random encapsulation in a dual toroidal binomial tree does not have a solution other than a dual solution if the number of input variables is sufficiently large;
  • Figure 13 is a diagram to explain the results of an experiment measuring the time it takes to find a solution while increasing the size of the dual toroidal binomial tree;
  • the present invention creates a binomial tree by applying a resolution rule and adding redundancy clauses to hide the information that one literal value constituting the unit clause, which is the simplest clause, must have a TRUE value to be satisfiable,
  • the circular binomial tree above has a unique dual solution due to the characteristics of the circular structure.
  • the 2-CNF formula extracted from the toroidal binomial tree does not undergo back-tracking, so it can be easily solved by the SAT Solver.
  • the random encapsulation technique as a method of adding random variables to transform the clauses that make up the circular binomial tree to have three literals.
  • the search algorithm can easily find a subset of the solution. To prevent this case, we describe a newly invented modular random encapsulation technique.
  • the Boolean variable a has only the value TRUE (1) or FALSE (0) and creates literals such as ⁇ a, a.
  • An expression expressed as a disjunction (v) of literals, such as (a ⁇ b), is called a clause.
  • An expression expressed as a conjunction ( ⁇ ) of clauses, such as (a ⁇ b) ⁇ (b ⁇ c), is called Conjunctive Normal Form (CNF).
  • a group of literals that make all the clauses that make up the CNF formula have the value TRUE is defined as the solution to the CNF formula, and the problem of finding whether a solution to the CNF formula exists is called the Satisfiability problem (SAT). If a solution exists, the CNF formula that makes up SAT is expressed as satisfiable.
  • SAT Satisfiability problem
  • a CNF formula in which all clauses are composed of two or fewer literals is expressed as 2-CNF
  • a CNF formula in which all clauses are composed of three or fewer literals is expressed as 3-CNF
  • a CNF formula in which all clauses are composed of only three literals is expressed as Exact 3-CNF.
  • the question of whether a solution to each CNF formula exists is expressed as 2-SAT, 3-SAT, and Exact 3-SAT.
  • DTM deterministic Turing machine
  • NTM non-deterministic Turing machine
  • DTM can have only one state transition from the previous step to the next step, and NTM can have multiple.
  • the set P is a set of decision problems for which an algorithm exists to solve the problem with a polynomial step number using DTM
  • the set NP is a set of decision problems for which an algorithm exists to solve the problem with a polynomial step number using NTM. It is defined as a set of existing decision problems, and SAT belongs to NP.
  • A is expressed as polynomial-time reducible to B
  • all NP problems are polynomial-time reducible to problem B.
  • B is defined as an NP-hard problem
  • SAT is the first representative NP-complete problem discovered.
  • a unit clause consisting of only one literal is created. Then, in the process of finding a solution, when we find that the assumption is incorrect, we go back to the step where we assumed the variable value to be FALSE and modify the variable value.
  • the act of assigning a literal value to FALSE is expressed as a decision assignment, and the variable assigned a value such that the literal has the value of FALSE is defined as a decision variable.
  • the act of setting a variable value so that the unit clause is satisfiable, that is, the character value is TRUE, is expressed as implied assignment, and the variables that make up the unit clause are defined as implied variables.
  • Variable values set by implied assignment affect the values of other variables to determine the satisfiability of other clauses. This influence occurs by deleting the complement from the clause containing the complement of the implied literal when assigning TRUE. This behavior means assuming that the complement of the implied literal does not contribute to the satisfiability of the clause. If a clause is created in which none of the remaining literals is assigned a TRUE value even though a satisfiable solution exists, the above assumption is incorrect. must be modified. In other words, it affects the values of other variables so that at least one of the two literals must be TRUE. This influence is propagated through the path created by the implied literal and its complement. This is expressed as Boolean constraint propagation or unit propagation.
  • the decision literal is assigned to have the value of FALSE and the implied literal is assigned to have the value of TRUE, the complement of the decision literal or implied literal included in one clause does not affect satisfiability and is therefore deleted. If an empty clause is created in the above process, it is said that a conflict has occurred. If two or more literals remain in one clause even after deleting the complement of implied literals or decision literals, you must successively set another variable as a decision variable and assign the value FALSE. Since the setting of these continuous variable values requires modifying the set value when a conflict occurs, a binary tree created by decision variables is constructed and managed, and the tree level above is called the decision level.
  • the present invention describes a method of systematically generating a Hard SAT that is difficult for SAT solvers to solve, and a method of encrypting and decrypting using the generated Hard SAT.
  • Figure 1 shows a schematic diagram to explain the process of creating a toroidal binomial tree from a unit clause consisting of only one literal. After creating a binomial tree by applying a resolution rule to the unit clause and inserting redundant clauses, it is transformed into a circular binomial tree to remove the expressional inequality of the binomial tree, and then a circular binomial tree is used to remove the geometric inequality of the circular binomial tree. It shows the transformation procedure.
  • Figure 2 is a diagram showing an example of a single toroidal binomial tree in which no random variables are added.
  • Literals with TRUE values were randomly sorted and placed in place of dominant literals. Switching literals are placed as complements of dominant literals.
  • Figure 3 is a diagram showing an example of a single toroidal binomial tree to which random variables are added. It is a form of inserting random literals to change the clauses constituting the circular binomial tree generated in Figure 2 into clauses made up of three literals, and shows the left shift modular random encapsulation technique in which random literals with FALSE values are placed on the left.
  • Figure 4 is a diagram showing an example of a dual toroidal binomial tree in which no random variables are added.
  • Figure 2 shows an example of creating a dual toroidal binomial tree by adding a FALSE tree to the TRUE tree created.
  • Figure 5 is a diagram showing an example of a dual toroidal binomial tree to which random variables are added.
  • the left shift modular random encapsulation technique is shown with a random literal added.
  • Figure 6 is a diagram to explain the concept of a dual toroidal binomial tree. It shows that one variable constituting a dual toroidal binomial tree and its complement play a dominant literal role in both trees.
  • Figure 7 is a diagram to compare and explain the propagation of the effect when the value of one variable changes and unit propagation (Boolean constraint propagation). It shows that a short circular loop is created when a random literal overlaps with a dominant literal or switching literal.
  • Figure 9 is a diagram to explain the concept of a new concept, CDC (Conditional Don't-Care) variable. It shows an example in which a circular loop is formed in the horizontal and vertical directions and variables are connected to form a CDC.
  • Figure 10 is a diagram to explain the process of selecting decision literals and implied literals to find circular loops created in TRUE trees and FALSE trees. It shows that if decision literals and implied literals are selected correctly, the tree's unique circular loop can be found.
  • Figure 11 is a diagram to explain the process in which clauses consisting of three literals are changed into clauses consisting of two literals by deleting the complements of decision literals and implied literals selected in the previous step from the clause.
  • Figure (a) shows a case where dominant literals and random literals are deleted from the FALSE tree
  • figure (b) shows a case where switching literals and random literals are deleted from the TRUE tree.
  • Figure 12 is a diagram to explain the results of an experiment conducted to confirm that 3-CNF generated by modular random encapsulation in a dual toroidal binomial tree does not have solutions other than the dual solution if the number of input variables is sufficiently large. It can be seen that the theoretical predicted value of the probability of having a unique dual solution matches the measured value.
  • Figure 13 is a diagram to explain the results of an experiment measuring the time it takes to find a solution while increasing the size of a dual toroidal binomial tree. Both the free modular method and the shift modular method show that the time to find a solution increases exponentially in proportion to the number of input variables.
  • Figure 14 is a diagram for explaining the encryption and decryption method using Hard CNF. After extracting q number of 2-TRUE clauses and p number of 1-TRUE clauses to create a new CNF, randomly extract 2p+1 clauses, count the number of literals to create a ciphertext, extract the number of literals from the ciphertext, and set the threshold value. After creating a formula to check, it shows the process of substituting the password and decrypting it to 1 if it is greater than or equal to 3p+2, and 0 otherwise.
  • the above problem can be considered extremely hard because it is difficult to create an algorithm that can find a solution due to indistinguishability. So, we want to create Hard SAT by creating a conceptual indistinguishable space that makes it difficult to create an algorithm to solve the problem and hiding the values of variables in that space.
  • the present invention defines expressional equality and geometric equality.
  • Hard SAT is created by creating a toroidal binomial tree as an indistinguishable space with the above two equality characteristics and randomly inserting literals into the nodes that make up the tree.
  • a toroidal binomial tree is created through the process of continuously transforming the simplest clause, the unit clause, in the direction of increasing the complexity of the CNF formula.
  • (a) shows a unit clause.
  • (b) is a unit clause transformed into k clauses consisting of two letters
  • (c) is a form that increases complexity by adding new redundant clauses consisting of two letters
  • (d) is a form of resolution by adding variables. Shows the process of creating new paths to which rules can be applied.
  • (e) shows a binomial tree created by repeating the addition process in (d).
  • (f) shows how to create a circular tree to secure expressional equality from a binomial tree.
  • (g) shows how to create a toroidal binomial tree to secure geometric equality from a circular tree.
  • (h) shows the shape of a toroidal binomial tree.
  • a resolution technique is used as a method to solve SAT problems.
  • a resolution rule is used when combining clauses to create new clauses.
  • An example is as follows.
  • Equation 1 indicates that the condition for variable a to have a TRUE value is a necessary condition for both clauses (a ⁇ b) and (b ⁇ a) to be TRUE. If you change your perspective, you can interpret that the necessary conditions for variable a are hidden in two clauses, and by expanding the above concept, we want to make it difficult to find the necessary conditions for variable a by continuously increasing the number of clauses. To easily check the above process, one or two pairs of clauses are graphed. In the case of (x 1.1 ⁇ x 2.1 ) and (x 1.1 ⁇ x 2.1 ) ⁇ (x 1.1 ⁇ x 2.2 ), the literals are expressed by connecting the literals with a single line as follows.
  • the unit clause (x 1.1 ) is expanded into several clauses using a resolution rule, and redundant clauses are added to continuously execute the process of making it difficult to find the necessary condition for x 1.1 for all clauses to have a TRUE value. If the above process is represented graphically, a tree like (e) in [ Figure 1] is created.
  • the character (variable) that belongs to the two clauses in common is defined as a dominant literal (variable), and the remaining two characters (variables) are defined as switching literal (variable).
  • Switching variable means that the resolution rule plays a role in selecting the applicable clause.
  • the number of resolution paths created from the root node to a specific child node is expressed as a binomial coefficient, so the generated tree is defined as a binomial tree.
  • the binomial tree differs in the number of complements of dominant literals used in the root node, outer node, and inner node. The root node was never used, the outer nodes were used once, and the inner nodes were used twice. Let's express the difference in the number of uses of variables as above as the expressional inequality of the CNF formula.
  • the morphological inequality of the CNF formula allows the algorithm to easily distinguish between root nodes and inner nodes, making it possible to easily find a solution by selecting the search direction from the inner node to the root node rather than the direction from the root node to the inner node.
  • the root node, outer node, and inner node used different complements of dominant literals, but in the circular binomial tree, all literals and their complements are used twice. Additionally, all nodes have one or more circular loops that return to the starting point by following a path from the starting point.
  • the circular binomial tree ensures formal equivalence of the CNF formula for variables because the number of uses of variables and their complements is the same.
  • the geometric form that creates the tree structure is divided into a start node and an end node. The difference in geometric form is that when you follow the path with one node as the starting point, a circular loop is created that returns to the starting point. At this time, the number of times it passes through the node and returns to it makes a difference. Let's express this difference as the geometric inequality of the CNF formula.
  • the geometric inequality of the circular binomial tree creates a difference in the number of calculation steps required by the search algorithm to find a solution.
  • two circular binomial trees are created taking into account the number of variables. After that, nodes are randomly selected and arranged so that one variable plays the role of the dominant variable in one tree, and the complement of that variable is arranged so that it plays the role of the dominant variable in the other tree. By this arrangement, one variable and its complement play the role of the dominant variable and switching variable in the entire CNF formula, thus establishing directional equality.
  • the tree generated by the above arrangement is defined as a dual toroidal binomial tree.
  • the set of n dominant literals used in (Method 1) above is defined as the basis solution. Due to the duality characteristic of the solution, the set of complements of all literals included in the basis solution also becomes the solution.
  • the above solution is defined as a complement solution.
  • a unique dual solution is defined as a case where there is no solution other than the basis solution and complement solution.
  • a tree in which dominant literals are arranged in a set of n literals with TRUE values is defined as a TRUE tree
  • a tree in which dominant literals are arranged in a set of n literals in FALSE values is defined as a FALSE tree.
  • the clauses that make up the (dual) toroidal binomial tree described earlier are composed of two literals, and due to the duality characteristic of the solution, one literal can have both TRUE and FALSE values. Therefore, even if you select one literal and assume it is FALSE, the assumption will always be true. Therefore, because back-tracking does not occur, the solution is easily found by the SAT solver.
  • all literals and their complements included in the basis solution are randomly sorted and then sequentially added to the clauses that form the (dual) toroidal binomial tree. Let's do it. At this time, it is added while satisfying two conditions.
  • one of the two literals to be added to the two clauses that make up one node uses the one included in the basis solution, and the other uses the one that is not included.
  • This behavior is defined as random encapsulation
  • the added character (variable) is defined as random literal (variable).
  • the implied literal used to form the final cyclic loop becomes a dominant literal or switching literal, it forms a cyclical loop with a toroidal binomial tree, and if it becomes a random literal as in (g) of [ Figure 7], the random variable It shows that a short circulation loop is formed by creating a circulation loop.
  • the unit propagation path created in (e), (f), and (g) of [Figure 7] only changes the direction, and one variable created in (a), (b), and (d) of [ Figure 7] You can see that the path through which influence is propagated when the value changes is the same.
  • Short circular loops make it easier to find a solution because the DPLL algorithm allows one clause to be deleted even with a small number of calculation steps.
  • the CNF formula In order for the CNF formula to be used in encryption, it is important to find a difficult solution, but it is also important to avoid cases where the solution is easily obtained accidentally. Therefore, we want to find a way to ensure that all generated SATs have hardness above a set limit in any case.
  • the minimum length of a circular loop created by a toroidal binomial tree is equal to the number of levels in the tree. If it is possible to prevent random variables from being included in the variables that make up the circular loop, a decision level sufficient to create the original circular loop of the circular binomial tree must be formed, but one clause must be erased by previously assigned variables. Hardness above a certain level is secured.
  • the dominant literals and their complements included in the furthest group are randomly sorted, then taken out one by one and added to the two clauses that make up one node using the random encapsulation method. Since the circular binomial tree has cyclic loops in both the horizontal and vertical directions, the distance between the two groups is mathematically equivalent to the number of columns/2, the number of columns/2-1, and the number of columns/2+1. In the experiment for this patent, the distance was set to the number of columns/2-1 regardless of whether the number of columns was odd or even.
  • the correlation graph of variables created through modular random encapsulation can be seen as a bridge connecting nodes by random variables on top of a toroidal binomial tree composed of 2-SAT.
  • the act of assuming a random literal value to be FALSE in order to create a unit clause, that is, setting it as a decision variable has a 1/2 probability of being a correct assumption, so all nodes can become a return point for back-tracking. . Therefore, it is predicted that the addition of random variables will rapidly increase the number of conflict occurrences in the DPLL algorithm.
  • the act of correctly selecting random literals for each node and setting them to FALSE means removing the random literals added to each clause and performing unit propagation in the tree composed of the 2-CNF formula.
  • the 2-CNF formula performs unit propagation without additional decision assignment through a single decision assignment and continuous implied assignment, but the 3-CNF formula sets the decision level by setting a random variable value so that the random literal has the value FALSE at every node. increase
  • the added random variable plays a role in selecting the path through which unit propagation occurs among the two paths branching from one node, and increases the decision level by one each time it is selected.
  • Lemma 1 If decision literals are randomly selected, information that can reduce the number of back-tracking executions is not accumulated with each repeated execution.”
  • the indistinguishability characteristics of variables maximize the number of back-tracking executions by minimizing the information that can be obtained through previous executions.
  • the above results mean that the new clause generated by the CDCL algorithm does not play a role in solving problems with indistinguishability characteristics, and that back-tracking must be performed as many times as the number of all worst-case cases to obtain a solution. do.
  • a circular loop is formed by a switching variable, and if the values of the random variables do not change, the dominant variables (or switching variables) constituting the column can have both TRUE and FALSE values, so the solution set is the basis solution (G 1 , G 2 ,...,G m ) and the complement solution (-G 1 ,-G 2 ,...,-G m ), (G 1 ,-G 2 ,...,G m ),(-G 1 ,-G 2 ,... There can be several more solutions such as ,G m ), etc.
  • the circular loop is not only formed in the column direction by switching variables, as shown in (a) of Figure (1) of [ Figure 9], but also in the row direction by random variables, as shown in (b).
  • GCD number of columns, distance
  • the length of the circular loop in the row direction becomes the number of columns.
  • r 1 is one of the complements of dominant literals included in the G 2 group, so the probability that r 1 becomes the complement of d 1 is 1/k. do.
  • d 5 is defined as a conditional don't-care (CDC) literal.
  • One CDC literal creates another CDC literal. If D 5 changes to FALSE and the values of r 3 and r 4 change as shown in (a) of [ Figure 9], d 6 becomes a CDC literal.
  • DCG care group
  • d 4 becomes a CDC variable.
  • d 5 becomes a CDC literal if the random variables of the node to which d 5 belongs do not change their values.
  • d 6 and d 7 also become CDC literals if the values of the random variables forming the circular loop are not changed.
  • the size of the DCG can be increased or decreased to create a DCG of arbitrary size. Once a circular loop is formed, how much the size of the DCG can increase is determined by how the random literals are distributed.
  • random literals with a FALSE value are placed on the left, and those with a TRUE value are placed on the right.
  • the value of the dominant literal changes, the value of the random literal created with the same variable also changes. Since each random literal is randomly placed, as the value of the dominant literal changes, the location where the value of the random literal created with the same variable changes also becomes random. Therefore, the size and number of DCGs vary for each instance.
  • 3-CNF generated by left shift modular random encapsulation of a single toroidal binomial tree has at least sub-exponentially many solutions.
  • the 3-CNF formula generated by modular random encapsulation has the characteristic that if the values of the added random variables do not change, if the value of one variable in the basis solution changes, the values of at least the variables at least the number of tree levels must change simultaneously to maintain satisfiability. . Passes that create circular loops are created in clauses where the random variable has the value FALSE. When we assign a random variable to two clauses that make up one node in the left shift modular method, we set the position where the random variable has a FALSE value to the left based on the basis solution. Therefore, if the solution is other than the basis solution, it has a different type of circular loop than the basis solution.
  • Method 1 we prepared a space for dominant literals in a structure called a circular binomial tree and randomly placed literals in that space. Then, random variables were added using the modular random encapsulation technique in (Method 2). At this time, since the random variables and dominant variables were extracted from different groups, there is a possibility that they can be distinguished from each other.
  • One clause consists of a dominant variable, switching variable, and random variable. The attempt to distinguish between variables is to find their roles, which is an attempt to understand the tree structure. Since literals that play the same role are randomly selected and placed in one group, you must check which group the variables belong to in order to distinguish them from each other.
  • Lemma 3 When the tree level is k, the probability of finding a column group using the DPLL algorithm is 1/(3x6 k-2 ).
  • the rectangle indicates the decision literal that was first selected and deleted. Marked with d i means the ith correctly selected decision literal and marked with i means the ith implied literal.
  • (a) in [ Figure 10] shows that two decision literals that played a dominant literal role in the FALSE tree have been deleted. When displaying a dominant literal as a graph, keep in mind that two identical literals are displayed as one.
  • (b) is a case where a decision literal played a random literal role in the same tree
  • (c) shows that two decision literals that played a switching literal role in a TRUE tree were deleted
  • (d) is a case where a decision literal played a random role in the same tree. Indicates the case where a literal role is used. In all four cases above, if the subsequent decision literals are selected correctly, the circular path created by the column group is found, as shown in [ Figure 10].
  • Another method is to select the clause in which the erased literal was used as a random literal, as shown in (b) of [ Figure 10], and then select the one with a FALSE value among the dominant literal and switching literal, and the probability is 1/3 x 1/ It becomes 2.
  • the above two options proceed with unit propagation once in two different circular loops. Therefore, the probability of correctly selecting two decision literals, d 1 and d 2 , in succession is 1/3.
  • Selecting d 1 and d 2 selects one node that forms the group you are looking for. If you select d 2 and assign a FALSE value, a unit clause is created, and after assigning a TRUE value to the implied literal, if you delete the complement of the implied literal from the CNF formula, up to 3 clauses consisting of 2 literals can be created in one tree. is created. The probability varies depending on how many of the three clauses are erased by decision literals and implied literals that were previously assigned values. Because random variables and dominant variables are placed without overlapping through modular random encapsulation, deleted clauses do not occur during propagation to the level of the tree.
  • Theorem 1 Even if a new algorithm is developed to understand the tree structure, at least the number of worst-case sub-exponential calculation steps is required to find a group of variables forming one column.
  • the two trees share variables with each other. If a DCG formed by the same literals is created in both trees and the set of variables in the group is expressed as G 1 and the set of remaining variables is expressed as G 2 , the basis solution is (G 1 ,G 2 ) and the complement solution is (-G 1 ,-G 2 ), and in addition to the above two solutions, there can be additional solutions such as (-G 1 ,G 2 ) and (G 1 ,-G 2 ).
  • the 3-CNF formula generated by modular random encapsulation has the characteristic that satisfiability is maintained only when the values of at least the number of tree levels change when the value of one variable changes in the basis solution. -When creating a CNF, the probability of multiple solutions existing is significantly reduced.
  • the overall probability is expressed as the product of the probability that a circular loop will be formed in the FALSE tree and the probability that all remaining literals constituting the extracted DCG will be CDC literals. Therefore, the probability of having a solution other than the dual solution is smaller than the maximum probability that some of the literals forming the DCG extracted from the TRUE tree create a circular loop in the FALSE tree.
  • the values of random variables must not change and the values of switching variables must change.
  • the size of the extracted DCG is m
  • the probability that the random variable does not change its value is (nm)/n
  • the probability that the switching variable changes its value is m/n. Therefore, the probability of creating a circular loop varies depending on the length of the extracted DCG. We saw that once a circular loop is formed, the length of the DCG can be increased or decreased by adding or deleting variables.
  • the other variables that form a circular loop for n variables can be any, so they are independent for each variable. Additionally, a single variable is divided into a case where a random variable creates a circular loop and a case where a switching variable creates a circular loop, and the two cases cannot overlap. Therefore, the overall probability is expressed as the sum of probabilities for all input variables, so the probability of having a solution other than the dual solution is expressed by Ari's (Equation 4).
  • Equation 4 uses the maximum value of the probability of forming a circular loop in the FALSE tree when the length of the DCG extracted from the TRUE tree is variable. Therefore, the value a is not only in the FALSE tree, but also in the TRUE tree from which the DCG is extracted.
  • the length of the DCG is allowed to change by adding or deleting variables while maintaining the circular loop, DCGs formed from the same group of literals can exist at the same time in both trees. It means probability.
  • Lemma 4 When the number of columns and distance are mutually prime, the number of columns and tree level are k, and the number of input variables is n, the probability of having a solution other than the basis solution and complement solution is 2 n(k+1)/(k4 k It is smaller than -1 ).
  • Lemma 5 When finding a solution to 3-SAT generated by modular random encapsulation of a toroidal binomial tree with the DPLL algorithm, if the number of input variables is n, on average 2n/7 decision assignments are performed.
  • the number of unit clauses with k decision assignments becomes k. Therefore, among the 2n clauses, the number of remaining clauses that can be unit clauses is 2n-k. Among the remaining clauses, the average number of clauses that become unit clauses is calculated as (Formula 6).
  • Lemma 6 If you have a unique dual solution, to find a solution with the DPLL algorithm when the decision level is k, the number of worst-case calculation steps is 2 k-1 to 3 k-1 .
  • one literal is initially assumed to be FALSE.
  • the solution to be found in the pair of solution sets is the solution in which the selected literal has the value FALSE. Since a unique dual solution can be assumed by Lemma 4, the solution to be found is one of the basis solution and complement solution. Therefore, from the perspective of the DPLL algorithm, it can be assumed that 3-SAT generated by modular random encapsulation has a unique solution.
  • the decision level is k
  • only k correct decision assignments are executed to obtain a solution without causing a conflict.
  • the above probability is calculated as follows. Initially, a random literal is selected as the decision literal and a FALSE value is assigned to the selected literal. Since the solution has the characteristic of duality, the above settings are always correct. Therefore, the probability of correctly selecting the first decision literal is 1. Delete literals assigned a FALSE value in the CNF formula. Then, 6 clauses containing only 2 literals are created as shown in [ Figure 11]. Among the six clauses, the erased literal plays the role of a dominant literal, switching literal, and random literal twice each.
  • the rectangle indicates an erased decision literal.
  • the erased literal plays the role of a dominant literal, switching literal, and random literal twice each.
  • the remaining 12 literals play the roles of dominant literal, switching literal, and random literal 4 times each. At this time, the value is FALSE twice in the random literal and once each in the dominant literal and switching literal.
  • Theorem 2 below is derived from Lemma 1, Lemma 5, and Lemma 6.
  • the derived Theorem 1 is applied when used as a single toroidal binomial tree, and after implied assignment, the two literals are deleted by previously selected variables and remain. Since the number of clauses consisting of is greater than when using a single toroidal binomial tree, the number of calculation steps increases.
  • the length of the row direction circular loop is determined by the number of columns and distance. If the number of columns and the distance are relatively prime, the length of the row direction circular loop becomes the number of columns.
  • 3-SAT which was created by modular random encapsulation of the toroidal binomial tree, has a sub-exponentially-many solution, so the password cannot be found in polynomial time by exhaustive search, and in the case of shift modular, the time to find the password is also polynomial time. It was shown that it exceeds . It was also explained that when free modular is used, there is no element to distinguish between the password and the general solution, so finding the solution itself becomes meaningless. Therefore, even if the CNF formula is made public, the password cannot be found within polynomial time from that information. Here, let's think about the degree of information exposure and encryption strength.
  • the number of literals with the TRUE value is k, that is, if there is no information leakage, there may be no literals in the set of m literals or all of them may have the TRUE value. Therefore, if you add up all the numbers in the above cases, the sum of all m+1 binomial coefficients becomes 2 m , and the above value becomes the number of executions of the exhaustive survey.
  • the act of informing that k values have the value TRUE is the act of informing that this applies to only one case among m+1 binomial coefficients. Since, on average, m C k number of exhaustive searches are required, the average number of exhaustive searches to find the solution is reduced. However, the above value also exceeds the polynomial boundary. Therefore, telling how many of the total have TRUE values lowers the encryption strength by providing some information needed to find the solution, but since the number of executions of the exhaustive search is outside the polynomial boundary, the solution cannot be found in polynomial time with that information alone.
  • the CNF formula generated by random encapsulation of a toroidal binomial tree has a solution set that has the characteristic of duality. Therefore, all three literals cannot have the value TRUE. This is because it must be satisfiable even if all literals are changed to their complement, but a clause in which all three are TRUE becomes unsatisfiable if the complement is taken. Additionally, there must be the same number of clauses where only one of the three literals has the TRUE value and clauses where only two have the TRUE value. This is because changing all literals to their complements changes a clause in which only one literal has the value TRUE into a clause in which two literals have the value TRUE. When substituting the basis solution, let's define a clause with only one TRUE value as a 1-TRUE clause, and a clause with only two TRUE values as a 2-TRUE clause.
  • the act of disclosing the new CNF created by the extracted clauses and disclosing that there are k 2-TRUE clauses among them has the same intensity of information exposure as disclosing the set of m extracted literals and notifying that the k clauses have the value TRUE. . Therefore, the act of finding a password from a newly constructed CNF reduces the encryption strength, but the number of exhaustive searches to find the solution exceeds the polynomial boundary. We want to use this newly created CNF formula for encryption.
  • the number of literals is extracted from the transmitted ciphertext, generating (Equation 11), substituting the password, and decrypting the value to 1 if it is greater than or equal to 3p+2 and 0 if it is less than or equal to 3p+1.
  • equation 11 shows the encryption and decryption process using the CNF formula.
  • a dual toroidal binomial tree has a unique dual solution if the number of input variables is large enough. As the number of circular binomial trees increases, there is a unique dual solution, but as the number of pair clauses that can be reduced to the 2-CNF formula increases, the time to find a solution rapidly increases. If you continuously add CNF formulas made with the same password to create one CNF formula, the clauses made up of three literals will be combined, increasing the number of clauses made up of two literals. If you combine an extremely large number of things, all the clauses will be made up of two literals. It changes into clauses consisting of . Since the difficulty of finding a solution is determined by the size of the decision level, the decision level is gradually reduced and eventually the decision level becomes 1.
  • a basis solution is created by adding an identification code with a different value each time it is created, such as the creation time, after the user's password. This method prevents CNF formulas with the same basis solution from being repeatedly created even if they have the same private key.
  • the sender generates a key value of the size of the number of input variables. This value is not a solution to the CNF formula, and when substituted into the CNF formula, clauses that return FALSE are created.
  • the sender substitutes the generated key value into the CNF formula and compares the returned return values with the generated return values.
  • the CNF formula serves as an online identity verification for an individual or organization.
  • each party sends the CNF formula to the other party, encrypts the data using the other party's CNF formula, and then transmits it.
  • the circular structure of the toroidal binomial tree prevents repeated pairs and triangle pairs from occurring while maintaining expressional equality. This maximizes the number of unit propagation steps inside the SAT solver and finds a solution by increasing the decision level. Increases the number of calculation steps required.
  • One clause consists of three variables. If the number of variables is less than 215 , it is possible to allocate 2 bytes to represent one variable and its complement. Therefore, one clause can be expressed in 6 bytes, and if you use the CNF formula with the number of clauses m, 6 x m bytes becomes the length of the public key. In one tree, one variable is used a total of 6 times: 2 dominant variables, 2 switching variables, and 2 random variables.
  • the number of uses of one variable constituting a single toroid tree is 6, and the number of uses of one variable constituting a dual toroid tree is 12, so they can be expressed in 4 bits. If the number of input variables is 1000, the encrypted data length is 1k bytes because the coefficients of all variables and their complements must be expressed.
  • the proposed encryption algorithm has the disadvantage that the public key size and encrypted data size are large.
  • the relationship between public and private keys is expressed in the CNF formula, it has the advantage of being free not only for current quantum algorithms that can easily solve prime factorization or discrete log problems, but also for formula-based algorithms that will be developed in the future.
  • the encryption process consists of adding the number of variables after random sampling, faster calculations are possible than any other algorithm.
  • the decryption process also ends with an addition operation, so real-time encryption and decryption is possible, and since there is no calculation process using large numbers, it has the advantage of being able to be implemented on any platform.
  • Encryption using a public key is mainly used to encrypt a secret key, so increasing the size of the public key and ciphertext does not cause serious problems in implementing the encryption system.
  • it is free from the side-channel attacks of the lattice-based algorithm adopted as a post-quantum encryption algorithm and is also free from the ISD attack of the code-based algorithm, so it is expected to be a new algorithm that will lead quantum-resistant public key-based algorithms in the future.

Abstract

Disclosed in the present invention are a method for generating a hard SAT and a method for implementing an SAT-based quantum-resistant cryptographic algorithm. The present invention relates to a method for generating a 3-CNF having a password as a solution using a toroidal binomial tree and a modular random encapsulation technique, and a method for generating a quantum-resistant cryptographic algorithm that can be decrypted only if a password that is a solution of the hard SAT is known after the hard SAT using the 3-CNF generating method is disclosed as a substitute for a public key and encryption is performed using same.

Description

HARD SAT 생성 방법 및 SAT에 기반을 둔 양자 내성 암호 알고리즘 구현 방법How to generate a HARD SAT and how to implement a quantum-resistant cryptographic algorithm based on SAT
Hard SAT은 해를 구하기 어려운, 구체적으로는 해를 구하기 위해서 필요로 하는 시간이 다항시간(polynomial time: 알고리즘의 시간 복잡도가 입력 데이터 개수에 대한 다항식으로 표현됨)을 초과하는 satisfiability problem(SAT)을 의미한다. 본 발명은 Hard SAT 생성 방법 및 Hard SAT에 기반을 둔 양자 내성 암호 알고리즘 생성 방법에 관한 것으로서, 더욱 상세하게는 새롭게 창안된 개념인 원환형 이항 트리(toroidal binomial tree)와 모듈러 랜덤 캡슐링(modular random encapsulation) 기법을 이용해서 패스워드를 해로 가지는 Hard 3-CNF를 생성하는 방법 및 이를 이용한 SAT 문제의 해를 구하는 어려움에 기반을 둔 양자 내성 암호 알고리즘 구현 방법 관한 것이다.Hard SAT refers to a satisfiability problem (SAT) that is difficult to find a solution, specifically, the time required to find a solution exceeds polynomial time (the time complexity of the algorithm is expressed as a polynomial for the number of input data). do. The present invention relates to a method of generating a Hard SAT and a method of generating a quantum-resistant cryptographic algorithm based on Hard SAT. More specifically, the present invention relates to a newly created concept of toroidal binomial tree and modular random encapsulation. This is about a method of generating a Hard 3-CNF with a password as the solution using the encapsulation technique and a method of implementing a quantum-resistant encryption algorithm based on the difficulty of finding a solution to the SAT problem using this method.
기존의 공개키 기반 알고리즘의 토대가 되었던 소인수분해나 이산로그(discrete logarithms) 문제가 1994년에 발표된 쇼어(Shor) 알고리즘에 의해서 양자컴퓨터를 이용하여 다항시간 안에 풀릴 수 있게 되고 양자컴퓨터 개발 기술이 계속적으로 발전함으로써 이를 적용한 암호화 알고리즘의 안전성을 보장할 수 없게 되었다. 따라서 소인수분해의 어려움이나 이산로그 문제의 어려움을 이용하지 않는 새로운 공개키 기반 알고리즘이 요구됨에 따라 양자 컴퓨터상에서의 연산에서도 안전한 공개키 기반 암호 알고리즘에 관한 연구가 활발하게 이루어지고 있으며, 이러한 암호기술을 양자 내성 암호(quantum-resistant or quantum-safe cryptography) 또는 양자 컴퓨터 이후에도 안전하게 사용할 수 있는 암호라는 의미의 포스트 양자 암호(Post Quantum Cryptography: PQC)로 부른다.Prime factorization and discrete logarithms problems, which were the basis of existing public key-based algorithms, could be solved in polynomial time using a quantum computer through the Shor algorithm announced in 1994, and quantum computer development technology was developed. Due to continuous development, the safety of the applied encryption algorithm cannot be guaranteed. Therefore, as a new public key-based algorithm that does not take advantage of the difficulty of prime factorization or the discrete log problem is required, research on public key-based encryption algorithms that are safe even for operations on quantum computers is being actively conducted, and such encryption technology is being developed. It is called quantum-resistant or quantum-safe cryptography, or Post Quantum Cryptography (PQC), which means cryptography that can be safely used even after quantum computers.
현재까지 양자 내성 암호 알고리즘에는 전자서명에 사용되는 해시 기반 알고리즘을 제외하면 다변수 기반(Multivariable-based), 코드 기반(Code-based), 아이소제니 기반(Isogeny-based), 격자 기반(Lattice-based)의 네 가지 분야로 연구되고 있다. 상기 아이소제니 기반 알고리즘은 연산속도가 느리고 다변수 기반 알고리즘은 복호화 실패율이 높다는 문제점을 가지고 있다. 따라서 PKE(Public Key Encryption)분야에는 격자 기반 알고리즘이나 코드 기반 알고리즘이 주로 쓰인다. 최근에 NIST(National Institute of Standards and Technology)에서 포스트 양자 암호 알고리즘 표준화를 진행하고 있으며 3차 라운드의 PKE 분야에서 최종적으로 격자 기반 알고리즘 3개(CRYSTALS KYBER, NTRU, SABER), 코드 기반 알고리즘 1개(Classic McEliece)가 선정되었다. To date, quantum-resistant cryptographic algorithms, excluding the hash-based algorithm used in digital signatures, include multivariable-based, code-based, isogeny-based, and lattice-based. ) is being studied in four areas: The Isogeny-based algorithm has a problem that the calculation speed is slow, and the multivariate-based algorithm has a high decryption failure rate. Therefore, grid-based algorithms or code-based algorithms are mainly used in the PKE (Public Key Encryption) field. Recently, the National Institute of Standards and Technology (NIST) is in the process of standardizing post-quantum cryptography algorithms, and in the third round of PKE, three lattice-based algorithms (CRYSTALS KYBER, NTRU, SABER) and one code-based algorithm ( Classic McEliece) was selected.
상기 격자 기반 암호 알고리즘은 암호화 및 복호화 과정 중에 발생하는 추가적인 정보(전력, 전자파, 시간차, 오류주입 등)를 이용한 부채널 공격에 취약하다는 단점을 가지고 있으며 코드 기반 알고리즘의 경우에는 개인키를 찾지 않고 원본데이터를 복구하는 방법으로 ISD(Information Set Decoding) 기법이 꾸준히 연구되고 있다. 위에서 서술한 양자 내성 암호 알고리즘들뿐만 아니라 현재까지 사용되거나 연구되고 있는 모든 공개키 기반 암호 알고리즘들은 trapdoor one-way function인 공개키와 개인키 간에 수식으로 표현되는 관계식을 가지고 있음으로써 그 관계식을 기반으로 알고리즘의 취약성을 찾아서 개인키 또는 원본 데이터를 획득하거나 복호화를 불가능하게 하려는 공격들이 끊임없이 시도되고 있다. The grid-based encryption algorithm has the disadvantage of being vulnerable to side-channel attacks using additional information (power, electromagnetic waves, time difference, error injection, etc.) generated during the encryption and decryption process. In the case of the code-based algorithm, the original key is not found and the ISD (Information Set Decoding) techniques are being continuously researched as a method of recovering data. In addition to the quantum-resistant cryptographic algorithms described above, all public key-based cryptographic algorithms used or studied to date have a relationship expressed as a formula between the public key and private key, which is a trapdoor one-way function, and are based on that relationship. Attacks are constantly being attempted to find vulnerabilities in the algorithm and obtain private keys or original data or make decryption impossible.
공개키 기반 암호 알고리즘들은 NP 문제 또는 NP 문제일 것으로 예측되는 문제들을 기반으로 만들어진다. SAT은 가장 먼저 발견된 NP-complete 문제일 뿐만 아니라 SAT을 구성하는 CNF formula를 공개키 대용으로 공개하고 이것을 이용해서 암호화 할 수 있다면 SAT을 표현하는 Boolean expression을 수식 화하는 것은 Boolean variable이 0과 1만 가지기 때문에 극히 제한적이다. 또한 본 특허에서는 수식 화하는 것이 무의미해지도록 모든 변수들을 서로 바꾸어도 동일한 식이 되는 expressional equality를 가지도록 설계된다. 따라서 알고리즘의 안전성은 서치알고리즘 기반인 SAT solver들의 성능에 따라 좌우되며 개인키와 공개키 간에 산술연산에 의한 수식적인 관계식이 존재하지 않으므로 공개키로부터 개인키를 찾으려는 다양한 공격들로부터 자유로워진다. 그러나 현재까지 체계적으로 Hard SAT을 생성하는 방법을 찾을 수 없었고, SAT을 구성하는 Boolean expression을 이용해서 실생활에 적용 가능한 암호화 방법이 연구되지 못했기 때문에 SAT을 이용한 암호 알고리즘이 개발되지 못했다.Public key-based cryptographic algorithms are created based on NP problems or problems predicted to be NP problems. Not only is SAT the first NP-complete problem to be discovered, but if the CNF formula that makes up SAT can be made public as a substitute for a public key and encrypted using this, formulating a Boolean expression expressing SAT requires that the Boolean variables are 0 and 1. It is extremely limited because there are only so many. In addition, this patent is designed to have expressional equality, which means that even if all variables are changed, the same expression is obtained so that formulating becomes meaningless. Therefore, the safety of the algorithm depends on the performance of SAT solvers based on the search algorithm, and since there is no formal relationship between the private key and the public key through arithmetic operations, it is free from various attacks that attempt to find the private key from the public key. However, to date, no method has been found to systematically generate Hard SAT, and no encryption method applicable to real life has been researched using the Boolean expression that makes up SAT, so an encryption algorithm using SAT has not been developed.
현재까지 특정한 방법으로 만들어진 SAT instance가 Hard SAT이라는 것을 수학적으로 증명한 예는 없다. 하나의 SAT instance가 Hard SAT 이라는 것을 증명하기 위해서는 해를 찾기 위해서는 적어도 입력 변수 수의 sub-exponential calculation step 수가 필요하다는 것을 증명해야만 한다. 해를 구하는 데 걸리는 시간이 polynomial boundary를 벗어날 것이라는 가정을 Exponential Time Hypothesis (ETH)로 부르며 ETH가 맞는지 틀리는지를 증명하는 문제가 수학의 7대 난제 중의 하나인 P 대 NP 문제가 된다. To date, there has been no mathematical proof that a SAT instance created using a specific method is a Hard SAT. In order to prove that one SAT instance is a Hard SAT, it must be proven that at least the number of sub-exponential calculation steps equal to the number of input variables is required to find a solution. The assumption that the time it takes to find a solution will exceed the polynomial boundary is called the Exponential Time Hypothesis (ETH), and the problem of proving whether ETH is correct becomes the P vs. NP problem, one of the seven difficult problems in mathematics.
현재까지 개발된 모든 SAT Solver들은 백트래킹(back-tracking: 변수의 값을 가정하고 가정이 틀린 것을 확인했을 때 가정된 단계로 되돌아가서 가정된 변수의 값을 바꾸어서 다시 해를 찾는 기법)에 기초한 DPLL 알고리즘을 기반으로 제작되었다. 본 특허에서의 증명은 현재까지 개발된 모든 back-tracking 기반의 SAT Solver들에 대해서로 한정한다. All SAT solvers developed to date are DPLL based on back-tracking (a technique that assumes the value of a variable and when it is confirmed that the assumption is incorrect, goes back to the assumed step and changes the value of the assumed variable to find a solution again) It was created based on an algorithm. The proof in this patent is limited to all back-tracking-based SAT solvers developed to date.
본 발명에서 서술하는 싱글 원환형 이항 트리를 모듈러 랜덤 캡슐링해서 생성되는 3-CNF는 basis solution과 complement solution(이하 dual solution으로 칭함)이외에 sub-exponential number 만큼 많은 해들이 존재하며 원하는 해(패스워드)를 찾기 위해서는 적어도 sub-exponential calculation step 수가 필요로 함을 증명한다. 또한 듀얼 원환형 이항 트리를 모듈러 랜덤 캡슐링해서 생성되는 3-CNF는 입력 변수 수가 충분히 크다면 듀얼 솔루션 이외의 해를 가지지 않는다는 것을 증명하며 듀얼 솔루션을 찾기 위해서는 exponential-calculation step 수가 필요로 함을 증명한다.The 3-CNF generated by modular random encapsulation of the single toroidal binomial tree described in the present invention has as many solutions as the sub-exponential number in addition to the basis solution and complement solution (hereinafter referred to as dual solution), and the desired solution (password) It is proven that at least the number of sub-exponential calculation steps is required to find . In addition, it is proven that 3-CNF, which is generated by modular random encapsulation of a dual toroidal binomial tree, has no solution other than a dual solution if the number of input variables is sufficiently large, and that the number of exponential-calculation steps is required to find a dual solution. do.
3-SAT 문제를 풀기위해서 만들어지는 서치 알고리즘은 반드시 back-tracking 기능을 사용해야만 한다는 것이 증명된다면 본 특허에서의 증명은 그동안 가정되어왔던 ETH에 대한 증명이 되며 P가 NP의 진부분집합이라는 것에 대한 증명이 된다. 지금까지 수십 년을 거쳐서 많은 연구자들이 개발해온 SAT Solver들이 모두 back-tracking 기반이라는 것을 상기할 때, 어떤 면에서는 이것은 trivial한 문제일 수도 있으나 back-tracking 기능을 사용하지 않는 새로운 형태의 SAT Solver를 만들 수 있다 또는 없다에 관한 내용 또는 결과는 현 단계에서는 본 특허의 기술성에 중대한 영향을 미치지 않는다고 판단되므로 서술 범위에서 제외시킨다.If it is proven that the search algorithm created to solve the 3-SAT problem must use a back-tracking function, the proof in this patent becomes a proof of ETH, which has been assumed so far, and proves that P is a true subset of NP. It is proven. Considering that the SAT solvers that many researchers have developed over the past several decades are all based on back-tracking, in some ways this may be a trivial problem, but it is necessary to create a new type of SAT solver that does not use the back-tracking function. Contents or results related to “can” or “cannot” are excluded from the scope of description because it is judged not to have a significant impact on the technicality of this patent at this stage.
본 발명은 Hard SAT을 생성하는 방법과 Hard SAT을 공개키 대용으로 공개하고 이것을 이용하여 암호화 한 후에 Hard SAT의 해인 패스워드를 아는 경우에만 복호화가 가능한 암호 알고리즘 구현 방법을 제공하는데 있다.The present invention provides a method of generating a Hard SAT and a method of implementing an encryption algorithm that discloses the Hard SAT as a public key, encrypts it using this, and then decrypts only if the password that is the solution of the Hard SAT is known.
[싱글 원환형 트리를 이용한 3-CNF 생성][Generating 3-CNF using a single toroidal tree]
상기의 목적을 실현하기 위한 본 발명의 바람직한 일 실시례에 따른 패스워드를 해로 가지는 Hard 3-CNF 생성 방법은, 하기의 (method 1)을 이용해서 패스워드를 해로 가지는 싱글 원환형 이항 트리를 생성한 후에 하기의 (method 2)를 이용해서 모듈러 랜덤 캡슐화해서 3-CNF 수식을 도출하는 것에 특징이 있다.The method for generating Hard 3-CNF with a password as a solution according to a preferred embodiment of the present invention for realizing the above object is to generate a single toroidal binomial tree with a password as a solution using (method 1) below. It is characterized by deriving the 3-CNF formula by modular random encapsulation using (method 2) below.
(Method 1)(Method 1)
1) n(n=ixj, i: 트리의 level 수, j: 트리의 column 수) bit의 패스워드를 생성한 후 각 비트마다 변수를 할당. (예: n=16, i=j=4, 패스워드="kb", k=01101011b, b=01100010b, x1=0, x2=1, x3=1, x4=0, x5=1, x6=0, x7=1, x8=1, x9=0, x10=1, x11=1, x12=0, x13=0, x14=0, x15=1, x16=0)1) Create a password of n (n=ixj, i: number of levels in the tree, j: number of columns in the tree) bits and then assign variables to each bit. (Example: n=16, i=j=4, password="kb", k=01101011b, b=01100010b, x 1 =0, x 2 =1, x 3 =1, x 4 =0, x 5 = 1, x 6 =0, x 7 =1, x 8 =1, x 9 =0, x 10 =1, x 11 =1, x 12 =0, x 13 =0, x 14 = 0 , x 15 = 1, x 16 = 0)
2) [도 1]은 unit clause로부터 expressional equality, geometric equality 를 충족시키기 위한 변형 과정을 거쳐서 원환형 이항 트리가 생성되는 절차를 보여준다. [도 1]의 (g)와 같은 원환형 이항 트리 프레임을 생성.2) [Figure 1] shows the procedure for creating a toroidal binomial tree through a transformation process to satisfy expressional equality and geometric equality from a unit clause. Create a toroidal binomial tree frame like (g) in [Figure 1].
3) 상기 1)에서 할당된 변수들로 구성된 TRUE 값을 가지는 n개의 리터럴 집합 또는 FALSE 값을 가지는 n개의 리터럴 집합을 생성한 후 랜덤하게 정렬. (예: TRUE 값을 가지는 n개의 리터럴 집합, x7, x2, -x12, -x16, x10, -x4, x3, -x9, -x1, x15, x5, -x13, -x6, -x14, x8, x11)3) Create a set of n literals with TRUE values or n literal sets with FALSE values consisting of the variables assigned in 1) above, and then sort them randomly. (e.g. a set of n literals with the value TRUE, x 7 , x 2 , -x 12 , -x 16 , x 10 , -x 4 , x 3 , -x 9 , -x 1 , x 15 , x 5 -x 13 , -x 6 , -x 14 , x 8 , x 11 )
4) 위 3)에서 만든 n개의 리터럴 집합에서 순서대로 하나씩 꺼내서 맨 좌측열부터 dominant literal 자리에 배치.(열 들을 맨 위부터 아래까지 모두 채우고 다음 열을 채움) 4) From the set of n literals created in 3) above, take them one by one in order and place them in place of the dominant literal starting from the leftmost column. (Fill all columns from top to bottom and then fill in the next column)
5) Switching literal들의 자리에 들어가는 literal들은 dominant literal들의 보수(complement)로 배치하여 [도 2]와 같은 싱글 원환형 이항 트리를 생성하는 단계;5) Creating a single toroidal binomial tree as shown in [Figure 2] by arranging literals in place of switching literals as complements of dominant literals;
(Method 2)(Method 2)
1) 상기 (Method 1)에서 생성한 원환형 이항 트리를 구성하는 dominant literal들을 column 단위로 그룹을 만든 후 랜덤하게 정렬.(예: G1=[x7, x2, -x12, -x16], G2=[x10, -x4, x3, -x9], G3=[-x1, x15, x5, -x13], G4=[-x6, -x14, x8, x11], 랜덤하게 정렬한 후의 dominant literal 그룹들: G1=[x7, -x12, x2, -x16], G2=[x3, -x9, x10, -x4], G3=[-x13, x15, -x1, x5], G4=[-x14, -x6, x11, x8] )1) Group the dominant literals that make up the circular binomial tree created in (Method 1) above into groups by column and then sort them randomly. (Example: G 1 =[x 7 , x 2 , -x 12 , -x 16 ], G 2 =[x 10 , -x 4 , x 3 , -x 9 ], G 3 =[-x 1 , x 15 , x 5 , -x 13 ], G 4 =[-x 6 , - x 14 , x 8 , x 11 ], dominant literal groups after randomly sorting: G 1 =[x 7 , -x 12 , x 2 , -x 16 ], G 2 =[x 3 , -x 9 , x 10 , -x 4 ], G 3 =[-x 13 , x 15 , -x 1 , x 5 ], G 4 =[-x 14 , -x 6 , x 11 , x 8 ] )
2) 위 1)에서 만들어진 그룹에 속한 모든 literal들의 보수들을 사용하여 대응되는 그룹들을 만든 후 랜덤하게 정렬. 이때 1)에서 랜덤하게 정렬된 그룹과 대응되는 그룹에서 동일한 위치에 동일 변수가 위치하면 재 정렬해서 동일 위치에는 하나의 변수와 그 변수의 보수가 같이 배치되는 것을 방지함 (예: G1=[-x7, -x2, x12, x16], G2=[-x10, x4, -x3, x9], G3=[x1, -x15, -x5, x13], G4=[x6, x14, -x8, -x11], 랜덤하게 정렬한 후의 dominant literal의 보수들의 그룹들: G1=[x12, -x2, x16, -x7], G2=[-x10, -x3, x4, x9], G3=[-x15, x13, -x5, x1], G4=[x6, -x11, -x8, x14])2) Create corresponding groups using the complements of all literals belonging to the group created in 1) above and then sort them randomly. At this time, if the same variable is located in the same position in the group corresponding to the randomly sorted group in 1), it is rearranged to prevent one variable and its complement from being placed together in the same position (e.g., G 1 =[ -x 7 , -x 2 , x 12 , x 16 ], G 2 =[-x 10 , x 4 , -x 3 , x 9 ], G 3 =[x 1 , -x 15 , -x 5 , x 13 ], G 4 =[x 6 , x 14 , -x 8 , -x 11 ], Groups of complements of dominant literal after random sorting: G 1 =[x 12 , -x 2 , x 16 , - x 7 ], G 2 =[-x 10 , -x 3 , x 4 , x 9 ], G 3 =[-x 15 , x 13 , -x 5 , x 1 ], G 4 =[x 6 , - x 11 , -x 8 , x 14 ])
3) Distance 값, d를 설정. (column 수/2, column 수/2 -1, column 수/2 + 1 등을 선택할 수 있으나 실험 결과에 의하면 hardness를 가장 높이는 d는 column 수/2 -1)3) Set the distance value, d. (You can select number of columns/2, number of columns/2 -1, number of columns/2 + 1, etc., but according to experimental results, d, which increases hardness the most, is number of columns/2 -1)
4) 위 1)에서 만든 그룹과 2)에서 만든 대응되는 그룹에서 차례로 하나씩(하나의 literal은 TRUE 값을 가지며 또 다른 literal은 FALSE 값을 가짐) 추출한 후에 d 만큼 떨어진 column을 구성하는 각각의 노드에 포함된 두 개의 절의 random variable 위치에 FALSE 값을 가지는 literal을 왼쪽에 또는 오른쪽에 또는 두 자리중에서 랜덤한 위치에 차례로 추가하여 [도 3]과 같은 random literal들이 포함된 원환형 트리 생성.4) After extracting one by one (one literal has a TRUE value and another literal has a FALSE value) from the group created in 1) above and the corresponding group created in 2), Create a circular tree containing random literals as shown in [Figure 3] by sequentially adding literals with a FALSE value to the left or right or to a random position among the two positions in the random variable positions of the two included clauses.
5) 모든 노드에서 절들을 추출한 후에 각각의 변수들의 역할을 확인 할 수 없도록 하기 위해서 하나의 절을 구성하는 3개의 literal들을 랜덤하게 재정렬해서 3-CNF 수식을 만드는 모듈러 랜덤 캡슐화 단계; (예: (수식 1)은 [도 3]의 첫 번째 column의 첫 번째 노드에서 추출된 두 개의 절, (수식 2)는 첫 번째 column의 두 번째 노드에서 추출된 두 개의 절, (수식 3)은 마지막 column의 마지막 번째 노드에서 추출된 두 개의 절, (수식 4)는 각각의 절들을 구성하는 literal들을 랜덤하게 정렬한 뒤에 절들을 AND 연산자로 합쳐서 최종적으로 만들어진 3-CNF를 보여줌)5) Modular random encapsulation step to create a 3-CNF formula by randomly rearranging the three literals that make up one clause so that the role of each variable cannot be confirmed after extracting clauses from all nodes; (Example: (Formula 1) is two clauses extracted from the first node of the first column in [Figure 3], (Formula 2) is two clauses extracted from the second node of the first column, (Formula 3) are two clauses extracted from the last node of the last column, (Equation 4) shows the final 3-CNF created by randomly sorting the literals constituting each clause and then combining the clauses with the AND operator)
(수식 1) (x7∨¬x2∨x6), (x7∨x4∨¬x14)(Formula 1) (x 7 ∨¬x 2 ∨x 6 ), (x 7 ∨x 4 ∨¬x 14 )
(수식 2) (x2∨x12∨¬x11), (x2∨¬x3∨¬x6)(Formula 2) (x 2 ∨x 12 ∨¬x 11 ), (x 2 ∨¬x 3 ∨¬x 6 )
(수식 3) (x11∨x6∨x1), (x11∨¬x7∨x5)(Formula 3) (x 11 ∨x 6 ∨x 1 ), (x 11 ∨¬x 7 ∨x 5 )
(수식 4) (¬x2∨x7∨x6), (¬x14∨x4∨x7)∧ ... ∧(x6∨x11∨x1), (x11∨x5∨¬x7)(Formula 4) (¬x 2 ∨x 7 ∨x 6 ), (¬x 14 ∨x 4 ∨x 7 )∧ ... ∧(x 6 ∨x 11 ∨x 1 ), (x 11 ∨x 5 ∨ ¬x 7 )
[듀얼 원환형 트리를 이용한 3-CNF 생성 절차][3-CNF generation procedure using dual toroid tree]
상기의 목적을 실현하기 위한 본 발명의 바람직한 다른 실시례에 따른 패스워드를 해로 가지는 3-CNF 생성 방법은, 하기의 (method 3)을 이용해서 패스워드를 해로 가지는 듀얼 원환형 이항 트리 생성하고, 이에 하기의 (method 4)를 이용하여 모듈러 랜덤 캡슐화해서 3-CNF 수식을 도출하는 것에 특징이 있다.A method of generating 3-CNF with a password as a solution according to another preferred embodiment of the present invention for realizing the above object generates a dual toroidal binomial tree with a password as a solution using (method 3) below, and It is characterized by deriving the 3-CNF formula by modular random encapsulation using (method 4).
(Method 3)(Method 3)
1) n(n=ixj, i: 트리의 level 수, j: 트리의 column 수) bit의 패스워드를 생성한 후 각 비트마다 변수를 할당. (예: n=16, i=j=4, 패스워드="kb", k=01101011b, b=01100010b, x1=0, x2=1, x3=1, x4=0, x5=1, x6=0, x7=1, x8=1, x9=0, x10=1, x11=1, x12=0, x13=0, x14=0, x15=1, x16=0)1) Create a password of n (n=ixj, i: number of levels in the tree, j: number of columns in the tree) bits and then assign variables to each bit. (Example: n=16, i=j=4, password="kb", k=01101011b, b=01100010b, x 1 =0, x 2 =1, x 3 =1, x 4 =0, x 5 = 1, x 6 =0, x 7 =1, x 8 =1, x 9 =0, x 10 =1, x 11 =1, x 12 =0, x 13 =0, x 14 = 0 , x 15 = 1, x 16 = 0)
2) [도 1]의 (g)와 같은 원환형 이항 트리 프레임을 생성.2) Create a toroidal binomial tree frame like (g) in [Figure 1].
3) 상기 1)에서 할당된 변수들로 구성된 TRUE 값을 가지는 n개의 리터럴 집합을 생성한 후 랜덤하게 정렬. (예: x7, x2, -x12, -x16, x10, -x4, x3, -x9, -x1, x15, x5, -x13, -x6, -x14, x8, x11)3) Create a set of n literals with TRUE values composed of the variables assigned in 1) above and then randomly sort them. (e.g. x 7 , x 2 , -x 12 , -x 16 , x 10 , -x 4 , x 3 , -x 9 , -x 1 , x 15 , x 5 , -x 13 , -x 6 , - x 14 , x 8 , x 11 )
4) 듀얼 원환형 이항 트리를 구성하는 하나의 트리에서 위 3)에서 만든 n개의 리터럴 집합에서 순서대로 하나씩 꺼내서 맨 좌측열부터 dominant literal 자리에 배치.(열 들을 맨 위부터 아래까지 모두 채우고 다음 열을 채움) 4) In one tree that constitutes a dual toroidal binomial tree, take out one by one from the set of n literals created in 3) above and place them in the position of the dominant literal starting from the leftmost column. (Fill all columns from top to bottom and fill in the next column. fill)
5) Switching literal들의 자리에 들어가는 literal들은 dominant literal들의 보수로 배치.5) Literals that take the place of switching literals are placed as complements of dominant literals.
6) 위 1)에서 할당된 변수들로 구성된 FALSE 값을 가지는 n개의 리터럴 집합을 생성한 후 랜덤하게 정렬. (예: -x8, x6, -x2, -x10, -x3, x1, x13, x12, -x15, x16, -x11, -x7, x9, x14, x4, -x5)6) Create a set of n literals with FALSE values consisting of the variables assigned in 1) above and sort them randomly. (e.g. -x 8 , x 6 , -x 2 , -x 10 , -x 3 , x 1 , x 13 , x 12 , -x 15 , x 16 , -x 11 , -x 7 , x 9 , x 14 , x 4 , -x 5 )
7) 듀얼 원환형 이항 트리를 구성하는 또 다른 트리에서 위 6)에서 랜덤하게 정렬한 n개의 리터럴을 사용하여 위 4)와 5)를 수행하여 [도 4]와 같은 듀얼 원환형 이항 트리를 생성하는 단계;7) In another tree that constitutes the dual toroidal binomial tree, perform 4) and 5) above using the n literals randomly sorted in 6) above to create a dual toroidal binomial tree as shown in [Figure 4]. steps;
(Method 4)(Method 4)
1) 상기 (Method 3)에서 생성한 두 개의 트리 중에서 하나의 트리를 구성하는 dominant literal들을 column 단위로 그룹을 만든 후 랜덤하게 정렬. (예: G1=[x7, x2, -x12, -x16], G2=[x10, -x4, x3, -x9], G3=[-x1, x15, x5, -x13], G4=[-x6, -x14, x8, x11], 랜덤하게 정렬한 후의 dominant literal 그룹들: G1=[x7, -x12, x2, -x16], G2=[x3, -x9, x10, -x4], G3=[-x13, x15, -x1, x5], G4=[-x14, -x6, x11, x8] )1) Among the two trees created in (Method 3) above, the dominant literals that make up one tree are grouped by column and then randomly sorted. (Example: G 1 =[x 7 , x 2 , -x 12 , -x 16 ], G 2 =[x 10 , -x 4 , x 3 , -x 9 ], G 3 =[-x 1 , x 15 , x 5 , -x 13 ], G 4 =[-x 6 , -x 14 , x 8 , x 11 ], dominant literal groups after random sorting: G 1 =[x 7 , -x 12 , x 2 , -x 16 ], G 2 =[x 3 , -x 9 , x 10 , -x 4 ], G 3 =[-x 13 , x 15 , -x 1 , x 5 ], G 4 =[ -x 14 , -x 6 , x 11 , x 8 ] )
2) 위 1)에서 만들어진 그룹에 속한 모든 literal들의 보수들을 사용하여 대응되는 그룹들을 만든 후 랜덤하게 정렬. 이때 1)에서 랜덤하게 정렬된 그룹과 대응되는 그룹에서 동일한 위치에 동일 변수가 위치하면 재 정렬해서 동일 위치에는 하나의 변수와 그 변수의 보수가 같이 배치되는 것을 방지함 (예: G1=[-x7, -x2, x12, x16], G2=[-x10, x4, -x3, x9], G3=[x1, -x15, -x5, x13], G4=[x6, x14, -x8, -x11], 랜덤하게 정렬한 후의 dominant literal의 보수들의 그룹들: G1=[x12, -x2, x16, -x7], G2=[-x10, -x3, x4, x9], G3=[-x15, x13, -x5, x1], G4=[x6, -x11, -x8, x14])2) Create corresponding groups using the complements of all literals belonging to the group created in 1) above and then sort them randomly. At this time, if the same variable is located in the same position in the group corresponding to the randomly sorted group in 1), it is rearranged to prevent one variable and its complement from being placed together in the same position (e.g., G 1 =[ -x 7 , -x 2 , x 12 , x 16 ], G 2 =[-x 10 , x 4 , -x 3 , x 9 ], G 3 =[x 1 , -x 15 , -x 5 , x 13 ], G 4 =[x 6 , x 14 , -x 8 , -x 11 ], Groups of complements of dominant literal after random sorting: G 1 =[x 12 , -x 2 , x 16 , - x 7 ], G 2 =[-x 10 , -x 3 , x 4 , x 9 ], G 3 =[-x 15 , x 13 , -x 5 , x 1 ], G 4 =[x 6 , - x 11 , -x 8 , x 14 ])
3) Distance 값, d를 설정. 3) Set the distance value, d.
4) 위 1)에서 만든 그룹과 2)에서 만든 대응되는 그룹에서 차례로 하나씩 추출한 후에 d 만큼 떨어진 column을 구성하는 각각의 노드에 포함된 두 개의 절의 random variable 위치에 FALSE 값을 가지는 literal을 왼쪽에 또는 오른쪽에 또는 두 자리중에서 랜덤한 위치에 차례로 추가4) After extracting one by one from the group created in 1) above and the corresponding group created in 2), a literal with a FALSE value is added to the left or Add sequentially to the right or in a random position among the two digits.
5) 또 다른 트리를 이용해서 상기 1)~4) 과정을 수행하여 [도 5]와 같은 random literal들이 포함된 듀얼 원환형 트리 생성.5) Using another tree, perform the above processes 1) to 4) to create a dual toroidal tree containing random literals as shown in [Figure 5].
6) 모든 노드에서 절들을 추출한 후에 각각의 변수들의 역할을 확인 할 수 없도록 하기 위해서 하나의 절을 구성하는 3개의 literal들을 랜덤하게 재정렬 해서 3-CNF 수식을 만드는 모듈러 랜덤 캡슐화 단계; (예: [도 5]의 듀얼 원환형 이항 트리 중에서 모든 dominant literal들이 TRUE 값을 가지는 첫 번째 트리에서, 앞에서 서술한 (수식 1)은 첫 번째 column의 첫 번째 노드에서 추출된 두 개의 절, (수식 2)는 첫 번째 column의 두 번째 노드에서 추출된 두 개의 절, (수식 3)은 마지막 column의 마지막 번째 노드에서 추출된 두 개의 절, (수식 4)는 각각의 절들을 구성하는 literal들을 랜덤하게 정렬한 뒤에 절들을 AND 연산자로 합쳐서 만들어진 3-CNF을 나타냄.6) Modular random encapsulation step to create a 3-CNF formula by randomly rearranging the three literals that make up one clause so that the role of each variable cannot be confirmed after extracting clauses from all nodes; (Example: Among the dual toroidal binomial trees in [Figure 5], in the first tree where all dominant literals have the value TRUE, (Equation 1) described above is two clauses extracted from the first node of the first column, ( Equation 2) is two clauses extracted from the second node of the first column, (Formula 3) is two clauses extracted from the last node of the last column, and (Formula 4) randomly extracts the literals that make up each clause. Represents 3-CNF created by sorting the clauses and then combining them with the AND operator.
모든 dominant literal들이 FALSE 값을 가지는 두 번째 트리에서, (수식 5)는 첫 번째 column의 첫 번째 노드에서 추출된 두 개의 절, (수식 6)은 첫 번째 column의 두 번째 노드에서 추출된 두 개의 절, (수식 7)은 마지막 column의 마지막 번째 노드에서 추출된 두 개의 절, (수식 8)은 각각의 절들을 구성하는 literal들을 랜덤하게 정렬한 뒤에 절들을 AND 연산자로 합쳐서 만들어진 3-CNF을 나타냄. 최종적으로 듀얼 원환형 이항 트리에 모듈러 랜덤 캡슐링해서 생성되는 3-CNF는 (수식 4)와 (수식 8)을 AND 연산자로 합쳐진 형태를 가짐. )In the second tree where all dominant literals have the value FALSE, (Equation 5) is two clauses extracted from the first node of the first column, and (Equation 6) is two clauses extracted from the second node of the first column. , (Equation 7) represents two clauses extracted from the last node of the last column, and (Equation 8) represents 3-CNF created by randomly sorting the literals constituting each clause and then combining the clauses with the AND operator. Finally, 3-CNF, which is generated by modular random encapsulation in a dual toroidal binomial tree, has the form of (Equation 4) and (Equation 8) combined with the AND operator. )
(수식 5) (¬x8∨¬x6∨x14), (¬x8∨¬x1∨x5)(Formula 5) (¬x 8 ∨¬x 6 ∨x 14 ), (¬x 8 ∨¬x 1 ∨x 5 )
(수식 6) (x6∨x2∨x4), (x6∨¬x13∨¬x14)(Formula 6) (x 6 ∨x 2 ∨x 4 ), (x 6 ∨¬x 13 ∨¬x 14 )
(수식 7) (¬x5∨¬x9∨¬x11), (¬x5∨x8∨x15)(Formula 7) (¬x 5 ∨¬x 9 ∨¬x 11 ), (¬x 5 ∨x 8 ∨x 15 )
(수식 8) (x14∨¬x8∨¬x6), (¬x1∨x5∨¬x8)∧...∧(¬x11∨¬x5∨¬x9), (x8∨x15∨¬x5)(Formula 8) (x 14 ∨¬x 8 ∨¬x 6 ), (¬x 1 ∨x 5 ∨¬x 8 )∧...∧(¬x 11 ∨¬x 5 ∨¬x 9 ), (x 8 ∨x 15 ∨¬x 5 )
[3-CNF를 이용한 암호화 및 복호화 알고리즘][Encryption and decryption algorithm using 3-CNF]
하나의 절을 구성하는 3개의 literal 중에서 하나만 TRUE 값을 가지는 절을 1-TRUE clause, 2개만 TRUE값을 가지는 절을 2-TRUE clause로 정의한다. Among the three literals that make up one clause, a clause with only one TRUE value is defined as a 1-TRUE clause, and a clause with only two literals with a TRUE value is defined as a 2-TRUE clause.
본 특허에서 제안하는 3-CNF를 이용한 암호 알고리즘을 적용하기 위해서는 3-CNF는 다음과 같은 3가지 조건을 만족해야 한다.In order to apply the encryption algorithm using 3-CNF proposed in this patent, 3-CNF must satisfy the following three conditions.
첫째, 1-TRUE clause와 2-TRUE clause가 동일한 개수로 구성되어야하며First, it must consist of the same number of 1-TRUE clauses and 2-TRUE clauses.
둘째, 패스워드를 해로 가져야하며Second, you must have a password as a solution.
셋째, CNF로부터 패스워드를 찾기 어려운 Hard CNF이어야만 한다.Third, it must be a Hard CNF, making it difficult to find the password from the CNF.
상기의 (method 1)과 (method 2)를 이용해서 또는 (method 3)과 (method 4)를 이용해서 만들어지는 3-CNF는 위의 3가지 조건을 만족시킨다. 그러나 상기 서술된 방법 말고도 다른 방법으로 만들어진 3-CNF를 사용한다고 하더라도 위의 3가지 조건을 만족시킨다면 아래 서술할 암호화 및 복호화 알고리즘이 적용 가능하다. 3-CNF created using (method 1) and (method 2) or (method 3) and (method 4) above satisfies the three conditions above. However, even if 3-CNF created by a method other than the method described above is used, the encryption and decryption algorithms described below can be applied if the three conditions above are satisfied.
상기의 목적을 실현하기 위한 본 발명의 바람직한 일 실시례에 따른 Hard SAT에 기반한 양자 내성 암호 알고리즘 생성 방법은, 상기의 (method 1)과 (method 2)를 이용해서 또는 (method 3)과 (method 4)를 이용해서 또는 기타 방법으로 위의 3가지 조건을 만족시키는 3-CNF 도출단계;A method of generating a quantum-resistant encryption algorithm based on Hard SAT according to a preferred embodiment of the present invention for realizing the above purpose uses (method 1) and (method 2) or (method 3) and (method 4) 3-CNF derivation step that satisfies the above three conditions using or other methods;
상기 도출단계에서 생성된 3-CNF를 이루는 절들의 수가 n일때 2-TRUE clause를 q개(q=n/2), 1-TRUE clause를 p(p < q)개 추출해서 p+q개의 절들로 이루어진 새로운 CNF 수식을 만드는 단계;When the number of clauses forming the 3-CNF generated in the above derivation step is n, extract q 2-TRUE clauses (q=n/2) and p(p < q) 1-TRUE clauses to obtain p+q clauses. Creating a new CNF formula consisting of;
상기 새롭게 만들어진 CNF 수식을 구성하는 절들 중 2p+1개의 절을 랜덤 추출해서 변수, xk(1<=k<=n, n=패스워드 bit 수)의 개수를 세어서 ak, xk의 보수의 개수를 세어서 bk 값을 설정하는 단계;Among the clauses that make up the newly created CNF formula, 2p+1 clauses are randomly extracted, the number of variables, x k (1<=k<=n, n=number of password bits) is counted, and the complement of a k and x k is obtained. Setting the b k value by counting the number of;
평문데이터 1을 암호화하기 위해서 ak를 구성하는 n개의 배열과 bk를 구성하는 n개의 배열을 순차적으로 결합한 2n개의 배열을 기록하고 0을 암호화하기 위해서 ak와 bk를 서로 바꾸어서 bk를 구성하는 n개의 배열과 ak를 구성하는 n개의 배열을 순차적으로 결합한 2n개의 배열을 기록하는 암호화 단계;To encrypt plaintext data 1, 2n arrays are recorded by sequentially combining the n arrays constituting a k and the n arrays constituting b k . To encrypt 0, a k and b k are exchanged to create b k . An encryption step of recording 2n arrays by sequentially combining the n arrays constituting the n arrays and the n arrays constituting a k ;
암호문을 읽어서 순차적으로 ak, bk 값을 설정한 후에 아래 (수식 9)와 같은 threshold 값, t를 계산하는 수식 생성 단계;A formula generation step that reads the ciphertext, sequentially sets the values a k and b k , and then calculates the threshold value, t, as shown below (Equation 9);
(수식 9)
Figure PCTKR2022014158-appb-img-000001
(Equation 9)
Figure PCTKR2022014158-appb-img-000001
상기 (수식 9)에 패스워드에서 xk의 값이 TRUE이면 xk=1, ¬xk=0을 대입하고 FALSE이면 xk=0, ¬xk=1을 대입해서 t값을 계산하는 단계;Calculating the t value by substituting x k =1 and ¬x k =0 if the value of x k in the password is TRUE in the above (Equation 9), and substituting x k =0 and ¬x k =1 if it is FALSE;
t 값이 3p+2 보다 크거나 같으면 1로 3p+1 보다 작거나 같으면 0으로 복호화 단계;로 수행되는 것에 특징이 있다. It is characterized in that it is performed as a decoding step; if the t value is greater than or equal to 3p+2, it is 1; if it is less than or equal to 3p+1, it is 0.
[암호화 과정 중에 연산량 줄이기 위한 방법][Method to reduce computation amount during encryption process]
본 발명의 바람직한 다른 특징으로서, 상기 암호화 시에 연산량을 줄이기 위해서 CNF 수식을 구성하는 모든 절들에서 모든 변수와 그의 보수들의 수를 미리 계산해서 값을 (Ak, Bk)(1<=k<=n, n=패스워드 bit 수)로 표시하는 단계;As another desirable feature of the present invention, in order to reduce the amount of calculation during encryption, the number of all variables and their complements in all clauses constituting the CNF formula are calculated in advance and the values are (A k , B k )(1<=k< = n, n = number of password bits);
상기 단계에 이어서 2p+1개를 뽑지 않고 q-p-1개를 뽑아서 뽑혀진 절들의 모든 변수와 그의 보수들의 수를 계산하고 그 값을 (ck, dk)라고 하여, ak=Ak-ck, bk=Bk-dk의 식을 도출하는 단계;Following the above step, instead of selecting 2p+1, select qp-1, calculate all the variables of the selected clauses and the number of their complements, and call the values (c k , d k ), a k =A k - Deriving the formula c k , b k =B k -d k ;
평문데이터 1을 암호화하기 위해서 ak를 구성하는 n개의 배열과 bk를 구성하는 n개의 배열을 순차적으로 결합한 2n개의 배열을 기록하고 0을 암호화하기 위해서 ak와 bk를 서로 바꾸어서 bk를 구성하는 n개의 배열과 ak를 구성하는 n개의 배열을 순차적으로 결합한 2n개의 배열을 기록하는 암호화 단계;To encrypt plaintext data 1, 2n arrays are recorded by sequentially combining the n arrays constituting a k and the n arrays constituting b k . To encrypt 0, a k and b k are exchanged to create b k . An encryption step of recording 2n arrays by sequentially combining the n arrays constituting the n arrays and the n arrays constituting a k ;
암호문을 읽어서 순차적으로 ak, bk 값을 확정한 후에 위의 (수식 9)와 같은 threshold 값, t를 계산하는 수식 생성단계;A formula generation step of reading the ciphertext, sequentially determining the values a k and b k , and then calculating the threshold value, t, as in (Equation 9) above;
(수식 9)에 패스워드에서 xk의 값이 TRUE이면 xk=1, ¬xk=0을 대입하고 FALSE이면 xk=0, ¬xk=1을 대입해서 t값을 계산하는 단계;Calculating the t value by substituting x k =1 and ¬x k =0 if the value of x k in the password is TRUE in (Formula 9), and substituting x k =0 and ¬x k =1 if it is FALSE;
t 값이 3p+2 보다 크거나 같으면 1로 3p+1 보다 작거나 같으면 0으로 복호화 단계;로 수행되는 것에 특징이 있다. It is characterized in that it is performed as a decoding step; if the t value is greater than or equal to 3p+2, it is 1; if it is less than or equal to 3p+1, it is 0.
[동일 패스워드로 연속적으로 CNF formula를 만드는 것을 방지하는 방법][How to prevent creating CNF formulas consecutively with the same password]
본 발명의 바람직한 또 다른 특징으로서, 동일한 패스워드로 연속적으로 CNF 수식을 생성하는 것을 방지하기 위하여 상기 (Method 1)의 1)에서, 생성된 패스워드에 생성 시간 정보를 포함하는 것에 특징이 있다.As another preferred feature of the present invention, in order to prevent continuously generating CNF formulas with the same password, in (Method 1) 1), generation time information is included in the generated password.
본 발명의 바람직한 또 다른 특징으로서, 동일한 패스워드로 연속적으로 CNF 수식을 생성하는 것을 방지하기 위하여 상기 (Method 3)의 1)에서, 생성된 패스워드에 생성시간 정보를 포함하는 것에 특징이 있다.As another desirable feature of the present invention, in order to prevent continuously generating CNF formulas with the same password, in (Method 3) 1), generation time information is included in the generated password.
[신원인증 또는 공개키 확인 절차][Identity authentication or public key verification procedure]
본 발명의 바람직한 또 다른 특징으로서, 암호문을 전달할 송신자가 가지고 있는 CNF 수식과 CNF 수식의 생성자이며 암호문을 수신할 수신자가 가지고 있는 CNF 수식과 일치하는 지의 여부와 수신자가 위의 CNF 수식의 해를 알고 있는 CNF formula의 생성자 인지를 하기의 (Method 5)에 의해서 확인하는 단계를 더 수행하는 것에 특징이 있다. As another desirable feature of the present invention, the CNF formula possessed by the sender to transmit the ciphertext and the generator of the CNF formula are consistent with the CNF formula possessed by the recipient who will receive the ciphertext, and the receiver knows the solution of the above CNF formula. It is characterized by further performing the step of confirming the constructor of the existing CNF formula by (Method 5) below.
(Method 5) (Method 5)
1) 송신자는 입력 변수 수 크기의 키 값을 생성하되, 이 키 값은 CNF 수식의 해가 아니며 CNF 수식에 대입하면 FALSE를 리턴하는 절들이 생기는 것으로, 이 키 값을 상기 암호 알고리즘으로 암호화 해서 수신자에게 송신,1) The sender creates a key value the size of the number of input variables, but this key value is not the solution to the CNF formula. When substituted into the CNF formula, clauses that return FALSE are created. This key value is encrypted with the above encryption algorithm and sent to the receiver. Sent to,
2) 수신자는 본인의 패스워드로 전달받은 암호문을 복호화 해서 키 값을 확인하고, 이 키 값을 CNF 수식에 대입해서 모든 절들의 리턴 값들을 얻고 순차적으로 송신자에게 송신,2) The receiver decrypts the ciphertext received with his password, checks the key value, substitutes this key value into the CNF formula to obtain the return values of all clauses, and sequentially sends them to the sender.
3) 송신자는 생성한 키 값을 보유한 CNF 수식에 대입해서 리턴 값들을 생성한 후에 수신받은 리턴 값들과 생성된 리턴 값들을 비교,3) The sender generates return values by substituting the generated key value into the CNF formula holding the generated key value, and then compares the received return values with the generated return values.
4) 상기 비교된 값들이 같다면 수신자는 CNF 수식의 생성자가 되며, 서로가 같은 CNF 수식을 가지고 있음을 확인하는 단계;로 수행되는 것에 특징이 있다.4) If the compared values are the same, the recipient becomes the creator of the CNF formula, and it is characterized in that it is performed as a step of confirming that both parties have the same CNF formula.
본 발명은 원환형 이항 트리의 순환 구조의 특성과 변수들의 구별 불가능성(indistinguishability)의 특성에 의해서, 생성되는 모든 3-SAT 객체(instance)들이 백트랙킹 기반의 알고리즘들에 관해서 해를 찾기 위해서는 적어도 sub-exponential calculation step 수가 필요해짐이 증명되므로 암호화에 사용가능하다. 또한 Hard SAT을 구성하는 CNF 식을 공개하고 이것을 암호화에 사용하고 CNF식의 해인 개인키를 알 경우에만 복호화가 가능한 방법을 제시함으로써 공개키와 개인키 간의 수식적 관계에 의해서 다양한 공격을 받아온 다른 공개키 기반 알고리즘들에 비해서 안전성 측면에서 우위를 가진다.The present invention provides that, due to the characteristics of the circular structure of the circular binomial tree and the characteristics of the indistinguishability of the variables, all 3-SAT objects (instances) created must at least find a solution for backtracking-based algorithms. It can be used in encryption because it proves that the number of sub-exponential calculation steps is required. In addition, by disclosing the CNF formula that makes up the Hard SAT, using it for encryption, and suggesting a method of decryption only when the private key that is the solution to the CNF formula is known, other disclosures have been subjected to various attacks due to the formal relationship between the public key and private key. It has an advantage in terms of safety compared to key-based algorithms.
또한, 본 발명은 기존의 양자 내성 암호화 알고리즘들과 비교했을 때 빠른 연산의 측면과 구현의 편의성 측면 모두에서 향상된 우위를 가짐에 따라 이를 활용한 진보된 암호화 기술을 다양한 분야에 적용시킬 수 있다.In addition, compared to existing quantum-resistant encryption algorithms, the present invention has improved advantages in both fast calculation and ease of implementation, so advanced encryption technology utilizing it can be applied to various fields.
도 1은 하나의 literal만으로 구성된 unit clause에서 원환형 이항 트리를 생성하는 과정을 설명하기 위한 개략도,Figure 1 is a schematic diagram illustrating the process of generating a toroidal binomial tree from a unit clause consisting of only one literal.
도 2는 랜덤 변수가 추가 되지 않은 싱글 원환형 이항 트리의 예를 보여주기 위한 도면,Figure 2 is a diagram showing an example of a single toroidal binomial tree in which no random variables are added;
도 3은 랜덤 변수가 추가된 싱글 원환형 이항 트리의 예를 나타낸 도면,Figure 3 is a diagram showing an example of a single toroidal binomial tree with added random variables;
도 4는 랜덤 변수가 추가 되지 않은 듀얼 원환형 이항 트리의 예를 보여주기 위한 도면,Figure 4 is a diagram showing an example of a dual toroidal binomial tree without random variables added;
도 5는 랜덤 변수가 추가된 듀얼 원환형 이항 트리의 예를 나타낸 도면,Figure 5 is a diagram showing an example of a dual toroidal binomial tree with added random variables;
도 6는 듀얼 원환형 이항 트리의 개념을 설명하기 위한 도면,Figure 6 is a diagram to explain the concept of a dual toroidal binomial tree;
도 7은 하나의 변수 값이 바뀔 때 그 영향이 전파되는 것과 unit propagation ( Boolean constraint propagation )을 비교 설명하기 위한 도면,Figure 7 is a diagram to compare and explain the propagation of the effect when the value of one variable changes and unit propagation (Boolean constraint propagation);
도 8은 모듈러 랜덤 캡슐화의 개념을 설명하기 위한 도면,Figure 8 is a diagram for explaining the concept of modular random encapsulation;
도 9는 CDC(Conditional Don't-Care) variable의 개념 설명을 위한 도면,Figure 9 is a diagram for explaining the concept of CDC (Conditional Don't-Care) variable;
도 10은 TRUE 트리와 FALSE 트리에서 생성되는 순환루프를 찾기 위해서 decision literal과 implied literal들을 선택하는 과정을 설명하기 위한 도면, Figure 10 is a diagram illustrating the process of selecting decision literals and implied literals to find circular loops created in TRUE trees and FALSE trees;
도 11은 이전 스텝에서 선정된 decision literal과 implied literal의 보수들이 절에서 지워져서 3개의 literal로 구성된 절들이 2개의 literal로 구성된 절들로 바뀌는 과정을 설명하기 위한 도면, Figure 11 is a diagram illustrating the process of changing clauses consisting of three literals into clauses consisting of two literals by deleting the complements of the decision literal and implied literal selected in the previous step from the clause;
도 12는 듀얼 원환형 이항 트리에 모듈러 랜덤 캡슐링해서 생성된 3-CNF가 입력변수 수가 충분히 크다면 듀얼 솔루션 이외의 해를 가지지 않음을 확인하기 위해서 실시한 실험 결과를 설명하기 위한 도면,Figure 12 is a diagram illustrating the results of an experiment conducted to confirm that 3-CNF generated by modular random encapsulation in a dual toroidal binomial tree does not have a solution other than a dual solution if the number of input variables is sufficiently large;
도 13은 듀얼 원환형 이항 트리의 크기를 증가시키며 해를 찾는데 걸리는 시간을 측정한 실험 결과를 설명하기 위한 도면,Figure 13 is a diagram to explain the results of an experiment measuring the time it takes to find a solution while increasing the size of the dual toroidal binomial tree;
도 14는 Hard CNF를 사용한 암호화 및 복호화 방법을 설명하기 위한 도면, 14 is a diagram illustrating an encryption and decryption method using Hard CNF;
이하에서는 첨부한 도면을 참조하면서 본 발명의 실시례에 대한 구성 및 작용을 상세하게 설명하기로 한다. 다만, 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Hereinafter, the configuration and operation of an embodiment of the present invention will be described in detail with reference to the attached drawings. However, it is not intended to limit the present invention to a specific disclosed form, and should be understood to include all changes, equivalents, and substitutes included in the spirit and technical scope of the present invention.
또한, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능 및 구성에 대한 구체적인 설명은 본 발명의 요지를 모호하지 않게 하기 위하여 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이므로 본 발명의 사상 및 범위를 벗어나지 않고 다양하게 수정 및 변형될 수 있음에 따라 그러한 수정예 또는 변형예들은 본 발명의 특허청구범위에 속한다 해야 할 것이다.In addition, repetitive descriptions and detailed descriptions of known functions and configurations that may unnecessarily obscure the gist of the present invention are omitted in order to not obscure the gist of the present invention. Since the embodiments of the present invention are provided to more completely explain the present invention to those with average knowledge in the art, various modifications and changes can be made without departing from the spirit and scope of the present invention, and such modifications Alternatively, it should be said that modified examples fall within the scope of the patent claims of the present invention.
먼저, 본 발명은 가장 간단한 절인 unit clause를 구성하는 하나의 literal 값이 satisfiable해지기 위해서는 TRUE 값을 가져야만 한다는 정보를 숨기기 위해서 resolution rule을 적용하고 redundancy clause들을 추가하는 과정을 거쳐서 이항 트리를 만들고, 이항 트리가 가진 expressional inequality의 특성을 제거하기 위해서 트리를 구형체 표면 위에 올려놓고 끝단의 노드들을 연결해서 환형 트리를 만든 후에, 환형 트리가 가진 geometric inequality의 특성을 제거하기 위해서 이항 트리를 하나가 아닌 두 개를 서로 상하 대칭이 되도록 결합한 후에 구형체 표면 위에 올려놓고 상하의 노드들을 서로 연결시키고 좌우의 노드들을 서로 연결시킴으로써 원환형 이항 트리를 생성하는 과정을 설명한다.First, the present invention creates a binomial tree by applying a resolution rule and adding redundancy clauses to hide the information that one literal value constituting the unit clause, which is the simplest clause, must have a TRUE value to be satisfiable, In order to remove the characteristic of the expressional inequality of the binomial tree, place the tree on the surface of a spherical object and connect the nodes at the ends to create a circular tree. To remove the characteristic of the geometric inequality of the circular tree, create a circular tree instead of one binomial tree. We explain the process of creating a toroidal binomial tree by combining the two so that they are vertically symmetrical, placing them on the surface of a spherical body, connecting the upper and lower nodes to each other, and connecting the left and right nodes to each other.
그런 후에 위의 원환형 이항 트리가 가진 순환구조의 특성에 의해서 unique dual solution을 가진다는 것을 보여준다. 그러나 원환형 이항 트리로부터 추출된 2-CNF formula는 back-tracking이 일어나지 않아서 SAT Solver에 의해서 쉽게 해가 구해진다. 위의 문제를 해결하기 위해서 랜덤 변수를 추가해서 원환형 이항 트리를 구성하는 절들이 3개의 리터럴들을 가지도록 변형하는 방법으로써 랜덤 캡슐링 기법을 서술하며, 더 나아가 서치알고리즘이 쉽게 해의 부분집합을 구하는 경우를 방지하기 위해서 새롭게 창안된 모듈러 랜덤 캡슐링 기법을 서술한다.Afterwards, it is shown that the circular binomial tree above has a unique dual solution due to the characteristics of the circular structure. However, the 2-CNF formula extracted from the toroidal binomial tree does not undergo back-tracking, so it can be easily solved by the SAT Solver. To solve the above problem, we describe the random encapsulation technique as a method of adding random variables to transform the clauses that make up the circular binomial tree to have three literals. Furthermore, the search algorithm can easily find a subset of the solution. To prevent this case, we describe a newly invented modular random encapsulation technique.
싱글 원환형 트리 또는 듀얼 원환형 트리를 모듈러 랜덤 캡슐링해서 생성된 3-CNF의 특성을 분석하는 과정에서 아래의 4가지를 증명한다. 첫 번째, 생성된 싱글 원환형 이항 트리에 모듈러 랜덤 캡슐링으로 만들어진 3-CNF formula가 sub-exponentially many solution을 가짐을 보여준다. 두 번째, 원환형 이항 트리의 basis solution을 찾기 위해서는 트리의 구조를 분석함으로써 변수들의 역할을 구분해야만 하는데 이를 위해서는 sub-exponential calculation step 수가 필요함을 증명한다. 세 번째, 원환형 이항 트리를 두 개 만들어서 두 개의 트리로부터 3-CNF formula를 생성하면 각각의 트리가 만드는 순환 구조의 특성이 두 개의 트리에 결합되어서 그 결과로 입력 변수 수가 충분히 크다면 unique dual solution을 가짐을 증명한다. 네 번째, unique dual solution을 가진다면 SAT Solver가 해를 구하기 위해서는 exponential calculation step 수가 필요함을 증명한다.In the process of analyzing the characteristics of 3-CNF generated by modular random encapsulation of a single toroid tree or a dual toroid tree, the following four points are proven. First, it shows that the 3-CNF formula created by modular random encapsulation in the generated single toroidal binomial tree has sub-exponentially many solutions. Second, in order to find the basis solution of the toroidal binomial tree, the roles of variables must be distinguished by analyzing the structure of the tree, and this proves that the number of sub-exponential calculation steps is necessary. Third, if you create two circular binomial trees and generate a 3-CNF formula from the two trees, the characteristics of the circular structure created by each tree are combined into the two trees, and as a result, if the number of input variables is large enough, a unique dual solution Prove that you have Fourth, if there is a unique dual solution, it proves that the number of exponential calculation steps is required for the SAT Solver to find the solution.
이렇게 생성된 Hard SAT을 암호화 및 복호화에 이용하기 위해서 생성된 Hard 3-CNF formula에서 1-TRUE clause와 2-TRUE clause의 개수가 미세하게 차이가 나는 새로운 CNF formula를 생성한 후에 이를 이용해서 암호화/복호화 시키는 알고리즘을 소개한다. 마지막으로 CNF formula의 생성자의 신원을 온라인에서 확인하기 위한 방법을 서술한다.In order to use the Hard SAT generated in this way for encryption and decryption, a new CNF formula with a slight difference in the number of 1-TRUE clauses and 2-TRUE clauses is created in the generated Hard 3-CNF formula, and then used to encrypt/decrypt. We introduce the decryption algorithm. Finally, we describe a method for verifying the identity of the creator of the CNF formula online.
이하, 본 발명에서 사용되는 용어에 대한 정의를 설명하기로 한다.Hereinafter, definitions of terms used in the present invention will be explained.
부울 변수(variable) a는 TRUE(1) 또는 FALSE(0)의 값만을 가지며 ¬a, a와 같은 리터럴(literal)을 생성한다. (a∨¬b)와 같이 literal들의 disjunction(v)으로 표현된 식을 절(clause)이라고 부른다. (a∨¬b)∧(b∨¬c)와 같이 절들의 conjunction(∧)으로 표현된 식을 Conjunctive Normal Form(CNF)으로 부른다. The Boolean variable a has only the value TRUE (1) or FALSE (0) and creates literals such as ¬a, a. An expression expressed as a disjunction (v) of literals, such as (a∨¬b), is called a clause. An expression expressed as a conjunction (∧) of clauses, such as (a∨¬b)∧(b∨¬c), is called Conjunctive Normal Form (CNF).
CNF formula를 구성하는 모든 절들을 TRUE 값으로 만드는 literal들의 그룹을 CNF formula의 해로 정의하며 CNF formula의 해가 존재하는지를 찾는 문제를 Satisfiability problem(SAT)으로 부른다. 해가 존재한다면 SAT을 구성하는 CNF formula는 satisfiable하다고 표현한다. A group of literals that make all the clauses that make up the CNF formula have the value TRUE is defined as the solution to the CNF formula, and the problem of finding whether a solution to the CNF formula exists is called the Satisfiability problem (SAT). If a solution exists, the CNF formula that makes up SAT is expressed as satisfiable.
모든 절들이 2개 이하의 literal들로 구성된 CNF formula를 2-CNF로, 3개 이하인 literal들로 구성된 CNF formula를 3-CNF로, 모두가 3개로만 이루어진 CNF formula를 Exact 3-CNF로 표현하며 각각의 CNF formula의 해가 존재하는지를 묻는 문제를 2-SAT, 3-SAT, Exact 3-SAT으로 표현한다.A CNF formula in which all clauses are composed of two or fewer literals is expressed as 2-CNF, a CNF formula in which all clauses are composed of three or fewer literals is expressed as 3-CNF, and a CNF formula in which all clauses are composed of only three literals is expressed as Exact 3-CNF. The question of whether a solution to each CNF formula exists is expressed as 2-SAT, 3-SAT, and Exact 3-SAT.
Yes or No의 대답을 요구하는 문제를 decision problem으로 부르며 SAT은 decision problem에 속한다. 추상적인 컴퓨터 모델은 deterministic Turing machine(DTM)과 non-deterministic Turing machine(NTM)으로 나누어지며, DTM은 이전 단계에서 다음 단계로의 상태의 천이를 하나만 가질 수 있고 NTM은 여러 개를 가질 수 있는 것으로 구분된다. 상태의 천이 수를 step 수로 정의할 때 집합 P는 DTM을 사용하여 polynomial step 수로 문제를 해결하는 알고리즘이 존재하는 decision problem의 집합으로, 집합 NP는 NTM을 사용하여 polynomial step 수로 문제를 해결하는 알고리즘이 존재하는 decision problem의 집합으로 정의되며 SAT은 NP에 속한다. A 문제를 해결하는 알고리즘을 polynomial calculation step 수의 변환과정을 통해서 B 문제를 해결하는 알고리즘으로 대체 가능할 때 A는 B로 polynomial-time reducible하다고 표현하며 모든 NP 문제가 B문제로 polynomial-time reducible할 때 B는 NP-hard 문제라고 정의하며 모든 NP 문제가 B문제로 polynomial-time reducible하면서 B가 NP에 속할 때 B는 NP-complete 문제라고 정의한다. SAT은 가장 먼저 발견된 대표적인 NP-complete 문제가 된다.Problems that require a yes or no answer are called decision problems, and the SAT belongs to a decision problem. Abstract computer models are divided into deterministic Turing machine (DTM) and non-deterministic Turing machine (NTM). DTM can have only one state transition from the previous step to the next step, and NTM can have multiple. are distinguished. When defining the number of state transitions as the number of steps, the set P is a set of decision problems for which an algorithm exists to solve the problem with a polynomial step number using DTM, and the set NP is a set of decision problems for which an algorithm exists to solve the problem with a polynomial step number using NTM. It is defined as a set of existing decision problems, and SAT belongs to NP. When the algorithm that solves problem A can be replaced with an algorithm that solves problem B through a conversion process of the number of polynomial calculation steps, A is expressed as polynomial-time reducible to B, and all NP problems are polynomial-time reducible to problem B. B is defined as an NP-hard problem, and when all NP problems are polynomial-time reducible to B problems and B belongs to NP, B is defined as an NP-complete problem. SAT is the first representative NP-complete problem discovered.
SAT의 해를 구하기 위해서 입력 변수 수가 작을 때는 resolution technique을 사용할 수 도 있으나 입력 변수 수가 커지면 SAT의 해를 구하기 위해서 개발된 SAT solver를 사용하며 수십 년간 international SAT competition 대회와 여러 연구자들을 통해서 알고리즘들이 공개되고 계속적으로 성능을 향상시킨 새로운 SAT solver들이 개발되어 왔다.When the number of input variables is small, a resolution technique can be used to find a solution to the SAT. However, when the number of input variables becomes large, a SAT solver developed to find a solution to the SAT is used. Algorithms have been released through international SAT competitions and various researchers for decades. New SAT solvers with continuously improved performance have been developed.
현재까지 만들어진 모든 SAT solver들은 Davis-Putnam-Logemann- Loveland(DPLL) algorithm을 기초로 제작되었다. 3-SAT이 DPLL 알고리즘에 의해서 어떻게 해집합이 확정되는지에 대해서 살펴보자. Exact 3-SAT은 3개의 literal들을 가진 절들로 구성된다. 하나의 절이 satisfiable하다면 하나 이상의 literal들이 TRUE 값을 가져야만 한다. 하나의 절을 구성하는 3개의 literal들 중에서 두 개의 literal들이 satisfiability에 기여하지 않는다고 가정하고 우리는 두 개의 literal에 FALSE 값을 할당한 후 절에서 지운다. 또는 하나의 절을 구성하는 두 개의 literal 중에서 하나의 literal이 satisfiability에 기여하지 않는다고 가정하고 우리는 하나의 literal에 FALSE 값을 할당한 후 절에서 지운다. 위의 과정으로 하나의 literal만으로 구성되는 unit clause를 만든다. 그런 후에 해를 찾는 과정에서 그 가정이 잘못된 것을 확인했을 때 우리는 변수 값을 FALSE로 가정한 step으로 되돌아가서 변수 값을 수정한다. 이때 unit clause를 만들기 위해서 literal 값을 FALSE로 할당하는 행위를 decision assignment로 표현하고 literal이 FALSE 값을 가지도록 값이 할당된 변수를 decision variable로 정의한다. Unit clause가 satisfiable 하도록, 즉, 문자의 값이 TRUE가 되도록 변수 값을 설정하는 행위를 implied assignment라고 표현하며 unit clause를 구성하는 변수를 implied variable로 정의한다. Implied assignment에 의해서 설정된 변수 값은 다른 절들의 satisfiability를 결정하기 위한 또 다른 변수들의 값에 영향을 준다. 이러한 영향력은 implied literal을 TRUE로 할당할 때 implied literal의 보수가 포함된 절에서 보수를 지우는 행위로 발생된다. 이러한 행위는 implied literal의 보수가 그 절의 satisfiability에 기여하지 않는다고 가정하는 것을 의미하는데 만약 satisfiable solution이 존재하는 데도 불구하고 잔여 literal들 중 하나도 TRUE 값을 할당하지 못하는 절이 생성되면 위의 가정은 올바르지 않으므로 가정을 수정해야 한다. 즉, 다른 변수들의 값이 두 literal 중 적어도 하나는 TRUE가 되어야만 하도록 영향을 준다. 이러한 영향은 implied literal과 그 literal의 보수가 만드는 path를 타고 propagation된다. 이것을 Boolean constraint propagation 또는 unit propagation 으로 표현한다. All SAT solvers created to date are based on the Davis-Putnam-Logemann-Loveland (DPLL) algorithm. Let's take a look at how the solution set of 3-SAT is determined by the DPLL algorithm. Exact 3-SAT consists of clauses with three literals. If a clause is satisfiable, one or more literals must have the value TRUE. Assuming that two literals among the three literals that make up one clause do not contribute to satisfiability, we assign FALSE values to the two literals and delete them from the clause. Alternatively, assuming that one of the two literals that make up one clause does not contribute to satisfiability, we assign a FALSE value to one literal and then delete it from the clause. Through the above process, a unit clause consisting of only one literal is created. Then, in the process of finding a solution, when we find that the assumption is incorrect, we go back to the step where we assumed the variable value to be FALSE and modify the variable value. At this time, to create a unit clause, the act of assigning a literal value to FALSE is expressed as a decision assignment, and the variable assigned a value such that the literal has the value of FALSE is defined as a decision variable. The act of setting a variable value so that the unit clause is satisfiable, that is, the character value is TRUE, is expressed as implied assignment, and the variables that make up the unit clause are defined as implied variables. Variable values set by implied assignment affect the values of other variables to determine the satisfiability of other clauses. This influence occurs by deleting the complement from the clause containing the complement of the implied literal when assigning TRUE. This behavior means assuming that the complement of the implied literal does not contribute to the satisfiability of the clause. If a clause is created in which none of the remaining literals is assigned a TRUE value even though a satisfiable solution exists, the above assumption is incorrect. must be modified. In other words, it affects the values of other variables so that at least one of the two literals must be TRUE. This influence is propagated through the path created by the implied literal and its complement. This is expressed as Boolean constraint propagation or unit propagation.
Decision literal은 Decision literal은 FALSE 값을 가지도록 할당되고 implied literal은 TRUE 값을 가지도록 할당되므로 하나의 절 안에 포함된 decision literal또는 implied literal의 보수는 satisfiability에 영향을 주지 못하므로 삭제한다. 위의 과정에서 empty clause가 생성되면 conflict가 발생했다고 표현한다. Implied literal의 보수 또는 decision literal을 지웠는데도 한 절에서 두 개 이상의 literal이 남는다면 연속적으로 또 다른 변수를 decision variable로 설정하고 FALSE 값을 할당해야만 한다. 이러한 연속적인 변수 값의 설정은 conflict가 발생했을 때 설정된 값을 수정해야만 하므로 decision variable들이 만드는 이진트리를 구성해서 관리하며 위의 트리 레벨을 decision level이라고 부른다. Decision literal의 보수 또는 Implied literal을 포함하는 절들은 위의 literal들에 의해서 satisfiable해지므로 삭제한다. 위의 과정에서 남은 절이 하나도 없는 상태가 되면 알고리즘은 satisfiable 결과를 리턴하며 unit clause들에 포함된 모든 implied literal들의 집합이 CNF formula의 해(solution)가 된다. Since the decision literal is assigned to have the value of FALSE and the implied literal is assigned to have the value of TRUE, the complement of the decision literal or implied literal included in one clause does not affect satisfiability and is therefore deleted. If an empty clause is created in the above process, it is said that a conflict has occurred. If two or more literals remain in one clause even after deleting the complement of implied literals or decision literals, you must successively set another variable as a decision variable and assign the value FALSE. Since the setting of these continuous variable values requires modifying the set value when a conflict occurs, a binary tree created by decision variables is constructed and managed, and the tree level above is called the decision level. Clauses containing the complement of a decision literal or implied literal are deleted because they are satisfiable by the above literals. If there are no clauses remaining in the above process, the algorithm returns a satisfiable result, and the set of all implied literals included in the unit clauses becomes the solution to the CNF formula.
본 발명은 SAT solver들이 풀기 어려운 Hard SAT을 체계적으로 생성하는 방법과 생성된 Hard SAT을 이용해서 암호화 및 복호화 하는 방법에 관한 서술이다.The present invention describes a method of systematically generating a Hard SAT that is difficult for SAT solvers to solve, and a method of encrypting and decrypting using the generated Hard SAT.
이하, 첨부된 도면을 참조하여 본 발명에 따른 패스워드를 해로 가지는 3-CNF 생성 방법 및 이를 이용한 SAT에 기반한 양자 내성 암호화 알고리즘 생성 방법을 설명하면 다음과 같다.Hereinafter, with reference to the attached drawings, a method for generating a 3-CNF with a password as a solution according to the present invention and a method for generating a quantum-resistant encryption algorithm based on SAT using the same will be described as follows.
도 1은 하나의 literal만으로 구성된 unit clause에서 원환형 이항 트리를 생성하는 과정을 설명하기 위한 개략도를 나타낸다. unit clause를 resolution rule을 적용하고 redundant clause들을 삽입해서 이항 트리를 만든 후에 이항 트리가 가진 expressional inequality를 제거하기 위해서 환형 이항 트리로 변형한 후에 환형 이항 트리가 가진 geometric inequality를 제거하기 위해서 원환형 이항 트리로 변형하는 절차를 보여준다.Figure 1 shows a schematic diagram to explain the process of creating a toroidal binomial tree from a unit clause consisting of only one literal. After creating a binomial tree by applying a resolution rule to the unit clause and inserting redundant clauses, it is transformed into a circular binomial tree to remove the expressional inequality of the binomial tree, and then a circular binomial tree is used to remove the geometric inequality of the circular binomial tree. It shows the transformation procedure.
도 2는 랜덤 변수가 추가 되지 않은 싱글 원환형 이항 트리의 예를 보여주기 위한 도면이다. TRUE 값을 가지는 literal들을 랜덤하게 정렬한 후 dominant literal들의 자리에 배치했다. Switching literal들은 dominant literal들의 보수(complement)들로 배치했다. Figure 2 is a diagram showing an example of a single toroidal binomial tree in which no random variables are added. Literals with TRUE values were randomly sorted and placed in place of dominant literals. Switching literals are placed as complements of dominant literals.
도 3은 랜덤 변수가 추가된 싱글 원환형 이항 트리의 예를 보여주기 위한 도면이다. 도 2에서 생성한 원환형 이항 트리를 구성하는 clause들을 3개의 literal들이 만드는 절들로 바꾸기 위해서 random literal들을 삽입한 형태이며 FALSE 값을 가지는 random literal들을 왼쪽에 배치한 left shift modular random encapsulation 기법을 보여준다.Figure 3 is a diagram showing an example of a single toroidal binomial tree to which random variables are added. It is a form of inserting random literals to change the clauses constituting the circular binomial tree generated in Figure 2 into clauses made up of three literals, and shows the left shift modular random encapsulation technique in which random literals with FALSE values are placed on the left.
도 4는 랜덤 변수가 추가 되지 않은 듀얼 원환형 이항 트리의 예를 보여주기 위한 도면이다. 도 2에서 생성한 TRUE tree에 FALSE tree도 함께 추가해서 듀얼 원환형 이항 트리를 생성한 예를 보여준다.Figure 4 is a diagram showing an example of a dual toroidal binomial tree in which no random variables are added. Figure 2 shows an example of creating a dual toroidal binomial tree by adding a FALSE tree to the TRUE tree created.
도 5는 랜덤 변수가 추가된 듀얼 원환형 이항 트리의 예를 보여주기 위한 도면이다. 도 4에서 생성한 듀얼 원환형 이항 트리를 구성하는 절들을 3개의 literal들로 구성된 절들로 바꾸기 위해서 random literal이 추가된 형태로 left shift modular random encapsulation 기법을 보여준다.Figure 5 is a diagram showing an example of a dual toroidal binomial tree to which random variables are added. In order to change the clauses constituting the dual toroidal binomial tree generated in Figure 4 into clauses consisting of three literals, the left shift modular random encapsulation technique is shown with a random literal added.
도 6은 듀얼 원환형 이항 트리의 개념을 설명하기 위한 도면이다. 듀얼 원환형 이항 트리를 구성하는 하나의 변수와 그의 보수가 양쪽 트리에서 모두 dominant literal 역할을 하는 것을 보여준다.Figure 6 is a diagram to explain the concept of a dual toroidal binomial tree. It shows that one variable constituting a dual toroidal binomial tree and its complement play a dominant literal role in both trees.
도 7은 하나의 변수 값이 바뀔 때 그 영향이 전파되는 것과 unit propagation ( Boolean constraint propagation )을 비교 설명하기 위한 도면이다. random literal이 dominant literal이나 switching literal과 겹치게 되면 짧은 순환 루프가 생성되는 것을 보여준다.Figure 7 is a diagram to compare and explain the propagation of the effect when the value of one variable changes and unit propagation (Boolean constraint propagation). It shows that a short circular loop is created when a random literal overlaps with a dominant literal or switching literal.
도 8은 모듈러 랜덤 캡슐화의 개념을 설명하기 위한 도면이다. column 수가 10이고 tree level이 5인 원환형 이항 트리를 모듈러 랜덤 캡슐링하기 위해서 랜덤 변수들을 distance = column 수 /2 -1 로 해서 배치하는 예를 보여준다.Figure 8 is a diagram to explain the concept of modular random encapsulation. This shows an example of arranging random variables with distance = number of columns / 2 -1 to modularly random encapsulate a toroidal binomial tree with 10 columns and 5 tree levels.
도 9는 새로운 개념인 CDC(Conditional Don't-Care) variable의 개념을 설명하기 위한 도면이다. 가로방향과 세로방향으로 순환 루프가 형성되고 변수들이 연결되어서 CDC를 형성하는 예를 보여준다.Figure 9 is a diagram to explain the concept of a new concept, CDC (Conditional Don't-Care) variable. It shows an example in which a circular loop is formed in the horizontal and vertical directions and variables are connected to form a CDC.
도 10은 TRUE 트리와 FALSE 트리에서 생성되는 순환루프를 찾기 위해서 decision literal과 implied literal들을 선택하는 과정을 설명하기 위한 도면이다. 올바르게 decision literal들과 implied literal들을 선정하면 트리가 가진 고유의 순환 루프를 찾을 수 있음을 보여준다.Figure 10 is a diagram to explain the process of selecting decision literals and implied literals to find circular loops created in TRUE trees and FALSE trees. It shows that if decision literals and implied literals are selected correctly, the tree's unique circular loop can be found.
도 11은 이전 스텝에서 선정된 decision literal들과 implied literal들의 보수들이 절에서 지워져서 3개의 literal로 구성된 절들이 2개의 literal로 구성된 절들로 바뀌는 과정을 설명하기 위한 도면이다. 그림 (a)는 FALSE 트리에서 dominant literal과 random literal이 지워지는 경우를 그림 (b)는 TRUE 트리에서 switching literal과 random literal이 지워지는 경우를 보여준다. Figure 11 is a diagram to explain the process in which clauses consisting of three literals are changed into clauses consisting of two literals by deleting the complements of decision literals and implied literals selected in the previous step from the clause. Figure (a) shows a case where dominant literals and random literals are deleted from the FALSE tree, and figure (b) shows a case where switching literals and random literals are deleted from the TRUE tree.
도 12는 듀얼 원환형 이항 트리에 모듈러 랜덤 캡슐링해서 생성된 3-CNF가 입력변수 수가 충분히 크다면 듀얼 솔루션 이외의 해를 가지지 않음을 확인하기 위해서 실시한 실험 결과를 설명하기 위한 도면이다. unique dual solution을 가질 확률의 이론적 예측값과 측정값이 일치하는 것을 확인할 수 있다.Figure 12 is a diagram to explain the results of an experiment conducted to confirm that 3-CNF generated by modular random encapsulation in a dual toroidal binomial tree does not have solutions other than the dual solution if the number of input variables is sufficiently large. It can be seen that the theoretical predicted value of the probability of having a unique dual solution matches the measured value.
도 13은 듀얼 원환형 이항 트리의 크기를 증가시키며 해를 찾는데 걸리는 시간을 측정한 실험 결과를 설명하기 위한 도면이다. free modular 방식이건 shift modular 방식이건 모두 해를 구하는 시간이 입력변수 수에 비례해서 지수 함수적으로 증가하는 것을 보여준다. Figure 13 is a diagram to explain the results of an experiment measuring the time it takes to find a solution while increasing the size of a dual toroidal binomial tree. Both the free modular method and the shift modular method show that the time to find a solution increases exponentially in proportion to the number of input variables.
도 14는 Hard CNF를 사용한 암호화 및 복호화 방법을 설명하기 위한 도면이다. q개의 2-TRUE clause들과 p개의 1-TRUE clause들을 추출해서 새롭게 CNF를 만든 후에 2p+1개의 절들을 랜덤하게 추출한 후에 literal들의 개수를 세어서 암호문을 만들고 암호문에서 literal들의 갯수들을 추출해서 임계치를 확인하기 위한 수식을 만든 후에 패스워드를 대입해서 3p+2보다 크거나 같으면 1로 그렇지 않으면 0으로 복호화 하는 과정을 보여준다.Figure 14 is a diagram for explaining the encryption and decryption method using Hard CNF. After extracting q number of 2-TRUE clauses and p number of 1-TRUE clauses to create a new CNF, randomly extract 2p+1 clauses, count the number of literals to create a ciphertext, extract the number of literals from the ciphertext, and set the threshold value. After creating a formula to check, it shows the process of substituting the password and decrypting it to 1 if it is greater than or equal to 3p+2, and 0 otherwise.
이상의 도면을 참조하여, 본 발명의 실시를 위한 주요 구성을 상세하게 설명하기로 하되, 먼저 원환형 이항 트리의 생성(toroidal binomial tree generation) 방법에 대해 설명하기로 한다. With reference to the above drawings, the main configuration for implementing the present invention will be described in detail, but first, the toroidal binomial tree generation method will be described.
주사위나 동전을 던지고 나서 어떤 값이 나오는지 알 수 있는 알고리즘을 만들 수 있는가? 라는 문제를 낸다고 가정하자. A가 나오고 B가 안 나온다는 결론을 내기 위해서는 알고리즘의 내부에서는 A와 B를 구분하는 요소를 가지고 있어야 하지만 던지는 행위에 관해서 A와 B는 서로가 indistinguishable하다. 다시 말하면, 던지는 행위에 관해서 숫자들은 서로가 equality가 성립한다.Is it possible to create an algorithm that can figure out what value comes up after throwing a die or a coin? Let's assume we have the problem: In order to conclude that A comes out and B does not come out, there must be an element that distinguishes A and B inside the algorithm, but when it comes to the act of throwing, A and B are indistinguishable from each other. In other words, when it comes to the act of throwing, the numbers are equal to each other.
Indistinguishability로 인해서 해를 구할 수 있는 알고리즘을 만들기 어려우므로 위의 문제는 extremely hard하다고 볼 수 있다. 그래서 문제 해결을 위한 알고리즘을 만들기 어렵게 하는 어떤 개념적인 indistinguishable 공간을 만들고 그 공간에 변수들의 값을 숨김으로써 Hard SAT을 만들기를 원한다. 본 발명에서는 expressional equality, geometric equality를 정의한다. The above problem can be considered extremely hard because it is difficult to create an algorithm that can find a solution due to indistinguishability. So, we want to create Hard SAT by creating a conceptual indistinguishable space that makes it difficult to create an algorithm to solve the problem and hiding the values of variables in that space. The present invention defines expressional equality and geometric equality.
위의 두 equality의 특성을 가지는 indistinguishable 공간으로써 원환형 이항 트리(toroidal binomial tree)를 만들고 tree를 구성하는 노드들에 랜덤하게 literal 들을 삽입함으로써 Hard SAT을 생성한다. 원환형 이항 트리는 CNF formula의 복잡도를 증가시키는 방향으로 가장 간단한 절인 unit clause를 연속적으로 변형하는 과정에서 생성된다.Hard SAT is created by creating a toroidal binomial tree as an indistinguishable space with the above two equality characteristics and randomly inserting literals into the nodes that make up the tree. A toroidal binomial tree is created through the process of continuously transforming the simplest clause, the unit clause, in the direction of increasing the complexity of the CNF formula.
[도 1]을 참조하면, (a)는 unit clause를 보여준다. (b)는 unit clause를 두 개의 문자로 구성된 k개의 절들로 변형한 것이고, (c)는 새로운 두 개의 문자로 구성된 redundant 절들을 추가해서 복잡도를 높인 형태이며, (d)는 변수들을 추가해서 resolution rule을 적용할 수 있는 새로운 패스들을 만드는 과정을 보여준다. (e)는 (d)의 추가 과정을 반복해서 생성된 이항 트리를 나타낸다. (f)는 이항 트리로부터 expressional equality를 확보하기 위한 환형 트리 생성 방법을 보여준다. (g)는 환형 트리로부터 geometric equality를 확보하기 위한 원환형 이항 트리 생성 방법을 보여준다. (h)는 원환형 이항 트리의 형상을 보여준다.Referring to [Figure 1], (a) shows a unit clause. (b) is a unit clause transformed into k clauses consisting of two letters, (c) is a form that increases complexity by adding new redundant clauses consisting of two letters, and (d) is a form of resolution by adding variables. Shows the process of creating new paths to which rules can be applied. (e) shows a binomial tree created by repeating the addition process in (d). (f) shows how to create a circular tree to secure expressional equality from a binomial tree. (g) shows how to create a toroidal binomial tree to secure geometric equality from a circular tree. (h) shows the shape of a toroidal binomial tree.
SAT 문제를 풀기 위한 하나의 방법으로 resolution technique이 사용된다. Resolution technique에서 절들을 합쳐서 새로운 절들을 만들 때 분해증명법(resolution rule) 이 사용되며 하나의 예는 다음과 같다.A resolution technique is used as a method to solve SAT problems. In the resolution technique, a resolution rule is used when combining clauses to create new clauses. An example is as follows.
(수식 1) (a∨¬b)∧(b∨a)⇒a(Formula 1) (a∨¬b)∧(b∨a)⇒a
(수식 1)은 변수 a가 TRUE 값을 가지는 조건은 (a∨¬b)와 (b∨a)인 두 절이 모두 TRUE가 되기 위한 필요조건이 된다는 것을 나타낸다. 관점을 바꾸면 변수 a의 필요조건이 두 개의 절에 숨겨져 있다고 해석할 수 있고 위의 개념을 확장해서 연속적으로 절들의 개수를 늘려서 변수 a의 필요조건을 찾는 것을 어렵게 만들고자 한다. 위의 과정을 쉽게 확인하기 위해서 하나 또는 두 개의 절들의 쌍을 그래프로 표기한다. (x1.1∨¬x2.1)인 경우와 (x1.1∨¬x2.1)∧(x1.1∨¬x2.2) 인 경우에 각각 다음과 같이 하나의 선으로 literal들을 연결하는 형태로 표기한다. (Equation 1) indicates that the condition for variable a to have a TRUE value is a necessary condition for both clauses (a∨¬b) and (b∨a) to be TRUE. If you change your perspective, you can interpret that the necessary conditions for variable a are hidden in two clauses, and by expanding the above concept, we want to make it difficult to find the necessary conditions for variable a by continuously increasing the number of clauses. To easily check the above process, one or two pairs of clauses are graphed. In the case of (x 1.1 ∨¬x 2.1 ) and (x 1.1 ∨¬x 2.1 )∧(x 1.1 ∨¬x 2.2 ), the literals are expressed by connecting the literals with a single line as follows.
Figure PCTKR2022014158-appb-img-000002
Figure PCTKR2022014158-appb-img-000002
그래프로 표기할 때는 편의상 NOT(¬) 연산자를 -로 표시한다. 두 절을 하나의 그래프로 나타낼 때는 두 절에서 공통으로 들어가는 문자를 앞으로 배치하며 나머지 문자들은 약간 띄워서 뒤에 배치한다. Resolution rule은 한 변수와 그 변수의 보수(complement)가 연결된 path을 따라서 적용되며 [도 1]에서처럼 약간 휘어진 화살표로 나타낸다.When displaying a graph, the NOT(¬) operator is indicated as - for convenience. When displaying two verses in one graph, the characters that are common to both verses are placed in front, and the remaining characters are placed at the back with a slight gap. Resolution rules are applied along a path connecting a variable and its complement and are indicated by a slightly curved arrow as shown in [Figure 1].
Unit clause인 (x1.1)을 resolution rule을 이용해서 여러 절들로 확장하고 redundant clause들을 추가해서 모든 절들이 TRUE 값을 가지기 위한 x1.1의 필요조건을 찾는 것을 어렵게 만드는 과정을 연속적으로 실행한다. 위의 과정을 그래프로 나타내면 [도 1]의 (e)와 같은 트리가 생성된다. The unit clause (x 1.1 ) is expanded into several clauses using a resolution rule, and redundant clauses are added to continuously execute the process of making it difficult to find the necessary condition for x 1.1 for all clauses to have a TRUE value. If the above process is represented graphically, a tree like (e) in [Figure 1] is created.
[도 1]의 (b)와 (c)를 CNF formula로 나타내면 아래의 (수식 2)와 (수식 3)으로 표현된다. If (b) and (c) in [Figure 1] are expressed as a CNF formula, they are expressed as (Formula 2) and (Formula 3) below.
(수식 2) (x1.1∨¬x2.1)∧(x2.1∨¬x3.1)∧...∧(xK.1∨x1.1)(Formula 2) (x 1.1 ∨¬x 2.1 )∧(x 2.1 ∨¬x 3.1 )∧...∧(x K.1 ∨x 1.1 )
(수식 3) A∧B,(Formula 3) A∧B,
A=(x1.1∨¬x2.1)∧(x2.1∨¬x3.1)∧...∧(xK.1∨x1.1), A=(x 1.1 ∨¬x 2.1 )∧(x 2.1 ∨¬x 3.1 )∧...∧(x K.1 ∨x 1.1 ),
B=(x1.1∨¬x2.2)∧(x2.1∨¬x3.2)∧...∧(xK.1∨xk+1.2) B=(x 1.1 ∨¬x 2.2 )∧(x 2.1 ∨¬x 3.2 )∧...∧(x K.1 ∨x k+1.2 )
상기 (수식 2)는 resolution rule을 적용하면 x1.1의 필요조건이 확인된다. 수식(3)의 CNF formula는 (수식 2)의 CNF formula를 포함하고 있음으로 x1.1의 필요조건이 그대로 유지된다. [도 1]의 (c)에서 ¬x2.1에서 휘어진 화살표로 표현된 연결선이 생성된 것은 두 개의 절, (x1.1∨¬x2.1)과 (x1.1∨¬x2.2) 중에서 (x1.1∨¬x2.1)을 사용해서 resolution rule 을 적용할 수 있음을 나타낸 것이다.In the above (Equation 2), if the resolution rule is applied, the necessary condition of x 1.1 is confirmed. Since the CNF formula in equation (3) includes the CNF formula in (equation 2), the requirement for x 1.1 remains the same. In (c) of [Figure 1], the connection line represented by the curved arrow at ¬x 2.1 was created in (x 1.1 ∨¬) among the two clauses, ( x 1.1 ∨¬x 2.1 ) and (x 1.1 ∨¬x 2.2 ). This shows that the resolution rule can be applied using x 2.1 ).
두 개의 절들에 공통으로 속하는 문자(변수)를 dominant literal(variable)로, 나머지 두 문자(변수)를 switching literal(variable)로 정의한다. Switching variable이라는 의미는 resolution rule이 적용 가능한 절을 선택하는 역할을 함을 의미한다. The character (variable) that belongs to the two clauses in common is defined as a dominant literal (variable), and the remaining two characters (variables) are defined as switching literal (variable). Switching variable means that the resolution rule plays a role in selecting the applicable clause.
[도 1]의 (c)에서 resolution rule 적용 시에 선택되지 않은 변수들을 사용하여 다른 스위칭 패스를 만들 수 있도록 변수들의 보수들을 dominant literal로 하는 새로운 절들을 만든다. 이때 사용되는 변수들의 수를 최소화하기 위해서 선택되지 않은 변수들 중에서 하나는 dominant variable로 다른 하나는 switching variable로 할당하고 나머지 하나는 새로운 변수가 할당되는 절들을 생성한다. 그런 후에 화살표로 resolution rule이 적용 가능한 path를 표시하면 [도 1]의 (d)와 같은 연결구조가 만들어지며 위의 과정을 반복하면 [도 1]의 (e)와 같은 트리가 생성된다.In (c) of [Figure 1], new clauses are created with the complements of variables as dominant literals so that another switching pass can be created using variables that are not selected when applying the resolution rule. In order to minimize the number of variables used at this time, among the unselected variables, one is assigned as a dominant variable, another is assigned as a switching variable, and the remaining one is assigned a new variable. After that, if the path to which the resolution rule can be applied is indicated with an arrow, a connection structure like (d) in [Figure 1] is created, and if the above process is repeated, a tree like (e) in [Figure 1] is created.
트리 하단에 있는 x1.1을 임의의 위치에 있는 switching literal과 바꾸더라도 resolution path가 만들어져서 x1.1=TRUE인 조건을 확인할 수 있다. 이때 root node에서 특정 child node까지 생성되는 resolution path의 수가 이항 계수로 표현되므로 생성된 트리를 이항 트리(binomial tree)라고 정의한다. 이항 트리는 root node, outer node, inner node들에서 사용되는 dominant literal들의 보수의 개수가 다르다. Root node는 한 번도 사용되지 않았고 outer node들은 한번 사용되었고 inner node들은 두 번씩 사용되었다. 위와 같이 변수들의 사용 횟수가 다른 것을 CNF formula의 형태적 비동등성 (expressional inequality)이라고 표현하자. CNF formula의 형태적 비동등성은 알고리즘이 root node와 inner node들을 쉽게 구분할 수 있게 함으로써 root node에서 inner node 방향이 아닌 inner node에서 root node로의 서치 방향을 선택함으로써 쉽게 해를 찾을 수 있게 한다. Even if you replace x 1.1 at the bottom of the tree with a switching literal at an arbitrary position, a resolution path is created and you can check the condition that x 1.1 = TRUE. At this time, the number of resolution paths created from the root node to a specific child node is expressed as a binomial coefficient, so the generated tree is defined as a binomial tree. The binomial tree differs in the number of complements of dominant literals used in the root node, outer node, and inner node. The root node was never used, the outer nodes were used once, and the inner nodes were used twice. Let's express the difference in the number of uses of variables as above as the expressional inequality of the CNF formula. The morphological inequality of the CNF formula allows the algorithm to easily distinguish between root nodes and inner nodes, making it possible to easily find a solution by selecting the search direction from the inner node to the root node rather than the direction from the root node to the inner node.
이항 트리가 가진 형태적 비동등성을 없애기 위해서 [도 1]의 (f)와 같이 평면에 펼쳐진 트리를 구형 곡면에 놓는다고 가정한 후에 새로운 노드들을 추가해서 2번 사용되지 않은 switching literal들을 연결시켜보자. [도 1]의 (f)는 이항 트리를 환형 이항 트리(circular binomial tree)로 바꾸는 방법을 설명한다. 삼각형을 이루는 외곽 literal들을 순차적으로 하나씩 모아서 새로운 노드를 만든다. 처음에는 dominant literal을 x5.1으로 스위칭 literal을 ¬x1.1, ¬x5.5으로 하는 두 개의 절을 만들고 차례로 [도 1]의 (f)에 표기된 삼각 면의 화살표 방향을 따라가며 dominant literal과 switching literal들을 추출하여 나머지 4개의 쌍을 만든다. 트리에 나타난 노드들은 3개의 literal들로 표현되어 있지만 두 개의 literal들로 이루어진 절들의 쌍임에 주의하자. 기존의 이항 트리는 root node와 outer node 및 inner node들이 dominant literal들의 보수를 사용한 개수가 달랐지만 환형 이항 트리는 모든 literal들과 그들의 보수들이 모두 2번씩 사용된다. 또한 모든 노드들은 시작점에서 패스를 따라가면 다시 시작점으로 돌아오는 하나 이상의 순환 루프를 가지고 있다.In order to eliminate the morphological inequality of the binomial tree, let's assume that the tree spread out on a plane is placed on a spherical curved surface as shown in (f) of [Figure 1], and then add new nodes to connect the unused switching literals twice. . (f) in [Figure 1] explains how to change a binomial tree into a circular binomial tree. Create a new node by sequentially gathering the outer literals that form the triangle one by one. First, create two clauses with the dominant literal switching to Extract to create the remaining 4 pairs. The nodes appearing in the tree are expressed with three literals, but note that they are pairs of clauses made up of two literals. In the existing binomial tree, the root node, outer node, and inner node used different complements of dominant literals, but in the circular binomial tree, all literals and their complements are used twice. Additionally, all nodes have one or more circular loops that return to the starting point by following a path from the starting point.
환형 이항 트리는 변수들과 그의 보수들의 사용 횟수가 동일해서 변수들에 관한 CNF formula의 형태적 동등성을 확보했다. 하지만 트리 구조를 만드는 기하학적 형태로는 시작 노드와 말단 노드가 구분된다. 기하학적 형태의 차이는 한 노드를 시작점으로해서 패스를 따라가면 다시 시작점으로 돌아오는 순환루프가 생성되는데 이때 몇 번 노드를 거쳐서 다시 돌아 왔는지에 대한 개수의 차이를 만든다. 이런 차이를 CNF formula의 기하학적 비동등성(geometric inequality)이라고 표현하자. 환형 이항 트리가 가진 기하학적 비동등성은 서치 알고리즘이 해를 구하기 위해서 필요로 하는 calculation step 수의 차이를 만든다. The circular binomial tree ensures formal equivalence of the CNF formula for variables because the number of uses of variables and their complements is the same. However, the geometric form that creates the tree structure is divided into a start node and an end node. The difference in geometric form is that when you follow the path with one node as the starting point, a circular loop is created that returns to the starting point. At this time, the number of times it passes through the node and returns to it makes a difference. Let's express this difference as the geometric inequality of the CNF formula. The geometric inequality of the circular binomial tree creates a difference in the number of calculation steps required by the search algorithm to find a solution.
CNF formula의 기하학적 동등성을 확보하기 위해서 직각 삼각형 형태로 된 이항 트리 두 개를 위 아래로 포개서 직 사각형 형태의 트리를 만든다. 가로와 세로의 크기가 1 차이가 나는 matrix 가 생기겠지만 개념을 확장해서 가로 세로가 임의의 값을 가지는 m x n matrix 형태로 확장한다. 그런 후에 [도 1]의 (g)처럼 트리의 최 상위 노드들과 최 하위 노드들을 연결하고 양 옆의 노드들을 연결하면 모든 노드들은 상하좌우가 구분되지 않게 되어서 기하학적으로 차이가 없게 된다. 위의 연결 과정을 통해서 [도 1]의 (h)와 같이 원환체(torus) 모양의 트리가 형성되므로 원환형 이항 트리(toroidal binomial tree)로 정의한다. [도 1]의 (h)는 column 수와 레벨 수가 모두 10인 원환형 이항 트리를 표시한 것이며 노드를 작은 구로 표현했다. To ensure geometric equivalence of the CNF formula, two binomial trees in the form of right triangles are stacked on top of each other to create a tree in the form of a rectangular square. There will be a matrix whose width and height differ by 1, but the concept is expanded to an m x n matrix where the width and height have arbitrary values. Then, as shown in (g) in [Figure 1], if the highest and lowest nodes of the tree are connected and the nodes on both sides are connected, all nodes become indistinguishable between top, bottom, left, and right, so there is no geometric difference. Through the above connection process, a torus-shaped tree is formed as shown in (h) of [Figure 1], so it is defined as a toroidal binomial tree. (h) in [Figure 1] shows a toroidal binomial tree with both the number of columns and the number of levels being 10, and the nodes are expressed as small spheres.
이하, 본 발명의 실시를 위한 주요 기술 요소 중 하나인 듀얼 원환형 이항 트리에 대해 설명하기로 한다.Hereinafter, a dual toroidal binomial tree, which is one of the main technical elements for implementing the present invention, will be described.
앞서 설명한 원환형 이항 트리의 형태적 동등성과 기하학적 동등성으로 인해서 dominant variable로 사용되는 두 변수를 수식적으로나 기하학적으로 구분하기 어려워졌다. 하지만 한 변수와 그의 보수는 서로 다른 level에 위치함으로써 한 변수가 switching variable로 사용되면 그 변수에서 그 변수의 보수로의 패스가 형성되고 dominant variable로 사용되면 그 변수의 보수에서 그 변수로의 패스가 형성된다. 이것을 directional inequality를 가진다고 표현하자. 원환형 이항 트리가 가진 directional inequality의 특성은 알고리즘이 변수들과 그의 보수들의 역할을 구분하고 트리 구조를 파악할 수 있는 여지를 남긴다. Due to the morphological and geometric equivalence of the toroidal binomial tree described above, it has become difficult to distinguish mathematically or geometrically between the two variables used as the dominant variable. However, a variable and its complement are located at different levels, so when a variable is used as a switching variable, a path is formed from that variable to the variable's complement, and when it is used as a dominant variable, a path is formed from the variable's complement to that variable. is formed Let's express this as having directional inequality. The directional inequality characteristic of the toroidal binomial tree leaves room for the algorithm to distinguish the roles of variables and their complements and understand the tree structure.
한 변수와 그 변수의 보수가 방향성을 가지지 않고 어느 것이 상위 레벨에 포함되는지를 구분할 수 없는 directional equality를 가지게 하기 위해서 변수의 수를 고려한 두 개의 원환형 이항 트리를 만든다. 그런 후에 랜덤하게 노드를 선택해서 한 변수가 한쪽 트리에서 dominant variable의 역할을 하도록 배치하고 그 변수의 보수는 다른 쪽 트리에서 dominant variable의 역할을 하도록 배치한다. 이러한 배치에 의해서 하나의 변수와 그의 보수는 전체 CNF formula에서 동일하게 dominant variable과 switching variable의 역할을 하게 되므로 directional equality가 성립된다. 위와 같은 배치에 의해서 생성된 트리를 듀얼 원환형 이항 트리(dual toroidal binomial tree)라고 정의한다. In order to have directional equality where one variable and its complement do not have direction and it is not possible to distinguish which one is included in the upper level, two circular binomial trees are created taking into account the number of variables. After that, nodes are randomly selected and arranged so that one variable plays the role of the dominant variable in one tree, and the complement of that variable is arranged so that it plays the role of the dominant variable in the other tree. By this arrangement, one variable and its complement play the role of the dominant variable and switching variable in the entire CNF formula, thus establishing directional equality. The tree generated by the above arrangement is defined as a dual toroidal binomial tree.
원환형 이항 트리는 하나의 절을 구성하는 literal이 2개이기 때문에 원환형 이항 트리를 구성하는 모든 절들이 satisfiable하려면 하나의 dominant literal이 FALSE 값을 가지면 같은 절에 위치한 switching literal은 TRUE값을 가져야 하며 이것은 switching literal의 보수(complement)인 하위 레벨에 위치한 dominant literal이 FALSE 값을 가져야 하는 조건을 생성한다. Since a circular binomial tree has two literals that make up one clause, for all clauses that make up a circular binomial tree to be satisfiable, if one dominant literal has a value of FALSE, the switching literal located in the same clause must have a value of TRUE. Creates a condition in which the dominant literal located at the lower level, which is the complement of the switching literal, must have the value FALSE.
위의 조건은 순환루프를 타고 전파되어 순환루프를 형성하는 모든 dominant literal들이 FALSE 값을 가져야 하는 조건이 생성된다. The above condition is propagated through a circular loop, creating a condition in which all dominant literals forming the circular loop must have the value FALSE.
하나의 switching literal이 FALSE 값을 가지면 같은 방식으로 모든 dominant literal들이 TRUE 값을 가져야 하는 조건이 생성된다. 따라서 원환형 이항 트리 또는 듀얼 원환형 이항 트리를 구성하는 2-CNF formula는 모든 dominant literal들이 서로 같은 값을 가지는 dual solution을 가진다. 또한 해집합을 구성하는 literal들 중에서 하나의 literal의 값이 바뀌면 순환루프를 통해서 전체 literal들의 값이 모두 바뀌는 조건이 생성되므로 전체가 바뀐 해는 dual solution의 또 다른 해가 됨으로써 일부만 바뀐 해를 가지지 않는다. 따라서 dual solution 이외의 해를 가지지 않는다. If one switching literal has a FALSE value, a condition is created in the same way that all dominant literals must have a TRUE value. Therefore, the 2-CNF formula that constitutes a toroidal binomial tree or a dual toric binomial tree has a dual solution in which all dominant literals have the same value. In addition, if the value of one literal among the literals that make up the solution set changes, a condition is created in which the values of all literals change through a circular loop, so the completely changed solution becomes another solution of the dual solution, so there is no solution with only some changes. . Therefore, there are no solutions other than the dual solution.
서두에서 언급한 것처럼 문제 해결을 위한 알고리즘을 만들기 어렵게 하는 개념적인 indistinguishable 공간을 만들고 그 공간에 변수들의 값을 숨김으로써 Hard SAT을 만들기를 원했다. 패스워드를 해로 가지는 (듀얼) 원환형 이항 트리는 아래의 방법으로 생성된다.As mentioned in the beginning, we wanted to create Hard SAT by creating a conceptual indistinguishable space that makes it difficult to create algorithms to solve problems and hiding the values of variables in that space. A (dual) toroidal binomial tree with a password as the solution is created in the following way.
(Method 1). Password assignment in a (dual) toroidal binomial tree(Method 1). Password assignment in a (dual) toroidal binomial tree
1. n bit의 패스워드를 생성한 후 각 비트마다 변수를 할당한다. (예: 1010, x1=1, x2=0, x3=1, x4=0)1. After creating a password of n bits, assign a variable to each bit. (Example: 1010, x 1 =1, x 2 =0, x 3 =1, x 4 =0)
2. 패스워드 길이를 고려해서 [도 1]의 (g)와 같은 두 개의 원환형 이항 트리 프레임을 만든다.2. Considering the password length, create two toroidal binomial tree frames such as (g) in [Figure 1].
3. TRUE 값을 가지는 n개의 literal 집합 또는 FALSE 값을 가지는 n개의 literal 집합을 생성한 후 랜덤하게 정렬한다. (예: TRUE 값을 가지는 n개의 literal 집합인 경우: -x2, x1, x3, -x4)3. Create a set of n literals with TRUE values or n literal sets with FALSE values and then sort them randomly. (Example: In the case of a set of n literals with TRUE values: -x 2 , x 1 , x 3 , -x 4 )
4. 하나의 트리를 선택한 후에 순서대로 하나씩 꺼내서 맨 좌측열부터 dominant literal 자리에 배치한다. (열 들을 맨 위부터 아래까지 모두 채우고 다음 열을 채운다.)4. After selecting one tree, take them out one by one in order and place them in place of the dominant literal starting from the leftmost column. (Fill all columns from top to bottom and then fill in the next column.)
5. Switching literal들의 자리는 dominant literal들의 complement로 배치한다.5. Switching literals are placed in the complement of dominant literals.
6. 듀얼 원환형 이항 트리를 생성할 경우에는 3번에서 설정된 변수들의 보수를 사용해서 n 개의 literal 집합을 생성한 후 랜덤하게 정렬한다. (예: -x1, x4, -x3, x2) 6. When creating a dual toroidal binomial tree, create a set of n literals using the complement of the variables set in step 3 and then sort them randomly. (e.g. -x 1 , x 4 , -x 3 , x 2 )
7. 듀얼 원환형 이항 트리를 생성할 경우에는 듀얼 원환형 이항 트리를 구성하는 또 다른 트리에서 6번에서 생성한 literal 집합을 이용해서 위의 4-5를 실행한다.7. When creating a dual toroidal binomial tree, execute steps 4-5 above using the literal set created in step 6 in another tree that makes up the dual toroidal binomial tree.
상기 (Method 1)에서 사용된 n개의 dominant literal들의 집합을 basis solution이라고 정의한다. 해의 duality 특성에 의해서 basis solution 에 포함되는 모든 literal들의 보수의 집합도 solution이 된다. 위의 해를 complement solution으로 정의한다. basis solution과 complement solution이외의 해를 가지지 않는 경우를 unique dual solution을 가진다고 정의한다. 또한 TRUE 값을 가지는 n개의 literal 집합으로 dominant literal들을 배치한 트리를 TRUE tree로 FALSE 값을 가지는 n개의 literal 집합으로 dominant literal들을 배치한 트리를 FALSE tree로 정의한다.The set of n dominant literals used in (Method 1) above is defined as the basis solution. Due to the duality characteristic of the solution, the set of complements of all literals included in the basis solution also becomes the solution. The above solution is defined as a complement solution. A unique dual solution is defined as a case where there is no solution other than the basis solution and complement solution. In addition, a tree in which dominant literals are arranged in a set of n literals with TRUE values is defined as a TRUE tree, and a tree in which dominant literals are arranged in a set of n literals in FALSE values is defined as a FALSE tree.
위에서 우리는 TRUE tree와 FALSE tree를 사용해서 듀얼 원환형 이항 트리를 생성했다. 여기서 두 개의 TRUE tree 또는 두 개의 FALSE tree를 사용해서 더블 원환형 이항 트리(double toroidal binomial tree)를 생성하는 경우에 해를 구하는 어려움에 대해서 생각해보자. 듀얼 원환형 이항 트리는 트리 구조를 파악하려는 시도로 만들어지는 새로운 SAT Solver에서는 트리 구조를 숨기는 데에 있어서 역할을 할 수 있으나 현재까지 만들어진 모든 SAT solver는 이러한 기능을 가지고 있지 않기 때문에 해를 구하는 어려움은 듀얼 원환형 이항 트리나 더블 원환형 이항 트리나 비슷할 것으로 예상된다. 듀얼 원환형 이항 트리를 사용하는 경우와 해를 구하는 어려움이 비슷하다는 것을 실험으로 확인했으며 실험결과는 후술한다.Above we created a dual toroidal binomial tree using a TRUE tree and a FALSE tree. Here, let's think about the difficulty in finding a solution when creating a double toroidal binomial tree using two TRUE trees or two FALSE trees. The dual toroidal binomial tree can play a role in hiding the tree structure in the new SAT solver created in an attempt to understand the tree structure, but since all SAT solvers created to date do not have this function, the difficulty in finding a solution is due to the dual toroidal binomial tree. It is expected that a toroidal binomial tree or a double toroidal binomial tree will be similar. It was confirmed through experiments that the difficulty in finding a solution is similar to that when using a dual toroidal binomial tree, and the experimental results are described later.
이하, 본 발명의 실시를 위한 주요 기술 요소 중 하나인 랜덤 캘슐화에 의한 Hard SAT 생성 방법에 대하여 설명하기로 한다.Hereinafter, a method for generating Hard SAT by random encapsulation, which is one of the main technical elements for implementing the present invention, will be described.
앞서 설명한, (듀얼) 원환형 이항 트리를 구성하는 절들은 2개의 literal들로 구성되며 해의 duality 특성에 의해서 하나의 literal은 TRUE와 FALSE 값을 모두 가질 수 있다. 따라서 하나의 literal을 선택하고 FALSE로 가정하더라도 그 가정은 항상 참이 된다. 따라서 back-tracking이 일어나지 않기 때문에 SAT solver에 의해서 쉽게 해가 구해진다. SAT solver로 문제를 풀 때 back-tracking이 반드시 일어나는 3-CNF formula로 바꾸기 위해서 basis solution에 포함된 모든 literal들과 그의 보수들을 랜덤하게 정렬한 후에 차례로 (듀얼) 원환형 이항 트리를 이루는 절들에 추가해보자. 이때 두 가지 조건을 만족시키면서 추가한다.The clauses that make up the (dual) toroidal binomial tree described earlier are composed of two literals, and due to the duality characteristic of the solution, one literal can have both TRUE and FALSE values. Therefore, even if you select one literal and assume it is FALSE, the assumption will always be true. Therefore, because back-tracking does not occur, the solution is easily found by the SAT solver. In order to change to the 3-CNF formula, which inevitably causes back-tracking when solving a problem with a SAT solver, all literals and their complements included in the basis solution are randomly sorted and then sequentially added to the clauses that form the (dual) toroidal binomial tree. Let's do it. At this time, it is added while satisfying two conditions.
첫째, Exact 3-CNF formula로 만든다. (추가하려는 변수가 한 절을 구성하는 두 변수와 겹치면 랜덤하게 재정렬한다.)First, it is made using the Exact 3-CNF formula. (If the variable you want to add overlaps with the two variables that make up one clause, it is randomly rearranged.)
둘째, 하나의 노드를 구성하는 두 개의 절에 추가될 두 literal 중 하나는 basis solution에 포함되는 것을 사용하고 또 다른 하나는 포함되지 않는 것을 사용한다. 이러한 행위를 random encapsulation으로 정의하며 추가되는 문자(변수)를 random literal(variable)로 정의한다. random encapsulation을 실행함으로써 2-CNF formula로 구성되었던 (듀얼) 원환형 이항 트리는 3-CNF formula로 바뀌었으며 하나의 절은 dominant literal, switching literal과 random literal로 구성된다. Second, one of the two literals to be added to the two clauses that make up one node uses the one included in the basis solution, and the other uses the one that is not included. This behavior is defined as random encapsulation, and the added character (variable) is defined as random literal (variable). By performing random encapsulation, the (dual) toroidal binomial tree composed of the 2-CNF formula was changed to the 3-CNF formula, and one clause consists of a dominant literal, switching literal, and random literal.
그러나 satisfiability는 그대로 유지된다. 이미 모든 절들이 TRUE 값을 가지는 상태에서 OR 연산자로 각각의 절들에 random literal을 추가했기 때문이다. 각각의 절마다 satisfiability에 기여할 수 있는 literal이 하나 더 추가됨으로써 기존의 해보다 더 많은 해를 가지게 된다. 이제 (듀얼) 원환형 이항 트리를 나타내는 그래프의 switching literal들 위에 [도 7]과 같이 추가된 random literal들을 올려놓자. 이때 random literal들을 포함해서 설명을 위해서 필요로 하는 FALSE 값을 가지는 literal 들을 회색으로 표시하자.However, satisfiability remains the same. This is because a random literal was added to each clause using the OR operator when all clauses already had the value TRUE. By adding one more literal that can contribute to satisfiability in each clause, there are more solutions than the existing solutions. Now, let's place the added random literals as shown in [Figure 7] on the switching literals of the graph representing the (dual) toroidal binomial tree. At this time, let's mark in gray the literals with the FALSE value necessary for explanation, including random literals.
[도 7]의 (a)는 TRUE tree를 표현한 것이다. 따라서 basis solution에서 d1은 TRUE 값을 가지고 s1과 s2는 모두 FALSE 값을 가진다. d1의 값이 FALSE로 바뀌었다고 가정하자. random encapsulation 방법의 두 번째 조건에 의해서 r1과 r2 중에서 하나는 FALSE 값을 가져야 한다. r2가 FALSE 값을 가지므로 (d1∨s2∨r2) 절이 satisfiable하기 위해서는 s2가 TRUE로 바뀌어야만 하며 이것은 s2의 보수인 d2가 FALSE로 바뀌어야 하는 조건을 유발한다. 위의 조건은 이전에 바뀐 변수가 나올 때까지 즉, 순환 루프가 형성될 때까지 계속적으로 전파된다. [도 7]의 (a)는 d4 ~ d7이 순환루프를 형성하고 d1이 FALSE로 바뀌는 것에 의해서 d2~ d7이 연속적으로 FALSE로 바뀌어야 하는 경우를 나타낸다.(a) in [Figure 7] represents the TRUE tree. Therefore, in the basis solution, d 1 has the value TRUE and both s 1 and s 2 have the value FALSE. Assume that the value of d 1 changes to FALSE. According to the second condition of the random encapsulation method, one of r 1 and r 2 must have the value FALSE. Since r 2 has the value FALSE, in order for the clause (d 1 ∨s 2 ∨r 2 ) to be satisfiable, s 2 must be changed to TRUE, which causes the condition that d 2 , the complement of s 2 , must be changed to FALSE. The above condition is continuously propagated until the previously changed variable appears, that is, until a circular loop is formed. (a) of [FIG. 7] shows a case where d 4 to d 7 form a circular loop and d 1 changes to FALSE, so that d 2 to d 7 must continuously change to FALSE.
[도 7]의 (b)는 FALSE tree를 표현한 것이다. 따라서 basis solution에서 d1은 FALSE 값을 가진다. d1의 값이 TRUE로 바뀌었다고 가정하면 d1의 보수인 s1의 값이 FALSE로 바뀐다. 이때 random encapsulation 방법의 두 번째 조건에 의해서 확률적으로 r1과 r2중에서 하나는 FALSE 값을 가져야 한다. r1이 FALSE이므로 d2가 TRUE로 바뀌어야만 하며 이것은 d2의 보수인 switching literal들이 FALSE로 바뀌어야 하는 조건을 유발한다. 위의 조건은 하나의 순환 루프를 형성하는 dominant literal들의 값이 모두 바뀔 동안 계속적으로 전파된다. [도 7]의 (b)는 d1이 TRUE로 바뀌는 것에 의해서 d2~d4가 연속적으로 TRUE로 바뀌어야 하는 경우를 나타낸다. 이때 TRUE와 FALSE 값을 가지는 random literal들을 두 노드를 구성하는 두 개의 절에 임의의 위치에 추가하는 것이 아니라 [도 3]의 (b)에서처럼 일정한 위치(오른쪽)에 배치하면 r1과 r2는 확률적으로 하나가 FALSE 값을 가지는 것이 아니라 반드시 하나는 FALSE 값을 가지고 또 다른 하나는 TRUE 값을 가진다. 이처럼 추가할 FALSE 값을 가지는 random literal들을 왼쪽 또는 오른쪽의 일정한 위치에 배치하는 방식을 left shift random encapsulation 또는 right shift random encapsulation으로 정의하며 랜덤하게 배치하는 경우를 free random encapsulation으로 정의한다. (b) in [Figure 7] represents the FALSE tree. Therefore, in the basis solution, d 1 has the value FALSE. Assuming that the value of d 1 changes to TRUE, the value of s 1 , the complement of d 1 , changes to FALSE. At this time, according to the second condition of the random encapsulation method, one of r 1 and r 2 must have the value FALSE. Since r 1 is FALSE, d 2 must be changed to TRUE, which causes the condition that switching literals, which are the complements of d 2 , must be changed to FALSE. The above condition is continuously propagated while the values of all dominant literals forming a circular loop are changed. (b) of [FIG. 7] shows a case where d 2 to d 4 must continuously change to TRUE when d 1 changes to TRUE. At this time, if random literals with TRUE and FALSE values are placed in a certain position (on the right) as in (b) of [Figure 3] rather than being added to the two clauses that make up the two nodes at random positions, r 1 and r 2 are It is not probable that one will have the value FALSE, but that one will necessarily have the value FALSE and the other will have the value TRUE. The method of placing random literals with FALSE values to be added in a certain position on the left or right is defined as left shift random encapsulation or right shift random encapsulation, and the method of arranging them randomly is defined as free random encapsulation.
[도 7]의 (c)는 원환형 이항 트리가 만드는 순환 루프의 최소 길이는 트리의 레벨 수와 같으며 모든 노드들이 하나의 순환 루프에 포함될 수 있음을 보여준다.[도 7]의 (a)와 (b)는 한 변수의 값이 바뀔 때 다른 변수들의 값에 그 영향이 전파되는 것이 원환형 이항 트리가7 가진 순환 루프가 형성될 때까지 계속됨을 보여준다. 그러나 [도 7]의 (d)와 같이 랜덤변수(r3)가 이미 값이 바뀐 dominant literal이나 switching literal의 보수와 같아지는 경우에는 랜덤 변수가 순환 루프를 만듦으로써 짧은 순환 루프가 형성되고 더 이상 영향력이 전파되지 않는다.(c) in [Figure 7] shows that the minimum length of a circular loop created by a toroidal binomial tree is equal to the number of levels in the tree and that all nodes can be included in one circular loop. (a) in [Figure 7] and (b) show that when the value of one variable changes, the effect is propagated to the values of other variables until a circular loop with a toroidal binomial tree7 is formed. However, as shown in (d) of [Figure 7], when the random variable (r 3 ) becomes equal to the complement of the dominant literal or switching literal whose value has already changed, the random variable creates a circular loop, forming a short circular loop and no longer Influence does not spread.
여기서 중요한 시사점은 한 변수의 값이 바뀌었을 때 영향력이 전파되는 현상이 진행 방향만 바꾸어서 unit propagation에 그대로 적용된다는 점이다. [도 7]의 (e)와 (f)는 올바른 decision variable(di)들을 연속적으로 선택해서 순환루프를 찾는 과정을 보여준다. 순환루프가 생성된다는 것은 이전에 할당된 literal들에 의해서 하나의 절이 지워진다는 것을 의미한다. Conflict를 일으키지 않고 절 하나를 지우는 과정이 순환루프를 찾는 과정이므로 해를 찾는 과정은 모든 순환루프를 찾는 과정이 된다. 이때 최종 순환 루프를 형성하기 위해서 사용된 implied literal이 dominant literal이나 switching literal이 되면 원환형 이항 트리가 가진 순환루프를 형성하며, [도 7]의 (g)와 같이 random literal이 될 경우에는 랜덤 변수가 순환루프를 만듦으로써 짧은 순환루프가 형성되는 것을 보여준다. [도 7]의 (e), (f), (g)에서 생성된 unit propagation path는 방향만 바뀌었을 뿐 [도 7]의 (a), (b), (d)에서 생성된 하나의 변수 값이 바뀌었을 때 영향력이 전파되는 path와 동일한 것을 확인 할 수 있다.The important takeaway here is that the phenomenon of influence being propagated when the value of one variable changes is directly applied to unit propagation by only changing the direction of progress. (e) and (f) in [Figure 7] show the process of finding a circular loop by continuously selecting the correct decision variables (d i ). Creating a circular loop means that one clause is deleted by previously assigned literals. Since the process of deleting a clause without causing a conflict is the process of finding a circular loop, the process of finding a solution becomes the process of finding all circular loops. At this time, if the implied literal used to form the final cyclic loop becomes a dominant literal or switching literal, it forms a cyclical loop with a toroidal binomial tree, and if it becomes a random literal as in (g) of [Figure 7], the random variable It shows that a short circulation loop is formed by creating a circulation loop. The unit propagation path created in (e), (f), and (g) of [Figure 7] only changes the direction, and one variable created in (a), (b), and (d) of [Figure 7] You can see that the path through which influence is propagated when the value changes is the same.
이상에서 살펴보았듯이 random variable이 순환루프에 참여함으로써 짧은 순환 루프가 생성된다. 짧은 순환루프는 DPLL 알고리즘이 작은 calculation step 수를 가지고도 하나의 절을 지울 수 있게 하기 때문에 쉽게 해를 구할 수 있도록 해준다. CNF formula가 암호화에 사용되기 위해서는 어렵게 해를 구하는 것도 중요하지만 우연치 않게 쉽게 해를 구하는 경우를 피해야만 한다. 따라서 생성되는 모든 SAT이 어떤 경우에도 정해진 한계치 이상의 hardness를 확보할 수 있는 방법을 찾기를 원한다. As seen above, a short circular loop is created when a random variable participates in a circular loop. Short circular loops make it easier to find a solution because the DPLL algorithm allows one clause to be deleted even with a small number of calculation steps. In order for the CNF formula to be used in encryption, it is important to find a difficult solution, but it is also important to avoid cases where the solution is easily obtained accidentally. Therefore, we want to find a way to ensure that all generated SATs have hardness above a set limit in any case.
이하, 본 발명의 실시를 위한 주요 기술 요소 중 하나인 모듈러 랜덤 캡슐화(Modular random encapsulation)에 대해 설명하기로 한다.Hereinafter, modular random encapsulation, one of the main technical elements for implementing the present invention, will be described.
앞에서 원환형 이항 트리가 만드는 순환 루프의 최소 길이는 트리의 레벨 수와 같음을 살펴보았다. Random variable들이 순환 루프를 구성하는 변수에 포함되는 것을 방지할 수 있다면 원환형 이항 트리가 가진 본래의 순환 루프를 만들 만큼의 decision level이 형성되어야지만 이전에 할당한 변수들에 의해서 하나의 절이 지워짐으로써 일정 이상의 hardness가 확보된다. dominant variable들과 random variable들이 서로 겹치지 않게 배치함으로써 random variable들이 만드는 짧은 순환루프를 없애는 방법으로써 modular random encapsulation 기법을 소개한다. We saw earlier that the minimum length of a circular loop created by a toroidal binomial tree is equal to the number of levels in the tree. If it is possible to prevent random variables from being included in the variables that make up the circular loop, a decision level sufficient to create the original circular loop of the circular binomial tree must be formed, but one clause must be erased by previously assigned variables. Hardness above a certain level is secured. We introduce the modular random encapsulation technique as a method of eliminating short circular loops created by random variables by arranging dominant variables and random variables so that they do not overlap each other.
먼저, 동일 column에 속하는 dominant literal들을 그룹으로 분리한다. 그런 후에 가장 멀리 떨어진 그룹에 포함된 dominant literal들과 그들의 보수들을 랜덤하게 각각 정렬한 후에 하나씩 꺼내서 random encapsulation 방법으로 하나의 노드를 구성하는 두개의 절에 각각 추가 한다. 원환형 이항 트리는 가로 방향과 세로 방향 모두 순환 루프를 가지므로 두 그룹 간에 가장 멀리 떨어진 거리, distance는 수식적으로 column 수/2, column 수/2-1, column 수/2+1 이 된다. 본 특허를 위한 실험에서는 column 수가 홀수인 경우든 짝수인 경우든 distance를 column 수/2-1 로 설정했다. 짝수인 경우에 column 수/2를 distance로 설정하지 않은 이유는 위와 같은 설정으로 두 그룹 간에 동일한 변수들로 이루어진 절들이 생성될 가능성이 있기 때문이다. 또한 distance가 1인 경우에는 하나의 절을 구성하는 switching variable이 옆 노드의 dominant variable과 겹치므로 2 이상 되도록 설정한다. 따라서 column 수는 5개 이상으로 설정한다.First, separate dominant literals belonging to the same column into groups. After that, the dominant literals and their complements included in the furthest group are randomly sorted, then taken out one by one and added to the two clauses that make up one node using the random encapsulation method. Since the circular binomial tree has cyclic loops in both the horizontal and vertical directions, the distance between the two groups is mathematically equivalent to the number of columns/2, the number of columns/2-1, and the number of columns/2+1. In the experiment for this patent, the distance was set to the number of columns/2-1 regardless of whether the number of columns was odd or even. The reason why the number of columns/2 is not set as the distance in the case of an even number is because there is a possibility that clauses with the same variables may be created between the two groups with the above settings. Additionally, when the distance is 1, the switching variable that makes up one clause overlaps with the dominant variable of the next node, so set it to be 2 or more. Therefore, set the number of columns to 5 or more.
[도 8]의 (a)는 column수 10, level 수 5 인 원환형 이항 트리를 modular random encapsulation하는 방법을 보여준다. 랜덤 변수가 dominant literal이나 switching literal과 같아지려면 column 수/2 -1만큼의 propagation이 필요하므로 트리 level 수가 k일때 column 수가 2k+1이 되면 트리 level 수만큼의 propagation이 보장된다. Left shift modular encapsulation일 경우에 세로 방향의 전파는 올바른 해를 구하기 위한 최소의 propagation 수를 결정한다. 또한 잘못된 decision assignment를 확인하기 위해서는 decision variable이 포함된 절까지 propagation이 일어나야 하기 때문에 가로방향의 전파는 conflict가 발생한 것을 확인하기 위한 최소의 propagation 수를 결정한다. 따라서 left shift modular인 경우에는 column 수에 상관없이 트리 레벨 수만큼의 세로 방향의 전파가 일어나지만 가로 방향의 전파를 위한 최소의 propagation 수는 conflict 발생 시의 소요 시간을 결정하므로 일정 이상의 hardness를 확보하기 위해서는 가로 방향으로도 임계치 이상 전파되도록 설정할 필요가 있다.(a) in [Figure 8] shows a method of modular random encapsulation of a toroidal binomial tree with 10 columns and 5 levels. For a random variable to become the same as a dominant literal or switching literal, propagation equal to the number of columns/2 -1 is required, so when the number of tree levels is k and the number of columns becomes 2k+1, propagation equal to the number of tree levels is guaranteed. In the case of left shift modular encapsulation, vertical propagation determines the minimum number of propagations to obtain the correct solution. Additionally, in order to confirm an incorrect decision assignment, propagation must occur up to the clause containing the decision variable, so horizontal propagation determines the minimum number of propagations to confirm that a conflict has occurred. Therefore, in the case of left shift modular, vertical propagation as many tree levels occurs regardless of the number of columns, but the minimum number of propagations for horizontal propagation determines the time required when a conflict occurs, so it is necessary to secure hardness above a certain level. To do this, it is necessary to set it so that it propagates beyond the threshold in the horizontal direction.
[도 8]의 (b)는 트리를 나타낼 때 표현하는 이등변 삼각형 형태를 왼쪽으로 치우치게 변형한 것을 보여준다. 위의 경우에 left shift인 경우에는 path들이 아랫 방향으로 향하고 right shift인 경우에는 우 하 방향으로 향하지만, (c)처럼 오른쪽으로 치우치게 변형해서 표현하면 left shift인 경우에는 좌 하 방향으로 향하고 right shift인 경우에는 아랫방향으로 향하게 된다. 따라서 트리를 표현하는 것에 차이가 있을 뿐 left shift인 경우는 왼쪽 방향의 path가 선택되고 right shift인 경우는 오른쪽 방향의 path가 선택된다. 또한 basis solution에 포함되는 literal들을 기준으로 left shift이었다면 complement solution에 포함되는 literal들 입장에서는 right shift가 되어서 서로 바뀌는 것에 주의하자. 본 특허를 위한 실험에서는 basis solution을 기준으로 dominant literal들을 배치하기 때문에 left shift modular encapsulation을 사용했다. (b) in [Figure 8] shows that the isosceles triangle shape used when representing a tree has been modified to be biased to the left. In the case above, in the case of left shift, the paths are directed downward, and in the case of right shift, they are directed to the lower right, but if expressed by modifying them to be biased to the right as in (c), in the case of left shift, they are directed to the lower left and right shift. In this case, it is directed downward. Therefore, there is only a difference in expressing the tree. In the case of left shift, the path in the left direction is selected, and in the case of right shift, the path in the right direction is selected. Also, note that if there was a left shift based on the literals included in the basis solution, it would be a right shift from the perspective of the literals included in the complement solution, so they are interchanged. In the experiment for this patent, left shift modular encapsulation was used because dominant literals were placed based on the basis solution.
모듈러 랜덤 캡슐화(modular random encapsulation)로 만들어진 변수들의 연관 관계 그래프는 2-SAT으로 구성된 원환형 이항 트리 위에 랜덤 변수들에 의해서 노드와 노드를 연결하는 가교가 더 생긴 것으로 볼 수 있다. Unit propagation 실행 시에 unit clause를 생성하기 위해서 랜덤 literal 값을 FALSE로 가정하는 행위, 즉 decision variable로 설정하는 행위는 올바른 가정일 확률이 1/2이므로 모든 노드가 back-tracking의 반환점이 될 수 있다. 따라서 랜덤 변수의 추가가 DPLL 알고리즘의 conflict 유발 횟수를 급격히 증가시킬 것임이 예측된다. 또한 각 노드마다 랜덤 literal들을 올바로 선택해서 FALSE로 설정하는 행위는 각 절마다 추가 되었던 random literal들을 제거하고 2-CNF formula로 구성된 트리에서 unit propagation을 진행하는 것이 된다. 2-CNF formula는 한번의 decision assignment와 연속적인 implied assignment에 의해서 추가적인 decision assignment없이 unit propagation이 진행되지만 3-CNF formula는 매 노드마다 random literal이 FALSE 값을 가지도록 random variable 값을 설정함으로써 decision level을 증가시킨다. 결론적으로 추가된 랜덤 변수는 하나의 노드에서 분기되는 두 개의 패스 중에서 unit propagation이 진행되는 패스를 선택하는 역할을 하며 선택할 때마다 decision level을 하나씩 증가시킨다. Modular random encapsulation 을 사용한 CNF formula 생성 방법을 정리하면 다음과 같다.The correlation graph of variables created through modular random encapsulation can be seen as a bridge connecting nodes by random variables on top of a toroidal binomial tree composed of 2-SAT. When executing unit propagation, the act of assuming a random literal value to be FALSE in order to create a unit clause, that is, setting it as a decision variable, has a 1/2 probability of being a correct assumption, so all nodes can become a return point for back-tracking. . Therefore, it is predicted that the addition of random variables will rapidly increase the number of conflict occurrences in the DPLL algorithm. Additionally, the act of correctly selecting random literals for each node and setting them to FALSE means removing the random literals added to each clause and performing unit propagation in the tree composed of the 2-CNF formula. The 2-CNF formula performs unit propagation without additional decision assignment through a single decision assignment and continuous implied assignment, but the 3-CNF formula sets the decision level by setting a random variable value so that the random literal has the value FALSE at every node. increase In conclusion, the added random variable plays a role in selecting the path through which unit propagation occurs among the two paths branching from one node, and increases the decision level by one each time it is selected. The CNF formula generation method using modular random encapsulation is summarized as follows.
(Method 2). CNF formula generation by modular random encapsulation(Method 2). CNF formula generation by modular random encapsulation
1. (Method 1)에서 생성한 두 개의 트리 중에서 하나의 트리를 구성하는 dominant literal들을 column 단위로 그룹을 만든 후 랜덤하게 정렬한다.1. Among the two trees created in (Method 1), the dominant literals that make up one tree are grouped by column and then randomly sorted.
2. 1번에서 만들어진 그룹에 속한 모든 literal들의 보수들을 사용하여 대응되는 그룹들을 만든 후에 랜덤하게 정렬한다.2. Create corresponding groups using the complements of all literals belonging to the group created in step 1, and then sort them randomly.
3. Distance 를 설정한다. (예: distance = column 수/2 -1)3. Set Distance. (Example: distance = number of columns/2 -1)
4. 1번에서 만든 그룹과 2번에서 만든 대응되는 그룹에서 차례로 literal들을 추출한 후에 distance 만큼 떨어진 그룹에 포함된 각각의 노드를 구성하는 두 개의 절 중에서 FALSE 값을 가지는 literal을 오른쪽에 또는 왼쪽에 또는 임의의 위치에 추가한 후에 TRUE 값을 가지는 literal은 나머지 절에 추가한다.4. After sequentially extracting literals from the group created in number 1 and the corresponding group created in number 2, among the two clauses that make up each node included in the group separated by distance, place the literal with the value FALSE on the right or left, or After being added to an arbitrary position, literals with a TRUE value are added to the remaining clauses.
5. 듀얼 원환형 이항 트리인 경우에는 또 다른 트리를 이용해서 1-4과정을 실행한다.5. In the case of a dual toroidal binomial tree, perform steps 1-4 using another tree.
6. 모든 노드에서 절들을 추출한 후에 각각의 변수들의 역할을 확인 할 수 없도록 하기 위해서 하나의 절을 구성하는 3개의 literal들을 랜덤하게 재정렬한다6. After extracting clauses from all nodes, the three literals that make up one clause are randomly rearranged to prevent the role of each variable from being confirmed.
이하 원환형 이항 트리를 모듈러 랜덤 캡슐화해서 생성된 3-SAT의 특성을 살펴보기로 한다. Below, we will look at the characteristics of 3-SAT generated by modular random encapsulation of a toroidal binomial tree.
우리는 indistinguishable 공간으로써 expressional equality, geometric equality를 만족시키는 원환형 이항 트리와 directional equality의 특성 까지도 만족시키는 듀얼 원환형 이항 트리를 생성했다. 트리 프레임을 만든 후에 각각의 노드에 literal들을 랜덤하게 배치했다. 따라서 알고리즘의 관점에서 literal들을 구분할 요소를 가지지 못함으로써 decision assignment를 위해서 literal들을 선택할 때 랜덤하게 선택하는 것이 유일한 방법이 된다. 이때 반복되는 실행으로부터 의미 있는 정보를 누적시킬 수 있다면 해를 구하는데 필요한 calculation step 수를 줄일 수 있으므로 정보가 누적되는지를 확인할 필요가 있다. We created a toroidal binomial tree that satisfies expressional equality and geometric equality as an indistinguishable space, and a dual toric binomial tree that even satisfies the properties of directional equality. After creating a tree frame, literals were randomly placed at each node. Therefore, from the perspective of the algorithm, there is no element to distinguish literals, so the only way to select literals for decision assignment is to select them randomly. At this time, if meaningful information can be accumulated from repeated execution, the number of calculation steps required to find the solution can be reduced, so it is necessary to check whether the information is accumulated.
Lemma 1. Decision literal들이 랜덤하게 선정된 것이라면 반복 실행할 때마다 back-tracking 실행 횟수를 줄일 수 있는 정보가 누적되지 않는다.」 Lemma 1. If decision literals are randomly selected, information that can reduce the number of back-tracking executions is not accumulated with each repeated execution.”
Proof) Conflict가 발생되었을 때, 최종적으로 conflict 를 발생시킨 implied literal이 포함되는 절을 시작으로 관련된 절들에 resolution rule을 연속적으로 적용하면 관련된 implied variable들은 모두 제거되고 decision literal들만 남게 된다. 따라서 conflict-driven clause learning(CDCL) 알고리즘에서 새롭게 생성되는 clause는 남겨진 decision literal들의 disjunction으로 표현된다. Decision literal들이 랜덤하게 선택된 것이기 때문에 새롭게 생성된 절은 이들 중 적어도 하나는 바뀌어야 한다는 정보만을 가지게 된다. 또한 conflict 발생 시마다 특정 변수가 여러 번 decision literal로 선택되었다고 하더라도 랜덤 선택에 의한 것이므로 그 literal이 해집합에 포함될 가능성 또는 포함되지 않을 가능성을 높여준다고 가정할 수 없다. 따라서 decision assignment를 위해서 선정되는 변수들이 랜덤하게 선정된 것이라면 conflict 발생 시마다 생성된 정보들로부터 back-tracking 실행 횟수를 줄일 수 있는 정보가 누적되지 않는다.Proof) When a conflict occurs, if the resolution rule is successively applied to related clauses, starting with the clause containing the implied literal that ultimately caused the conflict, all related implied variables are removed and only decision literals remain. Therefore, in the conflict-driven clause learning (CDCL) algorithm, a newly created clause is expressed as a disjunction of the remaining decision literals. Because the decision literals are randomly selected, the newly created clause only has the information that at least one of them must be changed. In addition, even if a specific variable is selected as a decision literal multiple times whenever a conflict occurs, it cannot be assumed that it increases the possibility that the literal will or will not be included in the solution set because it is a random selection. Therefore, if the variables selected for decision assignment are randomly selected, information that can reduce the number of back-tracking executions is not accumulated from the information generated each time a conflict occurs.
변수들의 indistinguishability 특성은 이전 실행을 통해서 얻을 수 있는 정보를 최소화함으로써 back-tracking 실행 횟수를 최대로 늘려주게 됨을 알 수 있다. 또한 위의 결과는 CDCL 알고리즘에 의해서 생성된 새로운 절이 indistinguishability 특성을 가지는 문제를 해결하는 데 역할을 하지 못함을 의미하며 해를 구하기 위해서는 worst-case 모든 경우의 수만큼 back-tracking을 실행해야만 한다는 것을 의미한다.It can be seen that the indistinguishability characteristics of variables maximize the number of back-tracking executions by minimizing the information that can be obtained through previous executions. In addition, the above results mean that the new clause generated by the CDCL algorithm does not play a role in solving problems with indistinguishability characteristics, and that back-tracking must be performed as many times as the number of all worst-case cases to obtain a solution. do.
이하 싱글 원환형 이항 트리를 모듈러 랜덤 캡슐화해서 생성된 3-SAT의 특성을 살펴보기로 한다. Below, we will look at the characteristics of 3-SAT generated by modular random encapsulation of a single toroidal binomial tree.
여기서, 싱글 원환형 이항 트리를 모듈러 랜덤 캡슐링해서 생성된 3-CNF가 얼마나 많은 해를 가지는가에 대해서 살펴보자. Left shift modular random encapsulation이 실행되면 동일한 column 을 구성하는 노드들이 switching literal들이 만드는 패스에 의해서 순환루프를 형성한다. column을 구성하는 dominant literal들의 그룹을 Gj(1<=j<=m, m: column 수)로 표기하고 dominant literal들의 값을 그룹이 대표하는 값으로 표시하자. -G1은 G1에 속한 모든 dominant literal들이 FALSE 값을, G1은 G1에 속한 모든 dominant literal들이 TRUE 값을 가짐을 의미한다. 순환루프는 switching variable에 의해서 형성된 것이며 random variable들의 값이 바뀌지 않는다면 column을 구성하는 dominant variable(또는 switching variable)들은 TRUE 값과 FALSE 값을 모두 가질 수 있으므로 해집합은 basis solution인 (G1,G2,…,Gm)과 complement solution인 (-G1,-G2,…,-Gm)이외에 (G1,-G2,…,Gm),(-G1,-G2,…,Gm)등과 같은 여러 해들을 더 가질 수 있다. Here, let's look at how many solutions 3-CNF generated by modular random encapsulation of a single toroidal binomial tree has. When left shift modular random encapsulation is executed, the nodes composing the same column form a circular loop through the paths made by switching literals. Let's denote the group of dominant literals constituting the column as G j (1<=j<=m, m: number of columns) and express the value of the dominant literals as the value represented by the group. -G 1 means that all dominant literals belonging to G 1 have the value FALSE, and G 1 means that all dominant literals belonging to G 1 have the value TRUE. A circular loop is formed by a switching variable, and if the values of the random variables do not change, the dominant variables (or switching variables) constituting the column can have both TRUE and FALSE values, so the solution set is the basis solution (G 1 , G 2 ,…,G m ) and the complement solution (-G 1 ,-G 2 ,…,-G m ), (G 1 ,-G 2 ,…,G m ),(-G 1 ,-G 2 ,… There can be several more solutions such as ,G m ), etc.
순환루프는 [도 9]의 그림 (1)의 (a)와 같이 switching variable 들에 의해서 column 방향으로 형성될 뿐만 아니라 (b)와 같이 random variable 들에 의해서 row 방향으로도 형성된다. 이때 (c)와 같이 GCD(column 수, distance)=1이라면 row 방향으로의 순환루프의 길이는 column 수가 된다. 또한 level 의 크기가 k일 때 [도 9]의 (b)에서 r1은 G2그룹에 포함된 dominant literal들의 보수들 중 하나이기 때문에 r1이 d1의 보수가 될 확률은 1/k이 된다. The circular loop is not only formed in the column direction by switching variables, as shown in (a) of Figure (1) of [Figure 9], but also in the row direction by random variables, as shown in (b). At this time, if GCD (number of columns, distance) = 1 as in (c), the length of the circular loop in the row direction becomes the number of columns. Also, when the size of the level is k, in (b) of [Figure 9], r 1 is one of the complements of dominant literals included in the G 2 group, so the probability that r 1 becomes the complement of d 1 is 1/k. do.
하나의 dominant variable 값이 바뀌면 동일 변수로 만들어진 random variable과 switching variable들의 값도 같이 바뀌기 때문에 하나의 노드를 구성하는 dominant variable은 랜덤 변수가 어떤 값을 가지는 가에 따라서 TRUE 값과 FALSE 값을 모두 가질 수 있는 경우가 발생한다. [도 9]의 (a)에서 순환루프를 형성하는 G5 그룹의 값이 FALSE로 바뀌고 r1과 r2의 값이 바뀐다면, 즉, d4가 TRUE에서 FALSE로 바뀌고, r1과 r2가 각각 FALSE, TRUE에서 TRUE, FALSE로 바뀐다면, d5가 포함된 노드를 구성하는 두 절은 d5의 값에 관계없이 모두 satisfiable해지므로 d5는 TRUE와 FALSE 값을 모두 가질 수 있다. 이러한 경우에 d5를 conditional don't-care(CDC) literal로 정의한다. 하나의 CDC literal은 또 다른 CDC literal을 만든다. D5가 FALSE로 바뀌고 r3,r4의 값이 [도 9]의 (a)와 같이 바뀐다면 d6는 CDC literal이 된다. 우리는 연속적으로 관련된 랜덤 변수가 특정한 값을 가진다는 조건을 추가해가며 CDC literal들의 수를 늘릴 수 있다. 이러한 과정 중에 랜덤 변수들이 특정한 값을 가진다는 조건을 모두 만족시키는 경우가 발생한다면 모든 CDC literal들은 TRUE 값과 FALSE 값을 모두 가질 수 있는 상태가 되며 위의 경우에 CDC literal들이 이루는 집합을 don't-care group(DCG)으로 정의한다.When the value of one dominant variable changes, the values of random variables and switching variables made of the same variable also change, so the dominant variable that makes up one node can have both TRUE and FALSE values depending on what value the random variable has. There are cases where it happens. If the value of the G 5 group forming the circular loop in (a) of [Figure 9] changes to FALSE and the values of r 1 and r 2 change, that is, d 4 changes from TRUE to FALSE, and r 1 and r 2 If changes from FALSE and TRUE to TRUE and FALSE, respectively, the two clauses that make up the node containing d 5 become satisfiable regardless of the value of d 5 , so d 5 can have both TRUE and FALSE values. In this case, d 5 is defined as a conditional don't-care (CDC) literal. One CDC literal creates another CDC literal. If D 5 changes to FALSE and the values of r 3 and r 4 change as shown in (a) of [Figure 9], d 6 becomes a CDC literal. We can increase the number of CDC literals by successively adding the condition that the related random variable has a specific value. During this process, if all conditions for random variables to have specific values are satisfied, all CDC literals can have both TRUE and FALSE values, and in the above case, the set of CDC literals is -Defined as care group (DCG).
DCG 개념은 row 방향으로 순환루프가 형성되었을 때에도 적용된다. [도 9]의 (b)는 d1에서 시작해서 d2, d3로 순환루프가 형성되는 것을 보여준다. d3를 포함하는 절에서 그림과 같이 순환 루프를 만드는 패스가 만들어지기 위해서는 r1과 r2의 값이 바뀌지 않아야만 한다. r1과 r2의 값은 위의 값들을 추출한 column의 decision variable들의 값에 따라서 달라질 수 있다. 따라서 (Method 2)에서 distance를 2로 설정하면 G2에 포함된 dominant variable들 중에 r1, r2의 값을 바꾸지 않는 변수들만 선택적으로 CDC literal에 속할 수 있다. d4의 값이 r1,r2의 값을 바꾸지 않는다면 그리고 d2의 값이 r3,r4의 값을 바꾸지 않는다면 d4는 CDC variable이 된다. d4의 값이 FALSE로 바뀌면 d5는 d5가 속한 노드의 랜덤 변수들이 값이 바뀌지 않는다면 CDC literal이 된다. d6와 d7도 순환루프를 형성하는 랜덤 변수들의 값을 바꾸지 않는다면 CDC literal이 된다.The DCG concept also applies when a circular loop is formed in the row direction. (b) of [Figure 9] shows that a circular loop is formed starting from d 1 to d 2 and d 3 . In order to create a pass that creates a circular loop as shown in the figure in the clause containing d 3 , the values of r 1 and r 2 must not change. The values of r 1 and r 2 may vary depending on the values of the decision variables of the column from which the above values were extracted. Therefore, if the distance is set to 2 in (Method 2), only variables that do not change the values of r 1 and r 2 among the dominant variables included in G 2 can optionally belong to the CDC literal. If the value of d 4 does not change the values of r 1 and r 2 and if the value of d 2 does not change the values of r 3 and r 4 , d 4 becomes a CDC variable. When the value of d 4 changes to FALSE, d 5 becomes a CDC literal if the random variables of the node to which d 5 belongs do not change their values. d 6 and d 7 also become CDC literals if the values of the random variables forming the circular loop are not changed.
순환루프가 형성되면 DCG의 크기를 늘리거나 줄여서 임의의 크기의 DCG를 만들 수 있으며 하나의 순환루프가 형성되면 DCG의 크기가 얼마나 증가할 수 있는지는 random literal들이 어떻게 분포되어 있느냐에 따라서 결정된다. 우리는 Left shift modular 방식에서 random literal들이 FALSE 값을 가지는 경우는 좌측에 TRUE 값을 가지는 경우는 우측에 배치했다. 그러나 dominant literal의 값이 바뀌면 같은 변수로 만들어진 random literal의 값도 바뀌게 된다. Random literal들 각각은 랜덤하게 배치했으므로 dominant literal의 값이 바뀜으로써 동일한 변수로 만들어진 random literal의 값이 바뀌는 위치도 랜덤하게 된다. 따라서 DCG의 크기와 개수는 각각의 instance들마다 달라진다. When a circular loop is formed, the size of the DCG can be increased or decreased to create a DCG of arbitrary size. Once a circular loop is formed, how much the size of the DCG can increase is determined by how the random literals are distributed. In the left shift modular method, random literals with a FALSE value are placed on the left, and those with a TRUE value are placed on the right. However, if the value of the dominant literal changes, the value of the random literal created with the same variable also changes. Since each random literal is randomly placed, as the value of the dominant literal changes, the location where the value of the random literal created with the same variable changes also becomes random. Therefore, the size and number of DCGs vary for each instance.
하나의 트리에서 수많은 DCG 들이 형성될 수 있으므로 dual solution 이외의 많은 해를 가질 수 있다. 얼마나 많은 해를 가지는가는 SAT Solver가 전수조사로 패스워드를 찾아내는 방법을 쓸 때 얼마나 많은 시간이 소요되는가를 결정한다. Exponentially-many solution을 가지고 있다는 증명은 쉽지 않으나 sub-exponentially many solution을 가지고 있다는 것은 아래의 Lemma 2로 쉽게 증명된다.Since numerous DCGs can be formed in one tree, there can be many solutions other than the dual solution. How many solutions it has determines how much time it takes the SAT Solver to find passwords through exhaustive searches. It is not easy to prove that there are exponentially many solutions, but that there are sub-exponentially many solutions is easily proven using Lemma 2 below.
Lemma 2. 싱글 원환형 이항 트리를 Left shift 모듈러 랜덤 캡슐링해서 생성된 3-CNF는 적어도 sub-exponentially many solution을 가진다. Lemma 2. 3-CNF generated by left shift modular random encapsulation of a single toroidal binomial tree has at least sub-exponentially many solutions.
Proof) Basis solution에서 변수들의 값이 바뀌어서 다른 해를 가지는 경우를 생각해보자. 랜덤 변수를 추출한 dominant literal 그룹 값은 바뀌지 않고 랜덤 변수가 할당된 dominant literal 그룹의 변수 값이 모두 바뀌는 경우를 생각해보자. Switching variable을 따라서 column 방향으로 순환루프가 형성되므로 순환루프를 형성하는 모든 literal들의 값이 동시에 바뀌더라도 전체 CNF의 satisfiability는 유지된다. 그러므로 column 수를 m라고 하면 적어도 2m/2개 만큼의 서로 다른 해를 만들 수 있다. Level 수와 column 수가 동일하다면 m2=n(n: 입력변수의 개수)의 관계를 가진다. 따라서 m은 n의 fractional power로 표현된다. 그러므로 위의 값은 sub-exponential number가 되므로 적어도 sub-exponentially many solution을 가진다.」Proof) Let's consider a case where the values of the variables in the basis solution change and the solution is different. Consider a case where the value of the dominant literal group from which the random variable is extracted does not change, but all variable values of the dominant literal group to which the random variable is assigned change. Since a circular loop is formed in the column direction along the switching variable, the satisfiability of the entire CNF is maintained even if the values of all literals forming the circular loop change simultaneously. Therefore, if the number of columns is m, at least 2 m/2 different solutions can be created. If the number of levels and the number of columns are the same, there is a relationship of m 2 =n (n: number of input variables). Therefore, m is expressed as the fractional power of n. Therefore, the above value is a sub-exponential number, so there are at least sub-exponentially many solutions.”
위의 결과는 SAT Solver가 다항시간 안에 해를 전수 조사해서 패스워드를 찾는 것을 불가능하게 만든다. The above result makes it impossible for the SAT Solver to find the password by examining all solutions in polynomial time.
다항시간 안에 전수조사가 불가능하므로 SAT Solver가 3-CNF의 해를 구하는 것만으로는 암호해독이 불가능하고 basis solution을 찾아야만 한다. 이때 basis solution을 찾는 행위는 트리 구조를 조사하는 행위가 된다. Since it is impossible to conduct a complete search in polynomial time, decryption is not possible just by the SAT solver finding the solution to 3-CNF, and a basis solution must be found. At this time, the act of finding the basis solution becomes the act of examining the tree structure.
먼저 basis solution을 찾는 경우와 basis solution이 아닌 다른 해를 찾는 경우에 해를 찾는 시간을 비교해보자. 우리는 left shift modular 방식에서 하나의 노드를 구성하는 두 개의 절에 랜덤 변수를 할당할 때 basis solution에서 FALSE 값을 가지는 랜덤 변수를 왼쪽으로 삽입했다. 따라서 basis solution인 경우에는 적어도 트리 레벨 수 이상 크기의 순환루프가 형성되지만 다른 해일 경우에는 순환루프의 길이가 더 길어질 수도 있고 더 짧아질 수도 있다. 다른 해인 경우에는 shift modular 방식이 아닌 free modular 방식을 사용한 경우에 해당한다. 따라서 basis solution과는 다른 형태의 순환루프를 가진다. 이것은 basis solution과 basis solution이 아닌 해는 해를 찾는 시간이 다르다는 것을 의미한다. First, let's compare the time to find a solution between finding a basis solution and finding a solution other than the basis solution. When assigning random variables to two clauses constituting one node in the left shift modular method, we inserted a random variable with a FALSE value to the left in the basis solution. Therefore, in the case of a basis solution, a circular loop with a size of at least the number of tree levels is formed, but in other solutions, the length of the circular loop may be longer or shorter. In other years, this corresponds to the case of using the free modular method rather than the shift modular method. Therefore, it has a different type of circulation loop than the basis solution. This means that the time to find a solution is different for a basis solution and a non-basis solution.
이제, basis solution을 찾는 방법을 생각해보자. Modular random encapsulation에 의해서 생성된 3-CNF formula는 추가된 랜덤 변수들의 값이 바뀌지 않는다면 basis solution에서 하나의 변수가 값이 바뀌면 적어도 트리 레벨 수 이상의 변수들의 값이 동시에 바뀌어야만 satisfiability가 유지된다는 특징을 가진다. 순환루프를 만드는 패스들은 랜덤 변수가 FALSE 값을 가지는 절에서 생성된다. 우리는 left shift modular 방식에서 하나의 노드를 구성하는 두 개의 절에 랜덤 변수를 할당할 때 basis solution을 기준으로 랜덤 변수가 FALSE 값을 가지는 위치를 왼쪽으로 설정했다. 따라서 basis solution이 아닌 다른 해일 경우에는 basis solution과는 다른 형태의 순환루프를 가진다. (Method 1)에서 우리는 원환형 이항 트리라는 structure에 dominant literal들이 들어갈 공간을 마련해 놓고 그 공간에 랜덤하게 literal들을 배치했다. 그런 후에 (Method 2)에서 modular random encapsulation 기법으로 랜덤 변수들을 추가했다. 이때 랜덤 변수들과 dominant variable들은 서로 다른 그룹에서 추출되었으므로 서로 구분될 수 있을 가능성을 남긴다. 하나의 절은 dominant variable, switching variable, random variable로 구성된다. 변수들을 구분하려는 시도는 변수들의 역할을 찾는 것이며 이것은 트리 구조를 파악하려는 시도가 된다. 동일한 역할을 하는 literal들은 하나의 그룹에서 랜덤하게 뽑아서 배치했으므로 변수들을 서로 구분하기 위해서는 변수들이 어느 그룹에 속하는지를 확인해야 한다. 우리는 column 단위로 변수들을 배치해서 그룹을 만들었으며 가장 먼 그룹의 dominant variable들과 그들의 보수를 추출해서 random variable로 사용했다. 따라서 random literal들의 그룹을 찾기 위해서는 알고리즘은 각각의 column에 속한 변수들로 이루어진 부분집합을 찾을 수 있어야하며 위의 과정은 column 그룹이 만드는 순환루프를 찾는 과정이 된다. Left shift modular random encapsulation이 실행되었을 때 column 그룹이 만드는 순환루프를 찾을 확률은 아래와 같이 구해진다. Now, let's think about how to find the basis solution. The 3-CNF formula generated by modular random encapsulation has the characteristic that if the values of the added random variables do not change, if the value of one variable in the basis solution changes, the values of at least the variables at least the number of tree levels must change simultaneously to maintain satisfiability. . Passes that create circular loops are created in clauses where the random variable has the value FALSE. When we assign a random variable to two clauses that make up one node in the left shift modular method, we set the position where the random variable has a FALSE value to the left based on the basis solution. Therefore, if the solution is other than the basis solution, it has a different type of circular loop than the basis solution. In (Method 1), we prepared a space for dominant literals in a structure called a circular binomial tree and randomly placed literals in that space. Then, random variables were added using the modular random encapsulation technique in (Method 2). At this time, since the random variables and dominant variables were extracted from different groups, there is a possibility that they can be distinguished from each other. One clause consists of a dominant variable, switching variable, and random variable. The attempt to distinguish between variables is to find their roles, which is an attempt to understand the tree structure. Since literals that play the same role are randomly selected and placed in one group, you must check which group the variables belong to in order to distinguish them from each other. We created groups by arranging variables in column units, and extracted the dominant variables and their complements from the furthest group and used them as random variables. Therefore, in order to find a group of random literals, the algorithm must be able to find a subset of variables belonging to each column, and the above process becomes a process of finding the circular loop created by the column group. When left shift modular random encapsulation is executed, the probability of finding a circular loop created by a column group is calculated as follows.
Lemma 3. 트리 레벨이 k일 때 DPLL 알고리즘으로 column 그룹을 찾을 확률은 1/(3x6k-2)이 된다. Lemma 3. When the tree level is k, the probability of finding a column group using the DPLL algorithm is 1/(3x6 k-2 ).
Proof) column 그룹을 찾기 위해서 임의의 literal을 decision literal로 선택하고 선택된 literal에 FALSE 값을 할당한다. 해가 duality의 특성을 가지므로 위의 설정은 항상 올바른 설정이 된다. 따라서 처음 하나의 decision literal을 올바로 선택할 확률은 1이 된다. 하나의 literal을 FALSE로 가정함으로써 duality를 가지는 한 쌍의 해집합에서 찾고자 하는 해는 선택된 literal이 FALSE 값을 가지는 해가 되며 이것은 basis solution이 될 수도 있고 complement solution이 될 수도 있다. CNF formula에서 FALSE 값을 할당한 literal을 지운다. 그러면 2개의 literal만 가지는 절이 [도 10]과 같이 TRUE tree와 FALSE tree에서 각각 3개씩 생성된다. 6개의 절중에서 지워진 literal은 각각 2번씩 dominant literal, switching literal, random literal의 역할을 한다. Proof) To find a column group, select a random literal as a decision literal and assign a FALSE value to the selected literal. Since the solution has the characteristic of duality, the above settings are always correct. Therefore, the probability of correctly selecting the first decision literal is 1. By assuming that one literal is FALSE, the solution to be found in a pair of solution sets with duality is the solution in which the selected literal has the value of FALSE, and this can be a basis solution or a complement solution. Delete literals assigned a FALSE value in the CNF formula. Then, three clauses with only two literals are created in the TRUE tree and FALSE tree, as shown in [Figure 10]. Among the six clauses, the erased literal plays the role of a dominant literal, switching literal, and random literal twice each.
[도 10]에서 사각형으로 표시된 것은 처음 선택되어 지워진 decision literal을 의미한다. di로 표시한 것은 i 번째 올바르게 선택된 decision literal을 ii로 표시한 것은 i번째 implied literal을 의미한다. [도 10]의 (a)는 FALSE tree에서 dominant literal 역할을 한 decision literal 2개가 지워진 것을 표시한 것이다. Dominant literal을 그래프로 표시할 때는 동일한 두 개의 literal을 하나로 표시한 것임에 주의하자. (b)는 같은 tree에서 decision literal이 random literal 역할을 한 경우이며 (c)는 TRUE tree에서 switching literal 역할을 한 2개의 decision literal이 지워진 것을 표시한 것이며 (d)는 같은 tree에서 decision literal이 random literal 역할을 한 경우를 나타낸다. 위의 4가지 경우 모두 후속적인 decision literal들을 올바르게 선택하면 [도 10]에 나타낸 것처럼 column 그룹이 만드는 순환 패스가 찾아진다. In [Figure 10], the rectangle indicates the decision literal that was first selected and deleted. Marked with d i means the ith correctly selected decision literal and marked with i means the ith implied literal. (a) in [Figure 10] shows that two decision literals that played a dominant literal role in the FALSE tree have been deleted. When displaying a dominant literal as a graph, keep in mind that two identical literals are displayed as one. (b) is a case where a decision literal played a random literal role in the same tree, (c) shows that two decision literals that played a switching literal role in a TRUE tree were deleted, and (d) is a case where a decision literal played a random role in the same tree. Indicates the case where a literal role is used. In all four cases above, if the subsequent decision literals are selected correctly, the circular path created by the column group is found, as shown in [Figure 10].
두 트리는 확률을 구하기 위해서 동일한 방법이 적용된다. 따라서 트리 종류와 상관없이 2개의 literal로 이루어진 3개의 절이 생성된다. 이때 우리는 많은 해들 중에서 패스워드를 찾는 과정이기 때문에 유일해로 가정할 수 있다. 따라서 decision literal의 값이 해집합인 패스워드에서 FALSE 값을 가지지 않는다면 conflict가 발생하거나 다른 해를 찾게 된다. 패스워드를 찾기 위해서 순환 패스를 따라가는 올바른 선택을 할 가능성은 [도 10]의 (a)와 같이 한 노드를 이루는 두 개의 literal로 구성된 두 개의 절중에 random literal이 FALSE 값을 가지는 절을 선택하고 2개의 literal 중에서 랜덤 literal 을 선택해서 FALSE 값을 할당하는 것이며 위의 확률은 1/3 x 1/2 가 된다. 또 하나의 방법은 [도 10]의 (b)와 같이 지워진 literal이 random literal로 사용된 절을 선택한 후에 dominant literal과 switching literal 중에서 FALSE 값을 가지는 것을 선택하는 방법이고 확률은 1/3 x 1/2 가 된다. 위의 두 선택은 서로 다른 두 개의 순환루프에서 한번씩 unit propagation을 진행시킨다. 따라서 두 개의 decision literal, d1과 d2를 연속적으로 올바로 선택할 확률은 1/3이 된다.The same method is applied to both trees to calculate the probability. Therefore, regardless of the tree type, three clauses consisting of two literals are created. At this time, since we are in the process of finding the password among many solutions, we can assume that it is the only solution. Therefore, if the value of the decision literal does not have the value FALSE in the solution set password, a conflict occurs or another solution is found. The possibility of making the right choice by following the circular path to find the password is as shown in (a) of [Figure 10], selecting the clause in which the random literal has the value FALSE among the two clauses consisting of two literals forming one node, and selecting the two clauses. A random literal is selected from among literals and assigned a FALSE value, and the above probability is 1/3 x 1/2. Another method is to select the clause in which the erased literal was used as a random literal, as shown in (b) of [Figure 10], and then select the one with a FALSE value among the dominant literal and switching literal, and the probability is 1/3 x 1/ It becomes 2. The above two options proceed with unit propagation once in two different circular loops. Therefore, the probability of correctly selecting two decision literals, d 1 and d 2 , in succession is 1/3.
d1과 d2를 선택하면 찾고자 하는 그룹을 형성하는 하나의 노드가 선택된다. d2를 선택해서 FALSE 값을 할당하면 unit clause가 생성되고 implied literal에 TRUE 값을 할당한 후에 implied literal의 보수를 CNF formula에서 지우면 또 다시 2개의 literal로 이루어진 절들이 하나의 트리에서 최대 3개가 생성된다. 이전에 값이 할당된 decision literal과 implied literal들에 의해서 3개의 절들 중에서 지워지는 절들이 몇 개인가에 따라서 확률이 달라진다. 모듈러 랜덤 캡슐링을 통해서 랜덤변수들과 dominant variable들을 겹치지 않게 배치했으므로 트리의 레벨만큼 propagation되는 동안에는 지워지는 절들이 발생하지 않는다. 따라서 6개의 literal 중에서 자신의 column 그룹에 속하는 FALSE 값을 가지는 literal은 1개 (d3)이므로 올바른 decision assignment에 의해서 unit clause를 만들 확률은 1/6이 된다. 따라서 d1~d3를 찾을 확률은 1/(3x6) 이 되며 conflict가 발생하지 않고 k번 올바른 선택을 해서 dk까지 찾을 확률은 1/(3x6k-2)가 된다. k개의 올바른 decision literal들이 찾아지면 처음으로 하나의 절이 지워지며 unit clause를 형성하는 implied literal 또는 implied literal들의 보수의 그룹이 찾고자 하는 column 그룹이 된다.」Selecting d 1 and d 2 selects one node that forms the group you are looking for. If you select d 2 and assign a FALSE value, a unit clause is created, and after assigning a TRUE value to the implied literal, if you delete the complement of the implied literal from the CNF formula, up to 3 clauses consisting of 2 literals can be created in one tree. is created. The probability varies depending on how many of the three clauses are erased by decision literals and implied literals that were previously assigned values. Because random variables and dominant variables are placed without overlapping through modular random encapsulation, deleted clauses do not occur during propagation to the level of the tree. Therefore, among the 6 literals, there is only 1 literal (d 3 ) with the value FALSE that belongs to its column group, so the probability of creating a unit clause through correct decision assignment is 1/6. Therefore, the probability of finding d 1 ~ d 3 is 1/(3x6), and the probability of finding d k by making the correct choice k times without conflict is 1/(3x6 k-2 ). When k correct decision literals are found, one clause is deleted for the first time, and the implied literal or group of complements of implied literals forming the unit clause becomes the column group to be found.”
Theorem 1. 트리 구조를 파악하려는 새로운 알고리즘이 개발된다고 하더라도 하나의 column 을 형성하는 변수들의 그룹을 찾기 위해서는 적어도 worst-case sub-exponential calculation step 수를 필요로 한다. Theorem 1. Even if a new algorithm is developed to understand the tree structure, at least the number of worst-case sub-exponential calculation steps is required to find a group of variables forming one column.
Proof) Lemma 3에 의해서 트리 레벨이 k일 때 column 그룹을 찾을 확률은 1/(3x6k-2)의 값이 된다. 가로 방향으로 k 크기의 순환루프가 형성되기 위해서는 column 수는 k 보다는 크거나 같아야 하므로 column 수를 ck(c>=1), 트리 레벨 수를 k 로 놓으면 n=ck2가 된다. 따라서 k 는 n 의 fractional power 로 표현되므로 SAT solver의 back-tracking 실행 횟수는 worst-case sub-exponential calculation step 수를 필요로 한다.」Proof) According to Lemma 3, when the tree level is k, the probability of finding a column group is 1/(3x6 k-2 ). In order to form a circular loop of size k in the horizontal direction, the number of columns must be greater than or equal to k, so if the number of columns is ck(c>=1) and the number of tree levels is k, n=ck 2 . Therefore, k is expressed as the fractional power of n, so the number of back-tracking executions of the SAT solver requires the number of worst-case sub-exponential calculation steps.”
상기 예에서는 left shift modular의 경우에 해당 했으나 right shift modular의 경우에도 순환루프가 우하방향으로 형성되는데 앞에서 설명한 것처럼 이것은 트리를 표현한 방식 때문이며 left shift인 경우는 왼쪽에 right shift인 경우는 오른쪽 방향으로 순환루프가 형성된다. 따라서 right shift인 경우에도 Lemma 2, Lemma 3 및 Theorem 1이 동일하게 성립한다. Dominant literal과 switching literal이 어떤 값을 가지는가와 관계없이 FALSE 값을 가지는 random literal이 왼쪽, 오른쪽 중에서 어느 곳에 위치하는가에 따라서 순환루프가 다르게 형성된다. 하나의 column 그룹에 속하는 literal들을 랜덤하게 뽑아서 배치했으므로 FALSE 값을 가지는 random literal의 위치가 해를 찾기 위한 유일한 정보가 된다. 이때 만약 free modular random encapsulation을 실행한다면 FALSE 값을 가지는 literal의 위치도 랜덤하게 선정되므로 서로 다른 두 solution을 구분할 방법이 없어지게 된다. 따라서 SAT Solver가 찾은 해가 패스워드인지를 확인할 방법이 없으므로 해를 찾는 것 자체가 무의미해진다. 그러나 랜덤 변수의 위치에 따라서 순환루프의 길이가 달라지므로 free modular의 경우에 Lemma 2를 유도하는 것은 쉽지 않다. Left shift, right shift, free modular의 경우에 어떤 방식으로 캡슐링을 하더라도 평균적으로 해의 개수가 같을 것이며 평균적인 해를 찾는 어려움도 같을 것이라고 예측되지만 이것을 증명하기 위해서 더 연구할 필요가 있다. 후술할 듀얼 원환형 이항 트리의 경우에 shift modular 와 free modular의 두 경우에 있어서 해를 찾는 어려움이 같다는 실험결과는 위의 예측이 맞을 것이라는 것을 뒷받침해준다.In the above example, it corresponds to the case of left shift modular, but also in the case of right shift modular, a circular loop is formed in the downward and right direction. As explained previously, this is due to the way the tree is expressed. In the case of left shift, it circulates to the left, and in the case of right shift, it circulates to the right. A loop is formed. Therefore, even in the case of right shift, Lemma 2, Lemma 3, and Theorem 1 hold equally. Regardless of the values of the dominant literal and the switching literal, a circular loop is formed differently depending on whether the random literal with a FALSE value is located on the left or right. Since the literals belonging to one column group are randomly selected and placed, the location of the random literal with a FALSE value becomes the only information for finding the solution. At this time, if free modular random encapsulation is executed, the location of the literal with the value FALSE is also randomly selected, so there is no way to distinguish between the two different solutions. Therefore, there is no way to check whether the solution found by the SAT Solver is the password, so finding the solution itself becomes meaningless. However, since the length of the circular loop varies depending on the location of the random variable, it is not easy to derive Lemma 2 in the case of free modular. In the case of left shift, right shift, and free modular, it is predicted that the average number of solutions will be the same regardless of the encapsulation method, and the difficulty of finding the average solution will be the same, but further research is needed to prove this. In the case of a dual toroidal binomial tree, which will be described later, the experimental result showing that the difficulty of finding a solution in the two cases of shift modular and free modular is the same supports that the above prediction is correct.
이하 듀얼 원환형 이항 트리에 모듈러 랜덤 캡슐화해서 생성된 3-SAT의 특성을 살펴보기로 한다. Below, we will look at the characteristics of 3-SAT generated by modular random encapsulation in a dual toroidal binomial tree.
듀얼 원환형 이항 트리는 두 트리가 변수들을 서로 공유한다. 양쪽 트리에서 동일한 literal들로 형성된 DCG가 만들어지고 그 그룹의 변수들의 집합을 G1으로 나머지 변수들의 집합을 G2로 표현하면 basis solution은 (G1,G2),complement solution은 (-G1,-G2)이 되며 위의 두 해 이외에 (-G1,G2)와 (G1,-G2)를 더 가질 수 있다. 그러나 Modular random encapsulation에 의해서 생성된 3-CNF formula는 basis solution에서 하나의 변수의 값이 바뀌면 적어도 트리 레벨 수 이상의 변수들의 값이 동시에 바뀌어야만 satisfiability가 유지된다는 특징은 듀얼 원환형 이항 트리를 이용해서 3-CNF를 만들 때 여러 해가 존재할 확률을 현격히 떨어뜨린다.In a dual toroidal binomial tree, the two trees share variables with each other. If a DCG formed by the same literals is created in both trees and the set of variables in the group is expressed as G 1 and the set of remaining variables is expressed as G 2 , the basis solution is (G 1 ,G 2 ) and the complement solution is (-G 1 ,-G 2 ), and in addition to the above two solutions, there can be additional solutions such as (-G 1 ,G 2 ) and (G 1 ,-G 2 ). However, the 3-CNF formula generated by modular random encapsulation has the characteristic that satisfiability is maintained only when the values of at least the number of tree levels change when the value of one variable changes in the basis solution. -When creating a CNF, the probability of multiple solutions existing is significantly reduced.
여기서 우리의 목적은 dual solution이외의 해를 가질 확률의 최대값을 찾는 것이다. Lemma 2에 의해서 하나의 트리에는 적어도 sub-exponentially many DCG들이 존재한다. 두 개의 트리 중에서 어느 것을 선택해도 논리 전개에서는 동일한 결과를 가져오므로 편의상 TRUE tree에서 수많은 DOG 중에서 하나를 선택했다고 가정하자. 이때 선택된 DCG를 형성하는 모든 변수들이 FALSE tree에서도 DCG를 형성하면 dual solution 이외의 해가 생성된다. TRUE tree에서 추출한 DCG에 포함된 모든 literal들이 FALSE tree에서 DCG를 만들기 위해서는 하나의 순환루프가 만들어지고 순환루프를 형성하는데 관여되지 않은 모든 literal들이 CDC literal들이 되어야만 한다. 따라서 전체 확률은 FALSE tree에서 순환루프가 형성될 확률과 뽑혀진 DCG를 구성하는 남은 literal들이 모두 CDC literal이 될 확률의 곱으로 표현된다. 그러므로 dual solution이외의 해를 가질 확률은 TRUE tree에서 뽑혀진 DCG를 형성하는 literal들의 일부가 FALSE tree에서 순환루프를 만들 확률의 최대값보다는 작다. 우리는 순환루프의 최소길이가 트리 레벨이 되도록 랜덤 변수들을 배치했다. 따라서 트리 레벨의 크기를 k라고 한다면 FALSE tree에서 생성될 수 있는 순환루프의 최소 길이는 k가 된다.Our goal here is to find the maximum probability of having a solution other than the dual solution. According to Lemma 2, there are at least sub-exponentially many DCGs in one tree. No matter which of the two trees is selected, the logical expansion results in the same result, so for convenience, let's assume that one of the numerous DOGs is selected from the TRUE tree. At this time, if all variables forming the selected DCG form a DCG in the FALSE tree, a solution other than the dual solution is generated. In order for all literals included in the DCG extracted from the TRUE tree to create a DCG from the FALSE tree, a circular loop is created and all literals not involved in forming the circular loop must become CDC literals. Therefore, the overall probability is expressed as the product of the probability that a circular loop will be formed in the FALSE tree and the probability that all remaining literals constituting the extracted DCG will be CDC literals. Therefore, the probability of having a solution other than the dual solution is smaller than the maximum probability that some of the literals forming the DCG extracted from the TRUE tree create a circular loop in the FALSE tree. We placed the random variables so that the minimum length of the circular loop is the tree level. Therefore, if the size of the tree level is k, the minimum length of a circular loop that can be created in a FALSE tree is k.
먼저 순환루프를 만들 수 있는 확률을 구해보자. TRUE 트리에서 특정 변수가 순환루프를 만드는 모든 DCG 들의 집합에서 하나를 추출한 후에 dominant variable들의 값을 보수로 바꾸어서 FALSE tree에 대입한다고 가정하자. dual solution 이외의 해를 가지기 위해서는 FALSE tree가 satisfiable해야 한다. FALSE tree가 satisfiable하려면 추출된 DCG의 크기에 상관없이 특정 변수를 시작으로 적어도 k개의 길이를 가지는 연결된 패스가 형성되어야만 한다. First, let’s find the probability of creating a circular loop. Assume that in the TRUE tree, a specific variable extracts one from the set of all DCGs that create a circular loop, then converts the values of the dominant variables into their complements and assigns them to the FALSE tree. To have a solution other than the dual solution, the FALSE tree must be satisfiable. FALSE For the tree to be satisfiable, a connected path of at least k lengths must be formed starting from a specific variable, regardless of the size of the extracted DCG.
Column 방향 순환 패스를 만들기 위해서는 랜덤 변수들은 값이 바뀌지 않아야 하고 switching 변수들은 값이 바뀌어야만 한다. 추출된 DCG의 크기가 m일 때 랜덤 변수가 값이 바뀌지 않을 확률은 (n-m)/n이며 switching 변수가 값이 바뀔 확률은 m/n 이 된다. 따라서 추출되는 DCG의 길이에 따라서 순환루프가 만들어질 확률이 달라진다. 우리는 하나의 순환루프가 형성되면 변수들을 추가하거나 삭제해서 DCG의 길이를 늘리거나 줄일 수 있음을 살펴보았다. 따라서 순환루프를 형성할 확률의 최대값은 m이 k보다 크거나 같고 n보다는 작은 모든 m에 대해서 (n-m)/n x m/n 의 최대값이 되며 m 값이 n/2일 경우에 최대 값으로 1/4을 가진다. k-1번 연속으로 위의 조건이 만족되어야 하므로 m=n/2 일 때 1/4k-1의 값을 가진다. Row 방향으로 순환패스를 만들 확률은 앞서서 설명한 것처럼 1/(k x4k-1)의 값을 가지며 두 경우는 서로 독립적이므로 순환루프를 만들 전체 확률의 최대값은 (k+1)/ (k x4k-1)이 된다. In order to create a column-directed circulation pass, the values of random variables must not change and the values of switching variables must change. When the size of the extracted DCG is m, the probability that the random variable does not change its value is (nm)/n, and the probability that the switching variable changes its value is m/n. Therefore, the probability of creating a circular loop varies depending on the length of the extracted DCG. We saw that once a circular loop is formed, the length of the DCG can be increased or decreased by adding or deleting variables. Therefore, the maximum probability of forming a circular loop is the maximum value of (nm)/nxm/n for all ms where m is greater than or equal to k and less than n, and when the value of m is n/2, the maximum value is 1. It has /4. Since the above condition must be satisfied k-1 times in a row, it has a value of 1/4 k-1 when m=n/2. The probability of creating a circular path in the row direction has a value of 1/( k k-1 ).
n개의 변수에 대해서 순환루프를 형성하는 다른 변수들은 어떤 것이 되어도 상관없으므로 각각의 변수에 대해서 독립적이다. 또한 하나의 변수는 random 변수가 순환루프를 만드는 경우와 switching 변수가 순환루프를 만드는 경우로 나누어지며 두 경우는 중복될 수 없다. 따라서 전체 확률은 모든 입력 변수들에 관한 확률의 합으로 표현되므로 dual solution 이외의 해를 가질 확률은 아리의 (수식 4)로 표현된다. The other variables that form a circular loop for n variables can be any, so they are independent for each variable. Additionally, a single variable is divided into a case where a random variable creates a circular loop and a case where a switching variable creates a circular loop, and the two cases cannot overlap. Therefore, the overall probability is expressed as the sum of probabilities for all input variables, so the probability of having a solution other than the dual solution is expressed by Ari's (Equation 4).
(수식 4)
Figure PCTKR2022014158-appb-img-000003
(Formula 4)
Figure PCTKR2022014158-appb-img-000003
(수식 4)는 TRUE tree에서 추출하는 DCG의 길이가 가변적일 때 FALSE tree에서 순환루프를 형성할 확률의 최대값을 사용했다. 따라서 a값은 FALSE tree뿐만 아니라 DCG를 추출한 TRUE tree에서도 순환루프는 유지한 채 변수들을 추가하거나 삭제해서 DCG의 길이가 변경되는 것을 허용했을 때 두 트리에서 동일한 literal들의 그룹으로 형성되는 DCG가 동시에 존재할 확률을 의미한다. (Equation 4) uses the maximum value of the probability of forming a circular loop in the FALSE tree when the length of the DCG extracted from the TRUE tree is variable. Therefore, the value a is not only in the FALSE tree, but also in the TRUE tree from which the DCG is extracted. When the length of the DCG is allowed to change by adding or deleting variables while maintaining the circular loop, DCGs formed from the same group of literals can exist at the same time in both trees. It means probability.
Lemma 4. Column 수와 distance가 서로소의 관계에 있고 column 수와 tree level이 k, 입력 변수 수가 n일 때 basis solution과 complement solution 이외의 해를 가질 확률은 2 n(k+1)/(k4k-1)보다 작다. Lemma 4. When the number of columns and distance are mutually prime, the number of columns and tree level are k, and the number of input variables is n, the probability of having a solution other than the basis solution and complement solution is 2 n(k+1)/(k4 k It is smaller than -1 ).
Proof) (수식 4)에 의해서 증명된다.」Proof) (Equation 4).”
K=20, n=400 인 경우에 위의 값은 약 1/(3.27x108)이 되므로 무시할만한 수치가 된다. 따라서 듀얼 원환형 이항 트리에 modular random encapsulation을 실행해서 생성된 3-SAT은 입력 변수 수가 충분히 크다면 basis solution과 complement solution이외의 해를 가지지 않는다고 가정할 수 있다. In the case of K=20, n=400, the above value is approximately 1/(3.27x10 8 ), so it is a negligible value. Therefore, it can be assumed that 3-SAT generated by performing modular random encapsulation on a dual toroidal binomial tree has no solutions other than the basis solution and complement solution if the number of input variables is sufficiently large.
Unique dual solution을 가지면 하나의 변수 값이 바뀌었을 때 그 영향이 모든 변수들에게 미치게 되므로 변수들을 나누어서 두 그룹으로 분리할 수 없다. 따라서 모든 변수들의 값이 확정될 때까지 얼마나 큰 decision level이 형성되는가가 해를 찾는 어려움을 결정한다.With a unique dual solution, when the value of one variable changes, the effect is felt on all variables, so the variables cannot be divided into two groups. Therefore, how large the decision level is formed until the values of all variables are confirmed determines the difficulty of finding a solution.
Lemma 5. DPLL 알고리즘으로 원환형 이항 트리를 모듈러 랜덤 캡슐링해서 생성된 3-SAT의 해를 구할 때 입력 변수 수가 n이면 평균적으로 2n/7번의 decision assignment가 실행된다. Lemma 5. When finding a solution to 3-SAT generated by modular random encapsulation of a toroidal binomial tree with the DPLL algorithm, if the number of input variables is n, on average 2n/7 decision assignments are performed.
Proof) Unit clause인 경우에는 decision assignment없이 implied assignment가 실행되므로 decision variable은 0개 증가하며 implied variable은 1개 증가한다. 두 개의 literal로 이루어진 절은 한번의 decision assignment와 한번의 implied assignment가 실행된다.In the case of a Proof) Unit clause, implied assignment is executed without decision assignment, so the decision variable increases by 0 and the implied variable increases by 1. A clause consisting of two literals executes one decision assignment and one implied assignment.
해를 구하는 어느 단계에서 k번의 decision assignment가 일어났다고 가정하자. 2개의 literal로 구성된 절에서 한번의 decision assignment이후에 후속적인 implied assignment가 실행되므로 2k개의 변수 값이 확정된다. 확정된 2k개의 decision variable들과 implied variable들에 의해서 unit clause가 생성되고 생성된 unit clause들에 포함된 변수들과 이전에 확정된 변수들이 만드는 unit clause들을 모두 합쳐서 즉 어느 시점에 생성된 모든 unit clause들 중에서 decision assignment가 일어난 절을 제외한 unit clause 개수를 a라고 가정하자. 위의 가정에 의해서 k번의 decision assignment가 일어났을 때 2k+a개의 변수들의 값이 확정된다. n개의 변수에 대해서 한 변수와 그 변수의 보수까지 합치면 총 2n가지의 literal이 생성된다. 위의 2n가지의 literal들 중에서 FALSE 값으로 확정된 literal은 2k+a개가 된다. decision variable 수가 k이며 decision assignment 이후에 생성된 unit clause 안의 implied variable 보수의 수가 k이며 이들에 의해서 생성된 unit clause를 구성하는 implied variable의 보수의 수가 a개가 된다. Let us assume that k decision assignments have occurred at some stage of finding a solution. In a clause consisting of two literals, a subsequent implied assignment is executed after one decision assignment, so the values of 2k variables are confirmed. A unit clause is created by the 2k confirmed decision variables and implied variables, and the variables included in the generated unit clauses and the unit clauses created by previously confirmed variables are combined, that is, all unit clauses created at a certain point in time. Let us assume that the number of unit clauses excluding the clause in which decision assignment occurred is a. Based on the above assumption, when decision assignment k times occurs, the values of 2k+a variables are confirmed. For n variables, if you add one variable and its complement, a total of 2n literals are created. Among the 2n literals above, there are 2k+a literals that are confirmed as FALSE. The number of decision variables is k, the number of complements of implied variables in the unit clause created after decision assignment is k, and the number of complements of implied variables constituting the unit clause created by these is a.
이때 2k+a개의 변수가 확정되었을 때 하나의 절이 unit clause가 될 확률은 3개의 literal들 중에서 두 개가 FALSE 값을 가져야하므로, 2n개의 literal들 중에서 FALSE 값으로 확정된 2k+a 개 중에서 임의의 두 개가 하나의 절에 포함될 확률이며 (수식 5)와 같이 계산된다.At this time, when 2k+a variables are confirmed, the probability of one clause becoming a unit clause is that two out of 3 literals must have the value FALSE, so among the 2k+a variables confirmed as FALSE, any two This is the probability that a dog is included in one clause and is calculated as (Equation 5).
(수식 5)
Figure PCTKR2022014158-appb-img-000004
(Formula 5)
Figure PCTKR2022014158-appb-img-000004
듀얼 원환형 이항트리가 만드는 4n개의 절 중에서 두 개의 literal이 FALSE 값을 가지는 절의 수는 2n개가 된다.Among the 4n clauses created by the dual circular binomial tree, the number of clauses in which two literals have the value FALSE is 2n.
2k+a개의 변수가 확정됐을 때 k개의 decision assignment가 행해진 unit clause들의 수는 k개가 된다. 따라서 2n개 중에서 unit clause가 될 수 있는 남아있는 절들의 수는 2n-k개가 된다. 남아있는 절 중에서 unit clause가 되는 절들의 평균 개수는 (수식 6)과 같이 계산된다.When 2k+a variables are confirmed, the number of unit clauses with k decision assignments becomes k. Therefore, among the 2n clauses, the number of remaining clauses that can be unit clauses is 2n-k. Among the remaining clauses, the average number of clauses that become unit clauses is calculated as (Formula 6).
(수식 6)
Figure PCTKR2022014158-appb-img-000005
(Formula 6)
Figure PCTKR2022014158-appb-img-000005
확정된 2k개의 변수 값의 decision variable과 implied variable에 의해서 생성되는 unit clause 개수 중에서 decision assignment이후에 생성된 unit clause들의 수를 제외한 개수를 a라고 가정했으므로 (수식 6)의 평균 값은 a와 같아져야 한다.Since the number of unit clauses generated by the decision variables and implied variables of the 2k confirmed variable values was assumed to be a, excluding the number of unit clauses created after decision assignment, the average value of (Equation 6) should be equal to a. do.
(수식 7)
Figure PCTKR2022014158-appb-img-000006
(Equation 7)
Figure PCTKR2022014158-appb-img-000006
2k+a=n이 되면 모든 변수 값이 확정되는 상태가 된다.When 2k+a=n, all variable values are confirmed.
(수식 8)
Figure PCTKR2022014158-appb-img-000007
(Equation 8)
Figure PCTKR2022014158-appb-img-000007
(n-1)/n ≒ 1로 놓고 위의 두 식으로 n과 k의 관계를 구하면 다음과 같다.If (n-1)/n ≒ 1 is set and the relationship between n and k is obtained using the above two equations, it is as follows.
(수식 9)
Figure PCTKR2022014158-appb-img-000008
(Equation 9)
Figure PCTKR2022014158-appb-img-000008
따라서 n개의 모든 변수 값이 확정될 때까지 해를 구하기 위해서는 평균적으로 2n/7번의 decision assignment가 실행된다.」Therefore, on average, 2n/7 decision assignments are performed to find a solution until the values of all n variables are confirmed.”
마지막으로 decision level 값이 정해질 때 올바른 선택으로 해를 구하기 위해서는 어느 정도의 calculation step 수가 필요한가를 확인해보자.Lastly, when the decision level value is determined, let's check how many calculation steps are needed to find the solution with the correct choice.
Lemma 6. Unique dual solution을 가진다면 decision level이 k일때 DPLL 알고리즘으로 해를 구하기 위해서는 worst-case 2k-1~3k-1번의 calculation step 수를 필요로 한다. Lemma 6. If you have a unique dual solution, to find a solution with the DPLL algorithm when the decision level is k, the number of worst-case calculation steps is 2 k-1 to 3 k-1 .
Proof) Unit clause를 만들기 위해서 처음에 하나의 literal을 FALSE로 가정하게 된다. 이때 한 쌍의 해집합에서 찾고자 하는 해는 선택된 literal이 FALSE 값을 가지는 해가 된다. Lemma 4에 의해서 unique dual solution을 가정할 수 있으므로 찾고자 하는 해는 basis solution과 complement solution 중에서 하나의 해를 찾게 된다. 따라서 DPLL 알고리즘의 입장에서는 modular random encapsulation에 의해서 생성된 3-SAT은 unique solution을 가진다고 가정할 수 있다.Proof) To create a Unit clause, one literal is initially assumed to be FALSE. At this time, the solution to be found in the pair of solution sets is the solution in which the selected literal has the value FALSE. Since a unique dual solution can be assumed by Lemma 4, the solution to be found is one of the basis solution and complement solution. Therefore, from the perspective of the DPLL algorithm, it can be assumed that 3-SAT generated by modular random encapsulation has a unique solution.
unit clause를 생성하기 위해서 Decision assignment 과정에서 하나의 literal을 선택해서 FALSE 값을 할당한다. 따라서 unique solution을 가진다면 conflict를 유발하지 않기 위해서는 선택되는 decision literal들이 해집합에서 FALSE 값을 가져야만 한다. 이때 modular random encapsulation에 의해서 생성된 3-SAT이 unique dual solution을 가진다면 한 변수의 값이 바뀌면 모든 변수들의 변수값에 영향을 주기 때문에 unit propagation이 종료되는 시점에서 모든 변수들이 추출된 decision variable 또는 implied variable들의 그룹에 속해야만 한다. To create a unit clause, select one literal during the decision assignment process and assign a FALSE value. Therefore, if you have a unique solution, the selected decision literals must have the value FALSE in the solution set to avoid causing a conflict. At this time, if the 3-SAT generated by modular random encapsulation has a unique dual solution, a change in the value of one variable affects the variable values of all variables, so at the end of unit propagation, all variables are extracted as decision variables or implied. It must belong to a group of variables.
Decision level이 k이므로 k번의 올바른 decision assignment가 실행되어야만 conflict를 유발하지 않고 해가 구해진다. 위의 확률은 다음과 같이 계산된다. 처음에 임의의 literal을 decision literal로 선택하고 선택된 literal에 FALSE 값을 할당한다. 해가 duality의 특성을 가지므로 위의 설정은 항상 올바른 설정이 된다. 따라서 처음 하나의 decision literal을 올바로 선택할 확률은 1이 된다. CNF formula에서 FALSE 값을 할당한 literal을 지운다. 그러면 2개의 literal만 가지는 절이 [도 11]과 같이 6개 생성된다. 6개의 절 중에서 지워진 literal은 각각 2번씩 dominant literal, switching literal, random literal의 역할을 한다.Since the decision level is k, only k correct decision assignments are executed to obtain a solution without causing a conflict. The above probability is calculated as follows. Initially, a random literal is selected as the decision literal and a FALSE value is assigned to the selected literal. Since the solution has the characteristic of duality, the above settings are always correct. Therefore, the probability of correctly selecting the first decision literal is 1. Delete literals assigned a FALSE value in the CNF formula. Then, 6 clauses containing only 2 literals are created as shown in [Figure 11]. Among the six clauses, the erased literal plays the role of a dominant literal, switching literal, and random literal twice each.
[도 11]에서 사각형으로 표시된 것은 지워진 decision literal을 의미한다. 이때 처음에 decision literal을 선정할 경우에는 6개의 절이 모두 남아있지만 후속적으로 decision literal과 implied literal을 선정하게 되면 이전에 선정된 decision literal의 보수 또는 implied literal 을 포함하는 절들은 두 literal에 의해서 satisfiable 조건이 성립되므로 삭제된다. 따라서 후속적으로 implied literal의 보수를 지운 절이 몇 개가 남아 있는지 알 수 없다. 6개의 절 중에서 지워진 literal은 각각 2번씩 dominant literal, switching literal, random literal의 역할을 한다. 남아있는 12개의 literal들은 각각 4번씩 dominant literal, switching literal, random literal의 역할을 한다. 이때 random literal에서 두 번, dominant literal과 switching literal에서 각각 1번씩 FALSE 값을 가진다. 따라서 하나도 안 지워진 상황이라면 12개의 literal중에서 FALSE값을 가지는 literal은 4개이므로 올바른 decision assignment를 실행할 확률은 1/3이 되며 모두 지워지고 하나의 절만 남는다면 올바른 선택을 할 확률은 남은 두 literal중 하나는 반드시 TRUE값을 가져야 하므로 1/2이 된다. 따라서 conflict를 유발하지 않고 연속적으로 k번의 올바른 decision assignment가 실행될 확률은 1/3k-1에서 1/2k-1사이의 값이 된다. 그러므로 해를 구하는데 필요로 하는 calculation step 수는 worst-case 2k-1~3k-1이 된다.」In [Figure 11], the rectangle indicates an erased decision literal. At this time, when a decision literal is initially selected, all six clauses remain, but when a decision literal and an implied literal are subsequently selected, the complement of the previously selected decision literal or the clauses containing the implied literal are satisfied with the satisfiable condition by the two literals. Since this is established, it is deleted. Therefore, it is unknown how many clauses remain in which the complement of the implied literal has been subsequently deleted. Among the six clauses, the erased literal plays the role of a dominant literal, switching literal, and random literal twice each. The remaining 12 literals play the roles of dominant literal, switching literal, and random literal 4 times each. At this time, the value is FALSE twice in the random literal and once each in the dominant literal and switching literal. Therefore, in a situation where none of the 12 literals are deleted, there are 4 literals with the value FALSE, so the probability of performing a correct decision assignment is 1/3. If all are deleted and only one clause remains, the probability of making the correct choice is that one of the remaining two literals is It must have the value TRUE, so it is 1/2. Therefore, the probability that correct decision assignments will be executed k times in succession without causing a conflict is between 1/3 k-1 and 1/2 k-1 . Therefore, the number of calculation steps required to find the solution is worst-case 2 k-1 to 3 k-1 .”
Lemma 1, Lemma 5와 Lemma 6에 의해서 아래의 Theorem 2가 유도된다. Theorem 2 below is derived from Lemma 1, Lemma 5, and Lemma 6.
Theorem 2. 듀얼 원환형 트리를 모듈러 랜덤 캡슐링해서 만들어진 3-SAT의 해를 구하기 위해서는 랜덤 선택에 의해서 decision assignment를 실행하는 back-tracking 기반의 알고리즘은 worst-case exponential calculation step 수를 필요로 한다. Theorem 2. To find the solution of 3-SAT created by modular random encapsulation of a dual toroid tree, a back-tracking-based algorithm that performs decision assignment by random selection requires the number of worst-case exponential calculation steps.
Proof) Lemma 5와 Lemma 6에 의해서 입력 변수 수가 n일 때 랜덤 선택에 의해서 해를 구하는데 필요로 하는 calculation step 수는 worst-case 22n/7-1~32n/7-1 이 된다. Lemma 1에 의해서 반복 실행할 때마다 back-tracking 실행 횟수를 줄일 수 있는 정보가 누적되지 않는다. 따라서 worst-case exponential calculation step 수를 필요로 한다.」Proof) According to Lemma 5 and Lemma 6, when the number of input variables is n, the number of calculation steps required to find a solution by random selection is worst-case 2 2n/7-1 ~3 2n/7-1 . According to Lemma 1, information that can reduce the number of back-tracking executions is not accumulated each time it is repeatedly executed. Therefore, the number of worst-case exponential calculation steps is required.”
트리구조를 파악해서 패스워드를 찾으려는 새로운 알고리즘이 만들어진다고 하더라도 싱글 원환형 이항 트리로 사용한 경우일 때 유도된 Theorem 1이 적용되며 implied assignment이후에 이전에 선정된 변수들에 의해서 삭제되고 남는 두 개의 literal로 이루어진 절들의 수가 싱글 원환형 이항 트리를 사용한 경우보다 더 많아지므로 calculation step 수는 더 늘어난다.Even if a new algorithm is created to find the password by understanding the tree structure, the derived Theorem 1 is applied when used as a single toroidal binomial tree, and after implied assignment, the two literals are deleted by previously selected variables and remain. Since the number of clauses consisting of is greater than when using a single toroidal binomial tree, the number of calculation steps increases.
Modular random encapsulation으로 생성된 3-SAT의 expressional equality와 geometric equality의 특성에 의해서 두 변수의 수식적 또는 기하학적 구분을 기반으로 하는 어떠한 알고리즘으로도 해를 찾을 수 없다. 따라서 만약 3-SAT의 해를 찾기 위한 모든 서치 알고리즘이 백트래킹 기능을 포함해야만 한다면 위의 Theorem들에 의해서 P
Figure PCTKR2022014158-appb-img-000009
NP 임이 증명된다. 앞에서 서술한 것처럼 백트래킹 기능이라 함은 변수 값에 대해서 가정하는 기능과 가정이 틀린 것을 확인할 수 있는 기능과 틀린 것이 확인되면 이전 가정했던 상태로 되돌아가서 가정된 값을 바꾸어서 다시 실행하는 기능을 의미한다. 현재의 모든 SAT solver들은 백트래킹에 기초한 DPLL 알고리즘을 기반으로 만들어졌으므로 주어진 보안강도를 맞출 수 있는 적절한 입력변수 수(패스워드의 길이)를 설정한다면 암호화에 사용 가능하다.
Due to the expressive equality and geometric equality characteristics of 3-SAT generated by modular random encapsulation, a solution cannot be found using any algorithm based on the mathematical or geometric distinction of the two variables. Therefore, if all search algorithms to find a solution to 3-SAT must include a backtracking function, P by the above theorem
Figure PCTKR2022014158-appb-img-000009
It is proven to be NP. As described earlier, the backtracking function refers to the function of making assumptions about variable values, the function of checking if the assumption is incorrect, and the function of returning to the previous assumption and executing again after changing the assumed value when it is confirmed to be incorrect. . Since all current SAT solvers are built based on the DPLL algorithm based on backtracking, they can be used for encryption if you set the appropriate number of input variables (password length) to meet the given security strength.
이하, 본 발명에 따른 생성된 3-SAT이 얼마나 해를 구하기 어려운지에 대한 실험적 검증(Experimental verification of the hardness)을 [도 12]와 [도 13]을 참조하여 설명하기로 한다. [도 12]와 [도 13]의 결과 값을 도출하기 위해 사용한 Sat Solver는 MiniSat_v1.14_cygwin이며 컴퓨터 사양은 Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz, Windows10 64bit, Ram 16GB이다.Hereinafter, the experimental verification of the hardness of the 3-SAT generated according to the present invention will be described with reference to [FIG. 12] and [FIG. 13]. The Sat Solver used to derive the results in [Figure 12] and [Figure 13] is MiniSat_v1.14_cygwin, and the computer specifications are Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz, Windows 10 64bit, Ram 16GB.
하나의 트리에 속한 DCG들은 Lemma 2에 의해서 적어도sub-exponentially-many 수를 이루므로 (수식 4)에서 a 값을 수식적으로 구하는 것은 지극히 어려우며 본 발명에서는 실험에 의해서 확인했다. row 방향 순환루프의 길이는 column 수와 distance에 의해서 결정된다. column수와 distance가 서로소의 관계에 있으면 row방향 순환루프의 길이는 column 수가 된다. 랜덤하게 패스워드를 설정한 후에 CNF formula를 생성하고 SAT solver가 CNF formula로부터 해를 찾는 실험을 했다. Since the DCGs belonging to one tree form at least sub-exponentially many numbers according to Lemma 2, it is extremely difficult to mathematically obtain the value of a in (Equation 4), and this was confirmed through experiment in the present invention. The length of the row direction circular loop is determined by the number of columns and distance. If the number of columns and the distance are relatively prime, the length of the row direction circular loop becomes the number of columns. After randomly setting the password, we created a CNF formula and conducted an experiment where the SAT solver found a solution from the CNF formula.
실험 결과에 의하면 (수식 4)에서 a 값은 입력 변수 수가 커지면 1/2에 수렴하는 것이 확인된다. 변수들이 서로 겹치지 않게 하기 위해서는 column 수를 5 이상으로 설정해야 하지만 경향을 확인하기 위해서 3과 4인 경우도 테스트했다. According to the experimental results, it is confirmed that the value of a in (Equation 4) converges to 1/2 as the number of input variables increases. In order to prevent variables from overlapping with each other, the number of columns must be set to 5 or more, but cases of 3 and 4 were also tested to check the trend.
[도 12]는 column 수와 level 수를 3부터 13까지 바꾸어가며 10 만번 실험에서 basis solution과 complement solution이외의 해를 찾은 횟수를 표시한 것이다. Distance = column 수 /2 -1 을 사용했다. k=9,n=81일 경우에 distance를 4로 하면 column수와 distance가 서로소의 관계가 되며 [도 9]의 (b)에서 보여준 row 방향의 순환루프의 길이가 9가 되지만 distance를 3으로 할 경우에는 순환루프의 길이가 3이 되어서 더 짧은 순환루프를 형성함으로써 dual solution 이외의 해를 가질 확률이 더 커진다. 확률 P = a x 2 n(k+1)/ (k x4k-1)라고 할 때 실험 결과에 의하면 a 값은 입력 변수 수가 커지면 1/2에 수렴하는 것이 확인된다. 위의 실험 결과는 Lemma 4의 이론적 결과와 일치함을 보여준다.[Figure 12] shows the number of times solutions other than the basis solution and complement solution were found in 100,000 experiments while changing the number of columns and levels from 3 to 13. Distance = number of columns /2 -1 was used. In the case of k = 9, n = 81, if the distance is set to 4, the number of columns and the distance become relatively prime, and the length of the circular loop in the row direction shown in (b) of [Figure 9] becomes 9, but the distance is set to 3. In this case, the length of the circular loop becomes 3, forming a shorter circular loop, increasing the probability of having a solution other than the dual solution. When probability P = ax 2 n(k+1)/ (k x4 k-1 ), experimental results confirm that the value of a converges to 1/2 as the number of input variables increases. The above experimental results show that they are consistent with the theoretical results of Lemma 4.
듀얼 원환형 이항 트리를 modular random encapsulation해서 만든 3-SAT 이 얼마나 풀기 어려운 문제인지를 실험적으로 확인하기 위해서 랜덤하게 패스워드를 설정한 후에 CNF formula를 생성하고 SAT solver가 CNF formula로부터 패스워드를 찾는 시간을 측정하는 실험을 했다.To experimentally check how difficult the problem 3-SAT created by modular random encapsulation of a dual toroidal binomial tree is to solve, we randomly set a password, generated a CNF formula, and measured the time the SAT solver took to find the password from the CNF formula. I did an experiment.
[도 13]의 (a)와 (b)는 column 수와 level 수를 동일하게 10~19까지 바꾸어가며 두 개의 트리 모두로부터 절들을 추출한 후 (a)는 free modular random encapsulation으로 (b)는 left shift modular random encapsulation으로 테스트한 결과이며 서로가 큰 차이를 발견할 수 없으며 입력 변수 수의 제곱에 지수함수적으로 증가함이 확인된다. (c)와 (d)는 column수를 2k+1개로 level 수를 k개로 설정하고 k값을 4~13까지 바꾸어가며 두 개의 트리 모두로부터 절들을 추출한 후 (c)는 free modular random encapsulation으로 (d)는 left shift modular random encapsulation으로 테스트한 결과이다. (a), (b)의 경우와 마찬가지로 서로가 큰 차이를 발견할 수 없으며 입력 변수 수의 제곱에 지수함수적으로 증가함이 확인된다. 위의 실험 결과는 Theorem 2의 이론적 결과와 일치함을 보여준다.In (a) and (b) of [Figure 13], clauses are extracted from both trees by changing the number of columns and levels from 10 to 19, and then (a) uses free modular random encapsulation and (b) uses left This is the result of a test using shift modular random encapsulation, and no significant difference can be found, and it is confirmed that the square of the number of input variables increases exponentially. (c) and (d) set the number of columns to 2k+1 and the number of levels to k, change the k value from 4 to 13, extract clauses from both trees, and (c) uses free modular random encapsulation ( d) is the result of testing with left shift modular random encapsulation. As in cases (a) and (b), no significant difference can be found, and it is confirmed that the square of the number of input variables increases exponentially. The above experimental results show that they are consistent with the theoretical results of Theorem 2.
듀얼 원환형 이항 트리를 사용할 경우 free modular random encapsulation 기법을 사용한 경우와 shift modular random encapsulation 기법을 사용한 경우 모두에 있어서 변수 수를 29x14=406 개로 테스트한 결과 conflicts 수가 MiniSat_v1.14에서 설정한 232을 초과하게 되는 경우를 확인했다. 이러한 경우에는 10 만초를 초과해도 해를 찾지 못했다.When using a dual toroidal binomial tree, the number of conflicts was tested with 29x14=406 variables in both the free modular random encapsulation technique and the shift modular random encapsulation technique, and the number of conflicts exceeded the 2 32 set in MiniSat_v1.14. I confirmed the case where this happens. In this case, no solution was found even after 100,000 seconds.
보안강도 128을 유지하기 위한 입력 변수 수를 다음과 같이 추정할 수 있다. 2.2Ghz를 사용해서 테스트했으므로 초당 2.2x109의 연산을 한다. 보안강도 128을 유지하려면 2128번의 연산으로도 알고리즘의 취약성을 찾을 수 없도록 해야 한다. 따라서 해를 찾는데 2128/2.2x109= 1.5x1029초 이상 소요되어야 한다. 시간 소요의 문제로 샘플 수가 10개씩뿐이 되지 않기 때문에 정확한 예상은 어렵겠으나 입력 변수 수가45x45이면 약 1030초가 소요될 것으로 그래프상에서 확인되므로 2025bits를 사용하면 보안강도 128을 맞출 수 있다. 물론 위의 보안강도는 테스트한 SAT solver를 기준으로 한 것이며 SAT solver의 성능 향상에 따라서 더 큰 bit수가 필요해질 것이다.The number of input variables to maintain security strength of 128 can be estimated as follows. Since it was tested using 2.2Ghz, it performs 2.2x10 9 calculations per second. To maintain a security level of 128, you must ensure that vulnerabilities in the algorithm cannot be found even after 2 128 operations. Therefore, it should take more than 2 128 /2.2x10 9 = 1.5x10 29 seconds to find the solution. Because the number of samples is limited to 10 due to time constraints, it is difficult to make an accurate prediction. However, if the number of input variables is 45x45, it can be seen from the graph that it will take about 10 to 30 seconds, so using 2025 bits can achieve a security level of 128. Of course, the above security strength is based on the tested SAT solver, and as the performance of the SAT solver improves, a larger number of bits will be needed.
Tree의 개수를 늘려가며 3-CNF formular를 추출한 후에 해를 찾는 시간을 측정하는 실험을 했다. TRUE tree하나에서만 CNF formula를 추출하면 각각의 column들마다 순환루프를 형성하고 서로 변수들을 공유하지 않으므로 다중해를 가진다. 따라서 dual solution이 아닌 다른 해들을 쉽게 찾았다.TRUE tree 두 개에서 절들을 추출한 경우에는 TRUE tree와 FALSE tree로 구성된 듀얼 원환형 이항 트리에서 절들을 추출한 경우와 해를 찾는 시간이 유사했다. TRUE tree 3개, 4개에서 절들을 추출한 경우에는 tree 수가 많아질수록 해를 찾는 시간이 급격히 짧아졌다. 이것은 트리의 수가 많아질수록 세 개의 literal로 구성된 (x1∨x2∨x3)∧(x1∨x2∨¬x3)와 같은 두 개의 절이 (x1∨x2) 와 같이 2개의 literal만으로 구성되는 절로 변환 가능한 경우들이 발생할 확률이 높아지기 때문이라고 해석된다. 따라서 트리를 많이 사용할수록 해를 찾는 시간은 줄어든다. 극단적으로 무수히 많은 트리로부터 절들을 추출해서 만들어진3-CNF formula는 2-CNF formula로 바꾸어질 수 있으며 conflict가 발생하지 않고 해가 구해진다. 그러므로 하나인 경우에는 다중해를 가지더라도 반드시 basis solution을 찾아야만 하도록 암호화 알고리즘을 만들어야하며 2개를 사용하는 경우에는 입력변수 수가 충분히 크다면 unique dual solution이 보장되며 가장 해를 찾는 어려움을 증가시켜주며 동일한 basis solution을 가지는 원환형 이항 트리가 3개 이상 사용되면 점점 더 conflict 회수가 줄어들으므로 해가 구해지는 시간이 짧아지므로 동일한 패스워드로 3개 이상 원환형 이항 트리를 만드는 것을 방지하는 방법이 마련되어야만 한다.We conducted an experiment to measure the time to find a solution after extracting the 3-CNF formular by increasing the number of trees. TRUE If the CNF formula is extracted from only one tree, a circular loop is formed for each column and variables are not shared with each other, so there are multiple solutions. Therefore, solutions other than the dual solution were easily found. When clauses were extracted from two TRUE trees, the time to find a solution was similar to when clauses were extracted from a dual toroidal binomial tree composed of a TRUE tree and a FALSE tree. TRUE When clauses were extracted from three or four trees, the time to find a solution drastically shortened as the number of trees increased. This means that as the number of trees increases, two clauses consisting of three literals, such as (x 1 ∨x 2 ∨x 3 )∧(x 1 ∨x 2 ∨¬x 3 ), become two clauses such as (x 1 ∨x 2 ). It is interpreted that this is because the probability of occurrence of cases that can be converted to clauses consisting of only literals increases. Therefore, the more trees are used, the less time it takes to find a solution. The 3-CNF formula created by extracting clauses from an extremely numerous tree can be changed to the 2-CNF formula, and the solution is obtained without conflict occurring. Therefore, in the case of one, the encryption algorithm must be created so that the basis solution must be found even if there are multiple solutions. In the case of using two, if the number of input variables is large enough, a unique dual solution is guaranteed, increasing the difficulty of finding the best solution. If three or more circular binomial trees with the same basis solution are used, the number of conflicts decreases and the time to obtain a solution becomes shorter. Therefore, a method must be provided to prevent three or more circular binomial trees from being created with the same password. .
이하, 본 발명에 따른 Hard SAT을 사용한 암호화(Cryptography with Hard SAT)와 관련하여 설명하기로 한다.Hereinafter, encryption with Hard SAT according to the present invention will be described.
지금까지 우리는 패스워드를 해로 가지는 Hard SAT 생성 방법을 제안했다. 앞에서 원환형 이항 트리를 모듈러 랜덤 캡슐링해서 생성된 3-SAT은 sub-exponentially-many solution을 가짐으로써 전수조사로 패스워드를 다항시간 안에 찾을 수 없고, shift modular인 경우에는 패스워드를 찾는 시간도 다항 시간을 초과함을 보여주었다. 또한 free modular를 사용하게 되면 패스워드와 일반 해를 구분할 요소가 없어져서 해를 찾는 것 자체가 무의미해진다는 것도 설명했다. 따라서 CNF formula가 공개된다 하더라도 그 정보로부터 다항시간 안에 패스워드를 찾을 수는 없다. 여기서 정보 노출 정도와 암호화 강도에 대해서 생각해보자. 우리가 패스워드를 구성하는 n개의 bit들의 값을 임의로 정하더라도 n개의 변수가 만드는 2n개의 리터럴 집합에서 반은 TRUE 값을 가지고 반은 FALSE 값을 가진다. 여기서 리터럴 들을 추출해서 m개의 literal 들 중에서 k개가 TRUE 값을 가지고 m-k개가 FALSE 값을 가지는 집합을 만든다고 가정하자. 이항 계수의 합은 아래의 수식으로 표현된다.So far, we have proposed a Hard SAT generation method with a password as the solution. 3-SAT, which was created by modular random encapsulation of the toroidal binomial tree, has a sub-exponentially-many solution, so the password cannot be found in polynomial time by exhaustive search, and in the case of shift modular, the time to find the password is also polynomial time. It was shown that it exceeds . It was also explained that when free modular is used, there is no element to distinguish between the password and the general solution, so finding the solution itself becomes meaningless. Therefore, even if the CNF formula is made public, the password cannot be found within polynomial time from that information. Here, let's think about the degree of information exposure and encryption strength. Even if we arbitrarily determine the values of n bits that make up the password, in the set of 2n literals created by n variables, half have TRUE values and half have FALSE values. Let's assume here that we extract literals and create a set of m literals, where k have TRUE values and m-k have FALSE values. The sum of the binomial coefficients is expressed by the formula below.
(수식 10)
Figure PCTKR2022014158-appb-img-000010
(Equation 10)
Figure PCTKR2022014158-appb-img-000010
만약 TRUE 값을 가지는 literal들의 수가 k라는 사실이 알려지지 않으면, 즉, 정보 누출이 전혀 없으면 m개의 literal 집합에서 TRUE 값을 가지는 literal은 하나도 없을 수도 있고 모두 TRUE 값을 가질 수도 있다. 따라서 위의 경우의 수를 모두 더하면 m+1 개의 이항 계수들을 모두 더한 값이 2m이 되고 위의 값은 전수조사 실행 횟수가 된다. k개가 TRUE 값을 가진다는 사실을 알려주는 행위는 m+1개의 이항 계수들 중에서 하나의 경우에만 해당한다는 것을 알려주는 행위가 된다. 평균적으로 mCk 만큼의 전수조사가 필요해지므로 해를 구하기 위한 평균적인 전수조사 실행 횟수는 줄어든다. 그렇지만 위의 값도 polynomial boundary를 벗어난다. 따라서 전체 중에 몇 개가 TRUE 값을 가지는 지를 알려주는 것은 해를 구하는데 필요한 일부 정보를 알려줌으로써 암호화 강도를 낮추어주지만 전수조사 실행 횟수가 polynomial boundary를 벗어나므로 그 정보만으로는 해를 다항 시간 안에 찾을 수 없다. If it is not known that the number of literals with the TRUE value is k, that is, if there is no information leakage, there may be no literals in the set of m literals or all of them may have the TRUE value. Therefore, if you add up all the numbers in the above cases, the sum of all m+1 binomial coefficients becomes 2 m , and the above value becomes the number of executions of the exhaustive survey. The act of informing that k values have the value TRUE is the act of informing that this applies to only one case among m+1 binomial coefficients. Since, on average, m C k number of exhaustive searches are required, the average number of exhaustive searches to find the solution is reduced. However, the above value also exceeds the polynomial boundary. Therefore, telling how many of the total have TRUE values lowers the encryption strength by providing some information needed to find the solution, but since the number of executions of the exhaustive search is outside the polynomial boundary, the solution cannot be found in polynomial time with that information alone.
원환형 이항 트리를 random encapsulation해서 생성되는 CNF formula는 해집합이 duality의 특성을 가진다. 따라서 3개의 literal들이 모두 TRUE 값을 가질 수 없다. 왜냐하면 모든 literal들을 보수로 바꾸어도 satisfiable해야 되는데 3개 모두 TRUE인 절은 보수를 취하면 unsatisfiable해지기 때문이다. 또한 3개의 literal 중 하나만 TRUE 값을 가지는 절과 두 개만 TRUE 값을 가지는 절이 동일한 수이어야만 한다. 모든 literal을 보수로 바꾸면 하나의 literal만 TRUE 값을 가지는 절이 2개의 literal이 TRUE값을 가지는 절로 바뀌기 때문이다. Basis solution을 대입했을 때 1개만 TRUE 값을 가지는 절을 1-TRUE clause로 2개만 TRUE 값을 가지는 절을 2-TRUE clause로 정의하자. The CNF formula generated by random encapsulation of a toroidal binomial tree has a solution set that has the characteristic of duality. Therefore, all three literals cannot have the value TRUE. This is because it must be satisfiable even if all literals are changed to their complement, but a clause in which all three are TRUE becomes unsatisfiable if the complement is taken. Additionally, there must be the same number of clauses where only one of the three literals has the TRUE value and clauses where only two have the TRUE value. This is because changing all literals to their complements changes a clause in which only one literal has the value TRUE into a clause in which two literals have the value TRUE. When substituting the basis solution, let's define a clause with only one TRUE value as a 1-TRUE clause, and a clause with only two TRUE values as a 2-TRUE clause.
앞에서 2n개의 literal들 중에서 TRUE 값을 가지는 literal 수와 FALSE 값을 가지는 literal 수에 차이를 두고 추출해서 m개의 literal 집합을 만든 것처럼 2n개의 clause들 중에서 1-TRUE clause와 2-TRUE clause의 개수에 차이를 두고 추출해서 m개의 clause 집합을 만든다. Dominant literal과 switching literal로 구성된 원환형 이항 트리를 구성하는 2개의 literal들로 구성된 절들은 모두 하나만 TRUE 값을 가지므로 random literal의 값에 따라서 2-TRUE clause 또는 1-TRUE clause인지가 결정된다. 따라서 random literal과 clause들을 1대1 대응시킬 수 있다. 그러므로 추출된 clause들이 만드는 새로운 CNF를 공개하고 2-TRUE clause가 그 중에 k개라는 것을 공개하는 행위는 추출된 m개의 리터럴 집합을 공개하고 k개가 TRUE 값을 가진다고 알려주는 것과 동일한 정보 노출 강도를 가진다. 따라서 새롭게 구성된 CNF로부터 패스워드를 찾는 행위는 암호화 강도는 낮아졌지만 해를 찾기 위한 전수조사 실행 횟수가 polynomial boundary를 벗어나게 된다. 우리는 이렇게 새롭게 생성된 CNF formula를 이용해서 암호화에 사용하고자 한다.Just as we created a set of m literals by extracting the difference between the number of literals with the TRUE value and the number of literals with the FALSE value among the 2n literals, there is a difference in the number of 1-TRUE clauses and 2-TRUE clauses among the 2n clauses. and extracts to create a set of m clauses. Since only one clause composed of two literals constituting a circular binomial tree composed of a dominant literal and a switching literal has a TRUE value, it is determined whether it is a 2-TRUE clause or a 1-TRUE clause depending on the value of the random literal. Therefore, random literals and clauses can be matched one to one. Therefore, the act of disclosing the new CNF created by the extracted clauses and disclosing that there are k 2-TRUE clauses among them has the same intensity of information exposure as disclosing the set of m extracted literals and notifying that the k clauses have the value TRUE. . Therefore, the act of finding a password from a newly constructed CNF reduces the encryption strength, but the number of exhaustive searches to find the solution exceeds the polynomial boundary. We want to use this newly created CNF formula for encryption.
위에서 1-TURE clause와 2-TRUE clause들의 개수에 차이를 두어서 새롭게 생성된 3-CNF formula에서 다항시간 안에 패스워드를 찾을 수 없음을 살펴보았다. 이제 CNF formula를 배포해서 공개 키처럼 사용하는 방법을 서술하면 다음과 같다. Above, we saw that the password could not be found in polynomial time in the newly created 3-CNF formula by making a difference in the number of 1-TURE clauses and 2-TRUE clauses. Now, how to distribute the CNF formula and use it as a public key is as follows.
원환형 이항 트리와 모듈러 랜덤 캡슐링을 통해서 n개의 입력 변수로 생성된 CNF formula는 2n개의 절들로 구성된다. 2-TRUE clause를 q개(q=n), 1-TRUE clause를 p(p < q)개 추출해서 p+q개의 절들로 이루어진 새로운 CNF formula를 만들었다고 가정하자. 어느 절이 1-TRUE clause인지를 알려주지 않고 p 값만 알려준다. 이들 중 2p+1개의 절을 랜덤 추출해서 변수들과 변수들의 보수의 개수를 세어서 아래와 같은 threshold 값, t를 계산하는 수식을 생성한다.The CNF formula generated with n input variables through a toroidal binomial tree and modular random encapsulation consists of 2n clauses. Assume that you extract q 2-TRUE clauses (q=n) and p(p < q) 1-TRUE clauses to create a new CNF formula consisting of p+q clauses. It does not tell you which clause is a 1-TRUE clause, but only the p value. Among these, 2p+1 clauses are randomly extracted, the number of variables and their complements are counted, and a formula is created to calculate the threshold value, t, as shown below.
(수식 11)
Figure PCTKR2022014158-appb-img-000011
(Equation 11)
Figure PCTKR2022014158-appb-img-000011
(수식 11)에서 ak는 xk의 개수를 더한 값이며 bk는 ¬xk의 개수를 더한 값이다. (수식 11)에 해집합(basis solution)에서 xk의 값이 TRUE이면 xk= 1, ¬xk=0을 대입하고 FALSE이면 xk= 0, ¬xk=1을 대입한다. 그러면 (수식 11)의 t 값은 3p+2 보다 크거나 같게 된다. 왜냐하면 1-TRUE clause 모두가 추출되더라도 위의 절들에서 TRUE 값을 가지는 literal의 개수는 p개이고 추출된 나머지 절들은 모두 한 절에서 2개의 literal들이 TRUE 값을 가지기 때문이다. 모든 변수들을 그의 보수로 바꾸는 것은 위의 수식에서 ak와 bk를 서로 바꾸는 것과 동일하다. 모든 변수들을 보수로 바꾸면 1-TRUE clause는 2-TRUE clause로 2-TRUE clause는 1-TRUE clause로 바뀌게 된다. 따라서 (수식 11)에서 ak와 bk를 서로 바꾸고 해 집합에서 xk가 TRUE이면 xk= 1, ¬xk=0을 대입하고 xk가 FALSE이면 xk= 0, ¬xk=1을 대입한다면 (수식 11)의 값은 3p+1 보다 작거나 같게 된다. 왜냐하면 2-TRUE clause들이 모두 추출되더라도 2p개의 TRUE 값을 가지는 literal들이 포함되고 나머지 절들은 모두 TRUE 값을 한 개만 가지기 때문이다. 그러므로 평문데이터 1을 암호화하기 위해서는 ak를 구성하는 n개의 배열과 bk를 구성하는 n개의 배열을 순차적으로 결합한 2n개의 배열을 기록하고 0을 암호화하기 위해서 ak와 bk를 서로 바꾸어서 bk를 구성하는 n개의 배열과 ak를 구성하는 n개의 배열을 순차적으로 결합한 2n개의 배열을 기록한다.In (Equation 11), a k is the sum of the numbers of x k and b k is the sum of the numbers of ¬x k . If the value of x k in the basis solution is TRUE, substitute x k = 1, ¬x k = 0, and if it is FALSE, substitute x k = 0, ¬x k = 1. Then, the t value of (Equation 11) becomes greater than or equal to 3p+2. This is because even if all 1-TRUE clauses are extracted, the number of literals with a TRUE value in the above clauses is p, and in all remaining extracted clauses, 2 literals in one clause have a TRUE value. Changing all variables to their complements is the same as swapping a k and b k in the above formula. If all variables are changed to their complements, the 1-TRUE clause changes into a 2-TRUE clause, and the 2-TRUE clause changes into a 1-TRUE clause. Therefore, in (Equation 11), replace a k and b k with each other, and if x k is TRUE in the solution set, substitute x k = 1 and ¬x k =0, and if x k is FALSE, x k = 0, ¬x k =1 If you substitute, the value of (Equation 11) becomes less than or equal to 3p+1. This is because even if all 2-TRUE clauses are extracted, 2p literals with a TRUE value are included, and the remaining clauses all have only one TRUE value. Therefore, to encrypt plaintext data 1, record 2n arrays that sequentially combine the n arrays constituting a k and the n arrays constituting b k . To encrypt 0, a k and b k are exchanged to create b k . Record 2n arrays that sequentially combine the n arrays that make up and the n arrays that make up a k .
수신단에서는 전송되는 암호문으로부터 literal들의 개수를 추출해서 (수식 11)를 생성하고 패스워드를 대입해서 그 값이 3p+2 보다 크거나 같으면 1로 3p+1 보다 작거나 같으면 0으로 복호화시킨다. [도 14]는 CNF formula를 이용한 암호화, 복호화 과정을 나타낸다.이때 연산량을 줄이기 위해서 CNF formula를 구성하는 모든 절들에서 모든 변수와 그의 보수들의 수를 미리 계산한다. 위의 값을 (Ak, Bk), 1<=k<=n로 표시하자. 그런 후에 2p+1개를 뽑지 않고 q-p-1개를 뽑아서 뽑혀진 절들의 모든 변수와 그의 보수들의 수를 계산한다. 위의 값을 (ck, dk)라고 하면 ak=Ak-ck, bk=Bk-dk의 식이 성립한다. 1000개 중에서 p가 490개이고 q가 500인 경우에 2p+1개를 뽑으면 981개가 되지만 q-p-1개를 뽑으면 9개가 되므로 CNF formula를 구성하는 절들의 수가 늘어난다 하더라도 적은 수의 절들만 추출해서 변수들의 개수만 세면되므로 어떤 플랫폼에서도 실시간 연산이 가능하다. At the receiving end, the number of literals is extracted from the transmitted ciphertext, generating (Equation 11), substituting the password, and decrypting the value to 1 if it is greater than or equal to 3p+2 and 0 if it is less than or equal to 3p+1. [Figure 14] shows the encryption and decryption process using the CNF formula. At this time, in order to reduce the amount of calculation, all variables and the number of their complements are calculated in advance in all clauses that make up the CNF formula. Let us express the above values as (A k , B k ), 1<=k<=n. Then, instead of selecting 2p+1, we select qp-1 and calculate the number of all variables and their complements in the selected clauses. If the above values are (c k , d k ), the equations a k =A k -c k , b k =B k -d k are established. If p is 490 and q is 500 out of 1000, if 2p+1 is selected, it becomes 981, but if qp-1 is selected, it becomes 9, so even if the number of clauses that make up the CNF formula increases, only a small number of clauses are extracted and the number of variables is Since you only need to count the numbers, real-time calculation is possible on any platform.
여기서 q-p의 크기를 어느 정도로 설정해야 적당한가를 살펴보자. 1000개의 절들이 2%의 차이로 2-TRUE clause를 500개, 1-TRUE clause를 490개로 구성되었을 때 9개를 뽑는 경우의 수는 1000C9이 되어서 약 2.6x1021이나 되는 큰 수가 된다. 따라서 q-p의 크기가 약간만 늘어나도 서로 다르게 랜덤 추출되는 샘플들의 수가 기하급수적으로 늘어난다. 그러나 만약 q-p=1이라면 우리는 추출되지 않은 절이 무엇인지 알 수 있다. 원환형 이항 트리는 모든 변수들과 변수들의 보수가 동일하게 3번씩 사용되므로 ak와 bk를 구하면 2인 literal이 3개, 듀얼 원환형 이항 트리는 모든 변수들과 변수들의 보수가 동일하게 6번씩 사용되므로 ak와 bk를 구하면 5인 literal이 3개가 나올 것이다. 위의 literal들로 이루어진 절이 추출되지 않은 절이 된다. 다시 말하면 여러 절들에 포함된 literal들이 섞인 상태에서 각각의 literal들의 개수의 총합이 공개되므로 q-p값이 작을수록 literal들이 섞이기 이전의 절들을 찾을 가능성이 커진다. 또한 q-p-1개를 랜덤 추출해서 literal들의 수를 세므로 q-p가 커지면 그만큼 암호화 속도가 늦어진다. 따라서 q-p 값의 크기는 샘플링 데이터의 풍부성을 떨어뜨리지 않는 범위에서 최대한 작게 설정해야만 한다. 본 발명을 실험에서는 p=0.9 x q 로 설정했다. 또 다른 하나로 형태적 동등성에 대해서 생각해보자. 우리는 0을 암호화할 때 모든 절들에서 변수들을 그의 보수로 바꾸었는데 이것이 형태적 동등성을 해치는 지를 확인할 필요가 있다. 랜덤 추출했으므로 변수들과 그의 보수들의 사용 횟수는 횟수의 동등성이 유지된다. 또한 dual solution을 가지기 때문에 해집합을 이루는 literal들에 모두 보수를 취해도 해집합에 속한다는 점을 생각하면 형태적 동등성을 해치지 않을 것임을 알 수 있다. Here, let's look at the appropriate size of qp. When 1000 clauses are composed of 500 2-TRUE clauses and 490 1-TRUE clauses with a difference of 2%, the number of cases of selecting 9 is 1000 C 9 , which is a large number of about 2.6x10 21 . Therefore, even if the size of qp increases slightly, the number of differently randomly selected samples increases exponentially. However, if qp=1, we can know which clauses were not extracted. In the toroidal binomial tree, all variables and their complements are the same and are used 3 times, so when calculating a k and b k , there are 3 literals that are 2. In the dual toroidal binomial tree, all variables and their complements are the same and are used 6 times each. Therefore, if you find a k and b k , you will get 3 literals equal to 5. The clause consisting of the above literals becomes the unextracted clause. In other words, the total number of literals in each clause is revealed when literals included in several clauses are mixed, so the smaller the qp value, the greater the possibility of finding the clauses before the literals are mixed. Also, since qp-1 is randomly extracted and the number of literals is counted, the larger qp is, the slower the encryption speed is. Therefore, the size of the qp value should be set as small as possible without degrading the richness of the sampling data. In the experiments of the present invention, p=0.9 xq was set. Another thing to consider is morphological equivalence. When we encode 0, we change the variables to their complement in all clauses. We need to check whether this harms morphological equivalence. Because random sampling is used, the equality of the number of times the variables and their complements are used is maintained. Also, since it has a dual solution, we can see that even if we take the complement of all the literals that make up the solution set, morphological equivalence will not be harmed considering that they belong to the solution set.
듀얼 원환형 이항 트리는 입력 변수 수가 충분히 크다면 unique dual solution을 가진다. 원환형 이항 트리의 수가 2개 이상 되면 점점 많아질수록 unique dual solution을 가지지만 2-CNF formula로 reduced 될 수 있는 pair 절들이 증가함에 따라 해를 찾는 시간이 급속도록 빨라진다. 동일 패스워드로 만들어진 CNF formula들을 계속적으로 더해서 하나의 CNF formula를 만들게 되면 3개의 literal로 이루어진 절들이 합쳐져서 두 개의 리터럴로 이루어진 절들이 생성되는 횟수가 늘어나며 극단적으로 무수히 많은 것들을 합치면 모든 절들이 2개의 literal들로 구성된 절들로 바뀌게 된다. 해를 구하는 어려움은 decision level의 크기에 의해서 결정되므로 점점 더 decision level을 줄이고 결국은 decision level이 1이 되도록 만든다. A dual toroidal binomial tree has a unique dual solution if the number of input variables is large enough. As the number of circular binomial trees increases, there is a unique dual solution, but as the number of pair clauses that can be reduced to the 2-CNF formula increases, the time to find a solution rapidly increases. If you continuously add CNF formulas made with the same password to create one CNF formula, the clauses made up of three literals will be combined, increasing the number of clauses made up of two literals. If you combine an extremely large number of things, all the clauses will be made up of two literals. It changes into clauses consisting of . Since the difficulty of finding a solution is determined by the size of the decision level, the decision level is gradually reduced and eventually the decision level becomes 1.
따라서 사용자가 반복적으로 동일한 basis solution을 가지는 CNF formula를 생성하면 이들을 합쳐서 basis solution을 쉽게 찾을 수 있는 위험성이 있다. 이것을 방지하기 위해서 하나의 실시례로써 사용자의 패스워드 뒤에 생성 시간과 같은 생성될 때마다 서로 다른 값을 가지는 식별코드를 추가해서 basis solution을 생성하는 방식을 사용한다. 이러한 방식은 동일한 개인키를 가지더라도 반복적으로 동일한 basis solution을 가지는 CNF formula가 생성되는 것을 방지한다. Therefore, if a user repeatedly creates CNF formulas with the same basis solution, there is a risk that the basis solution can be easily found by combining them. To prevent this, as an example, a basis solution is created by adding an identification code with a different value each time it is created, such as the creation time, after the user's password. This method prevents CNF formulas with the same basis solution from being repeatedly created even if they have the same private key.
이하, 본 발명에 따른 식별(Identification) 과정에 대해 설명하기로 한다.Hereinafter, the identification process according to the present invention will be described.
송신자가 가지고 있는 CNF formula와 수신자가 가지고 있는 CNF formula가 일치하는 지의 여부와 수신자가 위의 CNF formula의 해를 알고 있는 CNF formula의 생성자 인지를 확인하는 과정이 필요하다. 아래와 같은 절차에 의해서 CNF formula 생성자 인지와 동일한 CNF formula 를 가졌는지를 확인할 수 있다.It is necessary to check whether the CNF formula held by the sender matches the CNF formula held by the receiver and whether the receiver is a creator of the CNF formula who knows the solution to the above CNF formula. You can check whether it has the same CNF formula as the CNF formula constructor by using the procedure below.
(Method 3). Identification(Method 3). Identification
송신자는 입력 변수 수 크기의 키 값을 생성한다. 이 값은 CNF formula의 해가 아니며 CNF formula에 대입하면 FALSE를 리턴하는 절들이 생긴다.The sender generates a key value of the size of the number of input variables. This value is not a solution to the CNF formula, and when substituted into the CNF formula, clauses that return FALSE are created.
1) 키값을 암호화 해서 수신자에게 보낸다.1) Encrypt the key value and send it to the recipient.
2) 수신자는 자신의 패스워드로 복호화 해서 키 값을 알아낸다.2) The recipient decrypts it with his or her password and finds the key value.
3) 키 값을 CNF formula에 대입해서 모든 절들의 리턴 값들을 얻고 순차적으로 송신자에게 보낸다.3) Substitute the key value into the CNF formula to obtain the return values of all clauses and send them to the sender sequentially.
4) 송신자는 생성한 키 값을 보유한 CNF formula에 대입해서 돌아오는 리턴 값들과 생성된 리턴 값들을 비교한다.4) The sender substitutes the generated key value into the CNF formula and compares the returned return values with the generated return values.
5) 같다면 수신자는 CNF formula의 생성자가 되며 서로가 같은 CNF formula를 가지고 있음이 확인된다.5) If they are the same, the recipient becomes the creator of the CNF formula and it is confirmed that they both have the same CNF formula.
CNF formula 는 개인 또는 단체의 온라인 신원확인증 역할을 하며 서로가 암호화된 데이터를 받기 위해서는 서로의 CNF formula를 상대방 측으로 보내고 상대방의 CNF formula를 이용해서 데이터를 암호화시킨 후에 전송한다The CNF formula serves as an online identity verification for an individual or organization. In order to receive encrypted data, each party sends the CNF formula to the other party, encrypts the data using the other party's CNF formula, and then transmits it.
상기 원환형 이항 트리의 순환구조는 expressional equality를 유지하면서 repeated pair와 triangle pair들이 발생하지 않도록 해주며, 이로 인해서 SAT solver 내부의 unit propagation step 수를 최대한 늘려주게 되고 decision level을 증가시킴으로써 해를 구하는데 필요한 calculation step 수를 늘려준다.The circular structure of the toroidal binomial tree prevents repeated pairs and triangle pairs from occurring while maintaining expressional equality. This maximizes the number of unit propagation steps inside the SAT solver and finds a solution by increasing the decision level. Increases the number of calculation steps required.
본 발명에서 제안하는 암호화 알고리즘은 SAT 기반으로 소인수분해나 이산로그문제의 어려움에 기반을 두지 않으므로 quantum resistant 인 것은 명백하다. 하나의 절은 3개의 변수로 이루어진다. 변수의 수가 215개 이하라면 2byte를 할당해서 하나의 변수와 그의 보수를 나타내는 것이 가능하다. 따라서 하나의 절은 6 byte로 나타낼 수 있고 clause 수가 m인 CNF formula를 사용한다면 6 x m byte가 공개키의 길이가 된다. 하나의 트리에서 하나의 변수는 dominant variable 2번, switching variable 2번, random variable 2번 총 6번이 사용된다. It is clear that the encryption algorithm proposed in the present invention is quantum resistant because it is based on SAT and is not based on the difficulties of prime factorization or discrete logarithm problems. One clause consists of three variables. If the number of variables is less than 215 , it is possible to allocate 2 bytes to represent one variable and its complement. Therefore, one clause can be expressed in 6 bytes, and if you use the CNF formula with the number of clauses m, 6 x m bytes becomes the length of the public key. In one tree, one variable is used a total of 6 times: 2 dominant variables, 2 switching variables, and 2 random variables.
따라서 싱글 원환형 트리를 구성하는 하나의 변수의 사용 회수는 6이되고 듀얼 원환형 트리를 구성하는 하나의 변수의 사용 회수는 12가 되므로 4bit로 표현 가능하다. 입력 변수 수가 1000이면 모든 변수들과 그의 보수들의 계수를 표현해야 하기 때문에 암호화된 데이터 길이는 1k byte 가 된다. Therefore, the number of uses of one variable constituting a single toroid tree is 6, and the number of uses of one variable constituting a dual toroid tree is 12, so they can be expressed in 4 bits. If the number of input variables is 1000, the encrypted data length is 1k bytes because the coefficients of all variables and their complements must be expressed.
따라서 제안하는 암호화 알고리즘은 공개키 사이즈와 암호화된 데이터 사이즈가 크다는 단점을 가진다. 그러나 공개키와 개인키 간의 관계가 CNF formula로 표현됨으로써 소인수분해나 이산로그문제를 쉽게 풀 수 있는 현재의 양자알고리즘뿐만 아니라 향후에 개발될 수식 기반의 알고리즘들에 대해서도 자유롭다는 장점을 가진다. 또한 암호화 과정이 랜덤추출 후 변수의 개수를 더하는 것이 모두 이므로 그 어떤 알고리즘보다도 빠른 연산이 가능하다. 복호화 과정 또한 덧셈 연산으로 끝나므로 실시간 암호화 복호화가 가능할 뿐만 아니라 큰 수를 이용한 연산 과정이 없으므로 어떠한 플랫폼에서도 구현 가능하다는 장점을 가진다. Therefore, the proposed encryption algorithm has the disadvantage that the public key size and encrypted data size are large. However, since the relationship between public and private keys is expressed in the CNF formula, it has the advantage of being free not only for current quantum algorithms that can easily solve prime factorization or discrete log problems, but also for formula-based algorithms that will be developed in the future. Additionally, since the encryption process consists of adding the number of variables after random sampling, faster calculations are possible than any other algorithm. The decryption process also ends with an addition operation, so real-time encryption and decryption is possible, and since there is no calculation process using large numbers, it has the advantage of being able to be implemented on any platform.
공개키를 이용한 암호화는 주로 비밀키를 암호화 시키는 용도로 사용하므로 공개키와 암호문 사이즈가 커지는 것은 암호 시스템 구현에 있어서 심각한 문제를 초래하지 않는다. 또한 포스트 양자 암호 알고리즘으로 채택된 격자기반 알고리즘이 가진 부채널 공격으로부터도 자유로우며 코드 기반 알고리즘이 가진 ISD 공격으로부터도 자유로우므로 향후 양자내성 공개키 기반 알고리즘을 이끌 새로운 알고리즘으로 기대된다.Encryption using a public key is mainly used to encrypt a secret key, so increasing the size of the public key and ciphertext does not cause serious problems in implementing the encryption system. In addition, it is free from the side-channel attacks of the lattice-based algorithm adopted as a post-quantum encryption algorithm and is also free from the ISD attack of the code-based algorithm, so it is expected to be a new algorithm that will lead quantum-resistant public key-based algorithms in the future.

Claims (11)

  1. 패스워드의 각각의 비트 값을 부울 변수 값으로 할당한 후 변수들이 만드는 문자(literal)들로 구성된 복수의 절(clause)들로 이루어진 노드(node)들이 삼차원적으로 상하 및 좌우가 서로 연결된 원환형 이항 트리(toroidal binomial tree)를 생성하는 단계를 포함하는 것을 특징으로 하는 Hard SAT 생성 방법.After assigning each bit value of the password to a Boolean variable value, nodes consisting of a plurality of clauses made up of literals made by the variables are three-dimensionally connected to each other at the top, bottom, and left and right. A Hard SAT generation method comprising the step of generating a toroidal binomial tree.
  2. 제 1항에 있어서, 상기 원환형 이항 트리는 하기의 (method 1)에 의해 생성되는 것을 특징으로 하는 Hard SAT 생성 방법. The method of claim 1, wherein the toroidal binomial tree is generated by (method 1) below.
    (Method 1)(Method 1)
    1) 패스워드를 생성한 후 각 비트마다 변수를 할당.1) After creating a password, assign variables to each bit.
    2) 트리의 level 수와 column 수의 곱이 패스워드의 길이가 되는 원환형 이항 트리 프레임을 생성.2) Create a toroidal binomial tree frame where the product of the number of levels and the number of columns in the tree is the length of the password.
    3) 위 1)에서 할당된 변수들로 구성된 TRUE값을 가지는 n개의 리터럴 집합또는 FALSE 값을 가지는 n개의 리터럴 집합을 생성한 후 랜덤하게 정렬.3) Create a set of n literals with TRUE values or n literal sets with FALSE values consisting of the variables assigned in 1) above and sort them randomly.
    4) 위 3)에서 만든 n개의 리터럴 집합에서 순서대로 하나씩 꺼내서 트리를 구성하는 dominant literal 자리에 배치.4) Take out one by one from the set of n literals created in 3) above and place them in the position of the dominant literal that makes up the tree.
    5) Switching literal들의 자리에 들어가는 literal들은 dominant literal들의 complement로 배치하여 원환형 이항 트리를 생성.5) Literals that take the place of switching literals are placed as complements of dominant literals to create a circular binomial tree.
  3. 제 1항에 있어서, 상기 생성된 원환형 이항 트리를 이루는 절들에 모든 literal들과 그의 보수들을 랜덤하게 정렬한 후에 차례로 추가하는 랜덤 캡슐링 기법에 의해서 하나의 절이 3개의 literal들로 구성되도록 변수들을 추가한 후에, 트리를 구성하는 모든 절들을 추출해서 패스워드를 해로 가지는 3-CNF 수식 생성단계;를 포함하는 구성을 특징으로 하는 Hard SAT 생성 방법.According to claim 1, variables are added so that one clause consists of three literals by a random encapsulation technique in which all literals and their complements are randomly sorted in the clauses forming the generated circular binomial tree and then added sequentially. After addition, a Hard SAT generation method characterized by a configuration including a step of extracting all clauses constituting the tree and generating a 3-CNF formula with the password as the solution.
  4. 제 3항에 있어서, 상기 3-CNF 수식은 하기의 (method 2)를 이용해서 랜덤 캡슐링 기법으로 도출하는 것을 특징으로 하는 Hard SAT 생성 방법. The method of claim 3, wherein the 3-CNF formula is derived using a random encapsulation technique using (method 2) below.
    (Method 2)(Method 2)
    basis solution에 포함된 모든 literal들과 그의 보수들을 랜덤하게 정렬한 후에 차례로 원환형 이항 트리를 이루는 절들에 추가.All literals and their complements included in the basis solution are randomly sorted and then sequentially added to the clauses forming the toric binomial tree.
    이때 두 가지 조건을 만족시키면서 추가.At this time, add while satisfying two conditions.
    첫째, Exact 3-CNF 수식으로 생성. (추가하려는 변수가 한 절을 구성하는 두 변수와 겹치면 랜덤하게 재정렬.)First, generated with the Exact 3-CNF formula. (If the variable you want to add overlaps with the two variables that make up one clause, rearrange it randomly.)
    둘째, 하나의 노드를 구성하는 두 개의 절에 추가될 두 literal 중 하나는 basis solution에 포함되는 것을 사용하고 또 다른 하나는 포함되지 않는 것을 사용.Second, of the two literals to be added to the two clauses that make up one node, one uses the one included in the basis solution and the other uses the one that does not.
  5. 제 1항에 있어서, 상기 생성된 원환형 이항 트리를 이루는 절들에 모든 literal들과 그의 보수들을 그룹 단위로 나누어서 랜덤하게 정렬한 후에 차례로 추가하는 모듈러 랜덤 캡슐링 기법에 의해서 하나의 절이 3개의 literal들로 구성되도록 변수들을 추가한 후에, 트리를 구성하는 모든 절들을 추출해서 패스워드를 해로 가지는 3-CNF 수식 생성단계를 포함하는 것을 특징으로 하는 Hard SAT 생성 방법.According to claim 1, one clause is divided into three literals by the modular random encapsulation technique in which all literals and their complements are divided into groups, randomly sorted, and then added sequentially to the clauses forming the generated circular binomial tree. A Hard SAT generation method comprising the step of extracting all clauses constituting the tree and generating a 3-CNF formula with the password as the solution, after adding variables to be composed of .
  6. 제 5항에 있어서, 상기 3-CNF 수식은 하기의 (method 3)를 이용해서 모듈러 랜덤 캡슐링 기법으로 도출하는 것을 특징으로 하는 Hard SAT 생성 방법. The method of claim 5, wherein the 3-CNF formula is derived using a modular random encapsulation technique using (method 3) below.
    (Method 3)(Method 3)
    1) 제 1항에서 생성한 원환형 이항 트리를 구성하는 dominant literal들을 column 단위로 그룹을 만든 후 랜덤하게 정렬.1) Group the dominant literals that make up the circular binomial tree created in Section 1 by column and then sort them randomly.
    2) 위 1)에서 만들어진 그룹에 속한 모든 literal들의 보수들을 사용하여 대응되는 그룹들을 만든 후 랜덤하게 정렬하되, 위 1)에서 랜덤하게 정렬된 행에서 동일한 위치에 동일한 변수가 배치되면 재정렬해서 하나의 변수와 그 변수의 보수가 동일 위치에 배치되는 것을 방지. 2) Create corresponding groups using the complements of all literals belonging to the group created in 1) above and sort them randomly. If the same variable is placed in the same position in the row randomly sorted in 1) above, rearrange it to form one Prevents a variable and its complement from being placed in the same location.
    3) Distance 값, d를 설정. 3) Set the distance value, d.
    4) 위 1)에서 만든 그룹과 2)에서 만든 대응되는 그룹에서 차례로 literal들을 하나씩 추출한 후에 d 만큼 떨어진 column을 구성하는 각각의 노드에 포함된 두 개의 절의 random variable 위치에 FALSE 값을 가지는 리터럴을 왼쪽 또는 오른쪽 또는 임의의 위치에 추가하여 random literal들이 포함된 원환형 이항 트리 생성.4) After extracting literals one by one from the group created in 1) above and the corresponding group created in 2), a literal with the value FALSE is left at the random variable position of the two clauses included in each node constituting the column at a distance of d. Or create a toric binomial tree containing random literals by adding them to the right or at random positions.
    5) 모든 노드에서 절들을 추출한 후에 각각의 변수들의 역할을 확인 할 수 없도록 하기 위해서 하나의 절을 구성하는 3개의 literal들을 랜덤하게 재정렬 해서 3-CNF 수식을 만드는 모듈러 랜덤 캡슐화 단계;5) Modular random encapsulation step to create a 3-CNF formula by randomly rearranging the three literals that make up one clause so that the role of each variable cannot be confirmed after extracting clauses from all nodes;
  7. 제 1항에 있어서, 모든 dominant literal들이 TRUE 값을 가지는 원환형 이항 트리와 모든 dominant literal들이 FALSE 값을 가지는 원환형 이항 트리를 여러 개 만든 후에;,According to claim 1, after creating several circular binomial trees in which all dominant literals have TRUE values and several circular binomial trees in which all dominant literals have FALSE values;,
    임의의 개수의 원환형 이항 트리를 구성하는 모든 절들을 추출해서 하나의 CNF 수식을 만드는 패스워드를 해로 가지는 3-CNF 수식 생성단계를 포함하는 구성을 특징으로 하는 Hard SAT 생성 방법.A Hard SAT generation method characterized by a configuration that includes a 3-CNF formula generation step with a password as the solution that extracts all clauses constituting an arbitrary number of circular binomial trees to create one CNF formula.
  8. 패스워드를 해로 가지고 있으며 1-TRUE clause와 2-TRUE clause의 개수가 동일한 3-CNF 수식으로부터 상기 1-TRUE clause와 2-TRUE clause의 개수에 차이를 두고 절들을 추출해서 새롭게 3-CNF 수식을 생성하는 1단계, From the 3-CNF formula that has the password as the solution and has the same number of 1-TRUE clauses and 2-TRUE clauses, extract clauses by varying the number of 1-TRUE clauses and 2-TRUE clauses to create a new 3-CNF formula. Step 1,
    상기 3-CNF를 구성하는 절들을 랜덤하게 추출한 후 xk (1<=k<=n, xk: 패스워드의 k번째 비트에 할당된 변수, n: 패스워드의 비트수)의 개수를 세어서 첫 번째 배열을 만들고, ¬xk의 개수를 세어서 두 번째 배열을 만드는 2단계, After randomly extracting the clauses that make up the 3-CNF, the number of x k (1<=k<=n, x k : variable assigned to the kth bit of the password, n: number of bits of the password) is counted and the first Step 2: create the first array and count the number of ¬x k to create the second array,
    상기 두 배열들을 순차적으로 기록하거나 뒤바꾸어 기록해서 0과 1의 암호문을 만드는 3단계, Step 3: Create a ciphertext of 0 and 1 by sequentially recording or reversing the two arrays,
    상기 암호문에서 두 배열들을 읽어서 하기 (수식 1)을 만들고 수식에 패스워드를 구성하는 bit 값들을 대입해서 그 값이 임계치 이상인지 아닌지를 판단해서 0과 1을 복호화시키는 단계로 수행되는 것을 특징으로 하는 SAT에 기반을 둔 양자 내성 암호 알고리즘 구현 방법.SAT is characterized in that it is performed by reading the two arrays from the ciphertext, creating the following (Equation 1), substituting the bit values that make up the password into the formula, and determining whether the value is above a threshold or not to decrypt 0 and 1. A method of implementing a quantum-resistant cryptographic algorithm based on .
    (수식 1)
    Figure PCTKR2022014158-appb-img-000012
    (Formula 1)
    Figure PCTKR2022014158-appb-img-000012
    xk: 패스워드의 k번째 비트에 할당된 변수, ak: 추출된 xk의 개수, bk: 추출된 ¬xk의 개수. x k : variable assigned to the kth bit of the password, a k : number of extracted x k , b k : number of extracted ¬x k .
  9. 패스워드를 해로 가지고 있으며 1-TRUE clause와 2-TRUE clause의 개수가 동일한 3-CNF 수식으로부터 상기 1-TRUE clause와 2-TRUE clause의 개수에 차이를 두로 추출해서 새롭게 3-CNF 수식을 생성하는 단계, A step of generating a new 3-CNF formula by extracting the difference in the number of 1-TRUE clauses and 2-TRUE clauses from the 3-CNF formula that has the password as the solution and the same number of 1-TRUE clauses and 2-TRUE clauses. ,
    상기 3-CNF 수식으로부터 2-TRUE clause를 q개(q=n/2, n: 절들의 수), 1-TRUE clause를p(p < q)개 추출해서 p+q개의 절들로 이루어진 새로운 CNF 수식을 만드는 단계;From the above 3-CNF formula, q 2-TRUE clauses (q=n/2, n: number of clauses) and p(p < q) 1-TRUE clauses are extracted to create a new CNF consisting of p+q clauses. Steps to create a formula;
    상기 새롭게 만들어진 CNF 수식을 구성하는 절들 중 2p+1개의 절을 랜덤 추출해서 변수들과 변수들의 보수의 개수를 세어서 ak와 bk(1<=k<=n, n=패스워드 bit 수) 값을 설정하는 단계;Among the clauses constituting the newly created CNF formula, 2p+1 clauses are randomly extracted and the number of variables and their complements are counted to obtain a k and b k (1<=k<=n, n=number of password bits) setting a value;
    평문데이터 1을 암호화하기 위해서는 ak를 구성하는 n개의 배열과 bk를 구성하는 n개의 배열을 순차적으로 결합한 2n개의 배열을 기록하고 0을 암호화하기 위해서는 ak와 bk를 서로 바꾸어서 bk를 구성하는 n개의 배열과 ak를 구성하는 n개의 배열을 순차적으로 결합한 2n개의 배열을 기록하는 암호화 단계;To encrypt plaintext data 1, record 2n arrays by sequentially combining the n arrays constituting a k and the n arrays constituting b k . To encrypt 0, a k and b k are exchanged to create b k . An encryption step of recording 2n arrays by sequentially combining the n arrays constituting the n arrays and the n arrays constituting a k ;
    상기 암호문을 읽어서 순차적으로 ak, bk(1<=k<=n, n=패스워드 bit 수)값을 확정한 후에 하기의 (수식 2)와 같은 threshold 값, t를 계산하는 수식 생성 단계;A formula generation step of reading the ciphertext and sequentially determining the values a k and b k (1<=k<=n, n=number of password bits) and then calculating a threshold value, t, as shown in (Formula 2) below;
    (수식 2)
    Figure PCTKR2022014158-appb-img-000013
    (Formula 2)
    Figure PCTKR2022014158-appb-img-000013
    위 (수식 2)에 패스워드로부터 도출된 xk의 값이 TRUE이면 xk= 1, ¬xk=0을 대입하고 FALSE이면 xk= 0, ¬xk=1을 대입해서 t값을 계산하는 단계;If the value of x k derived from the password in the above (Equation 2) is TRUE, substitute x k = 1 and ¬x k = 0. If it is FALSE, substitute x k = 0 and ¬x k = 1 to calculate the t value. step;
    t 값이 3p+2 보다 크거나 같으면 1로 3p+1 보다 작거나 같으면 0으로 복호화 단계;로 수행되는 것을 특징으로 하는 SAT에 기반을 둔 양자 내성 암호 알고리즘 구현 방법.A method of implementing a quantum-resistant encryption algorithm based on SAT, characterized in that the decryption step is performed as 1 if the t value is greater than or equal to 3p+2 and 0 if it is less than or equal to 3p+1.
  10. 제 8항 또는 제 9항에 있어서, 암호문을 전달할 송신자가 가지고 있는 CNF 수식과 CNF 수식의 생성자이며 암호문을 수신할 수신자가 가지고 있는 CNF 수식이 일치하는 지의 여부와 수신자가 위의 CNF 수식의 해를 알고 있는 CNF 수식 생성자 인지를 하기의 (Method 4)에 의해서 확인하는 단계;를 포함하는 것을 특징으로 하는 SAT에 기반을 둔 양자 내성 암호 알고리즘 구현 방법.According to claim 8 or 9, whether the CNF formula held by the sender who will transmit the ciphertext and the CNF formula held by the receiver who is the generator of the CNF formula and who will receive the ciphertext match, and whether the receiver finds the solution of the above CNF formula A method of implementing a quantum-resistant cryptographic algorithm based on SAT, comprising the step of confirming whether the known CNF formula generator is recognized by (Method 4) below.
    (Method 4) (Method 4)
    1) 암호문을 전달할 송신자는 입력 변수 수 크기의 키 값을 생성하되, 이 키 값은 공개키 대용으로 사용하는 CNF 수식의 해가 아니며 CNF 수식에 대입하면 FALSE를 리턴하는 절들이 생기는 것으로, 이 키 값을 상기 암호 알고리즘으로 암호화해서 수신자에게 송신.1) The sender who delivers the ciphertext generates a key value the size of the number of input variables, but this key value is not the solution to the CNF formula used as a substitute for the public key. When substituted into the CNF formula, clauses that return FALSE are created, and this key Encrypt the value using the above encryption algorithm and send it to the recipient.
    2) CNF 수식의 생성자이며 암호문을 전달 받을 수신자는 자신의 패스워드로 복호화 해서 키 값을 확인하고, 이 키 값을 CNF 수식에 대입해서 모든 절들의 리턴 값들을 도출하고 순차적으로 송신자에게 송신.2) The recipient, who is the generator of the CNF formula and will receive the ciphertext, decrypts it with his or her password, checks the key value, substitutes this key value into the CNF formula to derive the return values of all clauses, and sequentially sends them to the sender.
    3) 송신자는 생성한 키 값을 자신이 보유한 CNF 수식에 대입해서 돌아오는 리턴 값들과 생성된 리턴 값들을 비교,3) The sender substitutes the generated key value into the CNF formula it holds and compares the returned return values with the generated return values.
    4) 상기 비교된 값들이 같다면 수신자는 CNF 수식의 생성자가 되며, 서로가 같은 CNF 수식을 가지고 있음을 확인.4) If the compared values are the same, the recipient becomes the creator of the CNF formula and confirms that they have the same CNF formula.
  11. 제 1항에 있어서, 상기 패스워드에 생성시간 정보를 포함하는 것을 특징으로 하는 SAT에 기반을 둔 양자 내성 암호 알고리즘 구현 방법.The method of claim 1, wherein the password includes generation time information.
PCT/KR2022/014158 2022-09-16 2022-09-22 Method for generating hard sat and method for implementing sat-based quantum-resistant cryptographic algorithm WO2024058298A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020220117170A KR102657596B1 (en) 2022-09-16 2022-09-16 The Method of Hard SAT generation and SAT based post-quantum cryptography
KR10-2022-0117170 2022-09-16

Publications (1)

Publication Number Publication Date
WO2024058298A1 true WO2024058298A1 (en) 2024-03-21

Family

ID=90275366

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2022/014158 WO2024058298A1 (en) 2022-09-16 2022-09-22 Method for generating hard sat and method for implementing sat-based quantum-resistant cryptographic algorithm

Country Status (2)

Country Link
KR (2) KR102657596B1 (en)
WO (1) WO2024058298A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200012845A (en) * 2017-06-01 2020-02-05 즈와이프 에이에스 Progressive Key Encryption Algorithm
KR20200059600A (en) * 2018-11-21 2020-05-29 주식회사 크립트앤텍 Single power consumption trace analyzing and countermeasure against quantum resistance cryptography ntru technology
KR20210130196A (en) * 2019-02-19 2021-10-29 메사추세츠 인스티튜트 오브 테크놀로지 Configurable Lattice Cryptographic Processor and Related Techniques for Quantum-Secure Internet of Things

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11392825B2 (en) 2017-01-09 2022-07-19 Samsung Electronics Co., Ltd. Method and algorithm of recursive deep learning quantization for weight bit reduction
US11128454B2 (en) 2019-05-30 2021-09-21 Bong Mann Kim Quantum safe cryptography and advanced encryption and key exchange (AEKE) method for symmetric key encryption/exchange
KR102515090B1 (en) 2019-12-24 2023-03-29 한국과학기술원 Quantum algorithm and circuit for learning parity with noise of classical learning data and system thereof

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200012845A (en) * 2017-06-01 2020-02-05 즈와이프 에이에스 Progressive Key Encryption Algorithm
KR20200059600A (en) * 2018-11-21 2020-05-29 주식회사 크립트앤텍 Single power consumption trace analyzing and countermeasure against quantum resistance cryptography ntru technology
KR20210130196A (en) * 2019-02-19 2021-10-29 메사추세츠 인스티튜트 오브 테크놀로지 Configurable Lattice Cryptographic Processor and Related Techniques for Quantum-Secure Internet of Things

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ARAUJO JULIO, NISSE NICOLAS, PÉRENNES STÉPHANE: "Weighted Coloring in Trees", SIAM JOURNAL ON DISCRETE MATHEMATICS, THE SOCIETY, PHILADELPHIA, PA, US, vol. 28, no. 4, 1 January 2014 (2014-01-01), US , pages 2029 - 2041, XP093146254, ISSN: 0895-4801, DOI: 10.1137/140954167 *
KRANAKIS EVANGELOS, PAQUETTE MICHEL, PELC ANDRZEJ: "The diameter and connectivity of networks with random dependent faults", NETWORKS, NEW YORK, NY, US, vol. 56, no. 2, 1 September 2010 (2010-09-01), US , pages 103 - 115, XP093146256, ISSN: 0028-3045, DOI: 10.1002/net.20352 *

Also Published As

Publication number Publication date
KR20240038561A (en) 2024-03-25
KR20240038399A (en) 2024-03-25
KR102657596B1 (en) 2024-04-15

Similar Documents

Publication Publication Date Title
Zalivaka et al. Reliable and modeling attack resistant authentication of arbiter PUF in FPGA implementation with trinary quadruple response
Guo et al. Security analysis of concurrent error detection against differential fault analysis
Dofe et al. Hardware security assurance in emerging IoT applications
JP2541480B2 (en) Pseudo random number generator
Swierczynski et al. Bitstream fault injections (BiFI)–automated fault attacks against SRAM-based FPGAs
WO2012111872A1 (en) Encryption device and method for defending a physical attack
WO2020101325A1 (en) Encryption system and method employing permutation group-based encryption technology
JPS5873257A (en) Encoding device
Golić Correlation properties of a general binary combiner with memory
WO2020117015A1 (en) Operating device and method using multivariate packing
Ganji et al. Lattice basis reduction attack against physically unclonable functions
Jayasinghe et al. RFTC: Runtime frequency tuning countermeasure using FPGA dynamic reconfiguration to mitigate power analysis attacks
Li et al. Scan chain based attacks and countermeasures: A survey
Saha et al. MRC4: a modified rc4 algorithm using symmetric random function generator for improved cryptographic features
Moraitis et al. Bitstream modification attack on SNOW 3G
WO2024058298A1 (en) Method for generating hard sat and method for implementing sat-based quantum-resistant cryptographic algorithm
WO2018093203A1 (en) Calculation device for encryption using public key and encryption method thereof
Alaql et al. LeGO: A learning-guided obfuscation framework for hardware IP protection
US20130111204A1 (en) Hardware countermeasure against cryptographic attack
Lou et al. Entropy transformation and expansion with quantum permutation pad for 5g secure networks
EP3373504B1 (en) Encryption device, retrieval device, encryption program, retrieval program, encryption method, and retrieval method
WO2020246848A1 (en) Device and method for sorting approximately encrypted ciphertext
Ghandali et al. Temperature-based hardware trojan for ring-oscillator-based trngs
Zhang et al. On the construction of composite finite fields for hardware obfuscation
WO2018110775A1 (en) Electronic device authentication managing apparatus