• Stars
    star
    358
  • Rank 118,855 (Top 3 %)
  • Language
    C
  • License
    Creative Commons ...
  • Created about 5 years ago
  • Updated 10 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

RISC-V cryptography extensions standardisation work.

RISC-V Cryptography Extension

RISC-V cryptography extensions standardisation work.


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.

More Repositories

1

riscv-isa-manual

RISC-V Instruction Set Manual
TeX
3,546
star
2

riscv-v-spec

Working draft of the proposed RISC-V V vector extension
Assembly
961
star
3

riscv-opcodes

RISC-V Opcodes
Python
657
star
4

learn

Tracking RISC-V Actions on Education, Training, Courses, Monitorships, etc.
462
star
5

sail-riscv

Sail RISC-V model
Coq
455
star
6

riscv-debug-spec

Working Draft of the RISC-V Debug Specification Standard
Python
454
star
7

meta-riscv

OpenEmbedded/Yocto layer for RISC-V Architecture
BitBake
350
star
8

riscv-fast-interrupt

Proposal for a RISC-V Core-Local Interrupt Controller (CLIC)
Makefile
236
star
9

riscv-bitmanip

Working draft of the proposed RISC-V Bitmanipulation extension
Makefile
205
star
10

riscv-j-extension

Working Draft of the RISC-V J Extension Specification
Makefile
160
star
11

riscv-p-spec

RISC-V Packed SIMD Extension
138
star
12

riscv-plic-spec

PLIC Specification
125
star
13

riscv-profiles

RISC-V Architecture Profiles
Makefile
104
star
14

riscv-cfi

This repo holds the work area and revisions of the RISC-V CFI (Shadow Stack and Landing Pads) specifications. CFI defines the privileged and unprivileged ISA extensions that can be used by privileged and unprivileged programs to protect the integrity of their control-flow.
Makefile
83
star
15

docs-dev-guide

Documentation developer guide
TeX
79
star
16

riscv-CMOs

HTML
77
star
17

riscv-aia

77
star
18

riscv-cheri

This repository contains the CHERI extension specification, adding hardware capabilities to RISC-V ISA to enable fine-grained memory protection and scalable compartmentalization.
Python
50
star
19

riscv-test-env

C
40
star
20

riscv-aclint

Makefile
39
star
21

virtual-memory

35
star
22

configuration-structure

RISC-V Configuration Structure
Python
35
star
23

riscv-smmtt

This specification will define the RISC-V privilege ISA extensions required to support Supervisor Domain isolation for multi-tenant security use cases e.g. confidential-computing, trusted platform services, fault isolation and so on.
Makefile
26
star
24

riscv-bfloat16

Makefile
26
star
25

docs-resources

19
star
26

docs-spec-template

Makefile
18
star
27

riscv-control-transfer-records

This repo contains a RISC-V ISA extension (proposal) to allow recording of control transfer history to on-chip registers, to support usages associated with profiling and debug.
Makefile
14
star
28

riscv-smbios

RISC-V SMBIOS Type 44 Spec
TeX
13
star
29

riscv-double-trap

RISC-V Double Trap Fast-Track Extension
Makefile
12
star
30

riscv-spmp

The repo contains the SPMP architectural specification, which includes capabilities like access control of read/write/execute requests by an hart, address matching, encoding of permissions, exceptions for access violation, and support for virtualization.
TeX
11
star
31

riscv-docs-base-container-image

A base container image populated with the dependencies to build the RISC-V Documentation.
9
star
32

riscv-zabha

The Zabha extension provides support for byte and halfword atomic memory operations.
Makefile
8
star
33

riscv-attached-matrix-facility

Attached Matrix Facility Specification
Makefile
6
star
34

riscv-glossary

Makefile
6
star
35

riscv-zilsd

Zilsd (Load/Store Pair for RV32) Fast-Track Extension
Makefile
6
star
36

riscv-software-ecosystem

A curated list of the status of different softwares on RISC-V
5
star
37

riscv-performance-events

RISC-V Performance Events Specification
Makefile
4
star
38

riscv-b

"B" extension - that represents the collection of the Zba, Zbb, and Zbs extensions
Makefile
4
star
39

riscv-zaamo-zalrsc

Zaamo / Zalrsc: A extension components
Makefile
4
star
40

riscv-ssqosid

This repo will hold the specification for the proposed QoS ID extension being pursued on the fast-track process.
Makefile
2
star
41

.github

2
star
42

riscv-svvptc

Obviating Memory-Management Instructions after Marking PTEs Valid (Svvptc)
Makefile
2
star
43

riscv-memory-tagging

Memory Tagging ISA extension that can be used by software to enforce memory tag checks on memory loads and stores
Makefile
2
star
44

riscv-dot-product

Dot-Product Extension
Makefile
2
star
45

riscv-smcdeleg-ssccfg

Supervisor Counter Delegation Architecture Extension
Makefile
2
star
46

composable-custom-extensions

This task group will propose ISA extension(s) and non-ISA hardware and software interop interfaces to enable routine reuse and composition of a subcategory of custom extensions called composable extensions.
Makefile
1
star
47

riscv-ssrastraps

The RAS exception and interrupts extension (Ssrastraps) defines standard local interrupt numbers and exception-cause codes for reporting errors detected by RAS functions in the system.
TeX
1
star
48

riscv-zalasr

The ISA specification for the Zalasr extension.
Makefile
1
star
49

riscv-pqc

Post Quantum Cryptography
Makefile
1
star
50

riscv-ssdtso

The Ssdtso is a fast-track extension adding a 'dynamic-RVTSO' mode of operation and on-demand per-hart switching between the memory models.
Makefile
1
star
51

lightweight-isolation

The Lightweight Isolation Specification
Makefile
1
star
52

riscv-hac

High Assurance Cryptography
Makefile
1
star
53

riscv-ras-eri

The (RAS Error-record Register Interface) RERI provides a specification to augment RAS features in RISC-V SOC hardware to standardize reporting and logging of errors by means of a memory-mapped register interface to enable error detection, provide the facility to log the detected errors (including their severity, nature, and location), and configuring means to report the error to a handler component.
TeX
1
star