嵌入式設備身份認證系統(tǒng)培訓課程_第1頁
嵌入式設備身份認證系統(tǒng)培訓課程_第2頁
嵌入式設備身份認證系統(tǒng)培訓課程_第3頁
嵌入式設備身份認證系統(tǒng)培訓課程_第4頁
嵌入式設備身份認證系統(tǒng)培訓課程_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、目目 錄錄摘 要:.1ABSTRACT.2第 1 章 緒論.31.1研究背景.31.2 國內外研究狀況.31.2.1 古典密碼學.41.2.2 現(xiàn)代密碼學.41.2.3 總線介紹.91.3 小結 .11第 2 章 相關算法的描述.122.1 分組密碼.122.1.1 分組密碼的基本原理.122.1.2 數(shù)據加密標準(DES).132.1.3 高級加密標準(AES).192.2 HASH 函數(shù).232.2.1 Hash 函數(shù)的性質.232.2.2 基于分組密碼的 Hash 函數(shù).242.2.3 Hash 函數(shù) MD5.262.2.4 SHA-1 散列算法.30第 3 章 嵌入式設備身份驗證系統(tǒng)的

2、實現(xiàn)方案.333.1 系統(tǒng)架構.333.1.1 總體設計方案.333.1.2 協(xié)議幀及其說明.343.1.3 功能模塊圖及其說明.343.2 開發(fā)板介紹和串口通信函數(shù)介紹.383.2.1 開發(fā)板介紹.383.2.2 串口通信 API 介紹.403.3 核心代碼及其流程.403.3.1 系統(tǒng)的注冊流程和代碼.403.3.2 數(shù)據包認證碼生成流程.43結 束 語.45參考文獻.46致 謝.47嵌入式設備身份認證系統(tǒng)嵌入式設備身份認證系統(tǒng)摘摘 要要:在現(xiàn)實世界中,身份欺詐是種常見現(xiàn)象,因此常常需要證明個人的身份,同樣地,在數(shù)據通信過程中也存在身份的欺詐,通信和數(shù)據系統(tǒng)的安全性很大程度上取決于能否驗證

3、設備或終端的真實身份。而這一功能通常都要通過密碼學方法來完成。所以,本文首先介紹了密碼學的基礎知識和其發(fā)展歷程,然后在此基礎上,詳細分析了幾個可用于系統(tǒng)設計的重要算法,包括DES、SHA-1和MD5等算法。利用以上算法的特點,本文提出了可用于身份認證系統(tǒng)實現(xiàn)的具體方案,利用該方案可實現(xiàn)嵌入式設備通信過程中交互式的身份認證,從而保證嵌入式設備在通信過程中的安全性。關鍵詞關鍵詞:身份認證;密碼學;嵌入式設備。The Authentication System of Embedded Device Abstract: In the real world, identity fraud is a co

4、mmon phenomenon, therefore theres a frequecy need to prove the identity of individuals, there is also identity fraud in data communication. The security of communication and data system mainly depends on the identity verification of the devices or terminators. And the verification is usually accompl

5、ished by methods of cryptography. So the basic knowledge and development of cryptography are firstly discussed in the paper. Secondly, a number of important algorithms that could be used in the design of system is analyzed, including DES, SHA-1 and MD5 algorithm. Baseing on these algorithms, a progr

6、am that can be applied to the authentication system of embedded device is presented in the article. The program can used to relize the interaction authentication of embedded device, so as to ensure the security of the communications of embedded device.Keywords: Authentication; Cryptography; Embedded

7、 Devices.第 1 章 緒論1.1 研究背景隨著科技的飛速發(fā)展,安全性逐漸成為一個潛在的巨大問題。安全性是一個涉及面很廣泛的問題,其中也會涉及到是否構成犯罪行為的問題。在其最簡單的形式中,它主要關心的是確保無關人員不能讀取,更不能修改傳送給其他接收者的信息。此時,它關心的對象是那些無權使用,但卻試圖獲得服務的人。安全性也處理合法消息被截獲和重播的問題,以及發(fā)送者是否曾發(fā)送過該條消息的問題。 大多數(shù)安全性問題的出現(xiàn)都是由于有惡意的人試圖獲得某種好處或損害某些人而故意引起的??梢钥闯霰WC安全不僅僅是使它沒有編程錯誤。它包括要防范那些聰明的,通常也是狡猾的、專業(yè)的,并且在時間和金錢上是很充足、

8、富有的人。同時,必須清楚地認識到,能夠制止偶然實施破壞行為的敵人的方法對那些慣于作案的老手來說,收效甚微。 安全性可以被粗略地分為 4 個相互交織的部分:保密、鑒別、反拒認以及完整性控制。保密是保護信息不被未授權者訪問,這是人們提到的安全性時最常想到的內容。鑒別主要指在揭示敏感信息或進行事務處理之前先確認對方的身份。反拒認主要與簽名有關。保密和完整性通過使用注冊過的郵件和文件鎖來實現(xiàn)。1.2 國內外研究狀況隨著信息技術的發(fā)展與應用,信息安全的內涵在不斷的延伸,從最初的信息保密性發(fā)展到信息的完整性、可用性、可控性和不可否認性,進而又發(fā)展為攻(攻擊)、防(防范)、測(檢測)、控(控制)、管(管理)

9、、評(評估)等多方面的基礎理論和實施技術。信息安全是一個綜合、交叉學科領域,它要綜合利用數(shù)學、物理、通信和計算機諸多學科的長期知識積累和最新發(fā)展成果,進行自主創(chuàng)新研究,加強頂層設計,提出系統(tǒng)的、完整的,協(xié)同的解決方案。與其他學科相比,信息安全的研究更強調自主性和創(chuàng)新性,自主性可以避免“陷門”,體現(xiàn)國家主權;而創(chuàng)新性可以抵抗各種攻擊,適應技術發(fā)展的需求。就理論研究而言,一些關鍵的基礎理論需要保密,因為從基礎理論研究到實際應用的距離很短?,F(xiàn)代信息系統(tǒng)中的信息安全其核心問題是密碼理論及其應用1-5,其基礎是可信信息系統(tǒng)的構作與評估。密碼學從其發(fā)展6-11來看,可分為古典密碼學與現(xiàn)代密碼學12,古典密

