如何將出租車計(jì)價(jià)傳感器加密

為了加強(qiáng)出租車計(jì)價(jià)器的管理,各地標(biāo)準(zhǔn)計(jì)量局采取了多種方法,但至今計(jì)價(jià)器仍有不少漏洞,為此我們把加密技術(shù)用于出租車計(jì)價(jià)傳感器,設(shè)計(jì)了加密傳感器。加密后的密碼傳感器提高了出租車計(jì)價(jià)器計(jì)費(fèi)的準(zhǔn)確性和安全性,解決了現(xiàn)有出租車計(jì)價(jià)器可靠性不高和難以實(shí)現(xiàn)統(tǒng)一管理的難題。

一、普通出租車計(jì)價(jià)傳感器存在的漏洞

出租車計(jì)價(jià)器現(xiàn)在普遍采用電子傳感器方式,傳感器首先接收車的運(yùn)行信息,然后送給計(jì)價(jià)器,計(jì)價(jià)器自動(dòng)計(jì)算并顯示里程數(shù)和車費(fèi);電子傳感器方式計(jì)價(jià)器由傳感器和計(jì)價(jià)器兩部分組成,其組成框圖如圖1所示。

如何設(shè)計(jì)出租車計(jì)價(jià)傳感器加密
電子傳感器用來(lái)監(jiān)測(cè)出租車的運(yùn)行狀態(tài),車行進(jìn)一定的距離傳感器就向計(jì)價(jià)器發(fā)出一個(gè)符合要求的脈沖,微機(jī)控制部分對(duì)傳感器發(fā)來(lái)的脈沖進(jìn)行計(jì)數(shù),然后轉(zhuǎn)換成里程和車費(fèi)送顯示部分進(jìn)行顯示,功能鍵是用來(lái)完成計(jì)價(jià)器設(shè)置時(shí)間、日期及歷史記錄查詢等功能。

從電子式計(jì)價(jià)器原理可看出,只要向計(jì)價(jià)器發(fā)出符合要求的脈沖計(jì)價(jià)器便計(jì)費(fèi),不同的計(jì)價(jià)器對(duì)脈沖的要求不同,不同點(diǎn)包括正負(fù)脈沖、脈沖寬度和電平類型?,F(xiàn)有技術(shù)模擬實(shí)現(xiàn)符合計(jì)價(jià)器要求的脈沖并不難,使得電子式計(jì)價(jià)器出現(xiàn)漏洞,降低了計(jì)價(jià)器計(jì)費(fèi)的準(zhǔn)確性和安全性。

二、建立加密傳感器加密算法模型

通過以上分析不難看出,導(dǎo)致電子式計(jì)價(jià)器出現(xiàn)漏洞的根本原因是傳感器發(fā)出的計(jì)數(shù)脈沖沒有加密,以至于使用者可以自行增加或處理脈沖,借此來(lái)達(dá)到增加計(jì)費(fèi)的目的。加密傳感器的基本思想就是先對(duì)計(jì)數(shù)脈沖加密,使計(jì)費(fèi)脈沖以密文方式傳輸,最后解密為明文脈沖,傳送到計(jì)價(jià)器計(jì)費(fèi),其原理框圖如圖2所示。

如何將出租車計(jì)價(jià)傳感器加密

常用的加密算法有對(duì)稱加密和非對(duì)稱加密,對(duì)稱加密中的序列密碼(stream cipher)、分組密碼( block cipher)以其簡(jiǎn)捷、快速、容易標(biāo)準(zhǔn)化等特點(diǎn),成為移動(dòng)通信等實(shí)時(shí)加密領(lǐng)域的主流算法。非對(duì)稱密碼加密以其安全性高等特點(diǎn)為身份認(rèn)證、數(shù)據(jù)的保密性、數(shù)據(jù)的完整性提供了有力的支持,但該加密算法速度較慢,對(duì)系統(tǒng)資源有一定要求。

由于該系統(tǒng)要求實(shí)時(shí)加密,硬件系統(tǒng)資源非常有限,而且加密要求只是把單一的脈沖信號(hào)轉(zhuǎn)換成密文脈沖信號(hào),所以采用對(duì)稱加密會(huì)好一些。

在所有的對(duì)稱加密算法中最簡(jiǎn)單的一種就是“置換表”算法,在“置換表”中每一個(gè)不同的數(shù)據(jù)信號(hào)脈沖C對(duì)應(yīng)著“置換表”中的一個(gè)偏移量ofrset,偏移量offset所對(duì)應(yīng)的值就是這個(gè)數(shù)據(jù)信號(hào)所對(duì)應(yīng)的密文文件M.加密程序和解密程序都需要“置換表”。這種加密算法比較簡(jiǎn)單,加密解密速度都很快,為滿足系統(tǒng)需要,我們?cè)O(shè)計(jì)了如下加密算法:

