麦利耶斯密码系统的攻击与防御
1. 引言
麦利耶斯密码系统于1978年被提出,其原始版本采用戈帕码,至今未被破解。量子计算机在攻击基于码的系统方面,除了格罗弗算法带来的通用改进外,似乎没有显著优势,因此麦利耶斯加密方案是后量子密码学的候选方案之一。
不过,该系统存在密钥尺寸较大的缺点。为了在公钥中隐藏结构良好且可高效解码的戈帕码,需要公布加扰码的完整生成矩阵。此前人们尝试使用其他码来减小密钥尺寸,但麦利耶斯系统的变体大多被破解,使得原始系统成为最强大的候选方案。
已知对原始系统最快的攻击基于信息集解码,本文对斯特恩攻击进行了改进,新攻击性能优于以往。同时,本文还为麦利耶斯和尼德尔里特密码系统提出了新参数,这些参数能在抵御已知攻击的同时,减小公钥尺寸。
2. 麦利耶斯密码系统回顾
- 线性码 :二元[n, k]码是长度为n、维度为k的二元线性码,即$F_2^n$的k维子空间。元素$c\in F_2^n$的汉明重量是其非零元素的数量,[n, k]码C(k > 0)的最小距离是C中非零元素的最小汉明重量。生成矩阵G满足$C = {xG : x\in F_2^k}$,校验矩阵H满足$C = {c\in F_2^n : Hc^T = 0}$。系统生成矩阵形式为$(I_k|Q)$,此时$H = (Q^T|I_{n - k})$是校验矩阵。经典解码问题是找到与给定$y\in F_2^n$距离最近的码字x。
- 经典戈帕码 :固定有限域$F_{2^d}$、$F_{2^d}$在$F_2$上的基以及$F_{2^d}$中的n个不同元素$\alpha