一、前言
加密技術是一門古老而深奧的學科,長期以來,都應用在很小的範圍,如軍事、外交、情報等部門。
西元前405年,斯巴達的將領就使用了原始的錯亂密碼;公元1世紀,羅馬皇帝凱撒就使用了有序的單錶代替密碼。中國古代出現的「符」,也是一種資料加密的方法。
20世紀初,電子通訊技術的發展,尤其是兩次世界大戰中,密碼通訊和第三方解密的較量更為激烈。
那什麼是加密和解密呢?簡單來說:
加密,即採用一些方式對資料進行處理後,使資料從表面上看,已經不能表達出原有的意思。
解密,就是對加密過的資料採用某些方法,去還原原有資料面貌,從而了解所包含資訊的真實意圖。
二、名詞解釋
明文:待加密的報文
密文:加密後的報文
金鑰:加密過程中或解密過程中輸入的資料
演算法:將明文和金鑰相結合進行處理,生成密文的方法,叫加密演算法;或將密文和金鑰相結合進行處理,生成明文的方法,叫解密演算法。
三、加密技術分類
(一)單向加密
將資料進行計算變成另一種固定長度的值,而且這種行為不可逆。
這種加密演算法具備幾個特點:
定長輸出,碰撞機率極低
相同訊息反覆加密獲得同樣的密文
雪崩效應,即使微小的單個位元組的變化,也能引起加密結果的巨大變化
密文不可逆,即從密文不可以推出原明文。
常用演算法
md5、sha1、、sha256、sha384、sha512
(二)對稱加密技術
使用同乙個金鑰,對資料映象加密和解密,這種加密技術,稱為對稱加密。
常用演算法:
des,3des,idea,aes優點
演算法公開、計算量小、加密速度快、加密效率高缺點
不同通訊雙方使用不同金鑰,導致金鑰過多,難以管理
通訊雙方金鑰交換,無法保證安全
無法驗證傳送者和接受者身份
資料完整性無法保證
(三)非對稱加密技術
public-key cryptography,即公開金鑰加密,又稱非對稱加密。在這個加密過程中,需要一對金鑰,不公開的金鑰稱為私鑰,公開的那乙個金鑰稱為公鑰。
常用演算法:
rsa,dsa,eigamal優點
金鑰數目較少。
從一對金鑰中的任何乙個金鑰都不能計算出另乙個金鑰。
使用一對金鑰中的任何乙個加密,只有另乙個金鑰才能解密。如果截獲公鑰加密資料,沒有私鑰也無法解密。缺點
演算法複雜,加密解密速度要慢
金鑰交換也不是非常安全
應用場景
1、a和b之間通訊,首先互相傳送各自的公鑰給對方
2、a發資料給b,a將用b的 公鑰加密 資料後傳送給b
3、b收到這個資料後,b使用自己的私鑰來解密資料。其他人截獲了a發出的資料也沒有用,他沒有私鑰。
注:如果2、3步驟中,a發給b的用b公鑰加密的資料被c掉包,即使a的資料中,有自己資料的指紋資訊,但是由於b的公鑰是公開的,任何人都能獲取b的公鑰,c就可以做乙個一樣格式的資料報給b。b無法驗證這就是a發過來的。
4、如果a用自己的 私鑰加密 資料後,傳送給b
5、b使用a的公鑰解密資料成功,就能證明這段資料資料確實是a是傳送者。
身份認證:
以上步驟4、5中使用私鑰加密後發布資料,資料的接受者可以使用發布者的公鑰來驗證資料的完整性,接受者由此可知這條資訊確實來自私鑰擁有者,這也被稱為數字簽名。解決了資料的不可否認性。
四、安全網路通訊模型
從以上的介紹中可以看出,各種加密演算法都有其特點和適用性:
那麼,就需要一種通訊模型能夠揚長避短,解決通訊安全的問題,於是便有了下面的模型:
通訊工作流程
1、傳送者a準備好資訊明文。
2、傳送者a對資訊進行雜湊運算(單向加密演算法),得到乙個資訊摘要。
3、傳送者a使用自己的私鑰(sk)對資訊摘要進行加密,即數字簽名,之後將其附件在傳送的資訊上。(實現不可否認性)
4、傳送者a隨機生成乙個對稱加密金鑰,並使用它對傳送的資訊包括摘要進行對稱加密,生成密文。
5、傳送者a再使用接收方的公鑰(pk)對第4步使用的隨機對稱金鑰進行加密,之後將其附加至第4步生成的密文上,一併發給接收者b。
6、接收者b收到傳送者a的密文後,首先使用自己的私鑰(sk)解密出對稱加密的金鑰。
7、接收者b使用對稱金鑰解密密文,得到附加摘要的資訊明文。
8、接收者b使用傳送者的公鑰(pk)解密摘要,獲得雜湊值
9、接收者b使用同樣的雜湊演算法再次對資訊明文計算,得到新的資訊摘要,與解密後的摘要比對,如果一致,則說明收到的資訊明文未被篡改。(保證資料完整性)
五、總結
以上的通訊模型很好的解決了資料完整性、不可否認性,但這個模型的依賴的關鍵點是雙方公鑰。
這個模型中雙方公鑰**無法驗證,而且在通訊前,如何獲得每個人的可信任的公鑰也成了整個系統的關鍵。
因此,需要一套系統,能夠解決以上存在的種種問題:身份認證、資料完整性、金鑰交換、操作的不可否認性,它就是pki。
加密解密及安全網路通訊模型
一 前言 加密技術是一門古老而深奧的學科,長期以來,都應用在很小的範圍,如軍事 外交 情報等部門。西元前405年,斯巴達的將領就使用了原始的錯亂密碼 公元1世紀,羅馬皇帝凱撒就使用了有序的單錶代替密碼。中國古代出現的 符 也是一種資料加密的方法。20世紀初,電子通訊技術的發展,尤其是兩次世界大戰中,...
安全網路通訊SSL
ssl secure socket layer 是netscape公司開發的,用資料加密技術來保障internet上資料傳輸的安全,保證資料在傳輸過程中不會被擷取和竊聽。ssl協議位於tcp ip協議與各種應用層協議之間,為資料通訊提供安全支援。ssl協議分為兩層 1 ssl記錄協議,建立在可靠的傳...
用OpenSSL結合ACE 做安全網路通訊
1 ssl x509證書工作原理參考 1.1 公鑰密碼系統 在公鑰密碼系統中,加密與解密使用不同的金鑰。其中乙個金鑰為個人私有掌管,稱之為私鑰,另乙個金鑰是對外公開的,大家都可以獲取到。公鑰密碼系統的一大特點 用公鑰加密的報文只有私鑰才能解密。同樣,用私鑰加密的報文只有公鑰才能解密。ssl證書由兩部...