IP Library Granted Patent US 11,809,578
Granted Patent B1
US 11,809,578 · App. 18/087,378 · Granted Nov 7, 2023

Method, system and apparatus for data encryption

Inventors: Xiaojun Ding (Shanghai, CN); Zhikai Chen (Shanghai, CN)
G06F21/602G06F21/78
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 11,809,578
App. No.
18/087,378
Granted
Nov 7, 2023
Kind
B1
Abstract

It is detected whether a next-to-last raw data block in a raw data segment has been written into an input buffer. If so, the next-to-last raw data block is read from the input buffer for encryption immediately after a current raw data block is read from the input buffer for encryption. Reading continues for a subsequent raw data block after the current raw data block is read from the input buffer for encryption, after the next-to-last raw data block is read from the input buffer for encryption. Encryption is performed, using Advanced Encryption Standard (AES) processing and a CipherText Stealing (XTS) working mode, on a last raw data block in the raw data segment by providing an intermediate encrypted data block, where the intermediate encrypted data block is obtained by encrypting the next-to-last raw data block, and the last raw data block is read from the input buffer.

Claims (42)

1. A method, comprising:

detecting whether a next-to-last raw data block in a raw data segment has been written into an input buffer;

reading the next-to-last raw data block from the input buffer for encryption immediately after a current raw data block is read from the input buffer for encryption, in response to detecting that the next-to-last raw data block has been written into the input buffer, wherein reading the next-to-last raw data block comprises:

calculating a sequence number difference between a sequence number of the next-to-last raw data block and a sequence number of the current raw data block; and

reading the next-to-last raw data block from the input buffer, in response to the sequence number difference being equal to or less than a number of operation rounds required for encryption;

continuing to read a subsequent raw data block after the current raw data block from the input buffer for encryption, after the next-to-last raw data block is read from the input buffer for encryption; and

encrypting, using Advanced Encryption Standard (AES) processing and a CipherText Stealing (XTS) working mode, a last raw data block in the raw data segment by providing an intermediate encrypted data block, wherein the intermediate encrypted data block is obtained by encrypting the next-to-last raw data block, and the last raw data block is read from the input buffer.

2. The method according to claim 1 , wherein reading the next-to-last raw data block comprises:

moving the next-to-last raw data block to a position immediately after the current raw data block in the input buffer;

pointing an updating read pointer to the next-to-last raw data block by updating a read pointer pointing to the current raw data block after the current raw data block is read; and

reading the next-to-last raw data block based on the updated read pointer.

3. The method according to claim 2 , wherein reading the subsequent raw data block after the current raw data block comprises:

respectively pointing an iteratively updated read pointer to each subsequent raw data block in sequence by iteratively updating the updated read pointer; and

reading the each subsequent raw data block in sequence based on the iteratively updated read pointer.

4. The method according to claim 1 , further comprising storing the intermediate encrypted data block in a temporary register, wherein the providing the intermediate encrypted data block comprises: reading the intermediate encrypted data block from the temporary register.

5. The method according to claim 1 , further comprising providing each raw data block read from the input buffer to a Data Processing (DP) unit, wherein the DP unit is configured to encrypt an input data block into an encrypted data block corresponding to the input data block by performing a total number of operation rounds required for encryption.

6. The method according to claim 1 , further comprising simultaneously writing last two encrypted data blocks to an output buffer by incrementing a write pointer by 2.

7. The method according to claim 1 , wherein a size of the last raw data block is smaller than a predetermined data block size specified by the AES processing.

8. A system, comprising:

an input buffer;

a controller that is configured to:

detect whether a next-to-last raw data block in a raw data segment has been written into the input buffer;

read the next-to-last raw data block from the input buffer for encryption immediately after a current raw data block is read from the input buffer for encryption, in response to detecting that the next-to-last raw data block has been written into the input buffer, wherein reading the next-to-last raw data block comprises:

calculating a sequence number difference between a sequence number of the next-to-last raw data block and a sequence number of the current raw data block; and

reading the next-to-last raw data block from the input buffer, in response to the sequence number difference being equal to or less than a number of operation rounds required for encryption; and

continue to read a subsequent raw data block after the current raw data block from the input buffer for encryption, after the next-to-last raw data block is read from the input buffer for encryption; and

an encoder that is configured to encrypt, using Advanced Encryption Standard (AES) processing and a CipherText Stealing (XTS) working mode, a last raw data block in the raw data segment by providing an intermediate encrypted data block, wherein the intermediate encrypted data block is obtained by encrypting the next-to-last raw data block, and the last raw data block is read from the input buffer.

9. The system according to claim 8 , wherein reading the next-to-last raw data block comprises:

moving the next-to-last raw data block to a position immediately after the current raw data block in the input buffer;

pointing an updating read pointer to the next-to-last raw data block by updating a read pointer pointing to the current raw data block after the current raw data block is read; and

reading the next-to-last raw data block based on the updated read pointer.

10. The system according to claim 9 , wherein reading the subsequent raw data block after the current raw data block comprises:

respectively pointing an iteratively updated read pointer to each subsequent raw data block in sequence by iteratively updating the updated read pointer; and

reading the each subsequent raw data block in sequence based on the iteratively updated read pointer.

11. The system according to claim 8 , further comprising a temporary register, wherein:

the intermediate encrypted data block is stored in the temporary register; and

providing the intermediate encrypted data block comprises reading the intermediate encrypted data block from the temporary register.

12. The system according to claim 8 , further comprising a Data Processing (DP) unit, wherein:

each raw data block is read from the input buffer to the DP unit; and

the DP unit is configured to encrypt an input data block into an encrypted data block corresponding to the input data block by performing a total number of operation rounds required for encryption.

13. The system according to claim 8 , wherein the controller is further configured to simultaneously write last two encrypted data blocks to an output buffer by incrementing a write pointer by 2.

14. The system according to claim 8 , wherein a size of the last raw data block is smaller than a predetermined data block size specified by the AES process.

Assignments (2)
CHANGE OF NAME Recorded Aug 13, 2025
From: BEIJING TENAFE ELECTRONIC TECHNOLOGY CO., LTD.
To: NANJING TENAFE ELECTRONIC TECHNOLOGY CO., LTD.
Reel/Frame 072008/0631 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 11, 2023
From: DING, XIAOJUN; CHEN, ZHIKAI
To: BEIJING TENAFE ELECTRONIC TECHNOLOGY CO., LTD.
Reel/Frame 063611/0408 →
Priority Claims (1)
CN 202210961588.1 · Aug 11, 2022 · national