Devices and methods are provided for managing identity-based decryption of digital content. A message sender (“Alice”) uses a random key (Krand) to encrypt message content for a message recipient (“Bob”). Then Alice uses the public key of a message decryption service provider (“Carmen”) to generate a wrapped key ciphertext comprising the Krand and authentication information associated with Bob. Alice then sends a message text containing the encrypted message content and the wrapped key ciphertext to Bob, who in turn sends the wrapped key ciphertext to Carmen along with his authentication information. Carmen then uses her private key to process the wrapped key ciphertext to decrypt the Krand and Bob's authentication information. If the authentication information provided by Bob matches the decrypted authentication information, then Carmen sends the decrypted Krand to Bob, who uses it to decrypt the encrypted message content.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention is directed in general to communications systems and methods for operating same. In one aspect, the present invention relates to devices and methods for managing identity-based decryption of digital content.

2. Description of the Related Art

The use of cryptography to protect digital assets and to authenticate a person's online identity has become increasingly popular in recent years. One such approach is public key cryptography, which is based on the concept of asymmetric key pairs. In this approach, a public key and a private key are generated for each user. The public key of a recipient is then used by a sender to encrypt a message, which is then sent to a recipient. In turn, the recipient uses their private key to decrypt the message.

One issue with public key cryptography is verifying, or authenticating, the identities of two parties. One approach to this issue is the creation of a public key infrastructure (PKI), which uses a certificate authority (CA) to bind a public key to the identity of a user. The binding is typically accomplished by using the CA's private key, and a user's public key, to generate a digital certificate that certifies authenticity of the user. In turn, the digital certificate is used by a web browser to authenticate one user (e.g., a sender) to another user (e.g., a recipient).

However, the practical use of public key cryptography for authentication presumes that both parties to a transaction already possess their respective unique key pairs, or alternatively, have access to the means to have them generated when they are needed. Furthermore, users likewise need ubiquitous access to a PKI for authenticating themselves to one another. Yet this is not always the case. As a result, alternative approaches to authentication have been implemented, including identity-based encryption, which allows a user to use their name, network address, or other unique, yet easily provided identifying information, as their public key. The user's corresponding private key is generated by a key generation center and provided to the user in the form of a smart card or token. However, this approach still requires the generation and distribution of the private key to the user, which can be expensive, time consuming, and error-prone. Another approach to authentication is the traditional use of user names, passwords, and other factors to verify the identity of a user. However, these approaches typically do not encrypt content prior to its delivery.

DETAILED DESCRIPTION

Devices and methods are provided for managing identity-based decryption of digital content. In various embodiments, a message sender (“Alice”) populates an identity-based encryption applet with message content and authentication information associated with a message recipient (“Bob”). In one embodiment, the message content comprises plain text. In another embodiment, the message content comprises binary code. In yet another embodiment, the message content comprises a combination of plain text and binary code.

The identity-based encryption applet then generates a random key (Krand), which it then uses to process the message content to generate encrypted message content. The identity-based encryption applet then processes a public key associated with a message decryption service provider (“Carmen”), the Krand, and Bob's authentication information to generate a wrapped key ciphertext. A message text containing the encrypted message content, the wrapped key ciphertext, instructions for Bob, and formatting is then generated by the identity-based decryption applet.

The message text is then sent to Bob in an email message, who then copies the message text from the email into an identity-based decryption applet which then sends the wrapped key ciphertext to Carmen. In turn, Carmen uses her private key to process the wrapped key ciphertext to decrypt the Krand and Bob's authentication information. Bob then provides authentication information. If the authentication information provided by Bob matches the decrypted authentication information, then Carmen sends the decrypted Krand over a secure channel to Bob's identity-based decryption applet. The Krand is then used by the identity-based decryption applet process the content ciphertext to decrypt the message content.

Various illustrative embodiments of the present invention will now be described in detail with reference to the accompanying figures. While various details are set forth in the following description, it will be appreciated that the present invention may be practiced without these specific details, and that numerous implementation-specific decisions may be made to the invention described herein to achieve the inventor's specific goals, such as compliance with process technology or design-related constraints, which will vary from one implementation to another. While such a development effort might be complex and time-consuming, it would nevertheless be a routine undertaking for those of skill in the art having the benefit of this disclosure. For example, selected aspects are shown in block diagram and flowchart form, rather than in detail, in order to avoid limiting or obscuring the present invention. In addition, some portions of the detailed descriptions provided herein are presented in terms of algorithms or operations on data within a computer memory. Such descriptions and representations are used by those skilled in the art to describe and convey the substance of their work to others skilled in the art.

