中北大學 江潤東
利用實時時鐘技術的加密算法設計
中北大學 江潤東
本文基于信息對抗的思想針對汽車遙控開鎖信號容易被重放攻擊的情況提出了一種利用實時時鐘技術的加密算法,該算法使用動態密鑰對數據進行加密,密鑰每隔一段時間就更換一次,使得重放攻擊無法有效實現。該技術可以廣泛使用于汽車遙控、小區門禁等眾多方面。
動態密鑰;加密;重放攻擊
隨著電子設備的廣泛使用,信息安全成為了現代社會的重要一環。信息安全關系到了每一個人,無論是在日常生活方面還是在工作和學習方面,無論是在常規的門禁系統還是關系到財產安全的銀行系統,我們都需要安全的信息環境。我們經常能看這樣的新聞:銀行ATM自動提款機門口被裝上了復制磁條的設備,然后輸入密碼的鍵盤上方被安裝上了攝像頭,這樣不法分子就能復制出受害者的銀行卡,并通過拍攝到的密碼竊取受害人的財務;汽車的遙控信號被不法分子復制,然后等車主走遠后重新將信號發出,打開車門盜取車內財物。保證信息安全已經成為一個研究熱點。
通常采用的保證信息安全傳輸的做法就是進行加密傳輸,但是傳統的加密通信方法通常使用固定的密鑰對數據進行加密,容易被收到攻擊,就像前面講到的銀行卡和汽車遙控的例子一樣。目前,RFID技術被應用到汽車開鎖領域,用戶不需要拿出鑰匙就能解鎖汽車[1];還有使用了雙向通信和跳頻通信方式的汽車開鎖方式[2]。本文針對汽車開鎖信號易被重放這一情況,設計了一種利用實時時鐘的加密算法,使用AES算法,利用動態密鑰對信息進行加密和解密,從而避免了遭受到重放攻擊。
針對信息安全問題,本文提出一種使用動態密鑰的安全技術方案,研究了基于時間同步技術的動態密鑰產生方法及其時間的同步技術。
密鑰是在明文轉換為密文或將密文轉換為明文的算法中輸入的參數,在加密算法中,使用密鑰對明文進行加密或者對密文進行解密。傳統的加密或者解密都使用固定的密鑰,這就出現了一些安全隱患。以前面的汽車開鎖為例,汽車鑰匙發送的遙控的信號很容易被周圍的設備接收到,一旦有人接收到信號并將信號重新發送,就也能打開汽車鎖。針對汽車這種容易遭受到重放攻擊的情況,本文提出使用動態密鑰對數據進行加密和解密。即每隔一段時間就更換一個密鑰,使得攻擊者無法進行重放攻擊。
動態密鑰的產生是本文的重點。在本設計中動態密鑰的產生需要滿足以下特點:(1)無規律性;(2)低重復率。無規律性是指產生的相鄰兩個密鑰或者多個密鑰沒有規律,攻擊者就算通過唯密文攻擊獲得了密鑰,也無法知道下一次加密或者解密時將采用的密鑰是什么。重復率指相鄰兩次產生的密鑰的相同位上的重復比例,低重復率就是相鄰兩個密鑰的對應位相同的個數少。低重復率能夠極大地提升攻擊的難度。
本文中動態密鑰的產生方法是將時間通過一個非線性線性系統,該系統的輸出作為加密和解密的動態密鑰,如圖1所示。由于動態密鑰需要具有無規律性和低重復率,所以想到利用時間和隨機數來產生動態密鑰。在本文中動態密鑰的產生方法為:將當前時間乘以一個隨機數,然后將結果擴展或者壓縮至16位,把該16位的結果作為密鑰。
使用MATLAB對該動態密鑰產生算法進行分析。首先以當前時間為2017年5月23日18時46分37秒為例,取t= 20170523184637,在以后的1000秒中模擬在每10秒的時間間隔中使用該算法產生動態密鑰,并對密鑰的變化率和產生的隨機性進行分析,其中隨機數使用rand()函數產生。這是重復周期很長的偽隨機數產生函數,在使用中基本可以認為其產生的是隨機數,而且在動態密鑰的產生中還添加了時間因素,所以本設計中動態密鑰基本可以認為是不重復的。分析結果如圖2和圖3所示。圖2中在不同的時間內產生的動態密鑰都不相同,而且密鑰的分布幾乎是隨機的,沒有兩個完全一樣的密鑰。而且所產生的動態密鑰幾乎沒有任何規律可言。

