IP Library Granted Patent US 8,666,064
Granted Patent B2
US 8,666,064 · App. 12/874,799 · Granted Mar 4, 2014

Endecryptor capable of performing parallel processing and encryption/decryption method thereof

Inventors: Hong-Mook Choi (Bucheon-si, KR); Jisoo Kim (Yongin-si, KR); Xingguang Feng (Yongin-si, KR); Woo-Hyun Lee (Seoul, KR)
Assignee: Samsung Electronics Co., Ltd.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,666,064
App. No.
12/874,799
Granted
Mar 4, 2014
Kind
B2
Abstract

An encryption/decryption method of an endecryptor including a plurality of endecryption units supporting an XES mode with tweak and ciphertext streaming (XTS) includes dividing an input data stream into consecutive data units; inputting the divided data units to the endecryption units, respectively; and simultaneously processing the input data units at the respective endecryption units. According to the encryption/decryption method, parallel processing is performed to encrypt/decrypt data at higher speed.

Claims (36)

1. An encryption/decryption method of an endecryptor, comprising:

dividing , by a computing device, an input data stream into a plurality of consecutive, non-overlapping, data units;

inputting the divided consecutive, non-overlapping, data units to respective endecryption units, each supporting an XOR-encrypt-XOR (XEX) encryption mode with tweak and ciphertext stealing (XTS); and

simultaneously processing the input data units at the respective endecryption units, wherein simultaneously processing the input data units at the respective endecryption units comprises:

encrypting a tweak value according to a second input key and the block cipher protocol;

performing modular multiplication of the encrypted tweak value by a primitive value;

performing an exclusive OR (XOR) operation on a result value of the modular multiplication and an input data unit;

processing a result value of the XOR operation according to a first input key and the block cipher protocol; and

performing an XOR operation on the result value of the modular multiplication and the processed result value of the XOR operation and wherein the primitive value is determined by an exponent corresponding to the sequential number of the consecutive data units.

2. The encryption/decryption method as set forth in claim 1 , wherein the endecryption units receive data units of a predetermined size.

3. The encryption/decryption method as set forth in claim 2 , wherein a last data unit and a data unit preceding the last data unit among the consecutive data units are encrypted/decrypted using ciphertext stealing (CTS) when the data stream cannot be divided evenly by the predetermined size.

4. The encryption/decryption method as set forth in claim 3 , wherein when the CTS occurs, the last data unit is input to an encryption unit at which the data unit preceding the last data unit is processed.

5. The encryption/decryption method as set forth in claim 1 , wherein the endecryptor inputs the consecutive data units to the endecryption units in a parallel processing mode, respectively.

6. The encryption/decryption method as set forth in claim 1 , wherein the endecryptor inputs the consecutive data units to one of the endecryption units in a mode that is not a parallel processing mode.

7. The encryption/decryption method as set forth in claim 1 , wherein each of the endecryption units uses a block cipher protocol.

8. The encryption/decryption method as set forth in claim 7 , wherein the block cipher protocol is the advanced encryption standard (AES) protocol.

9. The encryption/decryption method as set forth in claim 8 , wherein the tweak value is any bit having the same size as data to be processed at the endecryption units.

10. The encryption/decryption method as set forth in claim 8 , wherein the modular multiplication of the primitive value is performed by a shift or XOR operation.

11. An endecryptor comprising:

a plurality of endecryption units supporting XTS encryption;

a divider to divide a data stream into consecutive, non-overlapping, data units; and

an allocator to allocate the divided data units to the endecryption units, respectively, and to input the allocated data units to the endecryption units,

wherein each of the endecryption units simultaneously processes the input data units,

wherein simultaneously processing the input data units at the respective endecryption units comprises:

encypting a tweak value according to a second input key and the block cipher protocol;

performing modular multiplication of the encrypted tweak value by a primitive value;

performing an exclusive OR (XOR) operation on a result value of the modular multiplication and an input data unit;

processing a result value of the XOR operation according to a first input key and the block cipher protocol; and

performing an XOR operation on the result value of the modular multiplication and the processed result value of the XOR operation, and wherein the primitive value is determined by an exponent corresponding to the sequential number of the consecutive data units.

12. The endecryptor as set forth in claim 11 , wherein the allocator simultaneously inputs the allocated data units to the endecryption units during one processing period in a parallel processing mode.

13. The endecryptor as set forth in claim 11 , wherein each of the endecryption units performs an endecryption operation according to a block cipher protocol by the unit of 128 bits.

14. The endecryptor as set forth in claim 13 , wherein a remainder obtained by dividing bytes of the data stream by 16 is used to determine whether ciphertext stealing (CTS) occurs.

15. The endecryptor as set forth in claim 13 , wherein a value obtained by dividing bytes of the data stream by 16 is subjected to a floor operation when ciphertext stealing (CTS) does not occur, and a remainder obtained by dividing a value obtained by subtracting 1 from a value obtained through the floor operation by the number of the endecryption units is used to determine an endecryption unit where the last one of the consecutive data units is to be processed.

16. The endecryptor as set forth in claim 15 , wherein when the CTS does not occur, a value obtained by dividing the bytes of the data stream by a value obtained by multiplying the number of the endecryption units by 16 is subjected to a ceiling operation to determine a parallel processing count of the endecryption units.

17. The endecryptor as set forth in claim 13 , wherein when the CTS occurs, a value obtained by dividing a value obtained by subtracting 16 from bytes of the data stream by a value obtained by multiplying the number of the endecryption units by 16 is used to determine a parallel processing count of the endecryption units.

18. The endecryptor as set forth in claim 13 , wherein the block cipher protocol is the advanced encryption standard (AES) protocol.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 2, 2010
From: CHOI, HONG-MOOK; KIM, JISOO; FENG, XINGGUANG; LEE, WOO-HYUN
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 024934/0076 →
Priority Claims (1)
KR 10-2009-0115412 · Nov 26, 2009 · national
Continuity (1)
Related Publication 20110123020A1 · May 26, 2011