As used herein, the terms “component,” “system” and the like are intended to refer to a computer-related entity, either hardware, software, a combination of hardware and software, or software in execution. For example, a component may be, but is not limited to being, a processor, a process running on a processor, an object, an executable, a thread of execution, a program, or a computer. By way of illustration, both an application running on a computer and the computer itself can be a component. One or more components may reside within a process or thread of execution and a component may be localized on one computer or distributed between two or more computers.

As likewise used herein, the term “node” broadly refers to a connection point, such as a redistribution point or a communication endpoint, of a communication environment, such as a network. Accordingly, such nodes refer to an active electronic device capable of sending, receiving, or forwarding information over a communications channel. Examples of such nodes include data circuit-terminating equipment (DCE), such as a modem, hub, bridge or switch, and data terminal equipment (DTE), such as a handset, a printer or a host computer (e.g., a router, workstation or server). Examples of local area network (LAN) or wide area network (WAN) nodes include computers, packet switches, cable modems, Data Subscriber Line (DSL) modems, and wireless LAN (WLAN) access points. Examples of Internet or Intranet nodes include host computers identified by an Internet Protocol (IP) address, bridges and WLAN access points. Likewise, examples of nodes in cellular communication include base stations, relays, base station controllers, home location registers, Gateway GPRS Support Nodes (GGSN), and Serving GPRS Support Nodes (SGSN).

Other examples of nodes include client nodes, server nodes, peer nodes and access nodes. As used herein, a client node may refer to wireless devices such as mobile telephones, smart phones, personal digital assistants (PDAs), handheld devices, portable computers, tablet computers, and similar devices or other user equipment (UE) that has telecommunications capabilities. Such client nodes may likewise refer to a mobile, wireless device, or conversely, to devices that have similar capabilities that are not generally transportable, such as desktop computers, set-top boxes, or sensors. Likewise, a server node, as used herein, refers to an information processing device (e.g., a host computer), or series of information processing devices, that perform information processing requests submitted by other nodes. As likewise used herein, a peer node may sometimes serve as client node, and at other times, a server node. In a peer-to-peer or overlay network, a node that actively routes data for other networked devices as well as itself may be referred to as a supernode.

An access node, as used herein, refers to a node that provides a client node access to a communication environment. Examples of access nodes include cellular network base stations and wireless broadband (e.g., WiFi, WiMAX, etc) access points, which provide corresponding cell and WLAN coverage areas. As used herein, a macrocell is used to generally describe a traditional cellular network cell coverage area. Such macrocells are typically found in rural areas, along highways, or in less populated areas. As likewise used herein, a microcell refers to a cellular network cell with a smaller coverage area than that of a macrocell. Such micro cells are typically used in a densely populated urban area. Likewise, as used herein, a picocell refers to a cellular network coverage area that is less than that of a microcell. An example of the coverage area of a picocell may be a large office, a shopping mail, or a train station. A femtocell, as used herein, currently refers to the smallest commonly accepted area of cellular network coverage. As an example, the coverage area of a femtocell is sufficient for homes or small offices.

In general, a coverage area of less than two kilometers typically corresponds to a microcell, 200 meters or less for a picocell, and on the order of 10 meters for a femtocell. As likewise used herein, a client node communicating with an access node associated with a macrocell is referred to as a “macrocell client.” Likewise, a client node communicating with an access node associated with a microcell, picocell, or femtocell is respectively referred to as a “microcell client,” “picocell client,” or “femtocell client.”

The term “article of manufacture” (or alternatively, “computer program product”) as used herein is intended to encompass a computer program accessible from any computer-readable device or media. For example, computer readable media can include but are not limited to magnetic storage devices (e.g., hard disk, floppy disk, magnetic strips, etc.), optical disks such as a compact disk (CD) or digital versatile disk (DVD), smart cards, and flash memory devices (e.g., card, stick, etc.).

The word “exemplary” is used herein to mean serving as an example, instance, or illustration. Any aspect or design described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects or designs. Those of skill in the art will recognize many modifications may be made to this configuration without departing from the scope, spirit or intent of the claimed subject matter. Furthermore, the disclosed subject matter may be implemented as a system, method, apparatus, or article of manufacture using standard programming and engineering techniques to produce software, firmware, hardware, or any combination thereof to control a computer or processor-based device to implement aspects detailed herein.

