40、关于F2n上的一类置换多项式及3对1和幂APN S盒的研究

关于F2n上的一类置换多项式及3对1和幂APN S盒的研究

1. 置换多项式的相关研究

在研究置换多项式时,我们主要关注形如 (F(X) = G(X) + \gamma T r(H(X))) 的多项式,其中 (G(X), H(X) \in F_{2^n}[X]),(\gamma \in F_{2^n})。

首先,对于 (G(X)) 有一个必要性质:若 (F(X)) 是 (F_{2^n}) 上的置换多项式(PP),那么对于任意 (\beta \in F_{2^n}),最多存在 2 个元素 (x_1, x_2 \in F_{2^n}) 使得 (G(x_1) = G(x_2) = \beta)。证明过程如下:假设存在不同的 (x_1, x_2, x_3) 满足 (G(x_1) = G(x_2) = G(x_3) = \beta),那么 (F(x_i) \in {\beta, \beta + \gamma})((i = 1, 2, 3)),这就导致 (F) 不可能是置换多项式。

对于 (F(X)) 是 (F_{2^n}) 上的置换多项式的充要条件为:对于任意 (\lambda \in F_{2^n}^ ),当 (T r(\gamma\lambda) = 0) 时,(\sum_{x\in F_{2^n}} (-1)^{T r(\lambda G(x))} = 0);当 (T r(\gamma\lambda) = 1) 时,(\sum_{x\in F_{2^n}} (-1)^{T r(\lambda G(x)+H(x))} = 0)。证明思路是根据 (F(X)) 是置换多项式等价于 (\sum_{x\in F_{2^n}} (-1)^{T r(\lambda F (x))} = 0)(对于所有 (\lambda \in F_{2^n}^ )),再结合 (T r(\lambda F(x)) = T r(\lambda G(x)) + T r(H(x))T r(\gamma\lambda)) 进行推导。

接下来分两种情况讨论 (G(X)):
- (G(X)) 是置换多项式
- 定理表明 (F(X) = G(X) + \gamma T r(H(X))) 是 (F_{2^n}) 上的置换多项式当且仅当 (H(X) = R(G(X))),其中 (R(X) \in F_{2^n}[X]) 且 (\gamma) 是布尔函数 (T r(R(x))) 的 0 - 线性结构。证明过程是因为 (G(X)) 是置换多项式,条件 (\sum_{x\in F_{2^n}} (-1)^{T r(\lambda G(x))} = 0)(当 (T r(\gamma\lambda) = 0))满足,设 (G^{-1}) 是 (G) 相关映射的逆映射,将条件 (\sum_{x\in F_{2^n}} (-1)^{T r(\lambda G(x)+H(x))} = 0)(当 (T r(\gamma\lambda) = 1))进行转化,再结合命题 1 完成证明。
- 由此可知,任何形如 (F(X)) 的置换多项式都可通过将 (G(X)) 代入 (X + \gamma T r(R(X))) 得到。还有两个相关定理:
- 多项式 (X + \gamma T r(H(X^2 + \gamma X) + \beta X)) 是置换多项式当且仅当 (T r(\beta\gamma) = 0)。证明是根据前面定理,该多项式是置换多项式等价于 (\gamma) 是 (T r(H(x^2 + \gamma x) + \beta x)) 的 0 - 线性结构,通过计算 (T r(H((x + \gamma)^2 + \gamma(x + \gamma)) + \beta(x + \gamma)) + T r(H(x^2 + \gamma x) + \beta x) = T r(\beta\gamma)) 完成证明。
- 多项式 (X + \gamma T r(H(X) + H(X + \gamma) + \beta X)) 是置换多项式当且仅当 (T r(\beta\gamma) = 0),证明与上述类似。
- 对于形如 (X + \gamma T r(\delta X^s + \beta X)) 的多项式,当 (s = 2^i) 时,它是置换多项式当且仅当 (T r(\delta\gamma^{2^i} + \beta\gamma) = 0);当 (3 \leq s \leq 2^n - 2) 且二进制权重 (\geq 2) 时,该多项式是置换多项式当且仅当 (s = 2^i + 2^j),((\delta\gamma^{2^j})^{2^{n - i}} + (\delta\gamma^{2^i})^{2^{n - j}} = 0) 且 (T r(\delta\gamma^{2^i + 2^j} + \beta\gamma) = 0)。证明过程是根据前面定理,该多项式定义置换当且仅当 (\gamma) 是 (T r(\delta x^s + \beta x)) 的 0 - 线性结构,再结合相关引理进行推导。
- 作为应用,对于 (X^d + T r(X^t)) 是 (F_{2^n}) 上的置换多项式的充要条件为:
- (n) 是偶数;
- (\gcd (d, 2^n - 1) = 1);
- (t = d \cdot s \pmod{2^n - 1}) 对于某个 (1 \leq s \leq 2^n - 2) 且二进制权重为 1 或 2 的 (s)。证明过程是先根据相关结论得出 (X^d) 需是置换多项式,即 (\gcd(d, 2^n - 1) = 1),设 (d^{-1}) 是 (d) 模 (2^n - 1) 的乘法逆元,那么 (X^d + T r(X^t)) 是置换多项式等价于 (X + T r(X^{d^{-1} \cdot t})) 是置换多项式,再结合前面定理得出结论。

