In this section, we present the design rationale and the proposed scheme. We provide
a detailed analysis of the mechanism by which point-function logic locking achieves
resistance against SAT attacks, and discuss how to enhance its output corruption without
degrading its SAT-resistance. Building upon this foundation, we introduce the specific
design. The proposed design ensures security against SAT attacks, maximizes the output
corruption for incorrect keys, and exhibits resilience against removal attacks.
1. The Design Idea
As previously discussed, point-function logic locking resists SAT attacks by significantly
increasing the number of iterations required. Taking the Anti-SAT block as an example,
when $p = 1$, the SAT attack requires $2^n$ iterations. During each iteration, the
SAT attack selects a DIP and eliminates keys that produce incorrect outputs for that
DIP. To achieve a high number of iterations, it is necessary to design incorrect keys
such that each key can only be invalidated by a specific DIP. Point-function logic
locking exploits this principle: its incorrect keys have an output corruption of 1,
meaning circuit functionality is inverted only for a specific input pattern. This
enables the SAT attack to reach its maximum iteration count. However, this very mechanism
also results in low output corruption for incorrect keys. Subsequent schemes like
SFLL were designed to increase output corruption. However, this enhancement comes
at the cost of SAT resistance. In SFLL, a single DIP can eliminate multiple incorrect
keys. Crucially, the higher the output corruption designed for incorrect keys, the
lower the scheme's resistance to SAT attacks becomes. Comparing SFLL and Anti-SAT
reveals key differences: SFLL typically has $2^n$ keys. Increasing output corruption
allows a single DIP to eliminate many keys, inevitably reducing the iteration count
below the maximum possible. In contrast, the Anti-SAT block has $2^{2n}$ keys. While
a single DIP can also eliminate multiple keys here, there exist at least $2^n$ incorrect
keys in Anti-SAT, each requiring a unique DIP for invalidation. This ensures the SAT
attack reaches its maximum iteration count of $2^n$.
To achieve robust SAT resistance while simultaneously maximizing output corruption,
we employ a locking scheme using the same key length as Anti-SAT ($2n$ bits). The
ideal input-output relationship for our design is depicted in Fig. 3. In this figure, the black area signifies regions where the output is flipped ($Y
= 1$), while the white area represents normal operation ($Y = 0$). To ensure the SAT
attack iterations approach the theoretical maximum of $2^n$, we must configure the
locking so that as many input patterns as possible have at least one incorrect key
that only that specific pattern can invalidate. Generally, a locking scheme needs
to weigh the relationship between output corruptibility and its ability to resist
SAT attacks. For a locked circuit, it is desirable to have high output corruptibility,
with the ideal value approaching 1/2. At this level, correct and corrupted outputs
are equally likely, providing the strongest obfuscation. As reflected in Fig. 3, this requires that the number of corrupted outputs under incorrect keys (represented
by the gray regions) approaches half of the total possible outputs. Implementing the
input-output relationship as depicted in Fig. 3 not only maintains high resistance against SAT attacks but also provides the highest
possible output corruptibility characteristic.
Fig. 3. The input-output relationship that can resist SAT and provide the highest
output corruptibility.
2. MOCASLL
Based on the aforementioned design concept, this paper proposes a novel logic locking
scheme named Maximum Output Corruption Anti-SAT Logic Locking (MOCASLL). As its name
implies, MOCASLL aims to protect circuits against SAT attacks while simultaneously
maximizing the overall output corruption of the encrypted circuit, achieving a value
approximately equal to half of the total outputs. As shown in Fig. 4, The proposed MOCASLL design consists of two distinct functional units that are inserted
into the original circuit to provide protection: the Iteration Increasing Unit (IIU)
and the Corruption Increasing Unit (CIU). The complete cryptographic key, denoted
as $K = K_1 \parallel K_2$, comprises a total of $2n$ bits. Here, $K_1 = (k_1, k_2,
..., k_n)$ represents the $n$-bit key for the IIU, and $K_2 = (k_{n+1}, k_{n+2}, ...,
k_{2n})$ represents the $n$-bit key for the CIU.
The outputs of these two units are interconnected via an XOR gate. This combined result
is then XORed with the original circuit output $Y_o$, yielding the final output
Within the IIU, drawing inspiration from the effectiveness of point-function-based
encryption schemes in resisting SAT attacks, we perform operations (XOR or XNOR) between
the first $n$ bits of the key $K_1$ and the corresponding $n$ bits of the primary
input $X$. The results of these operations are then fed into an AND gate network.
This structure ensures that, across the combined space of primary inputs and IIU keys,
each incorrect key $K_1$ flips the output value for exactly one specific input pattern.
While this satisfies a critical condition for SAT attack resistance, it results in
a low overall output corruptibility. To address this limitation, we designed the Corruptibility
Increase Unit (CIU). In the CIU, a single primary input signal is connected to a single
key input bit via an XOR or XNOR gate. Concurrently, one specific key bit from the
$n$ bits of $K_2$, designated as the Selected Key (SK), has its logic value fed into
a NAND gate. The outputs of these two gates (the XOR/XNOR gate and the NAND gate)
are then combined using an AND gate. This design relaxes constraints on the primary
inputs while strengthening constraints on the key inputs. Consequently, within the
combined input-key space of the CIU, all keys except the SK exhibit an output corruption
close to $2^{n-1}$ (i.e., half of the outputs are flipped for a given key). The SK
itself produces zero output corruption.
Leveraging the XOR gate to connect the IIU and CIU outputs offers distinct advantages
over traditional structures like the Anti-SAT block, which typically employ an AND
gate. While maximizing the overall output corruptibility (Cr) with an AND gate requires
both units to output `1' simultaneously across a large portion of the combined $2n$-bit
key and $n$-bit primary input space - implying that each unit must achieve high individual
corruptibility in its respective domain, potentially at the cost of SAT resistance
- the XOR connection allows for a clear separation of concerns. The CIU can focus
solely on maximizing Cr, while the IIU provides the essential SAT attack resistance.
Across the entire $2n$-bit key space, the specific logic structure involving the SK
dictates that for keys where $K_2$ equals the SK (i.e., $K_2 = SK$), the number of
corrupted outputs is solely determined by the IIU. Given that the IIU produces exactly
one corrupted output for each of its incorrect keys, this results in $2^n$ incorrect
keys of the form $K_1 \parallel SK$, each producing exactly one corrupted output.
Due to the point-function nature of the IIU's design, each of these keys can only
be invalidated by its unique distinguishing input pattern, thereby maximizing the
number of iterations required by a SAT attack. Among the remaining incorrect keys,
there are $2^{2n-1} - 2^{n-1}$ incorrect keys that cause $2^{n-1} + 1$ corrupted outputs
and $2^{2n-1} - 2^{n-1}$ incorrect keys that cause $2^{n-1} - 1$ corrupted outputs.
Critically, this initial design lacks a correct key for normal circuit operation.
To address this fundamental requirement of any locking mechanism - providing a usable
correct key for legitimate users - we introduce a specific input pattern called the
Indistinguishable Input Pattern (IIP). The logic value of this IIP is fed into the
IIU's AND gate via a NAND gate. This modification strategically creates exactly one
correct key that produces zero corrupted outputs across all primary inputs, enabling
correct circuit functionality. Consequently, the distribution of the number of corrupted
outputs across all keys in the final design is summarized in Table 1: yielding one correct key with 0 corrupted outputs, $2^n - 1$ incorrect keys each
causing exactly one corrupted output, $2^n - 1$ incorrect keys each causing $2^{n-1}$
corrupted outputs, and $2^{2n} - 2^{n+1} + 1$ incorrect keys causing either $2^{n-1}
+ 1$ or $2^{n-1} - 1$ corrupted outputs, where the counts for these two latter categories
differ by only one. Therefore, the total number of iterations required by the SAT
attack is reduced from $2^n$ to $2^n - 1$, a reduction whose practical impact is negligible.
According to the calculation formula shown in Eq. (2), the output corruptibility (Cr) over the total space of keys and primary inputs is
expressed as
which approximates to
As $n$ increases, Cr asymptotically approaches $\frac{1}{2}$. This proves that MOCASLL
provides both robust resistance against SAT attacks and near-maximal output corruptibility.
In the next section, we will thoroughly validate MOCASLL's resilience against SAT
and removal attacks, and discuss its comparison with other logic locking techniques
aimed at enhancing output corruptibility.
Fig. 4. The structure of the proposed MOCASLL.
Table 1. Distribution of corrupted outputs per key under $n$-bit primary inputs in
the proposed design.
|
Key type
|
Corrupted outputs
|
Number of keys
|
|
Correct key
|
0
|
1
|
|
Incorrect key
|
1
|
$2^n - 1$
|
|
$2^{n-1}$
|
$2^n - 1$
|
|
$2^{n-1} + 1 / 2^{n-1} - 1$
|
$2^{2n} - 2^{n+1} + 1$
|