Created
January 19, 2017 20:17
-
-
Save keks/2c416c126e3767dd8503841b1c7ea8f7 to your computer and use it in GitHub Desktop.
Output of tamarin-prover on the halfway branch of tamarin-shs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| maude tool: 'maude' | |
| checking version: 2.7. OK. | |
| checking installation: OK. | |
| theory SHS begin | |
| // Function signature and definition of the equational theory E | |
| builtins: diffie-hellman | |
| functions: ed2cv/1, fst/1, h/1, mac/2, macv/3, pair/2, pk/1, sdec/2, | |
| senc/2, sign/2, snd/1, true/0, verify/3 | |
| equations: | |
| fst(<x.1, x.2>) = x.1, | |
| macv(mac(m, k), m, k) = true, | |
| sdec(senc(x.1, x.2), x.2) = x.1, | |
| snd(<x.1, x.2>) = x.2, | |
| verify(sign(x.1, x.2), x.1, pk(x.2)) = true | |
| rule (modulo E) Register_pk: | |
| [ Fr( ~ltk ) ] --> [ !Ltk( $A, ~ltk ), !Pk( $A, <'g'^~ltk, pk(~ltk)> ) ] | |
| /* has exactly the trivial AC variant */ | |
| rule (modulo E) Get_pk: | |
| [ !Pk( A, pk ) ] --> [ Out( pk ) ] | |
| /* has exactly the trivial AC variant */ | |
| rule (modulo E) Reveal_ltk: | |
| [ !Ltk( A, ltk ) ] --[ LtkReveal( A ) ]-> [ Out( ltk ) ] | |
| /* has exactly the trivial AC variant */ | |
| rule (modulo E) Client_sendChal: | |
| [ Fr( ~eph ), !Ltk( $A, ltkA ), !Pk( $S, pkS ) ] | |
| --> | |
| [ | |
| Client_chalSent( $A, $S, ltkA, ~eph, pkS, $appKey ), | |
| Out( <'g'^~eph, mac('g'^~eph, h($appKey))> ) | |
| ] | |
| /* has exactly the trivial AC variant */ | |
| rule (modulo E) Server_recvChal: | |
| [ Fr( ~eph ), In( <dhA, dhmac> ) ] | |
| --[ True( macv(dhmac, dhA, h($appKey)) ) ]-> | |
| [ | |
| Server_chalSent( $S, ~eph, dhA, $appKey ), | |
| Out( <'g'^~eph, mac('g'^~eph, h(<dhA^~eph, $appKey>))> ) | |
| ] | |
| /* | |
| rule (modulo AC) Server_recvChal: | |
| [ Fr( ~eph ), In( <dhA, dhmac> ) ] | |
| --[ True( z.1 ) ]-> | |
| [ | |
| Server_chalSent( $S, ~eph, dhA, $appKey ), | |
| Out( <'g'^~eph, mac('g'^~eph, h(<z, $appKey>))> ) | |
| ] | |
| variants (modulo AC) | |
| 1. $appKey | |
| = $appKey.15 | |
| ~eph = ~eph.16 | |
| dhA = dhA.17 | |
| dhmac = mac(dhA.17, h($appKey.15)) | |
| z = dhA.17^~eph.16 | |
| z.1 = true | |
| 2. $appKey | |
| = $appKey.16 | |
| ~eph = ~eph.17 | |
| dhA = dhA.18 | |
| dhmac = dhmac.19 | |
| z = dhA.18^~eph.17 | |
| z.1 = macv(dhmac.19, dhA.18, h($appKey.16)) | |
| 3. $appKey | |
| = $appKey.18 | |
| ~eph = ~eph.19 | |
| dhA = z.23^inv(~eph.19) | |
| dhmac = dhmac.21 | |
| z = z.23 | |
| z.1 = macv(dhmac.21, z.23^inv(~eph.19), h($appKey.18)) | |
| 4. $appKey | |
| = $appKey.18 | |
| ~eph = ~eph.19 | |
| dhA = z.23^inv(~eph.19) | |
| dhmac = mac(z.23^inv(~eph.19), h($appKey.18)) | |
| z = z.23 | |
| z.1 = true | |
| 5. $appKey | |
| = $appKey.42 | |
| ~eph = ~eph.43 | |
| dhA = x.80^x.81 | |
| dhmac = dhmac.45 | |
| z = x.80^(~eph.43*x.81) | |
| z.1 = macv(dhmac.45, x.80^x.81, h($appKey.42)) | |
| 6. $appKey | |
| = $appKey.43 | |
| ~eph = ~eph.44 | |
| dhA = x.82^x.83 | |
| dhmac = mac(x.82^x.83, h($appKey.43)) | |
| z = x.82^(~eph.44*x.83) | |
| z.1 = true | |
| 7. $appKey | |
| = $appKey.43 | |
| ~eph = ~eph.44 | |
| dhA = x.82^inv((~eph.44*x.83)) | |
| dhmac = dhmac.46 | |
| z = x.82^inv(x.83) | |
| z.1 = macv(dhmac.46, x.82^inv((~eph.44*x.83)), h($appKey.43)) | |
| 8. $appKey | |
| = $appKey.43 | |
| ~eph = ~eph.44 | |
| dhA = x.82^(x.83*inv(~eph.44)) | |
| dhmac = dhmac.46 | |
| z = x.82^x.83 | |
| z.1 = macv(dhmac.46, x.82^(x.83*inv(~eph.44)), h($appKey.43)) | |
| 9. $appKey | |
| = $appKey.44 | |
| ~eph = ~eph.45 | |
| dhA = x.83^inv((~eph.45*x.85)) | |
| dhmac = mac(x.83^inv((~eph.45*x.85)), h($appKey.44)) | |
| z = x.83^inv(x.85) | |
| z.1 = true | |
| 10. $appKey | |
| = $appKey.44 | |
| ~eph = ~eph.45 | |
| dhA = x.83^(x.85*inv(~eph.45)) | |
| dhmac = mac(x.83^(x.85*inv(~eph.45)), h($appKey.44)) | |
| z = x.83^x.85 | |
| z.1 = true | |
| 11. $appKey | |
| = $appKey.44 | |
| ~eph = ~eph.45 | |
| dhA = x.83^(x.85*inv((~eph.45*x.84))) | |
| dhmac = dhmac.47 | |
| z = x.83^(x.85*inv(x.84)) | |
| z.1 = macv(dhmac.47, x.83^(x.85*inv((~eph.45*x.84))), h($appKey.44)) | |
| 12. $appKey | |
| = $appKey.45 | |
| ~eph = ~eph.46 | |
| dhA = x.84^(x.87*inv((~eph.46*x.86))) | |
| dhmac = mac(x.84^(x.87*inv((~eph.46*x.86))), h($appKey.45)) | |
| z = x.84^(x.87*inv(x.86)) | |
| z.1 = true | |
| */ | |
| rule (modulo E) Client_recvChal: | |
| [ Client_chalSent( A, S, ltkA, eph, pkS, $appKey ), In( <dhS, dhmac> ) ] | |
| --[ True( macv(dhmac, dhS, h(<dhS^eph, $appKey>)) ) ]-> | |
| [ Client_authSent( A, S, dhS, eph, pkS, $appKey ) ] | |
| /* | |
| rule (modulo AC) Client_recvChal: | |
| [ Client_chalSent( A, S, ltkA, eph, pkS, $appKey ), In( <dhS, dhmac> ) ] | |
| --[ True( z ) ]-> | |
| [ Client_authSent( A, S, dhS, eph, pkS, $appKey ) ] | |
| variants (modulo AC) | |
| 1. $appKey | |
| = $appKey.10 | |
| dhS = dhS.10 | |
| dhmac = dhmac.10 | |
| eph = eph.10 | |
| z = macv(dhmac.10, dhS.10, h(<dhS.10^eph.10, $appKey.10>)) | |
| 2. $appKey | |
| = $appKey.10 | |
| dhS = dhS.10 | |
| dhmac = dhmac.10 | |
| eph = one | |
| z = macv(dhmac.10, dhS.10, h(<dhS.10, $appKey.10>)) | |
| 3. $appKey | |
| = $x.10 | |
| dhS = x.11 | |
| dhmac = mac(x.11, h(<x.11, $x.10>)) | |
| eph = one | |
| z = true | |
| 4. $appKey | |
| = $x.10 | |
| dhS = x.11 | |
| dhmac = mac(x.11, h(<x.11^x.12, $x.10>)) | |
| eph = x.12 | |
| z = true | |
| 5. $appKey | |
| = $x.10 | |
| dhS = x.11^x.12 | |
| dhmac = mac(x.11^x.12, h(<x.11, $x.10>)) | |
| eph = inv(x.12) | |
| z = true | |
| 6. $appKey | |
| = $x.10 | |
| dhS = x.11^x.12 | |
| dhmac = mac(x.11^x.12, h(<x.11^x.13, $x.10>)) | |
| eph = (x.13*inv(x.12)) | |
| z = true | |
| 7. $appKey | |
| = $x.10 | |
| dhS = x.11^x.12 | |
| dhmac = mac(x.11^x.12, h(<x.11^(x.12*x.13), $x.10>)) | |
| eph = x.13 | |
| z = true | |
| 8. $appKey | |
| = $x.10 | |
| dhS = x.11^x.13 | |
| dhmac = mac(x.11^x.13, h(<x.11^inv(x.12), $x.10>)) | |
| eph = inv((x.12*x.13)) | |
| z = true | |
| 9. $appKey | |
| = $x.10 | |
| dhS = x.11^x.13 | |
| dhmac = mac(x.11^x.13, h(<x.11^(x.14*inv(x.12)), $x.10>)) | |
| eph = (x.14*inv((x.12*x.13))) | |
| z = true | |
| 10. $appKey | |
| = $x.10 | |
| dhS = x.11^inv(x.12) | |
| dhmac = mac(x.11^inv(x.12), h(<x.11, $x.10>)) | |
| eph = x.12 | |
| z = true | |
| 11. $appKey | |
| = $x.10 | |
| dhS = x.11^inv(x.12) | |
| dhmac = mac(x.11^inv(x.12), h(<x.11^x.13, $x.10>)) | |
| eph = (x.12*x.13) | |
| z = true | |
| 12. $appKey | |
| = $x.10 | |
| dhS = x.11^inv(x.12) | |
| dhmac = mac(x.11^inv(x.12), h(<x.11^inv((x.12*x.13)), $x.10>)) | |
| eph = inv(x.13) | |
| z = true | |
| 13. $appKey | |
| = $x.10 | |
| dhS = x.11^inv(x.12) | |
| dhmac = mac(x.11^inv(x.12), h(<x.11^(x.14*inv((x.12*x.13))), $x.10>)) | |
| eph = (x.14*inv(x.13)) | |
| z = true | |
| 14. $appKey | |
| = $x.10 | |
| dhS = x.11^inv((x.12*x.13)) | |
| dhmac = mac(x.11^inv((x.12*x.13)), h(<x.11^inv(x.12), $x.10>)) | |
| eph = x.13 | |
| z = true | |
| 15. $appKey | |
| = $x.10 | |
| dhS = x.11^inv((x.12*x.13)) | |
| dhmac = mac(x.11^inv((x.12*x.13)), h(<x.11^(x.14*inv(x.12)), $x.10>)) | |
| eph = (x.13*x.14) | |
| z = true | |
| 16. $appKey | |
| = $x.10 | |
| dhS = x.11^inv((x.13*x.14)) | |
| dhmac = mac(x.11^inv((x.13*x.14)), h(<x.11^inv((x.12*x.13)), $x.10>)) | |
| eph = (x.14*inv(x.12)) | |
| z = true | |
| 17. $appKey | |
| = $x.10 | |
| dhS = x.11^inv((x.13*x.14)) | |
| dhmac = mac(x.11^inv((x.13*x.14)), | |
| h(<x.11^(x.15*inv((x.12*x.13))), $x.10>)) | |
| eph = (x.14*x.15*inv(x.12)) | |
| z = true | |
| 18. $appKey | |
| = $x.10 | |
| dhS = x.11^(x.12*x.13) | |
| dhmac = mac(x.11^(x.12*x.13), h(<x.11^x.13, $x.10>)) | |
| eph = inv(x.12) | |
| z = true | |
| 19. $appKey | |
| = $x.10 | |
| dhS = x.11^(x.12*x.13) | |
| dhmac = mac(x.11^(x.12*x.13), h(<x.11^(x.13*x.14), $x.10>)) | |
| eph = (x.14*inv(x.12)) | |
| z = true | |
| 20. $appKey | |
| = $x.10 | |
| dhS = x.11^(x.13*x.14) | |
| dhmac = mac(x.11^(x.13*x.14), h(<x.11^(x.14*x.15*inv(x.12)), $x.10>)) | |
| eph = (x.15*inv((x.12*x.13))) | |
| z = true | |
| 21. $appKey | |
| = $x.10 | |
| dhS = x.11^(x.13*x.14) | |
| dhmac = mac(x.11^(x.13*x.14), h(<x.11^(x.14*inv(x.12)), $x.10>)) | |
| eph = inv((x.12*x.13)) | |
| z = true | |
| 22. $appKey | |
| = $x.10 | |
| dhS = x.11^(x.13*x.14*inv(x.12)) | |
| dhmac = mac(x.11^(x.13*x.14*inv(x.12)), h(<x.11^x.14, $x.10>)) | |
| eph = (x.12*inv(x.13)) | |
| z = true | |
| 23. $appKey | |
| = $x.10 | |
| dhS = x.11^(x.13*x.14*inv(x.12)) | |
| dhmac = mac(x.11^(x.13*x.14*inv(x.12)), h(<x.11^(x.14*x.15), $x.10>)) | |
| eph = (x.12*x.15*inv(x.13)) | |
| z = true | |
| 24. $appKey | |
| = $x.10 | |
| dhS = x.11^(x.13*x.15*inv((x.12*x.14))) | |
| dhmac = mac(x.11^(x.13*x.15*inv((x.12*x.14))), | |
| h(<x.11^(x.15*x.16*inv(x.12)), $x.10>)) | |
| eph = (x.14*x.16*inv(x.13)) | |
| z = true | |
| 25. $appKey | |
| = $x.10 | |
| dhS = x.11^(x.13*x.15*inv((x.12*x.14))) | |
| dhmac = mac(x.11^(x.13*x.15*inv((x.12*x.14))), | |
| h(<x.11^(x.15*inv(x.12)), $x.10>)) | |
| eph = (x.14*inv(x.13)) | |
| z = true | |
| 26. $appKey | |
| = $x.10 | |
| dhS = x.11^(x.13*inv(x.12)) | |
| dhmac = mac(x.11^(x.13*inv(x.12)), h(<x.11, $x.10>)) | |
| eph = (x.12*inv(x.13)) | |
| z = true | |
| 27. $appKey | |
| = $x.10 | |
| dhS = x.11^(x.13*inv(x.12)) | |
| dhmac = mac(x.11^(x.13*inv(x.12)), h(<x.11^x.13, $x.10>)) | |
| eph = x.12 | |
| z = true | |
| 28. $appKey | |
| = $x.10 | |
| dhS = x.11^(x.13*inv(x.12)) | |
| dhmac = mac(x.11^(x.13*inv(x.12)), h(<x.11^x.14, $x.10>)) | |
| eph = (x.12*x.14*inv(x.13)) | |
| z = true | |
| 29. $appKey | |
| = $x.10 | |
| dhS = x.11^(x.13*inv(x.12)) | |
| dhmac = mac(x.11^(x.13*inv(x.12)), h(<x.11^(x.13*x.14), $x.10>)) | |
| eph = (x.12*x.14) | |
| z = true | |
| 30. $appKey | |
| = $x.10 | |
| dhS = x.11^(x.13*inv((x.12*x.14))) | |
| dhmac = mac(x.11^(x.13*inv((x.12*x.14))), h(<x.11^inv(x.12), $x.10>)) | |
| eph = (x.14*inv(x.13)) | |
| z = true | |
| 31. $appKey | |
| = $x.10 | |
| dhS = x.11^(x.13*inv((x.12*x.14))) | |
| dhmac = mac(x.11^(x.13*inv((x.12*x.14))), | |
| h(<x.11^(x.15*inv(x.12)), $x.10>)) | |
| eph = (x.14*x.15*inv(x.13)) | |
| z = true | |
| 32. $appKey | |
| = $x.10 | |
| dhS = x.11^(x.14*x.15*inv(x.12)) | |
| dhmac = mac(x.11^(x.14*x.15*inv(x.12)), | |
| h(<x.11^(x.15*x.16*inv(x.13)), $x.10>)) | |
| eph = (x.12*x.16*inv((x.13*x.14))) | |
| z = true | |
| 33. $appKey | |
| = $x.10 | |
| dhS = x.11^(x.14*x.15*inv(x.12)) | |
| dhmac = mac(x.11^(x.14*x.15*inv(x.12)), | |
| h(<x.11^(x.15*x.16*inv((x.12*x.13))), $x.10>)) | |
| eph = (x.16*inv((x.13*x.14))) | |
| z = true | |
| 34. $appKey | |
| = $x.10 | |
| dhS = x.11^(x.14*x.15*inv(x.12)) | |
| dhmac = mac(x.11^(x.14*x.15*inv(x.12)), | |
| h(<x.11^(x.15*inv(x.13)), $x.10>)) | |
| eph = (x.12*inv((x.13*x.14))) | |
| z = true | |
| 35. $appKey | |
| = $x.10 | |
| dhS = x.11^(x.14*x.15*inv(x.12)) | |
| dhmac = mac(x.11^(x.14*x.15*inv(x.12)), | |
| h(<x.11^(x.15*inv((x.12*x.13))), $x.10>)) | |
| eph = inv((x.13*x.14)) | |
| z = true | |
| 36. $appKey | |
| = $x.10 | |
| dhS = x.11^(x.14*inv(x.12)) | |
| dhmac = mac(x.11^(x.14*inv(x.12)), h(<x.11^inv((x.12*x.13)), $x.10>)) | |
| eph = inv((x.13*x.14)) | |
| z = true | |
| 37. $appKey | |
| = $x.10 | |
| dhS = x.11^(x.14*inv(x.12)) | |
| dhmac = mac(x.11^(x.14*inv(x.12)), | |
| h(<x.11^(x.14*x.15*inv((x.12*x.13))), $x.10>)) | |
| eph = (x.15*inv(x.13)) | |
| z = true | |
| 38. $appKey | |
| = $x.10 | |
| dhS = x.11^(x.14*inv(x.12)) | |
| dhmac = mac(x.11^(x.14*inv(x.12)), h(<x.11^(x.15*inv(x.13)), $x.10>)) | |
| eph = (x.12*x.15*inv((x.13*x.14))) | |
| z = true | |
| 39. $appKey | |
| = $x.10 | |
| dhS = x.11^(x.14*inv(x.12)) | |
| dhmac = mac(x.11^(x.14*inv(x.12)), | |
| h(<x.11^(x.15*inv((x.12*x.13))), $x.10>)) | |
| eph = (x.15*inv((x.13*x.14))) | |
| z = true | |
| 40. $appKey | |
| = $x.10 | |
| dhS = x.11^(x.14*inv(x.13)) | |
| dhmac = mac(x.11^(x.14*inv(x.13)), h(<x.11^inv(x.12), $x.10>)) | |
| eph = (x.13*inv((x.12*x.14))) | |
| z = true | |
| 41. $appKey | |
| = $x.10 | |
| dhS = x.11^(x.14*inv(x.13)) | |
| dhmac = mac(x.11^(x.14*inv(x.13)), | |
| h(<x.11^(x.14*inv((x.12*x.13))), $x.10>)) | |
| eph = inv(x.12) | |
| z = true | |
| 42. $appKey | |
| = $x.10 | |
| dhS = x.11^(x.14*inv((x.12*x.13))) | |
| dhmac = mac(x.11^(x.14*inv((x.12*x.13))), | |
| h(<x.11^(x.14*x.15*inv(x.12)), $x.10>)) | |
| eph = (x.13*x.15) | |
| z = true | |
| 43. $appKey | |
| = $x.10 | |
| dhS = x.11^(x.14*inv((x.12*x.13))) | |
| dhmac = mac(x.11^(x.14*inv((x.12*x.13))), | |
| h(<x.11^(x.14*inv(x.12)), $x.10>)) | |
| eph = x.13 | |
| z = true | |
| 44. $appKey | |
| = $x.10 | |
| dhS = x.11^(x.15*x.16*inv((x.12*x.13))) | |
| dhmac = mac(x.11^(x.15*x.16*inv((x.12*x.13))), | |
| h(<x.11^(x.16*x.17*inv((x.12*x.14))), $x.10>)) | |
| eph = (x.13*x.17*inv((x.14*x.15))) | |
| z = true | |
| 45. $appKey | |
| = $x.10 | |
| dhS = x.11^(x.15*x.16*inv((x.12*x.13))) | |
| dhmac = mac(x.11^(x.15*x.16*inv((x.12*x.13))), | |
| h(<x.11^(x.16*inv((x.12*x.14))), $x.10>)) | |
| eph = (x.13*inv((x.14*x.15))) | |
| z = true | |
| 46. $appKey | |
| = $x.10 | |
| dhS = x.11^(x.15*inv((x.12*x.13))) | |
| dhmac = mac(x.11^(x.15*inv((x.12*x.13))), | |
| h(<x.11^(x.16*inv((x.12*x.14))), $x.10>)) | |
| eph = (x.13*x.16*inv((x.14*x.15))) | |
| z = true | |
| 47. $appKey | |
| = $x.10 | |
| dhS = x.11^(x.15*inv((x.12*x.14))) | |
| dhmac = mac(x.11^(x.15*inv((x.12*x.14))), | |
| h(<x.11^inv((x.12*x.13)), $x.10>)) | |
| eph = (x.14*inv((x.13*x.15))) | |
| z = true | |
| 48. $appKey | |
| = $x.10 | |
| dhS = x.11^(x.15*inv((x.13*x.14))) | |
| dhmac = mac(x.11^(x.15*inv((x.13*x.14))), | |
| h(<x.11^(x.15*x.16*inv((x.12*x.13))), $x.10>)) | |
| eph = (x.14*x.16*inv(x.12)) | |
| z = true | |
| 49. $appKey | |
| = $x.10 | |
| dhS = x.11^(x.15*inv((x.13*x.14))) | |
| dhmac = mac(x.11^(x.15*inv((x.13*x.14))), | |
| h(<x.11^(x.15*inv((x.12*x.13))), $x.10>)) | |
| eph = (x.14*inv(x.12)) | |
| z = true | |
| 50. $appKey | |
| = $appKey.12 | |
| dhS = x.10^x.11 | |
| dhmac = dhmac.12 | |
| eph = eph.12 | |
| z = macv(dhmac.12, x.10^x.11, h(<x.10^(x.11*eph.12), $appKey.12>)) | |
| 51. $appKey | |
| = $appKey.12 | |
| dhS = x.10^x.11 | |
| dhmac = dhmac.12 | |
| eph = inv(x.11) | |
| z = macv(dhmac.12, x.10^x.11, h(<x.10, $appKey.12>)) | |
| 52. $appKey | |
| = $appKey.12 | |
| dhS = x.10^inv(x.11) | |
| dhmac = dhmac.12 | |
| eph = x.11 | |
| z = macv(dhmac.12, x.10^inv(x.11), h(<x.10, $appKey.12>)) | |
| 53. $appKey | |
| = $appKey.13 | |
| dhS = x.10^x.11 | |
| dhmac = dhmac.13 | |
| eph = inv((x.11*x.12)) | |
| z = macv(dhmac.13, x.10^x.11, h(<x.10^inv(x.12), $appKey.13>)) | |
| 54. $appKey | |
| = $appKey.13 | |
| dhS = x.10^x.11 | |
| dhmac = dhmac.13 | |
| eph = (x.12*inv(x.11)) | |
| z = macv(dhmac.13, x.10^x.11, h(<x.10^x.12, $appKey.13>)) | |
| 55. $appKey | |
| = $appKey.13 | |
| dhS = x.10^inv(x.11) | |
| dhmac = dhmac.13 | |
| eph = (x.11*x.12) | |
| z = macv(dhmac.13, x.10^inv(x.11), h(<x.10^x.12, $appKey.13>)) | |
| 56. $appKey | |
| = $appKey.13 | |
| dhS = x.10^inv(x.12) | |
| dhmac = dhmac.13 | |
| eph = inv(x.11) | |
| z = macv(dhmac.13, x.10^inv(x.12), | |
| h(<x.10^inv((x.11*x.12)), $appKey.13>)) | |
| 57. $appKey | |
| = $appKey.13 | |
| dhS = x.10^inv((x.11*x.12)) | |
| dhmac = dhmac.13 | |
| eph = x.11 | |
| z = macv(dhmac.13, x.10^inv((x.11*x.12)), | |
| h(<x.10^inv(x.12), $appKey.13>)) | |
| 58. $appKey | |
| = $appKey.13 | |
| dhS = x.10^(x.11*x.12) | |
| dhmac = dhmac.13 | |
| eph = inv(x.11) | |
| z = macv(dhmac.13, x.10^(x.11*x.12), h(<x.10^x.12, $appKey.13>)) | |
| 59. $appKey | |
| = $appKey.13 | |
| dhS = x.10^(x.11*inv(x.12)) | |
| dhmac = dhmac.13 | |
| eph = (x.12*inv(x.11)) | |
| z = macv(dhmac.13, x.10^(x.11*inv(x.12)), h(<x.10, $appKey.13>)) | |
| 60. $appKey | |
| = $appKey.13 | |
| dhS = x.10^(x.12*inv(x.11)) | |
| dhmac = dhmac.13 | |
| eph = x.11 | |
| z = macv(dhmac.13, x.10^(x.12*inv(x.11)), h(<x.10^x.12, $appKey.13>)) | |
| 61. $appKey | |
| = $appKey.14 | |
| dhS = x.10^x.11 | |
| dhmac = dhmac.14 | |
| eph = (x.13*inv((x.11*x.12))) | |
| z = macv(dhmac.14, x.10^x.11, h(<x.10^(x.13*inv(x.12)), $appKey.14>)) | |
| 62. $appKey | |
| = $appKey.14 | |
| dhS = x.10^inv(x.11) | |
| dhmac = dhmac.14 | |
| eph = (x.13*inv(x.12)) | |
| z = macv(dhmac.14, x.10^inv(x.11), | |
| h(<x.10^(x.13*inv((x.11*x.12))), $appKey.14>)) | |
| 63. $appKey | |
| = $appKey.14 | |
| dhS = x.10^inv((x.11*x.12)) | |
| dhmac = dhmac.14 | |
| eph = (x.12*x.13) | |
| z = macv(dhmac.14, x.10^inv((x.11*x.12)), | |
| h(<x.10^(x.13*inv(x.11)), $appKey.14>)) | |
| 64. $appKey | |
| = $appKey.14 | |
| dhS = x.10^inv((x.12*x.13)) | |
| dhmac = dhmac.14 | |
| eph = (x.13*inv(x.11)) | |
| z = macv(dhmac.14, x.10^inv((x.12*x.13)), | |
| h(<x.10^inv((x.11*x.12)), $appKey.14>)) | |
| 65. $appKey | |
| = $appKey.14 | |
| dhS = x.10^(x.11*x.13) | |
| dhmac = dhmac.14 | |
| eph = (x.12*inv(x.11)) | |
| z = macv(dhmac.14, x.10^(x.11*x.13), | |
| h(<x.10^(x.12*x.13), $appKey.14>)) | |
| 66. $appKey | |
| = $appKey.14 | |
| dhS = x.10^(x.11*x.13*inv(x.12)) | |
| dhmac = dhmac.14 | |
| eph = (x.12*inv(x.11)) | |
| z = macv(dhmac.14, x.10^(x.11*x.13*inv(x.12)), | |
| h(<x.10^x.13, $appKey.14>)) | |
| 67. $appKey | |
| = $appKey.14 | |
| dhS = x.10^(x.11*inv(x.12)) | |
| dhmac = dhmac.14 | |
| eph = (x.12*x.13*inv(x.11)) | |
| z = macv(dhmac.14, x.10^(x.11*inv(x.12)), h(<x.10^x.13, $appKey.14>)) | |
| 68. $appKey | |
| = $appKey.14 | |
| dhS = x.10^(x.11*inv((x.12*x.13))) | |
| dhmac = dhmac.14 | |
| eph = (x.13*inv(x.11)) | |
| z = macv(dhmac.14, x.10^(x.11*inv((x.12*x.13))), | |
| h(<x.10^inv(x.12), $appKey.14>)) | |
| 69. $appKey | |
| = $appKey.14 | |
| dhS = x.10^(x.12*x.13) | |
| dhmac = dhmac.14 | |
| eph = inv((x.11*x.12)) | |
| z = macv(dhmac.14, x.10^(x.12*x.13), | |
| h(<x.10^(x.13*inv(x.11)), $appKey.14>)) | |
| 70. $appKey | |
| = $appKey.14 | |
| dhS = x.10^(x.13*inv(x.11)) | |
| dhmac = dhmac.14 | |
| eph = inv((x.12*x.13)) | |
| z = macv(dhmac.14, x.10^(x.13*inv(x.11)), | |
| h(<x.10^inv((x.11*x.12)), $appKey.14>)) | |
| 71. $appKey | |
| = $appKey.14 | |
| dhS = x.10^(x.13*inv(x.11)) | |
| dhmac = dhmac.14 | |
| eph = (x.11*x.12) | |
| z = macv(dhmac.14, x.10^(x.13*inv(x.11)), | |
| h(<x.10^(x.12*x.13), $appKey.14>)) | |
| 72. $appKey | |
| = $appKey.14 | |
| dhS = x.10^(x.13*inv(x.11)) | |
| dhmac = dhmac.14 | |
| eph = (x.11*inv((x.12*x.13))) | |
| z = macv(dhmac.14, x.10^(x.13*inv(x.11)), | |
| h(<x.10^inv(x.12), $appKey.14>)) | |
| 73. $appKey | |
| = $appKey.14 | |
| dhS = x.10^(x.13*inv(x.12)) | |
| dhmac = dhmac.14 | |
| eph = inv(x.11) | |
| z = macv(dhmac.14, x.10^(x.13*inv(x.12)), | |
| h(<x.10^(x.13*inv((x.11*x.12))), $appKey.14>)) | |
| 74. $appKey | |
| = $appKey.14 | |
| dhS = x.10^(x.13*inv((x.11*x.12))) | |
| dhmac = dhmac.14 | |
| eph = x.11 | |
| z = macv(dhmac.14, x.10^(x.13*inv((x.11*x.12))), | |
| h(<x.10^(x.13*inv(x.12)), $appKey.14>)) | |
| 75. $appKey | |
| = $appKey.15 | |
| dhS = x.10^inv((x.12*x.13)) | |
| dhmac = dhmac.15 | |
| eph = (x.13*x.14*inv(x.11)) | |
| z = macv(dhmac.15, x.10^inv((x.12*x.13)), | |
| h(<x.10^(x.14*inv((x.11*x.12))), $appKey.15>)) | |
| 76. $appKey | |
| = $appKey.15 | |
| dhS = x.10^(x.11*x.14*inv(x.12)) | |
| dhmac = dhmac.15 | |
| eph = (x.12*x.13*inv(x.11)) | |
| z = macv(dhmac.15, x.10^(x.11*x.14*inv(x.12)), | |
| h(<x.10^(x.13*x.14), $appKey.15>)) | |
| 77. $appKey | |
| = $appKey.15 | |
| dhS = x.10^(x.11*x.14*inv((x.12*x.13))) | |
| dhmac = dhmac.15 | |
| eph = (x.13*inv(x.11)) | |
| z = macv(dhmac.15, x.10^(x.11*x.14*inv((x.12*x.13))), | |
| h(<x.10^(x.14*inv(x.12)), $appKey.15>)) | |
| 78. $appKey | |
| = $appKey.15 | |
| dhS = x.10^(x.11*inv((x.12*x.13))) | |
| dhmac = dhmac.15 | |
| eph = (x.13*x.14*inv(x.11)) | |
| z = macv(dhmac.15, x.10^(x.11*inv((x.12*x.13))), | |
| h(<x.10^(x.14*inv(x.12)), $appKey.15>)) | |
| 79. $appKey | |
| = $appKey.15 | |
| dhS = x.10^(x.12*x.14) | |
| dhmac = dhmac.15 | |
| eph = (x.13*inv((x.11*x.12))) | |
| z = macv(dhmac.15, x.10^(x.12*x.14), | |
| h(<x.10^(x.13*x.14*inv(x.11)), $appKey.15>)) | |
| 80. $appKey | |
| = $appKey.15 | |
| dhS = x.10^(x.12*inv((x.13*x.14))) | |
| dhmac = dhmac.15 | |
| eph = (x.14*inv((x.11*x.12))) | |
| z = macv(dhmac.15, x.10^(x.12*inv((x.13*x.14))), | |
| h(<x.10^inv((x.11*x.13)), $appKey.15>)) | |
| 81. $appKey | |
| = $appKey.15 | |
| dhS = x.10^(x.13*x.14*inv(x.11)) | |
| dhmac = dhmac.15 | |
| eph = inv((x.12*x.13)) | |
| z = macv(dhmac.15, x.10^(x.13*x.14*inv(x.11)), | |
| h(<x.10^(x.14*inv((x.11*x.12))), $appKey.15>)) | |
| 82. $appKey | |
| = $appKey.15 | |
| dhS = x.10^(x.13*x.14*inv(x.11)) | |
| dhmac = dhmac.15 | |
| eph = (x.11*inv((x.12*x.13))) | |
| z = macv(dhmac.15, x.10^(x.13*x.14*inv(x.11)), | |
| h(<x.10^(x.14*inv(x.12)), $appKey.15>)) | |
| 83. $appKey | |
| = $appKey.15 | |
| dhS = x.10^(x.13*inv(x.11)) | |
| dhmac = dhmac.15 | |
| eph = (x.11*x.14*inv((x.12*x.13))) | |
| z = macv(dhmac.15, x.10^(x.13*inv(x.11)), | |
| h(<x.10^(x.14*inv(x.12)), $appKey.15>)) | |
| 84. $appKey | |
| = $appKey.15 | |
| dhS = x.10^(x.13*inv(x.11)) | |
| dhmac = dhmac.15 | |
| eph = (x.14*inv((x.12*x.13))) | |
| z = macv(dhmac.15, x.10^(x.13*inv(x.11)), | |
| h(<x.10^(x.14*inv((x.11*x.12))), $appKey.15>)) | |
| 85. $appKey | |
| = $appKey.15 | |
| dhS = x.10^(x.14*inv(x.12)) | |
| dhmac = dhmac.15 | |
| eph = (x.13*inv(x.11)) | |
| z = macv(dhmac.15, x.10^(x.14*inv(x.12)), | |
| h(<x.10^(x.13*x.14*inv((x.11*x.12))), $appKey.15>)) | |
| 86. $appKey | |
| = $appKey.15 | |
| dhS = x.10^(x.14*inv((x.11*x.12))) | |
| dhmac = dhmac.15 | |
| eph = (x.12*x.13) | |
| z = macv(dhmac.15, x.10^(x.14*inv((x.11*x.12))), | |
| h(<x.10^(x.13*x.14*inv(x.11)), $appKey.15>)) | |
| 87. $appKey | |
| = $appKey.15 | |
| dhS = x.10^(x.14*inv((x.12*x.13))) | |
| dhmac = dhmac.15 | |
| eph = (x.13*inv(x.11)) | |
| z = macv(dhmac.15, x.10^(x.14*inv((x.12*x.13))), | |
| h(<x.10^(x.14*inv((x.11*x.12))), $appKey.15>)) | |
| 88. $appKey | |
| = $appKey.16 | |
| dhS = x.10^(x.11*x.15*inv((x.12*x.13))) | |
| dhmac = dhmac.16 | |
| eph = (x.13*x.14*inv(x.11)) | |
| z = macv(dhmac.16, x.10^(x.11*x.15*inv((x.12*x.13))), | |
| h(<x.10^(x.14*x.15*inv(x.12)), $appKey.16>)) | |
| 89. $appKey | |
| = $appKey.16 | |
| dhS = x.10^(x.12*x.15*inv((x.13*x.14))) | |
| dhmac = dhmac.16 | |
| eph = (x.14*inv((x.11*x.12))) | |
| z = macv(dhmac.16, x.10^(x.12*x.15*inv((x.13*x.14))), | |
| h(<x.10^(x.15*inv((x.11*x.13))), $appKey.16>)) | |
| 90. $appKey | |
| = $appKey.16 | |
| dhS = x.10^(x.12*inv((x.13*x.14))) | |
| dhmac = dhmac.16 | |
| eph = (x.14*x.15*inv((x.11*x.12))) | |
| z = macv(dhmac.16, x.10^(x.12*inv((x.13*x.14))), | |
| h(<x.10^(x.15*inv((x.11*x.13))), $appKey.16>)) | |
| 91. $appKey | |
| = $appKey.16 | |
| dhS = x.10^(x.13*x.15*inv(x.11)) | |
| dhmac = dhmac.16 | |
| eph = (x.11*x.14*inv((x.12*x.13))) | |
| z = macv(dhmac.16, x.10^(x.13*x.15*inv(x.11)), | |
| h(<x.10^(x.14*x.15*inv(x.12)), $appKey.16>)) | |
| 92. $appKey | |
| = $appKey.16 | |
| dhS = x.10^(x.13*x.15*inv(x.11)) | |
| dhmac = dhmac.16 | |
| eph = (x.14*inv((x.12*x.13))) | |
| z = macv(dhmac.16, x.10^(x.13*x.15*inv(x.11)), | |
| h(<x.10^(x.14*x.15*inv((x.11*x.12))), $appKey.16>)) | |
| 93. $appKey | |
| = $appKey.16 | |
| dhS = x.10^(x.15*inv((x.12*x.13))) | |
| dhmac = dhmac.16 | |
| eph = (x.13*x.14*inv(x.11)) | |
| z = macv(dhmac.16, x.10^(x.15*inv((x.12*x.13))), | |
| h(<x.10^(x.14*x.15*inv((x.11*x.12))), $appKey.16>)) | |
| 94. $appKey | |
| = $appKey.17 | |
| dhS = x.10^(x.12*x.16*inv((x.13*x.14))) | |
| dhmac = dhmac.17 | |
| eph = (x.14*x.15*inv((x.11*x.12))) | |
| z = macv(dhmac.17, x.10^(x.12*x.16*inv((x.13*x.14))), | |
| h(<x.10^(x.15*x.16*inv((x.11*x.13))), $appKey.17>)) | |
| */ | |
| axiom Eq: | |
| "∀ x y #i. (Eq( x, y ) @ #i) ⇒ (x = y)" | |
| // safety formula | |
| axiom IsTrue: | |
| "∀ x #i. (True( x ) @ #i) ⇒ (x = true)" | |
| // safety formula | |
| lemma Client_auth: | |
| all-traces | |
| "∀ S k #i. | |
| (SessKeyI( S, k ) @ #i) ⇒ | |
| ((∃ #a. SessKeyR( S, k ) @ #a) ∨ | |
| (∃ #r. (LtkReveal( S ) @ #r) ∧ (#r < #i)))" | |
| /* | |
| guarded formula characterizing all counter-examples: | |
| "∃ S k #i. | |
| (SessKeyI( S, k ) @ #i) | |
| ∧ | |
| (∀ #a. (SessKeyR( S, k ) @ #a) ⇒ ⊥) ∧ | |
| (∀ #r. (LtkReveal( S ) @ #r) ⇒ ¬(#r < #i))" | |
| */ | |
| by sorry | |
| /* | |
| WARNING: the following wellformedness checks failed! | |
| lemma actions: | |
| lemma `Client_auth' references action | |
| (ProtoFact Linear "SessKeyI" 2,2,Linear) | |
| but no rule has such an action. | |
| lemma `Client_auth' references action | |
| (ProtoFact Linear "SessKeyR" 2,2,Linear) | |
| but no rule has such an action. | |
| */ | |
| end | |
| ============================================================================== | |
| summary of summaries: | |
| analyzed: shs.spthy | |
| WARNING: 2 wellformedness check failed! | |
| The analysis results might be wrong! | |
| Client_auth (all-traces): analysis incomplete (1 steps) | |
| ============================================================================== |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment