Abstract:
A lightweight group signature system and method with short signatures according to the exemplary embodiments of the present invention can provide security characteristics similar to group signature mechanisms providing the existing known controllable linkability but can make a revocation method simple by outputting a short signature and providing excellent operation efficiency at the time of signature generation, signature verification, and revocation on smart terminals, and can be widely applied to various anonymity-based application environments, making by making operation efficiency excellent at the time of signature generation and verification and outputting very short signature lengths.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application claims priority to and the benefit of Korean Patent Application No. 10-2011-0103670 filed in the Korean Intellectual Property Office on Oct. 11, 2011, the entire contents of which are incorporated herein by reference. 
       TECHNICAL FIELD 
       [0002]    The present invention relates to a lightweight group signature system and method with short signatures, and more particularly, to a lightweight group signature system and method with short signatures, which can be effectively operated on a lightweight smart terminal. 
       BACKGROUND ART 
       [0003]    A group signature mechanism, which is one of the very important cryptographic authentication mechanisms for protecting user&#39;s privacy, has been widely researched and has been considerably developed since the concept thereof is first proposed by Chaum and Heyst in 1991. Various security requirements, formal models, and detailed mechanisms have been proposed. Recently, a group signature mechanism providing controllable linkability by extending typical group signature mechanisms has been researched. 
         [0004]    Typical authentication mechanisms, such as an ID/password authentication mechanism, a real-name based PKI authentication mechanism, and an i-Pin mechanism, and the like, have many disadvantages, such as personal information exposure due to a registration and identification process of personal information, leakage due to excessive personal information collection and management carelessness of a service provider, a wide range of activity trace, and the like. As a result, a group signature mechanism providing controllable linkability as an effective anonymous authentication mechanism that can replace the above-mentioned mechanisms has been actively researched recently. 
         [0005]    The group signature mechanism providing controllable linkability additionally has controllable linkability capable of identifying that group signatures are linked with each other (that is, the group signatures are generated by one signer or a signer key) when a special linking key is provided, by extending the typical group signature mechanisms simply handling anonymity using a dichotomical structure that conceals/recovers identity information or ID of a signer. Therefore, the anonymity can be controlled to various levels according to the desired policy. 
         [0006]    Using the characteristics, a service provider can obtain user related effective information from various anonymity based services, for example, web based personalized anonymous authentication service or in the case of data mining, anonymous authentication data, while maintaining anonymity of identity information. 
         [0007]    Existing group signature mechanisms providing various security characteristics such as the known controllable linkability, and the like, cannot be widely adopted in various application environments due to structural complexity. Currently, user storage costs and operation costs are very cheap. Therefore, costs of resources for designing the system greatly depends on communication costs and therefore, the group signature mechanism providing controllable linkability with short signatures is urgently required in low resource application environments such as a radio Internet based service market. 
         [0008]    Recently, application mechanisms for enhancing privacy protection by performing anonymous authentication between the smart terminals by using short range communication environment, and the like, have been researched and developed. 
         [0009]    As an example, a method for transmitting information using multi-dimensional codes such as a QR code has been greatly interested as one method of short range communications. A device with a built-in camera capable of recognizing the multi-dimensional code can obtain information through the multi-dimensional codes any time and therefore, the user can process information using the corresponding devices without separate communication networks (thus, without charging communication costs). The method for recognizing multi-dimensional codes through a camera is performed by a contactless type and therefore, does not require devices such as a separate connection cable, and the like. 
       SUMMARY OF THE INVENTION 
       [0010]    In order to solve the above problems, the present inventors have developed the lightweight group signature mechanism, and the like, that is excellent in terms of performance, in particular, outputs short signatures and has the excellent security characteristics while providing excellent operation efficiency at the time of signature generation and signature verification on the smart terminals. 
         [0011]    The present invention has been made in an effort to provide a lightweight group signature system and method with short signatures capable of providing excellent operation efficiency at the time of signature generation, signature verification, and revocation on smart terminals while providing security characteristics similar to group signature mechanisms providing the existing known controllable linkability but outputting the short signatures. 
         [0012]    An exemplary embodiment of the present invention provides a lightweight group signature system with short signatures, may include: a signature control unit configured to generate a group public key, issue a signature key to a user device, store the signature key in a signature key management list, and update related information including the signature key management list when validity of a join request generated from the user device is verified, identify whether two signatures are linked and manage a revocation list to perform revocation and generate a signer identification proof when a valid signature is; a user device configured to generate a signature using a signature key issued from the signature control unit; a signature verifying unit configured to verify a signature generated from the user device; signer identification proof evaluating unit configured to evaluate the validity of the signer identification proof generated from the signature control unit. 
         [0013]    The signature control unit may include: a key issuing unit configured to generate a group public key, a master issuing key, a master opening key, and a master linking key based thereon, issue the signature key to the user device when a join of the user device is requested, and manage a revocation list so as to be used to update the signature key when the revocation of the issued signature key is performed; a signer identifying unit configured to identify the validity of a signature key generating a signature and generate the signer identification proof by using the master opening key when the valid signature is given; and a signature linking unit configured to identify whether two signatures are linked with each other by using the master linking key when two valid signatures are present. 
         [0014]    The key issuing unit may provide the generated group public key to all the participants including the user device. 
         [0015]    The key issuing unit may define the master issuing key by using (algebraic) bilinear groups and a bilinear map associated with the bilinear groups. 
         [0016]    The key issuing unit may verify the validity of a join request message when receiving the join request message from the user device to be registered in the lightweight group signature system and then, issues the signature key to the user device. 
         [0017]    The join request message may include personal key ownership verification information and verification information related to key issuance. 
         [0018]    A security channel for authentication may be formed between the key issuing unit and the user device. 
         [0019]    The key issuing unit may change a session at the time of generating a revocation list of issued signature keys and make public the revocation list to be used to update the group public key and a user secret key. 
         [0020]    The signer identifying unit may output a proof identifying who is a signer by using the master opening key when the valid signature is given. 
         [0021]    Another exemplary embodiment of the present invention provides a lightweight group signature method, including: generating a group public key and generating a master secret key, a master opening key, and a master linking key based thereon; verifying the validity of user information after receiving user information required to join a signature group from a user device when a join is requested from the user device, issuing a signature key by using the master secret key when the verification is valid, and generating the signature; and searching registration information including a public key of the user device, calculating validity of the signature by using the master opening key, the signature, and related information, and determining whether revocation of the signature is performed according to whether the calculating results are present in the revocation list. 
         [0022]    The generating of the signature may further include: verifying the validity of the join request message by receiving a join request message from the user device; receiving a signature for the join request message of which the validity is verified from the user device; generating a secret signature key corresponding to a group public key in the user device by verifying the validity of the signature and registering the user device; and providing the generated group public key to the user device registered in the group signature system. 
         [0023]    The determining whether the revocation of the signature is performed may further include identifying whether two signatures are linked with each other by using the master linking key when two valid signatures are given. 
         [0024]    The determining whether the revocation of the signature is performed may further include providing the identifying result of the revocation to the user device when the revocation identification for the given signature is requested 
         [0025]    The master issuing key may be defined by using bilinear groups, a bilinear map associated with the bilinear groups, and a hash function. 
         [0026]    The join request message may include a personal key ownership verification information. 
         [0027]    The lightweight group signature system and method with short signatures according to the exemplary embodiments of the present invention can make the revocation method simple and can be widely applied to various anonymity-based application environments such as the multi-dimensional code based authentication, and the like, by providing the excellent operation efficiency at the time of the signature generation and verification and outputting the very short signature length. 
         [0028]    The lightweight group signature system and method with short signatures according to the exemplary embodiments of the present invention can provide unforgeability, traceability, non-frameability, controllable anonymity, and controllable linkability to systemically control the degree of anonymity. 
         [0029]    The lightweight group signature system and method with short signatures according to the exemplary embodiments of the present invention can be used for applications to which the existing group signature mechanisms, such as anonymous authentication for traffic network, future Internet anonymous packet authentication, and the like, are applied, and various next-generation IT applications such as anonymous based web services, medical information security, cloud computing authentication, and the like, and can be used on the smart terminals. 
         [0030]    The foregoing summary is illustrative only and is not intended to be in any way limiting. In addition to the illustrative aspects, embodiments, and features described above, further aspects, embodiments, and features will become apparent by reference to the drawings and the following detailed description. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0031]      FIG. 1  is a configuration diagram of a lightweight group signature system with short signature lengths according to an exemplary embodiment of the present invention. 
           [0032]      FIG. 2  is an operational control flow chart of generating a group public key, a master issuing key, a master opening key, and a master linking key of a group signature system according to an exemplary embodiment of the present invention. 
           [0033]      FIG. 3  is an operational control flow chart of interactively generating a signature key between the key issuing unit and user devices according to an exemplary embodiment of the present invention. 
           [0034]      FIG. 4  is an operational control flow of allowing valid user devices to generate a group signature for given messages according to an exemplary embodiment of the present invention. 
           [0035]      FIG. 5  is an operational control flow chart of verifying a group signature for one message, which is generated by valid user devices, by a signature verification unit according to the exemplary embodiment of the present invention. 
           [0036]      FIG. 6  is an operational control flow chart of generating verification information on a group signature for a message generated by the valid user devices and verifying validity of the verification information according to the exemplary embodiment of the present invention. 
           [0037]      FIG. 7  is an operational control flow chart of outputting results on whether group signatures are linked with each other by using a master linking key for two group signatures generated by the valid user devices according to the exemplary embodiment of the present invention. 
           [0038]      FIG. 8  is an operational control flow chart of outputting related results by a signer identifying unit when requesting revocation identification for a given signature according to the exemplary embodiment of the present invention. 
           [0039]    It should be understood that the appended drawings are not necessarily to scale, presenting a somewhat simplified representation of various features illustrative of the basic principles of the invention. The specific design features of the present invention as disclosed herein, including, for example, specific dimensions, orientations, locations, and shapes will be determined in part by the particular intended application and use environment. 
           [0040]    In the figures, reference numbers refer to the same or equivalent parts of the present invention throughout the several figures of the drawing. 
       
    
    
     DETAILED DESCRIPTION 
       [0041]    Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. First of all, we should note that in giving reference numerals to elements of each drawing, like reference numerals refer to like elements even though like elements are shown in different drawings. In describing the present invention, well-known functions or constructions will not be described in detail since they may unnecessarily obscure the understanding of the present invention, and terms described in the singular form may include a plural concept. Hereinafter, exemplary embodiments of the present invention will be described, but the spirit of the present invention is not limited thereto and may be changed and modified in various ways by those skilled in the art. 
         [0042]      FIG. 1  shows a configuration of a lightweight group signature system with short signature lengths according to an exemplary embodiment of the present invention. 
         [0043]    Referring to  FIG. 1 , a lightweight group signature system according to an exemplary embodiment of the present invention includes a signature control unit  100  including a key issuing unit  110 , a signer identifying unit  120 , and a signature linking unit  130 , a signature verifying unit  150 , and a signer identification proof evaluating unit  160 . Here, each component of the signature control unit  100  can be implemented by a software algorithm that outputs special values for given input values. However, each component is not limited thereto and a role of participants may be flexibly separated or integrated based on definition of a new subject according to a designed method. If necessary, it is possible to add new components for linking with known real-name authentication mechanisms. Herein, examples of the integration may also include the integration of the key issuing unit  110  and the integration of the signer identifying unit  120  or the integration of the signer identifying unit  120  and the signature linking unit  130 . 
         [0044]    The key issuing unit  110  initially generates the group public key as a trusted subject and generates a master issuing key (mik), a master opening key (mok), and a master linking key (mlk) corresponding thereto. 
         [0045]    The key issuing unit  110  performs an interactive protocol when receiving a join request from a new user device  140  and then, issues a signature key to the user device. 
         [0046]    The signer identifying unit  120  updates related information including a revocation list when a revocation phenomenon occurs. If the signer identifying unit  120  identifies whether revocation is performed, by using the updated revocation list and the master opening key when the revocation identification request is received from the signature verifying unit  150  and then, returns the identified results to the signature verifying unit  150 . 
         [0047]    The signer identifying unit  120  uses the master opening key to output the verification information for identifying a signer when a valid signature is given. Anyone can publicly identify the output verification information. 
         [0048]    The signature linking unit  100  can identify a linking relationship of two signatures by using the master linking key when two valid signatures are given. That is, it can be appreciated whether a single signer generates two signatures. 
         [0049]    The user device  140  may be joined in a member of a valid group to receive a signature key from the key issuing unit  110 . In this case, the user device  140  and the key issuing unit  110  perform an interactive protocol. 
         [0050]    Thereafter, the user device  140  generates a group signature for a given message by using an issued signature key. The signature verifying unit  150  identifies validity of a signature for the given signature. The signer identification proof evaluating unit  160  evaluates the validity of the signer identification proof generated from the signer identifying unit  120 . 
         [0051]    The key issuing unit  110  defines a group public key (gpk) and makes public the defined group public key to components of the lightweight group signature system and all the systems linked with the lightweight group signature system. 
         [0052]      FIG. 2  is an operational control flow chart of allowing the key issuing unit  110  according to an exemplary embodiment of the present invention to generate an initial group public key (gpk), the master issuing key (mik) corresponding to the initial group public key, the master opening key (mok), and the master linking key (mlk). 
         [0053]    Hereinafter, referring to  FIG. 2 , an operational process of the key issuing unit  10 ( 110 ) according to the exemplary embodiment of the present invention will be described in detail. 
         [0054]    Initially, the key issuing unit  110  receives a security parameter k as an input to generate bilinear groups G 1  and G 2 , a bilinear map e:G 1 ×G 2 →G T  coupled therewith, and a hash function H:{0,1}→Z p ′. Here, the number of groups is set to be a decimal p. The key issuing unit  110  performs the followings so as to generate parameters for generating the keys according to each group signature mechanism. 
         [0055]    Elements h 1  ∈ G 2  and g, g 1 , g 2 , u ∈ G 1  and Θ∈Z p * and η, ξ∈Z p * are selected uniformly at random. After h θ =h 1   θ , w=u η , d=u ξ  is calculated, mik=θ is defined as the master issuing key, mok=(η, ξ) is defined as the master opening key, and mlk=L=h 1   ξ  is defined as the master linking key, respectively (S 200 ). 
         [0056]    The key issuing unit  110  transfers the master opening key mok=(η, ξ) to an identifier server and transfers the master linking key mlk=L=h 1   ξ  to a linker unit  130  (S 202 ). 
         [0057]    The key issuing unit  110  generates an initial group public key gpk=(e, G 1 , G 2 , G T , g, g 1 , g 2 , h 1 , h e , H, u, w, d) and make the generated key public (S 204 ). 
         [0058]      FIG. 3  shows an operational control flow of allowing the key issuing unit  110  to interactively generate a signature key with the user device  140  according to the exemplary embodiment of the present invention. 
         [0059]    Hereinafter, the process of generating the signature key of the key issuing unit  110  according to the exemplary embodiment of the present invention will be described in detail with reference to  FIG. 3 . 
         [0060]    The user device  140  and the key issuing unit  110  interactively perform the following operations according to the group signature mechanism to be used. Authentication and security channels are formed between the user device  140  and the key issuing unit  110  that are two participants. 
         [0061]    The user device  140  selects secret value z i ∈Z p * and generates its own public key C i =w Z     i    when being newly joined in the group. The user device  140  provides a join request message and user information (ID i , u Z     i   , C i =w Z     i   , POP(w, C i ), ZK-Eq(u, u Z     i   , w, C i )) to the key issuing unit  110  (S 300 ). Herein, it is assumed that the fact that C is a public key generated in a user ID i  can be publicly verified. It is assumed that all the C values are defined as different values for each user. If necessary, two assumptions may be easily implemented by using a binary search. When more than two users want to use the same public key value, the user joined later is not allowed to join and allows the use of other public key values. 
         [0062]    The key issuing unit  110  verifies that the user ID i  knows z i =log w C i  by using POP(w, C i ) and also verifies log u Y i =log w C i  by using zero-knowledge verification of knowledge ZK-Eq(u, Z i =u Z     i   , w, C i ). If the verifications succeed, the key issuing unit  110  selects x i , y i ← r             p *, calculates A i =(g 1 g 2   −y     i   C i   −1 ) 1/(θ−x     i     ) =(g 1 g 2   −y     i   w z     i   ) 1/(θ+x     i     )  by using the master issuing key Θ and transfers (A i , x i , y i ) to the user device  140  (S 302 ). 
         [0063]    The user device  140  verifies the validity of (A i , x i , y i ) and stores a secret key usk[i]=(A i , x i , y i , z i ) of a group member (S 304 ). 
         [0064]    The key issuing unit  110  additionally registers registration information REG i =[g y     i   , ID i , C i =w z     i   , POP(w, C i ), X i =h 1   x     i   , Y i =g 2   y     i   ] in a user registration list register (REG) (S 306 ). 
         [0065]    The methods may support a simultaneous join when using a non-interactive zero-knowledge verification of knowledge. 
         [0066]      FIG. 4  is an operational control flow of allowing the valid user device  140  to generate a group signature for given messages according to an exemplary embodiment of the present invention. 
         [0067]    Hereinafter, a process of generating the group signature by the valid user device according to the exemplary embodiment of the present invention will be described in detail with reference to  FIG. 4 . 
         [0068]    The user device  140  receives the given group public key (gpk), a user secret signature key usk[i]=(A, x, z, y) corresponding to the group public key, and a message M (S 400 ). Then, the user device  140  generates a signature a for the input as follows. 
         [0069]    The user device  140  selects any random number α←Z p  and calculates γ=αx-z (modp), D 1 ←u α , D 2 ←Aw α , and D 3 ←g y d α . The user device  140  selects a plurality of any random numbers r α , r x , r γ , r y ←Z p  and calculates R 1 ←u r     α   , R 2 ←e(D 2 , h 1 ) r     x   e(w, h θ ) −r     o   e(w, h 1 ) −r     o   e(g 2 , h 1 ) r     y   , and R 3 ←g r     y   d r     o   . 
         [0070]    The user device  140  calculates c=H(M, D 1 , D 2 , D 3 , R 1 , R 2 , R 3 ) by using the hash function H and calculates s α =r α +cα(modp), s x =r x +cx(modp), s γ =r γ +c γ (modp), and s y =r y +cy(modp) (S 402 ). Then, the user device  140  outputs σ=(D 1 , D 2 , D 3 , c, s α , s x , s γ , s y ) as a signature (S 404 ). 
         [0071]      FIG. 5  is an operational control flow chart of verifying a group signature for a message, which is generated by valid user devices  140 , by the signature verifying unit  150  according to the exemplary embodiment of the present invention. 
         [0072]    Hereinafter, a process of verifying the signature verifying unit  150  according to the exemplary embodiment of the present invention will be described in detail with reference to  FIG. 5 . 
         [0073]    It is assumed that the signature for the message M is previously generated (S 500 ). The signature verifying unit  150  for the given signature calculates R 1 ←u s     o   D 1   −c , R 3 ←g s     y   d s     α   D 3   −c , and R 2 ←e(D 2 , h 1 ) s     x   e(w, h θ)   −s     α   e(w, h 1 ) −s     y   e(g 2 , h 1 ) s     z   (e(D 2 , h θ )/e(g 1 , h 1 )) c . The signature verifying unit  150  calculates a hash function value c′=H(M, D 1 , D 2 , D 3 , R 1 , R 2 , R 3 ) and then, identifies whether c is equal to c′ (S 502 ). As the identified result, if two values are equal to each other, the signature verifying unit  150  outputs 1 representing that the given signature is valid. If not, 0 is output (S 504 ). 
         [0074]      FIG. 6  is an operational control flow chart of generating a signer identification proof identifying who is a real signer of a group signature for a message generated by the valid user device  140  by using the master opening key and verifying the validity of the signer identification proof by using the signer identification proof evaluating unit  160  according to the exemplary embodiment of the present invention. 
         [0075]    Hereinafter, a process of verifying the validity of the verification information by the signer identification proof evaluating unit  160  according to the exemplary embodiment of the present invention will be described in detail with reference to  FIG. 6 . 
         [0076]    It is assumed that a valid signature σ=(D 1 , D 2 , D 3 , c, s α , s x , s γ , s y ) for the message M is previously given (S 600 ). The signer identifying unit  120  generates the verification information τ by using the master opening key mok=(η, ξ) as follows. 
         [0077]    The signer identifying unit  120  calculates LI=D 3 D 1   −ξ =g y u ξα ·(u α)   −ξ   =g     y    (S 602 ). 
         [0078]    Then, the signer identifying unit  120  searches a user index i and information REG i =[g y     i   , ID i , C i =w z     i   , POP(w, C i ), X i =h 1   x     i   , Y i =g 2   y     i   ] corresponding thereto by the binary search in the user registration list REG by using g y . Herein, upk[i]=C i =w z     i    is information registered by the public key of the signer when the signer is joined (S 604 ). The signer identifying unit  120  calculates K=D 1   η =u αη and A i =A i u ηα (u α ) −η =D 2 K −1  and verifies that Equation e(A i , X i h 0 )=e(g 1 Y i   −1 C i   −1 , h 1 ) is established (S 606 ). If the verification equation is valid, the signer identifying unit  120  selects r←           p * and calculates c open =H(M open , σ, g, K, u r , D 1   r ) and s open =r−c open η (mod p). Here, M open  is a message for identifying the signer. The signer identifying unit  120  outputs the signer identification proof τ=(K, s open , c open ) corresponding to the IDi, the public key C i =w z     i   , and the signature σ of the signer (S 608 ). 
         [0079]    The signer identification proof evaluating unit  160  evaluates if the valid signature σ=(D 1 , D 2 , D 3 , c, s α , s x , s γ , s y ) for the given message M, the signer identification proof upk[i]=C i =w z     i    and τ=(K, s open , c open ), and the public key upk[i] of the given signer meets the following conditions. 
         [0080]    (1) The signer identification proof evaluating unit  160  calculates W 1 =u s     open   w c     open   =u r , W 2 =D 1   s     open   K r     open   =D 1   r , and the hash function value c open ′=H(M open , σ, g, K, W 1 , W 2 ) and identifies that c open ′=c open  is established and also identifies that (2) c(D 2 K −1 , X i h θ)=c(g   1 g 2   −y     i   C i   −1 , h 1 ) is established. 
         [0081]    If both of the Equations (1) and (2) are established, the signer identification proof evaluating unit  160  outputs  1  representing the validity. If not, 0 is output (S 608 ). 
         [0082]      FIG. 7  is an operational control flow chart of confirming whether the group signatures are linked with each other by using a master linking key for two group signatures generated by the valid user device  140  according to the exemplary embodiment of the present invention. 
         [0083]    Hereinafter, a process of identifying on the linking of group signatures of two group signatures according to the exemplary embodiment of the present invention will be described in detail with reference to  FIG. 7 . 
         [0084]    The signature linking unit  130  receives the given massage-signature pair (σ, M) and (σ′, M′) (S 700 ) and calculates two linking indexes LI and LI′ as follows by using the master linking key mlk=L=h 1   ξ (S 702 ). Here, it is assumed that σ=(D 1 , D 2 , D 3 , . . . ) and σ′=(D 1 ′, D 2 ′, D 3 ′, . . . ) and LI=e(D 3 , h 1 )e(D 1 , L)=e(g y , h 1 ) and LI′=e(D 3 ′, h 1 )e(D 1 ′, L)=c(g y′ , h 1 ). The signature linking unit  130  outputs 1 when LI=LI′ and if not, outputs 0 (S 704 ). 
         [0085]      FIG. 8  is an operational control flow chart of allowing the signer identifying unit  120  to update the related information in the revocation list (RL) when the revocation is generated and outputting results when the revocation is requested, according to the exemplary embodiment of the present invention. 
         [0086]    Hereinafter, the process of outputting processed results at the time of receiving the revocation identification request by the signer identifying unit  120  will be described in detail with reference to  FIG. 8 , according to the exemplary embodiment of the present invention. 
         [0087]    The valid signature σ=(D 1 , D 2 , D 3 , c, s α , s x , s γ , s y ) for the message M is previously given as an input (S 800 ). The signer identifying unit  120  identifies whether the revocation of the key generating the signature given as follows is performed by using the master opening key mok=(η, ξ). 
         [0088]    The signer identifying unit  120  calculates LI=D 3 D 1   −ξ =g y u ξα ·(u α ) −ξ   =g     y    (S 802 ). The signer identifying unit  120  identifies whether the calculated value is present in the revocation list (RL). The signer identifying unit  120  outputs the ‘revocation’ when the calculation value is present and outputs ‘valid’ when the calculation value is not present (S 804 ). 
         [0089]    As described above, the exemplary embodiments have been described and illustrated in the drawings and the specification. The exemplary embodiments were chosen and described in order to explain certain principles of the invention and their practical application, to thereby enable others skilled in the art to make and utilize various exemplary embodiments of the present invention, as well as various alternatives and modifications thereof. As is evident from the foregoing description, certain aspects of the present invention are not limited by the particular details of the examples illustrated herein, and it is therefore contemplated that other modifications and applications, or equivalents thereof, will occur to those skilled in the art. Many changes, modifications, variations and other uses and applications of the present construction will, however, become apparent to those skilled in the art after considering the specification and the accompanying drawings. All such changes, modifications, variations and other uses and applications which do not depart from the spirit and scope of the invention are deemed to be covered by the invention which is limited only by the claims which follow.