Skip to content

RISC-V cryptography extensions standardisation work.

Notifications You must be signed in to change notification settings

HCPauKaifler/riscv-crypto

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RISC-V Cryptography Extension

RISC-V cryptography extensions standardisation work.


About

This repository is used to develop standardisation proposals for scalar cryptographic instruction set extensions for the RISC-V architecture.

  • Note: See the dev/next-release branch for the most up to date version.

  • Note: These instructions are a work in progress. Their specifications will to change before being accepted as part of the RISC-V standard. While there are experimental encodings assigned to the proposed instructions, they should not be depended upon. They only exist to enable a toolchain and simulator flow. They will change.

  • The Scalar Cryptography extension proposals overlap significantly with the Bitmanip extension. Hence, we are experimenting with sharing opcodes between extensions.

  • See the project board for a list of on-going / open issues. "How Can I Help?"

  • Some of the proposals in this repository are based on work done as part of the XCrypto project by the University of Bristol Cryptography Group on scalar cryptography extensions to RISC-V.

Specification

To see the latest draft release of the proposals, look at the Releases tab of the Github Repository.

Source code and supplementary information is found in the doc/ directory.

Formal Model

There is a work-in-progress formal-model implementation of the crypto instructions in the sail/ directory. See the README file for information on how to build and use it.

Toolchain

See tools/README.md for instructions on how to build the experimental toolchain.

There is also a task list for implementing an upstreamable patch. If you can implement this patch, please get in touch.

Compliance

See tests/compliance/README.md for information on how to run the work-in-progress riscv-compliance suite for the cryptography extension. You will need to setup the toolchain, spike and SAIL before you can do this.

There is also a work-in-progress test plan for the Scalar cryptography extensions.

Benchmarks

See benchmarks/README.md for how to get started with the benchmarking flow and how to contribute new benchmarks.

Verilog RTL Prototypes

See the rtl/ directory for information on experimental RTL implementations of the proposed instructions.

About

RISC-V cryptography extensions standardisation work.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Languages

  • C 37.6%
  • Verilog 27.9%
  • Python 11.8%
  • Assembly 9.3%
  • Makefile 5.5%
  • SystemVerilog 4.6%
  • Other 3.3%