10、碼以字符為基本加密單元的密碼,以及現(xiàn)代密碼以信息塊為基本加密單元的密碼。1.2.1 古典密碼學 古典密碼有著悠久的歷史,在電報特別是無線電報發(fā)明以后,得到了深入研究。常用的有單表密碼和多表密碼,其思路都是改變字母表中字母的順序。其中單表密碼在古代就已經得到了很長的發(fā)展,到了現(xiàn)代,密碼學有了一個奇妙的發(fā)展歷程,當然,密而不宣總是扮演主要角色,如下圖 1.1 所示為一般的數(shù)據加密模型 圖1.1一般數(shù)據加密模型明文 X 用加密算法 E 和加密密鑰 K 得到密文 Y=Ek(X)。在傳送過程中可能出現(xiàn)密文截取者。到了收端,利用解密算法 D 和解密密鑰 K 解出明文為 Dk(Y)=Dk(Ek(X)=X。其

11、中,截取者也可稱為攻擊者或入侵者。在這里,我們假定加密密鑰和解密密鑰都是一樣的。但實際上,它們可以是不一樣的(即使不一樣,二者之間也具有某種關聯(lián)性)。密鑰通常是由一個密鑰源提供。當密鑰需要向遠地傳送時,一定要通過另一個安全信道。密碼編碼學是密碼體制的設計學,而密碼分析學則是在未知密鑰的情況下,從密文推演出明文或密鑰的技術。密碼編碼學與密碼分析學合起來即為密碼學。 早在幾千年前人類就已經有了思想和方法。但直到 1949 年,創(chuàng)始人香農(C.E.Shannon)發(fā)表著名文Communication Theory of Secrecy Systems,論證了一般經典加密方法得到的密文幾乎都是可破的。

12、密碼學的研究曾面臨著危機。但從 20 世紀 60年代起,隨著電子技術。計算技術的迅速發(fā)展以及結構代數(shù)??捎嬎阈院陀嬎銖碗s性理論等學科的研究,密碼學又進入了一個新的發(fā)展時期。在 20 世紀 70 年代后期。美國的數(shù)據加密標準 DES(Data Encryption Standard)和公開密鑰密碼體制(public key crypto-system)的出現(xiàn),成為近代密碼學發(fā)展史上的兩個重要里程碑。1.2.2 現(xiàn)代密碼學按現(xiàn)代密碼學13-14的觀點大致可被分為對稱密碼學和非對稱密碼學。1、對稱鑰匙密碼對稱密碼15學指的是傳送方與接收方都擁有相同的鑰匙,直到1976年這都還是唯一的公開加密法。對稱

13、密碼算法有時也叫傳統(tǒng)密碼算法,就是加密密鑰能夠從解密密鑰中推算出來,反過來也成立。設密鑰為 K。則加解密過程為:加密:EK(M)=C (1.1)解密:DK(C)=M (1.2)在此算法中,加、解密雙方所用的密鑰都有保守秘密,由于計算速度快而廣泛應用于對大量數(shù)據如文件的加密過程中,如 RD4和 DES.。對稱密碼體制從加密模式上可分為序列密碼和分組密碼兩大類。(1)序列密碼序列密碼一直作為軍事和外交場合使用的主要密碼技術之一,它的主要原理是通過有限狀態(tài)隨機產生性能優(yōu)良的偽隨機序列,使用該序列加密信息流,得到密文序列。序列密碼的優(yōu)點是錯誤擴展小、速度快、利于同步、安全程度高。(2)分組密碼分組密碼

14、學將明文分成固定長度的組。用同一密碼和算法對每一塊加密,輸出也是固定長度的密文。對稱密碼體制存在的最主要的問題是,由于雙方都是使用相同的密鑰,因此在發(fā)送和接受之前必須完成密鑰的分發(fā),所以密鑰的分發(fā)便成了該加密體系中最薄弱、也是風險最大的環(huán)節(jié),所使用的手段均很難安全地完成此項工作,這樣,密鑰更新的周期加長,給他人破譯密鑰提供了機會。在史上破獲他國情形不乎兩種方式:一種是在敵方更換“密碼本”的過程中截獲對方密碼本;另一種是敵人密鑰變動周期太長,被長期跟蹤,找出規(guī)律從而破解。在對稱算法中,盡管由于密鑰強度增強,跟蹤找出規(guī)律破解密鑰的機會大大減少,但密鑰分發(fā)的困難問題幾乎無法解決。例如,設有 n 方參

15、加與通信,若 n 方都采用同一個對稱密鑰,一但密鑰被破解,整個系統(tǒng)就崩潰,若采用不同的對稱密鑰則需 n(n-1)個密鑰,密鑰數(shù)與參與通信的人數(shù)的平方數(shù)成正比,可見大系統(tǒng)的密鑰的管理幾乎成為不可能。(3)利用對稱密碼體制實現(xiàn)數(shù)字簽名許多人提出了利用對稱密鑰加密算法進行數(shù)字簽名的方法,認為非對稱加密算法的安全性不如那些“有保證的”對稱密鑰加密算法高。而且,大多數(shù)非對稱加密算法的運算量都是很大。Lamport 發(fā)明了一種簽名方法,并且由 Diffie 和 Hellman 做了具體描述,所以有時又稱其為 Lamport-Diffie 簽名。這種簽名方法的基礎是利用一組簽名。密鑰的個數(shù)由報文分組長度決定

16、。設報文分組長度為 nbit,則需要2n 個簽名密鑰,設這2n 個簽名密鑰為:1,1,2,2n,n。這些密鑰由發(fā)方秘密保存。對簽名的驗證信息由2n 個密鑰產生,并且要公開,它們的選擇方法是。隨機選擇2n 個數(shù):1,U1,2,U2n,Un。利用簽名密鑰對這2n 個數(shù)進行一次加密運算,又得到另一組2n 個數(shù):1,V1,2,V2n,Vn。它與第一組數(shù)的關系是i=E1(i),Vi=E1(Ui),i=1,2,3n (1.3)同時將發(fā)方選取的 1,U1,2,U2n,Un和計算上得到的2n 個數(shù)1,V1,2,V2n,Vn傳到發(fā)端。發(fā)方的簽名過程如下:檢查待發(fā)報文分組 M 第一位,如果為0那么就取 1,如果為

17、1就取 1;然后再取 M 的第二位進行檢查,如果為0那么就取 2,如果為1就取 2;如此繼續(xù)下去,直到報文的 n 個 bit 全部檢查完畢。最后形成的簽名由 n 個密鑰組成,例如,M=01101101001,那么對它的簽名是:1234567891011。收方對這個簽名進行驗證時,首先檢查 M0第一位,如果為0就認為簽名中的第一組信息為密鑰 1;如果為1就認為簽名中的第一組信息為 1;如此繼續(xù)下去,收方就會得到 n 個密鑰,由于收方由發(fā)放的驗證信息(i,Vi,i,Ui, i=1,2,n)所以收方就可以利用得到的 n 個密鑰檢驗驗證信息,如果滿足 i=Ei(i)或 Vi=Ei(Ui),i=1,2,

18、n 那么收方就認為該報文是由確定的發(fā)方發(fā)送過來的,否則就認為發(fā)方身份不確定。取上式或下式進行驗證取決于 M 各位的值,如果為0,就驗證上式,如果為1就驗證下式。這種方法的優(yōu)點是安全性比較好,因為它是逐位進行簽名的,只要有一位改動,收方得到的簽名就不對了。但是,應當看到,這種方法有其嚴重的缺點:1)簽名太長,如果每個簽名密鑰的長度為 Mbit,那么對一個長度為 nbit 的報文進行簽名將得到一個 mnbit 長的簽名。2)簽名密鑰及相應的驗證信息只能用一次,因為重復使用相同的簽名密鑰是極不安全的。2、非對稱鑰匙密碼學非對稱鑰匙密碼學,相對于對稱鑰匙密碼學,又稱公鑰密碼學,最大的特點在于加密與解密

