當前位置:首頁 > 模擬 > 模擬
[導讀]提出了一種高安全、高效率、低成本USB接口密鑰的設(shè)計方法。采用8位USB微控制器MC9S08JS16,通過其內(nèi)置的全速USB2.0模塊,實現(xiàn)與PC機的通信,并采用現(xiàn)在公認最安全和高效的高級加密標準(AES)算法對輸入數(shù)據(jù)進行加密,同時對AES在單片機中的加密程序進行了優(yōu)化。實驗表明,USB密鑰可在短時間內(nèi)完成對少量數(shù)據(jù)的加密,適用于加密數(shù)據(jù)量較小的場合,電路設(shè)計簡單,穩(wěn)定性高,易于攜帶。

隨著互聯(lián)網(wǎng)與電子商務(wù)的發(fā)展,網(wǎng)絡(luò)信息安全問題顯得尤為重要。數(shù)據(jù)保密變換或信息加密,成為對計算機信息進行保護的最實用和最可靠的方法。各種加密技術(shù)如軟件自校驗、密碼加密、鑰匙盤等軟加密技術(shù)和擴展卡、并行口軟件加密狗等硬加密技術(shù)應(yīng)運而生,而USB接口密鑰(USB Key)憑借其獨特的優(yōu)勢和極高的安全性備受青睞。
    USB Key是一種通過USB(通用串行總線)接口直接與計算機相連、具有密碼驗證功能、可靠高速的小型存儲設(shè)備。USB Key的設(shè)計小巧精致、攜帶方便。由于是USB接口設(shè)備,USB Key通過USB端口提供的電源來工作,不需要額外的電源。USB Key自身所具備的存儲器用于存儲一些個人信息或證書,USB Key的內(nèi)部密碼算法可以為數(shù)據(jù)傳輸提供安全的管道,適用于單機或網(wǎng)絡(luò)應(yīng)用的安全防護產(chǎn)品。

1 系統(tǒng)工作原理及硬件設(shè)計
    USB Key(簡稱Ukey)通過USB接口與PC機相連,用戶可以通過位于PC機的客戶端向Ukey發(fā)出命令,Ukey通過內(nèi)部固件中算法實現(xiàn)數(shù)據(jù)加密,然后將加密后的數(shù)據(jù)返回客戶端。其工作原理如圖1所示。設(shè)計選用了8位USB微控制器(MCU)MC9S08JS16,MC9S08JS16型MCU內(nèi)置全速USB2.0控制器并集成了1個USB收發(fā)器,同時含有高達16 KB的Flash和512 B的RAM。


    用戶可以通過片內(nèi)專用的3.3 V穩(wěn)壓器或VUSB3.3引腳外接3.3 V電源為USB收發(fā)器和上拉電阻提供電源,這里采用片內(nèi)的3.3 V穩(wěn)壓器為USB收發(fā)器提供電源(須使能USBCTL0寄存器的USBVREN位),硬件連接圖如圖2所示。


    USB模塊需要兩個時鐘源,分別為24 MHz總線時鐘和48 MHz參考時鐘。48 MHz時鐘源由MCGOUT直接產(chǎn)生,為了獲得48MHz時鐘速率,MCG(通用時鐘產(chǎn)生器)必須被適當配置為PLL使能的外部占用模式PEE(PLL EngagedExternal),外接一晶振。MC9S08JS16的USB模塊選擇內(nèi)部上拉電阻(使能USBCTL0寄存器USBPU位)USB主機通過檢測上拉電阻檢測USB設(shè)備的聯(lián)結(jié)并確定設(shè)備速度。

2 系統(tǒng)軟件設(shè)計
2.1 USB設(shè)備初始化

    圖3為USB模塊初始化流程圖,固件代碼初始化USB模塊,使其準備聯(lián)結(jié)到USB主機。通過設(shè)置USBCTL0寄存器的RESET位,重置USB模塊和所有寄存器為默認狀態(tài),完成對USB RAM,BD(buffer descriptor)寄存器的初始化,特別是對于端點0的BD,設(shè)置EPAD寄存器,指示端點寄存器在USB RAM中的存儲,為了接收DATA0數(shù)據(jù)包,狀態(tài)與控制寄存器設(shè)置為(DTS=1,OWN=1,DATAO/1=0)。使能端點0,并根據(jù)硬件設(shè)計配置USB模塊,使能上拉電阻,3.3 V穩(wěn)壓器與PHY。開放USB模塊和USB中斷,設(shè)備被置為連接狀態(tài)。


2.2 AES加密算法
   
