后量子密码学中的QC - MDPC Niederreiter混合加密方案解析
1. 后量子密码学会议概述
2016年2月24 - 26日,第7届国际后量子密码学研讨会(PQCrypto 2016)在日本福冈举行,该会议由国际密码学研究协会合作举办。会议旨在为研究人员提供一个分享成果和交流思想的平台,探讨大规模量子计算机时代的密码学问题。会前还于2月22 - 23日举办了冬季学校。
此次会议收到了来自全球21个国家的42份投稿,程序委员会从中挑选了16篇论文在会议论文集中发表。这些论文涵盖了多元多项式密码学、基于代码的密码学、基于格的密码学、量子算法、后量子协议及实现等多个领域。会议还安排了四场精彩的特邀报告,分别由Daniel Bernstein、Ernie Brickell、Steven Galbraith和Masahide Sasaki主讲,同时设有热门话题讨论环节。程序委员会评选出Aurélie Phesso和Jean - Pierre Tillich的论文“An Efficient Attack on a Code - Based Signature Scheme”为PQCrypto 2016的最佳论文。此外,美国国家标准与技术研究院(NIST)在会议期间宣布了一项关于提交和评估抗量子算法以实现潜在标准化的初步计划。
会议的成功举办离不开众多人员的贡献,包括程序委员会成员、外部评审专家,以及大会主席Kouichi Sakurai、联合主席Takanori Yasuda和Kirill Morozov,还有当地组织委员会成员Hiroaki Anada、Shinichi Matsumoto等人。同时,也感谢合作伙伴和赞助商的支持,如JST CREST、ISIT、ID Quantique等。
2. 会议组织架构
| 角色 | 人员 | 所属机构 |
|---|---|---|
| 大会主席 | Kouichi Sakurai | 日本九州大学和ISIT |
| 联合主席 | Takanori Yasuda | 日本ISIT |
| Kirill Morozov | 日本九州大学 | |
| 程序主席 | Tsuyoshi Takagi | 日本九州大学 |
程序委员会成员来自世界各地的高校和科研机构,如比利时的NXP Semiconductors、德国的TU Darmstadt等。当地组织委员会负责会议的具体组织工作,外部评审专家则对投稿论文进行评审。
3. 后量子密码学的背景与挑战
随着量子计算机的发展,传统的RSA和ECC等密码算法面临着被破解的风险。Shor的量子算法可以高效地解决RSA的因数分解问题,以及ECC和DH的离散对数问题。虽然目前量子计算机能够处理的量子比特数量有限,但Shor算法的概念验证已多次得到验证,最大分解的数字为143。美国国家安全局(NSA)中央安全服务局最近宣布,计划在“不久的将来”将其Suite B系列加密算法过渡到抗量子算法。
在这种背景下,基于代码的公钥加密方案,如McEliece和Niederreiter,成为了有潜力的替代方案。它们的安全性基于编码理论中的难题。其中,使用准循环中密度奇偶校验(QC - MDPC)码的McEliece和Niederreiter加密方案受到了广泛关注。与二进制Goppa码相比,QC - MDPC码可以实现更实用的密钥大小,并且在嵌入式微控制器和FPGA等受限平台上表现良好。
4. QC - MDPC Niederreiter加密方案
4.1 QC - MDPC码的基本概念
- 二进制线性[n, k]纠错码C是$F_2^n$的一个k维子空间,其余维数r = n - k。码C可以由生成矩阵$G \in F_2^{k \times n}$定义,即$C = {mG \in F_2^n | m \in F_2^k}$,也可以由奇偶校验矩阵$H \in F_2^{r \times n}$定义,即$C = {c \in F_2^n | Hc^T = 0_r}$。任意向量$x \in F_2^n$的 syndrome 为$s = Hx^T \in F_2^r$,对于码C的所有码字,s = 0。
- 若存在整数n0,使得码C的码字c循环移动n0个位置后仍为码C的码字,则称码C为准循环(QC)码。若n = n0 · p(p为整数),则生成矩阵和奇偶校验矩阵由p × p的循环块组成,因此只需存储每个循环块的一行即可完全描述这些矩阵。
- (n, r, w) - MDPC码是一种二进制线性[n, k]纠错码,其奇偶校验矩阵的行权重恒定为w。(n, r, w) - QC - MDPC码是准循环的(n, r, w) - MDPC码,且n = n0r。
4.2 QC - MDPC Niederreiter密码系统
-
密钥生成
:生成一个(n, r, w) - QC - MDPC码C,其中n = n0r。私钥是一个形式为$H = [H_0 | \cdots | H_{n0 - 1}]$的奇偶校验矩阵,它包含一个解码陷门。公钥是一个系统奇偶校验矩阵$H’ = [H_{n0 - 1}^{-1} \cdot H] = [H_{n0 - 1}^{-1} \cdot H_0 | \cdots | H_{n0 - 1}^{-1} \cdot H_{n0 - 2} | I]$,它隐藏了陷门,但可以计算公钥码的syndrome。具体步骤如下:
- 随机选择n0个奇偶校验矩阵块$H_0, \cdots, H_{n0 - 1}$的第一行$h_0, \cdots, h_{n0 - 1}$,使其汉明权重之和$\sum_{i = 0}^{n0 - 1} wt(h_i) = w$,并检查$H_{n0 - 1}$是否可逆(行权重dv为奇数时才可能可逆)。
- 通过对第一行$h_0, \cdots, h_{n0 - 1}$进行r - 1次准循环移位生成奇偶校验矩阵块$H_0, \cdots, H_{n0 - 1}$,将它们连接起来得到私钥奇偶校验矩阵H。
- 计算$H_{n0 - 1}^{-1}$与所有块$H_i$的乘积,得到公钥系统奇偶校验矩阵H’。由于H’和H是准循环的,只需存储它们的第一行,公钥中的单位矩阵部分I通常不存储。
- 加密 :给定公钥H’和消息$m \in Z / \binom{n}{t} Z$,将m编码为一个汉明权重为t的错误向量$e \in F_2^n$,密文为公共syndrome$s’ = He^T \in F_2^r$。
- 解密 :给定公共syndrome$s’ \in F_2^r$,使用具有私钥H的t - 错误纠正(QC - )MDPC解码器$\Psi_H$恢复其错误向量。若$e = \Psi_H(s’)$成功,则返回e并将其转换回消息m;若失败,则返回$\perp$。
以下是不同安全级别的参数建议:
| 安全级别 | n0 | n | r | w | t | dv |
| ---- | ---- | ---- | ---- | ---- | ---- | ---- |
| 80位 | 2 | 9602 | 4801 | 90 | 84 | 45 |
| 128位 | 2 | 19714 | 9857 | 142 | 134 | 71 |
4.3 QC - MDPC码的解码
与加密相比,解码在时间和内存方面都更为复杂。有多种解码器可用于解码(QC - )MDPC码,其中Gallager提出的比特翻转解码器经修改后最适合受限设备。以下是解码的基本流程:
graph TD;
A[输入私钥奇偶校验矩阵H和公共syndrome s'] --> B[计算私钥syndrome s = Hn0 - 1s'^T];
B --> C[开始迭代];
C --> D[遍历H的每个块Hi];
D --> E[遍历Hi的每一行Hi[j]];
E --> F[计算不满足的奇偶校验数#upc];
F --> G{#upc是否超过阈值};
G -- 是 --> H[翻转错误候选向量ecand中的对应位];
H --> I[更新syndrome s = s + Hi[j]];
G -- 否 --> E;
D --> J[计算错误候选向量的公共syndrome];
J --> K{是否与初始公共syndrome s'匹配};
K -- 是 --> L[返回正确的错误向量e];
K -- 否 --> M{是否达到最大迭代次数};
M -- 否 --> C;
M -- 是 --> N[增加阈值并重新开始解码];
N --> O{是否达到最大阈值调整次数};
O -- 否 --> C;
O -- 是 --> P[返回失败符号⊥];
- 输入私钥奇偶校验矩阵H和公共syndrome s’,计算私钥syndrome s = Hn0 - 1s’^T。
- 开始迭代,遍历H的每个块Hi。
- 对于每个块Hi,遍历其每一行Hi[j],计算不满足的奇偶校验数#upc。
- 若#upc超过阈值,则翻转错误候选向量ecand中的对应位,并更新syndrome s。
- 处理完所有块后,计算错误候选向量的公共syndrome,并与初始公共syndrome s’进行比较。
- 若匹配,则返回正确的错误向量;否则,继续下一次迭代。
- 若达到最大迭代次数,增加阈值并重新开始解码。
- 若达到最大阈值调整次数仍未找到正确的错误向量,则返回失败符号$\perp$。
5. 基于Niederreiter的混合加密
混合加密方案由密钥封装机制(KEM)和数据封装机制(DEM)两个独立组件组成。KEM是一种公钥加密方案,用于将随机生成的对称会话密钥加密到预期接收者的公钥下;DEM则使用对称加密方案在随机生成的会话密钥下加密明文。混合加密在实际应用中通常很有益,因为对称加密比纯非对称加密高效得多,尤其是对于大明文。同时,它解决了对称密钥分发的问题。
5.1 基于Niederreiter的混合加密构建
作者提出了一种基于Niederreiter的混合加密方案,重点实现了一个IND - CCA安全的KEM,并假设使用一个IND - CCA对称加密方案作为DEM。
-
Niederreiter KEM
:
-
GenNR KEM
:从t - 错误纠正[n, k]线性码族F中随机选择一个码C,其奇偶校验矩阵$H’ = (M | I_{n - k})$,输出H’(或M)作为公钥,私有码描述$\Delta$作为私钥。
-
EncNR KEM
:给定公钥H’,生成一个汉明权重为t的随机错误向量$e \in F_q^n$,计算其公共syndrome$s’ = H’e^T$。通过密钥派生函数(KDF)从e生成长度为lk的对称密钥$k = (k_1 || k_2) = KDF(e, lk)$,输出(k, s’)。
-
DecNR KEM
:使用私有码描述$\Delta$和解码算法$\Psi$将密文s’解码为e。若解码成功,则派生对称密钥$k = KDF(e, lk)$;否则,将k设置为长度为lk的伪随机字符串,如$k = KDF(s’, lk)$。
综上所述,PQCrypto 2016会议聚焦于后量子密码学的前沿问题,而基于QC - MDPC Niederreiter的混合加密方案为应对量子计算威胁提供了一种有潜力的解决方案。其在密钥生成、加密、解密及混合加密等方面的设计和实现,为未来的密码学研究和应用奠定了基础。
后量子密码学中的QC - MDPC Niederreiter混合加密方案解析
6. QC - MDPC Niederreiter在ARM Cortex - M4微控制器上的实现
在ARM Cortex - M4微控制器上实现QC - MDPC Niederreiter加密方案,需要考虑微控制器的资源限制,如内存和处理能力。以下是实现的详细步骤:
6.1 实现思路
- 针对ARM Cortex - M4微控制器的特点,对QC - MDPC Niederreiter的密钥生成、加密和解密算法进行优化,以提高性能。
- 采用合适的数据结构和算法,减少内存占用和计算复杂度。
6.2 具体实现步骤
-
密钥生成
:
- 根据QC - MDPC Niederreiter的密钥生成算法,随机选择奇偶校验矩阵块的第一行,并检查可逆性。
- 利用微控制器的指令集,进行准循环移位操作,生成奇偶校验矩阵。
- 计算公钥系统奇偶校验矩阵,并存储其第一行。
-
加密
:
- 将消息编码为错误向量。
- 利用公钥计算公共syndrome,得到密文。
-
解密
:
- 输入公共syndrome,计算私钥syndrome。
- 采用比特翻转解码器进行迭代解码,更新错误候选向量和syndrome。
- 检查是否找到正确的错误向量,若找到则转换为消息,否则返回失败符号。
7. Persichetti混合加密方案的实现
在QC - MDPC Niederreiter的基础上,实现Persichetti的混合加密方案,以实现IND - CCA安全的加密。
7.1 实现思路
- 基于QC - MDPC Niederreiter构建密钥封装机制(KEM)。
- 选择合适的对称加密方案作为数据封装机制(DEM),如AES - CBC/AES - CMAC。
- 扩展混合加密方案,以处理任意长度的明文。
7.2 具体实现步骤
-
密钥封装机制(KEM)
:
- GenNR KEM :随机选择码C,输出公钥和私钥。
- EncNR KEM :生成随机错误向量,计算公共syndrome和对称密钥。
- DecNR KEM :解码密文,派生对称密钥。
-
数据封装机制(DEM)
:
- 使用对称加密算法(如AES - CBC/AES - CMAC),在对称密钥下加密明文。
- 将加密后的明文与公共syndrome组合,得到最终的密文。
-
解密过程
:
- 从密文中提取公共syndrome,使用KEM解码得到对称密钥。
- 使用对称密钥解密加密后的明文。
8. 结果与比较
在ARM Cortex - M4微控制器上进行实验,对QC - MDPC Niederreiter和Persichetti混合加密方案的性能进行评估。
8.1 性能指标
- 时间开销 :包括密钥生成时间、加密时间和解密时间。
- 安全级别 :根据不同的参数设置,评估加密方案的安全性能。
8.2 实验结果
| 操作 | 80位安全级别时间(ms) | 128位安全级别时间(ms) |
|---|---|---|
| 密钥生成 | 386.4 | - |
| 加密 | 16.5 | - |
| 解密 | 111 | - |
从实验结果可以看出,在80位安全级别下,混合加密方案在ARM Cortex - M4微控制器上具有较好的性能。加密时间为16.5 ms,解密时间为111 ms,密钥生成时间为386.4 ms。
8.3 与其他方案的比较
与传统的加密方案相比,基于QC - MDPC Niederreiter的混合加密方案在抗量子攻击方面具有明显优势。同时,与其他基于代码的加密方案相比,QC - MDPC码的使用使得密钥大小更小,性能更优。
9. 总结与展望
9.1 总结
后量子密码学是当前密码学领域的研究热点,PQCrypto 2016会议为研究人员提供了一个交流的平台。基于QC - MDPC Niederreiter的混合加密方案结合了代码基加密和混合加密的优点,为应对量子计算威胁提供了一种有效的解决方案。在ARM Cortex - M4微控制器上的实现表明,该方案在受限平台上具有较好的性能。
9.2 展望
- 进一步优化 :可以进一步优化算法和实现,提高加密方案的性能和安全性。例如,探索更高效的解码算法,减少解码时间和失败率。
- 应用拓展 :将该加密方案应用于更多的实际场景,如物联网、云计算等,以保障数据的安全传输和存储。
- 标准化推进 :随着量子计算机的发展,抗量子算法的标准化将变得越来越重要。推动基于QC - MDPC Niederreiter的混合加密方案的标准化,有助于其在更广泛的领域得到应用。
总之,基于QC - MDPC Niederreiter的混合加密方案在应对量子计算威胁方面具有广阔的应用前景,未来的研究和发展将为后量子密码学的发展带来新的机遇和挑战。

1310

被折叠的 条评论
为什么被折叠?



