專利名稱:一種安全加密協(xié)處理器及無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)芯片的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及芯片設(shè)計(jì)領(lǐng)域,特別是涉及一種安全加密協(xié)處理器及無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)芯片。
背景技術(shù):
無線傳感器網(wǎng)絡(luò)(Wireless Sensor Network,WSN)是由大量密集部署在監(jiān)控區(qū)域的傳感器網(wǎng)絡(luò)節(jié)點(diǎn)構(gòu)成的一種自組織網(wǎng)絡(luò)應(yīng)用系統(tǒng)。它的應(yīng)用前 景十分廣闊,能夠廣泛應(yīng)用于軍事、環(huán)境監(jiān)測、醫(yī)療健康、交通管理以及商業(yè)應(yīng)用等領(lǐng)域。雖然無線傳感器網(wǎng)絡(luò)有著各種各樣的應(yīng)用,但這些應(yīng)用常常需要將節(jié)點(diǎn)部署在無人值守、不可控制的環(huán)境中,除了具有一般無線網(wǎng)絡(luò)所面臨的信息泄露、信息篡改、重放攻擊、拒絕服務(wù)等多種威脅外,還面臨傳感器節(jié)點(diǎn)容易被攻擊者獲取,通過物理手段獲取存儲在節(jié)點(diǎn)中的所有信息,從而侵入網(wǎng)絡(luò)、控制網(wǎng)絡(luò)的威脅。而對于一些特定的應(yīng)用,如商業(yè)上的小區(qū)無線安防網(wǎng)絡(luò)、軍事應(yīng)用等無線傳感器網(wǎng)絡(luò)應(yīng)用領(lǐng)域來說,這些安全問題尤為突出。無線傳感器網(wǎng)絡(luò)大規(guī)模的使用面臨嚴(yán)峻的安全問題。目前的無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)大多采用通用的嵌入式平臺來實(shí)現(xiàn)。由于此類傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的器件不是專門為無線傳感器網(wǎng)絡(luò)設(shè)計(jì)的,因此在硬件上沒有針對無線傳感器網(wǎng)絡(luò)特性的安全加密協(xié)處理器,對于能量、硬件資源、存儲空間、計(jì)算能力受限的無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn),只依靠運(yùn)行在通用的嵌入式處理器上的軟件程序,無法實(shí)現(xiàn)計(jì)算復(fù)雜度較高、計(jì)算資源消耗較大的安全保密協(xié)議,無法阻止通過物理手段獲取存儲在節(jié)點(diǎn)中的所有信息,并且無法保證密鑰分發(fā)的安全性。因此現(xiàn)有無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的安全保密性能往往難以達(dá)到實(shí)際應(yīng)用的要求。而隨著FPGA/ASIC技術(shù)的發(fā)展以及片上系統(tǒng)(System on chip)技術(shù)的出現(xiàn),采用片上系統(tǒng)的方法在FPGA上實(shí)現(xiàn)無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)平臺,并針對無線傳感器網(wǎng)絡(luò)特性設(shè)計(jì)專用的硬件安全保密協(xié)處理器,在有大規(guī)模應(yīng)用時(shí)將其轉(zhuǎn)為ASIC批量生產(chǎn),成為解決節(jié)點(diǎn)安全性問題的關(guān)鍵技術(shù)手段。現(xiàn)有技術(shù)中,存在包含安全保密協(xié)處理器的片上系統(tǒng),可以用做無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn),如Chipcon公司的CC2430和CC2510芯片以及JENNIC公司的JN5121系列芯片,其中集成一個高級加密標(biāo)準(zhǔn)(AES)協(xié)處理器,支持IEEE802. 15. 4MAC協(xié)議規(guī)定的加密解密編譯碼,支持128位的密鑰及初始向量,以實(shí)現(xiàn)盡可能少的占用微控制器,完成高級加密標(biāo)準(zhǔn)(AES)規(guī)定的電子密碼本模式(ECB),密碼分組鏈接模式(CBC),密碼反饋模式(CFB),輸出反饋模式(OFB),計(jì)數(shù)模式(CTR)和CBC-MAC等多種模式。它同時(shí)提供了加密與認(rèn)證服務(wù)。但是由于CC2430實(shí)現(xiàn)的AES協(xié)處理器加解密采用的是對稱密鑰機(jī)制,密碼分發(fā)和保存是個問題.如果采用密鑰預(yù)分布方式,在網(wǎng)絡(luò)運(yùn)行之前就將共享的密鑰預(yù)先設(shè)入,則一旦傳感器節(jié)點(diǎn)被俘獲,密鑰被破譯和竊取后,很容易發(fā)生信息泄漏。如果不采用這種方式,而是在網(wǎng)絡(luò)運(yùn)行開始后由基站為每個節(jié)點(diǎn)配置密鑰,又會有以下幾個弊端1.極大地增加網(wǎng)絡(luò)開銷,由于每個節(jié)點(diǎn)都需要與基站通信,則基站將成為通信的瓶頸,同時(shí)過多的能量開銷不適合在節(jié)點(diǎn)能量受限的傳感器網(wǎng)絡(luò)中使用。2.對基站的安全要求很高,基站被俘則整個網(wǎng)絡(luò)被攻破。3.在多跳網(wǎng)絡(luò)中由于中間轉(zhuǎn)發(fā)節(jié)點(diǎn)沒有辦法對信息包進(jìn)行任何認(rèn)證判斷,只能透明轉(zhuǎn)發(fā),對Dos攻擊沒有任何防御能力。并且,基本的AES加密算法需要800個字節(jié)的查找表,改進(jìn)的AES雖然加密速度快了 100倍,但是查找表增加到了 IOK字節(jié),這個對于只有幾千個字節(jié)的傳感器節(jié)點(diǎn)來說是不合適的,硬件上的開銷較大。因此,可以看出在節(jié)點(diǎn)的信息安全保密技術(shù)方面,在片上系統(tǒng)中單純實(shí)現(xiàn)現(xiàn)有的對稱式加密方式的協(xié)處理器,依然存在因密鑰泄漏而導(dǎo)致的節(jié)點(diǎn)傳遞信息被截獲的風(fēng)險(xiǎn),以及惡意侵入和破壞傳感器網(wǎng)絡(luò)的風(fēng)險(xiǎn),并且,現(xiàn)有的傳感器網(wǎng)絡(luò)節(jié)點(diǎn)片上系統(tǒng)的安全協(xié)處理需要的硬件資源較多,不適合硬件資源受限的無線傳感器網(wǎng)絡(luò)的應(yīng)用需要。
隨著片上系統(tǒng)技術(shù)的發(fā)展,采用片上系統(tǒng)技術(shù),基于安全指紋的密鑰管理方式,是解決對稱式密鑰分配過程中安全問題的方法之一。安全指紋是指傳感器節(jié)點(diǎn)的程序存儲空間中,保存的應(yīng)用程序代碼的前半部分。由于傳感器網(wǎng)絡(luò)是面向應(yīng)用的系統(tǒng),同一網(wǎng)絡(luò)中所有節(jié)點(diǎn)內(nèi)的應(yīng)用程序代碼相同,相應(yīng)地,它們的安全指紋也是相同的。此密鑰管理協(xié)議的基本思想是將每個網(wǎng)絡(luò)中所有節(jié)點(diǎn)共享一個特有的安全指紋區(qū)域的內(nèi)容作為密鑰源,把密鑰源分成若干等長的密鑰元素,節(jié)點(diǎn)上所有的密鑰元素組成節(jié)點(diǎn)的密鑰源池。兩個準(zhǔn)備通信的節(jié)點(diǎn)通過一系列的安全握手機(jī)制從密鑰源池中選擇密鑰元素,對選擇的密鑰元素進(jìn)行計(jì)算以得到安全可靠的會話密鑰。根據(jù)不同的通信情況,節(jié)點(diǎn)可以利用多維密鑰池空間選擇不同數(shù)目的密鑰元素建立不同級別的會話密鑰。可以證明在傳感器網(wǎng)絡(luò)的生存時(shí)間內(nèi),基于安全指紋的密鑰管理方式不僅能夠有效抵御物理及旁道攻擊,還能有效抵御邏輯攻擊。但在現(xiàn)有技術(shù)中,采用片上系統(tǒng)設(shè)計(jì)方法實(shí)現(xiàn)的無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn),都沒有對此種密鑰管理協(xié)議進(jìn)行硬件支持,沒有提供相應(yīng)的基于安全指紋的密鑰提取硬件模塊。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種安全加密協(xié)處理器及無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)芯片。能夠很好的解決無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)在組網(wǎng)通信過程中密鑰泄漏而導(dǎo)致的節(jié)點(diǎn)傳遞信息被截獲的風(fēng)險(xiǎn),以及惡意侵入和破壞傳感器網(wǎng)絡(luò)等數(shù)據(jù)安全性問題。為實(shí)現(xiàn)本發(fā)明的目的而提供的一種安全加密協(xié)處理器,包括密鑰提取模塊、控制模塊、密鑰擴(kuò)展模塊、數(shù)據(jù)加密模塊、數(shù)據(jù)解密模塊,其中密鑰提取模塊,用于抽取所需的程序片段作為密鑰元素,并與本地傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的密鑰元素聯(lián)合組成會話密鑰,將會話密鑰通過數(shù)據(jù)線發(fā)送到密鑰擴(kuò)展模塊;控制模塊,用于控制所述數(shù)據(jù)加密模塊和數(shù)據(jù)解密模塊的工作模式、加密參數(shù)及工作狀態(tài);密鑰擴(kuò)展模塊,用于將輸入的會話密鑰擴(kuò)展為不易破譯的密鑰矩陣通過數(shù)據(jù)線送到數(shù)據(jù)加密模塊及數(shù)據(jù)解密模塊;數(shù)據(jù)加密模塊,用于利用所述密鑰矩陣為需要加密的明文數(shù)據(jù)加密;數(shù)據(jù)解密模塊,用于利用所述密鑰矩陣對密文數(shù)據(jù)進(jìn)行數(shù)據(jù)解密。所述密鑰提取模塊包括隨機(jī)數(shù)生成模塊、仲裁器、哈希變換模塊以及密鑰存儲器,其中所述隨機(jī)數(shù)生成模塊,用于產(chǎn)生隨機(jī)選擇密鑰元素的標(biāo)識符,并且與要通信的網(wǎng)絡(luò)節(jié)點(diǎn)交換彼此選擇密鑰元素的標(biāo)識符;所述仲裁器,根據(jù)所述密鑰元素標(biāo)識符指向的起始地址,讀取相應(yīng)的密鑰元素;所述哈希變換模塊,對選出的兩個密鑰元素進(jìn)行哈希運(yùn)算以得到會話密鑰;所述密鑰存儲器,用于存儲所述會話密鑰。所述仲裁器,包括初始化模塊,用于對密鑰元素長度、加密模式、中斷處理、功能模塊配置分別進(jìn)行初始化; 密鑰元素判斷子模塊,用于判斷提取的是本地密鑰元素還是通信節(jié)點(diǎn)的密鑰元素,如果是本地密鑰元素,則觸發(fā)隨機(jī)數(shù)判斷子模塊,否則讀入通信節(jié)點(diǎn)的標(biāo)識符AddrOJi發(fā)執(zhí)行模塊;隨機(jī)數(shù)判斷子模塊,用于判斷隨機(jī)數(shù)生成模塊是否已生成隨機(jī)數(shù)作為本地的密鑰標(biāo)識符AddrO,如果是則觸發(fā)執(zhí)行模塊,否則觸發(fā)密鑰元素判斷子模塊。執(zhí)行模塊,用于將密鑰提取地址初始化為AddrO,停止本地處理器時(shí)鐘,設(shè)置key_en為高;等待周期,保證系統(tǒng)建立保持時(shí)間,以讀到正確的相應(yīng)輸入地址的密鑰元素;長度判斷子模塊,用于判斷是否已經(jīng)讀取滿足密鑰元素長度的N字節(jié)密鑰元素,如果已滿足,則讀取足夠長度的密鑰元素后,本地處理器時(shí)鐘開始工作,設(shè)置key_en為低,密鑰元素計(jì)數(shù)器和密鑰提取地址清零;否則,從程序存儲器中讀取相應(yīng)地址下的程序片段作為本地密鑰元素,并將此密鑰元素輸入哈希變換模塊供其建立會話密鑰,密鑰元素計(jì)數(shù)器i加一,密鑰提取地址加一,等待周期,保證系統(tǒng)建立保持時(shí)間,以讀到正確的相應(yīng)輸入地址的密鑰元素;選通模塊,用于根據(jù)key_en控制線對程序讀取總線進(jìn)行選通控制,如果key_en為高,程序存儲器的輸入地址線Rom_addr接密鑰提取模塊的key_addr,程序存儲器的輸出數(shù)據(jù)線Rom_dout接密鑰提取模塊的key_din ;如果key_en為低,則程序存儲器的輸入地址線Rom_addr接本地處理器的cpu_addr,程序存儲器的輸出數(shù)據(jù)線Rom_dout接本地處理器的cpu_din。所述隨機(jī)數(shù)生成模塊采用線性反饋移位寄存器的獨(dú)立IP。所述哈希變換模塊,采用了基于RC5算法的獨(dú)立IP。所述密鑰存儲器采用獨(dú)立IP的RAM單元。所述控制模塊,包括輸出控制多路復(fù)用器,設(shè)置譯碼器、信號譯碼器、仲裁控制多路復(fù)用器、命令寄存器、模式寄存器、密鑰標(biāo)識符寄存器,及連接線和邏輯與門,其中所述輸出控制多路復(fù)用器,完成對讀取密文數(shù)據(jù)、控制狀態(tài)、查詢密鑰的輸出控制;所述設(shè)置譯碼器,完成對數(shù)據(jù)加密模塊和數(shù)據(jù)解密模塊的工作模式、命令的設(shè)置及對密鑰提取模塊的密鑰參數(shù)的設(shè)置;信號譯碼器,完成對密鑰提取模塊、密鑰擴(kuò)展模塊、數(shù)據(jù)加密模塊和數(shù)據(jù)解密模塊的寫信號控制;仲裁控制多路復(fù)用器,完成對密鑰存儲器讀地址線的仲裁控制;其中,當(dāng)工作模式為輸入密鑰模式時(shí),密鑰存儲器讀地址線由地址總線addr控制,由本地處理器或密鑰提取模塊直接操作地址總線,寫入密鑰到密鑰存儲器的相應(yīng)地址;當(dāng)工作模式為加密或解密模式時(shí),密鑰存儲器讀地址線由密鑰擴(kuò)展模塊控制,密鑰擴(kuò)展模塊讀取存放在密鑰存儲器的相應(yīng)地址下的密鑰進(jìn)行密鑰擴(kuò)展。所述數(shù)據(jù)加密模塊,包括可復(fù)用運(yùn)算單元和控制單元,其中所述可復(fù)用運(yùn)算單元中,包含一個加法器、一個32位異或門及一個32位移位寄存器。完成對輸入32位數(shù)據(jù)的異或運(yùn)算,后對其循環(huán)右移運(yùn)算,然后與輸入的擴(kuò)展密鑰進(jìn)行相加,每輪加密都調(diào)用相同的邏輯單元;所述控制單元中,包含預(yù)處理器、模擬開關(guān)、計(jì)數(shù)器、選擇器,其中預(yù)處理器完成對輸入64位數(shù)據(jù)的預(yù)處理操作,并分成兩個32位的子數(shù)據(jù)流;模擬開關(guān)根據(jù)輸入狀態(tài)的不同,選擇可復(fù)用運(yùn)算單元輸出的計(jì)算結(jié)果做反饋,或輸入的新數(shù)據(jù),為可復(fù)用運(yùn)算單元提供輸入數(shù)據(jù);計(jì)數(shù)器由輸入指令控制其工作狀態(tài)、模式及加密輪數(shù),受輸入時(shí)鐘驅(qū)動計(jì)數(shù),改 變狀態(tài)機(jī)的不同工作狀態(tài),輸出控制信號來控制模擬開關(guān)和選擇器;選擇器根據(jù)輸入狀態(tài)的不同,選擇由密鑰擴(kuò)展模塊提供的擴(kuò)展密鑰,輸出到可復(fù)用運(yùn)算單元做加密運(yùn)算。所述數(shù)據(jù)解密模塊,包括可復(fù)用運(yùn)算單元和控制單元,其中所述可復(fù)用運(yùn)算單元中,包含一個減法器、一個32位異或門及一個32位移位寄存器,完成對輸入32位數(shù)據(jù)與輸入的擴(kuò)展密鑰S進(jìn)行相減,后對其循環(huán)左移運(yùn)算,然后與前一運(yùn)算結(jié)果異或運(yùn)算,每輪加密都調(diào)用相同的邏輯單元;所述控制單元,包含預(yù)處理器、模擬開關(guān)、計(jì)數(shù)器、選擇器,其中預(yù)處理器完成對輸A 64位數(shù)據(jù)的預(yù)處理操作,并分成兩個32位的子數(shù)據(jù)流;模擬開關(guān)根據(jù)輸入狀態(tài)的不同,選擇可復(fù)用運(yùn)算單元輸出的計(jì)算結(jié)果做反饋,或輸入的新數(shù)據(jù),為可復(fù)用運(yùn)算單元提供輸入數(shù)據(jù);計(jì)數(shù)器由輸入指令控制其工作狀態(tài)、模式及解密輪數(shù),受輸入時(shí)鐘驅(qū)動計(jì)數(shù),改變狀態(tài)機(jī)的不同工作狀態(tài),輸出控制信號來控制模擬開關(guān)和選擇器;選擇器根據(jù)輸入狀態(tài)的不同,選擇由密鑰擴(kuò)展模塊提供的擴(kuò)展密鑰,輸出到可復(fù)用運(yùn)算單元做解密運(yùn)算。所述安全加密協(xié)處理器,還包括DMA控制器,用于接收本地處理器發(fā)送的需要加密的明文,并通過數(shù)據(jù)線向所述數(shù)據(jù)加密模塊發(fā)送需要加密的明文數(shù)據(jù),并將經(jīng)過加密運(yùn)算后的密文數(shù)據(jù)發(fā)送給本地處理器或是直接發(fā)射出去;以及將接收到的密文數(shù)據(jù)發(fā)送給本地處理器或者直接通過數(shù)據(jù)線發(fā)送給數(shù)據(jù)解密模塊進(jìn)行數(shù)據(jù)解密,并將經(jīng)過解密運(yùn)算后的明文數(shù)據(jù)發(fā)送給本地處理器,同時(shí)產(chǎn)生中斷給所述本地處理器,供其讀取接收的數(shù)據(jù);DMA控制器的控制線與數(shù)據(jù)線通過總線與本地處理器相連,與本地處理器進(jìn)行數(shù)據(jù)交互,受本地處理器控制并返回中斷響應(yīng)。所述DMA模塊獨(dú)立的IP單元。為實(shí)現(xiàn)本發(fā)明的目的還提供一種安全加密協(xié)處理器的加解密方法,所述方法,包括下列步驟步驟100.當(dāng)無線傳感器網(wǎng)絡(luò)中任意兩個網(wǎng)絡(luò)節(jié)點(diǎn)需要進(jìn)行通信時(shí),它們會利用各自安全指紋中的密鑰元素建立鏈路會話密鑰;具體包括下列步驟步驟110.密鑰提取模塊抽取所需的程序片段作為密鑰元素,并與本地傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的密鑰元素聯(lián)合組成會話密鑰,將會話密鑰通過數(shù)據(jù)線發(fā)送到密鑰擴(kuò)展模塊;步驟120.密鑰擴(kuò)展模塊將輸入的會話密鑰擴(kuò)展為不易破譯的密鑰矩陣通過數(shù)據(jù)線送到數(shù)據(jù)加密模塊及數(shù)據(jù)解密模塊;
步驟200.所述兩個網(wǎng)絡(luò)節(jié)點(diǎn)利用所述密鑰矩陣對需要傳輸?shù)臄?shù)據(jù)進(jìn)行加密或解密,實(shí)現(xiàn)安全傳輸。所述步驟110,包括下列步驟步驟111.每個網(wǎng)絡(luò)節(jié)點(diǎn)用隨機(jī)數(shù)生成模塊產(chǎn)生隨機(jī)選擇密鑰元素的標(biāo)識符,并且與要通信的節(jié)點(diǎn)交換彼此選擇密鑰元素的標(biāo)識符;步驟112.兩個網(wǎng)絡(luò)節(jié)點(diǎn)通過各自的仲裁器獲得對程序存儲器的讀取控制權(quán),根據(jù)本地節(jié)點(diǎn)和交換得到的要通信的節(jié)點(diǎn)的密鑰元素標(biāo)識符指向的程序存儲器的起始地址,分別讀取相應(yīng)程序片段作為密鑰元素;
步驟113.采用一個安全的有序單向哈希變換模塊對選出的兩個相同密鑰元素進(jìn)行運(yùn)算以得到鏈路會話密鑰,存儲于密鑰存儲器。所述步驟112,包括下列步驟步驟1121、對密鑰元素長度、加密模式選擇、中斷處理、其他功能模塊分別進(jìn)行初始化,然后等待加密請求事件的觸發(fā);步驟1122、收到提取密鑰請求步驟1122a,判斷提取的是本地密鑰元素還是通信的網(wǎng)絡(luò)節(jié)點(diǎn)的密鑰元素,如果是本地密鑰元素,則進(jìn)行步驟1122b,否則進(jìn)行步驟1122c。步驟1122b,判斷隨機(jī)數(shù)生成模塊511是否已生成隨機(jī)數(shù)作為本地的密鑰標(biāo)識符AddrO,如果是則進(jìn)行步驟1122d,否則在步驟1122b繼續(xù)等待。步驟1122c,如果要提取的為通信節(jié)點(diǎn)的密鑰元素,則讀入通信節(jié)點(diǎn)的標(biāo)識符AddrO,進(jìn)入步驟1122d。步驟1122d,將密鑰提取地址初始化為AddrO,停止本地處理器I時(shí)鐘,設(shè)置key_en為高,密鑰提取模塊51得到程序讀取總線的控制權(quán),本地處理器I失去程序讀取總線的控制權(quán),進(jìn)行步驟1122e。步驟1122e,等待周期,保證系統(tǒng)建立保持時(shí)間,以讀到正確的相應(yīng)輸入地址的密鑰元素,進(jìn)行步驟1122g。步驟1122f,從程序存儲器中讀取相應(yīng)地址下的程序片段作為本地密鑰元素,并將此密鑰元素輸入哈希變換模塊513供其建立會話密鑰,密鑰元素計(jì)數(shù)器i加一,密鑰提取地址加一,進(jìn)入步驟1122f。步驟1122g,判斷是否已經(jīng)讀取滿足密鑰元素長度的N字節(jié)密鑰元素,如果已滿足則進(jìn)入步驟1122h,否則進(jìn)入步驟1122f。步驟1122h,讀取足夠長度的密鑰元素后,本地處理器I時(shí)鐘開始工作,設(shè)置key_en為低,密鑰元素計(jì)數(shù)器和密鑰提取地址清零,密鑰提取模塊51失去程序讀取總線的控制權(quán),本地處理器I得到程序讀取總線的控制權(quán)。開始等待新的密鑰提取請求事件的觸發(fā)。所述步驟200,包括下列步驟步驟210.無線通信模塊接收加密密文發(fā)送給本地處理器,再由本地處理器將接收的密文發(fā)送給解密模塊進(jìn)行解密,經(jīng)過解密運(yùn)算后的明文發(fā)送給處理器,供其讀取接收的數(shù)據(jù);步驟220.數(shù)據(jù)加密模塊通過數(shù)據(jù)線從本地處理器中得到需要加密的明文數(shù)據(jù),經(jīng)過加密運(yùn)算后通過數(shù)據(jù)線再發(fā)送給本地處理器,由其控制發(fā)送給無線通信模塊發(fā)送出去。所述步驟200,包括下列步驟步驟210’ .無線通信模塊接收加密密文發(fā)送給DMA控制器,DMA控制器轉(zhuǎn)發(fā)給本地處理器或者數(shù)據(jù)解密模塊進(jìn)行數(shù)據(jù)解 密,并將經(jīng)過解密運(yùn)算后的明文數(shù)據(jù)發(fā)送給DMA控制器,同時(shí)產(chǎn)生中斷給所述本地處理器,供其讀取接收的數(shù)據(jù);步驟220’ .數(shù)據(jù)加密模塊通過數(shù)據(jù)線從DMA控制器中得到需要加密的明文數(shù)據(jù),經(jīng)過加密運(yùn)算后通過數(shù)據(jù)線再發(fā)送給DMA控制器,由其控制發(fā)送給本地處理器或者無線通信模塊發(fā)送出去。為實(shí)現(xiàn)本發(fā)明的目的還提供一種包括所述安全加密協(xié)處理器的無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)芯片,所述芯片,還包括本地處理器,是根據(jù)程序存儲器中的程序代碼完成相應(yīng)操作的邏輯器件;程序存儲器,用于存儲本地處理器所要運(yùn)行的程序;數(shù)據(jù)存儲器,用于存儲本地處理器所要使用的數(shù)據(jù);無線通信模塊,用于實(shí)現(xiàn)節(jié)點(diǎn)間的無線通信功能。其他模塊,用于實(shí)現(xiàn)包括供電控制、傳感器控制、輸入輸出的功能;其中,所述本地處理器與數(shù)據(jù)存儲器、安全加密協(xié)處理器及無線通信模塊之間通過總線連接,而本地處理器通過程序讀取線連接到程序存儲器上;程序存儲器與安全加密協(xié)處理器之間通過程序讀取線連接,而安全加密協(xié)處理器與無線通信模塊之間也通過數(shù)據(jù)線建立有數(shù)據(jù)收發(fā)通路,所述本地處理器通過總線控制安全加密協(xié)處理器的狀態(tài)。本發(fā)明的有益效果是I、本發(fā)明的安全加密協(xié)處理器采用基于安全指紋的密鑰管理方法,降低因密鑰泄漏而導(dǎo)致的節(jié)點(diǎn)傳遞信息被截獲的風(fēng)險(xiǎn),提高節(jié)點(diǎn)安全性;2、本發(fā)明的安全加密協(xié)處理器采用軟硬件結(jié)合的方式來實(shí)現(xiàn)無線傳感器網(wǎng)絡(luò)中的數(shù)據(jù)加密,軟件靈活配置參數(shù),硬件協(xié)處理器加速運(yùn)算效率,從而適應(yīng)復(fù)雜多變的應(yīng)用環(huán)境;3、本發(fā)明的安全加密協(xié)處理器中的加密解密模塊設(shè)計(jì)了獨(dú)特的可復(fù)用運(yùn)算單元,在保證加密解密運(yùn)算效率的同時(shí)達(dá)到了減少硬件資源開銷,降低成本的目的。
圖I是本發(fā)明的一種安全加密協(xié)處理器的結(jié)構(gòu)示意圖;圖2是本發(fā)明中密鑰提取模塊的結(jié)構(gòu)示意圖;圖3是本發(fā)明中仲裁器的結(jié)構(gòu)示意圖;圖4是本發(fā)明中控制模塊52的一實(shí)施例的結(jié)構(gòu)示意圖;圖5是本發(fā)明中RC5加密算法在硬件上的一種優(yōu)選實(shí)現(xiàn)方式;圖6是本發(fā)明中數(shù)據(jù)解密模塊55在硬件上的一種優(yōu)選實(shí)現(xiàn)方式;圖7是本發(fā)明的安全加密協(xié)處理器的一實(shí)施例的結(jié)構(gòu)示意圖;圖8是本發(fā)明的用于無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的芯片的一個實(shí)施例的結(jié)構(gòu)示意圖;圖9是本發(fā)明的安全加密協(xié)處理器的加解密方法的步驟流程圖;圖10是本發(fā)明中密鑰提取模塊抽取所需的程序片段作為密鑰元素的步驟流程圖;圖11是本發(fā)明的仲裁器512的控制步驟流程圖。
具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明的一種安全加密協(xié)處理器及無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)芯片進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。本發(fā)明的一種安全加密協(xié)處理器及無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)芯片,是針對無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)在組網(wǎng)通信過程中密鑰泄漏而導(dǎo)致的節(jié)點(diǎn)傳遞信息被截獲的風(fēng)險(xiǎn),以及惡意侵入和破壞傳感器網(wǎng)絡(luò)等數(shù)據(jù)安全性問題,考慮節(jié)點(diǎn)處理性能、硬件 資源和能量有限的特點(diǎn),利用片上系統(tǒng)技術(shù)(SOC)提出一種適合無線傳感器網(wǎng)絡(luò)的軟硬件結(jié)合的靈活高效的數(shù)據(jù)加密解密協(xié)處理器。下面結(jié)合上述目標(biāo)詳細(xì)介紹本發(fā)明的一種安全加密協(xié)處理器,所述安全加密協(xié)處理器,具有提取指紋密鑰、控制加解密模式及參數(shù)、對密鑰進(jìn)行擴(kuò)展、對發(fā)送數(shù)據(jù)加密、接收數(shù)據(jù)解密等功能。圖I是本發(fā)明的一種安全加密協(xié)處理器的結(jié)構(gòu)示意圖,如圖I所示,根據(jù)安全加密協(xié)處理器的上述功能,所述安全加密協(xié)處理器,包括密鑰提取模塊51、控制模塊52、密鑰擴(kuò)展模塊53、數(shù)據(jù)加密模塊54、數(shù)據(jù)解密模塊55。其中,通過數(shù)據(jù)線的連接,密鑰提取模塊51從本地程序存儲器2中抽取所需的程序片段作為密鑰元素,并與要通信的節(jié)點(diǎn)的密鑰元素聯(lián)合組成會話密鑰,將合并的密鑰通過數(shù)據(jù)線發(fā)送到密鑰擴(kuò)展模塊53,密鑰擴(kuò)展模塊53將輸入密鑰擴(kuò)展為新的不易破譯的密鑰矩陣通過數(shù)據(jù)線送到數(shù)據(jù)加密模塊54及數(shù)據(jù)解密模塊55中,控制模塊52通過與總線連接的控制線受到本地處理器I的軟件控制,并通過控制線控制數(shù)據(jù)加密模塊54及數(shù)據(jù)解密模塊55的工作模式、加密參數(shù)及工作狀態(tài)。數(shù)據(jù)加密模塊54通過數(shù)據(jù)線得到需要加密的明文數(shù)據(jù),經(jīng)過加密運(yùn)算后通過數(shù)據(jù)線發(fā)送給本地處理器1,再由其發(fā)射出去。無線通信模塊6在接收到數(shù)據(jù)后,會將接收到的密文數(shù)據(jù)通過數(shù)據(jù)線發(fā)送給本地處理器I,本地處理器I通過數(shù)據(jù)線發(fā)送給數(shù)據(jù)解密模塊55進(jìn)行數(shù)據(jù)解密,經(jīng)過解密運(yùn)算后的明文通過數(shù)據(jù)線再發(fā)送本地處理器1,供其讀取接收的數(shù)據(jù)。在下面的描述中將就該協(xié)處理器中所涉及的各個模塊的具體結(jié)構(gòu)以及工作原理分別予以說明。圖2是本發(fā)明中密鑰提取模塊的結(jié)構(gòu)示意圖,如圖2所示,所述的密鑰提取模塊51應(yīng)當(dāng)完成包括隨機(jī)數(shù)生成、對程序存儲器數(shù)據(jù)線輸出控制、哈希變換及在存儲密鑰內(nèi)的多種操作。根據(jù)上述功能,該密鑰提取模塊51包括隨機(jī)數(shù)生成模塊511、仲裁器512、哈希變換模塊513以及密鑰存儲器514。當(dāng)無線傳感器網(wǎng)絡(luò)中任意兩個網(wǎng)絡(luò)節(jié)點(diǎn)需要進(jìn)行通信時(shí),它們會利用各自安全指紋(安全指紋是指傳感器節(jié)點(diǎn)的程序存儲空間中,保存的應(yīng)用程序代碼的前半部分。由于傳感器網(wǎng)絡(luò)是面向應(yīng)用的系統(tǒng),同一網(wǎng)絡(luò)中所有節(jié)點(diǎn)內(nèi)的應(yīng)用程序代碼的前半部分相同,相應(yīng)地,它們的安全指紋也是相同的。)中的密鑰元素建立鏈路會話密鑰。首先,每個網(wǎng)絡(luò)節(jié)點(diǎn)用隨機(jī)數(shù)生成模塊511產(chǎn)生隨機(jī)選擇密鑰元素的標(biāo)識符,并且與要通信的節(jié)點(diǎn)交換彼此選擇密鑰元素的標(biāo)識符。然后,兩個節(jié)點(diǎn)的密鑰提取模塊51通過仲裁器512獲得對程序存儲器的讀取控制權(quán),根據(jù)本地節(jié)點(diǎn)和交換得到的要通信的節(jié)點(diǎn)的密鑰元素標(biāo)識符指向的程序存儲器的起始地址,分別讀取相應(yīng)程序片段作為密鑰元素,然后采用一個安全的有序單向哈希變換模塊513對選出的兩個密鑰元素進(jìn)行運(yùn)算以得到鏈路會話密鑰(上述兩個密鑰元素是不同的,但收發(fā)節(jié)點(diǎn)都采用這兩個密鑰元素,生成同一個會話密鑰。)。此密鑰建立方法可以保證惡意攻擊者不能通過偵聽信道并通過對破解得到的會話密鑰以及相應(yīng)的密鑰元素標(biāo)識符逆向運(yùn)算得到密鑰元素,從而可以大大限制惡意攻擊者的破壞性。因此,兩個傳感器網(wǎng)絡(luò)節(jié)點(diǎn)可以不通過無線預(yù)分發(fā)通信密鑰,而是直接交換密鑰元素標(biāo)識符來成功地協(xié)商建立會話密鑰,減少密鑰泄漏的風(fēng)險(xiǎn)。隨機(jī)數(shù)生成模塊511可以采用已有的線性反饋移位寄存器、乘同余法,線性同余法,Gold序列發(fā)生器的獨(dú)立IP實(shí)現(xiàn),考慮到線性反饋移位寄存器的硬件代價(jià)較低,效率較高,適合傳感器網(wǎng)絡(luò)的應(yīng)用需要,作為一種優(yōu)選實(shí)現(xiàn)方式,在本實(shí)施例中,隨機(jī)數(shù)生成模塊511采用了線性反饋移位寄存器的獨(dú)立IP作為隨機(jī)數(shù)生成模塊。圖3是本發(fā)明中仲裁器的結(jié)構(gòu)示意圖,如圖3所示,所述仲裁器512,包括初始化模塊5121,用于對密鑰元素長度、加密模式、中斷處理、功能模塊配置分別進(jìn)行初始化;密鑰元素判斷子模塊5122,用于判斷提取的是本地密鑰元素還是通信節(jié)點(diǎn)的密鑰元素,如果是本地密鑰元素,則觸發(fā)隨機(jī)數(shù)判斷子模塊,否則讀入通信節(jié)點(diǎn)的標(biāo)識符AddrO,觸發(fā)執(zhí)行模塊;隨機(jī)數(shù)判斷子模塊5123,用于判斷隨機(jī)數(shù)生成模塊是否已生成隨機(jī)數(shù)作為本地的 密鑰標(biāo)識符AddrO,如果是則觸發(fā)執(zhí)行模塊,否則觸發(fā)密鑰元素判斷子模塊。執(zhí)行模塊5124,用于將密鑰提取地址初始化為AddrO,停止本地處理器時(shí)鐘,設(shè)置key_en為高;等待周期,保證系統(tǒng)建立保持時(shí)間,以讀到正確的相應(yīng)輸入地址的密鑰元素;長度判斷子模塊5125,用于判斷是否已經(jīng)讀取滿足密鑰元素長度的N字節(jié)密鑰元素,如果已滿足,則讀取足夠長度的密鑰元素后,本地處理器時(shí)鐘開始工作,設(shè)置key_en為低,密鑰元素計(jì)數(shù)器和密鑰提取地址清零;否則,從程序存儲器中讀取相應(yīng)地址下的程序片段作為本地密鑰元素,并將此密鑰元素輸入哈希變換模塊供其建立會話密鑰,密鑰元素計(jì)數(shù)器i加一,密鑰提取地址加一,等待周期,保證系統(tǒng)建立保持時(shí)間,以讀到正確的相應(yīng)輸入地址的密鑰元素;選通模塊5126,用于根據(jù)key_en控制線對程序讀取總線進(jìn)行選通控制,如果key_en為高,程序存儲器的輸入地址線Rom_addr接密鑰提取模塊的key_addr,程序存儲器的輸出數(shù)據(jù)線Rom_dout接密鑰提取模塊的key_din ;如果key_en為低,則程序存儲器的輸入地址線Rom_addr接本地處理器的cpu_addr,程序存儲器的輸出數(shù)據(jù)線Rom_dout接本地處理器的 cpu_din。哈希變換模塊513用于將提取的密鑰元素映射生成不可逆的會話密鑰,哈希變換模塊可以采用已有的安全的有序單向散列函數(shù)的獨(dú)立IP實(shí)現(xiàn),例如基于MD5、RC5、SHA等算法的獨(dú)立IP,考慮到RC5算法只需要異或運(yùn)算、移位操作及加法操作,實(shí)現(xiàn)的單元結(jié)構(gòu)簡單,硬件資源較小,適合傳感器網(wǎng)絡(luò)的應(yīng)用需要,作為一種優(yōu)選實(shí)現(xiàn)方式,在本實(shí)施例中,哈希變換模塊采用了基于RC5算法的獨(dú)立IP。密鑰存儲器514用于存儲密鑰提取模塊產(chǎn)生的加密密鑰。密鑰存儲器可以采用獨(dú)立IP的RAM單元或是通用RAM芯片實(shí)現(xiàn),作為一種優(yōu)選實(shí)現(xiàn)方式,在本實(shí)施例中,密鑰存儲器采用了獨(dú)立IP的RAM單元。圖4是本發(fā)明中控制模塊52的一實(shí)施例的結(jié)構(gòu)示意圖,如圖4所示,所述控制模塊52應(yīng)當(dāng)完成對數(shù)據(jù)加密模塊54和數(shù)據(jù)解密模塊55的工作模式及工作命令的設(shè)置;對密鑰提取模塊51的密鑰參數(shù)的設(shè)置;對密鑰存儲器514讀地址線的仲裁控制;對密鑰提取模塊51、密鑰擴(kuò)展模塊53、數(shù)據(jù)加密模塊54和數(shù)據(jù)解密模塊55的寫信號控制;對讀取密文數(shù)據(jù)、控制狀態(tài)、查詢密鑰的輸出控制等多種操作。所述控制模塊完成加密協(xié)處理器的工作模式、工作參數(shù)及工作狀態(tài)控制的功能。工作模式包括電子密碼本模式(ECB),密碼分組鏈接模式(CBC)及計(jì)數(shù)模式(CTR)。工作參數(shù)包括通過軟件對加密輪數(shù)、密鑰位數(shù)及塊加密的數(shù)據(jù)長度進(jìn)行靈活配置,最高支持128位密鑰及32位塊加密長度,加密輪數(shù)不限,以滿足各種應(yīng)用的需要。工作狀態(tài)包括通過軟 件控制密鑰擴(kuò)展、數(shù)據(jù)加密及數(shù)據(jù)解密三個狀態(tài)。根據(jù)上述功能,控制模塊52包括多路復(fù)用器521、527,譯碼器522、523,命令寄存器524、模式寄存器525、密鑰標(biāo)識符寄存器526、寄存器528、529,及其它連接線和邏輯與門。多路復(fù)用器521完成對讀取密文數(shù)據(jù)、控制狀態(tài)、查詢密鑰的輸出控制。它利用地址總線的最高2位addr [9 ;8]作為控制信號,在使能信號en為高有效時(shí),當(dāng)addr [9:8] = 0 :把數(shù)據(jù)加密模塊54和數(shù)據(jù)解密模塊55輸出的密文或明文鎖存到數(shù)據(jù)線data_out[7:0]上。當(dāng)addr [9:8] = I :把密鑰提取模塊51輸出的密鑰鎖存到數(shù)據(jù)線data_out [7:0]上。當(dāng)addr[9:8] = 2 :把控制狀態(tài)、工作模式、控制命令鎖存到數(shù)據(jù)線data_out [7:0]上。譯碼器522完成對數(shù)據(jù)加密模塊54和數(shù)據(jù)解密模塊55的工作模式、命令的設(shè)置及對密鑰提取模塊51的密鑰參數(shù)的設(shè)置。它利用地址總線的最低3位addr[2 ;0]作為選擇信號,使能信號由譯碼器523輸出的控制信號控制,在使能信號有效時(shí),當(dāng)addr [2:0] = 0 :把數(shù)據(jù)總線data_in [7:0]上的數(shù)據(jù)鎖存到模式寄存器525中,供數(shù)據(jù)加密模塊54和數(shù)據(jù)解密模塊55讀取工作模式。當(dāng)addr [2:0] = I :把數(shù)據(jù)總線data_in [7:0]上的數(shù)據(jù)鎖存到命令寄存器524中,供數(shù)據(jù)加密模塊54和數(shù)據(jù)解密模塊55讀取指令。當(dāng)addr[2:0] = 2 :把數(shù)據(jù)總線data_in[7:0]上的數(shù)據(jù)鎖存到密鑰標(biāo)識符寄存器526中,供密鑰提取模塊51讀取密鑰標(biāo)識符。譯碼器523完成對密鑰提取模塊51、密鑰擴(kuò)展模塊53、數(shù)據(jù)加密模塊54和數(shù)據(jù)解密模塊55的寫信號控制,它利用地址總線的最高2位addr[9 ;8]作為選擇信號,采用輸入的寫信號與使能信號en相與得到使能信號,在使能信號有效時(shí),當(dāng)addr [9:8] = 0 :使寄存器528對寫信號wr進(jìn)行鎖存,輸出信號作為密鑰提取模塊51的寫控制信號。當(dāng)addr [9:8] = I :使寄存器529對寫信號wr進(jìn)行鎖存,輸出信號作為數(shù)據(jù)加密模塊54和數(shù)據(jù)解密模塊55的寫控制信號。多路復(fù)用器527完成對密鑰存儲器514讀地址線的仲裁控制。利用模式寄存器525輸出的工作模式來仲裁密鑰存儲器514讀地址線的控制權(quán),當(dāng)工作模式為輸入密鑰模式時(shí),密鑰存儲器514讀地址線由地址總線addr控制,可以由處理器I或密鑰提取模塊51直接操作地址總線,寫入密鑰到密鑰存儲器514的相應(yīng)地址。當(dāng)工作模式為加密或解密模式時(shí),密鑰存儲器514讀地址線由密鑰擴(kuò)展模塊53控制,密鑰擴(kuò)展模塊53讀取存放在密鑰存儲器514的相應(yīng)地址下的密鑰進(jìn)行密鑰擴(kuò)展。所述密鑰擴(kuò)展模塊53完成對輸入密鑰的擴(kuò)展功能。對兩個32位的大素?cái)?shù)進(jìn)行循環(huán)加操作,產(chǎn)生32x32位S矩陣,并與所述密鑰提取模塊提供的輸入密鑰進(jìn)行循環(huán)移位相加操作,產(chǎn)生擴(kuò)展后的密鑰矩陣,提供給加密模塊進(jìn)行加密操作。由于采用不可逆運(yùn)算,使入侵者幾乎不可能從新密鑰矩陣中獲得輸入密鑰。所述的數(shù)據(jù)加密解密模塊54、55,完成對發(fā)送和接收數(shù)據(jù)的加密解密功能。受控制模塊52的使能控制,當(dāng)命令寄存器得到處理器加密命令時(shí),利用所述的密鑰擴(kuò)展模塊53生 成的密鑰矩陣S,將需要加密的待發(fā)送數(shù)據(jù)按設(shè)定的分組長度分成等長的若干數(shù)據(jù)塊,每一數(shù)據(jù)塊與S矩陣的每一行向量遞歸的進(jìn)行相加、異或、移位等運(yùn)算,直到全部數(shù)據(jù)塊計(jì)算完成,得到加密編碼,然后返回中斷給處理器,由處理器讀取加密后密文進(jìn)行發(fā)送,其解密操作完成對稱的計(jì)算過程,處理器在接收到密文數(shù)據(jù)后將其輸入安全協(xié)處理器,并向控制模塊52發(fā)出解密命令,解密模塊55使能信號有效,利用相同的密鑰矩陣S,對數(shù)據(jù)進(jìn)行逆向運(yùn)算實(shí)現(xiàn)解密。由于加密解密過程的對稱性,我們對其中重復(fù)的加法、減法及循環(huán)移位運(yùn)算設(shè)計(jì)了專用的可復(fù)用的邏輯單元,在不同的運(yùn)算周期重復(fù)調(diào)用此邏輯單元,以降低節(jié)點(diǎn)的硬件開銷。密鑰擴(kuò)展模塊53、數(shù)據(jù)加密模塊54、數(shù)據(jù)解密模塊55,現(xiàn)有技術(shù)中的相關(guān)加密算法從理論上都可用于本發(fā)明。但考慮到無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)要求低成本、低功耗、高效率的特點(diǎn),作為一種優(yōu)選實(shí)現(xiàn)方式,在本實(shí)施例中,基于復(fù)用運(yùn)算單元的思想,實(shí)現(xiàn)了基于RC5算法的加密解密模塊。圖5是本發(fā)明中RC5加密算法在硬件上的一種優(yōu)選實(shí)現(xiàn)方式,如圖5所示,其中數(shù)據(jù)加密模塊54包括可復(fù)用運(yùn)算單元541和控制單元542,完成基于RC5加密算法的數(shù)據(jù)加密,從圖中可以看出,在這一實(shí)現(xiàn)方式中,根據(jù)電路復(fù)用的思想,通過采用高頻時(shí)鐘驅(qū)動,將一個時(shí)鐘周期完成的計(jì)算量分為數(shù)個時(shí)鐘周期完成,將并行的大量組合邏輯電路分為少量可復(fù)用的時(shí)序邏輯運(yùn)算電路,設(shè)計(jì)相應(yīng)的控制電路對這些時(shí)序邏輯電路復(fù)用數(shù)個周期,實(shí)現(xiàn)相同的運(yùn)算功能,以減少硬件實(shí)現(xiàn)單元數(shù)量。可復(fù)用運(yùn)算單元541中,包含一個加法器、一個32位異或門及一個32位移位寄存器。完成對輸入32位數(shù)據(jù)的異或運(yùn)算,后對其循環(huán)右移運(yùn)算,然后與輸入的擴(kuò)展密鑰S進(jìn)行相加。每輪加密都調(diào)用相同的邏輯單元,通過復(fù)用運(yùn)算單元的方式減少了移位寄存器、力口法器及異或門的數(shù)量,在實(shí)現(xiàn)加密功能的同時(shí)達(dá)到了減少硬件資源開銷的目的。相比傳統(tǒng)的并行實(shí)現(xiàn)的加密處理模塊節(jié)省了 1/2的硬件資源,符合傳感器網(wǎng)絡(luò)節(jié)點(diǎn)低成本的要求??刂茊卧?42中,包含預(yù)處理器5421、模擬開關(guān)5422、5423、計(jì)數(shù)器5424、選擇器5425。其中預(yù)處理器5421完成對輸入64位數(shù)據(jù)的預(yù)處理操作,并分成兩個32位的子數(shù)據(jù)流;模擬開關(guān)5422、5423根據(jù)輸入狀態(tài)的不同,選擇可復(fù)用運(yùn)算單元541輸出的計(jì)算結(jié)果做反饋,或輸入的新數(shù)據(jù),為可復(fù)用運(yùn)算單元541提供輸入數(shù)據(jù);計(jì)數(shù)器5424由輸入指令控制其工作狀態(tài)、模式及加密輪數(shù),受輸入時(shí)鐘驅(qū)動計(jì)數(shù),改變狀態(tài)機(jī)的不同工作狀態(tài),輸出控制信號來控制模擬開關(guān)5422、5423和選擇器5425 ;選擇器5425根據(jù)輸入狀態(tài)的不同,選擇由密鑰擴(kuò)展模塊53提供的擴(kuò)展密鑰S,輸出到可復(fù)用運(yùn)算單元541做加密運(yùn)算。由于在RC5算法中,加密與解密運(yùn)算是完全可逆的,解密模塊可以類似的采用可復(fù)用運(yùn)算單元的設(shè)計(jì),以實(shí)現(xiàn)降低硬件成本的目的。圖6是本發(fā)明中數(shù)據(jù)解密模塊55在硬件上的一種優(yōu)選實(shí)現(xiàn)方式,如圖6所示,其中數(shù)據(jù)解密模塊55包括可復(fù)用運(yùn)算單元551和控制單元552,完成基于RC5加密算法的數(shù)據(jù)解密。 可復(fù)用運(yùn)算單元551中,包含一個減法器、一個32位異或門及一個32位移位寄存器。完成對輸入32位數(shù)據(jù)與輸入的擴(kuò)展密鑰S進(jìn)行相減,后對其循環(huán)左移運(yùn)算,然后與前一運(yùn)算結(jié)果異或運(yùn)算。每輪加密都調(diào)用相同的邏輯單元,通過復(fù)用運(yùn)算單元的方式減少了移位寄存器、減法器及異或門的數(shù)量,在實(shí)現(xiàn)解密功能的同時(shí)達(dá)到了減少硬件資源開銷的目的??刂茊卧?52具有與控制單元542相同的硬件結(jié)構(gòu),但其控制方式有所不同。其中預(yù)處理器5521完成對輸入64位數(shù)據(jù)的預(yù)處理操作,并分成兩個32位的子數(shù)據(jù)流;模擬開關(guān)5522、5523根據(jù)輸入狀態(tài)的不同,選擇可復(fù)用運(yùn)算單元551輸出的計(jì)算結(jié)果做反饋,或輸入的新數(shù)據(jù),為可復(fù)用運(yùn)算單元551提供輸入數(shù)據(jù);計(jì)數(shù)器5524由輸入指令控制其工作狀態(tài)、模式及解密輪數(shù),受輸入時(shí)鐘驅(qū)動計(jì)數(shù),改變狀態(tài)機(jī)的不同工作狀態(tài),輸出控制信號來控制模擬開關(guān)5522、5523和選擇器5525 ;選擇器5525根據(jù)輸入狀態(tài)的不同,選擇由密鑰擴(kuò)展模塊53提供的擴(kuò)展密鑰S,輸出到可復(fù)用運(yùn)算單元541做解密運(yùn)算。圖7是本發(fā)明的安全加密協(xié)處理器的一實(shí)施例的結(jié)構(gòu)示意圖,如圖7所示,較佳地,所述安全加密協(xié)處理器,還包括DMA控制器56,用于完成使安全協(xié)處理器5與其他模塊的能直接訪問功能。用戶可通過軟件控制DMA開關(guān),使其他模塊直接訪問安全協(xié)處理器,例如可以使無線通信模塊直接讀取安全協(xié)處理器的加密密文進(jìn)行無線發(fā)送,也可以使其直接將接收的密文輸入安全協(xié)處理器進(jìn)行解密,而不通過處理器讀寫,以提高工作效率。因此,所述數(shù)據(jù)加密模塊54通過數(shù)據(jù)線從DMA控制器56中得到需要加密的明文數(shù)據(jù),經(jīng)過加密運(yùn)算后通過數(shù)據(jù)線發(fā)送給DMA控制器56,由其控制發(fā)送給處理器I還是直接通過無線通信模塊6發(fā)射出去。無線通信模塊6在接收到數(shù)據(jù)后,會將接收到的密文數(shù)據(jù)通過數(shù)據(jù)線發(fā)送給DMA控制器56,由其控制發(fā)送給處理器I還是直接通過數(shù)據(jù)線發(fā)送給數(shù)據(jù)解密模塊55進(jìn)行數(shù)據(jù)解密,經(jīng)過解密運(yùn)算后的明文通過數(shù)據(jù)線發(fā)送給DMA控制器56,由其產(chǎn)生中斷給處理器I,供其讀取接收的數(shù)據(jù)。DMA控制器56的控制線與數(shù)據(jù)線通過總線與處理器I相連,與處理器I進(jìn)行數(shù)據(jù)交互,受處理器I控制并返回中斷響應(yīng)。DMA控制器56,完成使加密協(xié)處理器模塊與其他模塊的能直接訪問功能。DMA模塊可以采用已有的獨(dú)立的IP單元或是通用DMA芯片實(shí)現(xiàn),作為一種優(yōu)選實(shí)現(xiàn)方式,在本實(shí)施例中,DMA模塊采用了獨(dú)立的IP單元。相應(yīng)于本發(fā)明的一種安全加密協(xié)處理器,還提供一種無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)芯片,圖8是本發(fā)明的用于無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的芯片的一個實(shí)施例的結(jié)構(gòu)示意圖,如圖8所示,所述芯片,包括處理器I、程序存儲器2、數(shù)據(jù)存儲器3、其他模塊4、所述安全加密協(xié)處理器及無線通信模塊6。其中,處理器I與數(shù)據(jù)存儲器3、其他模塊4、安全加密協(xié)處理器及無線通信模塊6之間通過總線連接,而處理器I通過程序讀取線連接到程序存儲器2上;程序存儲器2與安全加密協(xié)處理器之間通過程序讀取線連接,而安全加密協(xié)處理器與無線通信模塊6之間也通過數(shù)據(jù)線建立有數(shù)據(jù)收發(fā)通路,處理器I通過總線可以分別控制安全加密協(xié)處理器的狀態(tài)及DMA控制器。下面對芯片中的各個部件的具體功能以及實(shí)現(xiàn)加以說明。處理器I是根據(jù)程序存儲器2中的程序代碼完成相應(yīng)操作的邏輯器件,可選擇現(xiàn)有的IP模塊或開放源代碼實(shí)現(xiàn),如Oregano Systems的MC8051處理器源代碼、ARM系列的處理器模塊等。處理器I在程序代碼的控制下會對芯片中的其他部件進(jìn)行包括初始化設(shè)置、控制在內(nèi)的多種操作。程序存儲器2用于存儲處理器I所要運(yùn)行的程序。程序存儲器2 —般可采用FLASH或EEPROM等成熟的工藝設(shè)計(jì)方法實(shí)現(xiàn)。
數(shù)據(jù)存儲器3用于存儲處理器I所要使用的數(shù)據(jù),一般可以采用成熟的DRAM或是SRAM等工藝實(shí)現(xiàn)。其他模塊4用于實(shí)現(xiàn)包括供電控制、傳感器控制、輸入輸出在內(nèi)的多種功能,該模塊也可通過現(xiàn)有技術(shù)實(shí)現(xiàn)。所述無線通信模塊6用于無線發(fā)射數(shù)據(jù)的調(diào)制發(fā)射以及無線接收數(shù)據(jù)的解調(diào)接收。該模塊包括發(fā)射單元61、接收單元62??蛇x擇現(xiàn)有的符合各種通信標(biāo)準(zhǔn)的IP模塊實(shí)現(xiàn)。相應(yīng)于本發(fā)明的一種安全加密協(xié)處理器,還提供所述安全加密協(xié)處理器的加解密方法,圖9是本發(fā)明的安全加密協(xié)處理器的加解密方法的步驟流程圖,如圖9所示,所述方法,包括下列步驟步驟100.當(dāng)無線傳感器網(wǎng)絡(luò)中任意兩個網(wǎng)絡(luò)節(jié)點(diǎn)需要進(jìn)行通信時(shí),它們會利用各自安全指紋中的密鑰元素建立鏈路會話密鑰;具體執(zhí)行下列操作步驟110.密鑰提取模塊抽取所需的程序片段作為密鑰元素,并與本地傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的密鑰元素聯(lián)合組成會話密鑰,將會話密鑰通過數(shù)據(jù)線發(fā)送到密鑰擴(kuò)展模塊;圖10是本發(fā)明中密鑰提取模塊抽取所需的程序片段作為密鑰元素的步驟流程圖,如圖110所示,所述步驟110,包括下列步驟步驟111.每個網(wǎng)絡(luò)節(jié)點(diǎn)用隨機(jī)數(shù)生成模塊511產(chǎn)生隨機(jī)選擇密鑰元素的標(biāo)識符,并且與要通信的節(jié)點(diǎn)交換彼此選擇密鑰元素的標(biāo)識符;步驟112.兩個網(wǎng)絡(luò)節(jié)點(diǎn)通過各自的仲裁器512獲得對程序存儲器的讀取控制權(quán),根據(jù)本地節(jié)點(diǎn)和交換得到的要通信的節(jié)點(diǎn)的密鑰元素標(biāo)識符指向的程序存儲器的起始地址,分別讀取相應(yīng)程序片段作為密鑰元素;較佳地,作為一種可實(shí)施方式,圖11是本發(fā)明的仲裁器512的控制步驟流程圖,如圖11所示,所述步驟112,包括下列步驟步驟1121、初始化所述對密鑰元素長度、加密模式選擇、中斷處理、其他功能模塊分別進(jìn)行初始化,然后等待加密請求事件的觸發(fā)。步驟1122、收到提取密鑰請求步驟1122a,判斷提取的是本地密鑰元素還是通信的網(wǎng)絡(luò)節(jié)點(diǎn)的密鑰元素,如果是本地密鑰元素,則進(jìn)行步驟1122b,否則進(jìn)行步驟1122c。
步驟1122b,判斷隨機(jī)數(shù)生成模塊511是否已生成隨機(jī)數(shù)作為本地的密鑰標(biāo)識符AddrO,如果是則進(jìn)行步驟1122d,否則在步驟1122b繼續(xù)等待。步驟1122c,如果要提取的為通信節(jié)點(diǎn)的密鑰元素,則讀入通信節(jié)點(diǎn)的標(biāo)識符AddrO,進(jìn)入步驟1122d。 步驟1122d,將密鑰提取地址初始化為AddrO,停止本地處理器I時(shí)鐘,設(shè)置key_en為高,密鑰提取模塊51得到程序讀取總線的控制權(quán),本地處理器I失去程序讀取總線的控制權(quán),進(jìn)行步驟1122e。步驟1122e,等待周期,保證系統(tǒng)建立保持時(shí)間,以讀到正確的相應(yīng)輸入地址的密鑰元素,進(jìn)行步驟1122g。步驟1122f,從程序存儲器中讀取相應(yīng)地址下的程序片段作為本地密鑰元素,并將此密鑰元素輸入哈希變換模塊513供其建立會話密鑰,密鑰元素計(jì)數(shù)器i加一,密鑰提取地 址加一,進(jìn)入步驟1122f。步驟1122g,判斷是否已經(jīng)讀取滿足密鑰元素長度的N字節(jié)密鑰元素,如果已滿足則進(jìn)入步驟1122h,否則進(jìn)入步驟1122f。步驟1122h,讀取足夠長度的密鑰元素后,本地處理器I時(shí)鐘開始工作,設(shè)置keyen為低,密鑰元素計(jì)數(shù)器和密鑰提取地址清零,密鑰提取模塊51失去程序讀取總線的控制權(quán),本地處理器I得到程序讀取總線的控制權(quán)。開始等待新的密鑰提取請求事件的觸發(fā);步驟1123,根據(jù)key_en控制線對程序讀取總線進(jìn)行選通控制,如果key_en為高,程序存儲器的輸入地址線Rom_addr接密鑰提取模塊51的key_addr,程序存儲器的輸出數(shù)據(jù)線Rom_dout接密鑰提取模塊51的key_din ;如果key_en為低,則程序存儲器的輸入地址線Rom_addr接處理器I的cpu_addr,程序存儲器的輸出數(shù)據(jù)線Rom_dout接處理器I的cpu_din。步驟113.采用一個安全的有序單向哈希變換模塊513對選出的兩個相同密鑰元素進(jìn)行運(yùn)算以得到鏈路會話密鑰,存儲于密鑰存儲器514。步驟120.密鑰擴(kuò)展模塊將輸入的會話密鑰擴(kuò)展為新的不易破譯的密鑰矩陣通過數(shù)據(jù)線送到數(shù)據(jù)加密模塊及數(shù)據(jù)解密模塊;步驟200.所述兩個網(wǎng)絡(luò)節(jié)點(diǎn)利用所述密鑰矩陣對需要傳輸?shù)臄?shù)據(jù)進(jìn)行加密或解密,實(shí)現(xiàn)安全傳輸。所述步驟200,包括下列步驟步驟210.無線通信模塊6接收加密密文發(fā)送給本地處理器,再由本地處理器將接收的密文發(fā)送給解密模塊55進(jìn)行解密,經(jīng)過解密運(yùn)算后的明文發(fā)送給處理器1,供其讀取接收的數(shù)據(jù);步驟220.數(shù)據(jù)加密模塊54通過數(shù)據(jù)線從本地處理器I中得到需要加密的明文數(shù)據(jù),經(jīng)過加密運(yùn)算后通過數(shù)據(jù)線再發(fā)送給本地處理器1,由其控制發(fā)送給無線通信模塊6發(fā)送出去。較佳地,為了使安全協(xié)處理器5與其他模塊的能直接訪問功能。用戶可通過軟件控制DMA開關(guān),使其他模塊直接訪問安全協(xié)處理器,例如可以使無線通信模塊直接讀取安全協(xié)處理器的加密密文進(jìn)行無線發(fā)送,也可以使其直接將接收的密文輸入安全協(xié)處理器進(jìn)行解密,而不通過處理器讀寫,以提高工作效率。所述步驟200。還可以采用如下操作步驟
步驟210’ .無線通信模塊接收加密密文發(fā)送給DMA控制器,DMA控制器轉(zhuǎn)發(fā)給本地處理器或者數(shù)據(jù)解密模塊進(jìn)行數(shù)據(jù)解密,并將經(jīng)過解密運(yùn)算后的明文數(shù)據(jù)發(fā)送給DMA控制器,同時(shí)產(chǎn)生中斷給所述本地處理器,供其讀取接收的數(shù)據(jù);步驟220’ .數(shù)據(jù)加密模塊通過數(shù)據(jù)線從DMA控制器中得到需要加密的明文數(shù)據(jù),經(jīng)過加密運(yùn)算后通過數(shù)據(jù)線再發(fā)送給DMA控制器,由其控制發(fā)送給本地處理器或者無線通信模塊發(fā)送出去。本發(fā)明的有益效果在于
I、本發(fā)明的安全加密協(xié)處理器采用基于安全指紋的密鑰管理方法,降低因密鑰泄漏而導(dǎo)致的節(jié)點(diǎn)傳遞信息被截獲的風(fēng)險(xiǎn),提高節(jié)點(diǎn)安全性;2、本發(fā)明的安全加密協(xié)處理器采用軟硬件結(jié)合的方式來實(shí)現(xiàn)無線傳感器網(wǎng)絡(luò)中的數(shù)據(jù)加密,軟件靈活配置參數(shù),硬件協(xié)處理器加速運(yùn)算效率,從而適應(yīng)復(fù)雜多變的應(yīng)用環(huán)境;3、本發(fā)明的安全加密協(xié)處理器中的加密解密模塊設(shè)計(jì)了獨(dú)特的可復(fù)用運(yùn)算單元,在保證加密解密運(yùn)算效率的同時(shí)達(dá)到了減少硬件資源開銷,降低成本的目的。通過結(jié)合附圖對本發(fā)明具體實(shí)施例的描述,本發(fā)明的其它方面及特征對本領(lǐng)域的技術(shù)人員而言是顯而易見的。以上對本發(fā)明的具體實(shí)施例進(jìn)行了描述和說明,這些實(shí)施例應(yīng)被認(rèn)為其只是示例性的,并不用于對本發(fā)明進(jìn)行限制,本發(fā)明應(yīng)根據(jù)所附的權(quán)利要求進(jìn)行解釋。
權(quán)利要求
1.一種安全加密協(xié)處理器,其特征在于,包括密鑰提取模塊、控制模塊、密鑰擴(kuò)展模塊、數(shù)據(jù)加密模塊、數(shù)據(jù)解密模塊,其中 密鑰提取模塊,用于抽取所需的程序片段作為密鑰元素,并與本地傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的密鑰元素聯(lián)合組成會話密鑰,將會話密鑰通過數(shù)據(jù)線發(fā)送到密鑰擴(kuò)展模塊; 控制模塊,用于控制所述數(shù)據(jù)加密模塊和數(shù)據(jù)解密模塊的工作模式、加密參數(shù)及工作狀態(tài); 密鑰擴(kuò)展模塊,用于將輸入的會話密鑰擴(kuò)展為不易破譯的密鑰矩陣通過數(shù)據(jù)線送到數(shù)據(jù)加密模塊及數(shù)據(jù)解密模塊; 數(shù)據(jù)加密模塊,用于利用所述密鑰矩陣為需要加密的明文數(shù)據(jù)加密; 數(shù)據(jù)解密模塊,用于利用所述密鑰矩陣對密文數(shù)據(jù)進(jìn)行數(shù)據(jù)解密。
2.根據(jù)權(quán)利要求I所述的安全加密協(xié)處理器,其特征在于,所述密鑰提取模塊包括隨機(jī)數(shù)生成模塊、仲裁器、哈希變換模塊以及密鑰存儲器,其中 所述隨機(jī)數(shù)生成模塊,用于產(chǎn)生隨機(jī)選擇密鑰元素的標(biāo)識符,并且與要通信的網(wǎng)絡(luò)節(jié)點(diǎn)交換彼此選擇密鑰元素的標(biāo)識符; 所述仲裁器,根據(jù)所述密鑰元素標(biāo)識符指向的起始地址,讀取相應(yīng)的密鑰元素; 所述哈希變換模塊,對選出的兩個密鑰元素進(jìn)行哈希運(yùn)算以得到會話密鑰; 所述密鑰存儲器,用于存儲所述會話密鑰。
3.根據(jù)權(quán)利要求2所述的安全加密協(xié)處理器,其特征在于,所述仲裁器,包括 初始化模塊,用于對密鑰元素長度、加密模式、中斷處理、功能模塊配置分別進(jìn)行初始化; 密鑰元素判斷子模塊,用于判斷提取的是本地密鑰元素還是通信節(jié)點(diǎn)的密鑰元素,如果是本地密鑰元素,則觸發(fā)隨機(jī)數(shù)判斷子模塊,否則讀入通信節(jié)點(diǎn)的標(biāo)識符AddrO,觸發(fā)執(zhí)7TT豐旲塊; 隨機(jī)數(shù)判斷子模塊,用于判斷隨機(jī)數(shù)生成模塊是否已生成隨機(jī)數(shù)作為本地的密鑰標(biāo)識符AddrO,如果是則觸發(fā)執(zhí)行模塊,否則觸發(fā)密鑰元素判斷子模塊。
執(zhí)行模塊,用于將密鑰提取地址初始化為AddrO,停止本地處理器時(shí)鐘,設(shè)置key_en為高;等待周期,保證系統(tǒng)建立保持時(shí)間,以讀到正確的相應(yīng)輸入地址的密鑰元素; 長度判斷子模塊,用于判斷是否已經(jīng)讀取滿足密鑰元素長度的N字節(jié)密鑰元素,如果已滿足,則讀取足夠長度的密鑰元素后,本地處理器時(shí)鐘開始工作,設(shè)置key_en為低,密鑰元素計(jì)數(shù)器和密鑰提取地址清零;否則,從程序存儲器中讀取相應(yīng)地址下的程序片段作為本地密鑰元素,并將此密鑰元素輸入哈希變換模塊供其建立會話密鑰,密鑰元素計(jì)數(shù)器i加一,密鑰提取地址加一,等待周期,保證系統(tǒng)建立保持時(shí)間,以讀到正確的相應(yīng)輸入地址的密鑰元素; 選通模塊,用于根據(jù)key_en控制線對程序讀取總線進(jìn)行選通控制,如果key_en為高,程序存儲器的輸入地址線Rom_addr接密鑰提取模塊的key_addr,程序存儲器的輸出數(shù)據(jù)線Rom_dout接密鑰提取模塊的key_din ;如果key_en為低,則程序存儲器的輸入地址線Rom_addr接本地處理器的cpu_addr,程序存儲器的輸出數(shù)據(jù)線Rom_dout接本地處理器的cpu_din。
4.根據(jù)權(quán)利要求2所述的安全加密協(xié)處理器,其特征在于,所述隨機(jī)數(shù)生成模塊采用線性反饋移位寄存器的獨(dú)立IP。
5.根據(jù)權(quán)利要求2所述的安全加密協(xié)處理器,其特征在于,所述哈希變換模塊,采用了基于RC5算法的獨(dú)立IP。
6.根據(jù)權(quán)利要求2所述的安全加密協(xié)處理器,其特征在于,所述密鑰存儲器采用獨(dú)立IP的RAM單元。
7.根據(jù)權(quán)利要求I所述的安全加密協(xié)處理器,其特征在于,所述控制模塊,包括輸出控制多路復(fù)用器,設(shè)置譯碼器、信號譯碼器、仲裁控制多路復(fù)用器、命令寄存器、模式寄存器、密鑰標(biāo)識符寄存器,及連接線和邏輯與門,其中 所述輸出控制多路復(fù)用器,完成對讀取密文數(shù)據(jù)、控制狀態(tài)、查詢密鑰的輸出控制; 所述設(shè)置譯碼器,完成對數(shù)據(jù)加密模塊和數(shù)據(jù)解密模塊的工作模式、命令的設(shè)置及對密鑰提取模塊的密鑰參數(shù)的設(shè)置; 信號譯碼器,完成對密鑰提取模塊、密鑰擴(kuò)展模塊、數(shù)據(jù)加密模塊和數(shù)據(jù)解密模塊的寫信號控制; 仲裁控制多路復(fù)用器,完成對密鑰存儲器讀地址線的仲裁控制; 其中,當(dāng)工作模式為輸入密鑰模式時(shí),密鑰存儲器讀地址線由地址總線addr控制,由本地處理器或密鑰提取模塊直接操作地址總線,寫入密鑰到密鑰存儲器的相應(yīng)地址; 當(dāng)工作模式為加密或解密模式時(shí),密鑰存儲器讀地址線由密鑰擴(kuò)展模塊控制,密鑰擴(kuò)展模塊讀取存放在密鑰存儲器的相應(yīng)地址下的密鑰進(jìn)行密鑰擴(kuò)展。
8.根據(jù)權(quán)利要求I所述的安全加密協(xié)處理器,其特征在于,所述數(shù)據(jù)加密模塊,包括可復(fù)用運(yùn)算單元和控制單元,其中 所述可復(fù)用運(yùn)算單元中,包含一個加法器、一個32位異或門及一個32位移位寄存器。完成對輸入32位數(shù)據(jù)的異或運(yùn)算,后對其循環(huán)右移運(yùn)算,然后與輸入的擴(kuò)展密鑰進(jìn)行相力口,每輪加密都調(diào)用相同的邏輯單元; 所述控制單元中,包含預(yù)處理器、模擬開關(guān)、計(jì)數(shù)器、選擇器,其中預(yù)處理器完成對輸入64位數(shù)據(jù)的預(yù)處理操作,并分成兩個32位的子數(shù)據(jù)流;模擬開關(guān)根據(jù)輸入狀態(tài)的不同,選擇可復(fù)用運(yùn)算單元輸出的計(jì)算結(jié)果做反饋,或輸入的新數(shù)據(jù),為可復(fù)用運(yùn)算單元提供輸入數(shù)據(jù);計(jì)數(shù)器由輸入指令控制其工作狀態(tài)、模式及加密輪數(shù),受輸入時(shí)鐘驅(qū)動計(jì)數(shù),改變狀態(tài)機(jī)的不同工作狀態(tài),輸出控制信號來控制模擬開關(guān)和選擇器;選擇器根據(jù)輸入狀態(tài)的不同,選擇由密鑰擴(kuò)展模塊提供的擴(kuò)展密鑰,輸出到可復(fù)用運(yùn)算單元做加密運(yùn)算。
9.根據(jù)權(quán)利要求I所述的安全加密協(xié)處理器,其特征在于,所述數(shù)據(jù)解密模塊,包括可復(fù)用運(yùn)算單元和控制單元,其中 所述可復(fù)用運(yùn)算單元中,包含一個減法器、一個32位異或門及一個32位移位寄存器,完成對輸入32位數(shù)據(jù)與輸入的擴(kuò)展密鑰S進(jìn)行相減,后對其循環(huán)左移運(yùn)算,然后與前一運(yùn)算結(jié)果異或運(yùn)算,每輪加密都調(diào)用相同的邏輯單元; 所述控制單元,包含預(yù)處理器、模擬開關(guān)、計(jì)數(shù)器、選擇器,其中預(yù)處理器完成對輸入64位數(shù)據(jù)的預(yù)處理操作,并分成兩個32位的子數(shù)據(jù)流;模擬開關(guān)根據(jù)輸入狀態(tài)的不同,選擇可復(fù)用運(yùn)算單元輸出的計(jì)算結(jié)果做反饋,或輸入的新數(shù)據(jù),為可復(fù)用運(yùn)算單元提供輸入數(shù)據(jù);計(jì)數(shù)器由輸入指令控制其工作狀態(tài)、模式及解密輪數(shù),受輸入時(shí)鐘驅(qū)動計(jì)數(shù),改變狀態(tài)機(jī)的不同工作狀態(tài),輸出控制信號來控制模擬開關(guān)和選擇器;選擇器根據(jù)輸入狀態(tài)的不同,選擇由密鑰擴(kuò)展模塊提供的擴(kuò)展密鑰,輸出到可復(fù)用運(yùn)算單元做解密運(yùn)算。
10.根據(jù)權(quán)利要求I所述的安全加密協(xié)處理器,其特征在于,所述安全加密協(xié)處理器,還包括 DMA控制器,用于接收本地處理器發(fā)送的需要加密的明文,并通過數(shù)據(jù)線向所述數(shù)據(jù)加密模塊發(fā)送需要加密的明文數(shù)據(jù),并將經(jīng)過加密運(yùn)算后的密文數(shù)據(jù)發(fā)送給本地處理器或是直接發(fā)射出去;以及將接收到的密文數(shù)據(jù)發(fā)送給本地處理器或者直接通過數(shù)據(jù)線發(fā)送給數(shù)據(jù)解密模塊進(jìn)行數(shù)據(jù)解密,并將經(jīng)過解密運(yùn)算后的明文數(shù)據(jù)發(fā)送給本地處理器,同時(shí)產(chǎn)生中斷給所述本地處理器,供其讀取接收的數(shù)據(jù);DMA控制器的控制線與數(shù)據(jù)線通過總線與本地處理器相連,與本地處理器進(jìn)行數(shù)據(jù)交互,受本地處理器控制并返回中斷響應(yīng)。
11.根據(jù)權(quán)利要求10所述的安全加密協(xié)處理器,其特征在于,所述DMA模塊獨(dú)立的IP 單元。
12.—種安全加密協(xié)處理器的加解密方法,其特征在于,所述方法,包括下列步驟 步驟100.當(dāng)無線傳感器網(wǎng)絡(luò)中任意兩個網(wǎng)絡(luò)節(jié)點(diǎn)需要進(jìn)行通信時(shí),它們會利用各自安全指紋中的密鑰元素建立鏈路會話密鑰;具體包括下列步驟 步驟110.密鑰提取模塊抽取所需的程序片段作為密鑰元素,并與本地傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的密鑰元素聯(lián)合組成會話密鑰,將會話密鑰通過數(shù)據(jù)線發(fā)送到密鑰擴(kuò)展模塊; 步驟120.密鑰擴(kuò)展模塊將輸入的會話密鑰擴(kuò)展為不易破譯的密鑰矩陣通過數(shù)據(jù)線送到數(shù)據(jù)加密模塊及數(shù)據(jù)解密模塊; 步驟200.所述兩個網(wǎng)絡(luò)節(jié)點(diǎn)利用所述密鑰矩陣對需要傳輸?shù)臄?shù)據(jù)進(jìn)行加密或解密,實(shí)現(xiàn)安全傳輸。
13.根據(jù)權(quán)利要求12所述的安全加密協(xié)處理器的加解密方法,其特征在于,所述步驟·110,包括下列步驟 步驟111.每個網(wǎng)絡(luò)節(jié)點(diǎn)用隨機(jī)數(shù)生成模塊產(chǎn)生隨機(jī)選擇密鑰元素的標(biāo)識符,并且與要通信的節(jié)點(diǎn)交換彼此選擇密鑰元素的標(biāo)識符; 步驟112.兩個網(wǎng)絡(luò)節(jié)點(diǎn)通過各自的仲裁器獲得對程序存儲器的讀取控制權(quán),根據(jù)本地節(jié)點(diǎn)和交換得到的要通信的節(jié)點(diǎn)的密鑰元素標(biāo)識符指向的程序存儲器的起始地址,分別讀取相應(yīng)程序片段作為密鑰元素; 步驟113.采用一個安全的有序單向哈希變換模塊對選出的兩個相同密鑰元素進(jìn)行運(yùn)算以得到鏈路會話密鑰,存儲于密鑰存儲器。
14.根據(jù)權(quán)利要求13所述的安全加密協(xié)處理器的加解密方法,其特征在于,所述步驟·112,包括下列步驟 步驟1121、對密鑰元素長度、加密模式選擇、中斷處理、其他功能模塊分別進(jìn)行初始化,然后等待加密請求事件的觸發(fā); 步驟1122、收到提取密鑰請求 步驟1122a,判斷提取的是本地密鑰元素還是通信的網(wǎng)絡(luò)節(jié)點(diǎn)的密鑰元素,如果是本地密鑰元素,則進(jìn)行步驟1122b,否則進(jìn)行步驟1122c。
步驟1122b,判斷隨機(jī)數(shù)生成模塊511是否已生成隨機(jī)數(shù)作為本地的密鑰標(biāo)識符AddrO,如果是則進(jìn)行步驟1122d,否則在步驟1122b繼續(xù)等待。
步驟1122c,如果要提取的為通信節(jié)點(diǎn)的密鑰元素,則讀入通信節(jié)點(diǎn)的標(biāo)識符AddrO,進(jìn)入步驟1122d。
步驟1122d,將密鑰提取地址初始化為AddrO,停止本地處理器I時(shí)鐘,設(shè)置key_en為高,密鑰提取模塊51得到程序讀取總線的控制權(quán),本地處理器I失去程序讀取總線的控制權(quán),進(jìn)行步驟1122e。
步驟1122e,等待周期,保證系統(tǒng)建立保持時(shí)間,以讀到正確的相應(yīng)輸入地址的密鑰元素,進(jìn)行步驟1122g。
步驟1122f,從程序存儲器中讀取相應(yīng)地址下的程序片段作為本地密鑰元素,并將此密鑰元素輸入哈希變換模塊513供其建立會話密鑰,密鑰元素計(jì)數(shù)器i加一,密鑰提取地址加一,進(jìn)入步驟1122f。
步驟1122g,判斷是否已經(jīng)讀取滿足密鑰元素長度的N字節(jié)密鑰元素,如果已滿足則進(jìn)入步驟1122h,否則進(jìn)入步驟1122f。
步驟1122h,讀取足夠長度的密鑰元素后,本地處理器I時(shí)鐘開始工作,設(shè)置key_en為低,密鑰元素計(jì)數(shù)器和密鑰提取地址清零,密鑰提取模塊51失去程序讀取總線的控制權(quán),本地處理器I得到程序讀取總線的控制權(quán)。開始等待新的密鑰提取請求事件的觸發(fā)。
15.根據(jù)權(quán)利要求12所述的安全加密協(xié)處理器的加解密方法,其特征在于,所述步驟200,包括下列步驟 步驟210.無線通信模塊接收加密密文發(fā)送給本地處理器,再由本地處理器將接收的密文發(fā)送給解密模塊進(jìn)行解密,經(jīng)過解密運(yùn)算后的明文發(fā)送給處理器,供其讀取接收的數(shù)據(jù); 步驟220.數(shù)據(jù)加密模塊通過數(shù)據(jù)線從本地處理器中得到需要加密的明文數(shù)據(jù),經(jīng)過加密運(yùn)算后通過數(shù)據(jù)線再發(fā)送給本地處理器,由其控制發(fā)送給無線通信模塊發(fā)送出去。
16.根據(jù)權(quán)利要求12所述的安全加密協(xié)處理器的加解密方法,其特征在于,所述步驟200,包括下列步驟 步驟210’.無線通信模塊接收加密密文發(fā)送給DMA控制器,DMA控制器轉(zhuǎn)發(fā)給本地處理器或者數(shù)據(jù)解密模塊進(jìn)行數(shù)據(jù)解密,并將經(jīng)過解密運(yùn)算后的明文數(shù)據(jù)發(fā)送給DMA控制器,同時(shí)產(chǎn)生中斷給所述本地處理器,供其讀取接收的數(shù)據(jù); 步驟220’ .數(shù)據(jù)加密模塊通過數(shù)據(jù)線從DMA控制器中得到需要加密的明文數(shù)據(jù),經(jīng)過加密運(yùn)算后通過數(shù)據(jù)線再發(fā)送給DMA控制器,由其控制發(fā)送給本地處理器或者無線通信模塊發(fā)送出去。
17.—種包括權(quán)利要求I所述的安全加密協(xié)處理器的無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)芯片,其特征在于,所述芯片,還包括 本地處理器,是根據(jù)程序存儲器中的程序代碼完成相應(yīng)操作的邏輯器件; 程序存儲器,用于存儲本地處理器所要運(yùn)行的程序; 數(shù)據(jù)存儲器,用于存儲本地處理器所要使用的數(shù)據(jù); 無線通信模塊,用于實(shí)現(xiàn)節(jié)點(diǎn)的無線通信功能; 其他模塊,用于實(shí)現(xiàn)包括供電控制、傳感器控制、輸入輸出的功能; 其中,所述本地處理器與數(shù)據(jù)存儲器、安全加密協(xié)處理器及無線通信模塊之間通過總線連接,而本地處理器通過程序讀取線連接到程序存儲器上;程序存儲器與安全加密協(xié)處理器之間通過程序讀取線連接,而安全加密協(xié)處理器與無線通信模塊之間也通過數(shù)據(jù)線建立 有數(shù)據(jù)收發(fā)通路,所述本地處理器通過總線控制安全加密協(xié)處理器的狀態(tài)。
全文摘要
本發(fā)明公開了一種安全加密協(xié)處理器及無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)芯片。所述安全加密協(xié)處理器,包括密鑰提取模塊,用于抽取所需的程序片段作為密鑰元素,并與本地傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的密鑰元素聯(lián)合組成會話密鑰,將會話密鑰通過數(shù)據(jù)線發(fā)送到密鑰擴(kuò)展模塊;控制模塊,用于控制所述數(shù)據(jù)加密模塊和數(shù)據(jù)解密模塊的工作模式、加密參數(shù)及工作狀態(tài);密鑰擴(kuò)展模塊,用于將輸入的會話密鑰擴(kuò)展為不易破譯的密鑰矩陣通過數(shù)據(jù)線送到數(shù)據(jù)加密模塊及數(shù)據(jù)解密模塊;數(shù)據(jù)加密模塊,用于利用所述密鑰矩陣為需要加密的明文數(shù)據(jù)加密;數(shù)據(jù)解密模塊,用于利用所述密鑰矩陣對密文數(shù)據(jù)進(jìn)行數(shù)據(jù)解密。
文檔編號H04W12/04GK102799800SQ20111013428
公開日2012年11月28日 申請日期2011年5月23日 優(yōu)先權(quán)日2011年5月23日
發(fā)明者王 義, 趙澤, 崔莉 申請人:中國科學(xué)院計(jì)算技術(shù)研究所