The present invention relates to a device and method for embedding information in files and related steganographic methods.
In certain situations it is of interest to transmit information that is hidden from plain view. For example, the use of scratch cards is common for distribution of prizes. A customer for instance receives a scratch card from a vendor with every purchase. The scratch card contains hidden information in the form of (for example) a picture or set of pictures covered by a removable layer of pigment or metal foil. If this picture or pictures meet certain criteria the card holder is entitled to benefits such as a free meal, lottery monies, or the like.
Such use of ‘hidden writing’ is more formally referred to as steganography, a field which includes the aforementioned scratch cards as well as more sophisticated variants such as the embedding of information in the least significant bits: of JPG-encoded pictures, audio files, or the like. In these latter cases the information being transmitted is digital in nature, and is often so well hidden that files may be transferred from user to user without their knowledge that in fact a hidden message is being transmitted.
Billions of scratch cards are used worldwide every year for many purposes. Gaming, promotions, prepaid and gifts cards are only partial list of scratch cards use cases.
Digital, scratch cards have been implemented using. Web 2.0 Rich Internet Application (RIA) technologies. No matter what RIA technology is used, the scratch card always remains on the server side, and the user redeems the scratch card either by: 1) printing out a hardcopy of winning card, and presenting this hardcopy at a point of sale for redemption, or 2) interacting with the user's account through a virtual or online bank account, which can credit or debit user accounts based on the scratch card information. However there are certain implementation considerations that such methods fail to consider.
Hence, an improved method for digital implementation of a scratch-card or equivalent digital object is still a long felt need.
In order to understand the invention and to see how it may be implemented in practice, a plurality of embodiments will now be described, by way of non-limiting example only, with reference to the accompanying drawings, in which
a-e present hidden and revealed images processed by the method of the invention;
The present invention comprises a system and method for generation, transfer, and use of hidden information, implemented in one embodiment as a digital scratch card system and method, and in some embodiments as a scratch card protocol. Other implementations of the invention include admission tickets, entry cards, membership cards, discount cards, coupons, debit cards, food stamps, ecash, and credit cards.
The hidden information involved may be transmitted for instance on mobile devices such as cellphones. It is within provision of the invention to produce, manage and dispatch digital scratch cards over a network of any type to users, either at request of a user trigger or by a system trigger.
It is within provision of the invention to provide a local device application (LDA) enabling the user to perform the digital equivalent of physically scratching off a section of a scratch card, revealing hidden data and subsequently enabling the user to redeem the card for various purposes, for example for cash back at a point-of-sale.
It is within provision of the invention to provide a protocol governing the embedding of hidden data within other data objects.
It is within the core of the present invention that a jpeg image be used to encode hidden data. It is further within provision of the invention that data be encoded in the least significant bits of the DCT transform coefficients of a jpeg image.
While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof have been shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that pit is not intended to limit the invention to the particular forms disclosed, but on the contrary, the intention is to cover; all modifications, equivalents, and alternatives falling within the spirit and scope of the invention as defined by the appended claims.
The following description is provided, alongside all chapters of the present invention, so as to enable any person skilled in the art to make use of said invention and sets forth the best modes contemplated by the inventor of carrying out this invention. Various modifications, however, will remain apparent to those skilled in the art, since the generic principles of the present invention have been defined specifically to provide a means and method for providing a steganographic method.
In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of embodiments of the present invention. However, those skilled in the art will understand that such embodiments may be practiced without these specific details. Reference throughout this specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the invention.
The term ‘plurality’ refers hereinafter to any positive integer e.g, 1, 5, or 10.
The term ‘smart phone’ refers hereinafter to a mobile phone offering advanced capabilities, having PC like functionality.
The term ‘scratch card’ refers to an object having hidden information that may be revealed by an on the part of the user of the smart card. The information generally concerns a promotion, coupon, lottery, game, gift, or information allowing the bearer to redeem the card for such. For example a scratch card may be distributed by a fast food company having pictures of various fast food products hidden under a removable metal foil. Buyers of certain products receive the cards with the metal foil intact and the pictures hidden. The recipient scratches off the foil to reveal fast food products for which the card may be redeemed. In the current invention, the scratch card is implemented digitally and hence is a digital object and not a physical card. The term scratch card includes such implementations as admission tickets, entry cards, membership cards, discount cards, coupons, debit cards, food stamps, ecash, and credit cards.
The term ‘DCT’ hereinafter refers to the discrete cosine transform.
The term ‘local device application’ or ‘LDA’ refers hereinafter to an application running locally on a smartphone, dumb terminal, or other node on a network that allows interaction with a user or users, typically being a smartphone or PC having internet connectivity.
The term ‘image based protocol’ refers hereinafter to a protocol of the invention that generally speaking inserts encoded information into files such as images or others, in such a manner that detection and/or decryption of this information is difficult or is possible only in NP (non-polynomial, generally speaking exponential or higher) time.
The term ‘compression’ refers hereinafter to any operation tending to decrease the total size of a file, in general losing some amount of data in the process. An example of a method compression is the jpeg compression algorithm, which uses a discrete cosine transform of controllable fidelity. The greater the compression, the lower the fidelity of the compressed file to the original.
The term ‘decompression’ refers hereinafter to the reverse of a compression operation, intended to extract a file from a compressed version thereof.
Current smart phones offer the user state-of-the-art technologies including computational power, improved user interfaces such as touch screens, smaller form factors, lower prices and expanded connectivity. Such phones are being increasingly employed for a number of transactions such as transfer of credit from person to person, identification, entrance into venues, bill payments, sundry purchases, and the like.
The system described in this disclosure enables a smart phone user (or other computer user) to obtain and use a ‘scratch card’ which may involve a promotion, coupon, lottery game, gift card, or donation, in a similar manner to a paper scratch card. The scratch card in its hidden state has no indication of certain hidden information content, while in its revealed state the hidden information is revealed to the user.
One embodiment of the invention follows these steps, as shown in
A more detailed explanation will be given in the section labeled “Data embedding in image”.
With reference to
The algorithm of the invention allows the user who fulfills certain conditions, to ‘scratch’ the card (for example by physically mimicking the action of scratching an image on a smartphone touch screen), revealing a hidden image behind the scratched area. Once the hidden area is revealed, the user has read-only access to potentially useful hidden information, such as whether this is a winning card or not, a telephone number for further enquiry, a hyperlink, money transfer information, or the like.
Conditions allowing, the user to reveal the hidden information may include identification information, machine MAC address, transaction information, and the like.
It is important to note that the data cannot be accessed by the user, unless the device application is used. Thus a requirement of the method is that the image based protocol or IBP is the only method by which the hidden information can be accessed. The protocol enables a user to pass variable parameters to enable one device application for all scratch card types. Other applications are within provision of the invention such as admission tickets, membership cards, discount cards, coupons, debit cards, food stamps, ecash, and credit cards. Amongst various pieces of information that may be transmitted using the method are:
A Generic Header is used for all types and may include the fields:
For the particular application of scratch cards, the following variable header fields may also included (some mandatory, some optional depending on the Card Sub-Type):
The above fields are examples only and it is within provision of the invention that other fields may also optionally be used.
The method by which information is hidden in the data object of the scratch card is now detailed.
The image based protocol (IBP) comprises methods of inserting data into an image (or generally speaking any file) in such a way that this data can be only be extracted and interpreted by use of they IBP. For the purposes of the following discussion, reference will be made to image files; however as will be understood by one skilled in the art, any file allowing some degree of compression may be employed.
As is common for jpeg steganographic methods, an image containing data embedded by means of the IBP looks, to a human observer, exactly like an image without embedded data. Such algorithms may use for example the least significant bits of the discrete cosine transform used in jpeg compression, as shown in the prior art of
In certain embodiments of the invention a jpeg image is used to encode the hidden or embedded data, by use of the least significant bits of the DCT transform coefficients of the jpeg image involved, as will be described below.
Information of various sorts may be embedded. For example in the particular case of scratch cards the following fields may be provided:
The IBP embeds data in an image in a highly robust manner, such that transmission errors and embedding/extraction steps (that may also include jpeg encoding/decoding) have a low probability of affecting the embedded data. Furthermore there is a vanishingly small probability that the embedded data can be revealed to or by unauthorized parties (e.g. by circumventing the authentication steps of the IBP). Finally, one may apply the embedding algorithm on the same image with different embedding data, many times.
The IBP utilizes two steps applied sequentially, each being a steganographic embedding. For example, the steps may be: (1) steganographic embedding in a color jpeg image, and (2) steganographic embedding in a binary (b/w) image. Alternatively, first the binary embedding method is applied, and afterwards the jpeg embedding method is applied to the image: as will be shown, the second embedding doesn't affect the information embedded by first step. As will be seen, the steps may both be of arbitrary color depth (i.e. 24 bpp color, 8 bpp grayscale, binary b/w, or otherwise) subject to certain constraints. In the case of non-image files similar provisions may be made mutatis mutandis, as will be obvious to one skilled in the art.
As an example of the method one first creates a binary image, in which one embeds auxiliary data. This data will also be used in the second embedding algorithm. Then one converts the binary image to a 24 bpp image and insert it into a subsection of the main 24 bpp image to form a combined image in which one embeds further data, using the second embedding algorithm.
The second algorithm doesn't influence the data embedded by the first one, by means that will be described below; in short, the second embedding algorithm uses a randomly varied quantization code for inserted data. In order to increase robustness and reduce unauthorized revealing of main data in the second algorithm, an error detection and correcting code is employed.
The specific encoding procedure is designed according to technical requirements the system operator can impose.
It is known that applying the jpeg embedding algorithm, in which one embeds data in the DCT coefficients, causes noise in the original data pixels of the image. The noise extends to the lower significant bits of the data pixels, generally being the least significant one, two or more bits depending on the algorithm, size of the image, and amount of data being embedded in the image.
In one embodiment of the encoding algorithm, the original main image consists of any image (for example at a color depth of 24 bpp) in which one replaces one or more fields (at a given location X0, Y0, and with a size A×B, pixels). The data pixels of the field(s) are quantized so that least significant bits (as many as one expects to be affected by noise) are set to their mid value, thus ensuring that the error introduced by any subsequent steps will not roll affect the bits being embedded by this first part of the algorithm. In the more significant bit planes of each of the color components (not affected by jpeg algorithm) one embeds data using the well known embedding algorithm in binary images.
Embedding data in the more significant bits of pixel data generally will cause significant noise in the image. By using the embedding algorithm in binary images one overcomes this limitation. By converting the auxiliary image in this example that is 1 bpp to a 24 bpp image, the pixel information which is black or white is now represented by ‘000000’ or ‘ffffff’. Noise that will be caused by the embedding algorithm in the combined image will not affect these values appreciably; by thresholding the pixel values the original values will be recovered.
The use of black/white(1 bpp) binary images are a special case for the algorithm. In this case one has only one bit plane. After embedding data, one converts it to full bit-depth image (e.g., 24 bpp) to replace the appropriate fields in the main image. In the following this special case is described; the general case is an obvious extension of this special case as will be clear to one skilled in the art.
An example is now given of the operation of one embodiment of the IBP, illustrated in
Each time one assigns a value ‘0’ or ‘1’ from shuffled data one chooses randomly a value from a table such as table 1. If the shuffled data length is smaller than the amount of data one can embed, one uses data from a pseudorandom function with a certain seed. The random function for selecting an entry from a table such as table 1 is preferably such that an even distribution of entries from the above table is used, thus eliminating any ‘fingerprints’ in the histogram of these data.
In the decoding step, one finds the value from the decoding table 2 by finding in which group a three bit sequence (in this example) falls—for example the sequence 010 occurs in entry 0 as value 0, thus the value for 010 is 0. In this way one recovers the original information hidden by use of table 1. The entries are found by using the same pseudorandom function as used in the encoding step, with the same seed—such that the same pseudorandom sequence is generated. One can use here, for distance value of one (1), a general but more complicated algorithm with a different number of words, not necessarily a power of 2, instead of the above simple example that uses eight (8) words for the data insertion in quantized dct coefficients. If the data D may take. K different values (in the above examples, K being 8), and is encoded in a number allowing X possible values, then the general algorithm uses
where the standard notation
denotes the ‘floor’ of x/K, namely the larger integer less than or equal to x/K. Then the data is encoded as xd=QK(x)+d. In the general case there are several ways to prevent overflow, such as by using x′=xM/255+N in which N=K−1 and M=255−2(K−1), and encoding the data as xd=QK(x′)+d/
It is possible to also use different schemes for step 10. of the encoding sequence above; in particular, one may use an error correcting code as in step 4. to more efficiently prevent any noise from corrupting the embedded data. As pointed out previously, since the auxiliary image is encoded with more bit depth than necessary for its actual color depth, a certain ‘information overhead’ exists in which hidden data may be embedded. In particular, if the actual bit depth (in this example 24 bpp) is larger than the actual color depth (in this example 1 bpp) then the difference (in this example 23 bpp) is available to make the auxiliary image less susceptible to noise caused by the second embedding algorithm. The larger this overhead, the less likely the information stored therein is to be corrupted by subsequent error-introducing steps such as compression.
In step 207 other embedding methods may be used, for example use of least significant bits of the picture to store data. These two compression steps must be ‘orthogonal’ in the sense that the two steps are invertible: one can state this condition as follows. The first compression step (205) is denoted by
A′=C
1(A),
where A is the original image (binary in this example), C is the compression function, and A′ the compressed image. The second compression step (207) is denoted
B′=C
2(B)
This second image B is itself a function of the first image A′ and another image I:
B=f(A′,I)
The requirement that the second compression step C2 does not affect data embedded by the first step may be restated as a requirement that the function C2 be invertible (as well as the original compression C1). If C2 is invertible, then the original image may be found by using the ‘unembedding’ inverse functions, A′=f1(C2(f(A′,I)) These steps will be more fully detailed below.
The embedding methods referred to may be standard steganographic embeddings such as the LSB (least significant bit) encoding into DCT coefficients, shown in
The process of decoding is basically the inverse of the encoding process, with the final result ensured due to the inevitability of the second encoding step as described above. The steps consist of:
Various types of cards may be implemented with the system described above including admission tickets, entry cards, membership cards, discount cards, coupons, debit cards, food stamps, ecash, scratch cards, and credit cards.
As will be appreciated, more than one scratch card type may be implemented by the IBP, including multiple use cards and several types of single use cards. The card behavior is determined by the card type as follows:
These cards can be used by several users, for instance being forwarded by email or transferred by any other data transfer method. This process may occur multiple times, until an optional expiration condition is fulfilled. Thus a counter may be implemented by the method of the invention, with count information being stored either in the hidden card information, on a server, or elsewhere.
In this embodiment of the invention, a card can be used only once by each user, but multiple users may use a given card.
The single-use single-user cards are limited to use by its (single) owner, which will generally be the user that requested or got it originally from the system. In some embodiments of the invention, verification is carried out by the device application, for example while loading the card. In this case the user knows immediately whether card is valid or not.
In addition to the various usage and owner possibilities mentioned above, forwarding options may be implemented as described hereinafter:
In some embodiments of the invention, forwarding of scratch cards (e.g. from user to user) is not allowed. This is accomplished by means of the authentication step requiring a particular L-code (based on MAC address or the like), whereby any user other than the intended recipient will not be able to reveal the hidden contents of the card.
In other embodiments of the invention, forwarding of scratch cards is allowed. In these cases several possibilities are within provision of the invention, including direct and indirect forwarding as described below.
Direct Forwarding—In this variation of the method of the invention, the user gets the actual scratch card from a friend or other forwarding party, via email or other data transfer method. The device application identifies that this is a forwarded scratch card, and extracts the associated data accordingly, in light of the information that this is a forwarded scratch card. The forwarding information, possibly including sender, recipient, number of forwards, and the like may be stored within the card itself, either in hidden or revealed data portions thereof, and/or on a server, and/or elsewhere.
Indirect Forwarding—In this embodiment of the invention, the user receives a link and issues a request based on link parameters. This link contains, for example, a pointer to a scratch card in a centralized database which is managed by a web service or other entity. The user may then log in and download a card image produced by the service.
It is within provision of the invention to provide a validation step allowing the system operator to verify the identity of a given scratch card holder or other entity attempting to redeem a scratch card. This validation step is implemented in one embodiment of the invention as follows:
Each time an image is loaded, a secure database is updated. When a scratch card is loaded by a local device application (LDA) for the first time, the following is validated:
As part of the LDA interface, a ‘redeem’ button may be implemented. When the user taps this “Redeem” button and chooses a redemption method (if more than one is allowed), the following validation checks are done by the device application:
The aforementioned checks can be performed locally (on the local device), remotely (e.g. on a server), or both. Then, if possible, the scratch card is replaced with a new one. If not, the secured DB is updated.
To complete the validation process the scratch card unique ID, which may be composed of several parameters, is transferred through the network to the server for validation in the centralized scratch card database (see Redemption step below). This occurs for example at the point-of-sale, using one or more communication and verification methods such as barcode scanning, near-field communication such as RFID, Bluetooth, wireless lan, SMS, or other means as will be obvious to one skilled in the art.
It is within provision of the invention that the scratch cards can carry commercial data. This data is part of the card's, associated data. Commercial data can appear on the scratch card in two ways:
Data is shown on the card's front side (to all users, always).
Data is hidden, and functions as a “secondary scratch card”—namely, data is revealed after ‘scratching’ the hidden area or otherwise revealing the hidden data by a user that is not the original ‘owner’. In this case the revealed data may be different than the data revealed to the original ‘owner’ user.
In some embodiments of the invention, a local device application is installed on the user's device, running locally and in communication with a local secure database. Each device has a unique application or copy of the application, which may be vendor dependent.
Using the device application, the user can register with the scratch card service, load a scratch card from remote or local storage on the device or Flash memory), and store a scratch card to local or remote storage.
The user interface for the local device application will in some embodiments have provision for:
In addition to the local device application, a remote server-based application is provided by the invention. This constitutes, in some embodiments, a web service to manage the scratch card life cycle, which consists of design, management and dispatch. The web service will in some embodiments manage a database of registered users.
In some embodiments of the invention, the user has to go to point-of-sale with the device to redeem a winning scratch card. In some embodiments of the invention, redemption requires use of the device application (for local authentication, depending on the scratch card type). In this case, one or more scratch card's data (from the card's associated data fields) are transferred to identify and authenticate the card.
It is within provision of the invention to use several redemption methods, including but not limited to:
The redemption method for a given scratch card is defined by the producer of the scratch card at the time of its production or, in some embodiments, afterwards.
It is within provision, of the invention that a single scratch card can support one or more redemption method.
To illustrate the steps involved in use of the invention, reference is made to the flow chart of
Once a user has obtained card having some redeemable value, the user may redeem this value for instance at a point of sale. The card is verified by means of bar code, passcode, biometric ID, or other means as will be obvious to one skilled in the art. Once verified, the user may then be given or transferred the item(s) won, for instance by transfer of money to a user's account, by giving the user a won object, or the like.
The user will generally have to undergo a registration step as shown in
If a user changes his/her device, an update of details should be performed to once again associate the user ID information and device identification information (such as MAC address).
The flow chart of
One possible sequence of events involved in revealing the hidden information is detailed in the flow chart of
The user may redeem a winning card as follows, with reference to
The validation step of the invention is shown in the flow chart of
It is within provision of the invention that the method be carried out by means of software running on dedicated machines. It is further within provision of the invention that the method be The algorithm can be implemented in Hardware (FPGA, ASIC, or the like.)
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/IL11/00428 | 6/1/2011 | WO | 00 | 12/7/2012 |
Number | Date | Country | |
---|---|---|---|
61352838 | Jun 2010 | US |