Download the latest RESim Source code here.

Below are known issues, limitations and bugs with the source code for RESim. The list will be updated periodically as changes or new discoveries occur

  • Performance issue with simplifying expressions with the common solutions.
  • Chance of max recursion limit being reached by PyEDA due to the complexity of the expression.

Version 0.2

Version 0.2.2
  • Modified RESim.py to use Netlist Analysis Tools as a package.
Version 0.2.1
  • Updated Netlist Analysis Tools package to version 0.2.1
  • Implemented bitvector and vector classes
  • Implemented reverse engineering solutions to higher level logic blocks.
    • Tested on RSA_T100, RSA_T200, RSA_T300,RSA_T400, AES_128_T800
Version 0.2.0
  • Creasted Netlist Analysis Tools to allow easier implementation of classes and methods.
  • All previously created scripts, Step1-7.py, AnalyzeCV.py, AnalyzeNetlist.py, config.txt, are deprecated and removed.
  • RESim.py created to perform the automated RESim procedure using the Netlist Analysis Tools.

Version 0.1

Version 0.1.1
  • Renamed important scripts to Step1-6.
  • Created Step7.py, which performs similar methods as Step6 but allows to choose which set of solutions to create the reverse logic statements from. Tested for AES T800.
  • Many bugs still exist, especially array out of bounds errors.
Version 0.1.0
  • Initial working release.
  • RESim split into different scripts by function.
    • First script parsed the netlist and created expressions and control values.
    • Second script identified expressions below control value threshold and created the modified netlist and test-bench file.
    • Third script analyzed the test-bench results file and identified low activity signals.
    • Fourth script re-analyzed the netlist to perform replacements of synthesized wires with named registers.
    • Fifth script used a PyEDA and a SAT solver to find solutions for the low activity signals.
    • Sixth script performed reverse engineering of the solutions found by plugging solutions into expressions and simplifying.
  • Testing working with the RSA Trojan benchmarks.