Skip to content

Commit

Permalink
readme fix
Browse files Browse the repository at this point in the history
  • Loading branch information
jpsety committed Jul 11, 2019
1 parent ea1d1ee commit f4c7ddd
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 339 deletions.
10 changes: 10 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,20 @@ A chisel3/FIRRTL package that enables obfuscation of circuits

## Overview
Currently implemented are two techniques: Xor Locking and FSM Locking.

Xor locking will randomly add Xor gates to nets in the circuit. The Xor is inserted such that the net is broken by the Xor gate. The original net driver feeds into one Xor input and the output is connected to the net's original loads. The other input of the Xor is connected to a key input. With a 50% probability these Xors are accompanied by an inverter; thus in order to restore proper functionality, the key input must either be set to 1, inverting the net, or 0 buffering it.

The other technique is FSM Locking, which incorperates an activating reset sequence into a circuit. If the incorrect reset sequence is given, the circuit's functionality will be corrupted. This is implemented with an auxillary FSM which is added to the circut. The correct final state of the FSM is all 0s, and the FSM remains in this state until reset again. The FSM's outputs are connected to Xor gates in the same fashion as Xor Locking. Thus when the final state is reached the correct
functionality is restored. The FSM's inputs are connected to circuit inputs so no additional io is needed.

## Usage
Examples of each the usage of each technique can be found in src/main/scala/obfuscation/GCD.scala

Run FSM Locking:
`sbt 'runMain obfuscation.FSMLockingMain'`

Run FSM Locking auxillary FSM test:
`sbt 'runMain obfuscation.AuxFSMMain'`

Run Xor Locking:
`sbt 'runMain obfuscation.XorLockingMain'`
339 changes: 0 additions & 339 deletions src/main/scala/obfuscation/FSMLockTransform.scala.void

This file was deleted.

0 comments on commit f4c7ddd

Please sign in to comment.