Cleanup and restructuring of testing directory setup.

This commit is contained in:
Cas Cremers
2012-11-15 16:47:08 +01:00
parent 1860527960
commit 51495be80d
105 changed files with 1 additions and 1 deletions

View File

@@ -0,0 +1,41 @@
/*
* Needham-Schroeder protocol
*/
// The protocol description
protocol ns3(I,R)
{
role I
{
fresh ni: Nonce;
var nr: Nonce;
send_1(I,R, {I,ni}pk(R) );
recv_2(R,I, {ni,nr}pk(I) );
send_3(I,R, {nr}pk(R) );
claim_i1(I,Secret,ni);
claim_i2(I,Secret,nr);
claim_i3(I,Niagree);
claim_i4(I,Nisynch);
}
role R
{
var ni: Nonce;
fresh nr: Nonce;
recv_1(I,R, {I,ni}pk(R) );
send_2(R,I, {ni,nr}pk(I) );
recv_3(I,R, {nr}pk(R) );
claim_r1(R,Secret,ni);
claim_r2(R,Secret,nr);
claim_r3(R,Niagree);
claim_r4(R,Nisynch);
}
}

View File

@@ -0,0 +1,40 @@
/*
* Needham-Schroeder-Lowe protocol,
* broken version (wrong role name in first message)
*/
// The protocol description
protocol nsl3-broken(I,R)
{
role I
{
fresh ni: Nonce;
var nr: Nonce;
send_1(I,R, {R,ni}pk(R) );
recv_2(R,I, {ni,nr,R}pk(I) );
send_3(I,R, {nr}pk(R) );
claim_i1(I,Secret,ni);
claim_i2(I,Secret,nr);
claim_i3(I,Niagree);
claim_i4(I,Nisynch);
}
role R
{
var ni: Nonce;
fresh nr: Nonce;
recv_1(I,R, {R,ni}pk(R) );
send_2(R,I, {ni,nr,R}pk(I) );
recv_3(I,R, {nr}pk(R) );
claim_r1(R,Secret,ni);
claim_r2(R,Secret,nr);
claim_r3(R,Niagree);
claim_r4(R,Nisynch);
}
}

View File

@@ -0,0 +1,78 @@
/*
* Needham-Schroeder-Lowe protocol,
* broken version (wrong role name in first message)
*/
// The protocol description
protocol nsl3-broken(I,R)
{
role I
{
fresh ni: Nonce;
var nr: Nonce;
send_1(I,R, {R,ni}pk(R) );
recv_2(R,I, {ni,nr,R}pk(I) );
send_3(I,R, {nr}pk(R) );
claim_i1(I,Secret,ni);
claim_i2(I,Secret,nr);
claim_i3(I,Niagree);
claim_i4(I,Nisynch);
}
role R
{
var ni: Nonce;
fresh nr: Nonce;
recv_1(I,R, {R,ni}pk(R) );
send_2(R,I, {ni,nr,R}pk(I) );
recv_3(I,R, {nr}pk(R) );
claim_r1(R,Secret,ni);
claim_r2(R,Secret,nr);
claim_r3(R,Niagree);
claim_r4(R,Nisynch);
}
}
/*
* Needham-Schroeder-Lowe protocol
*/
// The protocol description
protocol nsl3(I,R)
{
role I
{
fresh ni: Nonce;
var nr: Nonce;
send_1(I,R, {I,ni}pk(R) );
recv_2(R,I, {ni,nr,R}pk(I) );
send_3(I,R, {nr}pk(R) );
claim_i1(I,Secret,ni);
claim_i2(I,Secret,nr);
claim_i3(I,Niagree);
claim_i4(I,Nisynch);
}
role R
{
var ni: Nonce;
fresh nr: Nonce;
recv_1(I,R, {I,ni}pk(R) );
send_2(R,I, {ni,nr,R}pk(I) );
recv_3(I,R, {nr}pk(R) );
claim_r1(R,Secret,ni);
claim_r2(R,Secret,nr);
claim_r3(R,Niagree);
claim_r4(R,Nisynch);
}
}

View File

@@ -0,0 +1,38 @@
/*
* Needham-Schroeder-Lowe protocol
*/
// The protocol description
protocol nsl3(I,R)
{
role I
{
fresh ni: Nonce;
var nr: Nonce;
send_1(I,R, {I,ni}pk(R) );
recv_2(R,I, {ni,nr,R}pk(I) );
send_3(I,R, {nr}pk(R) );
claim_i1(I,Secret,ni);
claim_i2(I,Secret,nr);
claim_i3(I,Niagree);
claim_i4(I,Nisynch);
}
role R
{
var ni: Nonce;
fresh nr: Nonce;
recv_1(I,R, {I,ni}pk(R) );
send_2(R,I, {ni,nr,R}pk(I) );
recv_3(I,R, {nr}pk(R) );
claim_r1(R,Secret,ni);
claim_r2(R,Secret,nr);
claim_r3(R,Niagree);
claim_r4(R,Nisynch);
}
}

View File

