Cryptography 用BouncyCastle'定义McElice参数元组(n,k,t);s元组(m,t,poly)
我正在使用BouncyCastles Java API,并希望使用McEliece加密。在浏览了各种各样的文章以找到好的参数(例如)之后,我现在遇到了一个问题,即我看不到使用BouncyCastle API设置这些参数的可能性 在所有文献中,参数集是一个三元组:(n,k,t)。但对于BouncyCastle,我只能指定用于生成密钥对的3元组(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、
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库不允许您进行所需的设置。