DES滾動(dòng)加密算法在機(jī)車防盜系統(tǒng)中的應(yīng)用

對(duì)于一個(gè)防盜器使用巳成熟的市場(chǎng)而言,用固定碼方式加密就顯得既不可靠又不安全,因?yàn)樵跓o(wú)線信道上傳輸?shù)拿芪臉O易被復(fù)制,從而可在不用解密的情況下,重發(fā)復(fù)制下來(lái)的密文冒充合法用戶控制車輛,使車輛被盜。針對(duì)上述有問(wèn)題的遙控系統(tǒng),我們采用DES加密算法對(duì)原始代碼加入變動(dòng)碼后的整個(gè)信息進(jìn)行非線性加密,從而產(chǎn)生高度保密的滾動(dòng)碼。

一、、基于DES的滾動(dòng)加密算法

1、DES數(shù)據(jù)加密技術(shù)

數(shù)據(jù)加密標(biāo)準(zhǔn)(DES)是由美國(guó)國(guó)家安全局認(rèn)證,并已被作為聯(lián)邦標(biāo)準(zhǔn)被采用的可靠加密算法。它對(duì)二元數(shù)據(jù)進(jìn)行加密,構(gòu)成分組(塊)加密形式,DES整個(gè)體制是公開的。其系統(tǒng)的安全性全靠密鑰與加密算法。在該加密算法中,當(dāng)密鑰僅改變一位時(shí),就可以使密文中的每一位大約有50%的可能改變;當(dāng)明文改變一位時(shí),也可以使密文中的每一位大約有50%的可能改變。因此,若采用錯(cuò)誤的密鑰,則解密碼位平均有一半是錯(cuò)誤的,有非省優(yōu)秀的保密性,從而防止接收端非法雨戶竊聽的被動(dòng)攻擊方式。另外,一個(gè)通信系統(tǒng)的安全,不僅應(yīng)該包括信息本身的保密性,還應(yīng)該包括信息的真實(shí)性和完整性;有一種所謂的主動(dòng)攻擊可以來(lái)自發(fā)送端非法用戶的偽造、篡改、刪除、重放。甚至也可以是合法用戶的抵賴和篡改,若采用合適的加密算法,可以防止在發(fā)送端主動(dòng)攻擊的方式,使得在接收端、接收者或第三者均可根據(jù)認(rèn)證標(biāo)記驗(yàn)證信息的真、偽,以保證信息系統(tǒng)的安全性。

對(duì)于每次傳輸?shù)男畔⒆兓淮螅畔⒌谋憩F(xiàn)形式集合為有限集,但對(duì)安全性育要求系統(tǒng),若不加任何防范措施,這類系統(tǒng)提供的保護(hù)是非常有限的,因?yàn)檫@種系統(tǒng)的保密性只能靠提高傳輸代碼的長(zhǎng)度來(lái)實(shí)現(xiàn)。而代碼的長(zhǎng)度總是有限的,因而只能得到有限的代碼組合。但是,即使傳輸?shù)拇a已經(jīng)過(guò)了相當(dāng)可靠的加密算法加密,如果它需要傳輸?shù)男畔⑹怯邢薜?。使得發(fā)射的信號(hào)仍然是有限的,那么用捕捉和掃描跟蹤的辦法。就很容易得到密文代碼,這樣就被非法用戶擅自使用。當(dāng)然,如果你使用一個(gè)非常復(fù)雜的加密算法,每次加密的密鑰都是變化的,也是可以保密。但這樣也不是很可行,一是目前還沒有一個(gè)理想的加密算法,再者對(duì)于一個(gè)需要市場(chǎng)的產(chǎn)品而言,不停地更換密鑰對(duì)安全和用戶的滿意受都是非常不利的。

下面我們就介紹一下基于DES的滾動(dòng)加密技術(shù)的實(shí)現(xiàn)過(guò)程:整體流程圖如下圖1所示:

DES滾動(dòng)加密算法在機(jī)車防盜系統(tǒng)中的應(yīng)用

2、滾動(dòng)編碼的設(shè)計(jì)

