summaryrefslogtreecommitdiff
path: root/raw-wiki-dump/GitRepositories%2Fuser%2Fjs%2Fkeywrap.md
diff options
context:
space:
mode:
Diffstat (limited to 'raw-wiki-dump/GitRepositories%2Fuser%2Fjs%2Fkeywrap.md')
-rw-r--r--raw-wiki-dump/GitRepositories%2Fuser%2Fjs%2Fkeywrap.md97
1 files changed, 0 insertions, 97 deletions
diff --git a/raw-wiki-dump/GitRepositories%2Fuser%2Fjs%2Fkeywrap.md b/raw-wiki-dump/GitRepositories%2Fuser%2Fjs%2Fkeywrap.md
deleted file mode 100644
index 9cccd22..0000000
--- a/raw-wiki-dump/GitRepositories%2Fuser%2Fjs%2Fkeywrap.md
+++ /dev/null
@@ -1,97 +0,0 @@
-```
-#!htmlcomment
-
-This page is maintained automatically by a script. Don't modify this page by hand,
-your changes will just be overwritten the next time the script runs. Talk to your
-Friendly Neighborhood Repository Maintainer if you need to change something here.
-
-```
-
-```
-#!html
-<h1>keywrap</h1>
-
-<h2>Introduction</h2>
-
-<p>This core implememts AES KEY WRAP as defined in <a href="https://tools.ietf.org/html/rfc3394">RFC
-3394</a> and the keywrap with padding
-according to <a href="https://tools.ietf.org/html/rfc5649">RFC 5694</a></p>
-
-<p>The core supports wrap/unwrap of objects up to 64 kByte in size.
-The core supports 128 and 256 bit wrapping keys.</p>
-
-<h2>Status</h2>
-
-<p>First complete version developed. The core does work.</p>
-
-<p>The core has been simulated with two different simulators and
-linted. The core has been used on the Cryptech Alpha and verified to
-work.</p>
-
-<h2>API</h2>
-
-<p>Objects to be processed are written in word order (MSB words). The
-caller writes the calculated magic value to the A regsisters in word
-order. The caller also needs to write the number of blocks (excluding
-magic block) into the RLEN register. Finally the caller needs to write
-the wrapping key.</p>
-
-<p>Due to address space limitations in the Cryptech cores (with 8-bit
-address space) the object storage is divided into banks [0 .. 127]. Each
-bank supports 128 32-bit words or 4096 bits. For objects lager than 4096
-bits, it is the callers responsibilty to switch banks when reading and
-writing to the storage.</p>
-
-<h2>Implementation details</h2>
-
-<h3>Key Wrap</h3>
-
-<p>The core implements the wrap block processing part of the AES Key Wrap
-as specified in chapter 2.1.1 of RFC 3394:</p>
-
-<p>For j = 0 to 5
- For i=1 to n
- B = AES(K, A | R[i])
- A = MSB(64, B) ^ t where t = (n*j)+i
- R[i] = LSB(64, B)</p>
-
-<p>The core does not perform the calculation of the magic value, which is
-the initial value of A. The core also does not perform padding om the
-message to an even 8 byte block.</p>
-
-<p>This means that SW needs to generate the 64-bit initial value of A and
-perform padding as meeded.</p>
-
-<p>(Similarly, the core implements the unwrap processng as specifie in
-chapter 2.2.2 of RFC 3394.)</p>
-
-<h3>Auto Zeroise</h3>
-
-<p>The core implements an auto zeroise functionality for secret key. This
-means that any loaded wrapping key will automatically be wiped from all
-registers storing key information after a specified timeout. Timeout
-countdown is halted when the core is performing any wrap/unwrap operation,
-and the timeout is reset to its defined start value after an operation
-has been completed.</p>
-
-<p>SW can set the timout value (in cycles), SW can also inspect the key
-status and timeout status. Reading status also triggers a reset of the
-timeout counter. This allows SW to keep a loaded key alive by simply
-checking status. Finally SW can actively trigger a key zeroisation
-operation.</p>
-
-<h2>Implementation results</h2>
-
-<p>The core has been implemented for Xilinx Artix7-t200 using ISE with the
-following results:</p>
-
-<p>Regs: 2906 (1%)
-Slices: 1991 (5%)
-RamB36E: 32 (8%)
-Clock: 100+ MH</p>
-```
-
-[[RepositoryIndex(format=table,glob=user/js/keywrap)]]
-
-| Clone `https://git.cryptech.is/user/js/keywrap.git` |
-|---|