Abstract:
A multi-mode cryptographic token that has at least one mode that allows for a certain period of time or number of operations to pass before requiring a user to logon. A predefined cryptographic operation is performed in each mode. Each mode has a predetermined expiration period or number of operations after which the most recent logon is no longer valid. The expiration date is compared with the present time obtained from the authenticator which requests the operation, or checked by the internal Mode Decrementing Counter, respectively.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS  
       [0001]     Not Applicable  
       FEDERALLY SPONSORED RESEARCH  
       [0002]     Not Applicable  
       SEQUENCE LISTING OR PROGRAM  
       [0003]     Not Applicable  
       BACKGROUND OF THE INVENTION—FIELD OF INVENTION  
       [0004]     This invention relates to authentication token devices such as Integrated Circuit (IC) cards, Universal Serial Bus (USB) keys, Biometric Authentication devices, Remote Access Key Tokens, or Cellular Phones.  
       BACKGROUND OF THE INVENTION  
       [0005]     This invention provides multiple authentication modes for authentication devices such as IC Cards, USB keys, Biometric Authentication devices, Remote Access Key Tokens, or Cellular Phones depending on the situation.  
         [0006]     Current conventional authentication token devices have at most two modes. One mode does not require a Personal Identification Number (PIN), Password or Biometrics such as a fingerprint or iris.  
         [0007]     The other mode requires a PIN, Password or Biometrics at every event.  
         [0008]     For many applications, it is inconvenient to only have these two modes available.  
         [0009]     For example,  
         [0010]     many companies would like employees to use a single IC card to pass through the physical gates, access computers, access the company&#39;s computer servers, access high security rooms, make small payments at the company cafeteria or make authorizations using digital signatures.  
         [0011]     Each of these applications requires a different level of security and increasing security decreases user convenience.  
       SUMMARY  
       [0012]     The object of this invention, Multi-Mode Token, is to provide at least one mode that allows for a certain period of time or number of operations to pass before requiring a user to logon in order to balance security and convenience, solving the aforementioned problem [005].  
     
    
     BRIEF DESCRIPTION OF THE PROCESS FLOW AND TABLES—FIGURES  
       [0013]      FIG. 1  is a table of the notation used in this application.  
         [0014]      FIG. 2  is the formulae of this application.  
         [0015]      FIG. 3  is a block diagram of the system of this invention.  
         [0016]      FIG. 4  is an example of the modes of this invention, Multi-Mode Token.  
         [0017]      FIG. 5  is a table of Register and Counter values in a Multi-Mode Token.  
         [0018]      FIG. 6  is a table of the basic user data stored on a Multi-Mode Token.  
         [0019]      FIG. 7  is an example of multi-mode settings.  
         [0020]      FIG. 8A  is the initialization flow of a Multi-Mode Token.  
         [0021]      FIG. 8B  is the initialization flow of a Multi-Mode Token continued.  
         [0022]      FIG. 9  is the flow of Multi-Mode Token logon.  
         [0023]      FIG. 10  is the flow of mode  1  operation.  
         [0024]      FIG. 11  is the flow of mode  2 , authentication.  
         [0025]      FIG. 12  is the flow of mode  2 , decryption.  
         [0026]      FIG. 13  is the flow of mode  2 , payment.  
         [0027]      FIG. 14  is the flow of mode  3  payment/authorization  
         [0028]      FIG. 15  is the flow of mode  4  payment/authorization.  
     
    
     DETAILED DESCRIPTION  
       [0029]     Notation  
         [0030]      FIG. 1  outlines the notation used in this application. Bold uppercase letters represent entity names such as A, B, or items such as an ID# N, keys C, D, E or times TP, TL. Lowercase bold suffixes signify a relation to the relative entity.  
         [0031]     Formulae  
         [0032]      FIG. 2  lists all formulas used in this application.  
         [0033]     System Block Diagram  
         [0034]      FIG. 3  provides an embodiment of the system of this invention in the form of a block diagram.  
         [0035]     This system includes at least one authenticator module Aj ( 312 ) at a local system terminal J ( 310 ) and at least one authentication token Bi ( 322 ) owned by user I ( 320 ) and a certificate module Ao ( 302 ) at the system Authority O ( 300 ). Ao and Aj have a token interface.  
         [0036]     User I can input his/her unique feature Fi into the token Bi via an input device ( 330 ). The unique feature Fi might be F 1   i : the user&#39;s PIN or password, or F 2   i : a biometric feature such as a fingerprint, hand shape, iris, face or voice.  
         [0037]     In most cases, the input device ( 330 ) is provided by Terminal J, but some tokens include an integrated biometric sensor or keypad for PIN input.  
         [0038]     Conventional System  
         [0039]     Conventional token authentication systems have only two modes.  
         [0040]     The first mode is used for relatively low security access and does not require users to log on to the token.  
         [0041]     The second mode is used for higher security access and requires users to log on to the token using a unique feature Fi, such as a PIN, password or biometrics, at every session.  
         [0042]     Examples of Problems with the Conventional System 
        a) Employees must possess a token in order to pass through the company entrance or parking gate.      It is too risky for employees to be allowed to pass through the gates using only a token because the token might be lost or stolen.      In this case, it is necessary to have at least a minimal relationship between users and their tokens.      But if all employees are required to log on at a physical gate, the gate would be jammed due to the time it takes for employees to log on.      In this case, one day is too short because every Monday morning the logon status of most tokens would be expired.      Therefore, it is desired that one logon be valid for one week at the company gates.     b) Employees use tokens to pay for meals at the company cafeteria.      Requiring employees to log on at each cafeteria counter is tedious and would cause lines to congest.      On the other hand, it is too risky to make logons valid for a week.      Therefore, it is desired that one logon be valid for one day in the company cafeteria.        
 
         [0053]     Multi-Mode Token  
         [0054]     In order to solve problems like the above [012], this invention provides a Multi-Mode Token.  
         [0055]     It is ideal to use one token for multiple applications which all require different access security levels.  
         [0056]      FIG. 4  illustrates one example of mode usage for multiple applications which all require different access security levels.  
         [0057]      FIG. 5  shows the necessary register and counters that are used in a Multi-Mode Token.  
         [0058]     The essential concept of this invention is to provide those registers in a token and to use them if required by the security level of the application.  
         [0059]      FIG. 6  shows a table of necessary data contained in a Multi-Mode Token.  
         [0060]     Some of this data may be omitted depending on the system in which the token is used. The following sections describe how a token obtains and uses this data. The common key C, private decryption key D, private signing key S, hash value of the password H 1 , and the feature vector of biometrics H 2  are kept secret and are used only in certain modes.  
         [0061]     Mode Settings  
         [0062]      FIG. 7  provides a more detailed example of the mode settings seen in  FIG. 4 .  
         [0063]     Users are not required to log on to the token for mode  0  operation, in which the application obtains the non-secret information seen in  FIG. 6 .  
         [0064]     In the mode  1  operation for the relatively low security application, the common secret key C is used and user logon is required, which is valid for one week or for ten operations.  
         [0065]     In the mode  2  operation for the second-level security application, the private decryption key D is used and user logon is required, which is valid for one day or for five operations.  
         [0066]     In modes  1  and  2 , the relationship between the Expiration Date Condition 
 
 TP−TL≦TM   formula (203) 
 
 and the Access Times Condition 
 
G&gt;0  formula (204) 
 
 can be either the “OR” condition or the “AND” condition. 
 
         [0067]     In the mode  3  operation for the high-level security application, user logon is required for every operation using S since the maximum of the G 3  and G 4  counters is 1, which is reduced by 1 at each operation using D or S.  
         [0068]     In the mode  4  operation for the highest-level security application, two different types of logon, such as a password and fingerprint, are required for every operation using S.  
         [0069]     G 1 , G 2  and G 3  are reset to G max at every logon using F 1  or F 2 .  
         [0070]     G 4  is reset to 1 at every logon using F 2  after G 3  is reset by logging on with F 1 .  
         [0071]     Initialization  
         [0072]      FIG. 8A  shows the initialization flow of a token.  
         [0073]     Initialization is performed by the certificate module Ao at the System Authority or System Administrator O.  
         [0074]     Flow ( 800 )—In preparation, Ao generates a System Master Common Key Co and a signing key pair So, Vo.  
         [0075]     Flow ( 801 )—User Token Bi obtains a User Name, a hash value of User Password H 1   i , feature vectors of User Biometrics H 2   i  from User I by some secure means, and obtains ID# Ni and the initial Ci from Ao by some secure means.  
         [0076]     Flow ( 804 )—A session is setup between Ao and Bi.  
         [0077]     Depending on the situation, the old Ci may be used as the session key for all secure communication within the initial session.  
         [0078]     Flow ( 806 )—Bi requests a new Ci from Ao, sending Ni in order to validate the token.  
         [0079]     Flow ( 807 )—Ao derives a new Ci using 
 
 Ci=Co{Ni+TC}   formula (205) 
 
         [0080]     The expiration date TC of the key Ci is embedded into Ci itself so that Ci cannot be used after that date.  
         [0081]     Flows ( 808 ) and ( 809 )—Ci and TC are returned to and stored on Bi. Ci is used in mode 1.  
         [0082]     Flow ( 816 )—In the next initialization step, Bi sends Ni to Ao and requests an asymmetric key pair Di, Ei and its certificate LEi.  
         [0083]     Flow ( 817 )—Ao generates the asymmetric key pair Di, Ei and its certificate LEi using 
 
 LEi=So{Ni, Ei, TE}.   formula (207) 
 
         [0084]     As formula (207) shows, LEi is a certificate issued by Ao to authorize and validate Ni and Ei until the expiration date TE.  
         [0085]     Flow ( 818 )—Ao returns Ei, LEi and TE to Bi. Ao also returns Di to Bi in secure manner such as wrapping it with the session key. Di is also escrowed by Ao.  
         [0086]     Flow ( 819 )—Bi stores Ei, LEi, TE and Di and uses them for session key exchange, decryption of file encryption keys, authentication at physical gates, or micro payments.  
         [0087]     Flow ( 823 )—Bi itself generates a key pair Si, Vi.  
         [0088]     Si is a signing key and Vi is a verification key.  
         [0089]     Flow ( 826 )—Bi sends Ni and Vi to Ao and requests the certificate LVi.  
         [0090]     Flow ( 827 )—Ao calculates the certificate LVi using 
 
 LVi=So{Ni, Vi, TV}   formula (209) 
 
         [0091]     As formula (209) shows, LVi is a certificate issued by Ao to authorize and validate Ni and Vi until the expiration date TV.  
         [0092]     Flows ( 828 ) and ( 829 )—LVi and TV are returned to and stored on Bi. Si is used for important signing authorized by User I.  
         [0093]     TM, G max and other Mode settings are configured by either User I or System Administrator O, depending on the system.  
         [0094]     Token Logon  
         [0095]     Flow ( 902 )—When Bi requires user logon, it jumps from the original flow point to Flow ( 902 ).  
         [0096]     Flows ( 904 ), ( 906 ) and ( 907 )—After setting up a session, Bi requests that the Authentication Module or Application Module Aj of the Terminal J indicate “Logon (F 1 /F 2 )”.  
         [0097]     The logon is performed using password F 1 , biometrics F 2  or both depending on the required mode.  
         [0098]     Flow ( 910 )—According to the indication on the display of Terminal J, User I inputs his/her unique feature Fi via the input device ( 330 ).  
         [0099]     Flow ( 911 )—Bi verifies the user I&#39;s Unique Feature F 1   i  or F 2   i  using the stored User Authentication Reference H 1   i  (Hash Value of Password) or H 2   i  (Feature Vector of Biometrics).  
         [0100]     If Fi is accepted,  
         [0101]     Flow ( 912 ), ( 914 )—Bi sends a “Request Date” command to Aj and obtains the Present Date TP. This is a unique command not found in the conventional token command set.  
         [0102]     Flow ( 915 )—Bi resets all registers and counters as shown below:  
                                                               Log on   Time   Register   TL =   TP                           Mode   1   Counter   G1 =   G1 max = 10           Mode   2   Counter   G2 =   G2 max = 5           Mode   3   Counter   G3 =   G3 max = 1           Mode   4   Counter   G4 =   G4 max = 1                      
 
         [0103]     The Logon Time Register is used to check the expiration date.  
         [0104]     Mode Counters are used to count the number of operations. In modes  1  and  2 , the relationship between the Expiration Period and the Mode Counter is either the “OR” condition or the “AND” condition, depending on the system.  
         [0105]     Mode  1   
         [0106]     As described in [015] and  FIG. 7 , Mode  1  is used for relatively low security applications such as authorizing physical access through the company entrance or parking gate.  
         [0107]     The common secret key Ci is used for encryption or signing in Mode  1 .  
         [0108]      FIG. 10  shows an example of the main flow of Mode  1  operation.  
         [0109]     Flows ( 1003 ), ( 1004 ) and ( 1006 )—When User Token Bi needs to be authenticated, it sets up a session with Authentication Module Aj and sends its ID# Ni to Aj, requesting authentication.  
         [0110]     Flow ( 1007 )—Aj generates a challenge message Qi using 
 
 Qi=NR+TP   formula (211) 
 
 which comprises a random number NR and the present time TP. 
 
         [0111]     Flow ( 1008 )—Aj sends Qi to Bi and requests that Bi sign Qi using the common secret key Ci.  
         [0112]     Flow ( 1011 )—Bi checks to see if the present time is before the expiration date using 
 
 TP−TL≦TM 1     formula (203) 
 
 where 
        TP: Present Date     TL: The date of the last logon     TM 1 : Mode  1  expiration period        
 
         [0116]     Flow ( 1012 )—Bi also checks to see if the Mode  1  Counter G 1  has been exceeded using 
 
