DES加密算法在抄表系統(tǒng)中的應(yīng)用
DES加密算法在抄表系統(tǒng)中的應(yīng)用就是把用戶水、電、氣的消耗量,通過(guò)DES加密算法,生成一段密文顯示在儀表液晶屏上,用戶可以主動(dòng)向信息采集中心提交此密文申報(bào)抄表,這種方式,不但有效地以較低成本解決了能源供應(yīng)商的數(shù)據(jù)采集問(wèn)題,而且也是用戶們較客易接受的抄表方式,系統(tǒng)的多重保險(xiǎn)機(jī)制,保證了數(shù)據(jù)采集的準(zhǔn)確性。
一、基于DES加密算法的抄表系統(tǒng)設(shè)計(jì)
1、抄表系統(tǒng)的工作原理
如圖1,在這一系統(tǒng)中,用戶端的單片機(jī)對(duì)日期、儀表讀數(shù)、序列號(hào)進(jìn)行處理,獲得一個(gè)壓縮編碼,然后通過(guò)DES加密算法對(duì)此編碼進(jìn)行加密,其中,當(dāng)前日期由硬件系統(tǒng)中的日歷芯片產(chǎn)生,儀表讀數(shù)由數(shù)據(jù)采集端輸入,序列號(hào)為產(chǎn)品出廠時(shí)對(duì)每個(gè)采集系統(tǒng)設(shè)定的一個(gè)唯一標(biāo)識(shí)號(hào),保存于ROM中,每個(gè)序列號(hào)綁定一個(gè)用戶,居民用戶通過(guò)液晶屏獲得密文,就可以憑此密文到交費(fèi)點(diǎn)申報(bào)和繳費(fèi),也可以通過(guò)電話、短信、網(wǎng)絡(luò)等方式申報(bào)或繳費(fèi),在數(shù)據(jù)采集端,系統(tǒng)獲得密文后,對(duì)密文進(jìn)行解析,獲得序列號(hào)、儀表讀數(shù)、申報(bào)日期的信息,然后再?gòu)臄?shù)據(jù)庫(kù)中找出序列號(hào)所對(duì)應(yīng)的用戶記錄,進(jìn)行簡(jiǎn)單的存儲(chǔ)和計(jì)算后,就可以完成一次數(shù)據(jù)采集或收費(fèi),在用戶提交密文申報(bào)抄表時(shí),如果人為的修改密文數(shù)據(jù),則系統(tǒng)在DES解密或編碼解析時(shí),就會(huì)提示錯(cuò)誤信息,從而能準(zhǔn)確的檢測(cè)出無(wú)效數(shù)據(jù)。

