-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Labels
Description
Source: Satisfiability
Target: MultivariateQuadratic (over F₂)
Motivation: SAT can be reduced to MQ over F₂ in polynomial time. This reduction enables solving SAT instances using algebraic formulations and complements the reverse direction (MQ over F₂ to SAT).
Reference:
- Courtois, N., & Meier, W. (2003). "Algebraic attacks on stream ciphers with linear feedback." In Advances in Cryptology — EUROCRYPT 2003.
- Bard, G. V. (2009). Algebraic Cryptanalysis. Springer.
Reduction Algorithm
Notation:
- Source: SAT instance with n boolean variables x₁, ..., xₙ and m clauses
- Preprocessing: first convert SAT to 3-SAT (standard polynomial-time step), obtaining n' variables and m' clauses
- Target: MQ instance over F₂ with n' + m' variables and 2m' quadratic equations (one auxiliary variable per clause)
Variable mapping:
- Each 3-SAT variable xᵢ ∈ {0, 1} maps directly to MQ variable xᵢ ∈ F₂
- For each 3-SAT clause Cⱼ = (ℓ₁ ∨ ℓ₂ ∨ ℓ₃), introduce one auxiliary variable tⱼ ∈ F₂
Constraint transformation:
For each 3-SAT clause Cⱼ = (ℓ₁ ∨ ℓ₂ ∨ ℓ₃):
-
Define
- α = 1 + ℓ₁
- β = 1 + ℓ₂
- γ = 1 + ℓ₃
so clause satisfaction is equivalent to α·β·γ = 0 in F₂.
-
Quadratize with one auxiliary variable tⱼ:
- tⱼ + α·β = 0
- tⱼ·γ = 0
Both equations are quadratic (degree ≤ 2), so they fit MultivariateQuadratic.
Solution extraction:
Read the original variables x₁, ..., xₙ from any satisfying MQ assignment; auxiliary variables tⱼ are internal and can be ignored.
Size Overhead
| Target metric (code name) | Polynomial (using symbols above) |
|---|---|
| field_size | 2 (constant, F₂) |
| num_variables | n' + m' |
| num_equations | 2m' |
Validation Method
- Cross-check with SAT solvers on standard benchmarks (SATLIB, SAT Competition instances)
- Verify on small hand-crafted instances (3-4 variables, 5-6 clauses)
- Compare with existing SAT-to-polynomial converters (PolyBoRi, ANF tools)
- Test on unsatisfiable instances to ensure NO is correctly detected
Example
Source SAT instance (already 3-SAT):
Variables: x₁, x₂, x₃
Clauses:
C₁: (x₁ ∨ ¬x₂ ∨ x₃)
C₂: (¬x₁ ∨ x₂ ∨ x₃)
Target MQ instance (F₂):
Field: F₂ = {0, 1}
Variables: x₁, x₂, x₃, t₁, t₂
Equations:
# Clause C₁: (x₁ ∨ ¬x₂ ∨ x₃)
f₁: t₁ + (1 + x₁)·x₂ = 0
f₂: t₁·(1 + x₃) = 0
# Clause C₂: (¬x₁ ∨ x₂ ∨ x₃)
f₃: t₂ + x₁·(1 + x₂) = 0
f₄: t₂·(1 + x₃) = 0
Solution:
- SAT solution: x₁=1, x₂=1, x₃=1 (satisfies all clauses)
- MQ extension: choose t₁=0, t₂=0
- Verification:
- f₁: 0 + (1+1)·1 = 0
- f₂: 0·(1+1) = 0
- f₃: 0 + 1·(1+1) = 0
- f₄: 0·(1+1) = 0
Overhead verification:
- Source (3-SAT): n'=3 variables, m'=2 clauses
- Target: num_variables = n' + m' = 3 + 2 = 5, num_equations = 2m' = 4
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
Backlog