用 BouncyCastle 的元组 (m, t, poly) 定义 McEliece 参数元组 (n, k, t)

Defining McEliece parameter tuple (n, k, t) with BouncyCastle's tuple (m, t, poly)

我正在使用 BouncyCastles Java API 并且想使用 McEliece 加密。在浏览了各种论文以找到合适的参数(例如 How to choose McEliece's parameters?)后,我现在遇到了问题,我看不到使用 BouncyCastle API.

设置这些参数的可能性

在所有论文中,参数集都是一个三元组:(n, k, t)。但是对于 BouncyCastle,我只能为密钥对生成指定 3 元组 (m, t, poly)

new McElieceCCA2Parameters(m, t, poly)

它们如何对应(n, k, t)参数集?

我相信 mtpoly 定义了一个 Goppa 代码。m 表示在代码中生成支持的 GF2 多项式的次数。 n 表示加密消息 support/length 中的元素数(以位为单位)。我快速浏览了 McElieceParameters,他们使用了全力支持。这意味着 n 总是等于 2^mt,代码可以纠正的错误数,必须从区间 [2; (n - 1)/m] 中选择,并且 k 隐式等于 n - m*t