]> git.siccegge.de Git - software/DIPE.git/blobdiff - doc/source/notes.rst
Update documentation
[software/DIPE.git] / doc / source / notes.rst
index 7397dcb3f203bc50c86a38652e4a7c96fb1a501f..bf83ecbca5a5dcecb699dcf509d2f2072aa622e5 100644 (file)
@@ -1,7 +1,25 @@
+Implementation Notes
+====================
+
 Selection of Curves
-===================
+-------------------
 
 Note that the ciphertext contains elements in $G_1$ as well as $G_t$
 and therefore we need to be able to serialize them in a way that is
 (computationally) indistinguishable from random. As per Shermans
 comment and reference to https://ia.cr/2015/247
+
+Key derivation
+--------------
+
+We're using `HKDF <https://ia.cr/2010/264>`_ to extract the AES key
+and iv from the $G_t$ element.
+
+Encryption Mode
+---------------
+
+Ciphertext is `AES128` in `GCM` mode with 12 bit IV and 16 bit
+tag. The ciphertext-format is as follows::
+
+  compress(s) | compress(cx) | c
+  enc(4 byte len(ptxt) | ptxt | 0 padding) | tag