《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 業(yè)界動(dòng)態(tài) > 基于RTX51 TINY的加密短消息通信系統(tǒng)

基于RTX51 TINY的加密短消息通信系統(tǒng)

2008-10-09
作者:郭軍利 申現(xiàn)瑛 蔣建中

  摘 要: 介紹一種基于RTX51 TINY的加密短消息" title="短消息">短消息通信系統(tǒng)" title="通信系統(tǒng)">通信系統(tǒng),可以實(shí)現(xiàn)手機(jī)與手機(jī)以及手機(jī)與計(jì)算機(jī)之間的加密短消息通信,。
  關(guān)鍵詞: 嵌入式操作系統(tǒng) RTX51 TINY 加密短消息


  短消息服務(wù),,簡(jiǎn)稱SMS(Short Message Service)。由于其方便、快捷,、收費(fèi)低廉,,使得其應(yīng)用越來(lái)越廣泛,一些成功的短信服務(wù)已經(jīng)形成大規(guī)模的創(chuàng)收業(yè)務(wù),。在利用短消息技術(shù)實(shí)現(xiàn)手機(jī)銀行,、手機(jī)炒股時(shí),需要一定的信息安全技術(shù)來(lái)保護(hù)短消息所傳輸?shù)拿舾袛?shù)據(jù)的安全,。一種常用的技術(shù)就是短消息加密技術(shù),,即將所傳數(shù)據(jù)加密之后進(jìn)行傳輸。
  加密短消息的通信技術(shù)有多種,,常用的方法有三種,。一種是利用計(jì)算機(jī)實(shí)現(xiàn),在發(fā)送端,,通過(guò)運(yùn)行在計(jì)算機(jī)中的軟件對(duì)短消息進(jìn)行加密,,然后通過(guò)發(fā)送裝置發(fā)送,而在接收端,,接收裝置接收到加密的短消息后,,傳送給計(jì)算機(jī),再通過(guò)相應(yīng)的軟件進(jìn)行解密,。這種方式實(shí)際是將短消息作為數(shù)據(jù)通信的載體使用,,只能實(shí)現(xiàn)計(jì)算機(jī)與計(jì)算機(jī)之間的加密短消息通信,而只擁有手機(jī)的個(gè)人用戶很難使用此方式,。另一種是將手機(jī)現(xiàn)有的SIM卡升級(jí)成STK卡,然后通過(guò)STK的編程實(shí)現(xiàn)加密短消息的通信,。通過(guò)STK卡的編程,,在手機(jī)菜單目錄中增加了使用加密短消息通信的相應(yīng)增值服務(wù)項(xiàng)目,用戶使用這些項(xiàng)目就可以實(shí)現(xiàn)加密短消息的收發(fā),。這種方式需要手機(jī)用戶將SIM卡升級(jí)成STK卡,,而且只能使用相應(yīng)的增值服務(wù)項(xiàng)目。第三種方式是通過(guò)基于手機(jī)操作系統(tǒng)" title="手機(jī)操作系統(tǒng)">手機(jī)操作系統(tǒng)的軟件開(kāi)發(fā)來(lái)實(shí)現(xiàn),,針對(duì)相應(yīng)的手機(jī)操作系統(tǒng),,編程實(shí)現(xiàn)加密短消息通信軟件模塊,,然后下載到手機(jī)中,,用戶使用此模塊實(shí)現(xiàn)加密短消息通信,。此種方式個(gè)人用戶使用最方便,,但是對(duì)手機(jī)有相應(yīng)要求,,例如Silicon Village公司的Fortress SMS加密短消息通信系統(tǒng),,就需要基于Symbian V6手機(jī)操作系統(tǒng)的手機(jī),,如Nokia 7650手機(jī),。
  本文介紹一種基于單片機(jī)的加密短消息通信系統(tǒng),。系統(tǒng)的核心是一個(gè)運(yùn)行RTX51 TINY嵌入式實(shí)時(shí)操作系統(tǒng)的單片機(jī),,與手機(jī)的控制端口進(jìn)行通信,,控制手機(jī)的短消息操作,實(shí)現(xiàn)了手機(jī)與手機(jī),、手機(jī)與計(jì)算機(jī)以及計(jì)算機(jī)之間的加密短消息通信,。
