GithubHelp home page GithubHelp logo

bingoshu / cophee Goto Github PK

View Code? Open in Web Editor NEW

This project forked from momalab/cophee

0.0 0.0 0.0 8.89 MB

CoPHEE is a Co-processor for Partially Homomorphic Encrypted Encryption.

License: GNU General Public License v3.0

Verilog 92.15% Coq 0.35% Shell 0.43% V 7.07%

cophee's Introduction

CoPHEE

CoPHEE is a Co-processor for Partially Homomorphic Encrypted Encryption. CoPHEE assists the host processor with the calculation of big number modular arithmetic like modular multiplication, modular exponentiation, and modular inverse, for operand size 64-bit to 2048-bit. In addition, it calculates the greatest common divisor (GCD) of two numbers and generates random numbers. The host processor communicates with CoPHEE through an UART interface. CoPHEE has been fabricated in ASIC (65 nm Globalfoundry LPe process) and a 512-bit version has also been loaded on an FPGA (Nexys-4 DDR).

Copyright (c) 2019 Michail Maniatakos, New York University Abu Dhabi, https://wp.nyu.edu/momalab/

Cite us!

If you find our work useful, please cite our publication (author's version pdf):

M. Nabeel, M. Ashraf, E. Chielle, N.G. Tsoutsos, and M. Maniatakos.
“CoPHEE: Co-processor for Partially Homomorphic Encrypted Execution”. 
In: IEEE Hardware-Oriented Security and Trust (HOST), 2019. 

Request a copy of CoPHEE

A limited number of fabricated ASICs of CoPHEE can be sent to researchers. Please e-mail the MoMA Lab director with a request.

Technical report for CoPHEE

A technical report detailing the design and fabrication process for CoPHEE can be found here.

RTL files description

All the RTL directories are present under: https://github.com/momalab/CoPHEE/tree/master/modules

Final Set of RTL Files:

#Chip Top File ./modules/ccs0101/rtl/ccs0101.v ./modules/ccs0101/rtl/ccs0101_define.v

#Chip IO File ./modules/padring/rtl/padring.v

#Chip Core File ./modules/chip_core/rtl/chip_core.v

#Bus Matrix ./modules/ahb_ic/rtl/ahb_ic.v

#Uart Master ./modules/uartm/rtl/uartm.v ./modules/uartm/rtl/uartm_ahb.v ./modules/uartm/rtl/uartm_rx.v ./modules/uartm/rtl/uartm_tx.v

#Chip Configuration Space ./modules/gpcfg/rtl/gpcfg_rd.v ./modules/gpcfg/rtl/gpcfg_rd_wr.v ./modules/gpcfg/rtl/gpcfg_rd_wr_p.v ./modules/gpcfg/rtl/hw_rng_fsm.v ./modules/gpcfg/rtl/gpcfg.v

#Modular Interleaved Multiplier ./modules/crypto_lib/rtl/mod_mul_il.v

#Montgomery Multiplier ./modules/crypto_lib/rtl/montgomery_to_conv.v ./modules/crypto_lib/rtl/montgomery_mul.v ./modules/crypto_lib/rtl/montgomery_from_conv.v

#Modular Inverse/Binary Exended GCD ./modules/crypto_lib/rtl/bin_ext_gcd.v

#Modular Exponentiation ./modules/gpcfg/rtl/mod_exp.v

#TRNG ./modules/crypto_lib/rtl/trng_wrap.v ./modules/crypto_lib/rtl/trng.v ./modules/crypto_lib/rtl/random_num_gen.v ./modules/crypto_lib/rtl/vn_corrector.v

#UART SLAVE ./modules/uarts/rtl/uarts.v ./modules/uarts/rtl/uarts_tx.v ./modules/uarts/rtl/uarts_rx.v

#Technology Library Cells directly used in ./modules/chip_core/rtl/chip_core.v ./modules/chiplib/rtl/chiplib.v ./modules/padring/rtl/rgo_csm65_25v33_50.v

#GPIO ./modules/gpio/rtl/gpio.v

#Top Level Test Bench ./modules/ccs0101/verif/ccs0101_tb.v ./modules/ccs0101/verif/pad_model.v ./modules/ccs0101/verif/padring_tb.v

#Include directories/Search path needed for compilation +incdir+./design/modules/uartm/rtl +incdir+./design/modules/uarts/rtl +incdir+./design/modules/gpcfg/rtl

#Sample Simulation Script ./modules/ccs0101/verif/run_test.sh

cophee's People

Contributors

educhielle avatar findnabeel avatar momalab avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.