Giter VIP home page Giter VIP logo

riscv-crypto's Introduction

RISC-V Cryptography Extension

RISC-V cryptography extensions standardisation work.

NOTE: 2024-Feb-16 (mjos): Since both scalar cryptography and vector cryptography extensions have been ratified, the documentation here is being merged into the unprivileged specifications. This repository will be eventually archived after the process is done.

The only remaining work item in this repository is related to the Zvbc32e/Zvkgs fast track extension. There is no other active development.


About

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

For a general overview of the extension status and ratification progress, please see our page on the RISC-V Wiki.

  • 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.

  • The Vector Cryptography extension proposals is available as a sub-directory of this repository vector

  • 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.

Spike

Spike is included as a submodule (extern/riscv-isa-sim), since we have upstream Spike support which is periodically updated as the specification progresses. See tools/README.md for instructions on how to build Spike.

Architectural Tests

See tests/compliance/README.md for information on how to run the work-in-progress RISC-V Architectural Test 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.

Note: This was formally known as the riscv-compliance test suite. Hence there are some references or directories to "compliance". These have been left in some cases to preserve widely shared links, especially to the test plan.

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.

riscv-crypto's People

Contributors

ben-marshall avatar kdockser avatar nibrunieatsi5 avatar mjosaarinen avatar jjscheel avatar nibrunie avatar egouriou-rivos avatar rpsene avatar hcpaukaifler avatar wmat avatar realfyang avatar ksyx avatar wangpc-pp avatar phthinh avatar ksco avatar howjmay avatar xavierjesteve avatar rdolbeau avatar ptomsich avatar nayuki avatar naohcc avatar lianakoleva avatar lawrencehunterct avatar kasanovic avatar dxie-tt avatar topperc avatar cmuellner avatar aswaterman avatar 4vtomat 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.