Abstract:
A system, apparatus, method, and machine readable medium are described for authentication with asymmetric cryptography. For example, a method in accordance with one embodiment comprises: generating a challenge at a server; encrypting the challenge at the server using a public encryption key; transmitting the encrypted challenge to a connected device having a first connection over a network with the server; providing the encrypted challenge from the connected device to a user device; decrypting the encrypted challenge using a private encryption key corresponding to the public encryption key to determine the challenge; converting the challenge to a converted challenge, the converted challenge having a different format than the original challenge; receiving the converted challenge at the connected device and providing the converted challenge from the connected device to the server; and validating the converted challenge at the server to authenticate the user.

Description:
BACKGROUND 
     Field of the Invention 
       [0001]    This invention relates generally to the field of data processing systems. More particularly, the invention relates to a system and method for implementing a one-time password using asymmetric cryptography. 
       Description of Related Art 
       [0002]    Systems have also been designed for providing secure user authentication over a network using biometric sensors. In such systems, the a score generated by an authenticator, and/or other authentication data, may be sent over a network to authenticate the user with a remote server. For example, Patent Application No. 2011/0082801 (“&#39;801 Application”) describes a framework for user registration and authentication on a network which provides strong authentication (e.g., protection against identity theft and phishing), secure transactions (e.g., protection against “malware in the browser” and “man in the middle” attacks for transactions), and enrollment/management of client authentication tokens (e.g., fingerprint readers, facial recognition devices, smartcards, trusted platform modules, etc). 
         [0003]    The assignee of the present application has developed a variety of improvements to the authentication framework described in the &#39;801 application. Some of these improvements are described in the following set of US Patent Applications, which are assigned to the present assignee: Ser. No. 13/730,761, Query System and Method to Determine Authentication Capabilities; Ser. No. 13/730,776, System and Method for Efficiently Enrolling, Registering, and Authenticating With Multiple Authentication Devices; Ser. No. 13/730,780, System and Method for Processing Random Challenges Within an Authentication Framework; Ser. No. 13/730,791, System and Method for Implementing Privacy Classes Within an Authentication Framework; Ser. No. 13/730,795, System and Method for Implementing Transaction Signaling Within an Authentication Framework; and Ser. No. 14/218,504, Advanced Authentication Techniques and Applications (hereinafter “&#39;504 Application”). These applications are sometimes referred to herein as the (“Co-pending Applications”). 
         [0004]    Briefly, the Co-Pending applications describe authentication techniques in which a user enrolls with authentication devices (or Authenticators) such as biometric devices (e.g., fingerprint sensors) on a client device. When a user enrolls with a biometric device, biometric reference data is captured (e.g., by swiping a finger, snapping a picture, recording a voice, etc). The user may subsequently register/provision the authentication devices with one or more servers over a network (e.g., Websites or other relying parties equipped with secure transaction services as described in the Co-Pending Applications); and subsequently authenticate with those servers using data exchanged during the registration process (e.g., cryptographic keys provisioned into the authentication devices). Once authenticated, the user is permitted to perform one or more online transactions with a Website or other relying party. In the framework described in the Co-Pending Applications, sensitive information such as fingerprint data and other data which can be used to uniquely identify the user, may be retained locally on the user&#39;s authentication device to protect a user&#39;s privacy. 
         [0005]    The &#39;504 Application describes a variety of additional techniques including techniques for designing composite authenticators, intelligently generating authentication assurance levels, using non-intrusive user verification, transferring authentication data to new authentication devices, augmenting authentication data with client risk data, and adaptively applying authentication policies, and creating trust circles, to name just a few. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0006]    A better understanding of the present invention can be obtained from the following detailed description in conjunction with the following drawings, in which: 
           [0007]      FIGS. 1A-B  illustrate two different embodiments of a secure authentication system architecture; 
           [0008]      FIG. 2  is a transaction diagram showing how keys may be provisioned into authentication devices; 
           [0009]      FIG. 3  illustrates a transaction diagram showing remote authentication; 
           [0010]      FIG. 4  illustrates a connected device configured between a relying party authentication server and a user device; 
           [0011]      FIG. 5  illustrates one embodiment of the invention for implementing a one-time-password using asymmetric cryptography; 
           [0012]      FIG. 6A-B  illustrate additional details of one embodiment of the authentication server; 
           [0013]      FIG. 7  illustrates additional details of one embodiment of the user device; 
           [0014]      FIG. 8  illustrates an exemplary data processing architecture for implementing the clients and/or servers described herein; and 
           [0015]      FIG. 9  illustrates another exemplary data processing architecture for implementing the clients and/or servers described herein; 
       
    
    
     DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS 
       [0016]    Described below are embodiments of an apparatus, method, and machine-readable medium for implementing advanced authentication techniques and associated applications. Throughout the description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, to one skilled in the art that the present invention may be practiced without some of these specific details. In other instances, well-known structures and devices are not shown or are shown in a block diagram form to avoid obscuring the underlying principles of the present invention. 
         [0017]    The embodiments of the invention discussed below involve authentication devices with user verification capabilities such as biometric modalities or PIN entry. These devices are sometimes referred to herein as “tokens,” “authentication devices,” or “authenticators.” While certain embodiments focus on facial recognition hardware/software (e.g., a camera and associated software for recognizing a user&#39;s face and tracking a user&#39;s eye movement), some embodiments may utilize additional biometric devices including, for example, fingerprint sensors, voice recognition hardware/software (e.g., a microphone and associated software for recognizing a user&#39;s voice), and optical recognition capabilities (e.g., an optical scanner and associated software for scanning the retina of a user). The user verification capabilities may also include non-biometric modalities, like PIN entry. The authenticators might use devices like trusted platform modules (TPMs), smartcards and secure elements for cryptographic operations and key storage. 
         [0018]    In a mobile biometric implementation, the biometric device is remote from the relying party. As used herein, the term “remote” means that the biometric sensor is not part of the security boundary of the computer it is communicatively coupled to (e.g., it is not embedded into the same physical enclosure as the relying party computer). By way of example, the biometric device may be coupled to the relying party via a network (e.g., the Internet, a wireless network link, etc) or via a peripheral input such as a USB port. Under these conditions, there may be no way for the relying party to know if the device is one which is authorized by the relying party (e.g., one which provides an acceptable level of authentication strength and integrity protection) and/or whether a hacker has compromised or even replaced the biometric device. Confidence in the biometric device depends on the particular implementation of the device. 
         [0019]    The term “local” is used herein to refer to the fact that the user is completing a transaction in person, at a particular location such as at an automatic teller machine (ATM) or a point of sale (POS) retail checkout location. However, as discussed below, the authentication techniques employed to authenticate the user may involve non-location components such as communication over a network with remote servers and/or other data processing devices. Moreover, while specific embodiments are described herein (such as an ATM and retail location) it should be noted that the underlying principles of the invention may be implemented within the context of any system in which a transaction is initiated locally by an end user. 
         [0020]    The term “relying party” is sometimes used herein to refer, not merely to the entity with which a user transaction is attempted (e.g., a Website or online service performing user transactions), but also to the secure transaction servers (sometimes referred to as “au implemented on behalf of that entity which may performed the underlying authentication techniques described herein. The secure transaction servers may be owned and/or under the control of the relying party or may be under the control of a third party offering secure transaction services to the relying party as part of a business arrangement. 
         [0021]    The term “server” is used herein to refer to software executed on a hardware platform (or across multiple hardware platforms) that receives requests over a network from a client, responsively performs one or more operations, and transmits a response to the client, typically including the results of the operations. The server responds to client requests to provide, or help to provide, a network “service” to the clients. Significantly, a server is not limited to a single computer (e.g., a single hardware device for executing the server software) and may, in fact, be spread across multiple hardware platforms, potentially at multiple geographical locations. 
       Exemplary System Architectures and Transactions 
       [0022]      FIGS. 1A-B  illustrate two embodiments of a system architecture comprising client-side and server-side components for registering/provisioning authenticating devices (also sometimes referred to as “provisioning”) and authenticating a user. The embodiment shown in  FIG. 1A  uses a web browser plugin-based architecture for communicating with a website while the embodiment shown in  FIG. 1B  does not require a web browser. The various techniques described herein such as enrolling a user with authentication devices, registering/provisioning the authentication devices with a secure server, and verifying a user may be implemented on either of these system architectures. Thus, while the architecture shown in  FIG. 1A  is used to demonstrate the operation of several of the embodiments described below, the same basic principles may be easily implemented on the system shown in  FIG. 1B  (e.g., by removing the browser plugin  105  as the intermediary for communication between the server  130  and the secure transaction service  101  on the client). 
         [0023]    Turning first to  FIG. 1A , the illustrated embodiment includes a client  100  equipped with one or more authentication devices  110 - 112  (sometimes referred to in the art as authentication “tokens” or “Authenticators”) for enrolling and verifying an end user. As mentioned above, the authentication devices  110 - 112  may include biometric device such as fingerprint sensors, voice recognition hardware/software (e.g., a microphone and associated software for recognizing a user&#39;s voice), facial recognition hardware/software (e.g., a camera and associated software for recognizing a user&#39;s face), and optical recognition capabilities (e.g., an optical scanner and associated software for scanning the retina of a user) and support for non-biometric modalities, such as PIN verification. The authentication devices might use trusted platform modules (TPMs), smartcards or secure elements for cryptographic operations and key storage. 
         [0024]    The authentication devices  110 - 112  are communicatively coupled to the client through an interface  102  (e.g., an application programming interface or API) exposed by a secure transaction service  101 . The secure transaction service  101  is a secure application for communicating with one or more secure transaction servers  132 - 133  over a network and for interfacing with a secure transaction plugin  105  executed within the context of a web browser  104 . As illustrated, the Interface  102  may also provide secure access to a secure storage device  120  on the client  100  which stores information related to each of the authentication devices  110 - 112  such as a device identification code, user identification code, user enrollment data (e.g., scanned fingerprint or other biometric data) protected by he authentication device, and keys wrapped by the authentication device used to perform the secure authentication techniques described herein. For example, as discussed in detail below, a unique key may be stored into each of the authentication devices and used when communicating to servers  130  over a network such as the Internet. 
         [0025]    As discussed below, certain types of network transactions are supported by the secure transaction plugin  105  such as HTTP or HTTPS transactions with websites  131  or other servers. In one embodiment, the secure transaction plugin is initiated in response to specific HTML tags inserted into the HTML code of a web page by the web server  131  within the secure enterprise or Web destination  130  (sometimes simply referred to below as “server  130 ”). In response to detecting such a tag, the secure transaction plugin  105  may forward transactions to the secure transaction service  101  for processing. In addition, for certain types of transactions (e.g., such as secure key exchange) the secure transaction service  101  may open a direct communication channel with the on-premises transaction server  132  (i.e., co-located with the website) or with an off-premises transaction server  133 . 
         [0026]    The secure transaction servers  132 - 133  are coupled to a secure transaction database  120  for storing user data, authentication device data, keys and other secure information needed to support the secure authentication transactions described below. It should be noted, however, that the underlying principles of the invention do not require the separation of logical components within the secure enterprise or web destination  130  shown in  FIG. 1A . For example, the website  131  and the secure transaction servers  132 - 133  may be implemented within a single physical server or separate physical servers. Moreover, the website  131  and transaction servers  132 - 133  may be implemented within an integrated software module executed on one or more servers for performing the functions described below. 
         [0027]    As mentioned above, the underlying principles of the invention are not limited to a browser-based architecture shown in  FIG. 1A .  FIG. 1B  illustrates an alternate implementation in which a stand-alone application  154  utilizes the functionality provided by the secure transaction service  101  to authenticate a user over a network. In one embodiment, the application  154  is designed to establish communication sessions with one or more network services  151  which rely on the secure transaction servers  132 - 133  for performing the user/client authentication techniques described in detail below. 
         [0028]    In either of the embodiments shown in  FIGS. 1A-B , the secure transaction servers  132 - 133  may generate the keys which are then securely transmitted to the secure transaction service  101  and stored into the authentication devices within the secure storage  120 . Additionally, the secure transaction servers  132 - 133  manage the secure transaction database  120  on the server side. 
         [0029]    Certain basic principles associated with remotely provisioning authentication devices and authenticating with a relying party will be described with respect to  FIGS. 2-5 , followed by a detailed description of embodiments of the invention for establishing trust using secure communication protocols. 
         [0030]      FIG. 2  illustrates a series of transactions for provisioning authentication devices on a client (such as devices  110 - 112  on client  100  in  FIGS. 1A-B ). “Provisioning” is sometimes also referred to as “registering.” For simplicity, the secure transaction service  101  and interface  102  are combined together as authentication client  201  and the secure enterprise or web destination  130  including the secure transaction servers  132 - 133  are represented as a relying party  202 . 
         [0031]    During provisioning of an authenticator (e.g., a fingerprint authenticator, voice authenticator, etc), a key associated with the authenticator is shared between the authentication client  201  and the relying party  202 . Referring back to  FIGS. 1A-B , the key may be stored within the secure storage  120  of the client  100  and the secure transaction database  120  used by the secure transaction servers  132 - 133 . In one embodiment, the key is a symmetric key generated by one of the secure transaction servers  132 - 133 . However, in another embodiment discussed below, asymmetric keys are be used. In this embodiment, the public/private key pair may be generated by the secure transaction servers  132 - 133 . The public key may then be stored by the secure transaction servers  132 - 133  and the related private key may be stored in the secure storage  120  on the client. In an alternate embodiment, the key(s) may be generated on the client  100  (e.g., by the authentication device or the authentication device interface rather than the secure transaction servers  132 - 133 ). The underlying principles of the invention are not limited to any particular types of keys or manner of generating the keys. 
         [0032]    A secure key provisioning protocol is employed in one embodiment to share the key with the client over a secure communication channel. One example of a key provisioning protocol is the Dynamic Symmetric Key Provisioning Protocol (DSKPP) (see, e.g., Request for Comments (RFC) 6063). However, the underlying principles of the invention are not limited to any particular key provisioning protocol. In one particular embodiment, the client generates a public/private key pair and sends the public key to the server, which may be attested with an attestation key. 
         [0033]    Turning to the specific details shown in  FIG. 2 , to initiate the registration process, the relying party  202  generates a randomly generated challenge (e.g., a cryptographic nonce) that must be presented by the authentication client  201  during device registration. The random challenge may be valid for a limited period of time. In response, the authentication client  201  initiates an out-of-band secure connection with the relying party  202  (e.g., an out-of-band transaction) and communicates with the relying party  202  using the key provisioning protocol (e.g., the DSKPP protocol mentioned above). To initiate the secure connection, the authentication client  201  may provide the random challenge back to the relying party  202  (potentially with a signature generated over the random challenge). In addition, the authentication client  201  may transmit the identity of the user (e.g., a user ID or other code) and the identity of the authentication device(s) to be provisioned registered (e.g., using the authentication attestation ID (AAID) which uniquely identify the type of authentication device(s) being provisioned). 
         [0034]    The relying party locates the user with the user name or ID code (e.g., in a user account database), validates the random challenge (e.g., using the signature or simply comparing the random challenge to the one that was sent), validates the authentication device&#39;s authentication code if one was sent (e.g., the AAID), and creates a new entry in a secure transaction database (e.g., database  120  in  FIGS. 1A-B ) for the user and the authentication device(s). In one embodiment, the relying party maintains a database of authentication devices which it accepts for authentication. It may query this database with the AAID (or other authentication device(s) code) to determine if the authentication device(s) being provisioned are acceptable for authentication. If so, then it will proceed with the registration process. 
         [0035]    In one embodiment, the relying party  202  generates an authentication key for each authentication device being provisioned. It writes the key to the secure database and sends the key back to the authentication client  201  using the key provisioning protocol. Once complete, the authentication device and the relying party  202  share the same key if a symmetric key was used or different keys if asymmetric keys were used. For example, if asymmetric keys were used, then the relying party  202  may store the public key and provide the private key to the authentication client  201 . Upon receipt of the private key from the relying party  202 , the authentication client  201  provisions the key into the authentication device (storing it within secure storage associated with the authentication device). It may then use the key during authentication of the user (as described below). In an alternate embodiment, the key(s) are generated by the authentication client  201  and the key provisioning protocol is used to provide the key(s) to the relying party  202 . In either case, once provisioning is complete, the authentication client  201  and relying party  202  each have a key and the authentication client  201  notifies the relying party of the completion. 
         [0036]      FIG. 3  illustrates a series of transactions for user authentication with the provisioned authentication devices. Once device registration is complete (as described in  FIG. 2 ), the relying party  201  will accept an authentication response (sometimes referred to as a “token”) generated by the local authentication device on the client as a valid authentication response. 
         [0037]    Turning to the specific details shown in  FIG. 3 , in response to the user initiating a transaction with the relying party  202  which requires authentication (e.g., initiating payment from the relying party&#39;s website, accessing private user account data, etc), the relying party  202  generates an authentication request which includes a random challenge (e.g., a cryptographic nonce). In one embodiment, the random challenge has a time limit associated with it (e.g., it is valid for a specified period of time). The relying party may also identify the authenticator to be used by the authentication client  201  for authentication. As mentioned above, the relying party may provision each authentication device available on the client and stores a public key for each provisioned authenticator. Thus, it may use the public key of an authenticator or may use an authenticator ID (e.g., AAID) to identify the authenticator to be used. Alternatively, it may provide the client with a list of authentication options from which the user may select. 
         [0038]    In response to receipt of the authentication request, the user may be presented with a graphical user interface (GUI) requesting authentication (e.g., in the form of a web page or a GUI of an authentication application/app). The user then performs the authentication (e.g., swiping a finger on a fingerprint reader, etc). In response, the authentication client  201  generates an authentication response containing a signature over the random challenge with the private key associated with the authenticator. It may also include other relevant data such as the user ID code in the authentication response. 
         [0039]    Upon receipt of the authentication response, the relying party may validate the signature over the random challenge (e.g., using the public key associated with the authenticator) and confirm the identity of the user. Once authentication is complete, the user is permitted to enter into secure transactions with the relying party, as illustrated. 
         [0040]    A secure communication protocol such as Transport Layer Security (TLS) or Secure Sockets Layer (SSL) may be used to establish a secure connection between the relying party  201  and the authentication client  202  for any or all of the transactions illustrated in  FIGS. 2-3 . 
       System and Method for Implementing a One-Time-Password Using Asymmetric Cryptography 
       [0041]    The embodiments of the invention described below include techniques for implementing a One-Time-Password (OTP) using asymmetric cryptography. OTP schemes are typically based on symmetric key cryptography where the client and server entities share a single symmetric key and derive the OTP using the same key. In contrast, the disclosed embodiments are based on asymmetric keys which allow the implementation of more secure servers without the need to store secrets. 
         [0042]    There are three types of One Time Passwords (OTP) schemes that are currently widely used: (1) time-based OTP (TOTP); (2) counter-based OTP; (3) challenge/response-based OTP. Current solutions use symmetric key based schemes for all of these types of OTPs. Under this scheme, an OTP device and the server are pre-provisioned with the same symmetric key. In response to an authentication event, the OTP device generates a special cryptographic response based on (1) time, (2) a built-in counter, or (3) a server-provided challenge and provides this response to the server for verification. The server then uses the same symmetric key to derive the same cryptographic value and compares it with the one provided by the OTP device. If these match, then the authentication is considered successful. 
         [0043]    One particular use case involves “offline” authentication which is applicable to scenarios where the OTP device does not have direct connectivity with the server. After an OTP device generates a cryptographic response it truncates the response into a 6-digit number which is then shown to the user. The user enters the 6-digit number into client device and the latter sends this number to server. The server then uses the same truncation algorithm to derive the same number. After the number is derived, it compares the derived number with the one generated by OTP device. However, since the server stores a secret key it is an attack target for hackers. Maintaining secret keys in the server typically requires the use of expensive hardware security modules (HSMs) in the data centers. 
         [0044]    One embodiment of the invention implements an OTP scheme which is based on asymmetric cryptography. The advantage of asymmetric cryptography is that the server will store a public key rather than a private key (such as symmetric key). This removes the burden of protecting the confidential properties of the key in the server and allows easier and more secure deployments. 
         [0045]      FIG. 4  provides an overview of a system architecture in accordance with one embodiment of the invention. In this embodiment, the user device  401  is the entity which stores a private key and generates authentication assertions and the connected device  410  is an entity that has connectivity with both a relying party authentication server  402  and a the user device  401 . By way of example, in one embodiment, the user device  401  may be a mobile device such as an iPhone™ or Android™ device and the connected device  410  may be a desktop computer, a point-of-sale (PoS) terminal, automatic teller machine (ATM), or any other device which has connectivity with the relying party authentication server  402 . 
         [0046]    In one embodiment, the authentication server  402  stores a public key corresponding to the private key stored by the user device  401 . The keys may be provisioned on the user device  401  and the authentication server  402  using the key provisioning techniques discussed above with respect to  FIG. 2  (e.g., using DSKPP or other key provisioning protocol). 
         [0047]    In one embodiment, the connectivity with user device  401  is one way; that is, the user device  401  can read messages from connected device  410  but cannot send messages back. For example, the connected device  410  may display a quick response (QR) code, barcode, or other optical code to convey information to the user device  401  (e.g., such as the encrypted challenge discussed below). The user device  401  may read and interpret the optical code using known techniques (e.g., capturing the optical code with a camera or scanner device). 
         [0048]    In an alternate embodiment, the connection between the user device  401  and connected device  410  is a bi-directional connection implemented using a local communication technology such as Near Field Communication (NFC), Bluetooth (e.g., Bluetooth Low Energy (BTLE)), or Wireless USB. 
         [0049]    In one embodiment, the relying party authentication server  402  is the entity that verifies cryptographic assertions generated by the user device  401 . However, the user device  401  does not need to have direct connectivity with the authentication server  402 . The embodiments of the invention include two phases: provisioning and authentication. In the provisioning phase, the user device  401  and authentication server  402  are provisioned with cryptographic keys (e.g., using key provisioning techniques such as shown in  FIG. 2 ). However, unlike existing OTP schemes, during provisioning the authentication server  402  is provided with a public key and the user device  401  is provided with a private key. 
         [0050]    Assuming that the user device  401  is already provisioned with a private key and the authentication server  402  is provisioned with the corresponding public key, one embodiment of the invention operates in accordance with the transaction diagram shown in  FIG. 5 . 
         [0051]    At  501 , the relying party authentication server  402  generates a random challenge (C) and encrypts it with the a public key corresponding to the private key stored on the user device  401 : EC=Encrypt (PublicKey, C), where C is the random challenge and EC is the encrypted challenge. The authentication server  402  stores C in its storage and sends the EC to the connected device  410  which communicates the EC to the user device  401  as illustrated. 
         [0052]    At  502 , the user device  401  decrypts EC with its private key and obtains the random challenge: C=Decrypt (PrivateKey, EC). The user device  401  then converts C into a simplified value such as a shortened version of C (“ShortC”). In one embodiment, this is accomplished by truncating C into an N-digit number (e.g., where N=6): ShortC=Truncate(C). However, various other techniques may be implemented to convert C into ShortC while still complying with the underlying principles of the invention. For example, in one embodiment, bits from certain specified bit positions may be selected from C and combined to form ShortC. 
         [0053]    After ShortC is presented to the user  400  at  503  (e.g., on the user device&#39;s  401 &#39;s display), the user  400  enters ShortC on the connected device  410  which sends it back to the authentication server  402  in an authentication response message. The user device  401  may also request that the user perform authentication at this stage (e.g., using an authenticator on the user device  401  such as a fingerprint reader). 
         [0054]    Upon receipt of the authentication response message containing ShortC, at  504 , the authentication server reads C from storage and truncates C with the same algorithm as the user device  401 . For example: ShortC_Server=Truncate(C) (if truncation is used to generate ShortC). The authentication server  402  then compares ShortC received form the user device  401  with ShortC_Server. If they match, then the user authentication is successful. If not, then authentication fails. 
         [0055]    One embodiment of the authentication server  402  is shown in  FIG. 6A . As illustrated, the public key  605  associated with the private key on the user device may be stored in secure storage  604  and used by an encryption module  603  to encrypt the random challenge (C)  606 . As indicated, a random number generator  601  may be used to generate C  606  which may then be stored in the secure storage  604  (and later retrieved upon receipt of the authentication response). As mentioned the encrypted random challenge (EC) is then transmitted to the connected device. 
         [0056]      FIG. 6B  illustrates components employed in one embodiment of the authentication server  402  to validate the authentication response including ShortC sent by the user  610 . In one embodiment, conversion logic  608  reads C from storage  604  and truncates C with the same algorithm as used by the user device  401  to generate ShortC: ShortC_Server=Truncate(C). Comparator logic  615  then compares ShortC  610  received form the user with ShortC_Server. If they match, then the user authentication is successful. If not, then authentication fails. 
         [0057]      FIG. 7  illustrates the logic employed on the user device  401  in accordance with one embodiment of the invention. A decryption module  703  decrypts the encrypted challenge (EC)  600  sent from the authentication server  402  using a private key  705  stored in a secure storage  704 . As mentioned, the private key  705  corresponds to the public key  605  used to perform the encryption. A conversion module  706  then converts the decrypted random challenge, C, to arrive at ShortC  710 , which is presented to the user. As mentioned, while truncation is used in one embodiment, the underlying principles of the invention are not limited to any particular type of binary or numeric conversion. 
         [0058]    Although several specific details are set forth above, various different encryption implementations, conversion techniques, and random challenges may be employed while still complying with the underlying principles of the invention. For example, the asymmetric algorithm may be a public key cryptographic algorithm such as RSA, elliptic curve cryptography (ECC) or other algorithms implementing encryption with asymmetric keys. In one embodiment, the Advanced Encryption Standard (AES) is used with a key length of 128 or 256 bits. In addition, the connected device  410  may communicate the EC to the user device  401  via QR codes, NFC, Bluetooth, WiFi, or any other communication technology. 
         [0059]    In one embodiment, the authentication server  402  does not explicitly store C as described above, but sends it to the client device  401  together with EC by incorporating mechanisms such as time-stamping, wrapping and similar techniques for further verification. For example: 
         [0000]        C′=E (ServerWrappingKey,  C/ Timestamp) and  EC=E (PublicKey,  C ) 
         [0060]    Moreover, the relying party described above (i.e., the entity with authentication servers for implementing the embodiments of the invention invention) may be any entity including an online service provider, online retail service, or enterprise server. 
         [0061]    In one embodiment, the software running on the connected device  410  and communicating with the authentication server  402  may be implemented in a Web browser or a proprietary application (e.g., an App designed specifically to communicate with the relying party and its authentication servers). Additionally, the software running on the user device (see, e.g.,  FIG. 7 ), reading the EC  600  from the connected device and displaying the ShortC may be implemented in a Web browser or a proprietary application. Moreover, in one embodiment, the logic residing on the user device  401  to securely protect the private key  705  and derive ShortC without revealing the private key to other components is implemented in hardware or as firmware implemented on cryptographic hardware (such as a smart card). 
       Exemplary Data Processing Devices 
       [0062]      FIG. 8  is a block diagram illustrating an exemplary clients and servers which may be used in some embodiments of the invention. It should be understood that while  FIG. 8  illustrates various components of a computer system, it is not intended to represent any particular architecture or manner of interconnecting the components as such details are not germane to the present invention. It will be appreciated that other computer systems that have fewer components or more components may also be used with the present invention. 
         [0063]    As illustrated in  FIG. 8 , the computer system  800 , which is a form of a data processing system, includes the bus(es)  850  which is coupled with the processing system  820 , power supply  825 , memory  830 , and the nonvolatile memory  840  (e.g., a hard drive, flash memory, Phase-Change Memory (PCM), etc.). The bus(es)  850  may be connected to each other through various bridges, controllers, and/or adapters as is well known in the art. The processing system  820  may retrieve instruction(s) from the memory  830  and/or the nonvolatile memory  840 , and execute the instructions to perform operations as described above. The bus  850  interconnects the above components together and also interconnects those components to the optional dock  860 , the display controller &amp; display device  870 , Input/Output devices  880  (e.g., NIC (Network Interface Card), a cursor control (e.g., mouse, touchscreen, touchpad, etc.), a keyboard, etc.), and the optional wireless transceiver(s)  890  (e.g., Bluetooth, WiFi, Infrared, etc.). 
         [0064]      FIG. 9  is a block diagram illustrating an exemplary data processing system which may be used in some embodiments of the invention. For example, the data processing system  900  may be a handheld computer, a personal digital assistant (PDA), a mobile telephone, a portable gaming system, a portable media player, a tablet or a handheld computing device which may include a mobile telephone, a media player, and/or a gaming system. As another example, the data processing system  900  may be a network computer or an embedded processing device within another device. 
         [0065]    According to one embodiment of the invention, the exemplary architecture of the data processing system  900  may used for the mobile devices described above. The data processing system  900  includes the processing system  920 , which may include one or more microprocessors and/or a system on an integrated circuit. The processing system  920  is coupled with a memory  910 , a power supply  925  (which includes one or more batteries) an audio input/output  940 , a display controller and display device  960 , optional input/output  950 , input device(s)  970 , and wireless transceiver(s)  930 . It will be appreciated that additional components, not shown in  FIG. 9 , may also be a part of the data processing system  900  in certain embodiments of the invention, and in certain embodiments of the invention fewer components than shown in  FIG. 9  may be used. In addition, it will be appreciated that one or more buses, not shown in  FIG. 9 , may be used to interconnect the various components as is well known in the art. 
         [0066]    The memory  910  may store data and/or programs for execution by the data processing system  900 . The audio input/output  940  may include a microphone and/or a speaker to, for example, play music and/or provide telephony functionality through the speaker and microphone. The display controller and display device  960  may include a graphical user interface (GUI). The wireless (e.g., RF) transceivers  930  (e.g., a WiFi transceiver, an infrared transceiver, a Bluetooth transceiver, a wireless cellular telephony transceiver, etc.) may be used to communicate with other data processing systems. The one or more input devices  970  allow a user to provide input to the system. These input devices may be a keypad, keyboard, touch panel, multi touch panel, etc. The optional other input/output  950  may be a connector for a dock. 
         [0067]    Embodiments of the invention may include various steps as set forth above. The steps may be embodied in machine-executable instructions which cause a general-purpose or special-purpose processor to perform certain steps. Alternatively, these steps may be performed by specific hardware components that contain hardwired logic for performing the steps, or by any combination of programmed computer components and custom hardware components. 
         [0068]    Elements of the present invention may also be provided as a machine-readable medium for storing the machine-executable program code. The machine-readable medium may include, but is not limited to, floppy diskettes, optical disks, CD-ROMs, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, magnetic or optical cards, or other type of media/machine-readable medium suitable for storing electronic program code. 
         [0069]    Throughout the foregoing description, for the purposes of explanation, numerous specific details were set forth in order to provide a thorough understanding of the invention. It will be apparent, however, to one skilled in the art that the invention may be practiced without some of these specific details. For example, it will be readily apparent to those of skill in the art that the functional modules and methods described herein may be implemented as software, hardware or any combination thereof. Moreover, although some embodiments of the invention are described herein within the context of a mobile computing environment, the underlying principles of the invention are not limited to a mobile computing implementation. Virtually any type of client or peer data processing devices may be used in some embodiments including, for example, desktop or workstation computers. Accordingly, the scope and spirit of the invention should be judged in terms of the claims which follow. 
         [0070]    Embodiments of the invention may include various steps as set forth above. The steps may be embodied in machine-executable instructions which cause a general-purpose or special-purpose processor to perform certain steps. Alternatively, these steps may be performed by specific hardware components that contain hardwired logic for performing the steps, or by any combination of programmed computer components and custom hardware components.