FIG. 1illustrates an example of a system100suitable for implementing one or more embodiments disclosed herein. In various embodiments, the system100comprises a processor110, which may be referred to as a central processor unit (CPU) or digital signal processor (DSP), network connectivity interfaces120, random access memory (RAM)130, read only memory (ROM)140, secondary storage150, and input/output (I/O) devices160. In some embodiments, some of these components may not be present or may be combined in various combinations with one another or with other components not shown. These components may be located in a single physical entity or in more than one physical entity. Any actions described herein as being taken by the processor110might be taken by the processor110alone or by the processor110in conjunction with one or more components shown or not shown inFIG. 1.

The processor110executes instructions, codes, computer programs, or scripts that it might access from the network connectivity interfaces120, RAM130, or ROM140. While only one processor110is shown, multiple processors may be present. Thus, while instructions may be discussed as being executed by a processor110, the instructions may be executed simultaneously, serially, or otherwise by one or multiple processors110implemented as one or more CPU chips.

In various embodiments, the network connectivity interfaces120may take the form of modems, modem banks, Ethernet devices, universal serial bus (USB) interface devices, serial interfaces, token ring devices, fiber distributed data interface (FDDI) devices, wireless local area network (WLAN) devices, radio transceiver devices such as code division multiple access (CDMA) devices, global system for mobile communications (GSM) radio transceiver devices, long term evolution (LTE) radio transceiver devices, worldwide interoperability for microwave access (WiMAX) devices, and/or other well-known interfaces for connecting to networks, including Personal Area Networks (PANs) such as Bluetooth. These network connectivity interfaces120may enable the processor110to communicate with the Internet or one or more telecommunications networks or other networks from which the processor110might receive information or to which the processor110might output information.

The network connectivity interfaces120may also be capable of transmitting or receiving data wirelessly in the form of electromagnetic waves, such as radio frequency signals or microwave frequency signals. Information transmitted or received by the network connectivity interfaces120may include data that has been processed by the processor110or instructions that are to be executed by processor110. The data may be ordered according to different sequences as may be desirable for either processing or generating the data or transmitting or receiving the data.

In various embodiments, the RAM130may be used to store volatile data and instructions that are executed by the processor110. The ROM140shown inFIG. 1may likewise be used to store instructions and data that is read during execution of the instructions. The secondary storage150is typically comprised of one or more disk drives or tape drives and may be used for non-volatile storage of data or as an overflow data storage device if RAM130is not large enough to hold all working data. Secondary storage150may likewise be used to store programs that are loaded into RAM130when such programs are selected for execution. The I/O devices160may include liquid crystal displays (LCDs), Light Emitting Diode (LED) displays, Organic Light Emitting Diode (OLED) displays, projectors, televisions, touch screen displays, keyboards, keypads, switches, dials, mice, track balls, voice recognizers, card readers, paper, tape readers, printers, video monitors, or other wet known input/output devices.

FIG. 2shows a wireless-enabled communications environment including an embodiment of a client node as implemented in au embodiment of the invention. Though illustrated as a mobile phone, the client node202may take various forms including a wireless handset, a pager, a smart phone, or a personal digital assistant (PDA). In various embodiments, the client node202may also comprise a portable computer, a tablet computer, a laptop computer, or any computing device operable to perform data communication operations. Many suitable devices combine some or all of these functions. In some embodiments, the client node202is not a general purpose computing device like a portable, laptop, or tablet computer, but rather is a special-purpose communications device such as a telecommunications device installed in a vehicle. The client node202may likewise be a device, include a device, or be included in a device that has similar capabilities but that is not transportable, such as a desktop computer, a set-top box, or a network node. In these and other embodiments, the client node202may support specialized activities such as gaming, inventory control, job control, task management functions, and so forth.

In various embodiments, the client node202includes a display204. In these and other embodiments, the client node202may likewise include a touch-sensitive surface, a keyboard or other input keys206generally used for input by a user. The input keys206may likewise be a full or reduced alphanumeric keyboard such as QWERTY, Dvorak, AZERTY, and sequential keyboard types, or a traditional numeric keypad with alphabet letters associated with a telephone keypad. The input keys206may likewise include a trackwheel, an exit or escape key, a trackball, and other navigational or functional keys, which may be inwardly depressed to provide further input function. The client node202may likewise present options for the user to select, controls for the user to actuate, and cursors or other indicators for the user to direct.