19、使用不同的鑰匙。公開密鑰算法也稱非對稱算法,加密密鑰不同于解密密鑰,而且解密密鑰不能根據加密密鑰計算出來。加密密鑰叫做公開密鑰(簡稱公鑰),解密密鑰叫做私人密鑰(簡稱私鑰)。公鑰:K1 加密: EK1(M)=C (1.4)簽名: DK2(M)=C (1.5)私鑰:K2 解密: DK2(C)=M (1.6)驗簽: EK1(C)=M (1.7)在對稱密碼學中,加密和解密使用相同的鑰匙,也許對不同的信息使用不同的鑰匙,但都面臨鑰匙管理的難題。由于每對通訊方都必須使用異于他組的鑰匙,當網絡成員的數(shù)量增加時,鑰匙數(shù)量成二次方增加。更尷尬的難題是:當安全的通道不存在于雙方時,如何建立一個共有的鑰匙以利安全

20、的通訊?如果有通道可以安全地建立鑰匙,何不使用現(xiàn)有的通道。這個雞生蛋、蛋生雞的矛盾是長年以來密碼學無法在真實世界應用的阻礙。除了加密外,公開鑰匙密碼學最顯著地成就是實現(xiàn)了數(shù)字簽名。數(shù)字簽名名符其實是普通簽章的數(shù)字化,他們的特性都是某人可以輕易制造簽章,但他卻難以仿冒。數(shù)字簽名可以永久地與被簽署信息結合,無法自信息上移除。數(shù)字簽名大致包含兩個算法:一個是簽署,使用私密鑰處理信息或信息的雜湊而產生簽章;另一個是驗證,使用公開鑰匙驗證簽章的真實性。RSA 和 DSA 是兩種最流行的數(shù)字簽名機制。數(shù)字簽名是公開鑰匙基礎建設以及許多網絡安全機制的基礎。公鑰密碼體制有兩種基本的模型,一種是加密模型圖1.2

21、,一種是認證模型圖1.3。以下是兩種模型的示意圖:Alice加密Bob解密明文密文明文Bob 的私鑰Bob 的公鑰圖1.2加密模型Alice加密Bob解密明文密文明文Bob 的私鑰Bob 的公鑰圖1.3 解密模型(1)公鑰密碼體制有如下的優(yōu)點:1)可以支持眾多的安全服務。如數(shù)據的保密性、完整性、源認證、不可抵賴性和數(shù)字簽名等。2)減化了密鑰發(fā)布和管理的難度。密鑰對可以由通信實體自己產生,然后將公鑰進行公開發(fā)布,而私鑰妥善保留,這樣私鑰根本就沒有在外界流通過,可以確保私鑰的安全。而公鑰密碼技術也不需要事先各方建立關系以交換密鑰,只要取得了對方的公鑰既可以進行保密傳輸。這樣公鑰系統(tǒng)在解決密鑰的保密

22、性的同時,也解決了密鑰分發(fā)的問題。3)非常適合于分布式系統(tǒng)中的使用。因為它需要分發(fā)的密鑰的數(shù)目與參與者的數(shù)目一樣,這樣在參與者數(shù)目很大的情況下,公鑰技術仍表現(xiàn)出良好的性能。(2)公鑰密碼體制的缺點:1)與對稱密碼算法相比,非對稱(即公鑰)密碼算法相對加解密速度比較慢,它們可能要比同等強度的對稱密碼算法慢上10倍到100倍。當加密較短的消息時,這種速度上的差異表現(xiàn)的并不十分明顯,但若加密較長的消息,非對稱密碼的速度是無法忍受的,所以非對稱算法不會應用在需要大規(guī)模加密的情況或用于加密實時消息,如對實時語音信息加密。2)要想讓非對稱密鑰算法取得與對稱密鑰算法相同的安全強度,就必須使用更長的密鑰(3)

23、公鑰加密提供安全服務公鑰加密可以提供眾多的安全服務,如數(shù)據的保密性、完整性、消息源認證(身份認證)、抗抵賴服務、進行密鑰發(fā)布及進行數(shù)字簽名等,以下是這些服務的簡介。1)消息保密性服務顯然,公鑰密碼系統(tǒng)可以用來加密消息,加密的強度是由所使用的特定算法和所采用的密鑰長度所決定的。通常,每個算法的健壯性和所使用的陷門單向函數(shù)的類型直接相關。這一服務的前提是:使用接收者的公鑰加密的消息,只有使用接收者的私鑰才能解密。由于接受者的公鑰是公開的,因此任何人都可以用接收者的公鑰解密消息,然后發(fā)送給接收者;而只有接收者才知道自己的私鑰,因此只有接收者自己才能解密發(fā)送給他的密文。這便保證了消息的安全傳遞,即實現(xiàn)

