NL.net proposal

Project name

The Libre-SOC Gigabit Router

Website / wiki

https://libre-riscv.org/nlnet_2021_crypto_router

Please be short and to the point in your answers; focus primarily on the what and how, not so much on the why. Add longer descriptions as attachments (see below). If English isn't your first language, don't worry - our reviewers don't care about spelling errors, only about great ideas. We apologise for the inconvenience of having to submit in English. On the up side, you can be as technical as you need to be (but you don't have to). Do stay concrete. Use plain text in your reply only, if you need any HTML to make your point please include this as attachment.

Abstract: Can you explain the whole project and its expected outcome(s).

Blockchain and cryotographic primitives are extremely complex mathematics where performance and power consumption contend with understandability, correctness and auditability. Implementations of cryptographic alorithms in OpenSSL for example are hard-coded hand-optimised assembler, which makes review and trust extremely challenging, particularly when "best practices" (SSL Certificates) result in some algorithms being retired as obsolete with increasing frequency.

Even just the implementations of cryptographic and blockchain algorithms have to be so heavily optimised for a particular instruction set, in order to get high performance, that it is almost impossible to read the original whitepaper and see how it is relevant or correct (the lack of funding for review of OpenSSL rocked the internet back in 2012, with HeartBleed).

Simple-V Vectorisation has some extremely unusual data manipulation properties that negate the need for such heavy optimisation. We would like to explore this in-depth, for example examining Galois Field arithmetic, the basis of Elliptic Curve, AES, Error-correction algorithms and more, at the fundamental mathematical level and providing Vector Matrix Multiply and other abstractions, the combination of which lead to auditors to be able to see extremely clearly and quickly what the relationship is between the math and the actual implementation in hardware. The focus will be on investigation and implementation of cryptographic primitives for use in Blockchain, OpenSSL, on keeping the implementation simple and leveraging Formal Correctness Proofs to verify them.

The target worked example will be not to simply put this into an FPGA but to put together a 130nm ASIC under the Google Skywater Open PDK ASIC Programme, as a proof-of-concept Gigabit Router chip capable of securely handling network traffic and, having the underlying cryptographic primitives in place, being the basis of peer networking and blockchain applications which can be trusted with thode tasks by its full HDL and source code being publicly available for independent review.

Ultimately we want a demonstration ASIC of a tamper-proof auditable hardware implementation which can be trusted by end-users.

Have you been involved with projects or organisations relevant to this project before? And if so, can you tell us a bit about your contributions?

Requested Amount

EUR $50,000.

Explain what the requested budget will be used for?

  • Detailed review and documentation of the analysis of cryptographic hashing and encryption algorithms used in cryptonote and other blockchain technologies to ascertain the fundamental principles and mathematical primitives
    • So far the list includes Rijndael (AES), SHA2, Graestl, Blake256, Chacga8, Keccac and more
    • From Asymmetric Cryptography comes RSA, DSA, Diffie-Helmann and Elliptic Curve
    • From these it is clear that the primitives involve Matrix Multiply operations and Galois Field arithmetic, as well as ternary bitmanipulation and Carry-capable Vector "long arithmetic".
  • Hardware implementation of the underlying instruction primitives and Vector-Matrix concepts needed to support the crypto-primitives used in blockchain algorithms
  • Proof of Concept software implementation of the hashing algorithms identified, showing how Vectorised Matrix manipulation atvthe ISA level can greatly simplify the readability and clarity of cryptography, for aydit purposes.
  • Formal Correctness proofs of the underlying hardware instruction primitives
  • Implementation of RGMII and USB-ULPI in nmigen
  • Implementation in nmigen of a DMA Engine suitable for Ethernet Frame packet transfer
  • Porting of FlexLib ASIC Cell Library to google Skywater 130nm PDK
  • Creation of an FPGA proof of concept Gigabit Router using a LibreSOC SimpleV core
  • Layout of Gigabit Router ASIC using coriolis2 using google Skywater 130nm PDK

Does the project have other funding sources, both past and present?

Compare your own project with existing or historical efforts.

What are significant technical challenges you expect to solve during the project, if any?

Describe the ecosystem of the project, and how you will engage with relevant actors and promote the outcomes?

Extra info to be submitted

  • https://github.com/cryptonotefoundation/cryptonote/blob/master/src/crypto/