The client node202may further accept data entry from the user, including numbers to dial or various parameter values for configuring the operation of the client node202. The client node202may further execute one or more software or firmware applications in response to user commands. These applications may configure the client node202to perform various customized functions in response to user interaction. Additionally, the client node202may be programmed or configured over-the-air (OTA), for example from a wireless network access node ‘A’210through ‘n’216(e.g., a base station), a server node224(e.g., a host computer), or a peer client node202.

Among the various applications executable by the client node202are a web browser, which enables the display204to display a web page. The web page may be obtained from a server node224through a wireless connection with a wireless network220. As used herein, a wireless network220broadly refers to any network using at least one wireless connection between two of its nodes. The various applications may likewise be obtained from a peer client node202or other system over a connection to the wireless network220or any other wirelessly-enabled communication network or system.

In various embodiments, the wireless network220comprises a plurality of wireless sub-networks (e.g., cells with corresponding coverage areas) ‘A’212through ‘n’218. As used herein, the wireless sub-networks ‘A’212through ‘n’218may variously comprise a mobile wireless access network or a fixed wireless access network. In these and other embodiments, the client node202transmits and receives communication signals, which are respectively communicated to and from the wireless network nodes ‘A’210through ‘n’216by wireless network antennas ‘A’208through ‘n’214(e.g., cell towers). In turn, the communication signals are used by the wireless network access nodes ‘A’210through216to establish a wireless communication session with the client node202. As used herein, the network access nodes ‘A’210through ‘n’216broadly refer to any access node of a wireless network. As shown inFIG. 2, the wireless network access nodes ‘A’210through ‘n’216are respectively coupled to wireless sub-networks ‘A’212through ‘n’218, which are in turn connected to the wireless network220.

In various embodiments, the wireless network220is coupled to a physical network222, such as the Internet. Via the wireless network220and the physical network222, the client node202has access to information on various hosts, such as the server node224. In these and other embodiments, the server node224may provide content that may be shown on the display204or used by the client node processor110for its operations. Alternatively, the client node202may access the wireless network220through a peer client node202acting as an intermediary, in a relay type or hop type of connection. As another alternative, the client node202may be tethered and obtain its data from a linked device that is connected to the wireless network212. Skilled practitioners of the art will recognize that many such embodiments are possible and the foregoing is not intended to limit the spirit, scope, or intention of the disclosure.

FIG. 3depicts a block diagram of an exemplary client node as implemented with a digital signal processor (DSP) in accordance with an embodiment of the invention. While various components of a client node202are depicted, various embodiments of the client node202may include a subset of the listed components or additional components not listed. As shown inFIG. 3, the client node202includes a DSP302and a memory304. As shown, the client node202may further include an antenna and front end unit306, a radio frequency (RF) transceiver308, an analog baseband processing unit310, a microphone312, an earpiece speaker314, a headset port316, a bus318, such as a system bus or an input/output (I/O) interface bus, a removable memory card320, a universal serial bus (USB) port322, a short range wireless communication sub-system324, an alert326, a keypad328, a liquid crystal display (LCD)330, which may include a touch sensitive surface, an LCD controller332, a charge-coupled device (CCD) camera334, a camera controller336, and a global positioning system (GPS) sensor338, and a power management module340operably coupled to a power storage unit, such as a battery342. In various embodiments, the client node202, may include another kind of display that does not provide a touch sensitive screen. In one embodiment, the DSP302communicates directly with the memory304without passing through the input/output interface318.

In various embodiments, the DSP302or some other form of controller or central processing unit (CPU) operates to control the various components of the client node202in accordance with embedded software or firmware stored in memory304or stored in memory contained within the DSP302itself. In addition to the embedded software or firmware, the DSP302may execute other applications stored in the memory304or made available via information carrier media such as portable data storage media like the removable memory card320or via wired or wireless network communications. The application software may comprise a compiled set of machine-readable instructions that configure the DSP302to provide the desired functionality, or the application software may be high-level software instructions to be processed by an interpreter or compiler to indirectly configure the DSP302.

