Browse Source

Add definitions for key agreement schemes.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
zips27.reorganisation.1
Daira Hopwood 8 years ago
parent
commit
e9d69b242b
  1. 24
      protocol/protocol.tex

24
protocol/protocol.tex

@ -194,8 +194,12 @@
\newcommand{\zkSNARKs}{\term{zk-SNARKs}}
\newcommand{\memo}{\term{memo field}}
\newcommand{\Memos}{\titleterm{Memo Fields}}
\newcommand{\keyAgreementScheme}{\term{key agreement scheme}}
\newcommand{\KeyAgreementScheme}{\titleterm{Key Agreement Scheme}}
\newcommand{\keyDerivationFunction}{\term{Key Derivation Function}}
\newcommand{\KeyDerivationFunction}{\titleterm{Key Derivation Function}}
\newcommand{\symmetricEncryptionScheme}{\term{symmetric authenticated encryption scheme}}
\newcommand{\SymmetricEncryptionScheme}{\titleterm{Symmetric Authenticated Encryption Scheme}}
\newcommand{\pseudoRandomFunction}{\term{Pseudo Random Function}}
\newcommand{\pseudoRandomFunctions}{\term{Pseudo Random Functions}}
\newcommand{\PseudoRandomFunctions}{\titleterm{Pseudo Random Functions}}
@ -289,6 +293,11 @@
\newcommand{\KDF}{\mathsf{KDF}}
\newcommand{\kdftag}{\mathsf{kdftag}}
\newcommand{\kdfinput}{\mathsf{kdfinput}}
\newcommand{\AsymPublic}{\mathsf{AsymPublic}}
\newcommand{\AsymPrivate}{\mathsf{AsymPrivate}}
\newcommand{\AsymSharedSecret}{\mathsf{AsymSharedSecret}}
\newcommand{\KeyAgreementGen}{\mathsf{KeyAgreementGen}}
\newcommand{\KeyAgreement}{\mathsf{KeyAgreement}}
\newcommand{\SymEncrypt}[1]{\mathsf{SymEncrypt}_{#1}}
\newcommand{\SymDecrypt}[1]{\mathsf{SymDecrypt}_{#1}}
\newcommand{\SymSpecific}{\mathsf{AEAD\_CHACHA20\_POLY1305}}
@ -735,15 +744,18 @@ and $\SymEncrypt{\Key}(P) \neq C$.
%an encryption algorithm $\AuthEncEncrypt \typecolon \Nonce \times ...$,
%and a decryption algorithm $\AuthEncDecrypt$.
\nsubsubsection{Key Agreement Scheme}
\nsubsubsection{\KeyAgreementScheme}
\todo{abstract functionality of Curve25519}
A \keyAgreementScheme is a cryptographic protocol in which two parties agree
a shared secret, each using their private key and the other party's public key.
Such a scheme defines a type of public keys $\AsymPublic$, a type of private
keys $\AsymPrivate$, and a type of shared secrets $\AsymSharedSecret$.
\nsubsubsection{\KeyDerivationFunction}
Let $\KeyAgreementGen \typecolon () \rightarrow \AsymPublic \times \AsymPrivate$
be a randomized algorithm generating a (public, private) key pair.
$\KDF \typecolon \setofNew \times GeneralCRHOutput \times AsymPrivate \times AsymPublic \times AsymPublic
\rightarrow \Keyspace$ is a \keyDerivationFunction, suitable for use
with ... and deriving keys for $\SymEncrypt{}$.
Let $\KeyAgreement \typecolon \AsymPrivate \times \AsymPublic \rightarrow \AsymSharedSecret$
be the agreement function.
\nsubsection{\JoinSplitTransfers{} and Descriptions} \label{pourdesc}

Loading…
Cancel
Save