• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > USB安全鑰功能擴展與優化設計

    USB安全鑰功能擴展與優化設計

    作者: 時間:2009-04-09 來源:網絡 收藏

    1 鑰的完整

    本文引用地址:http://www.czjhyjcfj.com/article/173794.htm

    鑰最早基于的熱插拔、速度以及硬件等優勢,結合加密算法,用于辦公文件、軟件等的存儲和加密。但USB鑰的用武之地遠不止這些,與網絡技術結合,用于時下最時尚的電子商務中,才使其大顯神通。USB安全鑰結合傳統的電子商務核心技術和新興的USB技術,用于實現電子商務中的關鍵技術――身份識別,在未來電子商務領域具有廣闊的應用前景。USB安全鑰集數據加密和數據存儲兩大于一體,推動了電子商務的發展。

    傳統的電子商務或是網絡email等的身份認證基本上是通過兩種方式來實現的。一種是密碼機制,雙方約定好規則。這是目前最為普遍的方式,但是這種方式的嚴重缺點顯而易見。密碼作為最重要的信息,在網絡上傳輸,很容易被黑客攻擊截獲,經常發生密碼被盜。第二種方式是通過第三方的認證,雙方共同信任第三方公司提供的信息,從而進行交易。微軟在.NET計劃中推出的認證服務器就提供這種服務。但是,信譽度建立在第三方上,便會受到第三方的制約,掏錢不說,還要擔心第三方是否會倒閉。USB安全鑰解決了這兩種方式無法解決的問題。

    完整的USB安全鑰系統由三部分組成:安全鑰端,采用Motorola公司帶USB接口的8位MC68HC908JB8構成;PC端,由任何一臺可接入網絡的PC構成,并安裝PC端的用戶身份認證軟件;Server端,任何一臺網絡服務器安裝用于身份認證的Server端軟件。

    USB安全鑰系統結構體系及流程如圖1所示,列出了九個步驟,描述了USB安全鑰從插入PC到完成一次身份識別的完整流程。

    需要強調的是,在上述步驟中,PC僅僅起一個Media(媒介)的作用。任何重要的數據都沒有經過PC,在網絡上傳輸的僅僅是8個字節的隨機數(它只在Server服務器和安全鑰端有意義,只對特定的加密算法和密鑰有意義),被黑客截取也不會有問題。這8個字節的隨機數由網絡Server產生,經由PC傳遞給USB安全鑰加密;加密后的隨機數再由PC不加任何改變地傳遞給Server;Server去調用解密算法解開加密的隨機數,與原來未加密的隨機數比較,如果相同則說明USB安全鑰的持有者身份合理。整個身份認證也告結束。這里,USB安全鑰體現出兩大優點:(1)沒有任何重要的個人信息在網上傳遞,保證了安全性;(2)Server由網絡商自己維護,安全鑰由用戶攜有,雙方的認證沒有依靠第三方,快捷、安全、信譽度高。當然,USB安全鑰還有其他很多優點,例如可以在PC上熱插拔,可以在任何一臺支持USB的PC上工作(現在幾乎所有的PC都應該支持USB)等。

    2 USB安全鑰的技術細節

    USB安全鑰技術,從上可以分為三個模塊:Server端的網絡通訊和加密算法、PC端的和網絡通訊、安全鑰端的和加密算法設計。涉及到的計算機技術包括Socket網絡編程技術、設計技術和加密算法技術。可以說整個設計內容龐雜,技術難度高。因此,設計時就需細化,一步步完成單個功能,再進行聯調,將單個模塊融合成完整的USB安全鑰。

    后期的功能設計也是針對三個模塊,應用三大技術完成。主要是:服務器(Server)端DES加密算法的研究,設計加密算法的,提供給客戶最簡單的API;PC和安全鑰端驅動程序的研究,實現PC端友好的程序界面,動態在線修改存儲在安全鑰內的用戶產品信息。本文將詳細介紹的設計方法,從而揭示USB安全鑰的技術細節。

    2.1 如何設計Server端加密算法及其DLL

    密碼算法(Algorithm)就是指加密函數(Encryption)和解密函數(Decryption)。有加密函數,那么必然有一套與它對應的解密函數。現代密碼學用密鑰技術解決了保密性不夠的問題。密鑰用K表示。K的取值范圍叫做密鑰空間。可以用如下式子來表示加密和解密函數之間的關系:

    DK(EK(M))=M

    其中,E為加密函數,D為解密函數,M為被加密的原文。有一個重要的結論:所有算法的安全性都基于密鑰的安全性,而不是算法細節的安全性。這就是說,算法可以公開,只要密鑰是保密的,則這個算法就是安全的。簡單地說,密鑰就是與密文疊加在一起的一組數。

    作為ANSI的數據加密算法和ISO的DEA-1,成為世界范圍內的標準已經20多年。就目前密碼學的發展情況來說,DES的安全性還是能夠滿足用戶需求的。由于完整的DES算法相當復雜,這里僅簡單介紹算法的結構。

    DES是分組加密算法,以64位為一組對明文進行分組,然后進行加密和解密。加密和解密的算法相同,只是密鑰的編排不同。密鑰長度為56位,通常是64位,但是每字節第8位都用來作為奇偶校驗位,因此實際上只有56位。DES共有16輪,即對同一組明文結合密鑰進行16輪相同的加密過程,最終達到加密要求。

    具體到每一輪的加密過程是這樣的:每一輪中,密鑰位移位,然后從密鑰中選出48位。數據的32位右半部分數據成48位,與密鑰結合。然后再將這48位數據變換為32位,并與數據的32位左半部分相與后作為新的32位右半部分。而32位左半部分基本不變。最后,左右各32位數組合在一起便構成了一輪加密后的64位密文。重復同樣運算16次,便完成了加密/解密功能[4]。


    上一頁 1 2 3 4 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 临江市| 丽江市| 观塘区| 城市| 库伦旗| 乌兰县| 宁津县| 西乌| 左云县| 凤冈县| 西宁市| 桐城市| 略阳县| 久治县| 靖宇县| 屯门区| 郴州市| 友谊县| 扶沟县| 新沂市| 双桥区| 彝良县| 松阳县| 京山县| 丁青县| 和平县| 常山县| 新乡市| 长白| 鹤壁市| 于田县| 洛南县| 龙陵县| 建阳市| 深泽县| 平远县| 靖江市| 伊宁市| 富民县| 岚皋县| 肃宁县|