Abstract:
Method and system for transferring encrypted content from a server to a storage device are provided. The method includes encrypting the content using a first key, wherein the server encrypts the content; establishing a secure communication channel between the server and the storage device using a random session key; sending the first key to the storage device via the secure communication channel; replacing the random session key with the first key; sending the encrypted content to the storage device after the random session key is replaced with the first key; decrypting the encrypted content using the first key, wherein the storage device decrypts the encrypted content; re-encrypting the decrypted content using a second key generated by the storage device; and storing the re-encrypted content at the storage device.

Description:
TECHNICAL FIELD 
     The present invention relates to distribution of digital content. 
     DESCRIPTION OF RELATED ART 
     Digital content is commonly used in today&#39;s computing environment. Digital content may be stored on a storage device (also referred to as storage system), or distributed via electronic communication such as the Internet, Peer-to-Peer software, electronic mail, and others. The Internet and other communication networks today enable various digital appliances and systems (may be referred to as host systems) to interconnect and easily exchange digital content. Host systems may include without limitation, personal computers, laptop computers, tablet computers, personal digital assistants (PDAs), mobile phones, MP3 players, DVD players, gaming consoles, digital recording devices such as digital cameras, and others. 
     Digital content is typically stored as an electronic file. A digital content file typically includes data that can be viewed, listened to, read, played, executed, or otherwise utilized by an end user using an appropriate application or device. A digital content file may include an audio file, a video file, a multi-media content file, a software file, an electronic book, a document, a computer game, a database, an application, or any other type of digital content. There are different file formats for storing digital content. For example, the MP3, Wav, RealAudio and other file formats may be used to store audio files, while MP4, DIVX®, RealVideo and other formats may be used for storing both audio and video files. 
     Digital Rights Management (DRM) may be used to protect digital content usage. DRM allows one to limit access to digital content by associating specific permissions to content. A user may be prohibited from making a copy of, distributing, modifying, selling, or performing a copyrighted digital content file, without receiving proper permission from a copyright owner. For example, with respect to an audio file, a license object may grant a paying user permission only to play the file, while a different type of license object may grant additional permissions to copy the file and distribute the file. Different DRM standards may be used for different content types and formats and may provide different methods to distribute digital content and the associated permissions. 
     Digital content has commercial value for copyright owners, content providers and others. Securing digital content distribution is a challenge because modern networks facilitate mass distribution of digital content. 
     SUMMARY 
     The various embodiments of the present system and methods for securing digital content have several features, no single one of which is solely responsible for their desirable attributes. Without limiting the scope of the present embodiments as expressed by the claims that follow, their more prominent features will now be discussed briefly. After considering this discussion, and particularly after reading the section entitled “Detailed Description”, one will understand how the features of the present embodiments provide advantages, which include greater efficiency and increased security. 
     In one embodiment, the present system and methods for securing digital content includes the realization that having a content server encrypt content numerous times for multiple storage devices is burdensome and inefficient. Greater efficiency and security could be achieved if storage devices performed the task of encrypting and decrypting content. 
     In accordance with the above realizations, one embodiment of the present system and methods for securing digital content comprises a method of transferring encrypted content from a server to a storage device. According to the method the server encrypts the content using a first key. A secure communication channel is established between the server and the storage device using a random session key. The server sends the first key to the storage device via the secure communication channel. The server and the storage device replace the random session key with the first key. The server sends the encrypted content to the storage device via the secure communication channel. The storage device decrypts the encrypted content using the first key, and encrypts the content using a second key. The content is stored on the storage device. 
     Another embodiment of the present system and methods for securing digital content comprises a method of transferring encrypted content from a server to a storage device. According to the method the server encrypts the content using a first key. A secure communication channel is established between the server and the storage device using a random session key. The server sends the first key to the storage device via the secure communication channel. An open communication channel is established between the server and the storage device. The server sends the encrypted content to the storage device via the open communication channel. The storage device decrypts the encrypted content using the first key, and encrypts the content using a second key. The content is stored on the storage device. 
     In yet another embodiment, a system for transferring digital content is provided. The system includes a server that has access to the content, and a storage device that can store the content; wherein the server encrypts the content using a first key; establishes a secure communication channel between the server and the storage device using a random session key; sends the first key to the storage device via the secure communication channel; replaces the random session key with the first key; sends the encrypted content to the storage device after the random session key is replaced with the first key; and a cryptographic engine for the storage device decrypts the encrypted content using the first key and re-encrypts the decrypted content using a second key generated by the storage device; and stores the re-encrypted content at the storage device. 
     In another embodiment, a system for transferring digital content is provided. The system includes a server that has access to the content; and a storage device that can store the content; wherein the server encrypts the content using a first key; establishes a secure communication channel between the server and the storage device using a random session key; sends the first key to the storage device via the secure communication channel; sends the encrypted content to the storage device via an open channel; and a cryptographic engine for the storage device decrypts the encrypted content using the first key and re-encrypts the decrypted content using a second key generated by the storage device; and stores the re-encrypted content at the storage device. 
     In yet another embodiment, a storage device for securely storing digital content is provided. The storage device includes a cryptographic engine that decrypts and encrypts the content; wherein a server encrypts the content using a first key, establishes a secure communication channel between the server and the storage device using a random session key; sends the first key to the storage device via the secure communication channel; replaces the random session key with the first key; sends the encrypted content to the storage device after the random session key is replaced with the first key; and the cryptographic engine decrypts the encrypted content using the first key and re-encrypts the decrypted content using a second key generated by the storage device; and the storage device stores the re-encrypted content. 
     In another embodiment, a storage for securely storing digital content is provided. The storage device includes a cryptographic engine that can encrypt and decrypt the content; wherein a server encrypts the content using a first key; establishes a secure communication channel between the server and the storage device using a random session key; sends the first key to the storage device via the secure communication channel; sends the encrypted content to the storage device via an open channel; and the cryptographic engine decrypts the encrypted content using the first key and re-encrypts the decrypted content using a second key generated by the storage device; and stores the re-encrypted content at the storage device. 
     This brief summary has been provided so that the nature of the description may be understood quickly. A more complete understanding of the description can be obtained by reference to the following detailed description of the various embodiments thereof in connection with the attached drawings. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The preferred embodiments of the present system and methods for securing digital content will now be discussed in detail with an emphasis on highlighting the advantageous features. These embodiments depict the novel and non-obvious system and methods shown in the accompanying drawings, which are for illustrative purposes only. These drawings include the following figures, in which like numerals indicate like parts: 
         FIG. 1  is a schematic block diagram of a prior art system for securing digital content; 
         FIG. 2A  is a schematic block diagram of one embodiment of the present system and methods for securing digital content; 
         FIG. 2B  is a block diagram of a controller; 
         FIG. 3  is a flowchart illustrating one embodiment of the present methods for securing digital content; and 
         FIG. 4  is a flowchart illustrating another embodiment of the present methods for securing digital content. 
     
    
    
     DETAILED DESCRIPTION 
     To facilitate an understanding of the various embodiments, the general architecture and operation of a system for distributing digital content will first be described. The specific architecture and operations will then be described with reference to the general architecture. 
     As used in this disclosure, the terms “module” “system”, “component” and the like are intended to refer to a computer-related entity, either hardware, a combination of hardware and software, software, or software in execution. For example, a module may be, but is not limited to being, a process running on a processor, a processor, a state machine implemented in hardware, software or a combination thereof, an object, an executable, a thread of execution, a program, and/or a computing system. Computer executable components/modules may be stored, for example, on computer readable media including, but not limited to, an ASIC (application specific integrated circuit), CD (compact disc), DVD (digital video disk), ROM (read only memory), floppy disk, hard disk, EEPROM (electrically erasable programmable read only memory) and memory stick in accordance with the claimed subject matter. 
       FIG. 1  illustrates an example of a system  100  for securing content in a storage device. System  100  includes server  102  that stores digital content  104  (may be referred to as content  104 ). Content  104  may be stored locally at server  102  or accessible to server  102  via a network connection (not shown). Server  102  communicates with a computing system (may be referred to as “host system”)  108  via a secure channel  110 . Server  102  to communicate with host system  108  typically generates a session key (not shown). A storage device (SD)  114 , which is coupled to, accessible to or integrated within host  108 , stores content  104 . 
     In order to transfer content  104  to SD  114  in a secure manner, server  102  typically encrypts content  104  using a server-generated encryption key  106 . Server  102  then sends the encryption key  106  and encrypted content to SD  114  using secure channel  110 . Unfortunately, in conventional systems, content  104  is encrypted using a different key  106  whenever content  104  is transferred. The nature and type of encryption key  106  may vary depending on the type of SD  114 . Thus, when server  102  transfers content  104  to multiple SD&#39;s, server  102  may encrypt content differently to suit the needs of different SD&#39;s. This is an unnecessary burden for commercial distribution of digital content. The adaptive embodiments described herein alleviate this burden. 
       FIG. 2A  illustrates a simplified block diagram of one embodiment of the present system  200  for securely transferring digital content. The system  200  includes a server  202  that stores encrypted content  204 . Server  202  uses encryption key  206  to encrypt content  204 . Server  202  does not encrypt content every time it has to communicate with a different type of storage device, as described below. 
     Server  202  communicates with host system  208  via a secure channel  210 . The secure channel  210  facilitates secure communication by using a random session key. The random session key may be based on random numbers generated by both server  202  and host system  208 . The random numbers may be generated by using specialized hardware, software, or a combination thereof. 
     In certain embodiments, server  202  may communicate with host system  208  via an open channel  212 . Open channel  212  is unsecured and is typically faster than secure channel  210 . 
     In embodiments including both secure channel  210  and open channel  212 , the secure channel  210  and the open channel  212  may be capable of transferring data between the server  202  and the host system  208 /SD  214  simultaneously. Alternatively, the secure channel  210  and the open channel  212  may not operate simultaneously. 
     In one embodiment, server  202  uses a random session key to establish secure channel  210 . 
     Host system  208  (and server  2020  typically includes several functional components. These components may include a processor (may also be referred to as a central processing unit (CPU)), main memory, I/O devices and others. The main memory is coupled to the CPU via a system bus or a local memory bus. The main memory is used to provide the CPU access to data and program information at execution time. Typically, the main memory is composed of random access memory (RAM) circuits. A computer system with the CPU and main memory is often referred to as a host system. The term host system as used herein includes personal computers (PCs), laptop and other portable computers, cellular telephones, personal digital assistants (PDAs), digital still cameras, digital movie cameras, portable audio players and others. 
     SD  214  includes a controller  215  and a cryptographic engine  220 . Controller  215  controls overall operation of SD  214  and interfaces with host  208  via a host interface  215 D ( FIG. 2B ). Cryptographic engine (or module)  220  encrypts and decrypts content and includes an encryption module  220 A and a decryption module  220 B. Encryption and decryption may be based on any encryption/decryption technique, for example, AES (Advanced Encryption Standard), DES (Data Encryption Standard), 3DES and others. The adaptive embodiments disclosed herein are not based on any particular type of encryption/decryption technique. 
     Server  202  sends encryption key  206  to SD  214  via secure channel  210  in a random session using a random session key. The random session key ensures secure transfer of encryption key  206 , which is used to decrypt encrypted content  204 . After the encryption key  206  is transferred, the random session key is replaced by encryption key  206  and then encrypted content  204  is transferred to SD  214 . Decryption module  220 B decrypts encrypted content  204  using key  206 . Thereafter, encryption module  220 A encrypts the decrypted content based on a SD generated encryption key  222 . 
     SD  214  may be any type of storage device, for example, non-volatile memory storage device, hard disk or any other type of storage device. In one embodiment, SD  214  is a removable, non-volatile memory device (including flash memory cards) with solid-state memory modules (or cells). A NAND architecture for memory cell arrays is currently preferred, although other architectures, such as NOR, can also be used instead. 
     There are currently many different non-volatile memory cards that are commercially available, examples being the CompactFlash (CF), the MultiMediaCard (MMC), Secure Digital (SD), miniSD, Memory Stick, SmartMedia and TransFlash cards. Although each of these cards has a unique mechanical and/or electrical interface according to its standardized specifications (for example, The Universal Serial Bus (USB) specification based interface, incorporated herein by reference in its entirety), the flash memory included in each is very similar. These cards are all available from SanDisk Corporation, assignee of the present application. 
     SanDisk also provides a line of flash drives under its Cruzer trademark, which are hand held memory systems in small packages that have a Universal Serial Bus (USB) plug for connecting with a host by plugging into the host&#39;s USB receptacle (not shown). Each of these memory cards and flash drives includes controllers that interface with the host and control operation of the flash memory within them. The host typically includes a built-in receptacle for one or more types of memory cards or flash drives but some may use adapters into which a memory card is inserted. 
     In the illustrated embodiment, SD  214  further includes a generic storage module (or segment)  216  and a secure storage module (or segment)  218 . In certain methods, the SD  214  may store the encrypted content  204  (as encrypted with the server-generated encryption key  206 ) in the generic storage module  216 , and store the server-generated encryption key  206  in the secure storage module  218 . 
     In one embodiment, SD  214  appears to host system  208  having plural Logical Units (LUNs) of storage space and each LUN may appear to be of a different class of storage device. For example, SD  214  may appear to have both a standard Mass Storage Class volume, which imitates the behavior of a SCSI Hard Disk Drive, and a MMC Class volume, which imitates the behavior of a CD-ROM. Secure storage segment  218  is a hidden area, access to which is based on proper authentication. 
       FIG. 2B  shows a block diagram of the architecture of controller module  215 . Controller module  215  includes a microcontroller  215 B that interfaces with various other components via interface logic  215 A. Memory  215 C stores firmware and software instructions that are used by microcontroller  215 B to control the operation of SD  214 . Memory  21 SC may be volatile re-programmable random access memory (“RAM”), a non-volatile memory that is not re-programmable (“ROM”), a one-time programmable memory or a re-programmable flash electrically-erasable and programmable read-only memory (“EFPROM”). A host interface  215 D interfaces with host system  208 , while a memory interface  215 E interfaces with memory modules (not shown). 
     In one embodiment of a method for transferring digital content, the server  202  encrypts content  204  using server-generated encryption key  206 , as shown at step S 300  in  FIG. 3 . The secure channel  210  is established between server  202  and SD  214  using a random session key at step S 302 . The server  202  sends the server-generated encryption key  206  to the SD  214  via the secure channel  210 , as shown at step S 304 . The server  202  and the storage device  214  then replace the random session key with the server-generated encryption key  206  at step S 306 . The server  202  sends the encrypted content  204  via the secure channel  210 , as shown at step S 308 . 
     The cryptographic engine  220  uses the server-generated encryption key  206  to decrypt the server-encrypted content  204 , as shown at step S 310  in  FIG. 3 . At step S 312  the cryptographic engine  220  then uses the SD-generated encryption key  222  to re-encrypt the content, which is then stored as SD-encrypted content  224  at step S 314 . The SD-encrypted content  224  may be stored in the generic storage module  216 , while the SD-generated encryption key  222  may be stored in the secure storage module  218 . 
       FIG. 4  illustrates an alternative method for transferring digital content. The server  202  encrypts the content  204  using the server-generated encryption key  206 , as shown at step S 400  in  FIG. 4 . The secure channel  210  is established between the server  202  and the SD  214  using a random session key at step S 402 . The server  202  sends the server-generated encryption key  206  to the SD  214  via the secure channel  210 , as shown at step S 404 . The server  202  and the storage device  214  then establish the open channel  212  at step S 406 . The server  202  sends the encrypted content  204  via the open channel  212 , as shown at step S 408 . The cryptographic engine  220  uses the server-generated encryption key  206  to decrypt the server-encrypted content  204 , as shown at step S 410  in  FIG. 4 . At step S 412  the cryptographic engine  220  then uses the SD-generated encryption key  222  to re-encrypt the content, which is then stored as SD-encrypted content  224  at step S 414 . 
     In the system  200  and methods described above, the server  202  advantageously only encrypts the content  204  once, and the content  204  may be encrypted according to whatever encryption scheme the server  202  chooses. The content  204  is then decrypted by the SD  214  using the server-generated encryption key  206 . re-encrypted by the SD  214  using the SD-generated encryption key  222 , and stored in the SD  214  as SD-encrypted content  224 . The SD  214  can encrypt the content  124  according to its own encryption scheme, thereby relieving the server  202  of this task. The present system  200  is thus more efficient than a prior art system in which the server is burdened with the tasks of encrypting multiple content packets according to multiple encryption schemes. Furthermore, the SD-encrypted content  224  is encrypted using the SD-generated encryption key  222 , which is known only to the SD  214 . The content  224  is thus very secure. 
     The above description presents the best mode contemplated for carrying out the present system and methods for securing digital content, and of the manner and process of making and using them, in such full, clear, concise, and exact terms as to enable any person skilled in the art to which they pertain to make this system and use these methods. This system and these methods are, however, susceptible to modifications and alternate constructions from those discussed above that are fully equivalent. Consequently, this system and these methods are not limited to the particular embodiments disclosed. On the contrary, this system and these methods cover all modifications and alternate constructions coming within the spirit and scope of the system and methods as generally expressed by the following claims, which particularly point out and distinctly claim the subject matter of the system and methods.