Abstract:
A system securely buffers hard disk drive data using a host side eXlusive OR (XOR) encryption engine. A host communicates with an encryption interface interposed between the host and a client. Communicatively coupled to the encryption interface is an external buffer for the collection and processing of data. A host side XOR encryption engine, using a random seed, encrypts data originating from the host and places it on the external buffer. Once collected at the buffer and ready for transmittal to the client, the encrypted data is retrieved by the encryption interface and decrypted using the same random seed. The clear data is then encrypted once again using a robust encryption means such as Advance Encryption Standard (AES) encryption by a client side device for conveyance to the client.

Description:
RELATED APPLICATION 
       [0001]    The present application relates to and claims the benefit of priority to U.S. Provisional Patent Application No. 61/146,556 filed Jan. 22, 2009, which is hereby incorporated by reference in its entirety for all purposes as if fully set forth herein. 
     
    
     BACKGROUND OF THE INVENTION 
       [0002]    1. Field of the Invention 
         [0003]    Embodiments of the present invention relate, in general, to secure data transfer to hard disk drives using a System on a Chip (SoC) and more particularly to securing data on an external buffer associated with a SoC using an eXclusive Or (XOR) encryption methodology. 
         [0004]    2. Relevant Background 
         [0005]    Host devices such as computers, laptops, personal digital assistants, MP3 players, game consoles, set top boxes, digital cameras and other electronic devices often need to store and access large amounts of data. Storage devices such as hard disk drives (HDD) are often used to meet the data storage needs of such devices. The transfer and storage of data dates back to the origination of the computer. Where and how do you store the programs, data and calculations? Over the years the answers to those questions have resulted in faster and more capacious methods of mass storage. There are numerous concepts to consider in the transfer and storage of data. These include access time, data transfer rate, formatting, compression and more. Many of these questions with respect to data storage and transfer have been resolved on a single chip referred to as a SoC. With respect to data storage, a SoC takes data from a host such as a computer and delivers it to a storage media such as a hard disk drive. One issue to address in the storage of data is that the production of data from a host is rarely continuous or consistent. It would be inefficient to convey data to a storage medium as it arrives from the host. Thus one function of a SoC is to collect data until it is ready to be stored. This collection occurs in a buffer. 
         [0006]      FIG. 1  shows an exemplary version of a HDD SoC as would be known to one skilled in the relevant art. The HDD SoC  112  is interposed between a host  146  and a hard disk assembly (HDA)  113 . The HDA  113  in this rendition includes a disk platter  114  that is coated with magnetic material  115  and which revolves around and is driven by a spindle motor  116 . Generally the spindle motor  116  rotates the platter  114  at a fixed speed during read/write operations as an actuator  118  moves a read/write device  120  over the platter  114  to read/write the data. 
         [0007]    The read/write device  120  is located at the distal end of the actuator arm  118  and includes a write element such as an inductor that can generate a magnetic field as well as a read element such as a magnetic-resistive element that can sense a magnetic field present on the platter  114 . A preamp circuit  122  amplifies the low level signals from the read element and outputs the data to a read channel  124  located on the HDD SoC  112 . 
         [0008]    When data is written to the platter  114  a current is generated so as to flow to the read/write device  120 . The current is switched, forming a magnetic field which is adopted by the platter  114  and represents data. 
         [0009]    The HDD SoC  112  typically includes a buffer  132  linked to the hard disk controller  136 . The buffer  132  of the HDD SoC  112  and/or other external memory resources can be (as illustrated in  FIG. 1 ) external to the SoC  112  and linked to the HDC  136  to increase capacity. The buffer  132  stores data associated with the control of the hard disk drive and/or buffers data to allow data to be collected and transmitted as larger blocks so as to improve efficiency. Data stored on an external memory resource must be secure, i.e. external data resources cannot possess data stored in the clear. As is well known to one skilled in the relevant art, data stored on external buffers  132  are generally encrypted using an encryption engine  135 . 
         [0010]    As one skilled in the art will appreciate, many robust encryption techniques can be used to secure data. The HDD SoC  112  also includes a processor  134  that performs any necessary processing related to the operation of the HDD including that of the hard disk controller  136  and encryption component  135 . The hard disk controller  136  communicates with the host device  146  via a HDD interface  136  and the host interface  144 . 
         [0011]    This encryption engine is generally associated with the host device  146  meaning that upon every read or write command issued by the host  146 , the data is first processed by the encryption engine prior to being placed on the buffer  132 . Thereafter the data is collected and eventually transferred to the storage device. Data being retrieved from the HDA  113  is collected on the buffer and thereafter decrypted by the encryption engine before transfer to the host. This interaction amongst the host  146 , buffer  132  and storage media (client) adds complexity to the HDD SoC  112 . In one example an external buffer  132  with a host side encryption scheme has been shown to add 1.4 Mega Gates (MG) to a typical SoC to ensure that data kept on an external buffer remains secure. 
         [0012]    One encryption scheme used in this example is a Feistel network-based cipher designed for use with digital data. The cipher is very robust and efficient when implemented in software or, when small, when implemented in hardware. The two primary components of a cipher are the cipher itself (usually positioned on the host) and media key blocks comprising cryptographic values that implement broadcast key distribution and provide renewability in content protection solutions. However the robustness of the cipher increases the complexity of the SoC architecture. Indeed while data housed external to the SoC must be secure, a robust cipher needlessly adds excess complexity to the SoC without providing compensatory security advantages. 
         [0013]    A system and associated methodology for securely interfacing with an external memory buffer from a SoC without the added complexity of current encryption techniques is therefore desirable. These and other improvements of the prior art are addressed by one or more embodiments of the present invention as described hereafter by way of example. 
       SUMMARY OF THE INVENTION 
       [0014]    A system for securely buffering hard disk drive data using a host side XOR encryption engine is hereafter described by way of example. According to one embodiment of the present invention, a host communicates with an encryption interface interposed between the host and a client. Communicatively coupled to the encryption interface is an external buffer for the collection and processing of data. According to one embodiment of the present invention, a host side XOR encryption engine, using a random seed, encrypts data originating from the host and places it on the external buffer. Once collected at the buffer and ready for transmittal to the client, the encrypted data is retrieved by the encryption interface and decrypted. The clear data is then encrypted using a robust encryption means such as Advance Encryption Standard encryption for conveyance to the client. 
         [0015]    The features and advantages described in this disclosure and in the following detailed description are not all-inclusive. Many additional features and advantages will be apparent to one of ordinary skill in the relevant art in view of the drawings, specification, and claims hereof. Moreover, it should be noted that the language used in the specification has been principally selected for readability and instructional purposes and may not have been selected to delineate or circumscribe the inventive subject matter; reference to the claims is necessary to determine such inventive subject matter. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0016]    The aforementioned and other features and objects of the present invention and the manner of attaining them will become more apparent, and the invention itself will be best understood, by reference to the following description of one or more embodiments taken in conjunction with the accompanying drawings, wherein: 
           [0017]      FIG. 1  shows hard disk drive SoC configuration with an external buffer as known to one skilled in the art; 
           [0018]      FIG. 2  is a high level block diagram of an encryption interface interposed between a host and a client using a XOR encryption engine to securely buffer data according to one embodiment of the present invention; and 
           [0019]      FIG. 3  is a flowchart of one method embodiment for securely buffering data using a XOR encryption engine according to the present invention. 
       
    
    
       [0020]    The Figures depict embodiments of the present invention for purposes of illustration only. One skilled in the art will readily recognize from the following discussion that alternative embodiments of the structures and methods illustrated herein may be employed without departing from the principles of the invention described herein. 
       DESCRIPTION OF THE INVENTION 
       [0021]    Embodiments of the present invention are hereafter described in detail with reference to the accompanying Figures. Although the invention has been described and illustrated with a certain degree of particularity, it is understood that the present disclosure has been made only by way of example and that numerous changes in the combination and arrangement of parts can be resorted to by those skilled in the art without departing from the spirit and scope of the invention. 
         [0022]    As previously described, incorporating a host side encryption scheme to secure data held on an external buffer significantly adds to the complexity of a SoC. It is one object of the present invention to reduce the complexity of a SoC and thereby reduce the number of gates on the chip by modifying the buffered encryption scheme. Traditionally, and as known in the prior art, data coming from the host is secured via a robust encryption scheme prior to being placed on the buffer. Thus the encryption is on the host side of the SoC rather than on the client side. 
         [0023]    According to one embodiment of the present invention, data is secured on the buffer via a simple eXclusive OR (XOR) encryption scheme rather than a robust host side encryption scheme as used in the prior art. The data is encrypted using a unique encryption seed which is rest on each power cycle or power-on-reset (POR). Prior to being delivered to the client the XOR encrypted data is retrieved from the buffer, decrypted using the same seed and thereafter encrypted using a robust encryption technique such as an Advanced Encryption Standard (AES) scheme. 
         [0024]      FIG. 2  is a high level block diagram of a simplified SoC system for buffering secure data according to one embodiment of the present invention. A SoC  210  is interposed between a host  220  and a client  230 . In general a host device  220  can be a desktop or notebook computer, microprocessor, router, interface card, or any other device capable of generating data. The client  230  may be a data storage device, disk drive, tape drive, floppy drive, magnetic optical drive, digital video recorder, slash memory card, PCMCIA card, transmitter/receiver, or any other device capable of receiving, transmitting or storing data. 
         [0025]    An external buffer  240  is communicatively coupled to the SoC  210 . The SoC  210  further includes a XOR encryption engine  250 , a AES/XOR encryption-decryption engine  260  and a microprocessor  270 . The XOR encryption engine and the AES/XOR encryption-decryption engine  260  are communicatively coupled to the microprocessor  270  for command, sequencing and management processing. The XOR encryption engine  250  is a host side device and interposed between the host  220  and the buffer  240 . 
         [0026]    As data is delivered from the host  220  and directed to the client  230  the XOR encryption engine  250  of the SoC  210  encrypts the data using a XOR encryption scheme and a seed randomly generated by the microprocessor  270 . The logical operation exclusive disjunction (symbolized XOR), is a type of logical disjunction on two operands that results in a value of true if exactly one of the operands has a value of true. A simple way to state this is “one or the other but not both.” Put differently, exclusive disjunction is a logical operation on two logical values, typically the values of two propositions, that produces a value of true only in cases where the truth value of the operands differ. 
         [0027]    In cryptography, the simple XOR cipher is a simple encryption algorithm that operates according to the principles: 
         [0000]      A ⊕ 0=A, 
         [0000]      A ⊕ A=0, 
         [0000]      (B ⊕ A)⊕A=B ⊕ 0=B, 
         [0028]    where ⊕ denotes the XOR operation. With this logic, a string of text can be encrypted by applying the bitwise XOR operator to every character using a given key. To decrypt the output, merely reapplying the key (seed) will remove the cipher. 
         [0029]    For example, the string 01010111 01101001 01101011 01101001 (in 8-bit ASCII) can be encrypted with the key 11110011 as follows: 
         [0000]    
       
         
           
             ⊕ 
             
               = 
               
                 
                   
                     
                       01010111 
                     
                     
                       01101001 
                     
                     
                       01101011 
                     
                     
                       01101001 
                     
                   
                   
                     
                       11110011 
                     
                     
                       11110011 
                     
                     
                       11110011 
                     
                     
                       11110011 
                     
                   
                 
                 
                   
                     
                       10100100 
                     
                     
                       10011010 
                     
                     
                       10011000 
                     
                     
                       10011010 
                     
                   
                 
               
             
           
         
       
     
         [0030]    And conversely, for decryption: 
         [0000]    
       
         
           
             ⊕ 
             
               = 
               
                 
                   
                     
                       10100100 
                     
                     
                       10011010 
                     
                     
                       10011000 
                     
                     
                       10011010 
                     
                   
                   
                     
                       11110011 
                     
                     
                       11110011 
                     
                     
                       11110011 
                     
                     
                       11110011 
                     
                   
                 
                 
                   
                     
                       01010111 
                     
                     
                       01101001 
                     
                     
                       01101011 
                     
                     
                       01101001 
                     
                   
                 
               
             
           
         
       
     
         [0031]    The XOR operator is extremely common as a component in more complex ciphers. By itself, using a constant repeating key, a simple XOR cipher can trivially be broken using frequency analysis. If the content of any message can be guessed or otherwise known then the key can be revealed. The XOR scheme&#39;s primary merit is that it is simple to implement, and its operation is computationally inexpensive. A simple repeating XOR cipher is therefore sometimes used for hiding information in cases where no particular security is required. 
         [0032]    However, if the key is random and is as long as the message (so it never repeats), the XOR cipher is more secure. When a key stream is generated by a pseudo-random number generator, the result is a stream cipher. With a key that is truly random, the result is a one-time pad, which is unbreakable even in theory. 
         [0033]    The AES/XOR encryption-decryption engine  260  is a client side device interposed between the buffer  240  and the client  230 . The client side encryption engine can, according to other embodiments of the present invention, encrypt/decrypt data in several standard pipeline stages using various known cryptographic algorithms such as AES, Data Encryption Standard (DES) and Triple DES. Other types of cipher engines and/or cryptographic algorithms may also be utilized and are contemplated in practicing the invention. 
         [0034]    In cryptography, AES is an encryption standard adopted by the U.S. government with respect to the transfer of data. The standard comprises three block ciphers, AES-128, AES-192 and AES-256, adopted from a larger collection. Each AES cipher has a 128-bit block size, with key sizes of 128, 192 and 256 bits, respectively. The AES ciphers have been analyzed extensively and are now used worldwide, as was the case with its predecessor, DES. 
         [0035]    AES was announced by National Institute of Standards and Technology (NIST) as U.S. FIPS PUB 197 (FIPS 197) on Nov. 26, 2001 after a 5-year standardization process in which fifteen competing designs were presented and evaluated (see Advanced Encryption Standard process for more details). It became effective as a Federal government standard on May 26, 2002 after approval by the Secretary of Commerce. It is available in many different encryption packages. AES is the first publicly accessible and open cipher approved by the NSA for top secret information. 
         [0036]    AES is based on a design principle known as a substitution permutation network. It is fast in both software and hardware and, unlike its predecessor, DES, AES does not use a Feistel network. AES operates on a 4×4 array of bytes, termed the state; and most of AES calculations are done in a special finite field. The AES cipher is specified as a number of repetitions of transformation rounds that convert the input plaintext into the final output of ciphertext. Each round consists of several processing steps, including one that depends on the encryption key. A set of reverse rounds is applied to transform ciphertext back into the original plaintext using the same encryption key. 
         [0037]      FIG. 3  is a flowchart showing one method embodiment for the secure buffering of data in a SoC environment according to the present invention. In the following description, it will be understood that each block of the flowchart illustration, and combinations of blocks in the flowchart illustration, can be implemented by computer program instructions. These computer program instructions may be loaded onto a computer or other programmable apparatus to produce a machine such that the instructions that execute on the computer or other programmable apparatus create means for implementing the functions specified in the flowchart block or blocks. These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable apparatus to function in a particular manner such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means that implement the function specified in the flowchart block or blocks. The computer program instructions may also be loaded onto a computer or other programmable apparatus to cause a series of operational steps to be performed in the computer or on the other programmable apparatus to produce a computer implemented process such that the instructions that execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart block or blocks. 
         [0038]    Accordingly, blocks of the flowchart illustration support combinations of means for performing the specified functions and combinations of steps for performing the specified functions. It will also be understood that each block of the flowchart illustration, and combinations of blocks in the flowchart illustration, can be implemented by special purpose hardware-based computer systems that perform the specified functions or steps, or combinations of special purpose hardware and computer instructions. 
         [0039]    The process begins  305  at power up, or upon a reset, with the generation  310  of a random seed via a random number generator for use by the XOR encryption engine. Thereafter data is received  320  from a host at an encryption interface or SoC. The data is then directed to a host side XOR encryption engine where, using the seed, the data is encrypted  330  by the XOR encryption engine and delivered to a buffer for storage. 
         [0040]    The buffer collects  340  XOR encrypted data until a state is achieved in which the data can be efficiently conveyed to a client such as via a hard disk drive assembly or transmitter/receiver. Once enough data has been collected in the buffer to be conveyed to the client it is retrieved  350  by the SoC (encryption interface) and decrypted  360  using the same random seed. Recall that the data stored on the buffer was encrypted using a XOR encryption scheme and the random seed. 
         [0041]    The data, not in clear text, is once again encrypted  370  using this time an AES or similar robust encryption technique by a client side encryption engine. Once encrypted the data is transferred  380  to the client ending  395  the process. 
         [0042]    In a like manner data can be retrieved from a hard disk drive by reversing the above process. Data being retrieved from a storage media or other type of client is first decrypted by the AES encryption engine and then encrypted using the XOR encryption technique and placed on the buffer. All data retained on the external buffer is therefore XOR encrypted data and retrievable using a secure random seed. Once data has been collected in the buffer as controlled by the processor on the SoC, the data is delivered to the host side XOR encryption engine for decryption and delivery to the host. 
         [0043]    As will be understood by those familiar with the art, the invention may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. Likewise, the particular naming and division of the modules, managers, functions, systems, engines, layers, features, attributes, methodologies, and other aspects are not mandatory or significant, and the mechanisms that implement the invention or its features may have different names, divisions, and/or formats. Furthermore, as will be apparent to one of ordinary skill in the relevant art, the modules, managers, functions, systems, engines, layers, features, attributes, methodologies, and other aspects of the invention can be implemented as software, hardware, firmware, or any combination of the three. Of course, wherever a component of the present invention is implemented as software, the component can be implemented as a script, as a standalone program, as part of a larger program, as a plurality of separate scripts and/or programs, as a statically or dynamically linked library, as a kernel loadable module, as a device driver, and/or in every and any other way known now or in the future to those of skill in the art of computer programming. Additionally, the present invention is in no way limited to implementation in any specific programming language, or for any specific operating system or environment. Accordingly, the disclosure of the present invention is intended to be illustrative, but not limiting, of the scope of the invention, which is set forth in the following claims. 
         [0044]    While there have been described above the principles of the present invention in conjunction with a secure external buffer for a SoC, it is to be clearly understood that the foregoing description is made only by way of example and not as a limitation to the scope of the invention. Particularly, it is recognized that the teachings of the foregoing disclosure will suggest other modifications to those persons skilled in the relevant art. Such modifications may involve other features that are already known per se and which may be used instead of or in addition to features already described herein. Although claims have been formulated in this application to particular combinations of features, it should be understood that the scope of the disclosure herein also includes any novel feature or any novel combination of features disclosed either explicitly or implicitly or any generalization or modification thereof which would be apparent to persons skilled in the relevant art, whether or not such relates to the same invention as presently claimed in any claim and whether or not it mitigates any or all of the same technical problems as confronted by the present invention. The Applicant hereby reserves the right to formulate new claims to such features and/or combinations of such features during the prosecution of the present application or of any further application derived therefrom.