天天看點

密碼學(二)、對稱加密和不對稱加密

對稱加密   

    采用單鑰密碼系統的加密方法,同一個密鑰可以同時用作資訊的加密和解密,這種加密方法稱為對稱加密,也稱為單密鑰加密。   

需要對加密和解密使用相同密鑰的加密算法。由于其速度,對稱性加密通常在消息發送方需要加密大量資料時使用。對稱性加密也稱為密鑰加密。   

所謂對稱,就是采用這種加密方法的雙方使用方式用同樣的密鑰進行加密和解密。密鑰實際上是一種算法,通信發送方使用這種算法加密資料,接收方再以同樣的算法解密資料。   

是以對稱式加密本身不是安全的。 

  

常用的對稱加密算法有:

DES(Data Encryption Standard):資料加密标準,速度較快,适用于加密大量資料的場合。

3DES(Triple DES):是基于DES,對一塊資料用三個不同的密鑰進行三次加密,強度更高。

AES(Advanced Encryption Standard):進階加密标準,是下一代的加密算法标準,速度快,安全級别高; 

RC4,也是為   RSA   Data   Security,   Inc.   開發的密碼系統的商标名稱。

DES、3DES、AES、Blowfish、IDEA、RC2、RC4、RC5、RC6、SKIPJACK算法等

      

DES

單密鑰算法,是資訊的發送方采用密鑰A進行資料加密,資訊的接收方采用同一個密鑰A進行資料解密.

單密鑰算法是一個對稱算法.

缺點:由于采用同一個密鑰進行加密解密,在多使用者的情況下,密鑰保管的安全性是一個問題.

對稱加密算法

    對稱加密算法是應用較早的加密算法,技術成熟。在對稱加密算法中,資料發信方将明文(原始資料)和加密密鑰一起經過特殊加密算法處理後,使其變成複雜的加密密文發送出去。收信方收到密文後,若想解讀原文,則需要使用加密用過的密鑰及相同算法的逆算法對密文進行解密,才能使其恢複成可讀明文。在對稱加密算法中,使用的密鑰隻有一個,發收信雙方都使用這個密鑰對資料進行加密和解密,這就要求解密方事先必須知道加密密鑰。對稱加密算法的特點是算法公開、計算量小、加密速度快、加密效率高。不足之處是,交易雙方都使用同樣鑰匙,安全性得不到保證。此外,每對使用者每次使用對稱加密算法時,都需要使用其他人不知道的惟一鑰匙,這會使得發收信雙方所擁有的鑰匙數量成幾何級數增長,密鑰管理成為使用者的負擔。對稱加密算法在分布式網絡系統上使用較為困難,主要是因為密鑰管理困難,使用成本較高。在計算機專網系統中廣泛使用的對稱加密算法有DES、IDEA和AES。

  傳統的DES由于隻有56位的密鑰,是以已經不适應當今分布式開放網絡對資料加密安全性的要求。1997年RSA資料安全公司發起了一項“DES挑戰賽”的活動,志願者四次分别用四個月、41天、56個小時和22個小時破解了其用56位密鑰DES算法加密的密文。即DES加密算法在計算機速度提升後的今天被認為是不安全的。

  AES是美國聯邦政府采用的商業及政府資料加密标準,預計将在未來幾十年裡代替DES在各個領域中得到廣泛應用。AES提供128位密鑰,是以,128位AES的加密強度是56位DES加密強度的1021倍還多。假設可以制造一部可以在1秒内破解DES密碼的機器,那麼使用這台機器破解一個128位AES密碼需要大約149億萬年的時間。(更深一步比較而言,宇宙一般被認為存在了還不到200億年)是以可以預計,美國國家标準局倡導的AES即将作為新标準取代DES。