1 系統(tǒng)組成
  實(shí)現(xiàn)手機(jī)與手機(jī)、手機(jī)與計(jì)算機(jī)以及計(jì)算機(jī)之間的加密短消息通信,,既方便個(gè)人用戶也方便企業(yè)用戶的使用,。系統(tǒng)的組成分為手機(jī)端與計(jì)算機(jī)端。手機(jī)端所完成的主要功能是對(duì)發(fā)送短消息的加密以及接收短消息的解密,。手機(jī)端并不需要對(duì)短消息進(jìn)行編輯,,相應(yīng)的編輯工作通過(guò)手機(jī)來(lái)完成,這就減少了單片機(jī)系統(tǒng)" title="單片機(jī)系統(tǒng)">單片機(jī)系統(tǒng)的硬件電路,,使得單片機(jī)系統(tǒng)不需要設(shè)計(jì)鍵盤(pán)和顯示部分,,也就保證了手機(jī)端設(shè)備小型化設(shè)計(jì)的要求。
  手機(jī)端操作分成短消息的加密發(fā)送與接收解密兩部分:
  (1)發(fā)送加密短消息
  用戶在使用手機(jī)端設(shè)備發(fā)送加密短消息時(shí),,首先用手機(jī)編輯一條短消息,,此條短消息是未加密的明文短消息,用戶不將其發(fā)送出去,,而是存入發(fā)件箱,;然后,手機(jī)端設(shè)備運(yùn)行加密操作,,將存在發(fā)件箱中未發(fā)出的明文短消息進(jìn)行加密,,加密之后再發(fā)送,完成發(fā)送操作,。
  (2)接收加密短消息
  當(dāng)手機(jī)接收到加密的短消息后,,用戶如果直接讀取,則在收件箱中會(huì)有一條不可識(shí)別的密文短消息,。此時(shí),,運(yùn)行手機(jī)端設(shè)備進(jìn)行解密操作,手機(jī)端設(shè)備從手機(jī)收件箱中讀取密文短消息進(jìn)行解密,。解密之后將明文短消息存入手機(jī)的發(fā)件箱中,,用戶從發(fā)件箱中就可以讀取到解密之后的明文短消息。
  計(jì)算機(jī)端的核心是運(yùn)行在計(jì)算機(jī)中的短消息加解密" title="加解密">加解密軟件,通過(guò)VC編程實(shí)現(xiàn),。由于不受系統(tǒng)資源的限制,,計(jì)算機(jī)端軟件功能較強(qiáng)大,不僅可以實(shí)現(xiàn)短消息的加密發(fā)送,、接收解密,,還可以對(duì)手機(jī)收件箱、發(fā)件箱、已發(fā)件箱內(nèi)的短消息進(jìn)行管理,。在計(jì)算機(jī)本地還可以建立通信錄,、短信數(shù)據(jù)庫(kù),實(shí)現(xiàn)短消息的群發(fā),。
2 加密短消息實(shí)現(xiàn)原理
  單片機(jī)系統(tǒng)控制手機(jī)進(jìn)行短消息收發(fā)的原理實(shí)際上是利用手機(jī)的控制端口向手機(jī)發(fā)出一系列的AT命令,,達(dá)到控制手機(jī)收發(fā)短消息的目的。單片機(jī)所連接的控制端口一般為串行異步接口,,可以是紅外連接方式也可以是電纜連接方式,,本系統(tǒng)采用電纜方式進(jìn)行連接,通信速率與所選用手機(jī)的型號(hào)相關(guān),。
  所用的AT指令是GSM07.05[1]中所規(guī)定的AT指令,。該指令集由歐洲通信技術(shù)秀員會(huì)ETSI(European Telecommunications Standards Institute)發(fā)布,其中包含了收發(fā)SMS的相應(yīng)指令,。其主要指令如表1所示,。


  在發(fā)送短消息前,首先通過(guò)AT+CMGF命令選擇短消息的格式,。短消息的格式一般有TEXT與PDU兩種,,PDU格式應(yīng)用最為廣泛,基本上全國(guó)所有的電信局都支持PDU格式的短消息業(yè)務(wù),。PDU格式相當(dāng)于一個(gè)數(shù)據(jù)包,,也方便實(shí)現(xiàn)短消息的加解密。本系統(tǒng)采用PDU格式收發(fā)短消息,。
  PDU格式的短消息數(shù)據(jù)包分為兩種,,一種為SMS-SUBMIT,一種為SMS-DELIVER。SMS-SUBMIT為手機(jī)發(fā)送的PDU數(shù)據(jù)包格式,,SMS-DELIVER為手機(jī)接收的PDU數(shù)據(jù)包格式,。如圖1所示。


  其中SMSC為短消息中心號(hào)碼,,F(xiàn)O為首位,MR為信息類(lèi)型,,DA為被叫號(hào)碼,,PID為協(xié)議標(biāo)識(shí),DCS為編碼方案,,VP為有效期,,OA為發(fā)送號(hào)碼,SCTS為發(fā)送時(shí)間,,UDL為用戶數(shù)據(jù)長(zhǎng)度,,UD為用戶數(shù)據(jù)。詳細(xì)內(nèi)容請(qǐng)參見(jiàn)GSM03.40[2]
  進(jìn)行加密短消息通信時(shí),,需要對(duì)SMS-SUBMIT格式的PDU數(shù)據(jù)包進(jìn)行加密,,對(duì)接收的SMS-DELIVER格式的PDU數(shù)據(jù)包進(jìn)行解密。整個(gè)加密與解密操作只能對(duì)UD,,也就是對(duì)用戶數(shù)據(jù)進(jìn)行操作,,不能對(duì)PDU數(shù)據(jù)包中的其他數(shù)據(jù)進(jìn)行操作,以免造成數(shù)據(jù)格式不正確,,無(wú)法進(jìn)行短消息的收發(fā),。
  短信加密算法可以采用用戶自定義的加密算法,也可以用DES,、Rijndael等標(biāo)準(zhǔn)算法,。但特別需要強(qiáng)調(diào)的是,用戶數(shù)據(jù)需要進(jìn)行十六進(jìn)制編碼后才能正確傳輸,。無(wú)論選用何種加密算法,,當(dāng)完成對(duì)用戶數(shù)據(jù)的加密操作后,需要將加密后的數(shù)據(jù)進(jìn)行十六進(jìn)制編碼,,然后發(fā)送,。解密前,需要先進(jìn)行十六進(jìn)制的解碼,,然后再解密,。