所謂滾動(dòng)編碼,是相對(duì)于固定編碼而言,在傳輸代碼之前用一個(gè)普通的加密算法對(duì)原始代碼加入一個(gè)變動(dòng)碼后進(jìn)行非線性加密,從而產(chǎn)生高度保密的滾動(dòng)碼,使得即使要傳輸?shù)男畔⑼蹲?,但在信道上每次傳輸代碼都是唯一的,不重復(fù)的。另外,由于要在原始明文代碼后加入一個(gè)由自己設(shè)定的變動(dòng)碼,將原始明文代碼和變動(dòng)碼同時(shí)送入加密算法進(jìn)行加密,不僅使發(fā)送的信息不易泄露,還使接收方可以在用來(lái)確定收到的消息是否真正來(lái)自對(duì)應(yīng)的發(fā)送方的同時(shí),驗(yàn)證來(lái)自發(fā)送方的消息是否被別人侈改改過(guò),因此,使用滾動(dòng)編碼可以不用設(shè)計(jì)特定的復(fù)雜的認(rèn)證算法就起到了認(rèn)證的目的,其益處是顯而易見的了。

滾動(dòng)加密技術(shù)關(guān)鍵之處是在要傳送的信息外添加適當(dāng)?shù)淖儎?dòng)碼,如同步碼,使得可在相當(dāng)長(zhǎng)的時(shí)間內(nèi)(如十五年),它在每次發(fā)送的密文都是不同的。當(dāng)然,也可以用偽序列發(fā)生器產(chǎn)生的編碼。但采用同步序列碼,優(yōu)勢(shì)是非常明顯的,除了可以使每次在空間傳輸?shù)木幋a都是變化,防止接收端非法用戶竊聽的被動(dòng)攻擊方式以外,還可以通過(guò)雙方對(duì)應(yīng)的同步碼容易地防止發(fā)送端非法用戶竊聽的主動(dòng)攻擊方式,作為身份驗(yàn)證碼。

3、基于DES的滾動(dòng)加密技術(shù)的實(shí)現(xiàn)

另外,需要指出的是,前文已經(jīng)提到一個(gè)優(yōu)秀的加密算法能夠使得滾動(dòng)編碼的安全性得到進(jìn)一步的提高,而一般的遙控系統(tǒng)均需要用單片機(jī)設(shè)計(jì)完成指定的其他功能,為了使設(shè)計(jì)的滾動(dòng)編碼能夠方便、經(jīng)濟(jì)地應(yīng)用,我們采用DES加密算法來(lái)實(shí)現(xiàn)滾動(dòng)編碼,使得可以在不添加任何硬件的基礎(chǔ)上方便、快捷地實(shí)現(xiàn)遙控系統(tǒng)的安全。總之,基于DES加密算法的滾動(dòng)編碼相對(duì)于其它各類加密算法,在加密和解密方面有它的獨(dú)到之處,前文已分別做過(guò)描述,但在這兒,必須強(qiáng)調(diào)三點(diǎn):

(1)DES加密算法利于單片機(jī)編程

由于DES加密算法主要采用復(fù)雜的移位方式,使得利用匯編語(yǔ)言實(shí)現(xiàn)很方便(因?yàn)閰R編中直接就有各種移位指令,耗費(fèi)的運(yùn)行周期也較短)。RSA加密算法由于主要是乘冪運(yùn)算,用匯編語(yǔ)言實(shí)現(xiàn)很復(fù)雜。

(2)與別的加密算法比較

DES加密算法加密和解密不需分別編寫,因?yàn)榧用芎徒饷芸捎猛粋€(gè)程序,只需在迭代末加個(gè)小變化,因此編程方便、簡(jiǎn)單。

(3)在無(wú)線遙控系統(tǒng)中

本身煎有個(gè)核心部件一單片機(jī)來(lái)進(jìn)行各種事務(wù)的處理,因此在這基礎(chǔ)上再加人一個(gè)加密模塊,是非常簡(jiǎn)便和經(jīng)濟(jì)的。

二、DES滾動(dòng)加密算法在遙控式機(jī)車防盜系統(tǒng)中的應(yīng)用

1、無(wú)線遙控式機(jī)車防盜系統(tǒng)

遙失式機(jī)車防盜器是市場(chǎng)上推廣普及極為廣泛的一種,目前市場(chǎng)上的遙控機(jī)車防盜系統(tǒng)一般從下面幾個(gè)方面的特點(diǎn)進(jìn)行考慮和設(shè)計(jì)的;

(1)先進(jìn)性:采用先進(jìn)的加密技術(shù)以及跳頻技術(shù);

(2)環(huán)保:靜音尋車、靜音遙控、無(wú)誤報(bào)、無(wú)噪聲;

(3)安全:遙控器采用先進(jìn)的加密技術(shù),無(wú)法破譯和復(fù)制。

(4)方便:操作簡(jiǎn)單,在您不知不覺中就完成防盜使命;

(5)油電路雙重控制:一般情況下,機(jī)車的油電路是斷開的,只有密碼正確方可接通油電路啟動(dòng)機(jī)車,安裝起來(lái)簡(jiǎn)單方便;

