Client and host validation based on hash of key and validation of encrypted data
Granted 6 Aug 2013 · 1 office action
Current assignee: Cloud Network Technology Singapore Pte. Ltd. · originally Foxconn Technology Group
Law firm: Law firm · Log in to unlock
Attorney: Attorney · Log in to unlock
Inventors: Chun-Hsu Lin, Ching-Wei Ho, Che-Yi Chu · Examiner: Venkat Perungavoor · AU 2496 · TC 2400
Life of the application
9 dated eventsAbstract
A data security protection method generates dynamic encryption keys and dynamic decryption keys for a host and a client during data transmission between the host and the client. The host stores a host initial key K 0 , and determines a host key K n using a one-way hash function based on the host initial key K 0 . The client stores a client initial key K′ 0 , and determines a client key K′ n using the one-way hash function based on the client initial key K′ 0 . Original data R n is encrypted as encrypted data X n using the host key K n before being sent to the client. The client decrypts the encrypted data X n using the client key K′ , to obtain the original data R .
Description
4 parts›BACKGROUND
1. Technical Field
Embodiments of the present disclosure relate to security mechanisms, and more particularly, to a data security protection method.
2. Description of Related Art
How to protect legitimate rights and interests of digital content owners is a problem. Often, two ways are commonly used, one, a provider of digital content may provide a registration code to valid users of the digital content, the other is that the provider may encrypt the digital content using an encryption mechanism, and provide a decryption key to valid users. However, static registration code and decryption keys are too easily hacked.
›BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram of one embodiment of an application environment of a data security protection method.
FIG. 2A and FIG. 2B are a block diagram of one embodiment of a data security protection method.
FIG. 3A and FIG. 3B are a block diagram of one embodiment detailing an initial validation block in FIG. 2A .
›DETAILED DESCRIPTION · 1 of 2
The disclosure, including the accompanying drawings in which like references indicate similar elements, is illustrated by way of examples and not by way of limitation. It should be noted that references to “an” or “one” embodiment in this disclosure are not necessarily to the same embodiment, and such references mean at least one.
In general, the word “module”, as used herein, refers to logic embodied in hardware or firmware, or to a collection of software instructions, written in a programming language, such as, Java, C, or assembly. One or more software instructions in the modules may be embedded in firmware, such as EPROM. The modules described herein may be implemented as either software and/or hardware modules and may be stored in any type of non-transitory computer-readable medium or other storage device. Some non-limiting examples of non-transitory computer-readable media include CDs, DVDs, BLU-RAY, flash memory, and hard disk drives.
FIG. 1 is a block diagram of one embodiment of an application environment of a data security protection method. In one embodiment, the data security protection method may be executed by a host 10 and a client 20 . The host 10 may be a computer or a server. The client 20 may be a computer, an MP4 player, or other electronic device. The data security protection method generates dynamic encryption keys and dynamic decryption keys for the host 10 and the client 20 during data transmission between the host 10 and the client 20 .
In one embodiment, the host 10 includes a plurality of function modules, such as a random number generation module 11 , a first computation module 12 , a first encryption/decryption module 13 , a first communication module 14 , and a first validation module 15 . The modules 11 - 15 may comprise computerized code in the form of one or more programs (computer readable program code) that are stored in a storage device 16 of the host 10 . The computerized code includes instructions that are executed by a processor 17 of the host 10 to provide the below described functions of the modules 11 - 15 illustrated in FIG. 2A and FIG. 2B .
The client 20 also includes a plurality of function modules, such as a second encryption/decryption module 21 , a second computation module 22 , a second validation module 23 , and a second communication module 24 . The modules 21 - 24 may comprise computerized code in the form of one or more programs (computer readable program code) that are stored in a storage device 25 of the client 20 . The computerized code includes instructions that are executed by a processor 26 of the client 20 to provide the below described functions of the modules 21 - 24 illustrated in FIG. 2A and FIG. 2B .
FIG. 2A and FIG. 2B are a flowchart of one embodiment of the data security protection method. Depending on the embodiment, additional blocks may be added, others removed, and the ordering of the blocks may be changed.
In block S 101 , the host 10 and the client 20 perform an initial validation process that generates a host initial key K 0 for the host 10 and a client initial key K′ 0 for the client 20 . The below detailed description of block S 101 refers to FIG. 3A and FIG. 3B .
In block S 103 , the first computation module 12 determines a host key K n using a one-way hash function based on the host initial key K 0 , where K n =H(K n−1 ), H represents the one-way hash function, n is an integer having an initial value 1 (when block S 103 is implemented the first time). In one embodiment, the one-way hash function may be a message digest algorithm (MD5), a secure hash algorithm (SHA), a message authentication code (MAC), or a cyclic redundancy check (CRC), for example. The first encryption/decryption module 13 generates encrypted data X n using a symmetrical encryption algorithm based on original data R n and the host key K n , where X n =E Kn (R n ), E represents the symmetrical encryption algorithm. The symmetrical encryption algorithm may be advanced encryption standard (AES), data encryption standard (DES), for example. All host keys K n , original data R n , and encrypted data X n are stored in the storage device 16 .
In block S 105 , the first communication module 14 sends the encrypted data X n to the client 20 .
In block S 107 , the second computation module 22 determines a client key K′ n using the one-way hash function based on the client initial key K′ 0 , where K′ n =H(K′ n−1 ). The second encryption/decryption module 21 determines decrypted data R′ n by decrypting the encrypted data X n using a symmetrical decryption algorithm based on the client key K′ n . The symmetrical decryption algorithm matches the symmetrical encryption algorithm, for example, if the symmetrical encryption algorithm is AES, then the symmetrical decryption algorithm is also AES.
In block S 109 , the second encryption/decryption module 21 generates validation data X′ n using the symmetrical encryption algorithm based on the decrypted data R′ n and the client key K′ n , X′ n =E K′n (R′ n ). The second communication module 24 sends the validation data X′ n to the host 10 , to request the host 10 to validate the client 20 for transmission of original data R n+1 .
In block S 111 , the first encryption/decryption module 13 determines the decrypted data R′n by decrypting the validation data X′ n using the symmetrical decryption algorithm and the host key K n .
In block S 113 , the first validation module 15 checks if the decrypted data R′ n is the same as the original data R n . If the decrypted data R′ n is different from the original data R n , block S 115 is implemented, the first validation module 15 determines that the client 20 fails in the validation, and the host 10 refuses to transmit any more data, and the procedure ends. Otherwise, if the decrypted data R′ n is the same as the original data R n , block S 117 is implemented.
In block S 117 , the first validation module 15 sets the −1 client key K′ n−1 equals the −1 host key K n−1 , and determines the client 20 passes the validation. Then in block S 119 , the first communication module 14 checks if there is original data R n+1 to be transmitted. If there is original data R n+1 to be transmitted, the procedure returns to block S 103 . Otherwise, if there is no more original data to be transmitted, the procedure ends.
›DETAILED DESCRIPTION · 2 of 2
It should be understood that, the host 10 and the client 20 can pre-store the host initial key K 0 and the client initial key K′ 0 . In this situation, block S 101 can be omitted.
Referring to FIG. 3A and FIG. 3B , a detailed description of block S 101 follows. Depending on the embodiment, additional blocks may be added, others removed, and the ordering of the blocks may be changed.
In block S 201 , the random number generation module 11 generates a first random number R 0 and a second random number K 0 , determines a one-way function value H(R 0 ) of the first random number R 0 , generates test data X 0 by encrypting R 0 , K 0 and H(R 0 ) using a public key PK of an asymmetric encryption algorithm, where X 0 =E PK (R∥H(R)∥K), E PK represents the asymmetric encryption algorithm. In one embodiment, the asymmetric encryption algorithm may be RSA or DSA. The public key PK, the first random number R 0 , the second random number K 0 , the one-way function value H(R 0 ), and the test data X 0 are stored in the storage device 16 of the host 10 .
In block S 203 , the first communication module 14 sends the text data X 0 to the client 20 .
In block S 205 , the second encryption/decryption module 21 decrypts the test data X 0 using a secret key SK of the asymmetric encryption algorithm, to obtain a first decrypted value R′ 0 , a second decrypted value K′ 0 , and a decrypted function value H(R′ 0 ) of the first decrypted value R′ 0 . The secret key SK, the first decrypted value R′ 0 , the second decrypted value K′ 0 , and the decrypted function value H(R′ 0 ) are stored in the storage device 25 of the client 20 .
In block S 207 , the second computation module 22 determines a one-way function value H′(R′ 0 ) of the first decryption value R′ 0 using the one-way hash function.
In block S 209 , the second validation module 23 determines if the one-way hash function value H′(R′ 0 ) is the same as the decrypted function value H(R′ 0 ), to determine if the public key PK of the host 10 matches the private key SK of the client 20 . If the one-way function value H′(R′ 0 ) is different from the decrypted function value H(R′ 0 ), block S 210 is implemented, the second validation module 23 determines that the host 10 fails the initial validation. Otherwise, if the one-way function value H′(R′ 0 ) is the same as the decrypted function value H(R′ 0 ), block S 211 is implemented.
In block S 211 , the second validation module 23 determines that the public key PK of the host 10 matches the private key SK of the client 20 , and stores the second decrypted value K′ 0 as the client initial key. The second encryption/decryption module 21 encrypts the first decrypted value R′ 0 using the symmetric encryption algorithm and the client initial key K′ 0 , to obtain an encrypted value E(R′ 0 ).
In block S 213 , the second communication module 24 sends the encrypted value E(R′ 0 ) to the host 10 .
In block S 215 , the first encryption/decryption module 13 obtains the first decrypted value R′ 0 by decrypting the encrypted value E(R′ 0 ) using the symmetric decryption algorithm and the client initial key K′ 0 . The first validation module 15 checks if the first decrypted value R′ 0 is the same as the first random number R 0 , to determine if the client 20 passes the initial validation. If the first decrypted value R′ 0 is different from the first random number R 0 , the first validation module 15 determines that the client 20 fails in the initial validation, block S 210 is implemented. Otherwise, if the first decrypted value R′ 0 is the same as the first random number R 0 , block S 217 is implemented.
In block S 217 , the first validation module 15 determines that the client 20 passes the initial validation, and stores the second random number K 0 as the host initial key, then the procedure goes to block S 103 .
According to the above embodiments, every time the key used to encrypt data transmitted to the client 20 is computed based on a prior key used to encrypt prior transmitted data, the dynamic key is difficult to hack. Furthermore, the client 20 will be verified based on the prior key whenever requiring more data from the host 10 , such a restricted validation mechanism efficiently protects security of the data.
Although certain inventive embodiments of the present disclosure have been specifically described, the present disclosure is not to be construed as being limited thereto. Various changes or modifications may be made to the present disclosure without departing from the scope and spirit of the present disclosure.
Claims as granted
12 claimsLog in to read the claims of this application.
Log in to unlockClassifications
5 codes- G06F7/76
- G06F7/06
- H04L9/08
Claim changes
SoonSee which claims were amended, added or cancelled during examination, with every added and removed word marked.
The published claims of this application are not paired with the granted ones in what we hold.
File wrapper
See the full prosecution history — every USPTO and applicant action on this file, in order.
Log in to unlockDocuments
Log in to open the documents of this file: the application as filed, every office action and response, the notice of allowance.
Log in to unlockChain of title
See the full assignment history — every owner this patent has passed through, with recordation dates and reel/frame numbers.
Log in to unlock