專利名稱:一種計算機對數據流進行處理的方法
技術領域:
本發明屬于信息安全領域,尤其涉及一種為保證信息安全對數據流采取的處理方法。
背景技術:
數據流的形式可以是數字、文字、圖形或聲音等,而數據流在經過解釋并賦予一定的意義后,便成為信息。數據處理是對數據的采集、存儲、檢索、加工、變換和傳輸,貫穿于社會生產和生活的各個領域,基本的目的是從大量的、可能是雜亂無章的、難以理解的數據中抽取并推導出對某些特定的人們來說是有價值和意義的數據。計算機技術的飛速發展推動了數據處理領域,因特網給眾多商家帶來了無限的商機,許多網絡黑客依照經濟利益或個人愛好,往往專門跟蹤^ternet的特殊群體或個別敏感用戶,盜取他們的網絡身份或銀行帳戶信息,再冒充合法用戶的身份,進一步侵入信息系統,非法盜取經濟、政治、軍事機密,為了保證因特網的安全和充分發揮其商業信息交換的價值,人們通常都會選擇預先對傳輸的信息進行處理。
發明內容
針對以上問題,本發明提供了一種計算機對數據流的處理方法,并將哈希算法的抗沖突性和對稱算法的高速加解密引入其中,以實現一種數據流的安全快速加解密。為達到以上目的,本發明采用了如下技術方案一種計算機對數據流進行處理的方法,包括以下步驟,步驟101 接收數據流;步驟102 獲取第一數值、第一參數、第二參數和第一關鍵數;步驟103 生成一個隨機數,所述隨機數的取值大于等于1小于等于所述第一參數減1 ;步驟104 將所述隨機數和所述第一數值按照第一運算進行計算得到第二數值, 將所述隨機數、所述第二參數和所述第一關鍵數按照第二運算計算得到第三數值;步驟105 判斷所述第三數值的縱坐標值的平方是否等于所述第三數值的橫坐標值的三次方、第一常數與所述第三數值橫坐標值平方的乘積以及第二常數三者之和,若相等則執行下一步,否則返回執行步驟103 ;步驟106 根據第一函數計算所述第三數值和所述第二數值得到第一密鑰、第二密鑰;步驟107 根據第二函數計算所述第一密鑰和所述數據流得到第四數值,根據第一算法計算所述第二密鑰和所述第四數值得到第一認證碼;步驟108 將所述第二數值、所述第四數值、所述第一認證碼按預設規則組合作為數據流的最終處理結果輸出。所述第一數值和第一關鍵數為二維數值,所述二維數值對應二維坐標系中的點,所述點是由滿足預設二元方程式的橫坐標值和對應的縱坐標值組成。步驟104中所述將隨機數和第一數值按照第一運算進行計算得到第二數值的具體過程如下a.將隨機數表示為二進制數,刪除出現在最高位的1,對二進制數形式的所述隨機數從高位到低位逐位檢查,凡遇0,則對當前結果執行翻倍計算,凡遇1,則對當前結果翻倍并與第一數值相加;b.當計算至二進制數末位時輸出的計算結果即為計算得到的第二數值;所述當前結果是指二進制數當前位的前一位的計算結果,當前結果的初始值為第一數值。所述對當前結果執行翻倍計算和所述對當前結果翻倍并與第一數值相加是采用預設加法器模塊實現的。步驟104中所述將隨機數、第二參數和第一關鍵數按照第二運算計算得到第三數值具體過程為先計算隨機數與第二參數的乘積,然后將這個乘積結果與第一關鍵數按照所述第一運算進行計算。所述預設加法器模塊執行加法運算的過程具體包括,(1)接收到第一輸入數、第二輸入數、第三輸入數、第四輸入數,獲取一個預設值;所述第一輸入數和第二輸入數分別為第一個二維數值的橫坐標值和縱坐標值,第三輸入數和第四輸入數分別第二個二維數值的橫坐標值和縱坐標值所述預設數的取值為 1。(2)對所述預設數執行預設模數的平方運算并將運算結果賦值給預設的第一臨時數;(3)對當前第一臨時數和所述預設數執行預設模數的乘法運算并將運算結果賦值給預設的第二臨時數;(4)對當前第一臨時數和第三輸入數執行預設模數的乘法運算并將運算結果賦值給第一臨時數;(5)對第二臨時數和第四輸入數執行預設模數的乘法運算并將運算結果賦值給第二臨時數;(6)對當前第一臨時數和第一輸入數執行預設模數的減法運算并將運算結果賦值給第一臨時數;(7)對當前第二臨時數和第二輸入數執行預設模數的減法運算并將運算結果賦值給第二臨時數;(8)判斷當前第一臨時數和第二臨時數是否同時都為零,若是則執行步驟(9), 否則判斷第一臨時數和第二臨時數其中之一是否為零,若是則返回錯誤,否則執行步驟 (9');(9)對所述預設數執行預設模數的平方運算并將運算結果賦值給第一臨時數;(10)對第一輸入數和第一臨時數執行預設模數的減法運算并將運算結果賦值給第二臨時數;(11)對第一輸入數和第一臨時數執行預設模數的加法運算并將運算結果賦值給第一臨時數;(12)對當前第一臨時數和第二臨時數執行預設模數的乘法運算并將運算結果賦值給第二臨時數;
(13)計算當前第二臨時數與數3的乘積并將相乘結果按預設模數取模,將取模結果賦值給第二臨時數;(14)計算第二輸入數與數2的乘積并將相乘結果按預設模數取模,將取模結果賦值給第二輸出數;(15)對當前第二輸出數和所述預設數執行預設模數的乘法運算并將運算結果賦值給第三輸出數;(16)對當前第二輸出數執行預設模數的平方運算并將運算結果賦值給第二輸出數;(17)計算當前第二輸出數與第一輸入數的乘積,并將相乘結果按預設模數取模, 將取模結果賦值給第三臨時數;(18)對當前第二輸出數執行預設模數的平方運算并將運算結果賦值給第二輸出數;(19)計算當前第二輸出數除以數2并將相除結果按預設模數取模,將取模結果賦值給第二輸出數;(20)對當前第二臨時數執行預設模數的平方運算并將運算結果賦值給第一輸出數;(21)計算第三臨時數與數2的乘積并對相乘結果按預設模數取模,將取模結果賦值給第一臨時數;(22)對第一輸出數和當前第一臨時數執行預設模數的減法運算,并將運算結果賦值給第一輸出數;(23)對第三臨時數和當前第一輸出數執行預設模數的減法運算并將運算結果賦值給第一臨時數;(24)對當前第一臨時數和第二臨時數執行預設模數的乘法運算并將運算結果賦值給第一臨時數;(25)對當前第一臨時數和當前第二輸出數執行預設模數的減法運算并將運算結果賦值給第二輸出數;(26)記錄當前的第一輸出數、第二輸出數、第三輸出數;(27)對第三輸出數執行預設模數的平方運算并將運算結果賦值給預設的第一轉換數;(28)對第三輸出數執行預設模數的三次方運算并將運算結果賦值給預設的第二轉換數;(29)計算當前第一輸出數除以第一轉換數并對相除結果按預設模數取模,將取模結果賦值給第一輸出數;(30)計算當前第二輸出數除以第二轉換數并對相除結果按預設模數取模,將取模結果賦值給第二輸出數;(31)輸出當前的第一輸出數和第二輸出數。(9')對當前第一臨時數和所述預設數執行預設模數的乘法運算并將運算結果賦值給第三輸出數;(10')對當前第一臨時數執行預設模數的平方運算并將運算結果賦值給第三臨時數;(11')對當前第三臨時數和第一臨時數執行預設模數的乘法運算并將運算結果賦值給第四臨時數;(12')對當前第三臨時數和第一輸入數執行預設模數的乘法運算并將運算結果賦值給第三臨時數;(13')計算當前第三臨時數與數2的乘積并對相乘結果按預設模數取模,將取模結果賦值給第一臨時數;(14')對當前第二臨時數執行預設模數的平方運算并將運算結果賦值給第一輸出數;(15')對當前第一輸出數和第一臨時數執行預設模數的減法運算,并將運算結果賦值給第一輸出數;(16')對當前第一輸出數和第四臨時數執行預設模數的減法運算,并將運算結果賦值給第一輸出數;(17')對當前第三臨時數和第一輸出數執行預設模數的減法運算,并將運算結果賦值給第三臨時數;(18')對當前第三臨時數和第二臨時數執行預設模數的乘法運算,并將運算結果賦值給第三臨時數;(19')對當前第四臨時數和第二輸入數執行預設模數的乘法運算,并將運算結果賦值給第四臨時數;(20')對當前第三臨時數和第四臨時數執行預設模數的減法運算,并將運算結果賦值給第二輸出數;(21')對第三輸出數執行預設模數的平方運算并將運算結果賦值給第一轉換數;(22')對第三輸出數執行預設模數的三次方運算并將運算結果賦值給第二轉換數;(23')計算當前第一輸出數除以第一轉換數并對相除結果按預設模數取模,將取模結果賦值給第一輸出數;(24')計算當前第二輸出數除以第二轉換數并對相除結果按預設模數取模,將取模結果賦值給第二輸出數;(25')輸出當前的第一輸出數和第二輸出數。從步驟108中所述最終處理結果中還原出原始數據流的過程具體包括如下步驟,步驟201 接收到所述最終處理結果,按照預設規則拆分所述最終處理結果得到第二數值、第四數值、第一認證碼;步驟202 獲取第二關鍵數、第二參數;步驟203 將所述第二參數、第二關鍵數和第二數值按照第二運算進行計算得到第五數值;步驟204 判斷第五數值的縱坐標值的平方是否等于第五數值的橫坐標值的三次方、第一常數與所述第五數值橫坐標值平方的乘積以及第二常數三者之和,是則執行下一步,否則提示操作失敗;
步驟205 根據第一函數計算所述第五數值和所述第二數值得到第三密鑰、第四密鑰;步驟206 根據第一算法計算所述第四密鑰和所述第四數值得到第二認證碼;步驟207 比較所述第一認證碼和所述第二認證碼是否相等,是則執行下一步,否則提示操作失敗;步驟208 根據第三函數計算所述第三密鑰和所述第四數值得到原始數據流。所述第一常數和所述第二常數滿足如下關系第一常數三次方的4倍與第二常數平方的27倍之和不等于零。所述第一參數滿足如下條件,將η個所述第一數值進行加法運算,將滿足最終運算結果為零且取值最小的η作為第一參數;所述第二參數是預設模數除以所述第一參數計算得到的。所述第二關鍵數是隨機生成的,所述第二關鍵數的取值大于等于1小于等于第一參數減1。所述第一關鍵數是所述第二關鍵數和所述第一數值經過所述第一運算計算得到的。上述步驟106所述根據第一函數計算第三數值和第二數值得到第一密鑰、第二密鑰具體過程如下(1)將第三數值的橫坐標值、第二數值的橫坐標值、第二數值的縱坐標值拼接為一比特串;(2)將所述比特串輸入到第一函數,第一函數調用密鑰雜湊函數進行計算,生成個數為預設數值的雜湊值;所述預設數值等于預設密鑰長度除以預設雜湊值長度并向上取整的結果,所述預設密鑰長度為預先設定的第一函數生成的密鑰的長度;(3)將生成的個數為預設數值的雜湊值級聯形成長度為預設長度的密鑰,將所述密鑰平分為兩部分,高位部分作為第一密鑰輸出,低位部分作為第二密鑰輸出。所述密鑰雜湊函數是MD5、SHA-U SHA-256中的任意一種。所述第二函數是對稱密鑰加密方法的加密函數,具體為DES、3DES、AES中的任意一種。所述第一算法是指采用消息認證碼函數進行的計算,計算過程中選取MD5、SHA_1、 SHA-256中的任意一種。所述第三函數是對稱密鑰解密方法中的解密函數。本發明的有益效果是本發明提出的數據流處理方法包括正向處理和逆向處理, 若公開了數據流正向處理結果,惡意的第三方很難從所述正向處理結果中還原出原始數據流,可以有效保證數據流傳輸的安全性。
圖1是本發明實施例1提供的一種計算機對數據流正向處理的方法流程圖;圖2是本發明實施例2提供的一種計算機對數據流逆向處理的方法流程圖。
1具體實施例方式為使本發明的目的、技術方案和優點更加清楚,下面將結合附圖對本發明實施方式作進一步的詳細描述。為了便于理解本發明的技術方案做如下定義定義滿足預設二元方程式的χ值和對應的y值組成一個二維數值,所述X值對應二維坐標系的橫坐標值,所述y值對應二維坐標系的縱坐標值,則所述二維數值對應二維坐標系中的一個點,所述二元方程式對應二維坐標系中的一條曲線。定義一個可以實現兩個二維數值相加的加法器模塊。本實施例中,以下出現的數在計算機中均為二進制比特串形式存在,且所有運算均執行預設模數的運算。所述加法器模塊計算二維數值相加的過程具體如下1.接收到第一輸入數、第二輸入數、第三輸入數、第四輸入數,獲取一個預設值;本實施例中,第一輸入數和第二輸入數分別為第一個二維數值的橫坐標值和縱坐標值,第三輸入數和第四輸入數分別第二個二維數值的橫坐標值和縱坐標值,第一輸入數、 第二輸入數、第三輸入數和第四輸入數是用戶根據已知二維數值輸入到加法器模塊的,本發明中所述預設數的取值設定為1。2.對所述預設數執行預設模數的平方運算并將運算結果賦值給預設的第一臨時數;3.對當前第一臨時數和所述預設數執行預設模數的乘法運算并將運算結果賦值給預設的第二臨時數;4.對當前第一臨時數和第三輸入數執行預設模數的乘法運算并將運算結果賦值給第一臨時數;5.對第二臨時數和第四輸入數執行預設模數的乘法運算并將運算結果賦值給第二臨時數;6.對當前第一臨時數和第一輸入數執行預設模數的減法運算并將運算結果賦值給第一臨時數;7.對當前第二臨時數和第二輸入數執行預設模數的減法運算并將運算結果賦值給第二臨時數;8.判斷當前第一臨時數和第二臨時數是否同時都為零,若是則執行步驟9,否則判斷第一臨時數和第二臨時數其中之一是否為零,若是則返回錯誤,否則執行步驟9';本實施例中具體地,當接收到的第一輸入數等于第三輸入數,第二輸入數等于第四輸入數,則當前第一臨時數和第二臨時數同時都為零,則從步驟9開始是執行兩個相等的二維數值的加法運算,當接收到的第一輸入數不等于第三輸入數,第二輸入數不等于第四輸入數,則當前第一臨時數和第二臨時數均不為零,則從步驟9'開始是執行兩個不相等的二維數值的加法運算。9.對所述預設數執行預設模數的平方運算并將運算結果賦值給第一臨時數;10.對第一輸入數和第一臨時數執行預設模數的減法運算并將運算結果賦值給第二臨時數;具體地,本實施例中所述第一輸入數為減數,所述第一臨時數為被減數。11.對第一輸入數和第一臨時數執行預設模數的加法運算并將運算結果賦值給第
1一臨時數;12.對當前第一臨時數和第二臨時數執行預設模數的乘法運算并將運算結果賦值給第二臨時數;13.計算當前第二臨時數與數3的乘積并將相乘結果按預設模數取模,將取模結果賦值給第二臨時數;14.計算第二輸入數與數2的乘積并將相乘結果按預設模數取模,將取模結果賦值給第二輸出數;15.對當前第二輸出數和所述預設數執行預設模數的乘法運算并將運算結果賦值給第三輸出數;16.對當前第二輸出數執行預設模數的平方運算并將運算結果賦值給第二輸出數;17.計算當前第二輸出數與第一輸入數的乘積,并將相乘結果按預設模數取模,將取模結果賦值給第三臨時數;
Mr18.對當前第二輸出數執行預設模:數的平方運算并將運算結果賦值給第二輸出M.;
19.計算當前第二輸出數除以數2并將相除結果按預設模數取模,將取模結果賦值給第二輸出數;
Mr20.對當前第二臨時數執行預設模:數的平方運算并將運算結果賦值給第一輸出M.;
21.計算第三臨時數與數2的乘積并對相乘結果按預設模數取模,將取模結果賦值給第一臨時數;
22.對第一輸出數和當前第一臨時I發執行預設模數的減法運算,并將運算結果賦值給第一輸出數;
具體地,本實施例中所述第一輸出數.為減數,當前第一臨時數為被減數。
23.對第三臨時數和當前第一輸出婁!(執行預設模數的減法運算并將運算結果賦值給第一臨時數;
具體地,本實施例中所述第三臨時數.為減數,當前第一輸出數為被減數。
24.對當前第一臨時數和第二臨時婁!(執行預設模數的乘法運算并將運算結果賦值給第一臨時數;
25.對當前第一臨時數和當前第二輸出數執行預設模數的減法運算并將運算結果賦值給第二輸出數;
具體地,本實施例中所述當前第一臨時數為減數,當前第二輸出數為被減數。
26.記錄當前的第一輸出數、第二輸出數、第三輸出數;
Mr27.對第三輸出數執行預設模數的平方運算并將運算結果賦值給預設的第一轉換M.;
HhMr28.對第三輸出數執行預設模數的三三次方運算并將運算結果賦值給預設的第二轉ixM ;
29.計算當前第一輸出數除以第一轉換數并對相除結果按預設模數取模,將取模結果賦值給第一輸出數;
31.計算當前第二輸出數除以第二轉換數并對相除結果按預設模數取模,將取模結果賦值給第二輸出數;31.輸出當前的第一輸出數和第二輸出數。9'.對當前第一臨時數和所述預設數執行預設模數的乘法運算并將運算結果賦值給第三輸出數;10'.對當前第一臨時數執行預設模數的平方運算并將運算結果賦值給第三臨時數;11'.對當前第三臨時數和第一臨時數執行預設模數的乘法運算并將運算結果賦值給第四臨時數;12'.對當前第三臨時數和第一輸入數執行預設模數的乘法運算并將運算結果賦值給第三臨時數;13'.計算當前第三臨時數與數2的乘積并對相乘結果按預設模數取模,將取模結果賦值給第一臨時數;14'.對當前第二臨時數執行預設模數的平方運算并將運算結果賦值給第一輸出數;15'.對當前第一輸出數和第一臨時數執行預設模數的減法運算,并將運算結果賦值給第一輸出數;本實施例中具體地,減法運算中,所述當前第一輸出數為減數,當前第一臨時數為被減數。16'.對當前第一輸出數和第四臨時數執行預設模數的減法運算,并將運算結果賦值給第一輸出數;本實施例中具體地,減法運算中,所述當前第一輸出數為減數,第四臨時數為被減數。17'.對當前第三臨時數和第一輸出數執行預設模數的減法運算,并將運算結果賦值給第三臨時數;本實施例中具體地,減法運算中,所述當前第一輸出數為被減數,第三臨時數為減數。18'.對當前第三臨時數和第二臨時數執行預設模數的乘法運算,并將運算結果賦值給第三臨時數;19'.對當前第四臨時數和第二輸入數執行預設模數的乘法運算,并將運算結果賦值給第四臨時數;20'.對當前第三臨時數和第四臨時數執行預設模數的減法運算,并將運算結果賦值給第二輸出數;本實施例中具體地,減法運算中,所述當前第三臨時數為減數,第四臨時數為被減數。21'.對第三輸出數執行預設模數的平方運算并將運算結果賦值給第一轉換數;22'.對第三輸出數執行預設模數的三次方運算并將運算結果賦值給第二轉換數;23'.計算當前第一輸出數除以第一轉換數并對相除結果按預設模數取模,將取模結果賦值給第一輸出數;24'.計算當前第二輸出數除以第二轉換數并對相除結果按預設模數取模,將取模結果賦值給第二輸出數;25'.輸出當前的第一輸出數和第二輸出數。以下實施例中,出現的二維數值以符合預設的二元方程為例進行說明。其中,預設二元方程中的第一常數和第二常數滿足如下關系第一常數三次方的4倍與第二常數平方的27倍之和不等于零。計算機在進行實施例1和實施例2的對數據流的處理之前首先生成第一關鍵數和第二關鍵數,具體步驟如下①獲取一個參數組,其中,所述參數組包括第一數值、第一參數、第二參數;具體的,所述第一數值是一個二維數值,第一數值的橫坐標值和縱坐標值滿足預設的二元方程式,所述二元方程式是由受信任的第三方公開的;所述第一參數滿足如下條件將η個第一數值進行加法運算,將滿足最終運算結果為零且取值最小的η作為第一參數,所述加法運算采用預設加法器模塊實現;所述第二參數是預設模數除以第一參數計算得到的。②隨機生成第二關鍵數,第二關鍵數取值滿足大于等于1,小于等于第一參數減
丄 ,③將第一數值和第二關鍵數通過預設加法器模塊進行計算得到第一關鍵數;④設置第一關鍵數、第一數值、第一參數、第二參數在數據流處理過程中可隨意調用,設置第二關鍵數只有在對數據流進行逆向處理時才能調用。例如,生成的第二關鍵數d為d = AFC59AF5EAFE247CAC2057365629220BB6284082獲取的第一數值G的取值為Gx = 4F3A609AEC06DE6E466E2DB52F0ED536C1FF87F4Gy = 8559EF2ADDA20056C4BE54E3065DE5FE3952FF22將第一數值和第二關鍵數按照第一運算進行計算得到第一關鍵數Q為Qx = 3BACCF8F21E4463B95047D2F9F44B8BC4CC0CCF2Qy = 0A007FE75C50BA1F17344D38AC48F92C529924FC
實施例1本實施例提出了一種計算機對數據流進行正向處理的方法,如圖1所示包括以下步驟步驟101 接收數據流;步驟102 獲取第一數值、第一參數、第二參數和第一關鍵數;在本實施例中具體的,所述第一數值、第一參數、第二參數、第一關鍵數是事先已經公開的。步驟103 生成一個隨機數,所述隨機數的取值大于等于1小于等于第一參數減
丄,本實施例中具體的所述隨機數可以為真隨機數,也可以為將真隨機數作為種子而生成的偽隨機數。
步驟104 將隨機數和第一數值按照第一運算進行計算得到第二數值,將隨機數、 第二參數和第一關鍵數按照第二運算計算得到第三數值;本實施例中,第一數值為一個二維數值,將隨機數和第一數值按照第一運算進行計算得到第二數值的具體過程如下a.將隨機數表示為二進制數,刪除出現在最高位的1, 對二進制數形式的隨機數從高位到低位逐位檢查,凡遇0,則對當前結果執行翻倍計算,凡遇1,則對當前結果翻倍并與第一數值相加;b.當計算至二進制數末位時輸出的計算結果即為計算得到的第二數值。所述當前結果是指二進制數當前位的前一位的計算結果,當前結果的初始值為第一數值,例如,隨機數表示成的二進制數刪除最高位的1,獲取當前位為 0,則對第一數值執行翻倍計算,并將計算結果記錄為當前結果。所述計算得到的第二數值是一個二維數值;上述計算過程中的當前結果的翻倍和當前結果翻倍并與第一數值相加是采用預設加法器模塊實現的,例如,加法器模塊的第一輸入數和第三輸入數取第一數值的橫坐標值,第二輸入數和第四輸入數取第一數值的縱坐標值,則經加法器模塊計算的輸出結果為第一數值的翻倍,再比如,加法器模塊的第一輸入數和第二輸入數取加法器模塊執行第一數值翻倍后的第一輸出數和第二輸出數,第三輸入數和第四輸入數取第一數值的橫坐標值和縱坐標值,則經加法器模塊計算的輸出結果為第二數值的橫坐標值和縱坐標值。本實施例中,第一關鍵數為一個二維數值,將隨機數、第二參數和第一關鍵數按照第二運算計算得到第三數值具體過程為先計算隨機數與第二參數的乘積,然后將這個乘積結果與第一關鍵數按照第一運算進行計算,所述第一運算與上述第一運算相同,這里不再贅述。上述計算得到的第二數值、第三數值均為二維數值。例如,步驟103所生成的隨機數k為k = C475C3292B32861CB88AC0F365EC583A6E10BED3步驟102獲取的第一數值G的取值為Gx = 4F3A609AEC06DE6E466E2DB52F0ED536C1FF87F4Gy = 8559EF2ADDA20056C4BE54E3065DE5FE3952FF22步驟102獲取的第二參數h的取值為h = 1步驟102獲取的第一關鍵數Q的取值為Qx = 3BACCF8F21E4463B95047D2F9F44B8BC4CC0CCF2Qy = 0A007FE75C50BA1F17344D38AC48F92C529924FC則本步驟中將所述隨機數k和所述第一數值G按照第一運算進行計算得到的第二數值R為Rx = A09FE1CCE6C73375B15E0CD6A3655C218F377204Ry = 86E29E2877E26D9114A421E79ADDC0D82D3F102A將隨機數k、第二參數h和第一關鍵數Q按照第二運算計算得到第三數值Z為Zx = CC7EE4746D9CCA229937E58BEBF17E55ED6AA541Zy = 96D7DDC58D31D68E9134BC12EAB98C58EE861047步驟105 判斷第三數值的縱坐標值的平方是否等于第三數值的橫坐標值的三次方、第一常數與所述第三數值橫坐標平方的乘積以及第二常數三者之和,若相等則執行下
16一步,否則返回執行步驟103;所述第一常數和第二常數滿足如下條件第一常數三次方的4倍與第二常數平方的27倍之和不等于零。步驟106 根據第一函數計算第三數值和第二數值得到第一密鑰、第二密鑰;本實施例中,根據第一函數計算第三數值和第二數值得到第一密鑰、第二密鑰具體過程如下(1)將第三數值的橫坐標值、第二數值的橫坐標值、第二數值的縱坐標值拼接為一比特串,預先設定第一函數生成的密鑰長度;(2)將所述比特串輸入到第一函數,第一函數調用密鑰雜湊函數進行計算,生成個數為預設數值的雜湊值;所述密鑰雜湊函數的輸入為比特串和計數值,輸出為一個雜湊值,所述計數值的初始值為1,每計算一次計數值加1,直至所述計數值增加至預設數值,所述預設數值等于預設密鑰長度除以預設雜湊值長度并向上取整的結果。若預設密鑰長度除以所述預設雜湊值長度為整數,則計數值增加至預設數值時所得到的雜湊值的長度等于預設雜湊值長度;若預設密鑰長度與所述預設雜湊值長度不能整除,則計數值增加至預設數值時所得到的雜湊值的長度等于所述預設密鑰長度減去所述預設密鑰長度除以預設雜湊值長度向下取整的結果與所述預設雜湊值的乘積;(3)將生成的個數為預設數值的雜湊值級聯形成長度為預設長度的密鑰,將所述密鑰平分為兩部分,高位部分作為第一密鑰輸出,低位部分作為第二密鑰輸出。所述密鑰雜湊函數可以是MD5、SHA-U SHA-256等中的任意一種。當密鑰雜湊函數為SHAl或DES時,將生成的雜湊值級聯形成的密鑰的長度為16 字節,則第一密鑰的值取前八字節,第二密鑰的值取后八字節。具體示例如下所述第二數值R為Rx = A09FE1CCE6C73375B15E0CD6A3655C218F377204Ry = 86E29E2877E26D9114A421E79ADDC0D82D3F102A所述第三數值Z為Zx = CC7EE4746D9CCA229937E58BEBF17E55ED6AA541Zy = 96D7DDC58D31D68E9134BC12EAB98C58EE861047根據第一函數計算所述第二數值和第三數值得到的第一密鑰kl和第二密鑰為k2 為kl = 3DC33313DDC29D67k2 = 73A5EB8289088195步驟107 根據第二函數計算第一密鑰和數據流得到第四數值,根據第一算法計算第二密鑰和第四數值得到第一認證碼;本實施例中,具體的,所述第二函數是對稱密鑰加密方案中的加密函數,例如,可以選取DES、3DES、AES等標準對稱算法中的任意一種;所述第一算法是指采用消息認證碼函數進行的計算,計算過程中可選取MD5、SHA-U SHA-256等算法中的任意一種。步驟108 將第二數值、第四數值、第一認證碼按預設規則組合作為數據流的最終處理結果輸出。在本實施例中,所述按預設規則組合具體為將第二數值、第四數值、第一認證碼按照先后順序依次連接起來。實施例2本實施例提出了一種計算機對數據流進行逆向處理的方法,如圖2所示包括以下步驟本實施例中,具體的,所述數據流選取實施例1中步驟108的輸出結果。步驟201 接收到數據流,按照預設規則拆分數據流得到第二數值、第四數值、第一認證碼;具體的,所述按照預設規則拆分與實施例1中所述按照預設規則組合是互逆的過程。步驟202 獲取第二關鍵數、第二參數;在本實施例中,所述第二關鍵數是預先隨機生成的,所述第二參數是事先公開的。步驟203 將第二參數、第二關鍵數和第二數值按照第二運算進行計算得到第五數值;本實施例中,具體的,所述第二運算與實施例1所述第二運算相同,在此不再贅述;所述第五數值是一個二維數值,在二維坐標系中可用橫坐標值和縱坐標值表示。步驟204 判斷第五數值的縱坐標值的平方是否等于第五數值的橫坐標值的三次方、第一常數與所述第五數值橫坐標值平方的乘積以及第二常數三者之和,是則執行下一步,否則提示操作失敗;步驟205 根據第一函數計算第五數值和第二數值得到第三密鑰、第四密鑰;本實施例中,所述計算過程具體為取第五數值的橫坐標值,根據第一函數計算第五數值的橫坐標值、第二數值的橫坐標值和縱坐標值得到第三密鑰和第四密鑰;采用第一函數的計算過程與實施例1中所述采用第一函數計算第一密鑰和第二密鑰的過程相同,在此不再贅述。步驟206 根據第一算法計算第四密鑰和第四數值得到第二認證碼;所述第一算法是指采用消息認證碼函數進行的計算,計算過程中可以選取MD5、 SHA-USHA-256等算法中的任意一種。本實施例中所述第一算法計算過程中采用的具體算法事先預定為與實施例1所述第一算法計算過程中采用的算法相同。步驟207 比較第一認證碼和第二認證碼是否相等,是則執行下一步,否則提示操作失敗;步驟208 根據第三函數計算第三密鑰和第四數值得到原始數據流。本實施例中,具體的,所述第三函數是對稱密鑰解密方案中的解密函數,所述第三函數是事先約定的與實施例1所述第二函數相對應的函數。以上所述,僅為本發明較佳的具體實施方式
,但本發明的保護范圍并不局限于此, 任何熟悉本技術領域的技術人員在本發明公開的技術范圍內,可輕易想到的變化或替換, 都應涵蓋在本發明的保護范圍之內。因此,本發明的保護范圍應該以權利要求的保護范圍為準。
權利要求
1.一種計算機對數據流進行處理的方法,其特征是包括步驟101 接收數據流;步驟102 獲取第一數值、第一參數、第二參數和第一關鍵數;步驟103 生成一個隨機數,所述隨機數的取值大于等于1小于等于所述第一參數減1 ;步驟104 將所述隨機數和所述第一數值按照第一運算進行計算得到第二數值,將所述隨機數、所述第二參數和所述第一關鍵數按照第二運算計算得到第三數值;步驟105 判斷所述第三數值的縱坐標值的平方是否等于所述第三數值的橫坐標值的三次方、第一常數與所述第三數值橫坐標值平方的乘積以及第二常數三者之和,若相等則執行下一步,否則返回執行步驟103 ;步驟106 根據第一函數計算所述第三數值和所述第二數值得到第一密鑰、第二密鑰; 步驟107 根據第二函數計算所述第一密鑰和所述數據流得到第四數值,根據第一算法計算所述第二密鑰和所述第四數值得到第一認證碼;步驟108 將所述第二數值、所述第四數值、所述第一認證碼按預設規則組合作為數據流的最終處理結果輸出。
2.根據權利要求1所述的一種計算機對數據流進行處理的方法,其特征是所述第一數值和第一關鍵數為二維數值,所述二維數值對應二維坐標系中的點,所述點是由滿足預設二元方程式的橫坐標值和對應的縱坐標值組成。
3.根據權利要求1所述的一種計算機對數據流進行處理的方法,其特征是步驟104 中所述將隨機數和第一數值按照第一運算進行計算得到第二數值的具體過程如下a.將隨機數表示為二進制數,刪除出現在最高位的1,對二進制數形式的所述隨機數從高位到低位逐位檢查,凡遇0,則對當前結果執行翻倍計算,凡遇1,則對當前結果翻倍并與第一數值相加;b.當計算至二進制數末位時輸出的計算結果即為計算得到的第二數值;所述當前結果是指二進制數當前位的前一位的計算結果,當前結果的初始值為第一數值。
4.根據權利要求3所述的一種計算機對數據流進行處理的方法,其特征是所述對當前結果執行翻倍計算和所述對當前結果翻倍并與第一數值相加是采用預設加法器模塊實現的。
5.根據權利要求4所述的一種計算機對數據流進行處理的方法,其特征是步驟104 中所述將隨機數、第二參數和第一關鍵數按照第二運算計算得到第三數值具體過程為先計算隨機數與第二參數的乘積,然后將這個乘積結果與第一關鍵數按照所述第一運算進行計算。
6.根據權利要求4或5所述的一種對數據流進行處理的方法,其特征是所述預設加法器模塊執行加法運算的過程具體包括,(1)接收到第一輸入數、第二輸入數、第三輸入數、第四輸入數,獲取一個預設值; 所述第一輸入數和第二輸入數分別為第一個二維數值的橫坐標值和縱坐標值,第三輸入數和第四輸入數分別為第二個二維數值的橫坐標值和縱坐標值,所述預設數的取值為 1 ;(2)對所述預設數執行預設模數的平方運算并將運算結果賦值給預設的第一臨時數;(3)對當前第一臨時數和所述預設數執行預設模數的乘法運算并將運算結果賦值給預設的第二臨時數;(4)對當前第一臨時數和第三輸入數執行預設模數的乘法運算并將運算結果賦值給第一臨時數;(5)對第二臨時數和第四輸入數執行預設模數的乘法運算并將運算結果賦值給第二臨時數;(6)對當前第一臨時數和第一輸入數執行預設模數的減法運算并將運算結果賦值給第一臨時數;(7)對當前第二臨時數和第二輸入數執行預設模數的減法運算并將運算結果賦值給第二臨時數;(8)判斷當前第一臨時數和第二臨時數是否同時都為零,若是則執行步驟(9),否則判斷第一臨時數和第二臨時數其中之一是否為零,若是則返回錯誤,否則執行步驟(9');(9)對所述預設數執行預設模數的平方運算并將運算結果賦值給第一臨時數;(10)對第一輸入數和第一臨時數執行預設模數的減法運算并將運算結果賦值給第二臨時數;(11)對第一輸入數和第一臨時數執行預設模數的加法運算并將運算結果賦值給第一臨時數;(12)對當前第一臨時數和第二臨時數執行預設模數的乘法運算并將運算結果賦值給第二臨時數;(13)計算當前第二臨時數與數3的乘積并將相乘結果按預設模數取模,將取模結果賦值給第二臨時數;(14)計算第二輸入數與數2的乘積并將相乘結果按預設模數取模,將取模結果賦值給第二輸出數;(15)對當前第二輸出數和所述預設數執行預設模數的乘法運算并將運算結果賦值給第三輸出數;(16)對當前第二輸出數執行預設模數的平方運算并將運算結果賦值給第二輸出數;(17)計算當前第二輸出數與第一輸入數的乘積,并將相乘結果按預設模數取模,將取模結果賦值給第三臨時數;(18)對當前第二輸出數執行預設模數的平方運算并將運算結果賦值給第二輸出數;(19)計算當前第二輸出數除以數2并將相除結果按預設模數取模,將取模結果賦值給第二輸出數;(20)對當前第二臨時數執行預設模數的平方運算并將運算結果賦值給第一輸出數;(21)計算第三臨時數與數2的乘積并對相乘結果按預設模數取模,將取模結果賦值給第一臨時數;(22)對第一輸出數和當前第一臨時數執行預設模數的減法運算,并將運算結果賦值給第一輸出數;(23)對第三臨時數和當前第一輸出數執行預設模數的減法運算并將運算結果賦值給第一臨時數;(24)對當前第一臨時數和第二臨時數執行預設模數的乘法運算并將運算結果賦值給第一臨時數;(25)對當前第一臨時數和當前第二輸出數執行預設模數的減法運算并將運算結果賦值給第二輸出數;(26)記錄當前的第一輸出數、第二輸出數、第三輸出數;(27)對第三輸出數執行預設模數的平方運算并將運算結果賦值給預設的第一轉換數;(28)對第三輸出數執行預設模數的三次方運算并將運算結果賦值給預設的第二轉換數;(29)計算當前第一輸出數除以第一轉換數并對相除結果按預設模數取模,將取模結果賦值給第一輸出數;(30)計算當前第二輸出數除以第二轉換數并對相除結果按預設模數取模,將取模結果賦值給第二輸出數;(31)輸出當前的第一輸出數和第二輸出數。(9')對當前第一臨時數和所述預設數執行預設模數的乘法運算并將運算結果賦值給第三輸出數;(10')對當前第一臨時數執行預設模數的平方運算并將運算結果賦值給第三臨時數;(11')對當前第三臨時數和第一臨時數執行預設模數的乘法運算并將運算結果賦值給第四臨時數;(12')對當前第三臨時數和第一輸入數執行預設模數的乘法運算并將運算結果賦值給第三臨時數;(13')計算當前第三臨時數與數2的乘積并對相乘結果按預設模數取模,將取模結果賦值給第一臨時數;(14')對當前第二臨時數執行預設模數的平方運算并將運算結果賦值給第一輸出數;(15')對當前第一輸出數和第一臨時數執行預設模數的減法運算,并將運算結果賦值給第一輸出數;(16')對當前第一輸出數和第四臨時數執行預設模數的減法運算,并將運算結果賦值給第一輸出數;(17')對當前第三臨時數和第一輸出數執行預設模數的減法運算,并將運算結果賦值給第三臨時數;(18')對當前第三臨時數和第二臨時數執行預設模數的乘法運算,并將運算結果賦值給第三臨時數;(19')對當前第四臨時數和第二輸入數執行預設模數的乘法運算,并將運算結果賦值給第四臨時數;(20')對當前第三臨時數和第四臨時數執行預設模數的減法運算,并將運算結果賦值給第二輸出數;(21')對第三輸出數執行預設模數的平方運算并將運算結果賦值給第一轉換數; (22')對第三輸出數執行預設模數的三次方運算并將運算結果賦值給第二轉換數; (23')計算當前第一輸出數除以第一轉換數并對相除結果按預設模數取模,將取模結果賦值給第一輸出數;(24')計算當前第二輸出數除以第二轉換數并對相除結果按預設模數取模,將取模結果賦值給第二輸出數;(25')輸出當前的第一輸出數和第二輸出數。
7.根據權利要求1所述的一種對數據流進行處理的方法,其特征是從步驟108中所述最終處理結果中還原出原始數據流的過程具體包括,步驟201 接收到所述最終處理結果,按照預設規則拆分所述最終處理結果得到第二數值、第四數值、第一認證碼;步驟202 獲取第二關鍵數、第二參數;步驟203 將所述第二參數、第二關鍵數和第二數值按照第二運算進行計算得到第五數值;步驟204 判斷第五數值的縱坐標值的平方是否等于第五數值的橫坐標值的三次方、 第一常數與所述第五數值橫坐標值平方的乘積以及第二常數三者之和,是則執行下一步, 否則提示操作失敗;步驟205 根據第一函數計算所述第五數值和所述第二數值得到第三密鑰、第四密鑰;步驟206 根據第一算法計算所述第四密鑰和所述第四數值得到第二認證碼;步驟207 比較所述第一認證碼和所述第二認證碼是否相等,是則執行下一步,否則提示操作失敗;步驟208 根據第三函數計算所述第三密鑰和所述第四數值得到原始數據流。
8.根據權利要求1或7所述的一種計算機對數據流進行處理的方法,其特征是所述第一常數和所述第二常數滿足如下關系第一常數三次方的4倍與第二常數平方的27倍之和不等于零。
9.根據權利要求1或7所述的一種計算機對數據流進行處理的方法,其特征是所述第一參數滿足如下條件將η個所述第一數值進行加法運算,將滿足最終運算結果為零且取值最小的η作為第一參數;所述第二參數是預設模數除以所述第一參數計算得到的。
10.根據權利要求7所述的一種計算機對數據流進行處理的方法,其特征是所述第二關鍵數是隨機生成的,所述第二關鍵數的取值大于等于1小于等于第一參數減1。
11.根據權利要求7所述的一種計算機對數據流進行處理的方法,其特征是所述第一關鍵數是所述第二關鍵數和所述第一數值經過所述第一運算計算得到的。
12.根據權利要求1所述的一種計算機對數據流進行處理的方法,其特征是步驟106 所述根據第一函數計算第三數值和第二數值得到第一密鑰、第二密鑰具體過程如下(1)將第三數值的橫坐標值、第二數值的橫坐標值、第二數值的縱坐標值拼接為一比特串;(2)將所述比特串輸入到第一函數,第一函數調用密鑰雜湊函數進行計算,生成個數為預設數值的雜湊值;所述預設數值等于預設密鑰長度除以預設雜湊值長度并向上取整的結果,所述預設密鑰長度為預先設定的第一函數生成的密鑰的長度;(3)將生成的個數為預設數值的雜湊值級聯形成長度為預設長度的密鑰,將所述密鑰平分為兩部分,高位部分作為第一密鑰輸出,低位部分作為第二密鑰輸出。
13.根據權利要求12所述的一種計算機對數據流進行處理的方法,其特征是所述密鑰雜湊函數是MD5、SHA-U SHA-256中的任意一種。
14.根據權利要求1所述的一種計算機對數據流進行處理的方法,其特征是所述第二函數是對稱密鑰加密方法的加密函數,具體為DES、3DES、AES中的任意一種。
15.根據權利要求1或7所述的一種計算機對數據流進行處理的方法,其特征是所述第一算法是指采用消息認證碼函數進行的計算,計算過程中選取MD5、SHA-U SHA-256中的任意一種。
16.根據權利要求7所述的一種計算機對數據流進行處理的方法,其特征是所述第三函數是對稱密鑰解密方法中的解密函數。
全文摘要
本發明公開了一種計算機對數據流進行處理的方法,屬于信息安全領域。該方法包括接收數據流,獲取第一數值、第一參數、第二參數和第一關鍵數,根據生成的隨機數和所述第一數值計算得到第二數值,根據所述隨機數、所述第二參數和所述第一關鍵數計算得到第三數值;當所述第三數值的縱坐標值的平方等于橫坐標值的三次方、第一常數與所述第三數值橫坐標值平方的乘積以及第二常數三者之和時,計算所述第三數值和所述第二數值得到第一密鑰、第二密鑰,計算所述第一密鑰和所述數據流得到第四數值,計算所述第二密鑰和所述第四數值得到第一認證碼,將所述第二數值、所述第四數值、所述第一認證碼按預設規則組合作為數據流的最終處理結果輸出。
文檔編號H04L9/06GK102427444SQ201110247230
公開日2012年4月25日 申請日期2011年8月25日 優先權日2011年8月25日
發明者于華章, 陸舟 申請人:飛天誠信科技股份有限公司