@@ -0,0 +1,776 @@
Slave1:multiparty% ./test-heuristics.py
Starting with [11, 15]
Testing using P 3 and 5 runs.
Testing protocol 11.
Heuristic 0:
./multinsl-generator.py 3 11 | scyther -a -r5 -m2 --summary --goal-select=0 --timer=20
states 7488
attack NoClaim
time 2.007e+01
st/sec 3.731e+02
claim mnsl3v11 R2V Nisynch_R2b found: 0 correct: does_not_occur
claim mnsl3v11 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v11 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v11 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 1:
./multinsl-generator.py 3 11 | scyther -a -r5 -m2 --summary --goal-select=1 --timer=20
states 3869
attack NoClaim
time 2.004e+01
st/sec 1.931e+02
claim mnsl3v11 R2V Nisynch_R2b found: 0 correct: does_not_occur
claim mnsl3v11 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v11 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v11 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 2:
./multinsl-generator.py 3 11 | scyther -a -r5 -m2 --summary --goal-select=2 --timer=20
states 6543
attack NoClaim
time 2.006e+01
st/sec 3.262e+02
claim mnsl3v11 R2V Nisynch_R2b found: 0 correct: does_not_occur
claim mnsl3v11 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v11 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v11 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 3:
./multinsl-generator.py 3 11 | scyther -a -r5 -m2 --summary --goal-select=3 --timer=20
states 9003
attack NoClaim
time 2.005e+01
st/sec 4.490e+02
claim mnsl3v11 R2V Nisynch_R2b found: 1 correct: bounded_proof
claim mnsl3v11 R2V Secret_R2a found: 1 correct: bounded_proof
claim mnsl3v11 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v11 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v11 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 4:
./multinsl-generator.py 3 11 | scyther -a -r5 -m2 --summary --goal-select=4 --timer=20
states 6375
attack NoClaim
time 2.008e+01
st/sec 3.175e+02
claim mnsl3v11 R2V Nisynch_R2b found: 0 correct: does_not_occur
claim mnsl3v11 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v11 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v11 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 5:
./multinsl-generator.py 3 11 | scyther -a -r5 -m2 --summary --goal-select=5 --timer=20
states 4282
attack NoClaim
time 2.007e+01
st/sec 2.134e+02
claim mnsl3v11 R2V Nisynch_R2b found: 4 correct: bounded_proof time=20
claim mnsl3v11 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v11 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v11 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 6:
./multinsl-generator.py 3 11 | scyther -a -r5 -m2 --summary --goal-select=6 --timer=20
states 6791
attack NoClaim
time 2.002e+01
st/sec 3.392e+02
claim mnsl3v11 R2V Nisynch_R2b found: 0 correct: does_not_occur
claim mnsl3v11 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v11 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v11 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 7:
./multinsl-generator.py 3 11 | scyther -a -r5 -m2 --summary --goal-select=7 --timer=20
states 8115
attack NoClaim
time 2.004e+01
st/sec 4.049e+02
claim mnsl3v11 R2V Nisynch_R2b found: 14 correct: bounded_proof time=20
claim mnsl3v11 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v11 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v11 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 8:
./multinsl-generator.py 3 11 | scyther -a -r5 -m2 --summary --goal-select=8 --timer=20
states 9649
attack NoClaim
time 2.003e+01
st/sec 4.817e+02
claim mnsl3v11 R2V Nisynch_R2b found: 0 correct: does_not_occur
claim mnsl3v11 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v11 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v11 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 9:
./multinsl-generator.py 3 11 | scyther -a -r5 -m2 --summary --goal-select=9 --timer=20
states 3873
attack NoClaim
time 2.005e+01
st/sec 1.932e+02
claim mnsl3v11 R2V Nisynch_R2b found: 0 correct: does_not_occur
claim mnsl3v11 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v11 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v11 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 10:
./multinsl-generator.py 3 11 | scyther -a -r5 -m2 --summary --goal-select=10 --timer=20
states 11954
attack NoClaim
time 2.007e+01
st/sec 5.956e+02
claim mnsl3v11 R2V Nisynch_R2b found: 0 correct: does_not_occur
claim mnsl3v11 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v11 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v11 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 11:
./multinsl-generator.py 3 11 | scyther -a -r5 -m2 --summary --goal-select=11 --timer=20
states 7367
attack NoClaim
time 2.003e+01
st/sec 3.678e+02
claim mnsl3v11 R2V Nisynch_R2b found: 1 correct: bounded_proof time=20
claim mnsl3v11 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v11 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v11 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 12:
./multinsl-generator.py 3 11 | scyther -a -r5 -m2 --summary --goal-select=12 --timer=20
states 6271
attack NoClaim
time 2.005e+01
st/sec 3.128e+02
claim mnsl3v11 R2V Nisynch_R2b found: 0 correct: does_not_occur
claim mnsl3v11 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v11 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v11 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 13:
./multinsl-generator.py 3 11 | scyther -a -r5 -m2 --summary --goal-select=13 --timer=20
states 4729
attack NoClaim
time 2.006e+01
st/sec 2.357e+02
claim mnsl3v11 R2V Nisynch_R2b found: 0 correct: does_not_occur
claim mnsl3v11 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v11 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v11 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 14:
./multinsl-generator.py 3 11 | scyther -a -r5 -m2 --summary --goal-select=14 --timer=20
states 7566
attack NoClaim
time 2.002e+01
st/sec 3.779e+02
claim mnsl3v11 R2V Nisynch_R2b found: 0 correct: does_not_occur
claim mnsl3v11 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v11 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v11 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 15:
./multinsl-generator.py 3 11 | scyther -a -r5 -m2 --summary --goal-select=15 --timer=20
states 8496
attack NoClaim
time 2.005e+01
st/sec 4.237e+02
claim mnsl3v11 R2V Nisynch_R2b found: 0 correct: does_not_occur
claim mnsl3v11 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v11 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v11 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 16:
./multinsl-generator.py 3 11 | scyther -a -r5 -m2 --summary --goal-select=16 --timer=20
states 7453
attack NoClaim
time 2.003e+01
st/sec 3.721e+02
claim mnsl3v11 R2V Nisynch_R2b found: 0 correct: does_not_occur
claim mnsl3v11 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v11 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v11 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 17:
./multinsl-generator.py 3 11 | scyther -a -r5 -m2 --summary --goal-select=17 --timer=20
states 3888
attack NoClaim
time 2.004e+01
st/sec 1.940e+02
claim mnsl3v11 R2V Nisynch_R2b found: 0 correct: does_not_occur
claim mnsl3v11 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v11 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v11 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 18:
./multinsl-generator.py 3 11 | scyther -a -r5 -m2 --summary --goal-select=18 --timer=20
states 6582
attack NoClaim
time 2.003e+01
st/sec 3.286e+02
claim mnsl3v11 R2V Nisynch_R2b found: 0 correct: does_not_occur
claim mnsl3v11 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v11 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v11 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 19:
./multinsl-generator.py 3 11 | scyther -a -r5 -m2 --summary --goal-select=19 --timer=20
states 9022
attack NoClaim
time 2.001e+01
st/sec 4.509e+02
claim mnsl3v11 R2V Nisynch_R2b found: 1 correct: bounded_proof
claim mnsl3v11 R2V Secret_R2a found: 1 correct: bounded_proof
claim mnsl3v11 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v11 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v11 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 20:
./multinsl-generator.py 3 11 | scyther -a -r5 -m2 --summary --goal-select=20 --timer=20
states 6393
attack NoClaim
time 2.003e+01
st/sec 3.192e+02
claim mnsl3v11 R2V Nisynch_R2b found: 0 correct: does_not_occur
claim mnsl3v11 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v11 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v11 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 21:
./multinsl-generator.py 3 11 | scyther -a -r5 -m2 --summary --goal-select=21 --timer=20
states 4284
attack NoClaim
time 2.002e+01
st/sec 2.140e+02
claim mnsl3v11 R2V Nisynch_R2b found: 4 correct: bounded_proof time=20
claim mnsl3v11 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v11 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v11 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 22:
./multinsl-generator.py 3 11 | scyther -a -r5 -m2 --summary --goal-select=22 --timer=20
states 6769
attack NoClaim
time 2.001e+01
st/sec 3.383e+02
claim mnsl3v11 R2V Nisynch_R2b found: 0 correct: does_not_occur
claim mnsl3v11 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v11 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v11 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 23:
./multinsl-generator.py 3 11 | scyther -a -r5 -m2 --summary --goal-select=23 --timer=20
states 8175
attack NoClaim
time 2.002e+01
st/sec 4.083e+02
claim mnsl3v11 R2V Nisynch_R2b found: 14 correct: bounded_proof time=20
claim mnsl3v11 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v11 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v11 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 24:
./multinsl-generator.py 3 11 | scyther -a -r5 -m2 --summary --goal-select=24 --timer=20
states 9625
attack NoClaim
time 2.003e+01
st/sec 4.805e+02
claim mnsl3v11 R2V Nisynch_R2b found: 0 correct: does_not_occur
claim mnsl3v11 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v11 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v11 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 25:
./multinsl-generator.py 3 11 | scyther -a -r5 -m2 --summary --goal-select=25 --timer=20
states 3883
attack NoClaim
time 2.002e+01
st/sec 1.940e+02
claim mnsl3v11 R2V Nisynch_R2b found: 0 correct: does_not_occur
claim mnsl3v11 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v11 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v11 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 26:
./multinsl-generator.py 3 11 | scyther -a -r5 -m2 --summary --goal-select=26 --timer=20
states 11992
attack NoClaim
time 2.004e+01
st/sec 5.984e+02
claim mnsl3v11 R2V Nisynch_R2b found: 0 correct: does_not_occur
claim mnsl3v11 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v11 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v11 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 27:
./multinsl-generator.py 3 11 | scyther -a -r5 -m2 --summary --goal-select=27 --timer=20
states 7361
attack NoClaim
time 2.004e+01
st/sec 3.673e+02
claim mnsl3v11 R2V Nisynch_R2b found: 1 correct: bounded_proof time=20
claim mnsl3v11 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v11 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v11 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 28:
./multinsl-generator.py 3 11 | scyther -a -r5 -m2 --summary --goal-select=28 --timer=20
states 6277
attack NoClaim
time 2.004e+01
st/sec 3.132e+02
claim mnsl3v11 R2V Nisynch_R2b found: 0 correct: does_not_occur
claim mnsl3v11 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v11 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v11 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 29:
./multinsl-generator.py 3 11 | scyther -a -r5 -m2 --summary --goal-select=29 --timer=20
states 4728
attack NoClaim
time 2.005e+01
st/sec 2.358e+02
claim mnsl3v11 R2V Nisynch_R2b found: 0 correct: does_not_occur
claim mnsl3v11 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v11 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v11 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 30:
./multinsl-generator.py 3 11 | scyther -a -r5 -m2 --summary --goal-select=30 --timer=20
states 7610
attack NoClaim
time 2.004e+01
st/sec 3.797e+02
claim mnsl3v11 R2V Nisynch_R2b found: 0 correct: does_not_occur
claim mnsl3v11 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v11 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v11 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 31:
./multinsl-generator.py 3 11 | scyther -a -r5 -m2 --summary --goal-select=31 --timer=20
states 8506
attack NoClaim
time 2.003e+01
st/sec 4.247e+02
claim mnsl3v11 R2V Nisynch_R2b found: 0 correct: does_not_occur
claim mnsl3v11 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v11 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v11 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v11 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Testing protocol 15.
Heuristic 0:
./multinsl-generator.py 3 15 | scyther -a -r5 -m2 --summary --goal-select=0 --timer=20
states 7499
attack NoClaim
time 2.003e+01
st/sec 3.744e+02
claim mnsl3v15 R2V Nisynch_R2b found: 0 correct: does_not_occur
claim mnsl3v15 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v15 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v15 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 1:
./multinsl-generator.py 3 15 | scyther -a -r5 -m2 --summary --goal-select=1 --timer=20
states 3866
attack NoClaim
time 2.004e+01
st/sec 1.929e+02
claim mnsl3v15 R2V Nisynch_R2b found: 0 correct: does_not_occur
claim mnsl3v15 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v15 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v15 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 2:
./multinsl-generator.py 3 15 | scyther -a -r5 -m2 --summary --goal-select=2 --timer=20
states 6558
attack NoClaim
time 2.003e+01
st/sec 3.274e+02
claim mnsl3v15 R2V Nisynch_R2b found: 0 correct: does_not_occur
claim mnsl3v15 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v15 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v15 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 3:
./multinsl-generator.py 3 15 | scyther -a -r5 -m2 --summary --goal-select=3 --timer=20
states 8933
attack NoClaim
time 2.002e+01
st/sec 4.462e+02
claim mnsl3v15 R2V Nisynch_R2b found: 1 correct: bounded_proof
claim mnsl3v15 R2V Secret_R2a found: 1 correct: bounded_proof
claim mnsl3v15 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v15 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v15 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 4:
./multinsl-generator.py 3 15 | scyther -a -r5 -m2 --summary --goal-select=4 --timer=20
states 6354
attack NoClaim
time 2.002e+01
st/sec 3.174e+02
claim mnsl3v15 R2V Nisynch_R2b found: 0 correct: does_not_occur
claim mnsl3v15 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v15 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v15 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 5:
./multinsl-generator.py 3 15 | scyther -a -r5 -m2 --summary --goal-select=5 --timer=20
states 4278
attack NoClaim
time 2.004e+01
st/sec 2.135e+02
claim mnsl3v15 R2V Nisynch_R2b found: 4 correct: bounded_proof time=20
claim mnsl3v15 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v15 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v15 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 6:
./multinsl-generator.py 3 15 | scyther -a -r5 -m2 --summary --goal-select=6 --timer=20
states 6749
attack NoClaim
time 2.002e+01
st/sec 3.371e+02
claim mnsl3v15 R2V Nisynch_R2b found: 0 correct: does_not_occur
claim mnsl3v15 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v15 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v15 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 7:
./multinsl-generator.py 3 15 | scyther -a -r5 -m2 --summary --goal-select=7 --timer=20
states 8166
attack NoClaim
time 2.003e+01
st/sec 4.077e+02
claim mnsl3v15 R2V Nisynch_R2b found: 14 correct: bounded_proof time=20
claim mnsl3v15 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v15 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v15 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 8:
./multinsl-generator.py 3 15 | scyther -a -r5 -m2 --summary --goal-select=8 --timer=20
states 9805
attack NoClaim
time 2.006e+01
st/sec 4.888e+02
claim mnsl3v15 R2V Nisynch_R2b found: 0 correct: does_not_occur
claim mnsl3v15 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v15 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v15 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 9:
./multinsl-generator.py 3 15 | scyther -a -r5 -m2 --summary --goal-select=9 --timer=20
states 3873
attack NoClaim
time 2.004e+01
st/sec 1.933e+02
claim mnsl3v15 R2V Nisynch_R2b found: 0 correct: does_not_occur
claim mnsl3v15 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v15 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v15 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 10:
./multinsl-generator.py 3 15 | scyther -a -r5 -m2 --summary --goal-select=10 --timer=20
states 10729
attack NoClaim
time 2.006e+01
st/sec 5.348e+02
claim mnsl3v15 R2V Nisynch_R2b found: 0 correct: does_not_occur
claim mnsl3v15 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v15 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v15 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 11:
./multinsl-generator.py 3 15 | scyther -a -r5 -m2 --summary --goal-select=11 --timer=20
states 6679
attack NoClaim
time 2.005e+01
st/sec 3.331e+02
claim mnsl3v15 R2V Nisynch_R2b found: 1 correct: bounded_proof time=20
claim mnsl3v15 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v15 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v15 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 12:
./multinsl-generator.py 3 15 | scyther -a -r5 -m2 --summary --goal-select=12 --timer=20
states 6119
attack NoClaim
time 2.005e+01
st/sec 3.052e+02
claim mnsl3v15 R2V Nisynch_R2b found: 0 correct: does_not_occur
claim mnsl3v15 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v15 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v15 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 13:
./multinsl-generator.py 3 15 | scyther -a -r5 -m2 --summary --goal-select=13 --timer=20
states 3513
attack NoClaim
time 2.009e+01
st/sec 1.749e+02
claim mnsl3v15 R2V Nisynch_R2b found: 0 correct: does_not_occur
claim mnsl3v15 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v15 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v15 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 14:
./multinsl-generator.py 3 15 | scyther -a -r5 -m2 --summary --goal-select=14 --timer=20
states 7548
attack NoClaim
time 2.004e+01
st/sec 3.766e+02
claim mnsl3v15 R2V Nisynch_R2b found: 0 correct: does_not_occur
claim mnsl3v15 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v15 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v15 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 15:
./multinsl-generator.py 3 15 | scyther -a -r5 -m2 --summary --goal-select=15 --timer=20
states 8461
attack NoClaim
time 2.002e+01
st/sec 4.226e+02
claim mnsl3v15 R2V Nisynch_R2b found: 0 correct: does_not_occur
claim mnsl3v15 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v15 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v15 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 16:
./multinsl-generator.py 3 15 | scyther -a -r5 -m2 --summary --goal-select=16 --timer=20
states 7503
attack NoClaim
time 2.003e+01
st/sec 3.746e+02
claim mnsl3v15 R2V Nisynch_R2b found: 0 correct: does_not_occur
claim mnsl3v15 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v15 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v15 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 17:
./multinsl-generator.py 3 15 | scyther -a -r5 -m2 --summary --goal-select=17 --timer=20
states 3837
attack NoClaim
time 2.003e+01
st/sec 1.916e+02
claim mnsl3v15 R2V Nisynch_R2b found: 0 correct: does_not_occur
claim mnsl3v15 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v15 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v15 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 18:
./multinsl-generator.py 3 15 | scyther -a -r5 -m2 --summary --goal-select=18 --timer=20
states 6537
attack NoClaim
time 2.005e+01
st/sec 3.260e+02
claim mnsl3v15 R2V Nisynch_R2b found: 0 correct: does_not_occur
claim mnsl3v15 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v15 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v15 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 19:
./multinsl-generator.py 3 15 | scyther -a -r5 -m2 --summary --goal-select=19 --timer=20
states 8893
attack NoClaim
time 2.004e+01
st/sec 4.438e+02
claim mnsl3v15 R2V Nisynch_R2b found: 1 correct: bounded_proof
claim mnsl3v15 R2V Secret_R2a found: 1 correct: bounded_proof
claim mnsl3v15 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v15 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v15 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 20:
./multinsl-generator.py 3 15 | scyther -a -r5 -m2 --summary --goal-select=20 --timer=20
states 6325
attack NoClaim
time 2.003e+01
st/sec 3.158e+02
claim mnsl3v15 R2V Nisynch_R2b found: 0 correct: does_not_occur
claim mnsl3v15 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v15 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v15 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 21:
./multinsl-generator.py 3 15 | scyther -a -r5 -m2 --summary --goal-select=21 --timer=20
states 4253
attack NoClaim
time 2.005e+01
st/sec 2.121e+02
claim mnsl3v15 R2V Nisynch_R2b found: 4 correct: bounded_proof time=20
claim mnsl3v15 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v15 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v15 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 22:
./multinsl-generator.py 3 15 | scyther -a -r5 -m2 --summary --goal-select=22 --timer=20
states 6756
attack NoClaim
time 2.004e+01
st/sec 3.371e+02
claim mnsl3v15 R2V Nisynch_R2b found: 0 correct: does_not_occur
claim mnsl3v15 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v15 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v15 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 23:
./multinsl-generator.py 3 15 | scyther -a -r5 -m2 --summary --goal-select=23 --timer=20
states 8149
attack NoClaim
time 2.003e+01
st/sec 4.068e+02
claim mnsl3v15 R2V Nisynch_R2b found: 14 correct: bounded_proof time=20
claim mnsl3v15 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v15 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v15 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 24:
./multinsl-generator.py 3 15 | scyther -a -r5 -m2 --summary --goal-select=24 --timer=20
states 9785
attack NoClaim
time 2.004e+01
st/sec 4.883e+02
claim mnsl3v15 R2V Nisynch_R2b found: 0 correct: does_not_occur
claim mnsl3v15 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v15 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v15 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 25:
./multinsl-generator.py 3 15 | scyther -a -r5 -m2 --summary --goal-select=25 --timer=20
states 3832
attack NoClaim
time 2.006e+01
st/sec 1.910e+02
claim mnsl3v15 R2V Nisynch_R2b found: 0 correct: does_not_occur
claim mnsl3v15 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v15 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v15 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 26:
./multinsl-generator.py 3 15 | scyther -a -r5 -m2 --summary --goal-select=26 --timer=20
states 10699
attack NoClaim
time 2.009e+01
st/sec 5.326e+02
claim mnsl3v15 R2V Nisynch_R2b found: 0 correct: does_not_occur
claim mnsl3v15 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v15 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v15 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 27:
./multinsl-generator.py 3 15 | scyther -a -r5 -m2 --summary --goal-select=27 --timer=20
states 6672
attack NoClaim
time 2.006e+01
st/sec 3.326e+02
claim mnsl3v15 R2V Nisynch_R2b found: 1 correct: bounded_proof time=20
claim mnsl3v15 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v15 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v15 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 28:
./multinsl-generator.py 3 15 | scyther -a -r5 -m2 --summary --goal-select=28 --timer=20
states 6136
attack NoClaim
time 2.010e+01
st/sec 3.053e+02
claim mnsl3v15 R2V Nisynch_R2b found: 0 correct: does_not_occur
claim mnsl3v15 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v15 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v15 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 29:
./multinsl-generator.py 3 15 | scyther -a -r5 -m2 --summary --goal-select=29 --timer=20
states 3521
attack NoClaim
time 2.009e+01
st/sec 1.753e+02
claim mnsl3v15 R2V Nisynch_R2b found: 0 correct: does_not_occur
claim mnsl3v15 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v15 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v15 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 30:
./multinsl-generator.py 3 15 | scyther -a -r5 -m2 --summary --goal-select=30 --timer=20
states 7584
attack NoClaim
time 2.006e+01
st/sec 3.781e+02
claim mnsl3v15 R2V Nisynch_R2b found: 0 correct: does_not_occur
claim mnsl3v15 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v15 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v15 R0V Secret_R0a found: 1 correct: bounded_proof time=20
Heuristic 31:
./multinsl-generator.py 3 15 | scyther -a -r5 -m2 --summary --goal-select=31 --timer=20
states 8369
attack NoClaim
time 2.004e+01
st/sec 4.176e+02
claim mnsl3v15 R2V Nisynch_R2b found: 0 correct: does_not_occur
claim mnsl3v15 R2V Secret_R2a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R1V Nisynch_R1b found: 0 correct: does_not_occur
claim mnsl3v15 R1V Secret_R1a found: 1 correct: bounded_proof time=20
claim mnsl3v15 R0V Nisynch_R0b found: 0 correct: does_not_occur
claim mnsl3v15 R0V Secret_R0a found: 1 correct: bounded_proof time=20
13,25 work well.