非對稱加密

  1976年,美國學者Dime和Henman為解決資訊公開傳送和密鑰管理問題,提出一種新的密鑰交換協定,允許在不安全的媒體上的通訊雙方交換資訊,安全地達成一緻的密鑰,這就是“公開密鑰系統”。相對于“對稱加密算法”這種方法也叫做“非對稱加密算法”。

   與對稱加密算法不同,非對稱加密算法需要兩個密鑰:公開密鑰(publickey)和私有密鑰(privatekey)。公開密鑰與私有密鑰是一對,如果用公開密鑰對資料進行加密,隻有用對應的私有密鑰才能解密;如果用私有密鑰對資料進行加密,那麼隻有用對應的公開密鑰才能解密。因為加密和解密使用的是兩個不同的密鑰,是以這種算法叫作非對稱加密算法。

特性

  非對稱加密算法實作機密資訊交換的基本過程是:甲方生成一對密鑰并将其中的一把作為公用密鑰向其它方公開;得到該公用密鑰的乙方使用該密鑰對機密資訊進行加密後再發送給甲方;甲方再用自己儲存的另一把專用密鑰對加密後的資訊進行解密。甲方隻能用其專用密鑰解密由其公用密鑰加密後的任何資訊。

   非對稱加密算法的保密性比較好,它消除了最終使用者交換密鑰的需要,但加密和解密花費時間長、速度慢,它不适合于對檔案加密而隻适用于對少量資料進行加密。

   經典的非對稱加密算法如RSA算法等安全性都相當高.

  非對稱加密的典型應用是數字簽名。

   采用雙鑰密碼系統的加密方法,在一個過程中使用兩個密鑰,一個用于加密,另一個用于解密,這種加密方法稱為非對稱加密,也稱為公鑰加密,因為其中一個密鑰是公開的(另一個則需要保密)。

不對稱加密算法

  不對稱加密算法使用兩把完全不同但又是完全比對的一對鑰匙—公鑰和私鑰。在使用不對稱加密算法加密檔案時,隻有使用比對的一對公鑰和私鑰,才能完成對明文的加密和解密過程。加密明文時采用公鑰加密,解密密文時使用私鑰才能完成,而且發信方(加密者)知道收信方的公鑰,隻有收信方(解密者)才是唯一知道自己私鑰的人。不對稱加密算法的基本原理是,如果發信方想發送隻有收信方才能解讀的加密資訊,發信方必須首先知道收信方的公鑰,然後利用收信方的公鑰來加密原文;收信方收到加密密文後,使用自己的私鑰才能解密密文。顯然,采用不對稱加密算法,收發信雙方在通信之前,收信方必須将自己早已随機生成的公鑰送給發信方,而自己保留私鑰。由于不對稱算法擁有兩個密鑰,因而特别适用于分布式系統中的資料加密。廣泛應用的不對稱加密算法有RSA算法和美國國家标準局提出的DSA。以不對稱加密算法為基礎的加密技術應用非常廣泛。

RSA(Rivest   Shamir   Adlemen,一種網際網路加密和認證體系):由 RSA 公司發明,是一個支援變長密鑰的公共密鑰算法,需要加密的檔案塊的長度也是可變的;


DSA(Digital Signature Algorithm):數字簽名算法,是一種标準的 DSS(數字簽名标準);



ECC(Elliptic Curves Cryptography):橢圓曲線密碼編碼學。

      

DSA

所謂數字簽名是指發送方從發送封包中抽取特征資料(稱為數字指紋或摘要),然後用發送方的私鑰對數字指紋使用加密算法進行算法操作,接受方使用發送方已經公開的公鑰解密并驗證封包.

數字簽名使用者驗證發送方身份或者發送方資訊的完整性

中文名稱:密鑰加密 

英文名稱:secret key encryption 

定義:發送和接收資料的雙方,使用相同的或對稱的密鑰對明文進行加密解密運算的加密方法。

公鑰加密

中文名稱:公鑰加密 

英文名稱:public key encryption 

定義:由對應的一對唯一性密鑰(即公開密鑰和私有密鑰)組成的加密方法。它解決了密鑰的釋出和管理問題,是目前商業密碼的核心。

