Abstract:
There is disclosed a method for facilitating transactions carried out by a mobile device, wherein: the mobile device executes a smart card application; the smart card application receives a cryptographic algorithm from a transaction server external to the mobile device; the smart card application further receives transaction data from said transaction server; the cryptographic algorithm encrypts said transaction data and stores the encrypted transaction data in a storage unit of the mobile device. Furthermore, a corresponding computer program product and a corresponding mobile device for carrying out transactions are disclosed.

Description:
FIELD 
       [0001]    The present disclosure relates to a method for facilitating transactions carried out by a mobile device. Furthermore, the present disclosure relates to a corresponding computer program product and to a corresponding mobile device for carrying out transactions. 
       BACKGROUND 
       [0002]    In many public transport systems around the world disposable contactless tickets are used for Automatic Fare Collection (AFC). Furthermore, mobile devices such as mobile phones and tablets are capable of providing contactless ticket functionality, for example by means of a built-in smart card integrated circuit (IC), i.e. a so-called Secure Element (SE), or by means of a smart card emulated in software, i.e. through so-called Host Card Emulation (HCE). In the latter case a computer program, which is typically executable by a central processing unit of the mobile device, emulates the functions of a hardware-based smart card IC. The Secure Element may for example be a smart card IC of the SmartMX™ family produced by NXP Semiconductors, which may be connected to a near field communication (NFC) controller IC. A contactless card reader device may communicate with the SE in the mobile device, as if it were communicating with a contactless card which contains exactly such a smart card IC. 
         [0003]    Transaction data, in particular ticket data, are typically transmitted to a reader device which is external to the mobile device. This transmission may take place via NFC, for example. Nowadays, many mobile devices contain an NFC interface. NFC technology is compatible with contactless ICs based on the ISO-14443 standard. In HCE, the NFC controller may pass on contactless communication data to an application (app) running on the mobile device and responses generated by this app will be relayed back to the contactless reader by the NFC controller. Instead of communicating with a hardware-based smart card IC, the contactless reader communicates with the computer program that emulates the smart card. 
         [0004]    The popularity of HCE has grown compared to hardware-based SEs, because the latter typically require strict and complicated procedures for managing their functionality. Using HCE, a smart card application (app) may be distributed via the usual channel of an app store, such that an end-user may install it. Then ticket data may be distributed to the end-user through other means, for example upon or after receipt of a payment, and be imported in the app. Thus, the app may emulate the actual contactless ticket through HCE. 
         [0005]    Instead of importing the ticket data into the app, one could store the actual data in an on-line server and give access credentials to the app, so that the app may access the on-line server and retrieve the ticket data from said server when communicating with the contactless reader. However, this requires an on-line connection which is not always available (for example, underground in a metro station). Besides that, it introduces additional delays in the communication, because all data has to be relayed back and forth to the server. This delay may be relatively small for an individual transaction with the reader, but it can add up significantly and cause actual delays and queues when summed up over the total number of passengers that goes through the gates during rush hours in a large public transport system, for example. It therefore appears to be more attractive to import the ticket data into the app. However, these ticket data typically represent a value—for example a monetary value—which may be subject to either theft, for example through malicious software on the mobile device, or to cloning by the owner of the mobile device. 
       SUMMARY 
       [0006]    There is disclosed a method for facilitating transactions carried out by a mobile device, wherein: the mobile device executes a smart card application; the smart card application receives a cryptographic algorithm from a transaction server external to the mobile device; the smart card application further receives transaction data from said transaction server; the cryptographic algorithm encrypts said transaction data and stores the encrypted transaction data in a storage unit of the mobile device. 
         [0007]    In an illustrative embodiment, the cryptographic algorithm retrieves the encrypted transaction data from the storage unit and decrypts the encrypted transaction data, and the smart card application provides the decrypted transaction data to a reader device external to the mobile device. 
         [0008]    In a further illustrative embodiment, the smart card application further receives a password from the external reader device, and the cryptographic algorithm takes said password as an input, such that the cryptographic algorithm correctly decrypts the encrypted transaction data only if said password is correct. 
         [0009]    In a further illustrative embodiment, the cryptographic algorithm further encrypts the decrypted transaction data again after decrypting the encrypted transaction data and before the smart card application provides the transaction data to the reader device. 
         [0010]    In a further illustrative embodiment, the smart card application provides the decrypted transaction data to the reader device via near field communication. 
         [0011]    In a further illustrative embodiment, the cryptographic algorithm is implemented as a white-box implementation comprising a series of look-up tables. 
         [0012]    In a further illustrative embodiment, at least one of the look-up tables has been compiled using a coding function which takes an identifier of the mobile device as an input. 
         [0013]    In a further illustrative embodiment, the transaction data are ticket data or access control data. 
         [0014]    Furthermore, there is disclosed a computer program product comprising instructions which, when being executed by a processing unit of a mobile device, carry out or control respective steps of a method of the kind set forth. 
         [0015]    Furthermore, there is disclosed a mobile device for carrying out transactions, the mobile device being arranged to execute a smart card application, wherein the smart card application, when being executed by the mobile device, receives a cryptographic algorithm from a transaction server external to the mobile device; wherein the smart card application, when being executed by the mobile device, further receives transaction data from said transaction server; wherein the mobile device is further arranged to execute the cryptographic algorithm and wherein the cryptographic algorithm, when being executed by the mobile device, encrypts said transaction data and stores the encrypted transaction data in a storage unit of the mobile device. 
         [0016]    In a further illustrative embodiment, the mobile device is a mobile phone or a tablet device. 
         [0017]    In a further illustrative embodiment, the cryptographic algorithm, when being executed by the mobile device, retrieves the encrypted transaction data from the storage unit and decrypts the encrypted transaction data, and the smart card application, when being executed by the mobile device, provides the decrypted transaction data to a reader device external to the mobile device. 
         [0018]    In a further illustrative embodiment, the mobile device comprises a near field communication unit for providing the decrypted transaction data to the reader device. 
     
    
     
       DESCRIPTION OF DRAWINGS 
         [0019]    Embodiments will be described in more detail with reference to  FIG. 1 , which shows an illustrative embodiment of a transaction system in which a method according to the present disclosure may be applied. 
       
    
    
     DESCRIPTION OF EMBODIMENTS 
       [0020]    In accordance with the present disclosure, a contactless smart card may be emulated on an NFC-enabled mobile device. Furthermore, the transaction data may be secured as follows. The mobile device executes a smart card application. The smart card application receives a cryptographic algorithm from an external transaction server. Furthermore, the smart card application receives transaction data from said external transaction server. Then, the cryptographic algorithm encrypts said transaction data and stores the encrypted transaction data in a storage unit of the mobile device. 
         [0021]    The transaction data may for example comprise a transport ticket, an entrance ticket or access control data, such as data which are normally carried on a badge. The cryptographic algorithm may be implemented as a white-box implementation comprising a plurality of look-up tables. A white-box implementation typically comprises a series of look-up tables, which complicate the retrieval of secret data hidden or embedded in said implementation. For certain smart card applications these secret data are relatively short-lived. For example, a visitor badge or ticket for public transport or event admittance may be used and checked only once or a few times during a limited period of time. For such secret data a cryptographic algorithm of the kind set forth, in particular a cryptographic algorithm based on a white-box implementation, may offer a relatively efficient, yet sufficiently secure, protection mechanism. Furthermore, since the transaction data are stored securely in a storage unit of the mobile device, no connection with an on-line server is required in order to retrieve such data during a transaction, for example. 
         [0022]      FIG. 1  shows an illustrative embodiment of a transaction system  100  in which a method according to the present disclosure may be applied. The transaction system  100  comprises a mobile device  102 , a transaction server  108  and a reader device  106 . The mobile device  102  may be a mobile phone or a tablet device, for example. The transaction server  108  may be an on-line server in the so-called cloud, for example a ticket server where public transport tickets may be purchased. The reader device  106  may be a device for reading tickets at a metro station or a train station, for example. The mobile device  106  may be arranged to execute a smart card application  110  received from an external application provider (not shown). 
         [0023]    In operation, the smart card application  110  may receive—for example by means of a download—transaction data—for example ticket data—from the transaction server  108 , as well as a cryptographic algorithm  112 . For example, the cryptographic algorithm  112  may be based on a white-box implementation comprising a series of look-up tables. More specifically, the cryptographic algorithm  112  may comprise a software implementation (e.g. a Java class file) of a cryptographic encryption algorithm in the form of a series of lookup tables, as well as a corresponding cryptographic decryption algorithm in the form of a further series of lookup tables. The series of lookup tables that constitutes the encryption algorithm may typically be separate from the series of lookup tables that constitutes the decryption algorithm. It is noted that building white-box implementations is a matter of routine to the skilled person. By means of the series of lookup tables that constitute the encryption algorithm the downloaded transaction data may be encrypted. Subsequently, the cryptographic algorithm may store the encrypted transaction data in a storage unit  114  for later use. The storage unit  114  may be a secure storage unit controlled by the cryptographic algorithm  112 . When the transaction data are needed for a transaction, the encrypted transaction data may be retrieved from the storage unit  114  and decrypted by means of the series of lookup tables that constitute the decryption algorithm. Subsequently, the decrypted transaction data may be sent to the external reader device  106  through the NFC unit  104 , for example. 
         [0024]    Optionally, at least one of the look-up tables has been compiled using a coding function which takes an identifier (ID) of the mobile device as an input, for example a unique serial number of the mobile device. Thereby, node locking may be achieved: the encrypted transaction data are made dependent on the specific mobile device on which they were downloaded (the “node”). Furthermore, the cryptographic algorithm  112  may be specific for a type of transaction data, for example a ticket type, and/or be updated from time to time in order to further enhance the security. 
         [0025]    It is noted that instead of immediately decrypting the transaction data, as is the case with Digital Rights Management (DRM) for example, the encrypted transaction data may remain stored in the mobile device until it is needed for carrying out a transaction. The ID-dependent coding function may make the cryptographic functionality device-dependent, such that it may be prevented that the encrypted transaction data, including the functionality to decrypt it, is copied to another (non-authentic) mobile device. That is to say, the functionality to decrypt the stored encrypted transaction data is dependent on the availability of the identifier of the mobile device: the encrypted transaction data may be decrypted correctly only if this identifier is available. In addition, as described below, the decryption functionality may be made dependent on the availability of a specific password. 
         [0026]    In a use case, when a contactless reader device communicates with the smart card app, the smart card app causes the cryptographic algorithm to decrypt the requested transaction data and passes it to the reader device. 
         [0027]    According to an illustrative embodiment, the reader first presents a password to the app, which may serve as an additional input to the decryption function, i.e. the cryptographic algorithm. Thus, the encrypted transaction data which are stored in the mobile device may only be correctly decrypted if the password is correct. That is to say, without a correct password, the transaction data may effectively be inaccessible. 
         [0028]    A possible attack vector is the stealing of decrypted transaction data while it is passed as a message to the contactless, external reader device. This may be done either over-the-air (RF sniffing) or within the mobile device (by malicious software that can inspect the communication pathways inside the device). In order to prevent the latter, according to a further illustrative embodiment, the cryptographic algorithm may further encrypt transaction data to be sent to the external reader device. That is to say, the white-box implementation of the cryptographic algorithm may also be used to encrypt messages that carry transaction data to the external reader device. For this purpose, the cryptographic algorithm may contain a further series of lookup tables. For example, the decryption lookup tables may be concatenated with the encryption lookup tables for this encryption. The receiving side, i.e. the reader device, may use a conventional ‘black-box’ decryption method for decrypting the received messages. In other words, the decryption of the messages by the reader may—but does not have to be—carried out by means of a white-box implementation of a corresponding decryption algorithm. 
         [0029]    As mentioned above, white-box implementations of cryptographic algorithms are known as such. For example, white-box implementations of symmetric block ciphers such as AES and DES are known. Furthermore, it is known how to apply coding functions to the lookup tables which constitute a white-box implementation of a cryptographic algorithm. Most symmetric block ciphers, including AES and DES, are constructed from building blocks that are special mathematical functions called substitution boxes (“S-boxes”) and linear transformations. Current white-box implementations represent each component or building block of a block cipher as a series of lookup tables and insert random invertible input- and output encodings between the components to introduce ambiguity. These encodings and corresponding decodings are incorporated into the respective lookup tables so that the resulting white-box implementation of the algorithm appears as a sequence of lookup tables with random values as output and input between the stages of the sequence. 
         [0030]    It is noted that the drawings are schematic. In different drawings, similar or identical elements are provided with the same reference signs. Furthermore, it is noted that in an effort to provide a concise description of the illustrative embodiments, implementation details which fall into the customary practice of the skilled person may not have been described. It should be appreciated that in the development of any such implementation, as in any engineering or design project, numerous implementation-specific decisions must be made in order to achieve the developers&#39; specific goals, such as compliance with system-related and business-related constraints, which may vary from one implementation to another. Moreover, it should be appreciated that such a development effort might be complex and time consuming, but would nevertheless be a routine undertaking of design, fabrication, and manufacture for those of ordinary skill. 
         [0031]    Finally, it is noted that the skilled person will be able to design many alternative embodiments without departing from the scope of the appended claims. In the claims, any reference sign placed between parentheses shall not be construed as limiting the claim. The word “comprise(s)” or “comprising” does not exclude the presence of elements or steps other than those listed in a claim. The word “a” or “an” preceding an element does not exclude the presence of a plurality of such elements. Measures recited in the claims may be implemented by means of hardware comprising several distinct elements and/or by means of a suitably programmed processor. In a device claim enumerating several means, several of these means may be embodied by one and the same item of hardware. The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be used to advantage. 
       LIST OF REFERENCE SIGNS 
       [0000]    
       
           100  transaction system 
           102  mobile device 
           104  NFC unit 
           106  reader device 
           108  transaction server 
           110  smart card application 
           112  cryptographic algorithm 
           114  storage unit