全 GOST 分组密码的单密钥攻击
在密码学领域,加密算法的安全性至关重要。而针对加密算法的攻击研究,有助于我们更好地了解其潜在的弱点,从而进一步优化和改进加密技术。本文将详细介绍针对全 GOST 分组密码的攻击方法,包括相关概念、攻击步骤以及技术细节。
1. 预备知识
1.1 GOST 简介
GOST 是一种基于 32 轮 Feistel 结构的分组密码,其块大小为 64 位,密钥大小为 256 位。F 函数由密钥加法、八个 4×4 位的 S 盒 (S_j)((1 ≤ j ≤ 8))和 11 位左旋转组成。256 位的主密钥 (K) 被分为八个 32 位的字,即 (K = (k_1, k_2, …, k_8)),每个 (k_i) 作为每一轮函数的轮密钥。在 GOST 标准中,S 盒未被明确指定,不同行业使用不同的 S 盒集合。在本文中,只要 S 盒是双射的,我们就不关心其具体值。
GOST 的密钥调度表如下:
| 轮数 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — |
| 密钥 | (k_1) | (k_2) | (k_3) | (k_4) | (k_5) | (k_6) | (k_7) | (k_8) | (k_1) | (k_2) | (k_3) | (k_4) | (k_5) | (k_6) | (k_7) | (k_8) |
| 轮数 | 17 | 18 | 19 | 20