圖1 動態密鑰的產生

圖2 模擬時間產生動態密鑰的散點圖

圖3 動態密鑰的重復率
圖3中在1000次中重復率超過40%的只有兩次,其他時候的重復率大多穩定在5%~20%,也就是說在每次產生的16位密鑰中最少只有9位與原來的密鑰不同。在大部分情況下會有14位與原來的密鑰不同。
所以,可以認為該動態密鑰產生算法產生的動態密鑰是安全的。
利用實時時鐘產生動態密鑰進行加密和解密對時鐘的同步有較嚴格的要求,雖然加密方和解密方的時間不可能完全一致,但是若加密方和解密方之間存在較大的時間差,則無法正確進行解密,從而也就無法正常進行通信。所以需要對加密方和接收方的時間進行校準。
時鐘同步的方法有很多種,對于手表來說,可以通過地面設置的授時中心通過發送的電波進行時間同步;對于汽車導航儀和通信基站,通常使用GPS衛星對設備進行時間校準;計算機和手機則通常使用互聯網進行時間同步。后兩種時間同步方式為目前較為常用的方式,特別是使用GPS進行時間校準,基本不受地理環境的限制,只要在室外就能接收到時間,從而進行校準。
本文針對銀行卡和車輛被盜等信息安全問題,研究了基于動態密碼和雙向信息驗證等技術在信息安全的工作機理,并設計了一個簡易的驗證系統,該驗證系統分為用戶設備和終端設備。用戶設備和終端設備都以STM32F103系列單片機最小系統作為基礎、使用時鐘模塊作為產生動態密鑰的時鐘來源、GPS模塊作為時間校準的設備,以確保在時鐘模塊產生誤差時能夠及時校準時間。此外用戶設備還包含了按鍵模塊和無線收發模塊,終端設備還包含了GSM模塊和OLED顯示屏。
用戶端和接收端使用GPS進行時鐘同步,約定每隔十秒就重新產生一個密鑰。在使用時,(1)用戶設備先產生一個使用動態密鑰加密的請求信號;(2)終端設備接收到信號后使用相同的密鑰對信號進行解密,并對解密后的信息進行分析,在確定這是一個請求信號后,向用戶設備發送一個使用動態密鑰加密過的確認信號;(3)同步驟(2)類似,用戶設備確認無誤后向終端發送一個建立連接的信號;(4)當上面所有步驟都完成后,終端設備向用戶手機發送驗證碼;(5)用戶在收到驗證碼后通過按鍵模塊鍵入驗證碼,驗證碼使用動態密鑰加密后通過無線模塊發送;(6)用戶端在接收到后使用動態密鑰進行解密,并對驗證碼進行比對,比對無誤后進行解密,并在OLED屏幕上顯示出解鎖字樣。
使用利用實時時鐘技術的加密算法能夠解決銀行卡被復制后竊取用戶賬戶余額、汽車遙控開鎖信號被復制并重放的問題。同時,該算法系統設計也為解決與此相類似類的問題提供了一種思想。
[1]胡威.基于RFID技術的汽車門禁系統設計[D].浙江理工大學,2015.
[2]王立峰,陳旭東,陶樂文等.基于RF微功率芯片的智能汽車遙控系統[J].自動化技術與應用,2011,30(6):46-50.DOI:10.3969/ j.issn.1003-7241.2011.06.013.
江潤東,男,四川德陽人,大學本科,現就讀于中北大學,研究方向:信息對抗技術。