專利名稱:為提高安全性的置換數(shù)據(jù)變換的制作方法
技術領域:
本發(fā)明涉及數(shù)據(jù)安全,特別涉及置換數(shù)據(jù)變換以提高安全性。
背景技術:
幾千年來,人們發(fā)現(xiàn)有必要進行保密。但對于歷史的大部分時期,保密技術發(fā)展的很緩慢。據(jù)推測只為Julius Caesar自己使用的凱撒移位密碼包括取出一個字母并通過字母表將其向前移動以隱藏消息。這樣,“A”變成了“D”,“B”變成了“E”,以此類推。雖然通常認為這種加密算法是一個很弱的加密,但直到最近的幾個世紀,幾乎沒開發(fā)出更好的加密算法。
在兩次世界大戰(zhàn)中,加密成為強力研究的焦點。在開發(fā)敵人無法破譯的碼以及在研究如何讀懂敵人的加密信件這兩個方面花費了很多力氣。設計出了機械設備以幫助加密。這些機器中最著名的一個是德國的恩尼格瑪(Enigma)機器,雖然恩尼格瑪決不是那個時代唯一的機械加密機器。
計算機的問世大大地改變了加密使用的狀況。不再需要復雜的機器或數(shù)小時的手工勞動,計算機能夠以高速加密和解密信息且成本很低。依據(jù)計算機的數(shù)學的理解也引入了新的加密算法。迪菲(Diffie)和赫爾曼(Hellman)的工作導致了一種利用指數(shù)算術的模素數(shù)來交換密鑰的方式,并依賴于這樣的事實,即計算給定公共信息的共享密鑰在計算上是不可行的。流行的RSA算法(以其發(fā)明者R.Rivest、A.Shamir、和L.Adleman命名)依賴的事實是將大數(shù)分解為因式同樣在計算上是不可行的,不能解密被加密的數(shù)據(jù)。迪菲和赫爾曼的工作以及RSA算法可以在理論上被破譯,但破譯這些算法依賴于解決待解決的數(shù)學問題。(順便說明,RSA算法也是最早的公開密鑰的密碼系統(tǒng)之一,它利用不同的密鑰解密而不是用密鑰加密。這使得公開分配密鑰而不喪失安全性成為可能)。
然而,沒有一種加密算法有無限的生命跨度。例如,DES(數(shù)據(jù)加密標準)最初于1976年發(fā)布。政府最初估計其壽命為10年。DES持續(xù)了長于最初估計的壽命跨度的時間,但由于其相對短的密鑰,認為DES短于理想壽命。由此DES被AES(高級加密標準)取代并作為政府標準,但DES仍廣泛使用。有許多對DES的改進,但這些改進不能保證DES永遠安全。最終,DES將被認為是不可靠的。
仍舊需要一種方法來加強現(xiàn)有加密算法的安全性。
發(fā)明內(nèi)容
在一個實施方式中,本發(fā)明是用于置換數(shù)據(jù)變換的方法和裝置。數(shù)據(jù)被分割成兩段。在第一段中的比特控制對第二段中的比特組的置換函數(shù)的應用。變換的數(shù)據(jù)包括第一段、和第二段的置換的組。
在第二個實施方式中,本發(fā)明是用于指數(shù)數(shù)據(jù)變換的方法和裝置。數(shù)據(jù)被分為兩段。自乘第二段到第一段的函數(shù)的次冪。將一模數(shù)應用于此結(jié)果。變換的數(shù)據(jù)包括第一段和按該模數(shù)取模的余數(shù)。
在第三個實施方式中,本發(fā)明是用于從主密鑰形成密鑰導出的方法和裝置。在一個實施方式中,主密鑰的一部分被打亂成散列。從主密鑰的另一部分中得到兩個數(shù)字。使用這兩個數(shù)字,將通用散列函數(shù)應用于所述散列的結(jié)果,從中選擇比特作為導出密鑰。
在第四個實施方式中,使用編碼的計數(shù)器,將通用散列函數(shù)應用到部分主密鑰上,并組合所得結(jié)果。所組合的結(jié)果隨即被打亂成散列,從中選擇比特作為導出密鑰。
參考所附圖形,本發(fā)明的上述及其它特征、目的和優(yōu)點將自下面的詳細描述中變得更加明顯。
圖1顯示了自主密鑰匙生成導出密鑰的安全散列算法的總體實施方案。
圖2顯示了圖1的安全散列算法的典型操作。
圖3顯示了通用散列算法的典型操作。
圖4顯示了按照本發(fā)明的一個實施方式的將安全散列算法和圖1的通用散列算法相結(jié)合以生成更安全的導出密鑰的不同方式。
圖5顯示了按照本發(fā)明的一個實施方式的一臺服務器和一個能夠執(zhí)行數(shù)據(jù)變換、密鑰生成、密鑰包裝和數(shù)據(jù)加密的設備。
圖6顯示了按照本發(fā)明的一個實施方式的通過利用數(shù)據(jù)變換器并結(jié)合密鑰包裝器、密鑰導出器、或加密函數(shù)來提高安全性的數(shù)據(jù)安全設備。
圖7A-7B顯示了按照本發(fā)明的一個實施方式的使用圖6的數(shù)據(jù)安全設備的流程圖。
圖8顯示了按照本發(fā)明的一個實施方式的圖5和6的數(shù)據(jù)變換器的詳細情況。
圖9顯示了按照本發(fā)明的一個實施方式的圖5和6的數(shù)據(jù)變換器的詳細情況。
圖10A-10C顯示了按照本發(fā)明的一個實施方式的使用圖8的數(shù)據(jù)變換器的流程圖。
圖11顯示了按照本發(fā)明的一個實施方式的使用圖9的數(shù)據(jù)變換器的流程圖。
圖12顯示了按照本發(fā)明的一個實施方式的圖5和6的密鑰導出功能的細節(jié)。
圖13顯示了按照本發(fā)明的一個實施方式的圖5和6的密鑰導出功能部件的細節(jié)。
圖14顯示了按照本發(fā)明的一個實施方式的使用圖12的密鑰導出功能部件的流程圖。
圖15顯示了按照本發(fā)明的一個實施方式的使用圖13的密鑰導出功能部件的流程圖。
圖16顯示了按照本發(fā)明的一個實施方式的在圖5的數(shù)據(jù)安全設備中使用密鑰導出功能部件的流程圖。
具體實施例方式
圖1顯示了自主密鑰匙生成導出密鑰的安全散列算法的總體實施方案?;緲?gòu)思是將主密鑰105輸入至安全散列算法110。安全散列算法的一個例子是SHA-1(安全散列算法1)。結(jié)果是導出密鑰115-1。安全散列算法110可多次使用。依賴于安全散列算法110的實施,可重復使用主密鑰105作為至安全散列算法110的輸入,對其可修改也可不修改。例如,如果安全散列算法110使用一個時鐘控制其輸出,則主密鑰105可不經(jīng)修改而用于生成導出密鑰115-2和115-3。另外,主密鑰105可以某種方式與計數(shù)器組合以充分修改主密鑰105從而自導出密鑰115-1區(qū)分出導出密鑰115-2和115-3。如果適當?shù)貙嵤┌踩⒘兴惴?05,則在主密鑰105中小達單個比特的變化會導致導出密鑰115-2和115-3與導出密鑰115-1完全不相關。
圖2顯示了圖1的安全散列算法的典型操作。如圖所示,散列算法映射輸入至散列值。在圖2中,對于某個值n,散列值在0和n之間變化。散列算法的輸出可以指籃(basket);圖2顯示了籃205、210、215并以此類推至籃220。
與一般的散列算法不同,一般的散列算法可使用任何希望的映射以映射輸入至籃,安全散列算法是不可預知的(有時也叫做無碰撞的)已知一個輸入產(chǎn)生一個特定輸出,這不能給出關于如何找到另一個能產(chǎn)生同樣輸出的輸入的任何信息。例如,知道輸入“5”映射到籃215不能幫助我們找到也映射籃215的任何輸入值。事實上,對一些特定的散列算法,沒有映射籃215的其它輸入。這正是使安全散列算法110“安全”的原因沒有簡單的方法可找到映射希望輸出的另一個輸入。找到映射到特定輸出的另一個輸入的唯一方式是試驗不同的輸入,以期望找到映射到希望輸出的另一個值。
安全散列算法的缺點是籃不能都被相等地映射。換句話說,可能只有一個映射到籃215的輸入,但映射到籃205的輸入可能有100個。且如上所述,一些籃可能沒有映射到它們的輸入。
通用的散列算法提供了分布特征,這些分布特征是安全散列算法缺失的。如圖3所示,通用散列算法305也映射輸入至籃310、315、320直至325。但與圖2的安全散列算法不同,通用的散列算法305分配其輸入均勻穿過籃。這樣,籃310以與籃315、320、325等一樣的頻率被映射,并依此類推。
通用散列算法的缺點是很容易找到映射到同一個籃的其他輸入。例如,考慮通用散列算法,其映射到10個籃,通過選擇對應輸入的最后一個數(shù)字的籃,編號從0到9。顯然,這一散列算法平均分配其輸出穿過所有籃。但也很容易看到如何找到另一個映射到同一籃的輸入,以此作為給定輸入。例如,1、11、21、31等等都映射籃315。
因此,很顯然,安全散列算法和通用散列算法都有優(yōu)點和缺點。從安全的角度看,最好的解決方式是以某種方式結(jié)合安全散列算法和通用散列算法的優(yōu)點。按照本發(fā)明的一個實施方式,圖4顯示了圖1-2的安全散列算法和圖3的通用散列算法如何結(jié)合以生成更安全的導出密鑰。在序列405,主密鑰105首先傳遞至安全散列算法110。隨后使用安全散列算法110的結(jié)果作為至通用散列算法305的輸入,并且自結(jié)果可產(chǎn)生導出密鑰115-1。
然而序列405顯示了安全散列算法110在通用散列算法305之前被使用,序列410則顛倒這一順序。因此,主密鑰105用作至通用散列算法305的輸入。通用散列算法305的結(jié)果隨即用作至安全散列算法110的輸入,自此結(jié)果可生成導出密鑰115-1。
安全散列算法110和通用散列算法305可以任何希望的形式實施。例如,安全散列算法110和通用散列算法305可以在任何一種只讀存儲器(RAM)或固件中實施,或作為軟件存儲在存儲器中,以提供一些例子,其中,安全散列算法110和通用散列算法305的實現(xiàn)過程可以由通用的處理器執(zhí)行。實施方案還可以包括一些專用的設備例如,處理器可以被特殊設計以實施安全散列算法110或通用散列算法305。因此,作為另一個例子,可以設計一個計算器來實施安全散列算法110或通用散列算法305。本領域技術人員會認識到可以實施安全散列算法110和通用散列算法305的其它方式。按照本發(fā)明的一個實施方式,圖5顯示了一臺服務器和一個能夠完成數(shù)據(jù)變換、密鑰生成、密鑰包裝和數(shù)據(jù)加密的設備。在圖5中顯示了服務器505。服務器505包括數(shù)據(jù)變換器510、密鑰導出功能部件515、密鑰包裝功能部件520、和加密功能部件525。數(shù)據(jù)變換器510負責完成數(shù)據(jù)變換。正如參考圖8-9、10A-10C和11在下文所討論的,當本來就不安全的情況下,數(shù)據(jù)變換通過打亂數(shù)據(jù)來增加編碼數(shù)據(jù)的復雜程度,因而使密碼分析更困難。例如,數(shù)據(jù)變換能夠掩飾存在于編碼中數(shù)據(jù)而不是變換數(shù)據(jù)中的模式。
密鑰導出功能部件515負責導出密鑰以用于加密數(shù)據(jù)。雖然任何密鑰的確可用于加密數(shù)據(jù),但一個特定的密鑰用得越多,此密鑰就越可能為密碼分析所測定。因此,一些系統(tǒng)依靠主密鑰生成導出密鑰,隨后使用導出密鑰來加密數(shù)據(jù)。正如通常所希望的,可生成新的導出密鑰;僅利用導出密鑰加密的任何數(shù)據(jù)在破解用新的導出密鑰加密的信息過程中沒有任何價值?,F(xiàn)有的密鑰導出功能部件是存在的;在下文將參考圖12-13和15-16描述三個新密鑰導出功能部件。
密鑰包裝功能部件520負責包裝用于傳輸?shù)拿荑€。密鑰包裝通常通過加密用于傳輸?shù)拿荑€來完成。例如,RSA可用于加密(即包裝)密鑰。即使是通過不安全的連接,此時經(jīng)充分保護的密鑰也可以被傳輸至其它的機器,其中,密鑰可以是未包裝的(解密的)并用于數(shù)據(jù)加密/解密。
通常,包裝的密鑰是與秘密密鑰、或?qū)ΨQ的、密碼系統(tǒng)一起使用的密鑰,其用公開密鑰或不對稱的、密碼系統(tǒng)包裝。在秘密密鑰密碼系統(tǒng)中,同樣的密鑰用于加密和解密,這與使用不同的密鑰來加密和解密的公開密鑰密碼系統(tǒng)相反。例如,DES和AES是秘密密鑰密碼系統(tǒng);RSA是公開密鑰密碼系統(tǒng)。公開密鑰密碼系統(tǒng)使安全地分布密鑰(不用擔心密鑰被截取并為第三方用于解密秘密信息)成為可能,但與秘密密鑰密碼系統(tǒng)相比,公開密鑰密碼系統(tǒng)通常實施起來比較慢并導致較長的信息。顯然,為使用公開密鑰密碼系統(tǒng)包裝密鑰,服務器505需要知道包裝的密鑰要傳遞至哪個設備的公開密鑰。但本領域技術人員應認識到,可使用任何加密算法來包裝密鑰,待包裝的密鑰可用于任何類型的密碼系統(tǒng)。
加密功能部件525用于加密數(shù)據(jù)。通常,使用密鑰來加密數(shù)據(jù),而使用密鑰包裝功能部件520來包裝密鑰,當然,本領域技術人員應認識到,可使用任何密鑰來加密數(shù)據(jù),數(shù)據(jù)可以是任何希望被加密的數(shù)據(jù),并且可使用任何希望的加密功能部件。
圖5還顯示了按照本發(fā)明的一個實施方式能夠完成數(shù)據(jù)變換、密鑰包裝、和數(shù)據(jù)加密的設備530。盡管設備530看上去象個人數(shù)字助理(PDA),本領域技術人員應認識到,設備530和服務器550一樣可以是使用安全算法的任何設備。因此,例如設備530可以是與服務器505(可以是一臺本質(zhì)上不是服務器的普通計算機)交換文件的一臺計算機(比如臺式計算機或筆記本計算機)?;蛘?,設備530可以是數(shù)字介質(zhì)設備比如,為使用者呈現(xiàn)數(shù)字內(nèi)容,通過服務器505提供內(nèi)容給設備530??商娲?,設備530可以接收來自任何合法源頭的內(nèi)容,服務器505規(guī)定了關于所說內(nèi)容對設備530授予的權(quán)力?;蛘?,設備530可以是軟件,可完成存儲在一些介質(zhì)中并為如計算機的通用機器所使用的一些功能。在此變化中,使設備530成為圖5所示的系統(tǒng)的一部分比較少地依賴于設備530的硬件,而更多地依賴于由設備530執(zhí)行的軟件。本領域的技術人員應認識到,軟件可以完成任何期望的功能,而且軟件可以存儲在任何合適的介質(zhì)上,比如軟盤、任何種類的壓縮盤(CD)或數(shù)字視頻盤(DVD,有時也叫數(shù)字多功能盤)、磁帶介質(zhì)、或通用串行總線(USB)鍵盤,這里只指出一些較流行的可能性。或者,設備530可以是蜂窩電話或者服務器505基站,其中蜂窩電話和基站以加密的方式通信。本領域技術人員應認識到設備530和服務器505的其它變化形式,還應認識到服務器505和設備530的通信方式可以是通信渠道的任何形式如,有線、無線、或通信的任何其它形式。
設備530類似于圖5中的服務器505,包括數(shù)據(jù)變換器510、密鑰包裝功能部件520、和加密功能部件525。應注意,設備530不包括密鑰導出功能部件515,這與圖5中的服務器505不同。這是因為密鑰導出通常只在服務器505上是需要的。假設有一種與其它設備通信的方式,則只有一個設備需要生成導出密鑰。當然,如果沒有辦法安全傳遞導出密鑰,但是兩個設備都能準確生成同樣的導出密鑰,則設備530可包括密鑰導出功能部件515(雖然設備530可能不需要密鑰包裝功能部件520)。
圖6顯示了按照本發(fā)明的一個實施方式的數(shù)據(jù)安全設備,其可利用數(shù)據(jù)變換器并結(jié)合密鑰包裝器、密鑰導出器、或加密功能來操作提高安全性。數(shù)據(jù)安全設備605可以是圖5的服務器505或設備530的一部分,可根據(jù)需要進行改動增加或省去一些部件。在數(shù)據(jù)安全設備605中,輸入端口610負責接收數(shù)據(jù)。在其它多種可能的情況中,數(shù)據(jù)可以是主密鑰,自此可生成導出密鑰、待包裝的密鑰、或待加密的數(shù)據(jù)。分割器615負責把數(shù)據(jù)分割成塊。正如參考圖12-13和14-16在下文討論的,有時這些功能部件將數(shù)據(jù)變換應用于數(shù)據(jù)的多個部分;分割器615將數(shù)據(jù)拆成所期望大小的塊,這樣數(shù)據(jù)變換器510可以應用于每一塊。數(shù)據(jù)變換器510負責完成數(shù)據(jù)變換,這在下文將參考圖12-13和14-16進一步討論。合成器620負責合成數(shù)據(jù)塊,在數(shù)據(jù)變換后,一起送回用于合適的安全功能的應用。可使用的各種的安全功能部件,包括密鑰導出功能部件51 5、密鑰包裝功能部件520、或加密功能部件525。最后,在變換和/或應用安全功能之后,輸出端口625輸出數(shù)據(jù)。
值得注意的是,雖然一般分割器615可將數(shù)據(jù)拆成塊使其符合數(shù)據(jù)變換算法的大小,但這并不是必要的。因此,分割器615將數(shù)據(jù)拆成的塊可以小于或大于對數(shù)據(jù)變換器510的期望的輸入。如果分割器615將數(shù)據(jù)拆成的塊比數(shù)據(jù)變換器510期望的小,則添加數(shù)據(jù)使其足夠大;如果分割器615將數(shù)據(jù)拆成的塊比數(shù)據(jù)變換器510期望的大,數(shù)據(jù)變換器510可以應用數(shù)據(jù)變換到數(shù)據(jù)所需要的比特數(shù)。例如,如果如圖10的實施方式中所描述的實施數(shù)據(jù)變換器510,則數(shù)據(jù)變換器510操作8字節(jié)的輸入。如果數(shù)據(jù)變換器510接收多于8字節(jié)的數(shù)據(jù),數(shù)據(jù)變換器510可只應用到輸入的8個字節(jié)。這可以是數(shù)據(jù)中的任何8個字節(jié)如第一個8字節(jié),最后的8字節(jié),或任何其它希望的組合。
值得注意的還有,任何數(shù)據(jù)都可以變換。因而,待變換的數(shù)據(jù)可以是主密鑰,其中變換的主密鑰用于生成導出密鑰。或者數(shù)據(jù)可以是在傳輸之前要包裝的導出密鑰。或者,數(shù)據(jù)可以是使用加密算法的實現(xiàn)過程要加密的數(shù)據(jù)。本領域的技術人員應認識到可以變換的其它類型數(shù)據(jù)。
圖7A-7B顯示了按照本發(fā)明的一個實施方式的使用圖6的數(shù)據(jù)安全設備的流程圖。在圖7A中,在框705,數(shù)據(jù)被分割成塊。在框710,使用數(shù)據(jù)變換對每個塊進行變換。每個塊可以按照所期望的獨立地進行數(shù)據(jù)變換或不變換;換言之,一些塊可以變換,而另一些不變換。在框715,這些塊重新裝配。如虛線720所示,框705-715是可選的,如果不需要可以跳過。
在圖7B,數(shù)據(jù)安全設備可以按不同的方式使用。在框725,密鑰包裝算法可應用于數(shù)據(jù)。在框730,密鑰導出算法可以應用于數(shù)據(jù)。而在框730,數(shù)據(jù)加密算法可以應用于數(shù)據(jù)。
圖8顯示了按照本發(fā)明的一個實施方式的圖5和6的數(shù)據(jù)變換器的詳細情況。在圖8所示的數(shù)據(jù)變換器510的實施方式中,數(shù)據(jù)變換器510通過使用置換函數(shù)置換比特組來操作。數(shù)據(jù)變換器510包括接收待變換數(shù)據(jù)的輸入端口805、分割器810、微調(diào)器(padder)815、置換器820、和輸出變換后數(shù)據(jù)的輸出端口825。分割器810負責將輸入數(shù)據(jù)分割成應用于置換函數(shù)的比特組。事實上,分割器810通過將數(shù)據(jù)分成兩段來開始。第一段包括用于控制在比特組上應用置換函數(shù)的比特,這些比特是從第二段劃分出來的。在一個實施方式中,數(shù)據(jù)包括64個比特;第一段包括8個比特,而第二段包括8個7比特組。但本領域的技術人員應認識到,數(shù)據(jù)可以是任何長度,且數(shù)據(jù)可以分割成任何期望長度的組,即使不同的組長度不同。最后,如果單個組總是要進行置換,則包括控制置換組應用的比特的第一段可以省略。
如果數(shù)據(jù)變換器510支持接收不可預知大小的數(shù)據(jù)(而不是假定數(shù)據(jù)總是固定大小),則分割器810可以不能把數(shù)據(jù)劃分成合適的比特組。可使用微調(diào)器815用額外的比特添湊所說數(shù)據(jù),以使數(shù)據(jù)具有可適當分割的合適長度。
在一個實施方式中,置換函數(shù)的應用由第一段的比特來控制如果在第一段中的相應比特置位,則使用特定的置換函數(shù)來置換比特組。例如,如果相應的比特的值為1,則利用合適的置換函數(shù)置換相應的組;如果相應的比特的值為0,則不置換相應組??蛇x擇地,如果相應比特的值為0,則相應比特組可看成已利用恒等置換函數(shù)已置換了。置換函數(shù)也可以做成索引;如果置換函數(shù)的號碼匹配第二段中比特組的數(shù)目(并因此匹配第一段中的比特的數(shù)目),則單個索引可識別三個相應的單元在第一段中的一個比特、在第二段中的一個比特組、和應用于這個比特組的置換函數(shù)。
置換器820負責控制第二段的比特組的置換。在一個實施方式中,置換器820根據(jù)下面的表1中的函數(shù)進行置換,雖然本領域的技術人員應認識到可使用任何置換函數(shù)。
表1
表1所示的置換有一些有趣的特征。首先,每個置換函數(shù)是置換函數(shù)P1的冪次。這樣,P2=P1оP1,P3=P2оP1(=P1оP1оP1),等等。因為P6оP1將再次導致P1,P7和P8被選擇重復先前的P1的冪次。這意味著數(shù)據(jù)變換器510只需要知道一個置換函數(shù)的實現(xiàn)過程;置換函數(shù)的其余部分可得自于基本置換函數(shù)。其次,表1的置換未引入類似于在加密函數(shù)如RAS、DES、AES、SHA-1中發(fā)現(xiàn)的數(shù)據(jù)中的任何結(jié)構(gòu)。
因為置換函數(shù)是可逆的,由應用使用表1的置換函數(shù)而得到的數(shù)據(jù)變換容易反向。表2顯示的置換函數(shù)為表1置換函數(shù)的逆。
表2
這樣,為了反轉(zhuǎn)應用于表1置換函數(shù)的數(shù)據(jù)變換,需要做的所有工作是利用表2的置換函數(shù)應用第二數(shù)據(jù)變換。為了使此反轉(zhuǎn)變換可行,輸出端口825連同置換組一起直接輸出第一段的比特;否則,變換數(shù)據(jù)的接收器將不知道哪個比特組已被置換。
就象表1的置換函數(shù)一樣,表2中的所有置換函數(shù)可得自于單個基本函數(shù)在此情況下,P6-1。因而,P5-1=P6-1оP6-1,P4-1=P5-1оP6-1(=P6-1оP6-1оP6-1),等等。
圖9顯示了按照本發(fā)明的一個實施方式的圖5和6的數(shù)據(jù)變換器的詳細情況。在圖9中,輸入端口905和輸出端口910的操作類似于圖8中的數(shù)據(jù)變換器510。但不同于使用置換函數(shù)來置換數(shù)據(jù),圖9中的數(shù)據(jù)變換器510通過計算數(shù)據(jù)的指數(shù)置換來操作此計算由計算器915來進行。在一個實施方式中,數(shù)據(jù)變換器510操作3字節(jié)長的數(shù)據(jù)輸入。第一段用于計算冪次,最后兩個字節(jié)自乘至該冪次。隨后對結(jié)果按一模數(shù)取模。例如,一個實施方式計算數(shù)據(jù)變換為Y=(B+1)(2A+1)mod 65537)-1,其中A是數(shù)據(jù)輸入的第一字節(jié),B是數(shù)據(jù)輸入的最后兩個字節(jié)。變換的數(shù)據(jù)包括A和Y,為3字節(jié)長。但本領域技術人員應認識到,輸入可以有不同的長度,且可應用不同的指數(shù)置換函數(shù)。
以上所示的指數(shù)置換函數(shù)有一些優(yōu)點。首先,抽象代數(shù)顯示了指數(shù)和模(減1)是互素的,函數(shù)循環(huán)于1和模數(shù)之間的所有可能值,這意味著指數(shù)置換函數(shù)是一個置換。通過選擇65537作為素數(shù),比65537小1的是65536,為2的冪次。因此,不考慮A的值,(2A+1)是奇數(shù),且因此與65536互素。其次,如果A是0,則數(shù)據(jù)輸出是不變的。最后,就象圖8的置換數(shù)據(jù)變換器一樣,圖9的數(shù)據(jù)變換器510的結(jié)構(gòu)使用了在加密算法如RSA、DES、AES、SHA-1等中沒有的結(jié)構(gòu)。
如果數(shù)據(jù)變換器510支持接收不可預知大小的數(shù)據(jù)(而非假定數(shù)據(jù)總是固定大小),則分割器920可能無法將數(shù)據(jù)分割成合適大小的段。就象圖8的數(shù)據(jù)變換器中的微調(diào)器815一樣,微調(diào)器925可用于以額外的比特添湊加長數(shù)據(jù),以使數(shù)據(jù)具有可適當分割的合適長度。
就象圖8的置換數(shù)據(jù)變換器一樣,圖9的數(shù)據(jù)變換器510是可逆的。為了可以反轉(zhuǎn)數(shù)據(jù)變換,輸出端口910連同Y一起輸出不變的A。然后,為反轉(zhuǎn)指數(shù)置換,計算器915計算2A+1取模65536(即65537-1)的反轉(zhuǎn)。如果此反轉(zhuǎn)叫e,則反轉(zhuǎn)的指數(shù)置換為((Y+1)emod 65537)-1。此計算的結(jié)果恢復了原始字節(jié)B。這樣,通過應用第二數(shù)據(jù)變換,可以容易地反轉(zhuǎn)指數(shù)置換,改變數(shù)據(jù)變換器的指數(shù)。
既然圖8和9的設備已經(jīng)表示出來,就可以理解它們的的使用方法。圖10A-10C顯示了按照本發(fā)明的一個實施方式使用圖8的數(shù)據(jù)變換器的流程圖。在圖10A中,在框1005接收數(shù)據(jù)。在框1010,數(shù)據(jù)被分割成兩段(假定比特組的置換由第一段中的比特來控制)。在框1015,數(shù)據(jù)變換器檢查第二數(shù)據(jù)段是否被均勻分割為組。如果不是,則在框1020,數(shù)據(jù)被添湊以支持將第二段分割成大小均勻的組。(這假定數(shù)據(jù)變換器試圖將數(shù)據(jù)輸入分割成大小均勻的組;如果數(shù)據(jù)變換器不需要將輸入數(shù)據(jù)分割成大小均勻的組,則可省略框1015和1020。)在框1025(圖10B),第二段被分割成比特組。雖然框1025描述第二段被分割成同樣大小的組,如上所述,如果數(shù)據(jù)變換器支持,這些組可分割成不同大小的組。在框1030,各組被與第一段中的一比特關聯(lián)。在框1035,定義了基本置換函數(shù)。在框1040,其它置換函數(shù)定義為基本置換函數(shù)的冪。(再次地,不要求置換是基本置換函數(shù)的冪;每個置換函數(shù)可以與其它的置換函數(shù)不相關,在此情況下,可改動/省略框1035和1040。)在框1045,索引置換函數(shù)。
在框1050(圖10C),數(shù)據(jù)變換器檢查第一段(它控制對第二段中比特組的置換函數(shù)的應用)的任意比特是否已被檢查。如果有未檢查的比特,則在框1055,數(shù)據(jù)變換器檢查比特是否置位。如果比特置位,則在框1060,由該比特索引的置換函數(shù)被識別,并且在框1065,將識別的置換應用到關聯(lián)的置換組上。然后控制返回到框1050以檢查在第一段中是否還有任何未檢查的比特。在第一段的所有比特被檢查之后,在框1070,數(shù)據(jù)變換器自第一段和置換的比特組構(gòu)造數(shù)據(jù)變換。圖11顯示了按照本發(fā)明的一個實施方式的使用圖9的數(shù)據(jù)變換器的流程圖。在框1105,數(shù)據(jù)變換器接收數(shù)據(jù)。在框1110,數(shù)據(jù)變換器將數(shù)據(jù)分割成兩段。在框1115,第一段用于構(gòu)造與所選模數(shù)互素的冪次。在框1120,將第二段自乘所計算出的冪次。在框1125,通過對結(jié)果按所述模數(shù)取模計算余數(shù)。最后,框1130,自第一段和該余數(shù)構(gòu)造數(shù)據(jù)變換。
如以上參考圖5所述,現(xiàn)有的密鑰導出功能是存在的。然而如以上參考圖4所述,現(xiàn)有的密鑰導出功能不提供安全散列算法和通用散列算法的優(yōu)點。圖12顯示了一種密鑰導出功能的細節(jié),它結(jié)合了安全散列算法和通用散列算法的優(yōu)點。在圖12中,密鑰導出功能部件515包括輸入端口1205和輸出端口1210,它們分別用于提供至密鑰導出功能部件的輸入和輸出的導出密鑰。密鑰導出功能部件515還包括分割器1215、組合器1220,散列裝置1225、判定器1230、計算器1235、和比特選擇器1240。
分割器1215將主密鑰分割成兩部分。組合器組合主密鑰的第一部分與一個計數(shù)器,其可以是輸入數(shù)據(jù)的一部分。將主密鑰和計數(shù)器結(jié)合的一種方式是將主密鑰的第一部分與計數(shù)器接合(concatenate),其可以是任意大小(如4字節(jié))。此接合可以以任一次序執(zhí)行即,主密鑰的第一部分或計數(shù)器都可在組合的前部。組合的結(jié)果隨即使用散列函數(shù)1225被打亂成散列,其可以是安全散列函數(shù)。(在此實施方式中,散列函數(shù)1225代替了圖4的序列405中的安全散列算法110。)判定器1230用于確定來自主密鑰第二部分的兩個數(shù)字。在一個實施方式中,這兩個數(shù)字,a和b,確定作為主密鑰第二部分的第一和最后32字節(jié),模素數(shù)p。以此方式選擇a和b要求主密鑰對于主密鑰64字節(jié)長的第二部分來說具備足夠大的長度。但本領域的技術人員應認識到,主密鑰不是必須有這么長。例如,如果計算a和模p的b充分地改變了a和b的比特,a和b可以這樣的方式選擇即它們的原始比特在主密鑰的第二部分內(nèi)重疊。
對于素數(shù)的一個特定選擇可以是p192=2192-264-1,雖然本領域技術人員應認識到也可選擇其它素數(shù)。計算器1235可實施(ax+b)mod p的通用散列函數(shù),其中x是散列裝置1225的結(jié)果。(此通用散列函數(shù)代替了圖4的序列405中的通用散列算法305)。最后,比特選擇器1240為導出密鑰自通用散列函數(shù)的結(jié)果選擇比特,這些比特可作為輸出。例如,比特選擇器1240可選擇通用散列函數(shù)的結(jié)果的最低有效比特(the least significantbits)作為導出密鑰。
圖13顯示了按照本發(fā)明的另一個實施方式的圖5和6的密鑰導出功能部件的細節(jié)。圖12所示的本發(fā)明的實施方式按照圖4的序列405實現(xiàn)密鑰導出功能,與其相反,圖13的密鑰導出功能部件515在安全散列算法之后不應用通用散列算法。作為替代,圖13所示的本發(fā)明的實施方式將對輸入的線性映射應用于安全散列算法。
就象圖12的密鑰導出功能部件515一樣,圖13的密鑰導出功能部件515包括輸入端口1305和輸出端口1310,它們分別接收主密鑰作為輸入并輸出導出密鑰。圖13的密鑰導出功能部件515還包括分割器1315、編碼器1320、組合器1325,散列裝置1330、和比特選擇器1335。
就象圖12的分割器1215一樣,分割器1315將主密鑰分割成兩部分。編碼器1320隨即編碼計數(shù)器。編碼器1320可以任何希望的方式操作。例如,編碼器1320可以通過重復計數(shù)器使其延展至主密鑰第一部分的長度來操作。因此,例如若主密鑰第一部分是64字節(jié)長而用4字節(jié)表示計數(shù)器,編碼器1320能夠重復這些4字節(jié)16次以延展計數(shù)器至64字節(jié)長。組合器1325能隨即將編碼了的計數(shù)器與主密鑰的每個部分分別結(jié)合。例如,組合器1325能在比特級將主密鑰的這些部分和編碼的計數(shù)器組合。一實施方式使用XOR二進制函數(shù)(binary function)以組合主密鑰的這些部分和編碼的計數(shù)器。但本領域的技術人員應認識到,組合器1325可使用任何按位操作的二進制函數(shù)(bitwise binary function)或任何函數(shù)來組合主密鑰的這些部分和編碼的計數(shù)器。然后,組合器1325將主密鑰的這兩部分重新組合回來在一起(在與編碼的計數(shù)器組合之后)例如,此二部分可接合在一起(但本領域技術人員應認識到組合器1325可以其它方式重新組合主密鑰的這兩部分)。組合器1325還將主密鑰的重新組合部分與編碼的計數(shù)器再接合一次。
散列裝置1330取出組合器1325的輸出并將其打亂成散列。散列裝置1330可以是安全散列功能部件。就象圖12中的比特選擇器1240一樣,比特選擇器1335隨后可自散列裝置1330的結(jié)果選擇比特作為導出密鑰。
既然圖12和13的設備已經(jīng)表示出來,就可以理解它們的使用方法。圖14顯示了按照本發(fā)明的一個實施方式的使用圖12的密鑰導出功能部件的流程圖。在框1405,主密鑰被分割成段。在框1410,第一段與編碼的計數(shù)器組合。參考圖12如上所述,此組合可以是第一段與編碼的計數(shù)器的鏈接。在框1415,組合的第一段被打亂成散列。
在框1420,自第二段確定兩個數(shù)字。參考圖12如上所述,可以相對于一模數(shù)來確定此二數(shù)字。在框1425,使用這兩個確定的數(shù)字和該模數(shù)來定義通用散列函數(shù)。在框1430,散列的結(jié)果應用于通用散列函數(shù)。在框1435,自通用散列的結(jié)果選擇比特作為導出密鑰。
圖15顯示了按照本發(fā)明的一個實施方式的使用圖13的密鑰導出功能部件的流程圖。在框1505,主密鑰被分成段。在框1510,每個段與編碼的計數(shù)器組合。參考圖13如上所述,這可以通過將XOR比特函數(shù)與編碼的計數(shù)器分別應用于每一段來實現(xiàn)。在框1515,組合的塊此時重新組合,并且(參考圖13如上所述)可與編碼的計數(shù)器再次組合。在框1520,此修改的主密鑰隨即被打亂成散列,并且在框1525,自散列的結(jié)果選擇比特作為導出密鑰。
圖12-15所示的密鑰導出功能部件只是兩個例子。其它將安全散列算法與通用散列算法的優(yōu)點結(jié)合的密鑰導出功能部件也可使用。圖16顯示了按照本發(fā)明的一個實施方式的在圖5的數(shù)據(jù)安全設備中用于另一個密鑰導出功能部件的流程圖。在框1605,主密鑰被分成段。在框1610,利用數(shù)據(jù)變換來變換這些段。因為這些段一般比數(shù)據(jù)變換器能夠使用的大,所以只使用這些段的子集例如,數(shù)據(jù)變換需要的僅是那些第一個字節(jié)。在框1615,變換的段組合,并與編碼的計數(shù)器組合例如,這些段與編碼的計數(shù)器可接合在一起。在框1620,結(jié)果被打亂成散列,在框1625,自散列的結(jié)果選擇比特作為導出密鑰。
雖然圖12-13的設備和圖14-16的流程圖顯示了自主密鑰生成單個導出密鑰,然而值得說明的是,本發(fā)明的實施方式很容易適合于生成重復的導出密鑰。這些額外的導出密鑰可以按多種方式生成。例如,圖14-16的流程圖都包括計數(shù)器。對于每個所希望的額外導出密鑰,可增加計數(shù)器。因而,為導出第一密鑰,計數(shù)器可使用值1,為導出第二密鑰,計數(shù)器可使用值2,依此類推。
在另一個變化形式中,不是使用圖12的比特選擇器1240或圖13的比特選擇器1335來選擇比特用于導出密鑰,而是一次生成足夠多的結(jié)果以便為所有導出密鑰自組合的結(jié)果中選擇比特。例如,假定希望u個密鑰,每個k比特長,并進一步假設在比特選擇前,圖12-13的設備和/或圖14-16的流程圖的結(jié)果產(chǎn)生l個比特。如果密鑰導出功能部件使用了m次,因而有m*l≥u*k,則u個導出密鑰都可以自m*l個結(jié)果比特中同時選擇。例如,m*l個結(jié)果比特可以都接合在一起;第一個密鑰可選作頭k個比特,第二個密鑰可選作第二k個比特,依此類推直至所有u個密鑰被選擇。
下面的討論是為了提供對合適機器的簡要的總體描述,其中將實施本發(fā)明的一些方面。通常,該機器包括一條系統(tǒng)總線,它連接于處理器、諸如隨機存取存儲器(RAM)、只讀存儲器(ROM)或其它狀態(tài)保存介質(zhì)的存儲器、存儲設備、視頻接口、和輸入/輸出端口。通過來自傳統(tǒng)輸入設備如鍵盤、鼠標等的輸入,也可以通過自另一個機器接收的指示、與虛擬現(xiàn)實(VR)環(huán)境、生物測定反饋、或其它輸入信號的交互作用,可以至少部分地控制該機器。在此使用的術語“機器”廣泛地包括單個機器、或與共同操作的機器或設備通信連接的系統(tǒng)。機器的實例包括計算設備,如個人計算機、工作站、服務器、便攜式計算機、手提設備、電話、圖形輸入板等等,還包括運輸設備,如個人或公共運輸設備象汽車、火車、出租車等等。
該機器可包括嵌入式控制器,如可編程或不可編程邏輯設備或陣列、專用集成電路、嵌入式計算機、智能卡及類似物。該機器可使用一個或多個連接與一個或多個遠端機器相連,如通過網(wǎng)絡接口、調(diào)制解調(diào)器、或其它通信連接。借助于物理的和/或邏輯的網(wǎng)絡,如企業(yè)內(nèi)部互聯(lián)網(wǎng)、互聯(lián)網(wǎng)、局域網(wǎng)、廣域網(wǎng)等等,機器可以互連。本領域技術人員應認識到網(wǎng)絡通信可使用多種有線和/或無線短程或遠程載波和協(xié)議,包括射頻(RF)、衛(wèi)星、微波、IEEE(美國電氣及電子工程師學會)802.11、藍牙、光學的、紅外線、電纜、激光等等。
通過參考或結(jié)合相關數(shù)據(jù)如函數(shù)、程序、數(shù)據(jù)結(jié)構(gòu)、應用程序等等可描述本發(fā)明,上述內(nèi)容由機器訪問時使機器完成任務或定義抽象數(shù)據(jù)類型或低級硬件語境。相關數(shù)據(jù)可存儲在如易失性和/或非易失性存儲器象RAM、ROM等中,或存儲在其它存儲設備和其相關存儲介質(zhì)中,包括硬盤、軟盤、光存儲器、磁帶、閃存、內(nèi)存條、數(shù)字視頻盤、生物存儲器等等。相關數(shù)據(jù)也可以在傳輸環(huán)境上傳送,包括物理和/或邏輯網(wǎng)絡,形式為信息包、串行數(shù)據(jù)、并行數(shù)據(jù)、傳輸信號等等,而且數(shù)據(jù)可以按壓縮的或加密的形式使用。相關數(shù)據(jù)可用于分布式環(huán)境,并可為機器的訪問進行本地或遠端存儲。
雖然參考列舉出的實施方式已描述并說明了本發(fā)明的原理,但應認識到,對于列舉出的實施方式可以在設置和細節(jié)上進行改動,而未偏離本發(fā)明的這些原則。雖然上面的討論集中在特定的實施方式,但也可預期其它的配置。具體來說,即使在此使用了諸如“在一個實施方式中”或類似的表述,這些詞語指通常參考實施方式的可能性,而不意味著將本發(fā)明限制于特定的實施方式的配置。這里使用的這些詞語可參考相同或不同的實施方式,這些實施方式可與其它實施方式組合。
因而,從在此描述的實施方式的廣泛多樣的變化的角度看,此詳細描述和所附材料僅僅是說明性的,而不應看作是對本發(fā)明的范圍的限制。因此,本發(fā)明所要求的權(quán)利是所有這些改動,它們都包含在下述權(quán)利要求及其等同物的范圍和精神內(nèi)。
權(quán)利要求
1.一種數(shù)據(jù)變換器,包括一輸入端口,用于接收數(shù)據(jù);一分割器,用于將所述數(shù)據(jù)分割成第一段和第二段并將所述第二段分割成至少一個組;一置換器,包括置換函數(shù)的實現(xiàn)部分,按照在所述第一段中的對應比特將至少一個所述組置換成置換的組;和一輸出端口,用于將所述第一段和至少所述置換的組作為變換的數(shù)據(jù)輸出。
2.如權(quán)利要求1所述的數(shù)據(jù)變換器,其中,所述分割器可操作分割所述第二段成組,以使在所述第二段中的所述組的數(shù)目等于在所述第一段中的比特的數(shù)目。
3.如權(quán)利要求1所述的數(shù)據(jù)變換器,其中,所述分割器可操作分割所述第二段成所述組,每個所述組有預先確定的大小。
4.如權(quán)利要求3所述的數(shù)據(jù)變換器,其中所述分割器包括一個用于添湊所述第二段的微調(diào)器,以便每個所述組有所述預先確定的大小。
5.如權(quán)利要求1所述的數(shù)據(jù)變換器,其中所述置換器包括至少兩個置換函數(shù)的實現(xiàn)部分。
6.如權(quán)利要求5所述的數(shù)據(jù)變換器,其中置換函數(shù)的數(shù)目等于在所述第二段中的所述組的數(shù)目。
7.如權(quán)利要求6所述的數(shù)據(jù)變換器,其中所述置換器可操作按照在所述第一段中的所述對應比特對每個所述組利用所述置換函數(shù)之一進行置換。
8.如權(quán)利要求5所述的數(shù)據(jù)變換器,其中所述置換函數(shù)的實現(xiàn)部分包括基本置換函數(shù)的實現(xiàn)部分;和所述基本置換函數(shù)的冪次的實現(xiàn)部分。
9.一數(shù)據(jù)安全設備,包括一數(shù)據(jù)變換器,包括一輸入端口,用于接收數(shù)據(jù);一分割器,用于將所述數(shù)據(jù)分割成第一段和第二段并將所述第二段分割成至少兩個組,每個組有預先確定的大小,以便在所述第二段中的組的數(shù)目等于在所述第一段中的比特的數(shù)目;一置換器,包括置換函數(shù)的實現(xiàn)部分,按照在所述第一段中的對應比特將至少一個所述組置換成置換的組;和一輸出端口,用于將所述第一段和至少所述置換的組作為變換數(shù)據(jù)輸出;和一安全算法的實現(xiàn)部分,用于保護所述變換的數(shù)據(jù)。
10.如權(quán)利要求9所述的數(shù)據(jù)安全設備,其中所述數(shù)據(jù)包括一個主密鑰;和所述安全算法的實現(xiàn)部分包括密鑰導出功能的實現(xiàn)部分,以利用所述變換的數(shù)據(jù)來生成所述主密鑰的導出密鑰。
11.如權(quán)利要求9所述的數(shù)據(jù)安全設備,其中所述數(shù)據(jù)包括待包裝的密鑰;和所述安全算法的實現(xiàn)部分包括密鑰包裝功能的實現(xiàn)部分,以包裝所述變換的數(shù)據(jù)。
12.如權(quán)利要求11所述的數(shù)據(jù)安全設備,其中所述密鑰包裝功能的實現(xiàn)部分包括RSA的實現(xiàn)部分,以包裝所述變換的數(shù)據(jù)。
13.如權(quán)利要求9所述的數(shù)據(jù)安全設備,其中所述安全算法的實現(xiàn)部分包括加密算法的實現(xiàn)部分,以使用所述變換的數(shù)據(jù)來加密所述數(shù)據(jù)。
14.如權(quán)利要求13所述的數(shù)據(jù)安全設備,其中所述安全算法的實現(xiàn)部分包括AES的實現(xiàn)部分,以使用所述變換的數(shù)據(jù)來加密所述數(shù)據(jù)。
15.如權(quán)利要求9所述的數(shù)據(jù)安全設備,進一步包括一第二分割器,所述第二分割器將輸入分割成至少兩塊,所述數(shù)據(jù)變換器可在每個塊上分別操作。
16.如權(quán)利要求15所述的數(shù)據(jù)安全設備,其進一步包括一組合器,以將每塊上的數(shù)據(jù)變換器的結(jié)果組合成待通過所述安全算法的實現(xiàn)部分來保護的單個的變換的數(shù)據(jù)。
17.如權(quán)利要求9所述的數(shù)據(jù)安全設備,其中所述置換器包括至少兩個置換函數(shù)的實現(xiàn)部分,置換函數(shù)的數(shù)目等于所述第二段中的所述組的數(shù)目。
18.如權(quán)利要求17所述的數(shù)據(jù)安全設備,其中所述置換器可操作按照在所述第一段中的所述對應比特利用所述置換函數(shù)之一來置換每個所述組。
19.如權(quán)利要求17所述的數(shù)據(jù)安全設備,其中所述置換函數(shù)的實現(xiàn)部分包括基本置換函數(shù)的實現(xiàn)部分;和所述基本置換函數(shù)的冪次的實現(xiàn)部分。
20.一種用于生成數(shù)據(jù)變換的方法,包括接收數(shù)據(jù);將所述數(shù)據(jù)分割成第一段和第二段,所述第一段和第二段的每一個包括至少一個比特;組織在所述第二段中的比特成至少一個組;關聯(lián)每個所述組與所述第一段中的一個比特;按照所述第一段中的所述關聯(lián)的比特,應用置換函數(shù)于所述組中的至少一個;和自所述第一段和至少所述置換的組構(gòu)建所述數(shù)據(jù)變換。
21.如權(quán)利要求20所述的方法,其中所述組織在所述第二段中的所述比特的步驟包括組織所述第二段中的所述比特成多個組,組的數(shù)目等于所述第一段中的比特的數(shù)目。
22.如權(quán)利要求20所述的方法,其中所述組織所述比特的步驟包括組織所述第二段中的所述比特成至少兩個組,每個組有同樣數(shù)目的比特。
23.如權(quán)利要求22所述的方法,其中所述組織所述比特的步驟包括添湊數(shù)據(jù)以便所述第二段可以被組織成所述組,每個所述組包括相同數(shù)目的比特。
24.如權(quán)利要求20所述的方法,進一步包括定義所述置換函數(shù)。
25.如權(quán)利要求24所述的方法,其中所述定義所述置換函數(shù)的步驟包括定義多個置換函數(shù),所述置換函數(shù)的數(shù)目等于所述組的數(shù)目。
26.如權(quán)利要求25所述的方法,其中所述應用置換函數(shù)的步驟包括按照所述第一段中的所述對應比特,應用不同的置換函數(shù)至每個所述組。
27.如權(quán)利要求26所述的方法,其中所述定義多個置換函數(shù)的步驟包括為每個所述置換函數(shù)分配一個索引;和所述應用不同的置換函數(shù)的步驟包括用所述索引來選擇所述置換函數(shù),所述索引對應于與所述組關聯(lián)的所述第一段中的比特的數(shù)字。
28.如權(quán)利要求25所述的方法,其中所述定義多個置換函數(shù)的步驟包括定義一個基本置換函數(shù);和定義各余下的置換函數(shù)作為所述基本置換函數(shù)的冪次。
29.一種用于加強數(shù)據(jù)安全的方法,包括變換所述數(shù)據(jù),包括接收數(shù)據(jù);將所述數(shù)據(jù)分割成第一段和第二段,所述第一段和第二段的每一個包括至少一個比特;組織在所述第二段中的比特成多個組,組的數(shù)目等于所述第一段中比特的數(shù)目;關聯(lián)每個所述組與所述第一段中的一個比特;按照所述第一段中的所述關聯(lián)的比特,應用置換函數(shù)于所述組中的至少一個;和自所述第一段和至少所述置換的組構(gòu)建所述數(shù)據(jù)變換;和應用安全算法的實現(xiàn)過程于所述數(shù)據(jù)變換以保護所述數(shù)據(jù)變換。
30.如權(quán)利要求29所述的方法,其中所述接收所述數(shù)據(jù)的步驟包括接收主密鑰,自所述主密鑰生成導出密鑰;和所述應用安全算法的實現(xiàn)過程的步驟包括應用密鑰導出功能的實現(xiàn)過程于所述數(shù)據(jù)變換以生成所述主密鑰的所述導出密鑰。
31.如權(quán)利要求30所述的方法,其中所述應用密鑰導出功能的實現(xiàn)過程的步驟包括組合所述變換數(shù)據(jù)和編碼的計數(shù)器以生成組合的結(jié)果;安全地打亂所述組合的結(jié)果以產(chǎn)生散列;和在所述散列中選擇比特的一子集作為所述導出密鑰。
32.如權(quán)利要求30所述的方法,其中所述變換所述數(shù)據(jù)的步驟進一步包括組合所述主密鑰和計數(shù)器以產(chǎn)生所述數(shù)據(jù);和所述應用密鑰導出功能的實現(xiàn)過程的步驟包括安全地打亂所述變換數(shù)據(jù)以產(chǎn)生一散列;和在所述散列中選擇比特的一子集作為所述導出密鑰。
33.如權(quán)利要求29所述的方法,其中所述接收所述數(shù)據(jù)的步驟包括接收待包裝的密鑰作為所述數(shù)據(jù);和所述應用安全算法的實現(xiàn)過程的步驟包括應用密鑰包裝功能的實現(xiàn)過程至所述數(shù)據(jù)變換以包裝所述密鑰。
34.如權(quán)利要求33所述的方法,其中所述應用密鑰包裝功能的實現(xiàn)過程的步驟包括將RSA的實現(xiàn)過程應用于所述數(shù)據(jù)變換以包裝所述密鑰。
35.如權(quán)利要求29所述的方法,其中所述應用安全算法的實現(xiàn)過程的步驟包括應用加密算法的實現(xiàn)過程利用所述數(shù)據(jù)變換作為密鑰以加密所述數(shù)據(jù)。
36.如權(quán)利要求35所述的方法,其中所述應用加密算法的實現(xiàn)過程的步驟包括應用AES的實現(xiàn)過程利用所述數(shù)據(jù)變換作為所述密鑰以加密所述數(shù)據(jù)。
37.如權(quán)利要求29所述的方法,其中所述組織所述比特的步驟包括組織所述第二段中的所述比特成多個組,組的數(shù)目等于所述第一段中的比特數(shù)目,每組有同樣數(shù)目的比特。
38.如權(quán)利要求29所述的方法,其進一步包括定義所述置換函數(shù)。
39.如權(quán)利要求38所述的方法,其中所述定義所述置換函數(shù)的步驟包括定義多個置換函數(shù),所述置換函數(shù)的數(shù)目等于所述組的數(shù)目。
40.如權(quán)利要求39所述的方法,其中所述定義多個置換函數(shù)的步驟包括定義一個基本置換函數(shù);和定義各余下的置換函數(shù)作為所述基本置換函數(shù)的冪次。
41.如權(quán)利要求29所述的方法,進一步包括將輸入分割成至少兩塊,分別變換各塊;和組合每塊上的所述數(shù)據(jù)變換的結(jié)果成待通過應用所述安全算法的實現(xiàn)過程來保護的單個的變換的數(shù)據(jù)。
42.一數(shù)據(jù)變換器,包括一輸入端口,用于接收包含多個比特的數(shù)據(jù);一分割器,用于將所述數(shù)據(jù)分割成第一段和第二段;一計算器,用于利用所述第一段、所述第二段、和預先定義的模數(shù)來計算所述數(shù)據(jù)的指數(shù)置換;和一輸出端口,用于將所述第一段和所述指數(shù)置換作為變換的數(shù)據(jù)輸出。
43.如權(quán)利要求42所述的數(shù)據(jù)變換器,其中所述計算器包括第一公式的實現(xiàn)部分,以計算冪次作為所述第一段的函數(shù),所述冪次與所述預先定義的模數(shù)的函數(shù)互素。
44.如權(quán)利要求43所述的數(shù)據(jù)變換器,其中所述計算器進一步包括第二公式的實現(xiàn)部分,以計算自乘所述第二段的函數(shù)至所述冪次的結(jié)果。
45.如權(quán)利要求44所述的數(shù)據(jù)變換器,其中所述計算器進一步包括第三公式的實現(xiàn)部分,以所述結(jié)果按所述預先定義的模數(shù)取模的方式,計算所述指數(shù)置換。
46.一種數(shù)據(jù)安全設備,包括一數(shù)據(jù)變換器,包括一輸入端口,用于接收包含多個比特的數(shù)據(jù);一分割器,用于將所述數(shù)據(jù)分割成第一段和第二段;一計算器,用于利用所述第一段、所述第二段、和預先定義的模數(shù)來計算所述數(shù)據(jù)的指數(shù)置換,包括第一公式的實現(xiàn)部分,用于計算冪次作為所述第一段的函數(shù),所述冪次與所述預先定義的模數(shù)的函數(shù)互素;第二公式的實現(xiàn)部分,用于計算自乘所述第二段的函數(shù)至所述冪次的結(jié)果;和第三公式的實現(xiàn)部分,用于以所述結(jié)果按所述預先定義的模數(shù)取模的方式,計算所述指數(shù)置換;和一輸出端口,用于將所述第一段和所述指數(shù)置換作為變換的數(shù)據(jù)輸出;和安全算法的實現(xiàn)部分,用于保護所述變換的數(shù)據(jù)。
47.如權(quán)利要求46所述的數(shù)據(jù)安全設備,其中所述數(shù)據(jù)包括一個主密鑰;和所述安全算法的實現(xiàn)部分包括密鑰導出功能的實現(xiàn)部分,以利用所述變換的數(shù)據(jù)來生成所述主密鑰的導出密鑰。
48.如權(quán)利要求46所述的數(shù)據(jù)安全設備,其中所述數(shù)據(jù)包括一個待包裝的密鑰;和所述安全算法的實現(xiàn)部分包括密鑰包裝功能的實現(xiàn)部分,以包裝所述變換的數(shù)據(jù)。
49.如權(quán)利要求48所述的數(shù)據(jù)安全設備,其中所述密鑰包裝功能的實現(xiàn)部分包括RSA的實現(xiàn)部分,以包裝所述變換的數(shù)據(jù)。
50.如權(quán)利要求46所述的數(shù)據(jù)安全設備,其中所述安全算法的實現(xiàn)部分包括加密算法的實現(xiàn)部分,以使用所述變換的數(shù)據(jù)作為密鑰來加密所述數(shù)據(jù)。
51.如權(quán)利要求50所述的數(shù)據(jù)安全設備,其中所述安全算法的實現(xiàn)部分包括AES的實現(xiàn)部分,以使用所述密鑰來加密所述數(shù)據(jù)。
52.如權(quán)利要求46所述的數(shù)據(jù)安全設備,進一步包括一個第二分割器,所述第二分割器將輸入分割成至少兩塊,所述數(shù)據(jù)變換器可在每個塊上分別操作。
53.如權(quán)利要求52所述的數(shù)據(jù)安全設備,進一步包括一組合器,以將每塊上的數(shù)據(jù)變換器的結(jié)果組合成待通過所述安全算法的實現(xiàn)部分來保護的單個的變換的數(shù)據(jù)。
54.一種用于生成數(shù)據(jù)變換的方法,包括接收數(shù)據(jù),所述數(shù)據(jù)包括多個比特;將所述數(shù)據(jù)分割成第一段和第二段,所述第一段和所述第二段的每一個包括至少一個比特;利用所述第一段、所述第二段、和預先定義的模數(shù)來計算指數(shù)置換;和自所述第一段和所述指數(shù)置換構(gòu)建所述數(shù)據(jù)變換。
55.如權(quán)利要求54所述的方法,其中所述計算指數(shù)置換的步驟包括計算冪次作為所述第一段的函數(shù),所述冪次與所述預先定義的模數(shù)的函數(shù)互素。
56.如權(quán)利要求55所述的方法,其中所述計算指數(shù)置換的步驟進一步包括計算自乘所述第二段的函數(shù)至所述冪次的結(jié)果。
57.如權(quán)利要求56所述的方法,其中所述計算指數(shù)置換的步驟進一步包括以所述結(jié)果按所述預先定義的模數(shù)取模的方式,計算所述指數(shù)置換。
58.一種用于加強數(shù)據(jù)安全的方法,包括變換所述數(shù)據(jù),包括接收數(shù)據(jù),所述數(shù)據(jù)包括多個比特;將所述數(shù)據(jù)分割成第一段和第二段,第一段和第二段的每一個包括至少一個比特;計算冪次,作為所述第一段的函數(shù),所述冪次與預先定義的模數(shù)的函數(shù)互素;計算自乘所述第二段的函數(shù)至所述冪次的結(jié)果;以所述結(jié)果按所述預先定義的模數(shù)取模的方式,計算指數(shù)置換;和自所述第一段和所述計算的指數(shù)置換構(gòu)建所述數(shù)據(jù)變換;和應用安全算法的實現(xiàn)過程于所述數(shù)據(jù)變換以保護所述數(shù)據(jù)變換。
59.如權(quán)利要求58所述的方法,其中所述接收所述數(shù)據(jù)的步驟包括接收主密鑰,自所述主密鑰會生成導出密鑰;和所述應用安全算法的實現(xiàn)過程的步驟包括應用密鑰導出功能的實現(xiàn)過程于所述數(shù)據(jù)變換以生成所述主密鑰的所述導出密鑰。
60.如權(quán)利要求59所述的方法,其中所述應用密鑰導出功能的實現(xiàn)過程的步驟包括組合所述變換的數(shù)據(jù)和編碼的計數(shù)器以生成組合的結(jié)果;安全地打亂所述組合的結(jié)果以產(chǎn)生散列;和在所述散列中選擇比特的一子集作為所述導出密鑰。
61.如權(quán)利要求58所述的方法,其中所述接收所述數(shù)據(jù)的步驟包括接收待包裝的密鑰作為所述數(shù)據(jù);和所述應用安全算法的實現(xiàn)過程的步驟包括應用密鑰包裝功能的實現(xiàn)過程以包裝所述數(shù)據(jù)變換。
62.如權(quán)利要求61所述的方法,其中所述應用密鑰包裝功能的實現(xiàn)過程的步驟包括應用RSA的實現(xiàn)過程以包裝所述數(shù)據(jù)變換。
63.如權(quán)利要求58所述的方法,其中所述應用安全算法的實現(xiàn)過程的步驟包括應用加密算法的實現(xiàn)過程利用所述數(shù)據(jù)變換作為密鑰以加密所述數(shù)據(jù)。
64.如權(quán)利要求63所述的方法,其中所述應用加密算法的實現(xiàn)過程的步驟包括應用RSA的實現(xiàn)過程利用所述數(shù)據(jù)變換作為所述密鑰以加密所述數(shù)據(jù)。
65.如權(quán)利要求63所述的方法,進一步包括將輸入分割成至少兩塊,分別變換每塊;和組合每塊上的所述數(shù)據(jù)變換的結(jié)果成待通過應用所述安全算法的實現(xiàn)過程來保護的單個的變換的數(shù)據(jù)。
66.一種設備,包括一接收主密鑰的輸入端口;一通用散列算法的實現(xiàn)部分;一散列算法的實現(xiàn)部分;一利用所述通用散列算法和所述散列算法的實現(xiàn)部分自所述主密鑰生成導出密鑰的生成裝置;和一輸出所述導出密鑰的輸出端口。
67.如權(quán)利要求66所述的設備,其中所述通用散列算法的實現(xiàn)部分包括一分割器,用于將所述主密鑰分割成第一段和第二段;一重復器,用于重復所述計數(shù)器以形成編碼的計數(shù)器作為較長的比特模式;一第一按位操作的二進制函數(shù)的實現(xiàn)部分,其可在所述第一段和所述編碼的計數(shù)器上操作以生成第一結(jié)果;一第二按位操作的二進制函數(shù)的實現(xiàn)部分,其可在所述第二段和所述編碼的計數(shù)器上操作以生成第二結(jié)果;和一組合器,用于組合所述第一結(jié)果、所述第二結(jié)果、和所述編碼的計數(shù)器以產(chǎn)生所述結(jié)果。
68.如權(quán)利要求66所述的設備,其中所述設備進一步包括一個用于將所述主密鑰分割成第一段和第二段的分割器;所述散列算法的實現(xiàn)部分包括一組合器,用于將所述第一段與所述計數(shù)器組合以生成一個修改的第一段;和一散列形成裝置,用于利用所述散列算法的實現(xiàn)部分來打亂所述修改的第一段成為一散列值;和所述通用散列算法的實現(xiàn)部分包括一判定器,用于自所述第二段確定一個第一數(shù)字和一個第二數(shù)字;一計算器,其包括數(shù)學公式的實現(xiàn)部分以利用所述散列值、所述第一數(shù)字、和所述第二數(shù)字計算結(jié)果;和一比特選擇器,用于自所述結(jié)果選擇一組比特作為導出密鑰。
69.如權(quán)利要求66所述的設備,其中所述生成裝置包括利用所述主密鑰使用所述通用散列算法的實現(xiàn)部分來產(chǎn)生結(jié)果的結(jié)果產(chǎn)生裝置;和利用所述結(jié)果和計數(shù)器使用所述散列算法的實現(xiàn)部分來產(chǎn)生所述導出密鑰的導出密鑰產(chǎn)生裝置。
70.如權(quán)利要求69所述的設備,其中所述通用散列算法的實現(xiàn)部分包括一分割器,用于將所述主密鑰分割成第一段和第二段;一重復器,用于重復所述計數(shù)器以形成編碼的計數(shù)器作為較長的比特模式;一第一按位操作的二進制函數(shù)的實現(xiàn)部分,其可在所述第一段和所述編碼的計數(shù)器上操作以生成第一結(jié)果;一第二按位操作的二進制函數(shù)的實現(xiàn)部分,其可在所述第二段和所述編碼的計數(shù)器上操作以生成第二結(jié)果;和一組合器,用于組合所述第一結(jié)果、所述第二結(jié)果、和所述編碼的計數(shù)器以產(chǎn)生所述結(jié)果。
71.如權(quán)利要求66所述的設備,其中所述生成裝置包括利用所述主密鑰和計數(shù)器使用所述散列算法的實現(xiàn)部分來產(chǎn)生結(jié)果的結(jié)果產(chǎn)生裝置;和利用所述結(jié)果使用所述通用散列算法的實現(xiàn)部分來產(chǎn)生所述導出密鑰的導出密鑰產(chǎn)生裝置。
72.如權(quán)利要求71所述的設備,其中所述設備進一步包括一個用于將所述主密鑰分割成第一段和第二段的分割器;使用所述散列算法的實現(xiàn)部分的所述結(jié)果產(chǎn)生裝置包括一組合器,用于將所述第一段與所述計數(shù)器結(jié)合以生成一個修改的第一段;和一散列形成裝置,用于使用所述散列算法的實現(xiàn)部分來打亂所述修改的第一段成散列值;和使用所述通用散列算法的實現(xiàn)部分的所述導出密鑰產(chǎn)生裝置包括一判定器,用于自所述第二段確定一個第一數(shù)字和一個第二數(shù)字;一計算器,包括數(shù)學公式的實現(xiàn)部分以利用所述散列值、所述第一數(shù)字、和所述第二數(shù)字計算結(jié)果;和一比特選擇器,用于自所述結(jié)果選擇一組比特作為導出密鑰。
73.一種設備,包括一輸入端口,用于接收主密鑰;一第一計算器,用于實現(xiàn)通用散列算法;一第二計算器,用于實現(xiàn)散列算法;一密鑰導出器,用于利用所述第一計算器和所述第二計算器自所述主密鑰生成導出密鑰;和一輸出端口,用于輸出所述導出密鑰。
74.如權(quán)利要求73所述的設備,其中所述密鑰導出器包括一分割器,用于將所述主密鑰分割成第一段和第二段;一重復器,用于重復所述計數(shù)器以形成編碼的計數(shù)器作為較長的比特模式;一第三計算器,用于實現(xiàn)第一按位操作的二進制函數(shù),其可在所述第一段和所述編碼計數(shù)器上操作以生成第一結(jié)果;一第四計算器,用于實現(xiàn)第二按位操作的二進制函數(shù),其可在所述第二段和所述編碼計數(shù)器上操作以生成第二結(jié)果;一組合器,用于組合所述第一結(jié)果、所述第二結(jié)果、和所述編碼計數(shù)器以產(chǎn)生所述結(jié)果。
75.如權(quán)利要求73所述的設備,其中所述設備進一步包括一個用于將所述主密鑰分割成第一段和第二段的分割器;所述第二計算器包括一組合器,用于將所述第一段與所述計數(shù)器組合以生成一個修改的第一段;和一第五計算器,用于實現(xiàn)散列算法以打亂所述修改的第一段成一散列值;和所述第一計算器包括一判定器,用于自所述第二段確定一個第一數(shù)字和一個第二數(shù)字;一第六計算器,用于實現(xiàn)數(shù)學公式以利用所述散列值、所述第一數(shù)字、和所述第二數(shù)字計算結(jié)果;和一比特選擇器,用于自所述結(jié)果選擇一組比特作為導出密鑰。
76.如權(quán)利要求73所述的設備,其中所述密鑰導出器包括一第三計算器,用于利用所述主密鑰實現(xiàn)所述通用散列算法以產(chǎn)生結(jié)果;和一第四計算器,用于利用所述結(jié)果和計數(shù)器實現(xiàn)所述散列算法以產(chǎn)生所述導出密鑰。
77.如權(quán)利要求76所述的設備,其中所述第一計算器包括一分割器,用于將所述主密鑰分割成第一段和第二段;一重復器,用于重復所述計數(shù)器以形成編碼的計數(shù)器作為較長的比特模式;一第五計算器,用于實現(xiàn)第一按位操作的二進制函數(shù),其可在所述第一段和所述編碼計數(shù)器上操作以生成第一結(jié)果;一第六計算器,用于實現(xiàn)第二按位操作的二進制函數(shù),其可在所述第二段和所述編碼計數(shù)器上操作以生成第二結(jié)果;一組合器,用于組合所述第一結(jié)果、所述第二結(jié)果、和所述編碼計數(shù)器以產(chǎn)生所述結(jié)果。
78.如權(quán)利要求73所述的設備,其中所述密鑰導出器包括一第三計算器,用于利用所述主密鑰和計數(shù)器實現(xiàn)所述散列算法以產(chǎn)生結(jié)果;和一第四計算器,用于利用所述結(jié)果實現(xiàn)所述通用散列算法以產(chǎn)生所述導出密鑰。
79.如權(quán)利要求78所述的設備,其中所述設備進一步包括一個用于將所述主密鑰分割成第一段和第二段的分割器;所述第三計算器包括一組合器,用于組合所述第一段與所述計數(shù)器以生成修改的第一段;和一第三計算器,用于實現(xiàn)散列算法以打亂所述修改的第一段成一散列值;和所述第四計算器包括一判定器,用于自所述第二段確定一個第一數(shù)字和一個第二數(shù)字;一第五計算器,包括一個數(shù)學公式的實現(xiàn)部分以利用所述散列值、所述第一數(shù)字、和所述第二數(shù)字計算結(jié)果;和一比特選擇器,用于自所述結(jié)果選擇一組比特作為導出密鑰。
80.一種設備,包括一輸入端口,用于接收主密鑰;一分割器,用于將所述主密鑰分割成第一段和第二段;一接合器,用于接合所述第一段和計數(shù)器以產(chǎn)生修改的第一段;一散列裝置,用于打亂所述修改的第一段使之成為一散列值;一判定器,用于自所述第二段確定一個第一數(shù)字和一個第二數(shù)字;一計算器,包括數(shù)學公式的實現(xiàn)部分以利用所述散列值、所述第一數(shù)字、和所述第二數(shù)字計算結(jié)果;和一比特選擇器,用于自所述結(jié)果選擇一組比特作為導出密鑰。
81.如權(quán)利要求80所述的設備,進一步包括用于輸出所述導出密鑰的輸出端口。
82.如權(quán)利要求80所述的設備,其中所述計算器包括第一功能的實現(xiàn)部分,用于計算所述散列值和所述第一數(shù)字的乘積;第二功能的實現(xiàn)部分,用于計算所述乘積和所述第二數(shù)字的和;和第三功能的實現(xiàn)部分,用于計算所述和按一模數(shù)取模的所述結(jié)果。
83.如權(quán)利要求82所述的設備,其中所述判定器可操作確定所述第一數(shù)字和所述第二數(shù)字,其是按所述模數(shù)取模確定的。
84.如權(quán)利要求82所述的設備,其中所述第三功能的實現(xiàn)部分包括所述第三功能的實現(xiàn)部分,以計算所述和按一素數(shù)模數(shù)取模的所述結(jié)果。
85.如權(quán)利要求80所述的設備,其中所述比特選擇器可操作從所述結(jié)果中選擇一組最低有效比特作為所述導出密鑰。
86.一種數(shù)據(jù)安全設備,包括一密鑰導出器,包括一輸入端口,用于接收主密鑰;一分割器,用于將所述主密鑰分割成第一段和第二段;一接合器,用于接合所述第一段和計數(shù)器以產(chǎn)生修改的第一段;一散列裝置,用于打亂所述修改的第一段成一散列值;一判定器,用于自所述第二段按一模數(shù)取模來確定一個第一數(shù)字和一個第二數(shù)字;一計算器,包括數(shù)學公式的實現(xiàn)部分以利用所述散列值、所述第一數(shù)字、和所述第二數(shù)字計算結(jié)果;和一比特選擇器,用于自所述結(jié)果選擇一組比特作為導出密鑰;和一加密器,用于利用所述導出密鑰加密數(shù)據(jù)。
87.如權(quán)利要求86所述的數(shù)據(jù)安全設備,進一步包括數(shù)據(jù)變換器。
88.如權(quán)利要求87所述的數(shù)據(jù)安全設備,其中所述數(shù)據(jù)變換器可操作變換原始主密鑰為所述主密鑰。
89.如權(quán)利要求87所述的數(shù)據(jù)安全設備,其中所述數(shù)據(jù)變換器可操作變換所述導出密鑰為變換的導出密鑰。
90.如權(quán)利要求86所述的數(shù)據(jù)安全設備,其中所述計算器包括第一功能的實現(xiàn)部分,用于計算所述散列值和所述第一數(shù)字的乘積;第二功能的實現(xiàn)部分,用于計算所述乘積和所述第二數(shù)字的和;和第三功能的實現(xiàn)部分,用于從所述和按所述模數(shù)取模計算所述結(jié)果。
91.如權(quán)利要求86所述的數(shù)據(jù)安全設備,其中所述第三功能的實現(xiàn)部分包括所述第三功能的實現(xiàn)部分,以從所述和按一素數(shù)模數(shù)取模計算所述結(jié)果。
92.一種用于進行密鑰導出的方法,包括打亂主密鑰以產(chǎn)生一散列值;自所述主密鑰確定第一數(shù)字和第二數(shù)字;計算所述散列值、所述第一數(shù)字、和所述第二數(shù)字的通用散列函數(shù)以產(chǎn)生結(jié)果;和自所述結(jié)果的比特中選擇導出密鑰。
93.如權(quán)利要求92所述的方法,其中所述方法進一步包括將所述主密鑰分割成第一段和第二段;所述打亂主密鑰的步驟包括打亂所述第一段以產(chǎn)生所述散列值;和所述確定第一數(shù)字和第二數(shù)字的步驟包括自所述第二段確定所述第一數(shù)字和所述第二數(shù)字。
94.如權(quán)利要求93所述的方法,其中所述方法進一步包括確定一計數(shù)器;和所述打亂所述第一段的步驟包括組合所述第一段和所述計數(shù)器。
95.如權(quán)利要求92所述的方法,其中所述確定第一數(shù)字和第二數(shù)字的步驟包括自所述主密鑰導出第三數(shù)字和第四數(shù)字;以所述第三數(shù)字按一模數(shù)取模的方式,計算所述第一數(shù)字;及以所述第四數(shù)字按所述模數(shù)取模的方式,計算所述第二數(shù)字。
96.如權(quán)利要求92所述的方法,其中所述計算所述散列值、所述第一數(shù)字、和所述第二數(shù)字的通用散列函數(shù)的步驟包括計算所述第一數(shù)字和所述散列值的乘積;計算所述乘積和所述第二數(shù)字的和;和以所述和按一模數(shù)取模的方式,計算結(jié)果。
97.如權(quán)利要求96所述的方法,其中所述計算結(jié)果的步驟包括以所述和按一素除子取模的方式計算結(jié)果。
98.如權(quán)利要求96所述的方法,其中所述選擇導出密鑰的步驟包括從所述結(jié)果中的一組最低有效比特選擇所述導出密鑰。
99.一種用于加密導出密鑰的方法,包括生成所述導出密鑰,包括將所述主密鑰分割成第一段和第二段;打亂所述第一段以產(chǎn)生散列值;自所述第二段確定第一數(shù)字和第二數(shù)字;計算所述第一數(shù)字和所述散列值的乘積;計算所述乘積和所述第二數(shù)字的和;和以所述和按一模數(shù)取模的方式計算結(jié)果;和自所述結(jié)果中的比特選擇所述導出密鑰;和利用所述導出密鑰加密數(shù)據(jù)。
100.如權(quán)利要求99所述的方法,進一步包括在生成所述導出密鑰之前對所述主密鑰應用數(shù)據(jù)變換。
101.如權(quán)利要求100所述的方法,其中所述應用數(shù)據(jù)變換的步驟包括將所述主密鑰分割成第三段和第四段,所述第三段和所述第四段的每一個包括至少一個比特;組織在所述第四段中的比特成多個組,組的數(shù)目等于所述第三段中比特的數(shù)目;每組有相同數(shù)目的比特;關聯(lián)每個所述組與所述第三段中的一個比特;按照所述第三段中的所述關聯(lián)的比特,將置換函數(shù)應用于至少一個所述組;和自所述第三段和所述置換的組構(gòu)建變換的主密鑰。
102.如權(quán)利要求100所述的方法,其中所述應用數(shù)據(jù)變換的步驟包括將所述主密鑰分割成第三段和第四段,所述第三段和所述第四段的每一個包括至少一個比特;計算冪次作為所述第三段的函數(shù),所述冪次與第二模數(shù)的函數(shù)互素;計算自乘所述第四段的函數(shù)至所述冪次的結(jié)果;以所述結(jié)果按所述第二模數(shù)取模的方式,計算指數(shù)置換;和自所述第三段和所述計算的指數(shù)置換構(gòu)建變換的主密鑰。
103.如權(quán)利要求99所述的方法,進一步包括對所述導出密鑰應用數(shù)據(jù)變換。
104.如權(quán)利要求99所述的方法,其中所述應用數(shù)據(jù)變換的步驟包括將所述主密鑰分割成第三段和第四段,所述第三段和所述第四段的每一個包括至少一個比特;組織在所述第四段中的比特成多個組,組的數(shù)目等于所述第三段中比特的數(shù)目;每組有相同數(shù)目的比特;關聯(lián)每個所述組與所述第三段中的一個比特;按照所述第三段中的所述關聯(lián)的比特,將置換函數(shù)應用于至少一個所述組;和自所述第三段和所述置換的組構(gòu)建變換的主密鑰。
105.如權(quán)利要求103所述的方法,其中所述應用數(shù)據(jù)變換的步驟包括將所述主密鑰分割成第三段和第四段,所述第三段和所述第四段的每一個包括至少一個比特;計算冪次作為所述第三段的函數(shù),所述冪次與第二模數(shù)的函數(shù)互素;計算自乘所述第四段的函數(shù)至所述冪次的結(jié)果;以所述結(jié)果按所述第二模數(shù)取模的方式,計算指數(shù)置換;和自所述第三段和所述計算的指數(shù)置換構(gòu)建變換的主密鑰。
106.如權(quán)利要求99所述的方法,進一步包括加密所述導出密鑰。
107.如權(quán)利要求106所述的方法,進一步包括傳輸所述加密的導出密鑰。
108.如權(quán)利要求99所述的方法,其進一步包括傳輸所述加密數(shù)據(jù)。
109.如權(quán)利要求99所述的方法,其中所述方法進一步包括確定一計數(shù)器;和所述打亂所述第一段的步驟包括組合所述第一段和所述計數(shù)器。
110.如權(quán)利要求99所述的方法,其中所述確定第一數(shù)字和第二數(shù)字的步驟包括自所述第二段導出第三數(shù)字和第四數(shù)字;以所述第三數(shù)字按一模數(shù)取模的方式,計算所述第一數(shù)字;以所述第四數(shù)字按所述模數(shù)取模的方式,計算所述第二數(shù)字。
111.如權(quán)利要求99所述的方法,其中所述選擇導出密鑰的步驟包括從所述結(jié)果中的一組最低有效比特選擇所述導出密鑰。
112.一種設備,包括一輸入端口,用于接收主密鑰;一組合器,用于組合所述主密鑰和一個值以產(chǎn)生修改的主密鑰;一散列裝置,用于打亂所述修改的主密鑰成一散列值;和一比特選擇器,用于自所述散列值選擇一組比特作為導出密鑰。
113.如權(quán)利要求112所述的設備,其中所述設備進一步包括一重復器,以重復所述值從而形成編碼的值,其為較長的比特模式;和所述組合器可操作以組合所述主密鑰和所述編碼的值以產(chǎn)生修改的主密鑰。
114.如權(quán)利要求112所述的設備,其中所述組合器包括一分割器,以將所述主密鑰分割成第一段和第二段;和所述組合器可操作以組合所述編碼的值、所述第一段、和所述第二段來產(chǎn)生修改的主密鑰。
115.如權(quán)利要求114所述的設備,其中所述組合器進一步包括第一按位操作的二進制函數(shù)的實現(xiàn)部分,其可在所述第一段和所述編碼值上操作以生成第一結(jié)果;第二按位操作的二進制函數(shù)的實現(xiàn)部分,其可在所述第二段和所述編碼值上操作以生成第二結(jié)果;和一組合器,用于組合所述第一結(jié)果和所述第二結(jié)果以產(chǎn)生所述修改的主密鑰。
116.如權(quán)利要求115所述的設備,其中所述組合器包括一接合器以接合所述第一結(jié)果和所述第二結(jié)果來產(chǎn)生所述修改的主密鑰。
117.如權(quán)利要求112所述的設備,其中所述比特選擇器可操作以自所述散列值選擇一組最低有效比特作為所述所述導出密鑰。
118.如權(quán)利要求112所述的設備,其中所述組合器可操作所述主密鑰和計數(shù)器來產(chǎn)生所述修改的主密鑰。
119.一種數(shù)據(jù)安全設備,包括一密鑰導出器,包括一輸入端口,用于接收主密鑰;一分割器,用于將所述主密鑰分割成第一段和第二段;一重復器,用于重復一值以形成一個編碼的值,其為較長的比特模式;第一按位操作的二進制函數(shù)的實現(xiàn)部分,其可在所述第一段和所述編碼的值上操作以生成第一結(jié)果;第二按位操作的二進制函數(shù)的實現(xiàn)部分,其可在所述第二段和所述編碼值上操作以生成第二結(jié)果;和一組合器,用于組合所述第一結(jié)果、所述第二結(jié)果、和所述編碼的值以產(chǎn)生所述修改的主密鑰;一散列裝置,用于打亂所述修改的主密鑰成一散列值;和一比特選擇器,用于自所述結(jié)果選擇一組比特作為導出密鑰;和一加密器,用于利用所述導出密鑰加密數(shù)據(jù)。
120.如權(quán)利要求119所述的數(shù)據(jù)安全設備,進一步包括一數(shù)據(jù)變換器。
121.如權(quán)利要求120所述的數(shù)據(jù)安全設備,其中所述數(shù)據(jù)變換器可操作以將原始主密鑰變換為所述主密鑰。
122.如權(quán)利要求120所述的數(shù)據(jù)安全設備,其中所述數(shù)據(jù)變換器可操作以將所述導出密鑰變換為變換的導出密鑰。
123.如權(quán)利要求119所述的數(shù)據(jù)安全設備,其中所述重復器可操作以重復計數(shù)器從而形成所述編碼的值,其為較長的比特模式。
124.一種用于進行密鑰導出的方法,包括將主密鑰與一值組合以產(chǎn)生修改的主密鑰;打亂所述修改的主密鑰以產(chǎn)生一散列值;和自所述散列值中的比特中選擇導出密鑰。
125.如權(quán)利要求124所述的方法,進一步包括重復在所述值中的比特模式以形成較長的比特模式。
126.如權(quán)利要求124所述的方法,其中所述將主密鑰與一值組合的步驟包括利用所述主密鑰和所述值計算按位操作的二進制函數(shù)。
127.如權(quán)利要求124所述的方法,其中所述將主密鑰與一值組合的步驟包括將主密鑰分割成第一段和第二段;將所述第一段與所述值組合以產(chǎn)生第一結(jié)果;將所述第二段與所述值組合以產(chǎn)生第二結(jié)果;和將所述第一結(jié)果和所述第二結(jié)果組合以產(chǎn)生所述修改的主密鑰。
128.如權(quán)利要求127所述的方法,其中所述將所述第一結(jié)果和所述第二結(jié)果組合的步驟包括接合所述第一結(jié)果和所述第二結(jié)果以生成所述修改的主密鑰。
129.如權(quán)利要求124所述的方法,其中所述選擇導出密鑰的步驟包括從所述散列值中的一組最低有效比特中選擇所述導出密鑰。
130.如權(quán)利要求124所述的方法,其中所述將主密鑰與一值組合以產(chǎn)生修改的主密鑰的步驟包括將所述主密鑰與一計數(shù)器組合以產(chǎn)生所述修改的主密鑰。
131.一種用于加密導出密鑰的方法,包括將主密鑰與一值組合以產(chǎn)生修改的主密鑰;打亂所述修改的主密鑰以產(chǎn)生一散列值;自所述散列值中的比特選擇一導出密鑰;和使用所述導出密鑰加密數(shù)據(jù)。
132.如權(quán)利要求131所述的方法,進一步包括在生成所述導出密鑰之前應用數(shù)據(jù)變換于所述主密鑰。
133.如權(quán)利要求132所述的方法,其中所述應用數(shù)據(jù)變換的步驟包括將所述主密鑰分割成第三段和第四段,所述第三段和所述第四段的每一個包括至少一個比特;將在所述第四段中的比特組織成多個組,組的數(shù)目等于所述第三段中比特的數(shù)目;每組有相同數(shù)目的比特;關聯(lián)每個所述組與所述第三段中的一個比特;按照所述第三段中的所述關聯(lián)的比特,應用置換函數(shù)于至少一個所述組;和自所述第三段和所述置換的組構(gòu)建所述變換的主密鑰。
134.如權(quán)利要求132所述的方法,其中所述應用數(shù)據(jù)變換的步驟包括將所述主密鑰分割成第三段和第四段,所述第三段和所述第四段的每一個包括至少一個比特;計算冪次作為所述第三段的函數(shù),所述冪次與預先確定的模數(shù)的函數(shù)互素;計算自乘所述第四段的函數(shù)至所述冪次的結(jié)果;以所述結(jié)果按預先確定的模數(shù)取模的方式,計算指數(shù)置換;和自所述第三段和所述計算的指數(shù)置換構(gòu)建所述變換的主密鑰。
135.如權(quán)利要求131所述的方法,進一步包括應用數(shù)據(jù)變換于所述導出密鑰。
136.如權(quán)利要求135所述的方法,其中所述應用數(shù)據(jù)變換的步驟包括將所述主密鑰分割成第三段和第四段,所述第三段和所述第四段的每一個包括至少一個比特;將在所述第四段中的比特組織成多個組,組的數(shù)目等于所述第三段中比特的數(shù)目;每組有相同數(shù)目的比特;關聯(lián)每個所述組與所述第三段中的一個比特;按照所述第三段中的所述關聯(lián)的比特,應用置換函數(shù)于至少一個所述組;和自所述第三段和所述置換的組構(gòu)建所述變換的主密鑰。
137.如權(quán)利要求135所述的方法,其中所述應用數(shù)據(jù)變換的步驟包括將所述主密鑰分割成第三段和第四段,所述第三段和所述第四段的每一個包括至少一個比特;計算冪次作為所述第三段的函數(shù),所述冪次與預先定義的模數(shù)的函數(shù)互素;計算自乘所述第四段的函數(shù)至所述冪次的結(jié)果;以所述結(jié)果按所述預先定義的模數(shù)取模的方式,計算指數(shù)置換;和自所述第三段和所述計算的指數(shù)置換構(gòu)建所述變換的主密鑰。
138.如權(quán)利要求131所述的方法,進一步包括加密所述導出密鑰。
139.如權(quán)利要求138所述的方法,進一步包括傳輸所述加密的導出密鑰。
140.如權(quán)利要求131所述的方法,進一步包括傳輸所述加密的數(shù)據(jù)。
141.如權(quán)利要求131所述的方法,其中所述將主密鑰與一值組合的步驟包括將所述主密鑰分割成第一段和第二段;將所述第一段與所述值組合以產(chǎn)生第一結(jié)果;將所述第二段與所述值組合以產(chǎn)生第二結(jié)果;和將所述第一結(jié)果和所述第二結(jié)果組合以產(chǎn)生所述修改的主密鑰。
142.如權(quán)利要求141所述的方法,其中所述將所述第一結(jié)果和所述第二結(jié)果組合的步驟包括接合所述第一結(jié)果和所述第二結(jié)果以生成所述修改的主密鑰。
143.如權(quán)利要求131所述的方法,其中所述將主密鑰與一值組合的步驟包括將主密鑰分割成第一段和第二段;將所述第一段與所述值組合以產(chǎn)生第一結(jié)果;和將所述第一結(jié)果和所述第二段組合以產(chǎn)生所述修改的主密鑰。
144.如權(quán)利要求131所述的方法,其中所述將主密鑰與一值組合以產(chǎn)生修改的主密鑰的步驟包括將所述主密鑰與一計數(shù)器組合以產(chǎn)生修改的主密鑰。
全文摘要
基于數(shù)據(jù)輸入(1030)中的另外一些比特,數(shù)據(jù)變換置換了數(shù)據(jù)輸入(1005)中的一些比特。另一個數(shù)據(jù)變換自乘數(shù)據(jù)輸入(1120)的一段至另一段的一個函數(shù)的冪次,此冪次與預先定義的模數(shù)(1115)的函數(shù)互素。隨后此模數(shù)應用于結(jié)果(1125),匯編(113)變換了的數(shù)據(jù)。在密鑰導出應用中,主密鑰的一段被打亂成散列(1145)。兩個數(shù)字自主密鑰(1420)的另一段導出。通用散列函數(shù)應用于打亂成散列的結(jié)果(1430),自其中選擇比特作為導出密鑰(1435)。在另一個實施方式中,編碼的計數(shù)器與主密鑰的段(1510)組合。隨后結(jié)果被打亂成散列(1520),自其中選擇比特作為導出密鑰(1525)。
文檔編號H04K1/04GK101040474SQ200580034608
公開日2007年9月19日 申請日期2005年8月9日 優(yōu)先權(quán)日2004年8月12日
發(fā)明者伊凡·布杰勒·戴姆格德, 托本·普萊德·佩得森, 文森特·瑞吉門 申請人:Cmla有限公司