專(zhuān)利名稱(chēng):加密通信系統(tǒng)中重發(fā)數(shù)據(jù)的解密的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信系統(tǒng),其中包括但不局限于加密通信系統(tǒng)。請(qǐng)參考Michael W.Bright等人在與本發(fā)明同一天申請(qǐng)的美國(guó)專(zhuān)利申請(qǐng)第08/650,071號(hào),題為“加密通信系統(tǒng)中重發(fā)數(shù)據(jù)的解密”,其受讓人也與本發(fā)明相同。
加密話(huà)音和數(shù)據(jù)系統(tǒng)是眾所周知的。許多這些系統(tǒng)通過(guò)共享用戶(hù)間的一部分或多部分信息,藉此只允許知道該信息的用戶(hù)正確解密消息,從而提供兩個(gè)或多個(gè)用戶(hù)間的保密通信、一般而言,利用密鑰生成器(KG)將話(huà)音和數(shù)據(jù)消息加密或解密。KG是一種非線(xiàn)性數(shù)學(xué)函數(shù),可給定用來(lái)定義該數(shù)學(xué)函數(shù)的初始矢量和密鑰參數(shù),可產(chǎn)生一種偽隨機(jī)序列。KG輸出一個(gè)與明文(未加密)XOR(如本技術(shù)領(lǐng)域熟知的,“異”或函數(shù))的密鑰流以產(chǎn)生密文。該密文被發(fā)射至接收機(jī)。接收機(jī)用一種密鑰流與接收到的密文XOR,從而從發(fā)射裝置處得出明文,該密鑰流由接收機(jī)根據(jù)接收到的信息來(lái)確定。
除了擁有相同的加密密鑰將加密消息解密之外,加密與解密的加密裝置必須完全一致,即,在同一時(shí)間以相同的方式從相同的(內(nèi)部)加密狀態(tài)執(zhí)行相同的密碼算法。在通信信道上發(fā)送同步(也稱(chēng)作sync)數(shù)據(jù),以使解密裝置的加密狀態(tài)與加密裝置的加密狀態(tài)一致,此后執(zhí)行對(duì)輸入消息的正確解密。當(dāng)在加密通信系統(tǒng)中使用加密同步數(shù)據(jù)時(shí),通常也將其稱(chēng)作消息指示碼(MI)。
可以以幾種操作模式中的一種來(lái)操作加密裝置。加密裝置所使用的操作模式定義了將接收裝置與發(fā)射裝置同步的不同方法。一種操作模式稱(chēng)作密碼反饋(OFB)。OFB要求發(fā)射和接收加密裝置采用相同的初始矢量(或MI)產(chǎn)生密鑰流。在發(fā)射機(jī),利用MI將KG初始化。執(zhí)行密碼算法來(lái)產(chǎn)生密鑰流。然后將該密鑰流反饋到KG的輸入端,以產(chǎn)生下一個(gè)密鑰流塊。同一個(gè)被反饋的密鑰流還被用于將數(shù)據(jù)加密,從而產(chǎn)生密文。發(fā)射機(jī)將MI和密文發(fā)射至接收機(jī)。在接收機(jī),利用一個(gè)被傳輸?shù)南⒅甘敬a將KG初始化。執(zhí)行加密算法以生成密鑰流。然后將該密鑰流反饋到KG的輸入端。同一個(gè)被反饋的密鑰流被用于將數(shù)據(jù)解密。通過(guò)將由密碼算法產(chǎn)生的密鑰流與待解密的數(shù)據(jù)XOR,該數(shù)據(jù)被解密。
第二種操作模式稱(chēng)作計(jì)數(shù)器尋址(CA)或線(xiàn)性回歸。CA所采用的初始同步方法可以與OFB的相同。CA使用一個(gè)最大長(zhǎng)度線(xiàn)性反饋移位寄存器(LFSR)作為加密裝置(KG)的輸入。CA要求產(chǎn)生密鑰流的發(fā)射和接收加密裝置對(duì)其LFSR采用相同的初始矢量(或MI)。在發(fā)射機(jī),利用MI將LFSR初始化,并執(zhí)行一個(gè)生成多項(xiàng)式。LFSR的輸出被反饋進(jìn)密碼算法的輸入端。執(zhí)行該密碼算法以產(chǎn)生密鑰流。然后,將未加密的明文與密鑰流XOR,以產(chǎn)生密文。發(fā)射機(jī)將MI和密文發(fā)射至接收機(jī)。在接收機(jī),利用被傳輸?shù)腗I將線(xiàn)性反饋移位寄存器(LFSR)初始化。LFSR的輸出被反饋進(jìn)密碼算法的輸入寄存器,以產(chǎn)生一個(gè)密鑰流。然后,將該密鑰流和密文XOR,用以將數(shù)據(jù)解密。
在許多系統(tǒng)中需要擁有一種與加密數(shù)據(jù)和非加密數(shù)據(jù)均一致的數(shù)據(jù)吞吐量等級(jí)。然而在接收數(shù)據(jù)時(shí),錯(cuò)誤地接收數(shù)據(jù)并非是罕見(jiàn)的。眾所周知在許多通信系統(tǒng)中,對(duì)于錯(cuò)誤接收到的任何數(shù)據(jù)塊要請(qǐng)求重發(fā)。這種數(shù)據(jù)重發(fā)在加密數(shù)據(jù)系統(tǒng)中會(huì)導(dǎo)致一種問(wèn)題。由于加密過(guò)程的同步性質(zhì),當(dāng)對(duì)一個(gè)選擇的重試塊N進(jìn)行解密時(shí),需要將N-1個(gè)塊解密。這一屬性極大地降低了加密數(shù)據(jù)系統(tǒng)中的吞吐量,導(dǎo)致了加密與非加密數(shù)據(jù)之間吞吐量的懸殊差異。普通的系統(tǒng)實(shí)施過(guò)程包括在將消息解密之前等待,直至所有的塊都被正確接收為止。這種方法增加了接收上一塊之后的處理時(shí)延。另一種方法是,當(dāng)對(duì)一個(gè)選擇的重試塊N進(jìn)行解密時(shí),將先前的N-1個(gè)塊解密。此方法需要多花費(fèi)(N-1)倍的解密時(shí)間來(lái)將選擇的重試解密。本質(zhì)上,為了將一個(gè)塊解密,此方法可能需要將一個(gè)完整的已被解密過(guò)的消息重新解密。
另一種解決重發(fā)解密問(wèn)題的方案是,為每個(gè)數(shù)據(jù)塊發(fā)射同步信息,或MI。這種解決方案增加了發(fā)射及接收消息所花費(fèi)的時(shí)間和能量。此后重新發(fā)射的MI還有可能被錯(cuò)誤地接收,而需要繼續(xù)重新發(fā)射。
因此,需要一種方法,在接收單元接收到重發(fā)的一些塊之后將數(shù)據(jù)解密,而不會(huì)為解密過(guò)程增加不必要的時(shí)延。此外,這種方法應(yīng)當(dāng)為加密和未加密數(shù)據(jù)提供一致的數(shù)據(jù)吞吐量等級(jí)。
圖1為根據(jù)本發(fā)明的接收消息的方框圖。
圖2的流程圖顯示了一種根據(jù)本發(fā)明當(dāng)重新發(fā)射一個(gè)或多個(gè)消息塊時(shí),將消息隨后解密的方法。
圖3和圖4的流程圖顯示了一種根據(jù)本發(fā)明通過(guò)保存從一條消息的初始發(fā)射中產(chǎn)生的密鑰流,將消息隨后解密的方法。
圖5的流程圖顯示了一種根據(jù)本發(fā)明通過(guò)周期性保存加密狀態(tài),將消息隨后解密的方法。
圖6的流程圖顯示了一種根據(jù)本發(fā)明通過(guò)計(jì)算加密狀態(tài),將消息隨后解密的方法。
下文描述了一種將加密數(shù)據(jù)的重發(fā)解密的方法,其中該重發(fā)不包括完整消息的發(fā)射。根據(jù)對(duì)包含多個(gè)塊的加密數(shù)據(jù)消息的初始接收,將接收塊確定為有誤碼的或無(wú)誤碼的。根據(jù)存儲(chǔ)空間和加密時(shí)間,為整個(gè)消息或者該消息的一部分產(chǎn)生并/或存儲(chǔ)一個(gè)密鑰流或加密狀態(tài)。執(zhí)行一次重發(fā)錯(cuò)誤接收塊的請(qǐng)求。當(dāng)無(wú)誤碼地接收到重發(fā)塊時(shí),從存儲(chǔ)器中取出或者從加密數(shù)據(jù)消息的初始接收中存儲(chǔ)的數(shù)據(jù)中產(chǎn)生密鑰流。這樣,無(wú)需為了將整個(gè)消息解密而一直等到整個(gè)消息都被接收為止,或者將數(shù)據(jù)重新解密。由此,實(shí)現(xiàn)了將消息的選定部分解密,而避免了不必要的時(shí)延或者冗余工作。
在一種實(shí)施例中,本方法通常包括下述步驟,即,接收一條含有一個(gè)消息指示碼和多個(gè)加密塊的消息。當(dāng)多個(gè)加密塊中的至少一個(gè)被錯(cuò)誤接收時(shí),發(fā)射一個(gè)第二消息,該第二消息請(qǐng)求將至少一個(gè)塊重發(fā)。在正確接收到至少一個(gè)塊的重發(fā)之后,從消息指示碼中產(chǎn)生一個(gè)密鑰流,并利用該密鑰流將至少一個(gè)塊解密。
此外,當(dāng)消息指示碼包括一個(gè)初始化矢量時(shí),通過(guò)執(zhí)行一種工作于重復(fù)N乘B次操作的輸出反饋模式下的密碼算法,來(lái)產(chǎn)生一個(gè)密鑰流。當(dāng)消息指示碼包括一個(gè)線(xiàn)性反饋移位寄存器矢量時(shí),通過(guò)執(zhí)行一種工作于重復(fù)N乘B次操作的計(jì)數(shù)器尋址模式下的密碼算法,來(lái)產(chǎn)生一個(gè)密鑰流。N和B是用于一個(gè)N塊消息的正整數(shù),其中B表示數(shù)據(jù)的比特?cái)?shù)。
圖1所示為接收消息的方框圖,其中包括每塊中接收到的誤碼數(shù)。接收消息100通常包括一個(gè)消息指示碼(MI)101和多個(gè)加密塊103至111。利用MI 101將加密裝置(稱(chēng)為密鑰產(chǎn)生器或KG)的內(nèi)部狀態(tài)同步。塊1 103的接收含有0個(gè)誤碼。塊2 105的接收含有1個(gè)誤碼。塊3 107的接收無(wú)誤碼。塊4 109的接收含有2個(gè)誤碼。塊X 111的接收含有零個(gè)誤碼,其中X是一個(gè)整數(shù),表示在消息100中有多少個(gè)加密塊被接收。在請(qǐng)求重新發(fā)射錯(cuò)誤碼塊的系統(tǒng)中,為錯(cuò)誤碼塊發(fā)射一個(gè)重發(fā)請(qǐng)求,在此情況下是為塊2 105和塊4 109,其中假設(shè)無(wú)誤碼地接收了塊4和塊X之間的所有塊。
圖2的流程圖顯示了一種當(dāng)向通信單元重發(fā)一個(gè)或多個(gè)消息塊時(shí)將消息解密的方法。當(dāng)利用加密的輸出反饋或計(jì)數(shù)器尋址模式將消息100加密時(shí),執(zhí)行本方法。在201步中,接收到一條消息100,該消息包括一個(gè)消息指示碼101和多個(gè)加密塊103至111。在203步,檢查每個(gè)消息塊以確定該塊是否被錯(cuò)誤接收。在本技術(shù)領(lǐng)域中,誤碼檢測(cè)是一種眾所周知的功能,其中采用了多種技術(shù),例如循環(huán)冗余檢測(cè)(CRC),以證實(shí)數(shù)據(jù)的接收有無(wú)誤碼。如果在203步中錯(cuò)誤地接收到一個(gè)塊,在205步中將該塊標(biāo)記為錯(cuò)誤接收,程序繼續(xù)到211步。如果在203步中,無(wú)誤碼地接收到該塊,程序繼續(xù)到207步,在這里確定是否將正確接收的塊立刻解密,即,在請(qǐng)求重發(fā)錯(cuò)誤接收塊之前或者在接收到錯(cuò)誤接收塊的無(wú)誤碼重發(fā)之前。如果在207步中立即執(zhí)行解密,程序繼續(xù)到209步,在這里從MI 101中產(chǎn)生一個(gè)密鑰流,利用從MI 101中產(chǎn)生的密鑰流將正確接收到的塊解密,程序繼續(xù)到211步。
在211步中,如果當(dāng)前塊是消息中的最后一塊,則程序繼續(xù)到213步,否則程序繼續(xù)到203步。在215步中,該通信單元請(qǐng)求重發(fā)每個(gè)錯(cuò)誤接收塊。如果在217步中該塊的重發(fā)(RE-TX)的接收中含有一個(gè)或多個(gè)誤碼,程序繼續(xù)到215步。如果在217步中該塊的重發(fā)(RE-TX)被無(wú)誤碼地接收,程序繼續(xù)到219步,生成密鑰流異解密這些數(shù)據(jù)塊。在221步中,按需重復(fù)215步,217步和/或217步。如果需要將更多個(gè)塊的重發(fā)解密,該程序從217步開(kāi)始重復(fù)。在步驟207中不直接解密,在219步中將所有的塊解密。如果在207步中立即執(zhí)行解密,在219步中將所有在先前沒(méi)有被解密的所有塊解密,即,將那些被重新發(fā)射給該通信單元的塊解密。
另一種可選擇的方法包括下述步驟,即,接收一條含有一個(gè)消息指示碼和多個(gè)加密塊的消息。從消息指示碼中產(chǎn)生一個(gè)密鑰流,用以將多個(gè)加密塊解密。當(dāng)錯(cuò)誤地接收到多個(gè)加密塊中的至少一個(gè)塊時(shí),發(fā)射一個(gè)第二消息,該第二消息請(qǐng)求重發(fā)至少一個(gè)塊。當(dāng)正確接收到至少一個(gè)塊的重發(fā)之后,利用密鑰流將至少一個(gè)塊解密。
圖3的流程圖顯示了通過(guò)保存從消息的初始發(fā)射中產(chǎn)生的密鑰流,將消息隨后解密的另一種可選擇方法。當(dāng)利用圖3的方法時(shí),立即將正確接收到的塊解密,而對(duì)于錯(cuò)誤接收到的塊,在正確接收到其數(shù)據(jù)的重發(fā)之后,利用從初始發(fā)射的消息接收到的信息中產(chǎn)生的密鑰流,將其解密。在301步中,接收到一個(gè)消息100,其中含有一個(gè)MI 101和多個(gè)加密塊103至111。在303步中,如上所述,根據(jù)MI 101為整個(gè)消息100產(chǎn)生一個(gè)密鑰流,并按需將其暫時(shí)地或永久地存儲(chǔ)。在305步中,將塊計(jì)數(shù)器N初始化,即,設(shè)置N為1。在307步中,檢索塊N。在309步中,確定塊N的接收是否有誤。如果塊N被錯(cuò)誤接收,程序繼續(xù)到311步,在這里將塊N標(biāo)記作錯(cuò)誤接收,且程序繼續(xù)到315步。如果在309步中,塊N被正確接收,程序繼續(xù)到313步,在這里將塊N解密,并保存其結(jié)果。程序繼續(xù)到315步,在這里將塊計(jì)數(shù)器加1,即,N=N+1。如果在317步中,塊N不是消息100的最后一塊,程序繼續(xù)到307步。如果在317步中,塊N是消息100的最后一塊,則程序繼續(xù)到319步。
在319步中,如果在309步中錯(cuò)誤地接收到任一塊,則程序繼續(xù)到321步,否則程序終止。在321步中,該通信單元請(qǐng)求將任一錯(cuò)誤接收到的塊重發(fā)(RE-TX)。如果在323步中這些塊的重發(fā)(RE-TX)的接收中含有一個(gè)或多個(gè)誤碼,程序繼續(xù)到321步。當(dāng)在323步中正確接收到任一重試塊的重發(fā)(RE-TX),程序繼續(xù)到325步,在這里檢索重試塊。重試塊是一個(gè)其數(shù)據(jù)被請(qǐng)求重發(fā)的塊,其數(shù)據(jù)塊的重發(fā)被正確接收。在327步中,利用在303步中產(chǎn)生的密鑰流將該重試塊解密。該重試塊包括源自初始發(fā)射的塊號(hào),該號(hào)碼被用于確定需要密鑰流的哪一部分來(lái)將該重試塊解密。例如,如果重試塊為塊9,且每個(gè)塊包含200比特的數(shù)據(jù),則在重試塊,塊9,之前有1600比特的數(shù)據(jù)。用以將解密塊9解密的密鑰流為該密鑰流中從用以將塊1的第一比特解密的密鑰流第一比特開(kāi)始的1600比特。如果在329步中有一個(gè)或多個(gè)重試塊需要解密,程序繼續(xù)到325步,否則程序繼續(xù)到331步。如果在331步中,已正確接收到消息100的所有塊,則程序終止,否則程序繼續(xù)到321步。
由于密鑰流已經(jīng)產(chǎn)生,解密步驟313和327中僅包括下述步驟,即,利用產(chǎn)生的/存儲(chǔ)的密鑰流與接收到的密文XOR,以產(chǎn)生在最初被發(fā)射裝置加密的明文(未加密)。由于XOR過(guò)程可以用微處理器,數(shù)字信號(hào)處理器,或者其它用來(lái)實(shí)現(xiàn)圖2至圖6的流程圖的裝置來(lái)實(shí)現(xiàn),因此接收到的密文無(wú)需被輸入給KG用以解密。在這一級(jí)上,由于KG的運(yùn)行速度(通常為6至50kHz)較微處理器(其運(yùn)行速度超過(guò)1MHz)相比慢很多,通過(guò)避免使用KG,可節(jié)省大量的時(shí)間。
圖4的流程圖顯示了通過(guò)保存從消息的初始發(fā)射中產(chǎn)生的密鑰流,將消息隨后解密的一種特殊方法。當(dāng)使用圖4的方法時(shí),在正確接收到其數(shù)據(jù)的重發(fā)之后,利用從初始發(fā)射的消息接收到的信息中產(chǎn)生的密鑰流,將整個(gè)消息解密。在401步中,接收到一個(gè)消息100,其中包括一個(gè)MI 101和多個(gè)加密塊103至111。在403步中,如上所述,從MI 101中為整個(gè)消息100產(chǎn)生一個(gè)密鑰流,并按需將其暫時(shí)地或永久地存儲(chǔ)。在405步中,將塊計(jì)數(shù)器N初始化,即,設(shè)置N為1。在407步中,檢索塊N。在409步中,確定塊N的接收是否有誤。如果塊N被錯(cuò)誤接收,程序繼續(xù)到411步,在這里將塊N標(biāo)記作錯(cuò)誤接收,且程序繼續(xù)到413步。如果在409步中,塊N被正確接收,程序繼續(xù)到413步,在這里將塊計(jì)數(shù)器N加1,即,N=N+1。如果在415步中,塊N不是消息100的最后一塊,程序繼續(xù)到407步。如果在415步中,塊N是消息100的最后一塊,則程序繼續(xù)到417步。
在417步中,如果在409步中錯(cuò)誤地接收到任一塊,則程序繼續(xù)到419步,否則程序終止。在419步中,該通信單元請(qǐng)求將任一錯(cuò)誤接收到的塊重發(fā)(RE-TX)。如果在421步中這些塊的重發(fā)(RE-TX)的接收中含有一個(gè)或多個(gè)誤碼,程序繼續(xù)到419步。一旦在421步中正確接收到所有這種塊的重發(fā)(RE-TX),程序繼續(xù)到423步,在這里利用在403步中產(chǎn)生的密鑰流將整個(gè)消息100解密。由于密鑰流已經(jīng)產(chǎn)生,解密423步中僅包括下述組合步驟,即,利用產(chǎn)生的/存儲(chǔ)的密鑰流與接收到的密文XOR,用以產(chǎn)生在最初被發(fā)射裝置加密的明文(未加密)。
這樣,密鑰流被保存并用以在一次重試之后接收到部分消息時(shí),將該數(shù)據(jù)消息的部分或者全部解密,而無(wú)需重新產(chǎn)生或重發(fā)該密鑰流,也無(wú)需等到整個(gè)消息都被正確接收為止才能產(chǎn)生密鑰流并將整個(gè)消息解密。類(lèi)似地,無(wú)需將整個(gè)消息重新解密或者將該消息的所有先前塊都解密,就可實(shí)現(xiàn)對(duì)選擇性重試的解密。
另一種可選擇方法包括下述步驟,即,接收一個(gè)含有消息指示碼和多個(gè)加密塊的消息。對(duì)于多個(gè)加密塊的每K塊就存儲(chǔ)一次加密狀態(tài),其中K為正整數(shù)。當(dāng)錯(cuò)誤接收到多個(gè)加密塊中的至少一個(gè)塊時(shí),發(fā)射一個(gè)第二消息,以請(qǐng)求對(duì)至少一塊重發(fā)。在正確接收到至少一塊的重發(fā)之后,從存儲(chǔ)的加密狀態(tài)中產(chǎn)生一個(gè)密鑰流,并利用密鑰流將至少一塊解密。
圖5的流程圖顯示了通過(guò)周期性保存加密狀態(tài),將消息隨后解密的另一種可選擇方法。該流程圖中所示的方法在存儲(chǔ)空間與解密時(shí)間之間提供了一種折衷。本方法每K塊保存其加密狀態(tài),其中需要兩個(gè)緩存器N個(gè)塊的一個(gè)緩存器用以保存這些接收塊,而第二個(gè)緩存器用以存N儲(chǔ)除以K個(gè)加密狀態(tài)。本方法周期性地保存加密狀態(tài)。對(duì)于消息中包含重發(fā)塊的部分,利用存儲(chǔ)的加密狀態(tài)將KG重新初始化。參數(shù)K在解密時(shí)間與存儲(chǔ)空間之間提供了一種折衷。K越大,解密時(shí)間可能越長(zhǎng),但需要的存儲(chǔ)空間越小。當(dāng)采用圖5的方法時(shí),立即將正確接收到的塊解密,并在正確接收到其數(shù)據(jù)的重發(fā)之后,將這些錯(cuò)誤接收塊解密。還可選擇,在正確接收到所有重試塊之后,即當(dāng)為短消息時(shí),可將所有塊一次性保存并解密。
在501步中,接收到一個(gè)含有一個(gè)MI 101和多個(gè)加密塊103至111的消息100。在503步中,設(shè)置MI 101作為KG的加密狀態(tài)。一般而言,加密狀態(tài)是KG在其產(chǎn)生一個(gè)偽隨機(jī)序列,稱(chēng)為密鑰流過(guò)程中的內(nèi)部點(diǎn)。加密狀態(tài)包括所有需要的信息,用以將兩個(gè)不同的KG放在數(shù)據(jù)流中的相同位置,從而解密KG可將加密KG已加密的數(shù)據(jù)正確解密。OFB操作模式的加密狀態(tài)為KG狀態(tài),它包括在先前解密塊的密鑰流中最后一些比特的數(shù)目,需要用這些比特將KG初始化,以實(shí)現(xiàn)后續(xù)塊的解密。在優(yōu)選實(shí)施例中,采用64比特。CA操作模式的加密狀態(tài)為L(zhǎng)FSR狀態(tài),它是LFSR中的數(shù)據(jù),需要用它來(lái)將LFSR正確初始化,以實(shí)現(xiàn)后續(xù)塊的解密。在優(yōu)選實(shí)施例中,LFSR中的64比特被用作加密狀態(tài)。
在505步中,將塊計(jì)數(shù)器N初始化,即,設(shè)置N為1。在507步中,檢索塊N。在509步中,通過(guò)將塊N的數(shù)據(jù)反饋進(jìn)KG,從而將塊N解密,即,正常解密。在511步中,確定塊N的接收是否有誤。如果塊N被錯(cuò)誤接收,程序繼續(xù)到513步,在這里將塊N標(biāo)記作錯(cuò)誤接收,且在515步中丟棄該解密塊N。如果在511步中,塊N被正確接收,程序繼續(xù)到517步,在這里存儲(chǔ)塊N的解密結(jié)果。如果在519步中,N對(duì)K取模為0,程序繼續(xù)到521步,在這里保存將塊N解密后的加密狀態(tài)。塊N解密后的KG狀態(tài)為塊N+1解密的初始狀態(tài)。對(duì)于OFB操作模式,存儲(chǔ)KG狀態(tài)。對(duì)于CA操作模式,存儲(chǔ)LFSR狀態(tài)。如果在519步中N對(duì)K取模不等于零,程序繼續(xù)到523步。在523步中,將塊計(jì)數(shù)器加1,即N=N+1。如果在525步中塊N不是消息100的最后一塊,程序繼續(xù)到507步。如果在525步中,塊N是消息100的最后一塊,程序繼續(xù)到527步。
在527步中,如果在511步錯(cuò)誤地接收到任一塊,程序繼續(xù)到529步,否則程序終止。在529步中,該通信單元請(qǐng)求對(duì)任一錯(cuò)誤接收塊重發(fā)(RE-TX)。如果在531步中這些塊的重發(fā)(RE-TX)的接收含有一個(gè)或多個(gè)誤碼,程序繼續(xù)到529步。當(dāng)在531步中所有重試塊的重發(fā)都被正確接收,程序繼續(xù)到533步,在這里檢索重發(fā)塊。在535步中,從重試塊的塊號(hào)碼之前最新存儲(chǔ)的值中檢索加密狀態(tài)。換句話(huà)說(shuō),如果在每隔K塊之后存儲(chǔ)KG狀態(tài),應(yīng)該被檢索用以將塊K解密的KG狀態(tài)號(hào)就是被存儲(chǔ)在塊號(hào)碼之后的KG狀態(tài),其形式如下K*{integer part(N-1)/K}(integer part整數(shù)部分)例如,如果重試塊為塊30,且K=4,在這里塊28和塊30已被保存,這樣從塊4*{integer part(30-1)/4}=或4*7=28中得出將被檢索用以將塊30解密的加密狀態(tài),即,塊28的加密狀態(tài)被檢索。在5 37步,將535步中檢索的加密狀態(tài)輸入給KG,且以正常方式(即,將接收到的密文輸入進(jìn)KG)將最多K個(gè)塊解密,在檢索狀態(tài)塊之后開(kāi)始,以重試塊中止。通過(guò)保存每個(gè)第K塊,在最差情況下被解密的塊數(shù)目為K。而被解密的實(shí)際塊數(shù)目為K,如果N對(duì)K的模為0;
N對(duì)K的模,其它情況下。如果在539步中有一個(gè)或多個(gè)重試塊需要解密,程序繼續(xù)到533步,否則程序繼續(xù)到541步。如果在541步中消息100的所有塊都已被正確解密,程序終止,否則程序繼續(xù)到529步。下列表格顯示了對(duì)于K=3的系統(tǒng)所涉及的信息,其中檢索狀態(tài)為將塊N解密之后存儲(chǔ)的加密狀態(tài)。
N對(duì)K的模 檢索狀態(tài) 需要解密的塊數(shù)11 0(MI) 122 0(MI) 230 0(MI) 341 3 152 3 260 3 371 6 182 6 290 6 3另一種可選擇方法包括下述步驟,即,接收一個(gè)含有消息指示碼和多個(gè)解密塊的消息,特別是當(dāng)使用一種操作在CA模式下的加密裝置時(shí)。該消息指示碼被存儲(chǔ)。當(dāng)錯(cuò)誤接收到多個(gè)解密塊中的至少一個(gè)塊時(shí),發(fā)射一個(gè)第二消息,該第二消息請(qǐng)求對(duì)至少一個(gè)塊重發(fā)。在正確接收到至少一個(gè)塊的重發(fā)之后,從存儲(chǔ)的消息指示碼中計(jì)算加密狀態(tài),從該加密狀態(tài)中產(chǎn)生密鑰流,并利用密鑰流將至少一個(gè)塊解密。
圖6的流程圖顯示了通過(guò)計(jì)算加密狀態(tài)將消息隨后解密的另一種方法。當(dāng)采用圖6的方法時(shí),立即將正確接收到的塊解密,而對(duì)于接收有誤的塊,在正確接收到其數(shù)據(jù)的重發(fā)之后,將其解密。選擇性地,在正確接收到所有的重試塊之后,即,在短消息情況下,可同時(shí)將所有塊保存并解密。
在601步中,接收到的消息100中含有一個(gè)MI 101和多個(gè)加密塊103至111。在603步中,按照?qǐng)D5中503步的有關(guān)描述,將MI 101設(shè)置作KG的加密狀態(tài)。
在605步中,將塊計(jì)數(shù)器N初始化,即,設(shè)置N為1。在607步中,檢索塊N。在609步中,通過(guò)將塊N的數(shù)據(jù)反饋進(jìn)KG,從而將塊N解密,即,正常解密。在611步中,確定塊N的接收是否有誤。如果塊N被錯(cuò)誤接收,程序繼續(xù)到613步,在這里將塊N標(biāo)記作錯(cuò)誤接收,且在615步中丟棄該解密塊N。選擇性地,可以將609步的解密功能結(jié)合進(jìn)617步,在此情況下刪除609步(在607步之后,程序繼續(xù)到611步)。如果在611步中,塊N被正確接收,程序繼續(xù)到617步,在這里存儲(chǔ)塊N的解密結(jié)果。在619步中,將塊計(jì)數(shù)器N加1,即N=N+1。如果在621步中塊N不是消息100的最后一塊,程序繼續(xù)到607步。如果在621步中,塊N是消息100的最后一塊,程序繼續(xù)到623步。
在623步中,如果在611步錯(cuò)誤地接收到任一塊,程序繼續(xù)到625步,否則程序終止。在625步中,該通信單元請(qǐng)求對(duì)任一錯(cuò)誤接收塊重發(fā)(RE-TX)。如果在627步中這些塊的重發(fā)(RE-TX)的接收中含有一個(gè)或多個(gè)誤碼,程序繼續(xù)到625步。當(dāng)在627步中所有重試塊的重發(fā)都被正確接收,程序繼續(xù)到629步,在這里檢索重發(fā)塊。在631步中,計(jì)算加密狀態(tài)。對(duì)于CA操作模式,加密狀態(tài)為L(zhǎng)FSR狀態(tài),通過(guò)使用MI,LFSR的生成多項(xiàng)式,和塊號(hào)碼來(lái)計(jì)算該狀態(tài)。用于將塊N解密的LFSR狀態(tài)是在將塊N-1解密時(shí)存儲(chǔ)的初始狀態(tài)。需要用塊N之前的比特?cái)?shù)來(lái)確定LFSR狀態(tài)。如果每個(gè)塊有相同的比特?cái)?shù),B,則N*B(N乘B)是在塊N之前接收到的全部比特?cái)?shù),并反映了在MI和塊N之間執(zhí)行的LFSR生成多項(xiàng)式的重復(fù)(iterations)次數(shù)。LFSR是如下方程式的余數(shù)xN*B÷generator polynomial(生成多項(xiàng)式)例如,如果一個(gè)64比特LFSR的生成多項(xiàng)式為x62+x46+x38+x27+x15+x0則方程式為xN*B÷(x62+x46+x38+x27+x15+x0)該多項(xiàng)式商的一種余數(shù)為例如x63+x59+x51+x46+x40+x35+x31+x26+x19+x14+x8+x0這就是塊N的LFSR狀態(tài)。
在633步中,將加密狀態(tài)存儲(chǔ)在KG中。在635步,以正常方式(即,將接收到的密文輸入進(jìn)KG)將重試塊解密。如果在637步中有一個(gè)或多個(gè)重試塊需要解密,程序繼續(xù)到629步,否則程序繼續(xù)到639步。如果在639步中消息100的所有塊都已被正確解密,程序終止,否則程序繼續(xù)到625步。
在現(xiàn)有的加密系統(tǒng)中,通過(guò)將一個(gè)適合于加密操作模式的加密數(shù)據(jù)流輸入給KG,由其產(chǎn)生一個(gè)密鑰流,并通過(guò)將密鑰流與加密消息混合(對(duì)于數(shù)字信息通常為XOR)以產(chǎn)生明文(未加密電文),從而立即將加密消息解密。通常的KG以一種逐個(gè)比特(或逐個(gè)符號(hào))的方式將消息解密,即,KG中加密數(shù)據(jù)的一個(gè)比特(符號(hào))產(chǎn)生密鑰流的一個(gè)比特,KG將該密鑰流與輸入比特(符號(hào))相混合,從而產(chǎn)生解密數(shù)據(jù)輸出的一個(gè)比特(符號(hào))。該混合步驟可在一個(gè)運(yùn)行速度為例如1MHz的微處理器中簡(jiǎn)便快捷地實(shí)現(xiàn)。然而,密鑰流的產(chǎn)生受到KG的工作頻率(通常為6至50kHz)的限制。這樣,產(chǎn)生密鑰流與加密消息解密的實(shí)際時(shí)間在本質(zhì)上都會(huì)受到KG的最高工作頻率的限制。上述方法及其替代方式通過(guò)在需要重發(fā)數(shù)據(jù)時(shí),存儲(chǔ)并/或產(chǎn)生適當(dāng)?shù)男畔?,使整個(gè)消息的接收和解密的時(shí)間達(dá)到最小化,從而較現(xiàn)有方法節(jié)省了時(shí)間。增加KG的時(shí)鐘速度則是提高吞吐量的可行性方案。然而,在某些系統(tǒng)中功率消耗是一個(gè)值得關(guān)注的問(wèn)題,則這種解決方案會(huì)導(dǎo)致其實(shí)際運(yùn)作的不可行性,因?yàn)镵G所需的功率是與其時(shí)鐘速度成正比的。
權(quán)利要求
1.一種包括下列步驟的方法接收一個(gè)包含消息指示碼和多個(gè)加密塊的消息;當(dāng)錯(cuò)誤接收到多個(gè)加密塊中的至少一個(gè)塊時(shí),發(fā)射一個(gè)第二消息以請(qǐng)求重發(fā)至少一個(gè)塊;在正確接收到至少一塊的重發(fā)之后,從消息指示碼中產(chǎn)生一個(gè)密鑰流,并利用密鑰流將至少一塊解密。
2.根據(jù)權(quán)利要求1的方法,其中消息指示碼包括一個(gè)初始化矢量,還包括下述步驟,即,通過(guò)對(duì)一個(gè)N塊的消息執(zhí)行一種工作于重復(fù)N乘B次操作的輸出反饋模式下的加密算法,來(lái)產(chǎn)生一個(gè)密鑰流,其中N和B為正整數(shù)。
3.根據(jù)權(quán)利要求1的方法,其中消息指示碼包括一個(gè)線(xiàn)性反饋移位寄存器矢量,通過(guò)對(duì)一個(gè)N塊的消息執(zhí)行一種工作于重復(fù)N乘B次操作的計(jì)數(shù)器尋址模式下的加密算法,來(lái)產(chǎn)生一個(gè)密鑰流,其中N和B為正整數(shù)。
4.一種包括下列步驟的方法接收一個(gè)包含消息指示碼和多個(gè)加密塊的消息;從消息指示碼中產(chǎn)生一個(gè)密鑰流,用以將多個(gè)加密塊解密;當(dāng)錯(cuò)誤接收到多個(gè)加密塊中的至少一個(gè)塊時(shí),發(fā)射一個(gè)第二消息,以請(qǐng)求重發(fā)至少一塊;在正確接收到至少一塊的重發(fā)之后,利用密鑰流將至少一塊解密。
5.根據(jù)權(quán)利要求4的方法,其中消息指示碼包括一個(gè)初始化矢量,還包括下述步驟,即,通過(guò)對(duì)一個(gè)N塊的消息執(zhí)行一種工作于重復(fù)N乘B次操作的輸出反饋模式下的加密算法,來(lái)產(chǎn)生一個(gè)密鑰流,其中N和B為正整數(shù)。
6.根據(jù)權(quán)利要求4的方法,其中消息指示碼包括一個(gè)線(xiàn)性反饋移位寄存器矢量,通過(guò)對(duì)一個(gè)N塊的消息執(zhí)行一種工作于重復(fù)N乘B次操作的反尋址模式下的加密算法,來(lái)產(chǎn)生一個(gè)密鑰流,其中N和B為正整數(shù)。
7.根據(jù)一種包括下列步驟的方法接收一個(gè)包含消息指示碼和多個(gè)加密塊的消息;對(duì)于多個(gè)加密塊,每第K塊就存儲(chǔ)一次加密狀態(tài),其中K為一個(gè)正整數(shù);當(dāng)錯(cuò)誤接收到多個(gè)加密塊中的至少一塊時(shí),發(fā)射一個(gè)第二消息,以請(qǐng)求重發(fā)至少一塊;在正確接收到至少一塊的重發(fā)之后,a)從存儲(chǔ)的加密狀態(tài)中產(chǎn)生一個(gè)密鑰流;b)利用密鑰流將至少一塊解密。
8.根據(jù)權(quán)利要求7的方法,其中消息指示碼包括一個(gè)初始化矢量,還包括下述步驟,即,通過(guò)對(duì)一個(gè)N塊的消息執(zhí)行一種工作于重復(fù)N乘B次操作的輸出反饋模式下的加密算法,來(lái)產(chǎn)生一個(gè)密鑰流,其中N和B為正整數(shù)。
9.一種包括下述步驟的方法接收一個(gè)包含消息指示碼和多個(gè)加密塊的消息;存儲(chǔ)消息指示碼;當(dāng)錯(cuò)誤接收到多個(gè)加密塊中的至少一塊時(shí),發(fā)射一個(gè)第二消息,以請(qǐng)求重發(fā)至少一塊;在正確接收到至少一塊的重發(fā)之后,a)從存儲(chǔ)的消息指示碼中計(jì)算出加密狀態(tài);b)從該加密狀態(tài)中產(chǎn)生一個(gè)密鑰流;c)利用密鑰流將至少一塊解密。
10.根據(jù)權(quán)利要求9的方法,還包括下述步驟,即,當(dāng)正確接收到多個(gè)加密塊中的至少一塊時(shí),利用密鑰流將第一塊解密。
全文摘要
本方法通常包括下述步驟,即,接收(201)一個(gè)包含一個(gè)消息指示碼(101)和多個(gè)加密塊(103至111)的消息(100)。當(dāng)錯(cuò)誤接收到多個(gè)加密塊中的至少一塊時(shí),發(fā)射(215)一個(gè)第二消息,該第二消息請(qǐng)求重發(fā)至少一塊。在正確接收到至少一塊的重發(fā)之后,從消息指示碼中產(chǎn)生(219)一個(gè)密鑰流,并利用該密鑰流將至少一塊解密。
文檔編號(hào)H04L9/00GK1194744SQ97190550
公開(kāi)日1998年9月30日 申請(qǐng)日期1997年4月23日 優(yōu)先權(quán)日1996年5月17日
發(fā)明者卡文·G·杜波斯坦, 斯考特·J·帕派斯, 米切爾·W·布萊特 申請(qǐng)人:摩托羅拉公司