專利名稱:消息鑒別碼的加密整數(shù)置換的生成的制作方法
背景技術(shù):
I.發(fā)明領(lǐng)域本發(fā)明一般屬于通信領(lǐng)域并尤其涉及在用于消息鑒別碼的模N整數(shù)集合上構(gòu)造加密置換。
II.背景消息鑒別碼(MAC)是由密碼上得到的項(xiàng),為了檢驗(yàn)從特定用戶產(chǎn)生的消息它可附加于特定消息,并且它不由任何其他用戶改變。毫無(wú)疑問(wèn)MAC用于許多通信領(lǐng)域。示例的領(lǐng)域是無(wú)線通信。
無(wú)線通信領(lǐng)域具有許多應(yīng)用,包括例如無(wú)繩電話、尋呼、無(wú)線本地環(huán)路、諸如個(gè)人數(shù)字助理(PDA)的無(wú)線數(shù)據(jù)應(yīng)用、諸如蜂窩和PCS電話系統(tǒng)的無(wú)線電話、移動(dòng)因特網(wǎng)協(xié)議(IP)電話以及衛(wèi)星通信系統(tǒng)。特別重要的應(yīng)用是移動(dòng)用戶的無(wú)線電話。
開發(fā)了各種空中接口用于無(wú)線通信系統(tǒng),包括頻分多址(FDMA)、時(shí)分多址(TDMA)和碼分多址(CDMA)。在與它們的連接中,建立了各種國(guó)內(nèi)和國(guó)際的標(biāo)準(zhǔn),包括例如高級(jí)移動(dòng)電話業(yè)務(wù)(AMPS)、全球移動(dòng)通信系統(tǒng)(GSM)和臨時(shí)標(biāo)準(zhǔn)95(IS-95)。
示例的無(wú)線電話通信系統(tǒng)是碼分多址(CDMA)系統(tǒng)。由電信工業(yè)協(xié)會(huì)(TIA)或其他熟知的標(biāo)準(zhǔn)實(shí)體發(fā)布IS-95標(biāo)準(zhǔn)和它的派生IS-95A、ANSI J-STD-008、IS-95B、所提出的第三代標(biāo)準(zhǔn)IS-95C和IS-2000、所提出的數(shù)據(jù)專用CDMA標(biāo)準(zhǔn)來(lái)指定蜂窩或PCS電話通信系統(tǒng)的CDMA空中接口的使用。在美國(guó)專利第5103459號(hào)以及第4901307號(hào)中描述了大致根據(jù)IS-95標(biāo)準(zhǔn)使用配置的示例無(wú)線通信系統(tǒng),它已轉(zhuǎn)讓給本發(fā)明的受讓人并通過(guò)引用完整合并在這里。
對(duì)通過(guò)無(wú)線系統(tǒng)發(fā)送的數(shù)據(jù)進(jìn)行加密的一種方法是數(shù)據(jù)加密標(biāo)準(zhǔn)(DES),它由國(guó)家標(biāo)準(zhǔn)與技術(shù)學(xué)會(huì)在FIPS PUB 46-2(1993年12月30日)中發(fā)布,它采用Feistel網(wǎng)絡(luò)把二進(jìn)制編碼信息轉(zhuǎn)換為密碼。在DES中使用Feistel網(wǎng)絡(luò)轉(zhuǎn)換長(zhǎng)度為64位的數(shù)據(jù)塊。首先,對(duì)數(shù)據(jù)64位塊進(jìn)行初始置換步驟。把所置換的數(shù)據(jù)塊分為兩半長(zhǎng)度為32位,其中一個(gè)塊標(biāo)為L(zhǎng)另一個(gè)標(biāo)為R。隨后使用以下關(guān)系對(duì)塊進(jìn)行迭代過(guò)程Li=RI-1,Ri=Li-1f(Ri-1,Ki)其中Ki是用于第i循環(huán)的子密鑰,而f是任意函數(shù)。函數(shù)f也稱作為“循環(huán)”函數(shù),由于每個(gè)迭代步驟稱為循環(huán)。在DES算法中,循環(huán)函數(shù)f由四個(gè)操作組成。首先從56位密鑰選擇48位子密鑰。隨后循環(huán)函數(shù)f包括通過(guò)擴(kuò)充置換把數(shù)據(jù)的右半塊從32位擴(kuò)充到48位的步驟、通過(guò)異或運(yùn)算把這個(gè)結(jié)果與48位子密鑰結(jié)合的步驟、通過(guò)8個(gè)替換框發(fā)送結(jié)果的步驟(它產(chǎn)生32個(gè)附加位)以及置換結(jié)果的步驟。通過(guò)另一異或運(yùn)算把函數(shù)f的輸出與左半塊結(jié)合,并且結(jié)果用作新的右半塊,同時(shí)舊的右半塊用作下一循環(huán)的新的左半塊。DES循環(huán)是可逆的,因?yàn)樵诿總€(gè)循環(huán)中可以重新構(gòu)造f以滿足關(guān)系式Li-1f(Ri-1,Ki)f(Ri-1,Ki)=Li-1。
由于數(shù)據(jù)塊的二進(jìn)制格式,諸如DES現(xiàn)有技術(shù)方法把明碼文本消息(它的元素是n項(xiàng)笛卡爾積Z2×Z2×...×Z2集合的項(xiàng))加密為加密文本消息(它的元素也是n項(xiàng)笛卡爾積Z2×Z2×...×Z2集合的項(xiàng))。如這里所采用的,Zm是模m加法下的循環(huán)集合{0,1,...,m-1}。因此,DES的目的不是改變明碼文本(例如初始數(shù)據(jù))消息中的位順序,而是產(chǎn)生密碼文本,其中密碼文本的每個(gè)位都依照明碼文本的所有位。
由于DES是可逆的并在密鑰的控制下把264個(gè)輸入轉(zhuǎn)換為264輸出,所以DES也可以看作用于密鑰來(lái)選擇整數(shù)集合{0,1,...,264-1}置換的方法,這樣由密鑰選擇的置換必須保持對(duì)非授權(quán)用戶的隱藏。
在一般通信中,MAC是函數(shù)的輸出,其中消息和只由消息發(fā)出者和接收者知道的共用密鑰K是函數(shù)的輸入。如果所選的特定函數(shù)是固定的,那么可以中斷及潛在修改所發(fā)送消息的活動(dòng)攻擊者不會(huì)發(fā)現(xiàn)密鑰K,也不會(huì)產(chǎn)生具有合理概率有效地由接收者接受的消息。
一種新的MAC在1999年8月9日提交的美國(guó)專利申請(qǐng)09/371147題為《METHODAND APPARATUS FOR GENERATING A MESSAGE AUTHENTICATION CODE》的專利申請(qǐng)中提出,它已轉(zhuǎn)讓給本發(fā)明的受讓人并通過(guò)引用在這里合并,其中MAC依賴于在一些密鑰的影響下對(duì)m位數(shù)據(jù)塊的位進(jìn)行重新排序,并依賴于構(gòu)造x位的循環(huán)冗余校驗(yàn)(CRC),它是重排序m位塊的線性函數(shù)。這個(gè)MAC稱作為CRC-MAC。發(fā)送者把初始m位數(shù)據(jù)塊連同CRC-MAC發(fā)送給接收者。接收者使用共用密鑰來(lái)對(duì)所接收的數(shù)據(jù)消息進(jìn)行重新排序。隨后接收者從最終塊中計(jì)算CRC。采用這個(gè)方法,接收機(jī)能檢測(cè)在發(fā)送中是否改變了數(shù)據(jù),并修正在發(fā)送期間產(chǎn)生的少量差錯(cuò),同時(shí)使活動(dòng)攻擊者仍舊難以偽造或改變消息。
熟知當(dāng)m+x=2x-1-1時(shí)m和x是最佳的。在美國(guó)專利申請(qǐng)09/371147中詳細(xì)討論了x位CRC-MAC的構(gòu)造。本領(lǐng)域的普通技術(shù)人員知道16位CRC是特定用于無(wú)線通信領(lǐng)域的。使用以上關(guān)系式中數(shù)x=16,用于構(gòu)造CRC-MAC的數(shù)據(jù)塊最佳容量是m=(215-1)-16=32751位。
如上對(duì)于m和x的最佳值所示,CRC-MAC需要使用密鑰通過(guò)對(duì)初始m位數(shù)據(jù)塊的位進(jìn)行重新排序構(gòu)造m位中間塊的方法,其中m=(2x-1-1)。如美國(guó)專利申請(qǐng)19/371147中所述,可以使用兩種算法進(jìn)行m位中間塊的構(gòu)造。第一算法處理m位數(shù)據(jù)塊的每個(gè)位位標(biāo)。對(duì)于與m位數(shù)據(jù)塊每位位置相關(guān)的每個(gè)位標(biāo)x,第一算法進(jìn)行第二算法以確定與x相同范圍中的唯一位標(biāo)y,其中y是從x共用密鑰確定的。隨后第一算法把中間塊的位位置y的值設(shè)為數(shù)據(jù)塊位置x的位值。
在第一算法對(duì)范圍{0,1,...,m-1}中的每個(gè)位標(biāo)x進(jìn)行這些步驟后,中間塊將是包含不同順序數(shù)據(jù)塊位的m位塊。對(duì)于固定的CRC-MAC,對(duì)任何給定密鑰第一算法在中間塊的相同位置不放置來(lái)自數(shù)據(jù)塊的兩位。只有當(dāng)對(duì)每個(gè)密鑰第二算法限定集合{0,1,...,m-1}到它上面的一對(duì)一映射才滿足條件。本領(lǐng)域中通常把一對(duì)一映射稱為置換。因此,CRC-MAC需要使用密鑰限定在集合{0,1,...,m-1}上的置換。此外,由密鑰選擇的置換必須保持對(duì)非授權(quán)用戶的隱藏。
DES可看作使用密鑰確定在整數(shù)集合{0,1,...,264-1}上置換的方法,這樣由密鑰選擇的置換必須對(duì)非授權(quán)用戶保持隱藏。如果m的值是264,那么DES要滿足第二算法的需求。然而DES和其他塊的密碼不能用作第二算法,因?yàn)檫@樣的密碼只為了產(chǎn)生順序2M集合之間的一對(duì)一關(guān)系而構(gòu)造,并不限定其他順序的集合之間的一對(duì)一關(guān)系。另外,塊密碼的特性滿足第二算法所需條件,而第二算法為了相同的安全概念而實(shí)現(xiàn)。
諸如RSA算法以及El-Gamal算法的一些公共密鑰算法揭示了用于密鑰限定對(duì)于某個(gè)N值而不是2的冪的ZN上的置換。然而,這些方法不應(yīng)與CRC-MAC一起使用,因?yàn)檫@些公共密鑰對(duì)于較小值的N(比如32751)是不安全的。對(duì)于CRC-MAC所需N的值,由密鑰選擇的置換必須對(duì)非授權(quán)用戶隱藏。
因此,當(dāng)前存在一種用于CRC-MAC置換大量數(shù)據(jù)位N的需要。在以上所述的最佳情況中,數(shù)據(jù)塊應(yīng)該保持32751位。如上所述,置換N位需要一種用于限定集合{0,1,...,N-1}=ZN上置換的密鑰的方法,這樣由密鑰選擇的置換保持對(duì)非授權(quán)組的隱藏。需要這樣的方法應(yīng)用于任何N的值,其中N可以是質(zhì)數(shù)也可以是合數(shù)。質(zhì)數(shù)是大于1的整數(shù),它的因數(shù)只有1和它本身。合數(shù)是大于1的不是質(zhì)數(shù)的整數(shù)。這樣的方法可應(yīng)用于超越電信系統(tǒng)中消息授權(quán)和糾錯(cuò)的各種應(yīng)用。
發(fā)明概述當(dāng)N的值不是2的冪時(shí),本發(fā)明針對(duì)一種方法的需求,其中密鑰限定集合ZN上的置換,這樣由密鑰選擇的置換保持對(duì)非授權(quán)用戶的隱藏。本發(fā)明應(yīng)用于所有大于或等于13的整數(shù)。根據(jù)N是合數(shù)還是質(zhì)數(shù)使用不同的方法。
本發(fā)明針對(duì)一種置換N位數(shù)據(jù)塊的方法,其中N位塊的每位與多個(gè)N位標(biāo)中的位標(biāo)相關(guān)。如果N是合數(shù),并且N能被分解為大于1的整數(shù)p和大于1的整數(shù)q,那么本發(fā)明就針對(duì)一種通過(guò)進(jìn)行幾個(gè)循環(huán)從輸入值中得到輸出值的方法,每個(gè)循環(huán)包括的步驟有把輸入值分為第一部分和第二部分,其中的第一部分通過(guò)集合Zp構(gòu)造,而第二部分通過(guò)集合Zq構(gòu)造,并且輸入值表示為第二部分和第一部分的組合,其中的第一部分乘以整數(shù)q;構(gòu)造第一半循環(huán)密鑰和第二半循環(huán)密鑰;從第二部分和第一半循環(huán)密鑰中得到第一半循環(huán)值,其中第一半循環(huán)值是在第二部分和第一半循環(huán)密鑰上運(yùn)算的第一非線性函數(shù)的輸出;使用模p加法器組合第一半循環(huán)值和第一部分以產(chǎn)生第三部分;從第三部分和第二半循環(huán)密鑰地到第二半循環(huán)值,其中第二半循環(huán)值是在第三部分和第二半循環(huán)密鑰上運(yùn)算的第二非線性函數(shù)的輸出;使用模q加法器組合第二半循環(huán)值和第二部分;以及通過(guò)把第三部分乘以整數(shù)q并之后加上第二半循環(huán)值從循環(huán)中構(gòu)造輸出值。
如果N是質(zhì)數(shù),并且大于13,那么N被寫成兩個(gè)合數(shù)S和T的和,這樣集合ZN就分為兩個(gè)集合A和B,其中集合A中的元素?cái)?shù)等于S,而集合B中的元素?cái)?shù)等于T。用于合數(shù)N的以上方法可用于限定關(guān)于集合A的置換以及限定關(guān)于集合B的置換,其中通過(guò)近幾個(gè)循環(huán)從輸入值得到輸出值,其中每個(gè)由質(zhì)數(shù)循環(huán)和混合循環(huán)組成,還有最終循環(huán)只包含質(zhì)數(shù)循環(huán)。質(zhì)數(shù)循環(huán)包括的步驟有確定循環(huán)輸入值是在集合A中還是集合B中;如果值在集合A中,那么使用由以上所述的循環(huán)密鑰限定的關(guān)于集合A的置換從輸入確定第一值,而如果值在集合B中,那么使用由以上所述的循環(huán)密鑰限定的關(guān)于集合B的置換從輸入確定第一值;而混合循環(huán)包括的步驟把第一值輸入到關(guān)于整個(gè)集合ZN的簡(jiǎn)單置換以產(chǎn)生循環(huán)輸出,其中簡(jiǎn)單置換具有近似把A中的值的S/N映射A中的值的特性。
附圖簡(jiǎn)述
圖1是現(xiàn)有技術(shù)稱為DES的加密計(jì)算的流程圖。
圖2是本發(fā)明實(shí)施例加密計(jì)算的框圖,其中加密計(jì)算使用模p加法器以及模q加法器。
圖3是使用處理器的整數(shù)置換設(shè)備的框圖。
圖4是在Z32752上進(jìn)行加密計(jì)算的框圖。
圖5是示出如在圖4加密計(jì)算中實(shí)現(xiàn)的得到半循環(huán)密鑰K1i和K2i的流程圖。
圖6是在Z32752上進(jìn)行另一加密計(jì)算的框圖。
圖7是示出如在圖6加密計(jì)算中實(shí)現(xiàn)的得到半循環(huán)密鑰K1i和K2i的流程圖。
圖8是本發(fā)明是示例加密計(jì)算的框圖,其中在ZN上進(jìn)行加密計(jì)算且N為質(zhì)數(shù)。
較佳實(shí)施例詳述圖1是如由在FIPS PUB 46-2(1993年12月30日)公布的數(shù)據(jù)加密標(biāo)準(zhǔn)(DES)指定的現(xiàn)有技術(shù)加密算法的框圖。根據(jù)初始置換步驟101對(duì)64位輸入塊100進(jìn)行置換。初始置換步驟101的結(jié)果是塊L0102和塊R0103。
在第一循環(huán),塊R0103和密鑰位塊K1104通過(guò)函數(shù)f105進(jìn)行運(yùn)算。使用模2加法器106組合函數(shù)f105的輸出和塊L0102以形成塊R1113。把塊L1112設(shè)置為等于塊R0103。
在第二循環(huán),塊R1113和密鑰位塊K2114通過(guò)函數(shù)f115進(jìn)行運(yùn)算。使用模2加法器116組合函數(shù)f115的輸出和塊L1112以形成塊R2123。把塊L2122設(shè)置為等于塊R1113。
重復(fù)以上對(duì)于第一循環(huán)和第二循環(huán)所述的過(guò)程直到完成16次循環(huán)。在第n次循環(huán)中,密鑰位塊Kn124和塊Rn通過(guò)函數(shù)f125進(jìn)行運(yùn)算。使用模2加法器126組合這個(gè)運(yùn)算的輸出和塊Ln。在最后循環(huán),把塊R16142和塊L16143輸入到反向初始置換步驟144以形成輸出145。
DES方法操作于位塊,而其他塊加密也操作于位塊。因此,現(xiàn)有技術(shù)的情況針對(duì)于2n的塊容量的加密,其中n一般是塊的位數(shù),本發(fā)明是針對(duì)來(lái)自任意容量集合的值的加密的改進(jìn)。
圖2是本發(fā)明一個(gè)循環(huán)的示例實(shí)施例的框圖,其中在ZN上構(gòu)造加密整數(shù)置換(KIP)且N不是質(zhì)數(shù)。對(duì)于p>1以及q>1使N=pq。把輸入Ci200分為兩個(gè)部分,部分Li210和部分Ri211,這樣Ci=Li_q+Ri,Li∈Zp且Rq∈Zq。部分Ri211和半循環(huán)密鑰K1i212通過(guò)非線性函數(shù)f1213進(jìn)行運(yùn)算以形成半循環(huán)值vi。使用模p加法器215把半循環(huán)值vi加上部分Li以形成部分L’i220。部分L’i220和半循環(huán)密鑰K2i222通過(guò)非線性函數(shù)f2223進(jìn)行運(yùn)算以形成半循環(huán)值v’i。使用模q加法器225把半循環(huán)值v’i加上部分Ri211以得到部分R’i221。通過(guò)等式Ci+1=L’i_q+R’i形成輸出部分Ci+1230。在備選中,部分L’i220和部分R’i221可用于下一個(gè)迭代循環(huán)。
圖2所示的方法是可逆的,即從Ci+1可以確定Ci。首先,把Ci+1分為部分L’i和R’i,滿足關(guān)系式Ci+1=L’i_q+R’i。為了得到R’i,得出v’i=f2(L’i,K2i)并從R’i(模q)減去半循環(huán)值v’i。結(jié)果值是Ri。一旦已知Ri,從計(jì)算vi=f1(Ri,K1i)并在L’i(模p)減去半循環(huán)值vi來(lái)得到值Li。結(jié)果值是Li。由Ci=Li_q+Ri確定Ci的值。
圖3是使用處理器的整數(shù)置換設(shè)備的框圖??刂破?20連接于處理器322并包括指示處理器322操作的指令集合。控制器320可以包括軟件程序或微代碼集合。處理器322是進(jìn)行置換設(shè)備所需操作的硬件。處理器322可實(shí)現(xiàn)為設(shè)計(jì)進(jìn)行這里所述操作的微控制器、微處理器或數(shù)字信號(hào)處理器。存儲(chǔ)器元件324連接到處理器322并用于存儲(chǔ)值和指令。存儲(chǔ)器元件324可實(shí)現(xiàn)為隨機(jī)存取存儲(chǔ)器或其他設(shè)計(jì)為進(jìn)行這里所述操作的存儲(chǔ)設(shè)備。在只讀存儲(chǔ)器或隨機(jī)存取存儲(chǔ)器或任何其他存儲(chǔ)設(shè)備中存儲(chǔ)指令和值。
如在圖2廣泛討論的通過(guò)ZN產(chǎn)生加密整數(shù)置換的方法可根據(jù)p和q的不同選擇而改變。圖4是加密整數(shù)置換方法的一個(gè)循環(huán)實(shí)施例的框圖,其中p=178而q=184,這樣N=32752。此外,數(shù)32752可分解因數(shù)為89×23×24,其中89×2=178而23×24=184。把輸入Ci400分為兩個(gè)部分,部分Li410和部分Ri411,這樣Ci=184_Li+Ri。部分Li410從Li=Cidiv 184(A div B是A÷B的整數(shù)部分)得到。部分Ri411從Ri=Cimod 184得到。
通過(guò)模356乘法器414把部分Ri411與常數(shù)α413相乘以產(chǎn)生乘積u。通過(guò)模356加法器416把乘積u和半循環(huán)密鑰值K1i412相加以產(chǎn)生組合值w。應(yīng)該注意整數(shù)356=2*178。在步驟419,通過(guò)關(guān)系式w=x*m+y把組合值w分解為替換指示符值x和替換輸入值y,其中替換指示符值x是集合Z2的元素,替換輸入值y是集合Zm的元素,并設(shè)m等于p(在特定實(shí)施例中p=178)。替換指示符值x用于選擇兩個(gè)替換框S0420和S1421之一,其中每個(gè)替換框S0420和S1421是通過(guò)Z178的置換。在使用替換指示符值x選擇替換框Sx之后,通過(guò)替換框Sx運(yùn)算替換輸入值y以得到半循環(huán)值vi。通過(guò)模178加法器423運(yùn)算半循環(huán)值vi和部分Li410以得到部分L’i424。
通過(guò)模368乘法器424把部分L’i411與常數(shù)β425相乘以產(chǎn)生乘積u’。應(yīng)該注意整數(shù)368=2*184。通過(guò)模368加法器429把乘積u’和半循環(huán)密鑰值K2i428相加以產(chǎn)生組合結(jié)果w’。在步驟430,通過(guò)關(guān)系式w’=x’*n+y’把組合值w’分解為替換指示符值x’和替換輸入值y’,其中替換指示符值x’是集合Z2的元素,替換輸入值y’是集合Zn的元素,并設(shè)n等于q(在特定實(shí)施例中p=184)。替換指示符值x’用于選擇兩個(gè)替換框T0433和T1434之一,其中替換框T0433和T1434是通過(guò)Z186的置換。在使用替換指示符值x’選擇替換框Tx’之后,通過(guò)每個(gè)替換框Tx’運(yùn)算替換輸入值y’以得到半循環(huán)值v’i。通過(guò)模178加法器436運(yùn)算半循環(huán)值v’i和部分Ri411以得到部分R’i437。
為加密整數(shù)置換選擇的兩個(gè)函數(shù)f1480函數(shù)和f2490在結(jié)構(gòu)上互相類似的。函數(shù)f1480把輸入乘以常數(shù)并產(chǎn)生模2p的結(jié)果,為值u。在以上所述本發(fā)明的實(shí)施例中,2p=356。函數(shù)f2490把輸入乘以常數(shù)β=368并產(chǎn)生模2q(2q=368)的結(jié)果,為值u’。選擇常數(shù)α和β以使α和356互質(zhì),而β和368互質(zhì)。例如,可設(shè)常數(shù)α等于整數(shù)33,因?yàn)?3與356互質(zhì)。接著該乘法運(yùn)算,以模356相加半循環(huán)密鑰,產(chǎn)生輸出值w,表示為w=x*m+y,其中x∈Z2,y∈Zi,并且j分別具有值p或q。使用x的值選擇兩個(gè)替換框之一。在函數(shù)f1480中,這兩個(gè)替換框表示為S0、S1,并且每個(gè)替換框是通過(guò)Z178的置換。在函數(shù)f2490中,這兩個(gè)替換框表示為T0、T1,并且每個(gè)替換框是通過(guò)Z184的置換。f1的輸出是vi=Sx(y),同時(shí)f2的輸出是v’i=Tx(y)。
半循環(huán)密鑰值K1i和K2i的確定在本發(fā)明該實(shí)施例中的半循環(huán)密鑰值可由SOBER II流密碼產(chǎn)生,它在1997年9月22日提交的美國(guó)專利申請(qǐng)08/934582題為《METHOD AND APPARATUS FORGENERATING ENCRYPTION STREAM CIPHERS》、1997年10月24日提交的美國(guó)專利申請(qǐng)08/957571題為《METHOD AND APPARATUS FOR GENERATING ENCRYPTION STREAMCIPHERS》、1998年8月28日提交的美國(guó)專利申請(qǐng)09/143441題為《METHOD ANDAPPARATUS FOR GENERATING ENCRYPTION STREAM CIPHERS》以及1999年9月8日提交的美國(guó)專利申請(qǐng)09/246366題為《METHOD AND APPARATUS FOR GENERATINGENCRYPTION STREAM CIPHERS》的專利申請(qǐng)中有所描述。以上所述專利申請(qǐng)已轉(zhuǎn)讓給本發(fā)明的受讓人,但這里不作討論。然而,應(yīng)該注意任何流密碼可用于產(chǎn)生半循環(huán)密鑰值,如果流密碼產(chǎn)生均勻分配的字節(jié)。注意如果這樣的流密碼產(chǎn)生表示為s0,s1,...sr...的輸出字節(jié),那么兩個(gè)連續(xù)字節(jié)的整數(shù)值z(mì)t=256s2t+s2t+1會(huì)在Z65536上均勻分配。在本發(fā)明實(shí)施例的示例中,使用話路密鑰和可能的一些附加數(shù)據(jù)初始化SOBER-II,以產(chǎn)生足夠字節(jié)的輸出,表示為s0,s1,...sr...。把半循環(huán)密鑰設(shè)計(jì)為均勻分配。一種產(chǎn)生均勻分配半循環(huán)密鑰的方法就是使用兩個(gè)連續(xù)字節(jié)的整數(shù)值z(mì)t=256s2t+s2t+1,只有當(dāng)zt小于65504。由于65504可由整數(shù)356(2p=356)和368(2q=368)整除,所以模356或模368約減的在0到65503之間均勻分配的數(shù)zt也分別在Z356和Z368上均勻分配。
以t=0開始,計(jì)算zt的值。如果zt不小于65504,那么就遞增t并對(duì)新的t值計(jì)算zt的值。重復(fù)這個(gè)過(guò)程直到發(fā)現(xiàn)zt的值小于65504。隨后模356約減這個(gè)小于65504的zt值以得到K11。在確定K11之后,就遞增t的值并對(duì)于新的t值計(jì)算zt的值。如果zt不小于65504,那么就遞增t并對(duì)新的t值計(jì)算zt的值。重復(fù)這個(gè)過(guò)程直到發(fā)現(xiàn)新的zt的值小于65504。隨后模368約減這個(gè)小于65504的zt值以得到K21。確定了K11和K21,就遞增t并且過(guò)程回到方法的開始,但不設(shè)t位0。重復(fù)該方法以確定K12和K22、K13和K23等等直到得到所有半循環(huán)密鑰。圖5為詳細(xì)描述這個(gè)迭代過(guò)程的流程圖。
在步驟500,把位標(biāo)t設(shè)為0并把循環(huán)號(hào)i設(shè)為1。在步驟510由關(guān)系式zt=256s2t+s2t+1確定中間值z(mì)t。如果zt小于65504,就到達(dá)步驟520。如果zt不小于65504,就到達(dá)步驟530。在步驟520,設(shè)K11等于ztmod356、遞增位標(biāo)t并且流程到達(dá)步驟540。在步驟530,遞增位標(biāo)t并且流程到達(dá)步驟510。在步驟540由關(guān)系式zt=256s2t+s2t+1確定值z(mì)t,其中在步驟520遞增了位標(biāo)t。如果zt小于65504,就到達(dá)步驟550,否則到達(dá)步驟560。在步驟550,設(shè)K21等于ztmod368、并遞增位標(biāo)t和i。如果i<r,就回到步驟510。在步驟560,遞增位標(biāo)t并且流程到達(dá)步驟540。
在本發(fā)明的另一實(shí)施例中,圖2中廣泛討論的加密整數(shù)置換通過(guò)Z32751實(shí)現(xiàn),且p=33,q=1213。(注意32751=33×1213。)圖6是采用p=33而q=1213的方法的一個(gè)循環(huán)的框圖。把輸入Ci600分為兩個(gè)部分,部分Li601和部分Ri602,這樣Ci=Li*1213+Ri。部分Li601由關(guān)系式Li=Cidiv(1213)確定,而部分Ri602由關(guān)系式Ri=Cimod(1213)確定。通過(guò)模273乘法器604把部分Ri602與常數(shù)α603相乘以得到乘積u。從集合Z19683選擇常數(shù)α603以使常數(shù)α603和數(shù)273(273=19683)互質(zhì)。在步驟609,u由關(guān)系式u=272u1+27u2+u3分解因數(shù)以得到項(xiàng)u1、u2和u3。
使用模27加法器613把項(xiàng)u1和子密鑰值K1Ai610相加以得到替換輸入值g1。使用模27加法器614把項(xiàng)u2和子密鑰值K1Bi611相加以得到替換輸入值g2。使用模27加法器615把項(xiàng)u3和子密鑰值K1Ci612相加以得到替換輸入值g3。應(yīng)該注意這里所描述的方法具有多種可能的實(shí)現(xiàn)形式,它根據(jù)p和q或u的適當(dāng)選擇。例如如果u被分解為四或更多項(xiàng)(例如u=273u1+272u2+27u3+u4)而不是用于步驟609的三項(xiàng),那么就要增加加法器的數(shù)量。增加了加法器的數(shù)量,也就需要合適的子密鑰值的數(shù)量。從集合Z27的元素中選擇子密鑰值K1Ai610、K1Bi611和K1Ci612并以以下所述的方法確定。采用該方法產(chǎn)生更多子密鑰值而沒有過(guò)多的試驗(yàn)以滿足本發(fā)明的其他實(shí)施例,比如當(dāng)把u分解為四個(gè)或更多項(xiàng)的情況。
通過(guò)替換框S1619運(yùn)算替換輸入值g1以得到替換值h1。通過(guò)替換框S2620運(yùn)算替換輸入值g2以得到替換值h2。通過(guò)替換框S3621運(yùn)算替換輸入值g3以得到替換值h3。通過(guò)模27加法器625相加替換值h1、替換值h2和替換值h3以確定半循環(huán)值vi。使用模27加法器627把半循環(huán)值vi和部分Li601相加以得到部分L’i628。
通過(guò)模1213乘法器655把部分L’i628與常數(shù)β650相乘以得到乘積u’。從集合Z1213的非零元素中選擇常數(shù)β650。使用模1213加法器656把乘積u’和半循環(huán)密鑰值K2i653相加以得到替換輸入值g’。把替換輸入值g’發(fā)送到替換框T657以得到半循環(huán)值v’i。使用模1213加法器658把半循環(huán)值v’i和部分Ri602以得到部分R’i659。部分L’i628和部分R’i659用于下一迭代循環(huán)。在備選中,部分L’i628乘以數(shù)值=1213并隨后與部分R’i659相加以形成部分Ci+1660。
半循環(huán)密鑰值K1i={K1Ai,K1Bi,K1Ci}和K2i的確定在本發(fā)明該實(shí)施例中的半循環(huán)密鑰值可由SOBER II流密碼產(chǎn)生。然而,如果流密碼產(chǎn)生均勻分配的字節(jié),任何流密碼可用于產(chǎn)生半循環(huán)密鑰值。注意如果這樣的流密碼產(chǎn)生表示為s0,s1,...sr...的輸出字節(jié),那么兩個(gè)連續(xù)字節(jié)的整數(shù)值z(mì)t=256s2t+s2t+1會(huì)在Z65536上均勻分配。
通過(guò)觀察如果數(shù)在0和59048(其中59049=3×273)均勻分配并被模273約減,那么數(shù)也在Z27×Z27×Z27上均勻分配,來(lái)確定子密鑰集合K1i={K1Ai,K1Bi,K1Ci}。通過(guò)觀察如果數(shù)在0和65501(其中65502=54×1213)均勻分配并被模1213約減,那么數(shù)也在Z1213上均勻分配,來(lái)確定子密鑰集合K2i。使用這些觀察,用于確定K1i={K1Ai,K1Bi,K1Ci}和K2i的值(其中1≤i≤r)的示例方法包括的步驟在圖7中詳述。
在步驟700,把位標(biāo)t設(shè)為0并把循環(huán)號(hào)i設(shè)為1。在步驟710由關(guān)系式zt=256s2t+s2t+1確定中間值z(mì)t。如果zt小于59049,就到達(dá)步驟720。如果zt不小于59049,就到達(dá)步驟730。在步驟730,遞增位標(biāo)t并且流程到達(dá)步驟710。在步驟720,設(shè)K11等于ztmod19683并遞增位標(biāo)t。在步驟725,確定K1Ai,K1Bi,K1Ci的值以使K1i=272K1Ai+27K1Bi+K1Ci。在步驟725之后,流程到達(dá)步驟740。在步驟740由關(guān)系式zt=256s2t+s2t+1確定值z(mì)t,其中在步驟720遞增了位標(biāo)t。如果zt小于65502,就到達(dá)步驟750,否則到達(dá)步驟760。在步驟750,設(shè)K21等于ztmod1213、并遞增位標(biāo)t和i。如果i<r,就回到步驟710。在步驟760,遞增位標(biāo)t并且流程到達(dá)步驟740。
使用以上所述的方法,每個(gè)子密鑰K1Ai,K1Bi,K1Ci(其中1≤i≤r)在Z27上均勻分配,而第二半循環(huán)密鑰K2i(其中1≤i≤r)在Z1213上均勻分配。選擇替換框滿足加密特性比如非線性和隨機(jī)。如果均勻分配半循環(huán)密鑰,那么到替換框的輸入也是均勻分配和獨(dú)立的。
希望以上所述加密整數(shù)置換方法用于消息授權(quán)碼,但也可用于任何需要整數(shù)集合加密置換的地方。例如,這里所述本發(fā)明的實(shí)施例也可用于以相似于DES把集合{0,1,...,264-1}中的整數(shù)加密為集合{0,1,...,264-1}中的其他整數(shù)的方式把集合{0,1,...,N-1}中的整數(shù)加密為集合{0,1,...,N-1}中的其他整數(shù)。
這里所述的加密整數(shù)置換的解密過(guò)程與加密過(guò)程相同,除了把每個(gè)循環(huán)內(nèi)的兩個(gè)半循環(huán)函數(shù)的順序反向、把每個(gè)循環(huán)內(nèi)的兩個(gè)半循環(huán)密鑰值的順序反向、從Li模p減去輸出vi以及從Ri模q減去輸出v’i以外。
圖8是本發(fā)明另一示例實(shí)施例的框圖,其中通過(guò)ZN構(gòu)造加密整數(shù)置換且N是質(zhì)數(shù)。使N=S+T。應(yīng)該注意對(duì)于每個(gè)N≥13的值,存在兩個(gè)合數(shù)S和T使N=S+T。因此,在步驟800,把N個(gè)位標(biāo)的集合分為由S個(gè)位標(biāo)組成的區(qū)段A801以及由T個(gè)位標(biāo)組成的區(qū)段B802。區(qū)段A801的位標(biāo)重新標(biāo)為{a0,a1....aS-1},而區(qū)段B802的位標(biāo)重新標(biāo)為{b0,b1....bS-1}。根據(jù)加密整數(shù)置換KIPS810置換區(qū)段A801的位標(biāo)??梢愿鶕?jù)以上所述本發(fā)明的實(shí)施例實(shí)現(xiàn)加密整數(shù)置換KIPS810。根據(jù)加密整數(shù)置換KIPT811置換區(qū)段B802的位標(biāo)??梢愿鶕?jù)以上所述本發(fā)明的實(shí)施例實(shí)現(xiàn)加密整數(shù)置換KIPT811。
因此,KIPN的質(zhì)數(shù)循環(huán)可定義為KIPA,B(x)=KIPS(x),如果x∈{a0,a1....aS-1}或KIPT(x),如果x∈{b0,b1....bS-1}。
在步驟820,KIPA,B(x)的輸出經(jīng)歷“混合”運(yùn)算,比如仿射運(yùn)算Affs(x)=U*x+V(modN),其中1≤U≤N-1,并且U和V的值可根據(jù)安全密鑰。數(shù)學(xué)上,如果由Br=Ar+b定義算子BC_D,其中C,DR,b是D的固定元素,r是C的元素且A是把C映射到D上的線性算子,那么B就是仿射算子。
圖8的一般方法就是把具有質(zhì)數(shù)數(shù)量的集合分為兩個(gè)或更多集合,其中每個(gè)集合由非質(zhì)數(shù)數(shù)量的元素組成,并且隨后在合數(shù)集合上進(jìn)行如圖2以及本發(fā)明其他各種實(shí)施例所述的加密整數(shù)置換。由于一個(gè)集合元素的置換產(chǎn)生由那一個(gè)集合定義的輸出,所以進(jìn)行混合運(yùn)算以在每個(gè)循環(huán)后把一個(gè)集合的元素與另一集合交替。
在本發(fā)明的一個(gè)實(shí)施例中,如圖8所述,其中N是質(zhì)數(shù),使N=S+T,以使S和T是合數(shù),定義A={0,1,S-1}和B={S,...,N-1},這樣集合A中元素的數(shù)量|A|=S,而集合B中元素的數(shù)量|B|=T。隨后可把質(zhì)數(shù)循環(huán)定義為KIPA,B(x)=KIPS(x),如果0≤x≤S-1,以及KIPA,B(x)=S+KIPT(x-S),如果S≤x≤N-1。
在本發(fā)明的另一個(gè)實(shí)施例中,如圖8所述,其中N是質(zhì)數(shù),使N=2T+1,以使T和T+1是合數(shù),定義A={0,2,4,...,2T}={2yy∈ZT+1}和B={1,3,5,...,2T-1}={2y+1y∈ZT}。因此,集合A包含偶數(shù)值,而集合B包含奇數(shù)值。可把質(zhì)數(shù)循環(huán)定義為KIPA,B(x)=2KIPT+1(x),如果x=2y,以及KIPA,B(x)=1+2KIPT(y),如果x=2y+1。
還是在本發(fā)明的另一個(gè)實(shí)施例中,如圖8所述,在步驟820的仿射映射運(yùn)算中使用固定常數(shù)。選擇U和V的值以使Prob(AffU,V(x)在A中x在A中)近似為|A|/N。U和V的值根據(jù)集合A和B中元素的區(qū)分。選擇集合A和B以使|A|~|B|~(N/2)。置換Y3=KIPN(X0)具有四個(gè)質(zhì)數(shù)循環(huán)和三個(gè)仿射循環(huán),其中置換定義為Y0=KIPA,B(X0),X1=AffU,V(Y0),Y1=KIPA,B(X1),X2=AffU,V(Y1),Y2=KIPA,B(X2),X3=AffU,V(Y2),以及Y3=KIPA,B(X3)。
假設(shè)KIPA和KIPB用密鑰長(zhǎng)度等于KIPN的密鑰長(zhǎng)度是安全的。KIPN必須具有密鑰次序表(比如SOBER II)以得到在四個(gè)質(zhì)數(shù)循環(huán)中KIPA和KIPB所需的八個(gè)半循環(huán)密鑰。確信這個(gè)構(gòu)造產(chǎn)生安全的置換。
可以實(shí)現(xiàn)其他實(shí)施例采用大量質(zhì)數(shù)循環(huán)和/或密鑰相關(guān)的仿射循環(huán)。如果采用更多質(zhì)數(shù)循環(huán),那么可從較弱加密整數(shù)置換構(gòu)造質(zhì)數(shù)循環(huán)函數(shù)以增加速度。
這樣,描述了一種通過(guò)ZN構(gòu)造加密整數(shù)置換的方法。提供該描述使本領(lǐng)域的技術(shù)人員能實(shí)施或采用本發(fā)明。對(duì)于本領(lǐng)域技術(shù)人員對(duì)這些實(shí)施例的各種修改是很明顯的,并且這里所定義的一般原理可應(yīng)用于其他實(shí)施例而不使用創(chuàng)造性才能。這樣,不希望本發(fā)明限于這里所示的實(shí)施例,但要根據(jù)符合這里所揭示原理和新穎性特點(diǎn)的最寬范圍。
權(quán)利要求
1.一種從ZN中的輸入值中得到ZN中輸出值的方法,其中N=pq,而p>1,q>1,包括多個(gè)循環(huán),每個(gè)循環(huán)包括的步驟有產(chǎn)生第一密鑰和第二密鑰;把循環(huán)輸入分為第一部分和第二部分,其中的第一部分是Zp的元素,而第二部分是Zq的元素;把第一密鑰應(yīng)用到第二部分以產(chǎn)生第三部分,其中第三部分是Zp的元素;用模p加法器相加第一部分和第三部分以產(chǎn)生第四部分;把第二密鑰應(yīng)用到第四部分以產(chǎn)生第五部分,其中第五部分是Zq的元素;用模q加法器相加第五部分和第二部分以產(chǎn)生第六部分;組合第四部分和第六部分以形成循環(huán)輸出;以及如果該循環(huán)是最終循環(huán),那么該循環(huán)輸出是本發(fā)明的輸出值,否則該循環(huán)輸出成為下一循環(huán)的輸入。
2.一種置換N位數(shù)據(jù)塊的方法,其中N位數(shù)據(jù)塊的每位與多個(gè)N位標(biāo)中的位標(biāo)相關(guān),其中N能被分解為大于1的整數(shù)p和大于1的整數(shù)q,包括的步驟有把多個(gè)N位標(biāo)分為第一部分和第二部分,其中的第一部分通過(guò)集合Zp構(gòu)造,而第二部分通過(guò)集合Zq構(gòu)造,以使多個(gè)N位標(biāo)表示為第二部分和第一部分多個(gè)值的組合,其中所述多個(gè)值由整數(shù)值q限定;構(gòu)造第一半循環(huán)密鑰和第二半循環(huán)密鑰;從第二部分和第一半循環(huán)密鑰中得到第一半循環(huán)值,其中第一半循環(huán)值是在第二部分和第一半循環(huán)密鑰上運(yùn)算的第一非線性函數(shù)的輸出;使用模p加法器組合第一半循環(huán)值和第一部分以產(chǎn)生第三部分;從第三部分和第二半循環(huán)密鑰得到第二半循環(huán)值,其中第二半循環(huán)值是在第三部分和第二半循環(huán)密鑰上運(yùn)算的第二非線性函數(shù)的輸出;以及使用模q加法器組合第二半循環(huán)值和第二部分以產(chǎn)生第四部分。
3.按權(quán)利要求2所述的方法,其特征在于在多個(gè)循環(huán)中重復(fù)每個(gè)循環(huán)的步驟,其中每個(gè)循環(huán)產(chǎn)生的第三部分和第四部分用作之后循環(huán)的輸入。
4.按權(quán)利要求3所述的方法,其特征在于之后循環(huán)是最后循環(huán),該方法進(jìn)一步包括的步驟有用整數(shù)值q乘最后循環(huán)產(chǎn)生的第三部分;用最后循環(huán)產(chǎn)生的第四部分組合乘積第三部分以產(chǎn)生最終結(jié)果;根據(jù)最終結(jié)果置換N位數(shù)據(jù)塊。
5.按權(quán)利要求2所述的方法,其特征在于由流密碼產(chǎn)生第一半循環(huán)密鑰和第二半循環(huán)密鑰。
6.按權(quán)利要求2所述的方法,其特征在于由密鑰生成方法產(chǎn)生第一半循環(huán)密鑰和第二半循環(huán)密鑰,該方法包括的步驟有產(chǎn)生多個(gè)均勻分配的字節(jié);把第一對(duì)連續(xù)的多個(gè)均勻分配的字節(jié)元素相加以產(chǎn)生第一中間值,其中第一對(duì)連續(xù)元素的一個(gè)首先乘以乘數(shù);檢測(cè)第一中間值以確定第一中間值是否小于第一預(yù)定量;如果第一中間值大于第一預(yù)定量就回到把第一對(duì)連續(xù)的多個(gè)均勻分配的字節(jié)元素相加的步驟;由第一整數(shù)值模約減第一中間值以產(chǎn)生第一半循環(huán)密鑰;把第二對(duì)連續(xù)的多個(gè)均勻分配的字節(jié)元素相加以產(chǎn)生第二中間值,其中第二對(duì)連續(xù)元素的一個(gè)首先乘以乘數(shù);檢測(cè)第二中間值以確定第二中間值是否小于第二預(yù)定量;如果第二中間值大于第二預(yù)定量就回到把第二對(duì)連續(xù)的多個(gè)均勻分配的字節(jié)元素相加的步驟;由第二整數(shù)值模約減第二中間值以產(chǎn)生第二半循環(huán)密鑰;重復(fù)密鑰生成方法的步驟以產(chǎn)生多對(duì)第一半循環(huán)密鑰和第二半循環(huán)密鑰,其中多對(duì)第一半循環(huán)密鑰和第二半循環(huán)密鑰的每對(duì)與多個(gè)循環(huán)中的每個(gè)循環(huán)相關(guān)。
7.按權(quán)利要求6所述的密鑰生成方法,其特征在于第一預(yù)定量等于第二預(yù)定量。
8.按權(quán)利要求6所述的密鑰生成方法,其特征在于密鑰生成方法進(jìn)一步包括的步驟有確定多個(gè)子密鑰值{a1,i,a2,i...,an,i},以使第一半循環(huán)密鑰K1i=xn-1a1,i+xn-2a2,i+...+an,i,其中n≥2,x是第一預(yù)定量的因數(shù),而i標(biāo)識(shí)迭代循環(huán)。
9.按權(quán)利要求2所述的方法,其特征在于第一非線性函數(shù)的方法包括的步驟有把第二部分乘以第一常數(shù)值以產(chǎn)生第一乘積;把第一乘積與第一半循環(huán)密鑰組合以產(chǎn)生第一組合結(jié)果;用第一組合結(jié)果的置換替換第一組合結(jié)果以產(chǎn)生第一半循環(huán)值。
10.按權(quán)利要求9所述的方法,其特征在于替換第一組合結(jié)果的步驟包括的步驟有把第一組合值分解為替換指示符值和替換輸入值;使用替換指示符值選擇第一多個(gè)替換框之一;以及把替換輸入值輸入從第一多個(gè)替換框選擇的替換框以產(chǎn)生第一半循環(huán)值。
11.按權(quán)利要求2所述的方法,其特征在于第二非線性函數(shù)的方法包括的步驟有把第三部分乘以第二常數(shù)值以產(chǎn)生第二乘積;把第二乘積與第二半循環(huán)密鑰組合以產(chǎn)生第二組合結(jié)果;用第二組合結(jié)果的置換替換第二組合結(jié)果以產(chǎn)生第二半循環(huán)值。
12.按權(quán)利要求11所述的方法,其特征在于替換第二組合結(jié)果的步驟包括的步驟有把第二組合值分解為替換指示符值和替換輸入值;使用替換指示符值選擇第二多個(gè)替換框之一;以及把替換輸入值輸入從第二多個(gè)替換框選擇的替換框以產(chǎn)生第二半循環(huán)值。
13.按權(quán)利要求8所述的方法,其特征在于第一非線性函數(shù)的方法包括的步驟有把第二部分乘以第一常數(shù)值以產(chǎn)生第一乘積;把第一乘積分解為多項(xiàng),表示為un,這樣第一乘積等于xn-1u1+xn-2u2+...+un;把多項(xiàng)的每項(xiàng)與多個(gè)子密鑰a1,i,a2,i,...,an,i的相關(guān)一個(gè)模相加以產(chǎn)生多個(gè)替換輸入值;把多個(gè)替換輸入值的每個(gè)輸入多個(gè)替換框的相關(guān)一個(gè)以產(chǎn)生多個(gè)替換值;以及把多個(gè)替換值的至少兩個(gè)模相加以產(chǎn)生第一半循環(huán)值。
14.一種從ZN中的輸入值中得到ZN中輸出值的方法,其中N是質(zhì)數(shù)并大于或等于十三(13),并且S和T是合數(shù)值使N=S+T,其中該方法包括多個(gè)循環(huán),每個(gè)循環(huán)包括的步驟有產(chǎn)生第一密鑰和第二密鑰;把S個(gè)輸入值的第一集合的每個(gè)元素分配到集合{0,...,S-1}中的唯一位標(biāo);把T個(gè)輸入值的第二集合的每個(gè)元素分配到集合{0,...,T-1}中的唯一位標(biāo);如果多個(gè)輸入位標(biāo)是集合{0,...,S-1}的元素,就在多個(gè)輸入位標(biāo)上進(jìn)行第一加密整數(shù)置換以產(chǎn)生第一多個(gè)輸出位標(biāo),其中第一加密整數(shù)置換采用第一密鑰;如果多個(gè)輸入位標(biāo)是集合{0,...,T-1}的元素,就在多個(gè)輸入位標(biāo)上進(jìn)行第二加密整數(shù)置換以產(chǎn)生第二多個(gè)輸出位標(biāo),其中第二加密整數(shù)置換采用第二密鑰;以及把第一多個(gè)輸出位標(biāo)與第二多個(gè)輸出位標(biāo)混合。
15.按權(quán)利要求14所述的方法,其特征在于從把第一多個(gè)輸出位標(biāo)與第二多個(gè)輸出位標(biāo)混合的步驟的輸出用作之后循環(huán)的輸入。
16.按權(quán)利要求15所述的方法,其特征在于之后循環(huán)是最后循環(huán),方法進(jìn)一步包括的步驟有根據(jù)從把第一多個(gè)輸出位標(biāo)與第二多個(gè)輸出位標(biāo)混合的步驟的輸出,把輸入位排列重新排列為輸出位排列。
17.一種無(wú)線通信設(shè)備,包括處理器;以及存儲(chǔ)介質(zhì),其中存儲(chǔ)介質(zhì)存儲(chǔ)由置換N位數(shù)據(jù)塊的處理器可執(zhí)行的指令,其中每位與多個(gè)N位標(biāo)的位標(biāo)相關(guān),其中由一種方法置換多個(gè)N位標(biāo),該方法包括的步驟有把多個(gè)N位標(biāo)的每個(gè)分為第一部分和第二部分,其中的第一部分通過(guò)集合Zp構(gòu)造,而第二部分通過(guò)集合Zq構(gòu)造,以使多個(gè)N位標(biāo)的每個(gè)表示為第二部分和第一部分多個(gè)值的組合,其中所述多個(gè)值由整數(shù)值q限定;構(gòu)造第一半循環(huán)密鑰和第二半循環(huán)密鑰;從第二部分和第一半循環(huán)密鑰中得到第一半循環(huán)值,其中第一半循環(huán)值是在第二部分和第一半循環(huán)密鑰上運(yùn)算的第一非線性函數(shù)的輸出;使用模p加法器組合第一半循環(huán)值和第一部分以產(chǎn)生第三部分;從第三部分和第二半循環(huán)密鑰得到第二半循環(huán)值,其中第二半循環(huán)值是在第三部分和第二半循環(huán)密鑰上運(yùn)算的第二非線性函數(shù)的輸出;以及使用模q加法器組合第二半循環(huán)值和第二部分以產(chǎn)生第四部分。
18.一種無(wú)線通信設(shè)備,包括處理器;以及存儲(chǔ)介質(zhì),其中存儲(chǔ)介質(zhì)存儲(chǔ)由置換N位數(shù)據(jù)塊的處理器可執(zhí)行的一組指令,其中N是合數(shù)或是質(zhì)數(shù),其中如果N是合數(shù),處理器就執(zhí)行一組指令在N位數(shù)據(jù)塊上進(jìn)行加密整數(shù)置換,但如果N是質(zhì)數(shù),處理器就執(zhí)行一組指令把N位數(shù)據(jù)塊分為第一集合和第二集合并在第一集合上進(jìn)行第一加密整數(shù)置換,而在第二集合上進(jìn)行第二加密整數(shù)置換。
19.一種從ZN中的輸入值中得到ZN中輸出值的設(shè)備,其中N=pq,而p>1,q>1,包括產(chǎn)生第一密鑰和第二密鑰的裝置;把循環(huán)輸入分為第一部分和第二部分的裝置,其中的第一部分是Zp的元素,而第二部分是Zq的元素;把第一密鑰應(yīng)用到第二部分以產(chǎn)生第三部分的裝置,其中第三部分是Zp的元素;用模p加法器相加第一部分和第三部分以產(chǎn)生第四部分的裝置;把第二密鑰應(yīng)用到第四部分以產(chǎn)生第五部分的裝置,其中第五部分是Zq的元素;用模q加法器相加第五部分和第二部分以產(chǎn)生第六部分的裝置;以及組合第四部分和第六部分以形成循環(huán)輸出的裝置。
20.一種從ZN中的輸入值中得到ZN中輸出值的設(shè)備,其中N是質(zhì)數(shù)并大于或等于十三(13),并且S和T是合數(shù)值使N=S+T,其中該方法包括多個(gè)循環(huán),每個(gè)循環(huán)包括的步驟有產(chǎn)生第一密鑰和第二密鑰的裝置;把S個(gè)輸入值的第一集合的每個(gè)元素分配到集合{0,...,S-1}中的唯一位標(biāo)的裝置;把T個(gè)輸入值的第二集合的每個(gè)元素分配到集合{0,...,T-1}中的唯一位標(biāo)的裝置;如果多個(gè)輸入位標(biāo)是集合{0,...,S-1}的元素,就在多個(gè)輸入位標(biāo)上進(jìn)行第一加密整數(shù)置換以產(chǎn)生第一多個(gè)輸出位標(biāo)的裝置,其中第一加密整數(shù)置換采用第一密鑰;如果多個(gè)輸入位標(biāo)是集合{0,...,T-1}的元素,就在多個(gè)輸入位標(biāo)上進(jìn)行第二加密整數(shù)置換以產(chǎn)生第二多個(gè)輸出位標(biāo)的裝置,其中第二加密整數(shù)置換采用第二密鑰;以及把第一多個(gè)輸出位標(biāo)與第二多個(gè)輸出位標(biāo)混合的裝置。
21.一種授權(quán)在第一站點(diǎn)和第二站點(diǎn)之間發(fā)送的N位數(shù)據(jù)消息的方法,其中N是合數(shù)或質(zhì)數(shù),包括的步驟有在第一站點(diǎn)對(duì)集合ZN的多個(gè)元素使用加密整數(shù)置換以產(chǎn)生置換順序;根據(jù)置換順序?qū)位數(shù)據(jù)消息中的多個(gè)位進(jìn)行重新排序以形成置換的N位消息;根據(jù)置換的N位消息產(chǎn)生第一循環(huán)冗余校驗(yàn)(CRC)消息;把N位數(shù)據(jù)消息和第一CRC消息從第一站點(diǎn)發(fā)送到第二站點(diǎn);在第二站點(diǎn)檢測(cè)所接收的N位數(shù)據(jù)消息和所接收的CRC消息;在第二站點(diǎn)對(duì)所接收的N位數(shù)據(jù)消息使用加密整數(shù)置換以得到第二置換順序;根據(jù)第二置換順序產(chǎn)生第二CRC消息;以及比較所接收的CRC消息和第二CRC消息,由此如果所接收的CRC消息和第二CRC消息是匹配的就授權(quán)所接收的N位數(shù)據(jù)消息。
22.按權(quán)利要求21所述的方法,其特征在于該方法可用于糾錯(cuò),進(jìn)一步包括步驟確定比較所接收的CRC消息和第二CRC消息的步驟是否產(chǎn)生少于或等于預(yù)定閾值的差錯(cuò)量;如果比較步驟產(chǎn)生的差錯(cuò)量少于或等于預(yù)定閾值就糾正所接收的N位數(shù)據(jù)消息,其中糾正步驟使用所接收CRC消息;以及如果比較步驟產(chǎn)生的差錯(cuò)量多于預(yù)定閾值就請(qǐng)求N位數(shù)據(jù)消息的重新發(fā)送。
全文摘要
一種根據(jù)集合Z
文檔編號(hào)H04L9/32GK1435026SQ01810848
公開日2003年8月6日 申請(qǐng)日期2001年5月1日 優(yōu)先權(quán)日2000年5月2日
發(fā)明者P·霍克斯, G·G·羅斯, 小R·F·奎克 申請(qǐng)人:高通股份有限公司