密碼學包括兩個分支:密碼編碼學和密碼分析學。密碼編碼學主要研究安全的密碼演算法和協議,來實現資訊加密保護或訊息認證;密碼分析學主要研究破譯密文資訊,進而獲取對應的明文資訊,這兩個分支既相互對立又相互依存,正是這種對立統一的關係推動了密碼學自身的發展。密碼演算法是密碼學的核心 ,現代密碼演算法的研究可大致分為三類:對稱密碼演算法(又稱為私鑰密碼演算法)、非對稱密碼演算法(又稱為公鑰密碼演算法)和hash演算法。以下是對密碼演算法以及在公鑰密碼體制的數字簽名技術的介紹。
對稱密碼演算法是指加密金鑰和解密金鑰相同的密碼演算法,又稱單金鑰演算法。如圖1所示(其中m-明文空間,c-密文空間,k-金鑰空間,e-加密演算法,d-解密演算法,下同)。
圖1 對稱密碼
對稱密碼體制中加密金鑰和解密金鑰必須同時儲存,其特點為加密速度快,適用於大資料加密,但金鑰管理困難。
對稱密碼演算法又可以分為流密碼演算法和分組密碼演算法,常見的對流密碼演算法有rc4;常見的分組密碼演算法有des、idea、rc2、aes、sm4等。
非對稱密碼體制和對稱密碼體制最大的區別在於非對稱密碼體制中加密金鑰和解密金鑰不同,從乙個金鑰很難推導出另外乙個金鑰,非對稱密碼演算法又稱公開金鑰演算法或公鑰演算法。該演算法使用乙個金鑰進行加密,用另外乙個金鑰進行解密,公鑰密碼成對出現,其中乙個金鑰可以公開,稱為公鑰,另外乙個必須保密,稱為私鑰。加解密過程如圖2所示。
圖2 非對稱密碼體制
非對稱密碼體制特點有密碼易管理,不需要傳送金鑰,每個使用者只需儲存好自己的私鑰,主要應用於資料加密、數字簽名和身份認證。
常見的非對稱密碼演算法有rsa、dh、dsa、ecdsa、ecc、sm2等。
摘要演算法是指把任意長的輸入訊息資料轉化為固定長度的資料的一種密碼演算法,又稱雜湊函式、單列函式、雜湊函式、雜湊函式。輸出固定的值為稱為hash值、雜湊值或訊息摘要。
設為乙個hash 函式, 該函式需滿足以下幾個條件:
1) 輸入的長度任意,輸出的長度固定;
2) 對於給定的輸入,計算輸出的hash值容易;反過來,對於給定的hash 值,找出輸入,使得在計算上不可行;
3)兩個不同的輸入輸出相同,使得在計算上不可行;
常見的摘要演算法有md5、sha1、sm3等。
數字簽名又稱電子簽名,其思想**於手寫簽名,可以理解為數字世界中的電子簽名,數字簽名具有和物理簽名一樣的法律效力。
數字簽名的功能主要包括:接收方能夠確認傳送方的簽名,並且不能仿造;傳送方發出後的資訊,不能再否認;接收方接收到的簽名資訊,不能否認;若發生爭執,可有充分的證據進行審判。基於以上功能的要求,數字簽名只能通過非對稱密碼體制來實現,數字簽名製作和驗證過程如圖3所示。
圖3 數字簽名製作和驗證過程
數字簽名技術的流程如下:
step1 傳送方a使用hash演算法對訊息m運算,生成摘要值;
step2 傳送方a使用自己的私鑰對資訊摘要進行簽名(加密);
step3 傳送方a把資訊本身和已經簽名好的資訊摘要一起傳送給接收方b;
step4 接收方b使用相同的hash演算法對接收的資訊本身進行運算,生成新的資訊摘要;
step5 接收方b使用傳送方a的公鑰對已經簽名的資訊摘要進行驗籤(解密),獲取傳送方a的資訊摘要;
step6 接收方b比較兩個資訊摘要是否相同,如果相同則可以確認傳送方a的身份,以及資訊沒有被修改過;否則,表明資訊被修改過。
密碼學 密碼學基礎
密碼學是研究編制密碼和破譯密碼的技術科學。密碼學的安全目標至少包含三個方面 保密性 完整性 可用性。完整性 資源只有授權方以授權的方式進行修改,所有資源沒有授權則不能修改。可用性 資源只有在適當的時候被授權方訪問,並按需求使用。密碼系統由5部分組成 1 明文空間m 全體明文的集合 2 密文空間c 全...
密碼學基礎
在正式講解https協議之前,我們首先要知道一些密碼學的知識。明文 明文指的是未被加密過的原始資料。密文 明文被某種加密演算法加密之後,會變成密文,從而確保原始資料的安全。密文也可以被解密,得到原始的明文。金鑰 金鑰是一種引數,它是在明文轉換為密文或將密文轉換為明文的演算法中輸入的引數。金鑰分為對稱...
密碼學基礎
在密碼學中,我們稱原始的資訊為 明文 plaintext 加密之後的資訊為 密文 cipher text 所以加密就是把明文轉換成密文的過程,解密就是把密文轉換成明文的過程,轉換過程中所需要的資訊稱為 金鑰 簡單替代密碼 是通過把乙個字母轉換為另乙個字母進行加密,通過乙個相反的替換來對密文進行解密的...