40 lines
1.6 KiB
Markdown
40 lines
1.6 KiB
Markdown
# DARC
|
|
|
|
### translate data
|
|
```
|
|
alpha_phase_1 = si1_mo3(so1[alphabet]) ^ mi1_mo2(mo1[s_a ^ m_a ^ se_a])
|
|
```
|
|
|
|
### receive alphabet
|
|
recall:
|
|
- `server_persistent_key.alpha = s_a ^ m_a`
|
|
- `mutual_persistent_key.alpha = m_a ^ c_a`
|
|
- `client_persistent_key.alpha = c_a`
|
|
```
|
|
result = alpha_phase_1 ^ mi1_mo2(mo1[ce_a ^ c_a ^ m_a ^ c_a])
|
|
result = alpha_phase_1 ^ mi1_mo2(mo1[ce_a ^ m_a]) # c_a cancels
|
|
result = si1_mo3(so1[alphabet]) ^ mi1_mo2(mo1[s_a ^ m_a ^ se_a]) ^ mi1_mo2(mo1[ce_a ^ m_a]) # expand alpha phase 1
|
|
result = si1_mo3(so1[alphabet]) ^ mi1_mo2(mo1[s_a ^ se_a ^ ce_a]) # client_ephemeral_alpha added and m_a cancels
|
|
expr1 = result
|
|
|
|
alpha_phase_2 = mo3_co1_co2[ci1(nmo3[expr1])]
|
|
```
|
|
|
|
### transmit alphabet
|
|
|
|
```
|
|
result = nceil_ncpi1_mpi2_mo3_co1_co2(alpha_phase_2)
|
|
result = nceil_ncpi1_mpi2_mo3_co1_co2(mo3_co1_co2[ci1(nmo3[expr1])])
|
|
result = mo3_co1_co2[nceil_ncpi1_mpi2(ci1(nmo3[expr1]))]
|
|
result = mo3_co1_co2[mpi2(nmo3[expr1])]
|
|
result = mo3_co1_co2[mpi2(nmo3[ si1_mo3(so1[alphabet]) ^ mi1_mo2(mo1[s_a ^ se_a ^ ce_a])])]
|
|
result = mo3_co1_co2[mpi2(si1(so1[alphabet]) ^ nmo3[mi1_mo2(mo1[s_a ^ se_a ^ ce_a])])]
|
|
|
|
alpha_phase_3 = result ^ co1_co2[mi1_mo2_mpi2_mo3(mo1[ce_a ^ c_a ^ m_a ^ c_a])]
|
|
alpha_phase_3 = result ^ co1_co2[mi1_mo2_mpi2_mo3(mo1[ce_a ^ m_a])]
|
|
|
|
alpha_phase_3 = mo3_co1_co2[mpi2(si1(so1[alphabet]) ^ nmo3[mi1_mo2(mo1[s_a ^ se_a ^ ce_a])])] ^ co1_co2[mi1_mo2_mpi2_mo3(mo1[ce_a ^ m_a])]
|
|
|
|
alpha_phase_3 = co1_co2[ si1_mpi2_mo3(so1[alphabet]) ^ mi1_mo2_mpi2_mo3(mo1[s_a ^ se_a ^ ce_a]) ^ mi1_mo2_mpi2_mo3(mo1[ce_a ^ m_a])]
|
|
alpha_phase_3 = co1_co2[ si1_mpi2_mo3(so1[alphabet]) ^ mi1_mo2_mpi2_mo3(mo1[s_a ^ se_a ^ m_a])]
|
|
``` |