The antenna and front end unit306may be provided to convert between wireless signals and electrical signals, enabling the client node202to send and receive information from a cellular network or some other available wireless communications network or from a peer client node202. In an embodiment, the antenna and front end unit106may include multiple antennas to support beam forming and/or multiple input multiple output (MIMO) operations. As is known to those skilled in the art, MIMO operations may provide spatial diversity which can be used to overcome difficult channel conditions or to increase channel throughput. Likewise, the antenna and front end unit306may include antenna tuning or impedance matching components, RF power amplifiers, or low noise amplifiers.

In various embodiments, the RF transceiver308provides frequency shifting, converting received RF signals to baseband and converting baseband transmit signals to RF. In some descriptions a radio transceiver or RF transceiver may be understood to include other signal processing functionality such as modulation/demodulation, coding/decoding, interleaving/deinterleaving, spreading/despreading, inverse fast Fourier transforming (IFFT)/fast Fourier transforming (FFT), cyclic prefix appending/removal, and other signal processing functions. For the purposes of clarity, the description here separates the description of this signal processing from the RF and/or radio stage and conceptually allocates that signal processing to the analog baseband processing unit310or the DSP302or other central processing unit. In some embodiments, the RF Transceiver108, portions of the Antenna and Front End306, and the analog base band processing unit310may be combined in one or more processing units and/or application specific integrated circuits (ASICs).

The analog baseband processing unit310may provide various analog processing of inputs and outputs, for example analog processing of inputs from the microphone312and the headset316and outputs to the earpiece314and the headset316. To that end, the analog baseband processing unit310tray have ports for connecting to the built-in microphone312and the earpiece speaker314that enable the client node202to be used as a cell phone. The analog baseband processing unit310may further include a port for connecting to a headset or other hands-free microphone and speaker configuration. The analog baseband processing unit310may provide digital-to-analog conversion in one signal direction and analog-to-digital conversion in the opposing signal direction. In various embodiments, at least some of the functionality of the analog baseband processing unit310may be provided by digital processing components, for example by the DSP302or by other central processing units.

The DSP302may communicate with a wireless network via the analog baseband processing unit310. In some embodiments, the communication may provide Internet connectivity, enabling a user to gain access to content on the Internet and to send and receive e-mail or text messages. The input/output interface318interconnects the DSP302and various memories and interfaces. The memory304and the removable memory card320may provide software and data to configure the operation of the DSP302. Among the interfaces may be the USB interface322and the short range wireless communication sub-system324. The USB interface322may be used to charge the client node202and may also enable the client node202to function as a peripheral device to exchange information with a personal computer or other computer system. The short range wireless communication sub-system324may include an infrared port, a Bluetooth interface, an IEEE 802.11 compliant wireless interface, or any other short range wireless communication sub-system, which may enable the client node202to communicate wirelessly with other nearby client nodes and access nodes.

The input/output interface318may further connect the DSP302to the alert326that, when triggered, causes the client node202to provide a notice to the user, for example, by ringing, playing a melody, or vibrating. The alert326may serve as a mechanism for alerting the user to any of various events such as an incoming call, a new text message, and an appointment reminder by silently vibrating, or by playing a specific pre-assigned melody for a particular caller.

The keypad328couples to the DSP302via the I/O interface318to provide one mechanism for the user to make selections, enter information, and otherwise provide input to the client node202. The keyboard328may be a full or reduced alphanumeric keyboard such as QWERTY, Dvorak, AZERTY and sequential types, or a traditional numeric keypad with alphabet letters associated with a telephone keypad. The input keys may likewise include a trackwheel, an exit or escape key, a trackball, and other navigational or functional keys, which may be inwardly depressed to provide further input function. Another input mechanism may be the LCD330, which may include touch screen capability and also display text and/or graphics to the user. The LCD controller332couples the DSP302to the LCD330.

The CCD camera334, if equipped, enables the client node202to take digital pictures. The DSP302communicates with the CCD camera334via the camera controller336. In another embodiment, a camera operating according to a technology other than Charge Coupled Device cameras may be employed. The GPS sensor338is coupled to the DSP302to decode global positioning system signals or other navigational signals, thereby enabling the client node202to determine its position. Various other peripherals may also be included to provide additional functions, such as radio and television reception.