24、了消息的保密性。實現(xiàn)保密性時使用的加密模型只能保證消息的保密性而不能同時認證發(fā)送者的身份。2)消息源認證(身份認證)服務這個服務要求發(fā)送者使用自己的私鑰進行消息加密,而接收者使用發(fā)送者的公鑰進行解密。因為私鑰只有發(fā)送者自己知道,所以只要能用發(fā)送者的公鑰解密,則便能自動對發(fā)送者的身份進行認證16。這種利用公鑰進行身份認證的模型,但并不能同時保證消息的保密性。3)消息完整性服務使用可以獲得的公鑰進行加密可以實現(xiàn)數(shù)據傳輸?shù)臋C密性,但不能同時保證消息的完整性。因為,竊聽者可以中途攔截密文,不讓其發(fā)送到接收者;而把另外一個消息用接收者的公鑰加密,再發(fā)送給接收者,這時接收者會誤以為被替換的消息是來自真實的

25、消息源的。這就破壞了消息的完整性。而用另一種方法,即用發(fā)送者的私鑰加密,接收者用發(fā)送者的公鑰解密,這樣雖然可以保證消息的完整性,但卻無法同時保證消息的機密性。要想同時保證消息的完整性、機密性和消息源認證可以使用數(shù)字簽名和公鑰的混合方案。4)抗抵賴服務根據公鑰密碼學的基本前提,私鑰只是所有者具有,因此能夠使用相關公鑰進行解密,那么所有者就無法抵賴了。然而,若私鑰丟失或被破解,那么所有者就可以否認。對于強度較高的抗抵賴服務來說,私鑰從來都不會泄露出去,就連所有者都無法知道??梢员Wo私鑰的擁有方篡改硬件對于這一點非常重要,如智能卡等。5)密鑰發(fā)布服務公鑰密碼學可以用來在不安全的公網上建立密鑰連接。簡

26、單的說,現(xiàn)在會話密鑰成了要加密的消息內容,會話密鑰用對方的公鑰來加密,接受方用自己的私鑰解開消息內容,然后雙方都獲得了相同的會話密鑰,這時便建立了密鑰連接。注意,這時,需要對發(fā)送者的身份進行嚴格的認證,以防止密鑰欺騙。(4)利用非對稱密碼體制進行數(shù)字簽名 設 E 為加密算法,D 為解密算法,Ke 為加密密鑰,Kd 為解密密鑰,對于非加密算法 KeKd,并且在已知 Ke 與 Kd 兩者中的任意一個時,要想獲得另一個從計算上是不可能的。利用這種算法產生簽名的過程如下: 設 A 要向 B 發(fā)送一份報文 M,該報文由兩部分組成,一部分稱作報頭(用 H 表示),它包括發(fā)送方的身份,接收方的身份,發(fā)送序號

27、等;另一部分是要發(fā)送的報文數(shù)據信息(用 T 表示)。簽名者必須將他的簽名驗證信息公開,在這里將加密密鑰 Ke 公開,而將解密密鑰 Kd 保密。A 對 M 進行簽名時,利用它的解密密鑰 Kd 對 T 進行一次解密運算 S=Dkd(T) (1.8)將簽名后的報文Ms=(H,S) (1.9)發(fā)送給 B,B 收到后做如下操作以驗證簽名:1)根據 H 中的信息識別出發(fā)送者的身份2)在公開的簽名信息薄中查出 A 用于簽名驗證的加密密鑰 Ke3)利用查到的 Ke 對“S”進行一次加密運算 T=Eke(S);4)檢查 T是否正確。如果 T是正確的,那么 B 就可以斷定確實 T是由 A 發(fā)送過來的數(shù)據,因為只有

28、A 才知道 Kd 并且還保證在已知 Ke 的前提下任何人都無法從計算上得到 Kd.如果 T不正確,說明消息在傳輸途中被修改過。這樣。這種方法就完全滿足了對數(shù)字簽名的兩個要求。1.2.3 總線介紹1、CAN 總線CAN 是控制網絡 Control Area Network 的簡稱,最早由德國 BOSCH 公司推出,用于汽車內部測量與執(zhí)行部件之間的數(shù)據通信。其總線規(guī)范現(xiàn)已被 ISO 國際標準組織制訂為國際標準,得到了 Motorola、Intel 、Philips、Siemence、NEC 等公司的支持,已廣泛應用在離散控制領域。CAN 支持多主點方式工作,網絡上任何節(jié)點均可在任意時刻主動向其它節(jié)

29、點發(fā)送信息,支持點對點、一點對多點和全局廣播方式接收/ 發(fā)送數(shù)據。它采用總線仲裁技術,當出現(xiàn)幾個節(jié)點同時在網絡上傳輸信息時,優(yōu)先級高的節(jié)點可繼續(xù)傳輸數(shù)據,而優(yōu)先級低的節(jié)點則主動停止發(fā)送,從而避免了總線沖突。已有多家公司開發(fā)生產了符合 CAN 協(xié)議的通信芯片,如 Intel 公司的82527 ,Motorola 公司的 MC68HC05X4, Philips 公司的82C250 等。另外,插在 PC 機上的 CAN 總線接口卡,具有接口簡單、編程方便、開發(fā)系統(tǒng)價格便宜等優(yōu)點。2、RS-232總線RS-232是一條串行外總線,其主要特點是:所需傳輸線比較少,最少只需要三條線(一條發(fā)、一條收、一條地

30、線)即實現(xiàn)全雙工通信。傳輸距離遠,用電平傳送為15米,電流環(huán)傳送可達千米。有多種可供選擇的傳送速率,例如300、600、1200、2400、4800、9600、19200波特等。采用非歸零碼負邏輯工作,電平-3V 為邏輯1,而電平+3V 為邏輯0,具有較好的抗干擾性。3、RS-485總線針對 RS-232-C 的不足,出現(xiàn)了一些新的接口標準, RS485的電氣標準就是其中的一種。RS485是美國電氣工業(yè)聯(lián)合會(EIA)制定的利用平衡雙絞線作傳輸線的多點通訊標準。它采用差分信號進行傳輸;最大傳輸距離可以達到1.2 km;最大可連接32個驅動器和收發(fā)器;接收器最小靈敏度可達200 mV;最大傳輸速

