Cleanup and restructuring of testing directory setup.
This commit is contained in:
41
gui/Protocols/Demo/ns3.spdl
Normal file
41
gui/Protocols/Demo/ns3.spdl
Normal 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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
40
gui/Protocols/Demo/nsl3-broken.spdl
Normal file
40
gui/Protocols/Demo/nsl3-broken.spdl
Normal 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);
|
||||
}
|
||||
}
|
||||
|
||||
78
gui/Protocols/Demo/nsl3-updated-both.spdl
Normal file
78
gui/Protocols/Demo/nsl3-updated-both.spdl
Normal 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);
|
||||
}
|
||||
}
|
||||
38
gui/Protocols/Demo/nsl3.spdl
Normal file
38
gui/Protocols/Demo/nsl3.spdl
Normal 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);
|
||||
}
|
||||
}
|
||||
776
gui/Protocols/multi-NSL/heuristics-results.txt
Normal file
776
gui/Protocols/multi-NSL/heuristics-results.txt
Normal 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.
|
||||
33
gui/Protocols/multi-NSL/mnsl-results.txt
Normal file
33
gui/Protocols/multi-NSL/mnsl-results.txt
Normal 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.
|
||||
345
gui/Protocols/multi-NSL/multinsl-generator.py
Executable file
345
gui/Protocols/multi-NSL/multinsl-generator.py
Executable 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()
|
||||
69
gui/Protocols/multi-NSL/test-heuristics.py
Executable file
69
gui/Protocols/multi-NSL/test-heuristics.py
Executable 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()
|
||||
79
gui/Protocols/multi-NSL/test-variants.py
Executable file
79
gui/Protocols/multi-NSL/test-variants.py
Executable 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()
|
||||
Reference in New Issue
Block a user