【问题标题】:Defining McEliece parameter tuple (n, k, t) with BouncyCastle's tuple (m, t, poly)用 BouncyCastle 的元组 (m, t, poly) 定义 McEliece 参数元组 (n, k, t)
【发布时间】:2017-10-04 18:08:27
【问题描述】:

我正在使用 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)参数集?

【问题讨论】:

  • 不确定你指的是哪个 bouncycastle 版本,但in 1.52 McElieceCCA2Parameters 最多使用mt
  • 我使用的是 1.55 版本 ;-) 但是,当 1.52 中只有 2 个参数时,如何指定它们,以便获得例如设置(n, k, t) = (6624,5129,118) ?

标签: cryptography bouncycastle encryption-asymmetric key-generator


【解决方案1】:

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

【讨论】:

  • 感谢您的回答,但我没有完全理解。两个元组中的t 是否相同?当我用 (n, k, t)(6624,5129,118) 解决 m 的 k=n-m*t 时,我得到 m≈12.67。但m 必须是整数。你能不能只提供一个简单的例子?例如。我必须如何指定(m, t, poly) 才能获得(n, k, t) = (6624,5129,118)
  • 据我所知,BouncyCastle 计算的是 n=1<<m,所以除了 2 的幂值之外,不可能得到 n。我错了吗?
  • @Ph3n1x 抱歉回答不完整。是的,t(n, k, t)(m, t, poly) 符号中是相同的。你是对的,n 始终是 2 的幂。据我所知,充气城堡库不允许您进行所需的设置。
猜你喜欢
  • 1970-01-01
  • 2018-06-23
  • 1970-01-01
  • 1970-01-01
  • 2020-04-11
  • 1970-01-01
  • 2017-02-26
  • 2022-10-13
  • 1970-01-01
相关资源
最近更新 更多