Aigis算法一览
Aigis
Aigis-Enc
acronyms
- Small Integer Solutions, SIS
- Learning with Error, LWE
- Asymmetric SIS, ASIS
- Asymmetric LWE, ALWE
- Chosen plaintext attack, CPA -> IND-CPA
- Chosen ciphertext attack, CCA
totally
Aigis-Enc 方案是基于 A-MLWE 困难问题的后量子密钥封装算法,其核心构造为 IND-CPA 安全的公钥加密 PKE = (KeyGen, Enc, Dec).
在此框架基础上,通过 FO 转换可构建 IND-CCA 安全的密钥封装机制 KEM = (KeyGen, Encaps, Decaps).

与 KYBER 的区别:利用秘密向量和噪声向量依赖的 α\alphaα 对解密噪声项模的影响的不对称性,取较大的 α2\alpha_2α2 的值来弥补由于减小 α1\alpha_1α1 而带来的潜在安全损失。
算法描述(CPA安全的方案)
KeyGen

均匀采样 n-bit σ\sigmaσ、ρ\rhoρ;
由随机数种子生成(- XOF -> - Parse ->)NTT 域上的矩阵 A;
以 σ\sigmaσ 为参数通过 CBD 从 Bη1B_{η1}Bη1 中采样私钥向量 s∈Rqks \in R_q^ks∈Rqk;
以 σ\sigmaσ 为参数通过 CBD 从 Bη2B_{η2}Bη2 中采样噪声向量 e∈Rqke \in R_q^ke∈Rqk;
计算 t=As+et = As + et=As+e 后,与 ρ\rhoρ 拼接后 Encode,形成公钥。
Enc

输入 pk Decode 得到 ttt;
由 pk 得到 ρ\rhoρ;
使用种子 ρ\rhoρ 生成(- XOF -> - Parse ->)NTT 域上的矩阵 A;
以随机数r(输入)为参数通过 CBD 从 Bη1B_{η1}Bη1 中生成错误向量 r∈Rqkr \in R_q^kr∈Rqk;
以随机数r为参数通过 CBD 从 Bη2B_{η2}Bη2 中生成错误向量 e1∈Rqke_1 \in R_q^ke1∈Rqk;
以随机数r为参数通过 CBD 从 Bη2B_{η2}Bη2 中生成 e2∈Rqe_2 \in R_qe2∈Rq;
u=ATr+e1u = A^T r + e_1u=ATr+e1;
v=tTr+e2+⌈q2⌋⋅μv = t^T r + e_2 + \lceil \frac{q}{2} \rfloor · \muv=tTr+e2+⌈2q⌋⋅μ;
最后将 u Encode 成 c1c_1c1,将 v Encode 成 c2c_2c2 ,拼接得输出密文 c.
Dec

μ=v−sTu\mu = v - s^T uμ=v−sTu
Aigis-sig
原基于 MLWE 问题的签名方案

压缩带来的改变

为何 A-

算法描述
KeyGen、

均匀采样 ρ\rhoρ、K;
分别在 Sη1lS_{\eta_1}^lSη1l、Sη2kS_{\eta_2}^kSη2k 中采样 s1s_1s1、s2s_2s2;
由随机数种子 ρ\rhoρ 生成(- XOF1XOF_1XOF1 -> - Parse ->)NTT 域上的矩阵 Ak∗lA_{k*l}Ak∗l;
计算 t=As+et = As + et=As+e;
t - compress -> (t1t_1t1, t0t_0t0);
输出 pk = …;
输出 sk = …。
Sign

Verify

更多推荐



所有评论(0)