Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.5%) to scientific vocabulary
Last synced: 10 months ago · JSON representation ·

Repository

Basic Info
  • Host: GitHub
  • Owner: twojtal
  • License: other
  • Language: C
  • Default Branch: main
  • Size: 46.9 MB
Statistics
  • Stars: 0
  • Watchers: 2
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created about 2 years ago · Last pushed about 2 years ago
Metadata Files
Readme Citation

README.md

Adjoining Gate System:

The Adjoining Gate system is an open-source set of functions for implementing an optical side-channel attack prevention measure as an extention to logic locking. Leakage scanning functions rely on the open-source EOFM-based attack created by Zuzak et al. from "A Combined Logical and Physical Attack on Logic Obfuscation". A detailed overview of Adjoining Gate development, implementation, and functionality can be found in the paper titled:

Adjoining Gates: Mitigating Optical Side-Channel Attacks on Integrated Circuits through Security-Aware Placement Author: Thomas Wojtal

This code is built on the Berkely ABC tool, which can be found at (https://people.eecs.berkeley.edu/~alanmi/abc/).

Compiling:

To compile, clone this repo and then type make.

Compiling as C or C++

The current version of ABC can be compiled with C compiler or C++ compiler.

  • To compile as C code (default): make sure that CC=gcc and ABC_NAMESPACE is not defined.
  • To compile as C++ code without namespaces: make sure that CC=g++ and ABC_NAMESPACE is not defined.
  • To compile as C++ code with namespaces: make sure that CC=g++ and ABC_NAMESPACE is set to the name of the requested namespace. For example, add -DABC_NAMESPACE=xxx to OPTFLAGS.

Running the Program:

The program is run within the ABC synthesis tool. After successfully compiling abc, Adjoining Gate functions can be run from the abc command line. To do so:

  • Launch the abc command line tool

./abc

  • Read in an obfuscated benchmark circuit. Several have been provided in the probing_benchmarks directory of this repo.

read_bench <BENCHMARK_NAME>

  • Group the circuit into Adjacency Tags.

abc 01> bfs -g <group_size>

  • Launch the leakage scan on this benchmark. The usage notes for the command is shown below:

abc 01> scan -g -a

usage: scan [-apgkclovrh]
            The physical portion of the CLAP attack in ABC.
-a         : list nodes in adjacency tag order
-p         : prints only the leakage of the network
-g         : scan the groups based on adjacency tag (network must first be BFS grouped)
-k <key>   : input the correct oracle key value for EOFM probing simulation
-c <int>   : maximum number of key inputs for a node to be considered for EOFM probing [default = 7]
-l <float> : minimum portion of keyspace that must be eliminated for a multi-node probe to be run [default = 0.006125]
-o <str>   : set name of SAT solver output file from physical portion of CLAP attack [default = \"physical_clap_out.bench\"]
-v         : toggle printing verbose information [default = %s]
-r <int>   : set the probe resolution size [default = 1]
-h         : print the command usage
  • Use the run command to apply Adjoining Gates to all leaking nodes.

abc 01> run

Adjoining Gate Example Runs

Automated Run

$ ./autoRun.sh

Manual Run

$ ./abc UC Berkeley, ABC 1.01 (compiled Jan 29 2024 23:04:40) abc 01> readbench ./probingbenchmarks/c1908/SLL/c1908_SLL.bench abc 02> bfs abc 02> scan -g -a abc 02> run abc 02> scan -g -a

Benchmarks

All benchmarks from the ICCAD'22 manuscript can be found in the probing_benchmarks directory. The correct key value for each of these benchmarks is contained in the probing_benchmarks/iccad_benchmark_keys.txt.

b14: readbench ./probingbenchmarks/b14/AntiSAT/b14BA16gatelevelfinal.v.bench readbench ./probingbenchmarks/b14/Full-Lock/b14locked4040gatelevelfinal.v.bench readbench ./probingbenchmarks/b14/SFLL/b14SFLL277gatelevelfinal.v.benchfix readbench ./probingbenchmarks/b14/SLL/b14SLL.bench

c1908: readbench ./probingbenchmarks/c1908/AntiSAT/c1908BA16.bench readbench ./probingbenchmarks/c1908/Full-Lock/c1908locked3232gatelevelfinal.v.bench readbench ./probingbenchmarks/c1908/SFLL/c190833gatelevelfinal.v.bench readbench ./probingbenchmarks/c1908/SLL/c1908SLL.bench

c5315: readbench ./probingbenchmarks/c5315/AntiSAT/c5315BA16gatelevelfinal.v.bench readbench ./probingbenchmarks/c5315/Full-Lock/c5315locked4040gatelevelfinal.v.bench readbench ./probingbenchmarks/c5315/SFLL/c5315SFLL178gatelevelfinal.v.bench readbench ./probingbenchmarks/c5315/SLL/c5315SLL.bench

des: readbench ./probingbenchmarks/des/AntiSAT/desBA16gatelevelfinal.v.bench readbench ./probingbenchmarks/des/Full-Lock/deslocked4040gatelevelfinal.v.bench readbench ./probingbenchmarks/des/SFLL/desSFLL256gatelevelfinal.v.benchfix readbench ./probingbenchmarks/des/SLL/desSLL.bench

Final remarks:

For questions, please reach out to:

Thomas Wojtal tsw4235@rit.edu or Michael Zuzak mjzeec@rit.edu Department of Computer Engineering Rochester Institute of Technology (RIT)

Acknowledgements:

A special thanks to the NSF for supporting this work under Grant 2245573.

Owner

  • Login: twojtal
  • Kind: user

Citation (CITATION.cff)

cff-version: 1.2.0
authors:
  - family-names: Wojtal
    given-names: Thomas
title: "Adjoining Gate"
date-released: 2024-06-20
url: "https://github.com/twojtal/Adjoining-Gate/"

GitHub Events

Total
Last Year