?

一種動態加密因子的對稱加解密通信算法研究

2018-03-04 07:03任琦王彩梅
電腦知識與技術 2018年36期
關鍵詞:解密加密

任琦 王彩梅

摘要:該文基于傳統加解密算法模式衍生出一種動態加密因子的對稱加解密通信算法,保密性能好,簡單且高效,適用于金融類客戶端/服務器模式軟件系統的通信。

關鍵詞:加密;解密;動態因子;安全通信

中圖分類號:TP309.7? ? ? ? 文獻標識碼:A? ? ? ? 文章編號:1009-3044(2018)36-0011-02

1 概述

隨著中國經濟的飛速發展,我國已經是世界第二大經濟體,在互聯網時代,國內的網絡金融類軟件系統使用率日益增加,諸如銀行、基金、證券等相關實時交易系統,對系統的安全性有非常高的要求,其中數據的加密和脫敏兩類操作是系統安全性的核心指標。

恒生電子,同花順,金證股份等國內的大型軟件廠商在金融類軟件系統領域投入很多資源進行設計和開發,在數據的交互、傳輸、存儲等方面的架構設計和開發上較為周密和嚴格,而架構中的安全性設計,更是設計的重中之重,可見保障金融類軟件系統的網絡通信安全十分重要。

2 背景和相關技術

目前流行的加密通信方法有很多,但是根據密鑰類型的不同,可以為兩大類,對稱加密通信和非對稱加密通信。對稱加密通信中加密和解密均采用相同的密鑰,即加密密鑰也作解密密鑰。對稱加密通信加密算法簡單、速度較快,適合大數據量的傳輸。非對稱加密通信中有一對密鑰,公鑰和私鑰,一般如果使用公鑰對數據進行加密,則對應的私鑰用來解密;如果使用私鑰對數據進行加密,則對應的公鑰才能解密。非對稱加密通信算法復雜、安全性高,但速度慢,適合小數據量的傳輸。

在金融類軟件系統中,客戶端\服務器(C\S)模式的軟件系統十分常見,在設計這類軟件系統時,用戶登錄是必不可少的一個環節,從狹義上看用戶登錄是客戶端用戶為進入服務器中某一項應用程序而進行的一項基本操作,而從廣義上看,用戶登錄是服務器對客戶端用戶進行的身份驗證、授權操作,更是客戶端到服務器通信的安全傳輸的第一道防線。如何在用戶登錄提交用戶名和密碼時,建立客戶端與服務器之間的安全通信是個值得研究的問題。

據了解,目前現有金融類軟件系統中,通常的做法是在各個環節進行加解密,加解密通信算法通常采用的是固定因子,采用固定因子的加解密通信通常對不同客戶端加密相同數據時,產生的密文不唯一,安全性較低,容易被破解。本文提出的加密算法是基于傳統常見的算法模式衍生的動態加密模式,較目前國內各大廠商使用的現有加密算法更加安全可靠。

3 基于動態加密因子的對稱加解密通信算法的設計思路

基于動態加密因子的對稱加解密通信算法,采用動態加密因子作為算法因子。動態加密因子由兩部分組成,一個是登錄的用戶名(注:包含用戶名但不限用戶名,這里泛指所有可變的動態字符串,例如:時間戳、GUID(全局唯一標識符)、隨機數等等,本文統一采用“登錄用戶名”描述),一個是可配置的混淆因子。

3.1 客戶端和服務器端的身份互驗算法設計思路

首先在客戶端登錄前,與服務器交互,服務器端產生動態加密因子,客戶端在獲得用戶令牌(user token)的同時獲動態因子??蛻舳藢討B加密因子,通過一定規則運算后得到一個密鑰FA,該密鑰為偽密鑰,即不是用來真正作加解密工作的密鑰,該密鑰僅為一個過程變量。將偽密鑰FA進行HASH-SHA1運算,得到HASH值hash_A,并將該值傳遞到服務器端。HASH的目的是隱藏偽密鑰中的登錄用戶名和混淆因子信息。

