Bug 589 - NLnet top-level gigabit crypto router 2021-02-052
Summary: NLnet top-level gigabit crypto router 2021-02-052
Status: CONFIRMED
Alias: None
Product: Libre-SOC's first SoC
Classification: Unclassified
Component: Milestones (show other bugs)
Version: unspecified
Hardware: PC Linux
: High enhancement
Assignee: Luke Kenneth Casson Leighton
URL: https://libre-soc.org/crypto_router_a...
Depends on: 773 776 840 1170 1237 770 771 772 774 775 817
Blocks: 938 1195 1241
  Show dependency treegraph
 
Reported: 2021-02-06 14:32 GMT by Luke Kenneth Casson Leighton
Modified: 2024-01-01 20:10 GMT (History)
4 users (show)

See Also:
NLnet milestone: NLnet.2021.02A.052.CryptoRouter
total budget (EUR) for completion of task and all subtasks: 50000
budget (EUR) for this task, excluding subtasks' budget: 0
parent task for budget allocation:
child tasks for budget allocation: 770 771 772 773 774 775 776 840 1044
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 Luke Kenneth Casson Leighton 2021-02-06 14:32:23 GMT
APPROVED. MOU signed.
MODIFED (approved) 2023apr21 to add #1044 and adapt budgets.

Task list:

# Discussion and Finalisation of Which Cryptographic Primitives to Implement

Discuss and decide on what cryptographic or other primitives are the most
beneficial, simple, or otherwise well-suited for us to implement, since
there are too many in existence for us to implement them all.

Budget: 2000 EUR
URL: https://bugs.libre-soc.org/show_bug.cgi?id=770

---------

# Creation of Cryptographic-Primitive OpenPower ISA Pseudo-code

Creation of the pseudo-code for the new instructions we will be creating,
as well as modification of existing pseudo-code, where warranted, for the
purposes of usage as a reference for simulation of the new/modified
instructions for testing purposes, as well as potential submission as one
or more proposals to the OpenPower Foundation as the de-jure reference for
how those proposed new instructions should function.

*** MUST NOTDOUBLEFUND ON OPF ISA WG note that usually research phase,
involves experimenting with pseudocode variants, so keep an eye on
bug #1011 idea is remove remaining budget, reassign ***

Budget: 6000 EUR
URL: https://bugs.libre-soc.org/show_bug.cgi?id=771

---------

# Creation of the HDL Code for the Instructions and Associated Unit-Tests

Creation of the HDL code for the instructions used to implement the Cryptographic
Primitives.

Budget: 9000 EUR
URL: https://bugs.libre-soc.org/show_bug.cgi?id=772

---------

# High-Level Demos of Cryptographic and Other Relevant Algorithms

Creation of demonstrations of cryptographic and other relevant
algorithms  to demonstrate benefits of our additions and/or modifications.

Budget: 5500 EUR
URL: https://bugs.libre-soc.org/show_bug.cgi?id=773

---------

# Equipment needed, such as FPGA boards and Ethernet PMODs

Purchase of equipment needed for development of the router and related
projects, as well as possible minor development of equipment needed.
Examples of what would be purchased include relatively entry-level FPGA boards and Ethernet PMODs.

Budget: 4000 EUR
URL: https://bugs.libre-soc.org/show_bug.cgi?id=774

---------

# Project Management

Management, and other misc. costs such as maintaining our financial records systems.

Budget: 4000 EUR
URL: https://bugs.libre-soc.org/show_bug.cgi?id=775

---------

# Documentation of designs, code, processes, and other relevant things as needed

In order to make it more likely for our project to be understandable and
useful as part of review. Documentation of designs, code, processes, and other relevant things is necessary.

Budget: 8000 EUR
URL: https://bugs.libre-soc.org/show_bug.cgi?id=776

---------

# Formal proofs and unit tests for cryptoprimitives

Formal correctness proofs and unit tests for the cryptoprimitives
are needed in the HDL and simulators, demonstrating or proving
that the ISA pseudocode, HDL, and simulator are correctly implemented.

Budget: 9500 EUR
URL: https://bugs.libre-soc.org/show_bug.cgi?id=840

---------

# Demo of modulo exponent biginteger

a demo implementation of a modulo exponentiation function
is needed as a unit test to be run by pypowersim and/or
ISACaller. primary uses are for Diffie-Hellman and RSA but there
are many more

Budget: 2000 EUR
URL: https://bugs.libre-soc.org/show_bug.cgi?id=1044
Comment 2 Staf Verhaegen 2021-04-24 11:53:19 BST

    
Comment 3 Luke Kenneth Casson Leighton 2021-09-13 15:34:04 BST
Draft instructions partially designed:
https://libre-soc.org/openpower/sv/bitmanip/
Comment 4 Luke Kenneth Casson Leighton 2021-10-22 13:08:38 BST
i've added a TODO/preliminary top-level milestone for documentation
of sky130 and coriolis2, amount TBD.  fortunately as this is
an "approved" task, work can go ahead even though the exact
MoU has not been agreed yet, and budget will be available once
tasks are agreed.
Comment 5 Jacob Lifshay 2022-02-11 23:25:54 GMT
I filled out the description and guessed budgets for the tasks here. Appended to the end of the top comment:
https://bugs.libre-soc.org/show_bug.cgi?id=589#c0