下面用 mermaid 流程图展示 (X^d + T r(X^t)) 是置换多项式的判断流程:

graph TD;
    A[开始] --> B{n是否为偶数};
    B -- 是 --> C{gcd(d, 2^n - 1)是否为1};
    B -- 否 --> D[不是置换多项式];
    C -- 是 --> E{t = d · s (mod 2^n - 1)且s二进制权重为1或2?};
    C -- 否 --> D;
    E -- 是 --> F[是置换多项式];
    E -- 否 --> D;
  • (G(X)) 是线性化多项式
    设 (G(X) = L(X)) 是 (F_{2^n}) 上的线性化多项式。若 (L) 定义的映射是 2 - 1 映射(核为 ({0, \alpha})),对于 (N(x) = L(x) + \gamma T r(H(x))) 是 (F_{2^n}) 上的置换映射,有以下结论:
    • (\gamma) 不属于 (L) 的像集。若 (\gamma) 属于 (L) 的像集,那么 (N) 的像集包含于 (L) 的像集,(N) 就不是置换映射。
    • 对于这样的 (\gamma),(N(x)) 是置换映射当且仅当 (\alpha) 是 (T r(H(x))) 的 1 - 线性结构。证明过程是根据 (N(x)) 的表达式以及相关条件进行推导,当 (N) 是置换映射时,(T r(H(x) + H(x + \alpha)) = 1) 对于所有 (x \in F_{2^n});反之,若 (T r(H(x) + H(x + \alpha)) = 1) 对于所有 (x \in F_{2^n}),通过假设 (N(y) = N(z)) 进行分析得出 (y = z)。

结合相关引理,有以下两类置换多项式:
- 多项式 (L(X) + \gamma T r(H(X^2 + \alpha X) + \beta X)) 是置换多项式当且仅当 (T r(\beta\alpha) = 1)。
- 多项式 (L(X) + \gamma T r(H(X) + H(X + \alpha) + \beta X)) 是置换多项式当且仅当 (T r(\beta\alpha) = 1)。

对于形如 (X^{2^k} + X + T r(X^s)) 是 (F_{2^n}) 上的置换多项式的充要条件为:
- (n) 是奇数;
- (\gcd (k, n) = 1);
- (s) 二进制权重为 1 或 2。证明过程是先分析 (X^{2^k} + X) 的零点情况,得出 (L(x) = x^{2^k} + x) 需是 2 - 1 映射,即 (\gcd (k, n) = 1),再根据像集情况以及前面结论得出 (n) 是奇数,最后结合相关定理完成证明。

2. 3 对 1 和幂 APN S 盒的相关研究

在块密码中,几乎完美非线性(APN)S 盒用于防止差分攻击。由于在偶数个变量上不存在置换 APN S 盒的证据,且幂函数具有高效性,因此幂 APN S 盒在块密码中的应用变得尤为重要。

我们介绍了一类特殊的 3 对 1 S 盒(命名为 (S_{3 - to - 1}) S 盒),偶数个变量上的幂 APN S 盒以及重要的 APN 函数 (X^3 + tr(X^9)) 都属于这个类别。

在研究之前,有一些初步定义。设 (F : V_m \to V_m) 是一个 S 盒,(F) 关于 (a \in V_m) 的导数定义为 (D_aF(x) = F(x) + F(x + a)),(\forall x \in V_m)。定义 (\delta(a, b) = |{x \in V_m, D_aF(x) = b}|) 以及 (\delta(F) = \max_{a\neq0,b\in V_m} \delta(a, b))。