系統(tǒng)采用128位高級加密標準AES(Riindael)算法進行數(shù)據(jù)加密。AES(Advanced Encxyption Standard)是美國國家標準與技術(shù)研究所用于加密電子數(shù)據(jù)的規(guī)范,用于代替現(xiàn)有的DES算法,AES作為新一代的數(shù)據(jù)加密標準匯聚了強安全性、高性能、高效率、易用和靈活等優(yōu)點,被預(yù)期能成為公認的加密包括金融、電信和政府數(shù)字信息的方法。
    AES算法是基于置換和代替的。置換是數(shù)據(jù)的重新排列,而代替是用一個單元數(shù)據(jù)替換另一個。AES加密例程開始是拷貝16字節(jié)的輸入數(shù)組到一個名為State(態(tài))的4x4字節(jié)矩陣中。AES算法加密過程如圖4所示。


    AES的主循環(huán)對State矩陣執(zhí)行4個不同的操作,規(guī)范中被稱為SubBytes(字節(jié)替換)、ShifiRows(行位移變換)、MixColumns(列混合變換)和AddRoundKey(輪密鑰加)。AES加密算法使用了一個由種子密鑰字節(jié)數(shù)組生成的密鑰調(diào)度表,AES規(guī)范中稱之為密鑰擴展例程(KeyExpans-ion)。
    下面簡單分析AES(128 bits密鑰)的加密過程:

    SubBytes例程是一個代替操作,它將State矩陣中的每個字節(jié)替換成一個由Sbox決定的新字節(jié),Sbox是初始化的1個16x16的矩陣。比如State[0,1]的值為0xXY,則被替換為Sbox表中Sbox[X,Y]的值。
    ShifiRows是一個置換操作,它將State矩陣中的字節(jié)向左旋轉(zhuǎn)。State的第0行向左旋轉(zhuǎn)0個位置,State的第1行向左旋轉(zhuǎn)1個位置,State的第2行向左旋轉(zhuǎn)2個位置,而第3行則向左旋轉(zhuǎn)3個位置。
    MixColumns列混合變換過程,在該變換中將狀態(tài)的每列視為有限域GF(28)中的多項式且被一個固定的多項式
    ,GF代表伽羅瓦域,將其用矩陣形式表示為:
   
    乘積矩陣中的每個元素是系數(shù)矩陣中第i行元素與State矩陣第j列元素State[j]的乘積之和。這里的加法和乘法都定義在有限域GF(28)上;加法即按位異或,乘法遵循GF(28)上的多項式乘法規(guī)則。
    AddRoundKey輪密鑰加過程,State矩陣中的元素通過與一個輪密鑰進行逐位異或而得。
    KeyExpansion密鑰擴展例程,用于產(chǎn)生密鑰調(diào)度表W[]。例程用到了2個子例程RotWord和SubWord以及1個輪常數(shù)表Rcon。RotWord將接收1個4字節(jié)的數(shù)組并將它們向左旋轉(zhuǎn)1位,SubWord例程使用替代Sbox對給定的一行密鑰調(diào)度表進行逐字節(jié)替換。該過程的循環(huán)為:

2.3 AES加密算法的優(yōu)化
   
從式(1)矩陣函數(shù)可以看出,在軟件實現(xiàn)過程中,只需關(guān)注如何實現(xiàn)State矩陣元素在GF(28)中與OxO1,0x02,0x03的乘法和加法。GF(2 8)中用0x01的乘法相當于普通算數(shù)中用l做乘法并且結(jié)果也同樣,任何值乘以0x01等于其自身;用0x02做乘法,只要被乘的值小于0x80,這時乘法的結(jié)果就是該值左移一比特位,如果被乘的值大于或等于Ox80,這時乘法的結(jié)果就是左移一比特位再用值Ox1b異或,它防止了”域溢出”并保持乘法的乘積在范圍以內(nèi);用0x03做乘法時可以分解為2的冪之和,即0x03=0x02+Ox01。對程序進行優(yōu)化,采用查表法,將16x16的Sbox表分別與Ox01,0x02,0x03相乘產(chǎn)生與Sbox相對應(yīng)的3個256字節(jié)表:XtimeSbox[256]=Sbox[256],Xtime2Sbox[256],Xtime3Sbox[256]。將產(chǎn)生的表存儲于code區(qū)。MixColumns過程與SubByte操作可通過以下程序完成:


3 USB Key性能測試
   
考慮到MCU性能,將加密算法初始化所需的4個256字節(jié)的數(shù)據(jù)表存放于Code區(qū),128 bit-AES擴展密鑰ExpendedKey=4xNbx(Nr+1)=4×4×(10+1)=176存放于data區(qū)。在保證代碼空間與運算速度的前提下,經(jīng)過優(yōu)化,最后AES加密程序占用3 701字節(jié)的程序存儲單元和277字節(jié)的
RAM。
    以下是2組128位數(shù)據(jù)加密測試的結(jié)果:
   

4 結(jié)束語
   
與通用磁盤介質(zhì)相比,UKev數(shù)據(jù)只在UKeY內(nèi)留存,可以防止被非法復制,保證了數(shù)據(jù)的唯一性,有利于在公共場所使用。
    該方案設(shè)計的UKey可完成短時間內(nèi)對少量數(shù)據(jù)的加密,適用于對數(shù)據(jù)量要求較小的場合,安全性高,攜帶方便。在與電子商務(wù)以及各種以PC為基礎(chǔ)的安全應(yīng)用上具有其他產(chǎn)品不可替代的優(yōu)越性。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