(6)短線或搭線報(bào)警:有防拆保護(hù)功能,當(dāng)系統(tǒng)進(jìn)入警戒狀態(tài)后,如線路被剪斷或搭線則會(huì)引發(fā)報(bào)警;

(7)遙控中央門鎖:當(dāng)遙控器發(fā)射正確信號(hào)時(shí),中央門鎖自動(dòng)開啟或關(guān)閉;

(8)非法開門報(bào)警:當(dāng)車主遙控鎖門以后.報(bào)警器進(jìn)入警戒狀態(tài),此時(shí)如撬門或用私配鑰匙開,會(huì)立即引發(fā)報(bào)警,并且油電路切斷;

(9)尋車:車主用遙控器尋車時(shí),喇叭嗚叫,同時(shí)伴有車燈閃爍提示;

(10)防劫:報(bào)敬警器進(jìn)入防劫狀態(tài)60秒以后,機(jī)車自動(dòng)熄火,油電路切斷,機(jī)車無(wú)法自動(dòng),再過(guò)60秒后用遙控器方可解除;

(11)靜音:在用遙控器尋車、遙控開門、遙控鎖門時(shí),如使用此功能,喇叭不響,但有車燈提示;

(12)車門未關(guān)安全提示:機(jī)車啟動(dòng)行駛時(shí),若車門未關(guān)車燈會(huì)連續(xù)閃爍若干秒;機(jī)車熄火遙控鎖門后,此時(shí)若車門未關(guān),車燈會(huì)不停閃爍,喇叭嗚叫直到車門關(guān)上為止;

(13)剎車落鎖:機(jī)車宕動(dòng)后,踩一下腳剃,車門自動(dòng)上鎖,機(jī)車熄火后,車鎖自動(dòng)打開。

本系統(tǒng)在實(shí)現(xiàn)基于DES滾動(dòng)加密算法的基礎(chǔ),設(shè)計(jì)盡量結(jié)合上面的各種功能,使其不僅在傳輸信息的安全得到保證,還使產(chǎn)品有較完善的功能.達(dá)到一定程度的先進(jìn)性。

2、硬件部分

安裝在機(jī)車上的系統(tǒng)是該系統(tǒng)的控制中心,主要由以下部件組成:?jiǎn)纹瑱C(jī)部分、傳感部分、門拉部分、報(bào)警部分、配線部分及其它附件。

單片譏部分采用摩托羅拉的MC68HC05/08系列的單片機(jī),因?yàn)镸ocorola單片機(jī)在通訊領(lǐng)域占有很大的市場(chǎng)份額,采用Motorola單片機(jī)便于與市場(chǎng)接軌。這款Motorola單片機(jī)采用鎖相環(huán)技術(shù),用外部低頻晶振產(chǎn)生內(nèi)部高頻,使得外部頻率噪聲低,抗干擾能力強(qiáng),且能通過(guò)編程控制外部干擾,更適合用于惡劣,多變的環(huán)境。

傳感部分使用的是蕩傳感器和滾動(dòng)傳感器的信號(hào)綜合判斷。振蕩傳感器安放在車門或車窗的內(nèi)側(cè),滾動(dòng)傳感器安裝在帶動(dòng)車輪的滾軸上,多重判斷有利于防止誤報(bào)的發(fā)生。

遙控器主要是一塊單片禮、四個(gè)按鈕、一塊液晶顯示和一對(duì)收發(fā)器構(gòu)成的。其主要完成對(duì)昕發(fā)送和接受的信號(hào)進(jìn)行加密或解密。

3、基于無(wú)線遙控的機(jī)車防盜系統(tǒng)的軟件組成

