I read about Niederreiter Cryptosystem. I understood the Key Generator, encryption and decryption of the cryptosystem, but if I want to prove that is a correct cryptosystem, what should I do?

  • $\begingroup$ Correctness of encryption scheme is just a simple property which means that after applying encryption algorithm, and then decryption, you will receive the original text. It's very simple to verify if you understand those algorithms. Ok, maybe you're interesting in security of the scheme? It's way more difficult to prove $\endgroup$ – Mikhail Koipish Jan 31 at 16:01

To prove the correctness of an encryption scheme (not necessarily Niederreiter), you have to prove that for a honestly generated key pair, any honestly generated ciphertext decrypts correctly.

Formally, let $(pk, sk) \leftarrow KeyGen(1^\lambda)$ be the public and private key pair, and let $m$ be uniformally random in the (finite) plaintext space, and denote by $c \leftarrow Encrypt(pk, m)$ an encryption of message $m$ (pseudo-random in the ciphertext space) under the public key $pk$. Then you have to show that $Decrypt(sk, c) == m$ with overwhelming probability, meaning that either the decryption always succeeds if all steps were executed honestly, or it fails with probability negligible in the security parameter $\lambda$.

For instance, you prove the correctness of textbook RSA by showing that $(m^e)^d == m \bmod n$ for honestly generated $n=pq$, $\varphi(n)=(p-1)(q-1)$, $e$ coprime with $\varphi(n)$ and $d = e^{-1} \bmod \varphi(n)$.

  • $\begingroup$ $$pk : (H_{pub}, t)$$ $$sk : (P, D_{G}, M)$$ $$H_{pub}=M\cdot H\cdot P$$ The message is: $$e\in \mathbb{F}^{n}_{2}$$. $$Encrypt(H^{pub},t,e^{T}) = c$$ $$Decrypt(P,D_{G},M,c)=H^{pub}\cdot e^{T}\overset{H^{pub}=M\cdot H\cdot P}{\rightarrow}M\cdot H\cdot P\cdot e^{T}\overset{M^{-1}}{\rightarrow}H\cdot P\cdot e^{T}\overset{D_{G}}{\rightarrow}P\cdot e^{T}\overset{P^{-1}}{\rightarrow}e^{T}\rightarrow e$$ Is that correct? $\endgroup$ – CodingGuy Jan 9 at 19:23
  • $\begingroup$ Almost, there is an important property that you use to claim that the result of $D_G$ applied to $HPe^T$ will be $Pe^T$, and that I don't see in your comment, which is that $e$ has weight at most $t$. Your notation for the message is a bit confusing since you write that "the message is $e\in \mathbb{F}_2^n$", in particular there is no restriction over $e$'s weigth, and then you use that $e$ has weight at most $t$. Otherwise, I think that you got it. Also notice that most of the time, the matrix $M$ is denoted $S$ (and referred to as a "scrambling" matrix). $\endgroup$ – jchd Jan 10 at 9:49
  • $\begingroup$ Thanks a lot! I forgot to mention the weight, that' s true $\endgroup$ – CodingGuy Jan 14 at 2:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.