新聞中心

EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計(jì)應(yīng)用 > 基于GSM的無線抄表系統(tǒng)安全性的設(shè)計(jì)

基于GSM的無線抄表系統(tǒng)安全性的設(shè)計(jì)

作者: 時間:2011-03-15 來源:網(wǎng)絡(luò) 收藏

1.4 關(guān)于微控制器的考慮
的所有模塊的工作方式為“長時間休眠,短時間工作”。經(jīng)過斟酌,選擇NXP公司的ARM7內(nèi)核的LPC2132作為主控器。原因如下:集成了實(shí)時時鐘功能(RTC),能在CPU休眠時保持計(jì)時的功能,并能在設(shè)定的時刻通過中斷喚醒CPU;功耗甚小,休眠時電流僅10μA左右;工作電流僅在1 mA/MIPS以下;含有足夠控制模塊和存儲歷史數(shù)據(jù)所需的RAM。

本文引用地址:http://butianyuan.cn/article/156594.htm

2 加密算法和分析
2.1 數(shù)據(jù)加密算法
通信網(wǎng)絡(luò)的安全保障離不開加密理論的支持。從應(yīng)用角度看,信息的安全需要保密、防篡改、防偽造等保障目標(biāo)。而對應(yīng)到數(shù)據(jù)加密理論,這些目標(biāo)可由對稱加密、非對稱加密、散列等算法結(jié)合應(yīng)用來實(shí)現(xiàn)。
對稱加密算法的加密和解密使用同一個密鑰,相對非對稱加密算法密碼長度較短(56 b,64 b或128 b)、加密速度快。最為普及和典型的是DES算法;非對稱加密算法有兩個密鑰,一個公開,一個保密,因此一個做公鑰,一個做密鑰,該算法運(yùn)算量大,與對稱加密算法相比,加解密速度慢,不適合大量數(shù)據(jù)加解密,只適合小量數(shù)據(jù)加解密。典型的算法有RSA算法、橢圓函數(shù)加密算法等;散列函數(shù)是對明文運(yùn)算后,可以生成一個定長的摘要,明文發(fā)生改變后摘要值變化很大,該函數(shù)是一個單向函數(shù),從明文計(jì)算出摘要是很容易的,但從摘要計(jì)算出明文是不可能的。典型的算法有MD5,SHA等。
2.2 加密分析
上面提到的幾種算法已經(jīng)得到了廣泛應(yīng)用,但是在以微控制器為處理器的系統(tǒng)中,他們就顯得很復(fù)雜,CPU運(yùn)算速度不能滿足其要求,占用ROM和RAM的資源較多,影響系統(tǒng)的響應(yīng)速度。因此,針對以ARM7為控制器,數(shù)據(jù)發(fā)送時間短,要求不是很高的系統(tǒng),很有必要一種簡單適用的加密方法提高系統(tǒng)的。根據(jù)系統(tǒng)要求,考慮用對稱加密的方法來實(shí)現(xiàn)對數(shù)據(jù)短信的加密。它的兩個基本要素為加密算法和加密密鑰。加密算法主要由插入隨機(jī)數(shù)、字符置換、字符映射和異或等組成。加密密鑰由計(jì)算機(jī)終控端生成,而且密鑰可以隨時改變,通過模塊發(fā)送。

