Updating headings on every page
This commit is contained in:
@@ -4,7 +4,7 @@ date: 2022-12-06
|
||||
draft: false
|
||||
---
|
||||
|
||||
# INTRODUCTION
|
||||
## INTRODUCTION
|
||||
|
||||
RSA is a public key cryptosystem, which was named after the creators of
|
||||
the algorithm: Rivest, Shamir, and Adleman [@STALLINGS]. It is widely
|
||||
@@ -55,7 +55,7 @@ decrypting messages. However the same instruction set architecture we
|
||||
propose in this paper can be used for signing and verifying messages
|
||||
with RSA.
|
||||
|
||||
# CHARACTERISTICS OF RSA
|
||||
## CHARACTERISTICS OF RSA
|
||||
|
||||
There are three areas that the RSA can be optimized: finding the
|
||||
encryption and decryption exponent, prime number generation, and
|
||||
@@ -64,7 +64,7 @@ finding the encryption and decrypting exponent, prime number generation,
|
||||
and encrypting and decrypting the message is usually done, without
|
||||
specialized instructions.
|
||||
|
||||
## ENCRYPTION AND DECRYPTION EXPONENT
|
||||
### ENCRYPTION AND DECRYPTION EXPONENT
|
||||
|
||||
The current approach to verifying that the encryption exponent is
|
||||
coprime to the `φ(n)` is by using the Euclidean Algorithm. To find
|
||||
@@ -150,7 +150,7 @@ we will use two instructions that will combine some of the instructions
|
||||
used in the Extended Euclidean Algorithm to reduce the number of stalls
|
||||
within the loop.
|
||||
|
||||
## PRIME NUMBER GENERATION
|
||||
### PRIME NUMBER GENERATION
|
||||
|
||||
The common approach to generating large primes in making encryption and
|
||||
decryption keys is to randomly select integers and test them for
|
||||
@@ -199,7 +199,7 @@ shown below). The instructions to calculate `x^{2} (mod n)` would be
|
||||
executed `s` times. These two factors indicate a heavy reliance on the
|
||||
ability of a system to calculate exponentiation.
|
||||
|
||||
## ENCRYPTION AND DECRYPTION
|
||||
### ENCRYPTION AND DECRYPTION
|
||||
|
||||
One aspect of RSA to improve upon is performing large exponentiation.
|
||||
Currently the implementation of exponentiation is performed by the
|
||||
@@ -222,13 +222,13 @@ to be available. We can lessen the number of stalls using a technique
|
||||
known as exponentiation by squaring. This technique is explained further
|
||||
in the design section.
|
||||
|
||||
# DESIGN
|
||||
## DESIGN
|
||||
|
||||
In this section, we will describe specialized instructions that will be
|
||||
used for prime number generation, computing the encryption and
|
||||
decryption exponent, and encrypting a decrypting a message.
|
||||
|
||||
## ENCRYPTION AND DECRYPTION EXPONENT
|
||||
### ENCRYPTION AND DECRYPTION EXPONENT
|
||||
|
||||
The issue with implementing the Euclidean Algorithm the traditional way
|
||||
is a divide, multiply, and subtract instructions are needed for each
|
||||
@@ -320,7 +320,7 @@ an analysis to the speedup given to the Extended Euclidean Algorithm by
|
||||
using the modular instruction and the multiply-subtract instruction in
|
||||
the justification and analysis section.
|
||||
|
||||
## PRIME NUMBER GENERATION, ENCRYPTION, AND DECRYPTION
|
||||
### PRIME NUMBER GENERATION, ENCRYPTION, AND DECRYPTION
|
||||
|
||||
One issue already discussed in the previous section is that of stalls
|
||||
during large exponents. The way exponentiation is handled causes many
|
||||
@@ -375,12 +375,12 @@ depending on the digit, may use the second accumulator. It will then run
|
||||
through one more multiplier to multiply the squares by the 1's
|
||||
multiplier.
|
||||
|
||||
# JUSTIFICATION AND ANALYSIS
|
||||
## JUSTIFICATION AND ANALYSIS
|
||||
|
||||
In this section, we will describe how our specialized instructions will
|
||||
improve the performance of the RSA encryption.
|
||||
|
||||
## ENCRYPTION AND DECRYPTION EXPONENT
|
||||
### ENCRYPTION AND DECRYPTION EXPONENT
|
||||
|
||||
Using the modular instruction in the Euclidean Algorithm, we can reduce
|
||||
the number of stalls needed. Instead of needing to stall for the result
|
||||
@@ -441,7 +441,7 @@ speedup of 1.23. Also, an advantage to using the modular and
|
||||
multiply-subtract instructions is we reduce the number of temporary
|
||||
registers needed from five to three.
|
||||
|
||||
## PRIME NUMBER GENERATION, ENCRYPTION, AND DECRYPTION
|
||||
### PRIME NUMBER GENERATION, ENCRYPTION, AND DECRYPTION
|
||||
|
||||
Using the pow command we can reduce stalls of large exponents in half.
|
||||
Since the algorithm breaks the exponent into a binary representation of
|
||||
@@ -472,7 +472,7 @@ the following equations to determin the overall speedup:
|
||||
Speedup = 1.25/1.125
|
||||
Speedup = 1.11
|
||||
|
||||
# CONCLUSIONS
|
||||
## CONCLUSIONS
|
||||
|
||||
In analyzing the typical algorithms used as a part of RSA, we have
|
||||
identified two primary bottlenecks in both encryption and decryption:
|
||||
@@ -502,7 +502,7 @@ system with the sole task of encrypting and decrypting messages using
|
||||
RSA, we can create hardware that allows the specialized instructions to
|
||||
have a latency comparable to the traditional instructions.
|
||||
|
||||
# Bibliography
|
||||
## Bibliography
|
||||
|
||||
3 Beauchemin, Pierre, Brassard, Crepeau, Claude, Goutier, Claude, and
|
||||
Pomerance, Carl The Generation of Random Numbers That Are Probably Prime
|
||||
|
||||
Reference in New Issue
Block a user