專利名稱:使用單向函數(shù)的數(shù)學(xué)約束型密鑰的生成的制作方法
背景技術(shù):
本發(fā)明涉及一種用于生成密鑰的方法及裝置。采用單向函數(shù)及質(zhì)數(shù)測試來提供高度保密的模數(shù)。例如,可提供用于Rivest-Shamir-Adleman(RSA)公共密鑰加密算法的模數(shù)。本發(fā)明例如可用于加密數(shù)據(jù),該數(shù)據(jù)經(jīng)由如衛(wèi)星分布網(wǎng)絡(luò)或有線電視網(wǎng)絡(luò)這樣的寬帶通信網(wǎng)絡(luò)而與譯碼器族群通信,或者用于任何其它安全裝置。
與寬帶通信網(wǎng)絡(luò)的譯碼器族群通信的視頻、音頻及其它數(shù)據(jù)在頭端器的一個或多個密鑰下經(jīng)過加密,以提供對數(shù)據(jù)的存取控制。在可尋址接收器制造時,生成并使其載入仔數(shù)(seed)數(shù)據(jù)。從而當(dāng)在通信網(wǎng)絡(luò)中運用這種接收器時,其即可處理包含密鑰的信息。然而,有敵意的攻擊者也可通過各種已知的攻擊方法(例如芯片的拆封、探測等)獲得這種仔數(shù)數(shù)據(jù)。一旦攻擊者具有該仔數(shù)信息,其即能解密送至該接收器的所有信息,從而永久地或在長期地使該接收器泄密。
一種在接收器制造時克服這個問題的方法是由接收器使用一預(yù)定的函數(shù)來處理預(yù)置仔數(shù)(pre-seed),從而導(dǎo)出仔數(shù)。其后即使該預(yù)置仔數(shù)隨后為攻擊者所發(fā)現(xiàn),除非攻擊者知道該預(yù)定函數(shù),否則攻擊者仍無法獲得仔數(shù)。
此預(yù)定函數(shù)可為單向函數(shù)(one-way function)。一單向函數(shù)基本上是不可逆的,以致經(jīng)該單向函數(shù)處理的輸入數(shù)據(jù)無法由未經(jīng)授權(quán)人員所恢復(fù)。單向函數(shù)可包含分布散列函數(shù)(distribution hash function),其中以一種或多種加密算法將輸入數(shù)據(jù)加密,并且例如使用異或(XOR)函數(shù),將所得加密的數(shù)據(jù)與輸入數(shù)據(jù)散列。因而,假定有一仔數(shù),通過用單向函數(shù)處理預(yù)置仔數(shù)來獲得仔數(shù),則在不知道該單向函數(shù)的情況下通過嘗試-錯誤型的攻擊來復(fù)原該仔數(shù)基本上是不可能的。
一般而言,例如從芯片讀取儲存信息(而非用以生成該儲存信息的預(yù)置仔數(shù)載入信息)的攻擊者通過一單向函數(shù)(OWF)而反向工作,以重建預(yù)置仔數(shù)載入信息。因為該攻擊者不能反向執(zhí)行這一單向函數(shù),并且因其沒有用以將預(yù)置仔數(shù)載入芯片的原預(yù)置仔數(shù)載入信息(pre-seedload message),故其無法將有效的仔數(shù)載入接收器中的芯片。OWF的這種運用通常僅發(fā)生在生產(chǎn)譯碼器的工廠而非網(wǎng)絡(luò)。因而本領(lǐng)域中的譯碼器通常并不接收使用這種技術(shù)的信息。
當(dāng)預(yù)置仔數(shù)是對應(yīng)于例如數(shù)據(jù)加密標準(DES)的位串或密鑰時,上述將預(yù)置仔數(shù)供至譯碼器的技術(shù)是適當(dāng)?shù)?。有效的DES密鑰基本上包含任何隨機的56位串。因此,受單向函數(shù)處理的DES密鑰導(dǎo)致可用做另一DES密鑰的輸出數(shù)據(jù)。盡管DES密鑰在許多情況下可提供適當(dāng)?shù)陌踩?,然而用RSA密鑰可達到與公共密鑰加密相關(guān)的不同安全特性。
RSA公共密鑰密碼系統(tǒng)是在公共密鑰密碼技術(shù)中廣泛使用的標準。在這一系統(tǒng)中,將信息Y加密以獲得密文(cyphertext)X=Y(jié)K2(模數(shù)N)。公共密鑰由(K2,N)所定義,其中K2為公共指數(shù),模數(shù)N為二個大質(zhì)數(shù)P及Q的乘積。此外,K2<N,而且K2對于歐拉_函數(shù)_=(P-1)·(Q-1)為相對質(zhì)數(shù)。如兩個整數(shù)無共同的質(zhì)數(shù)因子,則互為相對質(zhì)數(shù)。亦即,它們唯一的共同因子為1。系統(tǒng)的安全性基于將N分解為其P及Q兩個分量的困難。在解密操作時,信息Y從密文X恢復(fù)成Y=XK1(模數(shù)N),其中K1為私有密鑰或私有指數(shù)(private exponent),而K2-1=K1模數(shù)(_)。
因為數(shù)目越大(例如56位及更長的位串),則質(zhì)數(shù)的發(fā)生率就越不大可能發(fā)生,所以受單向函數(shù)處理的有效RSA密鑰K2極不可能導(dǎo)致另一有效的RSA密鑰。
圖1顯示位長度與質(zhì)數(shù)數(shù)目百分比之間已知的漸近線關(guān)系。特別是質(zhì)數(shù)定理說明了對于X值,小于X的質(zhì)數(shù)的數(shù)目漸近地等于X除以X的對數(shù)。x軸110顯示質(zhì)數(shù)的位數(shù),而y軸120顯示質(zhì)數(shù)的百分比。例如,對于56位的二進制數(shù),全部數(shù)目中僅有約0.025%為質(zhì)數(shù)。如曲線130所示,此比例隨位長度降低。即使將單向函數(shù)用于隨機生成,隨機生成的數(shù)字為質(zhì)數(shù)的概率也符合同一比例。不大可能以單向函數(shù)處理RSA密鑰,從而生成有效的RSA密鑰。同樣,因為單向函數(shù)的輸出最好以隨機數(shù)模式化,該輸出不太可能滿足任何罕見的數(shù)學(xué)約束(improbablemathematical constraint),質(zhì)數(shù)性僅為一例。
因此,希望能提供一種計算上有效(computational efficient)的系統(tǒng),用于以單向函數(shù)來生成數(shù)學(xué)約束型的密鑰,例如有效的RSA密鑰。這一系統(tǒng)應(yīng)提供一種高度安全的密鑰,例如預(yù)置仔數(shù),其受到選定加密系統(tǒng)及單向函數(shù)兩者的保護。
還希望提供一種具有傳輸站或頭端器的通信網(wǎng)絡(luò),其中如RSA公共指數(shù)(public exponent)K2及模數(shù)N=P·Q這樣的數(shù)學(xué)約束值以相同或不同的單向函數(shù)生成,并根據(jù)K2及N下的該RSA系統(tǒng)而將如視頻、音頻這樣的數(shù)據(jù)或其它數(shù)據(jù)進行加密。
還希望提供一種具有預(yù)置仔數(shù)數(shù)據(jù)的預(yù)置仔數(shù)載入信息,該預(yù)置仔數(shù)數(shù)據(jù)同樣受到接收器或譯碼器中芯片(亦即集成電路)內(nèi)的單向函數(shù)的處理,以便推導(dǎo)出K1及N,從而使加密的的視頻或其它數(shù)據(jù)的得以被譯碼。
本發(fā)明提供了具有上述及其它優(yōu)點的系統(tǒng)。
在生產(chǎn)編碼器時,使用單向函數(shù)處理預(yù)置仔數(shù)的數(shù)據(jù),并測試確定經(jīng)過處理的數(shù)據(jù)是否滿足某些數(shù)學(xué)約束條件,例如質(zhì)數(shù)。若如此的話,則使用測試過的數(shù)值,舉例來說,形成RSA模數(shù)N及密鑰K2。在有線或衛(wèi)星電視網(wǎng)絡(luò)(舉例來說)中,像視頻、音頻或其它數(shù)據(jù)這樣的數(shù)據(jù)Y隨后經(jīng)過加密,從而獲得加密的數(shù)據(jù)X=Y(jié)K2(模數(shù)N),并在網(wǎng)絡(luò)上傳送至譯碼器族群(décor population)。
此外,特定授權(quán)的譯碼器具有儲存RSA密鑰的芯片,在譯碼器生產(chǎn)時,通過該譯碼器所進行的預(yù)置仔數(shù)數(shù)據(jù)的單向函數(shù)處理,形成了該RSA密鑰。使用這些RSA密鑰將加密的數(shù)據(jù)X加以譯碼,從而恢復(fù)未加密數(shù)據(jù)Y=XK1(模數(shù)N)。
最好通過將隨機位串細分成數(shù)個片段來獲得預(yù)置仔數(shù)數(shù)據(jù),然后由單向函數(shù)獨立地處理各片段從而獲得對應(yīng)的處理過的片段。將處理過的片段組合以獲得處理過的位串,然后將該位串作為一個整體來測試如質(zhì)數(shù)性這樣的數(shù)學(xué)約束條件。
一般而言,本發(fā)明并非特定用于RSA,而可用于任何要生成數(shù)學(xué)約束型密鑰的場合?;谫|(zhì)數(shù)的RSA密鑰僅為數(shù)學(xué)約束型密鑰的一例。亦即可涵蓋已經(jīng)存在和正在出現(xiàn)的任意特性的其它約束,例如橢圓曲線密碼系統(tǒng)。
一種在此所示用以生成密鑰K2的特殊編碼方法包括生成第一組隨機值Pre-P(例如512位的位串)的步驟。以第一單向函數(shù)來處理至少該Pre-P值的一部分,從而獲得對應(yīng)值P。Pre-P最好包含經(jīng)單向函數(shù)個別處理過的數(shù)值(例如位)組。測試P值,看其是否滿足例如質(zhì)數(shù)性的數(shù)學(xué)約束條件。若P不滿足該約束,則重復(fù)上述步驟以形成新的P值,直到滿足該約束為止。最后形成作為P值及其它變量P及K1函數(shù)的密鑰K2。
特別是,第二組隨機值Pre-Q可通過類似于pre-P值的方式處理,從而導(dǎo)出也滿足該數(shù)學(xué)約束的Q值。隨后形成模數(shù)N=PQ及歐拉_函數(shù)_=(P-1)(Q-1)。
其后,用單向函數(shù)處理第三組隨機值pre-K1以導(dǎo)出K1值。然后確定K1對_是否為相對質(zhì)數(shù)。若歐幾里德算法表明K1及_的最大公約數(shù)(GCD)為1,則此條件滿足。若此條件不滿足,則形成其它K1值,直到該條件滿足為止。
然后可利用歐幾里德擴展算法(Extended Algorithm),亦即K2=K1-1(模數(shù)_),形成密鑰K2??稍贙2及N下將數(shù)據(jù)Y加密,例如使用X=Y(jié)K2(模數(shù)N)。例如,可在一編碼器上對例如電視節(jié)目的數(shù)據(jù)加密。
同時根據(jù)本發(fā)明,提供了一種用于生成密鑰K1的譯碼方法。最后將在編碼器上導(dǎo)出K2的pre-P、pre-Q及pre-K1值提供給譯碼器。在該譯碼器,以先前使用的單向函數(shù)分別處理pre-P及pre-Q以形成P及Q。然后如前所述地形成模數(shù)N=PQ。
使用相同的單向函數(shù)處理用在編碼器的第三組隨機值pre-K1以導(dǎo)出K1值。然后可使用K1及N將加密的數(shù)據(jù)加以譯碼。例如,可使用Y=XK1(模數(shù)N)對數(shù)據(jù)X譯碼。
加密的信息X可經(jīng)具有譯碼器族群的寬帶通信網(wǎng)絡(luò)而從該編碼器傳送至譯碼器,P、pre-Q及pre-K1可作為仔數(shù)載入信息而本地儲存在譯碼器的芯片中,例如芯片內(nèi)或在智能卡中。
還說明了對應(yīng)的編碼裝置及譯碼裝置。
圖1說明質(zhì)數(shù)理論。
圖2表示根據(jù)本發(fā)明具有編碼器及譯碼器的寬帶通信網(wǎng)絡(luò)。
圖3表示根據(jù)本發(fā)明的編碼器。
圖4a示出根據(jù)本發(fā)明的編碼方法的第一部分。
圖4b示出根據(jù)本發(fā)明的圖4a編碼方法的第二部分。
圖5示出根據(jù)本發(fā)明的譯碼器,及圖6示出根據(jù)本發(fā)明的譯碼方法。
發(fā)明詳述本發(fā)明涉及一種使用單向函數(shù)并測試數(shù)學(xué)約束條件(例如質(zhì)數(shù))以生成數(shù)學(xué)約束型密鑰(例如RSA密鑰及模數(shù))的方法及裝置。
例如寬頻帶有線電視或衛(wèi)星分布網(wǎng)絡(luò)的條件存取(conditionalaccess,下文簡稱CA)系統(tǒng)將消息(message)中的信息(information)傳送至儲存該信息的可信組件(trusted component)。CA系統(tǒng)的攻擊者通過移去和重發(fā)使用該組件正常信息傳遞語法及處理的信息,有時可非法地繁衍或復(fù)制可信組件。因此對于所儲存的信息,希望其存在形式能防止其作為合法的信息傳遞信息而再度使用。這一問題被稱之為“信息傳遞及再使用問題”。
典型的單向函數(shù)(OWF)具有一個或多個輸入IN1、IN2、...,以及一輸出OUT。其顯著的單向特性為·給出所有輸入IN1、IN2、...,則易于計算OUT;不過·給出OUT及至少1個遺漏的輸入(missing input)IN1或IN2或...,則計算遺漏的輸入在計算上是不可行的。
計算上不可行的意思是除了簡單嘗試遺漏變量的全部可能值,從而確定正確值以外,尚不知有更好的方法。
在本發(fā)明中,可使用具有一個輸入及一個輸出的簡單OWF,其中OUT=OWF(IN)易于計算,不過IN=OWF(OUT)-1則不然。
在如有線電視網(wǎng)絡(luò)這樣的寬帶通信網(wǎng)絡(luò)中,根據(jù)付費而將電影、運動新聞及其它視頻、音頻及數(shù)據(jù)(“服務(wù)”)提供給在譯碼器族群中得到授權(quán)的譯碼器。為防止未獲授權(quán)人員利用某項服務(wù)進行觀賞或其它活動,將該項服務(wù)在一個或多個密鑰下加密。在得到授權(quán)的譯碼器提供仔數(shù)或預(yù)置仔數(shù)數(shù)據(jù)(例如,仔數(shù)載入信息)用來生成密鑰,以便使該加密的服務(wù)得以解密。例如,可將仔數(shù)或預(yù)置仔數(shù)數(shù)據(jù)儲存在譯碼器內(nèi)部的芯片或在智能卡中。因此,在許多譯碼器中最敏感的信息為仔數(shù)。仔數(shù)與公共單元地址(public unit address,其為各譯碼器的唯一標識符)組成了組件唯一的和不可變的身分。在譯碼器內(nèi)的全部密碼功能都建立在某種形式的仔數(shù)基礎(chǔ)上。
在過去,攻擊者由一組件析取仔數(shù)并使其載入多個其它組件,從而達到復(fù)制或繁衍安全組件的目標。這一過程通常稱為“繁衍(cloning)”。某些譯碼器設(shè)計成接收下列形式的仔數(shù)載入信息單元地址+仔數(shù)-1+仔數(shù)-2+仔數(shù)-3+仔數(shù)-4在此信息中提供了四個仔數(shù)僅為一例??捎酶倩蚋嗟淖袛?shù)。例如,此信息所載入的五段信息可不作改動地置于譯碼器內(nèi)存的五個區(qū)域中。在譯碼器投入使用后,攻擊者可找出進入這五個記憶區(qū)并移除信息的方式。因為此信息容許原仔數(shù)載入信息的生成,這種攻擊會使得“剽竊者”制作未獲授權(quán)的繁衍譯碼器單元。因其將導(dǎo)致網(wǎng)絡(luò)經(jīng)營者收入及其它的損失,因此是重大問題。
可使用預(yù)置仔數(shù)取代在仔數(shù)載入信息中所用的仔數(shù)。預(yù)置仔數(shù)載入信息可具有下列形式單元地址+預(yù)置仔數(shù)-1+預(yù)置仔數(shù)-2+預(yù)置仔數(shù)-3+預(yù)置仔數(shù)-4當(dāng)在譯碼器收到預(yù)置仔數(shù)載入信息時,使用OWF處理預(yù)置仔數(shù)以生成仔數(shù)單元地址[儲存]=單元地址[接收]仔數(shù)-1[儲存]=OWF(預(yù)置仔數(shù)-1[接收])仔數(shù)-2[儲存]=OWF(預(yù)置仔數(shù)-2[接收])仔數(shù)-3[儲存]=OWF(預(yù)置仔數(shù)-3[接收])仔數(shù)-4[儲存]=OWF(預(yù)置仔數(shù)-4[接收])這一方法提供了較高的安全度,因為現(xiàn)在攻擊者要計算從安全組件內(nèi)存所析取的仔數(shù)的預(yù)置仔數(shù)從計算上是不可行了。例如為從仔數(shù)-1計算預(yù)置仔數(shù)-1,攻擊者必須計算預(yù)置仔數(shù)-1=OWF-1(仔數(shù)-1)但只要所選OWF足夠的強,這就是不可解的問題。特別是基于DES的OWF已經(jīng)過了仔細研究并認為相當(dāng)可靠。該OWF方法解決了DES密鑰傳遞的信息傳遞及再使用的問題。
注意,當(dāng)使用這一OWF方法時,基本上是假設(shè)經(jīng)OWF來通過有效的DES密鑰將形成也為有效DES密鑰的輸出。如不是這樣,則仔數(shù)即非有效的DES密鑰,使得這些仔數(shù)無效用。
使用任何適當(dāng)?shù)碾S機位來源及普通的程序易于生成DES密鑰步驟1.生成56個隨機位。
步驟2.將所有這56個當(dāng)成有效DES密鑰使用。
在此所用“隨機”一詞涵蓋了“假隨機”。應(yīng)認識到,實際上純隨機程序是很難達成的。
采用下列復(fù)雜的數(shù)值程序而互異地生成RSA密鑰步驟1.選取(很大的)模數(shù)尺寸,例如1024位。
步驟2.如下隨機地生成512位的質(zhì)數(shù)Pa)生成512隨機位。
b)將這些位組合成數(shù)字P。
c)測試P是否為質(zhì)數(shù)。
d)若為質(zhì)數(shù),保留P并轉(zhuǎn)到步驟3。
e)若非質(zhì)數(shù),回到步驟2a。
步驟3.對另一個512位的質(zhì)數(shù)Q重復(fù)步驟2。
步驟4.形成1024位模數(shù)N=P·Q。
步驟5.形成歐拉_函數(shù),_(PHI)=(P-1)·(Q-1)。
步驟6.隨機地生成密鑰K1,其中K1對(P-1)·(Q-1)必須為相對質(zhì)數(shù)a)生成1024隨機位。
b)將這些位組合成數(shù)字K1。
c)測試K1對(P-1)·(Q-1)是否為相對質(zhì)數(shù)。
d)若為相對質(zhì)數(shù),轉(zhuǎn)到步驟7。若不是,則回到步驟6a。
步驟7.使用歐幾里德擴展算法,從密鑰K1及(P-1)·(Q-1)導(dǎo)出密鑰K2。
步驟8.舍棄P,Q及(P-1)·(Q-1)(重要)。
步驟9.保留以下內(nèi)容用于RSA加密a)K1
b)K2c)模數(shù)N=P·Q步驟2及3為有關(guān)本發(fā)明在DES密鑰生成上問題的差異(problematicdifference)。滿足數(shù)學(xué)約束條件(例如質(zhì)數(shù)性)的數(shù)字的隨機生成是一個隨機的過程,會生成許多非質(zhì)數(shù)的數(shù)目。這是因質(zhì)數(shù)相對稀少(如前面關(guān)于圖1所述),并且沒有直接生成質(zhì)數(shù)的已知方法。所以代之以生成隨機數(shù)字并測試其是否為質(zhì)數(shù)。當(dāng)找到質(zhì)數(shù)時,即可停止搜尋。
但是,如下列討論所顯示的,RSA公共密鑰的生成有問題??蓪⒁粋€密鑰的“熵(entropy)”定義成對N位密鑰尺寸的有效密鑰的數(shù)目。N位的最大的“熵”密鑰具有2N個有效密鑰。以某種方式受約束的密鑰具有較小熵值,因而約束愈嚴則熵即相應(yīng)地愈低。因固定的密鑰僅有單一值,故其為退化的熵值(亦即具有“零熵”)。DES密鑰、RSA模數(shù)、RSA密鑰K1及RSA密鑰K2均可根據(jù)熵而從最低熵值至最高熵值排序如下RSA密鑰K2、RSA模數(shù)、RSA密鑰K1及DES密鑰。
這些熵的排序出自以下理由·由于N位尺寸的DES密鑰具有2N個有效密鑰,DES密鑰為最大熵值。任何N位數(shù)字均為有效密鑰。
·因是隨機選取的,RSA密鑰K1為中高的熵,不過對(P-1)·(Q-1)約束(寬松地)為相對質(zhì)數(shù)。隨機選取值對同樣尺寸的(P-1)·(Q-1)為相對質(zhì)數(shù)是相當(dāng)可能的,所以相對少的值為無效。
·因以質(zhì)數(shù)生成,RSA模數(shù)具有中低的熵。在數(shù)域中質(zhì)數(shù)是稀少的,因而如圖1所示,其生成不太可能發(fā)生。需經(jīng)多次嘗試以生成單一有效的RSA模數(shù)。
·因一個有效的K2值是直接從密鑰K1及模數(shù)N推導(dǎo)出來,而非隨機地生成,故RSA密鑰K2具有零熵。因此密鑰K2具有退化的(degenerative)熵。
對于傳統(tǒng)的56位的DES密鑰,僅需生成56隨機位以便具備好的密鑰。這是因56位密鑰的全部256個可能值都是擁有相同安全度的合法DES密鑰。然而公開密鑰算法建立在數(shù)字理論原理的基礎(chǔ)上,所以情況并非如此。若生成了N位的候選RSA模數(shù),則大部分情況下,這些模數(shù)甚至并非有效的模數(shù)而且必須舍棄。例如RSA公共密鑰模數(shù)必須是二個大質(zhì)數(shù)的乘積,因此每次要從隨機生成的位來組合候選的密鑰,還要進行進一步測試以知道其是否真的是有效密鑰。
在RSA中,進行測試以確定組合的位是否構(gòu)成質(zhì)數(shù)。在其它算法中,除質(zhì)數(shù)測試外還有其它測試,而且這些測試可能格外復(fù)雜。本發(fā)明提供的系統(tǒng)在進一步做例如質(zhì)數(shù)性有效測試之前的最初隨機位生成階段中進行OWF操作。然后,若找出有效數(shù)(例如質(zhì)數(shù)),即捕獲了輸出該有效數(shù)的OWF的輸入。
例如,若將某個8位密鑰當(dāng)做一個“迷你DES”,則有256個合法的8位尺寸的密鑰(亦即,28=256)。如以各自為4位的P和Q來生成一個8位RSA模數(shù)N=P*Q,即會受限于僅有5個可接受的4位質(zhì)數(shù)(亦即,3、5、7、11和13),而生成5*5=25個可能的8位RSA模數(shù)N。隨機生成這些4位數(shù)字中的一個的可能性僅為5/16,因此就可能不會生成OWF。若某一未定算法XYZ所具有的密鑰除質(zhì)數(shù)外,還受其它約束(例如,“所有密鑰必須可為13除盡”),則會遇到僅在數(shù)學(xué)約束類型上相異的相似情況。
另外,有19個可為13除盡的8位數(shù)字,亦即13、26、39、52、65、78、91、104、117、130、143、156、169、182、195、208、221、234及247。因此,對這種約束密鑰系統(tǒng),隨機地生成8位數(shù)字,即僅有19/256的成為有效密鑰的機會。在相似技術(shù)只是相關(guān)的情況下,這簡直是除質(zhì)數(shù)性外的另一約束。因此,本發(fā)明意在包括所有這些數(shù)學(xué)約束系統(tǒng),而非僅僅RSA。
OWF生成最宜模式化成隨機數(shù)的輸出。當(dāng)所要的密鑰類型不是最大熵量時,本發(fā)明所解決的挑戰(zhàn)是將這一OWF輸出當(dāng)做密鑰。可能一個給定的OWF函數(shù)輸出不是有效的RSA密鑰或模數(shù),若僅有一個輸出可用,其將禁止使用OWF。即使通過重復(fù)的嘗試有多個輸出可用,其程序也必需要容許有進行這種嘗試的時間,以便獲得有效的輸出。
因任何數(shù)字(例如具有56位的長度)都是有效的DES密鑰,DES適于接收OWF的輸出。該數(shù)目是否直接來自隨機的位來源或者來自O(shè)WF的輸出是無關(guān)緊要的,因兩者皆可用。因隨機位很容易以相當(dāng)高速率生成,基于此緣故DES密鑰的生成極有效率并適于應(yīng)用。
相比之下,RSA密鑰K2非常不適于作為OWF的輸出,因為幾乎不可能通過隨機模式的過程而生成獨自的有效K2值。
由于其熵較低,RSA密鑰K1不很適于接收OWF的輸出。不過若來自多次嘗試的多個輸出為可用的,獲得有效的K1可能是可行的。僅具有一個OWF輸出的應(yīng)用(例如仔數(shù)載入)無法以RSA密鑰K1動作。
不過從圖1看到,當(dāng)做RSA模數(shù)使用時,所知的隨機數(shù)或OWF輸出僅具有非常小成為有效的概率。RSA模數(shù)為密鑰制作的一部分且首先生成,因此RSA密鑰的生成很緩慢且無效率。還有更糟的是即使找出了有效模數(shù),在未成為無效模數(shù)時不能通過OWF是極為可能的。
使用有效的RSA模數(shù)且通過OWF向后操作以導(dǎo)出計算模數(shù)的輸入并無可能。這就是說,通過單向函數(shù)向后操作在定義上是不可計算的。將OWF輸出直接用做RSA模數(shù)是完全不可行的。因此不能使用傳統(tǒng)的OWF仔數(shù)載入信息方式,而留下信息傳遞及再使用的問題。
本發(fā)明解決的問題是在OWF的輸出獲得有效的RSA模數(shù)。
此后,“RSA密鑰生成”或“密鑰生成”一詞應(yīng)包含RSA模數(shù)及密鑰K1與K2生成程序兩者,而且所說明的OWF假設(shè)為具有64位輸入及輸出。可使用較少或較多的位。此外,錯誤更正可使用檢查位。
可如下使用OWF制作RSA密鑰及模數(shù)。在傳統(tǒng)上,隨機密鑰生成為與如何使用所制作的有效密鑰不同的程序。因DES密鑰很容易生成而且即使緊接著通過OWF仍有效,故此程序可行。不過當(dāng)使用傳統(tǒng)方法生成RSA密鑰時,將密鑰的生成與仔數(shù)載入信息的生成分開是不可能的。
根據(jù)本發(fā)明,仔數(shù)載入信息OWF并入RSA密鑰及模數(shù)生成的本身程序中。這是在程序中三個特別處所完成的,導(dǎo)致以下修改的RSA密鑰及模數(shù)生成程序步驟1.選擇(大的)模數(shù)尺寸,例如1024位。
步驟2.隨機生成512位質(zhì)數(shù)P如下a)生成512(=8×64)隨機位。
b)將各64位組合成8件或片段,稱為Pre-P1...Pre-P8。
c)令Pre-P1...Pre-P8分別通過OWF以形成P1...P8。
d)將P1...P8組和,恢復(fù)成512位數(shù)目P。
e)測試P是否為質(zhì)數(shù)。
f)若P為質(zhì)數(shù),保留P及Pre-P1...Pre-P8并轉(zhuǎn)向步驟3。
g)若P非質(zhì)數(shù),舍棄Pre-P1...Pre-P8并回到步驟2a。
步驟3.對質(zhì)數(shù)Q重復(fù)步驟2以在過程中形成Pre-Q1...Pre-Q8。
步驟4.形成1024位模數(shù)N=P·Q步驟5.形成歐拉_函數(shù)=(P-1)·(Q-1)步驟6.隨機生成密鑰K1,其中K1對(P-1)·(Q-1)須為相對質(zhì)數(shù)a)生成1024隨機位。
b)將各64位組合成16個數(shù)目Pre-K11...Pre-K116。
c)令Pre-K11...Pre-K116分別通過OWF以形成K11...K116。
d)將K11...K116組合成1024位數(shù)目K1。
e)測試K1對(P-1)·(Q-1)是否為相對質(zhì)數(shù)。
f)若為相對質(zhì)數(shù),轉(zhuǎn)向步驟7。若否,則回到步驟6a。
步驟7.由歐幾里德的擴展算法從密鑰K1及(P-1)·(Q-1)導(dǎo)出密鑰K2。
步驟8.舍棄P、Q及(P-1)·(Q-1)(重要)。
步驟9.保留下列內(nèi)容以便在OWF信息傳遞以及RSA加密中使用a)Pre-K11...Pre-K116b)K2c)Pre-P1...Pre-P8d)Pre-Q1...Pre-Q8以上本發(fā)明的程序容許了OWF輸出的有效RSA密鑰的生成?,F(xiàn)在OWF已結(jié)合至密鑰生成本身的過程,例如在P、Q及K1生成的過程。
可將OWF RSA密鑰生成程序用于解決信息傳遞及再使用問題,如下所示。目的是將模數(shù)N及密鑰K1傳送至接收器/譯碼器。因密鑰K2僅在頭端器用于信息加密,所以接收器不需要密鑰K2。密鑰K1僅在譯碼器中用于信息解密。
步驟1.使用上述的OWF程序,生成RSA密鑰變量Pre-K11...Pre-K116,Pre-P1...Pre-P8,Pre-Q1...Pre-Q8及K2。該OWF可具有64位輸入及輸出。
步驟2.形成下列形式的RSA預(yù)置仔數(shù)載入信息單元地址+Pre-P1...Pre-P8+Pre-Q1...Pre-Q8+Pre-K11...Pre-K116步驟3.將RSA預(yù)置仔數(shù)載入信息送至信息接收器(例如,譯碼器)。
現(xiàn)在信息接收器(例如譯碼器)進行所有處理。注意該譯碼器必須有用于上述密鑰生成的OWF。該OWF可供至在使用各種方法的譯碼器族群中的譯碼器。例如,在制造譯碼器時使用智能卡等將OWF安裝于非易失性內(nèi)存中,或經(jīng)由通信網(wǎng)絡(luò)下載??蓪WF本身加密以防止中途截取及危害。
譯碼器進行下列步驟以導(dǎo)出用于將加密的視頻、音頻或其它數(shù)據(jù)解密的K1及N步驟1.處理Pre-P1…Pre-P8a)令Pre-P1...Pre-P8通過OWF以形成P1…P8。
b)舍棄Pre-P1...Pre-P8(重要)。
c)重組P1...P8以形成P。
步驟2.處理Pre-Q1…Pre-Q8a)將Pre-Q1...Pre-Q8通過OWF以形成Q1...Q8。
b)舍棄Pre-Q1...Pre-Q8(重要)。
c)重組Q1...Q8以形成Q。
步驟3.處理P及Qa)將P與Q相乘以形成模數(shù)N。
b)舍棄P及Q(重要)。
步驟4.處理Pre-K11…Pre-K116a)將Pre-K11...Pre-K116通過OWF以分別形成K11...K116。
b)舍棄Pre-K11...Pre-K116(重要)。
c)重組K11…K116以形成K1。
在此點,信息接收器/譯碼器具有所要的信息,其通過RSA仔數(shù)載入信息信息通過OWF而導(dǎo)出。若攻擊者無意中取出了模數(shù)N及密鑰K1,因首先未將模數(shù)N分解因子則P及Q無法形成,故其不能形成有效的RSA預(yù)置仔數(shù)載入信息。此為RSA的安全性所根據(jù)的“困難問題”。第二,即使已知P,Q或K1,由于使用OWF,Pre-P1...Pre-P8,Pre-Q1...Pre-Q8及Pre-K11...Pre-K116無法導(dǎo)出。。
本發(fā)明于下列附圖中說明。
圖2示出根據(jù)本發(fā)明具有一編碼器及譯碼器的寬帶通信網(wǎng)絡(luò)。編碼器一般示于200,而譯碼器一般示于260。可在有線電視或衛(wèi)星分布網(wǎng)絡(luò)的頭端提供編碼器200,而譯碼器260表示在譯碼器族群中的一譯碼器,例如在用戶家。編碼器200包含一密鑰及模數(shù)生成器205,且選擇性地含多路復(fù)用器(MUX)240。
密鑰及模數(shù)生成器205使用單向函數(shù)以生成許多預(yù)置的片段Pre-P1至Pre-P8,Pre-Q1至Pre-Q8及Pre-K1-1至Pre-K1-16。視需要可將不同的單向函數(shù)用于不同片段組。例如,一第一單向函數(shù)可用于Pre-P1至Pre-P8(Pre-P),一第二單向函數(shù)可用于Pre-Q1至Pre-Q8(Pre-Q),及一第三單向函數(shù)可用于Pre-K1-1至Pre-K1-16(Pre-K)。對一組內(nèi)的各片段使用不同的單向函數(shù)亦是可能的。
密鑰及模數(shù)生成器205使用預(yù)置仔數(shù)數(shù)據(jù)以生成RSA密鑰K2及RSA模數(shù)N。編碼器230使用K2及N以將未加密的數(shù)據(jù)Y加密,因而提供對應(yīng)的加密的數(shù)據(jù)X.編碼器230根據(jù)X=Y(jié)K2(模數(shù)N)實現(xiàn)了RSA公共密鑰密碼系統(tǒng)。如上所述,未加密的數(shù)據(jù)Y可包含視頻、音頻或其它數(shù)據(jù)。
注意未加密的數(shù)據(jù)可與至譯碼器260及網(wǎng)絡(luò)中其它的譯碼器的加密的數(shù)據(jù)相聯(lián)系。例如,可提供層狀分布服務(wù),其中所有譯碼器獲得接收程序規(guī)劃的基本層級授權(quán),而僅特殊的譯碼器獲得在額外付費時接收一個或多個層級的額外費用程序規(guī)劃授權(quán)。在此情況,僅有額外費用的程序需加密。
視情況可為編碼器200的一部分的控制中心210可控制密鑰及模數(shù)生成器205的處理??刂浦行?10可視情況提供會計決算的能力,例如維持有關(guān)那些譯碼器是獲得接收加密的數(shù)據(jù)的授權(quán)紀錄。例如,控制中心210可保有付費、帳單及其它相關(guān)信息的磁道。
在譯碼器260(例如通過芯片)提供了在密鑰及模數(shù)生成器205的相同預(yù)置仔數(shù)數(shù)據(jù)。此步驟通常僅在譯碼器260的制造過程中發(fā)生。加密的數(shù)據(jù)X供至MUX240,以便跨過頻道250與譯碼器260聯(lián)系。例如,頻道250可包含與譯碼器族群聯(lián)系的有線電視分布網(wǎng)絡(luò)或衛(wèi)星分布網(wǎng)絡(luò)。例如加密或未加密的程序的其它數(shù)據(jù)及/或控制數(shù)據(jù)可與加密的數(shù)據(jù)X在MUX240多路化。
在譯碼器260,將多路分配器(DEMUX)270收到的來自頻道250的傳輸數(shù)據(jù)進行譯碼。DEMUX270將加密的數(shù)據(jù)X供至譯碼器265。在DEMUX270收到的其它數(shù)據(jù)依需求遞送。預(yù)置仔數(shù)數(shù)據(jù)是例如經(jīng)由在譯碼器中儲存預(yù)置仔數(shù)載入信息的芯片的密鑰及模數(shù)生成器275中受處理,其中該預(yù)置仔數(shù)數(shù)據(jù)是由用于編碼器200的相同單向函數(shù)的處理,以導(dǎo)出密鑰K1及模數(shù)N。K1及N供至譯碼器265,將用以將加密的數(shù)據(jù)X解密,以便恢復(fù)未加密的數(shù)據(jù)Y。
在譯碼器260視需要提供控制中心282,以控制在密鑰及模數(shù)生成器275的處理。
可依需求使用傳統(tǒng)電路對未加密的數(shù)據(jù)Y做進一步處理。例如,若未加密的數(shù)據(jù)Y包含視頻數(shù)據(jù),則可能需要進行傳統(tǒng)的視頻解壓縮處理。有關(guān)此處理的細節(jié)是在本領(lǐng)域熟練技術(shù)人員理解范圍內(nèi)。
還要注意圖2所示為單一的譯碼器260,不過通常在譯碼器族群中有數(shù)千個接收來自例如編碼器200的單一頭端編碼器的數(shù)據(jù)的譯碼器。
圖3示出根據(jù)本發(fā)明的編碼器。編碼器200′包含許多分別顯示的不同處理。但應(yīng)認識到,可使用共享的電路來實施不同的處理,包含共同的微處理器及內(nèi)存儲存組件,和/或其它軟件,固件及/或硬件。另外,這些處理通??勺鳛閳D2的密鑰及模數(shù)生成器205及編碼器230的部分。
編碼器200′包含一與總線305聯(lián)系的中央處理單元(CPU)310。一隨機位生成器315使用任何已知的隨機數(shù)據(jù)生成方法生成隨機位串。例如,可生成512位及1024位的位串。一位細分器/組合器320可將隨機位串細分成許多片段。例如,可使用八個相等的片段。
當(dāng)使用單向函數(shù)處理各片段時,通常希望各片段具有提供所需安全度的長度,例如64位或更長。若片段太短,即使用單向函數(shù)處理片段,安全層級可能不夠??傊?,當(dāng)各片段的長度增加時,隨機生成的位串或其子集合將為質(zhì)數(shù)或符合另一必要的數(shù)學(xué)約束的概率降低,因而增加了計算時間。因此,在安全與計算時間之間有折衷。
單向函數(shù)325獨自地處理來自位細分器/組合器320的各位片段??墒褂萌魏我阎膯蜗蚝瘮?shù)。例如,可使用一個或多個的DES密鑰及前授隨機數(shù)據(jù)將各片段加密。然后單向函數(shù)325所處理的片段在位細分器/組合器320組合成單一位串。例如,當(dāng)使用八個64位片段時,可將片段鏈接或者組合以獲得新的512位長度位串。
在單向函數(shù)處理之前及/或之后可視情況將片段隨機重新排序以提供進一步的安全。在譯碼器須使用對應(yīng)的重新排序。
新組合過的位串可供至質(zhì)數(shù)測試程序345,其可實行任何已知的質(zhì)數(shù)測試方法來確定處理過的位串是否為質(zhì)數(shù)。另外,即使完全確定無法確定質(zhì)數(shù)性,要達到位串為質(zhì)數(shù)的所要的可信度是可能的,例如99.9999%可信。
例如,一種質(zhì)數(shù)測試法使用了稱為“見證(WITNESS)”的算法,其在1975年5月第七屆計算理論年度ACM研討會論文集由Miller G.所著“質(zhì)數(shù)性的Reimann假設(shè)及測試”以及1980年12月數(shù)字理論雜志Rabin,M.所著“質(zhì)數(shù)性測試的概率性算法”中進行了討論。該算法接收要做質(zhì)數(shù)測試的數(shù)目輸入“n”以及某一整數(shù)“a”,而a<n,如下列虛擬數(shù)碼的說明見證(a,n)1.令bkbk-1...b0為(n-1)的二進制表示。
2.d←13.對i←k降為04.x←d5.d←(d×d)模n6.若d=1且x≠1且x≠n-17.則回到真(TRUE)8.若bi=19.則d←(d×a)模n10.若d≠111.則回到真12.回到偽(FALSE)若回到真,則“n”很明確地非質(zhì)數(shù)。若回到偽,則“n”可為質(zhì)數(shù)。
另外,如在1990年麻州劍橋MIT刊物中由Cormen,T.,Leiserson,C.及Rivest,R.所著算法介紹中所述,可由任意地選擇的“a”值重復(fù)引用見證。若在任何點回到真,“n”不是質(zhì)數(shù)。若連續(xù)回到偽“s”次,則“n”為質(zhì)數(shù)的概率至少為1-2-S。因而,對于足夠大的“s”值,可建立“n”為質(zhì)數(shù)的對應(yīng)可信度。
特別地,可由質(zhì)數(shù)測試程序345測試二個512位的位串,P及Q。一旦已找出位串P及Q為充分地質(zhì)數(shù),則其等供至模數(shù)計算器350以形成RSA模數(shù)N=P·Q。
注意根據(jù)本發(fā)明可使用任何做為任何數(shù)學(xué)約束(不限于質(zhì)數(shù)性)測試用的功能。
此外,歐拉_函數(shù)355用于形成乘積_=(P-1)·(Q-1)。
歐拉_函數(shù)表示小于N且對N為相對質(zhì)數(shù)的正整數(shù)的數(shù)目。一旦_確定了,在功能360進行歐幾里德的(基本)算法以形成K1及_的最大公約數(shù)(GCD),將于說明圖4a及4(b)時做進一步解釋。若正整數(shù)C為A及B的除數(shù),正整數(shù)C為A及B兩個整數(shù)的GCD,且A及B的任何除數(shù)為C的除數(shù)。
在功能塊365執(zhí)行歐幾里德的擴展算法以獲得密鑰K2。
編碼器230使用K2及N以將數(shù)據(jù)X=Y(jié)K2(模數(shù)N)加密。CPU310及內(nèi)存340可用來控制其它功能,并依需求提供數(shù)據(jù)的中間及/或最后儲存。此外,可經(jīng)由總線305或其它裝置提供要在編碼器230中加密的數(shù)據(jù)。
圖4a示出根據(jù)本發(fā)明的編碼方法的第一部分。在方框400生成例如具有512位長度的隨機位串。在方框405,將這些位組合成許多預(yù)置仔數(shù)的子集合,Pre-P1至Pre-P8。例如,可使用八個各自具有64位長度的子集合。在方框410,以單向函數(shù)處理各子集合以獲得對應(yīng)的子集合P1至P8。因為使用了單向函數(shù),基本上不可能分別從子集合P1至P8導(dǎo)出預(yù)置仔數(shù)的子集合Pre-P1至Pre-P8。在方框415,組合處理過的子集合P1至P8以形成512位長度的位串P。在方框420,測試P以確定其是否為具充分可信度的質(zhì)數(shù)。若否,則在方框400重復(fù)處理,且舍棄預(yù)置的數(shù)據(jù)。若是,則在方框455繼續(xù)處理。
分別在對應(yīng)于方框400、405、410及415的方框430、435、440及445導(dǎo)出對應(yīng)的位串Q。特別在方框430生成了另一512位隨機位串。在方框435,將該位串組合成Pre-Q1至Pre-Q8的子集合。在方框440,以單向功能分別處理Pre-Q1至Pre-Q8以獲得對應(yīng)的處理過的子集合Q1至Q8。在方框445將Q1至Q8組合以形成512位的位串Q。
在對應(yīng)于方框420的方框450,就Q是否具充分可信度的質(zhì)數(shù)進行確定。若否,則在方框400重復(fù)處理,并舍棄預(yù)置的數(shù)據(jù)。若是,則在方框455繼續(xù)處理。
選擇性地,可在方框420及450進行用在任何所要的數(shù)學(xué)約束的測試。
在方框455,形成了RSA模數(shù)N=P·Q,而在方框460,形成了歐拉_函數(shù)_=(P-1)·(Q-1)。在方框465,處理在圖4b的方框A繼續(xù)。注意用于方框410及440的單向函數(shù)可為相同的;總之,此并非需要。另外,甚至以不同的單向函數(shù)處理各子集合,及/或使用二或更多的單向函數(shù)處理單一子集合或整個位串是可能的。包括使用附增的、傳統(tǒng)的加密步驟的其它變化對本領(lǐng)域熟練技術(shù)人員將是很明顯的。
圖4b示出根據(jù)本發(fā)明的圖4a編碼方法的第二部分。處理在方框500繼續(xù)。在方框505生成了具有例如1024位長度的隨機位串。在方框510。將該位串細分成十六個各具有64位長度的預(yù)置仔數(shù)子集合Pre-K1-1至Pre-K1-16。在方框515,以單向函數(shù)處理各64位子集合以獲得對應(yīng)的處理過的子集合K1-1至K1-16。用于方框515的單向函數(shù)可與用在圖4a的方框410及440的相同或相異的單向函數(shù)。在方框520組合處理過的子集合K1-1至K1-16以形成RSA密鑰K1。
在方框525,就K1對_是否為具充分可信度的相對質(zhì)數(shù)進行確定。當(dāng)歐幾里德的基本算法指出GCD(K1,_)=1時,K1對_為相對質(zhì)數(shù)。若GCD(K1,_)≠1,在方框505開始重復(fù)處理,且舍棄預(yù)置的數(shù)據(jù)。若GCD(K1,_)=1,在方框530繼續(xù)處理,在該處使用歐幾里德的擴展算法以形成RSA密鑰K2=K1-1模數(shù)_。
在方框535以K2及N將信息Y加密以形成密碼文字X=Y(jié)K2·(模數(shù)N)。在方框540舍棄P、Q及_。若此信息存于內(nèi)存內(nèi),因攻擊者可能可以獲得此信息,故此步驟很重要。最后,在方框550,將加密的信息X傳送至譯碼器族群。
注意預(yù)置片段Pre-P1至Pre-P8、Pre-Q1至Pre-Q8及Pre-K1-1至Pre-K1-16也例如經(jīng)由芯片供至譯碼器族群。該步驟通常與涉及在編碼器處理之前步驟無關(guān)聯(lián)。
三個位串P、Q及K1的預(yù)置仔數(shù)數(shù)據(jù)最好是供至譯碼器??傊瑢⑸儆谒腥齻€位串的預(yù)置仔數(shù)數(shù)據(jù)供至譯碼器以實施本發(fā)明是可能的。因加于攻擊者的負擔(dān)增加,系統(tǒng)的安全仍有改進。
圖5示出根據(jù)本發(fā)明的譯碼器。譯碼器600包含一與總線605相聯(lián)系的CPU602。位細分器/組合器610、單向函數(shù)615、內(nèi)存620及模數(shù)計算器625通常對應(yīng)于圖3編碼器200′的相同名稱的組件。
單向函數(shù)615處理了例如經(jīng)由芯片供至譯碼器600的預(yù)置片段,以獲得對應(yīng)的處理片段。接著,位細分器/組合器610組合個別的處理過的片段以形成P、Q及K1。在功能625計算了RSA模數(shù)N。在譯碼器265使用K1及N將所收到的加密的數(shù)據(jù)X解密,以恢復(fù)未加密的文字Y=XK1(模數(shù)N)。
CPU602及內(nèi)存620可用來控制其它的譯碼器功能,并依需要提供中間及最終的數(shù)據(jù)儲存。另外,可以個別的及/或共享的組件(包括軟件、固件及/或硬件)制成各譯碼器組件。
圖6示出根據(jù)本發(fā)明的譯碼方法。例如來自芯片、智能卡等用于編碼器的個別預(yù)置片段也可用于譯碼器。
在方框705,由單向函數(shù)處理預(yù)置片段Pre-P1至Pre-P8以獲得對應(yīng)的處理過片段P1至P8。這是與圖4a方框410所用相同的單向函數(shù)。在方框710組合處理過的片段P1至P8以形成P。同樣地,在方框715由單向函數(shù)處理預(yù)置的片段Pre-Q1至Pre-Q8以分別獲得處理過的片段Q1至Q8。這是與圖4a方框440所用相同的單向函數(shù)。在方框720組合處理過的片段Q1至Q8以形成Q。在方框725形成了模數(shù)N=P·Q。
在方框730,由單向函數(shù)處理預(yù)置的片段Pre-K1-1至Pre-K1-16以分別獲得處理過的片段K1-1至K1-16。這是與圖4b中方框515所用相同的單向函數(shù)。在方框732,舍棄了Pre-K1-1至Pre-K1-16。在方框735組合處理過的片段K1-1至K1-16以形成RSA密鑰K1。最后,在方框740以K1及N將加上密碼的數(shù)據(jù)X解密以獲得Y=XK1(模數(shù)N)。
如上所述,在編碼器處理不同的片段及/或完整的位串使用相異的單向函數(shù)是可能的。因此,在譯碼器應(yīng)使用相同的對應(yīng)單向函數(shù)或諸功能以獲取原來的片段及位串。此外,在處理所給的位串時連續(xù)地使用多于一個單向函數(shù)是可能的。另外,其它已知的加密法可與本發(fā)明同時使用。
因此,可看出本發(fā)明提供了一種生成數(shù)學(xué)約束型密鑰的方法及裝置,例如使用單向函數(shù)及進行數(shù)學(xué)約束條件(例如質(zhì)數(shù)性)測試的RSA密鑰及模數(shù)。在一個具體實施例中,本發(fā)明獲得了RSA系統(tǒng)及一個或多個單向函數(shù)兩者的安全性效益。本發(fā)明特別地適用于出入管制的寬帶通信網(wǎng)絡(luò),其中預(yù)置仔數(shù)數(shù)據(jù)供至網(wǎng)絡(luò)上的特殊譯碼器。
在一例示用的具體實施例中,在例如頭端器的編碼器使用單向函數(shù)處理預(yù)置的數(shù)據(jù)并測試確定其是否為質(zhì)數(shù)。若如此,因而得到兩個質(zhì)數(shù)P及Q并用以形成RSA模數(shù)N及密鑰K2。在有線或衛(wèi)星電視網(wǎng)絡(luò)中例如視頻、音頻或其它數(shù)據(jù)的數(shù)據(jù)Y被加密以獲得加密的數(shù)據(jù)X=Y(jié)K2(模數(shù)N),并在網(wǎng)絡(luò)上傳送至譯碼器族群。
在制造過程期間或安裝時,譯碼器例如經(jīng)本地區(qū)的芯片接收預(yù)置的數(shù)據(jù),該數(shù)據(jù)在譯碼器中使用密鑰制作過程所用的相同單向函數(shù)處理,以獲得模數(shù)N及RSA密鑰K1。K1是使用歐幾里德的擴展算法從K2導(dǎo)出的。
加密的數(shù)據(jù)X受到解密以恢復(fù)未加密的數(shù)據(jù)Y=XK1(模數(shù)N)。最好將隨機位串細分成數(shù)片段以獲得預(yù)置的數(shù)據(jù),然后以單向函數(shù)獨立地處理各片段以便獲得得對應(yīng)的處理過的片段。組合該等處理過的片段以獲得質(zhì)數(shù)性測試用的處理過的位串。若獲知其為具充分可信度的質(zhì)數(shù),則使用該位串。否則,則在獲得可接受的位串之前,進行連續(xù)的重復(fù)。另外,選擇足夠長的位串片段以提供足夠的安全度,不過要足夠短以避免要獲得質(zhì)數(shù)字元串多次重復(fù)所引起的過度計算時間。
雖結(jié)合各種特殊的具體實施例而說明了本發(fā)明。本領(lǐng)域技術(shù)人員會認識到可對其做許多改造及變更,而不偏離如權(quán)利要求書所提出的本發(fā)明的精神及范圍。
例如,在與有線或衛(wèi)星電視寬帶通信網(wǎng)絡(luò)一起討論本發(fā)明時,將看到可使用例如局域網(wǎng)(LAN)、都市網(wǎng)(MAN)、廣域網(wǎng)(WAN)、互連網(wǎng)、企業(yè)內(nèi)聯(lián)網(wǎng)及因特網(wǎng)的其它網(wǎng)絡(luò)。
另外,應(yīng)認識到在例示中所用的位串長度及每一位串的片段數(shù)目僅為例子。通常有關(guān)此點的唯一需要是由單向函數(shù)所處理的片段的最小位串長度應(yīng)大到(例如56或64位)足以維持高度的安全性。
另外,可在制造密鑰生成器及/或在譯碼器時以連續(xù)或并行處理方式而同時以例如單向函數(shù)來進行多位串片段的處理。
此外,雖然最好以單向函數(shù)處理P、Q及K1的每一個,不過并不需如此。例如,若僅有一個或多個的P、Q及K1是以一個或多個的單向函數(shù)處理,將仍可取得安全度效益。
另外,在以生成位串及位的形式討論處理時,可了解到所生成的數(shù)值可以包含如十進制或十六進制的任何數(shù)字底數(shù)表示。
權(quán)利要求
1.一種用以生成密鑰K2的方法,包含步驟(a)生成一第一組數(shù)值;(b)以一第一單向函數(shù)處理至少所述第一組數(shù)值的一部分,以便獲得對應(yīng)值P;(c)測試該P值對一數(shù)學(xué)約束的滿足性;(d)在所述步驟(c)若該P值滿足所述數(shù)學(xué)約束,則形成做為該P值函數(shù)的所述密鑰K2;以及(e)在所述步驟(c)若P值不滿足所述數(shù)學(xué)約束,則按需要而重復(fù)所述等步驟(a)、(b)及(c)以得到滿足所述步驟(c)中該數(shù)學(xué)約束的P值,并形成做為該P值函數(shù)的所述密鑰K2。
2.如權(quán)利要求1的方法,其中至少所述第一組數(shù)值中的一個為隨機生成的。
3.如權(quán)利要求1的方法,其中密鑰K2為一Rivest-Shamir-Adleman(RSA)密鑰。
4.如權(quán)利要求1的方法,其中所述數(shù)學(xué)約束與橢圓曲線密碼系統(tǒng)相關(guān)。
5.如權(quán)利要求1的方法,包含以下進一步的步驟(f)將信息Y加密,從而形成做為密鑰K2函數(shù)的加密的信息X;(g)經(jīng)一寬帶通信網(wǎng)絡(luò)將所述加密的信息X傳送至一譯碼器族群中的譯碼器;以及(h)將用于將所述加密的信息X加以解密的數(shù)據(jù)提供給該譯碼器。
6.如權(quán)利要求1的方法,其中所述步驟(b)包含以所述第一單向函數(shù)處理至少所述第一組數(shù)值的一部分的步驟,以便獲得對應(yīng)的第一組經(jīng)過處理的數(shù)值。
7.如權(quán)利要求6的方法,其中所述步驟(b)還包含進一步的步驟組合所述第一組經(jīng)過處理的數(shù)值以形成所述P值。
8.如權(quán)利要求1的方法,其中所述數(shù)學(xué)約束在所要的質(zhì)數(shù)性可信度下為質(zhì)數(shù)性的。
9.如權(quán)利要求8的方法,還包含進一步的步驟(f)從一第二組數(shù)值生成一第二值Q;(g)形成_=(P-1)·(Q-1);(h)生成一第三組數(shù)值;(i)以一單向函數(shù)處理至少所述第三組數(shù)值的一部分以獲得一對應(yīng)值K1;(j)測試該K1值對_的相對質(zhì)數(shù)性;并且(k)若在所述步驟(j)未發(fā)現(xiàn)該K1值對_為相對質(zhì)數(shù),則視需要重復(fù)所述步驟(h)、(i)及(j),以獲得對_為相對質(zhì)數(shù)的K1值。。
10.如權(quán)利要求9的方法,其中所述步驟(i)包含以所述單向函數(shù)來處理至少該第三組數(shù)值的一部分的步驟。
11.如權(quán)利要求9的方法,其中當(dāng)所述K1值與_的最大公約數(shù)為1時,所述步驟(j)即確定了K1值對_為相對質(zhì)數(shù)。
12.如權(quán)利要求9的方法,其中至少所述第二組數(shù)值的一部分為隨機生成的。
13.如權(quán)利要求9的方法,其中在該步驟(f)由一單向函數(shù)處理至少該第二組數(shù)值的一部分以生成該第二值Q。
14.如權(quán)利要求9的方法,其中至少所述第三組數(shù)值的一部分為隨機生成的。
15.如權(quán)利要求9的方法,還包含進一步的步驟(l)形成一模數(shù)N=P×Q;及(m)通過將信息Y作為密鑰K2及模數(shù)N的函數(shù)而加密,來形成一加密的信息X。
16.如權(quán)利要求15的方法,其中所述步驟(m)包含將該信息Y加密來形成所述加密的信息X=Y(jié)K2(模數(shù)N)的步驟。
17.一種在一譯碼器將加密的信息X譯碼的方法,包含步驟(a)以一第一函數(shù)處理至少一第一組數(shù)值的一部分,以獲得對應(yīng)的第一組經(jīng)過處理的數(shù)值;(b)從所述第一組經(jīng)過處理的數(shù)值形成一P值;(c)從一第二組數(shù)值生成密鑰K1;并且(d)將加密信息X作為所述密鑰K1及所述P值的函數(shù)而進行譯碼;其中(i)所述加密信息X是在一編碼器上作為一密鑰K2的函數(shù)而被加密的,(ii)該密鑰K2在該編碼器上由包含一第三組數(shù)值的數(shù)值所生成,而且(iii)以對應(yīng)于所述步驟(a)中所述第一單向函數(shù)的一第一單向函數(shù)來處理至少所述第三組數(shù)值的一部分,以獲得滿足一數(shù)學(xué)約束的對應(yīng)的第三組經(jīng)過處理的數(shù)值。
18.如權(quán)利要求17的方法,其中至少所述第二組數(shù)值之一為隨機生成的。
19.如權(quán)利要求17的方法,其中所述密鑰K1為一Rivest-Shamir-Adleman(RSA)密鑰。
20.如權(quán)利要求17的方法,其中所述數(shù)學(xué)約束與橢圓曲線密碼系統(tǒng)相關(guān)。
21如權(quán)利要求17的方法,其中所述加密信息X從所述編碼器經(jīng)由寬帶通信網(wǎng)絡(luò)而傳送至包含所述譯碼器的譯碼器族群(decoder population)。
22.如權(quán)利要求17的方法,其中至少所述第一組數(shù)值之一為隨機生成的。
23.如權(quán)利要求17的方法,其中至少所述第三組數(shù)值之一為隨機生成的。
24.如權(quán)利要求17的方法,其中所述數(shù)學(xué)約束在所要的質(zhì)數(shù)性可信度下為質(zhì)數(shù)性的。
25.如權(quán)利要求17的方法,其中所述步驟(b)還包含進一步的步驟組合所述第一組經(jīng)過處理的數(shù)值來形成所述P值。
26.如權(quán)利要求17的方法,其中所述步驟(c)包含這樣的步驟以一單向函數(shù)來處理至少所述第二組數(shù)值的一部分,從而獲得對應(yīng)的第二組經(jīng)過處理的數(shù)值。
27.如權(quán)利要求26的方法,其中所述步驟(d)包含步驟組合所述第二組經(jīng)過處理的數(shù)值以形成密鑰K1。
28.如權(quán)利要求17的方法,還包含進一步的步驟(d)提供一第四組數(shù)值;(e)由一單向函數(shù)來處理至少所述第四組數(shù)值的一部分,從而獲得一對應(yīng)值Q;以及(f)形成一模數(shù)N=P×Q,用以將該加密的信息X加以譯碼。
29.如權(quán)利要求28的方法,其中所述第四組數(shù)值與所述第三組數(shù)值相同。
30.如權(quán)利要求28的方法,其中K2及K1的關(guān)系為K2=K1-1模數(shù)_,其中_=(P-1)×(Q-1)。
31.如權(quán)利要求28的方法,其中至少所述第四組數(shù)值的一部分為隨機生成的。
32.如權(quán)利要求28的方法,其中由一信息Y在編碼器根據(jù)X=Y(jié)K2(模數(shù)N)來形成所述加密的信息X,進一步包含步驟(g)使用所述密鑰K1及所述模數(shù)N,根據(jù)XK1(模數(shù)N)而將所述加密的信息X加以譯碼,從而獲得所述信息Y。
33.一種用于生成密鑰K2的編碼器方法,包含用于生成一第一組數(shù)值的裝置;用于以一第一單向函數(shù)來處理至少該第一組數(shù)值的一部分,從而獲得一對應(yīng)值P的裝置;用于測試該P值是否滿足一數(shù)學(xué)約束的裝置;及在所述P值確實滿足該數(shù)學(xué)約束時,作為該P值函數(shù)而形成所述密鑰K2的裝置;其中若該P值不滿足所述數(shù)學(xué)約束,則所述生成裝置生成一新的第一組數(shù)值,所述處理裝置處理該新的第一組數(shù)值,而且所述測試裝置測試該新的P值是否滿足所述數(shù)學(xué)約束,直至該P值滿足所述數(shù)學(xué)約束為止,而且所述形成裝置適于形成作為該P值函數(shù)的所述密鑰K2。
34.一種用于將加密信息X加以譯碼的譯碼器,包含用于生成一第一組數(shù)值的裝置以一第一單向函數(shù)來處理至少該第一組數(shù)值的一部份,從而獲得一對應(yīng)的第一組經(jīng)過處理的數(shù)值的裝置;用于由該第一組經(jīng)過處理的數(shù)值形成一P值的裝置;用于由一第二組數(shù)值生成一密鑰K1的裝置;及將所述加密信息X作為該密鑰K1及所述P值的函數(shù)而加以譯碼的裝置;其中(i)所述加密的信息X是在一編碼器上作為一密鑰K2的函數(shù)而被加密的,(ii)該密鑰K2在所述編碼器上由其一組數(shù)值而生成,及(iii)以一第一單向函數(shù)(該第一單向函數(shù)對應(yīng)于所述步驟(b)的所述第一單向函數(shù))處理至少所述密鑰K2的該組數(shù)值的一部分,從而獲得滿足一數(shù)學(xué)約束的對應(yīng)組的經(jīng)過處理的數(shù)值。
全文摘要
一種使用單向函數(shù)(325)并用數(shù)學(xué)約束測試所生成的密鑰(K2)。在編碼器(200,200′),例如在頭端器,或者制造處,將隨機位串細分(320)成數(shù)個片段(PRE-P1,…,PRE-P8,PRE-Q1,…PRE-Q8)可獲得預(yù)置仔數(shù)數(shù)據(jù),然后以單向函數(shù)(325)獨立處理各片段以獲得個別值(P,Q)。該數(shù)值(P,Q)受到例如質(zhì)數(shù)性(345)數(shù)學(xué)約束的測試。若該數(shù)值未通過測試,則重復(fù)步驟。若該數(shù)值通過測試,則形成模數(shù)N(350)及歐拉φ函數(shù)φ=(P-1)(Q-1)(355)。片段Pre-K1-1,…,Pre-K1-16也以單向函數(shù)進行處理而形成片段K1-1,…,K1-16,將其組合而形成K1值。用歐幾里德基本算法(360)來確定K1對φ是否為相對質(zhì)數(shù)。若否,則形成新的K1。若是的話,則以用于數(shù)據(jù)加密的歐幾里德擴展算法(365)形成一密鑰(K2)。在譯碼器(260,260′)(例如經(jīng)一芯片)提供預(yù)置仔數(shù)數(shù)據(jù),并使用如同在編碼器所用的相同單向函數(shù)(615)加以處理,從而獲得模數(shù)N以及將加密數(shù)據(jù)加以譯碼的密鑰K1。
文檔編號H04L9/30GK1402920SQ00816345
公開日2003年3月12日 申請日期2000年11月22日 優(yōu)先權(quán)日1999年11月29日
發(fā)明者E·J·史普朗克 申請人:通用儀器公司