Implement SIMD where applicable
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 25/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Da chiarire
- Stato di attività
- Ferma
- Stack tecnologico
- rust
- Ambito
- cryptography
Direzione di ricerca
Start by reading the key-generation path described in the update, especially num-bigint/src/bigrand.rs lines 324-371, and compare the feature-flag approach referenced from aes_gcm. The issue does not define which operations to vectorize or an acceptance test, so completion would require establishing the SIMD scope, portability behavior, and performance criteria first.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
What got me looking into this was the somewhat slow key generation and the related issue #29. A solution or rather, improvement would be to implement SIMD, Single Instruction Multiple Data. I found a paper by freescale semiconductor on this topic here: http://application-notes.digchip.com/314/314-66328.pdf.
Since all processors do not support the AVX/SSE/SIMD family of instructions, this would have to be implemented under a feature flag or as in the case of aes_gcm, the feature is enabled when the compiler is passed these flags:
RUSTFLAGS="-Ctarget-cpu=sandybridge -Ctarget-feature=+aes,+sse2,+sse4.1,+ssse3"
Update: What takes time during key generation is finding big primes, and that is done here: https://github.com/dignifiedquire/num-bigint/blob/master/src/bigrand.rs#L324-L371
I might take a deeper look at this when my exams are over.
- Lingua principale
- Rust
- Stelle
- 673
- Fork
- 190
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di RustCrypto/RSA
-
Bump MSRV to 1.89 Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
RustCrypto/RSA#707 · 2 commenti · 1 reazione ·
-
Difficoltà 3/5 Mezza giornata Idoneità per principianti 74/100
RustCrypto/RSA#703 ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
RustCrypto/RSA#686 · 4 commenti ·
-
`rsa` v0.10 release tracking Aperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
RustCrypto/RSA#647 · 9 commenti · 1 reazione ·
-
broken rust docs Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
RustCrypto/RSA#641 · 3 reazioni ·
Tutte le issue di RustCrypto/RSA
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
-
bug core
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
-
JIT-compiled number -> Decimal conversion silently overflows instead of raising DECIMAL_OVERFLOW Apertafuzz
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
ClickHouse/ClickHouse#122114 ·
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 92/100
linebender/vello_svg#90 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100