[Libre-soc-bugs] [Bug 942] New: next things to work on -- bigint rsa mul algorithm for bigint presentation

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Tue Oct 4 18:46:11 BST 2022


https://bugs.libre-soc.org/show_bug.cgi?id=942

            Bug ID: 942
           Summary: next things to work on -- bigint rsa mul algorithm for
                    bigint presentation
           Product: Libre-SOC's first SoC
           Version: unspecified
          Hardware: Other
                OS: Linux
            Status: CONFIRMED
          Severity: enhancement
          Priority: ---
         Component: Conferences
          Assignee: programmerjake at gmail.com
          Reporter: programmerjake at gmail.com
                CC: libre-soc-bugs at lists.libre-soc.org, lkcl at lkcl.net,
                    programmerjake at gmail.com
   NLnet milestone: ---

posting here because libre-soc-dev is currently broken.

Now that the nlnet deadline is effectively over (no time left for new work),
I'd like to work on my bigint presentation:

If for some reason my presentation is rejected, this would just get published
online somewhere instead.

I want to build a practical 2048-bit modular exponentiation function for RSA --
the subtasks should fit under https://bugs.libre-soc.org/show_bug.cgi?id=773
and probably other gigabit router subtasks too.

it would use montgomery multiplication and a toom-cook multiplication algorithm
generator that we can instantiate with different parameters to find the most
efficient one. toom-cook covers all of (Toom-1) traditional O(n^2) long
multiplication, (Toom-2) O(n^1.58) karatsuba multiplication, and higher
algorithms such as Toom-3 O(n^1.46)

It would be run on a simplistic model cpu with 1 256-bit simd add unit and 1
256-bit wide-mul unit (the model would be adjustable) and scalar units, I would
create a simulator for that, the simulator would cover ALU pipeline timing and
dependencies but not much else. the simulator would be designed to output
timing info such that blender can generate an animation of those ALUs executing
the algorithm. the simulator would probably be written in python and use our
existing isacaller simulator to generate execution traces for it to run on.

I'm estimating this taking 3-4 weeks of work, it would probably be the most
significant demo of svp64 actually providing a significant speed-up so far
(isacaller doesn't count since it doesn't simulate actual cpu timing, soc.git
isn't far enough along to simulate multi-issue and operation merging for SIMD
backends).

this would cover the last half of the bigint presentation, the first half would
be explaining concepts.

What do you think?

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the libre-soc-bugs mailing list