我对这个密码系统很感兴趣。即:
设(S, G, P)为秘密密钥:S:可逆矩阵G:某些线性码的生成矩阵C P:置换矩阵
让G'= SGP成为公钥。
为了加密m,我们计算Enc(m) = mG'+e,用e作为错误向量。
问题是,关于结构攻击的基本思想是,我们用暴力强迫使用的代码家族(很可能,使用的代码是二进制Goppa代码,但也有人试图使用其他家族,这些家族还没有被破坏)。所以我的问题是,我们真的需要揭示使用了哪个系列的代码吗?如果我们把它藏起来就不会更安全了?
发布于 2019-01-25 05:39:46
但是矩阵是置换的,这是允许陷阱门操作的操作。
因此,置换矩阵“隐藏”了实际的矩阵G。所以你的额外隐藏是不必要的。攻击者知道一组置换生成矩阵,但不知道实际矩阵。
尺寸是巨大的,作为一个比较,假设你知道一个4096位的RSA非对称密钥有2098 1's,但没有其他东西。这是一组大小较小的\binom{4096}{2098}\approx 2^{0.999570 \times 4096}=2^{4094.23},它比2^{4096}稍小,但没有显着的乘法因子(比D2弱2位)。
了解代码(例如Goppa)及其参数非常重要,因为这些参数决定了代码的长度、尺寸和最小距离所隐含的强度。
您可以随机选择一个代码,但是当P,G和S的出现时,合法解码器在高效解码方面所具有的优势就消失了。
https://crypto.stackexchange.com/questions/66738
复制相似问题