《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 模擬設(shè)計(jì) > 設(shè)計(jì)應(yīng)用 > 基于MC9S08JS16和AES的USB Key設(shè)計(jì)
基于MC9S08JS16和AES的USB Key設(shè)計(jì)
趙明輝 張紅雨 李 亮
摘要: 提出了一種高安全、高效率、低成本USB接口密鑰的設(shè)計(jì)方法。采用8位USB微控制器MC9S08JS16,通過(guò)其內(nèi)置的全速USB2.0模塊,實(shí)現(xiàn)與PC機(jī)的通信,并采用現(xiàn)在公認(rèn)最安全和高效的高級(jí)加密標(biāo)準(zhǔn)(AES)算法對(duì)輸入數(shù)據(jù)進(jìn)行加密,同時(shí)對(duì)AES在單片機(jī)中的加密程序進(jìn)行了優(yōu)化。實(shí)驗(yàn)表明,USB密鑰可在短時(shí)間內(nèi)完成對(duì)少量數(shù)據(jù)的加密,適用于加密數(shù)據(jù)量較小的場(chǎng)合,電路設(shè)計(jì)簡(jiǎn)單,穩(wěn)定性高,易于攜帶。
Abstract:
Key words :

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

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


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

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

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


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


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

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

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


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

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

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲伊人网站| 久久精品夜色噜噜亚洲aⅴ| 91久久极品少妇xxxxⅹ软件| 宅男精品视频| 日韩午夜电影av| 亚洲欧洲精品一区二区三区不卡 | 蜜乳av另类精品一区二区| 欧美在线|欧美| 亚洲欧美久久久| 亚洲欧美精品伊人久久| 亚洲视频在线观看| 中文精品一区二区三区 | 亚洲精品乱码久久久久| 亚洲黄一区二区三区| 亚洲国产精品va| 亚洲高清免费| 亚洲激情自拍| 亚洲精品一二三| 亚洲乱码国产乱码精品精可以看| 91久久极品少妇xxxxⅹ软件| 亚洲人午夜精品| 亚洲精品视频在线观看网站| 亚洲精品美女久久久久| 亚洲美女在线看| 中文亚洲视频在线| 亚洲欧美在线另类| 欧美一区二区精品在线| 久久精品亚洲一区二区三区浴池| 久久国产欧美精品| 久久夜色精品国产欧美乱| 蜜臀av一级做a爰片久久| 欧美国产一区二区| 欧美午夜寂寞影院| 国产伦精品免费视频 | 亚洲电影在线观看| 最新中文字幕一区二区三区| 日韩视频在线播放| 亚洲在线中文字幕| 欧美激情一区二区三级高清视频 | 国产精品久久久久国产精品日日 | 一片黄亚洲嫩模| 一本色道久久综合亚洲精品按摩| 正在播放日韩| 欧美一区二区视频在线| 亚洲欧洲午夜| 亚洲午夜精品17c| 欧美一区二区高清| 欧美成人免费在线| 欧美日韩一区二区三区在线视频| 国产精品毛片大码女人| 国产综合久久久久久鬼色| 亚洲福利视频网站| 在线午夜精品| 欧美一区三区三区高中清蜜桃| 亚洲国产免费看| 亚洲午夜在线| 久久久国产视频91| 欧美激情一区二区三区不卡| 国产精品亚洲综合| 玉米视频成人免费看| 夜夜嗨av一区二区三区| 欧美一区二区高清| 99精品免费网| 久久国产精品72免费观看| 欧美福利在线观看| 国产精品一区久久久| 亚洲第一精品影视| 亚洲夜晚福利在线观看| 亚洲欧洲精品一区二区三区| 亚洲欧美国产77777| 麻豆91精品| 国产精品亚洲综合一区在线观看| 亚洲第一色中文字幕| 亚洲一区久久久| 亚洲精品视频在线| 欧美中文字幕第一页| 欧美日韩hd| 国外精品视频| 亚洲一区二区成人在线观看| 亚洲三级视频| 久久久777| 国产精品福利在线| 亚洲国产精品www| 欧美一级在线亚洲天堂| 亚洲永久在线观看| 欧美国产一区二区在线观看| 国产一区二区久久| 亚洲视频第一页| 日韩视频精品在线| 久久这里只有精品视频首页| 国产精品一区在线播放| 日韩午夜精品| 亚洲日本va在线观看| 久久久精品网| 国产精品入口麻豆原神| 亚洲美女精品久久| 91久久精品日日躁夜夜躁欧美| 欧美在线视频不卡| 国产精品成人一区二区三区吃奶| 最近看过的日韩成人| 亚洲高清免费| 久久久久久亚洲综合影院红桃 | 一区二区三区四区五区精品视频| 久久躁狠狠躁夜夜爽| 国产日韩一区二区三区| 亚洲午夜久久久久久尤物| 一区二区三区高清在线观看| 欧美成人激情视频免费观看| 韩国在线一区| 久久国产精品99国产精| 欧美一区二区精品在线| 99国内精品久久久久久久软件| 亚洲精品视频啊美女在线直播| 欧美一级理论片| 国产精品久久久久久五月尺| 日韩亚洲欧美在线观看| 99精品欧美一区二区三区综合在线| 男人的天堂亚洲| 一区在线免费| 亚洲人永久免费| 欧美成人高清视频| 亚洲国内精品| 99成人在线| 欧美极品一区| 亚洲精品一区中文| 在线一区免费观看| 欧美日韩一级视频| 一区二区高清| 亚洲午夜精品福利| 国产精品久久久久aaaa樱花| 亚洲午夜精品17c| 欧美一区二区女人| 国产亚洲精品美女| 久久av老司机精品网站导航| 久久久久久久999| 好吊一区二区三区| 亚洲高清在线精品| 欧美激情一区二区三区蜜桃视频 | 先锋影音国产一区| 久久精品一二三区| 狠狠久久婷婷| 亚洲国产91| 欧美激情乱人伦| 99精品视频网| 性久久久久久久久久久久| 国产美女精品一区二区三区| 欧美一级片一区| 玖玖玖国产精品| 最新高清无码专区| 亚洲一区国产| 国产欧美一区二区三区沐欲| 久久精品91久久久久久再现| 欧美成人一区二区| 夜夜爽www精品| 欧美一区二区三区免费大片| 国产综合第一页| 亚洲美女视频网| 国产精品捆绑调教| 欧美专区日韩视频| 欧美精品自拍| 亚洲一区二区久久| 久久人人爽爽爽人久久久| 亚洲经典视频在线观看| 亚洲免费视频成人| 好吊日精品视频| 国产精品99久久久久久久久| 国产精品永久免费在线| 亚洲国产精品一区二区第四页av | 性欧美1819sex性高清| 韩国女主播一区二区三区| a91a精品视频在线观看| 国产乱码精品一区二区三区av | 亚洲欧美日韩国产成人精品影院| 国产日韩欧美精品一区| 亚洲激情第一页| 欧美日韩中文| 欧美一区二区三区视频免费播放| 欧美v亚洲v综合ⅴ国产v| 一区二区三区久久网| 久久久蜜桃精品| 亚洲人成在线观看| 久久国内精品视频| 亚洲黄色在线看| 欧美一区二区三区男人的天堂| 亚洲国产黄色| 欧美在线免费观看视频| 91久久综合| 久久久水蜜桃| 一区二区三区四区国产精品| 农村妇女精品| 亚洲欧美韩国| 欧美日韩一区二区三区在线看| 亚洲国产mv| 国产欧美亚洲精品| 中文有码久久| 亚洲国产一区二区三区a毛片| 欧美一区二区成人| 99精品国产福利在线观看免费| 美女精品视频一区| 午夜视频一区在线观看|