Skip to content
/ SCOPE Public

Unsupervised Constant-Propagation Attack for Locked Gate-level Netlists

Notifications You must be signed in to change notification settings

alaql89/SCOPE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

Thank you for your interest in our tool. The SCOPE attack evaluates logic locking techniques for constant-propagation vulnerabilities. SCOPE does not require the unlocked design (oracle-less), or any training, which makes it an extreamly impactful tool since it treats the design as a black-box.

Benchmark Format: SCOPE uses .bench circuits only. Key inputs for locked designs must be named exactly "keyinput" followed by an integer (for example, keyinput01, keyinput99, ...etc). no other letters, symbols or spaces allowed.

Targetted Locking techniques: We have used benchmarks that were originally generated by Pramod Subramanyan's (he was my superhero, may he rest in piece) locking tool.

Additionally, we have created randomly inserted MUX-based locked benchmarks, these include c6288 (which is resiliant to SAT-based attacks, but not to constant-propagation attacks).

Tool dependancy: Please download and install ABC compiler in the provided folder in order to run the tool. The compiler can be found here:

https://github.com/berkeley-abc/abc

The ABC binary must be compiled in "abc_compiler" folder (./abc_compiler/abc must exist).

Running the SCOPE attack: in order to run the attack, please place the locked benchmarks in the "attacked_files" folder. Please check the included examples carefully and follow their syntax to avoid errors. Before you place your locked benchmarks, I would advise you to run the tool with the current attacked example files to make sure that everything is working.

WARNING: do not rename the provided folders.

Running the following command will start the SCOPE attack:

$ ./src/scope [margin]

Margin is an optional argument that controls the allowed margin between features. The value should be between 0 and 1, but going beyond 0.1 will reduce the attack accuracy (please refer to the paper for more information). The following two examples show how to start the SCOPE attack, EXAMPLE 1 uses the default margin value (0.00), while EXAMPLE 2 uses a specific value (2%).

EXAMPLE 1: $ ./src/scope

EXAMPLE 2: $ ./src/scope 0.02

If a "permission denied" error occurs, run:

$ chmod u+x ./src/scope

Please contact me if you have any questions/feedback: alaql89@ufl.edu

About

Unsupervised Constant-Propagation Attack for Locked Gate-level Netlists

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published