中文名稱:數字簽名 

英文名稱:digital signature 

定義:以電子形式存在于資料資訊之中的,或作為其附件的或邏輯上與之有聯系的資料,可用于辨識資料簽署人的身份,并表明簽署人對資料資訊中包含的資訊的認可。

數字簽名(又稱公鑰數字簽名、電子簽章)是一種類似寫在紙上的普通的實體簽名,但是使用了公鑰加密領域的技術實作,用于鑒别數字資訊的方法。一套數字簽名通常定義兩種互補的運算,一個用于簽名,另一個用于驗證。

Hash算法 

Hash算法特别的地方在于它是一種單向算法,使用者可以通過Hash算法對目标資訊生成一段特定長度的唯一的Hash值,卻不能通過這個Hash值重新獲得目标資訊。是以Hash算法常用在不可還原的密碼存儲、資訊完整性校驗等。 

常見的Hash算法有MD2、MD4、MD5、HAVAL、SHA 

MD5/SHA

MessageDigest是一個資料的數字指紋.即對一個任意長度的資料進行計算,産生一個唯一指紋号.

MessageDigest的特性:

A) 兩個不同的資料,難以生成相同的指紋号

B) 對于指定的指紋号,難以逆向計算出原始資料

其他介紹:

PGP(Pretty Good Privacy)技術 PGP技術是一個基于不對稱加密算法RSA公鑰體系的郵件加密技術,也是一種操作簡單、使用友善、普及程度較高的加密軟體。PGP技術不但可以對電子郵件加密,防止非授權者閱讀信件;還能對電子郵件附加數字簽名,使收信人能明确了解發信人的真實身份;也可以在不需要通過任何保密管道傳遞密鑰的情況下,使人們安全地進行保密通信。PGP技術創造性地把RSA不對稱加密算法的友善性和傳統加密體系結合起來,在數字簽名和密鑰認證管理機制方面采用了無縫結合的巧妙設計,使其幾乎成為最為流行的公鑰加密軟體包。 

數字簽名(Digital Signature)技術 數字簽名技術是不對稱加密算法的典型應用。數字簽名的應用過程是,資料源發送方使用自己的私鑰對資料校驗和或其他與資料内容有關的變量進行加密處理,完成對資料的合法“簽名”,資料接收方則利用對方的公鑰來解讀收到的“數字簽名”,并将解讀結果用于對資料完整性的檢驗,以确認簽名的合法性。數字簽名技術是在網絡系統虛拟環境中确認身份的重要技術,完全可以代替現實過程中的“親筆簽字”,在技術和法律上有保證。在公鑰與私鑰管理方面,數字簽名應用與加密郵件PGP技術正好相反。在數字簽名應用中,發送者的公鑰可以很友善地得到,但他的私鑰則需要嚴格保密。 

PKI(Public Key Infrastructure)技術 PKI技術是一種以不對稱加密技術為核心、可以為網絡提供安全服務的公鑰基礎設施。PKI技術最初主要應用在Internet環境中,為複雜的網際網路系統提供統一的身份認證、資料加密和完整性保障機制。由于PKI技術在網絡安全領域所表現出的巨大優勢,因而受到銀行、證券、政府等核心應用系統的青睐。PKI技術既是資訊安全技術的核心,也是電子商務的關鍵和基礎技術。由于通過網絡進行的電子商務、電子政務等活動缺少實體接觸,因而使得利用電子方式驗證信任關系變得至關重要,PKI技術恰好能夠有效解決電子商務應用中的機密性、真實性、完整性、不可否認性和存取控制等安全問題。一個實用的PKI體系還必須充分考慮互操作性和可擴充性。PKI體系所包含的認證中心(CA)、注冊中心(RA)、政策管理、密鑰與證書管理、密鑰備份與恢複、撤銷系統等功能子產品應該有機地結合在一起。 

繼續閱讀