tamarin Built-in message theories
we write f/n to denote that the function symbol f is n-ary.
- hashing: This theory models a hash function.
It defines the function symbol h/1 and no equations. - asymmetric-encryption: This theory models a public key encryption scheme.
It defines the function symbols aenc/2, adec/2, and pk/1, which are related by the equation
[adec(aenc(m, pk(sk)), sk) = m. ] Note that as described in Syntax Description, aenc{x,y}pkB is syntactic sugar for aenc(⟨x,y⟩,pkB). - signing: This theory models a signature scheme.
It defines the function symbols sign/2, verify/3, pk/1, and true, which are related by the equation: verify(sign(m,sk),m,pk(sk))=true. - revealing-signing: This theory models a message-revealing signature scheme.
It defines the function symbols revealSign/2, revealVerify/3, getMessage/1, pk/1, and true, which are related by the equations: revealVerify(revealSign(m,sk),m,pk(sk))=true and getMessage(revealSign(m,sk))=m. - symmetric-encryption: This theory models a symmetric encryption scheme.
It defines the function symbols senc/2 and sdec/2, which are related by the equation: sdec(senc(m,k),k)=m. - diffie-hellman: This theory models Diffie-Hellman groups.
It defines the function symbols inv/1, 1/0, and the symbols ^ and ∗. We use g^a to denote exponentiation in the group and ∗, inv and 1 to model the (multiplicative) abelian group of exponents (the integers modulo the group order). The set of defined equations is:
(x^y)^z=x^(y∗z);x^1=x;x∗y=y∗x;(x∗y)∗z=x∗(y∗z);x∗1=x;x∗inv(x)=1. - xor: This theory models the exclusive-or operation.
It adds the function symbols ⊕/2(also written as XOR/2) and zero/0. ⊕ is associative and commutative and satisfies the cancellation equations:
x⊕y=y⊕x;(x⊕y)⊕z=x⊕(y⊕z);x⊕zero=x;x⊕x=zero - multiset: This theory introduces the associative-commutative operator + which is usually used to model multisets.
Reserved function symbol names
Due to their use in built-in message theories, the following function names cannot be user-defined: mun,one,exp,mult,inv,pmult,em.
If a theory contains any of these as user-defined function symbol the parser will reject the file, stating which reserved name was redeclared.