Puncte:2

Cum să aveți o funcție hash care mapează de la un element de grup la un șir binar de o anumită dimensiune în charm-crypto?

drapel mq

Mă confrunt cu o problemă în programarea cu farmec-cripto bibliotecă. Funcțiile hash pentru împerecherea elementelor de grup în charm-crypto pot mapa numai dintr-un șir într-un anumit câmp: $\mathbb Z_r$, $G_1$ sau $G_2$.

Exemple: $$\begin{align} H_1: \{0, 1\}^*\la\ &G_1\ H_2: \{0, 1\}^*\la\ &Z_r\ H_3: \{0, 1\}^*\la\ &G_2\ \end{align}$$

Implementez o schemă de criptare cu cheie publică fără certificat cu căutare de cuvinte cheie de la această lucrare de cercetare. Și în acest algoritm din partea de configurare globală vreau o funcție hash ca $H_4: G_2\la \{0, 1\}^n$ pentru o oarecare lungime $n$ adică maparea de la elementul de grup la un șir binar de lungime $n$. În acest caz grupul $G_2$ constă din puncte de pe o curbă eliptică.

Poate cineva să mă îndrume cum să implementez maparea hash $H4$ în charm-crypto? As fi recunoscator pentru orice ajutor in acest sens.

kelalaka avatar
drapel in
Mă întreb de ce circulă acest tip de hârtie. Am avut două întrebări despre asta, lasă-mă să caut. [1](https://crypto.stackexchange.com/q/87012/18298) și [2](https://crypto.stackexchange.com/q/86375/18298)
ashizz avatar
drapel mq
Mulțumesc @kelalaka, voi arunca o privire la acestea.
fgrieu avatar
drapel ng
Este ceva greșit cu: dacă $r\în G_2$ definim $H_4(r)$ ca $\operatorname{SHAKE256}(R,n)$ unde $R$ este o reprezentare unică a $r$ ca șir de biți și $\ operatorname{SHAKE256}$ așa cum este definit în [FIPS 202](https://doi.org/10.6028/NIST.FIPS.202)?
ashizz avatar
drapel mq
@fgrieu Nu sunt sigur dacă va funcționa. Va trebui să-l verific
Puncte:2
drapel ng

Vreau o funcție hash ca $H_4: G_2\la \{0, 1\}^n$ pentru o oarecare lungime $n$ adică maparea de la elementul de grup la un șir binar de lungime $n$. În acest caz grupul $G_2$ constă din puncte de pe o curbă eliptică.

Dacă $r\în G_2$, putem defini $H_4(r)$ la fel de $\operatorname{SHAKE256}(R,n)$ Unde $R$ este o unic reprezentare a $r$ ca șir de biți și $\operatorname{SHAKE256}$ așa cum este definit în FIPS 202.

O modalitate de a obține $R$: dacă punctul $r$ are coordonate carteziene $(x,y)$ în câmp $\mathbb F_p$ cu $p$ prim, $2^{8(\ell-1)}<p<2^{8\ell}$, $0\le x<p$, $0\le y<q$, atunci putem folosi $R=\operatorname{I2OSP}(x,\ell)\mathbin\|\operatorname{I2OSP}(y,\ell)$ Unde $\operatorname{I2OSP}$ este conversia standard big-endian în șir de octeți (așa cum este folosit în, de ex. PKCS#1). Acest lucru poate fi adaptat la alte domenii.

Dacă $\operatorname{SHAKE256}$ este folosit pentru a construi celelalte hashe-uri $H_1$, $H_2$, $H_3$, este prudent să prefixați intrarea lui $\operatorname{SHAKE256}$ cu constante distincte.

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.