Abstract:
Disclosed relates to an access control system and method based on hierarchical keys. The system comprises an access control server (ACS), a home gateway, and a plurality of sensor devices disposed on a home network. The ACS sets up user&#39;s access limits of authority and authorization verifier, and saves the related data of user&#39;s password and the user&#39;s access limits of authority. The gateway records the authority limits&#39; level and the authority limits&#39; key which are constructed based on a hierarchical key structure. When a user logs in the ACS to request access, an one-time communication key between the user and the home gateway is established by exchanging the ticket and the token that are issued by the ACS. This allows the user to access the information of the sensor devices.

Description:
FIELD OF THE INVENTION 
     The present invention generally relates to an access control system and method based on hierarchical key, and authentication key exchange method thereof. 
     BACKGROUND OF THE INVENTION 
     Wireless sensing network has grown from the massive deployment in military or environment surveillance to the household or personal use. For the sensing network to integrate into the household more easily, a home gateway is responsible for collecting the sensing network information and controlling the dependent variable changes. The home messenger acting as the home gateway has become the home sensing collection center. 
     When more households deploy sensing network elements and home gateway fro collecting information and the user is used to watch home gateway for obtaining the information of home sensing networks. It is important to consider how to provide an access control service on lots of sensing networks employed by the households, so that the user may know the sensing condition even when the user is not at the home messenger. 
     For a household, the deployed sensors may be divided into different priority categories. For example, the home surveillance sensor has the security degree higher than the temperature and humidity sensor. Also, different members of a household may be allowed to access different information. Therefore, a simple configuration of access control authority is in great demands. 
     To establish access control requires two fundamental factors, i.e., mutual authentication and access authorization. Authentication is to identify the identity (ID) of the user. The identification of the identity is the basis of any communication. However, even the server knows the identity of the user does not mean that the user may access freely. The user must also be authorized for the target to be accessed before accessing. 
     The most common secured access control method is to establish authentication and authorization mechanism for each session of the communication path. Cryptography usually uses a key to represent a physical entity, i.e., represent the identity.  FIG. 1  shows an exemplary schematic view of an access control method to indicate a user intending to access information on a node in a remote sensing network. 
     As shown in step  110 , a user  101  uses the user ID and password to request access control server (ACS)  103  provided by service provider for access to home gateway  105 . At this point, ACS  103  checks the established access control list (ACL). Then the legitimacy of user  101  is checked, as shown in step  120 . If legitimate, ACS  103  and home gateway  105  negotiate the session key of this session for user  101 , as shown in step  130 . 
     There are two objects of establishing a session key. The first object is to express that ACS  103  has confirmed the legitimacy of user  101  to access home gateway  105 , and the second object is to use different key for different session, which helps to maintain the registered secret information will not go public on the communication network as well as providing consistent security quality for each communication. 
     After a session key is negotiated, user  101  may use the session key to request home gateway  105  for accessing a node i on a home sensing network  107 , as shown in step  140 . Home gateway  105  then checks whether user  101  has the authority to access node i as shown in step  150 . If so, as shown in step  160 , home gateway  105  inquires node i for secured communication and receives response information from node i, as shown in step  170 . Home gateway  105  further uses the session key to encrypt the information before sending the information to user  101 , as shown in step  180 . In this manner, the user may safely access remote node i. 
     Taiwan Patent No. 1258964 disclosed a remote data access control method and system based on AAA mechanism. As shown in  FIG. 2 , in this access control method, a mobile user requests to the AAA server of local network for authentication (step  21 ), and each computes the same session key independently (step  22 ). After AAA server transmits session key and the ID of mobile user to the application server of local network (step  23 ), the mobile user also transmits the ID to the application server (step  24 ). Finally, based on the received ID, the application server uses the corresponding session key to establish the channel with the mobile user (step  25 ). 
     U.S. Patent Publication No. 2007/0006291 disclosed an authentication mechanism using one-time passwords with single sign-on authentication. As shown in  FIG. 3 , the authentication mechanism may comprise an authentication proxy server  320  and a user device  300 . User device  300  connects to authentication proxy server  320  through a network  330 . Through network  330 , authentication proxy server  320  may communicate with a third-party authentication server (TPAS)  340  as well as a key distribution center  350 . Key distribution center (KDC)  350  at least includes another authentication server (AS)  352  and a ticket granting server (TGS)  354  for updating the user&#39;s password and the request, as well as receiving granting ticket and service ticket. The ticket granting server of the authentication mechanism will add loads to the service provider. 
     SUMMARY OF THE INVENTION 
     The disclosed exemplary embodiments of the present invention may provide an access control system and method based on hierarchical key, and authentication key exchange method thereof. 
     In an exemplary embodiment, the disclosed relates to an access control system based on hierarchical key, comprising an access control server, a home gateway and a plurality of sensor nodes deployed in a home network. The access control server is configured with the user access control rights and authorization verifier, and stores the related information of user password and access rights. The home gateway records access rights and rights key based on a hierarchical key structure. When a user logins in to the access control server to request access, the user and the home gateway use the exchange of a ticket and a token issued by the access control server to establish a one-time session key to allow the user to access the information on the plurality of sensor nodes. 
     In another exemplary embodiment, the disclosed relates to an access control method based on hierarchical key. The access control method comprises: establishing a hierarchical key structure in a home gateway; establishing user access control rights and authorization verifier in an access control server; when a user logging in to the access control server to request access, the access control server using the authorization verifier corresponding to the user to issue a ticket and a token; and the user and the home gateway establish a one-time communication key through the exchange of the ticket and the token to allow the user to access the information on the plural deployed sensor nodes in a home network. 
     Yet in another exemplary embodiment, the disclosed relates to an authentication key exchange method, applicable to remote access authentication for a user. The authentication key exchange method comprises: the user providing a unique ID, and a hidden random number m to an access control server; based on the unique ID and hidden random number m, the access control server finding a corresponding rights verifier, and using random number m and another random number y to generate a ticket pair (ω, μ) and a token β, transmitting token β to a corresponding home gateway; after receiving acknowledgement from the home gateway, the access control server transmitting the ticket pair to the user; and through m, μ, β and an non-invertible operation, the user confirming the identity of the access control server and receiving ticket ω. 
     The foregoing and other features, aspects and advantages of the present invention will become better understood from a careful reading of a detailed description provided herein below with appropriate reference to the accompanying drawings. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  shows an exemplary schematic view of an access control method. 
         FIG. 2  shows an exemplary schematic view of a remote access control method. 
         FIG. 3  shows a schematic view of an authentication mechanism using one-time passwords with single sign-on authentication. 
         FIG. 4  shows a schematic view of an exemplary access control system based on hierarchical key, consistent with certain disclosed embodiments of the present invention. 
         FIG. 5  shows an exemplary operation flow of the access control system, consistent with certain disclosed embodiments of the present invention. 
         FIG. 6  shows an exemplary schematic view of the elements and the access control service of the access control server and the home gateway, consistent with certain disclosed embodiments of the present invention. 
         FIG. 7  shows an exemplar established by a hierarchical key structure, consistent with certain disclosed embodiments of the present invention. 
         FIG. 8  shows an exemplary flowchart illustrating how to establish a hierarchical key structure, consistent with certain disclosed embodiments of the present invention. 
         FIG. 9  shows exemplary contents of a key management table of home gateway according to  FIG. 7 , consistent with certain disclosed embodiments of the present invention. 
         FIG. 10  shows an exemplary flowchart illustrating how to establish user access rights, consistent with certain disclosed embodiments of the present invention. 
         FIG. 11  shows an exemplar illustrating how to establish user access rights, consistent with certain disclosed embodiments of the present invention. 
         FIG. 12  shows an exemplary flowchart illustrating the operation of an authentication key exchange method when a user requests authentication/authorization to the access control server, consistent with certain disclosed embodiments of the present invention. 
         FIG. 13  shows an exemplar illustrating how to accomplish authentication/authorization between the user and the access control serve through the establishment of mathematic models, consistent with certain disclosed embodiments of the present invention. 
         FIG. 14  shows an exemplary schematic view illustrating the operation of establishing communication key between the user and the home gateway, consistent with certain disclosed embodiments of the present invention. 
     
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     The disclosed embodiments of the present invention provide an access control system and method based on hierarchical key, and an authentication key exchange method thereof. The access control mechanism may be applied to a home gateway. For example, the access control mechanism may be linked with an access control server, a home gateway and home sensing network devices so that the home information administrator may establish user access control policy through the access control server so as to enable the user access the authorized sensing information through the assistance of the access control server. 
     With the home gateway, the home information administrator must register the administrator&#39;s ID and password, and the basic connection information and security communication key of the home gateway to the access control server of the service provider to establish basic security trust point. The registration information at least includes identification information to identify the home gateway, such as serial number and the IP address of the home gateway, so that the access control server may know the basic information of the home gateway. Also, depending on the requirement, the registration information may include the information required for secured communication between the access control server and the home gateway manager, such as home information administrator&#39;s ID, password and key. 
       FIG. 4  shows a schematic view of an exemplary access control system based on hierarchical key, consistent with certain disclosed embodiments of the present invention. As shown in  FIG. 4 , the access control system may comprises an access control server  401 , a home gateway  403 , and a plurality of sensor nodes  1 - n  deployed in a sensing network  420 .  FIG. 5  shows an exemplary operation flow of the access control system, consistent with certain disclosed embodiments of the present invention. 
     The following description refers to both  FIG. 4  and  FIG. 5 . When home information administrator  430  registers the related information of home gateway  403  to access control server  401 , home information administrator  430  may use home gateway  403  as the starting point for establishing access control and establish a hierarchical key structure  403   a  in home gateway  403 , as shown in step  510 , so that sensing network  420  may conveniently perform key management and rights classification. 
     After that, home information administrator  430  configures the user access control rights and authorization verifier in access control server  401  according to the established hierarchical key structure  403   a , as shown in step  520 ; and keeps the user password related information and access rights information in access control server  401 . 
     As shown in step  530 , when user  405  logins in to access control server  401  to request access  405   a , access control server  401  issues a ticket ω and a token β according to the rights verifier corresponding to user  405 . 
     As shown in step  540 , user  405  and home gateway  403  establishes a one-time communication key through the exchange of the ticket and the token so as to allow user  405  to access information on sensor nodes  1 - n.    
     Home gateway  403  may have a key management table  403   b  to record the access rights established according to hierarchical key structure  403   a , the ID code and corresponding access rights of a plurality of sensor nodes, and highest priority key. Access control server  401  and home gateway  403  each may have an authentication table, i.e., authentication table  401   a  and authentication table  403   c . Authentication table  401   a  of access control server  401  records the registered user ID (UID), user password and related verifier, and related verifier of user rights. Authentication table  403   c  of home gateway  403  is a rights key table for recording registered UID and related information of user rights, such as encrypted user rights. 
       FIG. 6  shows an exemplary schematic view of the elements and the access control service of the access control server  401  and the home gateway  403 , consistent with certain disclosed embodiments of the present invention. Referring to  FIG. 6 , home gateway  403  includes a hierarchical key module  603  and a ticket verification and message processing center  613 . Hierarchical key module  603  establishes rights key  603   a  and sensor authentication key  603   b . Rights key  603   a  is for access control configuration and sensor authentication key  603   b  is for encryption of information communicated between home gateway  403  and sensor node. Ticket verification and message processing center  613  is responsible for authenticating the user logging in with the ticket. 
     Access control server  401  includes a verifier authorization proxy module  601  and a user verification/authorization module with ticket/token exchange center  611 . Verifier authorization proxy module  601  enables the home information administrator to configure the access rights of the users and stores the access rights verifier. User verification/authorization module with ticket/token exchange center  611  coordinates and establishes the session key for the user and the home gateway so that legitimate user may let the home gateway know the legitimacy of the user through ticket and token comparison when requesting access authorization from the home gateway. 
     Therefore, in the access control mechanism based on hierarchical key of the present invention, home information manager  430  is responsible for constructing the overall access control policy, including establishing hierarchical key, assigning sensor node key for sensing network, and configuring access control rights. User  405  may use any remote device to access information on any sensor node on a sensing network. Access control server  401  needs to authenticate the user login ID. Access control server  401  stores access rights information and the related information of user password, and may establish a session key to be used as a shared key between the user and home gateway  403 . Home gateway  403  may collect the information of sensor nodes  1 - n  on sensing network  420 , and then displays the information on a screen. Home gateway  403  needs to perform initialization and authentication on sensor nodes of sensing network  420 . Sensor nodes may detect the changes in the environment, such as temperature, humidity, real-time video surveillance, and so on, and transmit the information through other nodes on the sensing network to home gateway  403 . 
     Sensor nodes on sensing network  420  may be grouped into different types according to the environmental variables detected, such as three different types for detecting temperature, humidity and real-time video surveillance, respectively. In this manner, the user has a set of three ID/passwords for identification. 
     The following further explains the establishing of hierarchical key structure and the operation of  FIG. 5 .  FIG. 7  shows an exemplar established by a hierarchical key structure, consistent with certain disclosed embodiments of the present invention. In the exemplar of  FIG. 7 , there are  6  sensor nodes on the sensing network, classified as three types of sensor nodes, such as sensor nodes CAM 1  and CAM 2  video surveillance for sensing surrounding environment, sensing nodes CO 1  and CO 2  for sensing carbon-monoxide (CO) and carbon-dioxide (CO 2 ), and sensor nodes TEM 1  and TEM 2  for sensing temperature. Each sensor node has a unique node identifier NID, and the NID for the 6 sensor nodes are NID 1 -NID 6 , respectively. There are three levels in the hierarchical key structure, marked as level  0 , level  1 , and level  2 , respectively. Each level has a rights key, and the level rights key K LV  for each level is K 0 , K 1  and K 2 , respectively. 
     Sensor nodes CAM 1  and CAM 2  belong to level  0 , sensing nodes CO 1  and CO 2  belong to level  1  and sensor nodes TEM 1  and TEM 2  belong to level  2 . Each sensor node has own verification key NK, and NK for each sensor node is marked as NK 1 -NK 6 , respectively. 
     According to the establishing of hierarchical key structure of the present invention, the rights key of lower level, such as level  1 , may be generated by the rights key of higher level, such as level  0 , and the verification key of each sensor node may be generated from the rights key of the level for the sensor node and the NID of the sensor node.  FIG. 8  shows an exemplary flowchart illustrating how to establish a hierarchical key structure, consistent with certain disclosed embodiments of the present invention. 
     Referring to the exemplary flowchart shown in  FIG. 8 , as shown in step  810 , whether the rights key for the highest level exists is checked. If so, step  820  is to verify whether the verification key of each sensor node is established; otherwise, step  830  is to establish the rights key for the highest level and return to step  820 . 
     When the verification key of each sensor node is established, as shown in step  840 , the key establishing process is terminated; otherwise, as shown in step  850 , the NID and the level of the next sensor node without an established verification key, system record (NID, level), is inputted, the verification key of the sensor node is computed, and the verification key is assigned to the sensor node, and return to step  820 . 
       FIG. 9  shows exemplary contents of a key management table of home gateway  403  according to  FIG. 7 , consistent with certain disclosed embodiments of the present invention. As shown in  FIG. 9 , key management table only records the rights key 101001001010 of the highest level in the hierarchical key structure and the NID of each node. The NK of each sensor node may be computed from the key management table. The verification key of each sensor node is computed by home information administrator  430  during the node initialization, and used as an encryption key for information exchange between home gateway  403  and sensor node. The relation between rights key or verification key is established with a non-invertible function, such as hash function. 
     The following describes how to generate rights key of each level and verification key of each sensor node using the key management table of  FIG. 9  as an example. In  FIG. 9 , rights key K 0  of level  0  (highest level) is 101001001010. Sensor nodes CAM 1  and CAM 2  of level  0  have verification keys NK 1 =Hash(NID 1 , K 0 ) and NK 2 =Hash(NID 2 , K 0 ), respectively. Rights key K 1  of level  1  is obtained from Hash(K 0 ), and the verification keys of sensing nodes CO 1  and CO 2  are NK 3 =Hash(NID 3 , K 1 ) and NK 4 =Hash(NID 4 , K 1 ), respectively. Similarly, rights key K 2  of level  2  is obtained from Hash(K 1 ), and the verification keys of and sensor nodes TEM 1  and TEM 2  are NK 5 =Hash(NID 5 , K 2 ) and NK 6 =Hash(NID 6 , K 2 ), respectively. Hence, the key management table of home gateway  403  only needs to record the rights key of the highest level and NID of each sensor node. Because the key management table of the home gateway does not need to record the verification key of each sensor node and rights key for each level, the space is saved and security improved. 
     In addition, the user may use a unique ID and password on a home gateway to access information of a plurality of sensor nodes deployed on the sensing network. Similarly, the user may use the same ID and password for a plurality of home gateways so as to reduce the load of access control server  401  in coordinating session keys. 
     When home hierarchical key is configured and deployed to sensor nodes, the following describes how to establish user ID, password and access rights with access control server based on the hierarchical key.  FIG. 10  shows an exemplary flowchart illustrating how to establish user access rights, consistent with certain disclosed embodiments of the present invention. 
     Referring to  FIG. 10 , step  1010  is to provide a unique ID (UID) and password of a user and the user access rights to access control server  401 . Step  1020  is for access control server  401  to verify the uniqueness of the user based on the UID and password. After verifying the uniqueness, step  1030  is for access control server  401  to pass the UID and user access rights to home gateway  403 . Accordingly, step  1040  is for home gateway  403  to reply a rights verifier to access control server  401 . Step  1050  is for access control server  401  to hide the rights verifier and use it for authorizing the user to access home gateway  403 . 
     In step  1040 , home gateway  403  may use a non-invertible function to compute the rights verifier and to store the matching of UID and the rights verifier in authentication table  403   c . In step  1050 , access control server  401  may use a non-invertible function to hide the rights verifier and stores the hidden verifier into authentication table  401   a.    
       FIG. 11  shows an exemplar illustrating how to establish user access rights, consistent with certain disclosed embodiments of the present invention. Referring to  FIG. 11 , user  450  may login to access control server  401  with the UID and password of home information administrator  430  obtained through registration so that access control server  401  knows home gateway  403  intends to register a user. The home information administrator inputs the unique UID A  and password PW A  of user A, and user rights H to access control server  401 . After access control server  401  receives the input, the uniqueness of the user is verified. If user A already exists, access control server  401  will add home gateway  403  currently used as user registration to the UID A  of user A. 
     After verifying the uniqueness, access control server  401  passes UID and access rights H to home gateway  403 . Home gateway  403  updates its authentication table  403   c  accordingly, and passes the related verifier of the rights key corresponding to the user access rights to access control server  401 . The verifier is obtained by performing a one-way computation, such as Hash function H 1 , on UID and rights key K H  corresponding to the user access rights. Access control server  401 , after receiving the verifier, stores the related information in authentication table  401   a . The related information includes, such as, user ID, hidden password, serial number of home gateway, and the hidden verifier corresponding to the verifier. The related information is used in future authentication by access control server  401  when the user access information from home gateway. 
     After the user access rights are established, the user only needs to remember the unique ID and password for future remote access authentication. Access control server  401  only needs to store the matching user ID/password and verifier, instead of using brutal force method to establish access control table. 
     After accomplishing the establishing of user access rights, when a user remotely logs in to access control server  401  for requesting an access, access control server  401  uses the verifier corresponding to the user to issue an access authorization ticket and uses a token to notify home gateway  403  of the user access request. The user and home gateway  403  may use the ticket and the token to compute the session key for the present session for one-time encryption and authentication of communication information. In other words, when the user remotely logs in to access control server  401  for access, the user remote access is divided into two stages. The first stage is the user requests authentication and authorization from access control server  401 , and the second stage is the user and home gateway  403  establish communication keys. The following describes the two stages. 
     In the first stage, the relation between the user and the access control server is entirely based on the authentication key exchange protocol to realize the user authentication/authorization.  FIG. 12  shows an exemplary flowchart illustrating the operation of an authentication key exchange method when a user requests authentication/authorization to the access control server, consistent with certain disclosed embodiments of the present invention. 
     As shown in  FIG. 12 , the user provides a unique ID (UID) and a one way computed number m from hidden random number x to access control server  401 , as shown in step  1210 . Accordingly, access control server  401  finds a corresponding access rights verifier, computes a ticket pair (ω, μ) and a token β through m and another random number y, and transmits token β to home gateway  403 , as shown in step  1220 . After receiving verification from home gateway  403 , access control server  401  transmits ticket pair (ω, μ) to the user, as shown in step  1230 . After verifying the identification of access control server  401  through m, μ, β and a non-invertible computation, the user accepts ticket ω, as shown in step  1240 . 
     According to the operation flow of  FIG. 12 ,  FIG. 13  shows an exemplar illustrating how to accomplish authentication/authorization between the user and the access control serve through the establishment of mathematic models, consistent with certain disclosed embodiments of the present invention. In the exemplar of  FIG. 13 , user A uses UID A  and PW A  to login to access control server  401 , marked as  1310 . Hidden random number m of step  1210  of  FIG. 12  may be constructed with the following model: randomly selecting an x from a Z p * sub-group G, letting m as g x , where Z p * indicating the set of all elements mutually primed to p in modulus p, and g is a constructing element in G. 
     The access rights verifier of step  1220  may be found in authentication table  401   a  of access control server  401  through lookup. The corresponding verifier found in authentication table  401   a  may be used with another random number y randomly selected in sub-group G to construct a mathematic model to compute the ticket pair (ω, μ). Access control server  401  may also obtain token β through a mathematic model β=m ν . The mathematic model is marked as  1320 . 
     After access control server  401  transmits ticket pair (ω, μ) to the user A, user A uses X and password to compute s, assigns α=μ s , and transmits ν 1 =H 2 (m, α) to access control server  401 , marked as  1340   a . Access control server  401  check whether ν 1  against ν′ 1 = 2 (m, β) or not, marked as  1340   b . If ν 1 =ν′ 1  is true, it means that access control server  401  authenticates the identity of user A. Access control server  401  then computes ν 2 =H 2 (μ, β) and transmits to user A, marked as  1341   a . User A computes ν′ 2 =H 2 (μ, α) and check whether ν 2 =ν′ 2  or not, marked as  1341   b . If ν 2 =ν′ 2  is true, it means that user A authenticates the identity of access control server  401 . In this manner, user A and access control server  401  accomplish mutual authentication, and user A also receives ticket ω from access control server  401 . 
     In other words, the user and the access control server use the authenticated key exchange protocol as a base to realize the user remote access. 
     After accomplishing mutual authentication between user A and access control server  401  and user A receiving ticket ω from access control server  401 , the user remote access enters the second stage; that is, the stage for the user and home gateway  403  to establish communication key.  FIG. 14  shows an exemplary schematic view illustrating the operation of establishing communication key between the user and the home gateway  403 , consistent with certain disclosed embodiments of the present invention. 
     Referring to  FIG. 14 , access control server  401  transmits token pair (UID A , β) to home gateway  403 , marked as  1410 . Home gateway  403  computes session key SK by SK=β H   1   (UID   A   ,K   H   ) , marked as  1420   a . User A may also use ticket ω from access control server  401  and selected random number x to compute SK=ω X , marked as  1420   b . According to the above computation, the session keys established by user A and home gateway  403  are the same. 
     Then, marked as  1430   a , the command message transmitted by user A to home gateway  403  will use session key SK as encryption key, represented as E sk (command). Similarly, marked as  1430   b , the answer from home gateway  403  to user is also encrypted with SK as key, represented as E sk (answer). In this manner, the secured communication channel is established between the user and the home gateway. 
     It is worth noting that the ticket and the token generated by the access control server in the present invention may be transmitted without encryption. Even when the hacker has ticket ω, the hacker cannot correctly compute the session key. Hence, the disclosed exemplary embodiments of the present invention may reduce the load in deployed system. 
     In summary, the disclosed exemplary embodiments of the present invention provide an access control system and method based on hierarchical key, and an authentication key exchange method thereof. The access control mechanism enables the home gateway to provide different security levels for a plurality of sensor nodes in a sensing network through a hierarchical key structure, and flexibly classify and manage home sensing network keys. Based on the hierarchical key structure, the access control server needs not to store home keys directly. Instead, the home gateway may simply configure the user access rights on access control server to avoid the leakage of information stored on the access control server. The user may use the unique ID and password to remotely access information of a plurality of sensor nodes through a home gateway. Similarly, the user may use a group of IDs/passwords to access information through a plurality of home gateways to reduce the computation load of access control server when coordinating session keys. 
     In the exemplary embodiments of the present invention, the user and the access control server use authentication key exchange protocol as a base to realize the user remote access and reduce the load of deployed system. 
     Although the present invention has been described with reference to the disclosed exemplary embodiments, it will be understood that the invention is not limited to the details described thereof. Various substitutions and modifications have been suggested in the foregoing description, and others will occur to those of ordinary skill in the art. Therefore, all such substitutions and modifications are intended to be embraced within the scope of the invention as defined in the appended claims.