探秘密碼學 深入了解對稱加密與金鑰協商技術

2022-06-07 15:24:08 字數 3159 閱讀 2771

作者丨京東智聯雲-平台安全組 張驚申

密碼,已經成為當代網際網路人每天使用頻率最高的東西,它在默默地守護著我們的資訊保安。而人們對密碼卻始終未給予足夠重視,以至於經常會出現「123456」這種弱密碼。你可能會覺得好笑,但這個密碼常年穩居最常見的密碼排行榜榜首,有250萬人在使用,在資料洩露方面的暴露次數超過2300萬次,黑客只需不到一秒鐘就可以成功破解。

好在我們的社會中,總有那麼一群人在不斷研究著密碼學,保護著我們的資訊保安、系統安全。密碼學歷史悠久,其首要目的是隱藏資訊的涵義,並不是隱藏資訊的存在。密碼學也促進了電腦科學,特別是在於電腦與網路安全所使用的技術,如訪問控制與資訊的機密性。密碼學已被應用在日常生活:包括自動櫃員機的晶元卡電腦使用者訪問密碼電子商務等等。

密碼學是一門浩瀚的學科,無數的學者和研究人員數十年鑽研往往也僅能取得非常微小的成績。下圖為筆者對密碼學框架的部分理解,足以見得密碼這門學科的博大精深。本文選取密碼學學科中的一小部分內容進行介紹和演示。

▲圖1 對密碼學學科框架的部分理解▲

加密的理論基礎是替代換位。替代主要用於擾亂,使用不同的位、字元或字元分組來替換原來的位、字元或字元分組。換位主要用於擴散,並不使用不同的文本來替換原來的文字,而是對原有的值進行置換,即重新排列原來的位、字元或字元分組以隱藏其原有意義。

對稱加密是一種加密與解密採用相同金鑰的加密演算法。其特點是速度快,效率高,所以被廣泛使用在很多加密協議的核心當中,也是我們平時接觸得比較多的一種加密方式。

▲圖2 對稱加密演算法加密解密過程▲

常見的對稱加密演算法

常見的對稱加密演算法主要有以下幾種:

資料加密標準(des,data encryption standard),使用64位金鑰,其中56位用於加密,8位用於奇偶校驗。由於加密強度較弱,已不推薦使用;

三重des,是des的公升級版。3des並沒有直接使用「加密->加密->加密」 的方式,而是採用了「加密->解密->加密」的方式。這樣實現的好處主要是,當三個金鑰均相同時,前兩步加密解密結果相互抵消,整體結果相當於僅實現了一次加密,因此可實現對普通des加密演算法的相容。這也是為什麼三重des可以流行,而二重des或者四重des則消失了;

高階加密標準(aes,advanced encryption standard),aes支援128、192和256位的金鑰,較於3des速度更快、安全性更高;

國際資料加密演算法(idea,international data encryption algorithm),使用的金鑰長度為128位;

blowfish演算法,金鑰長度為32-448位。

1,常見的金鑰分發方法

對稱加密需要雙方進行加密通訊前先協商分配好金鑰,一般來說金鑰分發可以是以下幾種方式:

alice選擇乙個金鑰後以物理的方式傳遞給bob;

第三方cindy選擇金鑰後物理地傳遞給alice和bob;

如果alice和bob之前已經使用過乙個金鑰,則一方可以將新金鑰用舊金鑰加密後傳送給另一方;

如果alice和bob與第三方cindy之間已有加密連線,則cindy可以在加密連線上將金鑰傳送給alice和bob。

2,更便捷的金鑰分發方式

受對稱加密演算法自身的特點影響,當多使用者之間使用對稱加密演算法進行通訊時,金鑰數量成指數增長,對金鑰的分發和管理帶來巨大的挑戰。當使用者數量為n,金鑰數量最多為n*(n-1)/2。比如有100個使用者,則最多需要4950個金鑰。

隨著技術的發展,對稱加密的金鑰分發也出現了一些新的解決方法,如非對稱加密演算法,diffie–hellman演算法等。採用這類演算法使得對稱加密金鑰的協商與管理變得更簡單和可靠。採用非對稱加密時n個使用者只需維護n個金鑰對,大大減小了金鑰規模。

diffie-hellman演算法(簡稱dh演算法)是whitefield diffie和martin hellman在2023年公布的一種秘鑰交換演算法。它是一種建立秘鑰的方法,而不是加密方法。基於這種秘鑰交換技術:通訊雙方在完全沒有對方任何預先資訊的條件下,可以通過不安全通道協商乙個金鑰。這個金鑰一般作為對稱加密的金鑰應用在雙方後續資料傳輸的加密上。

和非對稱加密演算法的理論基礎一樣,dh演算法也是基於乙個數學難題,即計算離散對數的難度。具體來說,假設alice需要與bob需要協商乙個秘鑰,是這樣乙個過程:

▲圖3 dh演算法金鑰協商過程▲

3,利用diffie-hellman演算法協商金鑰例項

經計算,alice與bob本次協商的金鑰為36。

原根計算方法python實現如下圖所示:

▲圖4 原根計算方法python實現▲

對於dh演算法來說,雖然雙方在沒有任何預先資訊的條件下,可以完成金鑰協商,但金鑰協商過程也存在中間人攻擊的風險。

現代密碼學中的安全是基於金鑰的保密性的,而不是古典密碼學的演算法的保密性。對於絕大部分普通使用者或者組織,相對於去嘗試自己開發乙個加密演算法,直接採用成熟的演算法,把精力放在金鑰保管上更為合理。

歡迎點選【京東智聯雲】,了解開發者社群

區塊鏈密碼學之對稱加密

對稱加密,顧名思義就是公鑰和私鑰都是同乙個,只有一把金鑰,那麼金鑰的共享就需要特別注意,容易洩露。但是由於它的加密效率高 速度快 占用空間小 主要用在大量資料的加密,往往需要提前分發金鑰。對稱密碼從實現上可以分為兩種 分組密碼和序列密碼。前者將明文切分為定長資料塊作為基本加密單位,應用最為廣泛。後者...

密碼學 對稱與非對稱加密 雜湊演算法

目錄 密碼學密碼學發展 對稱加密體制 非對稱加密體制 混合加密 數字信封 雜湊演算法 加密和解密秘鑰相同,或者由乙個能很容易的推出另乙個。對稱加密演算法如 des 3des aes加密等 優點 缺點 加密和解密秘鑰不相同。其中,對外公開的秘鑰,稱為公鑰。不對外公開的秘鑰,稱為私鑰。對稱加密演算法如 ...

密碼學常見基本概念 對稱加密

對稱加密 對稱加密也叫私鑰加密,指加解密使用相同秘鑰的加密演算法。資料發信方將明文 原始資料 和加密金鑰一起經過特殊加密演算法處理後,使其變成複雜的加密密文傳送出去。收信方收到密文後,若想解讀原文,則需要使用加密用過的金鑰及相同演算法的逆演算法對密文進行解密,才能使其恢復成可讀明文。在對稱加密演算法...