下面是一个表格总结相关定义:
| 定义 | 表达式 |
| ---- | ---- |
| (D_aF(x)) | (F(x) + F(x + a)) |
| (\delta(a, b)) | (|{x \in V_m, D_aF(x) = b}|) |
| (\delta(F)) | (\max_{a\neq0,b\in V_m} \delta(a, b)) |

差分攻击可成功应用的条件是 (F(x + a) + F(x) = b)((a \neq 0),(b \in V_m))的解的数量不均匀。为防止差分攻击,输出导数 (F(x + a) + F(x))((a \neq 0))应均匀分布。在二进制情况下,最好的情况是一半的值出现两次,满足此性质的 S 盒称为几乎完美非线性(APN)S 盒。

由于在块密码设计中,随机性标准要求使用置换 S 盒,同时偶数个变量的 S 盒因易于实现和硬件友好而受到青睐,但偶数个变量上不存在置换 APN S 盒。而幂函数因实现 S 盒速度快而被优先考虑,例如最流行的块密码 AES 使用逆函数 (X^{-1} = X^{2^m - 2}) 作为底层 S 盒。偶数个变量上的幂 APN 函数形式为 (X^{3d}),这种形式的 APN S 盒是 3 对 1 函数(即每个非零元素有 3 个或 0 个原像,零映射到零),例如 (X^3) 在 (m) 为偶数时是 3 对 1 函数且是 APN 函数。

我们还给出了幂函数成为 APN 函数的必要条件,利用这个必要条件可以过滤掉一些非 APN 幂函数。具体来说,如果变量的数量是小质数的倍数,那么可以过滤掉很多非 APN 函数。

下面用列表总结幂 APN S 盒的相关要点:
1. 幂 APN S 盒在偶数个变量上形式为 (X^{3d})。
2. 3 对 1 函数在偶数个变量上的 APN S 盒研究中有重要作用。
3. 可利用必要条件过滤非 APN 幂函数。

关于F2n上的一类置换多项式及3对1和幂APN S盒的研究(续)

3. 置换多项式研究总结与对比

为了更清晰地理解不同类型置换多项式的条件,我们将前面讨论的几种情况进行总结对比,如下表所示:
| 多项式形式 | 是置换多项式的充要条件 |
| ---- | ---- |
| (X^d + T r(X^t)) | 1. (n) 是偶数;
2. (\gcd (d, 2^n - 1) = 1);
3. (t = d \cdot s \pmod{2^n - 1}) 对于某个 (1 \leq s \leq 2^n - 2) 且二进制权重为 1 或 2 的 (s)。 |
| (X + \gamma T r(\delta X^s + \beta X)) ((s = 2^i)) | (T r(\delta\gamma^{2^i} + \beta\gamma) = 0) |
| (X + \gamma T r(\delta X^s + \beta X)) ((3 \leq s \leq 2^n - 2) 且二进制权重 (\geq 2)) | 1. (s = 2^i + 2^j);
2. ((\delta\gamma^{2^j})^{2^{n - i}} + (\delta\gamma^{2^i})^{2^{n - j}} = 0);
3. (T r(\delta\gamma^{2^i + 2^j} + \beta\gamma) = 0)。 |
| (X + \gamma T r(H(X^2 + \gamma X) + \beta X)) | (T r(\beta\gamma) = 0) |
| (X + \gamma T r(H(X) + H(X + \gamma) + \beta X)) | (T r(\beta\gamma) = 0) |
| (L(X) + \gamma T r(H(X^2 + \alpha X) + \beta X)) ((L) 是 2 - 1 线性化多项式,核为 ({0, \alpha})) | (T r(\beta\alpha) = 1) |
| (L(X) + \gamma T r(H(X) + H(X + \alpha) + \beta X)) ((L) 是 2 - 1 线性化多项式,核为 ({0, \alpha})) | (T r(\beta\alpha) = 1) |
| (X^{2^k} + X + T r(X^s)) | 1. (n) 是奇数;
2. (\gcd (k, n) = 1);
3. (s) 二进制权重为 1 或 2。 |

从这个表格中,我们可以直观地看到不同多项式成为置换多项式所需满足的条件,这有助于在实际应用中根据具体需求选择合适的多项式形式。

下面是一个 mermaid 流程图,展示判断一个多项式是否为置换多项式的通用流程:

