Ring learning with errors key exchange: Difference between revisions

Content deleted Content added
Jinbolin (talk | contribs)
Edits based on discussions with academics from Beijing
Jinbolin (talk | contribs)
Clarified equations added link
Line 49:
## If v<sub>j</sub> = 0, draw a random bit (b). If b = 0 then v<sub>j</sub> = 0 otherwise v<sub>j</sub> = q-1
## If v<sub>j</sub> = (q-1)/4, draw a random bit (b). If b = 0 then v<sub>j</sub> = (q-1)/4 otherwise v<sub>j</sub> = (q+3)/4
# Two n-long bit streams, ujcj, and cjuj, are formed from the coefficients of v(x), (v<sub>n-1</sub>, ... , v<sub>0</sub> ), via "ModularCross Rounding" and "CrossModular Rounding" respectively. For j = 0 to n-1:
## FindSet mc<sub>j</sub> andto be the lowest bit of the quotient r(4v<sub>j</sub>)/q suchafter [[Floor and ceiling functions|rounding;]] that 2vis <sub>j</submath display="inline">c_j = m<sub>j<\lfloor 4 v_j/sub>q +\rceil\mod r<sub>j 2</submath>
## Set uj to be the lowest bit of the [[Floor and ceiling functions|floor]] of the quotient (2v<sub>j</sub>)/q; that is <math>u_j = \lfloor 2v_j\rfloor\mod 2</math>
## Find s<sub>j</sub> and y<sub>j</sub> such that 4v<sub>j</sub> = s<sub>j</sub>q + y<sub>j</sub>
##Form Ifthe r<sub>j</sub> >key (q-1k)/2 (inas Z)the thenconcatenation setof u<sub>jn-1</sub>, = m<sub>j</sub> + 1 (mod 2) otherwise..., u<sub>j0</sub> = m<sub>j</sub> (mod 2).
## If y<sub>j</sub> > (q-1)/2 (in Z) then set c<sub>j</sub> = s<sub>j</sub> + 1 (mod 2) otherwise c<sub>j</sub> = s<sub>j</sub> (mod 2)
# Form the key (k) as the concatenation of u<sub>n-1</sub>, ..., u<sub>0</sub>.
# Form an n-long "reconciliation" bit string (c) as the concatenation of c<sub>n-1</sub>, ..., c<sub>0</sub>.
# Compute t<sub>R</sub>(x) = a(x)·s<sub>R</sub>(x) + e<sub>R</sub>(x).