首頁 > 電腦資訊 > 電腦知識

加密及數字簽名

作者:佚名   來源:本站   時間:2018-04-07  點擊:72次

一、加密
 
  數據加密技術從技術上的實現分為在軟件和硬件兩方面。按作用不同,數據加密技術主要分為數據傳輸、數據存儲、數據完整性的鑒別以及密鑰管理技術這四種。
 
  在網絡應用中一般采取兩種加密形式:對稱密鑰和公開密鑰,采用何種加密算法則要結合具體應用環境和系統,而不能簡單地根據其加密強度來作出判斷。因為除了加密算法本身之外,密鑰合理分配、加密效率與現有系統的結合性,以及投入 產出分析都應在實際環境中具體考慮。
 
  對于對稱密鑰加密。其常見加密標準為DES等,當使用DES時,用戶和接受方采用64位密鑰對報文加密和解密,當對安全性有特殊要求時,則要采取IDEA和三重DES等。作為傳統企業網絡廣泛應用的加密技術,秘密密鑰效率高,它采用KDC來集中管理和分發密鑰并以此為基礎驗證身份,但是并不適合Internet環境。
 
  在Internet中使用更多的是公鑰系統。即公開密鑰加密,它的加密密鑰和解密密鑰是不同的。一般對于每個用戶生成一對密鑰后,將其中一個作為公鑰公開,另外一個則作為私鑰由屬主保存。常用的公鑰加密算法是RSA算法,加密強度很高。具體作法是將數字簽名和數據加密結合起來。發送方在發送數據時必須加上數據簽名,做法是用自己的私鑰加密一段與發送數據相關的數據作為數字簽名,然后與發送數據一起用接收方密鑰加密。當這些密文被接收方收到后,接收方用自己的私鑰將密文解密得到發送的數據和發送方的數字簽名,然后,用發布方公布的公鑰對數字簽名進行解密,如果成功,則確定是由發送方發出的。數字簽名每次還與被傳送的數據和時間等因素有關。由于加密強度高,而且并不要求通信雙方事先要建立某種信任關系或共享某種秘密,因此十分適合Internet網上使用。
 
  下面介紹幾種最常見的加密體制的技術實現:
 
  1.常規密鑰密碼體制
 
  所謂常規密鑰密碼體制,即加密密鑰與解密密鑰是相同的。
 
  在早期的常規密鑰密碼體制中,典型的有代替密碼,其原理可以用一個例子來說明:
 
  將字母a,b,c,d,…,w,x,y,z的自然順序保持不變,但使之與D,E,F,G,…,Z,A,B,C分別對應(即相差3個字符)。若明文為student則對應的密文為VWXGHQW(此時密鑰為3)。
 
  由于英文字母中各字母出現的頻度早已有人進行過統計,所以根據字母頻度表可以很容易對這種代替密碼進行破譯。
 
  2.數據加密標準DES
 
  DES算法原是IBM公司為保護產品的機密于1971年至1972年研制成功的,后被美國國家標準局和國家安全局選為數據加密標準,并于1977年頒布使用。ISO也已將DES作為數據加密標準。
 
  DES對64位二進制數據加密,產生64位密文數據。使用的密鑰為64位,實際密鑰長度為56位(有8位用于奇偶校驗)。解密時的過程和加密時相似,但密鑰的順序正好相反。
