Skip to content
Code related to solving the LCS35 timelock puzzle.
SystemVerilog Python
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
13cc
9cc
common
scripts
LICENSE
README.md

README.md

Cryptophage LCS35 Solver

This repository contains designs developed by the www.cryptophage.com collaboration that were used to solve the MIT LCS35 timelock puzzle.

These are prototype designs developed specifically to solve the puzzle and are released AS-IS.

Enjoy!

Designs

Three different designs are represented here:

13cc

This is a lookup-table based reduction design with a 13 clock cycle latency based on the architecture presented by Erdinc Ozturk at MIT VDF Day 2019 (https://dci.mit.edu/vdfday).

9cc

This is a lookup-table based reduction design with a 9 clock cycle latency based on the architecture presented by Erdinc Ozturk at MIT VDF Day 2019 (https://dci.mit.edu/vdfday).

scripts/sq2k_lut.py is a python implementation of the same.

Barrett/Montgomery

scripts/sq2k_barrett_mont.py is a python implementation of the Barrett+Montgomery reduction approach presented by Erdinc Ozturk at Stanford VDF Day 2019.

Files

13cc

Files applicable to the 13cc design are:

13cc/add_16_38.sv
13cc/add_16_66.sv
13cc/csa_22.sv
13cc/curr_mul.sv
13cc/Preg.sv
13cc/sq2K_datapath.sv
common/csa_25.sv
common/FA.sv
common/mul_17x17_asic.sv

In addition, the lookup tables must be generated as follows:

cd 13cc/mem
./sq2K_newred_util.py

9cc

Files applicable to the 13cc design are:

9cc/sq2K_datapath.sv
9cc/curr_mul.sv
common/Preg.sv
common/add_16_8.sv
common/accum_PP10.sv
common/add_16_9.sv
common/add_16_66_B.sv
common/FA.sv
common/csa_23.sv
common/csa_20.sv
common/csa_25.sv
common/mul_17x17_asic.sv
common/accum_PP4.sv
common/accum_PP6.sv
common/accum_Resv3C.sv
common/add_16_6.sv
common/accum_Resv3B.sv
common/add_16_5.sv
common/add_16_66.sv
common/accum_PP2.sv
common/add_16_4.sv
common/accum_Resv1A.sv
common/csa_19.sv
common/accum_Resv1B.sv
common/accum_Resv3A.sv

In addition, the lookup tables must be generated as follows:

cd 9cc/mem
./sq2K_newred_util.py
You can’t perform that action at this time.