Sage, Goppa Codes:无法创建具有大参数的解码器

问题描述

我一直在玩 sage 中的线性纠错码,目的是编写 McEliece 密码系统的演示程序,该系统使用 Goppa 码。

我一直遵循 https://doc.sagemath.org/html/en/reference/coding/sage/coding/goppa_code.html 上的 SAGE 教程中概述的格式

运行以下代码在字段 GF(2^4) 及其相应的解码器上创建 Goppa 代码没有问题。

F = GF(2^4)
R.<x> = F[]
g = x^2+x+1
L = [a for a in F.list if g(a) != 0]
C = codes.GoppaCode(g,L)
D = C.decoder()

然而,我正在尝试编程的密码系统需要比这更高的参数,特别是在 GF(2^10) 领域。因此,我用来创建此 Goppa 代码及其解码器的代码如下。

F = GF(2^10)
R.<x> = F[]
g = x^50+x^3+1
L = [a for a in F.list if g(a) != 0]
C = codes.GoppaCode(g,L)
D = C.decoder()

这会在 GF(2) 上创建一个 [1024,524] Goppa 代码,并且生成代码 C 甚至使用它来编码消息向量(长度为 524)都没有问题。

不幸的是,当我运行最后一行来创建解码器 D 时,我似乎遇到了内存问题。我最初的反应是在具有更大内存 (64GB) 的机器上尝试它,但我没有运气。我认为这是因为我尝试创建的代码非常庞大,但如果有办法解决这个问题,让我实现此 Goppa 代码生成其解码器,那将非常有帮助。

我们将不胜感激,如果需要,我很乐意提供更多详细信息。

非常感谢!!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)