# 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])] ```