?

TLS中加密算法的安全性分析*

2014-02-10 10:49彭亞雄
通信技術 2014年9期
關鍵詞:加密算法賦值復雜度

張 鑫,彭亞雄

(貴州大學電子信息學院,貴州貴陽550025)

TLS中加密算法的安全性分析*

張 鑫,彭亞雄

(貴州大學電子信息學院,貴州貴陽550025)

闡述了TLS協議的握手過程中服務器端與客戶端之間的交互,對其中關鍵的RC4加密技術即密鑰調度算法(KSA)、偽隨機書生成算法(PRGA)等進行分析,著重就目前的加密過程中偽隨機書生成算法(PRGA)存在的安全性問題進行分析。在猜測賦值分析方法基礎上分析了PRGA初始狀態已知值數量及分布規律與RC4破解的復雜度的相關性。特定情況下,該方法能有效的破譯RC4。

安全傳輸層 協議加密算法 偽隨機書生成算法 初始狀態復雜度

0 引 言

TLS(Transport Layer Security,傳輸層安全)是繼承Netscape公司于1994年研發的SSL(Secure Sockets Layer,安全套接層),為網絡通信提供安全及數據完整性的一種安全協議。TLS采用證書認證、協商加密算法、數據加密、加密密鑰交換等技術為高層協議提供數據封裝、壓縮、加密來保障數據在Internet上安全傳輸。協議主要提供用戶和服務器認證,確保數據正確發送到客戶端和服務器端;數據加密防止數據被竊取;數據完整性維護,確保數據在傳輸過程中不被篡改。

目前,TLS協議已于現在網絡商務中得到廣泛應用,但其中的RC4加密算法安全性還有待進一步提高,筆者將對此相關問題進行分析。

1 TLS協議結構

該協議分為兩層:記錄協議(Record Protocol)和之上的握手協議(Handshake Protocol)、更改密碼規格協議(Change Cipher Spec Protocol)和警告協議(Alert Protocol)[1],如圖1所示。

圖1 TLS在TCP/IP議棧中的位置Fig.1 Location of the TLS in TCP/IP stacks

協議握手有3個目的:

1)客戶端與服務器需要就一組用于保護數據的算法達成一致。

2)它們需要確立一組由那些算法所使用的加密密鑰[2]。

3)握手還可以選擇對客戶端進行認證。

協議握手過程:

a)客戶端發送ClientHello消息到服務器,它將包含所有加密算法列表和一個密鑰產生過程需要的隨機數。

b)服務器根據以上消息選擇一個加密算法,向客戶端發送服務器證書及密鑰產生所需的隨機數。

c)客戶端對服務器證書驗證,獲取公鑰,然后隨機生成pre_master_secret隨機字符串,使用公鑰加密發給服務器。

d)客戶端與服務器端根據pre_master_secret和隨機數值產生master_secret。

e)客戶端與服務器端相互校驗MAC值。

Change Cipher Spec Protocol通知對端進入對稱加密模式,而Alter Protocol則用來向通訊的另一方發出警告消息。

記錄協議將高層子協議收到的數據分段、壓縮、認證和加密再傳到下層協議。

2 TLS的加密算法

2.1 RC4算法概述

網絡上大約50%的TLS流量都是用RC4進行加密的,然而RC4的加密不安全性早在2001年的《“A practical attack on RC4”》這篇論文中提及。經過不斷改進,目前仍有漏洞被發現。

2.2 RC4算法具體描述

RC4算法由密鑰調度算法(KSA,Key Scheduling Algorithm)和偽隨機生成算法(PRGA,Pseudo Random Number Generation Algorithm)[3]兩部分組成,KSA算法用來初始化數組S序列,keylength定義了[1,256]的key的字節長度。首先,數組S被初始化,隨后由PRGA算法進行256為周期的循環列舉,每次處理過程都聯合key字節進行。KSA算法偽代碼如下:

在PRGA算法過程中,每次循環i加1,并將i指向的S值加到j上,然后交換S[i]和S[j],最后輸出S[i]與S[j]之和(取256的模)對應的S值。至多經過256次,S每個位置的值都被交換一次。PRGA算法偽代碼如下:

完整RC4加密流程如圖2所示,其中IV(Initialization Vector)初始化向量,CRC(Cyclic Redundancy Check)循環冗余檢驗,ICV(Integrity Check Value)完整性校驗值,PRNG代表Pseudo Random Number Generator。

圖2 RC4加密流程Fig.2 Encryption process of RC4

2.3 PRGA過程的安全分析

根據Knudsen等人的思想[4],針對PRGA過程的攻擊方法建立在能獲得足夠的PRGA輸出值的基礎上,來計算PRGA的初始狀態,如此將不需要密鑰就可以繼續產生輸出,RC4就可以成功破解。攻擊者可以通過對未知狀態的賦值,然后將輸出與已知輸出值及其他信息相校驗判斷,若矛盾,則說明賦值錯誤,如此循環可獲得正確狀態值。

通過以上方案,可以得到計算方法。設4個可能的未知變量:jt,S[it],S[jt]和S-1[Zt],S-1[Zt]表示輸出Zt對應的內部狀態S的位置,則有

對于任何可能未知的變量,只要知道其中3個就能求出第4個:

使用at表示t時的內部狀態中被賦過的值的總量,a表示初始內部狀態中已被賦值的總量。算法過程如下:

Step 1:判斷St-1[it]是否己賦值:

