Page 374 - 《软件学报》2025年第5期
P. 374
2274 软件学报 2025 年第 36 卷第 5 期
算法 1. DEFAULT 密码的加密算法.
输入: 明文 X 和密钥 K ;
输出: 密文 Y.
1. S = X
2. FOR r = 0 TO 27 DO
3. S = AK(AC L (PB(SC L (S ))))
4. END FOR
5. FOR r = 28 TO 51 DO
6. S = AK(AC C (PB(SC C (S ))))
7. END FOR
8. FOR r = 52 TO 79 DO
9. S = AK(AC L (PB(SC L (S ))))
10. END FOR
11. Y = S
12. RETURN Y
在轮数设计中, 整体 80 轮分别采用前 28 轮和后 28 轮为外核轮, 中间 24 轮为内核轮. 内外核轮采用不同的 S
盒和轮常数设计, 目的是分别抵御经典密码分析和常见侧信道分析, 如表 3 和表 4 所示.
表 3 DEFAULT 密码使用的 S 盒
位置 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
外核轮 0 3 7 14 13 4 10 9 12 15 1 8 11 2 6 5
内核轮 1 9 6 15 7 12 8 2 10 14 13 0 4 3 11 5
密钥编排 0 3 7 14 13 4 10 9 12 15 1 8 11 2 6 5
表 4 DEFAULT 密码使用的轮常数
位置 轮常数 轮数
1 3 7 15 31 62 61 59 55 47 30 60 57 71 第1–28轮
外核轮
39 14 29 58 53 43 22 44 24 48 33 2 5 11 第53–80轮
1 3 7 15 31 62 61 59 55 47 30 60
内核轮 第29–52轮
57 51 39 14 29 58 53 43 22 44 24 48
密钥编排 1 第1–4轮
S 盒是常见分组密码中唯一的非线性组件, 其强度直接影响密码整体的安全性. 为了增强抵御侧信道分析的强度,
外核轮 S 盒采用包含 3 个特殊的差分输入和差分输出对的设计. 在外核轮中, 对于 S 盒的任意两个输入, 如果它们的
差分输入等于特定的差分输入值 6、9 或 15, 那么它们的差分输出也是相同的, 并且结果分别为 10、15 或 5.
算法 2 给出了密钥编排算法 [26] . 原始密钥 K 经过 4 轮 S 盒替换、比特置换和轮常数加变换后, 得到 4 个初始
轮密钥 RK 0 、 RK 1 、 RK 2 和 RK 3 , 其中, S 盒替换、比特置换运算与外核轮相同, 轮常数加变换使用的轮常数为 1,
如表 3 和表 4 所示. 初始轮密钥循环参与每轮运算中, 每轮轮密钥 RK r 依次对应初始轮密钥 RK r mod 4 , 其中 r ∈ [0,79] .
算法 2. DEFAULT 密码的密钥编排算法.
输入: 原始密钥 K ;
RK 0 ,RK 1 ,...,RK 78 ,RK 79 .
输出: 轮密钥