系統(tǒng)采用中斷方式實(shí)時(shí)檢測(cè)信號(hào),在正常情況下可以根據(jù)接收器收到的車主發(fā)出的控制信號(hào),對(duì)機(jī)車進(jìn)行相應(yīng)的預(yù)熱、上鎖、熄火等操作。在異常情況下,分析檢測(cè)到的信號(hào)如是意外事件(如車子停放處附近發(fā)生大的爆炸聲引起的,則記錄并留待進(jìn)一步分析,防止誤動(dòng)作。如是由于偷車賊進(jìn)行非法活動(dòng)引起的,則報(bào)警。

要實(shí)現(xiàn)智能報(bào)警功能,對(duì)抗干擾的要求還是相當(dāng)高的。傳感器的干擾源主要是附近大聲響或振動(dòng),如爆炸、載重機(jī)車爬坡引起的振顫等。為了消除種干擾,我們?cè)谲囬T處設(shè)置了振動(dòng)傳感器的同時(shí),也在車軸上安裝丁滾動(dòng)傳感器。它們一般都被安放在保護(hù)范圍的中心不易為破壞的地方。在正常情況下,單片機(jī)處于低功耗休眠狀態(tài),當(dāng)傳感器傳來(lái)信號(hào)時(shí),單呼機(jī)被中斷信號(hào)源喚醒,并分辨信號(hào)源,如車子發(fā)生滾動(dòng).為了進(jìn)一步確認(rèn),延時(shí)2s再重復(fù)檢測(cè)判斷滾動(dòng)傳感器輸出的狀態(tài),若其仍有信號(hào),則確認(rèn)育盜賊,立即閉合報(bào)警回路、嗚叫蜂嗚器、制動(dòng)機(jī)車,同時(shí)將報(bào)警信息進(jìn)行加密,由發(fā)射器發(fā)射并通知車主。如喚醒信號(hào)為振動(dòng)信號(hào),則記錄該信號(hào),繼續(xù)檢測(cè)。若在設(shè)定的時(shí)間內(nèi)檢測(cè)到有滾動(dòng)信號(hào),或持續(xù)有振動(dòng),則報(bào)警,否則判斷為干擾源。

在本系統(tǒng)中,滾動(dòng)加密碼產(chǎn)生的原理圖如圖2所示:

DES滾動(dòng)加密算法在機(jī)車防盜系統(tǒng)中的應(yīng)用

發(fā)射的幀格式如圖3所示:

DES滾動(dòng)加密算法在機(jī)車防盜系統(tǒng)中的應(yīng)用

用軟件實(shí)現(xiàn)加密算法在速度、開錆方面是處于不利因素,有利之處是靈活性和可移植性、易使用、易升級(jí),而且也能和大型應(yīng)用如通信或字處理程序相結(jié)臺(tái)。由于加密往往僅僅是無(wú)線能信系統(tǒng)的一個(gè)子功能,一般的遙控系統(tǒng)均要用單片機(jī)設(shè)計(jì)完成指定的其他功能,而前文設(shè)計(jì)的基于DES加密算法的滾動(dòng)編碼可以用單片機(jī)編程方便地實(shí)現(xiàn),并能較好地克服上述所提的不利因素,因此,滾動(dòng)編碼在加密和解密方面有它的獨(dú)到之處。

系統(tǒng)采用同步序列號(hào)作為變動(dòng)碼。當(dāng)遙控器每發(fā)出一條指令或命令時(shí),同步序列號(hào)將自動(dòng)加1,將此同步序列號(hào)作為變動(dòng)碼添加在命令信息后,使得即使是同樣的遙控命令,將產(chǎn)生不同的明文,從而使得加密后的密文是變化的。在無(wú)線遙控系統(tǒng)中,明文除了同步序列和按鍵信息外,可以還有一個(gè)產(chǎn)品序列號(hào),是由于對(duì)于同一個(gè)被控對(duì)象,可以由好幾個(gè)遙控器分別進(jìn)行控制產(chǎn)生的,對(duì)接收信息進(jìn)行驗(yàn)證的過(guò)程如下圖4所示。

DES滾動(dòng)加密算法在機(jī)車防盜系統(tǒng)中的應(yīng)用

在接收器接受到頻率相同、有正確的同步碼等辨別碼頭的信息后,對(duì)消息正文進(jìn)行解密。其驗(yàn)證過(guò)程是通過(guò)以下步驟完成的:

(1)取出產(chǎn)品序列號(hào),如果該序列號(hào)與單片機(jī)內(nèi)存的產(chǎn)品序列號(hào)不同,就跳到步驟(5),否則執(zhí)行步驟(2);

(2)取出同步序列碼,與單片機(jī)內(nèi)的同步計(jì)數(shù)器的值比較,如果相同,就跳到步驟(4),否則進(jìn)行步驟(3)的工作;

(3)如果同步序列碼比單片機(jī)內(nèi)的同步計(jì)數(shù)器的值還小,則跳到步驟(5),否則如果同步序列碼與單片機(jī)內(nèi)的同步計(jì)數(shù)器的差在8以內(nèi),便可判斷為主從機(jī)失去同步,跳到步驟(4),如果同步序列碼與單片機(jī)內(nèi)的同步計(jì)數(shù)器的差值大于8,則將該同步序列號(hào)與一個(gè)指定的臨時(shí)計(jì)數(shù)器比較,差值在8以內(nèi),則修改對(duì)應(yīng)的同步計(jì)數(shù)器,并執(zhí)行步驟(4);

