The foregoing and other embodiments of the invention are hereinafter discussed with reference to the drawings. The components in the drawings are not necessarily to scale, emphasis instead being placed upon clearly illustrating the principles of the present invention. Likewise, elements and features depicted in one drawing may be combined with elements and features depicted in additional drawings. Moreover, in the drawings, like reference numerals designate corresponding parts throughout the several views.
The present invention provides a system and method to allow a multimedia content provider to verify that a particular item of multimedia content has been rendered on a particular device, without the need to provide differentiated copies of the multimedia content. Since broadcast and/or distributed copying is much more efficient than providing individualized content blocks, there are many potential applications for the present invention. For example, the present invention is applicable to a wide variety of media (e.g., television, digital multimedia content, radio, streaming video, streaming audio, DVD's, CD's, videocassettes, and the like). The present invention provides a system and method for proving or verifying (also referred to herein as “authenticating”) that a particular item of multimedia content, available either by broadcast or by distribution of undifferentiated copies, was viewed (rendered) by a particular device.
Referring to
While the above example illustrates an application directed to broadcast television, the invention is especially adaptable to multi-mode devices, e.g. electronic equipment such as mobile radio terminals equipped with television/video decoding abilities. For example, as shown in
The network infrastructure 26 includes one or more application servers, which are indicated generally by the numeral 28, and a storage device 30, such as a memory for storing data accessible or otherwise usable by the application servers 28. At least one of the application servers is a multimedia server 32. The multimedia server 32 is capable of broadcasting multimedia content through the mobile network 22 to one or more mobile radio terminals 24. The application servers 28, including the multimedia server 32, are computer servers that may serve one or more different functions in the communication system.
Referring to
As illustrated in
The mobile telephone 50 includes a display 54. The display 54 displays information to a user such as operating state, time, telephone numbers, contact information, various navigational menus, status of one or more functions, etc., which enable the user to utilize the various features of the mobile telephone 50. The display 54 may also be used to visually display content accessible by the mobile telephone 50, as well as display end-user codes in accordance with aspects of the present invention. The displayed content may include E-mail messages, audio and/or video presentations stored locally in memory 64 (
The mobile telephone 50 further includes a keypad 56 that provides for a variety of user input operations. For example, the keypad 56 may include alphanumeric keys for allowing entry of alphanumeric information such as user-friendly identification of contacts, E-mail addresses, distribution lists, telephone numbers, phone lists, contact information, notes, etc. In addition, the keypad 56 typically may include special function keys such as a “call send” key for transmitting an E-mail, initiating or answering a call, and a “call end” key for ending, or “hanging up” a call. Special function keys may also include menu navigation keys, for example, for navigating through a menu displayed on the display 54 to select different telephone functions, profiles, settings, etc., as is conventional. Other keys associated with the mobile telephone 50 may include a volume key, audio mute key, an on/off power key, a web browser launch key, an E-mail application launch key, a camera key, etc. Keys or key-like functionality may also be embodied as a touch screen associated with the display 54.
The mobile telephone 50 also includes conventional radio and signal processing circuitry that enables the mobile telephone 50 to establish a call, transmit and/or receive E-mail messages, download multimedia content and/or exchange signals with a remote device, typically another mobile telephone or landline telephone. However, the remote device need not be another telephone, but may be some other electronic device such as an Internet web server, E-mail server, content providing server, etc.
Referring to
The memory 64 may be any suitable memory device. For example, the memory 64 may be, for example, random access memory, read only memory, a buffer, a flash memory, a hard drive, a removable media, a volatile memory and/or a non-volatile memory. In order to carry out the various functions described herein, the memory 24 may include one or more computer application 66 (or sub-applications) to achieve the functionality described herein. For example, as detailed below, computer application 66 may include computer code for: extracting a coded embedded in multimedia content and performing a hash algorithm.
Continuing to refer to
The mobile telephone 50 also includes the aforementioned display 54 and keypad 56 coupled to the control circuit 70. The mobile telephone 50 further includes an I/O interface 82. The I/O interface 82 may be in the form of typical mobile telephone I/O interfaces, such as a multi-element connector at the base of the mobile telephone 50. As is typical, the I/O interface 82 may be used to couple the mobile telephone 50 to a battery charger to charge a power supply unit (PSU) 84 within the mobile telephone 50. In addition, or in the alternative, the I/O interface 82 may serve to connect the mobile telephone 50 to a wired personal hands-free adaptor, to a personal computer or other device via a data cable, etc. The mobile telephone 50 may also include a timer 86 for carrying out timing functions. Such functions may include timing the durations of calls, generating the content of time and date stamps, etc.
The mobile telephone 50 may include various built-in accessories, such as a camera 86 for taking digital pictures. Image files corresponding to the pictures may be stored in the memory 64. In one embodiment, the mobile telephone 50 also may include a position data receiver (not shown), such as a global positioning satellite (GPS) receiver, Galileo satellite system receiver or the like.
An exemplary method 100 in accordance with the invention is illustrated in
Preferably, the multimedia data format provides a technique for embedding the master code in such a way that it is associated with a particular time or range of times in the playback of the multimedia content. In this way, the master code may be only operable for a brief period of time. In addition, for some applications, it might be desirable to encrypt the master code so that it cannot be separated easily from the multimedia content outside the rendering device. As one of ordinary skill in the art will appreciate, this encryption might be in conjunction with encryption of the multimedia content itself, or it might be performed independently.
At step 104, a rendering device capable of recognizing the master code receives the multimedia content having the embedded master code provided from step 52. As stated above, the rendering device may receive the multimedia content from any suitable interface (e.g., cellular radio circuit 76, WLAN adapter, Bluetooth adapter, etc.) The rendering device extracts the master code and processes it in a predetermined manner, as set forth below.
At step 106, the master code is combined with a device identifier. The device identifier can be any type of identifier that is capable of identifying at least one attribute associated with the device. Exemplary device identifiers may include a device serial number, model number, phone number, contact name, manufacturer name, etc. The resulting combination is processed using a hash algorithm. Any hash algorithm may be used in accordance with the present invention. Exemplary hash algorithms include MD2, MD4, MD5, SHA-1, SHA-2, SHA-256, SHA-384, SHA-512, RIPEMD-128, RIPEMD-160, RIPEMD-256, RIPEMD-320, PANAMA, TIGER and/or a combination thereof. The result of this step may be a unique or a quasi-unique code (the “end-user code”) dependent on the rendering device and the hash algorithm. One of ordinary skill in the art will readily appreciate that extraction and processing of the embedded code and/or device identifier may occur in one or more computer programs and/or subprograms 66 located in memory 64.
At step 108, the end user code is presented to the end user in a user sensible format. The user sensible format may be visual, audible and/or combination of visual and audible formats. For example, a video player rendering device might be programmed to display a numeric code superimposed on the video image, or even formatted within a special field of the video image to display the end user code. The end user code may be designed to correspond to alphanumeric characters, so that the display could be of alphanumeric characters. The end user code may also be converted into speech that may be played through an audio output. One of ordinary skill in the art will readily appreciate that presentation of the end user code may be in any suitable manner that allows the end user a way to access the end user code and the precise details may depend on the application.
The hash algorithm is effectively a one-way function. A value is processed by the hash program and another value is output. In many cases, even if the precise details of the hash algorithm are known, it is effectively impossible to obtain the input value based solely on the output value of the hash algorithm. The effect of combining the master code with a device identifier is to generate a more-or-less unique output from the hash algorithm that has at least two desirable characteristics: (1) it provides little or no information about the master code, and (2) it provides an easy means for someone with knowledge of the master code to verify that it has been processed by a particular device.
For example, the prior art fast food advertisement described above could be enhanced and implemented using the present invention in the following manner. This example assumes that the electronic devices (e.g., DVRs, mobile telephones, etc.) are suitably programmed to extract the master code embedded in the multimedia content, to combine the master code with a device-specific identifier, and to process the resulting combination with a suitable hash algorithm as set forth above. Viewers A and B are watching the same multimedia content on separate televisions having separate enabled-DVRs. The multimedia content embedded with a master code is processed separately by the enabled-DVRs, each having a different device identifier. Each of the enabled-DVRs processes the master code and its device identifier through a hash algorithm, and the corresponding end user codes are displayed on Viewer A's and Viewer B's televisions. Instead of being identical, the end user codes are distinct.
Viewers A and B may now be asked to access a website associated with the advertisement. The viewers are prompted to enter the end-user code that was displayed on their enabled-DVR, as well as the device identifier associated with their enabled-DVR. As one of ordinary skill in the art will appreciate, the device identifier could be the viewer's phone number (which is programmed into the enabled-DVR so that it be automatically accessed by the algorithm), a portion of the enabled-DVR serial number, or any other more-or-less unique number that is stored in the enabled-DVR for use by the hash algorithm. The associated website server application, which has knowledge of the master code, can simply repeat the process that was performed on the viewer's enabled-DVR (e.g., combine the master code with the device identifier and process the combination through the hash algorithm). If the result matches the end-user code that was reported by the viewer, a match is determined. If the result is different than the reported end-user code, no match is determined.
If the advertiser is concerned about viewers sharing the viewer's unique data (e.g., the viewer's end user code, device identifier, telephone number, etc.) with others, the application server can be programmed to reject future inquiries that supply an identical device identification number. Thus, each applicant to advertiser's website must have actually viewed the multimedia content on his or her own rendering device.
The combination of the master code with the device identifier may be obtained by any desirable technique. For example, the combination may be performed by simply concatenating the master code and the device identifier, although any number of mathematical or numerical methods may be used. Optionally, the combination may further include “padding,” i.e. the concatenation or insertion of known digits or bits to produce a resulting combination with a desired length. Other much more complicated combinations might also be desirable to optimize two characteristics of the hash algorithm that might be of varying importance depending on the particular application. The first characteristic is the irreversibility of the process. Some hash algorithms are inherently harder to reverse than others, although it is generally true that for any given hash output, there are a number of inputs that could have produced it. This is especially true if the input length is variable—then potentially an infinite number of inputs can produce a given output. This characteristic might be more or less important depending on how much value the user of this system places on keeping the master code absolutely secret. The second characteristic is the apparent “randomness” of the output. Since multiple inputs can produce the same output, there is some chance that the televisions of two different viewers will display exactly the same end-user codes, even though different device-specific identifiers are used. The likelihood of this occurrence can be adjusted by careful selection of the hash algorithm and the technique used for combining the master code with the device identifier. Many applications may not require a very low rate of duplicate outputs. Even if there are duplicate outputs the authentication process described above is unaffected. For example, as each viewer accesses the associated website and enters his end-user code and individual device identifier number, the advertiser's application server will determine whether the entered information is a match thus authenticating each viewer properly, even when multiple devices output the same end-user code. If another person who has not viewed the multimedia content, attempts to submit the same end-user code, but along with his or her own device identifier (e.g., serial number, phone number, etc.), he or she will most likely fail the authentication process.
The problem that someone might guess a device identifier that will combine with the master code to yield the correct end user code is substantially reduced. This probability can easily be reduced to negligible dimensions depending on the application by appropriate choice of the hash algorithm and combination technique.
Specific embodiments of an invention are disclosed herein. One of ordinary skill in the art will readily recognize that the invention may have other applications in other environments. In fact, many embodiments and implementations are possible. The following claims are in no way intended to limit the scope of the present invention to the specific embodiments described above. In addition, any recitation of “means for” is intended to evoke a means-plus-function reading of an element and a claim, whereas, any elements that do not specifically use the recitation “means for”, are not intended to be read as means-plus-function elements, even if the claim otherwise includes the word “means”. It should also be noted that although the specification lists method steps occurring in a particular order, these steps may be executed in any order, or at the same time.
Computer program elements of the invention may be embodied in hardware and/or in software (including firmware, resident software, micro-code, etc.). The invention may take the form of a computer program product, which can be embodied by a computer-usable or computer-readable storage medium having computer-usable or computer-readable program instructions, “code” or a “computer program” embodied in the medium for use by or in connection with the instruction execution system. In the context of this document, a computer-usable or computer-readable medium may be any medium that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The computer-usable or computer-readable medium may be, for example but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or propagation medium such as the Internet. Note that the computer-usable or computer-readable medium could even be paper or another suitable medium upon which the program is printed, as the program can be electronically captured, via, for instance, optical scanning of the paper or other medium, then compiled, interpreted, or otherwise processed in a suitable manner. The computer program product and any software and hardware described herein form the various means for carrying out the functions of the invention in the example embodiments.