31、率可達2.5 Mb/s。由此可見,RS485協(xié)議正是針對遠距離、高靈敏度、多點通訊制定的標準。 RS-485是的在 RS-422的基礎上發(fā)展起來的,能實現(xiàn)一點對多點的通信,也能實現(xiàn)多點雙向通信,但同一時刻只能有一個發(fā)送器,其余的為接受器,即一主多從的通信方式。目前市場上可供選擇的 RS-485總線芯片很多,其中包括可支持128個節(jié)點的 MAX1487和支持400個節(jié)點的 SP485R。利用該芯片可直接組成簡單的通信網絡。RS-485收發(fā)器采用平衡發(fā)送、差分接收的方式,即在發(fā)送端將 TTL 信號轉換成差分信號輸出,在接收端,接收器將差分轉換成 TTL 信號。因此具有較高的共模抑制能力。同時接收器

32、具有較高的靈敏度,能檢測低達200mV 的電壓,數(shù)據傳輸可達1200m。如降低數(shù)據傳輸速率,則通信距離可更長。當通信速率為1200bps 時,理論距離可達15km.當傳輸距離超過300m 時,在網絡的二端需接入120 的匹配電阻,以減少因阻抗不匹配而引起的反射,吸收噪聲,從而有效抑制噪聲干擾。1.3 小結本章主要簡單地敘述了密碼學的發(fā)展歷史和狀況,從古典密碼學談到現(xiàn)代密碼學的出現(xiàn),對現(xiàn)代密碼學我們又做了很多分類,如對稱密碼學和非對稱密碼學,對對稱密碼學與非對稱密碼學在不同的領域的應用進行了一定的闡述,尤其是其在數(shù)字簽名方面的應用,分析通過二者來實現(xiàn)身份認證的可行性,本文是以對稱密碼學的思想作為

33、最基礎,利用對稱密碼學具有相同的加密密鑰和解密密鑰來實現(xiàn)嵌入式設備與主機之間的通信,只有擁有該密鑰的用戶才是合法用戶,其次在本章中,還有比較性地介紹了一下非對稱密碼學,在當今有很多的認證系統(tǒng)都是采用了非對稱密碼學的思想,對兩者在不同的領域應用做了個簡單的敘述,本章最后對本次設計牽涉到的幾種總線做了個簡單的介紹,通過本章可以對本次設計所牽涉到的內容做個大致的了解,當然很多內容還會在后面的章節(jié)中做更加詳細的介紹。第 2 章 相關算法的描述2.1 分組密碼2.1.1 分組密碼的基本原理設 n 是一個分組密碼17的分組長度,k 是密鑰, x=x0 x1x2xn-2xn-1 (2.1)為明文,其中 xi

34、GF(2),0in-1, y=y0y1y2ym-2ym-1 (2.2)為相應的的密文,其中 yj GF(2),0jm-1,則 y=Ek(x), x=Dk(y), (2.3)其中 Ek和 Dk分別表示在密鑰 k 控制下的加密和解密變換,如果 nm,則分組密碼對明文加密后有數(shù)據擴展,如果 nm,則分組密碼對明文加密后有數(shù)據壓縮。如果n=m,則分組密碼對明文加密后既無數(shù)據擴展也無數(shù)據壓縮,我們通??紤]的分組密碼都是這種既無數(shù)據擴展也無數(shù)據壓縮的分組密碼。對于一個分組長度為 n 密鑰長度為 t 的分組密碼,我們通常假定每個明文分組和密文分組都是 GF(2)n中的向量。GF(2)N=GF(2)GF(2)

35、 總共 n 個 GF(2)相乘表示 GF(2)上的 n 維向量空間。1、置換定義:設 S 是一個有限集合, 是從 S 到 S 得一個映射,如果對任意 u,vS,當uv 時,(u)(v),則稱 為 S 上的一個置換對于一個分組長度為 n 的分組密碼,不同的密鑰應該對應不同的加密和解密變換,給定密鑰 k,對于任意的 u,vGF(2)n,如果 uv,則一定有 Ek(u)=Ek(v) (2.4)這是因為如果 Ek(u)=Ek(v),則在解密時將難以準確地恢復明文。因此,對于給定的密鑰 k,加密變換 Ek 為 GF(2)n上的一個置換,解密變換 Dk 為 Ek 的逆置換。設計一個分組長度為 n 的分組密

36、碼就是構造 GF(2)n上的置換。不同的密鑰應該對應不同的置換。如果密鑰長度為 t,則密鑰量為 2t,因為 GF(2)n上共有 2n!個不同的置換,所以必須有 2t2n!。為便于密鑰管理,通常 t 不能太大。當然,密鑰長度 t 也不能太小,難以抵抗對密鑰的窮舉搜索攻擊。在設計分組密碼時,另外一要求是加密變換和解密變換都能夠容易地計算,并且便于軟件和硬件實現(xiàn)。2、擴散與混淆 擴散和混淆是 C.E.Shannon 提出的設計密碼體制的兩種基本方法,其目的是為了抵抗對手對密碼體制的統(tǒng)計分析,在分組密碼的設計中,充分利用擴散和混淆,可以有效地抵抗對手從密文的統(tǒng)計特性推測明文和密鑰,擴散和混淆是現(xiàn)代分組

