加密與數字簽名

1、加密
 
  數據加密技術從技術上的實現分爲在軟件和硬件兩方面。按做用不一樣,數據加密技術主要分爲數據傳輸、數據存儲、數據完整性的鑑別以及密鑰管理技術這四種。
 
  在網絡應用中通常採起兩種加密形式:對稱密鑰和公開密鑰,採用何種加密算法則要結合具體應用環境和系統,而不能簡單地根據其加密強度來做出判斷。由於除了加密算法自己以外,密鑰合理分配、加密效率與現有系統的結合性,以及投入產出分析都應在實際環境中具體考慮。
 
   對於對稱密鑰加密。其常見加密標準爲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內部的複雜結構是至今沒有找到捷徑破譯方法的根本緣由。如今DES可由軟件和硬件實現。美國AT&T首先用LSI芯片實現了DES的所有工做模式,該產品稱爲數據加密處理機DEP。
 
  3.公開密鑰密碼體制
 
  公開密鑰(public key)密碼體制出現於1976年。它最主要的特色就是加密和解密使用不一樣的密鑰,每一個用戶保存着一對密鑰 ? 公開密鑰PK和祕密密鑰SK,所以,這種體制又稱爲雙鑰或非對稱密鑰密碼體制。
 
  在這種體制中,PK是公開信息,用做加密密鑰,而SK須要由用戶本身保密,用做解密密鑰。加密算法E和解密算法D也都是公開的。雖然SK與PK是成對出現,但卻不能根據PK計算出SK。公開密鑰算法的特色以下:
 
  一、用加密密鑰PK對明文X加密後,再用解密密鑰SK解密,便可恢復出明文,或寫爲:DSK(EPK(X))=X  
  二、加密密鑰不能用來解密,即DPK(EPK(X))≠X 
 
  三、在計算機上能夠容易地產生成對的PK和SK。 
 
  四、從已知的PK實際上不可能推導出SK。 
 
  五、加密和解密的運算能夠對調,即:EPK(DSK(X))=X 
 
  在公開密鑰密碼體制中,最有名的一種是RSA體制。它已被ISO/TC97的數據加密技術分委員會SC20推薦爲公開密鑰數據加密標準。
 
2、數字簽名
 
  數字簽名技術是實現交易安全的核心技術之一,它的實現基礎就是加密技術。在這裏,咱們介紹數字簽名的基本原理。
 
  以往的書信或文件是根據親筆簽名或印章來證實其真實性的。但在計算機網絡中傳送的報文又如何蓋章呢?這就是數字簽名所要解決的問題。數字簽名必須保證如下幾點:
 
  接收者可以覈實發送者對報文的簽名;發送者過後不能抵賴對報文的簽名;接收者不能僞造對報文的簽名。
  
  如今已有多種實現各類數字簽名的方法,但採用公開密鑰算法要比常規算法更容易實現。下面就來介紹這種數字簽名。
 
   發送者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的公開密 鑰。
 
3、密鑰的管理
 
  對稱密鑰加密方法致命的一個弱點就是它的密鑰管理十分困難,所以它很難在電子商務的實踐中得 到普遍的應用。在這一點上,公開密鑰加密方法佔有絕對的優點。不過,不管實施哪一種方案,密鑰的管理都是要考慮的問題。當網絡擴得更大、用戶增長更多時尤爲 如此。一家專門從事安全性諮詢的公司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安全

相關文章
相關標籤/搜索