I am using BouncyCastles Java API and want to use McEliece encryption. After browsing through various paper for finding good parameters (e.g. How to choose McEliece's parameters?) I am now having the problem, that I do not see a possibility to set these parameters with the BouncyCastle API.

In all papers, the parameter set is a 3-tuple: (n, k, t). But with BouncyCastle, I can only specify the 3-tuple (m, t, poly) for keypair generation.

How do they correspond to the (n, k, t) parameter set?


closed as off-topic by Maarten Bodewes, otus, e-sushi Apr 30 '17 at 6:26

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Programming questions are off-topic even if you are writing or debugging cryptographic code. Unless your question is specifically about how the cryptographic algorithm or protocol works, you should look into asking on Stack Overflow instead." – Maarten Bodewes, otus, e-sushi
If this question can be reworded to fit the rules in the help center, please edit the question.


The parameters are specified in the parameters object. You give them normally in the constructor: new McElieceCCA2Parameters(m, t, poly). I am however not sure how they map to the canonical parameters of the crypto system.

Javadoc: http://bouncycastle.org/docs/docs1.5on/org/bouncycastle/pqc/crypto/mceliece/McElieceCCA2Parameters.html

  • $\begingroup$ I know that I can specify these parameters, but how do they correspond to (n, k, t)? And which level of security do the default values provide? Is there a way to define (m, t, poly) so that (n, k, t) = (6624,5129,118)? $\endgroup$ – Ph3n1x Apr 30 '17 at 17:04

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