37、密碼的設計基礎。所謂擴散就是讓明文中的每一位影響密文中的許多位,或者說讓密文中的每一位受明文的許多位的影響,這樣可以隱蔽明文的統(tǒng)計特性,當然,理想的情況是讓明文中的每一位影響密文中的所有位,或者讓密文中的每一位受明文中的所有位的影響。所謂混淆就是將密文與密鑰之間的統(tǒng)計關系變得盡可能復雜,使得對手即使獲取了關于密文的一些統(tǒng)計特性 ,也無法推測密鑰,使得復雜的非線性代替變換可以達到比較好的混淆效果,而簡單的線性代替變換得到的混淆效果則不理想。2.1.2 數(shù)據加密標準(DES)1、DES 概述數(shù)據加密算法(Data Encryption Algorithm,DEA)的數(shù)據加密標準(Data Encr

38、yption Standard,DES)是規(guī)范的描述,它出自 IBM 的研究工作,并在 1997 年被美國政府正式采納。它很可能是使用最廣泛的密鑰系統(tǒng),特別是在保護金融數(shù)據的安全中,最初開發(fā)的 DES 是嵌入硬件中的。通常,自動取款機(Automated Teller Machine,ATM)都使用 DES。DES 使用一個 56 位的密鑰以及附加的 8 位奇偶校驗位,產生最大 64 位的分組大小。這是一個迭代的分組密碼,使用稱為 Feistel 的技術,其中將加密的文本塊分成兩半。使用子密鑰對其中一半應用循環(huán)功能,然后將輸出與另一半進行“異或”運算;接著交換這兩半,這一過程會繼續(xù)下去,但最后

39、一個循環(huán)不交換。DES 使用 16 個循環(huán)。攻擊 DES 的主要形式被稱為蠻力的或徹底密鑰搜索,即重復嘗試各種密鑰直到有一個符合為止。如果 DES 使用 56 位的密鑰,則可能的密鑰數(shù)量是 256個。隨著計算機系統(tǒng)能力的不斷發(fā)展,DES 的安全性比它剛出現(xiàn)時會弱得多,然而從非關鍵性質的實際出發(fā),仍可以認為它是足夠的。不過,DES 現(xiàn)在僅用于舊系統(tǒng)的鑒定,而更多地選擇新的加密標準高級加密標準(Advanced Encryption Standard,AES)。DES 的常見變體是三重 DES,使用 168 位的密鑰對資料進行三次加密的一種機制;它通常(但非始終)提供極其強大的安全性。如果三個 5

40、6 位的子元素都相同,則三重DES 向后兼容 DES。DES 處理的明文分組長度為 64 位,密文分組長度也是 64 位,使用密鑰長度為 56位,DES 解密過程和加密相似,解密時使用與加密相同的算法,不過子密鑰的使用次序要反過來,DES 的整個體制是公開,系統(tǒng)安全性完全靠密鑰的保密。2、DES 的一般設計準則(1)隨機性:輸出與輸入間是無規(guī)律。(2)雪崩效應:改變輸入中的 1 位,平均要導致一半的輸出位被改變。(3)完全性:每個輸出位都是所有輸入位的一個復雜函數(shù)(4)非線性性:加密函數(shù)對任何密鑰值都是非仿射的(即非線性的)。(5)相關免疫性:輸出是統(tǒng)計上獨立于任何輸入位的子集。不會與輸入位的

41、任何子集相關。DES 中重復交替使用代替運算 S 和換位運算 P 兩種變換,以達到混亂和擴散目的。3、DES 加密原理DES 算法的加密過程經過了兩個階段(如圖 2.1 所示):首先,64 位的明文在一個初始置換 IP 后,比特重排產生了經過置換的輸入,明文組被分成右半部分和左半部分,每部分 32 位,以 L0和 R0表示。接下來的階段是由對同一個函數(shù)進行 16 次循環(huán)組成的,16 輪迭代稱為乘積變換或函數(shù) F,這個函數(shù)本身既包含有代替函數(shù),將數(shù)據和密鑰結合起來,最后 1 輪的輸出由 64 位組成,其左邊和右邊兩個部分經過交換后就得到預輸出。最后階段,預輸出通過一個逆初始置換 IP-1算法就生

42、成了 64 位的密文結果。64 位明文初始置換 IP乘積變換逆初始置換 IP-164 位密文 圖 2.1 DES 加密處理略圖DES 的詳細加密計算如下圖 2.2 所示(1)初始置換(IP)與逆初始置換(IP-1)初始置換表和逆初始置換表分別如圖 2.3 和圖 2.4 所示,表中的數(shù)字代表初始置換或逆初始置換時 64 位輸入分組的位序號,表中的位置代表置換后輸出的位順序。很容易看出:這兩個置換是彼此反向的。如經過 IP 置換后,輸入消息的第 1 位被置換到第 40 位的位置輸出,再經過逆初始置換后,第 40 位又回到了第 1 位的位置。 K1K2Kn輸入初始置換 IP L0 R0 L1=R0R

43、1=L0F(R0,K1) L2=R1R2=L0F(R1,K2) L15=R14R15=L14F(R14,K15)R16=L15F(R15,K16)L16=R15逆初始置換 IP-1 輸出FFFF圖 2.2 DES 的加密計算流程初始置換(IP)表中的位序號表現(xiàn)出這樣的特征;整個 64 位按 8 行 8 列排列:最右邊一列按 2,4,6,8 和 1,3,5,7 的次序排列:往左邊各列的位序號依次為緊鄰其右邊一列各位序號加 8。逆初始置換(IP-1)則是初始置換的逆過程。相應地,表中位序號表現(xiàn)出這樣的特征:整個 64 位依然按 8 行 8 列排列;左邊第二列按 8,7,6,5,4,3,2,1 的次

44、序排列:往右邊隔一列的位序號依次為當前列各位序號加 8;認為最右邊一列的隔列位最左邊一列。輸入 64 位輸入 64 位58 50 42 34 26 18 10 260 52 44 36 28 20 12 462 54 46 40 32 24 16 864 56 48 40 32 24 16 857 49 41 33 25 17 9 159 51 43 35 27 19 11 361 53 45 37 29 21 13 563 55 47 39 31 23 15 7輸出(64 位)40 8 48 16 56 24 64 3239 7 47 15 55 23 63 3138 6 46 14 54

