| A, B, S : |
principal |
| Na, Nb, Ns : |
number |
| Pa, Pb : |
number |
| K, Ha, Hb : |
number |
| f1 : |
number, number, number, number -> number |
| f2 : |
number, number, number, number -> number |
| f3 : |
number, number, number, number -> number |
| g : |
number, number, number, number -> number |
| xor : |
number,number -> number |
| |
| alias K = f1(Ns,Na,B,Pa) |
| alias Ha = f2(Ns,Na,B,Pa) |
| alias Hb = f3(Ns,Na,B,Pa) |
| 1. |
A |
-> |
B |
: |
A, B, Na |
| 2. |
B |
-> |
S |
: |
A, B, Na, Nb |
| 3. |
S |
-> |
B |
: |
Ns, xor(f1(Ns, Nb, A, Pb), K), |
| |
|
|
|
|
xor(f2(Ns, Nb, A, Pb), Ha), |
| |
|
|
|
|
xor(f3(Ns, Nb, A, Pb), Hb), |
| |
|
|
|
|
g(K, Ha, Hb, Pb) |
| 4. |
B |
-> |
A |
: |
Ns, Hb |
| 5. |
A |
-> |
B |
: |
Ha |