March 2020 Archives by subject
Starting: Wed Mar 4 22:29:33 UTC 2020
Ending: Wed Mar 25 17:30:12 UTC 2020
Messages: 218
- [Cryptech-Commits] [core/math/modexpng] 01/92: Randomized test vector generation scripts for ModExpNG.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 02/92: Don't track the test vector itself.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 03/92: Instructions on how to use the vector generation scripts.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 04/92: Added blinding support to test vector generation scripts.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 05/92: Updated readme file.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 06/92: ModExpNG ("Next Generation") math model.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 07/92: Added blinding into math model.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 08/92: Mutate blinding tuple.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 09/92: Added optional output of intermediate quantities for debugging. Reworked index rotation code for better readability.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 10/92: Simplified index calculation and accumulator clearing logic. Better debug printout of accumulators.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 11/92: * more debugging output * more precise modelling of DSP slice
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 12/92: Rewrote "square" recombination to match how it works in hardware.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 13/92: Same changes for "triangle" multiplication phase as for the "square" one (debugging output, simpler MAC clearing and index rotation logic).
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 14/92: Cosmetic fixes.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 15/92: Removed some boilerplate code, all the three multiplication flavours are now working consistently. Still need to rework recombination routines.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 16/92: Fixed 4096-bit test vector generation.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 17/92: Intermediate version to fix recombinaton overflow bug.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 18/92: * Added more debugging options: - intentionally trigger internal overflow handler - dump MAC inputs - dump intermediate numbers during the reduction phase
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 19/92: * Started conversion of the model to use micro-operations
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 20/92: * Added more micro-operations
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 21/92: * MASSIVE CLEANUP
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 22/92: * More cleanup (got rid of .wide. and .narrow.)
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 23/92: Moved to "modexpng_fpga_model" repo, this one was meant for Verilog.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 24/92: Started working on the pipelined Montgomery modular multiplier. Currently can do the "square" part of the multiplication, i.e. compute the twice larger intermediate product AB = A * B.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 25/92: Further work on the Montgomery modular multiplier. Can now to the "triangular" part of multiplication, i.e. compute the "magic" reduction coefficient Q = LSB(AB) * N_COEFF.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 26/92: Further work on the Montgomery modular multiplier. Added the third "rectangular" stage of the multiplication process, i.e. computation of how many copies of the modulus N to add to the intermediate product AB to zeroize the lower half: M = Q * N.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 27/92: Implemented the final stage of the Montgomery modular multiplication, i.e. addition of AB and M then reduction by right-shift.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 28/92: Major rewrite (different core hierarchy, buses, wrappers, etc).
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 29/92: Redesigned core architecture, unified bank structure. All storage blocks now have eight 4kbit entries and occupy one 36K BRAM tile.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 30/92: Redesigned storage modules, added top-level module, added I/O storage space.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 31/92: Reworked storage architecture (moved I/O memory to a separate module, since there's only one instance of input/output values, while storage manager has dual storage space for P and Q multipliers).
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 32/92: Expanded micro-operation parameters (added dedicated control bit to force the B input of the modular multiplier to 1, this is necessary to bring numbers out of Montgomery domain).
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 33/92: Added more micro-operations, also added "general worker" module. The worker is basically a block memory data mover, but it can also do some supporting operations required for the Garner's formula part of the exponentiation.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 34/92: Added more micro-operations, entire Montgomery exponentiation ladder works now.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 35/92: Refactored general worker module Added modular subtraction micro-operation
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 36/92: Added "MERGE_LH" micro-operation. To be able to do Garner's formula we need regular (not modular) multiplication. We're doing this by telling the modular multiplier to stop after the "square" step, which computes A*B. The problem is that the multiplier stores the lower part of the product in the internal bank L and the upper part in the internal bank H, but we need to be able to do operations on the product as a whole. MERGE_LH that combines the two halves of the product into one bank.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 37/92: Added the regular (not modular) addition operation required during the final step of the Garner's formula algorithm. Note, that the addition is "uneven" in the sense, that the first operand is full-size (as wide as the modulus), while the second one is only half the size. The adder internally banks the second input port during the second half of the addition.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 38/92: Entire CRT signature algorithm works by now.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 39/92: Redesigned the testbench. Core clock does not necessarily need to be twice faster than the bus clock now. It can be the same, or say four times faster.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 40/92: Added support for non-CRT mode. Further refactoring.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 41/92: Further work: - added core wrapper - fixed module resets across entire core (all the resets are now consistently active-low) - continued refactoring
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 42/92: Reworked testbench, clk_sys and clk_core can now have any ratio, not necessarily 1:2.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 43/92: Fixed all the testbenches to work with the latest RTL sources.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 44/92: Added simulation-only code to measure multiplier load.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 45/92: Fixed port width mismatch warning.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 46/92: Added readme file.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 47/92: Added demo driver code for STM32.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 48/92: Added missing copyright headers.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 49/92: Beautified the README.md, should look somewhat less nasty now.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 50/92: The uOP engine didn't compile at 180 MHz. The pipeline had two stages: FETCH and DECODE. Apparently one clock cycle is not enough to entirely decode an instruction, so decoding now takes two clock cycles (DECODE_1 and DECODE_2). This seems to solve the problem. If we run into more timing violations here, we can add an extra DECODE_3 cycle and register the currently combinatorial uop_opcode_* flags at DECODE_2. This fix increases the core's latency by 59/32 clock cycles (CRT/non-CRT mode) p [...]
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 51/92: Refactored reductor module.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 52/92: Removed the latch accidentally created while pipelining the uOP engine module. The FSM previously had four states encoded using two bits, so the next state logic didn't have a default case, since all the possible states were used. Addition of the fifth state required one more state bit, so the FSM now has five states out eight possible and a default case is thus necessary.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 53/92: Small change to the reductor module to try to get past 180 MHz. Previously BRAM outputs were going directry into a LUT-based ternary adder which was causing timing problems. Added a layer of flip-flops, so instead of BRAM -> LUT -> FF we have BRAM -> FF -> LUT -> FF. This increases core latency by (number_of_supporting_modular_multiplications + number_of_exponent_bits) ticks.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 54/92: Forgot to push minor cosmetic fix.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 55/92: Cosmetic fix.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 56/92: One more cosmetic fix.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 57/92: Had to rework the general worker module to reach 180 MHz core clock. The module is responsible for doing certain supporting operations (mostly moving operands between banks and doing some simple math operations, such as modular subtraction and regular addition). Depending on the particular operation, one of three bank address space sweep patterns was used: * one-pass (for things like carry propagation) * two-pass (for things like modular subtraction that produce intermediate values in [...]
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 58/92: Turns out, fabric addition and subtraction in the general worker module are actually in the critical paths of the ModExpNG core and are plaguing the place and route tools. I was barely able to achieve timing closure at 180 MHz even with the highest Map and PaR effort levels. This means that any further clock frequency increase is effectively impossible, moreover any small change in the design may prevent it from meeting timing constants. The obvious solution is to use DSP slices not only f [...]
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 59/92: Reworked modular subtraction micro-operation. Previously it used "two-pass" bank address space sweep, during the first pass (a-b) and (a-b+n) were computed, during the second pass either the former or the latter quantity was written to the output bank (depending on the very last borrow flag value). This is no longer possible, since the FSM now only generates one "interleaved" address space sweep. The solution is to split one complex modular subtraction operation into simpler sub-operations [...]
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 60/92: This commit modifies the REGULAR_ADD_UNEVEN micro-operation to use DSP slices for addition instead of fabric logic. This opcode is only necessary when in CRT mode and is executed once per entire exponentiation to recombine the two "easier" exponentiations. This was the final change necessary to get rid of using fabric math in the general worker module.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 61/92: * DSP slices now have two use modes: MULT and ADD/SUB * cosmetic rename of Verilog include file
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 62/92: Removed old DSP wrappers.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 63/92: Added two pairs of new wrappers.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 64/92: Cosmetic fix that only involves debug output during simulation.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 65/92: Updated microcode source to match the changes made to general worker module.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 66/92: Updated uOP engine to match the changes made to the general worker module (modular subtraction was split into three micro-operations instead of one).
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 67/92: For the new general worker module to work we need dynamic switching of DSP OPMODE, ALUMODE and CARRYINSEL ports, thus more defined constants.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 68/92: Tiny cosmetic typo fix ("dst" -> "dsp")
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 69/92: Added more meaningful constants to avoid certain hardcoded numbers.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 70/92: Refactored modular reductor module.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 71/92: Renumbered micro-operations.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 72/92: The I/O manager has to work in sync with the general worker module. Made the necessary changes to make it work after the general worker update. Also moved debug simulation-time code into a separate file.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 73/92: Update DSP wrapper instance names.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 74/92: Refactored MMM recombinator module, accomodated the changes in DSP slice wrapper names.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 75/92: Refactored the MMM module, now uses meaningful constant names from the include file, not hardcoded widths.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 76/92: Cosmetic change to easily switch tests on/off.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 77/92: Bump version number.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 78/92: Cosmetic rename of FSM states.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 79/92: * more consistent port names * optional two-stage pipeline for A&B ports
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 80/92: Accomodate the changes to DSP slice wrappers.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 81/92: This commit accomodates the changes made to DSP slice wrappers and also fixes the subtle math overflow bug introduced while switching to DSP-based partial multiplication product recombination.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 82/92: Uniform testbenches.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 83/92: Better handling of debug output (no need to manally adjust word count anymore).
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 84/92: Updated DSP slice wrappers for the new partial product recombination algorithm: - unified clock enable for A:B and C ports - A:B and C ports now always have fixed 1-cycle latency - added new Z multiplexor modes in the generic wrapper
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 85/92: Added new DSP slice OPMODEs for the new recombination algorithm.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 86/92: Adapted to the changes in the DSP slice wrappers.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 87/92: Improved debugging options: * flush console after each ladder iteration for smoother progress output * ability to truncate internal powering ladder loop at desired step (this will only work when using simulation mode, obviously)
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 88/92: New partial product recombination algorithm.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 89/92: Increment version number.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 90/92: More elegant way to do partial product recombination: * take advantage of the cascade paths between DSP slices * decrease latency of operation
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 91/92: Update STM32 demo driver.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] 92/92: Moved modexpng from user/shatov to core/math.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] branch master created (now 465cdf0)
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] branch master updated: Increase NUM_MULTS to 32.
git at cryptech.is
- [Cryptech-Commits] [core/math/modexpng] branch master updated: Sadly, we can't meet timing in a general-purpose HSM design with NUM_MULTS=32, so back it off to 16 by default.
git at cryptech.is
- [Cryptech-Commits] [core/platform/alpha] 01/01: Merge branch 'js_keywrap' to 'master'
git at cryptech.is
- [Cryptech-Commits] [core/platform/alpha] branch master updated (ca80f73 -> b1405d7)
git at cryptech.is
- [Cryptech-Commits] [core/platform/alpha] branch master updated: Prune target list to match projects currently in core.cfg.
git at cryptech.is
- [Cryptech-Commits] [core/platform/common] 01/01: Merge branch 'js_keywrap' to 'master'
git at cryptech.is
- [Cryptech-Commits] [core/platform/common] 01/02: Move modexpng from user/shatov to core/math, promote to default modexp for Alpha board.
git at cryptech.is
- [Cryptech-Commits] [core/platform/common] 02/02: Move keywrap from user/js to core/util, replace aes core in the hsm project.
git at cryptech.is
- [Cryptech-Commits] [core/platform/common] branch master updated (175bbe0 -> 8a43aa6)
git at cryptech.is
- [Cryptech-Commits] [core/platform/common] branch master updated (8a43aa6 -> 275951e)
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 01/95: Adding initial version of repo and design for core implementing aes key wrap.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 02/95: Oops! Removing file that should not have been in the commit.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 03/95: Implemented test design for key wrap memory. To be tested in ISE.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 04/95: Reworked code a bit to match what ISE expects to map to block RAM instances.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 05/95: Increased size of memory to 64 kByte to match what is needed for key wrap. No problems.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 06/95: (1) Added initial version of keywrap_core which will implement the actual wrapping using aes_core and the keywrap_mem. (2) Minor cleanup to the keywrap_mem code.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 07/95: Adding more functionality in the core. Updated Makefile to build and simulate with the AES core. Minor update to header and README. Clarified that it is RFC 5649 we are implementing.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 08/95: Adding initial version of keywrap python model. Adding local copy of aes model.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 09/95: Added a simple test case to verify that the aes model is usable.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 10/95: Adding initial version of top level wrapper for the keywrap core.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 11/95: (1) Adding initial version of top level testbench. (2) Updating Makefile to be able to bild and run top level simulation as well as linting all rtl code.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 12/95: Adding the Python keywrap model from sw/libhal/unit-tests.py to modify as needed to get intermediate values. Removed the aes model taken from the aes core.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 13/95: Minor speling erorr fix.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 14/95: Minor edit.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 15/95: Updated top level wrapper to better match the planned API. Updated core interface. Connected core into the top level wrapper.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 16/95: Interface debugging.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 17/95: A lot of cleanup of interconnections between cores and hierarchy. Fixed a number of nits and bugs. Added address generator for the API.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 18/95: Adding a lot of functionality. Starting to get everthing in place.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 19/95: Fixed magical capitalizations.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 20/95: Adding working keywrap python model by Rob Austein.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 21/95: Removed old keywrap model. We have a new, working model to destroy.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 22/95: Added test vectors from NISTs set of vectors for SP800-38F KWP. Added header with short description and copyright, license used in Cryptech.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 23/95: Starting to add verbose debug print statements to get internal values during processing. This includes breaking up code statements.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 24/95: Changed name in API for A words to clarify their meaning. Corrected case order in API logic.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 25/95: Completed first version of core that should have all functionality needed to do key wrap.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 26/95: Fixed bugs in the API decoding logic.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 27/95: Fixed nits found during linting.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 28/95: Updated status for the core. Getting there.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 29/95: Adding dut to top level testbench. Adding API definitions. Adding tasks to read and write words from and to the dut API.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 30/95: Adding more tasks for tb infrastructure.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 31/95: Connected the keymem dut into the testbench.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 32/95: Connected the dut in the core testbench.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 33/95: Added first tasks to test api write and core read. Everything works as expected.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 34/95: Adding additional test code to verify that core read-modify-write and api rread works correctly.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 35/95: Focusing on a single NIST KWP test case that is non-trivial.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 36/95: Adding a lot of verbose output to get the internal values we need.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 37/95: Added test case with vectors from NIST KWP AE. Test fails. But at least it doesn't hang. Now for some bug hunting.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 38/95: Add support to dump contents of memory to check that data has been written correctly.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 39/95: Debugged a lot of minor errors and added a lot of debug functions. Things are starting to work. As in AES is actually initialized and used.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 40/95: Good news: The core peformcs all AES operations and stops after correct number of operations. Bad news: All values are wrong.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 41/95: Adding more dump outputs. wrap does not yet work, but one can see when things go bad and where the isssues are.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 42/95: Removed the streaming interface in favor of a normal address based interface. A bit more kludgy, esp since we need to use bank switching to be able to provide enough address space. But this removes a possible problem of the streaming address counter running wild.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 43/95: Fixed memory word order. Fixed a number of bugs. First block encrypted correctly. A state is wrong and memory is read too far.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 44/95: Debugged keywrap processing including A update. All AES operations works correctly. Now we just need to stop processing whe we should.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 45/95: We haz keywrap! Time to add more testcases and make them self testing. Oh and implement unwrap.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 46/95: Adding testcase for wrapping 4096 bit data.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 47/95: Adding tool to generate write commands.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 48/95: We use the aes_speed core instead.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 49/95: Removed a few states and a few cycles.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 50/95: Adding wrap test case with 4096 bit plaintext from NIST. Test result matches model.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 51/95: Adding unwrap test case.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 52/95: Adding state and counter functionality to support unwrap. Changed name of define to something more comprehensible.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 53/95: Updated keywrap logic to support unwrap. Split state to handle next start in both wrap and unwrap cases.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 54/95: Fixed minor details in unwrap test case. Enabled unwrap test case.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 55/95: Fixing block counter init bug. Enabling detailed debugging. Fixing minor nits.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 56/95: Adding wait state to allow access from memory to complete. Should be possible to optimize.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 57/95: (1) Fixed dump of core_addr in testbench to actually show the core_addr. Fixed boundaries for the block counter. Now we don't read mem out of bounds.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 58/95: Debugged key unwrap. First testcase for unwerap passed. Added some more debug outputs.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 59/95: Adding test case for 4096 bit unwrap. Testcase passed! We have unwrap.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 60/95: (1) Updated version to reflect status. (2) Minor fix after running sim in ModelSim.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 61/95: Updated README with status and information about the implementation.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 62/95: Added explicit width specification for constant to silence truncation warning.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 63/95: Fix some misleading messages, and enable all tests.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 64/95: Updated the info about max object size supports and number of banks.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 65/95: Adding delay cycle to API regs to match the latency for accessing the blockRAM. Added test case that checks access to the API regs.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 66/95: Adding top level defines for setting size and address bits.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 67/95: Performed Verilog parameter magic to make the design scaleable in terms of capacity. Does not yet work, but at least the linter is fairly happy.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 68/95: Killed the bank switching.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 69/95: We probably want to be able to read data too.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 70/95: Updated testbench to work with the parameterized memory.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 71/95: Updated testbench to handle parameterized core.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 72/95: Updated rtl and tb to support parameterized memory size.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 73/95: Test write to all positions in the mem.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 74/95: Removed r_bank from dump since it no longer exists.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 75/95: Updated testbench to use the new API. Verified that the new API works. No more banks.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 76/95: Adding a huge, self testing test case.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 77/95: Adding API support for key loaded status and key timeout control. Added ports in the core to support key status and timeout. Updated core testbench to match the new interface.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 78/95: Adding untested code to implement timer controlled automatic zeroisation of key loaded into the aes core.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 79/95: Adding a more sane default timeout value.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 80/95: Adding support for SW to keep loaded key alive by reading status. Adding support for SW to trigger zeroisation of a loaded key.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 81/95: Adding test case for auto_zeroise. Can see that a loaded key gets wiped after timeout. Status bits looks fishy though.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 82/95: Zeroisation of wrapper key registers. Adding reset of key_loaded register.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 83/95: Fixed some bugs in auto-zeroise functionality. Now it really zeroises key automatically. It seems to work, but needs a bit more testing.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 84/95: Splitted the auto-zeroise test case into three separate tests.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 85/95: Cleaned up and made auto zeroise test case 1 self-testing:
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 86/95: valid should not be set from reset. There is no valid data.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 87/95: Adding the same API hardening to keywrap as implemented for other cores after the Cryptech audit.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 88/95: Fixed parameterized widths.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 89/95: Adding test case that verifies that SW can keep a key alive by reading status register.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 90/95: Add testcase that verifies forced zeroisation.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 91/95: Adding key timeout output port to allow core to inform the top level wrapper that timeout has occured. Added functionality to zeroise API key registers when timout has happened. Updated all auto_zeroise test cases to check that API key registers are properly zeroised.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 92/95: Debugging keywrap after auto_zeroise. Now the core starts processing as expected.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 93/95: Added non-zero default timeout value in core. This fixes the keywrap problems by not automatically reset the key in the API. Enabled all testcases and disabled excessive debug outputs.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 94/95: Updated README to current status. Added section about the auto zeroise functionality that has been merged. Moved sections around to be in a (hopefully) more pedagogical order.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] 95/95: Move keywrap from user/js to core/util.
git at cryptech.is
- [Cryptech-Commits] [core/util/keywrap] branch master created (now 4333178)
git at cryptech.is
- [Cryptech-Commits] [sw/libhal] 01/04: auto-detect cores
git at cryptech.is
- [Cryptech-Commits] [sw/libhal] 01/04: Merge branch 'modexpng' to 'master'
git at cryptech.is
- [Cryptech-Commits] [sw/libhal] 02/04: fallthrough comments to silence compiler warnings
git at cryptech.is
- [Cryptech-Commits] [sw/libhal] 02/04: Remove init checks from hal_io_[write|read], since initialization is done in stm_init, and the checks add unneccesary delays to critical code paths.
git at cryptech.is
- [Cryptech-Commits] [sw/libhal] 03/04: alloc mkmif core around both reads (status + KEK)
git at cryptech.is
- [Cryptech-Commits] [sw/libhal] 03/04: Merge branch 'js_keywrap' to 'master'
git at cryptech.is
- [Cryptech-Commits] [sw/libhal] 04/04: Take advantage of ModExpNG core's blinding factor mutation.
git at cryptech.is
- [Cryptech-Commits] [sw/libhal] 04/04: trivial cleanup
git at cryptech.is
- [Cryptech-Commits] [sw/libhal] branch master updated (9e6edd6 -> c1ef4b3)
git at cryptech.is
- [Cryptech-Commits] [sw/libhal] branch master updated (c1ef4b3 -> f012c32)
git at cryptech.is
- [Cryptech-Commits] [sw/libhal] branch master updated: Reduce keywrap to 16 core blocks, to match how it's actually built now.
git at cryptech.is
- [Cryptech-Commits] [sw/stm32] 01/02: conditionalize timing tests
git at cryptech.is
- [Cryptech-Commits] [sw/stm32] 01/02: Replace the brutally inefficient fp_to_unsigned_bin with one based on fp_read_unsigned_bin.
git at cryptech.is
- [Cryptech-Commits] [sw/stm32] 02/02: change hal_aes_use_keywrap_core
git at cryptech.is
- [Cryptech-Commits] [sw/stm32] 02/02: Merge branch 'js_keywrap' to 'master'
git at cryptech.is
- [Cryptech-Commits] [sw/stm32] branch master updated (2e735d0 -> 6b2513f)
git at cryptech.is
- [Cryptech-Commits] [sw/stm32] branch master updated (6b2513f -> f09f1b8)
git at cryptech.is
- [Cryptech-Commits] [sw/thirdparty/libtfm] branch master updated: Add sandblast target
git at cryptech.is
- [Cryptech-Commits] [user/sra/build-tools] branch master updated: Python 2 -> 3
git at cryptech.is
Last message date:
Wed Mar 25 17:30:12 UTC 2020
Archived on: Wed Mar 25 17:30:15 UTC 2020
This archive was generated by
Pipermail 0.09 (Mailman edition).