View File

@@ -0,0 +1,33 @@
Report:
-------
Using P 3 and 2 runs, we find attacks on [1, 5, 9, 13, 18, 22, 26, 30]
Using P 3 and 3 runs, we find attacks on [0, 3, 4, 7, 16, 19, 20, 23]
Using P 3 and 4 runs, we find attacks on [2, 6, 10, 14, 17, 21, 27, 31]
Using P 3 and 5 runs, we find attacks on [25, 29]
Using P 4 and 3 runs, we find attacks on [8, 24]
Using P 4 and 5 runs, we find attacks on [12, 28]
Log:
----
Slave1:multiparty% ./test-variants.py
Testing using P 3 and 2 runs.
Using P 3 and 2 runs, we find attacks on [1, 5, 9, 13, 18, 22, 26, 30]
Therefore, we are left with 24 candidates: [0, 2, 3, 4, 6, 7, 8, 10, 11, 12, 14, 15, 16, 17, 19, 20, 21, 23, 24, 25, 27, 28, 29, 31]
Testing using P 3 and 3 runs.
Using P 3 and 3 runs, we find attacks on [0, 3, 4, 7, 16, 19, 20, 23]
Therefore, we are left with 16 candidates: [2, 6, 8, 10, 11, 12, 14, 15, 17, 21, 24, 25, 27, 28, 29, 31]
Testing using P 3 and 4 runs.
Using P 3 and 4 runs, we find attacks on [2, 6, 10, 14, 17, 21, 27, 31]
Therefore, we are left with 8 candidates: [8, 11, 12, 15, 24, 25, 28, 29]
Testing using P 3 and 5 runs.
Using P 3 and 5 runs, we find attacks on [25, 29]
Therefore, we are left with 6 candidates: [8, 11, 12, 15, 24, 28]
Testing using P 4 and 3 runs.
Using P 4 and 3 runs, we find attacks on [8, 24]
Therefore, we are left with 4 candidates: [11, 12, 15, 28]
Testing using P 4 and 4 runs.
Testing using P 4 and 5 runs.
Using P 4 and 5 runs, we find attacks on [12, 28]
Therefore, we are left with 2 candidates: [11, 15]
Testing using P 4 and 6 runs.

View File

@@ -0,0 +1,345 @@
#!/usr/bin/python
#
# Generate Multi-party NSL protocol description for n parties
#
# Input: P variant
#
# variant uses some bits:
# bit mask meaning if set to '1'
# (message type 1)
# 0 1 nonces in reverse
# 1 2 nonces after agents
# 2 4 agents in reverse
# 3 8 interleaved variant
# (message type 2)
# 4 16 nonces in reverse in message 2
#
# Convention similar to e.g. Prolog: capitals indicate open variables;
# in particular, they can be bound by _any_ value during the run,
# assuming full type flaws.
#
import sys
from optparse import OptionParser
def parseArgs():
usage = "usage: %s [opts] Parties Variant" % sys.argv[0]
parser = OptionParser(usage=usage)
parser.add_option('-p','--protocol', dest='protocol',
help='Generate another protocol [nsl,bke]', default="nsl",
action='store')
(opts, args) = parser.parse_args()
if len(args) != 2:
parser.print_help()
sys.exit(0)
if opts.protocol not in ["nsl","bke","nsl-priv-noprop","nsl-pub-nap","bke-nap"]:
print "I don't know the %s protocol." % (opts.protocol)
sys.exit(0)
return (opts,args)
def variablerole (r, inrole):
if r == inrole or inrole == 0:
return False
else:
return True
def role (r,inrole):
global P
return "r%i" % (r % P)
def zeroconst ():
""" This is 0 or some other stupid constant """
return "zeroconst"
def nonce (r,inrole):
global P
if r == inrole:
# nonce of our own
return "n%i" % (r % P)
else:
# a variable: we want to see this in the notation
return "N%i" % (r % P)
def extend (s1, s2):
if s1 == "":
return s2
else:
return s1 + "," + s2
def weavel (l1,l2,reverse1,swap,reverse2,interleave):
""" l1 is typically a list of nonces, l2 might be empty (names) """
global variant
if reverse1:
l1.reverse()
if l2 == []:
return l1
else:
if reverse2:
l2.reverse()
if swap:
# swap
l3 = l1
l1 = l2
l2 = l3
if interleave:
rl = []
largest = max(len(l1),len(l2))
for i in range (0,largest):
if i < len(l1):
rl.append(l1[i])
if i < len(l2):
rl.append(l2[i])
return rl
else:
return l1 + l2
def message1 (label,inrole):
global P,variant,opts
if opts.protocol in ['bke','nsl']:
noncelist = []
for i in range(0,label+1):
noncelist.append(nonce(i,inrole))
rolelist = []
for i in range(0,P):
if i != (label+1) % P:
rolelist.append(role(i,inrole))
return ",".join(weavel(noncelist,rolelist,
(variant & 1 != 0),
(variant & 2 != 0),
(variant & 4 != 0),
(variant & 8 != 0)
))
elif opts.protocol == 'nsl-priv-noprop':
list = []
for i in range(0,P):
list.append(role(i,inrole))
list.append(nonce(0,inrole))
msg = ",".join(list)
for i in range(1,label+1):
msg = "{ %s,%s }sk(%s)" % (msg,nonce(i,inrole),role(i,inrole))
return msg
elif opts.protocol == 'nsl-pub-nap':
list = []
for i in range(0,P):
list.append(role(i,inrole))
list.append(nonce(0,inrole))
msg = ",".join(list)
for i in range(1,label+1):
msg = "{ %s }sk(%s), %s" % (msg,role(i,inrole),nonce(i,inrole))
msg = "{ %s }pk(%s)" % (msg,role(label+1,inrole))
return msg
elif opts.protocol == 'bke-nap':
list = []
for i in range(0,P):
list.append(role(i,inrole))
list.append(nonce(0,inrole))
msg = ",".join(list)
for i in range(1,label+1):
msg = "{ %s }sk(%s), %s" % (msg,role(i,inrole),nonce(i,inrole))
msg = "{ %s }pk(%s)" % (msg,role(label+1,inrole))
return msg
else:
print "Hmm, I don't know how to create the first message for protocol %s" % (opts.protocol)
def message2 (label,inrole):
global P,variant,opts
if opts.protocol == "nsl":
noncelist = []
for i in range (((label + 1) % P),P):
noncelist.append(nonce(i,inrole))
return ",".join(weavel(noncelist,[],
(variant & 16 != 0),
False,
False,
False
))
elif opts.protocol == "bke":
noncelist = []
for i in range (((label + 1) % P) + 1,P):
noncelist.append(nonce(i,inrole))
if len(noncelist) == 0:
noncelist.append(zeroconst())
return ",".join(weavel(noncelist,[],
(variant & 16 != 0),
False,
False,
False
))
elif opts.protocol in ['nsl-priv-noprop','nsl-pub-nap']:
msg = message1(P-1,inrole)
for i in range(0,label-P+1):
msg = "{ %s }sk(%s)" % (msg,role(i,inrole))
if opts.protocol == 'nsl-pub-nap':
msg = "{ %s }pk(%s)" % (msg,role(label+1,inrole))
return msg
elif opts.protocol == 'bke-nap':
msg = message1(P-1,inrole)
for i in range(0,label-P+1):
msg = "{ %s }sk(%s)" % (msg,role(i,inrole))
msg = "{ %s }%s" % (msg,nonce((label+1) % P,inrole))
return msg
else:
print "Hmm, I don't know how to create the final message for protocol %s" % (opts.protocol)
def message (label,inrole):
global P,opts
if opts.protocol in ['bke','nsl']:
s = "{ "
if label < P:
s = s + message1 (label,inrole)
else:
s = s + message2 (label,inrole)
if opts.protocol == "bke" and not (label < P):
s = s + " }" + nonce((label+1) % P, inrole)
else:
s = s + " }pk(%s)" % role(label+1,inrole)
return s
else:
if label < P:
return message1 (label,inrole)
else:
return message2 (label,inrole)
def action (event,label,inrole):
s = "\t\t%s_%i(%s,%s, " % (event,label, role(label,inrole),
role(label+1,inrole))
s += message (label,inrole)
s += " );\n"
return s
def recv (label,inrole):
return action ("recv", label,inrole)
def send (label,inrole):
return action ("send", label,inrole)
def roledef (r):
global P,opts
s = ""
s += "\trole " + role(r,r) + "\n\t{\n"
# constants for this role
s += "\t\tconst " + nonce (r,r) + ": Nonce;\n"
# variables
s += "\t\tvar "
nr = 0
for i in range (0,P):
if r != i:
if nr > 0:
s += ","
s += nonce(i,r)
nr += 1
s += ": Nonce;\n"
# implicit role variables
rolevars = []
for i in range (0,P):
if variablerole(i,r):
rolevars.append(role(i,r))
if rolevars != []:
s += "\t\t// Implicit role variables: "
s += ",".join(rolevars)
s += ": Role;\n"
# actions
s += "\n"
if r > 0:
# Initial recv
s += recv(r-1,r)
s += send(r,r)
s += recv(P+r-1,r)
if r < (P-1):
# Final send
s += send(P+r,r)
# claims
if opts.protocol in ['bke','nsl','nsl-pub-nap','bke-nap']:
s += "\t\tclaim_%sa( %s, Secret, %s );\n" % (role(r,r), role(r,r),
nonce(r,r))
s += "\t\tclaim_%sb( %s, Nisynch );\n" % (role(r,r), role(r,r))
# close
s += "\t}\n\n"
return s
def protocol (args):
global P,variant,opts
P = int(args[0])
variant = int(args[1])
s = ""
s += "// Generalized %s protocol for %i parties\n\n" % (opts.protocol,P)
s += "// " + str(opts) + "\n\n"
s += "// Variant %i\n" % variant
if opts.protocol == "bke":
s += "usertype Globalconstant;\n"
s += "const %s: Globalconstant;\n" % (zeroconst())
s += "\n"
s += "protocol mnsl%iv%i(" % (P,variant)
for i in range (0,P):
if i > 0:
s += ","
s += role(i,i)
s += ")\n{\n"
for i in range (0,P):
s += roledef(i)
s += "}\n\n"
s += "\n"
return s
def main():
global opts
(opts,args) = parseArgs()
print protocol(args)
# Only if main stuff
if __name__ == '__main__':
main()

