From 0927eb197c11a3c0c702d29969ee1e7379a8be68 Mon Sep 17 00:00:00 2001 From: Donovan Date: Wed, 22 May 2024 11:23:52 -0500 Subject: [PATCH] restore random init --- src/mimick_csharp_test.py | 260 +++++++++++++++++++------------------- 1 file changed, 128 insertions(+), 132 deletions(-) diff --git a/src/mimick_csharp_test.py b/src/mimick_csharp_test.py index ac00722..c44c5ab 100644 --- a/src/mimick_csharp_test.py +++ b/src/mimick_csharp_test.py @@ -332,147 +332,143 @@ def resolve_message(translated_alphabet, translated_messasge): if __name__ == "__main__": - with open("../darc_key_json/client_persistent_keys.json") as fp: - client_persistent_keys = json.load(fp) + #with open("../darc_key_json/client_persistent_keys.json") as fp: + # client_persistent_keys = json.load(fp) - with open("../darc_key_json/client_ephemeral_keys.json") as fp: - client_ephemeral_keys = json.load(fp) + #with open("../darc_key_json/client_ephemeral_keys.json") as fp: + # client_ephemeral_keys = json.load(fp) - with open("../darc_key_json/server_persistent_keys.json") as fp: - server_persistent_keys = json.load(fp) + #with open("../darc_key_json/server_persistent_keys.json") as fp: + # server_persistent_keys = json.load(fp) - with open("../darc_key_json/server_ephemeral_keys.json") as fp: - server_ephemeral_keys = json.load(fp) + #with open("../darc_key_json/server_ephemeral_keys.json") as fp: + # server_ephemeral_keys = json.load(fp) - with open("../darc_key_json/mutual_ephemeral_keys.json") as fp: - mutual_ephemeral_keys = json.load(fp) + #with open("../darc_key_json/mutual_ephemeral_keys.json") as fp: + # mutual_ephemeral_keys = json.load(fp) + + #client_persistent_keys = {k: {"matrix": v} for k, v in client_persistent_keys.items()} + #client_ephemeral_keys = {k: {"matrix": v} for k, v in client_ephemeral_keys.items()} + #server_persistent_keys = {k: {"matrix": v} for k, v in server_persistent_keys.items()} + #server_ephemeral_keys = {k: {"matrix": v} for k, v in server_ephemeral_keys.items()} + #mutual_ephemeral_keys = {k: {"matrix": v} for k, v in mutual_ephemeral_keys.items()} + + #client_keys = ClientKeys( + # Persistent=ClientPersistentKeys( + # Data=ClientPersistentDataKeys( + # OuterClientShuffleKey=client_persistent_keys["OuterClientShuffleKey"], + # OuterClientShuffleFunctionKey=client_persistent_keys["OuterClientShuffleFunctionKey"], + # ClientKey=client_persistent_keys["ClientKey"], + # ClientShuffleKeyA=client_persistent_keys["ClientShuffleKeyA"] + + # ), + # Medium=ClientPersistentMediumKeys( + # OuterClientShuffleMediumKey=client_persistent_keys["OuterClientShuffleMediumKey"], + # OuterClientShuffleFunctionMediumKey=client_persistent_keys["OuterClientShuffleFunctionMediumKey"], + # ClientShuffleMediumKeyA=client_persistent_keys["ClientShuffleMediumKeyA"], + # ClientMediumKey=client_persistent_keys["ClientMediumKey"] + # ) + # ), + # Ephemeral=ClientEphemeralKeys( + # Data=ClientEphemeralDataKeys( + # OuterClientShuffleEphemeralKey=client_ephemeral_keys["OuterClientShuffleEphemeralKey"], + # OuterClientShuffleFunctionEphemeralKey=client_ephemeral_keys["OuterClientShuffleFunctionEphemeralKey"], + # ClientEphemeralKey=client_ephemeral_keys["ClientEphemeralKey"], + # ClientShuffleEphemeralKeyA=client_ephemeral_keys["ClientShuffleEphemeralKeyA"] + # ), + # Medium=ClientEphemeralMediumKeys( + # OuterClientShuffleMediumEphemeralKey=client_ephemeral_keys["OuterClientShuffleMediumEphemeralKey"], + # OuterClientShuffleFunctionMediumEphemeralKey=client_ephemeral_keys["OuterClientShuffleFunctionMediumEphemeralKey"], + # ClientShuffleMediumEphemeralKeyA=client_ephemeral_keys["ClientShuffleMediumEphemeralKeyA"], + # ClientMediumEphemeralKey=client_ephemeral_keys["ClientMediumEphemeralKey"] + # ) + # ) + #) + + #server_keys = ServerKeys( + # Persistent=ServerPersistentKeys( + # Data=ServerPersistentDataKeys( + # OuterServerShuffleKey=server_persistent_keys["OuterServerShuffleKey"], + # ServerKey=server_persistent_keys["ServerKey"], + # ServerShuffleKey=server_persistent_keys["ServerShuffleKey"] + # ), + # Medium=ServerPersistentMediumKeys( + # ServerMediumKey=server_persistent_keys["ServerMediumKey"], + # ) + # ), + # Ephemeral=ServerEphemeralKeys( + # Data=ServerEphemeralDataKeys( + # OuterServerShuffleEphemeralKey=server_ephemeral_keys["OuterServerShuffleEphemeralKey"], + # ServerEphemeralKey=server_ephemeral_keys["ServerEphemeralKey"], + # ServerShuffleEphemeralKey=server_ephemeral_keys["ServerShuffleEphemeralKey"] + # ), + # Medium=ServerEphemeralMediumKeys( + # ServerMediumEphemeralKey=server_ephemeral_keys["ServerMediumEphemeralKey"], + # ) + # ) + #) + + #mutual_keys = MutualKeys( + # Persistent=MutualPersistentKeys( + # Data=MutualPersistentDataKeys( + # OuterFunctionKey=server_persistent_keys["OuterFunctionKey"], + # OuterFunctionFunctionKey=server_persistent_keys["OuterFunctionFunctionKey"], + # OuterServerShuffleFunctionKey=server_persistent_keys["OuterServerShuffleFunctionKey"], + # MutualKey=server_persistent_keys["MutualKey"], + # Inner1=server_persistent_keys["FunctionKey"], + # ClientShuffleKeyX=server_persistent_keys["ClientShuffleKeyX"], + # ), + # Medium=MutualPersistentMediumKeys( + # MutualMediumKey=server_persistent_keys["MutualMediumKey"], + # OuterFunctionMediumKey=server_persistent_keys["OuterFunctionMediumKey"], + # OuterFunctionFunctionMediumKey=server_persistent_keys["OuterFunctionFunctionMediumKey"], + # OuterServerShuffleFunctionMediumKey=server_persistent_keys["OuterServerShuffleFunctionMediumKey"], + # FunctionMediumKey=server_persistent_keys["FunctionMediumKey"], + # ClientShuffleMediumKeyX=server_persistent_keys["ClientShuffleMediumKeyX"], + # OuterPositionShuffleMediumKey=server_persistent_keys["OuterPositionShuffleMediumKey"], + # OuterPositionShuffleFunctionMediumKey=server_persistent_keys["OuterPositionShuffleFunctionMediumKey"], + # OuterPositionFunctionMediumKey=server_persistent_keys["OuterPositionFunctionMediumKey"], + # PositionFunctionMediumKey=server_persistent_keys["PositionFunctionMediumKey"], + # PositionShuffleMediumKey=server_persistent_keys["PositionShuffleMediumKey"], + # ) + # ), + # Ephemeral=MutualEphemeralKeys( + # Data=MutualEphemeralDataKeys( + # MutualKey=mutual_ephemeral_keys["MutualEphemeralKey"], + # Inner1=mutual_ephemeral_keys["FunctionEphemeralKey"], + # OuterFunctionKey=mutual_ephemeral_keys["OuterFunctionEphemeralKey"], + # OuterFunctionFunctionKey=mutual_ephemeral_keys["OuterFunctionFunctionEphemeralKey"], + # OuterServerShuffleFunctionKey=mutual_ephemeral_keys["OuterServerShuffleFunctionEphemeralKey"] + # ), + # Medium=MutualEphemeralMediumKeys( + # MutualMediumKey=mutual_ephemeral_keys["MutualMediumEphemeralKey"], + # FunctionMediumKey=mutual_ephemeral_keys["FunctionMediumEphemeralKey"], + # PositionFunctionMediumEphemeralKey=mutual_ephemeral_keys["PositionFunctionMediumEphemeralKey"], + # OuterFunctionMediumEphemeralKey=mutual_ephemeral_keys["OuterFunctionMediumEphemeralKey"], + # OuterFunctionFunctionMediumEphemeralKey=mutual_ephemeral_keys["OuterFunctionFunctionMediumEphemeralKey"], + # OuterPositionFunctionMediumEphemeralKey=mutual_ephemeral_keys["OuterPositionFunctionMediumEphemeralKey"], + # OuterServerShuffleFunctionMediumEphemeralKey=mutual_ephemeral_keys["OuterServerShuffleFunctionMediumEphemeralKey"], + # OuterPositionShuffleFunctionMediumEphemeralKey=mutual_ephemeral_keys["OuterPositionShuffleFunctionMediumEphemeralKey"], + # PositionShuffleMediumEphemeralKey=mutual_ephemeral_keys["PositionShuffleMediumEphemeralKey"], + # OuterPositionShuffleMediumEphemeralKey=mutual_ephemeral_keys["OuterPositionShuffleMediumEphemeralKey"] + + # ) + # ) + #) + #alphabet = AlphabetKey(**server_ephemeral_keys["Alphabet"]) -# client_persistent_keys = ClientPersistentKeys.random_init(height, width) -# client_ephemeral_keys = ClientEphemeralKeys.random_init(height, width) -# server_persistent_keys = ServerPersistentKeys.random_init(height, width) -# server_ephemeral_keys = ServerEphemeralKeys.random_init(height, width) -# mutual_ephemeral_keys = MutualEphemeralKeys.random_init(height, width) -# mutual_persistent_keys = MutualPersistentKeys.random_init(height, width) + server_keys = ServerKeys.random_init(height, width) + mutual_keys = MutualKeys.random_init(height, width) + client_keys = ClientKeys.random_init(height, width) + alphabet = AlphabetKey.init_matrix(width, height, 255) - client_persistent_keys = {k: {"matrix": v} for k, v in client_persistent_keys.items()} - client_ephemeral_keys = {k: {"matrix": v} for k, v in client_ephemeral_keys.items()} - server_persistent_keys = {k: {"matrix": v} for k, v in server_persistent_keys.items()} - server_ephemeral_keys = {k: {"matrix": v} for k, v in server_ephemeral_keys.items()} - mutual_ephemeral_keys = {k: {"matrix": v} for k, v in mutual_ephemeral_keys.items()} + server_keys.Persistent.Data.ServerKey = server_keys.Persistent.Data.ServerKey ^ mutual_keys.Persistent.Data.MutualKey + server_keys.Persistent.Medium.ServerMediumKey = server_keys.Persistent.Medium.ServerMediumKey ^ mutual_keys.Persistent.Medium.MutualMediumKey - client_keys = ClientKeys( - Persistent=ClientPersistentKeys( - Data=ClientPersistentDataKeys( - OuterClientShuffleKey=client_persistent_keys["OuterClientShuffleKey"], - OuterClientShuffleFunctionKey=client_persistent_keys["OuterClientShuffleFunctionKey"], - ClientKey=client_persistent_keys["ClientKey"], - ClientShuffleKeyA=client_persistent_keys["ClientShuffleKeyA"] + mutual_keys.Persistent.Data.MutualKey = mutual_keys.Persistent.Data.MutualKey ^ client_keys.Persistent.Data.ClientKey + mutual_keys.Persistent.Medium.MutualMediumKey = mutual_keys.Persistent.Medium.MutualMediumKey ^ client_keys.Persistent.Medium.ClientMediumKey - ), - Medium=ClientPersistentMediumKeys( - OuterClientShuffleMediumKey=client_persistent_keys["OuterClientShuffleMediumKey"], - OuterClientShuffleFunctionMediumKey=client_persistent_keys["OuterClientShuffleFunctionMediumKey"], - ClientShuffleMediumKeyA=client_persistent_keys["ClientShuffleMediumKeyA"], - ClientMediumKey=client_persistent_keys["ClientMediumKey"] - ) - ), - Ephemeral=ClientEphemeralKeys( - Data=ClientEphemeralDataKeys( - OuterClientShuffleEphemeralKey=client_ephemeral_keys["OuterClientShuffleEphemeralKey"], - OuterClientShuffleFunctionEphemeralKey=client_ephemeral_keys["OuterClientShuffleFunctionEphemeralKey"], - ClientEphemeralKey=client_ephemeral_keys["ClientEphemeralKey"], - ClientShuffleEphemeralKeyA=client_ephemeral_keys["ClientShuffleEphemeralKeyA"] - ), - Medium=ClientEphemeralMediumKeys( - OuterClientShuffleMediumEphemeralKey=client_ephemeral_keys["OuterClientShuffleMediumEphemeralKey"], - OuterClientShuffleFunctionMediumEphemeralKey=client_ephemeral_keys["OuterClientShuffleFunctionMediumEphemeralKey"], - ClientShuffleMediumEphemeralKeyA=client_ephemeral_keys["ClientShuffleMediumEphemeralKeyA"], - ClientMediumEphemeralKey=client_ephemeral_keys["ClientMediumEphemeralKey"] - ) - ) - ) - - server_keys = ServerKeys( - Persistent=ServerPersistentKeys( - Data=ServerPersistentDataKeys( - OuterServerShuffleKey=server_persistent_keys["OuterServerShuffleKey"], - ServerKey=server_persistent_keys["ServerKey"], - ServerShuffleKey=server_persistent_keys["ServerShuffleKey"] - ), - Medium=ServerPersistentMediumKeys( - ServerMediumKey=server_persistent_keys["ServerMediumKey"], - ) - ), - Ephemeral=ServerEphemeralKeys( - Data=ServerEphemeralDataKeys( - OuterServerShuffleEphemeralKey=server_ephemeral_keys["OuterServerShuffleEphemeralKey"], - ServerEphemeralKey=server_ephemeral_keys["ServerEphemeralKey"], - ServerShuffleEphemeralKey=server_ephemeral_keys["ServerShuffleEphemeralKey"] - ), - Medium=ServerEphemeralMediumKeys( - ServerMediumEphemeralKey=server_ephemeral_keys["ServerMediumEphemeralKey"], - ) - ) - ) - - mutual_keys = MutualKeys( - Persistent=MutualPersistentKeys( - Data=MutualPersistentDataKeys( - OuterFunctionKey=server_persistent_keys["OuterFunctionKey"], - OuterFunctionFunctionKey=server_persistent_keys["OuterFunctionFunctionKey"], - OuterServerShuffleFunctionKey=server_persistent_keys["OuterServerShuffleFunctionKey"], - MutualKey=server_persistent_keys["MutualKey"], - Inner1=server_persistent_keys["FunctionKey"], - ClientShuffleKeyX=server_persistent_keys["ClientShuffleKeyX"], - ), - Medium=MutualPersistentMediumKeys( - MutualMediumKey=server_persistent_keys["MutualMediumKey"], - OuterFunctionMediumKey=server_persistent_keys["OuterFunctionMediumKey"], - OuterFunctionFunctionMediumKey=server_persistent_keys["OuterFunctionFunctionMediumKey"], - OuterServerShuffleFunctionMediumKey=server_persistent_keys["OuterServerShuffleFunctionMediumKey"], - FunctionMediumKey=server_persistent_keys["FunctionMediumKey"], - ClientShuffleMediumKeyX=server_persistent_keys["ClientShuffleMediumKeyX"], - OuterPositionShuffleMediumKey=server_persistent_keys["OuterPositionShuffleMediumKey"], - OuterPositionShuffleFunctionMediumKey=server_persistent_keys["OuterPositionShuffleFunctionMediumKey"], - OuterPositionFunctionMediumKey=server_persistent_keys["OuterPositionFunctionMediumKey"], - PositionFunctionMediumKey=server_persistent_keys["PositionFunctionMediumKey"], - PositionShuffleMediumKey=server_persistent_keys["PositionShuffleMediumKey"], - ) - ), - Ephemeral=MutualEphemeralKeys( - Data=MutualEphemeralDataKeys( - MutualKey=mutual_ephemeral_keys["MutualEphemeralKey"], - Inner1=mutual_ephemeral_keys["FunctionEphemeralKey"], - OuterFunctionKey=mutual_ephemeral_keys["OuterFunctionEphemeralKey"], - OuterFunctionFunctionKey=mutual_ephemeral_keys["OuterFunctionFunctionEphemeralKey"], - OuterServerShuffleFunctionKey=mutual_ephemeral_keys["OuterServerShuffleFunctionEphemeralKey"] - ), - Medium=MutualEphemeralMediumKeys( - MutualMediumKey=mutual_ephemeral_keys["MutualMediumEphemeralKey"], - FunctionMediumKey=mutual_ephemeral_keys["FunctionMediumEphemeralKey"], - PositionFunctionMediumEphemeralKey=mutual_ephemeral_keys["PositionFunctionMediumEphemeralKey"], - OuterFunctionMediumEphemeralKey=mutual_ephemeral_keys["OuterFunctionMediumEphemeralKey"], - OuterFunctionFunctionMediumEphemeralKey=mutual_ephemeral_keys["OuterFunctionFunctionMediumEphemeralKey"], - OuterPositionFunctionMediumEphemeralKey=mutual_ephemeral_keys["OuterPositionFunctionMediumEphemeralKey"], - OuterServerShuffleFunctionMediumEphemeralKey=mutual_ephemeral_keys["OuterServerShuffleFunctionMediumEphemeralKey"], - OuterPositionShuffleFunctionMediumEphemeralKey=mutual_ephemeral_keys["OuterPositionShuffleFunctionMediumEphemeralKey"], - PositionShuffleMediumEphemeralKey=mutual_ephemeral_keys["PositionShuffleMediumEphemeralKey"], - OuterPositionShuffleMediumEphemeralKey=mutual_ephemeral_keys["OuterPositionShuffleMediumEphemeralKey"] - - ) - ) - ) - - - #server_keys.Persistent.Data.ServerKey = server_keys.Persistent.Data.ServerKey ^ mutual_keys.Persistent.Data.MutualKey - #server_keys.Persistent.Medium.ServerMediumKey = server_keys.Persistent.Medium.ServerMediumKey ^ mutual_keys.Persistent.Medium.MutualMediumKey - - #mutual_keys.Persistent.Data.MutualKey = mutual_keys.Persistent.Data.MutualKey ^ client_keys.Persistent.Data.ClientKey - #mutual_keys.Persistent.Medium.MutualMediumKey = mutual_keys.Persistent.Medium.MutualMediumKey ^ client_keys.Persistent.Medium.ClientMediumKey - - #alphabet = AlphabetKey.init_matrix(width, height, 255) - alphabet = AlphabetKey(**server_ephemeral_keys["Alphabet"]) (phase1_alphabet, phase1_medium) = darc_phase1(alphabet, server_keys, mutual_keys) (phase2_alphabet, phase2_medium) = darc_phase2(phase1_alphabet, phase1_medium, client_keys, mutual_keys) (phase3_alphabet, phase3_medium) = darc_phase3(phase2_alphabet, phase2_medium, client_keys, mutual_keys)