FIG. 4illustrates a software environment402that may be implemented by a digital signal processor (DSP). In this embodiment, the DSP302shown inFIG. 3executes an operating system404, which provides a platform from which the rest of the software operates. The operating system404likewise provides the client node202hardware with standardized interfaces (e.g., drivers) that are accessible to application software. The operating system404likewise comprises application management services (AMS)406that transfer control between applications running on the client node202. Also shown inFIG. 4are a web browser application408, a media player application410, Java applets412, an identity-based encryption module414, and an identity-based decryption module416. The web browser application408configures the client node202to operate as a web browser, allowing a user to enter information into forms and select links to retrieve and view web pages. The media player application410configures the client node202to retrieve and play audio or audiovisual media. The Java applets412configure the client node202to provide games, utilities, and other functionality. In various embodiments, an identity-based encryption module414and the identity-based decryption module416are implemented to provide functionalities described in greater detail herein. In one embodiment, the identity-based encryption module414, and the identity-based decryption module416are implemented as java applets, such as java applets412. In various embodiments, the client node202, the wireless network nodes ‘A’210through ‘n’216, and the server node224shown inFIG. 2may likewise include a processing component that is capable of executing instructions related to the actions described above.

FIG. 5is a simplified illustration of a set of message flows as implemented in accordance with an embodiment of the invention for managing identity-based decryption of digital content. In this embodiment, a message sender (“Alice”)502first creates message content (‘m’) to be sent to a message recipient (“Bob”)508. Alice502then uses the public key (‘C’) of an identity-based decryption service provider (“Carmen”)′512to encrypt (ENC) the message content ‘m’ and authentication information (‘B’) associated with Bob508with, where t=ENCC(m,B).

In one embodiment, Alice appends a header to the message indicating that it is intended for Bob. In another embodiment, Alice may include other information in the header. This information may include her own identity, the identity of an identity-based decryption service provider (“Carmen”)′512, a validity period, or any other information useful for security purposes, especially for the purpose of authenticating Bob. In these and other embodiments, the other information is encrypted using Carmen's512public key as described in greater detail herein.

Alice then sends the message text (‘t’)506to Bob508, along with unencrypted instructions directing Bob508to ask Carmen512to decrypt it. In to Bob508forwards510it, along with his authentication information (‘AUTB’) to Carmen512, who then uses her private key (‘c’) to process514the message text ‘t’ to decrypt (‘DEC’) the message content ‘m’ and Bob's authentication information ‘B’, where (m,B)=DECc(t). If the authentication information ‘AUTB’ provided by Bob508matches the authentication information ‘B’ associated with Bob508in the decrypted message text, then Carmen512sends the decrypted message content ‘in’ to Bob508over a secure channel (‘SEC’), where SEC(m) refer to secured messages communicated over the SEC. In one embodiment the AUTBprovided by Bob508comprises authentication data provided by a third party. In another embodiment, the AUTBprovided by Bob508comprises authenticating biometric data.

In another embodiment, described in greater detail herein, Alice502the message text ‘t’506to Carmen, and likewise sends a message to Bob508notifying him that an encrypted message awaits him and it will be decrypted by Carmen512once Bob508authenticates himself. Bob508then proves his identity to Carmen512, who then decrypts the message text ‘t’ using her private key. Once the message content ‘m’ is decrypted, it is provided to Bob508by Carmen512over a secure channel.

FIG. 6is a simplified block diagram of an exemplary process flow as implemented in accordance with an embodiment of the invention to manage identity-based decryption of digital content. In this embodiment, a message sender (“Alice”)502uses a client node610to access a server node614operated by a message decryption service provider (“Carmen”)512. Alice502then downloads an identity-based encryption applet612from Carmen's512server node614, and initiates it within a web browser executing in her client node610. Alice then populates the identity-based encryption applet612with message content and authentication information associated with a message recipient (“Bob”)508. In one embodiment, the message content comprises plain text. In another embodiment, the message content comprises binary code. In yet another embodiment, the message content comprises a combination of plain text and binary code.

The identity-based encryption applet612executing in Alice's502web browser then generates a random key (Krand)632, which it then uses to process the message content to generate encrypted message content642. The identity-based encryption applet612then processes Carmen's public key624, the Krand632, and Bob's508authentication information to generate a wrapped key ciphertext. A message634containing the encrypted message content642, the wrapped key ciphertext, instructions for Bob508, and associated message formatting, is then generated by the identity-based encryption applet612. In one embodiment, Bob's508authentication information is incorporated into the encryption parameters. As an example, some encryption schemes, such as Elliptic Curve Integrated Encryption Scheme (ECIES), include a key derivation function that admits as an argument some arbitrary input fields.

