Scott Fluhrer edited section_Abstract_This_paper_explores__.tex  almost 9 years ago

Commit id: 00865a313f8419afc9448e15404c1cdbd361e631

deletions | additions      

       

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.