2、抄表系統(tǒng)的硬件設(shè)計(jì)
系統(tǒng)的硬件設(shè)計(jì)工作主要集中在用戶端設(shè)計(jì),在數(shù)據(jù)采集端不需要專門的硬件設(shè)計(jì),所有的工作都可以由PC機(jī)完成。用戶端的硬件主要包括采集模塊、CPU模塊和顯示模塊3個(gè)部分組成,采集模塊主要完成數(shù)據(jù)量化和傳遞的功能,它把能耗(水、電、氣)轉(zhuǎn)化為數(shù)字信息,并傳遞給CPU進(jìn)行處理,常用的“三表”數(shù)據(jù)的記錄大都采用齒輪傳遞,所以,可以考慮在原襄頭個(gè)位數(shù)齒輪邊上安一塊小磁鋼,在齒輪的一側(cè)固定一只開(kāi)關(guān)型霍爾元件,霍爾元件產(chǎn)生的¨0""1¨信號(hào)由放大器放大后,通過(guò)光偶進(jìn)入到CPU模塊,就完成了數(shù)據(jù)量化的功能。對(duì)于電能表,可以使用PT和CT采集電壓和電流信號(hào),電壓電流信號(hào)經(jīng)過(guò)A/D轉(zhuǎn)換進(jìn)入CPU模塊,把電壓和電流值相乘,就可以采集剜單位時(shí)間的耗能值。CPU模塊是整個(gè)硬件系統(tǒng)的核心,數(shù)據(jù)的編碼和DES加密.都是在CPU模塊完成,圖2所示的是基于8031單片機(jī)的硬件系統(tǒng)原理圖,圖中省去了采集模塊(對(duì)水表、電表、氣表的采集電路不一樣)。系統(tǒng)運(yùn)行時(shí),先從采集模塊獲取當(dāng)脯能耗數(shù)據(jù),經(jīng)過(guò)計(jì)算,可以得到該用戶的總能耗,把這一數(shù)值輸送到液晶顯示屏1601上顯示,然后系統(tǒng)從日歷芯片PCF8563中讀出當(dāng)前日期,再?gòu)腇PROM中讀出系統(tǒng)序列號(hào)。有了上述3個(gè)數(shù)據(jù),系統(tǒng)就可以進(jìn)行編碼和加密了。每一次加密生成的密文都先保存于EEPROM2864A中,然后送至1601液晶屏顯示.由于家庭抄表塒實(shí)時(shí)性要求不高,在系統(tǒng)運(yùn)行時(shí),我們采取每5 min更新一次密文.儀表的讀數(shù)和巒文在液晶屏上每2 min交管顯示一次,以使用戶知道當(dāng)前儀表實(shí)際讀數(shù)。
3、查表系統(tǒng)軟件系統(tǒng)設(shè)計(jì)
(1) DES加密算法簡(jiǎn)介
數(shù)據(jù)加密標(biāo)準(zhǔn)(DES)是美國(guó)經(jīng)長(zhǎng)時(shí)間征集和篩選后,于1977年由美國(guó)國(guó)家標(biāo)準(zhǔn)局頒布的一種加密算法,它主要用于民用敏感信息的加密,后來(lái)被國(guó)際標(biāo)準(zhǔn)化組織接受作為國(guó)際標(biāo)準(zhǔn)。DES主要采用替換和移位的方法加密,它用56位密鈳對(duì)64位二進(jìn)制數(shù)據(jù)塊進(jìn)行加密,每次加密可對(duì)6位的輸入效撕進(jìn)行16輪編碼,經(jīng)一系列替換和移位后,輸入的64位原始數(shù)據(jù)轉(zhuǎn)換成完全不同的64位輸出數(shù)據(jù)。DES加密算法僅使用最大為64位的標(biāo)準(zhǔn)算術(shù)和邏輯運(yùn)算,運(yùn)算速度快,密鑰生產(chǎn)容易,適合于在當(dāng)前大多數(shù)計(jì)算機(jī)上用軟件方法實(shí)現(xiàn),同時(shí)也適合于在專用芯片上實(shí)現(xiàn),在系統(tǒng)設(shè)計(jì)中,我們沒(méi)有使用專用的加密芯片來(lái)進(jìn)行加密,這是因?yàn)榭紤]到抄表系統(tǒng)對(duì)實(shí)時(shí)性要求不高,而8031又有足夠的計(jì)算能力和存儲(chǔ)空刨,完全可以完成所需的加密操作。
(2)數(shù)據(jù)的編碼
前面已經(jīng)提到,我們所說(shuō)的抄表系統(tǒng)的工作方式不同于人工抄表和遠(yuǎn)程抄表,它依靠用戶申報(bào)的密文來(lái)工作,因此,這就對(duì)密文的形式提出了要求:
①密文表達(dá)方式必須簡(jiǎn)單,容易讓普通百姓識(shí)別;
②密文的長(zhǎng)度必須盡可能短;
③密文要包含抄表所需的所有信息。
DES加密算法是用56位密鑰對(duì)64位二進(jìn)制數(shù)據(jù)塊進(jìn)行加密,輸出64 bit的二進(jìn)制效,由此可知,如果輸入數(shù)據(jù)小于或等于64 bit。則輸出為64 bit,如果輸人大于64 bit。則輸出就至少為128 bit或更多,為了把密文的長(zhǎng)度限制在64 bit(8Byte)。必須對(duì)輸人數(shù)據(jù)進(jìn)行壓縮編碼,為了最大限度的利用有限編碼長(zhǎng)度,我們采取按位進(jìn)行編碼,見(jiàn)表1。


