缺點:加解密過程的安全性完全依賴於密鑰,並且對稱加密密鑰是公開的,當通訊加密對象過多時,無法解決密鑰管理問題。
對稱加密算法就好比將普通算法的規則手冊放入到了保險櫃裡,只有獲取保險櫃和保險櫃鑰匙才能獲取《算法手冊》
優點:實現了數據機密傳輸,避免了明文傳輸數據的危險性。
③ 定長輸出,無論源數據多大,但結果都是一樣的
根據數據生成特徵碼(數據指紋信息);接收數據方獲取數據信息算出特徵碼,驗證是否與發送過來的特徵碼一致
若特徵碼一致,表示數據完整性沒被破壞;若特徵碼不一致,表示數據已被破壞,直接丟棄
擴展說明:
01:不同數據的特徵碼(數據指紋信息)是不可能一致的
單項加密算法特徵
· 數據輸入一樣,特徵碼信息輸出必然相同
· 雪崩效應,輸入的微小改變,將造成輸出的巨大改變
· 定長輸出,無論源數據多大,但結果都是一樣的
· 不可逆的,無法根據數據指紋,還原出原來的數據信息。
優點:有效的解決了數據完整性問題
缺點:沒有考慮中間人攻擊對數據信息的影響
02: 利用單項加密算法(加密特徵碼)
利用對稱加密算法對數據加密的同時,也對特徵碼進行加密;
接收方擁有和發送方一樣的密鑰,才可以解密加密後的數據和特徵碼
而中間人加密的特徵碼是沒有辦法讓接收方進行解密的,所以接收方獲取不了特徵碼,直接丟棄數據
擴展說明:
01:那麼對稱密鑰如何有效的讓通訊雙方獲取呢
需要進行對稱密鑰協商過程,即通過密鑰交換機制(Internet key exchange IKE)
實現密鑰交換機制的協議稱為diffie-hellman協議
diffie-hellman協議算法實現的過程:
a) 首先發送方選取一個大素數P(只能被1和自己整除的數),再選取一個生產數g,並且發送方P與g經過互聯網傳輸到接收方
b) 數據傳輸的兩端,發送方選擇一個隨機數x,接收方選取一個隨即數y;發送方只知道隨機數x,接收方只知道隨機數y,x和y不在互聯網上進行傳輸
c) 接收數據雙方開始進行計算,對於發送方進行計算g的x次方對P取模的結果,傳輸給接收者,而接收方進行計算g的y次方對P取模的結果,傳輸給發送者。
d) 此時對於接收方獲取到了發送方的g的x次方對P取模的結果,在取模結果的基礎上進行y次方的運算,y就是接收方自身產生的隨機數y;而對於發送方獲取到了接收方的g的y次方對P取模的結果,在取模結果的基礎上進行x的次方的運算,x就是發送方自身產生的隨機數x。此次,雙方的加密運算密鑰就實現了交換,並且是統一一致的,最終的密鑰為g的xy次方對P取模的結果