1)若已賦值,跳至step 2。

2)否則,將2n-at個未出現的值逐一賦給St-1[it],更新at,然后跳至step 2。

Step 2:檢查Zt是否等于at中某個值,即是否在內部狀態已知值之中:

1)若等于,可由計算得出St[jt]。并且不出現矛盾,將t+1,跳至step 1。

2)若不等,跳至step 3。

Step 3:檢查St-1[jt]是否己賦值:

若未賦值,逐一對St-1[jt]賦值,更新at。然后檢查是否有矛盾出現。若無矛盾,將t-1,跳至step 1。

每步的復雜度公式如下:

根據以上公式可計算出各種情形的初始內部復雜度,并且是在隨機狀態(a個已知的值隨機分布)下的平均復雜度,典型的n=8的情況見表4。由表1,當n<5時,這種方法十分有效。當n≥5時,就會十分困難,這就需要已知狀態值呈連續或某種相關,才能降低復雜度[5]。(表中左側數值代表已知狀態數k,右側指數則代表相應的復雜度c。)

表1 當n=4是隨機狀態的復雜度Table 1 Complexity of the random states whennequals 4

表2 當n=5是隨機狀態的復雜度Table 2 Complexity of the random states whennequals 5

表3 當n=6是隨機狀態的復雜度Table 3 Complexity of the random states whennequals 6

表4 當n=8時隨機狀態的復雜度Table 4 Complexity of the random states whennequals 8

當n=4的情況,所有內部狀態只有16個值,則可能的內部狀態就有16!即244個,在幾分鐘內就能算出其內部初始狀態,并且只需16或17個輸出字,此時該方法非常有效。但是,根據表2、表3、表4,當n≥5時,可知復雜度明顯高了許多,就當前計算機的計算能力想攻破RC4算法顯得很吃力。設k表示內部狀態中連續數值的數目,此時理論的復雜度與實驗得復雜度結果如表5。

表5 理論的復雜度與實驗復雜度比較Table 5 Comparison ofcomplexity between calculated and experiments

3 結 語

PRGA初始狀態取值狀態對RC4算法的安全性有決定性意義,然而對PRGA過程的破解又與已知值數量相關。本文猜測賦值分析方法的基礎上,分析了初始值分布隨機狀態下相關的復雜度問題,對于一般情況復雜度已經相當復雜。同時給出了在此方法下當初始值連續時的復雜度,其值約等于,更精確有效的算法還有待進一步分析研究和改進。

[1] 鄧曉軍,陳懷義.基于SSL/TLS的安全應用中獨立端口和磋商升級的研究[J].計算機工程與科學,2006 (04):23-25.

DENG Xiao-jun,CHENG Huai-yi.Research of the Secure Application in Independent Ports and Consult Upgrade Based on SSL/TLS[J].Computer Engnieering& App-lication,2006(4):23-25.

[2] 趙偉,曹云飛.RC4的密鑰碰撞[J].通信技術,2013, 46(12):74-76.

ZHAO Wei,CAO Fei-yun.Key Collisions of RC4[J]. Communications Technology,2013,46(12):74-76.

[3] MANTIN I,SHAMIR A.A Practical Attack on Broadcast RC4[C]//Proc.of the 8th International Workshop on Fast Software Encryption.[s.l.]:Springer-Verlag, 2002:157-159.

[4] KNUDSEN L R,MEIER W,PRENEEL B,et al.Analysis Methods for(Alleged)RC4[C]//Asiac;rypt'98. Berlin:Springer-Velag,1998:327-341.

[5] ITSIK Mantin,ADI Shamir.A Practical Attack on Broadcast RC4[C]//Proc.of the 8th International Workshop on Fast Software Encryption.[s.l.]:Springer-Verlag, 2002:87-104.

ZHANG Xin(1990-),male,graduate student,majoring in signal detection.

彭亞雄(1963—),男,副教授,主要研究方向為網絡安全。

PENG Ya-xiong(1963-),male,associate professor,majoring in network security.

Analysis on the Security of Encryption Algorithm in TLS

ZHANG Xin1,PENG Ya-xiong
(College of Electron and Information,Guizhou University,Guiyang Guizhou 550025,China)

This article expounds the interaction of between the client and server in the handshake of TLS protocol,then analyzes the key encryption technologies of RC4,including KSA,RPGA,and the current security issues in PRGA process.Based on the value-analysis method,the of between the quantity of the known PRGA initial states,the location and the complexity of RC4 crack is analyzed.In some particular conditions,this method can decode RC4 effectively.

TLS;encryption decryption algorithm;PRGA;initial state;complexity

TP393

A

1002-0802(2014)09-1071-04

10.3969/j.issn.1002-0802.2014.09.019

張 鑫(1990—),男,碩士研究生,主要研究方向為信號檢測;

2014-05-21;

2014-07-31 Received date:2014-05-21;Revised date:2014-07-31

猜你喜歡
加密算法賦值復雜度
基于DES加密算法的改進研究
基于整數矩陣乘法的圖像加密算法
一種低復雜度的慣性/GNSS矢量深組合方法
強賦值幺半群上的加權Mealy機與加權Moore機的關系*
混沌參數調制下RSA數據加密算法研究
求圖上廣探樹的時間復雜度
算法框圖問題中的易錯點
利用賦值法解決抽象函數相關問題オ
某雷達導51 頭中心控制軟件圈復雜度分析與改進
基于小波變換和混沌映射的圖像加密算法
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合