DES的保密性僅取決于對密鑰的保密,而算法是公開的。DES內部的復雜結構是至今沒有找到捷徑破譯方法的根本原因,F在DES可由軟件和硬件實現。美國AT&T首先用LSI芯片實現了DES的全部工作模式,該產品稱為數據加密處理機DEP。
 
  3.公開密鑰密碼體制
 
  公開密鑰(public key)密碼體制出現于1976年。它最主要的特點就是加密和解密使用不同的密鑰,每個用戶保存著一對密鑰 ? 公開密鑰PK和秘密密鑰SK,因此,這種體制又稱為雙鑰或非對稱密鑰密碼體制。
 
  在這種體制中,PK是公開信息,用作加密密鑰,而SK需要由用戶自己保密,用作解密密鑰。加密算法E和解密算法D也都是公開的。雖然SK與PK是成對出現,但卻不能根據PK計算出SK。公開密鑰算法的特點如下:
 
  1、用加密密鑰PK對明文X加密后,再用解密密鑰SK解密,即可恢復出明文,或寫為:DSK(EPK(X))=X  
  2、加密密鑰不能用來解密,即DPK(EPK(X))≠X
 
  3、在計算機上可以容易地產生成對的PK和SK。
 
  4、從已知的PK實際上不可能推導出SK。
 
  5、加密和解密的運算可以對調,即:EPK(DSK(X))=X
 
  在公開密鑰密碼體制中,最有名的一種是RSA體制。它已被ISO/TC97的數據加密技術分委員會SC20推薦為公開密鑰數據加密標準。
 
  二、數字簽名
 
  數字簽名技術是實現交易安全的核心技術之一,它的實現基礎就是加密技術。在這里,我們介紹數字簽名的基本原理。
 
  以往的書信或文件是根據親筆簽名或印章來證明其真實性的。但在計算機網絡中傳送的報文又如何蓋章呢?這就是數字簽名所要解決的問題。數字簽名必須保證以下幾點:
 
  接收者能夠核實發送者對報文的簽名;發送者事后不能抵賴對報文的簽名;接收者不能偽造對報文的簽名。
  
  現在已有多種實現各種數字簽名的方法,但采用公開密鑰算法要比常規算法更容易實現。下面就來介紹這種數字簽名。
 
  發送者A用其秘密解密密鑰SKA對報文X進行運算,將結果DSKA(X)傳送給接收者B。B用已知的A的公開加密密鑰得出EPKA(DSKA(X))=X。因為除A外沒有別人能具有A的解密密鑰SKA,所以除A外沒有別人能產生密文DSKA(X)。這樣,報文X就被簽名了。
 
  假若A要抵賴曾發送報文給B。B可將X及DSKA(X)出示給第三者。第三者很容易用PKA去證實A確實發送消息X給B。反之,如果是B將X偽造成X',則B不能在第三者面前出示DSKA(X')。這樣就證明B偽造了報文?梢钥闯,實現數字簽名也同時實現了對報文來源的鑒別。
  
  但是上述過程只是對報文進行了簽名。對傳送的報文X本身卻未保密。因為截到密文DSKA(X)并知道發送者身份的任何人,通過查問手冊即可獲得發送者的公開密鑰PKA,因而能夠理解報文內容。則可同時實現秘密通信和數字簽名。SKA和SKB分別為A和B的秘密密鑰,而PKA和PKB分別為A和B的公開密鑰。
三、密鑰的管理
 
  對稱密鑰加密方法致命的一個弱點就是它的密鑰管理十分困難,因此它很難在電子商務的實踐中得到廣泛的應用。在這一點上,公開密鑰加密方法占有絕對的優勢。不過,無論實施哪種方案,密鑰的管理都是要考慮的問題。當網絡擴得更大、用戶增加更多時尤其如此。一家專門從事安全性咨詢的公司Cypress Consulting的總裁CyArdoin說:“在所有加密方案中,都必須有人來管理密鑰!
 
  目前,公認的有效方法是通過密鑰分配中心KDC來管理和分配公開密鑰。每個用戶只保存自己的秘密密鑰和KDC的公開密鑰PKAS。用戶可以通過KDC獲得任何其他用戶的公開密鑰。
 
  首先,A向KDC申請公開密鑰,將信息(A,B)發給KDC。KDC返回給A的信息為(CA,CB),其中,CA=DSKAS(A,PKA,T1),CB=DSKAS(B,PKB,T2)。CA和CB稱為證書(Certificate),分別含有A和B的公開密鑰。KDC使用其解密密鑰SKAS對CA和CB進行了簽名,以防止偽造。時間戳T1和T2的作用是防止重放攻擊。
 
  最后,A將證書CA和CB傳送給B。B獲得了A的公開密鑰PKA,同時也可檢驗他自己的公開密鑰PKB。

推薦游戲

換一換
色天堂视频