随着物联网的发展,越来越多的设备开始智能化,这其中就少不了加密算法的保驾护航。今天我们要了解的就是广泛应用于无线认证领域的加密算法——KeeLoq加密算法。

KeeLoq算法简介

KeeLoq算法最初是由南非Willem Smit在上个世纪八十年代设计的分组密码算法,后在1995年由Microchip公司购买并以此推出了系列专用编解码芯片。

KeeLoq算法是一个不平衡Feistel结构,其分组长度为32位,加密圈数为528圈,每加密一圈仅改变1位,密钥长度为64位,并且在加密过程中循环使用。

KeeLoq算法的核心思想就是用64位密钥加密32位明文从而得到32位密文,即使明文中只有1位数据发生变化,用KeeLoq算法得到的密文也会有50%以上的数据位发生变化。

KeeLoq算法

KeeLoq算法加密过程

首先定义一个非线性表,这个非线性表有5位输入,1位输出。它在数据寄存器中间隔均匀地取固定5位,通过非线性运算产生一个输出码,这-一输出码再与数据寄存器中的y16与yo以及密钥寄存器中的k0进行异或运算后输出第一位输出码.每输出一位后,分别进行移位,并重复上述过程共528次,最后在数据寄存器中得到32位加密数据。

KeeLoq算法

KeeLoq算法解密过程

首先定义一个非线性表,这个非线性表有5位输入,1位输出。它在数据寄存器中间隔均匀地取固定5位,通过非线性运算产生一个输出码,这一输出码再与数据寄存器中的y31与y15以及密钥寄存器中的k15进行异或运算后输出第一位输出码.每输出一位后,分别进行移位,并重复上述过程共528次,最后在数据寄存器中得到32位解密数据。

KeeLoq算法

KeeLoq算法的安全性

KeeLoq算法的NLF运算规则,使得一个很小的输入变化量,也会造成很大的输出变化量,产生加密编码滚动效果。无法通过输入微小的变化来观察分析输出的变化,从而破解出密钥,使得KeeLoq算法具有安全性高的特点。

KeeLoq算法的应用

KeeLoq算法⼤⼤降低了计算时间复杂度,但是也增加了计算空间复杂度,并且需要⼀定数量的已知前提。导致在实际密码破解过程中难度系数⾼,故其安全性⾜以保证,在实际应⽤当中有着⼴泛应⽤。目前广泛用于无密钥输人系统和其他无线认证领域,如遥控无钥门禁、遥控报警系统、身份识别令牌等。

免责声明:素材源于网络,如有侵权,请联系删稿。