IP Library Granted Patent US 10,454,680
Granted Patent B2
US 10,454,680 · App. 15/619,151 · Granted Oct 22, 2019

RSA decryption processor and method for controlling RSA decryption processor

Inventors: Yichen Tu (Beijing, CN); Wei Qi (Beijing, CN); Yong Wang (Beijing, CN)
Assignee: BEIJING BAIDU NETCOM SCIENCE AND TECHNOLOGY CO., LTD.
H04L9/30G09C1/00H04L9/06H04L9/0618H04L9/302H04L2209/12
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 10,454,680
App. No.
15/619,151
Granted
Oct 22, 2019
Kind
B2
Abstract

The present application discloses an RSA decryption processor and a method for controlling an RSA decryption processor. A specific implementation of the processor includes a memory, a control component, and a parallel processor. The memory is configured to store decryption parameters comprising a private key. The control component is configured to receive a ciphertext set, and send a decryption signal comprising the ciphertext set to the parallel processor. The parallel processor is configured to: read a decryption parameter from the memory in response to receiving the decryption signal, and use at least one modular exponentiation circuit unit in the parallel processor to perform in parallel a modular exponentiation operation on ciphertexts in the ciphertext set by using the read decryption parameter, to obtain plaintexts corresponding to the ciphertexts. This implementation improves the efficiency of RSA decryption.

Claims (48)

1. An RSA decryption processor, comprising a memory, a control component, a preprocessing circuit unit and a parallel processor, wherein

the memory is configured to store decryption parameters comprising a private key, and a preset first factor and second factor prime with each other;

the control component is configured to receive a ciphertext set, send a preprocessing signal comprising the ciphertext set to the preprocessing circuit unit, in response to that a ciphertext bit width of the ciphertext set is greater than a predetermined threshold, and send a decryption signal comprising the ciphertext set to the parallel processor in response to that the ciphertext bit width of the ciphertext set is not greater than the predetermined threshold;

the preprocessing circuit unit is configured to: read a decryption parameter from the memory in response to receiving the preprocessing signal, and perform an operation on the decryption parameter and a ciphertext whose bit width is greater than the predetermined threshold in the ciphertext set according to the Chinese remainder theorem, to determine intermediate parameters corresponding to the ciphertext whose bit width is greater than the predetermined threshold, wherein the intermediate parameters comprise a first base, a first exponent, a second base, and a second exponent;

the control component is further configured to: monitor the preprocessing circuit unit, and determine whether a modular exponentiation circuit unit in the parallel processor is idle, in response to detecting that the preprocessing circuit unit completes determining the intermediate parameters corresponding to the ciphertext whose bit width is greater than the predetermined threshold; and

the parallel processor is configured to: read a decryption parameter from the memory in response to receiving the decryption signal, and use at least one modular exponentiation circuit unit in the parallel processor to perform in parallel a modular exponentiation operation on ciphertexts in the ciphertext set by using the read decryption parameter, to obtain plaintexts corresponding to the ciphertexts.

2. The RSA decryption processor according to claim 1 , wherein

the control component is further configured to: send a first task transfer instruction to the preprocessing circuit unit and the idle modular exponentiation circuit unit, in response to determining that a modular exponentiation circuit unit in the parallel processor is idle;

the preprocessing circuit unit is further configured to: send the determined intermediate parameters corresponding to the ciphertext whose bit width is greater than the predetermined threshold to the idle modular exponentiation circuit unit, in response to receiving the first task transfer instruction; and

the idle modular exponentiation circuit unit is further configured to: receive the intermediate parameters sent from the preprocessing circuit unit in response to receiving the first task transfer instruction, and perform a first modular exponentiation operation on the received first base, first exponent, and first factor and perform a second modular exponentiation operation on the received second base, second exponent, and second factor, to determine a first remainder and a second remainder.

3. The RSA decryption processor according to claim 2 , further comprising a post-processing circuit unit, wherein

the control component is further configured to: monitor the modular exponentiation circuit unit in the parallel processor, determine whether the post-processing circuit unit is idle in response to detecting that a modular exponentiation circuit unit in the parallel processor has determined the first remainder and the second remainder, and send a second task transfer instruction to the parallel processor and the post-processing circuit unit in response to determining that the post-processing circuit unit is idle;

the parallel processor is further configured to: send the determined first remainder and second remainder, the first factor, and the second factor to the post-processing circuit unit in response to receiving the second task transfer instruction; and

the post-processing circuit unit is configured to: perform an operation on the first remainder, the second remainder, the first factor, and the second factor according to the Chinese remainder theorem to determine a plaintext corresponding to the ciphertext whose bit width is greater than the predetermined threshold, in response to receiving the second task transfer instruction, the first remainder, the second remainder, the first factor, and the second factor.

4. The RSA decryption processor according to claim 1 , wherein the modular exponentiation circuit unit receiving the intermediate parameters comprises a first modular exponentiation subunit and a second modular exponentiation subunit in parallel,

