I studied this paper a while ago, but now I'm confused by the paper Trapdoors for Lattices:Simpler, Tighter, Faster, Smaller by Micciancio and Peikert. Page 24 and 25, they present an algorithm that explains how to sample a pseudo random matrix $\mathbf{A}$ with a trapdoor.
Short presentation of this section
Basically, the idea is to sample first a matrix $\mathbf{A}$ uniformly at random, sample a matrix $\mathbf{R}$ according to some distribution $\mathcal{D}$, and then compute $\mathbf{A} = [\bar{\mathbf{A}} | \mathbf{G} - \bar{\mathbf{A}}\mathbf{R}]$ where $\mathbf{G}$ is a fixed matrix easy to invert even in the presence of noise (and I don't need the tag $\mathbf{H}$, so $\mathbf{H} = \mathbf{I}$). They, if I understood correctly, they say that $\mathbf{A}$ looks random if $[\bar{\mathbf{A}} | \bar{\mathbf{A}}\mathbf{R}]$ looks random, which makes sense, especially when we removed the tag. So from that point $\mathbf{G}$ is not useful anymore to study the indistinguishability property.
Then, they present two ways to sample $\mathbf{R}$ and choose the dimensions of $\mathbf{A}$, depending on whether you want statistical or computational indistinguishability for $\mathbf{A}$. However, the computational version looks a bit strange to me: instead of sampling $\bar{\mathbf{A}}$ uniformly at random, they seem to sample instead another matrix $\hat{\mathbf{A}} \in \mathbb{Z}_q^{n \times n}$ uniformly at random, and set $\bar{\mathbf{A}} = [\mathbf{I} | \hat{\mathbf{A}}]$. They also sample $\mathbf{R} = \begin{bmatrix}\mathbf{R}_1\\\mathbf{R}_2\end{bmatrix}$ according to a discrete Gaussian. Then it means that $[\bar{\mathbf{A}} | \bar{\mathbf{A}}\mathbf{R}] = [\mathbf{I}|\hat{\mathbf{A}}|\hat{\mathbf{A}}\mathbf{R}_2+\mathbf{R}_1]$. And they say this matrix (up to the identity) is indistinguishable from random because it is an instance of LWE in its normal form.
My (maybe elementary?) questions
So I have two questions:
- First, why isn't it a problem to have a matrix identity in the final matrix $\mathbf{A}$? I have the feeling that it leaks much more information about the secret $\mathbf{s}$, since you learn basically $\mathbf{s}^t\mathbf{I}+\mathbf{e}^t = \mathbf{s}^t+\mathbf{e}^t$ for some small error $\mathbf{e}$. In particular, you learn the most significant bits of $\mathbf{s}$ right? I don't see how you could learn this same information from $\mathbf{s}^t\mathbf{A}+\mathbf{e}^t$ when $\mathbf{A}$ is truly random. I guess you can try to do some columns operations to recover the identity, but I would expect this to increase the noise significantly.
- Secondly, why is $[\hat{\mathbf{A}}|\hat{\mathbf{A}}\mathbf{R}_2+\mathbf{R}_1]$ even pseudo-random? The way I understand the normal form of LWE is that you are allowed to sample $\mathbf{s}$ directly from a small Gaussian instead of uniformly at random as explained here slide 10/15. So I would agree that $[\hat{\mathbf{A}}|\hat{\mathbf{A}}\mathbf{R}_2+\mathbf{R}_1]$ is pseudo random if $\mathbf{R}$ was a vector. However, $\mathbf{R}$ is a matrix, so it means that each line of $\hat{\mathbf{A}}$ will be used to produce several samples (one for each column or $\mathbf{R}$). So it suggests that LWE is secure also if we reuse the $\mathbf{a}$ samples several times... Am I right or did I miss something? If yes, do we know that LWE is secure when these samples are reused several times?
Thanks!
EDIT: answer to Mark
Thanks for your answer. Thank you very much for the [PW07] reference: Lemma 6.2 is exactly what I need: it is very helpful and answers perfectly my second question! (+1)
Concerning the first question, I did try to read the relevant section of [MR09] (the important part is at the very end and a bit in the beginning). However, it still looks a bit cryptic to me. I guess maybe because I'm not yet used to this link between the matrix and the lattice. And I still don't understand if I can use $\mathbf{A}$ "as it" (strange due to the "attack" I mention), or if I need some special care when using it, like sampling $s$ from a small error set (also strange not to mention it at all in the paper: later $g_{\mathbf{A}}$ is defined on all $s$), or if I can just get rid of the identity and use the rest (but then I'm not sure the correctness applies).
Concerning the reference [MR09], for example, I'm not sure how they derive page 24 the expression for $P'$. Just to make sure, when they say "Reducing the columns of E modulo the HNF", they mean some sort of LLL reduction? And after that line, the rest is quite specific to there own strange construction and I'm not sure what I can say from that. I've the feeling that this Hermitian matrix is just a convenient, efficient, representation of A in the lattice space, but that using this matrix instead of A requires some adaptation (maybe, as you say, to sample using a small $s$ instead of a uniform element, which may be the case of the [MR09] paper because they use an $a$ sampled uniformly between $-r$ and $r$... and I've the feeling that they also need to update their way of sampling $E$, by doing this reduction first). So if I need to adapt my method to use $\mathbf{A}$, then I'm surprised they don't mention it in the paper, and just define $g_\mathbf{A}$ for all $s$.
Any clarification would be greatly appreciated, thanks a lot!