The message634is then sent to Bob508as an email message over an unsecured channel. Bob508receives the email message, and in turn, accesses Carmen's512server614to download and initiate an identity-based decryption applet630within a web browser executing in his client node628. Bob508then copies the received message634into the identity-based decryption applet630, but retains the encrypted message content642. In turn, the identity-based decryption applet630sends the wrapped key ciphertext636, without the encrypted message content642, to Carmen's512server node614. Carmen's512server node614then uses Carmen's private key626to process the wrapped key ciphertext636to decrypt the Krand640and Bob's authentication information.

Carmen's512server node614then requests authentication information638from Bob508, which he provides. In one embodiment, the authentication information638was provided by Alice502to Bob508in a verbal communication. In another embodiment, the authentication information638was provided by Alice502to Bob508in a separate email or text message (e.g., a short message service over a mobile device). In yet another embodiment, the authentication information638comprises one or more authentication factors familiar to those of skill in the art. As an example, Bob508may provide a user ID and password, a biometric identifier, or a cryptographic token. Skilled practitioners of the art will recognize that many such embodiments are possible and the foregoing is not intended to limit the spirit, scope or intent of the invention.

If the authentication information638provided by Bob508matches the decrypted authentication information, then Carmen's512server node614sends the decrypted Krand640over a secure channel to the identity-based decryption applet630running in Bob's web browser. Skilled practitioners of the will realize that the Krand632and the Krand640are in fact the same random key. However, as illustrated inFIG. 6, the Krand632represents the random key at the time it is generated by Alice502, and then subsequently encrypted in the wrapped key ciphertext636, and the Krand640represents the same random key after it has been decrypted by Carmen. It will likewise be appreciated that the process Carmen512uses to authenticate the identity of Bob508should be similar in strength of security to the process that a typical certificate authority (CA) uses to authenticate the identity of Bob508when issuing a digital certificate. This process should likewise be similar in strength of security to the process that a trusted authority in an identity-based encryption scheme authenticates the identity of a party to whom it will generate a private key for its identity. The decrypted Krand640is then used by the identity-based decryption applet630to process the content ciphertext to decrypt the encrypted message content642that was previously retained by Bob508. The decrypted message content644is then displayed within the web browser running on Bob's508client node628.

In one embodiment, Alice502maintains the Krand632and Bob508maintains the Krand640decrypted by Carmen512for long-term encryption of multiple ciphertexts, in both directions. Further, using known methods, they can update the shared secret key (Krands632,640) periodically, of even routinely (e.g., with every ciphertext), further mitigating the threat that Carmen512might betray her trusted role and attempt to decrypt Alice's502and Bob's508ciphertext. Likewise, routine rekeying would require Carmen512to intercept and decrypt every ciphertext communicated between Alice502and Bob508in order to be able to decrypt future ciphertexts between each other.

FIG. 7is a simplified block diagram of an alternative process flow as implemented in accordance with an embodiment of the invention to manage identity-based decryption of digital content. In this embodiment, a message sender (“Alice”)502uses a client node610to access a server node614operated by a message decryption service provider (“Carmen”)512. Alice502then downloads an identity-based encryption applet612from Carmen's512server node614, and initiates it within a web browser executing in her client node610. Alice then populates the identity-based encryption applet612with message content and authentication information associated with a message recipient (“Bob”)508.

The identity-based decryption applet610executing in Alice's502web browser then generates a random key (Krand)632, which it then uses to process the message content to generate encrypted message content742. The identity-based encryption applet612then processes Carmen's public key624, the Krand632, and Bob's authentication information to generate a wrapped key ciphertext Message text734containing the encrypted message content742, the wrapped key ciphertext, instructions for Bob, and associated message formatting, is then generated by the identity-based encryption applet612.

The message text731is then sent to Carmen's512server node614in an email message over an unsecured channel. Carmen's512server node614then retains the message text734for future processing instructions. Alice502then sends Bob508a message736to inform him that an encrypted message text is available for retrieval from Carmen's512server node611. In one embodiment, the message736comprises authentication information (e.g., a password) to decrypt and retrieve the message content. In one embodiment, the contents of the message736are provided by Alice502to Bob508in a verbal communication. In another embodiment, the contents of the message736are provided by Alice502to Bob508in a separate email or text message (e.g., a short message service over a mobile device).

Once Bob508receives the message736, he provides authentication information738to Carmen's512server614. In one embodiment, the authentication information comprises one or more authentication factors familiar to those of skill in the art. As an example, Bob508may provide a user ID and password, a biometric identifier, or a cryptographic token. Skilled practitioners of the art will recognize that many such embodiments are possible and the foregoing is not intended to limit the spirit, scope or intent of the invention.

