專利名稱::計算暫時密鑰集成協(xié)議s盒值的裝置及其方法
技術領域:
:本發(fā)明涉及一種應用于IEEE802.11I無線網(wǎng)路標準的暫時密鑰集成協(xié)議的裝置及方法,特別涉及一種計算暫時密鑰集成協(xié)議的混合密鑰函數(shù)所需的TKIPSbox(TKIPS盒)值的裝置及其方法。
背景技術:
:IEEE802.11規(guī)格制定無線局域網(wǎng)(WirelessLocalAreaNetwork,WLAN)的通信協(xié)議。此標準使用無線信號而非有線信號以定義似乙太網(wǎng)的通信信道并提供一個不可信賴的數(shù)據(jù)媒介。雖然無線信號所伴隨帶來的噪聲造成高封包遺失率,但WLAN結合似TCP/IP的穩(wěn)定通信協(xié)議以及802.11具備的高頻寬來提供一個可信賴的網(wǎng)路并讓使用者免于信號干擾、反射及衰減等問題。一般說來,WLAN可以較快速設定、具有較大彈性以及較有線網(wǎng)路便宜,因而快速成長。IEEE802.11將LAN分為二個邏輯層。第一邏輯層為實體媒體子層(Physicalmediasub-layer,PHY),控制特定頻率以及無線信號的調變方法。IEEE802.11制定不同的PHY子層。舉例來說,802.11b(WiFi)使用頻率在2.4GHz以及提供最大頻寬為11Mbps的PHY子層。第二邏輯層為多媒體存取控制子層(MediaAccessControl,MAC)。在WLAN中無線信號廣播可以被無指向性的接收端接收并且無法得知由何傳送端產(chǎn)生,因此安全性在WLAN中格外重要。MAC子層提供此安全性的需求。IEEE802.11原本使用有線等效協(xié)議(WiredEquivalencyProtocol,WEP)為安全性協(xié)議。WEP的目的在于提供無線網(wǎng)路的安全性,其等效于有線網(wǎng)路的安全性。因為WEP是IEEE802.11的一部分,所有與IEEE802.11相容的裝置皆實現(xiàn)此協(xié)議。不幸地WEP無法提供適當?shù)陌踩?,并且有接受偽造、重傳的封包以及錯誤使用RC4加密等致命的缺點。一個組織因而創(chuàng)立以強調上述的問題并提供一個更新的協(xié)議以提供更佳的安全性。描述于IEEE802.11i的暫時密鑰集成協(xié)議(TemporalKeyIntegrityProtocol,TKIP)即是努力的結果,用于實現(xiàn)并更新原來WLAN規(guī)格。為了使TKIP更容易實現(xiàn)在舊有的機器上,TKIP環(huán)繞于舊有的WIP協(xié)議之上。TKIP提供一信息認證碼以避免偽造,一封包序號(WEP第四欄位)以避免重送的封包,以及混合密鑰以更正WEP錯誤使用RC4加密。TKIP混合密鑰功能利用一暫時密鑰代替WEP基本密鑰而建立一個新封包密鑰。暫時密鑰是短時間使用并常被更換。當建立一個新的封包密鑰時,利用局部無線介面的802MAC位置和暫時密鑰的每個位組異或結果先產(chǎn)生一個中間密鑰,以對一S-box進行索引。即使使用相同的暫時密鑰,此方法可允許不同站臺產(chǎn)生不同的中間密鑰。為了計算中間密鑰,每一站臺包含一個S-box,其是利用一個64K位的查表,而此查表是以二個有256欄位位組寬的表格實現(xiàn)。請參考下列用于計算TKIPSbox值的程序碼,其是根據(jù)IEEE802.11i標準中的一Sbox低碼表與一Sbox高碼表。Line14/********************************************/Line15/*tkip_sbox()*/Line16/*Returnsa16bitvaluefroma64Kentrytable.TheTable*/Line17/*issynthesizedfromtwo256entrybytewidetables.*/Line18/********************************************/Line19Line20unsignedinttkip_sbox(unsignedintindex)Line21{Line22unsignedintindex_low;Line23unsignedinindex_high;Line24unsignedintleft,right;Line25Line26index_low=(index%256);Line27index_high=((index>>8)%256);Line28<!--SIPO<DPn="2">--><dpn="d2"/>Line29left=Tkip_sbox_Lower[index_low]+Line30(Tkip_sbox_Upper[index_low]*256);Line31right=Tkip_sbox_Upper[index_high]+Line32(Tkip_sbox_Lower[index_high]*256);Line33Line34return(left^right);Line35};unsignedintTkip_sbox_Lower[256]={0xA5,0x84,0x99,0x8D,0x0D,0xBD,0xB1,0x54,0x50,0x03,0xA9,0x7D,0x19,0x62,0xE6,0x9A,0x45,0x9D,0x40,0x87,0x15,0xEB,0xC9,0x0B,0xEC,0x67,0xFD,0xEA,0xBF,0xF7,0x96,0x5B,0xC2,0x1C,0xAE,0xA6,0x5A,0x41,0x02,0x4F,0x5C,0xF4,0x34,0x08,0x93,0x73,0x53,0x3F,0x0C,0x52,0x65,0x5E,0x28,0xA1,0x0F,0xB5,0x09,0x36,0x9B,0x3D,0x26,0x69,0xCD,0x9F,0x1B,0x9E,0x74,0x2E,0x2D,0xB2,0xEE,0xFB,0xF6,0x4D,0x61,0xCE,0x7B,0x3E,0x71,0x97,0xF5,0x68,0x00,0x2C,0x60,0x1F,0xC8,0xED,0xBE,0x46,0xD9,0x4B,0xDE,0xD4,0xE8,0x4A,0x6B,0x2A,0xE5,0x16,0xC5,0xD7,0x55,0x94,0xCF,0x10,0x06,0x81,0xF0,0x44,0xBA,0xE3,0xF3,0xFE,0xC0,0x8A,0xAD,0xBC,0x48,0x04,0xDF,0xC1,0x75,0x63,0x30,0x1A,0x0E,0x6D,0x4C,0x14,0x35,0x2F,0xE1,0xA2,0xCC,0x39,0x57,0xF2,0x82,0x47,0xAC,0xE7,0x2B,0x95,0xA0,0x98,0xD1,0x7F,0x66,0x7E,0xAB,0x83,0xCA,0x29,0xD3,0x3C,0x79,0xE2,0x1D,0x76,0x3B,0x56,0x4E,0x1E,0xDB,0x0A,0x6C,0xE4,0x5D,0x6E,0xEF,0xA6,0xA8,0xA4,0x37,0x8B,<!--SIPO<DPn="3">--><dpn="d3"/>0x32,0x43,0x59,0xB7,0x8C,0x64,0xD2,0xE0,0xB4,0xFA,0x07,0x25,0xAF,0x8E,0xE9,0x18,0xD5,0x88,0x6F,0x72,0x24,0xF1,0xC7,0x51,0x23,0x7C,0x9C,0x21,0xDD,0xDC,0x86,0x85,0x90,0x42,0xC4,0xAA,0xD8,0x05,0x01,0x12,0xA3,0x5F,0xF9,0xD0,0x91,0x58,0x27,0xB9,0x38,0x13,0xB3,0x33,0xBB,0x70,0x89,0xA7,0xB6,0x22,0x92,0x20,0x49,0xFF,0x78,0x7A,0x8F,0xF8,0x80,0x17,0xDA,0x31,0xC6,0xB8,0xC3,0xB0,0x77,0x11,0xCB,0xFC,0xD6,0x3A,};unsignedintTkip_sbox_Upper[256]={0xC6,0xF8,0xEE,0xF6,0xFF,0xD6,0xDE,0x91,0x60,0x02,0xCE,0x56,0xE7,0xB5,0x4D,0xEC,0x8F,0x1F,0x89,0xFA,0xEF,0xB2,0x8E,0xFB,0x41,0xB3,0x5F,0x45,0x23,0x53,0xE4,0x9B,0x75,0xE1,0x3D,0x4C,0x6C,0x7E,0xF5,0x83,0x68,0x51,0xD1,0xF9,0xE2,0xAB,0x62,0x2A,0x08,0x95,0x46,0x9D,0x30,0x37,0x0A,0x2F,0x0E,0x24,0x1B,0xDF,0xCD,0x4E,0x7F,0xEA,0x12,0x1D,0x58,0x34,0x36,0xDC,0xB4,0x5B,0xA4,0x76,0xB7,0x7D,0x52,0xDD,0x5E,0x13,0xA6,0xB9,0x00,0xC1,0x40,0xE3,0x79,0xB6,0xD4,0x8D,0x67,0x72,0x94,0x98,0xB0,0x85,0xBB,0xC5,0x4F,0xED,0x86,0x9A,0x66,0x11,0x8A,0xE9,0x04,0xFE,0xA0,0x78,0x25,0x4B,0xA2,0x5D,0x80,0x05,0x3F,0x21,0x70,0xF1,0x63,0x77,0xAF,0x42,0x20,0xE5,0xFD,0xBF,0x81,0x18,0x26,0xC3,0xBE,0x35,0x88,0x2E,0x93,0x55,0xFC,0x7A,0xC8,0xBA,0x32,0xE6,<!--SIPO<DPn="4">--><dpn="d4"/>0xC0,0x19,0x9E,0xA3,0x44,0x54,0x3B,0x0B,0x8C,0xC7,0x6B,0x28,0xA7,0xBC,0x16,0xAD,0xDB,0x64,0x74,0x14,0x92,0x0C,0x48,0xB8,0x9F,0xBD,0x43,0xC4,0x39,0x31,0xD3,0xF2,0xD5,0x8B,0x6E,0xDA,0x01,0xB1,0x9C,0x49,0xD8,0xAC,0xF3,0xCF,0xCA,0xF4,0x47,0x10,0x6F,0xF0,0x4A,0x5C,0x38,0x57,0x73,0x97,0xCB,0xA1,0xE8,0x3E,0x96,0x61,0x0D,0x0F,0xE0,0x7C,0x71,0xCC,0x90,0x06,0xF7,0x1C,0xC2,0x6A,0xAE,0x69,0x17,0x99,0x3A,0x27,0xD9,0xEB,0x2B,0x22,0xD2,0xA9,0x07,0x33,0x2D,0x3C,0x15,0xC9,0x87,0xAA,0x50,0xA5,0x03,0x59,0x09,0x1A,0x65,0xD7,0x84,0xD0,0x82,0x29,0x5A,0x1E,0x7B,0xA8,0x6D,0x2C,};在程序碼的第26與27行中,一16位的索引值分為index_high與index_low。第29行以index_low為索引進行二查表動作來計算一左值。第31行以index_high為索引進行二查表動作來計算一右值。一內(nèi)存裝置如ROM用于儲存Sbox低碼表(Tkip_Sbox_Lower)與高碼表(Tkip_Sbox_Upper)。使用ROM在芯片上需要大量空間,因此ROM通常以外部元件實現(xiàn)。提供一個完整的系統(tǒng)并減少外部元件已是今日競爭市場的趨勢,因此需要一個有效實現(xiàn)在IC之內(nèi)的Sbox功能的實作。
發(fā)明內(nèi)容因此,本發(fā)明的主要目的在于提供一種具有較小芯片面積的TKIPSbox函數(shù)裝置。根據(jù)本發(fā)明的權利要求,是揭露一種計算TKIPSbox值的裝置,TKIPSbox是提供描述于IEEE802.11i規(guī)格的TKIPSbox函數(shù)。其裝置包含有多個第一組合邏輯,用來根據(jù)一索引值的一低部計算一TKIPSbox左值,多個第二組合邏輯,用來根據(jù)該索引值的一高部計算一TKIPSbox右值,以及多個第三組合邏輯,用來根據(jù)該TKIPSbox左值及該TKIPSbox右值計算TKIPSbox值。根據(jù)本發(fā)明的權利要求,是揭露一種計算TKIPSbox值的方法,TKIPSbox是提供描述于IEEE802.11i規(guī)格的TKIPSbox函數(shù)。其方法包含有下列步驟根據(jù)一索引值的一第一部分計算一TKIPSbox左值,根據(jù)該索引值的一第二部分計算一TKIPSbox右值,以及根據(jù)該TKIPSbox左值及該TKIPSbox右值計算TKIPSbox值。根據(jù)本發(fā)明的權利要求,是揭露一種計算TKIPSbox函數(shù)所需的TKIPSbox值的裝置,此裝置包含一TKIPSbox邏輯,用來根據(jù)一索引值計算一TKIPSbox值。圖1為本發(fā)明計算TKIPSbox值的裝置。圖2為圖1中多個組合邏輯的內(nèi)部實現(xiàn)圖。圖3為計算圖2中l(wèi)0位的邏輯電路實例。圖4為本發(fā)明計算TKIPSbox值的方法流程圖。附圖符號說明40裝置42組合邏輯44輸入端口46輸出端口52第一組合邏輯54第二組合邏輯56異或門58邏輯電路60邏輯電路實例具體實施例方式圖1為本發(fā)明計算TKIPSbox值的一裝置40。裝置40包含有一用來接收16位索引值的輸入端口44、多個組合邏輯42以及一用于輸出16位TKIPSbox值的輸出端口46。組合邏輯42根據(jù)該索引值計算該TKIPSbox值,避免使用先前技術所需的ROM。相較于先前技術儲存預先算好的Sbox值于ROM之中,本發(fā)明使用該索引值來計算該TKIPSbox值。與先前技術使用ROM查詢一預先算好的值相較,使用組合邏輯計算該TKIPSbox值可減少66%的面積。當IC的面積正比于IC的成本且實現(xiàn)于芯片中時,空間節(jié)省將大幅減低設計的總成本。除此之外,組合邏輯計算TKIPSbox值快于使用ROM查表并且只需要較小的功率。圖2為圖1中組合邏輯42的內(nèi)部實現(xiàn)圖。組合邏輯42包含有多個第一組合邏輯52、多個第二組合邏輯54以及多個異或門56。第一組合邏輯52連接于該索引值的八個最高有效位(i15至i8),參照index_high;第二組合邏輯54連接于該索引值的八個最低有效位(i7至i0),參照index_low。第一組合邏輯52包含十六個邏輯電路,換句話說,每一邏輯電路58用于計算右值中的每一位(r15至r0)。同理,第二組合邏輯54包含十六個邏輯電路,換句話說,每一邏輯電路58用于計算左值中的每一位(l15至l0)。異或門56用來將右值和左值的異或結果形成Sbox值。明確地說,右值的最低有效位r0與左值的最低有效位l0的異或結果形成Sbox值的最低有效位s0。以此類推,r1與l1的異或結果形成s1,r2與l2的異或結果形成s2,r15與l15的異或結果形成s15。圖3為計算左值的最低有效位l0位的邏輯電路實例60。邏輯電路實例60使用index_low的i7至i0位來計算左值的l0位。圖3的邏輯電路實例60是為多個可能的邏輯電路之一。任何根據(jù)上述TKIPSboxLower表以及TKIPSboxUpper表以計算左值(l15至l0)以及右值(r15至r0)的邏輯電路皆可使用。應該注意的是,針對不同的運算需求,使用包含不同邏輯門的邏輯電路。圖3的邏輯電路實例60包含大部分IC中常使用的NOT門、NAND門以及NOR門。圖4為本發(fā)明計算TKIPSbox值的方法流程圖100。流程圖100包含下列步驟步驟110提供多個第一組合邏輯,其包含十六個邏輯電路并連接于該索引值的八個最高有效位,并繼續(xù)步驟112。步驟112提供多個第二組合邏輯,其包含十六個邏輯電路并連接于該索引值的八個最低有效位,并繼續(xù)步驟114。步驟114使用該等第一組合邏輯計算TKIPSbox右值,該等第一組合邏輯的每個邏輯電路分別計算TKIPSbox右值的每個位,并繼續(xù)步驟116。步驟116使用該等第二組合邏輯計算TKIPSbox左值,該等第二組合邏輯的每個邏輯電路分別計算TKIPSbox左值的每個位,并繼續(xù)步驟118。步驟110將該TKIPSbox左值以及該TKIPSbox右值做異或運算以計算TKIPSbox值。本發(fā)明使用多個組合邏輯并運用索引直接計算TKIPSbox值。此方法可避免已知技術中使用ROM的問題。使用組合邏輯計算TKIPSbox值可節(jié)省66%的空間,較快速地計算TKIPSbox值并減少功率需求。以上所述僅為本發(fā)明的較佳實施例,凡依本發(fā)明權利要求所做的均等變化與修飾,皆應屬本發(fā)明專利的涵蓋范圍。權利要求1.一種用于計算描述于電機電子工程師學會802.11i規(guī)格的計算暫時密鑰集成協(xié)議Sbox函數(shù)所需的一計算暫時密鑰集成協(xié)議Sbox值的裝置,該裝置包含有多個第一組合邏輯,用于根據(jù)一索引值的一第一部分計算一計算暫時密鑰集成協(xié)議Sbox第一值;多個第二組合邏輯,用于根據(jù)該索引值的一第二部分計算一計算暫時密鑰集成協(xié)議Sbox第二值;以及多個第三組合邏輯,用于根據(jù)該計算暫時密鑰集成協(xié)議Sbox第一值以及該計算暫時密鑰集成協(xié)議Sbox第二值計算該計算暫時密鑰集成協(xié)議Sbox值。2.如權利要求1所述的裝置,其中,該多個第三組合邏輯是為多個異或門,且該計算暫時密鑰集成協(xié)議Sbox第一值與該計算暫時密鑰集成協(xié)議Sbox第二值是利用該多個異或門做異或運算,并將該多個異或門的輸出形成該計算暫時密鑰集成協(xié)議Sbox值。3.如權利要求1所述的裝置,其中,對應于該計算暫時密鑰集成協(xié)議Sbox第一值的每一位,該多個第一組合邏輯包含一邏輯電路,各該邏輯電路分別計算該計算暫時密鑰集成協(xié)議Sbox第一值的各該位,而對應于該計算暫時密鑰集成協(xié)議Sbox第二值的每一位,該多個第二組合邏輯包含一邏輯電路,各該邏輯電路分別計算該計算暫時密鑰集成協(xié)議Sbox第二值的各該位。4.一種用于計算描述于電機電子工程師學會802.11i規(guī)格的計算暫時密鑰集成協(xié)議Sbox函數(shù)所需的一計算暫時密鑰集成協(xié)議Sbox值的方法,該方法包含有下列步驟根據(jù)一索引值的一第一部分計算一計算暫時密鑰集成協(xié)議Sbox第一值;根據(jù)該索引值的一第二部分計算一計算暫時密鑰集成協(xié)議Sbox第二值;以及根據(jù)該計算暫時密鑰集成協(xié)議Sbox第一值以及該計算暫時密鑰集成協(xié)議Sbox第二值計算該計算暫時密鑰集成協(xié)議Sbox值。5.如權利要求4所述的方法,其中,計算該計算暫時密鑰集成協(xié)議Sbox值的步驟包含將該計算暫時密鑰集成協(xié)議Sbox第一值以及該計算暫時密鑰集成協(xié)議Sbox第二值執(zhí)行異或運算以形成該計算暫時密鑰集成協(xié)議Sbox值。6.如權利要求4所述的方法,其中計算該計算暫時密鑰集成協(xié)議Sbox第一值的步驟另包含根據(jù)該索引值的該第一部分計算該計算暫時密鑰集成協(xié)議Sbox第一值的每一位,而計算該計算暫時密鑰集成協(xié)議Sbox第二值的步驟另包含根據(jù)該索引值的該第二部分計算該計算暫時密鑰集成協(xié)議Sbox第二值的每一位。7.一種用于計算計算暫時密鑰集成協(xié)議Sbox函數(shù)所需的一計算暫時密鑰集成協(xié)議Sbox值的裝置,該裝置包含有一計算暫時密鑰集成協(xié)議Sbox邏輯,用于根據(jù)一索引值計算該計算暫時密鑰集成協(xié)議Sbox值。8.如權利要求7所述的裝置,其中,該計算暫時密鑰集成協(xié)議Sbox邏輯另包含有多個第一組合邏輯,用于根據(jù)該索引值的一第一部分計算一計算暫時密鑰集成協(xié)議Sbox第一值;多個第二組合邏輯,用于根據(jù)該索引值的一第二部分計算一計算暫時密鑰集成協(xié)議Sbox第二值;以及多個第三組合邏輯,用于根據(jù)該計算暫時密鑰集成協(xié)議Sbox第一值以及該計算暫時密鑰集成協(xié)議Sbox第二值計算該計算暫時密鑰集成協(xié)議Sbox值。9.如權利要求8所述的裝置,其中,該多個第三組合邏輯是為多個異或門,且該計算暫時密鑰集成協(xié)議Sbox第一值與該計算暫時密鑰集成協(xié)議Sbox第二值是利用該多個異或門做異或運算,并將該多個異或門的輸出形成該計算暫時密鑰集成協(xié)議Sbox值。10.如權利要求8所述的裝置,其中,對應于該計算暫時密鑰集成協(xié)議Sbox第一值的每一位,該多個第一組合邏輯包含一邏輯電路,各該邏輯電路分別計算該計算暫時密鑰集成協(xié)議Sbox第一值的各該位,而對應于該計算暫時密鑰集成協(xié)議Sbox第二值的每一位,該多個第二組合邏輯包含一邏輯電路,各該邏輯電路分別計算該計算暫時密鑰集成協(xié)議Sbox第二值的各該位。全文摘要一輸入端口接收十六位的索引值并連接至多個組合邏輯。這些組合邏輯運用該索引值直接計算TKIPSbox值并輸出至一輸出端口。這些組合邏輯包含有多個第一組合邏輯,連接至該索引值的一高部以計算TKIPSbox右值,以及多個第二組合邏輯,連接至該索引值的一低部以計算TKIPSbox左值。以TKIPSbox左值以及TKIPSbox右值的異或運算來計算TKIPSbox值。文檔編號G06F11/32GK1607764SQ20041004591公開日2005年4月20日申請日期2004年5月24日優(yōu)先權日2003年10月16日發(fā)明者何天行,周欣儀申請人:瑞昱半導體股份有限公司