專利名稱:安全系統中流密碼、偽隨機數產生方法
技術領域:
本發明涉及用于安全認證中的偽隨機數產生方式,和安全傳輸中對高速數據流進行加密 的流密碼生成方式。
技術背景在數字時代,信息安全一直是人們關注的焦點。在各種信息傳送系統中,為了保證參與 信息交換的實體是合法的、有效的,需要對參與實體的身份進行安全認證。例如在軍事通信 中需要對對方的身份進行認證,以防止軍事情報信息的泄露;在電子商務等互聯網環境中, 需要對對方的身份進行鑒別,防止非法分子的惡意攻擊和破壞;在智能卡等應用環境中,需 要對接入設備的合法有效性進行認證。同時,對在合法設備之間的數據傳輸也必須進行加密 保護,防止被第三方竊聽、盜取。例如在數字電視領域,在合法的視頻源設備與顯示設備的 接口間必須進行加密保護,防止影音內容被非法竊取、肆意盜版。在安全系統中,在通信雙方進行傳輸加密的數據之前,要對設備進行身份認證以保證通 信雙方的身份都是真實的、合法有效的。如果認證不能獲得成功,則不進行數據傳輸或者不 能對加密的數據進行正確的解密,以讓受保護的數據信息不受非法侵害。但是對通信的雙方 ,其頒發的數字證書或識別ID都是固定的,在認證過程中交換的數據也需遵循固定的格式和 流程,這就為不法分子進行重復攻擊留下了機會。如果,不法分子多次竊聽通信雙方在認證 過程中傳輸的數據,就可以分析出通信雙方的信息,或者竊取通信數據,偽裝成合法設備, 竊取秘密信息。目前,為了增加安全認證系統的安全性,通信雙方都會在認證過程中加入偽 隨機數,以降低認證過程中的數據重現率,增加不法分子攻擊的難度。但是隨著計算機技術 的進步,普通的偽隨機數產生方法已經不能滿足信息安全的要求,不法分子可以利用重放、 假冒、統計等方法進行攻擊,其隨機性不足以抵抗攻擊。 一旦偽隨機數的產生方式被破解, 系統將面臨被徹底破解的威脅。因此,需要一種安全性更好、更強大的偽隨機數產生方式。流密碼的情況與偽隨機數的情況相同。現在,為了實現對高速數據流進行實時加解密, 傳統的分組加密已經變得不合時宜,流密碼開始被廣泛應用。例如國外的HDCP (寬帶數字內 容保護)系統。HDCP用于保護HDMI和DVI接口傳輸的數字內容,其中使用的加密技術也是流 密碼技術。用于HDCP保護的普通流密碼、偽隨機數生成機制包含三個線性反饋移位寄存器、 S盒子、兩個線性變換模塊和一個組合輸出模塊(詳見圖l)。其中,三個線性反饋移位寄存器LFSR每個時鐘觸發為S盒子和線性變換模塊提供1比特的更新數據。兩個輪函數變換,輸出 168比特的數據,密鑰流輸出函數選取其中的部分數據作為輸出,經過線性變換,每次脈沖 輸出24比特的數據流。HDCP的流密碼保護機制包含三個LFSR,輸入密鑰長度為56比特,對于 目前高速的計算機搜索速度來說,這一長度的密鑰并不足以抵抗密鑰搜索攻擊。另外,HDCP系統已經被證實安全性不高,攻擊者只需要大約40臺裝有HDCP系統的設備, 就可以得到一些系統參數,進而在沒有授權的情況下可以任意制造非法設備,而且這些非法 設備不能被合法設備檢驗出來。而目前絕大多數的流密碼、偽隨機數產生系統都采用了與 HDCP類似的架構,安全性不足幾乎已經成為流密碼、為隨機數產生系統的一個致命弱點。變換結果稱為雜湊值。在密碼學中,雜湊函數h的基本特性必須滿足找到兩個不同的輸 入雜湊成同一個雜湊值是計算上不可行的,同時對于一個給定的雜湊值y,找到一個輸入x, 是h (x) 二y成立也是計算上不可行的。雜湊函數通常應用在數字簽名和數據完整性檢査中, 本發明利用雜湊變換的特性以消除數據相關性。發明內容本發明所要解決的技術問題是,提供一種基于雜湊函數的增強型偽隨機數、流密碼產生 方法。本發明為解決上述技術問題所采用的技術方案是,安全系統中流密碼、偽隨機數產生方 法,包括以下步驟a、 經過認證后產生共享密鑰Ki;b、 將共享密鑰Ki輸入線性反饋移位寄存器,利用線性反饋移位寄存器對共享密鑰Ki進 行置亂,將置亂后的Ki選擇輸出得到線性反饋移位寄存器輸出結果Si;c、 將線性反饋移位寄存器輸出結果Si、隨機數An和前一流密碼序列的部分數據Mi,作 為S盒子與線性變換模塊的輸入,經過S盒子變換與線性變換,得到S盒子與線性變換模塊輸 出結果Gi;d、 將S盒子與線性變換模塊輸出結果Gi輸入至輸出組合模塊,通過特定的組合邏輯進行 位組合與變換,得到輸出組合模塊輸出結果Ci;e、 將輸出組合模塊輸出結果Ci作為生成的流密碼序列或偽隨機數序列; 其特征在于,對上述步驟中所述共享密鑰Ki、線性反饋移位寄存器輸出結果Si、隨機數An、前一流密碼序列的部分數據Mi、 S盒子與線性變換模塊輸出結果Gi、輸出組合模塊輸出 結果Ci中任意一個或多個進行雜湊變換。本發明的有益效果是,使生成的流密碼、偽隨機數具有的單向特性,提高了偽隨機數、流密碼的安全性。
圖l是現有的流密碼、隨機數產生結構; 圖2是本發明流密碼、偽隨機數產生結構l; 圖3是本發明流密碼、偽隨機數產生結構2; 圖4是本發明流密碼、偽隨機數產生結構3; 圖5是本發明流密碼、偽隨機數產生結構4;圖6是本發明流密碼、偽隨機數產生結構5;圖7是本發明流密碼、偽隨機數產生結構6。
具體實施方式
如圖1所示,現有的流密碼、隨機數產生方法如下a、 經過認證后產生共享密鑰Ki;b、 將共享密鑰Ki輸入線性反饋移位寄存器,利用線性反饋移位寄存器對共享密鑰Ki進行置亂,將置亂后的Ki選擇輸出得到線性反饋移位寄存器輸出結果Si;c、 將線性反饋移位寄存器輸出結果Si、隨機數An和前一流密碼序列的部分數據Mi,作 為S盒子與線性變換模塊的輸入,經過S盒子變換與線性變換,得到S盒子與線性變換模塊輸出結果Gi;d、 將S盒子與線性變換模塊輸出結果Gi輸入至輸出組合模塊,通過特定的組合邏輯進行位組合與變換,得到輸出組合模塊輸出結果Ci;e、 將輸出組合模塊輸出結果Ci作為生成的流密碼序列或偽隨機數序列;本發明在流密碼、偽隨機數的產生過程或使用過程中使用雜湊函數,對流密碼、偽隨機數產生過程中的輸入初始數據(共享密鑰Ki),或中間過程數據(線性反饋移位寄存器輸出 結果Si、 S盒子與線性變換模塊輸出結果Gi),或輸出流密碼序列、偽隨機數(輸出組合模 塊輸出結果Ci)進行雜湊變換,以達到提高流密碼、偽隨機數產生方式安全性的目的。可對共享密鑰Ki、線性反饋移位寄存器輸出結果Si、隨機數An、前一流密碼序列的部分 數據Mi、 S盒子與線性變換模塊輸出結果Gi、輸出組合模塊輸出結果Ci中任意一個或多個進 行雜湊變換安全系統完成認證,產生共享密鑰Ki。將共享密鑰Ki,或者再加上一個可選擇參數Vi, 輸入線性反饋移位寄存器LFSR。利用LFSR對Ki、 Vi進行置亂,然后將置亂后的Ki選擇輸出, 得到線性反饋移位寄存器輸出結果Si。在這一過程中可以先對Ki、 Vi進行雜湊變換,如圖2所示,再將變換結果Xi作為LFSR的輸入。這樣可以使線性反饋移位寄存器輸出結果Si與共享 密鑰Ki的相關性大大降低,而且只要Ki、 Vi發生很小的變化,輸出結果Si將發生很大的變化 ,要從Si得到Ki在計算上是不可行的。當然,也可對Ki或Vi單獨進行雜湊變換。將線性反饋移位寄存器輸出結果Si輸入到S盒子與線性變換模塊中。在這一過程中可以 先對Si進行雜湊變換,如圖3所示,再將變換結果Xi作為S盒子與線性變換模塊的輸入。經過 進一步的變換得到一個與Si幾乎不相關的S盒子與線性變換模塊輸出結果Gi。當然,如圖4所 示,也可將任意隨機數An和前一流密碼序列的部分數據Mi進行雜湊變換,得到變換結果Xi, 將Xi作為S盒子與線性變換模塊的輸入,經過一系列的S盒子變換或線形變換,得到S盒子與 線性變換模塊輸出結果Gi。 S盒子變換可以是一個,也可以是多個,可以是多重S盒子變換, 也可以是多個S盒子并行變換。線性變換可以是矩陣運算,也可以行列變換,甚至移位變換將S盒子與線性變換模塊輸出結果Gi輸入至輸出組合模塊,通過特定的組合邏輯進行位 組合與變換,得到輸出組合模塊輸出結果Ci。在此過程中,可將Gi先進行雜湊變換,并將變 換結果Xi輸入至輸出組合模塊,如圖5所示;也可將組合模塊輸出結果Ci直接進行雜湊變換 ,將變換結果Xi作為生成的流密碼序列或偽隨機數序列,如圖6所示。如圖7所示,組合模塊輸出結果Ci作為流密碼序列或偽隨機數序列輸出,同時將Ci進行 雜湊變換后,將變換結果Xi的結作為下一次流密碼、偽隨機數產生器的種子。當然,還可對上述的任意基于雜湊變換的隨機數、流密碼產生方法組合使用,進一步降 低前一個流密碼序列與后一個流密碼序列的相關性。根據系統對流密碼、偽隨機數安全性的要求,使用者可以直接利用組合模塊輸出結果 Ci作為流密碼來進行加解密,或作為偽隨機數以加強認證過程的安全性。對于特殊場合的流 密碼、偽隨機數的應用,如需要對流密碼、偽隨機數產生器的初始密鑰進行更新的場合。可 以存儲l個或幾個流密碼、偽隨機數,然后利用雜湊函數對存儲的流密碼進行雜湊變換,將 變換后的結果作為新的流密碼序列的初始密鑰,使整個流密碼加密或擾亂機制更加有效。在以上的流密碼、偽隨機數產生過程中,發送設備和接收設備必須成功完成認證,并產 生相同的共享密鑰。然后發送端和接收端就可以利用基于雜湊函數的流密碼、偽隨機數產生 算法在兩個設備中生成相同的流密碼、偽隨機數,為數據加解密或下一步認證建立基礎。基 于雜湊函數產生的流密碼、偽隨機數具有更好的隨機性,使流密碼序列中兩個相鄰數或兩個 相鄰的流密碼序列的相關性大大降低。同時,由于雜湊函數的單向特性,使得利用截取的流 密碼去破解流密碼產生算法,變得不可行,這大大加強了流密碼、偽隨機數產生的安全性。在認證過程中或保密數字內容傳輸中,安全的流密碼、偽隨機數產生算法對可以大大增強系 統的安全性。發送設備和接收設備利用流密碼、偽隨機數對傳輸的數據進行加密和解密,即 使部分流密碼、偽隨機數被截獲,也可以保證系統的安全。具體操作實現時,改算法可以根據實際情況的不同,靈活應用。首先設計選定一種流密 碼、偽隨機數產生算法,可以是已有的各種常規算法,也可以是自行設計的新算法。然后選 擇合適的雜湊算法。如上所述,雜湊算法與流密碼、偽隨機數產生算法的組合可以是很靈活 的。為簡便起見,本實施實例選用了常規的流密碼、偽隨機數產生算法和NIST所制定的 SHA-256算法。實施例如圖2所示流密碼、偽隨機碼生成流程為例1、 假設設備已經完成完全認證,并產生共享密鑰K, Ki=0xba7816bf8f01cfea414140de5dae2223 Vi=0xb00361a396177a9cb410ff61f20015ad ;2、 把K進行雜湊變換,得到Xi,3、 將Xi作為LFSR的輸入,經過若干個時鐘的運算后,得到輸出Si,4、 將LFSR的輸出Si,作為S盒子與線性變換模塊的輸出,經變換后得到輸出Gi, Gi=0xf7df34725cc33d;5、 將Gi作為輸出組合邏輯,得到如下流密碼序列,每一個時鐘,同步輸出l個流密碼, Cf0x6e345142C2=0xel5d4409 C3=0xdd720945 C4=0x45d5c078 C5=0xlbf6b82bC3oo=Oxcl31caGl C30l=0xc5cf a3%流密碼的理論周期為232個,故此流密碼序列的長度可以在232周期內,由使用者隨意選擇;6、 按一定的規則截取流密碼序列中的部分流密碼,作為下一次流密碼更新的初始向量 128位的Mi,Mi=0xccff36493fe4c391cl31ca61c5fa396;7、 利用前一步產生的Mi和外部生成的128位的隨機數An,作為下一個流密碼序列的初始 向量和初始密鑰,并根據密鑰更新控制信號生成新的流密碼序列、偽隨機碼序列;8、 重復第6步,第7步產生任意長度的流密碼序列、偽隨機碼序列。
權利要求
1. 安全系統中流密碼、偽隨機數產生方法,包括以下步驟a、經過認證后產生共享密鑰Ki;b、將共享密鑰Ki輸入線性反饋移位寄存器,利用線性反饋移位寄存器對共享密鑰Ki進行置亂,將置亂后的Ki選擇輸出得到線性反饋移位寄存器輸出結果Si;c、將線性反饋移位寄存器輸出結果Si、隨機數An和前一流密碼序列的部分數據Mi,作為S盒子與線性變換模塊的輸入,經過S盒子變換與線性變換,得到S盒子與線性變換模塊輸出結果Gi;d、將S盒子與線性變換模塊輸出結果Gi輸入至輸出組合模塊,通過特定的組合邏輯進行位組合與變換,得到輸出組合模塊輸出結果Ci;e、將輸出組合模塊輸出結果Ci作為生成的流密碼序列或偽隨機數序列;其特征在于,對上述步驟中所述共享密鑰Ki、線性反饋移位寄存器輸出結果Si、隨機數An、前一流密碼序列的部分數據Mi、S盒子與線性變換模塊輸出結果Gi、輸出組合模塊輸出結果Ci中任意一個或多個進行雜湊變換。
2.如權利要求l所述安全系統中流密碼、偽隨機數產生方法,其特征 在于,步驟b中,還將一個可選擇參數Vi輸入線性反饋移位寄存器。
3.如權利要求2所述安全系統中流密碼、偽隨機數產生方法,其特征 在于,步驟b中,將可選擇參數Vi經過雜湊變換后輸入線性反饋移位寄存器。
4.如權利要求l所述安全系統中流密碼、偽隨機數產生方法,其特征 在于,所述S盒子變換為多重S盒子變換或多個S盒子并行變換。
5.如權利要求1或4所述安全系統中流密碼、偽隨機數產生方法,其 特征在于,所述線性變換為矩陣運算、行列變換或移位變換。
全文摘要
本發明涉及安用于安全認證中的偽隨機數產生方式,和安全傳輸中對高速數據流進行加密的流密碼生成方式。本發明提供一種基于雜湊函數的增強型偽隨機數、流密碼產生方法。安全系統中流密碼、偽隨機數產生方法,在常規的流密碼、偽隨機數產生流程中將共享密鑰Ki、線性反饋移位寄存器輸出結果Si、隨機數An、前一流密碼序列的部分數據Mi、S盒子與線性變換模塊輸出結果Gi、輸出組合模塊輸出結果Ci中任意一個或多個進行雜湊變換。本發明使生成的流密碼、偽隨機數具有的單向特性,提高了偽隨機數、流密碼的安全性。
文檔編號H04L9/18GK101242265SQ200810300498
公開日2008年8月13日 申請日期2008年3月7日 優先權日2008年3月7日
發明者余有勇, 勇 陳 申請人:四川虹微技術有限公司