服務器端也將動態加密因子,通過相同的規則運算后,得到一個偽密鑰FB,將偽密鑰FB進行HASH-SHA1運算,得到HASH值hash_B,并將該值傳遞到客戶端??蛻舳撕头掌鞫烁髯詫ash_B與hash_A值做比較,如果兩個值相等,則通過雙方的身份驗證。

算法流程如圖1所示。

3.2 客戶端和服務器端的安全通信算法設計思路

客戶端將偽密鑰FA進行HASH_MD5運算,得到密鑰RA,該密鑰為真密鑰,即用來真正作為加解密工作的密鑰。服務器端也對偽密鑰FB進行HASH_MD5運算,得到密鑰RB??蛻舳擞肦A對傳輸的明文數據進行加密,將密文傳到服務器后,服務器收到密文后,用RB來解密獲得明文,反之亦然。

事實上,在整個加解密通信過程中,采用了對稱加密算法,簡化了加解密的工作量,并且該算法一定程度上保證了用戶傳輸密文的唯一性。

算法流程如圖2所示:

3.3 偽密鑰生成思路

客戶端獲取在服務器端生成的混淆因子后,使用排隊的方式形成密鑰,排隊規則為,用戶名的第一個字符排第一位,混淆因子的第一個字符排第二位,用戶名的第二個字符排第三位,混淆因子的第二個字符排第四位,依次類推。通常建議混淆因子要配置為比用戶名字符長度長的字符串,所以當用戶名字符排列完畢后,將剩余的混淆因子依次排在最后,最終排隊形成的新字符串為偽密鑰。

算法流程如圖3所示:

3.4 加密通信算法思路

異或的特點是原始值經過兩次異或后,該值后會還原成原來的值,所以可利用異或的這個特性來進行加解密。在發送端,可把明文與密鑰進行異或操作,生成密文,如圖4所示。將密文發送到接收端,再利用密鑰進行異或操作,就能得到明文,如圖5所示。

4 本算法優勢及擴展思路

4.1 本算法的優勢

1) 在客戶端與服務器端交互過程中,密鑰始終沒有被放到網上傳遞,不存在被截獲、被篡改、被破譯的威脅。密鑰被SHA1-HASH后,其值放到網絡上傳,長度160位,即使被截獲也很難破譯獲得原文。

2) 密鑰生成具有動態隨機性,且為一次性密鑰,密鑰不存儲,密鑰間的相關度為零,密鑰之間無法推導獲得。

3) 密鑰長度設計為128位,且為一次性密鑰,將明文和密鑰異或既簡單又可靠的加密方式,加解密速度較快,適用于大數據量的加解密。

4.2 本算法的擴展思路

本算法可以做進一步擴展設計,前文提到動態加密因子中的登錄的用戶名可以設置為其他任何動態值、隨機字符串等,例如:擴展登錄用戶名為用戶名+年月日、用戶名+時分秒等,其中年月日、時分秒這些作為一個動態值是在不斷發生變化的,具有一定的隨機性,這樣密鑰的長度和復雜度既得到增加,隨機性也得到增強。另外動態加密因子中的可配置的混淆因子可以替換為隨機函數,實現起來也比較方便。

參考文獻:

[1] 北京銳安科技有限公司.一種基于預設密鑰的對稱加密通信方法[P].中國:CN102387152A,2012.3.21.

[2] 褚萬青.一種對稱密碼表及對稱加密法[P].中國:CN104901811A,2015.9.9.

[3] 微軟公司.執行對稱加密的技術[P].美國:200952438,2009.12.16.

[通聯編輯:朱寶貴]

猜你喜歡
解密加密
解密“一包三改”
炫詞解密
炫詞解密
一種基于熵的混沌加密小波變換水印算法
一種基于LWE的同態加密方案
認證加密的研究進展
解密“黑匣子”
吳王余眜劍解密
基于ECC加密的電子商務系統
解密“大調解”
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合