國(guó)密算法在郵件加密系統(tǒng)中的應(yīng)用

隨著電子郵件應(yīng)用的快速發(fā)展,它在方便用戶溝通的同時(shí),其安全性也面臨著挑戰(zhàn)。如今很多郵件系統(tǒng)都會(huì)使用相應(yīng)的加密算法來(lái)保護(hù)郵件安全。下面我們就來(lái)了解一下國(guó)密算法在郵件加密系統(tǒng)中的應(yīng)用。

國(guó)密算法的介紹

  • SM4:是對(duì)稱密碼算法,分組長(zhǎng)度和密鑰長(zhǎng)度都是128b,加密算法和密鑰擴(kuò)展都使用相同的32輪迭代結(jié)構(gòu),以字節(jié)(8bit)和字為單位對(duì)數(shù)據(jù)進(jìn)行處理。SM4算法采用的是對(duì)合運(yùn)算,只是在加解密過程中使用的輪密鑰的順序不同,解密密鑰是加密密鑰的逆序。
  • SM3:是一種雜湊算法,主要應(yīng)用可以分為商業(yè)數(shù)字簽名和驗(yàn)證、消息認(rèn)證碼的生成與認(rèn)證等。SM3算法首先是要對(duì)長(zhǎng)度為l(l<264)的消息進(jìn)行填充,填充到合適的長(zhǎng)度,然后對(duì)填充好的數(shù)據(jù)進(jìn)行迭代壓縮,最后生成雜湊值,雜湊值是固定長(zhǎng)度,為256bit。

國(guó)密算法

國(guó)密算法在郵件加密系統(tǒng)中的應(yīng)用

SM4密鑰獲取

首先獲取SM4密鑰,SM4密鑰獲取方式有2種,第1種方式是用戶自己設(shè)置,輸入16b的字符作為SM4加密的密鑰。第2種方式是系統(tǒng)自己生成,系統(tǒng)隨機(jī)產(chǎn)生16個(gè)隨機(jī)數(shù)作為自身的密鑰,將隨機(jī)數(shù)以字符的形式存入密鑰key中。

獲取用戶私鑰

用戶通過在郵件系統(tǒng)中注冊(cè)獲取用戶唯一的身份標(biāo)識(shí)ID,通過獲取到的身份ID計(jì)算出該用戶的私鑰S,用安全的傳輸方式秘密發(fā)送給用戶。

郵件加密

對(duì)SM4密鑰進(jìn)行簽密

對(duì)第一步中獲取到的SM4密鑰進(jìn)行簽密,用接收者的身份標(biāo)識(shí)ID和自己私鑰S對(duì)SM4密鑰進(jìn)行簽密,將簽密結(jié)果?保存。

用SM3對(duì)待加密信件進(jìn)行壓縮編碼

首先要對(duì)待加密信體進(jìn)行填充,若信體m的長(zhǎng)度為l(l<264),首先將bit“1”增添在消息最后面,再添加k個(gè)“0”,k滿足l+1+k=448 mod 512的最小非負(fù)數(shù)。再添加一個(gè)64b比特串用以表示消息長(zhǎng)度,使得被填充后的消息m1的長(zhǎng)度為512N。然后使用SM3算法對(duì)填充好的數(shù)據(jù)進(jìn)行壓縮編碼,最終會(huì)得到512b的雜湊值V。

對(duì)壓縮編碼值進(jìn)行加密編碼

將壓縮編碼V用SM4算法以及發(fā)送者獲取到的密鑰對(duì)其進(jìn)行加密,密文C1以字符串的形式存儲(chǔ)。

郵件加密

用SM4對(duì)信件加密

將信件M按照16B分組,然后用獲得的SM4密鑰對(duì)其進(jìn)行加密(Ek就是表示用密鑰key進(jìn)行SM4加密):C=Ek(Mi)。

將密文塊級(jí)聯(lián)起來(lái)就是密文C2,對(duì)密文進(jìn)行編碼以便在網(wǎng)絡(luò)上傳輸。

待發(fā)送的文件

將各個(gè)信息按照接收者EMS名、發(fā)送者的EMS名、發(fā)送格式信息、簽密信息、密文信息的順序以規(guī)定的格式存入一個(gè)文本,加密過程結(jié)束。

郵件加密

解密過程

首先對(duì)接收到的密文進(jìn)行分離,分離出消息格式類型、接收者M(jìn)ES名、發(fā)送者M(jìn)ES名、分離出簽密密文?,用發(fā)送的身份標(biāo)識(shí)和接收者的私鑰S進(jìn)行解簽密,若解密成功則同時(shí)進(jìn)行簽名驗(yàn)證,解出的明文為SM4密鑰。接著通過用SM4密鑰對(duì)密文C1和C2解密,得到信件的明文m以及雜湊值u.再對(duì)明文進(jìn)行SM3壓縮編碼得到V',與解密的u進(jìn)行一致性檢驗(yàn),檢測(cè)是否信息被篡改,確保信息的完整性和真實(shí)性。

免責(zé)聲明:素材源于網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系刪稿。