this is for holding javascript data
Scott Fluhrer edited section_Abstract_This_paper_explores__.tex
almost 9 years ago
Commit id: 00865a313f8419afc9448e15404c1cdbd361e631
deletions | additions
diff --git a/section_Abstract_This_paper_explores__.tex b/section_Abstract_This_paper_explores__.tex
index 30af92f..d7c76f4 100644
--- a/section_Abstract_This_paper_explores__.tex
+++ b/section_Abstract_This_paper_explores__.tex
...
When we encrypt a message $m$ with an NTRUEncrypt public key, we perform the following steps:
- -\begin{itemize}
\item We first examine the public key to get the security level $k$ of the parameter set that the public key belongs to. Currently defined parameter sets have $k \in \{ 112, 128, 192,
356 256 \}$
\item We then select a random $k$-bit value $b$
\item We encode the value $b$, the message $m$ and a portion of the public key into a string, and hash that string. We use SHA-1 if $k \le 160$ and SHA-256 if $k > 160$
\end{itemize}
\section{Plaintext Recovery Attack}
When someone with the NTRUEncrypt public key does an public key encryption of the plaintext message $m$, it runs through this process: first, he examines the public key to get its security level $k$ for the parameter set. He then selects a $k$-bit random value $b$, and encodes that value (along with the plaintext $m$ and part of the public key) to form a string; it then uses that string as a seed to a random number generator to select a polynomial $R$; he then encodes the plaintext (and $b$) as a polynomial $M$, extracts the polynomial $H$ from the public key, and outputs the polynomial $HR+M$ as the ciphertext.