Referring now to
Label 14 is connected to embedded processor and radio system 19. Embedded processor and radio system 19 includes a receiver and transmitter for communicating with point-of-sale radio device 20. Point-of-sale radio device 20 may be, for example, an RF system for retrieving data from the embedded processor and sending validated data back to the embedded processor. In another example, the point-of-sale device may include a near-field-communication (NFC) device. Embedded system 19 may be integrally formed with the label, or may be otherwise provided in or on the product. Embedded processor system 19 cooperates with an associated point of sale RF device 20, and with network operation center 27 to confirm that the product is in a state for sale, and for setting the changeable indicators to visually announce the product's state. By employing a secured and authenticated communication and validation process, the product's state may be confidently determined and communicated to the consumer.
Embedded processor and radio system 19 may also hold product ID value 21 and encrypted message 23. Product ID 21 and encrypted message 23 may be communicated to a network operations center and used in determining the current state of product 12. Embedded processor 19 also has secret validation data 25 which is locally used by the embedded processor for authenticating communications and validating the product state. Preferably, secret data 25 is stored in a way that is externally inaccessible and unalterable.
In one example of use, product 12 is taken by a consumer from a retail shelf to a point-of-sale terminal. A clerk may scan product 12 using RFID device 20. RFID device 20 cooperates with radio system 19 to retrieve product ID 21, as well as encrypted message 23. RFID device 20 passes product ID 21 and encrypted message 23 to network operations center 27. Network operations center 27 may be local to the retail environment, or it may be remotely located. Network operation center 27 uses product ID 21 to retrieve the decryption key associated with that product. Using this decryption key, network operations center 27 decrypts encrypted message 23. Encrypted message 23 may have specific information regarding product 12, which may include the expiration date of product 12. The network operations center compares the current date to the date extracted from the encrypted message 23, and determines whether product 12 may be properly sold. More specifically, the network operations center has rules 29 which are to be applied to product 12. As illustrated, these rules may include rules concerning expiration, but other rules may be applied. For example, rules may be used which define particular geographies, types of retailers, date ranges, time ranges, or other rules that may apply to product validity.
After comparing the information extracted from the encrypted message to rules 29, network operations center 27 determines whether product 12 may be validly sold. According to this determination, network operations center 27 generates key code 13 and sends key code 13 to RFID device 20. RFID device 20 communicates key code 13 to embedded processor system 19. Embedded processor system 19 has stored validation data 25, which is locally processed with key code 13 to determine if the product may be validly sold. If the product is ready for a valid sale, network operation center 27 generates key code 13 to allow embedded processor 19 to authenticate the pending sale. However, if the product is not-ready for valid sale, network operation center 27 generates key code 13 to cause embedded processor 19 to indicate that the product should not be sold. To reduce the opportunity for an unscrupulous retailer to spoof the validation process, the “good” codes and the “bad” codes are sent in a form such that analysis of the code does not allow a determination of whether a validating or invalidating code has been sent. In this way, only processes operating in embedded processor 19 are able to determine whether key code 13 is a “good” code or a “bad” code.
In a specific example, validation data 25 is a secretly stored value such as a random number. That is, validation data 25 is stored in the embedded processor memory in a way that is unalterable and not externally readable or otherwise accessible. Network operation center 27 is aware of the specific value stored in embedded processor 19. In one example, network operation center 27 has a database that associates product ID values with their respective stored validation data, or has an algorithmic process for determining the stored value. In another example, encrypted message 23 includes an encrypted version of validation value 25. By decrypting message 23, network operation center 27 obtains the proper “good” key for product 12. This latter process thereby avoids having to store and maintain a database of key codes, and instead allows the product itself to maintain the code. Since network operation center knows the “good” validation value stored at the product, it will send that value in the case the sale should proceed, and send a different value if the sale should not proceed.
If the value returned as key code 13 matches validation data 25, then embedded processor 19 determines that product 12 has not expired. In such a case, embedded processor 27 uses power source 22 to change the changeable indicators to indicate that product 12 has been properly sold prior to its expiration date. In another example, network operations center 27 may determine that product 12 has expired, and therefore sends a key code that when processed with validation data 25 causes the embedded processor to change the changeable indicator to show that the product has expired. As shown in
The authentication and validation system and process just described provides a secure and robust process for informing consumers of a product state. Further, the manufacturer may be confident that its products are properly sold, and that important information is being accurately conveyed to consumers. In some situations, however, a less robust and secure process may be sufficient. In these cases, a simplified process may be used. For example, RFID device 20 may only need to retrieve product ID 21 so that the network operations center can look up rules associated with that specific product or class of product. On confirming that the product has satisfied the rules, the network operations center may generate a key code so that RFID device 20 can send a key code to embedded processor 19. In this case, rules 29 can be applied without specific product data being passed to network operations center 27. In another example, RFID device 20 may retrieve only encrypted message 23 from the embedded processor, and network operations center 27 may use the encrypted message to extract product information. Provided the product information complies with rules 29, network operations center 27 generates a key code and passes the key code to embedded processor 19 for further processing. In yet another example, the product information is not stored in an encrypted form, but is stored in a plaintext form. The RFID device may then extract the plaintext product data, and pass that data to the network operations center. The plaintext product information may then be compared to rules, and provided the rules are met, the key code may again be generated. It will be appreciated that the structure and process for the product indicator system 10 is highly flexible, and therefore may be practically implemented in many specific embodiments.
Referring now to
When the product is ready for validation, such as when a consumer moves the product to a point-of-sale terminal, selected value(s) of validity data are read from the product as shown in block 67. This validity data may be read, for example, by an RF device in the point-of-sale terminal. It will be appreciated that other RF devices may be used depending upon a specific point of contact with the product. For example, if a product is being activated in a vending machine, then the RF device may be associated with the vending machine mechanics. If the product is being interrogated at a home environment, then the RF communication may be using an RF reader connected to a consumer's home computer system, which connects to a network operations center through the Internet. It will also be understood that near field communication systems may also be used for reading the validity data. This validity data may be provided in alternative ways. For example, the validity data values may be provided as a product ID, an encrypted message, or a plaintext message. The encrypted messages may include information regarding the product, such as expiration date, or may include information about the secret code, such as a random number. In some cases, the validity data may include multiple values, such as both a product ID and an encrypted message. In other cases, less security authentication is needed, so fewer data items may be used.
After the validity data values have been read from the product, the validity data values are sent to a network operations center as shown in block 69. This network operations center may be local to the retail environment, or more likely is hosted at a remote site. The network operations center receives the validity data, performs any required decryptions, and applies the rules 58 to the validity data as shown in block 72. For example, the rules 58 may state that the product may not be sold after an expiration date, with the expiration date being provided in the validity data received from the product. By applying the rules 58 to the validity data received from the product, the network operations center may determine if the product may be validly sold as shown in block 74. For example, the network operations center may decrypt the validity data to extract an expiration date for the specific product. The expiration date received from the product may be compared to a current date, and if the expiration date has not passed, may determine that the product may be validly sold. If the expiration date has passed, then the network operations center may determine that the product may not be validly sold. Depending on the outcome of the network processes 65, a key code is generated and sent to the product 70 as shown in block 76. The key codes are assembled and communicated in a way that, if intercepted, an analysis of the key codes will not reveal if the key code indicates a valid or invalid product state. It is only by processing within the embedded processor that such a determination is made.
In a specific example, the validity data values sent to the network operation center include both a product ID and an encrypted message that includes an expiration date. The network operations center uses the product ID to retrieve a key code that matches validation data previously stored on the product. Alternatively, the encrypted message may also include an encrypted version of the “good” key code. In this way, the network operations center can decrypt the message to obtain the key, and thereby not have to maintain stored key codes. This key code may be, for example, a random number.
Provided the retrieved expiration date has not passed, the network operations center may then use the retrieved or decrypted key code as the code to be sent back to the product. If the expiration date has passed, another code may be sent for indicating that the product expiration date has passed. The key codes are assembled and communicated in a way that, if intercepted, an analysis of the key codes will not reveal if the key code indicates a valid or invalid product state. It is only by processing within the embedded processor that such a determination is made. The key code is then sent to the product, where certain product processes 63 are performed. More particularly, the network operation center sends the key code to the point-of-sale RF device, which then wirelessly transmits the code to the embedded processor on the product. For example, the embedded processor in the product may receive the key code from the RF device, and compare the received code to stored validation data as shown in block 79. As described above, this stored validation data may be a random number, and if the number received from the network matches the stored random number, then the embedded processor will determine that the sale is valid as shown in block 81. If the sale is valid, the embedded processor uses a power source to set an indicator that marks the product as validly sold as shown in block 83. For example, the embedded processor may use a power source to switch a changeable indicator to indicate that the product has been validly sold. In a similar way, if the key code received from the network does not match the validation data stored at the embedded processor, then the sale is not valid as shown in block 85. In such a case, the embedded processor may use a power source to switch a changeable indicator to indicate to the product should not be sold as shown in block 87. It will be appreciated that the power source may be, for example, a battery stored with the embedded processor, or may be an antenna and power conversion circuitry for converting a received RF signal or EM (electromagnetic) signal to a power signal. These power signals may be applied to the changeable indicator to change the indicator according to the validation determination. In one example, this changeable indicator is an electro-chromic material that changes colors or densities depending upon power applied.
Referring now to
Rules 108 are also stored at a network operations center as illustrated in block 107. These rules contain validation and confirmation rules, such as a rule that states a product may only be validly sold prior to its expiration date. It will be appreciated that other rules regarding times, places, and conditions of sale may be used. These rules 108 are stored with the network operations center, and may be associated with the product or product ID. The network may also store product ID information, decryption key information, as well as code key information.
When the product is presented for sale at a point-of-sale terminal, certain activities occur at the point-of-sale 103, while other activities occur at a corresponding and cooperating network operations center 104. At the point-of-sale location the encrypted validity data is read from the product as shown in block 111. Alternatively, the product ID may also be read from the product, which, as stated above, may enable the network operations center to more efficiently decrypt and validate the validity data. The point-of-sale terminal sends the encrypted validity data to the network as shown in block 113. It will be appreciated that the point-of-sale terminal may have an RF device, such as an RFID reader, for reading the encrypted validity data and product ID from the product, or may use an near field communication device. The point-of-sale terminal is connected to a network connection that couples to a network operations center where rules 108 are stored. The network operations center receives the encrypted validity data 118, and either through algorithmic processes, or by associating a key with a product ID, decrypts the validity data. In the case where the encrypted validity data is an expiration date, the encrypted validity data is decrypted to expose an expiration date. The expiration date is compared to the current date according to the rules for that product as shown in block 122. Provided the product is valid as shown in block 124, the network operations center retrieves a key code for the product as shown in block 126. In the case where the encrypted validity data includes a key code, the encrypted validity data is decrypted to expose a “good” key code. This key is then transmitted through the network and the RF point-of-sale device to the product. It will be appreciated that if the product is not valid to be sold, then a null or different key may be sent. However, it is desirable that any interceptor not be able to discern whether the transmitted key code indicates a valid or invalid sale.
The product has an embedded processor which processes the received key code with the secret plain validity data as shown in block 131. In one case, the validity data may simply be a random number, and if the stored random number is the same as the received key code, the embedded processor is aware that an authenticated approval has been made. In such a case the embedded processor may allow the sale as being valid as shown in block 133, and enable processes to visually mark the product as validly sold as shown in block 135. For example, the embedded processor may use a power source to send a power signal to an electro-chromic material, for activating an indicator showing the product as validly sold. However, if the received key and the stored validity data do not match, then the product may not be validly sold as shown in block 137. In this case, the embedded processor may proceed to activate processes to mark the product as being unsellable as shown in block 139. For example, a power supply may be used to send a power signal to electro-chromic material to activate an indicator on a label that shows that the product is unsellable.
Referring now to
When the product is moved to a point-of-sale terminal, the point-of-sale terminal uses an RF device to read the encrypted message from the product and send the encrypted message to a network operations center as shown in block 163. The point-of-sale terminal then waits as shown in block 165, or proceeds to collect other information needed from the consumer to consummate the sale. The network operations center decrypts the encrypted message to obtain the expiration date as shown in block 168. The network operation center may algorithmically determine the proper decryption key, for example by sequentially applying possible decryption keys, or may use other product data to identify a specific or small set of decryption keys. The decrypted message has information regarding the expiration date of the product. The network operations center then applies a rule to compare the current date to the decrypted expiration date as shown in block 171. In some cases, the random number may also have been encrypted within the encrypted message, and if so, the random number may be verified as shown in block 173. This optional step further authenticates and secures the validation process. This random number is like the random number plaintext key that is secretly stored in the embedded processor, and so may be used as the “good” or valid key code.
If the product is being sold prior to its expiration date, the plain text key indicative of the random number will be sent as shown in block 175. However, if the network determines that the date has expired, or cannot authenticate the process, then a bad or null key is sent as shown in block 177. These network operations 156 are thereby used to authenticate the transaction as well as validate and confirm that the product is in proper state for sale. At the point-of-sale 154, the key code is received from the network operations center as shown in block 181. The key code is wirelessly transmitted from the point of sale terminal to the embedded processor using, for example, an RFID device. The received key is compared to a plain text key stored within the embedded processor as shown in block 183. Although a simple comparison is contemplated, it will be understood that more sophisticated logic may be applied. If the plain text key matches the received key, then the embedded processor uses a power supply to activate a “good” indicator as shown in block 158. However, if the plain text key does not match the received key, then the embedded processor uses the power supply to activate a “bad” indicator as shown in block 188. It will be appreciated that the indicator may be, for example, an electro-chromic material that changes color or density or reflectivity based on its state. It will also be appreciated that the embedded processor and the power to change the indicator may be provided by converting RF or EM (Electro-magnetic) energy to local power. Co-pending U.S. patent application No. 60/783,705, filed Mar. 17, 2006, and entitled “An RFID System for Providing Data and Power”, describes structures and process for converting RF and EM signals to usable local power, and is incorporated herein by reference in its entirety.
Referring now to
Referring now to
The network 258 receives the product identifier and selects an appropriate rule to apply as shown in block 281. The product identifier may also be associated with a particular decryption key, and that decryption key may be used to decrypt the message as shown in block 283. In one example, the decrypted message includes an expiration date, and a rule is applied to see if the expiration date has passed as shown in block 285. It will be understood that other rules may be applied. Once the rule has been applied, the network operations center may determine if a sale is authorized in block 287. If the sale is authorized, the network operations center may retrieve a text message associated with the product ID. This product ID has been previously stored, and is the same as the plain text key stored in a secret location at the product. This text message is returned to the point-of-sale terminal as shown in block 289. The point-of-sale terminal transmits the text message to the embedded processor in the product and the embedded processor processes the received text message as shown in block 292. In a simple example, if the returned text message matches the stored plain text key, then the embedded processor is aware that the product may be validly sold. In a similar manner, if the keys do not match, then the product may not be validly sold. Depending on the product state, the embedded processor uses a power supply to change an indicator to show the consumer product state as shown in block 294. For example, the embedded processor may set an electro-chromic material to a state that indicates a product has been validly sold, or alternatively, set the electro-chromic material to a state that shows the product has expired.
Referring now to
If the “good” key code is received at the embedded processor for the product, the embedded processor uses local power to set the state of changeable indicator to reveal the activation code, as shown at 308. Here, an electro-chromic material has been changed to reveal code 309. Although the code is shown as textual, it will be appreciated that the code may be alternatively revealed. If the “bad” code is received at the embedded processor for the product, the embedded processor uses local power to set the state of changeable indicator to reveal an “invalid” message, as shown at 313. Here, an electro-chromic material has been changed to reveal an “illegal copy” message. Although the message is shown as textual, it will be appreciated that the message may be alternatively revealed.
While particular preferred and alternative embodiments of the present intention have been disclosed, it will be appreciated that many various modifications and extensions of the above described technology may be implemented using the teaching of this invention. All such modifications and extensions are intended to be included within the true spirit and scope of the appended claims.