Carmen's512server node614then uses Carmen's private key626to process the message text734to decrypt the Krand632and Bob's authentication information. If the authentication information provided by Bob508matches the decrypted authentication information, then Carmen's512server node614uses the Krand632to decrypt the encypted message content742, which is then sent as decrypted message content744to Bob508over a secure channel. It will be appreciated that the process Carmen512uses to securely deliver the decrypted message content744to Bob508should be similar in strength of security to that of the process used by a trusted authority in an identity-based encryption scheme. The decrypted message content744is then displayed within a web browser730running on Bob's508client node628.

It will be appreciated by those of skill in the art that Carmen512will typically incur some cost for the service that she provides Alice502and Bob508and in most cases. Carmen512would anticipate receiving payment. In one embodiment, Bob508pays for each decryption. In another embodiment, Alice502attaches some kind of receipt of payment, such as a blind signature. In yet another embodiment, Carmen512collects revenue from advertising attached to the service.

FIG. 8is a generalized flowchart of operations performed in accordance with an embodiment of the invention to manage identity-based decryption of digital content. In this embodiment, identity-based decryption operations are begun in step802, followed by a message sender (“Alice”) using a client node in step804to access a server node operated by a message decryption service provider (“Carmen”). In step806, Alice accesses Carmen's server node and then downloads and initiates an identity-based encryption applet within a web browser executing in her client node. Then, in step808, Alice populates the identity-based encryption applet with message content and authentication information associated with a message recipient (“Bob”).

The identity-based encryption applet executing in Alice's web browser then generates a random key (Krand) in step810, which it then uses in step812to process the message content (M) to generate encrypted message content (content_ciphertext), where content_ciphertext=e(Krand)(M). In step814, the identity-based encryption applet then processes Carmen's public key (Kcarmen_public), the Krand, and Bob's authentication information (Bob_info) to generate a wrapped key ciphertext, where wrapped_key_ciphertext=e(Kcarmen_public)(Krand,Bob_info). Message text (Text) containing the content_ciphertext, the wrapped_key_ciphertext, instructions for Bob (Bob_instructions), and formatting (formatting) is then generated in step816by the identity-based decryption applet, where Text={content_ciphertext,wrapped_key_ciphertext,Bob_instructions,formatting}.

Alice then inserts the generated message text into an email message in step818, which is then sent to Bob over an unsecured channel in step820. Bob receives the email message in step822, and in turn, accesses Carmen's server in step824. In step826, Bob downloads and initiates an identity-based decryption applet within a web browser executing in his client node. Bob then copies the message text from the email into the applet in step828. In turn, the identity-based decryption applet sends the wrapped key ciphertext to Carmen's server node830. In step832, Carmen's server node uses Carmen's private key (Kcarment_private) to process the wrapped key ciphertext to decrypt the Krand and Bob's authentication information, where [Krand,Bob_info]=d(Kcarmen_private)(wrapped_key_ciphertext).

Carmen's server node then requests authentication information from Bob in step834, which Bob provides in step836. If the authentication information provided by Bob matches the decrypted authentication information, then Carmen's server node sends the decrypted Krand over a secure channel in step838to the identity-based decryption applet running in Bob's web browser. The Krand is then used by the identity-based decryption applet in step840to process the content ciphertext to decrypt the message content (M) from Alice, where M=d(Krand)(content_ciphertext). The decrypted message content is then displayed within Bob's web browser in step842and identity-based decryption operations are ended in step844.

Although the described exemplary embodiments disclosed herein are described with reference to managing identity-based decryption of digital content, the present invention is not necessarily limited to the example embodiments which illustrate inventive aspects of the present invention that are applicable to a wide variety of authentication algorithms. Thus, the particular embodiments disclosed above are illustrative only and should not be taken as limitations upon the present invention, as the invention may be modified and practiced in different but equivalent manners apparent to those skilled in the art having the benefit of the teachings herein. Accordingly, the foregoing description is not intended to limit the invention to the particular form set forth, but on the contrary, is intended to cover such alternatives, modifications and equivalents as may be included within the spirit and scope of the invention as defined by the appended claims so that those skilled in the art should understand that they can make various changes, substitutions and alterations without departing from the spirit and scope of the invention in its broadest form.