首先把電子傳感器的每個(gè)計(jì)數(shù)脈沖C按照“置換表”轉(zhuǎn)換為一個(gè)n位的二進(jìn)制數(shù)M,然后按規(guī)定的協(xié)議將M發(fā)出,送給解碼器,M既為該傳感器送出的密文文件,不同的傳感器發(fā)出不同的密文文件,當(dāng)解碼器接接收到加密器發(fā)送的密文文件M后,首先和解碼器固有的密碼P比較,如果P=M,解碼器認(rèn)為傳感器發(fā)的信號(hào)有效,然后向計(jì)價(jià)器發(fā)出一個(gè)計(jì)數(shù)脈沖;如果P≠M(fèi),解碼器認(rèn)為傳感器發(fā)的信號(hào)非法,不向計(jì)價(jià)器發(fā)出計(jì)數(shù)脈沖,計(jì)價(jià)器不計(jì)費(fèi),由于加密器和解碼器都有自己固有的密碼,只有P=M時(shí)計(jì)價(jià)器方可計(jì)數(shù),因此出租車司機(jī)自己更換傳感器后計(jì)價(jià)器根本不計(jì)費(fèi),計(jì)量部門可以用專用編程器改變加密協(xié)議中的“置換表”,改變加密器和解碼器的固有密碼。

三、加密傳感器系統(tǒng)設(shè)計(jì)

1、 系統(tǒng)組成與工作原理

加密傳感器系統(tǒng)主要有加密器、解密器和密碼寫入器3大部分組成,系統(tǒng)組成框圖如圖3所示。

如何將出租車計(jì)價(jià)傳感器加密

(1)加密器

接收霍爾元件發(fā)送的脈沖信號(hào),檢測(cè)到這一變化后發(fā)出密碼送解碼器,每個(gè)加密器有一個(gè)固定密碼存放于程序存儲(chǔ)器中。

(2)密碼寫入器

為方便計(jì)量部門使用加密傳感器而設(shè)計(jì)了修改解碼器固有密碼的專門裝置,首先,讀出密碼寫入器小數(shù)字鍵上設(shè)定的密碼,當(dāng)檢測(cè)到按鍵按下時(shí),便向解碼器發(fā)送一組同步字符給解碼器,最后,把密碼按照規(guī)定的協(xié)議發(fā)送給解碼器。

(3)解碼器

可解密加密器發(fā)送的密碼,產(chǎn)生計(jì)數(shù)脈沖,也可以接收密碼寫入器的新密碼,從而改變解碼器固有密碼。

解碼器接收到數(shù)字信號(hào)時(shí),首先判斷接收的是加密器發(fā)送的信號(hào)還是密碼寫入器發(fā)送的信號(hào),它是通過判斷接收的第一組數(shù)據(jù)是否為同步字符來(lái)完成的,若是同步字符,則認(rèn)為是密碼寫入器發(fā)送的信號(hào),接收后面的數(shù)據(jù)并保存到E2PROM中,作為新的固有密碼。若不是同步字符,則讀出自己E2PROM中的固有密碼,與之相比較,若相等,則發(fā)送一個(gè)2 ms的高電平的計(jì)數(shù)脈沖給計(jì)價(jià)器,否則不發(fā)送該脈沖。

2、單片機(jī)選型

在密碼傳感器中,為了保證其安全性,加密器必須與霍爾元件封裝于一起,這樣,加密器可占用空間很小,且環(huán)境溫度比較高(夏季達(dá)1 10℃),因此,要求單片機(jī)具有外圍元件少、工作溫度高和體小等特點(diǎn),解碼器對(duì)單片機(jī)要求除具有加密器的單片機(jī)特點(diǎn)外,還應(yīng)具有E2PROM存儲(chǔ)單元,實(shí)現(xiàn)解碼器固有密碼的修改和保存,以方便計(jì)量部門給加密器和解密器的配對(duì)。密碼寫入器為計(jì)量部門專用設(shè)備,用來(lái)修改解碼器的固有密碼,對(duì)單片機(jī)無(wú)特殊要求,以價(jià)格低廉為主要目標(biāo)。

美國(guó)Microchip公司生產(chǎn)的8位單片機(jī)PIC12C508Ac5J和PIC12CE518A型產(chǎn)品,僅有8個(gè)引腳,且具有低功耗、多功能、高性能、體積小和售價(jià)低等特點(diǎn),在本系統(tǒng)中,加密器、解密器和密碼寫人器分別采用了PIC12C508A、PIC12CE518A和INTER8031單片機(jī)。

3、加密器設(shè)計(jì)

