计算暂时密钥集成协议s盒值的装置及其方法

文档序号:6405020阅读:183来源:国知局

专利名称::计算暂时密钥集成协议s盒值的装置及其方法
技术领域
:本发明涉及一种应用于IEEE802.11I无线网路标准的暂时密钥集成协议的装置及方法,特别涉及一种计算暂时密钥集成协议的混合密钥函数所需的TKIPSbox(TKIPS盒)值的装置及其方法。
背景技术
:IEEE802.11规格制定无线局域网(WirelessLocalAreaNetwork,WLAN)的通信协议。此标准使用无线信号而非有线信号以定义似乙太网的通信信道并提供一个不可信赖的数据媒介。虽然无线信号所伴随带来的噪声造成高封包遗失率,但WLAN结合似TCP/IP的稳定通信协议以及802.11具备的高频宽来提供一个可信赖的网路并让使用者免于信号干扰、反射及衰减等问题。一般说来,WLAN可以较快速设定、具有较大弹性以及较有线网路便宜,因而快速成长。IEEE802.11将LAN分为二个逻辑层。第一逻辑层为实体媒体子层(Physicalmediasub-layer,PHY),控制特定频率以及无线信号的调变方法。IEEE802.11制定不同的PHY子层。举例来说,802.11b(WiFi)使用频率在2.4GHz以及提供最大频宽为11Mbps的PHY子层。第二逻辑层为多媒体存取控制子层(MediaAccessControl,MAC)。在WLAN中无线信号广播可以被无指向性的接收端接收并且无法得知由何传送端产生,因此安全性在WLAN中格外重要。MAC子层提供此安全性的需求。IEEE802.11原本使用有线等效协议(WiredEquivalencyProtocol,WEP)为安全性协议。WEP的目的在于提供无线网路的安全性,其等效于有线网路的安全性。因为WEP是IEEE802.11的一部分,所有与IEEE802.11相容的装置皆实现此协议。不幸地WEP无法提供适当的安全性,并且有接受伪造、重传的封包以及错误使用RC4加密等致命的缺点。一个组织因而创立以强调上述的问题并提供一个更新的协议以提供更佳的安全性。描述于IEEE802.11i的暂时密钥集成协议(TemporalKeyIntegrityProtocol,TKIP)即是努力的结果,用于实现并更新原来WLAN规格。为了使TKIP更容易实现在旧有的机器上,TKIP环绕于旧有的WIP协议之上。TKIP提供一信息认证码以避免伪造,一封包序号(WEP第四栏位)以避免重送的封包,以及混合密钥以更正WEP错误使用RC4加密。TKIP混合密钥功能利用一暂时密钥代替WEP基本密钥而建立一个新封包密钥。暂时密钥是短时间使用并常被更换。当建立一个新的封包密钥时,利用局部无线介面的802MAC位置和暂时密钥的每个位组异或结果先产生一个中间密钥,以对一S-box进行索引。即使使用相同的暂时密钥,此方法可允许不同站台产生不同的中间密钥。为了计算中间密钥,每一站台包含一个S-box,其是利用一个64K位的查表,而此查表是以二个有256栏位位组宽的表格实现。请参考下列用于计算TKIPSbox值的程序码,其是根据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为索引进行二查表动作来计算一右值。一内存装置如ROM用于储存Sbox低码表(Tkip_Sbox_Lower)与高码表(Tkip_Sbox_Upper)。使用ROM在芯片上需要大量空间,因此ROM通常以外部元件实现。提供一个完整的系统并减少外部元件已是今日竞争市场的趋势,因此需要一个有效实现在IC之内的Sbox功能的实作。
发明内容因此,本发明的主要目的在于提供一种具有较小芯片面积的TKIPSbox函数装置。根据本发明的权利要求,是揭露一种计算TKIPSbox值的装置,TKIPSbox是提供描述于IEEE802.11i规格的TKIPSbox函数。其装置包含有多个第一组合逻辑,用来根据一索引值的一低部计算一TKIPSbox左值,多个第二组合逻辑,用来根据该索引值的一高部计算一TKIPSbox右值,以及多个第三组合逻辑,用来根据该TKIPSbox左值及该TKIPSbox右值计算TKIPSbox值。根据本发明的权利要求,是揭露一种计算TKIPSbox值的方法,TKIPSbox是提供描述于IEEE802.11i规格的TKIPSbox函数。其方法包含有下列步骤根据一索引值的一第一部分计算一TKIPSbox左值,根据该索引值的一第二部分计算一TKIPSbox右值,以及根据该TKIPSbox左值及该TKIPSbox右值计算TKIPSbox值。根据本发明的权利要求,是揭露一种计算TKIPSbox函数所需的TKIPSbox值的装置,此装置包含一TKIPSbox逻辑,用来根据一索引值计算一TKIPSbox值。图1为本发明计算TKIPSbox值的装置。图2为图1中多个组合逻辑的内部实现图。图3为计算图2中l0位的逻辑电路实例。图4为本发明计算TKIPSbox值的方法流程图。附图符号说明40装置42组合逻辑44输入端口46输出端口52第一组合逻辑54第二组合逻辑56异或门58逻辑电路60逻辑电路实例具体实施例方式图1为本发明计算TKIPSbox值的一装置40。装置40包含有一用来接收16位索引值的输入端口44、多个组合逻辑42以及一用于输出16位TKIPSbox值的输出端口46。组合逻辑42根据该索引值计算该TKIPSbox值,避免使用先前技术所需的ROM。相较于先前技术储存预先算好的Sbox值于ROM之中,本发明使用该索引值来计算该TKIPSbox值。与先前技术使用ROM查询一预先算好的值相较,使用组合逻辑计算该TKIPSbox值可减少66%的面积。当IC的面积正比于IC的成本且实现于芯片中时,空间节省将大幅减低设计的总成本。除此之外,组合逻辑计算TKIPSbox值快于使用ROM查表并且只需要较小的功率。图2为图1中组合逻辑42的内部实现图。组合逻辑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是为多个可能的逻辑电路之一。任何根据上述TKIPSboxLower表以及TKIPSboxUpper表以计算左值(l15至l0)以及右值(r15至r0)的逻辑电路皆可使用。应该注意的是,针对不同的运算需求,使用包含不同逻辑门的逻辑电路。图3的逻辑电路实例60包含大部分IC中常使用的NOT门、NAND门以及NOR门。图4为本发明计算TKIPSbox值的方法流程图100。流程图100包含下列步骤步骤110提供多个第一组合逻辑,其包含十六个逻辑电路并连接于该索引值的八个最高有效位,并继续步骤112。步骤112提供多个第二组合逻辑,其包含十六个逻辑电路并连接于该索引值的八个最低有效位,并继续步骤114。步骤114使用该等第一组合逻辑计算TKIPSbox右值,该等第一组合逻辑的每个逻辑电路分别计算TKIPSbox右值的每个位,并继续步骤116。步骤116使用该等第二组合逻辑计算TKIPSbox左值,该等第二组合逻辑的每个逻辑电路分别计算TKIPSbox左值的每个位,并继续步骤118。步骤110将该TKIPSbox左值以及该TKIPSbox右值做异或运算以计算TKIPSbox值。本发明使用多个组合逻辑并运用索引直接计算TKIPSbox值。此方法可避免已知技术中使用ROM的问题。使用组合逻辑计算TKIPSbox值可节省66%的空间,较快速地计算TKIPSbox值并减少功率需求。以上所述仅为本发明的较佳实施例,凡依本发明权利要求所做的均等变化与修饰,皆应属本发明专利的涵盖范围。权利要求1.一种用于计算描述于电机电子工程师学会802.11i规格的计算暂时密钥集成协议Sbox函数所需的一计算暂时密钥集成协议Sbox值的装置,该装置包含有多个第一组合逻辑,用于根据一索引值的一第一部分计算一计算暂时密钥集成协议Sbox第一值;多个第二组合逻辑,用于根据该索引值的一第二部分计算一计算暂时密钥集成协议Sbox第二值;以及多个第三组合逻辑,用于根据该计算暂时密钥集成协议Sbox第一值以及该计算暂时密钥集成协议Sbox第二值计算该计算暂时密钥集成协议Sbox值。2.如权利要求1所述的装置,其中,该多个第三组合逻辑是为多个异或门,且该计算暂时密钥集成协议Sbox第一值与该计算暂时密钥集成协议Sbox第二值是利用该多个异或门做异或运算,并将该多个异或门的输出形成该计算暂时密钥集成协议Sbox值。3.如权利要求1所述的装置,其中,对应于该计算暂时密钥集成协议Sbox第一值的每一位,该多个第一组合逻辑包含一逻辑电路,各该逻辑电路分别计算该计算暂时密钥集成协议Sbox第一值的各该位,而对应于该计算暂时密钥集成协议Sbox第二值的每一位,该多个第二组合逻辑包含一逻辑电路,各该逻辑电路分别计算该计算暂时密钥集成协议Sbox第二值的各该位。4.一种用于计算描述于电机电子工程师学会802.11i规格的计算暂时密钥集成协议Sbox函数所需的一计算暂时密钥集成协议Sbox值的方法,该方法包含有下列步骤根据一索引值的一第一部分计算一计算暂时密钥集成协议Sbox第一值;根据该索引值的一第二部分计算一计算暂时密钥集成协议Sbox第二值;以及根据该计算暂时密钥集成协议Sbox第一值以及该计算暂时密钥集成协议Sbox第二值计算该计算暂时密钥集成协议Sbox值。5.如权利要求4所述的方法,其中,计算该计算暂时密钥集成协议Sbox值的步骤包含将该计算暂时密钥集成协议Sbox第一值以及该计算暂时密钥集成协议Sbox第二值执行异或运算以形成该计算暂时密钥集成协议Sbox值。6.如权利要求4所述的方法,其中计算该计算暂时密钥集成协议Sbox第一值的步骤另包含根据该索引值的该第一部分计算该计算暂时密钥集成协议Sbox第一值的每一位,而计算该计算暂时密钥集成协议Sbox第二值的步骤另包含根据该索引值的该第二部分计算该计算暂时密钥集成协议Sbox第二值的每一位。7.一种用于计算计算暂时密钥集成协议Sbox函数所需的一计算暂时密钥集成协议Sbox值的装置,该装置包含有一计算暂时密钥集成协议Sbox逻辑,用于根据一索引值计算该计算暂时密钥集成协议Sbox值。8.如权利要求7所述的装置,其中,该计算暂时密钥集成协议Sbox逻辑另包含有多个第一组合逻辑,用于根据该索引值的一第一部分计算一计算暂时密钥集成协议Sbox第一值;多个第二组合逻辑,用于根据该索引值的一第二部分计算一计算暂时密钥集成协议Sbox第二值;以及多个第三组合逻辑,用于根据该计算暂时密钥集成协议Sbox第一值以及该计算暂时密钥集成协议Sbox第二值计算该计算暂时密钥集成协议Sbox值。9.如权利要求8所述的装置,其中,该多个第三组合逻辑是为多个异或门,且该计算暂时密钥集成协议Sbox第一值与该计算暂时密钥集成协议Sbox第二值是利用该多个异或门做异或运算,并将该多个异或门的输出形成该计算暂时密钥集成协议Sbox值。10.如权利要求8所述的装置,其中,对应于该计算暂时密钥集成协议Sbox第一值的每一位,该多个第一组合逻辑包含一逻辑电路,各该逻辑电路分别计算该计算暂时密钥集成协议Sbox第一值的各该位,而对应于该计算暂时密钥集成协议Sbox第二值的每一位,该多个第二组合逻辑包含一逻辑电路,各该逻辑电路分别计算该计算暂时密钥集成协议Sbox第二值的各该位。全文摘要一输入端口接收十六位的索引值并连接至多个组合逻辑。这些组合逻辑运用该索引值直接计算TKIPSbox值并输出至一输出端口。这些组合逻辑包含有多个第一组合逻辑,连接至该索引值的一高部以计算TKIPSbox右值,以及多个第二组合逻辑,连接至该索引值的一低部以计算TKIPSbox左值。以TKIPSbox左值以及TKIPSbox右值的异或运算来计算TKIPSbox值。文档编号G06F11/32GK1607764SQ20041004591公开日2005年4月20日申请日期2004年5月24日优先权日2003年10月16日发明者何天行,周欣仪申请人:瑞昱半导体股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1