Puncte:0

Mascată RSA/BigInt Aritmetică?

drapel ng

Mascarea este procesul de înlocuire a operațiunilor (intern la un algoritm criptografic) pe valori intermediare cu operații pe secret împărtășit valorile. Apoi, chiar dacă unele dintre aceste valori secrete partajate se scurg (să zicem din cauza diferitelor atacuri pe canale laterale), se poate menține securitatea (datorită securității teoretice informaționale a schemei de partajare a secretelor).

Sunt interesat de posibilitatea aritmeticii bigint mascate. Și anume, unul reprezintă $x\în \mathbb{Z}_{2^{2048}}$ (de exemplu) ca

$$x = \sum_{i = 0}^{63} x_i 2^{32i}$$

unde fiecare $x_i \in\mathbb{Z}_{2^{32}}$și vom masca pe fiecare $x_i$ individual. Adunarea standard și înmulțirea acțiunilor mascate sunt destul de simple --- Sunt în special curios cum se face față purtând.

Acesta pare a fi genul de lucru pe care cineva ar fi trebuit să-l rezolve în literatură, în special pentru a masca implementările RSA. Dar nu am reușit să găsesc nimic (am văzut câteva discuții despre implementările RNS mascate ale RSA, ceea ce este mai simplu din punct de vedere conceptual). Se știe cum să maschezi aritmetica BigInt?

kelalaka avatar
drapel in
OpenSSL nu are implementare pentru mascare? AFAIK nu este nimic special, deoarece are unele portate GNU/GMP.
Mark avatar
drapel ng
@kelalaka a scris cineva undeva ce fac? Datorită indicatorului dvs., am găsit [this](https://github.com/openssl/openssl/blob/1c0eede9827b0962f1d752fa4ab5d436fa039da4/crypto/bn/bn_blind.c), dar cu siguranță ar fi de preferat să mă uit la pseudocod.
kelalaka avatar
drapel in
Este nevoie de timp pentru a citi codul, eu acum, Ce cauți [aici](https://github.com/openssl/openssl/blob/1c0eede9827b0962f1d752fa4ab5d436fa039da4/crypto/bn/bn_blind.c#L134) și 15 see the line Acolo.
kelalaka avatar
drapel in
_și vom masca fiecare $x_i$ individual._ Este imposibil, deoarece există o stricăciune a măștilor, nu?
Mark avatar
drapel ng
@kelalaka Nu pare simplu, dar nici înmulțirea mascată (care iirc în cazul general al mascării de ordin $n$ o reduce la protocolul de multiplicare al protocolului GMW MPC). Aici, în cea mai mare parte, mă întreb dacă există o altă modalitate neevidentă de a calcula pasul „carry” mascat --- dacă nu, pentru aplicația mea particulară, pot apela la un tip de aritmetică RNS, dar este ceva mai incomodă.
drapel cn
De ce fel de atacuri vă faceți griji? Timing, DPA sau white-box? OpenSSL i-ar păsa doar de sincronizare, așa că nu trebuie să folosească contramăsuri costisitoare necesare pentru atacurile mai puternice. Pentru a securiza RSA împotriva atacului cu caseta gri, trebuie să protejați în mare parte exponentul, ceea ce se poate face printr-o partajare aditivă modulo phi (modul). În plus, se poate masca baza multiplicativ modulo modulul. Pentru a necesita contramăsuri mai puternice pentru implementarea casetei albe, puteți arunca o privire la [ultima competiție de casete albe](https://whibox.io/contests/2021/rules) care prezintă curbe eliptice.
kelalaka avatar
drapel in
@Mark ai trimite la hârtie GMW MPC?
kelalaka avatar
drapel in
GNU/GMP are [multiplicare modulară securizată](https://gmplib.org/manual/Integer-Exponentiation) împotriva canalului lateral. Acesta ar putea fi ceea ce ai nevoie?

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.