The task list is shorter than I expected (half of the original tasks were apparently moved to NGI POINTER assuming I'm guessing correctly), so imho the budgets may end up somewhat inflated as a result of trying to split 50000 between them...particularly the algorithm demos one...though I could be wrong.
Comment 6 Luke Kenneth Casson Leighton 2022-02-12 13:36:58 GMT
(In reply to Jacob Lifshay from comment #5)
> I filled out the description and guessed budgets for the tasks here.
> Appended to the end of the top comment:
> https://bugs.libre-soc.org/show_bug.cgi?id=589#c0

brilliant. i took off the moved tasks
 
> The task list is shorter than I expected (half of the original tasks were
> apparently moved to NGI POINTER assuming I'm guessing correctly),

yes.

> so imho
> the budgets may end up somewhat inflated as a result of trying to split
> 50000 between them...particularly the algorithm demos one...though I could
> be wrong.

we can compensate by adding 3 new tasks, FPGAs Management and Documentation.
should do the trick.
Comment 7 Jacob Lifshay 2022-02-15 02:46:11 GMT
added the suggested tasks, and rebalanced the budgets. looks good?
Comment 8 Jacob Lifshay 2022-02-15 02:49:26 GMT
(In reply to Luke Kenneth Casson Leighton from comment #6)
> brilliant. i took off the moved tasks

the moved tasks need to be removed from this bug's Depends On list.
Comment 9 Luke Kenneth Casson Leighton 2022-02-15 05:40:12 GMT
hilariousness. all good except "useless" bit :) both Michiel and
EU Auditors will be reading the milestones, try rewording with
a positive spin even if it's blindingly obvious amd bordering
on "filler" words. length is fine, positive or neutral is best
Comment 10 Jacob Lifshay 2022-02-15 05:50:10 GMT
(In reply to Luke Kenneth Casson Leighton from comment #9)
> hilariousness. all good except "useless" bit :)

rephrased:
# Documentation of designs, code, processes, and other relevant things as needed

In order to make it more likely for our project to be understandable and useful,
documentation of designs, code, processes, and other relevant things is necessary.
Comment 11 Jacob Lifshay 2022-02-15 05:55:34 GMT
moved subtasks (that were moved to ngi pointer) to See Also, rather than Depends On list.
Comment 12 Luke Kenneth Casson Leighton 2022-02-15 06:15:29 GMT
(In reply to Jacob Lifshay from comment #10)

> In order to make it more likely for our project to be understandable and
> useful,
> documentation of designs, code, processes, and other relevant things is
> necessary.

perfect. extra bonus points for including bureaucratic phrases like
"promoting outcomes" although that would need conferences or press releases
and blogs and blech realistically it is a new milestone and i think we're
good.

next part literally cutpaste create bugreports, 1st line in title, para
as comment0, then edit *this* comment 0 to include full URL.
full because the text will be dropped verbatim as Schedule A into MoU
Comment 13 Jacob Lifshay 2022-02-15 06:55:40 GMT
(In reply to Luke Kenneth Casson Leighton from comment #12)
> next part literally cutpaste create bugreports, 1st line in title, para
> as comment0, then edit *this* comment 0 to include full URL.
> full because the text will be dropped verbatim as Schedule A into MoU

submitted all the bugs and added links.
Comment 14 Luke Kenneth Casson Leighton 2023-02-09 12:18:13 GMT
https://it.slashdot.org/story/23/02/08/2239210/us-nist-unveils-winning-encryption-algorithm-for-iot-data-protection

this algorithm has become a high-priority for investigation and
research, replacing one of the other algorithms formerly selected
when the status of this algorithm was not known at the time.

https://code.vt.edu/joyuliao/pyascon/-/blob/master/ascon.py#L283
https://github.com/ascon/crypto_aead/blob/master/ascon128v12/ref/ascon.c#L49
Comment 15 Andrey Miroshnikov 2023-02-09 15:13:15 GMT
(In reply to Luke Kenneth Casson Leighton from comment #14)
> https://it.slashdot.org/story/23/02/08/2239210/us-nist-unveils-winning-
> encryption-algorithm-for-iot-data-protection
> 
> this algorithm has become a high-priority for investigation and
> research, replacing one of the other algorithms formerly selected
> when the status of this algorithm was not known at the time.

Ok, it will be one of the algorithms I'll prioritise to include for research and test demonstration.

> 
> https://code.vt.edu/joyuliao/pyascon/-/blob/master/ascon.py#L283
Copied, tests seem to run fine.

> https://github.com/ascon/crypto_aead/blob/master/ascon128v12/ref/ascon.c#L49
This repo has been deprecated, has been replaced by this one:
https://github.com/ascon/ascon-c
However the original ascon.c file seems to have been replaced with
https://github.com/ascon/ascon-c/blob/main/crypto_aead/ascon128v12/ref/aead.c

I copied both repos (crypto_aead and ascon-c), just in case.

Will start looking into more next week (still reading on RSA and running ref code for this week).
Comment 16 Luke Kenneth Casson Leighton 2023-03-19 14:47:15 GMT
the MoU Schedule A now has the OPF ISA WG taskspartly duplicated here, must sort that out.