广义中间相遇攻击下的KTANTAN密码分析
1. KTANTAN简介
KTANTAN是一种分组密码,它接受用户提供的80位密钥。目前已指定了分组大小 $b \in {32, 48, 64}$ 位的版本,每个版本都有254轮加密。虽然不同版本的轮变换定义有所不同,但密钥调度算法保持一致。为方便表述,将 $b$ 位分组的KTANTAN版本称为KTANTANb。
1.1 轮变换
KATAN和KTANTAN的轮变换规范相同,只是密钥调度有所差异。密码状态由两个不相交的部分 $L_1$ 和 $L_2$ 表示。第 $r$ 轮的变换基于两个布尔函数 $f_{1,r}$ 和 $f_{2,r}$,其定义域分别为 $L_1$ 和 $L_2$:
[
\begin{align }
f_{1,r}(L_1) &= L_1[x_1] \oplus L_1[x_2] \oplus (L_1[x_3] \cdot L_1[x_4]) \oplus (L_1[x_5] \cdot IR_r) \oplus \kappa_{1,r}\
f_{2,r}(L_2) &= L_2[y_1] \oplus L_2[y_2] \oplus (L_2[y_3] \cdot L_2[y_4]) \oplus (L_2[y_5] \cdot L_2[y_6]) \oplus \kappa_{2,r}
\end{align }
]
其中,$x_i$ 和 $y_i$ 是活动位的位置编号,$IR_r$ 是第 $r$ 轮的轮常数位,$\kappa_{1,r}$ 和 $\kappa_{2,r}$ 是由密钥调度算法为第 $r$ 轮定
超级会员免费看
订阅专栏 解锁全文
5万+

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