G 1 &gt;0  formula (204) 
 
         [0117]     Flow ( 1014 )—If TP−TL≦TM 1  and G 1 &gt;0, then Bi calculates the response message Ri using 
 
 Ri=Ci{Qi}.   formula (213) 
 
         [0118]     Flow ( 1015 )—Bi reduces the G 1  Counter value by 1.  
         [0119]     Flow ( 1016 )—Bi returns the response message Ri and the expiration date TC of Ci to Aj.  
         [0120]     Flow ( 1017 )—Aj derives the secret common key Ci of Bi using 
 
 Ci=Co{Ni+TC}   formula (205) 
 
 and verifies Qi with Ci using 
 
Ci{Ri}→Qi.  formula (214) 
 
         [0121]     Flow ( 1018 )—Aj sends the result to Bi: Accepted or Denied depending on the result of Flow ( 1017 ).  
         [0122]     In this example flow, the relationship between TM 1  and G 1  is the “AND” condition.  
         [0123]     However, the relationship between them can be the “OR” condition, or just one of them can be used, depending on the system requirement.  
         [0124]     Mode  2 , Authentication  
         [0125]     Mode  2  is used for mid-level security applications such as the decryption of a session key, decryption of a file encryption key, the signing of a challenge response of authentication, or the signing of micro payments.  
         [0126]     The private decryption key Di is used as a cryptographic key in Mode  2 .  
         [0127]      FIG. 11  shows an example of the main flow of a Mode  2  authentication operation.  
         [0128]     Flows ( 1103 ), ( 1104 ), ( 1106 ) and ( 1107 )—Up to Flow ( 1107 ), the flow is the same as in Mode  1 .  
         [0129]     Flow ( 1108 )—Aj requests that Bi sign the challenge message Qi using the private decryption key Di (instead of Ci as in Mode  1 ).  
         [0130]     Flows ( 1111 ), ( 1112 ), ( 1114 ) and ( 1115 )—These flows are the same as in Mode  1  except  
         [0131]     TM 2  is used instead of TM 1 ,  
         [0132]     G 2  is used instead of G 1 , and  
         [0133]     Di is used instead of Ci.  
         [0134]     Flow ( 1116 )—Bi returns the response message Ri and the certificate LEi of the public encryption key Ei (instead of TC as in Mode  1 ).  
         [0135]     Flow ( 1117 )—Aj verifies LEi using 
 
