天天看點

加密機制

下面給大家介紹一下,我所了解的加密方式。我首先分為了單向加密和雙向加密,然後雙向加密又分為了對稱加密和非堆成加密。然後再介紹其中的幾個典型例子。

1     單向加密

在理論上,從明文加密到密文後,不可反向解密的。可以從疊代和加鹽的方式盡可能保證加密資料不可反向解密。傳遞敏感資料的時候使用的。如:密碼。使用單向加密的時候,傳遞的資料隻有密文,沒有明文,也沒有密鑰。

我對加密機制了解的也不多,看到網上對單向加密是有争論的,有人認為不是單向加密不是加密機制。認為單向加密隻是對資訊進行了摘要計算,不能通過算法生成明文,單向加密從嚴格意思上說不能算是加密的一種。

1.1  MD5

MD5的作用是對一段資訊(message)生成資訊摘要(message-digest),該摘要對該資訊具有唯一性,可以作為數字簽名。用于驗證檔案的有效性(是否有丢失或損壞的資料),對使用者 密碼的加密,在哈希函數中計算散列值。

1.2  SHA

SHA家族的五個算法,分别是SHA-1、SHA-224、SHA-256、SHA-384,和SHA-512,由美國國家安全局(NSA)所設計,并由美國國家标準與技術研究院(NIST)釋出;是美國的政府标準。後四者有時并稱為SHA-2。SHA-1在許多安全協定中廣為使用,包括TLS和SSL、PGP、SSH、S/MIME和IPsec,曾被視為是MD5(更早之前被廣為使用的雜湊函數)的後繼者。但SHA-1的安全性如今被密碼學家嚴重質疑;雖然至今尚未出現對SHA-2有效的攻擊,它的算法跟SHA-1基本上仍然相似;是以有些人開始發展其他替代的雜湊算法。

2     雙向加密

是可以實作加密和解密雙向運算的算法。需要通過密鑰實作加解密計算的。

2.1  對稱加密

隻有一個密鑰,就是公鑰。

常見的加密标準有

2.1.1 DES

資料加密标準(Data Encryption Standard,DES),DES算法為密碼體制中的對稱密碼體制。它是由IBM公司研制的一種加密算法,美國國家标準局于1977年公布把它作為非機要部門使用的資料加密标準,二十年來,它一直活躍在國際保密通信的舞台上,扮演了十分重要的角色。

DES現在已經不被視為一種安全的加密算法,因為它使用的56位秘鑰過短,以現代計算能力,24小時内即可能被破解。也有一些分析報告提出了該算法的理論上的弱點,雖然實際情況未必出現。該标準在最近已經被進階加密标準(AES)所取代

2.1.2 AES

進階加密标準(Advanced Encryption Standard,AES),又稱Rijndael加密法,是美國聯邦政府采用的一種區塊加密标準。這個标準用來替代原先的DES,已經被多方分析且廣為全世界所使用。經過五年的甄選流程,進階加密标準由美國國家标準與技術研究院(NIST)于2001年11月26日釋出于FIPS PUB 197,并在2002年5月26日成為有效的标準。2006年,進階加密标準已然成為對稱密鑰加密中最流行的算法之一。

2.2  非對稱加密

有兩個密鑰,公鑰和私鑰。

  • 公鑰:可以對外公開的,就是可以在網絡中傳遞的。
  • 私鑰:必須保密的,絕對不會對外暴露的。

(在傳遞安全資料的時候使用。所謂安全資料,就是不可篡改的資料。如:金融交易中的收款人卡号,轉賬的金額,貨币的種類等。使用雙向加密的時候,傳遞的有明文,密文,公鑰。)

或者說有兩個密鑰,加密鑰和解密鑰

  • ①暴露加密鑰,誰都能加密,但是隻有本人能解密(傳遞資訊)
  • ②暴露解密鑰,誰都能解密,但是隻有本人能加密(簽名認證)

2.2.1 RSA

RSA加密算法是一種非對稱加密算法。在公鑰加密标準和電子商業中RSA被廣泛使用。RSA是1977年由羅納德·李維斯特(Ron Rivest)、阿迪·薩莫爾(Adi Shamir)和倫納德·阿德曼(Leonard Adleman)一起提出的。當時他們三人都在麻省理工學院工作。RSA就是他們三人姓氏開頭字母拼在一起組成的。

RSA算法的可靠性基于分解極大的整數是很困難的。假如有人找到一種很快的分解因子的算法的話,那麼用RSA加密的資訊的可靠性就肯定會極度下降。但找到這樣的算法的可能性是非常小的。今天隻有短的RSA鑰匙才可能被強力方式解破。到2008年為止,世界上還沒有任何可靠的攻擊RSA算法的方式。隻要其鑰匙的長度足夠長,用RSA加密的資訊實際上是不能被解破的。

RSA算法利用兩個很大的質數相乘所産生的乘積來加密。這兩個質數無論哪一個先與原檔案編碼相乘,對檔案加密,均可由另一個質數再相乘來解密。但要用一個質數來求出另一個質數,則是十分困難的。是以将這一對質數稱為密鑰對(Key Pair)。在加密應用時,某個使用者總是将一個密鑰公開,讓需發信的人員将資訊用其公共密鑰加密後發給該使用者,而一旦資訊加密後,隻有用該使用者一個人知道的私用密鑰才能解密。具有數字憑證身份的人員的公共密鑰可在網上查到,亦可在請對方發資訊時主動将公共密鑰傳給對方,這樣保證在Internet上傳輸資訊的保密和安全。

繼續閱讀