(4)讀取按鍵信息并執(zhí)行相應(yīng)的命令,并修改對(duì)對(duì)應(yīng)計(jì)數(shù)器的值(如加1)以便正確校瞼下一次的信息;

(5)結(jié)束,等待下一個(gè)信息的到來(lái)。

上述的過(guò)程使得對(duì)信息的正確性、完整性都得了驗(yàn)證。需要'電明一點(diǎn)的是,由于在本系統(tǒng)中,每輛機(jī)車可以配有多個(gè)遙控器,而每個(gè)遙控器都有對(duì)應(yīng)的產(chǎn)品序列號(hào),因此,需要針對(duì)每卜遙控器在單片機(jī)內(nèi)開辟空間存貯用來(lái)判斷產(chǎn)品序列號(hào)以致各自的同步序列號(hào)。當(dāng)然,失步值可以根據(jù)系統(tǒng)的不同而進(jìn)行下同的設(shè)定。如果失步現(xiàn)象非常嚴(yán)重的話,還可以采取”學(xué)習(xí)”的方式進(jìn)行同步,這些都能修容易實(shí)現(xiàn)。

4、加密算法在單片機(jī)上的實(shí)現(xiàn)實(shí)例數(shù)數(shù)據(jù)分析及結(jié)論

本節(jié)就上面所講的內(nèi)容利用單片機(jī)實(shí)現(xiàn)了基于DES加密算法的滾動(dòng)編碼,并對(duì)得到的數(shù)據(jù)進(jìn)行分析和認(rèn)證。本節(jié)提供的數(shù)據(jù)如果沒有特別指出,均以二進(jìn)制表示。為了證實(shí)該加密算法的可行性,將最不利的情況一一每次遙控器發(fā)射的命令不變進(jìn)行分析,即變化的僅僅是同步序列號(hào).如果最不利的情況都可達(dá)到理想的效果,加密算法的可行性拉銠得到驗(yàn)證。

可以假設(shè),在遙控器初次使用時(shí)同步序列號(hào)的初始值為6666666666(十六進(jìn)制),產(chǎn)品序列號(hào)為}88888(十進(jìn)制),按鈕信息為:8(十六制),設(shè)明文為:

oiio oii0 0110 0iio oiio oiio oiio oiio oiio0110 1000 1000 iooo iooo iooo iooo

密鑰為:oioi ioio ioii oioi oioi 1011 00ii oiio ioiolulo iioi iooi ioii oiii

運(yùn)行程序得到輸出碼組,即密文:

1101 0101 0011 1011 iooi ioii iooo ioio ioio oooi0000 0111 0111 1101 0ioi iiii

在遙控器第二次發(fā)射時(shí),按鈕信息不變,僅改變了同步序列號(hào),變?yōu)椋?666666667,明文變成:

0110 0iio oii oii0 0110 0110 0110 0iio 0110 0111000 1000 1000 1000 1000 1000

輸出的密文變成了:

1000 1100 1110 ioi0 0001 iii0 100l 0110 l010 1110iioo ooii iioo iooi 0010 ioii

從上面舉的例子,證實(shí)了滾動(dòng)編碼能使得即使要傳輸?shù)男畔?nèi)容沒變,但在信道上每次傳輸?shù)拇a都是唯一的、不得重復(fù)的。而且,下一次的編碼與上次的編碼關(guān)系是非線性的。對(duì)于每次傳輸?shù)男畔⑹怯邢拮兓南到y(tǒng),在加入每次都是變化的同步序列號(hào)后.采用DES算法進(jìn)行滾動(dòng)編碼,在增加非常少量的傳輸碼的同時(shí),大大地提高了系統(tǒng)的安全性。

小知識(shí)之機(jī)車防盜系統(tǒng)

機(jī)車防盜系統(tǒng),是指防止機(jī)車本身或車上的物品被盜所設(shè)的系統(tǒng)。它由電子控制的遙控器或鑰匙、電子控制電路、報(bào)警裝置和執(zhí)行機(jī)構(gòu)等組成。 最早的機(jī)車門鎖是機(jī)械式門鎖,只是用于機(jī)車行駛時(shí)防止車門自動(dòng)打開而發(fā)生意外,只起行車安全作用,不起防盜作用。隨著社會(huì)的進(jìn)步、科學(xué)技術(shù)的發(fā)展和汽車保有量的不斷增加,后來(lái)制造的轎車、貨車車門都上裝了帶鑰匙的門鎖。這種門鎖只控制一個(gè)車門,其他車門是靠車內(nèi)門上的門鎖按鈕進(jìn)行開啟或鎖止。