45、22 62 3037 5 45 13 53 21 61 2936 4 44 12 52 20 60 28 35 3 43 11 51 19 59 27 34 2 42 10 50 18 58 2633 1 41 9 49 17 57 25輸出(64 位) 圖 2.3 初始置換(IP) 圖 2.4 逆初始置換(IP-1)(2)每個循環(huán)的詳細過程圖 2.5 所示給出了一個循環(huán)的內部結構。每個 64 位的中間結果的左、右兩個部分被當成獨立的 32 位數(shù)據處理。每輪變換的邏輯關系為:Li=Ri-1Ri=Li-1F(Ri-1, K i) (2.5)Li-1 (32 位)R i-1(32)位)R i(32

46、 位)輪密鑰產生器F變換擴展變換 E選擇壓縮變換S 盒代替置換運算 PLi(32 位)32 位48 位48 位 圖 2.5 DES 算法的一輪迭代處理過程輸入(32 位)32 1 2 3 4 54 5 6 7 8 98 9 10 11 12 1312 13 14 15 16 1716 17 18 19 20 2120 21 22 23 24 2524 25 26 27 28 2928 29 30 31 32 1輸出 48 位輸入(32 位,來自 S 盒)16 7 20 2129 12 28 171 15 23 265 18 31 102 8 24 1432 27 3 919 13 30 622

47、 11 4 25輸出 32 位 圖 2.6 擴展變換 E 圖 2.7 P 變換在這個循環(huán)中使用的輪密鑰 K i的長度是 48 位,輸入的 R i-1是 32 位,先被擴展到48 位如圖 2.6,由此可知擴展變換 E 將 32 位擴展為 48 位輸出,擴展后得到的 48 位結果再與各 K i進行異或,這樣得到的 48 位結果再經過一個代替函數(shù) S 產生 32 位的輸出,最后進行 P(圖 2.7)變換。 E48 位密鑰 Ki(48 位)S1S2S3S4S5S6S7S8P 32 位R i-1(32 位) 圖 2.8 F(Ri-1,Ki)函數(shù)的計算(3)密鑰的產生 28bit28bitC0D0LS1L

48、S1C1D156bitLS2 LS2PC-2C2D2Pc-2LS16LS16C16D16PC-16K1(48bit)K2(48bit)K16(48bit)PC-1圖 2.9 DES 16 個子密鑰生成過程 如上圖 2.9 所示子密鑰 Ki 的產生。其中 PC-1 表示置換選擇 1,PC-2 表示置換選擇 2,LSn 表示左移 n 位,在 DES 的 16 輪迭代中,使用了不同的子密鑰。但這 16 個子密鑰由同一個原始密鑰(56bit)移位產生而來,并沒有使用獨立子密鑰(據分析,使用獨立子密鑰將會降低 DES 對差分攻擊的抵抗力)。子密鑰產生的過程為:將原始密鑰(64bit,其中包括 8 個校驗

49、位)經過初始變換,得到有效密鑰(56bit),將其分為兩個 28bit數(shù)據,然后進行循環(huán)左移位得到新的 56bit 密鑰,再經過一個壓縮變換得到每一輪的48bit 子密鑰,用來和上面的 48 位數(shù)據進行異或運算。需要注意的是,產生子密鑰過程中每一輪對兩個 28bit 數(shù)據的循環(huán)左移位位數(shù)是經過精心計算的,不能隨意更改。如果改變移位的位數(shù)將會降低 DES 對相關密鑰密碼分析的抵抗力。4、DES 算法的安全強度對 DES 的分析主要由三種方法:(1)蠻力攻擊:255次嘗試。(2)差分密碼分析法:247嘗試。(3)線性密碼分析法:243次嘗試。對 DES 脆弱性的爭論主要集中在以下三個方面:(1)D

50、ES 的半公開性:DES 的內部結構即 S 盒的設計標準是保密的,至今未公布,這樣用戶無法確信 DES 的內部結構不存在任何隱藏的弱點和陷阱。(2)密鑰太短:IBM 原來的 Lucifer 算法的密鑰長度是 128 位,而提交作為標準的只有56 位,批評者擔心這個密鑰長度不足以抵御窮舉搜索攻擊,不太可能提供足夠的安全性。1998 年前只有 DES 破譯機的理論設計,1998 年后出現(xiàn)實用化的 DES 破譯機。(3)軟件實現(xiàn)太慢:1993 年前只有硬件實現(xiàn)得到授權,1993 年后軟件、固件和硬件得到同等對待。2.1.3 高級加密標準(AES)1、AES 加密算法原理隨著對稱密碼的發(fā)展 ,DES

51、數(shù)據加密標準算法由于密鑰長度較小 (56 位),已經不適應當今分布式開放網絡對數(shù)據加密安全性的要求,因此1997 年 NIST 公開征集新的數(shù)據加密標準 ,即 AES。經過三輪的篩選 ,比利時 Joan Daeman 和 Vincent Rijmen 提交的 Rijndael 算法被提議為 AES 的最終算法。此算 法將成為美國新的數(shù)據加密標準而被廣泛應用在各個領域中。 AES 作為新一代的數(shù)據加密標準匯聚了強安全性、高性能、高效率、易用和靈活等優(yōu)點。 AES 設計有三個密鑰長度 :128,192,256 位,相對而言, AES 的 128 密鑰比 DES 的 56 密鑰強 1021 倍。AE

52、S算法主要包括三個方面:輪變化、圈數(shù)和密鑰擴展。本文以128 為例,介紹算法的基本原理;結合 AVR 匯編語言,實現(xiàn)高級數(shù)據加密算法AES。其目的是確定一個非保密、公開披露的、全球免費使用的分組密碼算法,用于保護21 世紀政府敏感子信息。并希望取代漸進沒落的原有數(shù)據加密標準DES 算法。AES 算法是一個數(shù)據塊長度和密鑰長度都可變的迭代分組加密算法,數(shù)據塊長度和密鑰長度可分別為 128、192、256 位。在加密之前,對數(shù)據塊做預處理。首先,把數(shù)據塊寫成字的形式,每個字包含4 個字節(jié),每個字節(jié)包含 8bit 信息;其次,把字記為列的形式。這樣數(shù)據塊就可以記為以下的形式表 2.1:表 2.1 數(shù)

