Cryptography 用BouncyCastle'定义McElice参数元组(n,k,t);s元组(m,t,poly)

Cryptography 用BouncyCastle'定义McElice参数元组(n,k,t);s元组(m,t,poly),cryptography,bouncycastle,encryption-asymmetric,key-generator,Cryptography,Bouncycastle,Encryption Asymmetric,Key Generator,我正在使用BouncyCastles Java API,并希望使用McEliece加密。在浏览了各种各样的文章以找到好的参数(例如)之后,我现在遇到了一个问题,即我看不到使用BouncyCastle API设置这些参数的可能性 在所有文献中,参数集是一个三元组:(n,k,t)。但对于BouncyCastle,我只能指定用于生成密钥对的3元组(m、t、poly),方法是: new McElieceCCA2Parameters(m, t, poly) 它们如何对应于(n,k,t)参数集?我认为m、

我正在使用BouncyCastles Java API,并希望使用McEliece加密。在浏览了各种各样的文章以找到好的参数(例如)之后,我现在遇到了一个问题,即我看不到使用BouncyCastle API设置这些参数的可能性

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

new McElieceCCA2Parameters(m, t, poly)

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

我认为
m
t
poly
定义了Goppa代码。
m
表示GF2上的多项式次数,该多项式在代码中生成支持
n
表示支持中的元素数量/加密消息的长度(以位为单位)。我快速看了一下,他们使用了全力支持。这意味着
n
始终等于
2^m
t
,代码可以纠正的错误数,必须从区间
[2;(n-1)/m]
中选择,
k
隐式等于
n-m*t

不确定您指的是哪个bouncycastle版本,但最多需要
m
t
。我使用的是版本1.55;-)但是,尽管如此,当1.52中只有2个参数时,如何指定它们,从而获得例如(n,k,t)=(66245129118)的设置?感谢您的回答,但我没有完全理解。两个元组中的
t
是否相同?当我求解(n,k,t)为(66245129118)的m的
k=n-m*t
时,我得到
m≈12.67
。但是
m
必须是一个整数。你能举个简单的例子吗?例如,我必须如何指定
(m,t,poly)
以获得
(n,k,t)
=(66245129118)?据我所知,BouncyCastle计算
n=1@Ph3n1x对不起,回答不完整。是的,
t
(n,k,t)
(m,t,poly)
符号中是相同的。你是对的,n总是2的幂。据我所见,bouncy castle库不允许您进行所需的设置。