[Cryptech-Commits] [core/math/modexpa7] branch systolic_crt updated: Updated the readme file.

git at cryptech.is git at cryptech.is
Sun Sep 3 21:57:50 UTC 2017


This is an automated email from the git hooks/post-receive script.

meisterpaul1 at yandex.ru pushed a commit to branch systolic_crt
in repository core/math/modexpa7.

The following commit(s) were added to refs/heads/systolic_crt by this push:
     new 2be841c  Updated the readme file.
2be841c is described below

commit 2be841c2288d86f4703b860c6c14d173ca8c052d
Author: Pavel V. Shatov (Meister) <meisterpaul1 at yandex.ru>
AuthorDate: Mon Sep 4 00:57:28 2017 +0300

    Updated the readme file.
---
 README.md | 26 +++++++++++++++++---------
 1 file changed, 17 insertions(+), 9 deletions(-)

diff --git a/README.md b/README.md
index 35532d7..7d6e35c 100644
--- a/README.md
+++ b/README.md
@@ -52,7 +52,7 @@ Register bits:
 [31:2] Don't care, always read as 0  
 [1] "next" control bit  
 [0] "init" control bit  
-The core uses Montgomery modular multiplier, that requires precomputation of modulus-dependent speed-up coefficient. Every time a new modulus is loaded into the core, this coefficient must be precalculated before exponentiation can be started. Changing the "init" bit from 0 to 1 starts precomputation. The core is edge-triggered, this way to start another precomputation the bit must be cleared first and then set to 1 again. The "next" control bit works the same way as the "init" bit, chan [...]
+The core uses Montgomery modular multiplier, that requires precomputation of modulus-dependent speed-up coefficient. Every time a new modulus is loaded into the core, this coefficient must be precalculated before exponentiation can be started. Changing the "init" bit from 0 to 1 starts precomputation. The core is edge-triggered, this way to start another precomputation the bit must be cleared first and then set to 1 again. The "next" control bit works the same way as the "init" bit, chan [...]
 
  * **STATUS**
 Read-only register bits:  
@@ -81,18 +81,26 @@ Length of operand buffer in bits. This read-only parameter returns the length of
 Length of systolic array in bits. This read-only parameter returns the length of internal systolic multiplier array, it allows SYSTOLIC_ARRAY_POWER compile-time setting to be determined at run-time.
 
 
-The second part of the address space contains four operand banks.
+The second part of the address space contains eight operand banks.
 
 Length of each bank (BANK_LENGTH) depends on the largest supported operand width: 0x80 bytes for 1024-bit core (OPERAND_ADDR_WIDTH = 5), 0x100 bytes for 2048-bit core (OPERAND_ADDR_WIDTH = 6), 0x200 bytes for 4096-bit core (OPERAND_ADDR_WIDTH = 7) and so on.
 
-The offset of the second part is 4 * BANK_LENGTH: 0x200 for 1024-bit core, 0x400 for 2048-bit core, 0x800 for 4096-bit core and so on. The core has the following four banks:
+The offset of the second part is 8 * BANK_LENGTH: 0x400 for 1024-bit core, 0x800 for 2048-bit core, 0x1000 for 4096-bit core and so on. The core has the following eight banks:
 
-| Offset          | Register       |
-|-----------------|----------------|
-| 4 * BANK_LENGTH | MODULUS        |
-| 5 * BANK_LENGTH | MESSAGE (BASE) |
-| 6 * BANK_LENGTH | EXPONENT       |
-| 7 * BANK_LENGTH | RESULT         |
+| Offset           | Bank                  |
+|------------------|-----------------------|
+|  8 * BANK_LENGTH | MODULUS               |
+|  9 * BANK_LENGTH | MESSAGE (BASE)        |
+| 10 * BANK_LENGTH | EXPONENT              |
+| 11 * BANK_LENGTH | RESULT                |
+| 12 * BANK_LENGTH | MODULUS_COEFF_OUT     |
+| 13 * BANK_LENGTH | MODULUS_COEFF_IN      |
+| 14 * BANK_LENGTH | MONTGOMERY_FACTOR_OUT |
+| 15 * BANK_LENGTH | MONTGOMERY_FACTOR_IN  |
+
+MODULUS, MESSAGE and EXPONENT banks are read-write, the RESULT bank stores the result of the exponentiation and is read-only.
+
+After precomputation the modulus-dependent speed-up coefficient and the Montgomery factor are placed in "output" MODULUS_COEFF_OUT and MONTGOMERY_FACTOR_OUT banks, the two banks are read-only. Before exponentiation corresponding modulus-dependent coefficient and Montgomery factor must be placed in "input" MODULUS_COEFF_IN and MONTGOMERY_FACTOR_IN banks, they are read-write. This split input/output banks design allows precomputed quantities to be retrieved from the core and stored along w [...]
 
 ## Implementation Details
 

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Commits mailing list