TinyJAMBU:一种轻量化密码介绍

TinyJAMBU是一种轻量级、高效的分组密码算法,它是由丹麦技术大学的密码学家所设计的。它使用了JAMBU家族的设计思路,并采用了一些改进,从而使得它在资源受限的设备上表现出色。
TinyJAMBU有128,192和256比特的三种版本。其中主要构件是128比特。它们的标签tag,状态state,随机值nonce的值不管任何版本,分别为64,128,96比特。但是区别是密钥的比特长度发生了变化,分别是128,192,256比特。

TinyJAMBU的特点包括:
轻量级:它的代码非常简洁,只有数百个字节,因此非常适合嵌入式系统和低功耗设备。
高效:它具有非常高的加密和解密速度,可以处理大量数据,同时具有较低的内存和能耗需求。
安全性:它采用了最新的加密技术,具有强大的安全性,能够有效地防止各种攻击。
TinyJAMBU已被广泛用于物联网、无线传感器网络、嵌入式系统等领域,同时也被视为竞争性的AES加密替代方案。

JAMBU家族

JAMBU家族是一组基于分组密码算法的设计思路,它包括了JAMBU、SANDstorm、Piccolo之类的密码算法。这些算法在设计上非常相似,都采用了相同的分组长度和密钥长度,同时具有类似的加密结构和安全性分析方法。
JAMBU家族的设计思路主要包括以下特点:
基于置换:JAMBU家族的算法采用了置换操作,可以充分混淆输入数据,增加了加密的强度。
分组加密:它们都采用了分组密码的设计思路,将明文分成多个块进行加密,同时采用了CBC等加密模式,进一步增强了安全性。
精简的结构:JAMBU家族的算法采用了精简的结构,避免了一些不必要的操作,使得算法非常高效。
安全性分析:JAMBU家族的算法都经过了充分的安全性分析,能够有效地抵抗各种攻击,包括差分攻击、线性攻击和相关密钥攻击等。
JAMBU家族的算法具有结构简单、高效、安全性好等特点,被广泛应用于物联网、嵌入式系统等领域。

TinyJAMBU的规格

TinyJAMBU是一种轻量级的分组密码算法,它的Specification(规范)描述了算法的具体设计和加密过程,下面是TinyJAMBU Specification的详细解释:

分组长度:TinyJAMBU的分组长度为64位(8字节),即每次加密或解密的数据块为64位。
密钥长度:TinyJAMBU的密钥长度为128位(16字节)。
轮数:TinyJAMBU的加密和解密过程都需要经过16轮的迭代,每轮包括置换、扩散和轮密钥添加等操作。
置换:TinyJAMBU采用了置换操作,将输入数据进行混淆,增强加密强度。置换操作包括线性变换和非线性变换两个部分。
扩散:TinyJAMBU采用了扩散操作,将数据块中的每个比特都影响到其他比特,从而增强了加密的强度。扩散操作包括线性扩散和非线性扩散两个部分。
轮密钥添加:TinyJAMBU在每轮迭代中使用不同的轮密钥来增强加密的强度,轮密钥通过将主密钥和轮计数值作为输入经过一系列变换生成。
安全性:TinyJAMBU的设计经过了充分的安全性分析,能够抵抗各种攻击,包括差分攻击、线性攻击和相关密钥攻击等。
性能:TinyJAMBU的加密和解密速度非常快,同时具有较低的内存和能耗需求,非常适合于嵌入式系统和低功耗设备等资源受限的环境。

State

在TinyJAMBU中,状态(state)是64位(8字节),同时也是加密和解密过程的输入和输出。每个加密和解密操作都会修改state,并使用它来生成加密后的输出或解密后的明文。
在TinyJAMBU的加密和解密过程中,输入数据块和state之间是相互作用的,它们是互相影响的,但并不会导致信息丢失或不完整。输入数据块被分成两个32位的半块,分别参与加密和解密操作,并与state进行异或运算,产生一个新的状态。
在加密过程中,第一个32位的输入块和第一个32位的状态半块进行异或运算,然后经过16轮的迭代,生成加密后的输出。在每一轮迭代中,算法会使用一个不同的轮密钥来增强加密的强度。
在解密过程中,算法会使用与加密时相同的轮密钥,将密文输入到算法中,通过16轮迭代将其解密。在每轮迭代中,算法会使用一个不同的轮密钥来将密文解密。
在TinyJAMBU算法中,输入数据块和state之间是通过异或运算相互作用的,而不是直接相关联的。这种设计可以避免信息的丢失和不完整,同时增强了加密的强度。
综上所述,TinyJAMBU的状态和输入数据块之间是相互作用的,它们一起参与加密和解密操作,确保了加密和解密过程的完整性和正确性。

猜你喜欢

转载自blog.csdn.net/Chahot/article/details/130407114