Retrieve the original card security code used in a card-based transaction
By using the minimum perfect hash function to operate data seeds and card security codes in the server system, the problem that card trading systems in the prior art are difficult to prevent unauthorized access is solved, and higher security and transaction efficiency are achieved.
Patent Information
- Application Number
- CN201980045481.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2018-07-06
- Filing Date
- 2019-06-19
- Publication Date
- 2024-12-13
- Estimated Expiration
- 2039-06-19
AI Technical Summary
Existing card-based trading systems are difficult to effectively prevent unauthorized entities or individuals from accessing credit or debit card accounts in mobile and online transactions, and temporary card security codes (CSCs) are prone to fraudulent access.
By operating on the data seed and card security code (CSC) using the minimum perfect hash function in the server system, a temporary CSC is generated and the same function is applied to the second data seed and the CSC in the storage list until it matches, This will regain the original CSC and enhance security.
This approach makes temporary CSCs more difficult to obtain by fraud, provides additional security measures to prevent unauthorized access and allows for relatively rapid re-acquisition of the original CSCs, improving transaction security and efficiency.
Smart Images

Figure CN112534454B_ABST
Abstract
Description
[0001] Related patent applications
[0002] This patent application is related to Swedish patent application number SE1651165-1 filed on August 30, 2016.
[0003] This patent application is also related to international PCT patent application number PCT / SE2017 / 050858 filed on August 24, 2017.
[0004] The contents of SE1651165-1 and PCT / SE2017 / 050858 are incorporated herein by reference in order to give the context of the present disclosure. Technical Field
[0005] The present disclosure generally relates to the field of card-based transactions. In more detail, the present disclosure relates to further development of the technology disclosed in SE1651165-1 and PCT / SE2017 / 050858.
[0006] More specifically, embodiments described herein relate to methods and server systems (e.g., including one or more computer servers) for re-acquiring an original CSC from a temporary CSC used, for example, in a card-based transaction. The original CSC may be, for example, a card verification value (CVV), CVV2, a card verification code (CVC), CVC2, a card verification number (CVN), CVN2, or a card identification number (CID). Background Art
[0007] The banking industry developed a "secret code" for use with cards such as credit and debit cards. This secret code is usually in the form of an authentication code (sometimes called a CSC) and is commonly referred to in the industry as the "Card Verification Value" or "CVV." The CVV is formatted and used according to recognized industry standards. Originally, the CVV was an additional string of numbers encoded on the magnetic stripe of credit and debit cards.
[0008] More recently, credit and debit cards have had an additional 3-digit code printed on the back or back side. This printed code is often referred to within the banking industry as the "CVV2" code, and the magnetically stored code is often referred to as the "CVV1" code. Merchants can, for example, request and verify this printed code in a transaction where they have no other way to actually verify that the customer has possession of the physical card.
[0009] For example, in a mobile or online transaction, a consumer may be prompted to enter the CVV2 code from the back of his or her card. The CVV2 code can provide a level of assurance that the consumer possesses the physical credit or debit card and not simply obtained the card number and expiration date fraudulently. Consumers and online sellers sometimes also refer to the printed CVV code as the "3-digit security code," "security code," or "check digit."
[0010] SE1651165-1 describes, inter alia, a method for generating a temporary CSC performed by a mobile terminal (e.g., a mobile phone). The method is suitable for use in a card-based transaction with a server system having one or more computer servers. According to certain embodiments of SE1651165-1, the proposed method includes: obtaining a CSC from a card such as a credit or debit card; obtaining a data seed, the data seed including a mobile terminal identifier and a timestamp; and generating or otherwise calculating a sum of the data seed and the CSC, and then applying a minimal perfect hash function to the sum so generated to generate a temporary CSC. Summary of the invention
[0011] The present disclosure recognizes that some existing solutions for card-based transactions, and especially mobile and online transactions, may still be insufficient.It is therefore a general object of the embodiments described herein to further develop techniques known in the prior art.
[0012] Therefore, the various embodiments disclosed herein have been created in light of the above background.
[0013] An overall goal of the embodiments described herein is to allow further development of card-based transactions that provide prevention or at least complication of unauthorized use of a card (e.g., a credit or debit card) by limiting access by unauthorized entities, processes, and / or individuals to accounts associated with the card.
[0014] This general object is solved by the attached independent claim. Advantageous embodiments are defined in the attached dependent claims.
[0015] In a first of its various aspects, the present disclosure is directed to a method of retrieving an original card security code (CSC) from a temporary CSC used in a card-based transaction. The method includes obtaining a temporary CSC, wherein the temporary CSC was previously generated by applying a minimal perfect hash function to the CSC and a first data seed; obtaining or otherwise generating a second data seed; and applying the same minimal perfect hash function to the obtained second data seed together with each of a number of CSCs from a stored list of available CSCs until a match is found between the obtained temporary CSC and a CSC from the stored list of available CSCs, thereby retrieving the original CSC.
[0016] The second data seed is the same data seed as the first data seed. In other words, it can be said that the first data seed is equal to the second data seed. That is, the second data seed is typically the same data seed used during the previous temporary CSC generation.
[0017] In some embodiments, the method may be performed by a server system including one or more computers or computer servers. For example, in some embodiments, the method may be performed by any one or a combination of: i) a service provider system having one or more computer servers, and ii) a credit issuer system having one or more computer servers.
[0018] Advantageously but not necessarily, the temporary CSC may be generated by applying a minimal perfect hash function to the original CSC and the data seed previously according to the teachings of SE1651165-1 (or PCT / SE2017 / 050858) (see also the background technology section above).
[0019] As will be appreciated, the method may further include continuing with the initiated card-based transaction in response to finding a match.
[0020] In an advantageous embodiment, the first data seed comprises a mobile terminal identifier and a timestamp. As will be appreciated, the second data seed may therefore also comprise a corresponding mobile terminal identifier and a corresponding timestamp. Thus, the second data seed may comprise the same mobile terminal identifier and the same timestamp as the first data seed.
[0021] In some embodiments, obtaining the temporary CSC may include receiving a signal from a remote device or a remote server system, wherein the signal includes the temporary CSC. In an exemplary embodiment, the temporary CSC may be received from a mobile terminal. For example, the temporary CSC may be received from a mobile terminal that generated the temporary CSC. Advantageously, but not necessarily, the temporary CSC may be received from a mobile terminal that generated the temporary CSC during a card-based transaction.
[0022] As will be appreciated by those skilled in the art to which this patent application relates, the second data seed may be obtained or otherwise generated in a variety of ways. For example, obtaining the data seed (i.e., typically the same data seed as used during generation of the temporary CSC as described above) may be achieved by receiving or determining a non-static portion of the second data seed (e.g., a timestamp associated with a current (e.g., ongoing) card-based transaction) and / or receiving or retrieving a static portion of the data seed (e.g., a mobile terminal identifier, such as an IMSI) from a storage device. In other words, the same data seed as used during generation of the temporary CSC may be regenerated.
[0023] As will be appreciated, in some embodiments, the mobile terminal identifier (e.g., IMSI) of the second data seed may be obtained by receiving the mobile terminal identifier from the mobile terminal that generated the temporary CSC (e.g., during a card-based transaction). Alternatively, the mobile terminal identifier (e.g., IMSI) of the second data seed may be obtained by retrieving the mobile terminal identifier from an internal or external storage device. In addition, a timestamp of the second data seed (e.g., a timestamp associated with a current (possibly ongoing) card-based transaction) may be received from the mobile terminal that generated the temporary CSC. Alternatively, the timestamp of the second data seed may be determined or otherwise established by the server system.
[0024] In a second aspect of its various aspects, the present disclosure relates to a computer program comprising instructions which, when executed on a processor, cause the processor to carry out a method according to the first aspect. A carrier comprising the computer program according to the second aspect may also be provided. The carrier may be, for example, one of an electronic signal, an optical signal, a radio signal or a computer readable storage medium.
[0025] In a third aspect of its various aspects, the present disclosure relates to a server system having one or more computer servers. For example, the computer server system may include: a communication interface; one or more processors; and a memory storing instructions, the instructions being executable by the one or more processors, whereby the service provider server is operable to implement the method of the first aspect.
[0026] As will be appreciated, some embodiments described herein enable the original CSC (e.g., associated with a card such as a credit or debit card) to be retrieved from a temporary CSC, which, as the name implies, is valid only for a limited period of time. Here, the temporary CSC will be uniquely associated with the original or normal CSC. The temporary CSC will be more difficult to obtain fraudulently than the original or normal CSC. For example, if a purchase transaction is conducted online, a CSC from the back of the card is often required as an additional security measure to reduce fraud. However, this CSC may be obtained fraudulently, for example, by an entity, process, or individual who illegally possesses the card. By additionally adding the application of a minimal perfect hash function to the original or normal CSC and a data seed (as discussed in SE1651165-1 and PCT / SE2017 / 050858), it is possible to generate a temporary CSC that is more difficult to obtain fraudulently. Since the temporary CSC is more difficult to obtain fraudulently, the temporary CSC can also be used more securely for subsequent card-based transactions, such as mobile or online purchase transactions.
[0027] As will also be appreciated, the embodiments described herein enable the retrieval of the original CSC from the above-mentioned temporary CSC. By applying the same minimal perfect hash function to the obtained second data seed together with each CSC from the list of available CSCs stored at the service provider system until a match is found between the obtained temporary CSC and one CSC from the list of available CSCs, the original CSC associated with the temporary CSC can be retrieved without having to perform complex or even impossible calculations. In turn, this can allow a relatively fast process of retrieval of the original CSC from the temporary CSC. This can also make the proposed method increasingly useful in practice. BRIEF DESCRIPTION OF THE DRAWINGS
[0028] These and other aspects, features and advantages will be apparent from and elucidated from the following description of various embodiments with reference to the accompanying drawings, in which:
[0029] Figure 1 An example embodiment of a card such as a debit card or a credit card is schematically illustrated;
[0030] Figure 2 Schematically illustrates Figure 1 The back side of the card shown in ;
[0031] Figure 3 is a flow chart illustrating method steps or actions according to an embodiment of a method for generating a provisional CSC;
[0032] Figure 4A-4B An example of a minimal perfect hash (MPH) function is schematically illustrated;
[0033] Figures 5A-5C Schematically illustrates the application of the MPH function to the CSC and the data seed according to an example embodiment;
[0034] Figure 6 is a flow chart illustrating method steps or actions according to an embodiment of a method for retrieving an original CSC from a temporary CSC;
[0035] Fig. 7A is a block diagram of a system in which the embodiments described herein may be simplified for practice;
[0036] Figure 7B is a schematic illustration of a method according to some embodiments Fig. 7A A signaling diagram of actions performed in a system;
[0037] Figure 8 An example implementation of an embodiment of a server system, such as a service provider system, is shown;
[0038] Fig. 9 A carrier including a computer program according to an embodiment is illustrated. DETAILED DESCRIPTION
[0039] The present invention will now be described more fully below. However, the present invention may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided as examples so that this disclosure will be thorough and complete and will fully convey the scope of the invention to those skilled in the art. Throughout the specification, the same reference numerals refer to the same elements or method steps.
[0040] As previously mentioned, some existing solutions for card-based transactions may still be inadequate. Therefore, a general goal of the embodiments described herein is to allow further development of card-based transactions that provide prevention or at least complication of unauthorized use of a card (e.g., a credit or debit card) by limiting access to accounts associated with the card by unauthorized entities, processes, and / or individuals.
[0041] SE1651165-1 and PCT / SE2017 / 050858 propose methods and systems for card-based transactions between a mobile terminal (e.g., a mobile phone or tablet computer) and a service provider system having one or more computer servers. For example, the mobile terminal can obtain a CSC from a card such as a credit card or debit card. In addition, the mobile terminal can obtain a data seed, which in some embodiments can include a timestamp and / or an identifier such as a mobile terminal identifier (e.g., IMSI). In addition, the mobile terminal can apply a minimal perfect hash function to the CSC and the data seed to generate a temporary CSC. In addition, the mobile terminal can use the temporary CSC generated thereby to initiate a card-based transaction with the service provider system. In addition, the service provider system can obtain the temporary CSC (e.g., by receiving the generated temporary CSC from the mobile terminal). In addition, the service provider system can also apply the same minimal perfect hash function to the temporary CSC at its location until a match is found between the obtained temporary CSC and one CSC from a stored list of available CSCs. In response to finding a match, the service provider system may also proceed with the initiated card-based transaction with the mobile terminal.
[0042] To address the aforementioned challenges, according to example embodiments, methods and server systems for retrieving an original CSC from a temporary CSC used, for example, in a card-based transaction are described herein. The temporary CSC may be generated by applying a minimal perfect hash function to the original CSC and a data seed previously in accordance with the teachings of SE1651165-1 (or PCT / SE2017 / 050858) (see also the Background Technology section above). For example, a server system (e.g., a service provider system) having one or more computer servers may obtain a temporary CSC, wherein the temporary CSC is generated by applying a minimal perfect hash function to the CSC and a first data seed previously; obtain a second data seed, the second data seed being the same data seed as the first data seed; and apply the same minimal perfect hash function to the obtained second data seed together with each of a number of CSCs from a stored list of available CSCs until a match is found between the obtained temporary CSC and a CSC from the stored list of available CSCs.
[0043] In response to finding a match, the service provider system may then further include proceeding with the initiated card-based transaction.
[0044] As will be appreciated, the server system may obtain the aforementioned temporary CSC (e.g., by receiving the generated temporary CSC from the mobile terminal) and the same data seed used in the generation of the temporary CSC (e.g., by using the timestamp of the already initiated card-based transaction together with the stored mobile terminal identifier (e.g., IMSI) to obtain or otherwise generate a second data seed, e.g., in the same or similar manner as the mobile terminal would otherwise generate the data seed. In addition, the server system may also apply the same minimal perfect hash function to the same data seed together with each CSC from the stored list of available CSCs until a match is found between the obtained temporary CSC and a CSC from the stored list of available CSCs, thereby retrieving the original CSC. In response to finding a match, the service provider system may also continue with the already initiated card-based transaction with the mobile terminal either directly or after verifying the retrievable original CSC with, for example, a credit issuer.
[0045] Thus, it is possible to re-obtain the original CSC from the temporary CSC (which was previously generated from said original CSC) without having to perform complex or even impossible calculations. This may also allow a relatively fast process of re-obtaining the original CSC, making this technique increasingly useful in practice.
[0046] This will then enable the use of a temporary CSC that is only valid for a limited period of time, for example by using a data seed that includes a timestamp when the data seed was generated. Here, the generated temporary CSC will typically be uniquely associated with an original or normal CSC. The temporary CSC is therefore relatively more difficult to obtain fraudulently than the original or normal CSC.
[0047] For example, if a purchase transaction is conducted online, the CSC from the back of the card is often required as an additional security measure to reduce fraud. However, this CSC may be fraudulently obtained, for example, by an entity, process or individual that illegally possesses the card. By additionally adding the application of a minimal perfect hash function to the original or normal CSC and the data seed, it is possible to generate a temporary CSC that is relatively more difficult to obtain fraudulently. Since the temporary CSC is more difficult to obtain fraudulently, it can also be more securely used for subsequent card-based transactions, such as mobile or online purchase transactions.
[0048] Before describing the embodiments of the present disclosure in more detail, and in order to give context to these embodiments, hash functions will be briefly described. Hash functionsIs any function that can be used to map data of arbitrary size to data of fixed size. The value returned by a hash function is often called a hash value, hash code, hash sum, or simply a hash. Therefore, the "temporary CSC" mentioned above can be regarded as a hash value. One use is a data structure called a hash table, which is widely used in computer technology for fast data lookup. Hash functions usually speed up table or database lookups by detecting duplicate records in larger files. Hash functions can allow people to easily verify that a certain input data maps to a given hash value, but if the input data is unknown, it is intentionally made difficult to reconstruct it (or an equivalent substitute) by knowing the stored hash value. This can be used to ensure the integrity of transmitted data. For set S Perfect hash function Is a hash function that maps distinct elements in S to a set of integers without collisions. A perfect hash function has many of the same applications as other hash functions, but has the advantage of not having to implement collision resolution. In mathematical terms, it is a completely injective function. In addition, a perfect hash function is usually order-preserving if the keys in the key set are arranged in some given order and the hash function usually preserves that order in the hash table. A perfect hash function for a particular set S that can be evaluated in constant time and has values in a small range can be found by a randomization algorithm in a number of operations proportional to the size of S. Any perfect hash function suitable for use with a hash table usually uses at least a number of bits proportional to the size of S. A perfect hash function whose values are in a limited range can be used for efficient lookup operations by placing keys (or other related values) from S in a table indexed by the output of the function. In the presence of a large set S that is frequently queried (and rarely updated), using a perfect hash function is the best choice. This is because any modification to the set results in a non-perfect hash function. As known to those skilled in the art, Minimal perfect hash function number Yes n The keys are mapped to n consecutive integers (usually [0.. n -1] or [1..n]). Or in other words: let j and k is an element of a finite set K. If and only if F ( j ) = F ( k )mean j = k (i.e., an injective function) and there exists an integer a The range of F is a .. a+|K|-1, F is a minimal perfect hash function. It has been shown that general minimal perfect hashing schemes typically require at least 1.44 bits / key. The best minimal perfect hashing schemes known so far appear to use about 2.6 bits / key.
[0049] Reference now Figure 1 , a card 1 such as a credit card or debit card that can be used with the embodiments described herein will be described. The card 1 can be a plastic card having the size and shape of a traditional credit / debit card. Many traditional credit / debit cards are approximately 85.60×53.98 mm in size and are defined as "ID-1" by the ISO / IEC 7810 standard. The card can have a raised card number 2, raised letters 3 for the cardholder's name, and raised numbers 4 indicating the expiration date (usually in MM / YY format, where MM represents the month and YY represents the year). The card 1 may also include issuer information such as a bank name 5 or a bank logo. Typically but not necessarily, the card 1 may also include information or a brand 6 of a payment provider, such as VISA, MASTERCARD, or AMERICAN EXPRESS. Optionally, the card 1 may also include a chip 7 that is known and conventional in the prior art.
[0050] Reference now Figure 2 , Figure 2 The back of a card 1 is schematically illustrated. It can be seen that the card 1 may include a magnetic stripe 8, which is encoded with information about the card, as is known in the art. In addition, a signature block 9 may typically be provided. Note that in this example, the signature block 9 also includes a printed CSC, here exemplified by a 3-digit CVV2 code "123".
[0051] Figure 3 is a flow chart schematically illustrating a method of generating a temporary CSC (such as a CVV or CVV2) for use in a card-based transaction according to the teaching of SE1651165-1. The method may be performed by means of a mobile terminal (eg, a mobile phone).
[0052] Initially, a CSC from card 1 is obtained 310. For example, the CSC may be obtained by reading a printed CSC from the card. In other words, the CSC may be obtained non-automatically or manually from card 1. Alternatively, the CSC may be obtained automatically from card 1. For example, in some embodiments, the CSC from card 1 may be read optically.
[0053] Furthermore, a data seed is obtained 320. As will be appreciated, the data seed may include any one or a combination of the following attributes:
[0054] - Bank account number;
[0055] - Installation identifier (i.e., Installation ID);
[0056] - a mobile phone identifier, such as an IMSI; and
[0057] - Timestamp.
[0058] In some embodiments, the data seed may include or represent an identifier common to the cardholder associated with the card 1 and the service provider system.
[0059] The data seed may be obtained 320 in different ways, for example depending on the characteristics of the expected transaction. For example, the data seed may be obtained in a manner in which a user (typically a cardholder, but not necessarily a cardholder) provides the data seed to a mobile terminal performing the method. Additionally or alternatively, obtaining 320 the data seed may include receiving a signal including the data seed from a service provider system having one or more computer servers. For example, the installation ID may be included in the signal received from the service provider system. Additionally or alternatively, obtaining 320 the data seed may include receiving a signal including the data seed from a card issuer system having one or more computer servers. For example, a bank account number may be included in the signal received from the card issuer system. Additionally or alternatively, obtaining 320 the data seed may include retrieving the data seed from a SIM associated with the mobile terminal. For example, the IMSI may be retrieved from the SIM.
[0060] Continue to refer Figure 3 , a minimal perfect hash function may be applied 330 to the CSC and the data seed to generate a temporary CSC.
[0061] Turning now to FIGS. 4 and 5 , an example of applying 330 a minimal perfect hash function to a CSC and a data seed will be described in more detail. Figure 4A An example minimal perfect hash function is schematically illustrated. A minimal perfect hash function can avoid the challenges of wasted space and time that are sometimes involved in other hash functions. Or in other words, each key in the key set has one and only one corresponding hashed key in the hash table. For example, assuming an application utilizing a 3-digit CSC, there will be 999 numbers in the key set and 999 corresponding numbers in the hash table. Figure 4B An example is given in . In this example, there are 999 CSCs and 999 corresponding hashed CSCs. It can be seen that in this illustrative example, 0 yields 998, 1 yields 77, 2 yields 31, and so on.
[0062] The exact hash function or hash algorithm to be used in an implementation or application may be determined or selected in an arbitrary or random manner. More specifically, the exact hash function or hash algorithm to be used in an implementation may be determined or selected arbitrarily, as long as it meets the requirements of a minimal perfect hash function that is preferably disorder-preserving. As will be appreciated, the exact hash function or hash algorithm to be used should also be tested and evaluated depending on the user needs and system requirements for the intended card-based transactions.
[0063] Referring now to Figure 5, Figure 5 illustrates an example of applying 330 a minimal perfect hash function to a combination of a CSC and a data seed in accordance with some embodiments. In this example, the CSC is a 4-digit number, such as used by American Express.
[0064] Furthermore, in this example, the data seed comprises a combination of: i) a mobile phone identifier, here the IMSI is used as an example; and ii) a timestamp. Figure 5A The following are illustrated:
[0065] - IMSI: 310 1509 8765 4321
[0066] - Timestamp: 2419 0756
[0067] - CSC:6482.
[0068] As will be appreciated, the above timestamp can be expressed in various ways. For example, it can be as publicly available here: http: / / www.timestampconvert.com To express time using timestamps. That is, timestamps can use a system of describing a point in time that is defined as the number of seconds that have passed since midnight Coordinated Universal Time (UTC) on January 1, 1970, not counting leap seconds. This way of expressing time is commonly used not only in Unix-like operating systems, but also in many other computing systems.
[0069] As in Figure 5B As can be seen in , the data seed can be determined or generated from the IMSI and the timestamp. In this example, the data seed is generated as the sum of the IMSI and the timestamp:
[0070] .
[0071] As will be appreciated, the data seed corresponds to the last four digits of the sum of the IMSI and the timestamp.
[0072] As will be appreciated, a minimal perfect hash function is also applied 330 to the CSC and the data seed to generate a temporary CSC. Figure 5CFor example, the sum of the data seed and the CSC generated earlier can be determined or generated. The sum of the data seed and the CSC generated earlier can sometimes be referred to as an intermediate key set.
[0073] In this example, the sum of the data seed and CSC generated earlier can be produced:
[0074] .
[0075] The last four digits of the sum of the data seed and CSC generated earlier form the intermediate key set 4562. Figure 5C As can be seen in FIG. 4 , in this example applying 330 the minimal perfect hash function to the intermediate key set 4562 can derive or generate a temporary CSC 6719. A temporary CSC is sometimes denoted as a temporary CSC (temp-CSC).
[0076] Again, it is worth mentioning that the exact hash function or hash algorithm to be used in action 330 in a certain implementation may be determined or selected in an arbitrary or random manner. More specifically, the exact hash function or hash algorithm to be used in a certain implementation may be arbitrarily determined or selected as long as it meets the requirements of a minimal perfect hash function that is preferably disorder-preserving. As will be appreciated, the exact hash function or hash algorithm to be used should also be tested and evaluated depending on the user needs and system requirements for the intended card-based transactions.
[0077] For example, the following web page http: / / cmph.sourceforge.net / Various publicly available hash functions are presented, which may be used depending on, for example, user needs and system requirements (eg, central processing unit (CPU) capacity and memory requirements).
[0078] In some implementations, applications, or scenarios, it has been shown that the CHD function (short for Compress, Hash, and Displace) may be advantageous. The CHD function is described in detail in the paper "Hash, displace, and compress" by Djamal Belazzougui, Fabiano C. Botelho, and Martin Dietzfelbinger, which can be downloaded here: http: / / cmph.Sourceforge.net / papers / esa09.pdf .
[0079] Alternatively, it has been confirmed on the web page http: / / cmph.Sourceforge.net / The BDZ or BMZ functions described above may be suitable for application.
[0080] Continue to refer Figure 3The generated temporary CSC may also be optionally used to initiate a card-based transaction. For example, a card-based transaction between the mobile terminal performing method steps or actions 310-330 and the service provider system may be initiated.
[0081] In an alternative embodiment, method steps (or actions) 310-330 and method step (or action) 340 are performed or otherwise executed in a distributed manner by different devices. For example, the temporary CSC may be initially generated by a first device, and the card-based transaction may be subsequently initiated by a second (i.e., different) device. In an example embodiment, the first device may, for example, be a temporary CSC generating device that is specifically designated for generating temporary CSCs. Once known, the second device may utilize the temporary CSC generated by the first device when initiating a card-based transaction.
[0082] Reference now Figure 6 , Figure 6 is a flow chart schematically illustrating an example embodiment of a method for retrieving an original CSC from a temporary CSC (such as CVV or CVV2) used in a card-based transaction. Figure 6 In the example embodiment shown in detail in , the method is performed with the aid of a server system. As will be appreciated, the server system may include a single computer server or a plurality of computer servers. The server system may, for example, be a service provider system (i.e., a server system hosted by a service provider) including one or more computer servers. In an alternative embodiment, the server system may, for example, instead be a credit issuer system (i.e., a server system hosted by a credit issuer) including one or more computer servers.
[0083] Obtain 610 Provisional CSC. Figure 3 As described, the temporary CSC is generated by applying a minimal perfect hash function to the CSC and a data seed previously, for example, according to the teachings in SE1651165-1 (or PCT / SE2017 / 050858). For example, the temporary CSC can be obtained 610 by receiving the temporary CSC from a device (e.g., a mobile terminal) that initiated a card-based transaction with a service provider system.
[0084] Then, a second data seed is obtained 620. The second data seed is the same data seed as the first data seed. That is, the second data seed is typically the same data seed used to generate the temporary CSC.
[0085] This action 620 will advantageously comprise pre-storing at least a portion of the second data seed at the server system 720 (e.g. in a storage device such as a memory). For example, this may advantageously comprise pre-storing at least a portion of the second data seed at the server system 720, which for security reasons is preferably at least one proprietary portion from the generating side known in advance by the service provider system 720, such as a mobile terminal identifier (such as an IMSI), a bank account number and / or an installation identifier obtained during a possible application setup on the side generating the temporary CSC (i.e. the mobile terminal in this example). Other static (unchanging) portions of the second data seed may be pre-stored at the server system 720 or transmitted, for example, during the initiation of the card-based transaction. If the second data seed comprises a timestamp or other portion that changes, such as a serial number, this may be calculated with the aid of the server system 720 or transmitted, for example, during the initiation of the card-based transaction. For example, if Figure 5B As foreshadowed in FIG. 7 , the IMSI may be stored by the server system 720, while the timestamp may be sent from the generating side (i.e., in this example, the mobile terminal 710) as part of or together with the card-based transaction; these two parts would then be combined to generate or otherwise form the second data seed, such as by Figure 5B appreciated and described further below.
[0086] Additionally, the same minimal perfect hash function is applied 630 to the obtained or otherwise formed second data seed and each CSC from the stored list of available CSCs until a match is found between the obtained temporary CSC and a CSC from the stored list of available CSCs. That is, the server system applies the same minimal perfect hash function as previously used to generate the temporary CSC in a substantially identical or substantially similar manner. If the generation of the temporary CSC involves more than one execution of act 330 (see Figure 3 ), then it is advantageous to combine Figure 6 The same number of repetitions should also be performed during the retrieval process described on the server system side.
[0087] The minimal perfect hash function to be used by the server system 720 (i.e., the same minimal perfect function) may be determined (e.g., stored) in advance at the server system 720, for example. In other words, the minimal perfect hash function to be used may be known in advance by the server system 720. Alternatively, information regarding the minimal perfect hash function to be used may be transmitted, for example, during initiation of the card-based transaction. To this end, if the generation of the temporary CSC involves more than one execution of action 330 as described above (see Figure 3), it should also be appreciated that the number of times the minimum perfect hash function is to be performed by the server system 720 (i.e., typically the same number as during the generation of the temporary CSC) can be determined (e.g., stored) in advance at the server system 720, for example. In other words, the number of times the minimum perfect hash function is to be run can be known in advance by the server system 720. Alternatively, information related to the number of times the minimum perfect hash function is to be run can be transmitted, for example, during the initiation of the card-based transaction.
[0088] In some embodiments, portions of the above information, such as the hashing algorithm to be utilized, the number of times to run it, and certain portions of the data seed (such as a serial number) may originate from the server system 720 and thus be transmitted to the CSC generation side 330 (i.e., in this example, the mobile terminal 710), for example, during initiation of a card-based transaction.
[0089] Reference was earlier made above to Figure 5, which illustrates an example of applying 330 a minimal perfect hash function to a combination of a CSC value and a data seed according to some embodiments. In this example, the CSC is a 4-digit number, such as used by American Express. Reference is now made again to Figure 5.
[0090] The second data seed may include a combination of: i) a mobile terminal identifier, such as a mobile phone identifier, here IMSI is an example; and ii) a timestamp. Figure 5A For example, the following is illustrated:
[0091] - IMSI: 310 1509 8765 4321
[0092] - Timestamp: 2419 0756
[0093] - CSC value: 6482.
[0094] As will be appreciated and as described earlier, the above timestamp can be expressed in various ways. For example, it can be as publicly available here: http: / / www.timestampconvert.com To express time using timestamps. That is, timestamps can use a system of describing a point in time that is defined as the number of seconds that have passed since midnight Coordinated Universal Time (UTC) on January 1, 1970, not counting leap seconds. This way of expressing time is commonly used not only in Unix-like operating systems, but also in many other computing systems.
[0095] As in Figure 5B As can be seen in , the second data seed can be determined or generated from the IMSI and the timestamp. In this example, the second data seed is generated as the sum of the IMSI and the timestamp:
[0096] .
[0097] As will be appreciated, the second data seed corresponds to the last four digits of the sum of the IMSI and the timestamp.
[0098] As will also be appreciated, the same minimal perfect hash function is then applied 630 (see Figure 6 ) is applied to the second data seed together with each CSC from the list of available CSCs to generate a result for comparison with the temporary CSC obtained 610; when the two (i.e., the result and the temporary CSC) are equal, the original CSC used to generate the temporary CSC will be equal to the CSC from the list of available CSCs that was just used to generate the result corresponding to the temporary CSC. The original CSC is thus re-obtained.
[0099] In some embodiments, Figure 5C For example, the sum of the data seed and the CSC generated earlier can be determined or generated. The sum of the data seed and the CSC generated earlier can sometimes be referred to as an intermediate key set.
[0100] In this example, the sum of the data seed and CSC generated earlier can be produced:
[0101] .
[0102] The last four digits of the sum of the data seed and CSC generated earlier form the intermediate key set 4562. Figure 5C As can be seen in , in this example applying 630 the minimal perfect hash function to the intermediate key set 4562 can produce or generate a result 6719, which is then compared to the temporary CSC (sometimes represented as a temporary CSC) generated in 330.
[0103] So since the result here 6719 is the same as the temporary CSC, the original CSC will also be the same i.e. 6482.
[0104] Fig. 7A A possible environment is schematically illustrated in which the embodiments described so far can be applied. In this example scenario, the environment 700 includes: a mobile terminal 710, such as a mobile phone, as an example of a device capable of generating a temporary CSC; and a server system, here a service provider system 720 as an example, which is to retrieve the original CSC from the temporary CSC. Figure 7B It is an example of the various actions that can be performed and Fig. 7A 8 is a signaling diagram of signaling between a mobile terminal 710 and a service provider system 720 shown in FIG.
[0105] The mobile terminal 710 may be connected via a network or other connection 730 (in one example, via the Internet). The mobile terminal 710 may be connected via a wired connection or a wireless connection or any combination of known connection methods, such as via a dedicated network or connection. It should be noted that any terminal may be connected to the network 730, and Fig. 7A The number and types of terminals 100 in should not be construed as limiting.
[0106] The system 700 illustrated here also includes at least one server 720. Fig. 7A In the figure, only one server 720 is illustrated, but it should be noted that any number of servers 720 can be implemented in a computer network. Generally, a server is a physical computer (hardware system) dedicated to running one or more services (as a host) to serve the needs of other computers or users of terminals 710 on the network 730. In one embodiment, the server 720 is a service provider server. Generally, the service provider server 720 can refer to hardware (computers) or software (computer applications) that facilitate the delivery of content that can be accessed through an intercommunication network such as the Internet 730.
[0107] Figure 7B It shows that according to Fig. 7AExample actions and example messages for signaling between a mobile terminal 710 and a service provider system 720 to perform a card-based transaction. In this example, a mobile terminal (here, a mobile phone is used as an example) obtains 310 a CSC such as a CVV or CVV2 from a card such as a credit card or debit card. The mobile terminal also obtains 320 a data seed (e.g., including a mobile terminal identifier and a timestamp). In addition, the mobile terminal applies 330 a minimal perfect hash function to the CSC and the data seed to generate a temporary CSC (e.g., according to the teachings in SE1651165-1 (or PCT / SE2017 / 050858)). In this example, the mobile terminal also utilizes or otherwise uses the generated temporary CSC to initiate 340 or otherwise trigger a card-based transaction with the service provider system 720. The service provider system 720 obtains 610 the temporary CSC. For example, the service provider system 720 can receive the temporary CSC from the mobile terminal. In response to obtaining 610 the temporary CSC, the service provider server 720 may also obtain 620 the same data seed used during the generation of the temporary CSC, and further apply 630 the same minimal perfect hash function to the data seed so obtained together with each of a number of CSCs from the stored list of available CSCs, or with each of a number of CSCs from the stored list of available CSCs, until a match is found between the obtained temporary CSC and a CSC from the stored list of available CSCs. Thus, the service provider server is able to retrieve the original CSC from the obtained temporary CSC. The initiated card-based transaction between the mobile terminal 710 and the service provider system 720 may thereafter proceed 640.
[0108] Reference now Figure 8 , Figure 8 An example implementation of an embodiment of a server system is schematically illustrated, where a service provider system 720 is taken as an example (see also Figure 7A-7B ). The service provider system 720 may be, for example, a computer server hosted by a service provider, as described above. The service provider system 720 may be configured to implement or otherwise perform a method according to any of the embodiments described herein, for example, Figure 6 Or Figure 7.
[0109] To this end, the service provider system 720 may optionally include a UI 721. In addition, the service provider system 720 includes hardware resources. For example, the service provider system 720 may include one or more processors 722 and one or more memories 723. In addition, a communication interface 724 or communication circuit may be provided to allow the service provider system 720 to communicate with other devices such as the mobile terminal 710.
[0110] To this end, the communication interface 724 may include a transmitter (Tx) and a receiver (Rx). Alternatively, the communication interface 724 may include a transceiver (Tx / Rx) that combines both transmission and reception capabilities. The communication interface 724 may include a radio frequency (RF) interface that allows the service provider system 720 to communicate with other computer servers and / or devices such as mobile terminals 710 through radio frequency bands using different radio frequency technologies, such as 5G NR (5G New Radio), LTE (Long Term Evolution), WCDMA (Wideband Code Division Multiple Access), any other cellular network standardized by the Third Generation Partnership Project (3GPP) or any other wireless technology such as Wi-Fi, Bluetooth®, etc.
[0111] As will be appreciated, the service provider system 720 may therefore include a communication interface 724, one or more processors 722, and a memory 723 storing instructions, the instructions being executable by the one or more processors, whereby the service provider server 720 is operable to obtain a temporary CSC, wherein the temporary CSC was generated by previously applying a minimal perfect hash function to a CSC and a data seed; obtain a second data seed, the second data seed being the same data seed as the first data seed; and apply the same minimal perfect hash function to the obtained second data seed together with each of a number of CSCs from a stored list of available CSCs until a match is found between the obtained temporary CSC and a CSC from the stored list of available CSCs, thereby retrieving the original CSC.
[0112] Now go to Fig. 9 , another embodiment will be briefly discussed. Fig. 9 An example of a computer readable medium is shown, in this example in the form of a data disk 900 .
[0113] In one embodiment, the data disk 900 is a magnetic data storage disk. The data disk 900 is configured to carry instructions 910 that can be loaded into a memory of a device (e.g., a service provider system 720 including one or more computer servers). When the instructions are executed by a processor of the device, the device is caused to perform a method according to the present invention, for example, in combination with Figure 6 and the method or process of any one of the embodiments described in Figure 7. The data disk 900 is arranged to be connected to or within a reading device (not shown) and can be read by it to load instructions into the processor. One such example of a reading device combined with one (or more) data disks 900 is a hard disk drive.
[0114] It should be noted that the computer readable medium may also be other media, such as a compact disk, flash memory, or other memory technologies commonly used. In such an embodiment, the data disk 900 is a type of tangible computer readable medium. Alternatively, the instructions may be downloaded to a computer data reading device, such as a device capable of reading computer-encoded data on a computer readable medium, by including the instructions in a computer readable signal (not shown), which is transmitted to the computer data reading device via a wireless (or wired) interface (e.g., via the Internet) for loading the instructions into the processor of the device. In such an embodiment, the computer readable signal is a type of non-tangible computer readable medium.
[0115] In the above detailed description, for the purpose of explanation rather than limitation, specific details are set forth to provide a thorough understanding of the various embodiments described in the present disclosure. In some instances, detailed descriptions of well-known devices, components, circuits, and methods are omitted to avoid obscuring the description of the embodiments disclosed herein with unnecessary details.
[0116] All statements of the principles, aspects and embodiments disclosed herein and their specific examples described herein are intended to cover their structural and functional equivalents. In addition, such equivalents are intended to include currently known equivalents and equivalents developed in the future, that is, any element developed that performs the same function, regardless of the structure. Thus, for example, it will be appreciated that the block diagrams herein may represent conceptual views of illustrative circuits or other functional units that embody the principles of the embodiments. Similarly, it will be appreciated that any flow charts and the like represent various processes that can be substantially represented in a computer-readable medium and thus performed by a computer or processor, whether or not such a computer or processor is explicitly shown.
[0117] The functions of the various elements including the functional blocks may be provided using hardware such as circuit hardware and / or hardware capable of executing software in the form of coded instructions stored on the above-mentioned computer-readable media. Therefore, such functions and the functional blocks shown should be understood to be hardware-implemented and / or computer-implemented, and therefore machine-implemented. In terms of hardware implementation, the functional blocks may include or contain, but are not limited to, digital signal processor (DSP) hardware, reduced instruction set processors, hardware (e.g., digital or analog) circuits (including but not limited to (one or more) application-specific integrated circuits [ASICs] and / or (one or more) field programmable gate arrays (FPGAs)) and (where appropriate) state machines capable of performing these functions.
[0118] In terms of computer implementation, a computer is generally understood to include one or more processors or one or more controllers. When provided by a computer or a processor or a controller, the functionality may be provided by a single dedicated computer or processor or controller, by a single shared computer or processor or controller, or by a plurality of separate computers or processors or controllers (some of which may be shared or distributed).
[0119] Additionally, use of the term "processor" or "controller" may also be interpreted to refer to other hardware capable of performing these functions and / or executing software, such as the example hardware listed above.
[0120] Modifications and other variations of the described embodiments will occur to those skilled in the art having benefit of the teachings presented in the foregoing description and the associated drawings. Therefore, it should be understood that the embodiments are not limited to the specific example embodiments described in the present disclosure, and modifications and other variations are intended to be included within the scope of the present disclosure.
[0121] For example, although the embodiments described herein are illustrated as applying or utilizing a minimal perfect hash function, those skilled in the art will appreciate that it is not necessary to apply or utilize a minimal perfect hash function. It will be contemplated that in some applications or scenarios, other hash functions may be applied alternatively.
[0122] In addition, although specific terms may be employed herein, they are used in a general and descriptive sense only and not for purposes of limitation. Therefore, those skilled in the art will recognize numerous variations of the described embodiments that will still fall within the scope of the appended claims. As used herein, the terms "comprise" or "include" do not exclude the presence of other elements or steps.
[0123] Furthermore, although individual features may be included in different claims, these features may possibly be advantageously combined, and such inclusion of different claims does not mean that a combination of features is not feasible and / or disadvantageous. Furthermore, reference to the singular does not exclude a plurality. Furthermore, reference signs should not be interpreted as limiting the scope of the claims.
Claims
1. A method for retrieving an original card security code (CSC) from a temporary card security code (CSC) used in a card-based transaction, wherein the method is performed by a server system having one or more computer servers, and the method comprises: obtaining a temporary CSC, wherein the temporary CSC is generated by previously applying a minimal perfect hash function to the original CSC and a first data seed, the first data seed comprising a mobile terminal identifier of the mobile terminal and a timestamp generated by the mobile terminal; obtaining a second data seed, the second data seed being the same data seed as the first data seed and comprising the same mobile terminal identifier and the same timestamp as the first data seed, wherein at least the mobile terminal identifier has been pre-stored at the server system, such that obtaining the second data seed comprises obtaining the mobile terminal identifier locally for the server system; and applying the same minimal perfect hash function to the obtained second data seed together with each of the plurality of CSCs from the stored list of available CSCs until a match is found between the obtained provisional CSC and a CSC from the stored list of available CSCs; and in response to a match being found: Continue an initiated card-based transaction.
2. The method of claim 1, wherein the timestamp is transmitted during the initiation of the card-based transaction, such that obtaining the second data seed involves receiving the timestamp from the mobile terminal that generated the timestamp.
3. The method according to claim 1 or 2, wherein: The method is performed by any one or a combination of: i) a service provider system having one or more computer servers, and ii) a credit issuer system having one or more computer servers.
4. A non-transitory computer-readable storage medium comprising instructions which, when executed on one or more processors, cause the one or more processors to perform the method according to any one of claims 1-3.
5. A server system having one or more computer servers, comprising: Communication interface; one or more processors; as well as A memory storing instructions which, when executed by the one or more processors, cause the one or more processors to carry out the method according to any one of claims 1-3.
6. A device for retrieving an original CSC from a temporary card security code CSC used in a card-based transaction, the device comprising: means for obtaining a temporary CSC, wherein the temporary CSC is generated by previously applying a minimal perfect hash function to the original CSC and a first data seed, the first data seed comprising a mobile terminal identifier of the mobile terminal and a timestamp generated by the mobile terminal; means for obtaining a second data seed, the second data seed being the same data seed as the first data seed and comprising the same mobile terminal identifier and the same timestamp as the first data seed, wherein at least the mobile terminal identifier has been pre-stored at a server system, such that obtaining the second data seed comprises obtaining the mobile terminal identifier locally for the server system; and means for applying the same minimal perfect hash function to the obtained second data seed together with each of the plurality of CSCs from the stored list of available CSCs until a match is found between the obtained provisional CSC and a CSC from the stored list of available CSCs; and Means for continuing an initiated card-based transaction in response to a match being found.
7. A computer program product, comprising a computer program, which, when executed by a processor, causes the processor to perform the method according to any one of claims 1 to 3.
Citation Information
Patent Citations
generation and verification of a temporary card security code for use in card based transactions
SE1651165A1
Feedback method of content filtering and device
CN101686223A
Generation and verification of a temporary card security code for use in card based transactions
WO2018044221A1
