From a72ed3f8301b493dfbaad82a2f4dabd4cc0b78f2 Mon Sep 17 00:00:00 2001 From: Donovan Date: Fri, 28 Jun 2024 09:37:01 -0500 Subject: [PATCH] refactor readme --- README.md | 80 +++++++++++++++++++++++++++++++--------------- src/client_darc.py | 10 ++++++ 2 files changed, 64 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index 5fa74ba..463e5ea 100644 --- a/README.md +++ b/README.md @@ -2,39 +2,67 @@ ### translate data ``` -alpha_phase_1 = si1_mo3(so1[alphabet]) ^ mi1_mo2(mo1[s_a ^ m_a ^ se_a]) +alpha_phase1 = ( + ((alphabet < sdo1) << (sdi1 < mdo3)) ^ + (((spda ^ seda) < mdo1) << (mdi1 < mdo2)) +) ``` ### 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])] +alphabet_phase2 = (((( + alphabet_phase1 ^ + (((ceda ^ cpda ^ mpda) < mdo1) << (mdi1 < mdo2)) +) < ~mdo3)) << cdi1) < (mdo3 << cdo1 << cdo2) +``` +#### Replace Alphabet Phase 1 +``` +alphabet_phase2 = (((( + ((alphabet < sdo1) << (sdi1 < mdo3)) ^ + (((spda ^ seda) < mdo1) << (mdi1 < mdo2)) ^ + (((ceda ^ cpda ^ mpda) < mdo1) << (mdi1 < mdo2)) +) < ~mdo3)) << cdi1) < (mdo3 << cdo1 << cdo2) +``` +#### Simplified Expression +``` +alphabet_phase2 = (((( + ((alphabet < sdo1) << (sdi1 < mdo3)) ^ + (((ceda ^ cpda ^ mpda ^ spda ^ seda) < mdo1) << (mdi1 < mdo2)) +) < ~mdo3)) << cdi1) < (mdo3 << cdo1 << cdo2) ``` +recall: +- `spda = s_a ^ m_a` +- `mpda = m_a ^ c_a` +- `cpda = c_a` + +#### Final Alphabet Phase 2 +``` +alphabet_phase2 = (((( + ((alphabet < sdo1) << (sdi1 < mdo3)) ^ + (((ceda ^ s_a ^ seda) < mdo1) << (mdi1 < mdo2)) +) < ~mdo3)) << cdi1) < (mdo3 << cdo1 << cdo2) +``` ### transmit alphabet +``` +alphabet_phase3 = ( + (alphabet_phase2 << ((~cdi1 << mdpi2) < (mdo3 << cdo1 << cdo2))) ^ + ((((ceda ^ cpda ^ meda) < mdo1) << ((mdi1 < mdo2) << (mdpi2 < mdo3))) < (cdo1 << cdo2)) +) +``` + +#### Distribute cdo1 << cdo2 term and replace alphabet_phase2 ``` -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])] +alphabet_phase3 = ( + (( + (alphabet_phase2 << ((~cdi1 << mdpi2) < (mdo3 << cdo1 << cdo2))) ^ + ((((ceda ^ cpda ^ meda) < mdo1) << ((mdi1 < mdo2) << (mdpi2 < mdo3))) < (cdo1 << cdo2)) + ) << ((~cdi1 << mdpi2) < (mdo3 << cdo1_cdo2))) ^ + ( + ( + ((ceda ^ cpda ^ meda) < (mdo1 << cdo1 << cdo2)) << ((mdi1 < (mdo2 << cdo1 << cdo2)) << (mdpi2 < (mdo3 << cdo1 << cdo2))) + ) + ) +) ``` \ No newline at end of file diff --git a/src/client_darc.py b/src/client_darc.py index 04916f2..69e510b 100644 --- a/src/client_darc.py +++ b/src/client_darc.py @@ -113,6 +113,16 @@ def transmit_alphabet( (alphabet_phase2 << ((~cdi1 << mdpi2) < (mdo3 << cdo1_cdo2))) ^ ((((ceda ^ cpda ^ meda) < mdo1) << ((mdi1 < mdo2) << (mdpi2 < mdo3))) < cdo1_cdo2) ) + + + alphabet_phase3 = ( + (alphabet_phase2 << ((~cdi1 << mdpi2) < (mdo3 << cdo1_cdo2))) ^ + ( + ( + ((ceda ^ cpda ^ meda) < (mdo1 << cdo1_cdo2)) << ((mdi1 < (mdo2 << cdo1_cdo2)) << (mdpi2 < (mdo3 << cdo1_cdo2))) + ) + ) + ) return alphabet_phase3