Abstract:
An anonymous authentication method based on a pre-shared key, a reader-writer, an electronic tag and an anonymous bidirectional authentication system are disclosed. The method comprises the following steps: 1) a reader-writer sends an accessing authentication requirement group to the electronic tag; 2) after the electronic tag receives the accessing authentication requirement group, an accessing authentication response group is constructed and sent to the reader-writer; 3) after the reader-writer receives the accessing authentication response group, an accessing authentication confirmation group is constructed and sent to the electronic tag; 4) the electronic tag carries out confirmation according to the accessing authentication confirmation group.

Description:
[0001]    This application claims priority to Chinese patent application No. 200810150525.8 filed with the State Intellectual Property Office on Aug. 1, 2008 and titled “Pre-shared Key Based Two-way Anonymous Authentication Method”, which is herein incorporated by reference in its entirety. 
       FIELD OF THE INVENTION 
       [0002]    The present invention relates to a pre-shared key based anonymous authentication method, reader-writer, electronic tag and a pre-shared key based two-way anonymous authentication system. 
       BACKGROUND OF THE INVENTION 
       [0003]    Security concerns of wireless networks such as WLANs (Wireless Local Area Networks) and WMANs (Wireless Metropolitan Access Networks) are more serious than those of wired Ethernet networks. RFID (Radio-frequency identification) faces the same challenges. Identity authentication and permission authorization between the reader-writer and the electronic tag must be effectively dealt with prior to secure communication. Among all the wireless networks, electronic tags have the most complicated security matter, because of their huge differences in performances and functions, and the difficulties to normalize their product forms and application requirements. As a result, security strategies must be tailored to each type of electronic tag and its particular application mode. 
         [0004]    Generally, according to their application situations and environments, electronic tags can be classified as: 1) high-grade electronic tags, readable and writable, having a certain amount of memory space, and capable of data processing and computing; 2) middle-grade electronic tags, with a performance slightly poorer than the high-grade ones and similar functions; 3) low-grade electronic tags, only for recording some data information and supporting information to be read from or write to by a reader-writer, and generally incapable of data processing and computing. 
         [0005]    For electronic tags with a high performance and certain computing and processing capabilities, existing secure access protocols for wireless networks can be used or adopted in the two-way authentication and permission authorization between the electronic tag and the reader-writer, for example, WAPI (WLAN Authentication and Privacy Infrastructure). However, for electronic tags with a low performance, existing protocols are not supported, and a new security protocol is to be developed for their security. 
         [0006]    Particularly, for ISO (International Organization for Standardization) 18000-6 type A and ISO 18000-6 type B electronic tags, which have poor computing and processing performances, conventional public-key based security protocols are not applicable. However, studies have shown that these types of electronic tags can fully support pre-shared key based security protocols. Therefore, pre-shared key based security protocols are an effective solution to the security of 18000-6 type A and ISO 18000-6 type B electronic tags. 
         [0007]    Moreover, it should be noted that, in its field of application, the ID (identity) of an electronic tag normally indicates a business secret, e.g. price or place of origin of a product; hence, we must maintain its secrecy during authentication. In order to avoid ID leaks and subsequent attacks, a publicable temporary identity replacing the ID itself is used in the protocol. For security sake, an electronic tag may have different temporary identities in different authentication processes. 
         [0008]    Some pre-shared key based two-way authentication protocols have been proposed in the art. However, those protocols have security problems and cannot achieve the purpose of security authentication. Specifically, the security problems of existing protocols include: 
         [0009]    1. Shared-key updating brings security risks. Because the security of the shared-key is the foundation of a pre-shared key based security protocol, the shared-key is normally written in a reliable and manual manner; and dynamically updating it in the protocol will inevitably introduce unsafe or unreliable matters, hence deteriorating the security of the system. 
         [0010]    2. Frequent shared-key writing causes the system to lose a lot energy, which may further deteriorates the usability of the electronic tag, as its performance is sensitive to the energy. 
         [0011]    3. CRC (Cyclic Redundancy Check) is used for integrity check of messages of the protocol, and calculation of integrity check codes does not involve any secret information shared between both parties of the communication and cannot defend against active attacks. 
         [0012]    4. Shared key updating does not have forward secrecy. If the attacker cracks one of the updated keys, he will be able to calculate all the shared keys negotiated in the future. 
         [0013]    5. Shared key updating does not have backward secrecy. If the attacker cracks one of the updated keys, he will be able to calculate all the shared keys negotiated in the past. 
         [0014]    6. Both parties of the protocol must store each calculation of message integrity check information, which raises the burden on system storage. 
         [0015]    Due to the foregoing concerns, a new pre-shared key based two-way anonymous authentication protocol for two-way authentication and permission authorization between the electronic tag and the reader-writer is desired, to guarantee the security of data information of these types of electronic tags. 
       SUMMARY OF THE INVENTION 
       [0016]    To solve the security problems in existing authentication protocols in the field of electronic tags, the invention provides a pre-shared key based anonymous authentication method, reader-writer, electronic tag and a pre-shared key based two-way anonymous authentication system. 
         [0017]    The technical solution of the invention includes: a pre-shared key based anonymous authentication method, including: 
         [0018]    sending, by a reader-writer to an electronic tag, an access authentication request packet, wherein the access authentication request packet includes: a random number N 1  selected by the reader-writer; 
         [0019]    authenticating, by the reader-writer, an access authentication response packet after receiving the access authentication response packet sent from the electronic tag, and building an access authentication confirmation packet if the authentication succeeds, wherein the access authentication response packet includes: a temporary identity TempID of the electronic tag; the random number N 1  selected by the reader-writer; a random number N 2  selected by the electronic tag; and a message integrity check code MIC calculated by the electronic tag and having the value H (TempID∥N 1 ∥N 2 ∥Key); 
         [0020]    sending, by the reader-writer to the electronic tag, the access authentication confirmation packet. 
         [0021]    Preferably, the method further includes: 
         [0022]    authenticating, by the electronic tag, the access authentication request packet after receiving the access authentication request packet sent from the reader-writer, and building the access authentication response packet if the authentication succeeds, wherein the access authentication response packet includes: the temporary identity TempID of the electronic tag; the random number N 1  selected by the reader-writer; the random number N 2  selected by the electronic tag; and the message integrity check code MIC calculated by the electronic tag and having the value H (TempID∥N 1 ∥N 2 ∥Key); 
         [0023]    sending, by the electronic tag to the reader-writer, the access authentication response packet; 
         [0024]    confirming, by the electronic tag, the received access authentication confirmation packet sent from the reader-writer. 
         [0025]    Preferably, the method further includes, before the reader-writer sends to the electronic tag the access authentication request packet: 
         [0026]    setting up, by the reader-writer, system parameters for the electronic tag, and initializing the system parameters and sending the system parameters to the electronic tag which stores the system parameters. 
         [0027]    Preferably, system parameters in the electronic tag includes: an identity ID of the electronic tag, the pre-shared key Key and the temporary identity TempID of the electronic tag, wherein TempID is initialized as: TempID=H (ID∥Key); 
         [0028]    system parameters in the reader-writer includes: all information of the electronic tag including: TempID, a temporary identity LastTempID of the electronic tag from the last authentication, ID, Key and private information data PData of the electronic tag, wherein TempID is initialized as: TempID=H (ID∥Key), and LastTempID is initialized as: LastTempID=TempID. 
         [0029]    Preferably, the authenticating of the access authentication response packet and the building of the access authentication confirmation packet if the authentication succeeds include: 
         [0030]    if the reader-writer determines that N 1  is the random number selected by itself, then recalculates MIC and compares its value with the received MIC, if they are equal, then searches a back-end database, if a temporary identity TempID of the electronic tag that equals to the received TempID is found, then let LastTempID=TempID and TempID=H (ID∥Key∥N 1 ∥N 2 ), determines that the authentication succeeds, builds the access authentication confirmation packet and sends it to the electronic tag; and if a temporary identity TempID of some electronic tag that equals to the received TempID cannot be found, then continues to search whether LastTempID that equals to the received TempID exists, if LastTempID of some electronic tag that equals to the received TempID is found, then let TempID=H (ID∥Key∥N 1 ∥N 2 ), determines that the authentication succeeds, builds the access authentication confirmation packet and sends it to the electronic tag. 
         [0031]    Preferably, the access authentication confirmation packet includes: the random number N 2  selected by the electronic tag; and a message integrity check code MIC 1  calculated by the reader-writer and having the value H (N 2 ∥Key). 
         [0032]    Preferably, the authenticating of the access authentication request packet and the building of the access authentication response packet if the authentication succeeds include: 
         [0033]    if the electronic tag determines that N 2  is the random number selected by itself, then recalculates MIC 1  and compares its value with the received MIC 1 , if they are equal, then let TempID=H (ID∥Key∥N 1 ∥N 2 ) and determines the authentication succeeds. 
         [0034]    Preferably, the authentication function of the reader-writer is carried out by a back-end server instead. 
         [0035]    Correspondingly, the invention provides a reader-writer, including: 
         [0036]    a sending unit, adapted to send to an electronic tag an access authentication request packet, wherein the access authentication request packet includes: a random number N 1  selected by the reader-writer; 
         [0037]    a reception unit, adapted to receive an access authentication response packet sent from the electronic tag, wherein the access authentication response packet includes: a temporary identity TempID of the electronic tag; the random number N 1  selected by the reader-writer; a random number N 2  selected by the electronic tag; and a message integrity check code MIC calculated by the electronic tag and having the value H (TempID∥N 1 ∥N 2 ∥Key); 
         [0038]    an authentication unit, adapted to authenticate the access authentication response packet received by the reception unit, and send an authentication success result; 
         [0039]    a building unit, adapted to build an access authentication confirmation packet on receipt of the authentication success result, and send to the electronic tag the access authentication confirmation packet. 
         [0040]    Preferably, the reader-writer further includes: 
         [0041]    a setting-up unit, adapted to set up system parameters for the electronic tag, and initialize the system parameters and send the system parameters to the electronic tag which stores the system parameters. 
         [0042]    Preferably, the authentication unit includes: 
         [0043]    a determination unit, adapted to determine whether N 1  is the random number selected by itself, and send a positive determination result; 
         [0044]    a comparing unit, adapted to, on receipt of the positive determination result sent from the determination unit, recalculate MIC and compares its value with the received MIC, and send a result indicating they are equal; 
         [0045]    a search unit, adapted to, on receipt of the result indicating they are equal, if can find a temporary identity TempID of the electronic tag that equals to the received TempID, then let LastTempID=TempID and TempID=H (ID∥Key∥N 1 ∥N 2 ), and send an authentication success result; 
         [0046]    a building unit, adapted to, on receipt of the authentication success result, build the access authentication confirmation packet and send to the electronic tag the access authentication confirmation packet. 
         [0047]    Correspondingly, the invention provides an electronic tag, including: 
         [0048]    an authentication unit, adapted to receive an access authentication request packet sent from a reader-writer, authenticate the access authentication request packet, and send an authentication success message; 
         [0049]    a building unit, adapted to, on receipt of the authentication success message sent from the authentication unit, build an access authentication response packet, and send to the reader-writer the access authentication response packet; 
         [0050]    a reception unit, adapted to receive an access authentication confirmation packet sent from the reader-writer, wherein the access authentication confirmation packet includes: a random number N 2  selected by the electronic tag; and a message integrity check code MIC 1  calculated by the reader-writer and having the value H (N 2 ∥Key); 
         [0051]    a confirmation unit, adapted to confirm the access authentication confirmation packet received by the reception unit. 
         [0052]    Preferably, the electronic tag further includes: 
         [0053]    a storage unit, adapted to store in advance received system parameters sent from the reader-writer. 
         [0054]    Preferably, the confirmation unit includes: 
         [0055]    a determination unit, adapted to determine whether N 2  is the random number selected by itself, and send a positive determination result; 
         [0056]    a comparing unit, adapted to, on receipt of the positive determination result, recalculate MIC 1  and compares its value with the received MIC 1 , and send a result indicating they are equal; 
         [0057]    a confirmation unit, adapted to, on receipt of the result indicating they are equal, let TempID=H (ID∥Key∥N 1 ∥N 2 ) and determines the authentication succeeds. 
         [0058]    Correspondingly, the invention provides a pre-shared key based two-way anonymous authentication system, including a reader-writer and an electronic tag: 
         [0059]    wherein the reader-writer is adapted to send to the electronic tag an access authentication request packet, wherein the access authentication request packet includes: a random number N 1  selected by the reader-writer; authenticate an access authentication response packet after receiving the access authentication response packet sent from the electronic tag, and build an access authentication confirmation packet if the authentication succeeds; and send to the electronic tag the access authentication confirmation packet, wherein the access authentication confirmation packet includes: a random number N 2  selected by the electronic tag; and a message integrity check code MIC 1  calculated by the reader-writer and having the value H (N 2 ∥Key); 
         [0060]    the electronic tag is adapted to authenticate the access authentication request packet after receiving the access authentication request packet sent from the reader-writer, and build the access authentication response packet if the authentication succeeds, and send to the reader-writer the access authentication response packet; and authenticate the received access authentication confirmation packet sent from the reader-writer, wherein the access authentication response packet includes: the temporary identity TempID of the electronic tag; the random number N 1  selected by the reader-writer; the random number N 2  selected by the electronic tag; and the message integrity check code MIC calculated by the electronic tag and having the value H (TempID∥N 1 ∥N 2 ∥Key). 
         [0061]    The authentication function of the reader-writer may be carried out by a back-end server instead. 
         [0062]    As can be seen from the technical solutions above, the reader-writer sends to the electronic tag an access authentication request packet; authenticates an access authentication response packet after receiving the access authentication response packet sent from the electronic tag, and builds an access authentication confirmation packet if the authentication succeeds; and sends to the electronic tag the access authentication confirmation packet. Therefore, authentication of electronic tag information and permission authorization are realized, guaranteeing the security of the electronic tag data information. Moreover, the electronic tag authenticates the access authentication request packet after receiving the access authentication request packet sent from the reader-writer, and builds the access authentication response packet if the authentication succeeds, and sends to the reader-writer the access authentication response packet; and authenticates the received access authentication confirmation packet sent from the reader-writer. Therefore, two-way authentication and permission authorization between the electronic tag and the reader-writer are realized, guaranteeing the security of the electronic tag data information. That is, shared-key updating between the electronic tag and the reader-writer is no longer needed, which improves protocol efficiency without deteriorating the security of the system. A more safe and reliable message integrity check technique is used so that active attacks can be prevented. Frequent shared-key writing is no longer needed, which saves the energy of the system and improves the usability of the electronic tag. The electronic tag and the reader-writer no longer need to save each calculation of message integrity check information, which lessens the burden on system storage. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0063]      FIG. 1  illustrates a flow chart of a pre-shared key based anonymous authentication method provided by the invention. 
       
    
    
     DETAILED DESCRIPTION OF THE EMBODIMENTS 
       [0064]    For a better understanding by the skilled in the art, terms used in the specification are described hereinafter: 
         [0065]    R: reader-writer; 
         [0066]    T: electronic tag; 
         [0067]    ID: identity of the electronic tag; 
         [0068]    TempID: temporary identity of the electronic tag used in the authentication process; 
         [0069]    LastTempID: temporary identity of the electronic tag used in the last authentication process; 
         [0070]    Key: pre-shared key shared between the reader-writer and the electronic tag; 
         [0071]    PData: private information data of the electronic tag, e.g., data that need to be kept as a secret such as price and place of origin of a product; 
         [0072]    H (x): one-way hash function; 
         [0073]    N 1 : random number selected by the reader-writer; 
         [0074]    N 2 : random number selected by the electronic tag; 
         [0075]    SKey: session key. 
         [0076]    As shown in  FIG. 1 , a flow chart of a pre-shared key based anonymous authentication method according to the invention, the method includes: 
         [0077]    1) Firstly, the step of system parameter initialization is performed, i.e., the reader-writer generates system parameters, and corresponding processing processes are performed, which includes sending the system parameters to the electronic tag. This step is optional, and is not shown in the FIGURE. The initialized system parameters include: 
         [0078]    Electronic tag T: an identity ID of the electronic tag, a pre-shared key Key and a temporary identity TempID of the electronic tag. TempID is initialized as: TempID=H (ID∥Key); 
         [0079]    Reader-writer R: all information of the electronic tag including: TempID, LastTempID, ID, Key and PData. TempID is initialized as: TempID=H (ID∥Key), and LastTempID is initialized as: LastTempID=TempID. 
         [0080]    This step is to set up system parameters for first use, and is not necessary in subsequent uses. 
         [0081]    2) The reader-writer R sends to the electronic tag T an access authentication request packet. The access authentication request packet includes: 
         [0000]    
       
                 
         
             
             
         
       
     
         [0082]    where: 
         [0083]    N 1  field: random number selected by the reader-writer R. 
         [0084]    3) The electronic tag builds an access authentication response packet after receiving the access authentication request packet, and sends it to the reader-writer R. The access authentication response packet includes: 
         [0000]    
       
                 
         
             
             
         
       
     
         [0085]    where: 
         [0086]    TempID field: temporary identity of the electronic tag T; 
         [0087]    N 1  field: random number selected by the reader-writer R; 
         [0088]    N 2  field: random number selected by the electronic tag T; 
         [0089]    MIC field: message integrity check code calculated by the electronic tag T and having the value H (TempID∥N 1 ∥N 2 ∥Key). 
         [0090]    4) The reader-writer R builds an access authentication confirmation packet after receiving the access authentication response packet, and sends it to the electronic tag T. 
         [0091]    On receipt of the access authentication response packet, the reader-writer R first determines whether N 1  is the random number selected by itself, if not, then discards the packet; and if so, then recalculates MIC and compares its value with the received MIC, if they are not equal, then discards the packet; and if they are equal, then starts to search a back-end database, if a temporary identity TempID of some electronic tag that equals to the received TempID is found, then let LastTempID=TempID and TempID=H (ID∥Key∥N 1 ∥N 2 ), and builds the access authentication confirmation packet and sends it to the electronic tag T; and if a temporary identity TempID of some electronic tag that equals to the received TempID cannot be found, then searches whether LastTempID from the last authentication that equals to the received TempID exists, if LastTempID that equals to the received TempID is found, then let TempID=H (ID∥Key∥N 1 ∥N 2 ), and builds the access authentication confirmation packet and sends it to the electronic tag T; otherwise, the reader-writer R ends its authentication, and the authentication process fails. 
         [0092]    The access authentication confirmation packet includes: 
         [0000]    
       
                 
         
             
             
         
       
     
         [0093]    where: 
         [0094]    N 2  field: random number selected by the electronic tag T; 
         [0095]    MIC 1  field: message integrity check code calculated by the reader-writer R and having the value H (N 2 ∥Key). 
         [0096]    5) The electronic tag T confirms according to the access authentication confirmation packet. 
         [0097]    On receipt of the access authentication confirmation packet, the electronic tag T determines whether N 2  is the random number selected by itself, if not, then discards the packet; if so, then recalculates MIC 1  and compares its value with the received MIC 1 , if they are not equal, then discards the packet; and if they are equal, then let TempID=H (ID∥Key∥N 1 ∥N 2 ) and determines the authentication succeeds. 
         [0098]    By the protocol above, two-way authentication between the electronic tag T and the reader-writer R is realized, without leaking the identity information of the electronic tag T. During the authentication, the temporary identity TempID of the electronic tag T is updated. 
         [0099]    Following successful authentication, the electronic tag T and the reader-writer R can generate the same session key SKey using the key Key, and the random numbers N 1  and N 2  respectively, and encrypt the private information data PData of the electronic tag using SKey, to protect tag data. 
         [0100]    In addition, it should be noted that, although the embodiment above is described with the electronic tag T and the reader-writer R, the entity for the authentication function of the reader-writer R of the authentication process may reside on a back-end server. 
         [0101]    Based on the implementation of the method above, the invention provides a reader-writer, including a sending unit, a reception unit, an authentication unit and a building unit. The sending unit is adapted to send to an electronic tag an access authentication request packet, wherein the access authentication request packet includes: a random number N 1  selected by the reader-writer. The reception unit is adapted to receive an access authentication response packet sent from the electronic tag, wherein the access authentication response packet includes: a temporary identity TempID of the electronic tag; the random number N 1  selected by the reader-writer; a random number N 2  selected by the electronic tag; and a message integrity check code MIC calculated by the electronic tag and having the value H (TempID∥N 1 ∥N 2 ∥Key). The authentication unit is adapted to authenticate the access authentication response packet received by the reception unit, and send an authentication success result. The building unit is adapted to build an access authentication confirmation packet on receipt of the authentication success result, and send to the electronic tag the access authentication confirmation packet. 
         [0102]    Preferably, the reader-writer further includes: a setting-up unit, adapted to set up system parameters for the electronic tag, and initialize the system parameters and send the system parameters to the electronic tag which stores the system parameters. 
         [0103]    Preferably, the authentication unit includes: a determination unit, a comparing unit, a search unit and a building unit. The determination unit is adapted to determine whether N 1  is the random number selected by itself, and send a positive determination result. The comparing unit is adapted to, on receipt of the positive determination result sent from the determination unit, recalculate MIC and compares its value with the received MIC, and send a result indicating they are equal. The search unit is adapted to, on receipt of the result indicating they are equal, if can find a temporary identity TempID of the electronic tag that equals to the received TempID, then let LastTempID=TempID and TempID=H (ID∥Key∥N 1 ∥N 2 ), and send an authentication success result. The building unit is adapted to, on receipt of the authentication success result, build the access authentication confirmation packet and send to the electronic tag the access authentication confirmation packet. 
         [0104]    Based on the implementation of the method above, the invention provides an electronic tag, including: an authentication unit, a building unit, a reception unit and a confirmation unit. The authentication unit is adapted to receive an access authentication request packet sent from a reader-writer, authenticate the access authentication request packet, and send an authentication success message. The building unit is adapted to, on receipt of the authentication success message sent from the authentication unit, build an access authentication response packet, and send to the reader-writer the access authentication response packet. The reception unit is adapted to receive an access authentication confirmation packet sent from the reader-writer, wherein the access authentication confirmation packet includes: a random number N 2  selected by the electronic tag; and a message integrity check code MIC 1  calculated by the reader-writer and having the value H (N 2 ∥Key). The confirmation unit is adapted to confirm the access authentication confirmation packet received by the reception unit. 
         [0105]    Preferably, the electronic tag further includes: a storage unit, adapted to store in advance received system parameters sent from the reader-writer. 
         [0106]    Preferably, the confirmation unit includes: a determination unit, a comparing unit and a confirmation unit. The determination unit is adapted to determine whether N 2  is the random number selected by itself, and send a positive determination result. The comparing unit is adapted to, on receipt of the positive determination result, recalculate MIC 1  and compares its value with the received MIC 1 , and send a result indicating they are equal. The confirmation unit is adapted to, on receipt of the result indicating they are equal, let TempID=H (ID∥Key∥N 1 ∥N 2 ) and determines the authentication succeeds. 
         [0107]    Based on the implementation of the method above, the invention provides a pre-shared key based two-way anonymous authentication system, including a reader-writer and an electronic tag. The reader-writer is adapted to send to the electronic tag an access authentication request packet, wherein the access authentication request packet includes: a random number N 1  selected by the reader-writer; authenticate an access authentication response packet after receiving the access authentication response packet sent from the electronic tag, and build an access authentication confirmation packet if the authentication succeeds; and send to the electronic tag the access authentication confirmation packet, wherein the access authentication confirmation packet includes: a random number N 2  selected by the electronic tag; and a message integrity check code MIC 1  calculated by the reader-writer and having the value H (N 2 ∥Key). 
         [0108]    the electronic tag is adapted to authenticate the access authentication request packet after receiving the access authentication request packet sent from the reader-writer, and build the access authentication response packet if the authentication succeeds, and send to the reader-writer the access authentication response packet; and authenticate the received access authentication confirmation packet sent from the reader-writer, wherein the access authentication response packet includes: the temporary identity TempID of the electronic tag; the random number N 1  selected by the reader-writer; the random number N 2  selected by the electronic tag; and the message integrity check code MIC calculated by the electronic tag and having the value H (TempID∥N 1 ∥N 2 ∥Key). 
         [0109]    Please refer to corresponding processes in the method above for the function and operation of each device or entity in the system, which are omitted here. 
         [0110]    According to the description of the embodiments described above, those skilled in the art understand that the present invention may be implemented with software plus necessary general-purpose hardware platform, or with hardware. 
         [0111]    However, the former is preferred in many cases. Therefore, the technical solutions of the invention essentially, or the contribution of the invention, can be carried out in the form of a software product. The computer software product can be stored in a storage medium, e.g., ROM/RAM, magnetic disk, or optical disc, and includes several instructions that causes a computer device (e.g., personal computer, server or network device) to execute a method according to an embodiment or part of an embodiment of the invention. 
         [0112]    Preferred embodiments of the invention are described above. It should be noted that various alternations and modifications can be made by those skilled in the art without departing from the scope of the invention. Those alternations and modifications should be included in the scope of the invention.