Bug 96 - Add AES, SHA1, SHA256, and SHA3 instructions
Summary: Add AES, SHA1, SHA256, and SHA3 instructions
Status: CONFIRMED
Alias: None
Product: Libre-SOC's first SoC
Classification: Unclassified
Component: Specification (show other bugs)
Version: unspecified
Hardware: Other All
: --- enhancement
Assignee: Luke Kenneth Casson Leighton
URL:
Depends on:
Blocks:
 
Reported: 2019-06-12 20:49 BST by Jacob Lifshay
Modified: 2020-11-11 02:40 GMT (History)
1 user (show)

See Also:
NLnet milestone: ---
total budget (EUR) for completion of task and all subtasks: 0
budget (EUR) for this task, excluding subtasks' budget: 0
parent task for budget allocation:
child tasks for budget allocation:
The table of payments (in EUR) for this task; TOML format:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jacob Lifshay 2019-06-12 20:49:44 BST
I think it would be a good idea to add instructions to accelerate cryptographic primitives.

We would specifically NOT design them to be resistant to power/emi attacks, since those aren't typically visible over a network and because they take a lot of time and effort to design properly.
They would be resistant to timing attacks, since those are much easier to design for and are exploitable over the network.

They wouldn't be intended as much for cryptography as for things like git, cryptocurrency mining (see Monero's new RandomX algorithm) and BTRFS.

The main reason to implement special instructions is to accelerate the crypto instructions and because implementing S-box based primitives (such as AES) introduces timing issues when using software because of part of the lookup table not being in the cache.

If resistance to power/emi attacks is required, users would still have to use other HW.
Comment 1 Jacob Lifshay 2020-11-11 02:40:37 GMT
See:
http://lists.libre-soc.org/pipermail/libre-soc-dev/2020-November/001175.html

Additional applications: fast non-cryptographic hash functions (for things like hash tables):
https://github.com/tkaitchuck/ahash