在本系統(tǒng)中,加密器固有密碼用5位十進(jìn)制數(shù)表示,每位數(shù)字按脈沖方式發(fā)送,0發(fā)送10個(gè)脈沖,1至9發(fā)送的脈沖數(shù)與其值相等,脈沖格式如圖4,每個(gè)脈沖低電平的時(shí)間是10μs,高電平的時(shí)間是15 μsS,周期為25 μs,發(fā)送一個(gè)數(shù)所用的時(shí)間小于255 μs。加密器工作程序框圖如圖5。

如何將出租車計(jì)價(jià)傳感器加密

加密器中的核心部件為12C508A,電路原理圖如圖6所示,910為霍爾元件產(chǎn)生計(jì)數(shù)脈沖,PIC12C508A單片機(jī)接收到計(jì)數(shù)脈沖后首先進(jìn)行加密,然后將密碼發(fā)送給解碼器。

如何將出租車計(jì)價(jià)傳感器加密

4、解碼器設(shè)計(jì)

(1)電路原理圖

解碼器電路原理如圖7所示,主要包括光電隔離部分、12CE518A單片機(jī)和計(jì)數(shù)脈沖輸出電路組成,光電隔離采用TPL521 -1,用于去干擾,保證系統(tǒng)可靠性。12CE518A單片機(jī)是解碼器的核心部件,完成密碼接收、解密、密碼修改和計(jì)數(shù)脈沖輸出等工作。計(jì)數(shù)脈沖輸出電路用于TTL電平到+12 V電平脈沖的轉(zhuǎn)換。

如何將出租車計(jì)價(jià)傳感器加密

(2)固有密碼的存儲(chǔ)

串行E2PROM是可在線電擦除和電寫入的存儲(chǔ)器,具有體積小、接口簡(jiǎn)單、數(shù)據(jù)保存可靠、可在線改寫、功耗低等特點(diǎn),而且為低電壓寫入,在單片機(jī)系統(tǒng)中應(yīng)用十分普遍, 單片機(jī)PIC12CE518A內(nèi)部有16個(gè)字節(jié)的E2PROM,CPU和E2PROM采用I2C總線結(jié)構(gòu)連接,GP6(SDA)和GP7( SCL)分別為數(shù)據(jù)線,時(shí)鐘線,無(wú)需外接E2 PROM。

基于I2C協(xié)議下的E2PROM寫、讀程序框圖如圖8、9所示(以發(fā)送一個(gè)數(shù)據(jù)為例)。

如何將出租車計(jì)價(jià)傳感器加密

如何將出租車計(jì)價(jià)傳感器加密

(3)密碼接收

解碼器工作時(shí),首先讀出E2PROM中OOH -04H中存放的固有密碼,分別保存在5個(gè)寄存器中,然后調(diào)用接收數(shù)據(jù)子程序,接受一個(gè)數(shù)據(jù)并存入寄存器中,判斷是否為同步字符,不是同步字符,說明數(shù)據(jù)來(lái)自加密器,繼續(xù)接收另外4個(gè)數(shù)據(jù),將剛剛接收的5個(gè)數(shù)據(jù)與固有密碼比較,如果相同,則說明接收的密碼正確,在GPO引腳上發(fā)送一個(gè)2 ms的計(jì)數(shù)脈沖,然后返回,否則直接返回;若是同步字符,則說明是密碼寫入器發(fā)送來(lái)的信號(hào),要求修改解碼器的固有密碼,繼續(xù)接收5個(gè)分別寫入E2 PROM的OOH -04H中,然后返回。程序只需在上電時(shí)從E2 PROM中讀一次固有密碼,以后就不在訪問E2PROM,這樣可保證計(jì)費(fèi)準(zhǔn)確度符合國(guó)家標(biāo)準(zhǔn)。

在加密傳感器中,加密器向解碼器發(fā)送的是密碼,只有加密器和解密器固有密碼相同時(shí),解碼器才向計(jì)價(jià)器中發(fā)送計(jì)數(shù)脈沖,計(jì)價(jià)器才計(jì)費(fèi)。使用OTP單片機(jī),程序一旦燒錄后是無(wú)法改變,要想修改解密器固有密碼,必須使用專用密碼寫入器,因此,加密傳感器提高了計(jì)價(jià)器計(jì)費(fèi)可靠性,實(shí)現(xiàn)了計(jì)價(jià)器有國(guó)家計(jì)量部門統(tǒng)一安裝、維修和年檢的統(tǒng)一管理。

小知識(shí)之霍爾元件

霍爾元件是應(yīng)用霍爾效應(yīng)的半導(dǎo)體。一般用于電機(jī)中測(cè)定轉(zhuǎn)子轉(zhuǎn)速,如錄象機(jī)的磁鼓,電腦中的散熱風(fēng)扇等;是一種基于霍爾效應(yīng)的磁傳感器,已發(fā)展成一個(gè)品種多樣的磁傳感器產(chǎn)品族,并已得到廣泛的應(yīng)用。