View File

@@ -0,0 +1,69 @@
#!/usr/bin/python
#
#
# Idea:
#
# We test all options for the heuristics [0..31] to compare,
# and sincerely hope on gives a complete proof.
# we slowly refine the tests.
#
import commands
def startset():
mainlist = [11, 15]
print "Starting with", mainlist
return mainlist
def tuplingchoice(heur,variant,P,runs,latupling):
# variant is in range [0..64>,
# where we use the highest bid to signify the
# associativity of the tupling.
extraflags = ""
if latupling:
extraflags += " --la-tupling"
# Choose heuristics
extraflags += " --goal-select=%i" % (heur)
# Time limit
extraflags += " --timer=20"
s = "./multinsl-generator.py"
s += " %i %i" % (P,variant)
s += " | scyther -a -r%i -m2 --summary %s" % (runs, extraflags)
## Old stuff
#s += " | scyther -a -r%i --summary" % runs
# Show what we're doing
print s
#s += " | grep \"complete\""
out = commands.getoutput(s)
if out == "":
#print "Okay"
return False
else:
print out
return True
def testvariant(h,v,p,r):
if tuplingchoice (h,v,p,r, False):
return True
else:
return tuplingchoice (h,v,p,r, True)
def scan(testlist, P, runs):
print "Testing using P %i and %i runs." % (P,runs)
for i in testlist:
print "Testing protocol %i." % (i)
for h in range (0,32):
print "Heuristic %i:" % (h)
testvariant (h,i,P,runs)
def main():
candidates = startset()
scan(candidates,3,5)
main()

