aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorJoachim StroĢˆmbergson <joachim@secworks.se>2015-03-13 10:25:32 +0100
committerJoachim StroĢˆmbergson <joachim@secworks.se>2015-03-13 10:25:32 +0100
commitfec98c9623f915b0e01cc7e7fa95a8cdfbf8cfb8 (patch)
tree54cd498a139afcb59d5c5ae8237c25cb75d9e601 /README.md
Adding license and initial readme for the modexp core. Provides at least a high level intro to the core and current status.
Diffstat (limited to 'README.md')
-rw-r--r--README.md49
1 files changed, 49 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..e6f44a9
--- /dev/null
+++ b/README.md
@@ -0,0 +1,49 @@
+modexp
+======
+
+Modular exponentiation core for implementing public key algorithms such
+as RSA, DH, ElGamal etc.
+
+The core calculates the following functions:
+
+ C = M ** e mod N
+ M = C ** d mod N
+
+ d is the private key exponent.
+ M is a message with a length of n bits
+ e is the exponent with a length of at most 32 bits
+ N is the modulus with a length of n bits
+ n is can be 32 and up to and including 8192 bits in steps
+ of 32 bits.
+
+The core has a 32-bit memory like interface.
+
+The core is written in Verilog 2001 and suitable for implementation in
+FPGA and ASIC devices. No vendor specific macros are used in the code.
+
+
+## Implementation details ##
+
+The core is using Montgomery multiplication with 32-bit operands. The
+core is iterative and will not be the fastest core on the
+planet.
+
+The core will perform blinding to protect against side channel
+attacks.
+
+
+## FPGA-results ##
+
+No results yet.
+
+
+## Status ##
+
+***(2015-03-13)***
+
+A working, bit exact C model with test cases has been developed and is
+used to drive the HW development. There is also a Java functional model
+available as support for high level undertanding.
+
+Development of the Montgomery product module started. Top level modexp
+module with memories for all operands are being worked on.