專利名稱:用于計算變換的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明總的來說涉及密碼學(xué)領(lǐng)域。特別地,本發(fā)明涉及使用真正的單向函數(shù)的用于對稱加密和解密、隨機數(shù)生成、和散列碼發(fā)生器的方法和系統(tǒng)。
背景技術(shù):
本發(fā)明關(guān)于用于提供通過通信信道進(jìn)行的安全通信、并將數(shù)據(jù)安全地存儲在計算系統(tǒng)上的密碼通信和方法。隨著計算機技術(shù)和信息技術(shù)中聯(lián)網(wǎng)方法的出現(xiàn),在一會兒時間內(nèi)就能獲得在全球范圍內(nèi)的信息。存在各種在信息技術(shù)方面已經(jīng)發(fā)展并且興旺的信息密集的商業(yè)。
在各種商業(yè)領(lǐng)域、銀行業(yè)、電子郵件、數(shù)據(jù)處理和戰(zhàn)略咨詢(僅列舉幾個)都非常需要快速的正確信息通信。安全的電子通信幾乎是存在于這個信息技術(shù)時代的所有商業(yè)形式和商業(yè)單位的中心。雖然通過現(xiàn)存的電子通信信道的信息流動一天比一天快,但是該數(shù)據(jù)易受到電子竊聽者(eavesdropper)的監(jiān)控。此外,也需要解決諸如通過通信信道發(fā)送的電子數(shù)據(jù)源的鑒別及其驗證的問題,以控制可能偽造電子簽名,偽造電子簽名會對諸如銀行匯票或證券存款的交易造成不利影響,其中,不得不驗證簽名以確保文檔來自于指定的簽字人并且不是偽造的。這使得擁有能夠提供使通信數(shù)據(jù)免于電子竊聽者竊聽的安全性以及作為對交易文檔的電子簽名的準(zhǔn)確鑒別的需要更加突出。
已存在用于通過通信信道發(fā)送的電子數(shù)據(jù)的安全傳輸、鑒別、和驗證的密碼系統(tǒng),但是應(yīng)用至今的它們中的每一種都具有一定缺陷。已存在非對稱的以及對稱的加密系統(tǒng)。所有這些密碼編碼和解碼的方法都確保一定程度的保護(hù)和隱私。
對稱加密使用其中相同的密鑰集(keyset)既用于加密又用于解密過程的算法。生成的密鑰必須保密,并由消息發(fā)送者和接收者共享。例如,在微軟Word文檔中使用的口令使用對稱加密技術(shù),其中,用于加密和解密文件的口令相同,并被用于確保文件不會遭到竊聽者的竊聽。用口令加密文件的人必須物理地或通過任一其他方式將口令通知接收者,以使接收者能夠解密文件。
對稱密鑰加密可被分為流密碼和塊密碼。流密碼每次加密一個消息位,而塊密碼取許多位并將其作為單個單元進(jìn)行加密。通常,使用64位的塊。通常,對稱密鑰算法執(zhí)行起來比非對稱加密算法快得多。然而,對稱密鑰算法確實有一定的缺陷。一個缺陷在于需要在發(fā)送者端和接收者端具有一個副本的共享的秘密密鑰。由于密鑰容易被密碼對手發(fā)現(xiàn),所以在分配和服務(wù)期間它們需要經(jīng)常改變并保持安全。對此的另一種選擇是使用非對稱加密來加密數(shù)據(jù)或傳遞口令然后執(zhí)行對稱加密。
將使用的第一密碼通信方法中的一種是國家標(biāo)準(zhǔn)局FederalRegister的1975年3月17日第40卷第52號和1975年8月1日第40卷第149號所采用的數(shù)據(jù)加密標(biāo)準(zhǔn)工具。
密碼通信信道通常包括連接至通信信道的加密系統(tǒng)和解密系統(tǒng)。在通信信道的一端使用加密系統(tǒng)來加密消息,并通過通信信道來發(fā)送它,在信道的另一端解密信道將其解碼。對于數(shù)字系統(tǒng),將消息定義為由數(shù)字字符表示的數(shù)字消息,這些字符通常為0和1的二進(jìn)制記數(shù)法字符。所使用的密碼系統(tǒng)主要著重于對將被編碼的數(shù)字消息M使用編碼密鑰或運算符K,并且將消息M編碼為編碼的版本E,其中,K和E也是以與M相同的記數(shù)法表示的數(shù)字字符的數(shù)字序列。因此,加密裝置將M和K作為輸入,然后使用K對M進(jìn)行運算并將其加密為E。
另一方面,加密裝置將E和解密密鑰或運算符K’作為輸入,使用K’對E進(jìn)行運算并將其解密為解密的文本M’。其中,K’和M’也是以與M相同的記數(shù)法表示的數(shù)字字符的數(shù)字序列。這里,選擇加密和解密密鑰或運算符(即,K和K’)的數(shù)字序列,使得M’=M。
在關(guān)于密碼系統(tǒng)的可獲得的文獻(xiàn)中,例如,Diffie和Hellman在IEEE信息理論學(xué)報(1976年11月)的“New directions incryptography”中所描述的公鑰密碼系統(tǒng)論述了使用公鑰和私鑰來加密將要傳遞的數(shù)據(jù)并且也對其解密。出現(xiàn)在上述Diffie和Hellman所寫的文獻(xiàn)中的密碼學(xué)方法著重于使用公鑰(KP)來加密消息M。為了解密來自加密文本E的消息,使用私鑰KPr。
選擇公鑰和私鑰,使得M’=M。公鑰(KP)可在用戶的公開文件系統(tǒng)上得到,而私鑰(KPr)由用戶保留。當(dāng)用戶B不得不將加密消息發(fā)送給用戶A時,使用用戶A的公鑰加密消息M。然后,用戶A使用只有用戶A知道的私鑰來對加密的消息進(jìn)行解密。該方法還用于作為對電子簽名的鑒別。為了成功地實施上述Diffie和Hellman方法,絕對有必要明智地選擇私鑰,這是由于該選擇將確定加密的消息對竊聽者的脆弱性。選取的密鑰應(yīng)該在計算上難以計算。然而,總存在強力的方法來計算用戶的私鑰,一種這樣的方法是列出所有可能的消息M,直到KP(M)=E的一個M出現(xiàn),然后可使用KPr(E)=M來計算KPr。
RSA專利,美國專利第4,405,829號采用一種方案來基于質(zhì)數(shù)因式分解來為用戶生成私鑰,以使通過竊聽者計算私鑰在計算上更加困難(計算上花費多的過程)。加密和解密的RSA方法采用與Diffie和Hellman系統(tǒng)中提及的相同的公鑰和私鑰概念來加密和解密消息。對消息執(zhí)行將消息加密為加密文本的運算包括將消息表示為等效數(shù)字,其中,等效數(shù)字是小于具有兩個質(zhì)數(shù)因子的合數(shù)n(即,n=p.q,其中p和q是質(zhì)數(shù))的非負(fù)數(shù)。
然而,這些現(xiàn)有的系統(tǒng),沒有提供防止竊聽者的完全安全性,盡管它們包括對加密的消息進(jìn)行解密所需的私鑰的計算,該計算是極其困難的,這是由于它涉及不同級(stage)的質(zhì)數(shù)的計算,并且隨著其素因數(shù)被找到的數(shù)的大小增加,過程變得越來越復(fù)雜。然而,隨著超級計算機以及高速計算的出現(xiàn),可以很快地執(zhí)行尋找質(zhì)數(shù)的算法,因此,加密的消息可被其竊聽者解密、堵塞和偽造。此外,這些加密-解密模塊包括所有用戶均可用的公鑰,任務(wù)是生成只有用戶所有的私鑰。
而且,按照香農(nóng)(Shannon)的完全保密或未知條件的理論,為了使得密碼不可破解,加密消息所需的密鑰集應(yīng)當(dāng)對于每個消息都是唯一的,并且密鑰集的長度應(yīng)該大于或等于將要被傳送的消息的長度。沒有加密通信的方法會是完全安全的,直到它采用上述方案。
所提議的系統(tǒng)和方法希望克服現(xiàn)存技術(shù)的所有缺陷,以提供全面驗證的不可破解的對稱密鑰加密。該系統(tǒng)和方法也用于解決生成隨機數(shù)和唯一散列碼的需求。
在查看以下詳細(xì)描述和附圖之后,本發(fā)明的許多目的和優(yōu)點對于相關(guān)領(lǐng)域的普通技術(shù)人員來說將變得顯而易見,其中
圖1示出了通信信道的框圖;圖2示出了根據(jù)本發(fā)明實施例的系統(tǒng)結(jié)構(gòu)的框圖。
圖3示出了密鑰集結(jié)構(gòu)實施例的框圖。
圖4示出了在根據(jù)本發(fā)明實施例的正向變換期間執(zhí)行的步驟的流程圖。
圖5示出了根據(jù)本發(fā)明實施例的對密鑰集執(zhí)行的正向變換階段和將輸入數(shù)據(jù)變換為輸出數(shù)據(jù)的過程的框圖。
圖6示出了在根據(jù)本發(fā)明實施例的反向變換期間執(zhí)行的步驟的流程圖。
圖7示出了根據(jù)本發(fā)明實施例的對密鑰集執(zhí)行的反向變換階段和將輸出數(shù)據(jù)變換為輸入數(shù)據(jù)的過程的方框圖。
圖8示出了在根據(jù)本發(fā)明一個實施例的正向變換過程期間計算變換處理模塊的啟動的屏幕截圖。
圖9示出了在根據(jù)本發(fā)明一個實施例的正向變換過程期間計算變換處理模塊的初始條件的屏幕截圖。
圖10示出了在根據(jù)本發(fā)明一個實施例的正向變換過程期間進(jìn)入到計算變換處理模塊中的輸入數(shù)據(jù)內(nèi)容的屏幕截圖。
圖11示出了在根據(jù)本發(fā)明一個實施例的正向變換過程期間來自計算變換處理模塊的輸出數(shù)據(jù)內(nèi)容的屏幕截圖。
圖12示出了在根據(jù)本發(fā)明一個實施例的反向變換過程期間計算變換處理模塊的啟動的屏幕截圖。
圖13示出了在根據(jù)本發(fā)明一個實施例的反向變換過程期間計算變換處理模塊的初始條件的屏幕截圖。
圖14示出了在根據(jù)本發(fā)明一個實施例的反向變換過程期間進(jìn)入到計算變換處理模塊中的輸出數(shù)據(jù)內(nèi)容的屏幕截圖。
圖15示出了在根據(jù)本發(fā)明一個實施例的反向變換過程期間來自計算變換處理模塊的輸入數(shù)據(jù)內(nèi)容的屏幕截圖。
具體實施例方式
可以多種形式、結(jié)構(gòu)和方式來實現(xiàn)本發(fā)明。下面提供的描述和附圖示出了本發(fā)明的示例性實施例。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,可以下面未示出的其他形式、結(jié)構(gòu)和方式來實現(xiàn)本發(fā)明。本發(fā)明應(yīng)具有權(quán)利要求的全部范圍并不限于下面所示出的實施例。
正向變換和反向變換的一個實施例分別是加密和解密過程。加密和解密是通過通信信道安全地傳輸數(shù)據(jù)所不可避免的過程,并且也用于將數(shù)據(jù)或信息安全地存儲在計算系統(tǒng)上。在本發(fā)明的背景技術(shù)中描述了用于加密和解密的幾種現(xiàn)有技術(shù)。然而,本發(fā)明解決和克服了在早期和當(dāng)前的加密機制和技術(shù)中的核心問題。
本發(fā)明使用真正的單向過程,用于正向變換以及反向變換,即,在本發(fā)明的實施例中加密以及解密數(shù)據(jù)。真正的單向函數(shù)是這樣的給定輸入‘x’,很容易計算F(x)并且獲得‘y’,其中,F(xiàn)(x)=y(tǒng),并且F是單向函數(shù)。然而,盡管知道F的性質(zhì)/描述(description)并且知道‘y’,仍然很難獲得‘x’。這意味著可以在一個方向上計算函數(shù)的輸出,但是盡管知道輸出以及函數(shù),也很難取回函數(shù)的原始輸入。本發(fā)明的核心功能解釋如下通常,本發(fā)明的變換函數(shù)被表示為f(x,k,0)=y(tǒng),k’其中‘y’是輸出數(shù)據(jù),‘x’是輸入數(shù)據(jù),以及常數(shù)0,表示正向變換。然而,在反向變換期間,將常數(shù)設(shè)為1,并且輸出‘y’作為函數(shù)的輸入。該過程反轉(zhuǎn)正向變換的過程并生成原始輸入數(shù)據(jù),即,f(y,k,1)=x,k’如從上面所看到的,同一函數(shù)‘f’被用在正向變換以及反向變換的過程中,并且在兩種情況下使用的密鑰集相同,唯一的改變是指示符值的改變,其中,指示符表示將執(zhí)行的變換的種類。并且在正向和反向變換中,函數(shù)‘f’僅在一個方向進(jìn)行,也就是說,從k到k’,即,初級密鑰集(k)到次級密鑰集(k’)。并且k到k’的變換是真正的單向過程,與正向變換和反向變換相同。
情況1給定輸入數(shù)據(jù)‘x’,輸出數(shù)據(jù)‘y’,次級密鑰集k’、和函數(shù)‘f’,理論上極難并且實際上不可能獲得初級密鑰集k。
情況2給定輸出數(shù)據(jù)‘y’和函數(shù)‘f’,由于不可能從生成的組合中選取輸入數(shù)據(jù)的正確模式(pattern),所以理論上和實際上都不可能找到輸入數(shù)據(jù)‘x’和初級密鑰集k。下面,更詳細(xì)地解釋本發(fā)明的該實施例。
圖1示出了通信信道110以及連接至該信道的兩個計算終端105和115。通信信道可包括例如,諸如互聯(lián)網(wǎng)的廣域網(wǎng)、局域網(wǎng)、或包括基站和移動臺的無線網(wǎng)絡(luò)。計算終端可包括例如,計算機或者諸如移動電話或個人數(shù)字助理(PDA)的手持裝置。在本發(fā)明的一個實施例中,本發(fā)明中實施的技術(shù)可用于通過使用上面列出的任一裝置通過通信信道安全地發(fā)送數(shù)據(jù)。
圖2示出了在計算終端205上的本發(fā)明的結(jié)構(gòu)。本發(fā)明可用于通過通信信道安全地發(fā)送數(shù)據(jù),以及將數(shù)據(jù)安全地存儲到獨立計算機上。每個計算終端均包括處理器可讀的或短期存儲器210、處理器215、長期存儲器220和收發(fā)器,其中每一個都與其他裝置通信。計算變換模塊225存儲在計算終端205的長期存儲器220上。收發(fā)器用于從一個計算終端接收數(shù)據(jù)并將數(shù)據(jù)傳送到另一計算終端。在該實施例中,由任一應(yīng)用程序所創(chuàng)建的數(shù)據(jù)(例如,word文件或excel電子表格)或者來自其他應(yīng)用程序的任何數(shù)據(jù)均采取輸入數(shù)據(jù)的‘n’位塊的形式。在計算終端205上該數(shù)據(jù)表現(xiàn)為位和字節(jié)的形式。在本發(fā)明的該實施例中,計算變換模塊225負(fù)責(zé)將輸入數(shù)據(jù)轉(zhuǎn)換為輸出數(shù)據(jù)。輸出數(shù)據(jù)是當(dāng)輸入數(shù)據(jù)通過計算變換模塊225時所接收的輸出。輸出數(shù)據(jù)是輸入數(shù)據(jù)的一種形式,其中,該輸入數(shù)據(jù)通過執(zhí)行正向變換而被加密為表面上看似無意義的數(shù)據(jù)。在一個實施例中,該加密數(shù)據(jù)也能夠存儲到計算終端205上以防止數(shù)據(jù)受到任何濫用或維護(hù)用戶隱私。在另一實施例中,可將加密數(shù)據(jù)發(fā)送到另一計算終端。以加密的形式發(fā)送該數(shù)據(jù)以防止竊聽者或其他第三方訪問原始數(shù)據(jù)??筛鶕?jù)反向變換處理來執(zhí)行輸出數(shù)據(jù),即,通過使其通過在接收計算終端上的計算變換模塊而在另一計算終端上對其解密以取回原始輸入數(shù)據(jù)。由于作為加密和解密過程的本發(fā)明實施例是對稱過程,并且如果用于通過通信網(wǎng)絡(luò)110安全地發(fā)送數(shù)據(jù),則相同的密鑰集需要存在于發(fā)送計算機105處以加密數(shù)據(jù),并且存在于接收計算機115處以解密數(shù)據(jù)。
在一個實施例中,計算變換模塊225包括用于加密輸入數(shù)據(jù)塊的密鑰集。本發(fā)明是‘n’位塊變換方法,其中,‘n’是長度至少為一位。隨著‘n’的大小的增加,所需的諸如內(nèi)存和處理器速度的計算資源將會更多,因此,使變換處理變慢。在現(xiàn)有的系統(tǒng)中,‘n’的理想大小為8位。本發(fā)明能夠使用不同的唯一密鑰集來變換輸入數(shù)據(jù)的每一位??蛇x地,也可以一次加密預(yù)定數(shù)量的位,即,塊。輸入數(shù)據(jù)的輸入塊被稱作‘n’位塊,輸出數(shù)據(jù)的輸出塊被稱作‘m’位塊。例如,可將輸入數(shù)據(jù)轉(zhuǎn)換為3位的‘n’位塊,并且能夠使用唯一的密鑰集來加密每個‘n’位塊以獲得輸出數(shù)據(jù)的‘m’位塊。密鑰集的設(shè)計基于用于加密輸入數(shù)據(jù)的輸入數(shù)據(jù)‘n’位塊的大小。圖3示出了密鑰集的一個實施例,其中,密鑰集為具有兩列并且行數(shù)等于2n的兩維數(shù)組,其中‘n’表示輸入數(shù)據(jù)的輸入塊位數(shù)的大小,該密鑰集被稱作‘n’位塊。如圖3所示,兩維數(shù)組的行號從0到(2n-1)。例如,如圖3所示,為了加密3位塊,將存在23行,即,8行。兩維數(shù)組的第一列305將包括唯一的‘n’位數(shù)并被稱作參考列1(“Ref1”)。由于圖3所示的密鑰集用于加密輸入數(shù)據(jù)的3位塊,所以Ref1包含任意順序的從零到七的數(shù)字。兩維數(shù)組的第二列310包括隨機數(shù)并被稱作能量值列(“E-Val”)。隨機數(shù)可具有‘v’位的任意預(yù)定大小,其中,‘v’表示E-Val列的位大小。例如,圖3中所示密鑰集的第二列310的大小是8位。在缺省狀態(tài)下,這些隨機數(shù)包含從0到2v的數(shù)字范圍。即,E-Val列可包含的最大數(shù)字是2v,即,28=256,其中,v=8位。然后,使用任意排序算法(sort algorithm)對密鑰集的E-Val列進(jìn)行排序。在一個實施例中,以降序或升序或者任意預(yù)定順序?qū)Φ诙?10中的數(shù)字排序。在如圖3所示的具有兩列的密鑰集結(jié)構(gòu)中,唯一的并按順序(即,0到7)的數(shù)組的行號在變換過程中被用作另一隱藏參考列。該結(jié)構(gòu)表示密鑰集結(jié)構(gòu)的一個實施例。
在另一實施例中,使用并在圖3中示出了具有3列和2n行的兩維數(shù)組,其中,‘n’表示輸入數(shù)據(jù)的輸入塊中位數(shù)的大小。數(shù)組的第一列315和第二列320將包括唯一的2n位數(shù)并且分別被稱作參考列1(“Ref1”)和參考列2(“Ref2”),并且第三列325包括隨機數(shù)并被稱作能量值列(“E-Val”)。隨機數(shù)可具有‘v’位的任意預(yù)定大小,其中,‘v’表示E-Val列的位大小。Ref1和Ref2列中的數(shù)字可按任意順序排列,當(dāng)與具有兩列密鑰集結(jié)構(gòu)的兩維數(shù)組相比時,這為變換的輸出數(shù)據(jù)增加了更多的復(fù)雜性。通過輸入數(shù)據(jù)的‘n’位塊的大小來確定數(shù)組中的行數(shù),其在圖3所示的實施例中是23等于8,這是因為3是輸入數(shù)據(jù)的‘n’位的大小。因此密鑰集包括8行。
在另一實施例中,在變換過程中,將輸入數(shù)據(jù)的‘n’位塊和具有值為0或1的指示符輸入計算變換模塊225。使用初級密鑰集將輸入數(shù)據(jù)的‘n’位塊變換為輸出數(shù)據(jù)的‘m’位塊。當(dāng)完成該過程時,則初級密鑰集被變換為次級密鑰集,并且次級密鑰集用于輸入數(shù)據(jù)的下一‘n’位塊的變換,直到輸入數(shù)據(jù)的所有塊被變換為輸出數(shù)據(jù)的輸出塊。具有值為0或1的指示符表示計算變換模塊225是需要執(zhí)行正向變換還是需要執(zhí)行反向變換。下面,詳細(xì)解釋正向或反向變換的過程。
圖4示出了根據(jù)本發(fā)明實施例的用于將輸入數(shù)據(jù)轉(zhuǎn)換為輸出數(shù)據(jù)的加密過程的流程圖。根據(jù)本發(fā)明的一個實施例,使用三個基本步驟對密鑰集執(zhí)行正向變換和反向變換過程。指示符指示需要執(zhí)行的變換的類型。例如,值為0的指示符表示正向變換,并且值為1的指示符表示反向變換。當(dāng)正向變換過程完成并且輸出數(shù)據(jù)傳輸?shù)浇邮沼嬎銠C時,接收計算機將需要反轉(zhuǎn)指示符以執(zhí)行反向變換并且取回原始輸入數(shù)據(jù)。在一個實施例中,可以對輸入數(shù)據(jù)的每個‘n’位塊動態(tài)地改變指示符。例如,可以使用在正向變換過程中說明的過程來變換輸入數(shù)據(jù)的第一‘n’塊,而使用在反向變換過程中說明的過程來變換輸入數(shù)據(jù)的第二‘n’位塊。然而,在接收計算機處,需要反轉(zhuǎn)相同步驟以取回輸入數(shù)據(jù),即,使用反向變換來變換輸出數(shù)據(jù)的第一‘m’位塊,而使用正向變換來變換輸出數(shù)據(jù)的第二‘m’位塊。變換中涉及的步驟包括排序、替換、和無序化??梢匀魏雾樞?例如,替換、無序化、排序)來執(zhí)行這些步驟。然而,應(yīng)當(dāng)注意,相同的過程必須在正向變換結(jié)束并且反向變換結(jié)束時接著進(jìn)行以取回原始數(shù)據(jù)。下面,詳細(xì)解釋每個步驟。在本發(fā)明中描述的實施例使用替換、無序化、和排序。
圖4中示出了描述密鑰集的變換410、420、425以及輸入數(shù)據(jù)到輸出數(shù)據(jù)的轉(zhuǎn)換405、415、430的流程圖。在第一步驟405中,將輸入數(shù)據(jù)的等效二進(jìn)制數(shù)(binary equivalent)分解為‘n’位塊。基于優(yōu)選的‘n’位塊的大小在下一步驟410中創(chuàng)建密鑰集。例如,如果希望逐位加密,則密鑰集將需要21(等于2)行,即行0和行1。由于至少使用8位來表示數(shù)據(jù)或信息,所以可以將密鑰集結(jié)構(gòu)形成為具有28(等于256)行(即0行到255行)以及2或3列。圖3示出了兩列數(shù)組和三列數(shù)組的結(jié)構(gòu)。然而,在圖中所示的實施例中,將輸入塊選為3位,因此創(chuàng)建具有8行和兩列的密鑰集。創(chuàng)建的第一密鑰集被稱作缺省密鑰集并且可以是用于每個計算終端的唯一密鑰集。
在圖5中所示的實施例中,將被加密的輸入數(shù)據(jù)為100101。一旦輸入數(shù)據(jù)被分離或劃分為‘n’位塊,則選擇第一‘n’位塊用于加密。替換過程如下。在圖5中所描繪的實施例中,將輸入數(shù)據(jù)的第一‘n’位塊轉(zhuǎn)換為其等效十進(jìn)制數(shù),并且遍歷密鑰集的Ref1列505到等于‘n’位塊的等效十進(jìn)制數(shù)的行號。例如,在所描繪的實例中,將被加密的輸入數(shù)據(jù)的第一‘n’位塊是100。輸入數(shù)據(jù)的‘n’位塊的等效十進(jìn)制數(shù)等于4。密鑰集被遍歷到行號4(即,Ref1列505的第五行),并選擇Ref1列的行號4處的值。如圖5中所示,在Ref1的行號4處的數(shù)為001。輸入數(shù)據(jù)的‘n’位塊(即,100)被替換為001,001為輸出數(shù)據(jù)的‘m’位塊。在該過程中,使用缺省密鑰集將輸入數(shù)據(jù)的第一‘n’位塊變換為輸出數(shù)據(jù)的‘m’位塊。
根據(jù)“香農(nóng)的完全保密或未知條件的理論”,為了使密碼不可破解,所需的密鑰集應(yīng)當(dāng)對于每個消息都是唯一的,并且密鑰集長度應(yīng)該等于或大于消息的長度。因此,現(xiàn)在遵循香農(nóng)理論,使用作為本發(fā)明的一個實施例的單向過程將密鑰集變換為不同的密鑰集。變換的密鑰集被稱作次級密鑰集。
無序化和排序的過程如下。在本發(fā)明的一個實施例中,計算((2n/2)-2)的值,其中,‘n’表示輸入數(shù)據(jù)的‘n’位塊的大小。在圖5中所示的實例中,((23/2)-2)的值等于2。在另一實施例中,可以用任意動態(tài)數(shù)(例如,輸入數(shù)據(jù)的前一‘n’位塊、輸出數(shù)據(jù)的‘m’位塊、或者輸入數(shù)據(jù)的‘n’位塊與輸出數(shù)據(jù)的‘m’位塊間的異或的等效十進(jìn)制數(shù))來替換((2n/2)-2)。由于輸入數(shù)據(jù)的‘n’位塊和輸出數(shù)據(jù)的‘m’位塊的等效十進(jìn)制數(shù)可以在每次變換后發(fā)生變化,所以這為更動態(tài)的處理做準(zhǔn)備。遍歷初級密鑰集的E-Val列510到行號2。因此,如圖5所示,獲取在行號2(即,第三行)處的值。根據(jù)圖5,值128變?yōu)槌龜?shù)并存儲在臨時列515中。將存儲在Ref1列505的每行中的數(shù)字與存儲在E-Val列510的相應(yīng)行中的數(shù)字相加,并且總和被稱作被除數(shù)。例如,將在Ref1列的行號2處的數(shù)(即,3)與存儲在E-Val列的行號2中的數(shù)(即,128)相加,并計算被稱作被除數(shù)的總和。在本發(fā)明的一個實施例中,計算被除數(shù)和除數(shù)之間的模數(shù),即,被除數(shù)對除數(shù)取模,在上面所示的實例中為(3+128)對128取模,其等于3,并且用該數(shù)(即,被除數(shù)對除數(shù)取模)來替換E-Val列525每一行中的數(shù)。最終結(jié)果3替換E-Val列525的行號2處的數(shù)。在變換期間,Ref1列520未改變。在另一實施例中,也可以使用異或或者XOR函數(shù)或者任一其他類似的非線性函數(shù)。非線性函數(shù)可為算術(shù)和邏輯運算(例如,加法、乘法、或者異或函數(shù))中的一個或其組合。例如,可以使用通過計算除數(shù)與被除數(shù)之間的異或而獲得的數(shù)值來替換存儲在E-Val列525每一行中的數(shù),該過程被稱作無序化運算。一旦替換了E-Val列525每一行中的數(shù),則使用任意排序算法來對整個E-Val列535排序。排序表示一種排列模式,并且該過程對E-Val列生成排序。該過程稱作排序運算。也可以使用其他排序方式。在優(yōu)選實施例中,對列以降序或升序進(jìn)行排序。當(dāng)執(zhí)行該排序運算時,也基于E-Val列535來排序Ref1列530。這意味著根據(jù)E-Val列525中每個數(shù)移動到的位置,也移動在相應(yīng)的Ref1列520處的數(shù)。例如,在圖5中,以降序排序E-Val列525,因此存儲在E-Val列525的行號2中的數(shù)向上移動到行號1處。在該過程中,存儲在Ref1列520的行號2中的數(shù)(即,5)也移動到第一行。以此方式對Ref1列執(zhí)行非線性排序。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解存在能夠以非線性或使用任何數(shù)學(xué)運算對Ref1列進(jìn)行排序的方式,并且這些非線性排序的其他形式在本發(fā)明的范圍內(nèi)。通過執(zhí)行這些變換而形成的新密鑰集是唯一的密鑰集,并被稱作次級密鑰集530、535。將給定密鑰集變換為新密鑰集的過程是真正單向的。
該次級密鑰集被用作輸入數(shù)據(jù)的下一‘n’位塊的初級密鑰集。在本發(fā)明中,根據(jù)本發(fā)明的實施例,輸入數(shù)據(jù)的第二‘n’位塊是101。輸入數(shù)據(jù)的‘n’位塊被轉(zhuǎn)換為其等效十進(jìn)制數(shù),并且遍歷密鑰集的Ref1到對應(yīng)于等效十進(jìn)制數(shù)的行號。例如,在描述的實例中,將要被加密的輸入數(shù)據(jù)的第二‘n’位塊是101。輸入數(shù)據(jù)的‘n’位塊的等效十進(jìn)制數(shù)等于5。遍歷密鑰集到Ref1列530的行號5(即,標(biāo)記為5的行號),并選擇在Ref1的行號5處的值。如圖5中所示,Ref1 530的行號5處的數(shù)是111。輸入數(shù)據(jù)的‘n’位塊(即,101)被111替換,111為輸出數(shù)據(jù)的‘m’位塊。在該過程中,使用初級密鑰集加密輸入數(shù)據(jù)的‘n’位塊。
使用上述操作將密鑰集再次變換為新次級密鑰集,并且將該密鑰集再次用作初級密鑰集以加密輸入數(shù)據(jù)的下一‘n’位塊。持續(xù)該過程,直至整個輸入數(shù)據(jù)轉(zhuǎn)換為輸出數(shù)據(jù)。在輸入數(shù)據(jù)的最后塊中的位數(shù)小于輸入數(shù)據(jù)前一‘n’位塊的大小的情況下,在位前加0以補足剩余位。例如,在圖5所示的實例中,輸入數(shù)據(jù)‘n’位塊的大小為3位。然而,如果輸入數(shù)據(jù)的最后‘n’位塊只包含2位,則在位前加0以補足缺少的位。
現(xiàn)在,可將輸出數(shù)據(jù)存儲在計算終端205上以防止并保護(hù)用戶信息,或者以安全的方式將輸出數(shù)據(jù)傳送到另一個計算終端。任何試圖非法獲取數(shù)據(jù)的竊聽者或第三方將只接收到輸出數(shù)據(jù)。然而,沒有密鑰集,他不能計算和取回原始輸入數(shù)據(jù)。在傳輸數(shù)據(jù)的情況下,接收計算機終端也必須具有用于加密數(shù)據(jù)的相同密鑰集,來解密數(shù)據(jù)。
圖6示出了根據(jù)本發(fā)明實施例的用于將輸出數(shù)據(jù)的‘m’位塊轉(zhuǎn)換為輸入數(shù)據(jù)的‘n’位塊605、615、630以及對初級密鑰集執(zhí)行變換以將其轉(zhuǎn)換為次級密鑰集610、620、625的反向變換過程的流程圖。圖7示出了對密鑰集的變換處理以及輸出數(shù)據(jù)的‘m’位塊到輸入數(shù)據(jù)的‘n’位塊的轉(zhuǎn)換的說明。在一個實施例中,通過收發(fā)器經(jīng)由通信信道110傳輸輸出數(shù)據(jù)的‘m’位塊。接收計算機還裝配有用于正向變換過程的相同缺省密鑰集。
在圖7所示的實例中,將要被變換的輸出數(shù)據(jù)是001111。一旦輸出數(shù)據(jù)被分隔成輸出數(shù)據(jù)的‘m’位塊(其中,輸出數(shù)據(jù)的‘m’位塊與用于正向變換過程的輸入數(shù)據(jù)的‘n’位塊大小相同),則選擇輸出數(shù)據(jù)的‘m’位塊用于反向變換。例如,在正向變換過程中輸入數(shù)據(jù)的‘n’位塊的大小為3,因此在反向變換過程中輸出數(shù)據(jù)的‘m’位塊的大小應(yīng)該也為3。
在Ref1列705中搜索‘m’位塊(即,001)。例如,在圖7中,‘m’位塊001位于行號4處。返回四的等效二進(jìn)制數(shù)(即,100)作為對應(yīng)于輸出數(shù)據(jù)第一‘m’位塊的輸入數(shù)據(jù)的‘n’位塊。該第一步驟為輸出數(shù)據(jù)的第一‘m’位塊確定輸入數(shù)據(jù)的‘n’位塊。
在解密或變換輸出數(shù)據(jù)的下一‘m’位塊之前,再次執(zhí)行在正向變換過程期間對密鑰集執(zhí)行的變換的相同變換。在變換過程中,在本發(fā)明的一個實施例中,計算((2n/2)-2)的值,其中,‘n’表示輸入數(shù)據(jù)‘n’位塊的大小。在圖7所示的實例中,((23/2)-2)的值等于2。在另一實施例中,可以用任一動態(tài)數(shù)(例如,輸入數(shù)據(jù)的前一‘n’位塊、輸出數(shù)據(jù)的‘m’位塊、或者輸入數(shù)據(jù)的‘n’位塊和輸出數(shù)據(jù)的‘m’位塊之間的異或的等效十進(jìn)制數(shù))來替換‘((2n/2)-2)’。因為在每次變換之后輸入數(shù)據(jù)的‘n’位塊和輸出數(shù)據(jù)的‘m’位塊的等效十進(jìn)制數(shù)都會改變,所以這為更動態(tài)的處理做好了準(zhǔn)備。遍歷初級密鑰集的E-Val列710到行號((23/2)-2),即,行號2。因此,如圖7所示,獲得行號2處的值,并且將其存儲到臨時列715中。根據(jù)圖7,該值128變?yōu)槌龜?shù)。將存儲在Ref1 705每一行中的數(shù)與存儲在E-Val列710的相應(yīng)行中的數(shù)相加,并且總和被稱作被除數(shù)。例如,將在Ref1列705的行號2處的數(shù)(即,3)與存儲在E-Val列710的行號2中的數(shù)(即,128)相加,并計算被稱作被除數(shù)的總和。在本發(fā)明的一個實施例中,計算在被除數(shù)和除數(shù)之間的模數(shù),即,被除數(shù)對除數(shù)取模,在上面所示的實例中為(3+128)對128取模,其等于3,并且用該數(shù)(即,被除數(shù)對除數(shù)取模)來替換E-Val列725每一行中的數(shù)。最終結(jié)果3替換E-Val列725的行號2處的數(shù)。在該步驟期間,Ref1列720保持不變。在另一實施例中,也可以使用異或或者XOR或者任一其他類似函數(shù)。非線性函數(shù)可為算術(shù)和邏輯運算(例如,加法、乘法、或者異或函數(shù))中的一個或其組合。例如,可以使用通過計算除數(shù)與被除數(shù)之間的異或而獲得的數(shù)來替換存儲在E-Val列725的每一行中的數(shù)。該過程稱作無序化。無序化運算與在正向變換中執(zhí)行的運算相同。一旦替換了E-Val列每一行中的數(shù),則使用任意排序算法來對整個E-Val列725進(jìn)行排序。排序表示一種排列模式,并且該過程對E-Val列生成排序。也可以使用其他排序方式。在優(yōu)選實施例中,以降序或升序排序該列。在優(yōu)選實施例中,以降序或升序排序該列。將執(zhí)行與在正向變換過程中執(zhí)行的運算相同的排序運算。當(dāng)執(zhí)行該排序運算時,也基于E-Val列725來排序Ref1列720。這意味著根據(jù)E-Val列725中每個數(shù)移動到的位置,也移動在相應(yīng)的Ref1 720處的數(shù)。例如,在圖7中,以降序排列E-Val列735,因此存儲在E-Val列735的行號2中的數(shù)向下移動到行號6。在該過程中,存儲在Ref1 720中的數(shù)(即,3)也移動到行號6。以此方式,對Ref1 730執(zhí)行非線性排序。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解存在能夠非線性排序Ref1列的方式,并且這些非線性排列運算的其他形式在本發(fā)明的范圍內(nèi)。通過執(zhí)行這些變換而形成的新密鑰集是唯一的密鑰集,并且被稱作次級密鑰集。
該次級密鑰集被用作輸出數(shù)據(jù)的下一‘m’位塊的初級密鑰集。在本發(fā)明中,根據(jù)本發(fā)明的實施例,輸出數(shù)據(jù)的第二‘m’位塊是111。在Ref1 730中執(zhí)行對輸出數(shù)據(jù)的該‘m’位塊的搜索。例如,在圖7中,輸出數(shù)據(jù)111的‘m’位塊位于行號5處。5的等效二進(jìn)制數(shù)(即,101)是輸入數(shù)據(jù)的‘n’位塊。因此,一旦完成該過程,則在接收計算機處,使用與正向變換過程中所使用的算法和密鑰集相同的算法和密鑰集將輸出數(shù)據(jù)001111變換為原始輸入數(shù)據(jù)100101。這示出了分別如圖5和圖7中所示的在加密和解密過程中使用相同過程的伴隨指示符值改變的機制。
使用上述運算將密鑰集再次變換到新的次級密鑰集,并將該密鑰集再次用作初級密鑰集以加密輸出數(shù)據(jù)的下一‘m’位塊。持續(xù)該過程,直至整個輸出數(shù)據(jù)轉(zhuǎn)換為輸入數(shù)據(jù),并且取回原始信息。在輸出數(shù)據(jù)最后塊中的位數(shù)小于輸出數(shù)據(jù)前一‘m’位塊的大小的情況下,在位前加0以補足剩余位。
圖8到圖11描繪了本發(fā)明實施例的屏幕截圖,其描繪了計算變換模塊的實施。圖8中的第一屏幕截圖805示出了正向變換或加密過程的啟動。圖9示出了初始條件的設(shè)置??梢栽O(shè)置屏幕截圖中所示的參數(shù)905以進(jìn)一步增加正向變換過程的復(fù)雜性??商砑拥膹?fù)雜性的一些實例包括將預(yù)定數(shù)量的隨機數(shù)添加到輸入數(shù)據(jù),對輸入數(shù)據(jù)的每個‘n’位塊執(zhí)行多次迭代等??墒褂萌笔∶荑€集或者基于上述條件的用戶定義的密鑰集。如圖10所示,計算變換模塊接收輸入數(shù)據(jù)字符。根據(jù)圖10并且為了測試正向變換過程的運行,輸入一串相同的字符(圖10中為‘g’)作為輸入數(shù)據(jù)1005,并且計算變換模塊執(zhí)行如圖5所示的正向變換,并且生成如圖11所示的輸出數(shù)據(jù)1105的輸出。盡管輸入字符相同(即,重復(fù)模式),作為輸出數(shù)據(jù)的輸出是無意義的或隨機的字符串。這表明對每個變換都使用新密鑰集。然后,將輸出數(shù)據(jù)發(fā)送到接收計算機。
圖12到圖15描繪了本發(fā)明實施例的屏幕截圖,其描繪了反向變換過程中計算變換模塊的實施。圖12示出了反向變換或解密過程1205的啟動。圖13示出了初始條件1305的設(shè)置。指定的初始條件必須與在正向變換過程中所使用的條件相同,并且密鑰集也必須相同。
存在幾種可被設(shè)置并更改以增加復(fù)雜性的初始條件。然而,必須注意,接收計算機也必須知道初始條件以反轉(zhuǎn)該過程來恢復(fù)原始信息。根據(jù)本發(fā)明的實施例,如圖13所示的初始條件的實例是根據(jù)前面所述的加密程序使用系統(tǒng)缺省內(nèi)置密鑰集作為初級密鑰集而被加密的用戶特定口令。在加密用戶特定口令之后生成的后續(xù)次級密鑰集被用作初級密鑰集來加密輸入數(shù)據(jù)的‘n’位塊,以使其轉(zhuǎn)換為輸出數(shù)據(jù)的‘m’位塊??诹羁梢允怯脩舳x的口令,或者可選地也可以從存儲在用于通過選擇特定選項來執(zhí)行計算變換系統(tǒng)的系統(tǒng)的長期存儲器中的任一文件而取得。在加密期間用于輸入數(shù)據(jù)的第一塊的密鑰集和在解密期間用于輸出數(shù)據(jù)的第一塊的密鑰集必須相同,為了獲得這一點,在加密和解密中使用相同的指示符值來執(zhí)行使用缺省密鑰集的用戶特定口令的變換。
在另一實施例中,可使用第三方隨機數(shù)發(fā)生器或使用本發(fā)明中描述的過程來生成用戶定義數(shù)量的隨機數(shù),并將隨機數(shù)添加到輸入數(shù)據(jù)。可使用系統(tǒng)缺省密鑰集作為初級密鑰集來加密口令。這增強了變換的輸出數(shù)據(jù)的復(fù)雜性。為了加密口令和生成實際初級密鑰,也可以改變計算變換系統(tǒng)的迭代次數(shù)??稍谳斎霐?shù)據(jù)的每個塊轉(zhuǎn)換為輸出數(shù)據(jù)塊之前執(zhí)行對密鑰集的變換的多次迭代。對口令執(zhí)行的計算變換的迭代可潛在地用作用于加密輸入數(shù)據(jù)的‘n’位塊的實際初級密鑰。在指定數(shù)量的迭代結(jié)束時接收的輸出數(shù)據(jù)的‘m’位塊可被用作將發(fā)送給接收者的最終輸出數(shù)據(jù)。
在另一實施例中,基于動態(tài)數(shù)據(jù)(即,輸入數(shù)據(jù)的前一‘n’位塊、或輸出數(shù)據(jù)值的‘m’位塊、或者兩者)或者在加密和解密過程期間可獲得的任意動態(tài)值,可使用混排(shuffling)機制(即,對數(shù)組的第一列中的數(shù)進(jìn)行混排(即,交換))來實現(xiàn)初級密鑰集到次級密鑰集的變換。在具有3列結(jié)構(gòu)的密鑰集的情況下,混排機制可應(yīng)用于兩列,即‘Ref1’和‘Ref2’。該過程增加了輸入數(shù)據(jù)到輸出數(shù)據(jù)的變換的復(fù)雜性。
在本系統(tǒng)的另一實施例中,為了對用戶特定口令執(zhí)行計算變換系統(tǒng),并使其更復(fù)雜,用戶也可以將來自隨機系統(tǒng)文件(例如,可執(zhí)行文件或隨機數(shù)據(jù)文件、或者存儲在系統(tǒng)的長期存儲器中的任意文件)的數(shù)據(jù)附加到口令。通過指定位置(即,由用戶指定的初始位置和最終位置)可從隨機系統(tǒng)文件中獲得特定數(shù)據(jù)塊。在另一實施例中,可由用戶指定行為級(behavior level)數(shù),并且可對口令執(zhí)行與用戶指定的行為級數(shù)一樣次數(shù)的計算變換。該過程將從初始系統(tǒng)缺省密鑰中生成數(shù)量上等于用戶指定的行為級數(shù)的口令特定密鑰集。然后,使用從計算變換系統(tǒng)對用戶特定口令的運算所獲得的第一次級密鑰來加密輸入數(shù)據(jù)的第一‘n’位塊,然后使用從計算變換系統(tǒng)對用戶特定口令的后續(xù)運算所獲得的第二次級密鑰來加密此處提及的根據(jù)該運算獲得的輸出數(shù)據(jù)的‘m’位塊,該過程進(jìn)行與用戶指定的行為級數(shù)一樣次數(shù)的迭代,并且將在所有這些迭代之后獲得的最終輸出數(shù)據(jù)發(fā)送給接收者。用戶可以在上述一個或多個初始條件之間進(jìn)行選擇,執(zhí)行以增加變換過程的復(fù)雜性,并且使得對輸入數(shù)據(jù)的正向變換不可破解。然而,也必須在接收計算機處模擬在變換中指定的條件,以反轉(zhuǎn)變換過程并且獲得原始輸入數(shù)據(jù)信息。
在另一實施例中,可在執(zhí)行輸入數(shù)據(jù)的每個‘n’位塊的計算變換之后變換預(yù)定數(shù)量的塊。例如,可保存使用缺省密鑰集對口令執(zhí)行的變換,并且將該變換口令再次變換為新的變換口令,在輸入數(shù)據(jù)的第一‘n’位塊的變換之后重寫先前變換,從而將密鑰集變?yōu)樾碌拿荑€集。可以在輸入數(shù)據(jù)的每個‘n’位塊的變換之后重復(fù)將口令變換為新的變換口令從而改變密鑰集的過程。接收計算機也必須具有口令的副本,并且使用在變換輸出數(shù)據(jù)的‘m’位塊與變換口令以改變密鑰集之間交替的相同過程,來取回原始輸入數(shù)據(jù)。
在另一實施例中,可將輸入數(shù)據(jù)擴(kuò)展到用戶期望的輸出數(shù)據(jù)的大小。例如,將輸出數(shù)據(jù)的八位塊轉(zhuǎn)換為其等效十進(jìn)制數(shù)。以八位格式進(jìn)一步表示等效十進(jìn)制數(shù)的每位數(shù)字,從而將輸出數(shù)據(jù)的每個八位塊的大小增大了三倍。增加的輸出數(shù)據(jù)被用作變換過程的輸入數(shù)據(jù),預(yù)定運算被用于每次迭代中以生成期望大小的輸出數(shù)據(jù),在接收端反轉(zhuǎn)預(yù)定運算以取回原始輸入數(shù)據(jù)。這通過將每個八位塊轉(zhuǎn)換為其等效十進(jìn)制數(shù)然后將獲得的整個數(shù)表示為輸出數(shù)據(jù)的八位塊來實現(xiàn)。該過程增加了變換過程的復(fù)雜性并使竊聽者極難獲得傳輸?shù)男畔ⅰ?br>
在本發(fā)明的另一實施例中,為常量分配一個為‘0’或‘1’的值以將變換過程分別標(biāo)識為正向變換或反向變換。根據(jù)常量值,系統(tǒng)將要執(zhí)行的變換識別為正向變換或反向變換。
在使用用戶定義的密鑰集的情況下,需要通過物理地親自會面或通過諸如非對稱加密的其他加密過程來交換密鑰集。如圖14所示,計算變換模塊接收輸出數(shù)據(jù)1405并且計算變換模塊執(zhí)行如圖7所示的反向變換并且生成如圖15所示的輸入數(shù)據(jù)1505。輸出數(shù)據(jù)與在正向變換過程中使用的原始輸入數(shù)據(jù)相同。
作為實施例,計算變換模塊使用真正的單向過程來執(zhí)行正向變換和反向變換過程。即使輸出數(shù)據(jù)和次級密鑰集是已知的,但竊聽者也不能獲得輸入數(shù)據(jù)或者第一塊輸入數(shù)據(jù)的初級密鑰集。在一個實施例中,可使用諸如RSA算法的已存在于可用的技術(shù)中的非對稱加密技術(shù)或者物理地親自交換密鑰集,將初級密鑰集傳送到接收計算機。
存在計算變換模塊的若干其他應(yīng)用。下面,更詳細(xì)地描述示出各種其他應(yīng)用的模塊的一些實施例。
例如,在本發(fā)明的另一實施例中,計算變換模塊被用于使用在正向變換和反向變換實施例中采用的單向過程來生成作為隨機數(shù)的輸出數(shù)據(jù)。用于生成隨機數(shù)的計算變換模塊和在正向變換和反向變換過程中使用的計算變換模塊的差別在于與在正向變換和反向變換過程中使用的可逆型計算變換模塊相比使用了用于隨機數(shù)生成的不可逆型計算變換模塊。
該實施例使用在前一實施例中被稱作初級密鑰集的缺省密鑰集來對執(zhí)行計算變換的計算裝置的動態(tài)參數(shù)執(zhí)行不可逆的計算變換。系統(tǒng)參數(shù)是動態(tài)參數(shù),其中,一些偶爾變化,一些周期地變化。這有助于真正隨機地生成隨機數(shù)。例如,系統(tǒng)參數(shù)是以秒計的當(dāng)前時間數(shù)值、系統(tǒng)日期、處理器時鐘速度、和其他類似的參數(shù)。
每次啟動用于生成隨機數(shù)的過程時,系統(tǒng)參數(shù)的組合產(chǎn)生值,該值然后被用作計算變換模塊的輸入數(shù)據(jù),基于動態(tài)參數(shù)對該輸入數(shù)據(jù)執(zhí)行多次迭代。例如,在一特定時刻,每次可將所有系統(tǒng)參數(shù)加到一起以獲得輸入數(shù)據(jù)?;谳斎霐?shù)據(jù)的大小(即,位數(shù))生成隨機數(shù)。
在圖5中示出了使用密鑰集從輸入數(shù)據(jù)生成隨機數(shù)的過程。在第一步驟中,基于密鑰集的設(shè)計,將輸入數(shù)據(jù)的等效二進(jìn)制數(shù)分解為輸入數(shù)據(jù)的‘n’位塊?;趦?yōu)選的輸入數(shù)據(jù)的‘n’位塊的大小來創(chuàng)建密鑰集。例如,如果需要逐位創(chuàng)建隨機數(shù),則密鑰集將需要21(其為2)行。然而,在圖中所示的實施例中,選擇3位的‘n’位塊,因此創(chuàng)建具有8行的密鑰集。創(chuàng)建的第一密鑰集被稱作缺省密鑰集,并且可以為對于每個計算終端都不同的唯一密鑰集。
一旦將輸入數(shù)據(jù)分隔為輸入數(shù)據(jù)的‘n’位塊,則選擇輸入數(shù)據(jù)的第一‘n’位塊。在圖5所描繪的實施例中,將輸入數(shù)據(jù)的第一‘n’位塊轉(zhuǎn)換為其等效十進(jìn)制數(shù),并且遍歷密鑰集的Ref1到對應(yīng)于等效十進(jìn)制數(shù)的行號。例如,在描繪的實施例中,輸入數(shù)據(jù)的第一‘n’位塊是100。子輸入塊的等效十進(jìn)制數(shù)等于4。遍歷密鑰集到Ref1列的行號4,并選擇Ref1列505的行號4處的值。如圖5所示,在Ref1的行號4處的數(shù)是001。用001替換子輸入塊(即,100),其中,001表示輸出數(shù)據(jù)的中間‘m’位塊。下一步驟包括執(zhí)行輸入數(shù)據(jù)的‘n’位塊和在密鑰集的行中出現(xiàn)的值之間的模運算。例如,在上述情況下100對001取模。獲得結(jié)果(即,0或000)并將其作為臨時值存儲。在下一步驟中,隨機數(shù)發(fā)生器遍歷到Ref1列的行號0并在臨時值和輸出數(shù)據(jù)的中間‘m’位塊之間執(zhí)行異或運算或XOR運算(即000 XOR 111),其產(chǎn)生000作為最終輸出數(shù)據(jù)。持續(xù)該過程,直至輸入數(shù)據(jù)的整個塊被轉(zhuǎn)換為輸出數(shù)據(jù)的隨機塊。輸出數(shù)據(jù)被稱作隨機數(shù)或數(shù)據(jù),并基于作為輸入數(shù)據(jù)的系統(tǒng)參數(shù)組合而被生成。
在另一應(yīng)用中,本發(fā)明被用作散列碼發(fā)生器,其中可將計算變換模塊以與前面實施例中所述相同的方式應(yīng)用于輸入數(shù)據(jù),并獲得的最終輸出數(shù)據(jù)可用作散列碼。根據(jù)本發(fā)明的一個實施例,需要生成散列碼的內(nèi)容被轉(zhuǎn)換為輸入數(shù)據(jù)的‘n’位塊,并且接著進(jìn)行上述相同的過程來生成輸出數(shù)據(jù)的‘m’位塊。在位字符串是偶數(shù)長度的情況下,將輸出數(shù)據(jù)的‘m’位塊分成相等的兩半,或者如果輸入數(shù)據(jù)是由奇數(shù)塊構(gòu)成,則附加預(yù)定的塊。在兩半之間執(zhí)行異或或者XOR運算,直至達(dá)到預(yù)定位數(shù)。當(dāng)將塊分成相等的兩半時在每個XOR運算之后,塊數(shù)減少,從而可以設(shè)置預(yù)定值,該過程在預(yù)定值處終止。最終輸出數(shù)據(jù)是輸入數(shù)據(jù)的散列碼。
在另一個實施例中,將需要生成散列碼的內(nèi)容轉(zhuǎn)換為輸入數(shù)據(jù)塊,并且接著進(jìn)行上述相同的過程來生成輸出數(shù)據(jù)的‘m’位塊。然而,在該實施例中的區(qū)別在于將異或運算的結(jié)果作為中間輸出,并且使用計算變換模塊將該結(jié)果變換為輸出數(shù)據(jù)。然后,在位字符串是偶數(shù)長度的情況下,將輸出數(shù)據(jù)的‘m’位塊分成相等的兩半,或者如果輸入數(shù)據(jù)由奇數(shù)位構(gòu)成,則附加預(yù)定的塊。在兩半之間執(zhí)行異或或者XOR運算,直至達(dá)到預(yù)定位數(shù)。異或運算的結(jié)果生成中間輸出,其可用作變換的輸入數(shù)據(jù),然后它又被分成相等的兩半,并對輸出數(shù)據(jù)執(zhí)行異或運算。在每次變換后將位分成相等的兩半,然后使用計算變換模塊將塊變換為輸出數(shù)據(jù)的每個階段中,位數(shù)都減小,從而可以設(shè)置預(yù)定值,在該值處迭代過程終止。輸出數(shù)據(jù)是輸入數(shù)據(jù)的散列碼。該過程比先前的實施例慢,然而,與先前的實施例相比生成唯一散列碼的精確性高。
權(quán)利要求
1.一種變換方法,所述方法包括a.接收輸入數(shù)據(jù)的第一‘n’位塊;b.基于初級密鑰集和表示正向變換的第一指示符或表示反向變換的第二指示符,用輸出數(shù)據(jù)的相應(yīng)‘m’位塊替換輸入數(shù)據(jù)的所述‘n’位塊,所述輸出塊的大小等于或大于所述輸入塊,所述第一初級密鑰集是缺省密鑰集;c.基于對初級密鑰集的預(yù)定組運算,將所述初級密鑰集變換為次級密鑰集,所述次級密鑰集被用作下一個輸入塊的初級密鑰集;以及d.對每個后續(xù)‘n’位塊重復(fù)步驟a到c,直至所述輸入數(shù)據(jù)的所有塊都已被所述輸出數(shù)據(jù)的相應(yīng)塊替換;由此,使用不同的動態(tài)生成的密鑰集,將輸入數(shù)據(jù)的每個‘n’位塊變換為輸出數(shù)據(jù)的‘m’位塊。
2.根據(jù)權(quán)利要求1所述的方法,其中,所述缺省密鑰集可由用戶改變并且可對于每個用戶都不同。
3.根據(jù)權(quán)利要求1所述的方法,其中,在變換每個‘n’位塊之后,所述指示符可以預(yù)定方式動態(tài)地改變,當(dāng)變換回‘n’位塊時執(zhí)行相同的預(yù)定方式。
4.根據(jù)權(quán)利要求1所述的方法,其中,一種加密或解密的所述變換方法可用于通過通信網(wǎng)絡(luò)安全地發(fā)送變換的數(shù)據(jù),在接收端將所述變換的數(shù)據(jù)變換回去以取回所述原始輸入數(shù)據(jù),所述接收端配備有與發(fā)送端相同的缺省密鑰集,并且對所述缺省密鑰集執(zhí)行與所述發(fā)送端相同的變換。
5.根據(jù)權(quán)利要求1所述的方法,其中,所述密鑰集包括一種兩維數(shù)組的數(shù)據(jù)結(jié)構(gòu),至少具有行號從0至(2n-1)的2n行,以及至少兩列,所述兩維數(shù)組的第一列包括任意順序的唯一的‘n’位數(shù),第二列與所述第一列耦合,所述第二列包括隨機數(shù)。
6.根據(jù)權(quán)利要求5所述的方法,其中,所述第二列中的所述隨機數(shù)的位可具有任意預(yù)定大小。
7.根據(jù)權(quán)利要求5所述的方法,其中,所述替換步驟進(jìn)一步包括a.遍歷所述初級密鑰集的所述第一列到等于所述‘n’位塊的等效十進(jìn)制數(shù)的行號;b.讀取存儲在所述第一列的所述行中的所述‘m’位;以及c.用所述‘m’位塊替換所述‘n’位塊在正向變換的情況下執(zhí)行步驟a到c;以及d.在所述初級密鑰集的所述第一列中搜索所述‘m’位塊;e.在所述初級密鑰集的所述第一列中的行中定位所述‘m’位塊;f.讀取所述行號并且以‘n’位表示所述行號,所述‘n’位為所述‘n’位塊;以及g.用所述‘n’位塊替換所述‘m’位塊在反向變換的情況下,執(zhí)行步驟d到g。
8.根據(jù)權(quán)利要求7所述的方法,其中,在生成的多個中間輸出塊被用作后續(xù)迭代的輸入塊的情況下,所述步驟a到c或d到g可被執(zhí)行預(yù)定次數(shù),直到達(dá)到所述預(yù)定次數(shù)。
9.根據(jù)權(quán)利要求7所述的方法,其中,用于正向變換和反向變換執(zhí)行的所述步驟可以交替地運行。
10.根據(jù)權(quán)利要求7所述的方法,其中,將所述初級密鑰集變換為次級密鑰集的所述步驟,所述方法進(jìn)一步包括對所述密鑰集的所述第二列執(zhí)行至少一種預(yù)定數(shù)學(xué)運算;以及以預(yù)定順序排列所述第二列并且在所述過程中,對應(yīng)于對所述第二列執(zhí)行的所述排列來排列所述第一列;由此實現(xiàn)所述初級密鑰集到次級密鑰集的單向變換。
11.根據(jù)權(quán)利要求7所述的方法,其中,將所述初級密鑰集變換為次級密鑰集的所述步驟,進(jìn)一步包括基于預(yù)定的運算,混排所述第一列中的數(shù)。
12.根據(jù)權(quán)利要求10所述的方法,其中,在接收下一塊之前,可通過不同組的數(shù)學(xué)運算和不同組的排列將執(zhí)行所述數(shù)學(xué)運算和排列所述第二列的所述步驟重復(fù)預(yù)定的次數(shù)。
13.根據(jù)權(quán)利要求10所述的方法,其中,所述數(shù)學(xué)運算可為諸如模運算、異或運算、加法運算、或乘法運算的算術(shù)或邏輯運算中的一個或組合。
14.根據(jù)權(quán)利要求10所述的方法,其中,所述排列運算可包括以升序、降序、或任何預(yù)定次序進(jìn)行排序。
15.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括使用所述缺省密鑰集執(zhí)行任意長度和格式的用戶定義的口令的第一變換,并且在所述過程中將所述缺省密鑰集轉(zhuǎn)換為口令特定的密鑰集,并且將口令特定的密鑰集用作輸入數(shù)據(jù)的所述第一‘n’位塊的所述初級密鑰集。
16.根據(jù)權(quán)利要求15所述的方法,其中,可通過多次迭代來執(zhí)行所述用戶定義的口令的所述變換。
17.根據(jù)權(quán)利要求15所述的方法,其中,對所述用戶定義的口令執(zhí)行用戶定義的行為級數(shù)的變換,其中,用戶定義的行為級數(shù)生成所述口令特定的密鑰集,所述口令特定的密鑰集被存儲在存儲器中。
18.根據(jù)權(quán)利要求17所述的方法,其中,使用所述口令特定的密鑰集以預(yù)定順序執(zhí)行輸入數(shù)據(jù)到輸出數(shù)據(jù)的所述變換。
19.根據(jù)權(quán)利要求18所述的方法,其中,所述預(yù)定順序是生成和存儲所述口令特定的密鑰集的順序。
20.根據(jù)權(quán)利要求1所述的方法,其中,可使用一個或多個密鑰集對所述輸入數(shù)據(jù)的每個‘n’位塊執(zhí)行變換的多次迭代。
21.根據(jù)權(quán)利要求1所述的方法,其中,可對所述輸出數(shù)據(jù)執(zhí)行預(yù)定運算,以增加所述輸出數(shù)據(jù)位的大小,增加的輸出數(shù)據(jù)被用作所述變換過程的輸入數(shù)據(jù),在每次迭代中使用所述預(yù)定運算以生成期望大小的所述輸出數(shù)據(jù),在所述接收端反轉(zhuǎn)所述預(yù)定運算以取回所述原始輸入數(shù)據(jù)。
22.根據(jù)權(quán)利要求1所述的方法,其中,可將預(yù)定數(shù)量的隨機數(shù)添加到所述輸入數(shù)據(jù)。
23.根據(jù)權(quán)利要求1所述的方法,其中,可將來自于預(yù)定文件的從第一位置到第二位置的數(shù)據(jù)附加到所述口令,所述預(yù)定文件的副本存在于所述接收計算機處。
24.根據(jù)權(quán)利要求1所述的方法,其中,可執(zhí)行所述正向或反向變換過程以生成散列碼數(shù),所述過程進(jìn)一步包括a.將所述輸出數(shù)據(jù)分成兩半,第一半和第二半;b.在所述第一半和所述第二半之間執(zhí)行異或運算,所述異或運算生成中間輸出;以及c.執(zhí)行步驟a到b,直至達(dá)到預(yù)定位字符串長度從而最終結(jié)果是唯一的散列碼。
25.根據(jù)權(quán)利要求1所述的方法,其中,可執(zhí)行所述正向或反向變換過程以生成散列碼數(shù),所述過程進(jìn)一步包括a.將所述輸出數(shù)據(jù)分成兩半,第一半和第二半;b.在所述第一半和所述第二半之間執(zhí)行異或運算,所述異或運算生成中間輸出;c.將所述中間輸出用作所述變換過程的輸入數(shù)據(jù)以生成所述輸出數(shù)據(jù);以及d.執(zhí)行步驟a到c,直至達(dá)到預(yù)定位字符串長度由此最終結(jié)果是所述唯一的散列碼。
26.根據(jù)權(quán)利要求1所述的方法,其中,可在輸入數(shù)據(jù)的每個‘n’位塊的所述變換之后對預(yù)定數(shù)量的塊執(zhí)行正向變換以獲得用于輸入數(shù)據(jù)的下一個‘n’位塊的所述變換的不同次級密鑰集,在輸出數(shù)據(jù)的每個‘m’位塊的所述變換之后,所述接收端對相同預(yù)定數(shù)量的塊執(zhí)行所述反向變換以取回所述原始輸入數(shù)據(jù)。
27.一種變換系統(tǒng),包括計算系統(tǒng),包括彼此通信的長期存儲器、處理器可讀存儲器和處理器,所述長期存儲器包括計算變換模塊,與處理器和所述處理器可讀存儲器通信的所述計算變換模塊被配置為用于基于初級密鑰集以及表示正向變換的第一指示符和表示反向變換的第二指示符,接收輸入數(shù)據(jù)的第一‘n’位塊,用輸出數(shù)據(jù)的相應(yīng)‘m’位塊替換輸入數(shù)據(jù)的所述‘n’位塊,輸出數(shù)據(jù)的所述‘m’位塊大小等于輸入數(shù)據(jù)的所述‘n’位塊,所述第一初級密鑰集為缺省密鑰集,基于預(yù)定組運算,用次級密鑰集替換所述初級密鑰集,所述次級密鑰集被用作所述初級密鑰集,此后,被配置為用于重復(fù)將輸入數(shù)據(jù)的每個后續(xù)‘n’位塊替換為輸出數(shù)據(jù)的所述相應(yīng)‘m’位塊的過程,每個替換基于不同的動態(tài)生成的密鑰集,直至所述輸入數(shù)據(jù)的所有塊都被輸出數(shù)據(jù)的相應(yīng)塊替換。
28.根據(jù)權(quán)利要求27所述的系統(tǒng),其中,所述一種加密和解密的所述變換可用于通過通信網(wǎng)絡(luò)安全地發(fā)送變換的數(shù)據(jù),在接收端將所述變換的數(shù)據(jù)變換回去以取回所述原始信息,所述接收端配備有與發(fā)送端相同的缺省密鑰集并且對所述缺省密鑰集執(zhí)行與所述發(fā)送端相同的變換。
29.根據(jù)權(quán)利要求28所述的系統(tǒng),其中,所述指示符可以預(yù)定方式變化,在所述接收端執(zhí)行所述相同的預(yù)定方式。
30.根據(jù)權(quán)利要求27所述的系統(tǒng),其中,所述密鑰集包括一種兩維數(shù)組的數(shù)據(jù)結(jié)構(gòu),至少具有行號從0開始至(2n-1)的2n行,以及至少兩列,所述兩維數(shù)組的第一列包括唯一的‘n’位數(shù),第二列與所述第一列耦合,所述第二列包括隨機排序的數(shù)。
31.根據(jù)權(quán)利要求30所述的系統(tǒng),其中,所述第二列中的隨機數(shù)可具有預(yù)定大小。
32.根據(jù)權(quán)利要求30所述的系統(tǒng),其中,使用所述計算變換模塊實現(xiàn)所述替換,其中,所述計算變換模塊被進(jìn)一步配置為用于在正向變換的情況下遍歷所述初級密鑰集的所述第一列到等于輸入數(shù)據(jù)的所述‘n’位塊的等效十進(jìn)制數(shù)的行號,讀取存儲在所述行中的‘m’位塊,此后用輸出數(shù)據(jù)的所述‘m’位塊替換輸入數(shù)據(jù)的所述‘n’位塊;或者在反向變換的情況下,在所述初級密鑰集的所述第一列中搜索輸出數(shù)據(jù)的所述‘m’位塊,在所述初級密鑰集的所述第一列中的行中定位所述‘m’位塊,讀取所述行號并且以‘n’位表示所述行號,所述‘n’位塊為輸入數(shù)據(jù)的所述‘n’位塊,此后用輸入數(shù)據(jù)的所述‘n’位塊替換輸出數(shù)據(jù)的所述‘m’位塊。
33.根據(jù)權(quán)利要求32所述的系統(tǒng),其中,在生成的多個中間輸出塊被用作后續(xù)迭代的輸入數(shù)據(jù)的情況下,所述正向變換的步驟或所述反向變換的步驟可被執(zhí)行預(yù)定次數(shù),直至達(dá)到所述預(yù)定次數(shù)。
34.根據(jù)權(quán)利要求32所述的系統(tǒng),其中,所述計算變換模塊被配置為用于命令所述處理器對所述密鑰集的第二列執(zhí)行至少一種數(shù)學(xué)運算,所述計算變換模塊與所述處理器一起對所述密鑰集的第二列執(zhí)行排列運算,這導(dǎo)致對所述密鑰集的第一列執(zhí)行排序。
35.根據(jù)權(quán)利要求34所述的系統(tǒng),其中,可以基于預(yù)定運算對所述第一列中的數(shù)執(zhí)行混排。
36.根據(jù)權(quán)利要求34所述的系統(tǒng),其中,所述數(shù)學(xué)運算可以為諸如模運算、異或運算、加法運算、和乘法運算的算術(shù)運算和邏輯運算中的一個或組合。
37.根據(jù)權(quán)利要求34所述的系統(tǒng),其中,所述排列操作可為升序排序、降序排序、或任何預(yù)定次序。
38.根據(jù)權(quán)利要求27所述的系統(tǒng),進(jìn)一步包括,所述處理器被命令來使用所述缺省密鑰集對任意長度和格式的用戶定義的口令執(zhí)行第一變換,并且在所述過程中將所述缺省密鑰集轉(zhuǎn)換為口令特定的密鑰集,并且將所述口令特定的密鑰集用作所述輸入數(shù)據(jù)的所述初級密鑰集。
39.根據(jù)權(quán)利要求3 8所述的系統(tǒng),其中,可通過多次迭代來執(zhí)行所述用戶定義的口令的所述變換。
40.根據(jù)權(quán)利要求38所述的系統(tǒng),其中,對用戶定義的口令執(zhí)行用戶定義的行為級數(shù)的變換,其中,所述用戶定義的行為級數(shù)生成所述口令特定的密鑰集。
41.根據(jù)權(quán)利要求40所述的系統(tǒng),其中,通過使用生成的所述口令特定的密鑰集中的至少一個對所述輸入數(shù)據(jù)執(zhí)行所述變換過程來從所述輸入數(shù)據(jù)中獲得所述輸出數(shù)據(jù),所述口令特定的密鑰集被存儲在存儲器中并且以預(yù)定順序使用。
42.根據(jù)權(quán)利要求41所述的系統(tǒng),其中,所述預(yù)定順序是生成和存儲所述口令特定密鑰集的順序。
43.根據(jù)權(quán)利要求42所述的系統(tǒng),其中,通過執(zhí)行所述變換而生成的所述多個口令特定的密鑰集存儲在存儲器中。
44.根據(jù)權(quán)利要求27所述的系統(tǒng),其中,在將所述輸入數(shù)據(jù)的每一位變換為所述輸出數(shù)據(jù)的每一位之前可以對所述密鑰集執(zhí)行多次迭代。
45.根據(jù)權(quán)利要求27所述的系統(tǒng),其中,可以對所述輸出數(shù)據(jù)執(zhí)行預(yù)定運算,以增加所述輸出數(shù)據(jù)位的大小,增加的輸出數(shù)據(jù)被用作所述變換過程的輸入數(shù)據(jù),在每次迭代中使用所述預(yù)定運算以生成期望大小的所述輸出數(shù)據(jù),在所述接收端反轉(zhuǎn)所述預(yù)定運算以取回所述原始輸入數(shù)據(jù)。
46.根據(jù)權(quán)利要求27所述的系統(tǒng),其中,可將預(yù)定數(shù)量的隨機數(shù)添加到所述輸入數(shù)據(jù)。
47.根據(jù)權(quán)利要求27所述的系統(tǒng),其中,可將來自預(yù)定文件的從第一位置到第二位置的數(shù)據(jù)附加到所述口令,所述文件的副本存在于所述接收計算機處。
48.根據(jù)權(quán)利要求27所述的系統(tǒng),其中,可在輸入數(shù)據(jù)的每個‘n’位塊的所述變換之后對預(yù)定數(shù)量的塊執(zhí)行正向變換,以獲得用于輸入數(shù)據(jù)的下一‘n’位塊的所述變換的不同次級密鑰集,在輸出數(shù)據(jù)的每個‘m’位塊的所述變換之后,所述接收端對所述相同的預(yù)定數(shù)量的塊執(zhí)行所述反向變換以取回所述原始輸入數(shù)據(jù)。
49.一種生成隨機數(shù)的方法,所述方法包括a.接收輸入數(shù)據(jù)的第一‘n’位塊,所述輸入數(shù)據(jù)基于任何預(yù)定的動態(tài)系統(tǒng)參數(shù);b.在密鑰集的第一列中遍歷到等于所述輸入數(shù)據(jù)的第一‘n’位塊的等效十進(jìn)制數(shù)的行號,所述密鑰集為一種兩維數(shù)組,至少具有行號從0到(2n-1)的2n行以及至少兩列,所述兩維數(shù)組的第一列包括任意順序的唯一‘n’位數(shù),第二列與所述第一列耦合,所述第二列包括預(yù)定組的預(yù)定大小的隨機數(shù);c.確定存儲在所述密鑰集的第一列中的所述行號處的所述‘m’位;d.在所述‘n’位塊和所述‘m’位塊之間執(zhí)行模運算,所述結(jié)果被存儲作為第一臨時值;e.在密鑰集的所述第一列中遍歷到等于所述臨時值的等效十進(jìn)制數(shù)的行號;f.確定存儲在(e)中的所述行號處的數(shù);g.在所述‘m’位塊和(f)的數(shù)之間執(zhí)行異或運算;h.對所述密鑰集執(zhí)行預(yù)定運算;以及i.對所有后續(xù)‘n’位塊重復(fù)步驟a到g以獲得一組隨機數(shù)。
50.根據(jù)權(quán)利要求49所述的方法,其中,對所述密鑰集執(zhí)行預(yù)定運算的所述步驟進(jìn)一步包括對所述密鑰集的所述第二列執(zhí)行數(shù)學(xué)運算;以及以預(yù)定順序排列所述第二列并且在該過程中對應(yīng)于在所述第二列中執(zhí)行的排列對所述第一列進(jìn)行排列。
51.根據(jù)權(quán)利要求50所述的方法,其中,所述數(shù)學(xué)運算可為諸如模運算、異或運算、加法運算、或乘法運算的算術(shù)或邏輯運算中的一個或組合。
52.根據(jù)權(quán)利要求51所述的方法,其中,所述排列操作可包括以升序、降序、或任何預(yù)定次序的排序。
53.一種用于將輸入數(shù)據(jù)變換為輸出數(shù)據(jù)的應(yīng)用程序,所述應(yīng)用程序包括計算系統(tǒng),包括彼此通信的長期存儲器、處理器可讀存儲器和處理器,所述長期存儲器包括計算變換模塊,所述計算變換模塊與處理器和所述處理器可讀存儲器通信,并且當(dāng)所述用戶運行所述計算變換模塊時(a)基于初級密鑰集以及表示正向變換的第一指示符或表示反向變換的第二指示符,所述計算變換模塊接收輸入數(shù)據(jù)的第一‘n’位塊,用輸出數(shù)據(jù)的相應(yīng)‘m’位塊替換所述輸入數(shù)據(jù)的‘n’位塊,所述輸出數(shù)據(jù)的‘m’位塊大小等于輸入數(shù)據(jù)的‘n’位塊,其中,所述第一初級密鑰集為缺省密鑰集,基于預(yù)定組運算,用次級密鑰集替換所述初級密鑰集,所述次級密鑰集被用作所述初級密鑰集,此后,被配置為用于重復(fù)將輸入數(shù)據(jù)的每個后續(xù)‘n’位塊替換為輸出數(shù)據(jù)的相應(yīng)‘m’位塊的過程,每個替換基于不同的動態(tài)生成的密鑰集,直至所述輸入數(shù)據(jù)的所有塊被輸出數(shù)據(jù)的相應(yīng)塊替換;其中,當(dāng)在所述系統(tǒng)中使用介質(zhì)時,所述計算變換模塊存儲在所述介質(zhì)中,并且所述計算變換模塊被傳送到包括處理器可讀存儲器和所述處理器的系統(tǒng)的處理器可讀存儲器。
全文摘要
本發(fā)明總體上涉及計算變換過程,其可應(yīng)用于密碼學(xué)、隨機數(shù)生成、散列碼生成等。計算變換模塊使用密鑰集,該密鑰集被使用兩維數(shù)組設(shè)計。由于本發(fā)明中使用的正向變換過程是對稱加密過程,并且如果用來通過通信網(wǎng)絡(luò)安全地發(fā)送數(shù)據(jù),則相同的密鑰集需要存在于發(fā)送計算機處以加密數(shù)據(jù),并且存在于接收計算機處以經(jīng)歷反向變換并解密數(shù)據(jù)。當(dāng)輸入數(shù)據(jù)的第一‘n’位塊變換為輸出數(shù)據(jù)的第一‘m’位塊時,基于對密鑰集的非線性或單向變換將密鑰集變換為不同的密鑰集。使用變換的密鑰集對下一輸入塊加密,因此滿足完全保密的香農(nóng)理論。其使用具有附加參數(shù)的同一邏輯以及運算來創(chuàng)建隨機數(shù)和唯一的散列碼。計算變換過程是單向過程,其基于以下原理給定輸入值‘x’,使用函數(shù)F’(即,F(xiàn)(x)=y(tǒng))將‘x’變換為‘y’是很容易的。然而,在F范圍內(nèi)給定‘y’,難以找到x使得F(x)=y(tǒng)。在該系統(tǒng)中,對加密和解密使用只有常量改變的相同的變換函數(shù)和相同的密鑰集。
文檔編號H04L9/16GK101019367SQ200480043976
公開日2007年8月15日 申請日期2004年9月14日 優(yōu)先權(quán)日2004年9月14日
發(fā)明者P·普拉拉德·辛加納馬拉 申請人:P·普拉拉德·辛加納馬拉