View File

@@ -0,0 +1,79 @@
#!/usr/bin/python
#
#
# Idea:
#
# We test all variants [0..31] until we are sure they work. Thus,
# we slowly refine the tests.
#
import commands
def startset():
return range(0,32)
mainlist = [11, 15]
print "Starting with", mainlist
return mainlist
def tuplingchoice(variant,P,runs,latupling):
# variant is in range [0..64>,
# where we use the highest bid to signify the
# associativity of the tupling.
extraflags = ""
if latupling:
extraflags += " --la-tupling"
s = "./multinsl-generator.py"
s += " %i %s" % (P,variant)
s += " | scyther -r%i --untyped %s" % (runs, extraflags)
#s += " | scyther -a -r%i --summary" % runs
#print s
s += " | grep \"Fail\""
out = commands.getoutput(s)
if out == "":
#print "Okay"
return True
else:
#print out
# Thus, MultiNSL P variant has the first attack for n runs
return False
def testvariant(v,p,r):
if not tuplingchoice (v,p,r, False):
return False
else:
return tuplingchoice (v,p,r, True)
def removeattacks (testlist, P, runs):
okaylist = []
for v in testlist:
if testvariant (v, P, runs):
okaylist.append(v)
return okaylist
def scan(testlist, P, runs):
print "Testing using P %i and %i runs." % (P,runs)
results = removeattacks (testlist, P, runs)
if len(results) < len(testlist):
attacked = []
for i in range(0,len(testlist)):
if testlist[i] not in results:
attacked.append(testlist[i])
print "Using P %i and %i runs, we find attacks on %s" % (P,runs, str(attacked))
print "Therefore, we are left with %i candidates: " % (len(results)), results
return results
def main():
candidates = startset()
for P in range(3,7):
for rundiff in range(0,5):
candidates = scan(candidates,P,P+rundiff)
print
print "Good variants:"
print candidates
main()