專利名稱:用于數(shù)字蜂窩式通信的加密系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)字蜂窩式通信系統(tǒng),特別是涉及用于這類系統(tǒng)中數(shù)據(jù)通信的加密的方法和裝置。
蜂窩式無線電通信也許是全世界電信業(yè)中發(fā)展最快的領(lǐng)域。盡管蜂窩式無線電通信系統(tǒng)只占目前在工作的電信系統(tǒng)的一小部分,但人們普遍相信,該部分將會穩(wěn)定地增長,并在不遠(yuǎn)的將來代表整個電信市場的主要成份,這一信念基于如下事實,即傳統(tǒng)的電話通信網(wǎng)絡(luò)有著主要依賴于連接網(wǎng)絡(luò)內(nèi)各個用戶的有線技術(shù)的固有局限性。例如,標(biāo)準(zhǔn)的家用或辦公室電話由具有某一最大長度的電話電纜連接到墻上的接口,或電話插座。同樣,電話接口也是由接線連接到電話公司的當(dāng)?shù)亟粨Q室。這樣,電話用戶的移動就不僅受到電話電纜長度的限制,而且受到得到某個工作的電話接口,即已經(jīng)與當(dāng)?shù)亟粨Q室連接的接口的可能性的限制,確實,蜂窩式無線電系統(tǒng)的產(chǎn)生在很大程度上可以說是由于這一需要,即,克服這些限制和使電話用戶能夠自由移動或離開住所或辦公室而不犧牲與他人有效地通信的能力。在典型的蜂窩式無線電系統(tǒng)中,用戶或其車輛攜帶著一個較小的無線設(shè)備與基地站通信,并把該用戶連接到系統(tǒng)中其它移動站,以及公共交換電話網(wǎng)(PSTN)中的陸上用戶。
現(xiàn)有的蜂窩式無線電通信系統(tǒng)的一個顯著缺點是,模擬信號的無線電傳輸很容易被竊聽。特別是,只要把一個合適的電子接收機(jī)調(diào)諧到通信頻率,便可未經(jīng)允許而監(jiān)聽移動站與基地站之間的部分或全部通信。這樣,有機(jī)會利用這種接收機(jī)并有興趣竊聽的任何人實際上都可以隨意地侵犯通信秘密而完全不受懲罰。盡管已經(jīng)有了各種努力來使電子竊聽成為不合法的,但是,這類活動的私下性質(zhì)通常意味著大多數(shù)竊聽的情形,如果不是全部的話,將不會被發(fā)現(xiàn),從而不受阻攔和懲罰。競爭對手或敵方可以“收聽”某人的可能是私人電話談話的可能性,迄今已妨礙了蜂窩式無線電通信系統(tǒng)的發(fā)展,并如果不受約束的話,必將繼續(xù)損害這類系統(tǒng)在商業(yè)和政府部門應(yīng)用的能力。
近來已清楚地表明,未來的蜂窩式無線電電信系統(tǒng)將采用數(shù)字技術(shù)而不是模擬技術(shù)。轉(zhuǎn)換為數(shù)字方式的要求首先是考慮系統(tǒng)的速度和容量。一個模擬式語音射頻(RF)頻道可以容納四至六個數(shù)字或數(shù)據(jù)RF頻道。這樣,在經(jīng)語音頻道傳輸之前將通話數(shù)字化,就可以不增加語音頻道的帶寬而顯著增加該頻道的容量,從而增加整個系統(tǒng)的容量。其結(jié)果必然是,系統(tǒng)能以明顯低的成本處理更多的移動站。
盡管從模擬到數(shù)字蜂窩式無線電系統(tǒng)的轉(zhuǎn)變,某種程度地改善了保障基地站與移動站之間通信安全的可能性,但遠(yuǎn)未消除電子竊聽的風(fēng)險??梢宰龀瞿軐?shù)字信號解碼并產(chǎn)生原來話音的數(shù)字接收機(jī)。這種硬件會比模擬傳輸更復(fù)雜,花費更大,但仍然存在數(shù)字蜂窩式無線電系統(tǒng)中高度私人化或敏感內(nèi)容的談話被第三者監(jiān)聽和可能用來損害系統(tǒng)用戶的可能性。而且,第三者竊聽電話談話的很大可能性,使得蜂窩式電信不能用于政府的某些通信。一些商業(yè)用戶對安全保障的可能性同樣敏感。這樣,為了使蜂窩式系統(tǒng)成為傳統(tǒng)的有線網(wǎng)絡(luò)的一種可供選擇的替代,至少必須在某些線路上得到安全的通信。
已提出了各種方案來解決機(jī)密數(shù)據(jù)的無線電傳輸所產(chǎn)生的安全問題。某些現(xiàn)有的通信系統(tǒng)所采用的一種已知方案是,在傳輸之前用密碼算法把數(shù)據(jù)加密(擾亂)為某種難以理解的形式。例如,Rick Grehom在1990年6月的BYTE雜志第311-324頁上題為“數(shù)據(jù)和偽裝”一文,一般地討論了密碼系統(tǒng)。在大多數(shù)目前已有的系統(tǒng)中,通話被數(shù)字化,并經(jīng)過加密裝置的處理產(chǎn)生通信信號,這種信號保持看上去是隨機(jī)的或偽隨機(jī)的,直至在一個經(jīng)認(rèn)可的接收機(jī)中被解密。加密裝置所用的具體算法可以是某種專有算法或公眾領(lǐng)域使用的算法。進(jìn)一步了解這類技術(shù)的背景情況,可以參見Martin E.Hellmen 1979年8月在“科學(xué)美國人”第146-167頁上的論文,題為“公開密鑰密碼數(shù)學(xué)”。
1977年,美國國家標(biāo)準(zhǔn)局公布了規(guī)定為《數(shù)據(jù)加密標(biāo)準(zhǔn)》(DES)的密碼算法,見國家技術(shù)信息服務(wù)處(1977)的聯(lián)邦信息處理標(biāo)準(zhǔn)公報46號(FIPS PUB 46)。DES的加密方法使用可產(chǎn)生一串隨機(jī)數(shù)的公開的數(shù)學(xué)算法和由一個64位二進(jìn)制字構(gòu)成的數(shù)據(jù)加密鑰。典型為ASC Ⅱ格式的數(shù)字?jǐn)?shù)據(jù),被轉(zhuǎn)換成表面上看來是隨機(jī)的二進(jìn)制位序列。只有當(dāng)可以是任何64位二進(jìn)制字的加密鑰也為該加密數(shù)據(jù)的接收機(jī)所識別時,加密數(shù)據(jù)才能按照標(biāo)準(zhǔn)的DES解密程序被解密。由于DES加密和解密程序是公眾已知的,因此,密鑰的安全對DES的有效使用是決定性的。
應(yīng)用DES加密/解密程序的商業(yè)設(shè)備通常是集成電路形式,接收作為第一輸入的有待加密的數(shù)據(jù)和作為第二輸入的64位密鑰。大多數(shù)這類設(shè)備以密碼反饋(CFB)方式工作,在該方式中,加密數(shù)據(jù)作為第三輸入提供給DES設(shè)備,防止在被加密的數(shù)據(jù)包含同樣字符的重復(fù)序列時傳輸重復(fù)的加密后的數(shù)據(jù)序列。數(shù)據(jù)的CFB加密的主要優(yōu)點是加密后數(shù)據(jù)的自同步。但是,工作于RF鏈路的CFB設(shè)備的一個主要缺點是與接收機(jī)靈敏度有關(guān)的差錯放大使得移動站的工作范圍減小。即,加密數(shù)據(jù)組傳輸中一個差錯平均產(chǎn)生一半的解密數(shù)據(jù)位差錯,造成傳輸差錯率的極端放大。這樣,移動站就要停留在基地站的一定限制范圍內(nèi)以維持足夠大的信噪比,試圖避免錯誤地接收所傳輸?shù)臄?shù)據(jù)位。CFB方式中出現(xiàn)差錯放大是因為錯誤地接收的位被不斷反饋到解密設(shè)備,直至該差錯傳播出去,接收機(jī)重又恢復(fù)同步。
另一種用于數(shù)據(jù)加密的已知技術(shù)不存在CFB工作方式中遇到的差錯放大問題,即計數(shù)器選址(CA)方式。在CA工作方式中,密鑰流發(fā)生器通過處理含有多個密鑰數(shù)據(jù)位的加密密鑰用來產(chǎn)生二進(jìn)制位的偽隨機(jī)密鑰流。隨后,加密設(shè)備用密鑰流來對數(shù)據(jù)信號加密。典型地,由異或(XOR)邏輯門把密鑰流與數(shù)據(jù)信號一位一位地相加,產(chǎn)生擾亂的二進(jìn)制數(shù)據(jù)信號。將由被同一二進(jìn)制加密鑰使其初始化的一個同樣的密鑰流發(fā)生器同步產(chǎn)生的同樣的密鑰流加到擾亂的信號上(模2),可以使該擾亂信號被解擾。在這一方式中,加密設(shè)備可以由偽隨機(jī)計數(shù)器來“選址”。這樣,在CA方式中,需要使擾亂器到解擾器之間一直保持位的同步。以保證解擾器密鑰發(fā)生器的正常工作,而不必周期性地傳送密鑰發(fā)生器數(shù)據(jù)。然而,蜂窩式無線電系統(tǒng)中RF頻道上的位同步是很難維持的,在很大程度上是由于瑞利衰減現(xiàn)象的影響,瑞利衰減現(xiàn)象是因移動站經(jīng)過由接收設(shè)備附近的障礙物引起的反射形成的多路干涉圖形移動時造成的。經(jīng)不與加密電路同相的解密電路傳輸?shù)囊粋€差錯位和在接收機(jī)中產(chǎn)生的輸出是毫無意義的。這種CA技術(shù)通常不適用于無線電鏈路加密法,該法必須更經(jīng)受得住傳輸差錯。
要求維持位同步的困難已導(dǎo)致了采用“時間-日期”或“幀數(shù)”驅(qū)動的密鑰流發(fā)生器。這種密鑰流發(fā)生器可以同步到日期計數(shù)器的時間,即小時、分和秒,或同步到一個簡單的數(shù)字計數(shù)器,加密和解密電路能夠在彼此不同步的情形下發(fā)送當(dāng)前計數(shù)。
為了提高在采用“時間-日期”或“幀數(shù)”驅(qū)動密鑰流發(fā)生器的系統(tǒng)中通信的安全性,偽隨機(jī)密鑰流中每一位的值最好是加密鑰中所有密鑰位的值的函數(shù)。在該方法中,希望對加密信號解擾的人必須“破開”或“解開”加密鑰的所有位,而這可能相當(dāng)于100位或更多。這類密鑰流通常按照含有時間-日期計數(shù)器的計數(shù)的選定算法由數(shù)學(xué)方法擴(kuò)充加密鑰字來產(chǎn)生。但一,如果加密鑰的每一位要影響到密鑰流中的每一位,并且該密鑰流要一位一位地加到數(shù)據(jù)流位上,則每秒鐘進(jìn)行的密鑰字?jǐn)U充計算所要求的數(shù)是非常大的,很容易超出系統(tǒng)的實時計算能力。必須的計算度提示應(yīng)使用超級計算機(jī),但用于這一用途其費用是昂貴的。所以,需要有用傳統(tǒng)的微處理器并以常規(guī)的微處理器速度實現(xiàn)密鑰流擴(kuò)充的方法和裝置。
一方面,本發(fā)明包括產(chǎn)生用于加密數(shù)字?jǐn)?shù)據(jù)的偽隨機(jī)位序列的方法,其中所述的位序列是多個選定的密鑰位的函數(shù)。該方法包括,產(chǎn)生一組多位值,每一個值是所述選定的密鑰位中至少某一些的函數(shù)。并且,把所述一組多位的值中每一個存在存儲器中一個離散位置。響應(yīng)于每一運(yùn)算循環(huán),通過增大寄存器所含的當(dāng)前值,可在寄存器中產(chǎn)生一系列值。按照第一次預(yù)選的算法循環(huán)計算一系列多位值,每一值是至少一個存在該存儲器中的多位值和所述寄存器所含值的函數(shù)。所述計數(shù)器內(nèi)容用作為每次計算結(jié)果而得到的值循環(huán)復(fù)位,多位密鑰字被周期地取出,它是作為每次計算結(jié)果而得到的值的函數(shù)。多位密鑰字依次結(jié)合到所述偽隨機(jī)位序列中。在一個實施例中,所產(chǎn)生的一組多位值各是選定的全部密鑰位的函數(shù)。
另一方面,本發(fā)明包括具有加密子系統(tǒng)的蜂窩式通信系統(tǒng),前者包括一個密鑰流發(fā)生器,用一個密鑰分兩級產(chǎn)生一個偽隨機(jī)密鑰流。首先,按照某一算法擴(kuò)充密鑰,產(chǎn)生一個查找表,存入存儲器;然后,該電路將寄存器的計數(shù)以及與存在查找表內(nèi)的數(shù)據(jù)相結(jié)合的密鑰一起使用,以產(chǎn)生一個偽隨機(jī)密鑰流,在傳輸之前與數(shù)據(jù)混合。本發(fā)明的系統(tǒng)應(yīng)用日期驅(qū)動計數(shù)器的時間以及存入查找表的數(shù)據(jù)和密鑰。并將兩者用于產(chǎn)生密鑰流。當(dāng)出現(xiàn)不同步時,發(fā)射機(jī)和接收機(jī)中的這種計數(shù)器可以周期性地重新同步。
再一方面,本發(fā)明包括一數(shù)字蜂窩式通信系統(tǒng),其中,對基地站和移動單元發(fā)送和接收的數(shù)字?jǐn)?shù)據(jù)流進(jìn)行加密編碼,以保證電信的安全性。該系統(tǒng)包括了用于把二進(jìn)制位的偽隨機(jī)密鑰流加到攜帶系統(tǒng)中每一發(fā)射機(jī)和接收機(jī)的數(shù)字信號的信息上以產(chǎn)生在系統(tǒng)中待發(fā)射和接收的數(shù)字?jǐn)?shù)據(jù)流的裝置。用于產(chǎn)生作為一組選定密鑰位函數(shù)的二進(jìn)制偽隨密鑰流的裝置包括,用于產(chǎn)生一組多位值,其中每一個值是至少某些選定的密鑰位的函數(shù)的裝置,以及,用于把所述一組多位值中每一個存入存儲器中一個離散位置的裝置。一個用于產(chǎn)生寄存器中的一系列值的裝置,響應(yīng)于每一運(yùn)算循環(huán)增大寄存器中所包含的當(dāng)前值。該系統(tǒng)還包括按照第一預(yù)先選定的算法循環(huán)計算一系列多位值的裝置,其中每一值是至少一個存在存儲器中的多位的值和寄存器中值的函數(shù),以及,包括用于以作為每一計算的結(jié)果所得到的值來對寄存器的內(nèi)容反復(fù)重新設(shè)置周期復(fù)位的裝置。一個是作為每一次計算結(jié)果得到的值的函數(shù)的多位密鑰字,被周期地取出并結(jié)合到用來對要發(fā)送和接收的數(shù)字?jǐn)?shù)據(jù)流加密編碼和解碼的二進(jìn)制位的偽隨機(jī)密鑰流中。
由參見下列附圖,能更好地理解本發(fā)明,而其各種目的和優(yōu)點對本領(lǐng)域的技術(shù)人員而言將變得明顯,其中
圖1表示一種蜂窩式無線電通信系統(tǒng),包括一個移動交換中心,多個基地站和多個移動站;
圖2是按照本發(fā)明的系統(tǒng)的一個實施例中所用的移動站設(shè)備的示意性方框圖;
圖3是按照本發(fā)明的系統(tǒng)一個實施例中所用的基地站設(shè)備的示意性方框圖;
圖4是一種已有技術(shù)的密鑰流發(fā)生器的示意性方框圖;
圖5是按照本發(fā)明構(gòu)成的一種加密系統(tǒng)的密鑰流發(fā)生器電路的示意性方框圖;
圖6是圖5所示密鑰流發(fā)生器的第二擴(kuò)充級的局部示意性方框圖。
首先參見圖1,這里表示的是,本發(fā)明一般地與其有關(guān)的一種類型的傳統(tǒng)蜂窩式無線電通信系統(tǒng)。在圖1中,一個任意的地理區(qū)域可分成多個相鄰接的無線電覆蓋區(qū)域或單元C1-C10。雖然圖1中的系統(tǒng)表明僅包括10個單元,但顯然,實際上可有更多的單元。
處在每一單元C1-C10中的并且與之相聯(lián)系的,是基地站,對應(yīng)地表示為多個基地站B1-B10,如該領(lǐng)域中熟知的那樣,每一基地站B1-B10包括一個發(fā)射機(jī)、一個接收機(jī)和控制器。圖1中,基地站B1-B10分別位于單元C1-C10的中心,配備著全方向天線。但是,在其它結(jié)構(gòu)的蜂窩式無線電系統(tǒng)中,基地站B1-B10可以位于邊界附近或離開單元C1-C10的中心,用全方向或定向無線電信號向單元C1-C10發(fā)射。所以,圖1表示的蜂窩式無線電系統(tǒng)僅用于圖解,并不打算限制蜂窩式無線電系統(tǒng)可能的實施。
繼續(xù)參見圖1,在單元C1-C10中可以看到多個移動站M1-M10,類似地,圖1中僅畫出10個移動站,但應(yīng)當(dāng)明白,在實際應(yīng)用中工作的移動站數(shù)量可以大得多,而且總是超過基地站的數(shù)量。而且,盡管在單元C1-C10的某些中可以根本沒有移動站M1-M10,而在單元C1-C10的任何具體一個中存在還是不存在移動站M1-M10應(yīng)當(dāng)被理解為實際上僅取決于每一移動站M1-M10各自的愿望,他們可以從一個單元中的某個位置漫游到另一個位置,或從一個單元移到相鄰的單元。
每一移動站M1-M10能夠經(jīng)一個或多個基地站B1-B10和一個移動交換中心MSC發(fā)動或接收電話呼叫。移動交換中心MSC由通信鏈路例如電纜,接到每一圖示的基地站B1-B10和固定的公共交換電話網(wǎng)(PSTN,未畫出),或包括集成系統(tǒng)數(shù)字網(wǎng)絡(luò)(ISDN)設(shè)備的類似固定網(wǎng)絡(luò)。在移動交換中心MSC與基地站B1-B10之間、或移動交換中心MSC與PSTN或ISDN之間的相關(guān)連接未在圖1中完整地表示出,但對該領(lǐng)域中普通技術(shù)人員而言是熟知的。同樣,在一個蜂窩式無線電系統(tǒng)中包括一個以上移動交換中心并把每一附加移動交換中心經(jīng)電纜或無線電鏈路到各組基地站和其它移動交換中心,也是技術(shù)人員熟知的。
對每一單元C1-C10分配一組語音或通話頻道,以及至少一個訪問或控制頻道??刂祁l道用來通過發(fā)到這些單元的信息和從這些單元收到的信息控制或管理移動站的工作。當(dāng)移動站移出一個單元的無線電覆蓋區(qū)并進(jìn)入另一單元的無線電覆蓋區(qū)時這些信息可以包括進(jìn)來的呼叫信號、發(fā)出去的呼叫信號、頁碼信號、頁碼回答信號、位置登記信號、語音頻道分配、維修指令和“交接”指令。控制頻道或語音頻道可以以模擬或數(shù)字方式工作,或兩者的結(jié)合。在數(shù)字方式中,語音或控制信號等模擬信息在經(jīng)RF頻道傳輸之前先轉(zhuǎn)換成數(shù)字信號表達(dá)。由計算機(jī)或數(shù)字化語音設(shè)備產(chǎn)生的純粹數(shù)據(jù)信息可以被格式化,直接在數(shù)字頻道上傳輸。
在采用時分多路復(fù)用(TDM)方式的蜂窩式無線電系統(tǒng)中,多個數(shù)字頻道可以共用一個共同的RF頻道。該RF頻道被分成一系列“時隙”,每一時隙包含來自不同數(shù)據(jù)源并由保護(hù)時間彼此分開的一數(shù)據(jù)組信息,如本領(lǐng)域中熟知的那樣,時隙被組成“幀”,每一幀的時隙數(shù)目依為該RF頻道所容納的被查錄的數(shù)字頻道的帶寬而不同。例如,一幀可以由三個時隙構(gòu)成,每一時隙分配給一個數(shù)字頻道。這樣,該RF頻道將容納三個數(shù)字頻道。在這里所述的本發(fā)明一個實施例中,一幀被規(guī)定為包括三個時隙,但是,應(yīng)當(dāng)清楚地理解,本發(fā)明的技術(shù)可以同樣應(yīng)用于每幀采用任何數(shù)目時隙的蜂窩式無線電系統(tǒng)。
下面參見圖2,這里畫出了按照本發(fā)明一個實施例所用的移動站設(shè)備的示意性方框圖。圖2中所示的設(shè)備可用于數(shù)字頻道上的通訊。由話筒100檢測到并且將要由移動站傳輸?shù)恼Z音信號送到通話編碼器101的輸入,后者把模擬語音信號轉(zhuǎn)換成數(shù)字?jǐn)?shù)據(jù)位流。然后,按照數(shù)字通信的時分多路訪問(TDMA)技術(shù)分割成數(shù)據(jù)包或信息。一個快速聯(lián)系控制頻道(FACCH)發(fā)生器102與蜂窩式無線電系統(tǒng)中的基地站交換控制或管理信息。傳統(tǒng)的FACCH發(fā)生器以“空白和數(shù)據(jù)組”方式工作,用戶的一幀數(shù)據(jù)被抑制,并且相反,快速傳輸FACCH發(fā)生器102產(chǎn)生的控制信息。
與FACCH發(fā)生器102的空白和數(shù)據(jù)組工作相對照的是,一個慢速聯(lián)系控制頻道(SACCH)發(fā)生器103一直與基地站交換控制信息。該SACCH發(fā)生器的輸出,規(guī)定為固定長度的字節(jié),例如12位,并作為每一時隙的一部分包括在信息鏈(幀)內(nèi)。頻道編碼器104、105和106分別連接到通話編碼器101、FACCH發(fā)生器102和SACCH發(fā)生器103。每一頻道編碼器104、105和106通過用卷積編碼和周期冗余校驗(CRC)技術(shù)處理進(jìn)來數(shù)據(jù)來執(zhí)行差錯檢測和恢復(fù)卷積編碼可保護(hù)通話代碼中的重要數(shù)據(jù)位,周期冗余校驗則使用通話編碼器幀內(nèi)的最有效位如12位,計算一個7位差錯校驗。
仍然參見圖2,頻道編碼器104、105連接到多路復(fù)用器107,后者用于使數(shù)字化的語音信息與FACCH管理信息實現(xiàn)時分多路復(fù)用。多路復(fù)用器107的輸出連接到2數(shù)據(jù)組交織器108,它把移動站所要傳輸?shù)拿恳粩?shù)據(jù)信息(例如包含260位的信息)分成相等但分開的兩部分(每一部分包含130位),安排在兩個依次的時隙中。由這一方法可顯著減小瑞利衰減的不利影響。2數(shù)據(jù)組交織器108的輸出送到模2加法器109作為其輸入,在模2加法器中,所要傳輸?shù)臄?shù)據(jù)通過與偽隨機(jī)密鑰流的模2邏輯和被一位一位地編成密碼,而這種偽隨機(jī)密鑰流則是按照下面所述的本發(fā)明的系統(tǒng)所產(chǎn)生的。
頻道編碼器106的輸出送到一個22數(shù)據(jù)組交織器110作為其輸入。該22數(shù)據(jù)組交織器110把SACCH數(shù)據(jù)分到22個依次排列的時隙中,每一時隙被一個由12位控制信息構(gòu)成的字節(jié)所占據(jù)。交織后的SACCH數(shù)據(jù)形成數(shù)據(jù)組發(fā)生器111的一個輸入。該數(shù)據(jù)組發(fā)生器111的另一輸入由模2加法器109的輸出提供。數(shù)據(jù)組發(fā)生器111產(chǎn)生數(shù)據(jù)的“信息字組”,其每一個由一個時隙識別標(biāo)志(TI)、一個數(shù)字音色碼(DVCC)、控制或管理信息和所要傳輸?shù)臄?shù)據(jù)組成,下面將進(jìn)一步說明。
一幀內(nèi)每一時隙中傳輸?shù)氖且粋€時隙識別標(biāo)志(TI),用于時隙識別和接收機(jī)同步;一個數(shù)字音色碼(DVCC),保證適當(dāng)?shù)腞F頻道被解碼。在本發(fā)明的示例的幀內(nèi),確定了一組三個不同的28位TI,當(dāng)在三個時隙的每一個中傳輸一個同樣的8位DVCC時每一時隙一個TI。TI和DVCC在移動站內(nèi)由接到圖2所示的數(shù)據(jù)組發(fā)生器111的同步字/DVCC發(fā)生器112提供。數(shù)據(jù)組發(fā)生器111把模2加法器109、22數(shù)據(jù)組交織器110和同步字/DVCC發(fā)生器112的輸出結(jié)合在一起,產(chǎn)生一系列信息組,各包括數(shù)據(jù)(260位)、SACCH信息(12位)、TI(28位)、編碼DVCC(12位)和12個限制符位,總共324位,按照EIA/TIA IS-54標(biāo)準(zhǔn)規(guī)定的時分格式集合在一起。
如上所述,每一信息組在一幀內(nèi)包括的三個時隙之一中傳輸。數(shù)據(jù)組發(fā)生器111連接到均衡器113,后者提供使一個時隙的傳輸與其它兩個時隙的傳輸同步所需的定時均衡器111檢測從基地站(主)到移動站(從)發(fā)送的定時信號,并據(jù)此使數(shù)據(jù)組發(fā)生器111同步。均衡器113還可用于檢驗TI和DVCC的值。數(shù)據(jù)組發(fā)生器111還連接到一個20ms幀計數(shù)器114,后者用來更新被移動站每20ms即每傳輸一幀一次所采用的加密碼。加密碼由加密單元115用數(shù)學(xué)算法在密鑰116的控制下產(chǎn)生,密鑰116對每一移動站都是一樣的。這一算法可以按照本發(fā)明用來產(chǎn)生偽隨機(jī)密鑰流,如下所述。
由數(shù)據(jù)組發(fā)生器110產(chǎn)生的信息組送到RF調(diào)制器117作為其輸入。該RF調(diào)制器117用來按照/4-DQPSK技術(shù)(/4移位、差分編碼的正交相移密鑰)調(diào)制載頻。該技術(shù)的使用強(qiáng)調(diào),移動站所要傳輸?shù)男畔⒈徊罘志幋a,即,兩個位符號傳輸時相位有四種可能的變化+或-/4和+或-3/3。由發(fā)送頻率同步器118把用于選定發(fā)送頻道的載頻提供給RF調(diào)制器117。RF調(diào)制器117的成組調(diào)制的載頻信號輸出,由功率放大器119放大,經(jīng)天線120發(fā)送到基地站。
移動站經(jīng)與接收機(jī)器122相連的天線121接收來自基地站的成組調(diào)制的信號。對于選定接收頻道的接收機(jī)載頻,由接收頻率同步器123產(chǎn)生,并提供給RF解調(diào)器124。RF解調(diào)器124用來把接收的載頻信號解調(diào)成某一中頻信號。隨后,由IF解調(diào)器125進(jìn)一步解調(diào)該中頻信號,當(dāng)它在/4-DQPSK調(diào)制前存在時恢復(fù)原始數(shù)字信息。隨后,該數(shù)字信息通過均衡器113送到符號檢測器126,后者把均衡器113提供的二位符號格式的數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換成一位數(shù)據(jù)流。
符號檢測器126產(chǎn)生兩種不同輸出第一輸出,包括數(shù)字化的通話數(shù)據(jù)和FACCH數(shù)據(jù),第二輸出,包括SACCH數(shù)據(jù)。第一輸出提供給模2加法器127,后者連接到2數(shù)據(jù)組去交織器128。模2加法器127連接到加密單元115,并用于對4加密的發(fā)送數(shù)據(jù)解密,這是通過一位一位地減去在基地站加密數(shù)據(jù)時發(fā)射機(jī)所用的同樣偽隨機(jī)密鑰流來實現(xiàn)的,按照本發(fā)明的下列教導(dǎo)來產(chǎn)生。模2加法器127和2數(shù)據(jù)組去交織器128通過組合和重排來自連續(xù)的兩幀數(shù)字?jǐn)?shù)據(jù)的信息,重新構(gòu)成通話/FACCH數(shù)據(jù)。二數(shù)據(jù)組去交織器128連接到兩個頻道解碼器129、130,后兩者用與編碼相反過程使卷積編碼的通話/FACCH數(shù)據(jù)解碼,并檢驗循環(huán)冗余校驗(CRC)位,以確定是否出現(xiàn)錯誤。頻道解碼器129、130檢測一方面通話數(shù)據(jù)和其他方面任何FACCH數(shù)據(jù)的不同,并把通話數(shù)據(jù)和FACCH數(shù)據(jù)分別連接到通話解碼器131和FACCH解碼器132。通話解碼器131按照通話編碼器算法即VSELP處理頻道解碼器129提供的通話數(shù)據(jù),并產(chǎn)生代表由基地站發(fā)送和由移動站接收的通話信號的模擬信號。在由揚(yáng)聲器133播放之前??梢杂脼V波技術(shù)來提高模擬信號的質(zhì)量。由FACCH檢測器132檢測到任何FACCH信息送到微處理器134。
符號檢測器126的第二輸出(SACCH數(shù)據(jù))提供給22數(shù)據(jù)組去交織器135。該22數(shù)據(jù)組去交織器135重新組合和安排分布在連續(xù)的22幀內(nèi)的SACCH數(shù)據(jù)。22數(shù)據(jù)組去交織器135的輸出提供給頻道解碼器136作為其輸入。由SACCH檢測器137檢測FACCH信息,控制信息則傳送到微處理器134。
微處理器134控制移動站的活動和移動站與基地站之間的通信。微處理器134根據(jù)從基地站收到的信息和移動站所進(jìn)行的測量作出決定。該微處理器134還有終端鍵盤輸入和顯示器輸出單元138。鍵盤和顯示器單元138使移動站用戶能與基地站交換信息。
下面參見圖3,這里畫出了按照本發(fā)明所采用的基地站設(shè)備的示意性方框圖。圖2中移動站設(shè)備與圖3中基地站設(shè)備的比較說明移動站和基地站所用的大多數(shù)設(shè)備實際上在結(jié)構(gòu)和功能上是相同的。為簡便和一致起見,這些同樣的設(shè)備在圖3中都標(biāo)以與圖2中同樣的標(biāo)號,但加上一個撇號(')來區(qū)別。
然而,移動站與基地站設(shè)備之間有著一些小差別。例如,基地站有兩個接收天線121',而不是一個。與每一接收天線121'相聯(lián)系的是接收機(jī)122'、RF解調(diào)器124'和IF解調(diào)器125。而且,基地站包括可編程頻率混合器118A',它連接到發(fā)送頻率同步器118'。頻率混合器118A'和發(fā)送頻率同步器118″按照實用的蜂窩式頻率復(fù)用方案選擇將為基地站所用的RF頻道。然而,基地站不包括與在移動站中出現(xiàn)的用戶鍵盤和顯示器138類似的用戶鍵盤和顯示器,而是包括信號電平表100',用來測量從2臺接收機(jī)122'中的每一臺收到的信號,對微型處理器134'提供一個輸出。移動站和基地站設(shè)備之間還可以有其它區(qū)別,這在本領(lǐng)域中是熟知的。
目前為止的討論集中在本發(fā)明系統(tǒng)的工作環(huán)境。下面具體描述本發(fā)明的具體實施例。如上所指出和下面所要用的那樣,“密鑰流”一詞指一個偽隨機(jī)序列的二進(jìn)制位或組位,用于對數(shù)字編碼信息或數(shù)據(jù)信號在傳輸或存入在容易被越權(quán)訪問的介質(zhì)如RF頻道之前予以加密。“密鑰流發(fā)生器”指通過處理包括一組位的密鑰產(chǎn)生密鑰流的裝置??梢院唵蔚赝ㄟ^模2和把密鑰流加到所要加密的數(shù)據(jù)上來進(jìn)行加密。類似地,通過模2減法從被加密的數(shù)據(jù)減去同樣的密鑰流來進(jìn)行解密。
一般來說,密鑰流發(fā)生器提供分別由圖2和圖3中部件115和115'表示的一種機(jī)制,用來把較少量的密碼位,即由部件116和116'表示的密鑰,擴(kuò)充成數(shù)量相當(dāng)大的密鑰流位,然后用來在發(fā)送(或存儲)之前對數(shù)據(jù)信息加密。為了對編碼的信息解密接收機(jī)的必須“知道”用于對該信息加密的密鑰流位的索引。換句話說,如果要正確地對信息解碼的話,接收機(jī)不僅必須有著與發(fā)射機(jī)同樣的密鑰流發(fā)生器和產(chǎn)生同樣的密鑰流位,而且,接收機(jī)密鑰流發(fā)生器還必須與發(fā)射機(jī)密鑰流發(fā)生器同步工作。通常,為由周期性地從編碼系統(tǒng)向解碼系統(tǒng)發(fā)送每一內(nèi)部存儲裝置的內(nèi)容來得到同步,這些內(nèi)容可以是二進(jìn)制位,信息組或信息計數(shù)器,都用于產(chǎn)生密鑰流位。不過,也可以用下列方法來簡化同步,即使用算術(shù)位組計數(shù)器,如二進(jìn)制計數(shù)器,并在每次產(chǎn)生新的一組密鑰流位時使這些計數(shù)器增大一定值。這些計數(shù)器可以形成實時(如時、分和秒)時鐘鏈的一部分。依賴于后一種類型計數(shù)器的密鑰流發(fā)生器稱為“時間-日期”驅(qū)動密鑰流發(fā)生器,上面已作了說明。
應(yīng)當(dāng)指出,用于使密鑰流發(fā)生器一位一位或一組一組前進(jìn)的精確方法和用于使發(fā)送電路與接收叫路同步的具體方法是題為“蜂窩式通信系統(tǒng)的持續(xù)加密同步”的共同待批專利申請的主題,如上所述。如以下所詳細(xì)描述的,本發(fā)明的系統(tǒng)是針對有效地實施一種實用的加密系統(tǒng),它可以用于,例如,保證蜂窩式電信系統(tǒng)中RF頻道上數(shù)字通信的安全。這種加密系統(tǒng)包括一個密鑰流發(fā)生器,通過每秒鐘對密鑰中所含的多個密鑰位執(zhí)行大量的布爾代數(shù)操作而每秒鐘產(chǎn)生大量的密鑰流。本發(fā)明的密鑰流發(fā)生器可用具備簡單微處理器結(jié)構(gòu)的集成電路來實現(xiàn)。
現(xiàn)在參見圖4,可以看見一種已有的密鑰流發(fā)生器的方框示意圖。一個任選的分組計數(shù)器201對組合邏輯電路202提供第一多位輸入。一組一位存儲單元,或觸發(fā)器,m1、m2、m3……mn對組合邏輯電路202提供第2條多位輸入。由一位輸出d1、d2、d3……dn組成的組合邏輯電路202輸出的一部分反饋到觸發(fā)器m1-mn。在一系列位時鐘輸入脈沖203的每一時鐘脈沖加到觸發(fā)器m1-mn之后,輸出d1-dn分別變?yōu)橛|發(fā)器m1-mn的下一狀態(tài)。適當(dāng)?shù)貥?gòu)成組合邏輯電路202,觸發(fā)器m1-mn可被設(shè)置成一個標(biāo)準(zhǔn)二進(jìn)制計數(shù)器、執(zhí)行最大長度序列的線性反饋移位寄存器或任何其它形式的線性或非線性順序計數(shù)器。在任何情況下,接收機(jī)端觸發(fā)器m1-mn的每一狀態(tài)和分組計數(shù)器201每一狀態(tài)必須與發(fā)射機(jī)端對應(yīng)部件的狀態(tài)相同。一個復(fù)位或同步機(jī)構(gòu)204用來使接收機(jī)與發(fā)送機(jī)同步。
仍然參見圖4,一組密鑰位K1、K2、K3…Kn形成組合邏輯電路202的第三條多位輸入。密鑰位的數(shù)目n通常在一百位加或減(+/-)一個因子2的范圍內(nèi)。希望每一密鑰位K1-Kn對密鑰流中每一位至少有潛在的影響。否則的話,一個竊聽者為了要解密和監(jiān)聽加密的數(shù)據(jù),只需要解出密鑰位K1-Kn中的一個小的子集。但是,如果密鑰流中每一位的值(邏輯狀態(tài))不僅取決于某個具體的密鑰位的值,而且還取決于所有其它密鑰位的值以及分組計數(shù)器201狀態(tài)和其它內(nèi)部存儲器的狀態(tài),則未經(jīng)許可的截取的風(fēng)險可以大大減小。這里,建立這種依賴性將會需要極大數(shù)量的布爾運(yùn)算。例如,假定密鑰由一百(100)個密鑰位組成。若每一密鑰位要影響密鑰流中每一位,將需要總共為每一密鑰流位一百(100)次的組合運(yùn)算。這樣,為了產(chǎn)生一萬(10,000)密鑰流位,總共將需要一百萬(1,000,000)次組合運(yùn)算。若每一密鑰流位還要依賴于一個或多個內(nèi)部存儲器狀態(tài)的話,這一數(shù)量還將更大。本發(fā)明的一個目的是,顯著地減小每一密鑰流位所需的組合運(yùn)算數(shù)量,而保持每一密鑰流位對每一密鑰位的這種依賴性。
按照本發(fā)明,由例如一百個密鑰位產(chǎn)生的數(shù)千個偽隨機(jī)密鑰流位,可以被看成是一個多級擴(kuò)充過程。多個擴(kuò)充級級聯(lián)在一起,各有一個依次減小的擴(kuò)充率。第一級擴(kuò)充執(zhí)行次數(shù)不如其后各級頻繁,以使每一密鑰流位所需的邏輯(布爾)運(yùn)算數(shù)減至最小。此外,第一擴(kuò)充級提供的多個輸出位對密鑰位有很強(qiáng)的依賴性,進(jìn)一步減小了以后各級必須執(zhí)行的邏輯運(yùn)算數(shù)量。
下面參見圖5,其中表示按照本發(fā)明思想構(gòu)造的一種密鑰流發(fā)生器系統(tǒng)的示意性方框圖。多個密鑰位R1、R2、R3……提供給第一級擴(kuò)充205作為其輸入。密鑰位R1、R2、R3……可以包括密鑰位R1、R2、R3……Rn中的某些,但最好是全部。第一級擴(kuò)充205的附加(或任選)的輸入可以包括信息計數(shù)器分組計數(shù)器、代表一幀開始時的時間或分組計數(shù)值的日期-時間標(biāo)記的輸出,或其它各種可以由發(fā)送機(jī)和接收機(jī)同步的輸出。任何隨時間緩慢變化的內(nèi)部存儲器輸出,可用作第一級擴(kuò)充205的輸入。因為第一級擴(kuò)充205應(yīng)當(dāng)不常進(jìn)行,例如每個信息一次,所以希望輸出變化緩慢。
第一級擴(kuò)充205產(chǎn)生規(guī)模比密鑰位R1、R2、R3……的數(shù)目相當(dāng)大的擴(kuò)充輸出。擴(kuò)充輸出存儲在存儲器206中,由組合邏輯電路207讀取。組合邏輯電路207執(zhí)行如下所述的第二級擴(kuò)充。計數(shù)器和寄存器208的輸出形成組合邏輯電路207的輸入。寄存器208在每組密鑰位產(chǎn)生之前被初始化至一個新的起始狀態(tài)。初始值發(fā)生器209為寄存器208提供起始狀態(tài)。這一起始狀態(tài)因每一特定組的密鑰流位而不同,是該特定組的分組號的函數(shù),還可能是密鑰位R1-Rn的某些子集的函數(shù)。
組合邏輯電路207的第一輸出210反饋到寄存器208。輸出210在每一運(yùn)算循環(huán)后變?yōu)榧拇嫫?08的新的狀態(tài)。組合邏輯電路207的第2輸出211形成有待于如上述圖2和3所述與數(shù)據(jù)流混合的密鑰流位。每一循環(huán)在輸出211產(chǎn)生的密鑰流位數(shù)可以是2的任何次方,即8、16、32、64等。這些位統(tǒng)稱為“密鑰字”。在寄存器208重新初始化之前,輸出211產(chǎn)生的一些或全部密鑰字,聚集為密鑰組212。密鑰組212可以由例如在寄存器208重新初始化之前每一循環(huán)或每隔一循環(huán)中所產(chǎn)生的全部密鑰字所組成。
本領(lǐng)域內(nèi)技術(shù)人員將會意識到,上述的和圖5中所示的密鑰流發(fā)生器系統(tǒng)的傳統(tǒng)實現(xiàn)也許需要許多復(fù)雜的組合邏輯電路,如果通過分別把多個邏輯門即與、或門等互連來實現(xiàn),則相當(dāng)于一個相當(dāng)大、費用很昂貴的芯片,而僅能用于很具體的用途。另一方面,算術(shù)及邏輯單元(ALU)是各一種小型、廉價和多用途的微處理器的標(biāo)準(zhǔn)部件。本發(fā)明提供用這種ALU實現(xiàn)所有所需的組合邏輯功能的手段。
傳統(tǒng)的ALU在程序控制下工作,能夠執(zhí)行任何兩個8位或16位二進(jìn)制字之間的加、減、逐位異或、和、或的組合函數(shù)。若這種ALU被用來依次完成圖5裝置所需的所有布爾函數(shù),則按照每秒鐘可以執(zhí)行的完整循環(huán)數(shù)測量的ALU運(yùn)算速度會顯著降低。但是,本發(fā)明所用的多級擴(kuò)充防止過份降低ALU速度,辦法是,如ALU實用例,通過對第一級擴(kuò)充205中的大量密鑰依賴性函數(shù)執(zhí)行稀少的周期計算,使最常執(zhí)行的組合邏輯207的每周期程序指令數(shù)減至最少。在上一句中,“大量”一詞指大于密鑰位的位數(shù)n的數(shù)量級大小。
一旦以一個起始值使寄存器208初始化,組合邏輯207在輸出211產(chǎn)生一串密鑰字,并且每當(dāng)寄存器208由輸出210的反饋值重新存入時繼續(xù)產(chǎn)生附加的密鑰字。但是,可能會出現(xiàn)逐漸損害密鑰字發(fā)生過程完整性的問題。例如,若寄存器208的內(nèi)容回到其初始值,則其后產(chǎn)生的密鑰字序列將重復(fù)。類似地,若寄存器208的內(nèi)容回到在產(chǎn)生當(dāng)前密鑰組中先前出現(xiàn)過的值(不一定是初始值),則稱該系統(tǒng)“循環(huán)短路”。由于前面提到過的原因,即容易被未經(jīng)許可解密,因此不希望在產(chǎn)生的一個密鑰組內(nèi)密鑰字重復(fù)或出現(xiàn)循環(huán)短路。而且,如果寄存器208的內(nèi)容在某一點,比如說產(chǎn)生第m個密鑰字后的一點上,變?yōu)榕c產(chǎn)生另一密鑰組期間該第m個密鑰字以后已存在或?qū)嬖诘哪硞€值相等,則這兩個密鑰組將從該點開始變?yōu)橄嗤?,這也是不希望出現(xiàn)的。
這里,組合邏輯207和相聯(lián)系的寄存器208(組合邏輯/寄存器組合)在連續(xù)運(yùn)算數(shù)次后,應(yīng)當(dāng)(1)不產(chǎn)生短于每組的密鑰字?jǐn)?shù)的循環(huán),(2)對寄存器208每一同樣的起始狀態(tài)產(chǎn)生同樣的密鑰字序列。為滿足后一要求,兩種不同的起始狀態(tài)不應(yīng)能會聚為同一狀態(tài),而且,上述兩要求應(yīng)當(dāng)不管存儲器206內(nèi)容如何都適用。如下詳細(xì)說明的那樣,本發(fā)明使這些問題得以緩解并增強(qiáng)了密鑰字發(fā)生過程的整體性。
當(dāng)組合邏輯/寄存器組合的狀態(tài)轉(zhuǎn)換圖有會聚的分支時,這種組合不能經(jīng)分支反向工作,因為無法確定取那條道路。所以,如果能表明這種組合的運(yùn)算過程是明晰而可逆的,則證明在狀態(tài)轉(zhuǎn)換圖中不存在會聚的分支。下面敘述和討論這種過程。
下面參見圖6,表示圖5所示的密鑰流發(fā)生器第2擴(kuò)充級的局部示意性方框圖。圖5的寄存器208被分成圖6中三個字節(jié)長度的寄存器208A、208B、208C。寄存器208A、208B、208C可以是例如8位寄存器。隨著寄存器208A、208B和208C的初始化,由下式計算新的狀態(tài)值(1)A'=A?!睰(B)+K(C)〕(2)B'=B#R(A)(3)C'=C+1
這里,A'是寄存器208A的新的狀態(tài)值,B'是寄存器208B的新的狀態(tài)值,C'是寄存器208C的新的狀態(tài)值,A是寄存器208A的當(dāng)前狀態(tài)值,B是寄存器208B的當(dāng)前狀態(tài)值,C是寄存器208C的當(dāng)前狀態(tài)值,+表示字長度的模相加,例如字節(jié)寬度模256相加,#表示+(如上所定義)或者逐位異或(XOR),K(B)是圖5中位于存儲器206的地址B的值K;
K(C)是圖5中位于存儲器206的地址C的值K;
注存在存儲器206中的每一值K以前按圖5中的第一級擴(kuò)充205計算,為所有密鑰位的復(fù)值函數(shù)。
R(A)是位于一固定的查找表R中地址A的值。或者說,A的各個位送到組合邏輯塊作為其輸入,產(chǎn)生輸出R。查找表R,或者說組合邏輯塊,應(yīng)當(dāng)提供若干大于或等于A字長并且小于或等于B的字長的輸出位,例如,在A和B都是8位字節(jié)的情形下,R也是8位字節(jié),查找表R將含有256個值。
值R應(yīng)當(dāng)有著從輸入到輸出的1∶1映射,即,輸入位的每一可能狀態(tài)應(yīng)當(dāng)對應(yīng)于一個同樣的輸出值。這確保,R函數(shù)為可逆的,從而也保證了整個過程由下列關(guān)系是可逆的(1)C=C-1(2)B=B##R'(A)(3)A=A##〔K(B)+K(C)〕這里,-表示字長模減法,##表示#的逆運(yùn)算,即-(如上定義)或者逐位XOR;并且
R'是1∶1查找表或組合邏輯R的倒置。
這種可逆性表明,在組合邏輯/寄存器組合的狀態(tài)轉(zhuǎn)換圖中不包含會聚的支,并確保每一起始狀態(tài)都產(chǎn)生同樣的密鑰字序列。而且,該過程保證了最小循環(huán)長度,因為C僅增加1,并且直至2W次重復(fù)后才返回其初始值。這里W是所以用的字長。例如,如果A、B、C、R和K都是8位字節(jié),最小循環(huán)長度將是256。如果在每一次重復(fù)(循環(huán))中取出一密鑰字(字節(jié)),則可取出總共256字節(jié)。而無過早重復(fù)該序列的危險。另一方面,若每隔一次重復(fù)取出密鑰字,則可取出總共128個密碼字而不過早重復(fù)該序列。在上述兩句子中,“取出”一詞指把密鑰字集中起來置于密鑰組中,如圖5所示的密鑰組212。下面就敘述本發(fā)明中所用的取出密鑰字的具體方法。
已經(jīng)結(jié)合圖6敘述了用于計算反饋到寄存器208的組合邏輯207的輸出210的過程。一般來說,中間量A、B或C中任何一個可直接取出,用作為每一次重復(fù)的密鑰字。令S=(A、B、C),代表組合邏輯/寄存器組合的當(dāng)前狀態(tài),該組合將隨著初始化至S0而發(fā)生一系列狀態(tài)轉(zhuǎn)換S0、S1、S2、S3、S4、S5、S6、S7…。然而,若在其后的密鑰組計算中,寄存器被初始化,例如初始化至S2,則產(chǎn)生的序列S2、S3、S4、S5、S6、S7…將與第一序更相同組移過兩個密鑰字(S0、S1)。所以,若狀態(tài)S的值A(chǔ)、B或C直接用作密鑰字,可在不同的密鑰組中出現(xiàn)這樣的一致為避免這一情形,本發(fā)明的系統(tǒng)按照該值在密鑰組中位置修改再一取出的值,這樣,如果對另一組中不同的密鑰位置取出同樣的值,將產(chǎn)生不同的密鑰字。下面提出用于實現(xiàn)該目的一種舉例的方法。
令N為當(dāng)前已被計算的密鑰組中密鑰字的數(shù)目,S=(A、B、C)為要取出密鑰字的這次重復(fù)中寄存器208的當(dāng)前狀態(tài)密鑰字W(N)的值可由下式計算W(N)=B+'K〔A+N〕
這里,+表示XOR,+'表示+(如上定義)或者字長模相加,其它用于取出密鑰字的適當(dāng)方法可以包括下式W(N)=B+K〔R(A+N)或者W(N)=R〔A+N〕+K〔B+N〕等等。
盡管密鑰字取出方法的嚴(yán)密性不是本發(fā)明實施中最重要的,但值得推薦的是為了按本發(fā)明方法獲得最佳的加密性能取出的密鑰字的值應(yīng)當(dāng)是其在密鑰組中對應(yīng)位置的函數(shù)。
從上面對本發(fā)明系統(tǒng)的各種實施例的敘述可見,存在著用于減少產(chǎn)生偽隨機(jī)位序列所需特定邏輯硬件數(shù)量的方法和裝置,除其它參數(shù)以外,該硬件數(shù)量是選定數(shù)量的密鑰位的函數(shù),并用于對數(shù)字信息流進(jìn)行加密,該系統(tǒng)包括在程序控制下對一個在傳統(tǒng)的微處理器集成電路芯片中通常存在的通用算術(shù)及邏輯單元(ALU)進(jìn)行時分操作。該系統(tǒng)通過預(yù)先計算和在存儲器中存儲一組數(shù)目大于原輸入密鑰位的數(shù)字值,針對選定的對密鑰字的依賴性的復(fù)雜程度,使每一輸出位所需的ALU運(yùn)算數(shù)減至最小。每一存儲的數(shù)字值,是密鑰位的差分復(fù)值邏輯函數(shù),最好還是其它參數(shù)的函數(shù)。存在存儲器中的數(shù)字值由其后的計算級用作查找表,多次執(zhí)行該計算級以產(chǎn)生大量的偽隨機(jī)輸出位。
應(yīng)當(dāng)理解,本發(fā)明系統(tǒng)的偽隨機(jī)位序列發(fā)生器在數(shù)字值的預(yù)先計算中可以采用許多變量,以及密鑰位。例如,下列參數(shù)可用于這一目的信息號,發(fā)信者標(biāo)識碼或電話號、預(yù)期接收通信者的標(biāo)識碼或電話號、時間-日期、日期、信息起始時的計數(shù)器值、呼叫號、通信者之間交換的隨機(jī)號碼、或者是發(fā)信者于接收者有辦法商定的任何其它位或數(shù)量。
基于上述討論,顯然,本系統(tǒng)使用預(yù)先計算過并存入的數(shù)字值,而這是通過第一次使很多觸發(fā)器或寄存器級的狀態(tài)初始化來實現(xiàn)的,這些寄存器或觸發(fā)器級形成組合邏輯電路的輸入,后者計算一組值的下一狀態(tài)。一旦完成下一狀態(tài)的計算后,隨后就將計算得到的值送入各寄存器級,這些新的值由組合邏輯用作新的起始狀態(tài),重復(fù)產(chǎn)生一連串附加的狀態(tài),其邏輯值被進(jìn)一步組合以形成所希望的輸出偽隨機(jī)位序列。
觸發(fā)器或寄存器級被初始到一個至少依賴于當(dāng)前正產(chǎn)生的該組偽隨機(jī)位的一個標(biāo)識碼或分組計數(shù)的值,最好是依賴于通信者之間商定的其它參數(shù),例如某些或全部密鑰位。初始值的這種依賴性最好但不是必須,對每一同樣的分組標(biāo)識號碼產(chǎn)生同樣的初始寄存器狀態(tài)。
根據(jù)在各連續(xù)狀態(tài)之間進(jìn)行的寄存器/組合邏輯狀態(tài)器的各次轉(zhuǎn)換產(chǎn)生的子群位,不僅是寄存器狀態(tài)的函數(shù),而且也是該子群在當(dāng)前正在由該機(jī)器產(chǎn)生的偽隨機(jī)位組內(nèi)的位置的函數(shù)。狀態(tài)器被確保對用于使?fàn)顟B(tài)器的各寄存器級初始化的各不同分組的標(biāo)識標(biāo)碼或分組號,在一具體分組產(chǎn)生同樣序列的偽隨機(jī)位,而這是通過確保使不同的起始級在其后的重復(fù)中不能達(dá)到同樣的中間狀態(tài)來實現(xiàn)的。
由上述討論還可以得知,本發(fā)明的狀態(tài)器,很多連接到組合邏輯電路的寄存器級組成,并采用具有任意內(nèi)容的密鑰依賴性查找表,該狀態(tài)器在不斷的重復(fù)中顯示其周期性行為。通過使寄存器級中的子群執(zhí)行確定的循環(huán)序列,例如有規(guī)則地以至少某個最小長度增大的二進(jìn)制計數(shù)序列,來確保最小循環(huán)長度。該狀態(tài)器內(nèi)還包括一個或多個通信者商定的固定查找表,這些表從輸入地址至輸出地址值有著1∶1的映射特性,所以可以逆轉(zhuǎn)。
上面的說明僅表示本發(fā)明的的某些具體實施例。然而,本領(lǐng)域內(nèi)技術(shù)人員會認(rèn)識到,不離開本發(fā)明的精神和范圍可作出許多修改和變化。當(dāng)然,應(yīng)當(dāng)清楚地明白,這里敘述的本發(fā)明的形式僅是例子,并不打算如下列權(quán)利要求書中規(guī)定的那樣作為對本發(fā)明范圍的限制。
權(quán)利要求
1.一種產(chǎn)生用于加密數(shù)字?jǐn)?shù)據(jù)的偽隨機(jī)位序列的方法,其中所述的位序列是多個選定的密鑰位的函數(shù),所述的方法包括產(chǎn)生一組多位值,每一個值是至少某些所述選定的密鑰位的函數(shù);把每一所述一組多位值存入存儲器中一個離散位置;通過響應(yīng)于每一運(yùn)算循環(huán)增大寄存器中包含的當(dāng)前值,在所述寄存器中產(chǎn)生一系列值;按照預(yù)先選定的第一算法周期地計算一系列多位值,每一個值是至少一個存在所述存儲器中的多位值和所述寄存器中所含值的函數(shù);周期地用作為每次計算結(jié)果所得到的值對所述寄存器的內(nèi)容復(fù)位;周期地取出一個多位密鑰字,它是作為每次計算結(jié)果所得到的值的函數(shù);依次把所述多位密鑰字組合成所述的偽隨機(jī)位序列。
2.如權(quán)利要求1的方法,其特征在于,所述產(chǎn)生一組多位值的步驟包括,產(chǎn)生每一個均為所述選定的所有密鑰位函數(shù)的各個值。
3.如權(quán)利要求1的方法,其特征在于,包括周期性地使所述寄存器內(nèi)容初始化的附加步驟。
4.如權(quán)利要求1的方法,其特征在于,所述產(chǎn)生一組多位值的步驟包括,產(chǎn)生每一個是至少某些選定的密碼位和一個計數(shù)器中所含值這兩者的函數(shù)的各個值,所述計數(shù)器的值以比所述計算的周期性重復(fù)慢的速率周期性地增加。
5.如權(quán)利要求1的方法,其特征在于,所述在寄存器中產(chǎn)生一系列值的步驟包括,把一組離散的數(shù)據(jù)字節(jié)存在所述寄存器中,并響應(yīng)于每一運(yùn)算循環(huán)僅增大一個所述字節(jié)。
6.如權(quán)利要求5的方法,其特征在于,所述在寄存器中產(chǎn)生一系列值的步驟包括,把三個離散字節(jié)的數(shù)據(jù)存入所述寄存器,并且響應(yīng)于每一運(yùn)算循環(huán)僅增大一個所述字節(jié)。
7.如權(quán)利要求5的方法,其特征在于,所述計算一系列多位值的步驟包括,按照某個算法進(jìn)行所述計算,在該算法中,每一計算得到的值是至少兩個分別存放在所述存儲器的兩個離散位置中的多位值和至少一個在所述寄存器內(nèi)的所含的所述離散字節(jié)的數(shù)據(jù)的函數(shù)。
8.如權(quán)利要求7的方法,其特征在于,所述計算一系列多位值的步驟包括,按照至少三種獨立的算法進(jìn)行所述計算,其中,用第一算法計算得到的每一值是至少兩個分別存在所述存儲器中兩離散位置的多位值和在所述寄存器中含的第一個所述離散字節(jié)的數(shù)據(jù)的函數(shù);用第二算法計算得到的每個值是存在預(yù)先選擇的查找表中一個離散位置的一個多位值和在所述寄存器中包含的第二個所述離散字節(jié)的數(shù)據(jù)的函數(shù);用第三算法計算得到的每個值是所述寄存器中所含第三個離散字節(jié)的數(shù)據(jù)和加在那里的一個增值的函數(shù)。
9.如權(quán)利要求8的方法,其特征在于,所述第一算法是A'=A?!睰(B)+K(C)〕這里,A是第一個所述離散字節(jié)數(shù)據(jù)的值;K(B)和K(C)表示,B和C分別是所述存儲器中取得值K的地址;+表示按字長模的加法;#表示按字長模相加或與整個字長逐位異或;所述第二算法是B'=B#R(A)這里,B是第二個所述離散字節(jié)數(shù)據(jù)的值;R(A)表示,A是固定查找表中由此取得值R的地址,或表示A的各位要用作將給出輸出R的組合邏輯塊的輸入;#表示按字長模相加或與整個字長逐位異或;所述第三算法是C'=C+1這里,C是第三個所述離散字節(jié)數(shù)據(jù)的值;+表示按字長模相加。
10.如權(quán)利要求9的方法,其特征在于,得到用于R的值的查找表或組合邏輯,具有一系列輸出位至少等于A的字長,小于或等于B的字長。
11.如權(quán)利要求10的方法,其特征在于,查找表的輸入位的每一可能狀態(tài)映射為R的同樣輸出值。
12.如權(quán)利要求5的方法,其特征在于,在寄存器中產(chǎn)生一系列值的所述步驟包括,把三個離散字節(jié)的數(shù)據(jù)存入所述寄存器,所述計算一系列多位值的步驟包括,計算三個離散的值,所述周期地復(fù)位所述寄存器內(nèi)容的步驟包括,在所述寄存器中用由每一計算步驟得到的所述三個離散計算值對應(yīng)地取代每一所述三個離散字節(jié)的數(shù)據(jù)。
13.如權(quán)利要求12的方法,其特征在于,所述周期地取出多位密鑰字的步驟包括,從所述三個離散的計算值中選擇至少一個作為所述密鑰字。
14.如權(quán)利要求12的方法,其特征在于所述周期地取出多位密鑰字的步驟包括,從所述三個離散的計算值中選擇至少一個,并按照第二算法計算所述密鑰字,其中,所述密鑰字是所述至少一個計算值的函數(shù)。
15.如權(quán)利要求14的方法,其特征在于包括在順序的密鑰字的每一密鑰組開始時使所述寄存器中值初始化的附加步驟,以及,所述第二算法把所述密鑰字限定為至少一個按照所述第一算法算出的值以及正在計算的該特定的密鑰字在該密鑰組內(nèi)順序位置的函數(shù)。
16.如權(quán)利要求14的方法,其特征在于,包括在順序密鑰字的每一密鑰組開始時使所述寄存器中值初始化的附加步驟,以及所述周期性地取出多位密鑰字的步驟包括,從所述三個離散的計算值中只選擇一個,并且,所述第二算法為W(N)=B+'K〔A+N〕這里,W(N)是所要計算的密鑰字;N是密鑰組內(nèi)被計算的特定密鑰字的順序位置;A是第一個所述離散字節(jié)的數(shù)據(jù)的值,B是第二個所述離散字節(jié)的數(shù)據(jù),+表示異或,K〔A+N〕表示,A和N的異或組合用作存儲器中取出K值的地址;+'可以是異或,或者是按字長模相加。
17.如權(quán)利要求14的方法,其特征在于,包括在依次的密鑰字的每一密鑰組開始時使所述寄存器中值初始化的附加步驟,所述周期地取出多位密鑰字的步驟包括從所述三個離散的計算值中只選一個,并且,所述第二算法是W(N)=B+K〔R(A+N)〕這里W(N)是所要計算的密鑰字;N是密鑰組內(nèi)被計算的特定密鑰字的依順位置;A是第一個所述離散字節(jié)的數(shù)據(jù)的值;B是第二個所述離散字節(jié)的數(shù)據(jù),R(A+N)表示,A+N是固定查找表中由此取出值R的地址,或表示A+N的各位要用作將給出輸出R的組合邏輯塊的輸入;+表示異或;K〔R+(A+N)〕表示,查找表內(nèi)在A和N異或組合的地址處找到的值R要用作存儲器中由此取得值K的地址。
18.如權(quán)利要求14的方法,其特征在于,包括在依次的密鑰字的每一密鑰的開始時使所述寄存器中值初始化的附加步驟,所述周期性地取出多位密鑰字的步驟包括從所述三個離散的計算值中僅選擇一個。并且,所述第二算法是W(N)=R〔A+N〕+K〔B+N〕這里,W(N)是所要計算的密鑰字;N是密鑰組內(nèi)被計算的特定密鑰字的依次位置;A是第一個所述離散字節(jié)的數(shù)據(jù)的值,B是第二個所述離散字節(jié)的數(shù)據(jù),R〔A+N〕表示,A+N是固定查找表中由此取出值R的地址;或表示A+N的各位要用作將給出輸出R的組合邏輯塊的輸入;+表示異或;K(B+N)表示,B和N的異或組合的地址要用作存儲器中由此取出值K的地址。
19.一種產(chǎn)生用于加密數(shù)字?jǐn)?shù)據(jù)的偽隨機(jī)位序列的系統(tǒng),其中,所述位序列是多個選定的密鑰位的函數(shù),所述系統(tǒng)包括用于產(chǎn)生一組多位值的裝置,每一個值是至少某些所述選定的密鑰位的函數(shù);用于把每一所述一組多位值存入存儲器中一個離散位置的裝置;用于響應(yīng)于每一運(yùn)算循環(huán)增大寄存器中包含的當(dāng)前值、在所述寄存器中產(chǎn)生一系列值的裝置;用于按照預(yù)先選定的第一算法周期地計算一系列多位值的裝置,每一個值是至少一個存在所述存儲器中的多位值和所述寄器中所含值的函數(shù);用于周期地用作為每次計算結(jié)果所得到的值復(fù)位所述寄存器內(nèi)容的裝置;用于周期地取出一個多位密鑰字的裝置,該密鑰字是作為每次計算結(jié)果所得到的值的函數(shù);用于依次把所述多位密鑰字組合成所述偽隨機(jī)位序列的裝置。
20.如權(quán)利要求19的系統(tǒng),其特征在于,所述用于產(chǎn)生一組多位值的裝置包括,用于產(chǎn)生每一個均為所述選定的所有密鑰位函數(shù)的各個值的裝置。
21.如權(quán)利要求19的系統(tǒng),其特征在于,進(jìn)一步包括用于周期地使所述寄存器內(nèi)容初始化的裝置。
22.如權(quán)利要求19的系統(tǒng),其特征在于,所述用于產(chǎn)生一組多位值的裝置包括,用于產(chǎn)生各是至少某些選定的密鑰位和一個計數(shù)器中所含值這兩者函數(shù)的各個值的裝置,所述計數(shù)器的值以比所述計算的周期性重復(fù)慢的速率周期地增加。
23.如權(quán)利要求19的系統(tǒng),其特征在于,所述在寄存器中產(chǎn)生一系列值的裝置包括,用于把一組離散字節(jié)的數(shù)據(jù)存在所述寄存器中的裝置和用于響應(yīng)于每一運(yùn)算循環(huán)僅增大一個所述字節(jié)的裝置。
24.如權(quán)利要求23的系統(tǒng),其特征在于,所述用于在寄存器中產(chǎn)生一系列值的裝置包括,用于把三個離散字節(jié)的數(shù)據(jù)存在寄存器中的裝置,以及響應(yīng)于每一運(yùn)算循環(huán)僅增大一個所述字節(jié)的裝置。
25.如權(quán)利要求23的系統(tǒng),其特征在于,所述用于計算一系列多位值的裝置包括用于按照某個算法計算所述值的裝置,在該算法中,每一計算值是兩個分別存在所述存儲器中兩離散位置的多位值和至少一個所述寄存器中包含的所述離散字節(jié)的數(shù)據(jù)的函數(shù)。
26.如權(quán)利要求25的系統(tǒng),其特征在于,所述計算一系列多位值的裝置包括,按照三種獨立算法進(jìn)行所述計算的裝置,其中,用第一算法計算得到的每一值是兩個分別存在所述存儲器中兩離散位置的多位值和所述寄存器中所含第一個所述離散字節(jié)的數(shù)據(jù)的函數(shù);用第二算法計算得到的每個值是存在預(yù)先選擇的查找表中一個離散位置的一個多位值和所述寄存器中所含第二個所述所述離散字節(jié)的數(shù)據(jù)的函數(shù);用第三算法計算得到的每個值是所述寄存器中所含第三個離散字節(jié)的數(shù)據(jù)和其增值的函數(shù)。
27.如權(quán)利要求26的系統(tǒng),其特征在于,所述第一算法是A'=A?!睰(B)+K(C)〕這里,A是第一個所述離散字節(jié)的數(shù)據(jù)的值;K(B)和K(C)表示,B和C分別是所述存儲器中取得值K的地址;+表示按字長模的加法;#表示按字長模相加或與整個字長逐位異或;所述第二算法是B'=B#R(A)這里,B是第二個所述離散字節(jié)的數(shù)據(jù)的值;R(A)表示,A是固定查找表中由此取得值R的地址,或表示A的各位要用作將給出輸出R的組合邏輯塊的輸入;#表示按字長模相加或與整個字長逐位異或;所述第三算法是C'=C+1這里,C是第三個所述離散字節(jié)的數(shù)據(jù);+表示按字長模相加。
28.如權(quán)利要求27的系統(tǒng),其特征在于,得到用于R的值的查找表或組合邏輯電路,具有一系列輸出位,至少等于A的字長,并小于或等于B的字長。
29.如權(quán)利要求28的系統(tǒng),其特征在于,查找表輸入位的每一可能狀態(tài)映射為R的同樣輸出值。
30.如權(quán)利要求23的系統(tǒng),其特征在于,在寄存器中產(chǎn)生一系列值的所述裝置包括用于把三個離散字節(jié)的數(shù)據(jù)存入所述寄存器的裝置;所述用于計算一系列多位值的裝置包括,用于計算三個離散值的裝置;所述用于周期地復(fù)位所述寄存器內(nèi)容的裝置包括,用于在所述寄存器中用由每一計算步驟得到的對應(yīng)的所述三個離散的計算值取代每一所述三個離散字節(jié)的數(shù)據(jù)的裝置。
31.如權(quán)利要求30的系統(tǒng),其特征在于,所述用于周期地取出多位密鑰字的裝置包括用于從所述三個離散計算值中選擇至少一個作為所述密鑰字的裝置。
32.如權(quán)利要求30的系統(tǒng),其特征在于,所述用于周期地取出多位密鑰字的裝置包括,用于從所述三個離散的計算值中選擇至少一個的裝置和用于按照第二算法計算所述密鑰字的裝置,其中,所述密鑰字是所述至少一個計算值的函數(shù)。
33.如權(quán)利要求32的系統(tǒng),其特征在于,還包括用于在順序的密鑰字的每一密鑰組開始時使所述寄存器中值初始化的裝置,以及,所述第二算法把所述密鑰字限定為至少一個按照所述第一算法算出的值以及被計算的該特定的密鑰字在該密鑰組內(nèi)順序位置的函數(shù)。
34.如權(quán)利要求32的系統(tǒng),其特征在于,還包括用于依次的密鑰字的每一密鑰組開始時使所述寄存器中值初始化的裝置,所述用于周期性地取出多位密鑰字的裝置包括用于從所述三個離散的計算值中只選擇一個的裝置,并且,所述第二算法為W(N)=B+'K〔A+N〕這里,W(N)是所要計算的密鑰字;N是密鑰組內(nèi)被計算的特定密鑰字的依次位置;A是第一個所述離散字節(jié)的數(shù)據(jù)的值;B是第二個所述離散字節(jié)的數(shù)據(jù);+表示異或,K〔A+N〕表示,A和N的異或組合用作存儲器中取出K值的地址;+'可以是異或,或者是按字長模相加。
35.一種數(shù)字蜂窩式通信系統(tǒng),其中,由基地站和移動站發(fā)送和接收的數(shù)字?jǐn)?shù)據(jù)流被加密編碼以保證電信的安全,所述系統(tǒng)包括用于把二進(jìn)制位的偽隨機(jī)密鑰流加到載有系統(tǒng)中每一發(fā)射機(jī)和接收機(jī)的數(shù)字信號的信息上,以產(chǎn)生要在所述系統(tǒng)中發(fā)送和接收的數(shù)字?jǐn)?shù)據(jù)流的裝置,用于產(chǎn)生作為多個選定的密鑰位函數(shù)的所述二進(jìn)制位的偽隨機(jī)密鑰流的裝置,它包括用于產(chǎn)生一組多位值的裝置,每一多位值是所述選定的密鑰位中至少某些的函數(shù);用于把每一所述多位值存在存儲器的離散位置中的裝置;用于通過響應(yīng)于每一運(yùn)算循環(huán)增大一個寄存器中包含的當(dāng)前值而在所述寄存器中產(chǎn)生一系列值的裝置用于按照第一預(yù)定算法周期地計算一系列多位值的裝置,其中每一值是至少一個存在所述存儲器中多位值和所述寄存器中所含值的函數(shù);用于周期地用作為每次計算結(jié)果所得到的值復(fù)位所述寄存器內(nèi)容的裝置;用于周期地取出一個多位密鑰字的裝置,所述密鑰字是作為每次計算結(jié)果所得到的值的函數(shù);以及用于依次把所述多位密鑰字組合成所述二進(jìn)制位的偽隨機(jī)密鑰流的裝置。
36.如權(quán)利要求35的系統(tǒng),其特征在于,所述用于產(chǎn)生一組多位值的裝置包括,用于產(chǎn)生各為所有所述選定的密鑰位函數(shù)的值的裝置。
37.如權(quán)利要求35的系統(tǒng),其特征在于,進(jìn)一步包括用于使所述寄存器內(nèi)容周期地初始化的裝置。
38.如權(quán)利要求35的系統(tǒng),其特征在于,所述用于產(chǎn)生一組多位值的裝置包括,用于產(chǎn)生各為至少某些所述選定的密鑰位和計數(shù)器中所含值這兩者函數(shù)的各個值的裝置,所述計數(shù)器中的值以比所述計算的周期性重復(fù)為慢的速率周期地增大。
39.如權(quán)利要求35的系統(tǒng),其特征在于,所述用于在寄存器中產(chǎn)生一系列值的裝置包括,用于在所述寄存器中存儲一組離散字節(jié)的數(shù)據(jù)的裝置和用于響應(yīng)于每一運(yùn)算循環(huán)僅增大所述字節(jié)中一個的裝置。
40.如權(quán)利要求39的系統(tǒng),其特征在于,所述用于在寄存器中產(chǎn)生一系列值的裝置包括,用于把三個離散字節(jié)的數(shù)據(jù)存在所述寄存器中的裝置,以及用于響應(yīng)于每一運(yùn)算循環(huán)僅增大所述字節(jié)中一個的裝置。
41.如權(quán)利要求39的系統(tǒng),其特征在于,所述用于計算一系列多位值的裝置包括,用于按照某一算法計算所述值的裝置,在該算法中,每一計算值是兩個分別存在所述存儲器中兩離散位置的多位值和至少一個所述寄存器中包含的所述離散字節(jié)的數(shù)據(jù)的函數(shù)。
42.一種減少產(chǎn)生用于對數(shù)據(jù)信息流加密的偽隨機(jī)位序列所需邏輯硬件數(shù)量的方法,所述位序列是多個選定的密鑰位的函數(shù),所述方法包括在存儲器中存儲一組其數(shù)目大于選定的密鑰位數(shù)目的數(shù)字值,每一數(shù)字值是至少某些所述密鑰位的邏輯函數(shù);采用通用微處理器在程序控制下反復(fù)計算一系列多位值,每一多位值是至少一個存在存儲器中的數(shù)字值的函數(shù);并且把所述計算得到的一系列值組成所述偽隨機(jī)位序列。
全文摘要
一種產(chǎn)生用于在數(shù)據(jù)傳輸或存儲之前對數(shù)字?jǐn)?shù)據(jù)進(jìn)行加密的偽隨機(jī)位序列的系統(tǒng)。通過以適合于使用傳統(tǒng)微處理器算術(shù)邏輯單元(ALU)的方法擴(kuò)充多個密鑰位來產(chǎn)生位序列。本發(fā)明的系統(tǒng)可用于例如保證數(shù)字蜂窩式通信系統(tǒng)中基地站與移動站之間語音或數(shù)據(jù)通信的安全。
文檔編號G09C1/00GK1059999SQ9110501
公開日1992年4月1日 申請日期1991年7月20日 優(yōu)先權(quán)日1990年7月20日
發(fā)明者保羅·登特 申請人:埃利克遜Ge汽車交通控股股份有限公司