3 基于RTX51 TINY的單片機(jī)系統(tǒng)設(shè)計(jì)
  RTX51是德國(guó)KEIL公司開(kāi)發(fā)的一種應(yīng)用于8051系列單片機(jī)上的實(shí)時(shí)多任務(wù)嵌入式操作系統(tǒng)。采用它可以簡(jiǎn)化復(fù)雜的軟件設(shè)計(jì),,縮短項(xiàng)目開(kāi)發(fā)時(shí)間,。短消息加密通信系統(tǒng)的手機(jī)端設(shè)備,需要處理的數(shù)據(jù)量大,,還要實(shí)現(xiàn)較復(fù)雜的加解密算法,,但對(duì)系統(tǒng)的實(shí)時(shí)性要求不強(qiáng),適合選用RTX51進(jìn)行軟件的開(kāi)發(fā),。
  RTX51有兩個(gè)版本:RTX51 FULL與RTX51 TINY,。RTX51 TINY是RTX51 FULL的一個(gè)子集,通過(guò)時(shí)間片輪詢方式,,可以支持多達(dá)16個(gè)任務(wù),,任務(wù)之間可以進(jìn)行信號(hào)傳遞,已經(jīng)滿足手機(jī)端設(shè)備的需要,。
3.1 系統(tǒng)硬件組成
  由于一條短消息需要占用幾十到一百多字節(jié)的存貯空間,,所以需要單片機(jī)系統(tǒng)對(duì)進(jìn)行外部存貯器的擴(kuò)展。為了與手機(jī)接口的電平匹配,,還需要加電平轉(zhuǎn)換電路,。整個(gè)單片機(jī)系統(tǒng)以AT89C52為核心,,外接6264(8K RAM)進(jìn)行數(shù)據(jù)存貯器擴(kuò)展,以74HC04進(jìn)行電平轉(zhuǎn)換,,組成框圖如圖2所示,。