the first modular exponentiation subunit is configured to perform a first modular exponentiation operation on the first base, the first exponent, and the first factor, to determine the first remainder; and

the second modular exponentiation subunit is configured to perform a second modular exponentiation operation on the second base, the second exponent, and the second factor, to determine the second remainder.

5. The RSA decryption processor according to claim 4 , wherein the first modular exponentiation subunit comprises a first modular exponentiation control subunit and a first pulse array circuit unit,

the first pulse array circuit unit is configured to perform a modular multiplication operation; and

the first modular exponentiation control subunit is configured to: call the first pulse array circuit unit at least once to perform a modular multiplication operation according to the first base, the first exponent, and the first factor, so as to complete the first modular exponentiation operation to determine the first remainder.

6. The RSA decryption processor according to claim 5 , wherein the second modular exponentiation subunit comprises a second modular exponentiation control subunit and a second pulse array circuit unit,

the second pulse array circuit unit is configured to perform a modular multiplication operation; and

the second modular exponentiation control subunit is configured to: call the second pulse array circuit unit at least once to perform a modular multiplication operation according to the second base, the second exponent, and the second factor, so as to complete the second modular exponentiation operation to determine the second remainder.

7. The RSA decryption processor according to claim 6 , wherein

each of the first pulse array circuit unit and the second pulse array circuit unit comprises a predetermined number of multiply-add operation units; and

the modular exponentiation circuit unit receiving the intermediate parameters is further configured to: calculate a ratio of the number of multiply-add operation units in the first pulse array circuit unit to the first factor to obtain a first ratio, calculate a ratio of the number of multiply-add operation units in the second pulse array circuit unit to the second factor to obtain a second ratio, and incorporate at least one multiply-add operation unit in the pulse array circuit unit corresponding to the greater ratio into the pulse array circuit unit corresponding to the smaller ratio, in response to that the first ratio is not equal to the second ratio.

8. A method for controlling an RSA decryption processor, wherein the RSA decryption processor comprises a memory, a preprocessing circuit unit and a parallel processor, the memory is configured to store decryption parameters comprising a private key, and a preset first factor and second factor prime with each other, and the method comprises:

receiving a ciphertext set;

sending a preprocessing signal comprising the ciphertext set to the preprocessing circuit unit, in response to that a ciphertext bit width of the ciphertext set is greater than a predetermined threshold, so that the preprocessing circuit unit reads a decryption parameter from the memory in response to receiving the preprocessing signal, and performs an operation on the decryption parameter and a ciphertext whose bit width is greater than the predetermined threshold in the ciphertext set according to the Chinese remainder theorem, to determine intermediate parameters corresponding to the ciphertext whose bit width is greater than the predetermined threshold, wherein the intermediate parameters comprise a first base, a first exponent, a second base, and a second exponent; sending a decryption signal comprising the ciphertext set to the parallel processor in response to that the ciphertext bit width of the ciphertext set is not greater than the predetermined threshold, so that the parallel processor reads a decryption parameter from the memory in response to receiving the decryption signal, and uses at least one modular exponentiation circuit unit in the parallel processor to perform in parallel a modular exponentiation operation on ciphertexts in the ciphertext set by using the read decryption parameter, to obtain plaintexts corresponding to the ciphertexts;

monitoring the preprocessing circuit unit; and

determining whether a modular exponentiation circuit unit in the parallel processor is idle, in response to detecting that the preprocessing circuit unit completes determining the intermediate parameters corresponding to the ciphertext whose bit width is greater than the predetermined threshold.

9. The method according to claim 8 , further comprising:

sending a first task transfer instruction to the preprocessing circuit unit and the idle modular exponentiation circuit unit, in response to determining that a modular exponentiation circuit unit in the parallel processor is idle, so that the preprocessing circuit unit sends the determined intermediate parameters corresponding to the ciphertext whose bit width is greater than the predetermined threshold to the idle modular exponentiation circuit unit, in response to receiving the first task transfer instruction, and so that the idle modular exponentiation circuit unit receives the intermediate parameters sent from the preprocessing circuit unit in response to receiving the first task transfer instruction, and performs a first modular exponentiation operation on the received first base, first exponent, and first factor and performs a second modular exponentiation operation on the received second base, second exponent, and second factor, to determine a first remainder and a second remainder.

10. The method according to claim 9 , further comprising:

monitoring the modular exponentiation circuit unit in the parallel processor;

determining whether the post-processing circuit unit is idle in response to detecting that a modular exponentiation circuit unit in the parallel processor has determined the first remainder and the second remainder; and