3 系統(tǒng)加密過程
對短信加密的思路為:首先根據(jù)短信原始內(nèi)容計(jì)算出16位CRC校驗(yàn)碼,16位校驗(yàn)碼用其十六進(jìn)制值對應(yīng)的四字節(jié)ASCII表示,放在原始內(nèi)容末尾,然后對包含原始內(nèi)容和校驗(yàn)碼的字符串再進(jìn)行加密,根據(jù)生成的密文再次生成CRC校驗(yàn)碼,置于密文末尾,最后發(fā)送出去。主要包括插人隨機(jī)數(shù)、字節(jié)置換、異或和字節(jié)映射四個過程。
3.1 密鑰
該系統(tǒng)使用對稱加密的方法,加密算法和密鑰只需保密其一即可使密文無法解讀。但由于加密算法需要精心并經(jīng)過大量分析驗(yàn)證,因此實(shí)際應(yīng)用中優(yōu)秀的算法并不多,而且越是大量應(yīng)用且公開的加密算法,越能表明更高的。因此只要妥善保密好有限長度的密鑰,就能使無限長度的通信數(shù)據(jù)得到保密。對稱加密雙方使用同一個密鑰加密解密,此密鑰由計(jì)算機(jī)終端通過GSM模塊發(fā)送。對于本來就存在安全隱患的GSM網(wǎng)絡(luò)來說,最好的方法就是隨時改變密鑰。因此考慮用32 B隨機(jī)數(shù)作為密鑰,此密鑰可以由計(jì)算機(jī)管理員隨機(jī)輸入或者用PC機(jī)采用隨機(jī)數(shù)生成算法生成。
3.2 加密算法
(1)CRC校驗(yàn)碼
CRC循環(huán)校驗(yàn)碼主要用來校驗(yàn)發(fā)送的數(shù)據(jù)是否可靠,如果不可靠就丟棄重發(fā)或修復(fù)。CRC校驗(yàn)碼主要由信息碼和校驗(yàn)碼組成。如果CRC校驗(yàn)碼長度為nb,信息碼長為kb,就稱(n,k)碼。它的編碼規(guī)則為:首先將信息碼左移(n-k)位,然后用一個生成多項(xiàng)式g(x)(二進(jìn)制數(shù))用模2除移位后的式子,余數(shù)就作為校驗(yàn)碼。該設(shè)計(jì)中GSM模塊的一條短信最長為160個ASCII字符,加上短信明文的長度,考慮到長度太長延時較為嚴(yán)重,因此選擇標(biāo)準(zhǔn)CRC生成算法CRC-CCITT,其多項(xiàng)式為:CRC-CCITT=X16+X12+X5+1。
(2)插入隨機(jī)數(shù)
從原始明文中依次取出一個字節(jié),若該字節(jié)的ASCII值模3余0,則在該字節(jié)后插入3個隨機(jī)數(shù);若該字節(jié)的ASCII值模3余2,則在該字節(jié)后插入2個隨機(jī)數(shù);若該字節(jié)的ASCII值模3余1,則在該字節(jié)后插入1個隨機(jī)數(shù),隨機(jī)數(shù)種子選取各種與當(dāng)前系統(tǒng)狀態(tài)相關(guān)的數(shù)值。插入的隨機(jī)數(shù)對應(yīng)的ASCII的平均值應(yīng)盡量與原明文內(nèi)容的平均值相近,以增加破解的難度。根據(jù)系統(tǒng)短信的格式,如前綴、讀表數(shù)據(jù)、讀表時間、CRC校驗(yàn)碼等,長度為20 B,那么經(jīng)過這一步操作之后,字符串最短長度為40 B,最長為80 B,這樣字符串的長度在40~80 B之間,不確定性大大增加。
(3)字節(jié)置換
將上一步生成的字符串第一個字節(jié)的高四位和最后一個字節(jié)的低四位交換,第二字節(jié)高四位和倒數(shù)第二字節(jié)低四位交換,依次類推,生成字符串;此時,若字符串長度為偶數(shù),將相鄰兩字節(jié)高四位與高四位交換,低四位與低四位交換,生成新字符串。若字符串為奇數(shù),將第一個字節(jié)的高四位、低四位和最后一個字節(jié)高四位,低四位對應(yīng)交換,將第二個字節(jié)的高四位、低四位和倒數(shù)第二個高四位、低四位對應(yīng)交換,依次類推,最中間一個高四位與低四位交換,生成字符串,此時字符串長度不變。
(4)異或
先將32 b密鑰與12 b硬件ID號循環(huán)異或,即密鑰的第n個字節(jié)與ID號的第n%12個字節(jié)異或,得到長度為32 b的字符串密鑰。然后再將上一步產(chǎn)生的字符串與這個32 b的字符串密鑰再做同樣的循環(huán)異或,即字符串的第n個字節(jié)與32 b字符串的第n%32個字節(jié)異或。經(jīng)過兩次雙層循環(huán)異或,生成更加混亂的字符串,此時字符串長度仍然不變。
(5)字節(jié)映射
依次取出上步生成字符串的一個字節(jié),若該字節(jié)對應(yīng)的ASCII值小于32或者大于95,例如0x1A,則將該字節(jié)拆分為兩字節(jié),兩字節(jié)的低四位分別為該字節(jié)的高四位和低四位,兩字節(jié)的高四位分別為0110,0111,即生成0x61,0x7A;這里的兩個字節(jié)的高四位取值要盡量接近,但應(yīng)滿足與低四位組合后他們的ASCII值與不拆分字節(jié)對應(yīng)的值不在一個范圍之內(nèi);若該字節(jié)值在32~95B之間,則保留不變,經(jīng)過此種映射后,字符串長度范圍由原來的40~80 B變?yōu)?0~160 B,字符長度的不確定性進(jìn)一步增加,系統(tǒng)的安全性進(jìn)一步提高。
最后根據(jù)生成的字符串計(jì)算16位校驗(yàn)碼,置于字符串末尾,生成最終的密文發(fā)送出去。以上所有加密的過程均可逆,所以解密過程為上述過程的逆過程,首先根據(jù)CRC校驗(yàn)碼判斷密文傳輸是否有誤,然后解密,根據(jù)解密后的明文獲得水表數(shù)據(jù)。

4 安全性分析
由于加解密使用的密鑰在不停地改變,本來密鑰的保密性就很強(qiáng),使得一些統(tǒng)計(jì)工具就無法發(fā)揮作用。密文的字符串由0~9和A~F共16個字符組成,假如采用暴力窮舉法進(jìn)行破解,若計(jì)算機(jī)的主頻為3.0 GHz,取字符串長度為15,用1臺計(jì)算機(jī)進(jìn)行破解,時間T=1615/(24×3 600×365×3×109)≈12年,若采用100臺計(jì)算機(jī)聯(lián)網(wǎng)同時破解,字符長度僅增加2位,T=12×162/100≈30年,恐怕沒有誰具有如此的耐心去進(jìn)行此項(xiàng)工作。而密文字節(jié)長度在40~160 B之間,那么破解的時間將會更長。
由此可見,此種簡單實(shí)用的加密方案將系統(tǒng)的安全性大大提高。

5 結(jié)語
采用GSM技術(shù)進(jìn)行遠(yuǎn)程水表抄表,節(jié)省了大量的人力財(cái)力,提高了抄表的簡易性、實(shí)時性和可靠性;然而由于GSM通信網(wǎng)絡(luò)存在安全隱患,在以MCU為處理器的嵌入式系統(tǒng)中,已有復(fù)雜的加密算法卻無法使用,使得系統(tǒng)的安全性大大降低。不過對于這種特殊的系統(tǒng),采用本文提及的短信加密的方法,提高了系統(tǒng)的安全性,且方法簡單實(shí)用,占用資源少,加解密速度快,適合推廣。


上一頁 1 2 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