Vo{LEi}→Ni, Ei, TE  formula (208) 
 
 and verifies Qi using Ei and 
 
Ei{Ri}→Qi  formula (216) 
 
         [0136]     Flow ( 1118 )—Aj sends the result to Bi: Accepted or Denied depending on the result of Flow ( 1117 ).  
         [0137]     Mode  2 , Decryption  
         [0138]     This operation is used to decrypt a session key or unwrap a file encryption key.  
         [0139]     Flow ( 1202 )—An Application Module or Authentication Module Aj has Pi, the ciphertext of the session key or file key K encrypted by Ei using 
 
Pi=Ei{K}.  formula (217) 
 
         [0140]     Flow ( 1208 )—Aj sends Pi and the present time TP to Bi and requests that Bi decrypt Pi with Di.  
         [0141]     Flows ( 1211 ), ( 1212 ), ( 1214 ) and ( 1215 )—These flows are the same as in  FIG. 11  except  
         [0142]     Pi is used instead of Qi, and  
         [0143]     Mi is used instead of Ri.  
         [0144]     Flow ( 1216 )—Bi returns the plaintext Mi to Aj.  
         [0145]     In this case Mi is the key K.  
         [0146]     Mode  2 , Payment  
         [0147]     This operation is used to authorize a micro payment (e.g. less than $10).  
         [0148]     Flow ( 1302 )—Aj has a payment message (or its hash value) Mi which must be authorized by User I.  
         [0149]     Flow ( 1307 )—Aj generates a challenge message Qi using 
 
 Qi=Mi+TP   formula (212) 
 
         [0150]     These flows are the same is in  FIG. 11  except that the payment message Mi is used instead of a random number NR as in Flow ( 1107 ).  
         [0151]     Mode  3  Payment/Authorization  
         [0152]     Mode  3  is used for high security applications such as signing a payment or making an authorization which cannot be denied later.  
         [0153]     Flow ( 1402 )—Aj has a message (or its hash value) Mi which must be authorized by User I.  
         [0154]     Flow ( 1408 )—Aj sends Mi to Bi and requests that Bi sign on Mi with the signing key Si.  
         [0155]     Flow ( 1409 )—Bi checks the bit length of Mi which should be less than or equal to 64 bits.  
         [0156]     If Mi is greater than 64 bits, then this operation should be performed in Mode  4 .  
         [0157]     Flow ( 1410 )—Bi jumps to flow ( 902 ) in order to initiate user logon.  
         [0158]     Flow ( 1412 )—Bi checks the value of the Mode  3  Counter G 3 . This should be G 3  max (=1) after Flows ( 902 ) through ( 915 ).  
         [0159]     Flow ( 1414 )—Mi is signed with Si using 
 