graph TD;
    A[开始] --> B[确定多项式形式];
    B --> C{是X^d + Tr(X^t)形式吗};
    C -- 是 --> D{检查n是否为偶数};
    D -- 是 --> E{gcd(d, 2^n - 1)是否为1};
    E -- 是 --> F{t = d · s (mod 2^n - 1)且s二进制权重为1或2?};
    F -- 是 --> G[是置换多项式];
    F -- 否 --> H[不是置换多项式];
    E -- 否 --> H;
    D -- 否 --> H;
    C -- 否 --> I{是X + γ Tr(δX^s + βX)形式吗};
    I -- 是 --> J{s = 2^i吗};
    J -- 是 --> K{Tr(δγ^{2^i} + βγ) = 0吗};
    K -- 是 --> G;
    K -- 否 --> H;
    J -- 否 --> L{3 ≤ s ≤ 2^n - 2且二进制权重≥2吗};
    L -- 是 --> M{s = 2^i + 2^j且(δγ^{2^j})^{2^{n - i}} + (δγ^{2^i})^{2^{n - j}} = 0且Tr(δγ^{2^i + 2^j} + βγ) = 0吗};
    M -- 是 --> G;
    M -- 否 --> H;
    I -- 否 --> N{是其他形式吗};
    N -- 是 --> O[根据对应条件判断];
    O -- 满足条件 --> G;
    O -- 不满足条件 --> H;
4. 3 对 1 和幂 APN S 盒的深入分析

对于 (S_{3 - to - 1}) S 盒,由于偶数个变量上的幂 APN S 盒和 (X^3 + tr(X^9)) 都属于此类,我们可以进一步探讨其性质。

首先,从密码学角度来看,(S_{3 - to - 1}) S 盒在防止差分攻击方面具有一定优势。因为其输出导数的分布相对均匀,使得差分攻击难以找到有效的破解途径。

在实际应用中,我们可以按照以下步骤来利用 (S_{3 - to - 1}) S 盒:
1. 选择合适的函数形式 :根据具体的块密码设计需求,选择偶数个变量上的幂 APN 函数(如 (X^{3d}))或 (X^3 + tr(X^9)) 等形式。
2. 验证 APN 性质 :通过计算 (D_aF(x)) 和 (\delta(F)) 来验证所选函数是否满足 APN 性质。具体操作如下:
- 对于给定的 (a \in V_m),计算 (D_aF(x) = F(x) + F(x + a)),(\forall x \in V_m)。
- 对于所有 (a \neq 0) 和 (b \in V_m),计算 (\delta(a, b) = |{x \in V_m, D_aF(x) = b}|)。
- 计算 (\delta(F) = \max_{a\neq0,b\in V_m} \delta(a, b)),若 (\delta(F)) 满足 APN 要求(即一半的值出现两次),则该函数是 APN 函数。
3. 集成到块密码中 :将满足 APN 性质的 (S_{3 - to - 1}) S 盒集成到块密码的混淆部分,增强密码的安全性。

下面用列表总结利用 (S_{3 - to - 1}) S 盒的步骤:
1. 选择合适函数形式。
2. 验证 APN 性质:
- 计算 (D_aF(x))。
- 计算 (\delta(a, b))。
- 计算 (\delta(F))。
3. 集成到块密码中。

5. 幂函数成为 APN 函数的必要条件应用

我们提到可以利用幂函数成为 APN 函数的必要条件来过滤非 APN 幂函数。具体操作步骤如下:
1. 确定变量数量 (m) :明确所研究的幂函数所在的向量空间 (V_m) 的维度 (m)。
2. 检查 (m) 是否为小质数的倍数 :如果 (m) 是小质数(如 2、3、5 等)的倍数,那么可以利用必要条件进行过滤。
3. 对幂函数进行筛选 :根据必要条件,排除那些不满足条件的幂函数,减少后续研究的范围。

例如,当 (m) 是 2 的倍数时,我们可以快速排除一些不符合 APN 必要条件的幂函数,从而集中精力研究更有可能是 APN 函数的幂函数。

下面是一个 mermaid 流程图展示过滤非 APN 幂函数的流程:

graph TD;
    A[开始] --> B{确定变量数量m};
    B --> C{m是小质数的倍数吗};
    C -- 是 --> D[利用必要条件筛选幂函数];
    D --> E[得到可能是APN的幂函数集合];
    C -- 否 --> F[正常研究所有幂函数];
    F --> E;

通过以上对置换多项式和 3 对 1 及幂 APN S 盒的研究,我们可以更好地理解它们在密码学中的应用和性质,为块密码的设计和分析提供有力的支持。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值