SLIDE 32 Processes for password-based signature
A − → B :
A(u, p, n, t, b) = let k = hash(hp, hn, tii) in let si = elem(SignedInfo(), · · · elem(DigestValue(), nil, cons(base64(hash(b)), nil))) in let sv = hmac(utf8(si))k in let ut = elem(UsernameToken(), nil, cons(elem(Username(), nil, cons(u, nil)), cons(elem(Nonce(), nil, cons(base64(n), nil)), cons(elem(Created(), nil, cons(t, nil)), nil)))) let sig = elem(Signature(), nil, cons(si, cons(elem(SignatureValue, nil, cons(base64(sv), nil)), . . .))) in
- ut(net, elem(Envelope(), nil,
cons(elem(Header(), nil, cons(ut, cons(sig, . . .))), cons(b, nil)))).0
Karthikeyan Bhargavan (INRIA) Security proofs in the symbolic model September 2013 16 / 30