Skip to content

Latest commit

 

History

History
251 lines (213 loc) · 6.74 KB

riscv-crypto-spec-vector.adoc

File metadata and controls

251 lines (213 loc) · 6.74 KB

RISC-V Cryptography Extensions Volume II: Vector Instructions

Colophon

This document describes the Vector Cryptography extensions to the RISC-V Instruction Set Architecture.

This document is Ratified. No changes are allowed. Any desired or needed changes can be the subject of a follow-on new extension. Ratified extensions are never revised. For more information, see here.

Note
Copyright and licensure:
This work is licensed under a Creative Commons Attribution 4.0 International License
Note
Document Version Information:

See github.com/riscv/riscv-crypto for more information.

Acknowledgments

Contributors to this specification (in alphabetical order) include:
Allen Baum, Barna Ibrahim, Barry Spinney, Ben Marshall, Derek Atkins, Ken Dockser (Editor), Markku-Juhani O. Saarinen, Nicolas Brunie, Richard Newell

We are all very grateful to the many other people who have helped to improve this specification through their comments, reviews, feedback and questions.

1. Extensions Overview

The section introduces all of the extensions in the Vector Cryptography Instruction Set Extension Specification.

The Zvknhb and [zvbc] Vector Crypto Extensions --and accordingly the composite extensions [Zvkn] and [Zvks]-- require a Zve64x base, or application ("V") base Vector Extension.

All of the other Vector Crypto Extensions can be built on any embedded (Zve*) or application ("V") base Vector Extension.

All cryptography-specific instructions defined in this Vector Crypto specification (i.e., those in [zvkned], Zvknh[ab], [Zvkg], [Zvksed] and [zvksh] but not [zvbb],[zvkb], or [zvbc]) shall be executed with data-independent execution latency as defined in the RISC-V Scalar Cryptography Extensions specification. It is important to note that the Vector Crypto instructions are independent of the implementation of the Zkt extension and do not require that Zkt is implemented.

This specification includes a [Zvkt] extension that, when implemented, requires certain vector instructions (including [zvbb], [zvkb], and [zvbc]) to be executed with data-independent execution latency.

Detection of individual cryptography extensions uses the unified software-based RISC-V discovery method.

Note

At the time of writing, these discovery mechanisms are still a work in progress.

3. Bibliography

bibliography::../riscv-crypto-spec.bib[ieee]