Ui=Si{Mi}.  formula (219) 
 
         [0160]     Flow ( 1415 )—the value of the G 3  counter is reduced by 1 so that G 3  becomes 0 in this case.  
         [0161]     Flow ( 1416 )—Bi returns Ui and the certificate LVi to Aj.  
         [0162]     Flow ( 1417 )—Aj verifies LVi and Ui using 
 
Vo{LVi}→Ni, Vi, TV  formula (210) 
 
 and 
 
Vi{Ui}→Mi  formula (220) 
 
         [0163]     Flow ( 1418 )—Aj sends the result to Bi: Accepted or Denied depending on the result of Flow ( 1417 ).  
         [0164]     Mode  4  Payment/Authorization  
         [0165]     Mode  4  is used for the applications that require the highest levels of security such as authorization of a large payment or of an important document such as a contract. The flow of  FIG. 15  is as same as in  FIG. 14 . The only differences are that two logons by F 1  and F 2  are required instead of one as in Flow ( 1510 ), G 4  is used instead of G 3  as in Flow ( 1512 ), and both the G 3  and G 4  counters are cleared.  
         [0166]     Administrator Mode  
         [0167]     In addition to the above user modes available in a Multi-Mode Token, an administrator mode can be added, in which only an administrator or the Authenticator Ao at System Authority can initiate the mode in order to modify system properties such as the value of G max, the Expiration period, etc.  
         [0168]     The User Token Bi can authenticate the legitimacy of Ao or Aj via the standard challenge/response procedure using Vo.