US20100195824A1 - Method and Apparatus for Dynamic Generation of Symmetric Encryption Keys and Exchange of Dynamic Symmetric Key Infrastructure - Google Patents
Method and Apparatus for Dynamic Generation of Symmetric Encryption Keys and Exchange of Dynamic Symmetric Key Infrastructure Download PDFInfo
- Publication number
- US20100195824A1 US20100195824A1 US12/698,894 US69889410A US2010195824A1 US 20100195824 A1 US20100195824 A1 US 20100195824A1 US 69889410 A US69889410 A US 69889410A US 2010195824 A1 US2010195824 A1 US 2010195824A1
- Authority
- US
- United States
- Prior art keywords
- token
- key
- file
- computer
- encryption
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0877—Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
Definitions
- the present invention relates generally to data encryption and decryption systems and methods and, more particularly, to a method and apparatus for dynamically generating data encryption keys for encrypting data files and for decrypting encrypted data files via a key exchange method.
- the Internet is fast becoming the primary platform for global commerce and communications.
- the ease of communication that encourages the Internet's growth, also makes it difficult to ensure the security of Internet transactions.
- Users of the Internet demand mechanisms that guarantee the integrity of the information they transmit over the Internet and provide the same level of trust as paper-based transactions.
- PKI Public Key Infrastructure
- Public key cryptography uses a mathematical algorithm, or key, to encrypt data, and a related mathematical key to decrypt the data.
- Authorized users of public key cryptography receive encryption software and a key pair. The keys in a key pair are related so that a message encrypted with a user's public key can only be decrypted using the corresponding private key.
- One key is an accessible public key, and the other key is a private key that the user must keep secret.
- Public key cryptography public keys are published in electronic directories.
- a Certification Authority is a main component of a PKI.
- a CA is a trusted third party responsible for issuing Digital Certificates and managing them throughout their lifetime.
- Digital Certificates are electronic files containing a user's public key and specific identifying information about the user. The CA certifies that the individual granted the digital certificate is who they claim to be.
- a Digital Signature is an electronic identifier comparable to a traditional, paper-based signature.
- a digital signature is unique, verifiable, and only the signer can initiate it.
- a digital signature ensures that the information contained in a digitally signed message or document is not altered during transmission.
- a source user desires to transmit a message electronically to a destination user, via PKI.
- the source user needs to prove that it sent the message and ensure that its contents are not altered.
- PKI software used by the source user utilizes the source user's private key to create a digital signature for the message.
- the source user further desires to ensure that no one, other than the destination user is able to read the message.
- the source user's software utilizes the public key of the destination user to encrypt the message.
- the destination user desires to read the message.
- the destination user's software utilizes destination user's private key to decrypt the message.
- the destination user needs to verify that the source user sent the message and that its contents have not been altered.
- the destination user's software utilizes the source user's public key to verify its digital signature. The destination user can then read the message.
- a disadvantage of public key encryption is that it may be vulnerable to “Man-In-The-Middle” (MITM) attacks, since the possessors of the keys may be unable to verify the identity of each other.
- a Man-In-The-Middle (MITM) attack typically involves an interceptor posing as a target, which may be a sever or a user, for example.
- the interceptor uses its own public key, instead of the target's public key, for asymmetric encryption. This allows the interceptor to decrypt confidential data that is intended for the target. The interceptor can then use this decrypted information to gain unauthorized access to the target's confidential information.
- a “replay” attack Another known method of obtaining unauthorized access to encrypted data is a “replay” attack.
- Web browsers may be vulnerable to a replay attacks, if a user's authentication keys are captured or intercepted by an attacker.
- an attacker directly uses authentication keys, such as a session ID in a URL cookie, for example.
- URL is an acronym for Uniform Resource Locator.
- a URL is an address for a resource on the Internet used by Web browsers to locate Internet resources. The attacker uses the authentication key to obtain or create service to a user's account, while bypassing normal user authentication, such as logging in with the appropriate username or password.
- an attacker discovers a URL that contains session ID information. With this information, the attacker may be able to obtain or create service to a user's account contained in the session ID information, simply by pasting that URL back into the internet address window of their web browser. The legitimate user may not need to be logged into the application at the time of the replay attack.
- a hardware device should be utilized with PKI. Since the security provided by PKI can be breached if the private key is compromised, as discussed above, a hardware device may inhibit these security breaches.
- the present invention provides a method and apparatus for dynamically generating data encryption keys for encrypting data files and for decrypting encrypted data files via a key exchange method.
- the present invention provides a method and apparatus for dynamically generating an encryption key for each encryption event.
- the dynamically generated encryption key is not saved after an encryption event, so that the key cannot be produced or reproduced. Resultantly, a file encrypted with the dynamically generated key is prevented from unauthorized decryption.
- the present invention is not substantially susceptible to MITM, replay, and other unauthorized data decryption attacks.
- a user selects a file to encrypt.
- the invented method generates a challenge and transmits the challenge to a token device coupled, to the computer.
- the challenge may include a challenge puzzle, key ID, and user generated code.
- a portion of a memory of the token may function as an identification (ID) pad and another portion of the memory may be used for storing one or more encryption/decryption keys.
- the challenge is decomposed to recover the challenge puzzle, key ID, and user generated code.
- the challenge puzzle and key ID determine which two shared secrets stored in the token's memory device are to be sent to a processor of the token.
- the token's processor may be running a data encryption/decryption algorithm, such as an Advanced Encryption Standard (AES) technology type data encryption/decryption algorithm.
- AES Advanced Encryption Standard
- the two shared secrets are fed into the data encryption/decryption algorithm to generate a puzzle key.
- the user generated code and puzzle key are then fed into the data encryption/decryption algorithm to generate a dynamic file key.
- the method uses the dynamic file key, to encrypt the selected file. Any type of file may be encrypted using the invented method.
- the decryption information is then appended to the encrypted file.
- the decryption information may be in the form of a header or footer.
- the decryption information may include an electronic serial number (ESN) of the token device that generated the dynamic file key, the challenge sent to the token device, and attributes of the file.
- ESN electronic serial number
- a component of the present invention comprises a module for exchanging dynamically generated symmetric encryption keys, so that only an intended recipient has the means to decrypt a file encrypted with the dynamically generated symmetric encryption keys.
- an originator desires to transfer the encrypted file to an intended recipient.
- the key exchange module may append a key exchange footer to the encrypted file.
- the key exchange footer may include an electronic serial number (ESN) of a token device controlled by the recipient and other information.
- ESN electronic serial number
- the originator may invoke the appending of the key exchange footer to the encrypted file.
- the originator may desire to transmit the encrypted file to the recipient via email.
- the originator prepares an email message, then may invoke the key exchange module to append the key exchange footer to the encrypted file.
- the key exchange package is then sent to the recipient.
- the originator may desire to transmit a non-encrypted message to the recipient.
- the invented key exchange method will sense that the file is not encrypted.
- the dynamic key exchange module generates a challenge used to encrypt the message, to generate the key exchange package.
- the dynamic key exchange package is then sent to the recipient.
- the recipient's computer running the invented method, senses receipt of the key exchange package.
- the package is processed to extract the key exchange footer from the encrypted file.
- the key exchange footer is then transmitted to a key exchange server.
- the key exchange server may comprise a remotely located server, such as a sever of a computer.
- the key exchange server receives the key exchange footer and extracts the challenge therefrom.
- the server uses the challenge to generate the dynamic file key.
- the server generates a key exchange challenge that is transmitted to the recipient's token.
- the key exchange challenge is also used to generate a dynamic symmetric encryption key.
- the dynamic symmetric encryption key and dynamic file key are fed into a data encryption/decryption algorithm running on the server.
- the algorithm uses the dynamic encryption key to encrypt the dynamic file key.
- the encrypted dynamic file key is then transmitted to the recipient's token.
- the recipient's token receives the server's key exchange challenge and processes the challenge. Using the key exchange challenge, the recipient's token generates the dynamic encryption key. The encrypted file key and dynamic encryption key are then fed into the token's processor to decrypt the dynamic file key.
- the invented method is capable of generating an encryption/decryption keys in a reduced amount of time, reducing the processing time of the invented method.
- the encrypted file is then decrypted by first extracting the decryption information footer from the encrypted file.
- the file is decrypted using a process analogous to the encryption process discussed above.
- the file attributes are then restored, and the recipient may freely access and manipulate the file.
- FIG. 1 is a schematic diagram showing computers coupled to a computer network and a token device of a preferred embodiment of the method and apparatus of the present invention
- FIG. 2 is a flow chart showing a preferred embodiment of a module for dynamically generating a data encryption key for encrypting a data file of the method of the present invention.
- FIG. 3 is a flow chart showing a preferred embodiment of a module for exchanging dynamically generated symmetric encryption keys of the method of the present invention.
- the present invention provides a method and apparatus for dynamically generating data encryption keys for encrypting data files and for decrypting encrypted data files via a key exchange method.
- the present invention provides a method and apparatus for dynamically generating an encryption key for each encryption event.
- the dynamically generated encryption key is not saved after an encryption event, so that the key cannot be produced or reproduced. Resultantly, a file encrypted with the dynamically generated key is prevented from unauthorized decryption.
- the present invention is not substantially susceptible to MITM, replay, and other unauthorized data decryption attacks.
- a preferred embodiment of the method of the present invention may be uploaded to a data storage device 12 of a computer 14 , using known means.
- the invented method may be provided in the form of a computer program and uploaded onto the computer 14 and stored on the storage device 12 , as is well known.
- the preferred embodiment of the method of the present invention may be installed on one or more servers 16 of a computer network, shown generally at 18 .
- the computer network 18 may comprise a multiplicity of servers 16 , several of which may be interconnected at any given time.
- the computer network 18 may comprise the Internet, a Remote VPN network, a LAN/WAN network, or a wireless network.
- the term “computer” references any device capable of coupling to the computer network 18 and capable of receiving data for processing.
- the computer 14 may comprise any remote computing terminal, or computer terminal, which can provide access to the network 18 .
- a well known ATM machine is an example of a computer terminal.
- the computer 14 may be provided with a processor 20 for processing data and a memory 22 for storing data.
- the computer 14 may include a data port 24 to allow coupling of external devices to the network 18 , via the computer 14 .
- the computer 14 may be coupled to the network 18 via any known means.
- the computer 14 may be continuously coupled to the network 18 , via a high bandwidth digital communications line, or may be intermittently coupled to the network 18 , via a modem, for example.
- a unique token device, or token, 30 is configured to be detachably coupled to the data port 24 .
- the token 30 and data port 24 may be configured in any desired mutually compatible form factor which affords coupling and decoupling of the token 30 with the data port 24 , and thus to the network 18 via the computer 14 .
- the data port 24 may comprise a known USB (Universal Serial Bus) port or similar data port.
- the token 30 preferably includes an on-board processor 32 for processing data, a memory device 34 for storing data, and a coupling portion 36 for coupling the token 30 to the data port 24 .
- the on-board processor 32 is preferably capable of processing 128-bit data.
- the processor 32 is capable of running a data encryption/decryption algorithm.
- the processor 32 is capable of running an Advanced Encryption Standard (AES) technology data encryption/decryption algorithm.
- AES Advanced Encryption Standard
- the token's memory device, hereinafter memory, 34 may comprise a nonvolatile memory device that is configured to maintain data when power to the token 30 is removed.
- the memory device 34 comprises a known flash memory device.
- Symmetric shared secrets are stored in the memory 34 .
- a portion of the memory 34 may function as an identification (ID) pad 38 .
- Different values may be stored in predetermined address locations in the ID pad 38 during manufacture of the token 30 .
- the different values stored in predetermined address locations of the ID pad 38 comprise a portion of a shared secret.
- One or more encryption/decryption keys may also be stored in a key storage region 39 of the memory 34 during manufacture thereof.
- Each encryption/decryption key stored in the memory 34 may comprise a unique string of information and is the other portion of a shared secret. Since the symmetric shared secrets are embedded in the token's memory 34 during manufacture, the need for transmitting keys, and thus key exchanges, between two parties over the network 18 is eliminated. Thus, MITM attacks are prevented, since there is no key exchange and the MITM cannot steal encryption/decryption keys.
- the encryption/decryption keys that are stored in the token 30 may depend upon certain factors. For example, if a user that is going to control the token 30 requests access to a particular server that requires a particular encryption/decryption key, then that key is stored in the memory 34 . In addition, certain servers that do not generate challenges may require another key, for example.
- the token 30 may be distributed to a user, sometimes referred to in the art as a client, using any known and applicable distribution means.
- a user When a user receives the token 30 , they must contact the distributor of the token 30 , or other appropriate party, to verify that they possess the token 30 .
- the user contacts the distributor and provides identifying information to the distributor, who verifies the client.
- the user may generate user code that may be stored in the token's memory 34 .
- the user may generate the user code prior to, or during, and encryption event, thoroughly discussed hereinafter.
- the recipient controls a computer 14 A that is coupled to the network 18 and a token device (not shown) that may coupled to the computer 14 A.
- the recipient's computer 14 A may be substantially similar to the computer 14 discussed above, or may be a computer terminal as discussed.
- the recipient's token device is identical to the token device 30 .
- FIG. 1 and FIG. 2 of the drawings there is shown generally at 50 , a preferred embodiment of a module for dynamically generating a data encryption key for encrypting a data file of the method of the present invention.
- An originating user hereinafter originator for sake of clarity only, desires to transmit a file to a recipient user, hereinafter recipient for sake of clarity only.
- recipient may embody any entity that possess a token 30 , and which is capable of controlling the token 30 and computer 14 .
- originator 14 refers to the computer 14 and any entity controlling the computer 14 and token 30 , unless otherwise indicated.
- recipient 14 A refers to the computer 14 A and any entity controlling the computer 14 A and token 30 , unless otherwise indicated.
- the originator 14 desires to encrypt the file to protect the information comprising the file. As shown in process block 52 , the originator 14 selects a file 53 to encrypt. The file 53 may be stored on the storage device 12 of the computer 14 . The originator 14 then couples their token 30 to the computer 14 , as shown in process block 54 , if they have not already done so.
- the computer 14 may be running a preferred embodiment of the dynamic symmetric key generation and data file encryption module of the invented method of the present invention. If the key generation module is not running when the token 30 is coupled to the computer 14 , the originator 14 may invoke the module, shown in process block 56 , using any one of several well known means.
- the key generation module generates a challenge that may be in the form of a 128-bit number.
- the challenge may include a challenge puzzle, key ID, and user code.
- the user code may be generated by a user, such as the originator 14 or recipient 14 A, and stored in the token's memory 34 or may be stored in memory 34 during manufacture of the token 30 .
- the challenge is transmitted to the token 30 .
- the token 30 receives the challenge, which is processed by the token's processor 32 .
- the challenge is decomposed to recover the challenge puzzle, key ID, and user code.
- the challenge puzzle is sent to the ID pad, shown in process block 60
- the key ID is sent to the key storage region 39 of memory 34 , shown in process block 62
- the user code is stored in memory, shown in data block 64 .
- the challenge puzzle is mapped to the ID pad 38 region of the token's memory 34 .
- the challenge puzzle functions as a set of instructions for accessing selected data address locations in the ID pad 38 for retrieving a portion of a selected shared secret from memory 34 .
- the values stored in the selected address locations are retrieved and fed into the token's processor 32 for processing, shown in process block 66 .
- the key ID identifies which particular encryption/decryption key stored in the key storage region 39 of memory 34 corresponds to the remaining portion of the selected shared secret.
- the encryption/decryption key identified by the key ID is then retrieved from memory 34 , shown in process block 62 . Once retrieve from memory 34 , the selected key is fed into the processor 32 for processing, shown in block 66 .
- the token's processor 32 preferably running an AES data encryption/decryption algorithm, performs a first round of data encryption using the two portions of the shared secret, i.e. the values stored in the selected address locations of the ID pad 38 and the selected encryption/decryption key, as shown in process block 66 .
- the result of the first round of data encryption is an encrypted puzzle key, shown in data block 68 .
- the encrypted puzzle key is fed back into the processor 32 and the user code is retrieved from memory 34 and fed into the token's processor 32 , to perform a second round of data encryption, shown in process block 70 .
- the second round of encryption 70 generates a dynamic file key 71 . Since the dynamic file key 71 is dynamically generated, it is not transmitted over the network 18 and is not saved after an encryption. Replay attacks and other unauthorized decryption of the dynamic file key 71 may be inhibited.
- the dynamic file key 71 may be a 128 bit number.
- the selected file 53 is encrypted. Any type of file may be encrypted using the invented method. For example, program files, document files, and graphics files may be encrypted by the method.
- the file 53 to be encrypted is decomposed into data blocks 74 .
- each data block 74 is individually encrypted, shown in process block 76 , to generate encrypted data blocks 74 E.
- the data blocks 74 are individually encrypted until the file 53 is completely encrypted, to generate an encrypted file 53 E. For example using AES encryption, if the file 53 is 1024 KB, then the file 53 is encrypted in 128-bit blocks, until the encrypted file 53 E is generated.
- Decryption information 78 is then appended to the encrypted file 53 E.
- the decryption information 78 may be in the form of a header or footer, for example.
- the decryption information header/footer, hereinafter decryption information footer 78 may include an electronic serial number (ESN) of the token device that generated the dynamic file key 71 , the challenge sent to the token device, and attributes of the encrypted file 53 E.
- the file attributes may include file information such as file length and file type.
- the invented dynamic key exchange module provides a method of exchanging dynamically generated symmetric encryption keys, so that only an intended recipient has the means to decrypt a file encrypted with the dynamically generated symmetric encryption keys.
- the dynamic key exchange module may append an additional header/footer 104 to the encrypted file 53 E.
- the additional header/footer hereinafter key exchange footer 104 for sake of clarity only, may be provided to allow the exchange of dynamically generated symmetric keys.
- the key exchange footer 104 may include an electronic serial number (ESN) of a token 30 controlled by the recipient 14 A and other information.
- ESN electronic serial number
- the key exchange footer 104 is appended to the encrypted file 53 E, to create a key exchange package 106 .
- the key exchange package 106 comprises the encrypted file 53 E and key exchange footer 104 .
- the originator 14 may invoke the appending of the key exchange footer 104 to the encrypted file 53 E at any time prior to transmitting the key exchange package 106 to the recipient 14 A.
- the appending of the key exchange footer 104 to the encrypted file 53 E may be invoked by any appropriate means.
- the originator 14 may transmit the encrypted file to the recipient 14 A via known means, such as via email over the network 18 , which may comprise the Internet.
- the originator 14 prepares an email message to the recipient 14 A, using any known applicable program.
- the originator 14 may then invoke the key exchange module 100 to append the key exchange footer 104 to the encrypted file 53 E, to generate the key exchange package 106 .
- the key exchange package 106 is then transmitted to the recipient 14 A, as shown in process block 110 .
- information that the originator 14 intends on transmitting to the recipient 14 A may not be encrypted.
- the originator 14 may desire to transmit a text message to the recipient 14 A, without first encrypting the message.
- the invented key exchange module 100 will sense that the file is not encrypted.
- the dynamic key exchange module will generate a challenge using the challenge generating methods discussed previously.
- the challenge will then encrypt the message to generate the key exchange package 106 .
- the dynamic key exchange package 106 is then sent to the recipient 14 A, as shown in process block 110 .
- the recipient's computer 14 A senses receipt of the key exchange package 106 .
- the package 106 is processed to extract the key exchange footer 104 from the encrypted file 53 E.
- the key exchange footer 104 is then transmitted to a key exchange server, shown generally at 16 A, as shown on data flow path 112 .
- the key exchange footer 104 may include the challenge, ESN of the recipient's token, and ESN of the originator's token device, and other relevant information.
- the relevant information may include encrypted versions of the electronic serial number of the recipient's token device and originator's token device, for example.
- the key exchange server 16 A may comprise a remotely located server, such as a sever 16 of the computer network 18 . It is to be understood that the key exchange server 16 A includes the components typically found in a computer server including, but not limited to, a processor, memory, and data storage means. The recipient's computer 14 A may couple to the key exchange server 16 A as discussed previously.
- the key exchange server 16 A hereinafter server 16 A, running the invented method, receives the key exchange footer 104 and extracts the challenge therefrom, as shown in process block 114 .
- the server 16 A uses the information stored in the challenge and generates the dynamic file key 71 .
- the server 16 A Simultaneously, as shown in process block 116 , the server 16 A generates a key exchange challenge.
- the server's key exchange challenge is transmitted to the recipient's token, shown on data flow path 118 .
- the key exchange challenge is also used to generate a dynamic symmetric encryption key 119 , shown in data block 120 .
- the dynamic symmetric encryption key 119 hereinafter dynamic encryption key 119 , and dynamic file key 71 are preferably fed into a AES data encryption/decryption algorithm running on the server 16 A, in process block 122 .
- the server 16 A performs an encryption process, using the dynamic encryption key 119 , to generate an encrypted dynamic file key 71 E.
- the encrypted dynamic file key 71 E is then transmitted to the recipient's token, shown in data flow path 126 .
- the recipient's token receives the server's key exchange challenge, as shown in process block 128 , and processes the challenge as discussed previously. As shown in process block 130 , the token's processor 32 uses the key exchange challenge, to generate the dynamic encryption key 119 , shown in data block 132 .
- the dynamic encryption key 119 generated by the token 30 is the same dynamic encryption key generated by the server 16 A.
- the encrypted file key 71 E is received by the recipient's token in process block 134 .
- the encrypted file key 71 E and dynamic encryption key 119 are then fed into the token's processor 32 to perform a data decryption process, shown in process block 132 .
- the data decryption process comprises an AES data decryption process.
- the processor 32 uses the dynamic encryption key to decrypt the encrypted dynamic file key 71 E, to generate the dynamic file key 71 .
- the invented method is capable of generating encryption/decryption keys in a reduced amount of time, reducing the processing time of the invented method.
- the encrypted file 53 E is then decrypted by first extracting the decryption information footer 78 from the encrypted file 53 E.
- the information in the footer 78 is then decomposed using the file key 71 .
- the file 53 E is decrypted using a process analogous to the encryption process discussed above.
- the file attributes are then restored, and the recipient 14 A may freely access and manipulate the file 53 .
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
A method and apparatus for dynamically generating data encryption keys for encrypting data files and for decrypting encrypted data files via a key exchange method is provided. A dynamically generated an encryption key is generated for each encryption event, so that the key cannot be produced or reproduced. A key exchange component of the invention ensures that only an intended recipient has the means to decrypt a file encrypted with the dynamically generated symmetric encryption keys.
Description
- This application is related and claims priority to U.S. patent application Ser. No. 10/280,796, entitled “Method and Apparatus for Dynamic Generation of Symmetric Encryption Keys and Exchange of Dynamic Symmetric Key Infrastructure”, filed on Oct. 25, 2002, which claims priority to U.S. Provisional Patent Application Ser. No. 60/348,104, filed on Oct. 26, 2001. The contents of each of these applications are hereby incorporated by reference herein in its entirety.
- 1. Field of the Invention
- The present invention relates generally to data encryption and decryption systems and methods and, more particularly, to a method and apparatus for dynamically generating data encryption keys for encrypting data files and for decrypting encrypted data files via a key exchange method.
- 2. Background Information
- The Internet is fast becoming the primary platform for global commerce and communications. The ease of communication that encourages the Internet's growth, also makes it difficult to ensure the security of Internet transactions. Users of the Internet demand mechanisms that guarantee the integrity of the information they transmit over the Internet and provide the same level of trust as paper-based transactions.
- Before committing sensitive communications to the Internet, users like specific assurances. Firstly, electronic transactions need to be confidential and protected from tampering. Secondly, they need to be able to trust that participants are who they claim to be. Lastly, they want to be assured that no one can deny their involvement in a transaction after the fact.
- Public Key Infrastructure (PKI) is a known attempt to provide these assurances. PKI is a framework of policies, services, hardware, and encryption software that is based on the use of public key cryptography and digital signatures.
- Public key cryptography uses a mathematical algorithm, or key, to encrypt data, and a related mathematical key to decrypt the data. Authorized users of public key cryptography receive encryption software and a key pair. The keys in a key pair are related so that a message encrypted with a user's public key can only be decrypted using the corresponding private key. One key is an accessible public key, and the other key is a private key that the user must keep secret. In Public key cryptography, public keys are published in electronic directories.
- A Certification Authority (CA) is a main component of a PKI. A CA is a trusted third party responsible for issuing Digital Certificates and managing them throughout their lifetime. Digital Certificates are electronic files containing a user's public key and specific identifying information about the user. The CA certifies that the individual granted the digital certificate is who they claim to be.
- A Digital Signature is an electronic identifier comparable to a traditional, paper-based signature. A digital signature is unique, verifiable, and only the signer can initiate it. A digital signature ensures that the information contained in a digitally signed message or document is not altered during transmission.
- In use, a source user desires to transmit a message electronically to a destination user, via PKI. The source user needs to prove that it sent the message and ensure that its contents are not altered. PKI software used by the source user utilizes the source user's private key to create a digital signature for the message. The source user further desires to ensure that no one, other than the destination user is able to read the message. The source user's software utilizes the public key of the destination user to encrypt the message.
- The destination user desires to read the message. The destination user's software utilizes destination user's private key to decrypt the message. The destination user needs to verify that the source user sent the message and that its contents have not been altered. The destination user's software utilizes the source user's public key to verify its digital signature. The destination user can then read the message.
- A disadvantage of public key encryption is that it may be vulnerable to “Man-In-The-Middle” (MITM) attacks, since the possessors of the keys may be unable to verify the identity of each other. A Man-In-The-Middle (MITM) attack typically involves an interceptor posing as a target, which may be a sever or a user, for example. The interceptor uses its own public key, instead of the target's public key, for asymmetric encryption. This allows the interceptor to decrypt confidential data that is intended for the target. The interceptor can then use this decrypted information to gain unauthorized access to the target's confidential information.
- Another known method of obtaining unauthorized access to encrypted data is a “replay” attack. Web browsers may be vulnerable to a replay attacks, if a user's authentication keys are captured or intercepted by an attacker. In a replay attack, an attacker directly uses authentication keys, such as a session ID in a URL cookie, for example. For clarification, “URL” is an acronym for Uniform Resource Locator. A URL is an address for a resource on the Internet used by Web browsers to locate Internet resources. The attacker uses the authentication key to obtain or create service to a user's account, while bypassing normal user authentication, such as logging in with the appropriate username or password.
- For example, an attacker discovers a URL that contains session ID information. With this information, the attacker may be able to obtain or create service to a user's account contained in the session ID information, simply by pasting that URL back into the internet address window of their web browser. The legitimate user may not need to be logged into the application at the time of the replay attack.
- Another disadvantage of PKI is that since it is dependent upon private and public keys, designing and building full-featured PKI is difficult. Due to the inherent complexity of designing and building a PKI, implementations are not common. Further, there are significant interoperability and management challenges associated with PKI. Given the potential numbers of digital certificates that PKI involves, another disadvantage of PKI is the administration and management of certificates. Resultantly, PKI and the training therefor can be expensive and complex.
- Additionally, a hardware device should be utilized with PKI. Since the security provided by PKI can be breached if the private key is compromised, as discussed above, a hardware device may inhibit these security breaches.
- The present invention provides a method and apparatus for dynamically generating data encryption keys for encrypting data files and for decrypting encrypted data files via a key exchange method. The present invention provides a method and apparatus for dynamically generating an encryption key for each encryption event. The dynamically generated encryption key is not saved after an encryption event, so that the key cannot be produced or reproduced. Resultantly, a file encrypted with the dynamically generated key is prevented from unauthorized decryption. Thus, the present invention is not substantially susceptible to MITM, replay, and other unauthorized data decryption attacks.
- In operation, a user selects a file to encrypt. The invented method generates a challenge and transmits the challenge to a token device coupled, to the computer. The challenge may include a challenge puzzle, key ID, and user generated code. A portion of a memory of the token may function as an identification (ID) pad and another portion of the memory may be used for storing one or more encryption/decryption keys. The challenge is decomposed to recover the challenge puzzle, key ID, and user generated code. The challenge puzzle and key ID determine which two shared secrets stored in the token's memory device are to be sent to a processor of the token.
- The token's processor, may be running a data encryption/decryption algorithm, such as an Advanced Encryption Standard (AES) technology type data encryption/decryption algorithm. The two shared secrets are fed into the data encryption/decryption algorithm to generate a puzzle key. The user generated code and puzzle key are then fed into the data encryption/decryption algorithm to generate a dynamic file key. The method uses the dynamic file key, to encrypt the selected file. Any type of file may be encrypted using the invented method.
- Decryption information is then appended to the encrypted file. The decryption information may be in the form of a header or footer. The decryption information may include an electronic serial number (ESN) of the token device that generated the dynamic file key, the challenge sent to the token device, and attributes of the file. Thus, encryption/decryption keys used to encrypt the file are not stored in the footer, nor at any other location and copying or decrypting the dynamic file key is prevented.
- Additionally, a component of the present invention comprises a module for exchanging dynamically generated symmetric encryption keys, so that only an intended recipient has the means to decrypt a file encrypted with the dynamically generated symmetric encryption keys. In use, an originator desires to transfer the encrypted file to an intended recipient.
- The key exchange module may append a key exchange footer to the encrypted file. The key exchange footer may include an electronic serial number (ESN) of a token device controlled by the recipient and other information. Once the key exchange footer is appended to the encrypted file, a key exchange package is created that comprises the encrypted file and key exchange footer.
- The originator may invoke the appending of the key exchange footer to the encrypted file. The originator may desire to transmit the encrypted file to the recipient via email. The originator prepares an email message, then may invoke the key exchange module to append the key exchange footer to the encrypted file. The key exchange package is then sent to the recipient.
- Alternatively, the originator may desire to transmit a non-encrypted message to the recipient. In this instance, the invented key exchange method will sense that the file is not encrypted. The dynamic key exchange module generates a challenge used to encrypt the message, to generate the key exchange package. The dynamic key exchange package is then sent to the recipient.
- The recipient's computer, running the invented method, senses receipt of the key exchange package. The package is processed to extract the key exchange footer from the encrypted file. The key exchange footer is then transmitted to a key exchange server. The key exchange server may comprise a remotely located server, such as a sever of a computer.
- The key exchange server, hereinafter server, running the invented method, receives the key exchange footer and extracts the challenge therefrom. The server uses the challenge to generate the dynamic file key. Simultaneously, the server generates a key exchange challenge that is transmitted to the recipient's token. The key exchange challenge is also used to generate a dynamic symmetric encryption key. The dynamic symmetric encryption key and dynamic file key are fed into a data encryption/decryption algorithm running on the server. The algorithm uses the dynamic encryption key to encrypt the dynamic file key. The encrypted dynamic file key is then transmitted to the recipient's token.
- The recipient's token receives the server's key exchange challenge and processes the challenge. Using the key exchange challenge, the recipient's token generates the dynamic encryption key. The encrypted file key and dynamic encryption key are then fed into the token's processor to decrypt the dynamic file key. Thus, the invented method is capable of generating an encryption/decryption keys in a reduced amount of time, reducing the processing time of the invented method.
- The encrypted file is then decrypted by first extracting the decryption information footer from the encrypted file. The file is decrypted using a process analogous to the encryption process discussed above. The file attributes are then restored, and the recipient may freely access and manipulate the file.
- The objects and features of the present invention, which are believed to be novel, are set forth with particularity in the appended claims. The present invention, both as to its organization and manner of operation, together with further objects and advantages, may best be understood by reference to the following description, taken in connection with the accompanying drawings, in which:
-
FIG. 1 is a schematic diagram showing computers coupled to a computer network and a token device of a preferred embodiment of the method and apparatus of the present invention; -
FIG. 2 is a flow chart showing a preferred embodiment of a module for dynamically generating a data encryption key for encrypting a data file of the method of the present invention; and -
FIG. 3 is a flow chart showing a preferred embodiment of a module for exchanging dynamically generated symmetric encryption keys of the method of the present invention. - The following description is provided to enable any person skilled in the art to make and use the invention and sets forth the best modes presently contemplated by the inventors of carrying out the invention. Various modifications, however, will remain readily apparent to those skilled in the art, since the generic principles of the present invention have been defined herein.
- The present invention provides a method and apparatus for dynamically generating data encryption keys for encrypting data files and for decrypting encrypted data files via a key exchange method. The present invention provides a method and apparatus for dynamically generating an encryption key for each encryption event. The dynamically generated encryption key is not saved after an encryption event, so that the key cannot be produced or reproduced. Resultantly, a file encrypted with the dynamically generated key is prevented from unauthorized decryption. Thus, the present invention is not substantially susceptible to MITM, replay, and other unauthorized data decryption attacks.
- Referring now to
FIG. 1 of the drawings, there is shown generally at 10, a preferred embodiment of the apparatus of the present invention. A preferred embodiment of the method of the present invention may be uploaded to adata storage device 12 of acomputer 14, using known means. For example, the invented method may be provided in the form of a computer program and uploaded onto thecomputer 14 and stored on thestorage device 12, as is well known. - Similarly, the preferred embodiment of the method of the present invention may be installed on one or
more servers 16 of a computer network, shown generally at 18. Thecomputer network 18 may comprise a multiplicity ofservers 16, several of which may be interconnected at any given time. Thecomputer network 18 may comprise the Internet, a Remote VPN network, a LAN/WAN network, or a wireless network. - As referred to hereinafter, the term “computer” references any device capable of coupling to the
computer network 18 and capable of receiving data for processing. Thecomputer 14 may comprise any remote computing terminal, or computer terminal, which can provide access to thenetwork 18. A well known ATM machine is an example of a computer terminal. Thecomputer 14 may be provided with aprocessor 20 for processing data and amemory 22 for storing data. Thecomputer 14 may include adata port 24 to allow coupling of external devices to thenetwork 18, via thecomputer 14. - The
computer 14 may be coupled to thenetwork 18 via any known means. Thecomputer 14 may be continuously coupled to thenetwork 18, via a high bandwidth digital communications line, or may be intermittently coupled to thenetwork 18, via a modem, for example. - A unique token device, or token, 30 is configured to be detachably coupled to the
data port 24. The token 30 anddata port 24 may be configured in any desired mutually compatible form factor which affords coupling and decoupling of the token 30 with thedata port 24, and thus to thenetwork 18 via thecomputer 14. For example, thedata port 24 may comprise a known USB (Universal Serial Bus) port or similar data port. - The token 30 preferably includes an on-
board processor 32 for processing data, amemory device 34 for storing data, and acoupling portion 36 for coupling the token 30 to thedata port 24. The on-board processor 32 is preferably capable of processing 128-bit data. Preferably, theprocessor 32 is capable of running a data encryption/decryption algorithm. Most preferably, theprocessor 32 is capable of running an Advanced Encryption Standard (AES) technology data encryption/decryption algorithm. - The token's memory device, hereinafter memory, 34 may comprise a nonvolatile memory device that is configured to maintain data when power to the token 30 is removed. Preferably, the
memory device 34 comprises a known flash memory device. Symmetric shared secrets are stored in thememory 34. A portion of thememory 34 may function as an identification (ID)pad 38. Different values may be stored in predetermined address locations in theID pad 38 during manufacture of the token 30. The different values stored in predetermined address locations of theID pad 38 comprise a portion of a shared secret. - One or more encryption/decryption keys may also be stored in a
key storage region 39 of thememory 34 during manufacture thereof. Each encryption/decryption key stored in thememory 34 may comprise a unique string of information and is the other portion of a shared secret. Since the symmetric shared secrets are embedded in the token'smemory 34 during manufacture, the need for transmitting keys, and thus key exchanges, between two parties over thenetwork 18 is eliminated. Thus, MITM attacks are prevented, since there is no key exchange and the MITM cannot steal encryption/decryption keys. - The encryption/decryption keys that are stored in the token 30 may depend upon certain factors. For example, if a user that is going to control the token 30 requests access to a particular server that requires a particular encryption/decryption key, then that key is stored in the
memory 34. In addition, certain servers that do not generate challenges may require another key, for example. - The token 30 may be distributed to a user, sometimes referred to in the art as a client, using any known and applicable distribution means. When a user receives the token 30, they must contact the distributor of the token 30, or other appropriate party, to verify that they possess the token 30. The user contacts the distributor and provides identifying information to the distributor, who verifies the client. At that time, the user may generate user code that may be stored in the token's
memory 34. Alternatively, the user may generate the user code prior to, or during, and encryption event, thoroughly discussed hereinafter. - Preferably, the recipient controls a
computer 14A that is coupled to thenetwork 18 and a token device (not shown) that may coupled to thecomputer 14A. The recipient'scomputer 14A may be substantially similar to thecomputer 14 discussed above, or may be a computer terminal as discussed. Preferably, the recipient's token device is identical to thetoken device 30. - Referring now to
FIG. 1 andFIG. 2 of the drawings, there is shown generally at 50, a preferred embodiment of a module for dynamically generating a data encryption key for encrypting a data file of the method of the present invention. An originating user, hereinafter originator for sake of clarity only, desires to transmit a file to a recipient user, hereinafter recipient for sake of clarity only. It is to be understood that the terms “user”, “originator”, and “recipient” may embody any entity that possess a token 30, and which is capable of controlling the token 30 andcomputer 14. Additionally, hereinafteroriginator 14 refers to thecomputer 14 and any entity controlling thecomputer 14 andtoken 30, unless otherwise indicated. Similarly, hereinafterrecipient 14A refers to thecomputer 14A and any entity controlling thecomputer 14A and token 30, unless otherwise indicated. - The
originator 14 desires to encrypt the file to protect the information comprising the file. As shown inprocess block 52, theoriginator 14 selects afile 53 to encrypt. Thefile 53 may be stored on thestorage device 12 of thecomputer 14. Theoriginator 14 then couples their token 30 to thecomputer 14, as shown inprocess block 54, if they have not already done so. - The
computer 14 may be running a preferred embodiment of the dynamic symmetric key generation and data file encryption module of the invented method of the present invention. If the key generation module is not running when the token 30 is coupled to thecomputer 14, theoriginator 14 may invoke the module, shown inprocess block 56, using any one of several well known means. - The key generation module generates a challenge that may be in the form of a 128-bit number. The challenge may include a challenge puzzle, key ID, and user code. The user code may be generated by a user, such as the
originator 14 orrecipient 14A, and stored in the token'smemory 34 or may be stored inmemory 34 during manufacture of the token 30. - As shown in
process block 58, the challenge is transmitted to the token 30. The token 30 receives the challenge, which is processed by the token'sprocessor 32. The challenge is decomposed to recover the challenge puzzle, key ID, and user code. The challenge puzzle is sent to the ID pad, shown inprocess block 60, the key ID is sent to thekey storage region 39 ofmemory 34, shown inprocess block 62, and the user code is stored in memory, shown indata block 64. - The challenge puzzle is mapped to the
ID pad 38 region of the token'smemory 34. Preferably, the challenge puzzle functions as a set of instructions for accessing selected data address locations in theID pad 38 for retrieving a portion of a selected shared secret frommemory 34. The values stored in the selected address locations are retrieved and fed into the token'sprocessor 32 for processing, shown inprocess block 66. - Similarly, the key ID identifies which particular encryption/decryption key stored in the
key storage region 39 ofmemory 34 corresponds to the remaining portion of the selected shared secret. The encryption/decryption key identified by the key ID is then retrieved frommemory 34, shown inprocess block 62. Once retrieve frommemory 34, the selected key is fed into theprocessor 32 for processing, shown inblock 66. - The token's
processor 32, preferably running an AES data encryption/decryption algorithm, performs a first round of data encryption using the two portions of the shared secret, i.e. the values stored in the selected address locations of theID pad 38 and the selected encryption/decryption key, as shown inprocess block 66. The result of the first round of data encryption is an encrypted puzzle key, shown indata block 68. - The encrypted puzzle key is fed back into the
processor 32 and the user code is retrieved frommemory 34 and fed into the token'sprocessor 32, to perform a second round of data encryption, shown inprocess block 70. The second round ofencryption 70 generates adynamic file key 71. Since the dynamic file key 71 is dynamically generated, it is not transmitted over thenetwork 18 and is not saved after an encryption. Replay attacks and other unauthorized decryption of the dynamic file key 71 may be inhibited. The dynamic file key 71 may be a 128 bit number. - Using the dynamic file key 71, the selected
file 53 is encrypted. Any type of file may be encrypted using the invented method. For example, program files, document files, and graphics files may be encrypted by the method. Thefile 53 to be encrypted is decomposed into data blocks 74. Using the dynamic file key 71, each data block 74 is individually encrypted, shown inprocess block 76, to generate encrypted data blocks 74E. The data blocks 74 are individually encrypted until thefile 53 is completely encrypted, to generate anencrypted file 53E. For example using AES encryption, if thefile 53 is 1024 KB, then thefile 53 is encrypted in 128-bit blocks, until theencrypted file 53E is generated. -
Decryption information 78 is then appended to theencrypted file 53E. Thedecryption information 78 may be in the form of a header or footer, for example. The decryption information header/footer, hereinafterdecryption information footer 78 for sake of clarity only, may include an electronic serial number (ESN) of the token device that generated the dynamic file key 71, the challenge sent to the token device, and attributes of theencrypted file 53E. The file attributes may include file information such as file length and file type. Thus, encryption/decryption keys used to encrypt thefile 53E are not stored in thefooter 78, nor at any other location and copying or decrypting the dynamic file key 71 is prevented. - Referring now to
FIG. 1 ,FIG. 2 , andFIG. 3 of the drawings, and particularly toFIG. 3 there is shown, generally at 100, a preferred embodiment of a module for exchanging dynamically generated symmetric encryption keys, of the method present invention of the present invention. The invented dynamic key exchange module provides a method of exchanging dynamically generated symmetric encryption keys, so that only an intended recipient has the means to decrypt a file encrypted with the dynamically generated symmetric encryption keys. - As shown in
process block 102, the dynamic key exchange module may append an additional header/footer 104 to theencrypted file 53E. The additional header/footer, hereinafterkey exchange footer 104 for sake of clarity only, may be provided to allow the exchange of dynamically generated symmetric keys. Thekey exchange footer 104 may include an electronic serial number (ESN) of a token 30 controlled by therecipient 14A and other information. Thekey exchange footer 104 is appended to theencrypted file 53E, to create akey exchange package 106. Thus, thekey exchange package 106 comprises theencrypted file 53E andkey exchange footer 104. - The
originator 14 may invoke the appending of thekey exchange footer 104 to theencrypted file 53E at any time prior to transmitting thekey exchange package 106 to therecipient 14A. The appending of thekey exchange footer 104 to theencrypted file 53E may be invoked by any appropriate means. Theoriginator 14 may transmit the encrypted file to therecipient 14A via known means, such as via email over thenetwork 18, which may comprise the Internet. - For example, the
originator 14 prepares an email message to therecipient 14A, using any known applicable program. Theoriginator 14 may then invoke thekey exchange module 100 to append thekey exchange footer 104 to theencrypted file 53E, to generate thekey exchange package 106. Thekey exchange package 106 is then transmitted to therecipient 14A, as shown inprocess block 110. - Alternatively, information that the
originator 14 intends on transmitting to therecipient 14A, may not be encrypted. Theoriginator 14 may desire to transmit a text message to therecipient 14A, without first encrypting the message. In this instance, the inventedkey exchange module 100 will sense that the file is not encrypted. The dynamic key exchange module will generate a challenge using the challenge generating methods discussed previously. The challenge will then encrypt the message to generate thekey exchange package 106. The dynamickey exchange package 106 is then sent to therecipient 14A, as shown inprocess block 110. - The recipient's
computer 14A, running the invented method, senses receipt of thekey exchange package 106. Thepackage 106 is processed to extract thekey exchange footer 104 from theencrypted file 53E. Thekey exchange footer 104 is then transmitted to a key exchange server, shown generally at 16A, as shown ondata flow path 112. As discussed above, thekey exchange footer 104 may include the challenge, ESN of the recipient's token, and ESN of the originator's token device, and other relevant information. The relevant information may include encrypted versions of the electronic serial number of the recipient's token device and originator's token device, for example. - The
key exchange server 16A may comprise a remotely located server, such as a sever 16 of thecomputer network 18. It is to be understood that thekey exchange server 16A includes the components typically found in a computer server including, but not limited to, a processor, memory, and data storage means. The recipient'scomputer 14A may couple to thekey exchange server 16A as discussed previously. - The
key exchange server 16A, hereinafterserver 16A, running the invented method, receives thekey exchange footer 104 and extracts the challenge therefrom, as shown inprocess block 114. Theserver 16A uses the information stored in the challenge and generates thedynamic file key 71. - Simultaneously, as shown in
process block 116, theserver 16A generates a key exchange challenge. The server's key exchange challenge is transmitted to the recipient's token, shown ondata flow path 118. The key exchange challenge is also used to generate a dynamicsymmetric encryption key 119, shown indata block 120. The dynamicsymmetric encryption key 119, hereinafterdynamic encryption key 119, and dynamic file key 71 are preferably fed into a AES data encryption/decryption algorithm running on theserver 16A, inprocess block 122. Theserver 16A performs an encryption process, using thedynamic encryption key 119, to generate an encrypted dynamic file key 71E. The encrypted dynamic file key 71E is then transmitted to the recipient's token, shown indata flow path 126. - The recipient's token receives the server's key exchange challenge, as shown in
process block 128, and processes the challenge as discussed previously. As shown inprocess block 130, the token'sprocessor 32 uses the key exchange challenge, to generate thedynamic encryption key 119, shown indata block 132. Thedynamic encryption key 119 generated by the token 30, is the same dynamic encryption key generated by theserver 16A. - The encrypted file key 71E is received by the recipient's token in process block 134. In process block 136, the encrypted file key 71E and
dynamic encryption key 119 are then fed into the token'sprocessor 32 to perform a data decryption process, shown inprocess block 132. Preferably, the data decryption process comprises an AES data decryption process. Theprocessor 32 uses the dynamic encryption key to decrypt the encrypted dynamic file key 71E, to generate thedynamic file key 71. Thus, the invented method is capable of generating encryption/decryption keys in a reduced amount of time, reducing the processing time of the invented method. - The
encrypted file 53E is then decrypted by first extracting thedecryption information footer 78 from theencrypted file 53E. The information in thefooter 78 is then decomposed using thefile key 71. Thefile 53E is decrypted using a process analogous to the encryption process discussed above. The file attributes are then restored, and therecipient 14A may freely access and manipulate thefile 53. - Those skilled in the art will appreciate that various adaptations and modifications of the just-described preferred embodiments can be configured without departing from the scope and spirit of the invention. Therefore, it is to be understood that, within the scope of the appended claims, the invention may be practiced other than as specifically described herein.
Claims (11)
1. A method (50) for generating dynamic encryption keys for encrypting data files using detachable token devices, comprising:
(a) coupling (54) a detachable token device (30) to a computer (14), wherein said token device comprises symmetric shared secrets previously embedded in a key storage region (39), and an on-board processor (32) for advanced encryption standard (AES) processing (70);
(b) using said computer (14) to generate (58) a challenge in the form of a number chosen from the group consisting of a challenge puzzle, a key ID, a random number, and a user code;
(c) transmitting (58) the challenge to the token device (30);
(d) using said token device to generate (68) an encrypted puzzle key responsive to receipt of the challenge and said symmetric shared secrets;
(e) using said token device to generate a dynamic file key (71) based upon the encrypted puzzle key and challenge;
(f) encrypting a data file with the dynamic file key after decomposing said file into data blocks (74) and generating encrypted data blocks (74E); and
(g) appending decryption information (78) to an encrypted data file (53E).
2. The method of claim 1 wherein the decryption information (78) comprises information identifying the token device (30) and the challenge.
3. The method of claim 1 , wherein the token device is a detachable USB token device that is attached to the computer by a computer USB port, and wherein the method is designed to frustrate man in the middle (MITM) attacks by functioning without the necessity of exchanging the actual encryption keys over a network.
4. The method of claim 1 , wherein the file is encrypted by the token device using the token device's on-board processor for advanced encryption standard (AES) processing.
5. The method of claim 1 , wherein the encrypted data file (53E) is stored in the detachable token device (30).
6. A method to dynamically generate symmetric encryption keys for encrypting data files, comprising:
providing a computer and a detachable hardware token that can connect to the computer;
said hardware token comprising a token encryption processor and token memory, said token memory comprising a previously entered shared secret and a token identification number;
said computer comprising a computer processor, computer memory, and encryption software;
wherein said computer encryption software generates a challenge and transmits it to the hardware token, and wherein said hardware token uses this challenge, the previously entered shared secret, and the token encryption processor, to dynamically generate a symmetric encryption key.
7. The method of claim 6 , in which the dynamic symmetric encryption key is used to encrypt said file, and in which the identification number of the token and the challenge are added to the encrypted file.
8. The method of claim 6 , in which said hardware token transmits said symmetric encryption key to said computer, and wherein said computer processor uses said symmetric encryption key to encrypt said file.
9. The method of claim 6 , in which wherein said file is transmitted to said hardware token, and said hardware token uses said symmetric encryption key to encrypt said file using said token encryption processor, and then returns the encrypted file to said computer;
10. The method of claim 6 , wherein said detachable hardware token is a USB token that attaches to said computer via a USB port.
11. The method of claim 6 , wherein said challenge is selected from the group consisting of random numbers, challenge puzzles, key identifications (ID) and user codes.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/698,894 US20100195824A1 (en) | 2001-10-26 | 2010-02-02 | Method and Apparatus for Dynamic Generation of Symmetric Encryption Keys and Exchange of Dynamic Symmetric Key Infrastructure |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US34810401P | 2001-10-26 | 2001-10-26 | |
US10/280,796 US7688975B2 (en) | 2001-10-26 | 2002-10-25 | Method and apparatus for dynamic generation of symmetric encryption keys and exchange of dynamic symmetric key infrastructure |
US12/698,894 US20100195824A1 (en) | 2001-10-26 | 2010-02-02 | Method and Apparatus for Dynamic Generation of Symmetric Encryption Keys and Exchange of Dynamic Symmetric Key Infrastructure |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/280,796 Continuation US7688975B2 (en) | 2001-10-26 | 2002-10-25 | Method and apparatus for dynamic generation of symmetric encryption keys and exchange of dynamic symmetric key infrastructure |
Publications (1)
Publication Number | Publication Date |
---|---|
US20100195824A1 true US20100195824A1 (en) | 2010-08-05 |
Family
ID=26960541
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/280,796 Expired - Fee Related US7688975B2 (en) | 2001-10-26 | 2002-10-25 | Method and apparatus for dynamic generation of symmetric encryption keys and exchange of dynamic symmetric key infrastructure |
US12/698,894 Abandoned US20100195824A1 (en) | 2001-10-26 | 2010-02-02 | Method and Apparatus for Dynamic Generation of Symmetric Encryption Keys and Exchange of Dynamic Symmetric Key Infrastructure |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/280,796 Expired - Fee Related US7688975B2 (en) | 2001-10-26 | 2002-10-25 | Method and apparatus for dynamic generation of symmetric encryption keys and exchange of dynamic symmetric key infrastructure |
Country Status (1)
Country | Link |
---|---|
US (2) | US7688975B2 (en) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070160201A1 (en) * | 2004-02-11 | 2007-07-12 | Telefonaktiebolaget Lm Ericsson (Publ) | Key management for network elements |
US20080022121A1 (en) * | 2006-06-06 | 2008-01-24 | Red Hat, Inc. | Methods and systems for server-side key generation |
CN103577736A (en) * | 2013-11-07 | 2014-02-12 | 上海动联信息技术股份有限公司 | Low-power-consumption dynamic token and dynamic password generation method |
CN104333545A (en) * | 2014-10-26 | 2015-02-04 | 重庆智韬信息技术中心 | Method for encrypting cloud storage file data |
CN104333544A (en) * | 2014-10-26 | 2015-02-04 | 重庆智韬信息技术中心 | Encryption method for data file based on mobile terminal |
CN104363093A (en) * | 2014-10-26 | 2015-02-18 | 重庆智韬信息技术中心 | Method for encrypting file data by dynamic authorization code |
US20150113278A1 (en) * | 2012-03-02 | 2015-04-23 | Syphermedia International, Inc. | Blackbox security provider programming system permitting multiple customer use and in field conditional access switching |
CN105227299A (en) * | 2015-07-30 | 2016-01-06 | 深圳市美贝壳科技有限公司 | A kind of data encrypting and deciphering management equipment and application process thereof |
WO2017165807A1 (en) * | 2016-03-25 | 2017-09-28 | Thien Van Pham | Methods, systems, and media for using dynamic public key infrastructure to send and receive encrypted messages |
US9860059B1 (en) * | 2011-12-23 | 2018-01-02 | EMC IP Holding Company LLC | Distributing token records |
US10411879B2 (en) | 2016-03-25 | 2019-09-10 | Synergex Group | Methods, systems, and media for using dynamic public key infrastructure to send and receive encrypted messages |
US10476883B2 (en) | 2012-03-02 | 2019-11-12 | Inside Secure | Signaling conditional access system switching and key derivation |
US10623400B2 (en) * | 2013-10-14 | 2020-04-14 | Greg Hauw | Method and device for credential and data protection |
US10691860B2 (en) | 2009-02-24 | 2020-06-23 | Rambus Inc. | Secure logic locking and configuration with camouflaged programmable micro netlists |
US10827493B2 (en) | 2015-06-04 | 2020-11-03 | Futurewei Technologies, Inc. | Device, network, and method for wideband long-term evolution (LTE) uplink transmission |
US11025614B2 (en) | 2018-10-17 | 2021-06-01 | Synergex Group | Systems, methods, and media for managing user credentials |
Families Citing this family (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7231526B2 (en) * | 2001-10-26 | 2007-06-12 | Authenex, Inc. | System and method for validating a network session |
US20030149874A1 (en) | 2002-02-06 | 2003-08-07 | Xerox Corporation | Systems and methods for authenticating communications in a network medium |
US7937089B2 (en) * | 2002-02-06 | 2011-05-03 | Palo Alto Research Center Incorporated | Method, apparatus, and program product for provisioning secure wireless sensors |
US7185199B2 (en) | 2002-08-30 | 2007-02-27 | Xerox Corporation | Apparatus and methods for providing secured communication |
US7275156B2 (en) * | 2002-08-30 | 2007-09-25 | Xerox Corporation | Method and apparatus for establishing and using a secure credential infrastructure |
US7581096B2 (en) * | 2002-08-30 | 2009-08-25 | Xerox Corporation | Method, apparatus, and program product for automatically provisioning secure network elements |
US7904720B2 (en) | 2002-11-06 | 2011-03-08 | Palo Alto Research Center Incorporated | System and method for providing secure resource management |
US7549047B2 (en) * | 2002-11-21 | 2009-06-16 | Xerox Corporation | Method and system for securely sharing files |
US7426271B2 (en) * | 2003-04-25 | 2008-09-16 | Palo Alto Research Center Incorporated | System and method for establishing secondary channels |
US7454619B2 (en) * | 2003-06-24 | 2008-11-18 | Palo Alto Research Center Incorporated | Method, apparatus, and program product for securely presenting situation information |
US7925013B1 (en) | 2003-06-30 | 2011-04-12 | Conexant Systems, Inc. | System for data encryption and decryption of digital data entering and leaving memory |
DE102004033992A1 (en) * | 2003-07-24 | 2005-03-10 | Pantech Co | Methods and systems for watermarking multimedia data using mobile communication terminals |
US20050100166A1 (en) * | 2003-11-10 | 2005-05-12 | Parc Inc. | Systems and methods for authenticating communications in a network medium |
US7757076B2 (en) * | 2003-12-08 | 2010-07-13 | Palo Alto Research Center Incorporated | Method and apparatus for using a secure credential infrastructure to access vehicle components |
US20050129240A1 (en) * | 2003-12-15 | 2005-06-16 | Palo Alto Research Center Incorporated | Method and apparatus for establishing a secure ad hoc command structure |
US7552322B2 (en) | 2004-06-24 | 2009-06-23 | Palo Alto Research Center Incorporated | Using a portable security token to facilitate public key certification for devices in a network |
US20060020797A1 (en) * | 2004-07-08 | 2006-01-26 | Kan Zhang | Method for verifying a secure association between devices |
US20060126836A1 (en) * | 2004-12-10 | 2006-06-15 | Hector Rivas | System and method for dynamic generation of encryption keys |
US7627125B2 (en) * | 2005-06-23 | 2009-12-01 | Efunds Corporation | Key loading systems and methods |
US7933413B2 (en) * | 2007-02-02 | 2011-04-26 | Microsoft Corporation | Key exchange verification |
US7831051B2 (en) * | 2007-03-13 | 2010-11-09 | Aladdin Europe Gmbh | Secure communication between a hardware device and a computer |
US8683549B2 (en) * | 2007-03-23 | 2014-03-25 | Microsoft Corporation | Secure data storage and retrieval incorporating human participation |
CA3037741C (en) * | 2009-07-20 | 2021-10-19 | Bce Inc. | Improved signal security in a satellite signal distribution environment |
CA2688956C (en) * | 2009-07-20 | 2017-10-03 | Bce Inc. | Automatic user band assignment in a satellite signal distribution environment |
CA2785047C (en) | 2009-12-21 | 2017-12-19 | Bce Inc | Methods and systems for re-securing a compromised channel in a satellite signal distribution environment |
US8806609B2 (en) | 2011-03-08 | 2014-08-12 | Cisco Technology, Inc. | Security for remote access VPN |
US8898767B1 (en) | 2011-09-22 | 2014-11-25 | Mountain Top Digital, L.L.C. | Methods and apparatuses for digital content protection |
DE102011054842A1 (en) * | 2011-10-27 | 2013-05-02 | Wincor Nixdorf International Gmbh | Device for handling notes of value and / or coins and method for initializing and operating such a device |
US9246675B2 (en) * | 2012-04-12 | 2016-01-26 | Jintai Ding | Cryptographic systems using pairing with errors |
US20130317988A1 (en) * | 2012-05-28 | 2013-11-28 | Ian A. R. Boyd | Payment and account management system using pictooverlay technology |
CN103078738A (en) * | 2012-11-22 | 2013-05-01 | 天地融科技股份有限公司 | Dynamic password generation device and adapter |
US9430655B1 (en) * | 2012-12-28 | 2016-08-30 | Emc Corporation | Split tokenization |
KR102304927B1 (en) * | 2014-06-13 | 2021-09-24 | 삼성전자 주식회사 | Memory device, memory system and operating method of memory system |
CN104252731B (en) * | 2014-09-04 | 2017-05-24 | 天津大学 | High-safety wireless transaction method based on self-authentication mechanism efficiency |
CN104717213A (en) * | 2015-03-05 | 2015-06-17 | 沈文策 | Encryption and decryption method and system for network data transmission |
US11283604B2 (en) | 2015-05-29 | 2022-03-22 | Microsoft Technology Licensing, Llc | Sharing encrypted data with enhanced security by removing unencrypted metadata |
US9806888B1 (en) * | 2016-07-06 | 2017-10-31 | Shimon Gersten | System and method for data protection using dynamic tokens |
US12111944B2 (en) * | 2017-03-16 | 2024-10-08 | Jun Yu | Method and system for policy based real time data file access control |
US10402581B2 (en) | 2017-10-03 | 2019-09-03 | Servicenow, Inc. | Searching for encrypted data within cloud based platform |
US10623181B2 (en) | 2018-01-02 | 2020-04-14 | Bank Of America Corporation | Security system utilizing vaultless tokenization and encryption |
US10601828B2 (en) | 2018-08-21 | 2020-03-24 | HYPR Corp. | Out-of-band authentication based on secure channel to trusted execution environment on client device |
CN111984605B (en) * | 2020-07-14 | 2024-08-02 | 浙江大华技术股份有限公司 | Small file management method, electronic equipment and storage device |
CN112039883B (en) * | 2020-08-31 | 2025-01-14 | 深圳前海微众银行股份有限公司 | A blockchain data sharing method and device |
CN113221134B (en) * | 2021-04-09 | 2024-03-22 | 北京复兴华创技术有限公司 | Offline secure data exchange method and device |
CN114584321B (en) * | 2022-03-21 | 2024-01-26 | 北京普安信科技有限公司 | Data information encryption deployment method based on PUF device |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6075860A (en) * | 1997-02-19 | 2000-06-13 | 3Com Corporation | Apparatus and method for authentication and encryption of a remote terminal over a wireless link |
US6128735A (en) * | 1997-11-25 | 2000-10-03 | Motorola, Inc. | Method and system for securely transferring a data set in a data communications system |
US6351813B1 (en) * | 1996-02-09 | 2002-02-26 | Digital Privacy, Inc. | Access control/crypto system |
US20020031230A1 (en) * | 2000-08-15 | 2002-03-14 | Sweet William B. | Method and apparatus for a web-based application service model for security management |
US20040111610A1 (en) * | 2002-12-05 | 2004-06-10 | Canon Kabushiki Kaisha | Secure file format |
US7272723B1 (en) * | 1999-01-15 | 2007-09-18 | Safenet, Inc. | USB-compliant personal key with integral input and output devices |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4998279A (en) * | 1984-11-30 | 1991-03-05 | Weiss Kenneth P | Method and apparatus for personal verification utilizing nonpredictable codes and biocharacteristics |
US5241599A (en) * | 1991-10-02 | 1993-08-31 | At&T Bell Laboratories | Cryptographic protocol for secure communications |
US5995624A (en) * | 1997-03-10 | 1999-11-30 | The Pacid Group | Bilateral authentication and information encryption token system and method |
US6490680B1 (en) * | 1997-12-04 | 2002-12-03 | Tecsec Incorporated | Access control and authorization system |
US6985583B1 (en) * | 1999-05-04 | 2006-01-10 | Rsa Security Inc. | System and method for authentication seed distribution |
US7020645B2 (en) * | 2001-04-19 | 2006-03-28 | Eoriginal, Inc. | Systems and methods for state-less authentication |
-
2002
- 2002-10-25 US US10/280,796 patent/US7688975B2/en not_active Expired - Fee Related
-
2010
- 2010-02-02 US US12/698,894 patent/US20100195824A1/en not_active Abandoned
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6351813B1 (en) * | 1996-02-09 | 2002-02-26 | Digital Privacy, Inc. | Access control/crypto system |
US6075860A (en) * | 1997-02-19 | 2000-06-13 | 3Com Corporation | Apparatus and method for authentication and encryption of a remote terminal over a wireless link |
US6128735A (en) * | 1997-11-25 | 2000-10-03 | Motorola, Inc. | Method and system for securely transferring a data set in a data communications system |
US7272723B1 (en) * | 1999-01-15 | 2007-09-18 | Safenet, Inc. | USB-compliant personal key with integral input and output devices |
US20020031230A1 (en) * | 2000-08-15 | 2002-03-14 | Sweet William B. | Method and apparatus for a web-based application service model for security management |
US20040111610A1 (en) * | 2002-12-05 | 2004-06-10 | Canon Kabushiki Kaisha | Secure file format |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070160201A1 (en) * | 2004-02-11 | 2007-07-12 | Telefonaktiebolaget Lm Ericsson (Publ) | Key management for network elements |
US7987366B2 (en) * | 2004-02-11 | 2011-07-26 | Telefonaktiebolaget L M Ericsson (Publ) | Key management for network elements |
US20080022121A1 (en) * | 2006-06-06 | 2008-01-24 | Red Hat, Inc. | Methods and systems for server-side key generation |
US8495380B2 (en) * | 2006-06-06 | 2013-07-23 | Red Hat, Inc. | Methods and systems for server-side key generation |
US9450763B2 (en) | 2006-06-06 | 2016-09-20 | Red Hat, Inc. | Server-side key generation |
US11163930B2 (en) | 2009-02-24 | 2021-11-02 | Rambus Inc. | Secure logic locking and configuration with camouflaged programmable micro netlists |
US10691860B2 (en) | 2009-02-24 | 2020-06-23 | Rambus Inc. | Secure logic locking and configuration with camouflaged programmable micro netlists |
US9860059B1 (en) * | 2011-12-23 | 2018-01-02 | EMC IP Holding Company LLC | Distributing token records |
US20150113278A1 (en) * | 2012-03-02 | 2015-04-23 | Syphermedia International, Inc. | Blackbox security provider programming system permitting multiple customer use and in field conditional access switching |
US10476883B2 (en) | 2012-03-02 | 2019-11-12 | Inside Secure | Signaling conditional access system switching and key derivation |
US9800405B2 (en) * | 2012-03-02 | 2017-10-24 | Syphermedia International, Inc. | Blackbox security provider programming system permitting multiple customer use and in field conditional access switching |
US10623400B2 (en) * | 2013-10-14 | 2020-04-14 | Greg Hauw | Method and device for credential and data protection |
CN103577736A (en) * | 2013-11-07 | 2014-02-12 | 上海动联信息技术股份有限公司 | Low-power-consumption dynamic token and dynamic password generation method |
CN104333545A (en) * | 2014-10-26 | 2015-02-04 | 重庆智韬信息技术中心 | Method for encrypting cloud storage file data |
CN104363093A (en) * | 2014-10-26 | 2015-02-18 | 重庆智韬信息技术中心 | Method for encrypting file data by dynamic authorization code |
CN104333544A (en) * | 2014-10-26 | 2015-02-04 | 重庆智韬信息技术中心 | Encryption method for data file based on mobile terminal |
US10827493B2 (en) | 2015-06-04 | 2020-11-03 | Futurewei Technologies, Inc. | Device, network, and method for wideband long-term evolution (LTE) uplink transmission |
CN105227299A (en) * | 2015-07-30 | 2016-01-06 | 深圳市美贝壳科技有限公司 | A kind of data encrypting and deciphering management equipment and application process thereof |
US10135618B2 (en) | 2016-03-25 | 2018-11-20 | Synergex Group (corp.) | Method for using dynamic Public Key Infrastructure to send and receive encrypted messages between software applications |
US10411879B2 (en) | 2016-03-25 | 2019-09-10 | Synergex Group | Methods, systems, and media for using dynamic public key infrastructure to send and receive encrypted messages |
WO2017165807A1 (en) * | 2016-03-25 | 2017-09-28 | Thien Van Pham | Methods, systems, and media for using dynamic public key infrastructure to send and receive encrypted messages |
US11088822B2 (en) | 2016-03-25 | 2021-08-10 | Synergex Group | Methods, systems, and media for using dynamic public key infrastructure to send and receive encrypted messages |
US11025614B2 (en) | 2018-10-17 | 2021-06-01 | Synergex Group | Systems, methods, and media for managing user credentials |
Also Published As
Publication number | Publication date |
---|---|
US7688975B2 (en) | 2010-03-30 |
US20030081774A1 (en) | 2003-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7688975B2 (en) | Method and apparatus for dynamic generation of symmetric encryption keys and exchange of dynamic symmetric key infrastructure | |
US7334255B2 (en) | System and method for controlling access to multiple public networks and for controlling access to multiple private networks | |
US7231526B2 (en) | System and method for validating a network session | |
US8644516B1 (en) | Universal secure messaging for cryptographic modules | |
US8059818B2 (en) | Accessing protected data on network storage from multiple devices | |
US5418854A (en) | Method and apparatus for protecting the confidentiality of passwords in a distributed data processing system | |
US20020087862A1 (en) | Trusted intermediary | |
US7266705B2 (en) | Secure transmission of data within a distributed computer system | |
CN114244508B (en) | Data encryption method, device, equipment and storage medium | |
US20020106085A1 (en) | Security breach management | |
US7315950B1 (en) | Method of securely sharing information over public networks using untrusted service providers and tightly controlling client accessibility | |
KR20050065978A (en) | Method for sending and receiving using encryption/decryption key | |
US20030037241A1 (en) | Single algorithm cipher suite for messaging | |
JP3690237B2 (en) | Authentication method, recording medium, authentication system, terminal device, and authentication recording medium creation device | |
JP2005175992A (en) | Certificate distribution system and certificate distribution method | |
JP4794970B2 (en) | Secret information protection method and communication apparatus | |
JPH09130376A (en) | User password authentication method | |
US12261946B2 (en) | System and method of creating symmetric keys using elliptic curve cryptography | |
CN114531235B (en) | Communication method and system for end-to-end encryption | |
KR100842014B1 (en) | Access to protected data on network storage from multiple devices | |
WO2005055516A1 (en) | Method and apparatus for data certification by a plurality of users using a single key pair | |
JP2005217665A (en) | Communications system, transmitter, receiver and communication method | |
JP2003309546A (en) | Method for transferring information |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: AUTHENEX, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:LIN, PAUL;HON, HENRY;REEL/FRAME:023898/0943 Effective date: 20021024 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |