scyther/protocols/misc/ibe.spdl

51 lines
919 B
Plaintext
Raw Normal View History

2006-11-21 13:40:50 +00:00
// 12/05/06
// S. Mauw
// Modeling of Identity Based Encryption primitive.
const pk: Function;
secret sk: Function;
const ibepublic: Function;
secret ibesecret: Function;
const param: Function;
inversekeys (pk,sk);
inversekeys (ibepublic,ibesecret);
protocol ibe(I,R,S)
{
role I
{
const ni: Nonce;
read_1(S,I, param(S) );
send_3(I,R, {ni}ibepublic(param(S),R) );
claim_i1(I,Secret,ni);
}
role R
{
var ni: Nonce;
read_2(S,R, {ibesecret(param(S),R)}pk(R) );
read_3(I,R, {ni}ibepublic(param(S),R) );
claim_r1(R,Secret,ni);
//of course this claim is invalid
}
role S
{
send_1(S,I, param(S) );
send_2(S,R, {ibesecret(param(S),R)}pk(R) );
}
}
const Alice, Bob, Carol, Eve: Agent;
untrusted Eve;
const ne: Nonce;
compromised sk(Eve);
compromised ibesecret(param(Eve),Alice);
compromised ibesecret(param(Eve),Bob);
compromised ibesecret(param(Eve),Carol);