ABSTRACT
Abstract
Provided is a data storage drive for encrypting data, comprising a microprocessor and circuitry coupled to the microprocessor and adapted to receive a session encrypted data key and to decrypt the session encrypted data key using a session key, wherein a result is a data key that is capable of being used to encrypt clear text and to decrypt cipher text written to a storage medium. Also provided is a system, comprising a microprocessor and circuitry coupled to the microprocessor and adapted to receive a session encrypted data key and to decrypt the session encrypted data key using a private key, wherein a result is a secret key that is capable of being used to encrypt clear text and to decrypt cipher text written to a storage medium.
Description
BACKGROUND
1. Field
Embodiments of the invention relate to key encryption and decryption.
2. Description of the Related Art
Data storage drives (e.g. tape drives) are known for providing cost effective storage and retrieval of large quantities of data. The data in data storage drives is stored on data storage media that are, in turn, stored in storage bins having storage shelves or the like inside the data storage drive in a fashion that renders the media, and its resident data, accessible for physical retrieval. Such media is commonly termed âremovable media.â Data storage media may comprise any type of media on which data may be stored and which may serve as removable media, including but not limited to magnetic media (such as magnetic tape or disks), optical media (such as optical tape or disks), electronic media (such as PROM, EEPROM, flash PROM, Compactflashâ¢, Smartmediaâ¢, Memory Stickâ¢, etc.), or other suitable media. Typically, the data stored in data storage drives is resident on data storage media that is contained within a cartridge and referred to as a data storage media cartridge. An example of a data storage media cartridge that is widely employed in data storage drives for mass data storage is a magnetic tape cartridge.
In some conventional systems, a host computer sends encrypted data to a data storage drive. The encrypted data is stored on the data storage media. However, for situations in which data is received unencrypted at the data storage drive, there is a need in the art for encrypting the data prior to storage on the data storage media.
SUMMARY OF EMBODIMENTS OF THE INVENTION
Provided is a data storage drive for encrypting data, comprising a microprocessor and circuitry coupled to the microprocessor and adapted to receive a session encrypted data key and to decrypt the session encrypted data key using a session key, wherein a result is a data key that is capable of being used to encrypt clear text and to decrypt cipher text written to a storage medium.
Also provided is a system, comprising a microprocessor and circuitry coupled to the microprocessor and adapted to receive a session encrypted data key and to decrypt the session encrypted data key using a private key, wherein a result is a secret key that is capable of being used to encrypt clear text and to decrypt cipher text written to a storage medium.
BRIEF DESCRIPTION OF THE DRAWINGS
Referring now to the drawings in which like reference numbers represent corresponding parts throughout:
FIG. 1 illustrates details of a computing architecture in accordance with certain embodiments.
FIG. 2 illustrates a hardware block diagram of a symmetric encryption circuit that enables encryption and decryption of data in accordance with certain embodiments.
FIG. 3 illustrates a hardware block diagram of an asymmetric encryption circuit that enables encryption and decryption of data in accordance with certain embodiments.
DETAILED DESCRIPTION
In the following description, reference is made to the accompanying drawings which form a part hereof and which illustrate several embodiments of the invention. It is understood that other embodiments may be utilized and structural and operational changes may be made without departing from the scope of the invention.
Certain embodiments provide a symmetric encryption circuit that receives a session encrypted data key (SEDK) and a session key. The session key is used to unwrap the session encrypted data key to produce a data key, wherein the data key is capable of being used to encrypt clear text input to a data storage drive for storage on a data storage medium and to decrypt cipher text read from a data storage medium and that is to be output to a host. The symmetric encryption circuit enables unwrapping the session encrypted data key internal to an Application Specific Integrated Circuit (ASIC) such that the result of the decryption (i.e. unwrapping), which is a data key, is not accessible external to the ASIC.
In certain embodiments, it is assumed that any eavesdropper could know the SEDK and that the key required to decrypt the SEDK, the session key, was either passed to the data storage drive over some secure link (e.g. with IP security (IPsec), Secure Sockets Layer (SSL), or Transport Layer Security (TLS)) or somehow known to the ASIC and the sender before any eavesdropper could listen.
When the SEDK is wrapped with symmetric encryption, a symmetric decryption is required, and embodiments provide hardware in which multiplexors (MUXes) are controlled so that the value unwrapped from the SEDK, the data key that is used to encrypt or decrypt user data, is not accessible to an entity outside the ASIC (e.g. by the microprocessor). In this case, the controls for the multiplexors are intertwined such that if one multiplexor selects a certain input, another multiplexor selects a certain input.
Certain embodiments provide an asymmetric encryption circuit. When the SEDK is wrapped with asymmetric encryption, an asymmetric decryption is required, typically using the private key of a public-private key pair set. In this case the private key may only be accessible by hardware internal to the ASIC, and the requirements to intertwine the controls for the multiplexors is much reducedâone only need assure that the private key, and the result of the decryption with the private key, is not accessible external to the ASIC.
FIG. 1 illustrates details of a computing architecture in accordance with certain embodiments. A host 100 is connected via a communication path 190 to a data storage drive 120 . The host 100 includes one or more applications 110 . In certain embodiments, the data storage drive 120 may reside in a data storage library, while, in other embodiments, the data storage drive 120 does not reside in a data storage library.
The data storage drive 120 includes an encryption circuit 130 and data storage media 170 . The encryption circuit 130 includes a microprocessor 140 , a host attachment 142 (e.g. a Fibre Channel (FC) chip, Serial Attached SCSI (SAS), parallel SCSI, Enterprise Systems Connection (ESCON), Fiber Connectivity (FICON), etc.)), a data flow chip 144 , memory 146 , and firmware 150 . In certain embodiments, the encryption circuit 130 is a symmetric encryption circuit, and in certain alternative embodiments, the encryption circuit 130 is an asymmetric encryption circuit. A chip may be described as providing logic circuitry that implements some functionality. The data flow chip 144 enables data from the microprocessor 140 or host attachment 142 to be encrypted and stored in the data storage media 170 . The data flow chip 144 also enables the encrypted data from the data storage drive 120 to be decrypted. In certain embodiments, the data flow chip 144 is an ASIC. In certain embodiments, the microprocessor 140 is part of the circuitry of the data flow chip 144 .
The data storage drive 120 is also connected to a key manager 160 , which includes devices 164 . The key manager 160 generates keys that may be used to encrypt data using the data flow circuitry 144 .
The host 100 , data storage drive 120 , and key manager 160 may each comprise any code running on a computing device known in the art, such as a server, mainframe, workstation, personal computer, hand held computer, laptop telephony device, network appliance, etc.
The communication path 190 may comprise, for example, any type of network, such as a Storage Area Network (SAN), a peer-to-peer network, a spoke and hub network, a Local Area Network (LAN), a Wide Area Network (WAN), the Internet, an Intranet, etc.
FIG. 2 illustrates a hardware block diagram of a symmetric encryption circuit that enables encryption and decryption of data in accordance with certain embodiments. In the hardware block diagram, a microprocessor 140 , a host attachment 142 , and a data flow chip 144 are coupled to each other.
The data flow chip 144 may include a random seed generator 220 that generates random numbers. The data flow chip 144 may also include a circuit which can check the root Certificate of Authority (CA), check block 214 , that checks that a signature (on a message or certificate) can be traced back to a root certificate of authority signature.
The data flow chip 144 may include several multiplexors (MUXes), depending on the level of flexibility required. A multiplexor may be described as device that combines (âmultiplexesâ) signals for transmission over a single medium. Certain embodiments may implement Advanced Encryption Standard (AES) encryption, which is a subset of symmetric secret-key cryptography, for encrypting user data which is written to a storage medium. The same algorithm, AES, may also be used to wrap data keys into SEDKs, for exchange of key material between the key manager 160 and the data storage drive 120 . Alternatively asymmetric encryption, such as RSA or ECC, may be used to wrap symmetric AES data keys to create SEDKs. The AES was adopted by the National Institute of Standards and Technology (NIST) as US Federal Information Processing Standard (FIPS) PUB 197 on Nov. 26, 2001. Certain embodiments implement AES, which may be used to encrypt user data, include Galois/Counter Mode (GCM) Message Authentication Code (MAC) by encrypting data with a GCM key. GCM is further described in âThe Galois/Counter Mode of Operation (GCM)â by David A. McGrew and John Viega, May 31, 2005.
The data flow chip 144 includes MUX 0 230 (i.e. a first multiplexor), which, in certain embodiments, selects one of four keys to be used as a GCM key. In certain embodiments, MUX 0 230 selects one of the following four keys: a session key, a Data Key 1 (sometimes referred to as âBackupâ Data Key 1 ), a Data Key 2 (sometimes referred to as âStandardâ Data Key 2 ), or a Secret Key. The session key is write only an
BACKGROUND
1. Field
Embodiments of the invention relate to key encryption and decryption.
2. Description of the Related Art
Data storage drives (e.g. tape drives) are known for providing cost effective storage and retrieval of large quantities of data. The data in data storage drives is stored on data storage media that are, in turn, stored in storage bins having storage shelves or the like inside the data storage drive in a fashion that renders the media, and its resident data, accessible for physical retrieval. Such media is commonly termed âremovable media.â Data storage media may comprise any type of media on which data may be stored and which may serve as removable media, including but not limited to magnetic media (such as magnetic tape or disks), optical media (such as optical tape or disks), electronic media (such as PROM, EEPROM, flash PROM, Compactflashâ¢, Smartmediaâ¢, Memory Stickâ¢, etc.), or other suitable media. Typically, the data stored in data storage drives is resident on data storage media that is contained within a cartridge and referred to as a data storage media cartridge. An example of a data storage media cartridge that is widely employed in data storage drives for mass data storage is a magnetic tape cartridge.
In some conventional systems, a host computer sends encrypted data to a data storage drive. The encrypted data is stored on the data storage media. However, for situations in which data is received unencrypted at the data storage drive, there is a need in the art for encrypting the data prior to storage on the data storage media.
SUMMARY OF EMBODIMENTS OF THE INVENTION
Provided is a data storage drive for encrypting data, comprising a microprocessor and circuitry coupled to the microprocessor and adapted to receive a session encrypted data key and to decrypt the session encrypted data key using a session key, wherein a result is a data key that is capable of being used to encrypt clear text and to decrypt cipher text written to a storage medium.
Also provided is a system, comprising a microprocessor and circuitry coupled to the microprocessor and adapted to receive a session encrypted data key and to decrypt the session encrypted data key using a private key, wherein a result is a secret key that is capable of being used to encrypt clear text and to decrypt cipher text written to a storage medium.
BRIEF DESCRIPTION OF THE DRAWINGS
Referring now to the drawings in which like reference numbers represent corresponding parts throughout:
FIG. 1 illustrates details of a computing architecture in accordance with certain embodiments.
FIG. 2 illustrates a hardware block diagram of a symmetric encryption circuit that enables encryption and decryption of data in accordance with certain embodiments.
FIG. 3 illustrates a hardware block diagram of an asymmetric encryption circuit that enables encryption and decryption of data in accordance with certain embodiments.
DETAILED DESCRIPTION
In the following description, reference is made to the accompanying drawings which form a part hereof and which illustrate several embodiments of the invention. It is understood that other embodiments may be utilized and structural and operational changes may be made without departing from the scope of the invention.
Certain embodiments provide a symmetric encryption circuit that receives a session encrypted data key (SEDK) and a session key. The session key is used to unwrap the session encrypted data key to produce a data key, wherein the data key is capable of being used to encrypt clear text input to a data storage drive for storage on a data storage medium and to decrypt cipher text read from a data storage medium and that is to be output to a host. The symmetric encryption circuit enables unwrapping the session encrypted data key internal to an Application Specific Integrated Circuit (ASIC) such that the result of the decryption (i.e. unwrapping), which is a data key, is not accessible external to the ASIC.
In certain embodiments, it is assumed that any eavesdropper could know the SEDK and that the key required to decrypt the SEDK, the session key, was either passed to the data storage drive over some secure link (e.g. with IP security (IPsec), Secure Sockets Layer (SSL), or Transport Layer Security (TLS)) or somehow known to the ASIC and the sender before any eavesdropper could listen.
When the SEDK is wrapped with symmetric encryption, a symmetric decryption is required, and embodiments provide hardware in which multiplexors (MUXes) are controlled so that the value unwrapped from the SEDK, the data key that is used to encrypt or decrypt user data, is not accessible to an entity outside the ASIC (e.g. by the microprocessor). In this case, the controls for the multiplexors are intertwined such that if one multiplexor selects a certain input, another multiplexor selects a certain input.
Certain embodiments provide an asymmetric encryption circuit. When the SEDK is wrapped with asymmetric encryption, an asymmetric decryption is required, typically using the private key of a public-private key pair set. In this case the private key may only be accessible by hardware internal to the ASIC, and the requirements to intertwine the controls for the multiplexors is much reducedâone only need assure that the private key, and the result of the decryption with the private key, is not accessible external to the ASIC.
FIG. 1 illustrates details of a computing architecture in accordance with certain embodiments. A host 100 is connected via a communication path 190 to a data storage drive 120 . The host 100 includes one or more applications 110 . In certain embodiments, the data storage drive 120 may reside in a data storage library, while, in other embodiments, the data storage drive 120 does not reside in a data storage library.
The data storage drive 120 includes an encryption circuit 130 and data storage media 170 . The encryption circuit 130 includes a microprocessor 140 , a host attachment 142 (e.g. a Fibre Channel (FC) chip, Serial Attached SCSI (SAS), parallel SCSI, Enterprise Systems Connection (ESCON), Fiber Connectivity (FICON), etc.)), a data flow chip 144 , memory 146 , and firmware 150 . In certain embodiments, the encryption circuit 130 is a symmetric encryption circuit, and in certain alternative embodiments, the encryption circuit 130 is an asymmetric encryption circuit. A chip may be described as providing logic circuitry that implements some functionality. The data flow chip 144 enables data from the microprocessor 140 or host attachment 142 to be encrypted and stored in the data storage media 170 . The data flow chip 144 also enables the encrypted data from the data storage drive 120 to be decrypted. In certain embodiments, the data flow chip 144 is an ASIC. In certain embodiments, the microprocessor 140 is part of the circuitry of the data flow chip 144 .
The data storage drive 120 is also connected to a key manager 160 , which includes devices 164 . The key manager 160 generates keys that may be used to encrypt data using the data flow circuitry 144 .
The host 100 , data storage drive 120 , and key manager 160 may each comprise any code running on a computing device known in the art, such as a server, mainframe, workstation, personal computer, hand held computer, laptop telephony device, network appliance, etc.
The communication path 190 may comprise, for example, any type of network, such as a Storage Area Network (SAN), a peer-to-peer network, a spoke and hub network, a Local Area Network (LAN), a Wide Area Network (WAN), the Internet, an Intranet, etc.
FIG. 2 illustrates a hardware block diagram of a symmetric encryption circuit that enables encryption and decryption of data in accordance with certain embodiments. In the hardware block diagram, a microprocessor 140 , a host attachment 142 , and a data flow chip 144 are coupled to each other.
The data flow chip 144 may include a random seed generator 220 that generates random numbers. The data flow chip 144 may also include a circuit which can check the root Certificate of Authority (CA), check block 214 , that checks that a signature (on a message or certificate) can be traced back to a root certificate of authority signature.
The data flow chip 144 may include several multiplexors (MUXes), depending on the level of flexibility required. A multiplexor may be described as device that combines (âmultiplexesâ) signals for transmission over a single medium. Certain embodiments may implement Advanced Encryption Standard (AES) encryption, which is a subset of symmetric secret-key cryptography, for encrypting user data which is written to a storage medium. The same algorithm, AES, may also be used to wrap data keys into SEDKs, for exchange of key material between the key manager 160 and the data storage drive 120 . Alternatively asymmetric encryption, such as RSA or ECC, may be used to wrap symmetric AES data keys to create SEDKs. The AES was adopted by the National Institute of Standards and Technology (NIST) as US Federal Information Processing Standard (FIPS) PUB 197 on Nov. 26, 2001. Certain embodiments implement AES, which may be used to encrypt user data, include Galois/Counter Mode (GCM) Message Authentication Code (MAC) by encrypting data with a GCM key. GCM is further described in âThe Galois/Counter Mode of Operation (GCM)â by David A. McGrew and John Viega, May 31, 2005.
The data flow chip 144 includes MUX 0 230 (i.e. a first multiplexor), which, in certain embodiments, selects one of four keys to be used as a GCM key. In certain embodiments, MUX 0 230 selects one of the following four keys: a session key, a Data Key 1 (sometimes referred to as âBackupâ Data Key 1 ), a Data Key 2 (sometimes referred to as âStandardâ Data Key 2 ), or a Secret Key. The session key is write only and is stored in a Write Only (W/O) register by the microprocessor 140 . The session key is negotiated between the data storage drive 120 and the key manager 160 . Data Key 1 is write only and is a backup data key that may be written by the microprocessor 140 . Data Key 2 is hardware read and write (H/W R/W) and is a data key decrypted from the Session Encrypted Data Key (SEDK). An SEDK may be described as Data Key 2 encrypted with the session key. Data Key 2 is written into a Data Key 2 register 284 , and the Data Key 2 register 284 may only be read by MUX 0
230 . Therefore, the Data Key 2 register value is both readable and writable (R/W), but only by hardware (H/W), thus the Data Key 2 register 284 is H/W R/W. The Secret Key is read-only to the symmetric encryption circuits shown in FIG. 2 . In certain embodiments, the Secret Key may be a fixed value, or a settable non-volatile value (e.g. Programmable Read Only Memory (PROM)), that exists in an Application Specific Integrated Circuit (ASIC) which is only readable internal to the ASIC in the data storage drive 120 and that is set at the time of manufacture of the data storage drive 120 . In certain alternative embodiments, the Secret Key may be the output of some other circuit that may have actively negotiated a Secret Key (e.g. a shared secret may have been negotiated via a Diffie-Hellman (D-H) key exchange), and the secret key may be that shared secret or derived from that shared secret. In yet other embodiments, the Secret Key may have been transmitted to the drive wrapped in a public key (e.g. with RSA or ECC key encryption techniques), where the ASIC has the associated private key and unwraps the Secret Key into a register, which is only readable by the symmetric encryption circuit shown in FIG. 2 . The Secret Key may then be provided, for example, to the host 100 . The Secret Key may be used to encrypt or decrypt data as needed. Although MUX 0 is illustrated with four inputs, in certain embodiments, MUX 0 may receive as few as two inputs.
In certain embodiments, the data flow chip 144 includes MUX 1 240 (i.e. a second multiplexor). MUX 1
240 selects the source of the Session Encrypted Data Key (SEDK). The source may be the host attachment 142 or the microprocessor 140 (e.g. if received from a RS-422 serial interface) to a wired or wireless Ethernet network). In certain alternative embodiments, the data flow chip 144 may have the source of the SEDK hard selected (i.e. MUX 1
240 is not used).
MUX 2 270 (i.e. a third multiplexor) selects which signal is to be input to the decryption block. The signal may either be the output of the encryption block 260 (i.e. an âencryption blockâ) to perform a decryption on-the-fly check as part of a standard write; the SEDK 244 output from the SEDK register 242 ; when decryption of the data key is being performed, the output of the CipherText interface (I/F) register 264 ; or data that is being read from the data storage medium 267 as part of a standard Read. In certain alternative embodiments in which âdecryption-on-the-flyâ is not available, the data flow chip 144 may not implement MUX 2
270 . In certain embodiments, the output of MUX 2
270 may bypass decryption and be input to MUX 3
290 .
DEMUX 280 is a demultiplexor that selects which direction the decryption block 272 output is sent. The decryption block 272 output may be sent either to MUX 3 290 bound for the host attachment 142 or to the Data Key 2 register 284 and the rest of message register 288 . For example, Data Key 2 may be the first 32 bytes of an encrypted message and this portion is sent to the Data Key 2 register 284 , while the remaining portion of the encrypted message after the first 32 bytes is sent to the rest of message register 288 . As an alternative example, the Data Key 2 may be the second 32 bytes of the encrypted message and is sent to the Data Key 2 register 284 , and the remaining portion of the encrypted message is sent to the rest of message register 288 .
MUX 3 (i.e. a fourth multiplexor) 290 selects either the output of DEMUX 280 or a decryption bypass as a source of data to output to the host attachment 142 . In certain embodiments that do not allow for transfer of cipher text, the data flow chip 144 may not implement MUX 3
290 .
MUX 4 252 (i.e. a fifth multiplexor) selects whether data to be encrypted is coming from the host attachment 142 or from the microprocessor 140 via a ClearText interface (I/F) register 250 . In certain embodiments that do not allow for clear text to be passed in by the microprocessor, the data flow chip 144 may not implement MUX 4
252 .
A ClearText I/F register 250 stores clear text (i.e. data that has not been encrypted). An encryption block 260 performs encryption, for example, in a GCM mode. A decryption block 272 (i.e. a âdecryption blockâ) performs decryption, for example, in GCM mode. A CipherText I/F register 264 stores encrypted data.
The microprocessor 140 is able to read the Data Key 2 register 284 , the cipher text I/F register 264 , and the rest of message register 288 . The microprocessor 140 is also able to write to the ClearText I/ F register 250 .
Initially, the data storage drive 120 builds a key exchange message in memory 146 and calculates a digital signature with firmware 150 . One or more initial messages sent may not be encrypted. These initial messages may be sent by the microprocessor 140 directly to a port 292 (e.g. a RS-422 port) (out-of-band) or to the decryption bypass line (in-band). In-band refers to the initial messages traveling on a same host attachment 142 that data travels on to the drive (e.g. Fibre Channel), while out-of-band refers to the initial messages not traveling on the same host attachment as the data travels on (e.g. IP link bridged to RS-422). These initial messages are used to negotiate a session key with the key manager 160 . Once a session key is negotiated, the data contents of each message is encrypted with the session key.
In certain embodiments, the microprocessor 140 of data storage drive 120 writes the session key as input to MUX 0
230 . The session key is output from MUX 0
230 as key 234 and sent as input to the encryption block 260 . ClearText is then provided to the encryption block 260 in one of two ways, either the data is received from the host attachment 142 , or the microprocessor 140 fills the ClearText I/F register 250 (or sends a series of writes to a given register). MUX 4
252 selects which of these two provides input to the encryption block 260 , and this multiplexor is typically controlled by register bits set by the microprocessor. The microprocessor 140 then causes encryption of the clear text to occur with the key 234 in encryption block 260 . The encrypted data output is collected in the CipherText I/ F register 264 . This encrypted data is then passed by the microprocessor 140 out to the port 292 or to the decryption bypass line.
After the session key is established, the key manager 160 sends the data storage drive 120 a Session Encrypted Data Key (SEDK). The data storage drive 120 receives the SEDK and MUX 1
240 selects the source of the SEDK. The output of MUX 1
240 is the SEDK, which is stored into the SEDK register 242 . The SEDK 244 in the SEDK register 242 is also an input to MUX 2
270 . Control logic in the data storage drive 120 sets the select lines such that MUX 0
230 selects the Session Key. This causes MUX 2
270 to select the input line with SEDK 244 (i.e. the SEDK 244 stored in SEDK register 242 ). MUX 2
270 outputs the SEDK to the decryption block 272 , which decrypts the SEDK with the session key. The decryption block 272 outputs the decrypted data as input to DEMUX 280 . DEMUX 280 outputs the decrypted data into registers
284 and 288 . In particular, the output of DEMUX 280 is a Data Key 2 portion 282 that is sent to Data Key 2 register 284 and a rest of message portion 286 that is sent to rest of message register 288 .
Once Data Key 2 is stored in the Data Key 2 register, the microprocessor 140 may set the select lines such that the Data Key 2 is selected by MUX 0
230 . Data Key 2 is output from MUX 0
230 as key 234 and sent as input to the encryption block 260 . Either the microprocessor 140 fills the ClearText I/F register or the host attachment 142 fills the ClearText I/ F register 250 . Clear text output from the ClearText I/F register 250 is input to MUX 4
252 . The microprocessor 140 sets control bits which are processed by ASIC control logic to control the select lines of MUX 4
252 selects the clear text and outputs the clear text to encryption block 260 . The microprocessor 140 then causes encryption of the clear text to occur with Data Key 2 in encryption block 260 . The encrypted data (cipher text 262 ) is collected in the CipherText I/F register 264 and is sent to data storage medium 266 (e.g. in data storage media 170 ).
The microprocessor 140 may set the select lines such that Data Key 1 is selected by MUX 0
230 . Data Key 1 is output from MUX 0
230 as key 234 and sent as input to the encryption block 260 . Either the microprocessor 140 fills the ClearText I/F register or the host attachment 142 fills the ClearText I/ F register 250 . Clear text output from the ClearText I/F register 250 is input to MUX 4
252 . The microprocessor 140 sets control bits which are processed by ASIC control logic to control the select lines of MUX 4
252 so that it selects the clear text and outputs the clear text to encryption block 260 . The microprocessor 140 then causes encryption of the clear text to occur with Data Key 1 in encryption block 260 . The encrypted data (cipher text 262 ) is collected in the CipherText I/F register 264 and is sent to data storage medium 266 in data storage media 170 . If the Data Key was passed to the data storage drive 120 in the clear (i.e. without being encrypted), or if the SEDK was unwrapped by code running on the microprocessor 140 , then the microprocessor 140 would typically program the Data Key into the ASIC, which would be Data Key 1 . On the other hand, if the SEDK was unwrapped in decryption hardware (e.g. by decryption block 272 ), then it can travel though demux 280 and be latched as Data Key 2 .
The microprocessor 140 may set the select lines such that the Secret Key is selected by MUX 0
230 . Secret Key is output from MUX 0
230 as key 234 and sent as input to the encryption block 260 . Either the microprocessor 140 fills the ClearText I/F register or the host attachment 142 fills the ClearText I/ F register 250 . Clear text output from the ClearText I/F register 250 is input to MUX 4
252 . The microprocessor 140 sets control bits which are processed by ASIC control logic to control the select lines of MUX 4
252 so that it selects the clear text and outputs the clear text to encryption block 260 . The microprocessor 140 then causes encryption of the clear text to occur with Secret Key in encryption block 260 . The encrypted data (cipher text 262 ) is collected in the CipherText I/F register 264 and is sent to data storage medium 266 in data storage media 170 . The Secret Key may be used when data is to be encrypted with a previously shared secret (e.g. set at time of manufacture, or based on public key decryption of an SEDK in hardware).
FIG. 3 illustrates a hardware block diagram of an asymmetric encryption circuit that enables encryption and decryption of data in accordance with certain embodiments. In the hardware block diagram, a microprocessor 140 , a host attachment 142 , and a data flow chip 144 are coupled to each other. A public decryption key block 312 enables public key unwrapping. A public-private key set is established at some point (e.g. at time of manufacture of the data storage drive 120 or at a later time by a controlled process that has physical access to the data storage drive 120 and knowledge of some special procedure). In an alternative embodiment, the private key is hard coded into the ASIC's circuitry using VHDL (Very-High-Speed Integrated Circuit (VHSIC) Hardware Description Language) or Verilog, which would result in all ASICs made with this VHDL or Verilog having the same key), and the private key of this public-private key pair is stored involatilely in the ASIC (e.g. PROM) in a register that may only be read internal to the ASIC (e.g. the microprocessor 140 cannot read the private key because the microprocessor 140 is external to the ASIC). The public key may either be programmed into registers that can be read external to the ASIC or stored separately from the ASIC, potentially in publicly accessible memory space. This public key may be stored in a certificate signed by a root Certificate of Authority (CA).
The external key manager 160 obtains the data storage drive's 120 public key and uses the public key to wrap a Data Key to create the SEDK, which is sent to the data storage drive 120 and input to the data flow chip 144 (i.e. ASIC) either directly from the host attachment 142 or by the microprocessor 140 (where MUX 240 selects which). The SEDK is then provided to the public key decryption block 312 , which decrypts the SEDK with the private key to create the Secret Key, which will be used as the Data Key.
Use of the secret key in this manner eliminates the key distribution problem associated with the session key. Additionally, use of the secret key in this manner closes many attack vectors. For example, a hacker is not able to break the SEDK without somehow ascertaining the private key stored inside the ASIC in a register space that is not accessible by external entities. Moreover, use of the secret key in this manner does not rely on interlocked control of the multiplexors to avoid escape of the data key.
Examples of public key cryptography techniques that may be used with embodiments include RSA or ECC encryption techniques. In certain embodiments, the Diffie-Hellman key exchange, which requires active negotiation, may be used.
The root CA check block 214 that provides circuitry to check the root CA's signature requires public key capability. In certain embodiments, the public key decryption block 312 provides one set of public key circuitry that may be used to either check a root CA's signature or to unwrap SEDKs. That is, in certain embodiments, one set of public key circuitry may be used in different ways depending on the task being accomplished. In certain alternative embodiments, two separate circuits may be used to check a root CA's signature and to unwrap SEDKs (i.e. blocks 312 , 214 ).
Moreover, to check a root CA's signature, the CA's public key is stored in the ASIC. For example, the public key may either be stored in a PROM at time of manufacture or may be hard coded in VHDL (or Verilog). With the latter, in the case that a CA's private or âsigningâ key is compromised, the CA would have to use a new public-private key pair. Certain embodiments may allow the public key stored in the ASIC to be updated (e.g. if one had physical access to the drive and knew some special procedure).
In certain embodiments, the <figure-callout id="140" label="microprocessor" filenames="US1010
CLAIMS
Claims ( 9 )
What is claimed is:
1. An Application Specific Integrated Circuit (ASIC), comprising:
a microprocessor;
a host attachment; and
circuitry coupled directly to the microprocessor and directly to the host attachment, the circuitry comprising:
a root Certificate of Authority check block that checks a root Certificate of Authority (CA) signature;
a first multiplexor that selects a encrypted data key from inputs of a first encrypted data key from the microprocessor and a second encrypted data key from the host attachment, wherein the encrypted data key is created by using a public key of a public-private key pair to wrap a data key;
a register coupled to the first multiplexor that stores the encrypted data key;
a public key decryption block coupled to the register and to a second multiplexor, wherein the public key decryption block receives the encrypted data key and unwraps the encrypted data key using a private key of the public-private key pair to produce the data key for use in encrypting and decrypting data;
a second multiplexor coupled to the public key decryption block that receives the data key as input from the public key decryption block, wherein the second multiplexor selects the data key received from the public key decryption block from inputs of a first session key, a backup data key, a standard data key, and the data key received from the public key decryption block;
an encryption block coupled to the second multiplexor that receives clear text and the data key, wherein the clear text is selected from first clear text from the microprocessor and second clear text from the host attachment, and wherein the encryption block encrypts the clear text with the data key to generate encrypted text; and
a decryption block coupled to the second multiplexor that receives a piece of encrypted data selected from the encrypted data key and the encrypted text from the encryption block, wherein the decryption block decrypts the piece of encrypted data.
2. The ASIC of claim 1 , wherein registers used by the microprocessor cannot be seen by an emulator when the microprocessor performs the checking and the unwrapping.
3. The ASIC of claim 1 , further comprising:
the circuitry storing the private key.
4. The ASIC of claim 3 , wherein the private key is stored in a register space inside the ASIC that is not accessible by external entities.
5. The ASIC of claim 1 , wherein the circuitry further comprises:
a third multiplexor that selects the clear text from inputs of the first clear text from the microprocessor and the second clear text from the host attachment; and
a fourth multiplexor that selects the piece of encrypted data from inputs of the session encrypted data key and the encrypted text from the encryption block.
6. A system, comprising:
a microprocessor;
a host attachment coupled to the microprocessor; and
circuitry coupled to the microprocessor and to the host attachment, the circuitry comprising an Application Specific Integrated Circuit (ASIC) for encryption and decryption that includes a first multiplexor, a second multiplexor, a public key decryption block, a decryption block, an encryption block, and a demultiplexor;
wherein the first multiplexor selects an encrypted data key from inputs of a first encrypted data key from the microprocessor and a second encrypted data key from the host attachment, and wherein the encrypted data key is input to the public key decryption block;
wherein the public key decryption block is coupled to the first multiplexor and to the second multiplexor and decrypts the encrypted data key using a private key to obtain a secret key, and wherein the secret key is input to the second multiplexor;
wherein the second multiplexor is coupled to the decryption block and to the encryption block and selects the secret key, from inputs of a first key, a backup data key, a standard data key, and the secret key, wherein the secret key is input to the decryption block and to the encryption block;
wherein the encryption block encrypts clear text using the secret key to generate encrypted text;
wherein the decryption block decrypts the encrypted text using the secret key;
wherein a demultiplexor is coupled to the decryption block, receives the decrypted text, and selects one of storage of the decrypted text and forwarding of the decrypted text to the host attachment; and
wherein the circuitry controls the first multiplexor and the second multiplexor so that the secret key, after the decryption, is not accessible to an entity outside the ASIC.
7. The system of claim 6 , further comprising:
a key appliance;
a data storage drive coupled to the key appliance, wherein the circuitry is implemented at the data storage drive; and
the key appliance obtaining a public key that is part of a public-private key pair from the data storage drive, using the public key to wrap the secret key to create the encrypted data key, and sending the encrypted data key to the data storage drive.
8. The system of claim 6 , wherein the private key is part of a public-private key pair.
9. The system of claim 6 , wherein the private key is stored in a register space inside the ASIC that is not accessible by external entities.
US15/617,800
2007-04-10
2017-06-08
Key encryption and decryption
Expired - Fee Related
US10108558B2
( en )
Priority Applications (1)
Application Number
Priority Date
Filing Date
Title
US15/617,800
US10108558B2
( en )
2007-04-10
2017-06-08
Key encryption and decryption
Applications Claiming Priority (3)
Application Number
Priority Date
Filing Date
Title
US11/733,669
US9008317B2
( en )
2007-04-10
2007-04-10
Key encryption and decryption
US14/627,763
US9747223B2
( en )
2007-04-10
2015-02-20
Key encryption and decryption
US15/617,800
US10108558B2
( en )
2007-04-10
2017-06-08
Key encryption and decryption
Related Parent Applications (1)
Application Number
Title
Priority Date
Filing Date
US14/627,763
Continuation
US9747223B2
( en )
2007-04-10
2015-02-20
Key encryption and decryption
Publications (2)
Publication Number
Publication Date
US20170270057A1
US20170270057A1 ( en )
2017-09-21
US10108558B2
true
US10108558B2 ( en )
2018-10-23
Family
ID=41449026
Family Applications (3)
Application Number
Title
Priority Date
Filing Date
US11/733,669
Expired - Fee Related
US9008317B2
( en )
2007-04-10
2007-04-10
Key encryption and decryption
US14/627,763
Expired - Fee Related
US9747223B2
( en )
2007-04-10
2015-02-20
Key encryption and decryption
US15/617,800
Expired - Fee Related
US10108558B2
( en )
2007-04-10
2017-06-08
Key encryption and decryption
Family Applications Before (2)
Application Number
Title
Priority Date
Filing Date
US11/733,669
Expired - Fee Related
US9008317B2
( en )
2007-04-10
2007-04-10
Key encryption and decryption
US14/627,763
Expired - Fee Related
US9747223B2
( en )
2007-04-10
2015-02-20
Key encryption and decryption
Country Status (1)
Country
Link
US
( 3 )
US9008317B2
( en )
Families Citing this family (36)
* Cited by examiner, â Cited by third party
Publication number
Priority date
Publication date
Assignee
Title
US9008317B2
( en )
2007-04-10
2015-04-14
International Business Machines Corporation
Key encryption and decryption
US8656186B2
( en )
*
2007-05-01
2014-02-18
International Business Machines Corporation
Use of indirect data keys for encrypted tape cartridges
US8494166B2
( en )
*
2007-05-01
2013-07-23
International Business Machines Corporation
Use of indirect data keys for encrypted tape cartridges
US8423789B1
( en )
2007-05-22
2013-04-16
Marvell International Ltd.
Key generation techniques
CN102637457B
( en )
*
2011-02-14
2015-06-17
å¼ å½é£
Confidential type 3Dm-ROM (three-dimensional mask programmable-read only memory)
US20150317255A1
( en )
*
2011-02-15
2015-11-05
Chengdu Haicun Ip Technology Llc
Secure Printed Memory
US20120210438A1
( en )
*
2011-02-15
2012-08-16
Guobiao Zhang
Secure Three-Dimensional Mask-Programmed Read-Only Memory
CN102158759B
( en )
*
2011-04-22
2013-11-06
æ·±å³åç»´æ°åææ¯è¡ä»½æéå ¬å¸
Program recording method, playback method of recorded program and set top box
GB2508052A
( en )
*
2012-11-18
2014-05-21
Nds Ltd
Glitch resistant device
IL228523A0
( en )
*
2013-09-17
2014-03-31
Nds Ltd
Private data processing in a cloud-based environment
US9729319B2
( en )
*
2014-12-15
2017-08-08
Nxp Usa, Inc.
Key management for on-the-fly hardware decryption within integrated circuits
US10608817B2
( en )
2016-07-06
2020-03-31
Masimo Corporation
Secure and zero knowledge data sharing for cloud applications
US11030618B1
( en )
2016-09-30
2021-06-08
Winkk, Inc.
Authentication and personal data sharing for partner services using out-of-band optical mark recognition
US11637694B2
( en )
2018-07-16
2023-04-25
Winkk, Inc.
Secret material exchange and authentication cryptography operations
US11928193B2
( en )
2019-12-10
2024-03-12
Winkk, Inc.
Multi-factor authentication using behavior and machine learning
US12335399B2
( en )
2019-12-10
2025-06-17
Winkk, Inc.
User as a password
US12153678B2
( en )
2019-12-10
2024-11-26
Winkk, Inc.
Analytics with shared traits
US11328042B2
( en )
2019-12-10
2022-05-10
Winkk, Inc.
Automated transparent login without saved credentials or passwords
US11588794B2
( en )
2019-12-10
2023-02-21
Winkk, Inc.
Method and apparatus for secure application framework and platform
US11936787B2
( en )
2019-12-10
2024-03-19
Winkk, Inc.
User identification proofing using a combination of user responses to system turing tests using biometric methods
US11574045B2
( en )
2019-12-10
2023-02-07
Winkk, Inc.
Automated ID proofing using a random multitude of real-time behavioral biometric samplings
US11652815B2
( en )
2019-12-10
2023-05-16
Winkk, Inc.
Security platform architecture
US11553337B2
( en )
2019-12-10
2023-01-10
Winkk, Inc.
Method and apparatus for encryption key exchange with enhanced security through opti-encryption channel
US12143419B2
( en )
2019-12-10
2024-11-12
Winkk, Inc.
Aggregated trust framework
US11657140B2
( en )
2019-12-10
2023-05-23
Winkk, Inc.
Device handoff identification proofing using behavioral analytics
US12073378B2
( en )
2019-12-10
2024-08-27
Winkk, Inc.
Method and apparatus for electronic transactions using personal computing devices and proxy services
US12341790B2
( en )
2019-12-10
2025-06-24
Winkk, Inc.
Device behavior analytics
US12132763B2
( en )
2019-12-10
2024-10-29
Winkk, Inc.
Bus for aggregated trust framework
EP4088214A4
( en )
*
2020-02-21
2023-08-30
Hewlett-Packard Development Company, L.P.
COMPUTING DEVICES FOR ENCRYPTION AND DECRYPTION OF DATA
US11184160B2
( en )
*
2020-02-26
2021-11-23
International Business Machines Corporation
Channel key loading in a computing environment
US12095751B2
( en )
2021-06-04
2024-09-17
Winkk, Inc.
Encryption for one-way data stream
US11843943B2
( en )
2021-06-04
2023-12-12
Winkk, Inc.
Dynamic key exchange for moving target
CN113505383A
( en )
*
2021-07-02
2021-10-15
ä¸å½ç§å¦é¢è®¡ç®ææ¯ç ç©¶æ
ECDSA algorithm execution system and method
US11824999B2
( en )
*
2021-08-13
2023-11-21
Winkk, Inc.
Chosen-plaintext secure cryptosystem and authentication
US12438731B2
( en )
2022-09-21
2025-10-07
Winkk, Inc.
Diophantine system for digital signatures
US12368578B2
( en )
*
2023-08-31
2025-07-22
Dell Products L.P.
Secret management in distributed systems using passphrases
Citations (29)
* Cited by examiner, â Cited by third party
Publication number
Priority date
Publication date
Assignee
Title
US4430584A
( en )
1980-05-29
1984-02-07
Texas Instruments Incorporated
Modular input/output system
US4719458A
( en )
1986-02-24
1988-01-12
Chrysler Motors Corporation
Method of data arbitration and collision detection in a data bus
US5109493A
( en )
1989-06-30
1992-04-28
Poget Computer Corp.
Structure and method for tying down an unused multi-user bus
US5235641A
( en )
1990-03-13
1993-08-10
Hitachi, Ltd.
File encryption method and file cryptographic system
US5687237A
( en )
*
1995-11-13
1997-11-11
Pitney Bowes Inc.
Encryption key management system for an integrated circuit
US6069857A
( en )
1991-02-15
2000-05-30
Discovision Associates
Optical disc system having improved circuitry for performing blank sector check on readable disc
US6069957A
( en )
1997-03-07
2000-05-30
Lucent Technologies Inc.
Method and apparatus for providing hierarchical key system in restricted-access television system
US6134660A
( en )
1997-06-30
2000-10-17
Telcordia Technologies, Inc.
Method for revoking computer backup files using cryptographic techniques
US20020023032A1
( en )
2000-08-18
2002-02-21
Hewlett-Packard Company
Trusted system
US20020188856A1
( en )
*
2001-06-11
2002-12-12
Brian Worby
Storage device with cryptographic capabilities
US20030074319A1
( en )
2001-10-11
2003-04-17
International Business Machines Corporation
Method, system, and program for securely providing keys to encode and decode data in a storage cartridge
US6636966B1
( en )
2000-04-03
2003-10-21
Dphi Acquisitions, Inc.
Digital rights management within an embedded storage device
US6690795B1
( en )
1997-03-04
2004-02-10
Lucent Technologies Inc.
Multiple keys for decrypting data in restricted-access television system
US20040078584A1
( en )
2002-08-23
2004-04-22
General Instrument Corp.
Interchip transport bus copy protection
US20040123112A1
( en )
2002-12-19
2004-06-24
International Business Machines Corporation
Security object providing encryption scheme and key
US20040228493A1
( en )
*
2003-05-14
2004-11-18
Kenneth Ma
Method and system for disaster recovery of data from a storage device
US20050005092A1
( en )
2003-06-26
2005-01-06
Jeong Seung-Youl
Method and apparatus for protecting data during storage/retrieval
US20050091491A1
( en )
*
2003-10-28
2005-04-28
Dphi Acquisitions, Inc.
Block-level storage device with content security
US20050152670A1
( en )
2004-01-14
2005-07-14
Quantum Corporation
Auxiliary memory in a tape cartridge
US20050216750A1
( en )
2004-03-23
2005-09-29
Harris Corporation
Modular cryptographic device providing status determining features and related methods
US20050220305A1
( en )
2004-04-06
2005-10-06
Kazuhisa Fujimoto
Storage system executing encryption and decryption processing
US20060059373A1
( en )
2004-09-10
2006-03-16
International Business Machines Corporation
Integrated circuit chip for encryption and decryption using instructions supplied through a secure interface
US20060059369A1
( en )
2004-09-10
2006-03-16
International Business Machines Corporation
Circuit chip for cryptographic processing having a secure interface to an external memory
US20060059368A1
( en )
2004-09-10
2006-03-16
International Business Machines Corporation
System and method for processing by distinct entities securely configurable circuit chips
JP3824297B2
( en )
2001-06-25
2006-09-20
ã¤ã³ã¿ã¼ãã·ã§ãã«ã»ãã¸ãã¹ã»ãã·ã¼ã³ãºã»ã³ã¼ãã¬ã¼ã·ã§ã³
Authentication method, authentication system, and external storage device performed between external storage device and system device
US20060236129A1
( en )
2005-04-18
2006-10-19
Yasuyuki Mimatsu
Method for managing external storage devices
US20070280483A1
( en )
2006-06-06
2007-12-06
Red Hat, Inc.
Methods and systems for key recovery for a token
US20080165959A1
( en )
*
2006-02-16
2008-07-10
Samsung Electronics Co. Ltd.
Encrypted data players and encrypted data player systems
US20090327746A1
( en )
2007-04-10
2009-12-31
International Business Machines Corporation
Key encryption and decryption
2007
2007-04-10
US
US11/733,669
patent/US9008317B2/en
not_active
Expired - Fee Related
2015
2015-02-20
US
US14/627,763
patent/US9747223B2/en
not_active
Expired - Fee Related
2017
2017-06-08
US
US15/617,800
patent/US10108558B2/en
not_active
Expired - Fee Related
Patent Citations (31)
* Cited by examiner, â Cited by third party
Publication number
Priority date
Publication date
Assignee
Title
US4430584A
( en )
1980-05-29
1984-02-07
Texas Instruments Incorporated
Modular input/output system
US4719458A
( en )
1986-02-24
1988-01-12
Chrysler Motors Corporation
Method of data arbitration and collision detection in a data bus
US5109493A
( en )
1989-06-30
1992-04-28
Poget Computer Corp.
Structure and method for tying down an unused multi-user bus
US5235641A
( en )
1990-03-13
1993-08-10
Hitachi, Ltd.
File encryption method and file cryptographic system
US6069857A
( en )
1991-02-15
2000-05-30
Discovision Associates
Optical disc system having improved circuitry for performing blank sector check on readable disc
US5687237A
( en )
*
1995-11-13
1997-11-11
Pitney Bowes Inc.
Encryption key management system for an integrated circuit
US6690795B1
( en )
1997-03-04
2004-02-10
Lucent Technologies Inc.
Multiple keys for decrypting data in restricted-access television system
US6069957A
( en )
1997-03-07
2000-05-30
Lucent Technologies Inc.
Method and apparatus for providing hierarchical key system in restricted-access television system
US6134660A
( en )
1997-06-30
2000-10-17
Telcordia Technologies, Inc.
Method for revoking computer backup files using cryptographic techniques
US6636966B1
( en )
2000-04-03
2003-10-21
Dphi Acquisitions, Inc.
Digital rights management within an embedded storage device
US20020023032A1
( en )
2000-08-18
2002-02-21
Hewlett-Packard Company
Trusted system
US20020188856A1
( en )
*
2001-06-11
2002-12-12
Brian Worby
Storage device with cryptographic capabilities
JP3824297B2
( en )
2001-06-25
2006-09-20
ã¤ã³ã¿ã¼ãã·ã§ãã«ã»ãã¸ãã¹ã»ãã·ã¼ã³ãºã»ã³ã¼ãã¬ã¼ã·ã§ã³
Authentication method, authentication system, and external storage device performed between external storage device and system device
US20030074319A1
( en )
2001-10-11
2003-04-17
International Business Machines Corporation
Method, system, and program for securely providing keys to encode and decode data in a storage cartridge
US20040078584A1
( en )
2002-08-23
2004-04-22
General Instrument Corp.
Interchip transport bus copy protection
US20040123112A1
( en )
2002-12-19
2004-06-24
International Business Machines Corporation
Security object providing encryption scheme and key
US20040228493A1
( en )
*
2003-05-14
2004-11-18
Kenneth Ma
Method and system for disaster recovery of data from a storage device
US20050005092A1
( en )
2003-06-26
2005-01-06
Jeong Seung-Youl
Method and apparatus for protecting data during storage/retrieval
US20050091491A1
( en )
*
2003-10-28
2005-04-28
Dphi Acquisitions, Inc.
Block-level storage device with content security
US20050152670A1
( en )
2004-01-14
2005-07-14
Quantum Corporation
Auxiliary memory in a tape cartridge
US20050216750A1
( en )
2004-03-23
2005-09-29
Harris Corporation
Modular cryptographic device providing status determining features and related methods
US20050220305A1
( en )
2004-04-06
2005-10-06
Kazuhisa Fujimoto
Storage system executing encryption and decryption processing
US20060059369A1
( en )
2004-09-10
2006-03-16
International Business Machines Corporation
Circuit chip for cryptographic processing having a secure interface to an external memory
US20060059368A1
( en )
2004-09-10
2006-03-16
International Business Machines Corporation
System and method for processing by distinct entities securely configurable circuit chips
US20060059373A1
( en )
2004-09-10
2006-03-16
International Business Machines Corporation
Integrated circuit chip for encryption and decryption using instructions supplied through a secure interface
US20060236129A1
( en )
2005-04-18
2006-10-19
Yasuyuki Mimatsu
Method for managing external storage devices
US20080165959A1
( en )
*
2006-02-16
2008-07-10
Samsung Electronics Co. Ltd.
Encrypted data players and encrypted data player systems
US20070280483A1
( en )
2006-06-06
2007-12-06
Red Hat, Inc.
Methods and systems for key recovery for a token
US20090327746A1
( en )
2007-04-10
2009-12-31
International Business Machines Corporation
Key encryption and decryption
US9008317B2
( en )
2007-04-10
2015-04-14
International Business Machines Corporation
Key encryption and decryption
US20160357687A1
( en )
2007-04-10
2016-12-08
International Business Machines Corporation
Key encryption and decryption
Non-Patent Citations (27)
* Cited by examiner, â Cited by third party
Title
" Advanced Encryption Standard (AES) ", Federal Information Processing Standards Publication 197, Nov. 2001, pp. 1-51.
" Information Distribution Via ROM Disks ", IBM Corporation, Technical Disclosure Bulletin, vol. 33, No. 12, May 1991, pp. 70-71.
Advisory Action dated Apr. 7, 2011, pp. 7, for U.S. Appl. No. 11/733,669, filed Apr. 10, 2007.
Amendment filed Jan. 10, 2017, pp. 13, to Office Action dated Oct. 20, 2016, pp. 23, for U.S. Appl. No. 14/627,763, filed Feb. 20, 2015.
Corrected Notice of Allowability dated Jan. 21, 2015, pp. 2, for U.S. Appl. No. 11/733,669, filed Apr. 10, 2007.
D.A. McGrew, et al., " The Galois/Counter Mode of Operation (GCM) ", May 2005, pp. 1-44.
Final Office Action dated Dec. 17, 2010, pp. 59, for U.S. Appl. No. 11/733,669, filed Apr. 10, 2007.
Final Office Action dated Dec. 8, 2011, pp. 28, for U.S. Appl. No. 11/733,669, filed Apr. 10, 2007.
Final Office Action dated Feb. 16, 2017, pp. 24 for U.S. Appl. No. 14/627,763, filed Feb. 20, 2015.
Notice of Allowance dated Apr. 27, 2017, pp. 8, for U.S. Appl. No. 14/627,763, filed Feb. 20, 2015.
Notice of Allowance dated Dec. 10, 2014, pp. 11, for U.S. Appl. No. 11/733,669, filed Apr. 10, 2007.
Notice of Appeal dated Apr. 13, 2011, pp. 1, for U.S. Appl. No. 11/733,669, filed Apr. 10, 2007.
Notice of Panel Decision dated Jun. 10, 2011, pp. 2, for U.S. Appl. No. 11/733,669, filed Apr. 10, 2007.
Office Action dated Jul. 1, 2011, pp. 24, for U.S. Appl. No. 11/733,669, filed Apr. 10, 2007.
Office Action dated Jul. 9, 2010, pp. 35, for U.S. Appl. No. 11/733,669, filed Apr. 10, 2007.
Office Action dated Oct. 20, 2016, pp. 23, for U.S. Appl. No. 14/627,763, filed Feb. 20, 2015.
Pre-Appeal Brief Request for Review dated Apr. 13, 2011, pp. 6, for U.S. Appl. No. 11/733,669, filed Apr. 10, 2007.
Preliminary Amendment dated Feb. 20, 2015, pp. 6, for U.S. Appl. No. 14/627,763, filed Feb. 20, 2015.
Requirement for Restriction/Election dated Aug. 4, 2014, pp. 6, for U.S. Appl. No. 11/733,669, filed Apr. 10, 2007.
Response dated Apr. 13, 2017, pp. 6, to Final Office Action dated Feb. 16, 2017, pp. 24 for U.S. Appl. No. 14/627,763, filed Feb. 20, 2015.
Response dated Mar. 17, 2011, pp. 21, to Office Action dated Jul. 9, 2010, pp. 35, for U.S. Appl. No. 11/733,669, filed Apr. 10, 2007.
Response dated Mar. 8, 2012, pp. 18, to Final Office Action dated Dec. 8, 2011, pp. 28, for U.S. Appl. No. 11/733,669, filed Apr. 10, 2007.
Response dated Oct. 11, 2010, pp. 19, to Office Action dated Jul. 9, 2010, pp. 35, for U.S. Appl. No. 11/733,669, filed Apr. 10, 2007.
Response dated Oct. 3, 2011, pp. 22, to Office Action dated Jul. 1, 2011, pp. 24, for U.S. Appl. No. 11/733,669, filed Apr. 10, 2007.
Response dated Oct. 3, 2014, pp. 8, to Requirement for Restriction/Election dated Aug. 4, 2014, pp. 6, for U.S. Appl. No. 11/733,669, filed Apr. 10, 2007.
U.S. Appl. No. 11/733,669, filed Apr. 10, 2007.
U.S. Appl. No. 14/627,763, filed Feb. 20, 2015, pp. 20.
Also Published As
Publication number
Publication date
US20170270057A1
( en )
2017-09-21
US20160357687A1
( en )
2016-12-08
US9008317B2
( en )
2015-04-14
US9747223B2
( en )
2017-08-29
US20090327746A1
( en )
2009-12-31
Similar Documents
Publication
Publication Date
Title
US9747223B2
( en )
2017-08-29
Key encryption and decryption
US12184773B2
( en )
2024-12-31
Communication network with cryptographic key management for symmetric cryptography
US7428306B2
( en )
2008-09-23
Encryption apparatus and method for providing an encrypted file system
CN105406969B
( en )
2020-03-13
Data encryption device and method
US20080104417A1
( en )
2008-05-01
System and method for file encryption and decryption
JP7325689B2
( en )
2023-08-14
Ciphertext conversion system, conversion key generation method, and conversion key generation program
US12200099B2
( en )
2025-01-14
Multi-party cryptographic systems and methods
EP4042309A1
( en )
2022-08-17
Hybrid content protection architecture
JP7486688B2
( en )
2024-05-17
Ciphertext conversion system, ciphertext conversion method, and ciphertext conversion program
US7802102B2
( en )
2010-09-21
Method for efficient and secure data migration between data processing systems