<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 低成本USB接口密鑰的設計方法

低成本USB接口密鑰的設計方法

作者: 時(shí)間:2016-12-21 來(lái)源:網(wǎng)絡(luò ) 收藏

  引言

  隨著(zhù)互聯(lián)網(wǎng)與電子商務(wù)的發(fā)展,網(wǎng)絡(luò )信息安全問(wèn)題顯得尤為重要。數據保密變換或信息加密,成為對計算機信息進(jìn)行保護的最實(shí)用和最可靠的方法。各種加密技術(shù)如軟件自校驗、密碼加密、鑰匙盤(pán)等軟加密技術(shù)和擴展卡、并行口軟件加密狗等硬加密技術(shù)應運而生,而USB接口密鑰(USB Key)憑借其獨特的優(yōu)勢和極高的安全性備受青睞。

  USB Key是一種通過(guò)USB(通用串行總線(xiàn))接口直接與計算機相連、具有密碼驗證功能、可靠高速的小型存儲設備。USB Key的設計小巧精致、攜帶方便。由于是USB接口設備,USB Key通過(guò)USB端口提供的電源來(lái)工作,不需要額外的電源。USB Key自身所具備的存儲器用于存儲一些個(gè)人信息或證書(shū),USB Key的內部密碼算法可以為數據傳輸提供安全的管道,適用于單機或網(wǎng)絡(luò )應用的安全防護產(chǎn)品。

  1 系統工作原理及硬件設計

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

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

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

  2 系統軟件設計

  2.1 USB設備初始化

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

  2.2 AES加密算法

  系統采用128位高級加密標準AES(Riindael)算法進(jìn)行數據加密。AES(Advanced Encxyption Standard)是美國國家標準與技術(shù)研究所用于加密電子數據的規范,用于代替現有的DES算法,AES作為新一代的數據加密標準匯聚了強安全性、高性能、高效率、易用和靈活等優(yōu)點(diǎn),被預期能成為公認的加密包括金融、電信和政府數字信息的方法。

  AES算法是基于置換和代替的。置換是數據的重新排列,而代替是用一個(gè)單元數據替換另一個(gè)。AES加密例程開(kāi)始是拷貝16字節的輸入數組到一個(gè)名為State(態(tài))的4x4字節矩陣中。AES算法加密過(guò)程如圖4所示。

  AES的主循環(huán)對State矩陣執行4個(gè)不同的操作,規范中被稱(chēng)為SubBytes(字節替換)、ShifiRows(行位移變換)、MixColumns(列混合變換)和AddRoundKey(輪密鑰加)。AES加密算法使用了一個(gè)由種子密鑰字節數組生成的密鑰調度表,AES規范中稱(chēng)之為密鑰擴展例程(KeyExpans-ion)。

  SubBytes例程是一個(gè)代替操作,它將State矩陣中的每個(gè)字節替換成一個(gè)由Sbox決定的新字節,Sbox是初始化的1個(gè)16x16的矩陣。比如State[0,1]的值為0xXY,則被替換為Sbox表中Sbox[X,Y]的值。

  ShifiRows是一個(gè)置換操作,它將State矩陣中的字節向左旋轉。State的第0行向左旋轉0個(gè)位置,State的第1行向左旋轉1個(gè)位置,State的第2行向左旋轉2個(gè)位置,而第3行則向左旋轉3個(gè)位置。

  MixColumns列混合變換過(guò)程,在該變換中將狀態(tài)的每列視為有限域GF(28)中的多項式且被一個(gè)固定的多項式C(x)=的模x4+1,GF代表伽羅瓦域,將其用矩陣形式表示為:

  乘積矩陣中的每個(gè)元素低成本USB接口密鑰的設計方法0是系數陣中第i行元素與State矩陣第j列元素State[j]的乘積之和。這里的加法和乘法都定義在有限域GF(28)上;加法即按位異或,乘法遵循GF(28)上的多項式乘法規則。

  AddRoundKey輪密鑰加過(guò)程,State矩陣中的元素通過(guò)與一個(gè)輪密鑰進(jìn)行逐位異或而得。

  KeyExpansion密鑰擴展例程,用于產(chǎn)生密鑰調度表W[]。例程用到了2個(gè)子例程RotWord和SubWord以及1個(gè)輪常數表Rcon。RotWord將接收1個(gè)4字節的數組并將它們向左旋轉1位,SubWord例程使用替代Sbox對給定的一行密鑰調度表進(jìn)行逐字節替換。該過(guò)程的循環(huán)為:

  2.3 AES加密算法的優(yōu)化

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

  3 USB Key性能測試

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

  4 結束語(yǔ)

  與通用磁盤(pán)介質(zhì)相比,UKev數據只在UKeY內留存,可以防止被非法復制,保證了數據的唯一性,有利于在公共場(chǎng)所使用。

  該方案設計的UKey可完成短時(shí)間內對少量數據的加密,適用于對數據量要求較小的場(chǎng)合,安全性高,攜帶方便。在與電子商務(wù)以及各種以PC為基礎的安全應用上具有其他產(chǎn)品不可替代的優(yōu)越性。



關(guān)鍵詞: USB接口密鑰通用串行總

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>