简述KeeLoq加密算法

随着物联网的发展,越来越多的设备开始智能化,这其中就少不了加密算法的保驾护航。今天我们要了解的就是广泛应用于无线认证领域的加密算法——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算法⼤⼤降低了计算时间复杂度,但是也增加了计算空间复杂度,并且需要⼀定数量的已知前提。导致在实际密码破解过程中难度系数⾼,故其安全性⾜以保证,在实际应⽤当中有着⼴泛应⽤。目前广泛用于无密钥输人系统和其他无线认证领域,如遥控无钥门禁、遥控报警系统、身份识别令牌等。

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

相关推荐

简述曲路密码

在古典密码中大致可以分为移位和替换两种,在移位密码中字母不变,位置改变;替换密码中则是字母改变,位置不变。今天我们就来了解一种比较简单的移位密码——曲路密码。 曲路密码的简介 曲路密码发明者和发明时间 ...

简述ADFGVX密码

在之前的文章中,我们了解了波利比乌斯密码,它是一种棋盘方阵密码,而我们今天要了解的密码是由它改良而来,在第一次世界大战中被德军广泛使用的ADFGVX密码。 ADFGVX密码简介 ADFGVX密码被认为是“人力加密时代 ...

简述培根密码

大家应该都吃过培根这种食物,但你可知道在古典密码中有一种以“培根”为命名的密码算法。今天我们就来通过本文了解一下这个“培根密码”。 培根密码简介 培根密码有名“倍康尼密码”,英文明文Bacon's cipher,它并不 ...

简述BCrypt加密算法

Blowfish加密算法是一种对称分组密码算法,其拥有加密速度快、紧凑、密钥长度可变等特点。而今天我们文章的主角则是基于Blowfish算法而来的BCrypt加密算法。 BCrypt算法简介 BCrypt算法是专门为密码存储而设计的 ...