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