sending a second task transfer instruction to the parallel processor and the post-processing circuit unit in response to determining that the post-processing circuit unit is idle, so that the parallel processor sends the determined first remainder and second remainder, the first factor, and the second factor to the post-processing circuit unit in response to receiving the second task transfer instruction, and so that the post-processing circuit unit performs an operation on the first remainder, the second remainder, the first factor, and the second factor according to the Chinese remainder theorem to determine a plaintext corresponding to the ciphertext whose bit width is greater than the predetermined threshold, in response to receiving the second task transfer instruction, the first remainder, the second remainder, the first factor, and the second factor.

11. A non-transitory storage medium storing one or more programs, the one or more programs when executed by an apparatus, causing the apparatus to perform operations for controlling an RSA decryption processor, wherein the RSA decryption processor comprises a memory, a preprocessing circuit unit and a parallel processor, the memory is configured to store decryption parameters comprising a private key, and a preset first factor and second factor prime with each other, and the operations comprise:

receiving a ciphertext set;

sending a preprocessing signal comprising the ciphertext set to the preprocessing circuit unit, in response to that a ciphertext bit width of the ciphertext set is greater than a predetermined threshold, so that the preprocessing circuit unit reads a decryption parameter from the memory in response to receiving the preprocessing signal, and performs an operation on the decryption parameter and a ciphertext whose bit width is greater than the predetermined threshold in the ciphertext set according to the Chinese remainder theorem, to determine intermediate parameters corresponding to the ciphertext whose bit width is greater than the predetermined threshold, wherein the intermediate parameters comprise a first base, a first exponent, a second base, and a second exponent; sending a decryption signal comprising the ciphertext set to the parallel processor in response to that the ciphertext bit width of the ciphertext set is not greater than the predetermined threshold, so that the parallel processor reads a decryption parameter from the memory in response to receiving the decryption signal, and uses at least one modular exponentiation circuit unit in the parallel processor to perform in parallel a modular exponentiation operation on ciphertexts in the ciphertext set by using the read decryption parameter, to obtain plaintexts corresponding to the ciphertexts;

monitoring the preprocessing circuit unit; and

determining whether a modular exponentiation circuit unit in the parallel processor is idle, in response to detecting that the preprocessing circuit unit completes determining the intermediate parameters corresponding to the ciphertext whose bit width is greater than the predetermined threshold.

12. The non-transitory storage medium according to claim 11 , wherein the operations further comprise:

sending a first task transfer instruction to the preprocessing circuit unit and the idle modular exponentiation circuit unit, in response to determining that a modular exponentiation circuit unit in the parallel processor is idle, so that the preprocessing circuit unit sends the determined intermediate parameters corresponding to the ciphertext whose bit width is greater than the predetermined threshold to the idle modular exponentiation circuit unit, in response to receiving the first task transfer instruction, and so that the idle modular exponentiation circuit unit receives the intermediate parameters sent from the preprocessing circuit unit in response to receiving the first task transfer instruction, and performs a first modular exponentiation operation on the received first base, first exponent, and first factor and performs a second modular exponentiation operation on the received second base, second exponent, and second factor, to determine a first remainder and a second remainder.

13. The non-transitory storage medium according to claim 12 , wherein the operations further comprise:

monitoring the modular exponentiation circuit unit in the parallel processor;

determining whether the post-processing circuit unit is idle in response to detecting that a modular exponentiation circuit unit in the parallel processor has determined the first remainder and the second remainder; and

sending a second task transfer instruction to the parallel processor and the post-processing circuit unit in response to determining that the post-processing circuit unit is idle, so that the parallel processor sends the determined first remainder and second remainder, the first factor, and the second factor to the post-processing circuit unit in response to receiving the second task transfer instruction, and so that the post-processing circuit unit performs an operation on the first remainder, the second remainder, the first factor, and the second factor according to the Chinese remainder theorem to determine a plaintext corresponding to the ciphertext whose bit width is greater than the predetermined threshold, in response to receiving the second task transfer instruction, the first remainder, the second remainder, the first factor, and the second factor.

Assignments (3)
CHANGE OF NAME Recorded Sep 28, 2021
From: XINGYUN RONGCHUANG (BEIJING) TECHNOLOGY CO., LTD.
To: KUNLUNXIN TECHNOLOGY (BEIJING) COMPANY LIMITED
Reel/Frame 057635/0014 →
LICENSE Recorded Sep 28, 2021
From: BAIDU ONLINE NETWORK TECHNOLOGY (BEIJING) CO., LTD.; BEIJING BAIDU NETCOM SCIENCE AND TECHNOLOGY CO., LTD.
To: XINGYUN RONGCHUANG (BEIJING) TECHNOLOGY CO., LTD.
Reel/Frame 057635/0018 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 2, 2019
From: TU, YICHEN; QI, WEI; WANG, YONG
To: BEIJING BAIDU NETCOM SCIENCE AND TECHNOLOGY CO., LTD.
Reel/Frame 049659/0185 →
Priority Claims (1)
CN 2016 1 0936230 · Nov 1, 2016 · national
Continuity (1)
Related Publication 20180123792A1 · May 3, 2018