轻量级分组密码算法ITUbee
ITUbee是基于Feistel结构设计且面向软件实现的轻量级分组密码算法,ITUbee的分组长度和密钥长度均为80bit。为了减少算法运行时的功耗,ITUbee没有密钥扩展。ITUbee的轮函数在设计时采用了新的方法,轮密钥在每轮的两个非线性操作之间被注入。ITUbee的轮函数共迭代执行20轮,且在顶层和底层都有密钥白化层。
ITUbee的加密流程
ITUbee的密钥长度和分组长度均为80bits,算法基于Feistel结构共有20轮迭代,在算法的顶层和底层均有密钥白化层,整体加密流程如下图所示。
ITUBee加密过程如下:
轮函数中调用的函数定义如下:
ITUbee算法用到的轮常量如下表所示:
ITUbee加密流程顶部和底部用到的白化密钥以及轮变换中用到的轮密钥都直接从主密钥派生而来。(KL||KR)和(KR||KL)分别被用作ITUbee加密算法顶层和底层的白化密钥,在加密轮变换中,KR用作奇数轮的轮密钥,KL用作偶数轮的轮密钥。
ITUbee的解密流程与加密流程是相同的,只是在解密流程中顶层和底层用到的密钥分别是(KR||KL)和(KL||KR),并且轮常量是以相反的顺序用在解密轮函数中,即第20个轮常量用在第1轮解密变换中,第1个轮常量用在第20轮解密变换中。