[go: up one dir, main page]

CN1163018C - Method and device for generating message authentication code - Google Patents

Method and device for generating message authentication code Download PDF

Info

Publication number
CN1163018C
CN1163018C CNB008114854A CN00811485A CN1163018C CN 1163018 C CN1163018 C CN 1163018C CN B008114854 A CNB008114854 A CN B008114854A CN 00811485 A CN00811485 A CN 00811485A CN 1163018 C CN1163018 C CN 1163018C
Authority
CN
China
Prior art keywords
bits
bit
generator
message
pseudo
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB008114854A
Other languages
Chinese (zh)
Other versions
CN1369157A (en
Inventor
G��G���Ϳ���
G·G·罗斯
P·E·本德
小R·F·奎克
�����������ֶ�
J·K·沃尔夫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN1369157A publication Critical patent/CN1369157A/en
Application granted granted Critical
Publication of CN1163018C publication Critical patent/CN1163018C/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/34Encoding or coding, e.g. Huffman coding or error correction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

一种用来产生消息鉴别码(MAC)的方法,包括按照伪随机数分配格式把一消息的位分配到一较大消息中的步骤。计算该较大消息的循环冗余码校码(CRC)位并将其用作该消息的MAC。不必产生该较大消息。计算余项模数多项式xi的CRC多项式,式中i是“较大消息”中的预期的位位置。在CRC和计算出的余项上逐位地执行“异或”(XOR)运算,以导出新的CRC。

A method for generating a message authentication code (MAC) includes the steps of allocating bits of a message into a larger message according to a pseudo-random number allocation format. The cyclic redundancy check (CRC) bits of the larger message are calculated and used as the MAC of that message. The larger message does not need to be generated. The CRC polynomial of the remainder modulo polynomial x<sub>i</sub> is calculated, where i is the expected bit position in the "larger message". A bit-by-bit "exclusive OR" operation is performed on the CRC and the calculated remainder to derive a new CRC.

Description

用来产生消息鉴别码的方法和设备Method and device for generating message authentication code

                            发明背景Background of the Invention

I.发明领域I. Field of Invention

本发明总的说来涉及通信领域,更具体地说,涉及消息鉴别码的产生。The present invention relates generally to the field of communications, and more particularly to the generation of message authentication codes.

II.背景II. Background

消息鉴别码(MAC)是一密码导出项,该密码导出项可附加到某消息以验证该消息源自某方且示被任一其他方改动。这代表了MAC用于电信的许多领域中的原因。一个示例的领域是无线通信。A Message Authentication Code (MAC) is a cryptographic derivative that can be appended to a message to verify that the message originated from a party and has not been altered by any other party. This represents the reason why MACs are used in many areas of telecommunications. One example field is wireless communications.

无线通信领域有许多应用,包括,例如,无绳电话,寻呼,无线本地环路,诸如个人数字助理(PDA)的无线数据应用,诸如蜂窝和PCS电话系统的无线电话,移动因特网协议(IP)电话和卫星通信系统。一个特别重要的应用是移动用户的无线电话。The field of wireless communications has many applications including, for example, cordless telephony, paging, wireless local loop, wireless data applications such as personal digital assistants (PDAs), wireless telephony such as cellular and PCS telephone systems, mobile Internet Protocol (IP) Telephone and satellite communication systems. A particularly important application is wireless telephony for mobile users.

已为无线通信系统开发多种空中接口,包括,例如,频分多址(FDMA),时分多址(TDMA)和码分多址(CDMA)。与此相关,已建立多种国内和国际标准,包括,例如,高级移动电话业务(AMPS),全球移动通信系统(GSM)和过渡性标准95(IS-95)。A variety of air interfaces have been developed for wireless communication systems including, for example, Frequency Division Multiple Access (FDMA), Time Division Multiple Access (TDMA), and Code Division Multiple Access (CDMA). In connection with this, various national and international standards have been established including, for example, Advanced Mobile Phone Service (AMPS), Global System for Mobile Communications (GSM) and Interim Standard 95 (IS-95).

一个示例无线电话通信系统是码分多址(CDMA)系统。IS-95标准及其变体IS-95A,ANSI J-STD-008,IS-95B、提议的第三代标准IS-95C和IS-200,提议的专用于数据的高数据速率CDMA标准等(这里统称为IS-95)由电信工业协会(TIA)和其他知名的标准组织公布,以规定CDMA空中接口在蜂窝或PCS电话通信系统中的使用。基本上按照IS-95标准的使用而配置的示例无线通信系统在专利号为5,103,459和4,901,307的美国专利中有描述,这些专利已转让给本发明的受让人,在此完全引述作参考。An example wireless telephone communication system is a Code Division Multiple Access (CDMA) system. IS-95 standard and its variants IS-95A, ANSI J-STD-008, IS-95B, proposed third generation standard IS-95C and IS-200, proposed high data rate CDMA standard dedicated to data, etc. ( Collectively referred to herein as IS-95) are promulgated by the Telecommunications Industry Association (TIA) and other well-known standards organizations to specify the use of the CDMA air interface in cellular or PCS telephony communication systems. Exemplary wireless communication systems configured substantially in accordance with the use of the IS-95 standard are described in US Patent Nos. 5,103,459 and 4,901,307, assigned to the assignee of the present invention and incorporated herein by reference in their entirety.

在一典型通信中,MAC m是用(长度LM的)消息M和只有该消息始发方和接收方知道的共享密钥K作为一函数的输入而计算出的该函数的输出。如果所选的函数安全,那么,能够截取并潜在地修改该发送消息的主动攻击者既不能发现密钥K也不能产生有适当概率被接收方接受作为有效消息的消息。如果MAC的长Lm(位),则攻击者总是会简单地猜出所需消息的m的一个值,猜中的概率1/2Lm。因此,对MAC安全性的任一保证实质上是概率。不管是有意还是随机引入,MAC一般提供不了比这种概率更好的对检测差错的保证。特别是,消息中的一单个位差错一般与任一其他替换有同样的机会匹配附加在该消上的MAC。尽管这种概率小,仍然意义重大。In a typical communication, MAC m is the output of a function computed using as input a message M (of length L M ) and a shared secret key K known only to the originator and receiver of the message. If the chosen function is secure, an active attacker who is able to intercept and potentially modify the sent message can neither discover the key K nor generate a message that has a reasonable probability of being accepted as a valid message by the recipient. If the MAC is long L m (bits), the attacker will always simply guess a value of m for the desired message with probability 1/2 L m . Therefore, any guarantee of MAC security is probabilistic in nature. Whether introduced intentionally or randomly, MAC generally does not provide better guarantees against detection errors than this probability. In particular, a single bit error in a message generally has the same chance of matching the MAC attached to the message as any other replacement. Although this probability is small, it is still significant.

循环冗余码校(CRC)是公知的检错与纠错码(ECC)的一个例子。在数据发送可能被讹误的许多应用中及当希望接收机能检测最常见的讹误并加以纠正时使用ECC。CRC对计算是有效的并具有有用的差错检测特性。如果接收的消息M在任何小数目的位中有差错,CRC将保证检测已出差错并实际上指示(假定差错尽可能小)哪些位出错。这使纠错能够进行。CRC是通过认为该消息的这些位是一多项式的系数并在该多项式除以度为L的多项式P时计算余数而计算的。仔细选择多项式P给出所需的检错和纠错特性。尽管CRC用于检测发送期间引起的随机差错的类型是好的,它们在防止任一种类的主动攻击没有用处,因为攻击者能容易地计算对消息的任一修改的CRC的影响。攻击者亦可相应地修改CRC。即使有秘密信息合并在CRC的计算中但不与该消息一起发送,这一点仍是真的。A cyclic redundancy check (CRC) is an example of a well-known error detection and correction code (ECC). ECC is used in many applications where data transmissions may be corrupted and when it is desired that the receiver be able to detect the most common corruptions and correct them. CRCs are computationally efficient and have useful error detection properties. If the received message M has errors in any small number of bits, the CRC will ensure detection that errors have occurred and actually indicate (assuming the errors are as small as possible) which bits are erroneous. This enables error correction. The CRC is calculated by considering the bits of the message as coefficients of a polynomial and calculating the remainder when this polynomial is divided by a polynomial P of degree L. Careful selection of the polynomial P gives the desired error detection and correction properties. Although CRCs are good for detecting types of random errors caused during transmission, they are not useful in preventing active attacks of any kind, since an attacker can easily calculate the effect of any modification of the CRC on the message. An attacker can also modify the CRC accordingly. This is true even if secret information is incorporated in the calculation of the CRC but not sent with the message.

需要提供一种组合的MAC/CRC,即一个代码,该代码包括通过消息与其MAC的失配将检测已经通过CRC检测的小的随机差错的保证。该代码还会有益的是,同时保证:不知道秘密信息K的主动攻击者将不能发现K或“伪造”消息,概率优于1/(2k-1)。(应注意的是,正如本领域中专业人员所知的,概率值中额外“-1”源自以下事实:攻击者知道,在此情况下,原始MAC将不用于与攻击者正在修改的消息大部分相同的消息,所以攻击者反而将随机地选择其他可能的MAC之一)。因此,需要一种产生具有保证的讹误检测特性的MAC的方法。There is a need to provide a combined MAC/CRC, ie a code that includes a guarantee that a mismatch between a message and its MAC will detect small random errors that have been detected by the CRC. This code would also be beneficial, while guaranteeing that an active attacker who does not know the secret message K will not be able to discover K or "forge" the message with a probability better than 1/( 2k -1). (It should be noted that, as is known to those skilled in the art, the extra "-1" in the probability value stems from the fact that the attacker knows that in this case the original MAC will not be used with the message the attacker is modifying mostly the same message, so the attacker will instead randomly choose one of the other possible MACs). Therefore, there is a need for a method of generating a MAC with guaranteed corruption detection properties.

                            发明概要Summary of Invention

本发明针对一种产生具有保证的讹误检测特性的MAC的方法。相应地,在本发明的一方面中,一种有益地产生消息鉴别码的方法包括以下步骤:以一种依赖密钥的方式伪随机地把第一批多个消息位分配到第二批多个位中;产生包含第二批多个位的循环冗余码校验的第三批多个位;及发送第一批多个消息位和包含第三批多个位的消息鉴别码。The present invention is directed to a method of generating a MAC with guaranteed corruption detection properties. Accordingly, in one aspect of the invention, a method of advantageously generating a message authentication code includes the steps of pseudo-randomly assigning a first plurality of message bits to a second plurality of bits in a key-dependent manner. generating a third plurality of bits of a cyclic redundancy check comprising a second plurality of bits; and sending a first plurality of message bits and a message authentication code comprising a third plurality of bits.

在本发明的另一方面中,配置成有益地产生一消息鉴别码的发生器,包括以下装置:用来以一种依赖密钥的方式伪随机地把第一批多个消息位分配到第二批多个位中的装置;用来产生包含第二批多个位的循环冗余码校码的第三批多个位的装置;及用来发送第一批多个消息位和包含第三批多个位的消息鉴别码的装置。In another aspect of the present invention, a generator configured to advantageously generate a message authentication code includes means for pseudo-randomly assigning the first plurality of message bits to the first plurality of message bits in a key-dependent manner. means for generating a third plurality of bits comprising a cyclic redundancy code check code of the second plurality of bits; and means for transmitting the first plurality of message bits and comprising the first plurality of bits Means for three batches of multi-bit message authentication codes.

在本发明的另一方面中,配置成有益地产生一消息鉴别码的发生器,包括配置成以一种依赖密钥的方式伪随机地把第一批多个消息位分配到第二批多个位中的处理器,耦合到该分配器并配置成产生包含第二批多个位的循环冗余码校验的第三批多个位的发生器,及耦合到该发生器并配置成发送第一批多个消息位和包含第三批多个位的消息鉴别码的发射器。In another aspect of the invention, a generator configured to beneficially generate a message authentication code includes configured to pseudo-randomly distribute the first plurality of message bits to the second plurality of message bits in a key-dependent manner. A processor in bits, coupled to the distributor and configured to generate a generator of a third plurality of bits comprising a cyclic redundancy check of the second plurality of bits, and a generator coupled to the generator and configured to A transmitter that sends a first plurality of message bits and a message authentication code comprising a third plurality of bits.

在本发明的一实施例中,一种有益地伪随机地分配消息的位的方法,包括以下步骤:计算多项式xi的剩余模数P,这里i是一个预定的消息位的位置而P是一个循环冗余码校码多项式;及对消息的等于1的每个消息位,逐位地执行CRC位和计算出的余数的“异或”运算。In one embodiment of the invention, a method of advantageously pseudo-randomly allocating bits of a message comprises the steps of computing the residual modulus P of a polynomial xi , where i is a predetermined message bit position and P is a cyclic redundancy code checking polynomial; and for each message bit equal to 1 of the message, perform an "exclusive OR" operation of the CRC bit and the calculated remainder bit by bit.

                           附图简述Brief description of attached drawings

图1是蜂窝电话系统的方框图。Figure 1 is a block diagram of a cellular telephone system.

图2是用来产生消息及相关的消息鉴别码(MAC)的处理器和相关的存储元件的方框图。Figure 2 is a block diagram of a processor and associated storage elements for generating messages and associated message authentication codes (MACs).

图3是用来产生消息和相关的MAC的发生器的方框图。Figure 3 is a block diagram of a generator used to generate messages and associated MACs.

图4是可用于图3的发生器中以使用一种键控伪随机数(PRN)消息位分配技术的寄存器的原理图。4 is a schematic diagram of registers that may be used in the generator of FIG. 3 to use a keyed pseudorandom number (PRN) message bit allocation technique.

图5是可用于图3的发生器中的循环冗余码校验(CRC)发生器的原理图。FIG. 5 is a schematic diagram of a cyclic redundancy check (CRC) generator that may be used in the generator of FIG. 3 .

图6是流程图,说明由诸如图3的发生器之类的发生器执行的方法步骤,产生消息的MAC。FIG. 6 is a flowchart illustrating method steps performed by a generator, such as the generator of FIG. 3, to generate a MAC of a message.

图7是流程图,说明由诸如图3的发生器之类的发生器执行的方法步骤,产生消息的MAC。FIG. 7 is a flowchart illustrating method steps performed by a generator, such as that of FIG. 3, to generate a MAC of a message.

                         较佳实施例详述Detailed Description of Preferred Embodiments

这里在下面描述的示例实施存在于配置成使用CDMA空中接口的无线电话通信系统中。然而,本领域中的熟练人士明白,具体体现发明的特点的MAC产生方法和设备可存在于使用本领域中熟练人员所知的宽范围的技术的多种通信系统中的任一种。The example implementations described herein below reside in a wireless telephony communication system configured to use a CDMA air interface. However, those skilled in the art appreciate that the MAC generation method and apparatus embodying features of the invention may be present in any of a variety of communication systems using a wide range of techniques known to those skilled in the art.

如图1所示,CDMA无线电话系统通常包括一批移动用户单元10。一批基站12,基站控制器(BSC)14及一个移动交换中心(MSC)16。MSC 16置成与普通公共交换电话网(PSTN)18相接。MSC16还配置成与BSC14相接。BSC14通过回程线路耦合到基站12。回程线路可配置成支持几个知名的接口,包括,例如,E1/T1,ATM,IP,PPP帧中继,HDSL,ADSL或XDSL中的任何一个。可以理解的是,系统中可有不止两个BSC 14。每个基站12有益地包括至少一扇区(未示出),每一扇区包含一全向天线或一指向为经向离开基站12的某方向的天线。或者,每一扇区可包含用于分集接收的两个天线。每个基站12可有益地设计成支持一批频率指配。一扇区与一频率指配的相交区可称为一CDMA信道。基站12亦可称为基站收发机子系统(BTS)12。或者,业界可用“基站”统称BSC 14与一个或更多BTS 12。BTS 12亦可概指“小区站点”12。或者一给定BTS 12的单个扇区亦称为小区站点。移动用户单元10典型地是蜂窝或PCS电话机10。系统有益地配置成用于IS-95标准。As shown in FIG. 1, a CDMA radiotelephone system typically includes a collection of mobile subscriber units 10. As shown in FIG. A number of base stations 12 , a base station controller (BSC) 14 and a mobile switching center (MSC) 16 . The MSC 16 is arranged to be connected to the ordinary public switched telephone network (PSTN) 18. MSC 16 is also configured to interface with BSC 14 . BSC 14 is coupled to base station 12 through a backhaul line. The backhaul line can be configured to support any of several well-known interfaces including, for example, E1/T1, ATM, IP, PPP Frame Relay, HDSL, ADSL or XDSL. It will be appreciated that there may be more than two BSCs 14 in the system. Each base station 12 advantageously includes at least one sector (not shown), each sector containing an omnidirectional antenna or an antenna pointing in a direction away from the base station 12 . Alternatively, each sector may contain two antennas for diversity reception. Each base station 12 may advantageously be designed to support a pool of frequency assignments. The intersection of a sector and a frequency assignment may be referred to as a CDMA channel. The base station 12 may also be referred to as a base transceiver subsystem (BTS) 12 . Alternatively, the industry may collectively refer to the BSC 14 and one or more BTS 12 as "base stations". BTS 12 may also generally refer to "cell site" 12. Or a single sector of a given BTS 12 is also called a cell site. Mobile subscriber unit 10 is typically a cellular or PCS telephone 10 . The system is advantageously configured for use with the IS-95 standard.

在蜂窝电话系统的典型运行期间,基站12接收来自移动单元10组的一组组反向链路信号。移动单元10在进行电话呼叫或其他通信。由一给定基站12接收的每个反向链路信号在该基站12内处理。结果数据提交给BSC14。BSC14提供呼叫资源分配和移动性管理功能,包括基站12间软切换的协调的结合。BSC14还向MSC16发送接收的数据,MAC16提供另外的路由选择业务经和PSTN18相接。类似地,PSTN18与MAC16相接,MAC16与BSC14相接,它们依次控制基站12向移动单元10组发送前向链路信号组。During typical operation of the cellular telephone system, base station 12 receives groups of reverse-link signals from groups of mobile units 10 . Mobile unit 10 is conducting a telephone call or other communication. Each reverse link signal received by a given base station 12 is processed within that base station 12 . The resulting data were submitted to BSC14. BSC 14 provides a combination of call resource allocation and mobility management functions, including coordination of soft handoffs between base stations 12 . BSC14 also sends received data to MSC16, and MAC16 provides other routing services and connects with PSTN18. Similarly, PSTN 18 interfaces with MAC 16, which interfaces with BSC 14, which in turn control base station 12 to transmit groups of forward link signals to groups of mobile units 10.

按照一实施例,如图2所示,用来产生包括MAC的消息的机构100包括一处理器102,一软件模块104及一存储媒介106。处理器102有益地是一微处理器或诸如数字信号处理(DSP)的一专用处理器,但可以选择地是处理器,控制器,微控制器或状态机的任一普通形式。处理器102耦合到软件模块104,软件模块104有益地实施为容纳指导处理器102的运行的软件指令的RAM存储器。软件指令可包含一软件程序或一组微码。RAM存储器104可以是板上RAM,或者处理器102和RAM存储器104可驻留于ASIC中。在一可选实施例中,固件指令替代软件模块104。存储媒介106耦合到处理器102,并有益地实施为RAM存储器与诸如ROM存储器的任一形式的普通非易失存储器的组合。如下所述,存储媒介106用来实施一线性反馈移位寄存器(LFSR)以产生MAC,并存储预先计算的表和指令。例如,指令和表存储于ROM存储器组件中而寄存器存储于RAM存储器组件中。可选地。存储媒介106可实施为一磁盘存储器或一可由处理器102访问的闪存。可选地,存储媒介106可实施为寄存器。机构100可驻留于诸如移动用户单元10的任一普通通信装置或图1的CDMA无线电话系统中的基站12中。According to an embodiment, as shown in FIG. 2 , the mechanism 100 for generating a message including MAC includes a processor 102 , a software module 104 and a storage medium 106 . Processor 102 is advantageously a microprocessor or a special purpose processor such as digital signal processing (DSP), but may alternatively be any common form of processor, controller, microcontroller or state machine. Processor 102 is coupled to software module 104 , which is advantageously implemented as a RAM memory containing software instructions directing the execution of processor 102 . Software instructions may comprise a software program or a set of microcode. RAM memory 104 may be on-board RAM, or processor 102 and RAM memory 104 may reside in an ASIC. In an alternative embodiment, firmware instructions replace software module 104 . Storage medium 106 is coupled to processor 102 and is advantageously implemented as a combination of RAM memory and any form of ordinary non-volatile memory, such as ROM memory. As described below, storage medium 106 is used to implement a linear feedback shift register (LFSR) to generate the MAC, and to store precomputed tables and instructions. For example, instructions and tables are stored in a ROM memory component and registers are stored in a RAM memory component. Optionally. Storage medium 106 may be implemented as a disk storage or a flash memory accessible by processor 102 . Alternatively, storage medium 106 may be implemented as a register. Organization 100 may reside in any conventional communication device such as mobile subscriber unit 10 or base station 12 in the CDMA wireless telephone system of FIG.

如图3所示,在一实施例中,用来产生消息和相关的MAC的发生器200包括键控伪随机数(PRN)分配器202,循环冗余码校码(CRC)发生器204,调制器206及发射机208。消息M的消息位提供给键控PRM分配器202。如下所详述,键控PRN分配器202伪随机地以一种依赖密钥的方式把这些消息位分配到位序列中。包括被分配的消息位的位序列提供给CRC发生器204。CRC发生器204按照本领域中的熟练人士所知的任一普通CRC计算方法计算包括被分配的位的位序列的CRC。As shown in FIG. 3, in one embodiment, a generator 200 for generating messages and related MACs includes a keyed pseudo-random number (PRN) distributor 202, a cyclic redundancy check code (CRC) generator 204, modulator 206 and transmitter 208 . The message bits of the message M are provided to the keyed PRM distributor 202 . As detailed below, keyed PRN allocator 202 pseudo-randomly distributes the message bits into bit sequences in a key-dependent manner. The bit sequence comprising the assigned message bits is provided to CRC generator 204 . The CRC generator 204 calculates the CRC of the bit sequence including the assigned bits according to any common CRC calculation method known to those skilled in the art.

CRC发生器204产生CRC位,CRC位将用作这些消息位的MAC。MAC位和消息位提供给调制器206。调制器206调制接收的位以在一通信信道上发送。调制方案随通信系统和正在使用的通信信道的类型而异。在一实施例中,调制方案是CDMA方案且通信系统是图1的无线电话系统。调制器206向发射机208提供调制的消息和MAC信号。发射机在通信信道上发送该调制的消息和MAC信号。CRC generator 204 generates CRC bits which will be used as a MAC for these message bits. The MAC bits and message bits are provided to modulator 206 . Modulator 206 modulates the received bits for transmission on a communication channel. Modulation schemes vary with the communication system and the type of communication channel being used. In one embodiment, the modulation scheme is a CDMA scheme and the communication system is the wireless telephone system of FIG. 1 . Modulator 206 provides the modulated message and MAC signal to transmitter 208 . A transmitter sends the modulated message and MAC signal over a communication channel.

按照参考图3所描述的实施例,计算较大“消息”(位序列)的CRC并作为MAC发送,其中原始消息,M,的各个位已经以一种不有被攻击者预测的,依赖密钥的方式得到分配。这样,小的随机差错可由通常的CRC机制检测与纠正,而主动攻击(即,对一不然则合法的消息的有意修改)只有有限的成功概率。According to the embodiment described with reference to FIG. 3, the CRC of a larger "message" (sequence of bits) is calculated and sent as a MAC, where the individual bits of the original message, M, have been encoded in a cryptographically dependent manner not predicted by the attacker. keys are assigned. Thus, small random errors can be detected and corrected by usual CRC mechanisms, while active attacks (ie, intentional modification of an otherwise legitimate message) have only a limited probability of success.

有益地,通过较大消息分配原始消息M的位的方法随消息而异。分配方法中的变异阻止攻击者收集消息从而逐渐提高成功攻击的概率。因为MAC必须保证检测小差错,如果发送两类似的消息(根据定义有不同的MAC),则与这两个类似的消息相似但不同的另一消息的MAC也必须是不同的。以便攻击者只能从2L-2个可能的MAC等中随机地选择。有益地,表示为“盐”S的信息用来把诸如发送消息的时刻的特定消息的相关信息或序列号与分配消息位的方式联系起来。这类似以下事实,流密码应决不产生两不同消息或单个消息的两个不同段的输出的相同流。Beneficially, the method by which the bits of the original message M are allocated by the larger message varies from message to message. Mutations in the distribution method prevent the attacker from collecting messages and gradually increase the probability of a successful attack. Since a MAC must guarantee detection of small errors, if two similar messages (with different MACs by definition) are sent, the MAC of another message that is similar but different to the two similar messages must also be different. so that the attacker can only randomly choose from 2 L -2 possible MACs etc. Advantageously, information denoted as a "salt" S is used to link information related to a particular message, such as the moment the message was sent, or a sequence number, to the manner in which the bits of the message are allocated. This is analogous to the fact that a stream cipher should never produce the same stream of output for two different messages or two different segments of a single message.

相应地,必须以一种攻击者不可预测的且无助于攻击者发现关于共享密钥K的信息的方式把来自原始消息M的位分配到较大“消息”中。这样,按照参考图3所描述的实施例,产生均匀分配的PRN以在较大消息内控制消息位的分配。均匀分配的PRN有益地以一种攻击者不可预测的方式从共用密钥K和盐S导出。Accordingly, the bits from the original message M must be distributed into the larger "message" in a way that is unpredictable to the attacker and does not help the attacker discover information about the shared key K. Thus, according to the embodiment described with reference to FIG. 3, evenly distributed PRNs are generated to control the distribution of message bits within a larger message. The evenly distributed PRN is advantageously derived from the common key K and salt S in a manner that is unpredictable to the attacker.

在一示例实施例中,称为SDBER的流密码的输出用作PRN的源,SOBER流密码在1999年2月8日送交的申请号为09/246366,标题为用来产生加密流密码的方法和设备的美国申请中描述。该申请已转让给本发明的受让者。流密码是伪随机产生的位流,对这些位流逐位地用要发送的消息的各个位进行“异或”运算(XDR)从而产生一加密的消息,接收该加密的消息时,用同一流密码对其进行“异或”运算,以产生原始消息。在可选实施例中,其他形式的PRN发生器可替代该流密码。特别是,提供的安全性较流密码为小的PRN发生器可用来代替该流密码。In an exemplary embodiment, the output of a stream cipher known as SDBER, the SOBER stream cipher filed on February 8, 1999 under application number 09/246366 titled Use to Generate Encrypted Stream Ciphers, is used as the source of the PRN. Methods and apparatus are described in the US application. This application is assigned to the assignee of the present invention. A stream cipher is a pseudo-randomly generated bit stream, which is subjected to an "exclusive OR" operation (XDR) with each bit of the message to be sent bit by bit to generate an encrypted message. When receiving the encrypted message, use the same First-class ciphers "exclusive-or" it to produce the original message. In alternative embodiments, other forms of PRN generators may replace the stream cipher. In particular, a PRN generator that provides less security than a stream cipher can be used in place of the stream cipher.

在一实施例中,如图4所示,消息M 300的位是在一键控PRN发生器(未示出)的控制下分配的,方法是:在较大消息302中以某一偏置开始并顺序安置位,在两个位之间跳过该较大消息302中的不可预测的数目的位置。当,或者如果遇到该较大消息302的端头,分配位置重新开始于该较大消息302的开头。有益地确定该较大消息302的位之间跳过的位置的最大数目,使得分配位置不完全绕回,即,使得不抵达或经过该较大消息302中的起始位置。这保证消息M 300中没有两个位分配给该较大消息302中的同一位置,假如两个位分配给该较大消息302中的同一位置,这两个位的同时变化将相互抵消且不被检测到,从而实现不了目标。考虑到最坏的情况,其中,被分配的位之间的每一间隙是最大长度,必须限制最大差距长度。然而平均间隙长度仅为最大差距长度的一半。因此,平均地,消息位只分配在该较大消息的一半内。这种分配技术有益地提供富足的安全性和实施的相对轻松。In one embodiment, as shown in Figure 4, the bits of message M 300 are allocated under the control of a keyed PRN generator (not shown) by: Bits are placed initially and sequentially, skipping an unpredictable number of positions in the larger message 302 between two bits. When, or if, the end of the larger message 302 is encountered, the allocation position restarts at the beginning of the larger message 302 . The maximum number of positions skipped between bits of the larger message 302 is advantageously determined such that the allocated positions do not completely wrap around, ie so that the starting position in the larger message 302 is not reached or passed. This ensures that no two bits in the message M 300 are assigned to the same position in the larger message 302, and if two bits are assigned to the same position in the larger message 302, simultaneous changes in the two bits will cancel each other out and will not be detected, thereby failing to achieve the goal. Considering the worst case where each gap between allocated bits is a maximum length, the maximum gap length must be limited. However, the average gap length is only half of the maximum gap length. Therefore, on average, message bits are only allocated within half of the larger message. This allocation technique advantageously provides ample security and relative ease of implementation.

在另一实施例中,消息位300是这样分配的:把该较大消息302分成大小近乎相等的块中,以一随机偏置开始并绕回,以随机位置把一个位放在每个块内。这种分配技术有这样一个理想的特性:这些位在整个该较大消息中得到好的分配。In another embodiment, the message bits 300 are allocated by dividing the larger message 302 into approximately equal sized blocks, starting with a random offset and wrapping around, placing a bit in each block at a random position Inside. A desirable property of this distribution technique is that the bits are well distributed throughout the larger message.

该较大消息302的位提供给CRC发生器304,CRC发生器304计算接收的位的CRC。CRC位306用作消息M 300的MAC 306。应指出的是,如结合下面参考图6所描述的其他实施例所示,不必实际产生较大消息302以取得所需的效果。The bits of the larger message 302 are provided to a CRC generator 304 which calculates a CRC of the received bits. The CRC bits 306 are used as the MAC 306 of the message M 300. It should be noted that, as shown in conjunction with other embodiments described below with reference to FIG. 6, it is not necessary to actually generate a larger message 302 to achieve the desired effect.

在一示例实施例中,CRC/MAC的长Lm是16位。对其应用差错检测保证的最大消息是包括CRC自身的216位。(假如(1-x)乘以原始多项式用作CRC的发生器,最大的消息长度将是215-1位)。输入消息M 300的长度Lm有益地保持为远比215-16位小。按照上述的第二个实施例,如果较大消息302分为大致相等大小的块,输入消息M 300的长度Lm有益地限于比215-16位的一半小。按照上述第一实施例,如果位位置在较大消息302内跳过,输入消息M 300的长度Lm有益地限于比215-16位的四分之一小。In an example embodiment, the length L m of the CRC/MAC is 16 bits. The largest message to which the error detection guarantee applies is 216 bits including the CRC itself. (If (1-x) times the original polynomial is used as the CRC generator, the maximum message length will be 2 15 -1 bits). The length L m of the input message M 300 is advantageously kept much smaller than 2 15 -16 bits. According to the second embodiment described above, the length Lm of the input message M 300 is advantageously limited to less than half of 215-16 bits if the larger message 302 is divided into roughly equal sized chunks. According to the first embodiment described above, if bit positions are skipped within the larger message 302, the length Lm of the incoming message M 300 is advantageously limited to be smaller than a quarter of 215-16 bits.

在安置了消息M 300的第一个位后,剩余的Lm-1位被置于剩余的215-17个位置中,如果输入消息M的长度Lm是1520位,最大分配间隔或块的大小,将是比32751/1519小的最大整数或21位。然而,PRN发生器可视为产生一位流。相应地,使用2的幂的一个数目而不使用21位有益地可以更有效。如果2的幂用作最大分配间隔或块大小。0至15的范围内的随机数目可通过从PRN发生器取输出的4个位产生。这些随机数接着有益地调整为在5至20的范围内。本领域中的熟练人士的应当理解,位之间的平均间隔或块的大小必须至少为2。因此,间隔或块大小的最优值是2的幂在22和24之间。消息M 300的每个位的安置因而需要PRN输出的两至四个位。After placing the first bit of message M 300, the remaining L m -1 bits are placed in the remaining 2 15 -17 positions, if the length L m of the input message M is 1520 bits, the maximum allocation interval or block The size of will be the largest integer less than 32751/1519 or 21 bits. However, a PRN generator can be viewed as generating a stream of bits. Accordingly, using a number that is a power of 2 rather than using 21 bits may advantageously be more efficient. If a power of 2 is used as the maximum allocation interval or block size. A random number in the range of 0 to 15 can be generated by taking the output 4 bits from the PRN generator. These random numbers are then advantageously adjusted to be in the range of 5-20. Those skilled in the art will understand that the average spacing between bits or the block size must be at least 2. Therefore, the optimal value for the interval or block size is a power of 2 between 2 2 and 2 4 . The placement of each bit of message M 300 thus requires two to four bits of the PRN output.

如下所述,即使位的位置中的不确定性受限于接受较少的PRN发生器输出,把这些位扩展得更开可以是有益的。不管是固定的还是可变,最小扩展尺寸或最小块尺寸都可使用。As described below, it may be beneficial to spread the bits further apart, even if the uncertainty in the position of the bits is limited to accepting fewer PRN generator outputs. Whether fixed or variable, a minimum extension size or a minimum block size can be used.

在另一实施例中,通过使用诸如块密码的键控置换功能而分配消息位,以从原始位位置导出新的位位置。在某实施例中,结合较大消息302中的随机偏置位置命名用块大小为14位的块密码。应注意的是,对每个消息使用一不同的置换的需要要求该块密码对每个消息300使用一不同的密钥。尽管这在理论上是可能的,实践中效率是低的。In another embodiment, message bits are assigned by using a keyed permutation function, such as a block cipher, to derive new bit positions from original bit positions. In one embodiment, a block cipher with a block size of 14 bits is used in conjunction with random offset positions within the larger message 302 . It should be noted that the need to use a different permutation for each message requires that the block cipher use a different key for each message 300 . Although this is theoretically possible, in practice it is inefficient.

在一实施例中,如图5所示,CRC发生器400实施为寄存器,该寄存器包括16个一位存储元件402a-g(为了简化,图中只有存储元件402示出),三个模数-2加法器404,406,408及三个开关410,412,414。在一可选实施例中,如上面参考图2所描述,CRC发生器用运行一组软件指令并访问查阅表(LUT)的微处理器实施,该组软件指令有益地包含在RAM存储器中,而查阅表有益地包含在ROM存储器或闪存中。In one embodiment, as shown in FIG. 5, the CRC generator 400 is implemented as a register, which includes 16 one-bit storage elements 402a-g (for simplicity, only the storage element 402 is shown in the figure), three modulus - 2 adders 404, 406, 408 and three switches 410, 412, 414. In an alternative embodiment, as described above with reference to FIG. 2, the CRC generator is implemented with a microprocessor that executes a set of software instructions, advantageously contained in RAM memory, and accesses a look-up table (LUT). The look-up table is advantageously contained in ROM memory or flash memory.

在CRC发生器400中,输入消息位提供给转换410,开关410设置为或是接收这些输入消息位或是接收1的数字值。开关412设置为或是接收0的数字值或是接收来自模数-2加法器408的一个值。开关414设置为或是接收来自开关410的一个值或是接收来自开关412和模数-2加法器408的一个值,从开关414取输出CRC。模数-2加法器404位于第五个一位存储元件402c与第六个一位存储元件402d之间。模数-2加法器406位于第十二个一位存储元件402e与第十三个一位存储元件402f之间。模数-2加法器408位于第十六个一位存储元件402h后且配置成接收来自开关410的一个值。CRC的发生器多项式g(x)等于x16+x12+x5+1,由模数-2加法器404,406,408的布局限定。In CRC generator 400, the input message bits are provided to switch 410, which is set to receive either these input message bits or a digital value of one. Switch 412 is set to receive either a digital value of 0 or a value from modulo-2 adder 408 . Switch 414 is set to receive either a value from switch 410 or a value from switch 412 and modulo-2 adder 408, from which the output CRC is taken. The modulo-2 adder 404 is located between the fifth one bit storage element 402c and the sixth one bit storage element 402d. The modulus-2 adder 406 is located between the twelfth one-bit storage element 402e and the thirteenth one-bit storage element 402f. Modulo-2 adder 408 is located after the sixteenth bit storage element 402h and is configured to receive a value from switch 410 . The generator polynomial g(x) of the CRC is equal to x 16 +x 12 +x 5 +1, defined by the layout of the modulo-2 adders 404 , 406 , 408 .

在运行中,开关410,412,414起初设置在“上”位置(如附图所示)。寄存器定时k次,这里k定义为输入消息加8位的长度。寄存器是一个移位寄存器,这样随着每个时钟周期这些位各自向右移动一个存储元件(如附图所示)。开关410,412,414接着设置为“下”位置(如附图所示)。寄存器接着定时附加十六次。十六个附加的输出位包含该消息的CRC字段,以这些位出现在CRC发生器400的输出上的顺序发送这些位。In operation, the switches 410, 412, 414 are initially set in the "up" position (as shown in the figures). The register is timed k times, where k is defined as the length of the input message plus 8 bits. The register is a shift register such that with each clock cycle the bits are each shifted to the right by one storage element (as shown in the figure). The switches 410, 412, 414 are then set to the "down" position (as shown in the figures). The register is then timed to append sixteen times. Sixteen additional output bits contain the CRC field of the message, and the bits are sent in the order in which they appear on the output of the CRC generator 400 .

输入消息位构成“较大消息”,该较大消息的CRC字段用作消息M的MAC。然后有益地该MAC包括CRC的固有安全性利益。因为计算的MAC实际上是CRC,关于应用到CRC的检错和纠错的保证亦应用于MAC,应用于“突发差错”的保证除外。违反突发差错保证是因为连续位在计算期间得到分离因而不再形成“突发”。The input message bits constitute a "larger message" whose CRC field is used as the MAC of message M. The MAC then advantageously includes the inherent security benefits of the CRC. Since the computed MAC is actually a CRC, the guarantees about error detection and correction that apply to the CRC also apply to the MAC, except for the guarantees that apply to "burst errors". The burst error guarantee is violated because consecutive bits are separated during computation and no longer form a "burst".

基本上有两种针对MAC的攻击。第一种针对MAC的攻击是窃取业务。攻击者在观察其他的有效消息后试图产生具有有效MAC的消息。或者,攻击者试图推演密钥K,允许攻击者随意产生伪造的消息。第二种针对MAC的攻击选择消息。攻击者试图精巧地制作特别的消息并出于某原因设计系统以计算有效MAC,希望恢复密钥K。There are basically two types of attacks against MACs. The first kind of attack against MAC is to steal business. An attacker tries to generate a message with a valid MAC after observing other valid messages. Alternatively, the attacker attempts to derive the key K, allowing the attacker to generate forged messages at will. The second type of attack against MAC selects messages. An attacker tries to craft a special message and somehow design the system to compute an effective MAC, hoping to recover the key K.

希望对具有有效MAC的消息仅作一个位的改变的攻击者则需要能够计算对CRC的对应改变;这又要求能够预测该位在扩展消息中的位置。由于只有该位的在2L-1个可能位置下,攻击者所做的只能比猜测MAC稍好。An attacker wishing to make a change of only one bit to a message with a valid MAC would then need to be able to compute the corresponding change to the CRC; this in turn requires being able to predict the position of that bit in the extended message. Since there are only 2L -1 possible positions for this bit, the attacker can do only slightly better than guessing the MAC.

针对任一种类的MAC的一种可能攻击是所谓的选定明文攻击。在该类型的攻击中,攻击者可以某种方式安排伴随着有效MAC得到所发送的的消息,这样该消息有由该攻击者选择的某内容。例如,攻击者可局接收方发送电子邮件,电子邮件最终通过发送信道传送并具有有效MAC计算并附上,攻击者可制作由单个“1”位随后全部是“0”位构成的消息。通过观测计算的CRC,攻击者能推算起始位置及至PRN发生器的一些输出。这是不利的,因为这可导致一种预测未来输出的方法。相应地,在一实施例中,较大消息的其他一个位设置为1。该其他的一个位被选择在一随机位置上。One possible attack against any kind of MAC is the so-called chosen-plaintext attack. In this type of attack, the attacker can somehow arrange for the message sent to be accompanied by a valid MAC so that the message has some content chosen by the attacker. For example, an attacker could send an e-mail to a recipient, and the e-mail is eventually sent over the sending channel with a valid MAC computed and attached, the attacker could craft a message consisting of a single "1" bit followed by all "0" bits. By observing the calculated CRC, the attacker can deduce the starting position and some output to the PRN generator. This is disadvantageous because it leads to a method of predicting future outputs. Accordingly, in one embodiment, the other one bit of the larger message is set to one. The other one bit is chosen at a random position.

攻击者可选地发送包含所有零的消息。观测的CRC给攻击者PRN发生器的输出的Lm个位,PRN发生器须安全得足以防止密钥信息K的恢复,鉴于这种揭示。The attacker optionally sends a message containing all zeros. The observed CRC gives Lm bits of the output of the attacker's PRN generator, which must be secure enough to prevent recovery of the key information K, given this revelation.

如果攻击者试图除预测这些位的起始位置外还对该消息作多位的改变,攻击者亦必须确定这些位的离差。这会使成功的概率小于只对一个位作改变。If an attacker attempts to change bits of the message in addition to predicting where these bits start, the attacker must also determine the dispersion of these bits. This makes the probability of success less than changing only one bit.

还有一种修改攻击可运用。如果攻击者能作出一改变且该改变将扩展到一是CRC多项式的倍数的模式中,对计算的MAC将无影响。这有效地抵消这些位的起始位置的不可预测性。如果使用小数目的流密码位是有利的,选择考虑该具体CRC多项式地扩展这些位是有益的,以使该类型的攻击对多项式的小倍数是不可能的且对多项式的大倍数在统计上是困难的。There is also a modification attack available. If an attacker can make a change that will spread into a pattern that is a multiple of the CRC polynomial, there will be no effect on the computed MAC. This effectively counteracts the unpredictability of where these bits start. If it is advantageous to use a small number of stream cipher bits, it is beneficial to choose to expand these bits polynomially taking into account that particular CRC, so that this type of attack is impossible for small multiples of the polynomial and statistically significant for large multiples of the polynomial It is difficult.

在一实施例中,在“较大消息”上执行CRC计算,产生输入消息M的MAC,实际没有产生较大消息。对将要分配在该想象的“较大消息”中的输入消息M的每个位来说,必须计算多项式Xi的余项模数P,i是该较大消息中的消息位的预定位置。因为CRC是线性的,如果该消息的该具体位是一个1,余项计算可用多项式加法,即,“异或”(XOR)运算,加到现有CRC上。全零消息的CRC是零,所以通过把XOR多项式加法技术依法运用到输入消息M中的每个位,还通过只执行Lm计算,可以不产生较大消息地而计算CRC。类似地,具有一个非零位的输入消息的初始种子等同于为计算选择一随机启动CRC。In one embodiment, a CRC calculation is performed on the "larger message", generating a MAC of the incoming message M, without actually generating a larger message. For each bit of the input message M to be allocated in this imaginary "larger message", the modulo P of the remainder of the polynomial Xi , i being the predetermined position of the message bit in the larger message, must be calculated. Because CRCs are linear, if that particular bit of the message is a 1, the remainder can be calculated using polynomial addition, ie, an "exclusive OR" (XOR) operation, to the existing CRC. The CRC of an all-zero message is zero, so by legally applying the XOR polynomial addition technique to each bit in the input message M, and also by performing only the L m calculation, the CRC can be calculated without generating a larger message. Similarly, an initial seed of the input message with a non-zero bit is equivalent to choosing a random start CRC for the computation.

可以多种方法计算Ximod(模)P,这里i在范围0至32767中(假定Lm是16)。在某实施例中,使用一对查阅表(LUT)。应指出的是,一个给出对应上面的等式中的i的每个可能的值的CRC的LUT便足够,但需求216个16位的表目。相反,i有益地以256hi+lo的形式表达,hi和lo分别是i的高阶8个位和低阶8个位。预计算两个LUT似分别给出CRC计算X256hi mod P与Xlo mod P的结果,这样,用第二个LUT中的对应项执行对第一个LUT中的每个项的“异或”运算等同于计算CRC。相应地,需要两个LUT,每个LUT有256个16位的表目,且输入消息M的每非零位执行两个表查阅以计算CRC。 Xi mod P, where i is in the range 0 to 32767 (assuming Lm is 16), can be calculated in a number of ways. In one embodiment, a pair of look-up tables (LUTs) are used. It should be noted that one LUT giving a CRC for each possible value of i in the above equation would suffice, but requires 216 16-bit entries. Instead, i is beneficially expressed in the form 256hi+lo, where hi and lo are the high-order 8 bits and low-order 8 bits of i, respectively. Precomputing the two LUTs seems to give the results of the CRC calculations X 256hi mod P and X lo mod P respectively, such that each term in the first LUT is XORed with the corresponding term in the second LUT The operation is equivalent to calculating CRC. Accordingly, two LUTs are required, each with 256 16-bit entries, and two table lookups are performed for every non-zero bit of the input message M to calculate the CRC.

当通过较大消息分配这些位时,hi的弯化不迅速,这样同一值的重复查阅会相互抵消,在软件实施中注意这一点亦是有益的。hi的每个值是否已用过奇数次才是在最实际起影响作用的。It is also beneficial in software implementations to note that when these bits are allocated by larger messages, hi does not vary rapidly so that repeated references to the same value cancel each other out. Whether each value of hi has been used an odd number of times is the most practical effect.

在一实施例中,按照图6的流程图所示的算法步骤,PRN产生输入消息M的MAC作为一想象的“较大消息”的CRC而无需产生该较大消息。在该实施例中,Lm是16位而Lm是1520位。CRC多项式P是16位的CRC-CCITT多项式P(X)=X16+X12+X5+1。本领域中的熟练人士明白,可容易地计算用来查寻CRC值的具体LUT。记号Rn,这里n是一整数,在下文中用来表示应取PRN发生器(未示出)的输出的下n个位。在该实施例中,使用5位的一固定最小间隔,使用PRN输出的3个位,使均匀分配的位间的间隔为5至12位。变量C表示最终的输出MAC的累加器。变量K表示将置于“较大消息”中的下一位的位置。变量i表示在输入消息M中的位的位置。In one embodiment, the PRN generates the MAC of the incoming message M as the CRC of an imaginary "larger message" without generating the larger message, following the steps of the algorithm shown in the flowchart of FIG. 6 . In this embodiment, Lm is 16 bits and Lm is 1520 bits. The CRC polynomial P is a 16-bit CRC-CCITT polynomial P(X)=X 16 +X 12 +X 5 +1. Those skilled in the art will appreciate that the specific LUT used to look up the CRC value can be easily calculated. The notation R n , where n is an integer, is used hereinafter to indicate that the next n bits of the output of the PRN generator (not shown) should be taken. In this embodiment, a fixed minimum interval of 5 bits is used, using 3 bits of the PRN output, resulting in an evenly distributed bit interval of 5 to 12 bits. The variable C represents the accumulator of the final output MAC. The variable K indicates the position of the next bit to be placed in the "larger message". The variable i represents the bit position in the input message M.

在步骤500中,发生器设置C等于R16,这等同于选择一将设置为1的随机位位置。发生器输出的下16个位将形成CRC。发生器然后进行到步骤502。在步骤502中发生器设置K等于R15模数32751,这实际是将要分配的输入消息M的第一个位的位置。发生器然后进行到步骤504。在步骤504中发生器设置i等于零。产生然后进行到步骤506。In step 500, the generator sets C equal to R16 , which is equivalent to selecting a random bit position that will be set to 1. The next 16 bits of the generator output will form the CRC. The generator then proceeds to step 502. In step 502 the generator sets K equal to R 15 modulo 32751, which is actually the position of the first bit of the incoming message M to be assigned. The generator then proceeds to step 504 . In step 504 the generator sets i equal to zero. Generation then proceeds to step 506 .

在步骤506中,发生器确定位M[i](当前分配的输入消息位)是否设置为1。如果位M[i]未设置为1,发生器进行到步骤508。另一方面,如果位M[i]设置为1,产生器进行到步骤510。在步骤510中,发生器计算XK模数P并按照上述多项式加法技术按位对C和XK模数P执行XOR运算。C的新值设置为等于XOR计算产生的位。发生器然后进行到步骤508。In step 506, the generator determines whether bit M[i] (currently assigned input message bit) is set to one. If bit M[i] is not set to 1, the generator proceeds to step 508 . On the other hand, if bit M[i] is set to 1, the generator proceeds to step 510 . In step 510, the generator computes XK modulo P and performs a bitwise XOR operation on C and XK modulo P according to the polynomial addition technique described above. The new value of C is set equal to the bits resulting from the XOR calculation. The generator then proceeds to step 508 .

在步骤508中,发生器计算K、5、R3(发生器输出的下三个位)、模数32751的和。结果设置为等于K,这样K更新为输入消息的下一位将被分配给的位置。这种计算是在分配当前位M[i]后在步骤510中执行的。发生器然后进行到步骤512。在步骤512中发生器对i加1。然后发生器进行到步骤514。在步骤514中发生器确定i是否大于1519。如果i不大于1519,发生器返回步骤506以处理下一输入消息位M[i]。另一方面,如果i大于1519,发生器进行到步骤516。在步骤516中发生器返回C的为输入消息的MAC。In step 508, the generator calculates the sum of K, 5, R3 (the next three bits of the generator output), modulo 32751. The result is set equal to K, such that K is updated to be the position to which the next bit of the input message will be assigned. This calculation is performed in step 510 after the current bit M[i] is allocated. The generator then proceeds to step 512 . In step 512 the generator increments i. The generator then proceeds to step 514 . In step 514 the generator determines if i is greater than 1519. If i is not greater than 1519, the generator returns to step 506 to process the next input message bit M[i]. On the other hand, if i is greater than 1519, the generator proceeds to step 516. In step 516 the generator returns C's MAC for the incoming message.

在一可选实施例中,步骤508中执行的计算是计K、10、R4(发生器输出的下4个位)、系65521的和。结果再次设置为等于K。按照该实施例,发生器在步骤502中设置K等于R16模数65521。按照该实施例可以使用的一原始多项式是x16+x14+x12+x7+x6+x5+x2+x+1。In an alternative embodiment, the calculation performed in step 508 is the sum of K, 10, R4 (the next 4 bits of the generator output), x65521. The result is again set equal to K. According to this embodiment, the generator sets K equal to R16 modulo 65521 in step 502 . An original polynomial that can be used according to this embodiment is x 16 +x 14 +x 12 +x 7 +x 6 +x 5 +x 2 +x+1.

在另一实施例中,PRN发生器按照图7的流程图所示的算法步骤产生输入消息M的MAC作为一想象的“较大消息”的CRC而无需产生该较大消息。在该实施例中,Lm是16位而LM是1520位。CRC多项式P是16位的CRC-CCITT多项式P(x)=x16+x12+x5+1。本领域中的熟练人士明白,可容易地计算用来查寻CRC值的具体LUT。记号Rn,n是一整数,在下文中用来表示应取PRN发生器(未示出)的输出的下n个位。在该实施例中,使用5位的一固定最小间隔,使用PRN输出的3个位,使均匀分配的位间的间隔为5至12位。变量C表示最终的输出MAC的累加器。变量K表示将置于“较大消息”中的下一位的位置。变量i表示在输入消息M中的位的位置。In another embodiment, the PRN generator follows the steps of the algorithm shown in the flowchart of FIG. 7 to generate the MAC of the incoming message M as the CRC of an imaginary "larger message" without generating the larger message. In this embodiment, L m is 16 bits and L M is 1520 bits. The CRC polynomial P is a 16-bit CRC-CCITT polynomial P(x)=x 16 +x 12 +x 5 +1. Those skilled in the art will appreciate that the specific LUT used to look up the CRC value can be easily calculated. The notation R n , n being an integer, is used hereinafter to indicate that the next n bits of the output of the PRN generator (not shown) should be taken. In this embodiment, a fixed minimum interval of 5 bits is used, using 3 bits of the PRN output, resulting in an evenly distributed bit interval of 5 to 12 bits. The variable C represents the accumulator of the final output MAC. The variable K indicates the position of the next bit to be placed in the "larger message". The variable i represents the bit position in the input message M.

在步骤600中,发生器设置C等于R16,这等同于选择一将设置为1的随机位位置。发生器输出的下16个位将形成CRC。发生器然后进行到步骤602。在步骤602中发生器设置K等于R15模数32751,这实际是将要分配的输入消息M的第一个位的位置。发生器然后进行到步骤604。在步骤504中发生器设置i等于零。产生然后进行到步骤606。In step 600, the generator sets C equal to R16 , which is equivalent to selecting a random bit position that will be set to 1. The next 16 bits of the generator output will form the CRC. The generator then proceeds to step 602. In step 602 the generator sets K equal to R 15 modulo 32751, which is actually the position of the first bit of the incoming message M to be assigned. The generator then proceeds to step 604. In step 504 the generator sets i equal to zero. Generate then proceeds to step 606.

在步骤606中,发生器确定位M[i](当前分配的输入消息位)是否设置为1。如果位M[i]未设置为1,发生器进行到步骤608。另一方面,如果位M[i]设置为1,产生吕进行到步骤610。在步骤610中,发生器计算XK模数P并按照上述多项式加法技术按位对C和xK模数P执行XOR运算。C的新值设置为等于XOR计算的结果位。发生器然后进行到步骤608。In step 606, the generator determines whether bit M[i] (currently assigned input message bit) is set to one. If bit M[i] is not set to 1, the generator proceeds to step 608 . On the other hand, if the bit M[i] is set to 1, the generator proceeds to step 610 . In step 610, the generator computes X K modulo P and performs a bitwise XOR operation on C and x K modulo P according to the polynomial addition technique described above. The new value of C is set equal to the resulting bits of the XOR calculation. The generator then proceeds to step 608.

在步骤608中发生器对i加1。发生器然后进行到步骤612。在步骤612中发生器确定i是否大于1519。如果i不大于1519,发生器进行到步骤614。另一方面,如果i大于1519,发生器进行到步骤616。在步骤616中发生器返回C的值作为输入消息的MAC。在步骤614中发生器计算K、5、R3(发生器输出的下三个位)、模数32751的和。结果设置为等于K。这样K更新为输入消息的下一位被分配的位置。当要分配一新位时执行对该新位位置的这种计算。执行步骤614的计算后,发生器返回步骤606以处理下一输入消息位M[i]。In step 608 the generator increments i by 1. The generator then proceeds to step 612 . In step 612 the generator determines if i is greater than 1519. If i is not greater than 1519, the generator proceeds to step 614. On the other hand, if i is greater than 1519, the generator proceeds to step 616. In step 616 the generator returns the value of C as the MAC of the incoming message. In step 614 the generator calculates the sum of K, 5, R 3 (the next three bits of the generator output), modulo 32751. The result is set equal to K. K is thus updated to be the assigned position of the next bit of the input message. This calculation of the new bit position is performed when a new bit is to be allocated. After performing the computation of step 614, the generator returns to step 606 to process the next input message bit M[i].

在一可选实施例中,步骤608中执行的计算是计K、10、R4(发生器输出的下4个位)、系65521的和。结果再次设置为等于K。按照该实施例,发生器在步骤602中设置K等于R16模数65521。按照该实施例可以使用的一原始多项式是x16+x14+x12+x7+x6+x5+x2+x+1。In an alternative embodiment, the calculation performed in step 608 is the sum of K, 10, R 4 (the next 4 bits of the generator output), and 65521. The result is again set equal to K. According to this embodiment, the generator sets K equal to R16 modulo 65521 in step 602 . An original polynomial that can be used according to this embodiment is x 16 +x 14 +x 12 +x 7 +x 6 +x 5 +x 2 +x+1.

这样,已描述一种新颖的、用来产生MAC的方法和设备。本领域中的熟练人士明白:这里揭示的,结合实施例描述的各种说明性逻辑块和算法步骤可用数字信号处理器(DSP)、专用集成电器(ASIC)离散门或晶体管逻辑、诸如寄存器和FIFO的离散硬件组件、执行一组固件指令的处理器或任一普通的可编程软件模块及一处理器实施或执行。处理器可有益地是微处理器,但或者,处理器可以是任一普通处理器、控制器、微控制器或状态机。软件模块可驻留于RAM存储器、闪存、寄存器或业界所示右的任一其他形式的可写存储媒介中。熟练人士还会认识到:在上述整个描述中可参考的数据、指令、命令、信息、信号、位、符号和码头有益地用电压、电流、电磁波、磁场或磁粒子、光场或光粒子或它们的任一组合表示。Thus, a novel method and apparatus for generating a MAC has been described. Those skilled in the art will appreciate that the various illustrative logic blocks and algorithm steps disclosed herein and described in connection with the embodiments may be implemented with digital signal processors (DSPs), application specific integrated circuits (ASICs) discrete gate or transistor logic, such as registers and A FIFO is implemented or executed by a discrete hardware component, a processor executing a set of firmware instructions, or any generic programmable software module and a processor. The processor may advantageously be a microprocessor, but alternatively, the processor may be any conventional processor, controller, microcontroller or state machine. A software module may reside in RAM memory, flash memory, registers, or any other form of writable storage medium indicated in the industry. Those skilled in the art will also recognize that throughout the above description referenced data, instructions, commands, information, signals, bits, symbols and terminals are advantageously referred to in terms of voltage, current, electromagnetic waves, magnetic fields or particles, optical fields or particles or any combination of them.

这样已示出并描述本发明的较佳实施例。然而,对本领域中有普通技能的人显而易见的是,可不脱离本发明的精神或范围地对这里揭示的实施例作出许多改变。因此,除按照下列权利要求外,本发明是不受限制的。The preferred embodiment of the invention has thus been shown and described. However, it will be apparent to those of ordinary skill in the art that many changes can be made in the embodiments disclosed herein without departing from the spirit or scope of the invention. Accordingly, the invention is not to be restricted except in light of the following claims.

Claims (29)

1、一种产生消息鉴别码的方法,其特征在于它包含以下步骤:1. A method for generating a message authentication code, characterized in that it comprises the following steps: 以一种依赖密钥的方式伪随机地把第一组多个消息位分配到第二组多个位中;pseudo-randomly assigning the first plurality of message bits to the second plurality of bits in a key-dependent manner; 产生第三组多个位,它包含所述第二组多个位的循环冗余码较验;及generating a third plurality of bits comprising a cyclic redundancy check of said second plurality of bits; and 发送所述第一组消息位和包含所述第三组多个位的一消息鉴别码。Sending said first set of message bits and a message authentication code comprising said third set of bits. 2、如权利要求1所述的方法,其特征在于,所述产生步骤用微处理器、由该微处理器可访问的查阅表及由该微处理器可执行的一组软件指令执行。2. The method of claim 1, wherein said generating step is performed using a microprocessor, a look-up table accessible by the microprocessor, and a set of software instructions executable by the microprocessor. 3、如权利要求1所述的方法,其特征在于,所述产生步骤用一移位寄存器执行。3. The method of claim 1, wherein said generating step is performed using a shift register. 4、如权利要求1所述的方法,其特征在于,所述伪随机地分配步骤包含以下步骤:4. The method of claim 1, wherein said pseudo-randomly assigning step comprises the steps of: 把所述第一组多个位的第一个位置于所述第二组多个位中的一个偏移位位置中;及placing a first position of the first plurality of bits in an offset bit position of the second plurality of bits; and 从所述偏移位位置跳过所述第二组多个位中的不可预测数目的位位置。An unpredictable number of bit positions in the second plurality of bits are skipped from the offset bit position. 5、如权利要求4所述的方法,还包含把所述第一组多个位的下一位放到所述第二组多个位的起始位位置中的步骤。5. The method of claim 4, further comprising the step of placing a next bit of said first plurality of bits into a starting bit position of said second plurality of bits. 6、如权利要求4所述的方法,还包含确定在跳过步骤中跳过的位位置的最大数目以致于不抵达或通过第二组多个位的起始位位置的步骤。6. The method of claim 4, further comprising the step of determining a maximum number of bit positions skipped in the step of skipping such that a starting bit position of the second plurality of bits is not reached or passed. 7、如权利要求4所述的方法,其特征在于,在跳过步骤中跳过的位位置的数目是这样确定的,使得分配位置不完全绕回。7. A method as claimed in claim 4, characterized in that the number of bit positions skipped in the step of skipping is determined such that the allocated positions do not completely wrap around. 8、如权利要求1所述的方法,其特征在于,伪随机分配步骤包含以下步骤:8. The method of claim 1, wherein the step of pseudo-randomly assigning comprises the steps of: 把第二组多个位分成块大小大致均匀的块;及dividing the second plurality of bits into blocks of approximately uniform block size; and 把第一组多个位放在每个块内的随机位位置中,每个块中放入一个位。Place the first plurality of bits in random bit positions within each block, one bit in each block. 9、如权利要求8所述的方法,其特征在于,均匀的块大小是2的2至4次幂。9. The method of claim 8, wherein the uniform block size is 2 to the power of 2 to 4. 10、如权利要求1所述的方法,其特征在于,伪随机分配步骤包含用一键控置换函数从在第二组多个位中的第一组多个位的起始位位置导出新的位位置的步骤。10. The method of claim 1, wherein the step of pseudo-randomly assigning comprises using a keyed permutation function to derive new bit position step. 11、如权利要求1所述的方法,其特征在于,伪随机分配步骤包含以下步骤;11. The method of claim 1, wherein the step of pseudo-randomly assigning comprises the following steps; 计算多项式xi的余项模数P,这里i是在第二组多个位中的一个预期位位置而P是从第三组多个位导出的一循环冗余码校验多项式;及computing the remainder modulo P of polynomial x , where i is an expected bit position in the second plurality of bits and P is a cyclic redundancy check polynomial derived from the third plurality of bits; and 对第一组多个位的等于1的每个位,逐位地执行第三组多个位和计算出的余项的“异或”运算。For each bit equal to 1 of the first plurality of bits, an "exclusive OR" operation of the third plurality of bits and the calculated remainder is performed bit by bit. 12、一种配置成产生一消息鉴别码的发生器,它包含:12. A generator configured to generate a message authentication code, comprising: 用来以一种依赖密钥的方式伪随机地把第一组消息位分配到第二组多个位中的装置;means for pseudo-randomly assigning a first set of message bits to a second set of bits in a key-dependent manner; 用来产生包含第二组多个位的循环冗余码较验的第三组多个位的装置;及means for generating a third plurality of bits comprising a cyclic redundancy check of the second plurality of bits; and 用来发送第一组消息位和包含第三组多个位的消息鉴别码的装置。Means for transmitting a first set of message bits and a message authentication code comprising a third set of bits. 13、如权利要求12所述的发生器,其特征在于,所述产生装置包含一微处理器,可由该微处理器访问的查阅表及可由该微处理器执行的一组软件指令。13. A generator as claimed in claim 12, wherein said generating means comprises a microprocessor, a look-up table accessible by the microprocessor and a set of software instructions executable by the microprocessor. 14、如权利要求12所述的发生器,其特征在于,所述产生装置包含一移位寄存器。14. A generator as claimed in claim 12, wherein said generating means comprises a shift register. 15、如权利要求12所述的发生器,其特征在于,用来伪随机分配的装置包含:15. The generator of claim 12, wherein the means for pseudo-randomly assigning comprises: 用来把第一组多个位的第一个放到第二组多个位中的一个偏移位位置中的装置;及means for placing a first one of the first plurality of bits into an offset bit position in the second plurality of bits; and 用来从该偏移位位置跳过第二组多个位中的不可预测的数目的位位置的装置。means for skipping an unpredictable number of bit positions in the second plurality of bits from the offset bit position. 16、如权利要求15所述的发生器,还包括用来把第一组多个位的下一位置于第三组多个位的起始位位置中的装置。16. The generator of claim 15, further comprising means for placing the next bit of the first plurality of bits in the starting bit position of the third plurality of bits. 17、如权利要求15所述的发生器,还包含用来确定跳过的位位置的最大数目以致于不抵达或通过第二组多个位的初始位位置的装置。17. A generator as claimed in claim 15, further comprising means for determining a maximum number of bit positions to skip so as not to reach or pass through the initial bit positions of the second plurality of bits. 18、如权利要求15所述的发生器,其特征在于,所跳过的位位置的数目是这样确定的,使得分配位置不完全绕回。18. A generator as claimed in claim 15, characterized in that the number of bit positions skipped is determined such that the allocated positions do not wrap around completely. 19、如权利要求12所述的发生器,其特征在于,用来伪随机分配的装置包含:19. The generator of claim 12, wherein the means for pseudo-randomly assigning comprises: 用来把第二组多个位分成块大小大致均匀的块的装置;及means for dividing the second plurality of bits into blocks of approximately uniform block size; and 用来把第一组多个位放到每个块内的随机位位置中且每个块中置入一个位的装置。A means for placing a first plurality of bits into random bit positions within each block, one bit per block. 20、如权利要求19所述的发生器,其特征在于,均匀块大小是2的2至4次幂。20. A generator as claimed in claim 19, characterized in that the uniform block size is 2 to the power of 2 to 4. 21、如权利要求12所述的发生器,其特征在于,用来伪随机分配的装置包含用一键控置换函数从在第二组多个位中的第一组多个位的起始位位置导出新的位位置的装置。21. The generator of claim 12, wherein the means for pseudo-randomly distributing comprises using a keyed permutation function from a start bit of the first plurality of bits in the second plurality of bits to Position means for deriving new bit positions. 22、如权利要求12所述的发生器,其特征在于,用来伪随机分配的装置包含:22. The generator of claim 12, wherein the means for pseudo-randomly assigning comprises: 用来计算多项式xi的余项模数P的装置,这里i是在第二组多个位中的一个预期的位位置而P是从第三组多个位导出的循环冗余码校码多项式;及means for computing the remainder modulo P of a polynomial x , where i is an expected bit position in a second plurality of bits and P is a cyclic redundancy code derived from a third plurality of bits polynomial; and 用来对第一组多个位的等于1的每个位,逐位地执行第三组多个位和计算出的余项的“异或”运算的装置。Means for performing, bit by bit, the exclusive OR operation of the third plurality of bits and the calculated remainder for each bit equal to 1 of the first plurality of bits. 23、一种配置成产生消息鉴别码的发生器,其特征在于它包含:23. A generator configured to generate a message authentication code, characterized in that it comprises: 配置成以一种依赖密钥的方式伪随机地把第一组消息位分配到第二组多个位中的处理器;a processor configured to pseudo-randomly assign the first set of message bits to the second set of plurality of bits in a key-dependent manner; 耦合到该分配器且配置成产生包含第二组多个位的循环冗余码校验的第三组多个位的发生器;及a generator coupled to the distributor and configured to generate a third plurality of bits comprising a cyclic redundancy check of the second plurality of bits; and 耦合到该发生器且配置成发送第一组消息位和包含第三组多个位的消息鉴别码的发射器。A transmitter coupled to the generator and configured to transmit the first set of message bits and a message authentication code comprising a third set of multiple bits. 24、如权利要求23所述的发生器,其特征在于,该发生器包含可由该微处理器访问的查阅表,及存储在存储器元件中并由该微处理器可执行的一组软件指令。24. The generator of claim 23, comprising a look-up table accessible by the microprocessor, and a set of software instructions stored in a memory element and executable by the microprocessor. 25、如权利要求23所述的发生器,其特征在于,该发生器包含一移位寄存器。25. The generator of claim 23, wherein the generator comprises a shift register. 26、如权利要求23所述的发生器,其中处理器还配置成把第一组多个位的第一个位放在第二组多个位中的一个偏移位位置中并从该偏移位位置跳过第二组多个位中的不可预测的数目的位位置。26. The generator of claim 23, wherein the processor is further configured to place a first bit of the first plurality of bits in an offset bit position in the second plurality of bits and to The shifted position skips an unpredictable number of bit positions in the second plurality of bits. 27、如权利要求26所述的发生器,其特征在于,处理器还配置成把第一组多个位的下一个位置于第二组多个位的起始位位置中。27. The generator of claim 26, wherein the processor is further configured to place a next position of the first plurality of bits in a starting bit position of the second plurality of bits. 28、如权利要求23所述的发生器,其特征在于,处理器还配置成把第二组多个位分成块大小大致均匀的块及把第一组多个位放在每个块内的随机位位置中,每个块中置入一个位。28. The generator of claim 23, wherein the processor is further configured to divide the second plurality of bits into blocks of approximately uniform block size and place the first plurality of bits within each block. In random bit positions, one bit is placed in each block. 29、如权利要求23所述的发生器,其特征在于,处理器包含一计算器和一多项式加法器,所述计算器配置成计算多项式xi余项模数P,这里i是在第二组多个位中的一个预期的位位置而P是从第三组多个位导出的循环冗余码检验多项式,而所述多项式加法器配置成对第一组多个位的等于1的每个位逐位地执行第三组多个位和计算出的余项的“异或”运算。29. The generator of claim 23, wherein the processor comprises a calculator and a polynomial adder, the calculator being configured to calculate the remainder modulo P of the polynomial x i where i is in the second an expected bit position in the first plurality of bits and P is a cyclic redundancy check polynomial derived from the third plurality of bits, and the polynomial adder is configured to equal 1 for each of the first plurality of bits The ones bit executes the "exclusive OR" operation of the third group of bits and the calculated remainder, bit by bit.
CNB008114854A 1999-08-09 2000-08-07 Method and device for generating message authentication code Expired - Fee Related CN1163018C (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US37114799A 1999-08-09 1999-08-09
US09/371,147 1999-08-09

Publications (2)

Publication Number Publication Date
CN1369157A CN1369157A (en) 2002-09-11
CN1163018C true CN1163018C (en) 2004-08-18

Family

ID=23462682

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB008114854A Expired - Fee Related CN1163018C (en) 1999-08-09 2000-08-07 Method and device for generating message authentication code

Country Status (7)

Country Link
EP (1) EP1210790A2 (en)
JP (1) JP2003506750A (en)
KR (1) KR20020026370A (en)
CN (1) CN1163018C (en)
AU (1) AU6625000A (en)
HK (1) HK1046795B (en)
WO (1) WO2001011818A2 (en)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2808948B1 (en) * 2000-05-12 2006-03-03 Ibm Corp Internat Business Mac SYSTEM AND METHOD FOR SINGLE AUTHENTICATION EACH REPRODUCTION OF A GROUP OF ELECTRONIC DOCUMENTS
FR2839594B1 (en) * 2002-05-10 2004-07-30 Radio Systemes Ingenierie SECURE RADIO FREQUENCY TRANSMISSION METHOD AND SYSTEM USING THE SAME
US7702910B2 (en) 2002-10-24 2010-04-20 Telefonaktiebolaget L M Ericsson (Publ) Message authentication
US7103754B2 (en) 2003-03-28 2006-09-05 International Business Machines Corporation Computer instructions for having extended signed displacement fields for finding instruction operands
KR20060008976A (en) * 2003-05-07 2006-01-27 마츠시타 덴끼 산교 가부시키가이샤 Transceiver system
US7159122B2 (en) 2003-05-12 2007-01-02 International Business Machines Corporation Message digest instructions
US7257718B2 (en) 2003-05-12 2007-08-14 International Business Machines Corporation Cipher message assist instructions
US7356710B2 (en) 2003-05-12 2008-04-08 International Business Machines Corporation Security message authentication control instruction
JP2008532410A (en) 2005-03-01 2008-08-14 エヌエックスピー ビー ヴィ Generator for generating message authentication code, generation method, program element and computer-readable medium
WO2008034998A1 (en) * 2006-09-18 2008-03-27 France Telecom Improvement of the resistance to cryptanalytic attacks of a hash function
US9455962B2 (en) * 2013-09-22 2016-09-27 Winbond Electronics Corporation Protecting memory interface
US20240169098A1 (en) * 2021-04-09 2024-05-23 Google Llc Secure Chip-Wide Transmission
US12189824B2 (en) 2021-06-03 2025-01-07 Google Llc Register file protection

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5646997A (en) * 1994-12-14 1997-07-08 Barton; James M. Method and apparatus for embedding authentication information within digital data
EP0805575A3 (en) * 1996-05-03 2002-03-06 Texas Instruments Deutschland Gmbh Transponder

Also Published As

Publication number Publication date
WO2001011818A3 (en) 2001-06-07
JP2003506750A (en) 2003-02-18
HK1046795A1 (en) 2003-01-24
AU6625000A (en) 2001-03-05
WO2001011818A2 (en) 2001-02-15
CN1369157A (en) 2002-09-11
KR20020026370A (en) 2002-04-09
EP1210790A2 (en) 2002-06-05
HK1046795B (en) 2005-04-22

Similar Documents

Publication Publication Date Title
CN1163018C (en) Method and device for generating message authentication code
JP5079201B2 (en) Frame control encoder / decoder for reliable OFDM frame transmission
CN107592968B (en) Generate password checksum
CN1451212A (en) Method and apparatus for encrypting transmissions in a communication system
US20170244564A1 (en) Generating cryptographic checksums
EP3161995B1 (en) Generating cryptographic checksums
CN111049621A (en) System and method for interleaving distributed CRC in polar code for early termination
US20130326320A1 (en) Method and apparatus for indicating a temporary block flow to which a piggybacked ack/nack field is addressed
CN1390406A (en) Mehtod and apparatus for efficient irregular synchronization of a stream cipher
JP2012523166A (en) System and method for protecting multipart broadcast control messages
CN1212039C (en) Method for generating broadcast challenge value
CN1446405A (en) Methods, communication deivces and computer program products for communication information via frame check sequence having information block associated therewith
WO2001084772A2 (en) Generation of keyed integer permutations for message authentication codes
CN111052614B (en) Message processing and corresponding devices
CN1176531C (en) Method and device for generating random numbers in third generation mobile communication security authentication
RU2426244C1 (en) Method and apparatus for indicating temporary block flow to which piggybacked ack/nack field is addressed
HK1055192A (en) Generation of keyed integer permutations for message authentication codes
Samarakoon Security and Protection for Future Mobile Systems
HK1058277A (en) Method and apparatus for encrypting transmissions in a communication system
HK1034011A (en) Method for generating a broadcast challenge value

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1046795

Country of ref document: HK

C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20040818

Termination date: 20110807