cleanup phase4
This commit is contained in:
0
src/client_darc.py
Normal file
0
src/client_darc.py
Normal file
@@ -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"]
|
||||
|
||||
# )
|
||||
|
||||
@@ -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),
|
||||
)
|
||||
|
||||
|
||||
@@ -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)
|
||||
0
src/server_darc.py
Normal file
0
src/server_darc.py
Normal file
Reference in New Issue
Block a user