在這種編碼結(jié)構(gòu)中,年、月、日占16位,可以覆蓋2005年至2099年的范圍,序列號(hào)占28位,覆蓋范圍為0~268435455,儀表讀數(shù)為20位,覆蓋范圍為0~1048575,
采用這種編碼方式,輸出的密文為固定的8 B)ie的長(zhǎng)度,顯示在液晶屏上為16個(gè)十六迸鑭字符(0-9,A-F)。其長(zhǎng)度相當(dāng)于身份證號(hào)的長(zhǎng)度,在抄寫的時(shí)候,不容易出錯(cuò)。
(3)數(shù)據(jù)采集端程序設(shè)計(jì)
數(shù)據(jù)采集端的程序運(yùn)行在PC機(jī)上,其主要在各收費(fèi)站和信息采集中心使用.采集程序按功能主要分為3個(gè)子系統(tǒng):密文接納子系統(tǒng)、密文解析子系統(tǒng)、用戶數(shù)據(jù)庫(kù)子系統(tǒng)。密文接納系統(tǒng)要求能和用戶互動(dòng)交流,不但能接受信息,還要反饋相應(yīng)信息。用戶可以通過(guò)電話、網(wǎng)絡(luò)、短信等方式向信息中心提交,密文,這就要求在軟件設(shè)計(jì)中,要考慮密文接納方式的多樣性,密文解析系統(tǒng)完成的工作是解密和解碼的過(guò)程。在這一過(guò)程中,要結(jié)合數(shù)據(jù)庫(kù)系統(tǒng)中的用戶信息,分辨出當(dāng)前信息是否有效,并通過(guò)密文接納系統(tǒng)。向用戶發(fā)送反饋信息,圖4所示為一個(gè)具有加密和解析功能的程序界面。
數(shù)據(jù)庫(kù)系統(tǒng)足整個(gè)系統(tǒng)的核心,據(jù)庫(kù)中每一條用戶記錄都和一臺(tái)儀表的序列號(hào)相對(duì)應(yīng)。依照密文解析系統(tǒng)解析出的序列號(hào),就可以找到唯一的用戶記錄,由此就可以對(duì)用戶耗能倍息進(jìn)行添加或修改。
2 系統(tǒng)的可靠性設(shè)計(jì)
在本系統(tǒng)中,由于抄表采用了用戶申報(bào)的形式,因此系統(tǒng)對(duì)非法的密文必須有強(qiáng)大的辨識(shí)能力。在系統(tǒng)設(shè)計(jì)中,采用了四重保險(xiǎn)機(jī)制,以確保數(shù)據(jù)的正確性。
①密文標(biāo)準(zhǔn)性檢測(cè),所有的密文都是長(zhǎng)度為16的字符串,字符的形式是十六進(jìn)制(0-9,A-F),一切其它形式的密文被說(shuō)為非法。
②運(yùn)用DES解密算法本身的特性,對(duì)非法的密文的解密不能獲得有效的字符串,一旦用戶錯(cuò)誤的抄寫了密文或者人為的修改了密文,解密后獲得的就可能是空字符串或其它非法字符串(含有非十六進(jìn)制字符)。對(duì)這種情況,系統(tǒng)向用戶反饋申報(bào)無(wú)效的信息。
③系統(tǒng)在獲得一個(gè)有效的序列號(hào)時(shí),在系統(tǒng)中調(diào)出相應(yīng)用戶的記錄,比較歷史記錄和當(dāng)前信息中的時(shí)間值和能耗值,如果當(dāng)前時(shí)間仇或能耗值小于上次記錄,則反饋申報(bào)無(wú)效。最后,在系統(tǒng)完成一次抄表時(shí),會(huì)通過(guò)網(wǎng)絡(luò)、短信平臺(tái)給用戶發(fā)送申報(bào)成功的信息,并發(fā)送本次抄表的相關(guān)數(shù)值信息,如果用戶沒(méi)有提出異議,則系統(tǒng)默認(rèn)此次抄表成功.如果用戶直接到收費(fèi)點(diǎn)進(jìn)行申報(bào),則所有反饋信息都由操作員向用戶傳達(dá)。
三、DES加密算法抄表系統(tǒng)特點(diǎn)
1、有效的把抄表的主動(dòng)權(quán)由供應(yīng)商轉(zhuǎn)移到用戶手中,用戶可以在任何時(shí)間段申報(bào)抄表,因而是用戶較容易接受的方式。
2、硬件投資小,硬件的投資主要是在用戶端的采集儀表上,由于系統(tǒng)硬件實(shí)現(xiàn)簡(jiǎn)單,花費(fèi)成本較低。無(wú)論是對(duì)水、電、氣的采集儀表,成本都可以控制在一百元以內(nèi)。
3、系統(tǒng)維護(hù)簡(jiǎn)單,目前我們所見(jiàn)的遠(yuǎn)程抄表系統(tǒng),都是基于網(wǎng)絡(luò)的,他們要為每一個(gè)用戶提供一個(gè)網(wǎng)絡(luò)接口,因此對(duì)網(wǎng)絡(luò)系統(tǒng)的維護(hù)成本很高?;贒ES壓縮算法的抄表系統(tǒng)在用戶端不直接采用網(wǎng)絡(luò)傳輸數(shù)據(jù),而采用最古老的方式——-人工傳達(dá),因此,維護(hù)成本極低。
4、密文傳送形式的多樣性,用戶從儀表上讀到密文后.可以以自己喜歡的方式向信息中心提交密文,可以用電話、短信、網(wǎng)絡(luò)的方式,甚至可以親自送交到信息采集部門。
隨著時(shí)代的發(fā)展,基于通信網(wǎng)絡(luò)的遠(yuǎn)程抄表方式必然是未來(lái)發(fā)展的方向,但是,可能我們還要經(jīng)歷一個(gè)比較長(zhǎng)的時(shí)間才能實(shí)現(xiàn)全國(guó)范圍的遠(yuǎn)程抄表實(shí)施?;贒ES加密算法的抄表系統(tǒng),可以看成一個(gè)半自動(dòng)化的抄襲系統(tǒng),它作為人工抄表和遠(yuǎn)程抄襲之間的一個(gè)過(guò)渡性產(chǎn)品,主要用于解決那些建立比較早、基礎(chǔ)設(shè)施不完善的小區(qū)的抄襲問(wèn)題。
小知識(shí)之ROM
ROM是只讀內(nèi)存(Read-Only Memory)的簡(jiǎn)稱,是一種只能讀出事先所存數(shù)據(jù)的固態(tài)半導(dǎo)體存儲(chǔ)器。其特性是一旦儲(chǔ)存資料就無(wú)法再將之改變或刪除。通常用在不需經(jīng)常變更資料的電子或電腦系統(tǒng)中,并且資料不會(huì)因?yàn)殡娫搓P(guān)閉而消失。ROM的另一層含義就是我們通常所說(shuō)的刷機(jī)包,是一種手機(jī)固件,它能夠使手機(jī)系統(tǒng)更流暢,更完善,豐富我們的手機(jī)功能。