3.2 系統(tǒng)軟件設(shè)計(jì)
  軟件的核心為串行數(shù)據(jù)通信處理與加解密算法。為了保證串行數(shù)據(jù)通信的可靠性,,采用中斷方式而不采用查詢方式處理串行口,,并編寫(xiě)了相應(yīng)的處理函數(shù)。加解密算法與計(jì)算機(jī)端軟件保持一致,,也通過(guò)相應(yīng)的子函數(shù)實(shí)現(xiàn),。復(fù)位后,首先進(jìn)行系統(tǒng)初始化,,然后啟動(dòng)相應(yīng)的處理任務(wù),,連接手機(jī)并監(jiān)視按鍵與串行口,對(duì)命令進(jìn)行實(shí)時(shí)處理,。系統(tǒng)軟件結(jié)構(gòu)如圖3所示,。


  系統(tǒng)任務(wù)分配如下:
  (1)任務(wù)0:TASK_INI,系統(tǒng)初始化并啟動(dòng)其他全部任務(wù),;
  (2)任務(wù)1:TASK_CONECTPHONE,,連接手機(jī),判斷手機(jī)是否正確,,并對(duì)手機(jī)進(jìn)行初始化,;
  (3)任務(wù)2:TASK_SEND_AT,SMS短消息控制命令發(fā)送任務(wù),,向串行口發(fā)送AT命令,;
  (4)任務(wù)3:TASK_GET_DATA,從串行口接收數(shù)據(jù),,存入緩沖區(qū),,當(dāng)監(jiān)測(cè)到特征字符后,調(diào)用數(shù)據(jù)處理任務(wù)對(duì)數(shù)據(jù)進(jìn)行處理,;
  (5)任務(wù)4:TASK_PROCESS_DATA,,對(duì)接收到的數(shù)據(jù)進(jìn)行處理,并調(diào)用加解密函數(shù)實(shí)現(xiàn)SMS的加密與解密,;
  (6)任務(wù)5:TASK_KEY,,輸入按鍵處理;
  (7)任務(wù)6:TASK_ERROR,,錯(cuò)誤處理。
  在程序調(diào)試階段,,發(fā)現(xiàn)由于串行口數(shù)據(jù)接收的實(shí)時(shí)性要求高,,而RTX51 TINY不支持任務(wù)的優(yōu)先級(jí),,如果在一個(gè)任務(wù)中完成數(shù)據(jù)的接收與處理,則會(huì)由于處理速度慢造成接收緩沖區(qū)的溢出,。所以將數(shù)據(jù)的接收與處理分在兩個(gè)任務(wù)中完成,,數(shù)據(jù)接收任務(wù)負(fù)責(zé)數(shù)據(jù)的接收,并將接收數(shù)據(jù)存入緩沖區(qū),,只有當(dāng)監(jiān)測(cè)到特征字符后,,才調(diào)用數(shù)據(jù)處理任務(wù)對(duì)數(shù)據(jù)進(jìn)行處理。
  為了對(duì)PDU數(shù)據(jù)包進(jìn)行處理,,并且完成加密解密操作,,系統(tǒng)主要編寫(xiě)了以下函數(shù):
  (1)CHAR XDATA *FIND_PDU(CHAR XDATA *P):從接收數(shù)據(jù)緩沖區(qū)中查找PDU數(shù)據(jù)包;
  (2)CHAR XDATA *PROCESS_SMS_SUBMIT(CHAR XDATA *P):處理SMS-SUBMIT格式的PDU數(shù)據(jù)包,;
  (3)CHAR XDATA *PROCESS_SMS_DELIVER(CHAR XDATA *P):處理SMS-DELIVER格式的PDU數(shù)據(jù)包,;
  (4)VOID ENCODE(CHAR XDATA *P,INT LEN):加密函數(shù);
  (5)VOID DECODE(CHAR XDATA *P,INT LEN):解密函數(shù),;
  (6)VOID CHAR2HEX(CHAR XDATA *P,INT LEN):十六進(jìn)制編碼,;
  (7)VOID HEX2CHAR(CHAR XDATA *P,INT LEN):十六進(jìn)制解碼;
  (8)SERIAL( ) INTERRUPT 4:串行口中斷處理函數(shù),。
  加密短消息通信系統(tǒng)的應(yīng)用廣泛,,在金融、股票,、電子商務(wù),、醫(yī)療、數(shù)據(jù)庫(kù)安全,、用戶認(rèn)證以及其他需要保證短消息安全的應(yīng)用中,,都需要加密短消息通信系統(tǒng)。本文介紹的加密短消息通信系統(tǒng),,由于是通過(guò)手機(jī)的控制端口控制手機(jī)進(jìn)行加密短消息的收發(fā),,對(duì)手機(jī)的硬件沒(méi)有具體的要求。也就是說(shuō)即不需要將SIM卡進(jìn)行升級(jí),,也不要求一定是采用某種手機(jī)操作系統(tǒng)的手機(jī),。這方便了已經(jīng)擁有手機(jī)的用戶的使用,便于系統(tǒng)的推廣,。
參考文獻(xiàn)
1 GSM07.05. Digital cellular telecommunication system(Phase 2);Use of Data Terminal Equipment-Data Circuit terminating Equipment (DTE-DCE) interface for Short Message Service (SMS) and Cell Broadcast Service (CBS). [EB/OL]
2 GSM 03.40. Digital cellular telecommunications system(Phase 2+);Technical realization of the Short Message Service(SMS)Point-to-Point(PP). [EB/OL]
3 劉明路,,王亮生.基于RTX51的單片機(jī)軟件設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用, 2002;(12)
4 劉玉宏.KEIL RTX51 TINY內(nèi)核的分析與應(yīng)用[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用, 2004;(1)
5 徐愛(ài)鈞,彭秀華.單片機(jī)高級(jí)語(yǔ)言C51 Windows環(huán)境編程與應(yīng)用[M]. 北京:電子工業(yè)出版社,,2001

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn),。轉(zhuǎn)載的所有的文章,、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容,、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118,;郵箱:[email protected],。