簡(jiǎn)述KeeLoq加密算法
隨著物聯(lián)網(wǎng)的發(fā)展,越來(lái)越多的設(shè)備開始智能化,這其中就少不了加密算法的保駕護(hù)航。今天我們要了解的就是廣泛應(yīng)用于無(wú)線認(rèn)證領(lǐng)域的加密算法——KeeLoq加密算法。
KeeLoq算法簡(jiǎn)介
KeeLoq算法最初是由南非Willem Smit在上個(gè)世紀(jì)八十年代設(shè)計(jì)的分組密碼算法,后在1995年由Microchip公司購(gòu)買并以此推出了系列專用編解碼芯片。
KeeLoq算法是一個(gè)不平衡Feistel結(jié)構(gòu),其分組長(zhǎng)度為32位,加密圈數(shù)為528圈,每加密一圈僅改變1位,密鑰長(zhǎng)度為64位,并且在加密過(guò)程中循環(huán)使用。
KeeLoq算法的核心思想就是用64位密鑰加密32位明文從而得到32位密文,即使明文中只有1位數(shù)據(jù)發(fā)生變化,用KeeLoq算法得到的密文也會(huì)有50%以上的數(shù)據(jù)位發(fā)生變化。

KeeLoq算法加密過(guò)程
首先定義一個(gè)非線性表,這個(gè)非線性表有5位輸入,1位輸出。它在數(shù)據(jù)寄存器中間隔均勻地取固定5位,通過(guò)非線性運(yùn)算產(chǎn)生一個(gè)輸出碼,這-一輸出碼再與數(shù)據(jù)寄存器中的y16與yo以及密鑰寄存器中的k0進(jìn)行異或運(yùn)算后輸出第一位輸出碼.每輸出一位后,分別進(jìn)行移位,并重復(fù)上述過(guò)程共528次,最后在數(shù)據(jù)寄存器中得到32位加密數(shù)據(jù)。

KeeLoq算法解密過(guò)程
首先定義一個(gè)非線性表,這個(gè)非線性表有5位輸入,1位輸出。它在數(shù)據(jù)寄存器中間隔均勻地取固定5位,通過(guò)非線性運(yùn)算產(chǎn)生一個(gè)輸出碼,這一輸出碼再與數(shù)據(jù)寄存器中的y31與y15以及密鑰寄存器中的k15進(jìn)行異或運(yùn)算后輸出第一位輸出碼.每輸出一位后,分別進(jìn)行移位,并重復(fù)上述過(guò)程共528次,最后在數(shù)據(jù)寄存器中得到32位解密數(shù)據(jù)。

KeeLoq算法的安全性
KeeLoq算法的NLF運(yùn)算規(guī)則,使得一個(gè)很小的輸入變化量,也會(huì)造成很大的輸出變化量,產(chǎn)生加密編碼滾動(dòng)效果。無(wú)法通過(guò)輸入微小的變化來(lái)觀察分析輸出的變化,從而破解出密鑰,使得KeeLoq算法具有安全性高的特點(diǎn)。
KeeLoq算法的應(yīng)用
KeeLoq算法??降低了計(jì)算時(shí)間復(fù)雜度,但是也增加了計(jì)算空間復(fù)雜度,并且需要?定數(shù)量的已知前提。導(dǎo)致在實(shí)際密碼破解過(guò)程中難度系數(shù)?,故其安全性?以保證,在實(shí)際應(yīng)?當(dāng)中有著?泛應(yīng)?。目前廣泛用于無(wú)密鑰輸人系統(tǒng)和其他無(wú)線認(rèn)證領(lǐng)域,如遙控?zé)o鑰門禁、遙控報(bào)警系統(tǒng)、身份識(shí)別令牌等。
免責(zé)聲明:素材源于網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系刪稿。