53、據塊的處理a0,0a0,1a0,2a0,3a0,4a0,5a1,0a1,1a1,2a1,3a1,4a1,5a2,0a2,1a2,2a2,3a2,4a2,5 a3,0a3,1a3,2a3,3a3,4a3,5 其中,每列表示一個字 aj=(a0,j ,a1,j,a2,j,a3,j),每個 ai,j表示一個 8bit 的字節(jié),即ajGF(28)x/(x4+1) ai,jGF(28) (2.6)如果用 Nb 表示一個數(shù)據塊中字 的個數(shù),那么 Nb=4、6、8。類似地,用 Nk表示密鑰中字的個數(shù),那么 Nk=4、6、8。例如,Nk=6 的密鑰可記為如下表 2.2形式。表 2.2 Nk=6 的密鑰表示k0

54、,0 k0,1 k0,2 k0,3 k0,4k0,5k1,0 k1,1 k1,2 k1,3 k1,4k1,5k2,0 k2,1 k2,2 k2,3 k2,4k2,5k3,0 k3,1 k3,2 k3,3 k3,4k3,5AES 是分組密鑰,算法輸入 128 位數(shù)據,密鑰長度也是 128 位。用 Nr 表示對一個數(shù)據分組加密的輪數(shù)。每一輪都需要一個與輸入分組具有相同長度的擴展密鑰 Expandedkey(i)的參與。由于外部輸入的加密密鑰K 長度有限,所以在算法中要用一個密鑰擴展程序 (Keyexpansion)把外部密鑰 K 擴展成更長的比特串 ,以生成各輪的加密和解密密鑰。對不同的分組長度,

55、其對應的輪變化次數(shù)是不同的。其關系如下表 2.3 所示。表 2.3 密鑰與輪數(shù)的關系標 準 密鑰長度(N k 個字)分組大小(N b個字)輪數(shù)(N r)AES128 4 4 10AES192 6 4 12AES256 8 4 14AES 加密和解密過程如下圖 2.10 所示:明文塊經過白化技術處理后,進入輪函數(shù),而輪函數(shù)又由字節(jié)代換、行移變換、列變換和密鑰4 個變換組成 ,AES 的加密與解密流程如圖 2.10 所示。 128 位數(shù)據分組與擴展密鑰“異或”運算S 盒變換行變換列變換與擴展密鑰異或S 盒變換與擴展密鑰異或運算行變換128 位加密數(shù)據128 位加密數(shù)據分組與擴展密鑰“異或”運算反行

56、變換 反 S 盒變換反 S 變換反行變換反列變換與擴展密鑰異或128 位解密數(shù)據圖 2.10 AES 的加密與解密流程(1)圈變化AES 每一個圈變換由以下三個層組成 :非線性層進行字節(jié)變換 (Subbyte);線行混合層進行 ShiftRow 和列變換(MixColumn)運算;密鑰加層進行 AddRoundKey 運算。1) Subbyte 變換是作用在狀態(tài)中每個字節(jié)上的一種非線性字節(jié)轉換,可以通過計算出來的 S 盒進行映射。這個變換是 可逆的,它定義為: (2.7)01100011111110000111110000111110000111111000111111000111111000

57、1111110001)(1,jijiaaSubByte其中 a-1i,j是 ai,j在 GF(28)中的乘法逆。2)行移變換(ShiftRow)在此變換的作用下,數(shù)據塊的第 0 行保持不變,第 1 行循環(huán)左移 C1位,第 2行循環(huán)左移 C2位,第 3 行循環(huán)左移 C3位,其中移位值 C1、C2和 C3與加密塊長Nb 有關,它將狀態(tài)中的行按照不同的偏移量進行循環(huán)移位,而這個偏移量也是根據Nb 的不同而選擇的 如表 2.4。圖 2.4 偏移量與 Nb 的關系 Nb C1 C2C3 4 1 2 3 6 1 2 3 8 1 2 43)在 MixColumn 變換中,把狀態(tài)中的每一列看作 GF(28)上

58、的多項式 a(x)與固定多項式 c(x)相乘的結果。 b(x)=c(x)*a(x)的系數(shù)這樣計算 :*運算不是普通的乘法運算 ,而是特殊的運算,即b(x)=c(x)a(x)(mod x 4+1) (2.8)對于這個運算 b0=02。a0+03。a1+a2+a3 令 xtime(a0)=02。a0 其中,符號 “。 ”表示模一個八次不可約多項式的同余乘法。 (2.9)3210321002010103030201010103020101010302aaaabbbb對于逆變化,其矩陣 C 要改變成相應的 D,即 b(x)=d(x)*a(x)。4)密鑰加層運算 (addround)是將圈密鑰狀態(tài)中的對

59、應字節(jié)按位 “異或”。5)根據線性變化的性質,解密運算是加密變化的逆變化。(2)輪變化(3)密鑰擴展 AES 算法利用外部輸入密鑰 K(密鑰串的字數(shù)為 Nk),通過密鑰的擴展程序得到共計 4(Nr+1)字的擴展密鑰。它涉及如下三個模塊 :1) 位置變換(rotword)把一個 4 字節(jié)的序列 A,B,C,D變化成B,C,D,A;2) S 盒變換(subword)對一個 4 字節(jié)進行 S 盒代替;3) 變換 RconRcon 表示 32 位比特字xi-1,00,00,00。這里的 x 是(02),如Rcon1=01000000;Rcon2=02000000;Rcon3=04000000. 擴展密

60、鑰的生成:擴展密鑰的前 Nk 個字就是外部密鑰 K;以后的字 W等于它前一個字 Wi-1與前第 Nk 個字 Wi-Nk的“異或”,即 W=Wi-1Wi- Nk。但是若 i 為 Nk的倍數(shù),則W=Wi-NkSubword(Rotword(Wi-1)Rconi/Nk (2.10) 2.2 Hash 函數(shù)密碼學上的 Hash 函數(shù)是一種將任意長度的消息壓縮為某一固定長度的消息摘要的函數(shù),。Hash 函數(shù)可以用于數(shù)字簽名,將 Hash 函數(shù)應用于數(shù)字簽名有許多好處,Hash 函數(shù)除了可用于簽名之外,還可以用于其他方面,譬如消息的完整性檢測。為保證消息的完整性,及時發(fā)現(xiàn)消息是否被非法篡改,可以在消息傳輸

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論