Abstract:
A data transfer device for storing data to a removable data storage item, wherein data are received as records and encrypted by the data transfer device prior to storage. The data transfer device encrypts a first portion of the records using a first encryption key and a second portion of the records using a second encryption key. The encrypted records are then stored to the removable data storage item as a plurality of data blocks, each data block comprising one or more encrypted records, wherein records in a respective data block are encrypted using only a respective one of the encryption keys.

Description:
FIELD OF THE INVENTION 
     The present invention relates to a data transfer device for storing data to a removable data storage item, in which data are encrypted by the data transfer device prior to storage. 
     BACKGROUND OF THE INVENTION 
     Data backup is a valuable tool in safeguarding important data. Data are generally backed-up onto removable data storage items, such as tape cartridges or optical discs, such that the backup data may be stored at a different geographical location to the primary data. 
     By storing important data onto removable data storage items, security issues become a consideration. For example, a visitor to a site might easily pocket a tape cartridge storing large amounts of commercially sensitive data. 
     Many backup software packages provide the option of encrypting data prior to backup. Software encryption increases the time required to backup data and consumes valuable computer resources. 
     SUMMARY OF THE INVENTION 
     The present invention provides a data transfer device for storing data to a removable data storage item, the data transfer device being operable to: receive data to be stored as a plurality of records, each record having an indeterminate size; encrypt a first portion of the records using a first encryption key and encrypt a second portion of the records using a second encryption key, each of the first portion and the second portion comprising an integral number of records; and store the encrypted records to the removable data storage item as a plurality of data blocks, each data block comprising one or more encrypted records, wherein records in a respective data block are encrypted using only a respective one of the encryption keys. 
     Preferably, the data transfer device is operable to store the encrypted first portion of records as a one or more data blocks, and to store the encrypted second portion of records as one or more additional data blocks. 
     Conveniently, the data transfer device is operable to pad a partial data block with redundant data to the predetermined size. 
     Advantageously, the data transfer device is operable to receive a designated encryption key in respect of a designated portion of records. 
     Preferably, the data transfer device includes a memory for storing an encryption key, and the data transfer device is operable to: store the first encryption key in the memory; receive the second encryption key; store the second encryption key in the memory in place of the first encryption key; and encrypt the records to be stored using the encryption key stored in the memory. 
     Conveniently, the data transfer device is operable to pad a partial data block comprising records encrypted using the first encryption key with redundant data to the predetermined size in response to receiving the second encryption key. 
     Advantageously, the data transfer device is operable to encrypt the records using block encryption, and to encrypt each record using a different initialisation vector. 
     Preferably, the data transfer device is a tape drive and the removable data storage item is a tape cartridge. 
     Another aspect of the invention provides a data transfer device for storing data to a removable data storage item, the data transfer device comprising: means for receiving data to be stored as a plurality of records, each record having an indeterminate size; means for encrypting a first portion of the records using a first encryption key and for encrypting a second portion of the records using a second encryption key, each of the first portion and the second portion comprising an integral number of records; and means for storing the encrypted records to the removable data storage item as a plurality of data blocks, each data block comprising one or more encrypted records, wherein records in a respective data block are encrypted using only a respective one of the encryption keys. 
     Preferably, the means for storing stores the encrypted first portion of records as one or more data blocks, and the encrypted second portion of records as one or more additional data blocks. 
     Conveniently, the data transfer device comprises means for padding a partial data block with redundant data to the predetermined size. 
     Advantageously, the data transfer device comprises: means for storing the first encryption key; means for receiving the second encryption key; and means for storing the second encryption key in place of the first encryption key, and the means for encrypting the records uses the encryption key stored in the memory. 
     Preferably, the data transfer device is operable to pad a partial data block comprising records encrypted using the first encryption key with redundant data to the predetermined size in response to receiving the second encryption key. 
     Conveniently, the means for encrypting encrypts the records using block encryption, and encrypts each record using a different initialisation vector. 
     A further aspect of the invention provides a method of storing data to a removable data storage item, the method comprising: receiving data to be stored as a plurality of records, each record having an indeterminate size; encrypting a first portion of the records using a first encryption key and encrypting a second portion of the records using a second encryption key, each of the first portion and the second portion comprising an integral number of records; and storing the encrypted records to the removable data storage item as a plurality of data blocks, each data block having a predetermined size and comprising one or more encrypted records, wherein records in a respective data block are encrypted using only a respective one of the encryption keys. 
     Preferably, the method comprises padding a partial data block with redundant data to the predetermined size. 
     Advantageously, the method comprises padding a partial data block with redundant data to the predetermined size in response to receiving an encryption key. 
     Conveniently, the method comprises receiving the second encryption key and padding a partial data block comprising records encrypted using the first encryption key with redundant data to the predetermined size in response to receiving the second encryption key. 
     In a still further aspect, the present invention provides a computer program product storing computer program code executable by a data transfer device, the computer program product when executed causing the data transfer device to operate as described in the aforementioned aspects of the invention, or to perform the aforementioned methods. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       In order that the present invention may be more readily understood, embodiments thereof will now be described, by way of example, with reference to the accompanying drawings, in which: 
         FIG. 1  is a schematic block diagram of a tape drive embodying the present invention; and 
         FIG. 2  illustrates a record at various stages of formatting by the tape drive of  FIG. 1 . 
     
    
    
     DETAILED DESCRIPTION 
     In tape formats such as linear tape-open (LTO) and digital data storage (DDS), data are stored to tape as a plurality of data blocks. In LTO the data blocks are referred to as data sets, whilst in DDS the data blocks are referred to as groups. Each data block comprises compressed data to which error correction codes (ECC) are appended. Consequently, each data block may be regarded as a distinct entity having its own compression dictionary and error correction codes. 
     In both LTO and DDS formats, a tape drive receives data from a host device as one or more records. The records are formatted, compressed and packed by the tape drive to form a compressed data stream. The compressed data stream is then divided into chunks of data having the same predetermined size. An information table is then appended to each chunk of data to create a data block, i.e. a data set (LTO) or group (DDS). 
     An embodiment of the present invention will now be described with reference to the LTO format. However, the present invention may be equally applied to other formats in which data are stored as data blocks, each data block comprising one or more records. 
     The tape drive  1  of  FIG. 1  comprises a host interface  2 , a controller  3 , a firmware memory  4 , a memory buffer  5 , a record manager  6 , a CRC recorder  7 , a data compressor  8 , a data encryptor  9 , a data packer  10 , a data formatter  11 , a digital signal processor  12 , write  13  and read  14  pre-amplifiers, and magneto-resistive heads  15 . With the exception of the data encryptor  9  and the software stored in the firmware memory  4 , the components of the tape drive  1  are identical to those employed in conventional LTO tape drives. 
     The host interface  2  controls the exchange of data between the tape drive  1  and a host device  17 . Control signals received from the host device  17  by the interface  2  are delivered to the controller  3 , which, in response, controls the operation of the tape drive  1 . Data received from the host device  17  typically arrives in high speed bursts and the host interface  2  includes a burst memory  18  for storing data received from the host device  17 . 
     The controller  3  comprises a microprocessor, which executes instructions stored in the firmware memory  4  to control the operation of the tape drive  1 . 
     The record manager  6  retrieves data from the burst memory  18  of the host interface  2  and appends record boundaries. The CRC recorder  7  then appends a cyclic redundancy check (CRC) to each record. Each of the protected records is then compressed by the data compressor  8  using LTO scheme- 1  (ALDC) compression. The CRCs are not checked until restore when they are checked by a CRC recorder just before the data is sent to the host interface  2 . The compressed records are then delivered to the data encryptor  9 . 
     The data encryptor  9  comprises a data padder  19 , an encryption engine  20 , a key memory  21 , a CRC recorder  22  and a data compressor  23 . The CRC recorder  22  and data compressor  23  of the data encryptor  9  shall be referred to hereafter as the encrypt CRC recorder  22  and encrypt data compressor  23  so as to distinguish them from the other CRC recorder  7  and data compressor  8 . 
     As described below, the data encryptor  9  employs block encryption, each block having 128 bits. The data padder  19  therefore appends an end-of-record (EOR) codeword to each compressed record and pads each compressed record with redundant data (e.g. with zeros) such that each compressed record is an integral number of 128 bits. 
     The encryption engine  20  employs a Galois/Counter Mode (GCM) encryption algorithm to encrypt each padded, compressed record. The key memory  21  may be volatile or non-volatile, depending on the intended applications of the tape drive  1 , and stores a 256-bit encryption key that is used by the encryption engine  20 . Other keys such as a 128 or a 192 bit key may also be used. The Galois/Counter Mode is specified in “The Galois/Counter Mode of Operation” by David A. McGrew and John Viega available from NIST/CSRC. 
     The encryption engine  20  divides each padded, compressed record into blocks of 128 bits. Each block is then encrypted using a different pair (for each block) of: the encryption key held in key memory  21 ; and a counter value. 
     After data encryption, the encryption engine  20  appends an initialisation vector (sometimes referred to as an initial vector) to the beginning of the blocks of ciphertext and an authentication tag to the end of the blocks of ciphertext to create a pseudo-record. The initialisation vector is the counter value for the first block of ciphertext of the pseudo-record (i.e. block number=0), whilst the authentication tag is generated in accordance with the GCM specification and comprises a form of checksum generated over the data of a record. The tag may also be generated over any additional authenticated data (AAD) which may or may not be prefixed to records. The tag, MD and prefixing MD to records are all concepts enshrined in the GCM and IEEE1619.1 standards. Please note that during restore, a tag is regenerated over the record and over any AAD and checked with the tag previously generated. 
     The pseudo-record, comprising the IV, blocks of ciphertext and authentication tag, is delivered to the encrypt CRC recorder  22 , which appends a CRC to the pseudo-record to create a protected pseudo-record. The protected pseudo-record is then delivered to the encrypt data compressor  23 , which compresses the protected pseudo-record using LTO scheme- 2  (no-compress) compression. Owing to encryption, the pseudo-record comprises random data and therefore the pseudo-record is incompressible. It is for this reason that scheme- 2  compression is employed. Although no compression is actually achieved, the compressed pseudo-record consists of LTO codewords (e.g. compression, scheme and reset codewords). Consequently, the compressed pseudo-record is LTO compliant. 
     The compressed pseudo-record is then delivered to the data packer  10 , which appends an EOR codeword to the compressed pseudo-record and packs sequential compressed pseudo-records together to form a compressed data stream, which is then written to the memory buffer  5 . 
       FIG. 2  illustrates a record received from the host device  17  at various stages of formatting by the tape drive  1 .  FIG. 2(   a ) illustrates the record as received by the tape drive  1 , which may be of any size.  FIG. 2(   b ) illustrates the record after processing by the CRC recorder  6 , and  FIG. 2(   c ) illustrates the protected record after compression by the data compressor  7 .  FIG. 2(   d ) illustrates the compressed record after formatting by the data padder  19 .  FIG. 2(   e ) illustrates the pseudo-record created after encryption.  FIG. 2(   f ) illustrates the pseudo-record after processing by the encrypt CRC recorder  22 , and  FIG. 2(   e ) illustrates the protected pseudo-record after compression by the encrypt data compressor  23  and the data packer  10 . LTO format specifies also that records must be padded to a 32 bit boundary hence the potential use of a 4-byte pad appended to the end of the pseudo-record. 
     As in conventional LTO tape drives, the controller  3  then divides the compressed data stream into data chunks of a predetermined size (e.g. 403884 bytes for LTO1/LTO2 and 1616940 for LTO3/LTO4) which includes a data set information table (DSIT) of 468 bytes for LTO1/LTO2/LTO3/LTO4) appended to each data chunk to create a data set. Each data set is then delivered to the data formatter  11 , which ECC-encodes the data set, randomises the ECC-encoded data to remove long sequences, and RLL encodes the randomised data. The RLL-encoded data are then processed by the digital signal processor  12  and delivered, via the write pre-amplifier  13 , to write head elements  15  which write the data set to a magnetic tape. 
     The read process is basically the reverse of the write process. In response to a request to retrieve a particular record, the tape drive  1  first locates the relevant data set or group of data sets. The data set is then read from the tape by read head elements  16  which generate an analogue signal. The analogue signal is then amplified by the read pre-amplifier  14  and processed by the digital signal processor  12  to generate a digital data stream. The digital data stream is then RLL-decoded, unscrambled and ECC-decoded by the data formatter  11  to create the data set. 
     The chunk of data corresponding to the data region of the data set is then delivered to the data packer  10 , which unpacks the chunk of data to create one or more compressed pseudo-records. The location of each compressed pseudo-record is determined by the EOR codewords previously appended by the data packer  10  during data storage. 
     Each compressed pseudo-record is then decompressed by means of the encrypt data compressor  23 . The CRC appended to each pseudo-record is discarded by the encrypt data compressor  23  and the resulting pseudo-records are delivered to the encryption engine  20 , which then decrypts the pseudo-records. The encryption engine  20  uses the encryption key stored in key memory  21  and the initialization vector stored at the beginning of each pseudo-record to decrypt the pseudo-records and generate in response padded, compressed records. 
     The padded, compressed records are then delivered to the data compressor  8 , which decompresses the records. Owing to the presence of the EOR codeword, the data compressor  8  ignores any padding to the compressed records. 
     The controller  3  reads each of the retrieved records in turn until the requested record is identified, whereupon it is delivered to the host device  11  via the host interface  2 . 
     The tape drive  1  is additionally operable to receive a new encryption key from the host device  11 . Accordingly, data stored to tape by the tape drive  1  may be encrypted using a plurality of different encryption keys so as to further increase data security. 
     Receipt of the new encryption key may occur at any time, including during a data write to tape. When received by the tape drive  1 , the new encryption key is stored in the key memory  21 , replacing the previously stored encryption key. All future records received by the tape drive  1  from the host device  17  are then encrypted using the new encryption key. 
     In response to receiving the new encryption key, the controller  3  pads the current, partial chunk of data to its end, i.e. the controller  3  appends an end-of-marker codeword followed by redundant data to the end of the current data chunk such that the data chunk is of the necessary, predetermined size (403884 bytes for LTO1/LTO2 and 1616940 for LTO3/LTO4) again including the DSIT which is appended to the padded data chunk to create the data set. 
     Without padding the current data set, a data set would comprise records encrypted using different encryption keys. As noted above, in order to retrieve a particular record, it is necessary to decrypt each record within a data set. If a data set comprises records that have been encrypted using different encryption keys, it would be necessary to provide all of the encryption keys in order to locate and retrieve a particular record. Padding the current data set in response to a change in encryption key ensures that all records within a data set are encrypted using the same encryption key. Consequently, locating and retrieving a particular record is made much simpler since it is guaranteed that only one encryption key need be provided in order to locate and retrieve the record. 
     In the embodiment described above, the data compressor  8  and encrypt data compressor  23  are provided as separate components. However, since both data compressors  8 , 23  employ LTO compression, they may be provided as a single component. Alternatively, whilst the data compressor  8  employs LTO scheme- 1  compression to compress the records prior to encryption, alternative lossless compression algorithms may be equally employed. Moreover, compression prior to encryption, whilst advantageous, it is not essential and may be omitted. 
     Although an embodiment of the present invention has been described with reference to the LTO format, the present invention is equally applicable to other formats in which records are stored to tape as a plurality of data blocks. In particular, the pseudo-records created by the encryption engine  20  can be formatted as conventional records using alternative formats, such as DDS. 
     Whilst the data encryptor  9  employs a Galois Counter Mode encryption algorithm, other encryption algorithms may alternatively be employed, including block cipher, stream cipher, symmetric and asymmetric encryption. In the case of asymmetric encryption, the key memory  21  stores a decryption key in addition to the encryption key. 
     Although an embodiment of the present invention have been described with reference to a tape drive  1 , it will be appreciated that the present invention is equally applicable to other types of data transfer devices, such as optical drives, in which data are stored as data blocks, each data block comprising one or more records, or indeed in the case of very long records, a part of a record spanning more than one data block. 
     It should be appreciated that a data block in the LTO format can be recognised as comprising a block of data which starts with an access point, access points being the first record boundary in a dataset and comprising a position from which compression histories and dictionaries are reset. Importantly, again, within a data block embodying the invention—signified as such by starting with an access point, the same encryption key is used throughout the data block so that only the one key is needed to decrypt the data block. 
     With the data transfer device embodying the present invention, the encryption and decryption of backup data is moved from the host device to the data transfer device. The data transfer device need not rely upon special commands or control signals in order to encrypt or decrypt data, but may instead encrypt and decrypt data in response to conventional read and write commands received from the host device. Accordingly, the data transfer device is capable of operating using standard hardware interfaces such as SCSI, PCI, IDE, EISA, USB, FireWire®, Bluetooth®, IrDA etc. Moreover, in forcing a new data block (e.g data set in LTO or group in DDS) to be created in response to a change in encryption key, the data transfer device ensures that each data block comprises only records encrypted using the same encryption key. Consequently, data may be more securely stored to tape through the use of multiple encryption keys without unduly complicating the process of data retrieval. 
     When used in this specification and claims, the terms “comprises” and “comprising” and variations thereof mean that the specified features, steps or integers are included. The terms are not to be interpreted to exclude the presence of other features, steps or components. 
     The features disclosed in the foregoing description, or the following claims, or the accompanying drawings, expressed in their specific forms or in terms of a means for performing the disclosed function, or a method or process for attaining the disclosed result, as appropriate, may, separately, or in any combination of such features, be utilised for realising the invention in diverse forms thereof.