Abstract:
An apparatus, method and system is provided for generating an optical code where a portion of the information stored in the optical code is encrypted prior to being stored in the optical code. In accordance with an aspect of the invention, a portion of the information stored in the optical code is encrypted to prevent the fraudulent creation of an optical code or use of the optical code on an item it was not created for or indented to be used with.

Description:
RELATED APPLICATION 
       [0001]    The present application is related to U.S. patent application Ser. No. ______, concurrently filed with this application and entitled “AN APPARATUS, METHOD AND SYSTEM FOR READING AN OPTICAL CODE WITH AUTHENTICATABLE INFORMATION.” The present application and the related application are commonly assigned. 
     
    
     FIELD OF THE INVENTION 
       [0002]    The present invention relates generally to optical codes. More particularly, but not exclusively, the invention relates to preventing the fraudulent use of information stored in an optical code. 
       BACKGROUND 
       [0003]    Any discussion of prior art throughout the specification should in no way be considered as an admission that such prior art is widely known or forms part of common general knowledge in the field. 
         [0004]    Point of sale (POS) terminals are used throughout the retail industry to process purchase transactions. A POS terminal typically includes a personal computer (PC) core in a chassis, one or more displays, an optical code scanner with weigh scale, a cash drawer, a magnetic stripe reader (MSR), keyboard and a printer. The POS terminals can either be self-service or assisted service. 
         [0005]    The optical code scanner includes an imaging scanner and may also include a laser scanner. The two scanners use different technologies to independently read optical codes such as barcodes presented to the scanner. The laser scanner reads a barcode by sweeping a beam of laser light across a barcode, capturing data representing the reflected laser light, and then processing the captured data to recover information encoded in the barcode. An imaging scanner reads a barcode by capturing a complete image of the barcode and then processing the image to recover information encoded in the barcode. 
         [0006]    Optical codes, such as barcodes, are generally affixed to or printed on items being presented to a POS terminal for purchase. The optical codes include information about the item they are affixed to or printed on. This information can include identification information for the item and the weight of the item if it is prepackaged and sold by weight. Some retailers have experienced a type of fraud where a person presents a false optical code, sometimes on a cell phone, instead of scanning the actual item being presented to the POS terminal for purchase. The false optical code has weight information that either matches or is approximately equal to the actual item so a weigh scale of POS terminal does not detect the substitution. 
         [0007]    Therefore, to prevent the above fraud, as well as other related frauds, there is a need to determine if an optical code that is being presented to a POS terminal for scanning corresponds to the item being presented for purchase. 
       SUMMARY OF THE INVENTION 
       [0008]    It is an object of the present invention to overcome or ameliorate at least one of the disadvantages of the prior art, or to provide a useful alternative. 
         [0009]    Among its several aspects, one embodiment of the present invention recognizes the need to prevent the use of a false optical code to identify an item. A false optical code is an optical code not authorized to be used to identify an item. A false optical code can be in printed form or displayed on an electronic device such as a cell phone. A false optical code may include inaccurate or false information and when used to identify an item causes the item to be misidentified or mispriced or both. One aspect of the present invention generates an optical code where a portion of the information included in the optical code is encrypted. The type of cryptography used authenticates the encrypted data and thus prevents unauthorized parties from generating encrypted data to create a false optical code or from using an optical code from another item. 
         [0010]    In still another embodiment, two optical codes are used. One or both of the optical codes includes encrypted data and the data from both optical codes are required before the encrypted data can be decrypted and authenticated. 
         [0011]    In accordance with an embodiment of the present invention, there is provided a scaling and labeling apparatus for generating and printing an optical code with encrypted data. The scaling and labeling apparatus including a computer memory adapted to store computer data and computer executable instructions; a weigh scale device adapted to determine the weight of items placed on the scale; a label printer device adapted to print labels with information about the items placed on the scale; and a processor in communication with the memory, weigh scale and label printer where the processor executes the instructions and where the instructions cause the processor to receive a weight for an item placed on the scale, calculate a total price of the item using the received weight, encrypt data related to the item where the data includes the item weight, generate a first optical code including the encrypted data and print using the label printer a first label that includes the first optical code. 
         [0012]    A more complete understanding of the present invention, as well as further features and advantages of the invention, will be apparent from the following Detailed Description and the accompanying Drawings. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0013]    The aspects of the claimed invention can be better understood with reference to the Drawings and the Detailed Description. The Drawings are not necessarily drawn to scale. Throughout the Drawings, like element numbers are used to describe the same parts throughout the various drawing, figures and charts. 
           [0014]      FIG. 1  is a high-level drawing in block form illustrating an exemplar embodiment of a scaling and labeling system. 
           [0015]      FIG. 2  is a high-level flow chart illustrating an exemplar method for generating a label for a variable weight item. 
       
    
    
     DETAILED DESCRIPTION 
       [0016]    In the following description, numerous details are set forth to provide an understanding of the claimed invention. However, it will be understood by those skilled in the art that the claimed invention may be practiced without these details and that numerous variations or modifications from the described embodiments are possible. 
         [0017]    The term optical code, as used herein, includes both one and two dimensional barcodes. In addition, two dimensional barcodes include Quick Response (QR) codes and Data Matrix codes. The term optical code is not intended to be limited to just these examples but include machine readable codes that provide unique information or identification. 
         [0018]    Turning to  FIG. 1 , there is provided a high-level drawing in block form illustrating an exemplar embodiment of a scaling and labeling system  100 . The system includes a computer server  180  connected to a scaling and labeling device  105  over a computer network  175 . The computer server  180  receives and sends data to the scaling and labeling device  105 . The scaling and labeling device  105  include a processor module  115 , a weigh scale  145 , a label printer  150 , communications controller  155  and a user display/touch screen  160 . 
         [0019]    Within the processor module  115 , there is included a processor  120 , a memory  125  and control circuitry  130 . The memory  125  includes both volatile and non-volatile memory. Software stored in the memory  125  is executed by the processor  120  and causes the processor  125  to control the devices and operation of the scaling and labeling device  105 . The control circuitry  130  provides an interface between the processor  120  and the memory  125  and between the processor  120  a data bus  140  used to communicate with other devices that comprise the scaling and labeling device  105  including but limited to the weigh scale  145 , the label printer  150 , the communications controller  155  and the user display and touch screen  160 . In some embodiments, all or a portion of the memory  125  is connected directly to the processor  120 . 
         [0020]    The scaling and labeling device  105  is used to determine the weight of a packaged item  165  where the item  165  is sold by weight. The weight of these items varies so the actual weight must be determined before the total price of each item can be calculated. Examples of such items include packaged meat, packaged cheeses and packaged deli products. The item  165  is placed on the weigh scale  145  and the weight of the item  165  is determined. The processor  120  receives the weight of the item  165  from the weigh scale  145  and then calculates a total price for the item  165  using the item&#39;s weight and a unit weight price for the item  165 . The processor  120  then generates a unique price label  170  for the item  165  and prints the label  170  using the label printer  150 . The unit weight price is entered on the touch screen  160  or retrieved from the computer server  180 . The processor  120  displays information including item weight and total price on the user display  160 . 
         [0021]    Included on the price label  170  is human readable information such as the unit price, total price, total weight and item identification information. The price label  170  further includes an optical code  171  that is generated by the processor  120 . The optical code  171  includes item identification information, price and weight information. In some embodiments, the optical code  171  also includes additional information such as an expiration date. 
         [0022]    A portion of the information stored in optical code  171  is encrypted by the processor  120 . The information is encrypted using a public-key cryptography system. A public-key cryptography system uses matched public and private keys to encrypt/decrypt data and authenticate the party that encrypted the data. In a public-key cryptography system, a party uses a private key of a key pair to encrypt data and publishes a matched public key of the key pair that is used to decrypt the encrypted data. The public key is the only key that will decrypt the data and the public key cannot be used to encrypt false data that is substituted for the encrypted data. The private key is kept secret but the public key is general available to anybody that has a legitimate need for it. Because only the public key can decrypt data encrypted by the matching private key, being able to successfully decrypt the data proves that the data was encrypted by the private key and generally used to authenticate the source of the data. 
         [0023]    In some embodiments, the process of encrypting the data includes performing a hashing function on some or all of the information stored in the optical code. A hashing function is cryptographic function that processes data to generate a unique signature, sometimes referred to as a hash. Generally, the hashing function is performed on information that will not be encrypted and/or information prior to being encrypted. Examples of hashing functions include MD5, SHA-3 and BLAKE. In the embodiment, the hashing function produces a first unique signature that is included as part of the encrypted data stored in the optical code. When the optical code is read, the encrypted data is also read and then decrypted using the matching public key. The hashing function is then performed on some or all of the decrypted data along with the data that was not encrypted to create a second unique signature. If the first and second unique signatures are identical, the encrypted data has been properly decrypted and the data has not been altered since the original hashing function was performed. 
         [0024]    The portion of the information stored in the optical code that is never encrypted or decrypted is referred to as clear text. The portion of the information stored in the optical code that is encrypted is referred to as plain text before it is encrypted and after it is decrypted and as encrypted data when it is encrypted. 
         [0025]    In some embodiments, a party identifier is stored in the optical code  171 . The party identifier is stored in clear text (never encrypted) and is associated with a party that generated the encrypted data. The party may be a company that packages, weighs and labels items or a company that contracts to have the work performed. In one example, the company is a store where items are packaged, weighed, labeled and placed on display for purchase. Items are then selected and presented to a POS terminal to be scanned for purchase. In another example, the company is a suppler to a store where the item is shipped to the store and placed on display for purchase. The item is then selected and presented to a POS terminal to be scanned for purchase. The party identifier is used by the POS terminal to retrieve or identify a public key that is then used to decrypt the encrypted data stored in the optical code  171 . 
         [0026]    In some embodiments, the process of encrypting the data does not involve using a public-key cryptography system but instead uses a simpler cipher that modifies/encrypts the original data using a first function where a second function can be used to recreate the original data. An XOR cipher is a one example of a function that encrypts and decrypts data but does not use a public key. An XOR cipher encrypts data by applying a bitwise XOR operation to every byte using a given key. The data is decrypted by reapplying the bitwise XOR operation to every byte using the same given key. In these embodiments, the size of the data prior to encryption is the same as after encryption. In addition, embodiments that use this type of cipher generally use one dimensional optical codes and the labeling of an item and the purchase of the item usually occur in the same store. The store can create the given key and make sure it is used to create the labeling for an item and also used by the POS terminals to decrypt the data. Because one dimensional optical codes (barcodes) are used, a laser scanner is able to read them. 
         [0027]    Turning to  FIG. 2 , there is provided a high-level flow chart illustrating an exemplar method for generating a label for a variable weight item. This method is implemented using the scaling and labeling device  105 . In step  200 , the processor  120  receives information associated with an item  165 . The information can be entered on the user display/touch screen display  160  or it can be retrieved from the computer server  180  over the computer network  175  or a combination of both. The entered or retrieved information is associated with the item  165  and includes a description of the item, a price per unit weight and a private encryption key. The scaling and labeling device  105  uses a public/private cryptography system and the private encryption key to encrypt a portion of the information related to the item  165 . 
         [0028]    The cryptography system uses a public key and a matching private key. The private key is used to encrypt data and is kept secret while the public key is made public and is used to decrypt the data. Only matching keys will work to encrypt and decrypt data. In some embodiments the information associated with the item  165  includes party identification information associated with the encryption method. This party information identifies the company that operates the scaling and labeling device  105  and is used to retrieve a public key for the company that matches the private key used to encrypt the data. 
         [0029]    In step  205 , the item  165  is placed on the weigh scale  145  and the processor  120  receives a weight for the item  165  from the weigh scale  145 . In step  210 , the processor displays data for the item  165  on the user display/touch screen  160 . This information includes the weight of the item and the total price calculated by multiplying the weight of the item by the unit price for the item. 
         [0030]    In step  215 , the processor  120  encrypts data related to the item  165 . The data related to the item  165  includes the weight of the item  165 . In some embodiments, the data includes an expiration date that is used to determine when an item can not longer be sold. It also prevents the use of the optical code after the expiration date in a fraudulent manner. In still other embodiments, the data includes identification information about the item  165 . The processor  120  encrypts the data related to the item  165  using the private encryption key and a public/private key cryptography system. In some embodiments, the cryptography system is based on RSA&#39;s public/private key cryptography system. In other embodiments, the cryptography system is based on simple cipher such as an XOR cipher. 
         [0031]    In step  220 , the processor  120  generates a first optical code that includes the encrypted data and non-encrypted data. In step  225 , the processor  120  prints the first optical code  171  on a first label  170  using the label printer  150 . The first label  170  is then applied to the item. In some embodiments, a second optical code is generated and printed on a second label. The second label is then applied to the item  165  generally in an area away from the first label making it difficult for a cell phone to take a photo of both at one time. 
         [0032]    Although particular reference has been made to an embodiment that includes a scaling and labeling device and examples have been provided illustrating the invention in combination with a weigh scale and label printer, certain other embodiments, variations and modifications are also envisioned within the spirit and scope of the following claims. For example, there are embodiments where the invention is used in an automated assembly line and the weight of an item is communicated to the processor so no weigh scale is required. The processor uses the item&#39;s weight to generate the optical code and print a label including the optical code. In some embodiments, the invention includes a label application device that receives a printed label from the printer and automatically applies the printed label to the item. In still other embodiments, different cryptography systems are used encrypt and decrypt data.