用于微電腦的串行通訊數(shù)據(jù)的加密方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及微機通訊領(lǐng)域,具體地,涉及一種用于微電腦的串行通訊數(shù)據(jù)的加密 方法。
【背景技術(shù)】
[0002] 隨著微電腦技術(shù)的普及,各類微型智能終端越來越多,終端間的數(shù)據(jù)傳輸多用串 行通訊,為防止數(shù)據(jù)在傳輸過程中被惡意截取、篡改、偽造就及為重要,為此各廠家均花費 大力來研發(fā)各類加密算法,以其達到數(shù)據(jù)保密傳輸?shù)哪康?。由于終端間的串行通訊多是依 托微機內(nèi)的硬件串行通訊模塊來完成的,其硬件結(jié)構(gòu)是公開的,最小通訊單元(1個數(shù)據(jù)字 節(jié))的格式也是公開和固定的(見圖1),因此所有的加密方法只能通過軟件編制各類密鑰算 法來完成,而大型系統(tǒng)其密鑰算法非常復雜,需占用系統(tǒng)大量的資源和時間,對于各類測控 用的微型終端受硬件資源的限制,根本運算不了大型加密軟件。
【發(fā)明內(nèi)容】
[0003] 本發(fā)明的目的在于,針對上述問題,提出一種用于微電腦的串行通訊數(shù)據(jù)的加密 方法,以實現(xiàn)用最小的資源完成微電腦的串行通訊加密功能的優(yōu)點。
[0004] 為實現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案是: 一種用于微電腦的串行通訊數(shù)據(jù)的加密方法,不使用微電腦內(nèi)的標準硬件串口模塊, 使用微電腦的數(shù)字I/O 口實現(xiàn)串行數(shù)據(jù)的加密接收和發(fā)送; 具體包括: 將現(xiàn)有的字節(jié)長度為7~8位的標準字節(jié)長度修改為η位,η為自然數(shù); 對傳輸?shù)淖止?jié)采用加密方式重新編輯; 所述加密方式為: 將字節(jié)的標志信息從新定義,使得標準串口無法識別; 或\和改變字節(jié)標志信息的電平和作用及字節(jié)長度,使得標準串口無法識別; 或\和將微電腦的發(fā)送幀和接收幀分成多個短幀交替發(fā)送和接收,并將密鑰隱藏在發(fā) 送短幀中,接收端將每個短幀的數(shù)據(jù)按不同的密鑰加密后發(fā)送。
[0005] 本發(fā)明的技術(shù)方案具有以下有益效果: 本發(fā)明的技術(shù)方案,不使用微電腦內(nèi)的標準硬件串口模塊,用微電腦數(shù)字I/O 口完成 串行通訊的所有功能,因不受標準串口通訊規(guī)程的限制,通過自定義通訊規(guī)程,對密鑰進行 簡單處理等方法,達到微型終端數(shù)據(jù)加密傳輸?shù)哪康摹崿F(xiàn)用最小的資源完成微電腦的串 行通訊加密功能的優(yōu)點。
[0006] 下面通過附圖和實施例,對本發(fā)明的技術(shù)方案做進一步的詳細描述。
【附圖說明】
[0007] 圖1為現(xiàn)有的標準串行通訊規(guī)程示意圖; 圖2為本發(fā)明實施例所述的加密串行通訊規(guī)程示意圖; 圖3為本發(fā)明實施例所述的幀數(shù)據(jù)分段加密傳輸示意圖。
【具體實施方式】
[0008] 以下結(jié)合附圖對本發(fā)明的優(yōu)選實施例進行說明,應當理解,此處所描述的優(yōu)選實 施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。
[0009] -種用于微電腦的串行通訊數(shù)據(jù)的加密方法,不使用微電腦內(nèi)的標準硬件串口模 塊,使用微電腦的數(shù)字I/O 口實現(xiàn)串行數(shù)據(jù)的加密接收和發(fā)送; 具體包括: 將現(xiàn)有的字節(jié)長度為7~8位的標準字節(jié)長度修改為η位,η為自然數(shù); 對傳輸?shù)淖止?jié)采用加密方式重新編輯; 所述加密方式為: 將字節(jié)的標志信息從新定義,使得標準串口無法識別; 或\和改變字節(jié)標志信息的電平和作用及字節(jié)長度,使得標準串口無法識別; 或\和將微電腦的發(fā)送幀和接收幀分成多個短幀交替發(fā)送和接收,并將密鑰隱藏在發(fā) 送短幀中,接收端將每個短幀的數(shù)據(jù)按不同的密鑰加密后發(fā)送。
[0010] 以上幾種加密方式可以單獨使用其中一種,也可以選擇幾種組合使用。
[0011] 每字節(jié)的長度可依密鑰的不同在1~11位間變化傳輸,η為自然數(shù),實現(xiàn)字節(jié)長度滾 動加密。如圖2所示。
[0012] 將字節(jié)的標志信息從新定義具體為: (1)起始位、奇偶校驗位、停止位等標志信息全部從新定義。
[0013] ⑵起始位、停止位等標志信息的電平和作用及字節(jié)長度依密鑰的不同隨時改 變。
[0014] 本發(fā)明的技術(shù)方案不用微機內(nèi)現(xiàn)有的標準硬件串行通訊模塊,而使用微機數(shù)字1/ 〇 口來完成串行通訊的所有工作,這樣就可不受標準串口硬件格式的限制,將每字節(jié)的數(shù)據(jù) 長度由標準的7~8位為改為η位,η為自然數(shù),起始位、奇偶校驗位、停止位等標志信息全部 從新定義,讓標準串口無法識別,從而達到加密的目的。
[0015] 而每字節(jié)的長度可依密鑰的不同在1~11位間變化傳輸,η為自然數(shù),實現(xiàn)長度滾動 加密,解密難度就更難。
[0016] 將發(fā)送幀和接收幀分成多個短幀交替發(fā)送和接收,密鑰隱藏在發(fā)送短幀中,接收 端將每個短幀數(shù)據(jù)按不同的密鑰加密后發(fā)送,實現(xiàn)一幀數(shù)據(jù)有多種不同的加密算法,進一 步提尚破解難度。如圖3所不。
[0017] 自定義通訊規(guī)程,將起始位、停止位等標志信息的電平和作用及字節(jié)長度依密鑰 的不同隨時改變,讓邏輯分析儀難以找出其規(guī)律,從而達到加密的目的。
[0018] 下文基于數(shù)字傳感器對本發(fā)明技術(shù)方案進行具體說明,數(shù)字傳感器是一種帶檢測 功能的智能終端,它安裝在檢測現(xiàn)場,儀表為操控終端,它安放在控制室,中間通過串行通 訊線相連,儀表將操控指令發(fā)給數(shù)字傳感器,數(shù)字傳感器將檢測結(jié)果返回儀表,為防止測量 結(jié)果在通訊過程中被惡意盜取和篡改,數(shù)據(jù)需要加密傳輸。由于二邊均為單片微機,內(nèi)存和 速度有限,復雜的加密算法無法完成,只能做簡單的加密算法,而常規(guī)的破解系統(tǒng)都是以標 準串口模塊為基礎(chǔ),或者用邏輯分析儀,找出數(shù)據(jù)的傳輸規(guī)律來破解加密數(shù)據(jù)。為此采用避 開標準串口硬件及其通訊規(guī)程的辦法,自定義通訊規(guī)程,只要數(shù)字傳感器與儀表的通訊規(guī) 程(密鑰)一樣,二邊的通訊就沒問題,標準硬件串口也讀不對數(shù)據(jù),數(shù)據(jù)就無法被竊取。具 體方法如下: 標準串口的等待信號為1電平,起始位為O電平,停止位為1電平,字節(jié)長度固定為7 位或8位。串口硬件模塊會依這些標志信息將字節(jié)數(shù)據(jù)識別出來。
[0019] 為使標準硬件串口無法識別,本發(fā)明技術(shù)方案將標志信息改為:等待信號為0電 平,起始位為1電平,字節(jié)長度改為η位,η為自然數(shù),具體的η可為2~16位。并且其長度 依密鑰滾動變化:如按密鑰1的排列: 第一字節(jié)長度為2位,第二字節(jié)長度為6位,第三字節(jié)長度為13位……, 密鑰2的排列: 第一字節(jié)長度為5位,第二字節(jié)長度為9位,第三字節(jié)長度為16位……, 現(xiàn)有的硬件串口模塊只能識別字節(jié)長度為7、8位的數(shù)據(jù),且長度必須固定,對于超過8 位或變長度的字節(jié)是無法識別,從而達到加密傳輸?shù)哪康摹?br>[0020] 字節(jié)長度依密鑰而滾動變化,即使用邏輯分析儀都難找出規(guī)律,增加破譯難度。
[0021] 一般串行數(shù)據(jù)的發(fā)送或接收都是按幀來處理的,比如一幀30字節(jié)的數(shù)據(jù),其中有 幀起始標志、幀結(jié)束標志、幀校驗數(shù)據(jù)等,一般一幀數(shù)據(jù)按一個加密算法(密鑰)加密,整幀 發(fā)送,其規(guī)律較容易找出(易破譯)。
[0022] 為提高破譯難度,將一幀長數(shù)據(jù)分成η段短數(shù)據(jù)來加密,每一段的加密算法(密鑰) 均不相同。在發(fā)送和接收時將常規(guī)的發(fā)送完一幀再接收一幀的做法改為將發(fā)送和接收幀拆 為η段,交替發(fā)送和接收,將密鑰隱藏在各發(fā)送段中,接收方隨時按新密鑰重新加密處理下 一發(fā)送段的數(shù)據(jù),從而實現(xiàn)一幀數(shù)據(jù)有多種不同的加密方法,進一步提高了破譯難度。
[0023] 如主機要接收一幀30字節(jié)的數(shù)據(jù),可將其分成3個10字節(jié)的短數(shù)據(jù)段來接收,主 機先給分機發(fā)數(shù)據(jù)段Α,在A段數(shù)據(jù)里告訴分機按密鑰1加密前10個字節(jié);分機接收完A字 段后按密鑰1加密前10個字節(jié)后將數(shù)據(jù)發(fā)給主機,主機收完后再給分機發(fā)數(shù)據(jù)段Β,在B段 數(shù)據(jù)里告訴分機按密鑰3加密中間10個字節(jié);分機接收完B字段后按密鑰3加密中間10 個字節(jié)后將數(shù)據(jù)發(fā)給主機,主機收完后再給分機發(fā)數(shù)據(jù)段C……,完成分段加密的目的。因 每一段的密鑰都是隨機變的,破譯就更難。
[0024] 最后應說明的是:以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明, 盡管參照前述實施例對本發(fā)明進行了詳細的說明,對于本領(lǐng)域的技術(shù)人員來說,其依然可 以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分技術(shù)特征進行等同替換。 凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的 保護范圍之內(nèi)。
【主權(quán)項】
1. 一種用于微電腦的串行通訊數(shù)據(jù)的加密方法,其特征在于,不使用微電腦內(nèi)的標準 硬件串口模塊,使用微電腦的數(shù)字I/O口實現(xiàn)串行數(shù)據(jù)的加密接收和發(fā)送; 具體包括: 將現(xiàn)有的字節(jié)長度為7~8位的標準字節(jié)長度修改為n位,n為自然數(shù); 對傳輸?shù)淖止?jié)采用加密方式重新編輯; 所述加密方式包括: 將字節(jié)的標志信息從新定義,使得標準串口無法識別; 或\和改變字節(jié)標志信息的電平和作用及字節(jié)長度,使得標準串口無法識別; 或\和將微電腦的發(fā)送幀和接收幀分成多個短幀交替發(fā)送和接收,并將密鑰隱藏在發(fā) 送短幀中,接收端將每個短幀的數(shù)據(jù)按不同的密鑰加密后發(fā)送。
【專利摘要】本發(fā)明公開了一種用于微電腦的串行通訊數(shù)據(jù)的加密方法,不使用微電腦內(nèi)的標準硬件串口模塊,使用微電腦的數(shù)字I/O口實現(xiàn)串行數(shù)據(jù)的加密接收和發(fā)送;具體包括:將現(xiàn)有的字節(jié)長度為7~8位的標準字節(jié)長度修改為n位,n為自然數(shù);對傳輸?shù)淖止?jié)采用加密方式重新編輯;所述加密方式包括,將字節(jié)的標志信息從新定義,使得標準串口無法識別;或\和改變字節(jié)標志信息的電平和作用及字節(jié)長度,使得標準串口無法識別;或\和將微電腦的發(fā)送幀和接收幀分成多個短幀交替發(fā)送和接收,并將密鑰隱藏在發(fā)送短幀中,接收端將每個短幀的數(shù)據(jù)按不同的密鑰加密后發(fā)送。實現(xiàn)用最小的資源完成微電腦的串行通訊加密功能的優(yōu)點。
【IPC分類】H04L9-06
【公開號】CN104796249
【申請?zhí)枴緾N201510121351
【發(fā)明人】譚旗
【申請人】譚旗
【公開日】2015年7月22日
【申請日】2015年3月19日