From c2afb48c392e9bd00e95ece050640ce8f267e959 Mon Sep 17 00:00:00 2001 From: Donovan Date: Tue, 28 May 2024 13:00:06 -0500 Subject: [PATCH] cleanup phase4 --- src/client_darc.py | 0 src/mimick_csharp_test.py | 110 ++++++++---------- src/models.py | 4 +- ...est.py => permutation_algebra_examples.py} | 2 +- src/server_darc.py | 0 5 files changed, 51 insertions(+), 65 deletions(-) create mode 100644 src/client_darc.py rename src/{test.py => permutation_algebra_examples.py} (96%) create mode 100644 src/server_darc.py diff --git a/src/client_darc.py b/src/client_darc.py new file mode 100644 index 0000000..e69de29 diff --git a/src/mimick_csharp_test.py b/src/mimick_csharp_test.py index 687d0d5..cb22946 100644 --- a/src/mimick_csharp_test.py +++ b/src/mimick_csharp_test.py @@ -1,8 +1,7 @@ -from src.models import ServerEphemeralKeys, ServerPersistentKeys, ClientEphemeralKeys, ClientPersistentKeys, \ - MutualEphemeralKeys, AlphabetKey, DarcKey, OuterKey, MutualPersistentKeys, ClientKeys, ServerKeys, \ - MutualKeys, ServerPersistentDataKeys, ServerEphemeralDataKeys, MutualPersistentDataKeys, MutualEphemeralDataKeys, \ - ServerPersistentMediumKeys, ServerEphemeralMediumKeys, MutualPersistentMediumKeys, MutualEphemeralMediumKeys, \ - ClientPersistentDataKeys, ClientEphemeralDataKeys, ClientEphemeralMediumKeys, ClientPersistentMediumKeys, InnerKey +from src.models import (AlphabetKey, DarcKey, OuterKey, ClientKeys, ServerKeys, + MutualKeys, ServerPersistentDataKeys, ServerEphemeralDataKeys, MutualPersistentDataKeys, MutualEphemeralDataKeys, + ServerPersistentMediumKeys, ServerEphemeralMediumKeys, MutualPersistentMediumKeys, MutualEphemeralMediumKeys, + ClientPersistentDataKeys, ClientEphemeralDataKeys, ClientEphemeralMediumKeys, ClientPersistentMediumKeys, InnerKey) import json height = 256 @@ -232,78 +231,65 @@ def merge_message(alphabet: DarcKey, medium: DarcKey, client_keys: ClientKeys, m mmo6 = mutual_keys.persistent.medium.outer_key_6 << mutual_keys.ephemeral.medium.outer_key_6 mmo4 = mutual_keys.persistent.medium.outer_key_4 << mutual_keys.ephemeral.medium.outer_key_4 mmo5 = mutual_keys.persistent.medium.outer_key_5 << mutual_keys.ephemeral.medium.outer_key_5 - mpmi4_memi2 = mutual_keys.persistent.medium.inner_key_4 << mutual_keys.ephemeral.medium.inner_key_2 + mmi4 = mutual_keys.persistent.medium.inner_key_4 << mutual_keys.ephemeral.medium.inner_key_4 nmmo6 = ~mmo6 message = medium ^ (a_i << (mmi3 < ~(mmo4 << mmo6))) mmo5_nmmo6 = mmo5 << nmmo6 - message = (message < mmo4) << (mpmi4_memi2 < mmo5_nmmo6) + message = (message < mmo4) << (mmi4 < mmo5_nmmo6) return message def darc_phase_4(alphabet: AlphabetKey, darc_message: AlphabetKey, server_keys: ServerKeys, mutual_keys: MutualKeys) -> DarcKey: - mutual_med_outer_key_6 = mutual_keys.persistent.medium.outer_key_6 << mutual_keys.ephemeral.medium.outer_key_6 - mutual_med_outer_key_4 = mutual_keys.persistent.medium.outer_key_4 << mutual_keys.ephemeral.medium.outer_key_4 + mmo6 = mutual_keys.persistent.medium.outer_key_6 << mutual_keys.ephemeral.medium.outer_key_6 + mmo4 = mutual_keys.persistent.medium.outer_key_4 << mutual_keys.ephemeral.medium.outer_key_4 - outer_key_1 = ~(mutual_med_outer_key_4 << mutual_med_outer_key_6) - mutual_med_outer_key_4 = ~mutual_med_outer_key_4 + nmmo6_nmmo4 = ~(mmo4 << mmo6) - mutual_med_outer_key_5 = mutual_keys.persistent.medium.outer_key_5 << mutual_keys.ephemeral.medium.outer_key_5 - mutual_med_outer_key_5 = mutual_med_outer_key_5 << outer_key_1 + mmo5 = mutual_keys.persistent.medium.outer_key_5 << mutual_keys.ephemeral.medium.outer_key_5 + mmo5_nmmo6_nmmo4 = mmo5 << nmmo6_nmmo4 - mutual_med_outer_key_2 = mutual_keys.persistent.medium.outer_key_2 << mutual_keys.ephemeral.medium.outer_key_2 - mutual_outer_key_3 = mutual_keys.persistent.data.outer_key_3 << mutual_keys.ephemeral.data.outer_key_3 + mmo2 = mutual_keys.persistent.medium.outer_key_2 << mutual_keys.ephemeral.medium.outer_key_2 - mutual_med_outer_key_3 = mutual_keys.persistent.medium.outer_key_3 << mutual_keys.ephemeral.medium.outer_key_3 + mmo3 = mutual_keys.persistent.medium.outer_key_3 << mutual_keys.ephemeral.medium.outer_key_3 - mutual_med_inner_key_1 = mutual_keys.persistent.medium.inner_key_1 << mutual_keys.ephemeral.medium.inner_key_1 + mmi3 = mutual_keys.persistent.medium.inner_key_3 << mutual_keys.ephemeral.medium.inner_key_3 + mmi1 = mutual_keys.persistent.medium.inner_key_1 << mutual_keys.ephemeral.medium.inner_key_1 - mutual_med_inner_key_2 = mutual_keys.persistent.medium.inner_key_2 < mutual_med_outer_key_3 - inner_key_1 = (mutual_med_inner_key_1 < mutual_med_outer_key_2) << mutual_med_inner_key_2 + mpmi2 = mutual_keys.persistent.medium.inner_key_2 < mmo3 - inner_key_2 = mutual_keys.persistent.medium.inner_key_4 << mutual_keys.ephemeral.medium.inner_key_2 + mmi4 = mutual_keys.persistent.medium.inner_key_4 << mutual_keys.ephemeral.medium.inner_key_4 - inner_key_2 = inner_key_2 < mutual_med_outer_key_5 - inner_key_3 = inner_key_1 << inner_key_2 + mmo1 = mutual_keys.persistent.medium.outer_key_1 << mutual_keys.ephemeral.medium.outer_key_1 + + sub_med_mmo1 = (server_keys.persistent.medium.alpha_key ^ server_keys.ephemeral.medium.alpha_key ^ mutual_keys.persistent.medium.alpha_key ^ mutual_keys.ephemeral.medium.alpha_key) < mmo1 + + medium_unwrapped = (((darc_message < ~mmo4) << ~(mmi4 < mmo5_nmmo6_nmmo4)) ^ (sub_med_mmo1 << ((mmi1 < mmo2) << mpmi2))) << (~mmi3 < nmmo6_nmmo4) - mutual_med_outer_key_1 = mutual_keys.persistent.medium.outer_key_1 << mutual_keys.ephemeral.medium.outer_key_1 + mdo3 = mutual_keys.persistent.data.outer_key_3 << mutual_keys.ephemeral.data.outer_key_3 + mpi2_mdo3 = mutual_keys.persistent.data.inner_key_2 < mdo3 + mdo2 = mutual_keys.persistent.data.outer_key_2 << mutual_keys.ephemeral.data.outer_key_2 - message = darc_message < mutual_med_outer_key_4 + mdi1 = mutual_keys.persistent.data.inner_key_1 << mutual_keys.ephemeral.data.inner_key_1 + mdi1_mdo2_mpi2_mdo3 = (mdi1 < mdo2) << mpi2_mdo3 + sdi1_mpdi2__mdo3 = (server_keys.persistent.data.inner_key_1 << server_keys.ephemeral.data.inner_key_1 << mutual_keys.persistent.data.inner_key_2) < mdo3 - operand1 = server_keys.persistent.medium.alpha_key < mutual_med_outer_key_1 - operand2 = server_keys.ephemeral.medium.alpha_key < mutual_med_outer_key_1 - operand3 = mutual_keys.persistent.medium.alpha_key < mutual_med_outer_key_1 - operand4 = mutual_keys.ephemeral.medium.alpha_key < mutual_med_outer_key_1 + sdo1 = server_keys.persistent.data.outer_key_1 << server_keys.ephemeral.data.outer_key_1 + alpha_sdo1__sdi1_mpdi2__mdo3 = (alphabet < sdo1) << sdi1_mpdi2__mdo3 - message = message ^ (operand1 << inner_key_3) ^ (operand2 << inner_key_3) ^ (operand3 << inner_key_3) ^ (operand4 << inner_key_3) + mdo1 = mutual_keys.persistent.data.outer_key_1 << mutual_keys.ephemeral.data.outer_key_1 - mutual_med_inner_key_3 = mutual_keys.persistent.medium.inner_key_3 << mutual_keys.ephemeral.medium.inner_key_3 - message = message << (~inner_key_2 << (~mutual_med_inner_key_3 < outer_key_1)) + sub_mdo1 = (server_keys.persistent.data.alpha_key ^ server_keys.ephemeral.data.alpha_key ^ mutual_keys.persistent.data.alpha_key ^ mutual_keys.ephemeral.data.alpha_key) < mdo1 + translated_alpha = alpha_sdo1__sdi1_mpdi2__mdo3 ^ (sub_mdo1 << mdi1_mdo2_mpi2_mdo3) - mutual_inner_key_2 = mutual_keys.persistent.data.inner_key_2 < mutual_outer_key_3 - mutual_outer_key_2 = mutual_keys.persistent.data.outer_key_2 << mutual_keys.ephemeral.data.outer_key_2 - - mutual_inner_key_1 = mutual_keys.persistent.data.inner_key_1 << mutual_keys.ephemeral.data.inner_key_1 - inner_key_4 = (mutual_inner_key_1 < mutual_outer_key_2) << mutual_inner_key_2 - inner_key_5 = ~(server_keys.ephemeral.data.inner_key_1 << mutual_keys.persistent.data.inner_key_2) << ~(server_keys.persistent.data.inner_key_1) - inner_key_5 = ~(inner_key_5 < mutual_outer_key_3) - - server_outer_key_1 = server_keys.persistent.data.outer_key_1 << server_keys.ephemeral.data.outer_key_1 - translated_alpha = (alphabet < server_outer_key_1) << inner_key_5 - - mutual_outer_key_1 = mutual_keys.persistent.data.outer_key_1 << mutual_keys.ephemeral.data.outer_key_1 - - operand1 = server_keys.persistent.data.alpha_key < mutual_outer_key_1 - operand2 = server_keys.ephemeral.data.alpha_key < mutual_outer_key_1 - operand3 = mutual_keys.persistent.data.alpha_key < mutual_outer_key_1 - operand4 = mutual_keys.ephemeral.data.alpha_key < mutual_outer_key_1 - translated_alpha = translated_alpha ^ (operand1 << inner_key_4) ^ (operand2 << inner_key_4) ^ (operand3 << inner_key_4) ^ (operand4 << inner_key_4) - - return resolve_message(translated_alpha.matrix, message.matrix) + return resolve_message( + translated_alpha.matrix, + medium_unwrapped.matrix + ) def resolve_message(translated_alphabet, translated_messasge): @@ -348,13 +334,13 @@ if __name__ == "__main__": # outer_key_1=client_persistent_keys["outer_key_1"], # outer_key_2=client_persistent_keys["outer_key_2"], # alpha_key=client_persistent_keys["alpha_key"], - # inner_key_2=client_persistent_keys["inner_key_2"] + # inner_key_4=client_persistent_keys["inner_key_4"] # ), # medium_phase2=ClientPersistentMediumKeys( # outer_key_1=client_persistent_keys["outer_key_1"], # outer_key_2=client_persistent_keys["outer_key_2"], - # inner_key_2=client_persistent_keys["inner_key_2"], + # inner_key_4=client_persistent_keys["inner_key_4"], # alpha_key=client_persistent_keys["alpha_key"] # ) # ), @@ -363,12 +349,12 @@ if __name__ == "__main__": # outer_key_1=client_ephemeral_keys["outer_key_1"], # outer_key_2=client_ephemeral_keys["outer_key_2"], # alpha_key=client_ephemeral_keys["alpha_key"], - # inner_key_2=client_ephemeral_keys["inner_key_2"] + # inner_key_4=client_ephemeral_keys["inner_key_4"] # ), # medium_phase2=ClientEphemeralMediumKeys( # outer_key_1=client_ephemeral_keys["outer_key_1"], # outer_key_2=client_ephemeral_keys["outer_key_2"], - # inner_key_2=client_ephemeral_keys["inner_key_2"], + # inner_key_4=client_ephemeral_keys["inner_key_4"], # alpha_key=client_ephemeral_keys["alpha_key"] # ) # ) @@ -379,7 +365,7 @@ if __name__ == "__main__": # data=ServerPersistentDataKeys( # outer_key_1=server_persistent_keys["outer_key_1"], # alpha_key=server_persistent_keys["alpha_key"], - # inner_key_2=server_persistent_keys["inner_key_2"] + # inner_key_4=server_persistent_keys["inner_key_4"] # ), # medium_phase2=ServerPersistentMediumKeys( # alpha_key=server_persistent_keys["alpha_key"], @@ -389,7 +375,7 @@ if __name__ == "__main__": # data=ServerEphemeralDataKeys( # outer_key_1=server_ephemeral_keys["outer_key_1"], # alpha_key=server_ephemeral_keys["alpha_key"], - # inner_key_2=server_ephemeral_keys["inner_key_2"] + # inner_key_4=server_ephemeral_keys["inner_key_4"] # ), # medium_phase2=ServerEphemeralMediumKeys( # alpha_key=server_ephemeral_keys["alpha_key"], @@ -404,7 +390,7 @@ if __name__ == "__main__": # outer_key_2=server_persistent_keys["outer_key_2"], # outer_key_6=server_persistent_keys["outer_key_6"], # alpha_key=server_persistent_keys["alpha_key"], - # inner_key_2=server_persistent_keys["FunctionKey"], + # inner_key_4=server_persistent_keys["FunctionKey"], # inner_key_1=server_persistent_keys["inner_key_1"], # ), # medium_phase2=MutualPersistentMediumKeys( @@ -412,7 +398,7 @@ if __name__ == "__main__": # outer_key_1=server_persistent_keys["outer_key_1"], # outer_key_2=server_persistent_keys["outer_key_2"], # outer_key_6=server_persistent_keys["outer_key_6"], - # inner_key_2=server_persistent_keys["inner_key_2"], + # inner_key_4=server_persistent_keys["inner_key_4"], # inner_key_1=server_persistent_keys["inner_key_1"], # outer_key_3=server_persistent_keys["outer_key_3"], # outer_key_5=server_persistent_keys["outer_key_5"], @@ -424,21 +410,21 @@ if __name__ == "__main__": # ephemeral=MutualEphemeralKeys( # data=MutualEphemeralDataKeys( # alpha_key=mutual_ephemeral_keys["MutualEphemeralKey"], - # inner_key_2=mutual_ephemeral_keys["FunctionEphemeralKey"], + # inner_key_4=mutual_ephemeral_keys["FunctionEphemeralKey"], # outer_key_1=mutual_ephemeral_keys["OuterFunctionEphemeralKey"], # outer_key_2=mutual_ephemeral_keys["OuterFunctionFunctionEphemeralKey"], # outer_key_6=mutual_ephemeral_keys["OuterServerShuffleFunctionEphemeralKey"] # ), # medium_phase2=MutualEphemeralMediumKeys( # alpha_key=mutual_ephemeral_keys["MutualMediumEphemeralKey"], - # inner_key_2=mutual_ephemeral_keys["FunctionMediumEphemeralKey"], + # inner_key_4=mutual_ephemeral_keys["FunctionMediumEphemeralKey"], # inner_key_3=mutual_ephemeral_keys["inner_key_3"], # outer_key_1=mutual_ephemeral_keys["outer_key_1"], # outer_key_2=mutual_ephemeral_keys["outer_key_2"], # outer_key_6=mutual_ephemeral_keys["outer_key_6"], # outer_key_3=mutual_ephemeral_keys["outer_key_3"], # outer_key_5=mutual_ephemeral_keys["outer_key_5"], - # inner_key_2=mutual_ephemeral_keys["inner_key_2"], + # inner_key_4=mutual_ephemeral_keys["inner_key_4"], # outer_key_4=mutual_ephemeral_keys["outer_key_4"] # ) diff --git a/src/models.py b/src/models.py index 2735a84..96fa58f 100644 --- a/src/models.py +++ b/src/models.py @@ -303,7 +303,7 @@ class MutualEphemeralMediumKeys(BaseModel): outer_key_6: OuterKey inner_key_1: InnerKey - inner_key_2: InnerKey + inner_key_4: InnerKey inner_key_3: InnerKey @classmethod @@ -317,7 +317,7 @@ class MutualEphemeralMediumKeys(BaseModel): outer_key_5=OuterKey.init_matrix(height), outer_key_6=OuterKey.init_matrix(height), inner_key_1=InnerKey.init_matrix(width, height), - inner_key_2=InnerKey.init_matrix(width, height), + inner_key_4=InnerKey.init_matrix(width, height), inner_key_3=InnerKey.init_matrix(width, height), ) diff --git a/src/test.py b/src/permutation_algebra_examples.py similarity index 96% rename from src/test.py rename to src/permutation_algebra_examples.py index fb60c08..96b3b6b 100644 --- a/src/test.py +++ b/src/permutation_algebra_examples.py @@ -41,7 +41,7 @@ i0_i1_i2_v2 = (i0 << i1) << i2 print(i0_i1_i2_v0 == i0_i1_i2_v1 == i0_i1_i2_v2) i0_i2_i1 = i0 << i2 << i1 -print(i0_i2_i1 == i0_i1_i2_v0) +#print(i0_i2_i1 == i0_i1_i2_v0) print(i0 == i0_i2_i1 << ~(i2 << i1)) print(i0 == i0_i2_i1 << ~i1 << ~i2) \ No newline at end of file diff --git a/src/server_darc.py b/src/server_darc.py new file mode 100644 index 0000000..e69de29