clean part of merge message
This commit is contained in:
@@ -98,7 +98,7 @@ def receive_alphabet(alphabet_phase1: AlphabetKey, client_persistent_keys: Clien
|
|||||||
return alphabet_phase2
|
return alphabet_phase2
|
||||||
|
|
||||||
|
|
||||||
def receive_medium(medium: AlphabetKey, client_persistent_keys: ClientPersistentMediumKeys, client_ephemeral_keys: ClientEphemeralMediumKeys, mutual_persistent_keys: MutualPersistentMediumKeys, mutual_ephemeral_keys: MutualEphemeralMediumKeys):
|
def receive_medium(medium_phase1: AlphabetKey, client_persistent_keys: ClientPersistentMediumKeys, client_ephemeral_keys: ClientEphemeralMediumKeys, mutual_persistent_keys: MutualPersistentMediumKeys, mutual_ephemeral_keys: MutualEphemeralMediumKeys):
|
||||||
mi1 = mutual_persistent_keys.inner_key_1 << mutual_ephemeral_keys.inner_key_1
|
mi1 = mutual_persistent_keys.inner_key_1 << mutual_ephemeral_keys.inner_key_1
|
||||||
mo1 = mutual_persistent_keys.outer_key_1 << mutual_ephemeral_keys.outer_key_1
|
mo1 = mutual_persistent_keys.outer_key_1 << mutual_ephemeral_keys.outer_key_1
|
||||||
mo2 = mutual_persistent_keys.outer_key_2 << mutual_ephemeral_keys.outer_key_2
|
mo2 = mutual_persistent_keys.outer_key_2 << mutual_ephemeral_keys.outer_key_2
|
||||||
@@ -108,7 +108,7 @@ def receive_medium(medium: AlphabetKey, client_persistent_keys: ClientPersistent
|
|||||||
|
|
||||||
substitution = client_ephemeral_keys.alpha_key ^ client_persistent_keys.alpha_key ^ mutual_persistent_keys.alpha_key
|
substitution = client_ephemeral_keys.alpha_key ^ client_persistent_keys.alpha_key ^ mutual_persistent_keys.alpha_key
|
||||||
sub_mo1_mi1_mo2 = (substitution < mo1) << mi1_mo2
|
sub_mo1_mi1_mo2 = (substitution < mo1) << mi1_mo2
|
||||||
result = medium ^ sub_mo1_mi1_mo2
|
result = medium_phase1 ^ sub_mo1_mi1_mo2
|
||||||
|
|
||||||
ci1 = client_persistent_keys.inner_key_1 << client_ephemeral_keys.inner_key_1
|
ci1 = client_persistent_keys.inner_key_1 << client_ephemeral_keys.inner_key_1
|
||||||
ci1_mo3 = ci1 < mo3
|
ci1_mo3 = ci1 < mo3
|
||||||
@@ -157,30 +157,26 @@ def transmit_medium(medium_phase2: DarcKey, client_persistent_keys: ClientPersis
|
|||||||
co2 = client_persistent_keys.outer_key_2 << client_ephemeral_keys.outer_key_2
|
co2 = client_persistent_keys.outer_key_2 << client_ephemeral_keys.outer_key_2
|
||||||
|
|
||||||
co1_co2 = co1 << co2
|
co1_co2 = co1 << co2
|
||||||
mo3_co1_co2 = mo3 << co1_co2
|
|
||||||
|
|
||||||
mo2 = mutual_persistent_keys.outer_key_2 << mutual_ephemeral_keys.outer_key_2
|
mo2 = mutual_persistent_keys.outer_key_2 << mutual_ephemeral_keys.outer_key_2
|
||||||
mi1 = mutual_persistent_keys.inner_key_1 << mutual_ephemeral_keys.inner_key_1
|
mi1 = mutual_persistent_keys.inner_key_1 << mutual_ephemeral_keys.inner_key_1
|
||||||
|
|
||||||
mi1_mo2 = mi1 < mo2
|
mi1_mo2 = mi1 < mo2
|
||||||
mpi1_mo3 = mutual_persistent_keys.inner_key_2 < mo3
|
mpi1_mo3 = mutual_persistent_keys.inner_key_2 < mo3
|
||||||
mi1_mo2_mpi1_mo3__co1_co2 = (mi1_mo2 << mpi1_mo3) < co1_co2
|
mi1_mo2_mpi1_mo3 = mi1_mo2 << mpi1_mo3
|
||||||
|
|
||||||
ncei1_ncpi2 = ~(client_persistent_keys.inner_key_1 << client_ephemeral_keys.inner_key_1) << mutual_persistent_keys.inner_key_2
|
ncei1_ncpi2 = ~(client_persistent_keys.inner_key_1 << client_ephemeral_keys.inner_key_1) << mutual_persistent_keys.inner_key_2
|
||||||
ncei1_ncpi2__mo3_co1_co2 = ncei1_ncpi2 < mo3_co1_co2
|
ncei1_ncpi2__mo3 = ncei1_ncpi2 < mo3
|
||||||
|
|
||||||
result = medium_phase2 << ncei1_ncpi2__mo3_co1_co2
|
result = (medium_phase2 < ~co1_co2) << ncei1_ncpi2__mo3
|
||||||
mo1 = mutual_persistent_keys.outer_key_1 << mutual_ephemeral_keys.outer_key_1
|
mo1 = mutual_persistent_keys.outer_key_1 << mutual_ephemeral_keys.outer_key_1
|
||||||
mo1_co1_co2 = mo1 << co1_co2
|
|
||||||
|
|
||||||
sub = client_persistent_keys.alpha_key ^ client_ephemeral_keys.alpha_key ^ mutual_ephemeral_keys.alpha_key
|
sub = client_persistent_keys.alpha_key ^ client_ephemeral_keys.alpha_key ^ mutual_ephemeral_keys.alpha_key
|
||||||
sub_mo1_co1_co2 = sub < mo1_co1_co2
|
sub_mo1 = sub < mo1
|
||||||
sub_mo1_co1_co2_mi1_mo2_mpi1_mo3_co1_co2 = sub_mo1_co1_co2 << mi1_mo2_mpi1_mo3__co1_co2
|
sub_mo1_mi1_mo2_mpi1_mo3 = (sub_mo1 << mi1_mo2_mpi1_mo3)
|
||||||
result = (result ^ sub_mo1_co1_co2_mi1_mo2_mpi1_mo3_co1_co2)
|
medium_phase3 = (result ^ sub_mo1_mi1_mo2_mpi1_mo3) < co1_co2
|
||||||
|
|
||||||
#result = result ^ (operand1 << mi1_mo2_mpi1_mo3__co1_co2) ^ (operand2 << mi1_mo2_mpi1_mo3__co1_co2) ^ (operand3 << mi1_mo2_mpi1_mo3__co1_co2)
|
return medium_phase3
|
||||||
|
|
||||||
return result
|
|
||||||
|
|
||||||
|
|
||||||
def transceive_alphabet(alphabet_phase1: DarcKey, client_persistent_keys: ClientPersistentDataKeys, client_ephemeral_keys: ClientEphemeralDataKeys, mutual_persistent_keys: MutualPersistentDataKeys, mutual_ephemeral_keys: MutualEphemeralDataKeys):
|
def transceive_alphabet(alphabet_phase1: DarcKey, client_persistent_keys: ClientPersistentDataKeys, client_ephemeral_keys: ClientEphemeralDataKeys, mutual_persistent_keys: MutualPersistentDataKeys, mutual_ephemeral_keys: MutualEphemeralDataKeys):
|
||||||
@@ -198,16 +194,23 @@ def transceive_alphabet(alphabet_phase1: DarcKey, client_persistent_keys: Client
|
|||||||
|
|
||||||
|
|
||||||
def transceive_medium(medium_phase1: DarcKey, client_persistent_keys: ClientPersistentDataKeys, client_ephemeral_keys: ClientEphemeralDataKeys, mutual_persistent_keys: MutualPersistentDataKeys, mutual_ephemeral_keys: MutualEphemeralDataKeys):
|
def transceive_medium(medium_phase1: DarcKey, client_persistent_keys: ClientPersistentDataKeys, client_ephemeral_keys: ClientEphemeralDataKeys, mutual_persistent_keys: MutualPersistentDataKeys, mutual_ephemeral_keys: MutualEphemeralDataKeys):
|
||||||
|
mi1 = mutual_persistent_keys.inner_key_1 << mutual_ephemeral_keys.inner_key_1
|
||||||
|
mo1 = mutual_persistent_keys.outer_key_1 << mutual_ephemeral_keys.outer_key_1
|
||||||
mo2 = mutual_persistent_keys.outer_key_2 << mutual_ephemeral_keys.outer_key_2
|
mo2 = mutual_persistent_keys.outer_key_2 << mutual_ephemeral_keys.outer_key_2
|
||||||
mo3 = mutual_persistent_keys.outer_key_3 << mutual_ephemeral_keys.outer_key_3
|
mo3 = mutual_persistent_keys.outer_key_3 << mutual_ephemeral_keys.outer_key_3
|
||||||
|
co1 = client_persistent_keys.outer_key_1 << client_ephemeral_keys.outer_key_1
|
||||||
|
co2 = client_persistent_keys.outer_key_2 << client_ephemeral_keys.outer_key_2
|
||||||
|
|
||||||
mo1 = mutual_persistent_keys.outer_key_1 << mutual_ephemeral_keys.outer_key_1
|
mi1_mo2 = mi1 < mo2
|
||||||
|
|
||||||
ma = mutual_persistent_keys.alpha_key ^ mutual_ephemeral_keys.alpha_key
|
ma = mutual_persistent_keys.alpha_key ^ mutual_ephemeral_keys.alpha_key
|
||||||
mi1 = mutual_persistent_keys.inner_key_1 << mutual_ephemeral_keys.inner_key_1
|
ma_mo1_mi1_mo2 = (ma < mo1) << mi1_mo2
|
||||||
|
|
||||||
ma_mo1_mi1_mo2 = (ma < mo1) << (mi1 < mo2)
|
result = medium_phase1 ^ ma_mo1_mi1_mo2
|
||||||
medium_phase3 = (medium_phase1 ^ ma_mo1_mi1_mo2) << (mutual_persistent_keys.inner_key_2 < mo3)
|
|
||||||
|
mpi1_mo3 = mutual_persistent_keys.inner_key_2 < mo3
|
||||||
|
|
||||||
|
medium_phase3 = (result << mpi1_mo3) < (co1 << co2)
|
||||||
return medium_phase3
|
return medium_phase3
|
||||||
|
|
||||||
|
|
||||||
@@ -221,20 +224,20 @@ def merge_message(alphabet: DarcKey, medium: DarcKey, client_keys: ClientKeys, m
|
|||||||
else:
|
else:
|
||||||
padded_input_sequence = OuterKey(matrix=[input_sequence])
|
padded_input_sequence = OuterKey(matrix=[input_sequence])
|
||||||
|
|
||||||
client_outer_key_1 = padded_input_sequence
|
input_seq = padded_input_sequence
|
||||||
|
|
||||||
client_med_outer_key_1 = client_keys.persistent.medium.outer_key_1 << client_keys.ephemeral.medium.outer_key_1
|
cmo1 = client_keys.persistent.medium.outer_key_1 << client_keys.ephemeral.medium.outer_key_1
|
||||||
client_med_outer_key_2 = client_keys.persistent.medium.outer_key_2 << client_keys.ephemeral.medium.outer_key_2
|
cmo2 = client_keys.persistent.medium.outer_key_2 << client_keys.ephemeral.medium.outer_key_2
|
||||||
|
|
||||||
client_med_outer_key_1 = client_med_outer_key_1 << client_med_outer_key_2
|
cmo1_cmo2 = cmo1 << cmo2
|
||||||
|
|
||||||
client_outer_key_1 = client_outer_key_1 << client_med_outer_key_1
|
input_cmo1_cmo2 = input_seq << cmo1_cmo2
|
||||||
message = alphabet < client_outer_key_1
|
message = alphabet < input_cmo1_cmo2
|
||||||
|
|
||||||
message_pad_key = ~client_med_outer_key_1
|
ncmo2_ncmo1 = ~cmo1_cmo2
|
||||||
|
|
||||||
if msg_len < height:
|
if msg_len < height:
|
||||||
message.matrix[message_pad_key.matrix[0][msg_len]] = eof_arr
|
message.matrix[ncmo2_ncmo1.matrix[0][msg_len]] = eof_arr
|
||||||
|
|
||||||
mutual_inner_key_3 = mutual_keys.persistent.medium.inner_key_3 << mutual_keys.ephemeral.medium.inner_key_3
|
mutual_inner_key_3 = mutual_keys.persistent.medium.inner_key_3 << mutual_keys.ephemeral.medium.inner_key_3
|
||||||
mutual_outer_key_6 = mutual_keys.persistent.medium.outer_key_6 << mutual_keys.ephemeral.medium.outer_key_6
|
mutual_outer_key_6 = mutual_keys.persistent.medium.outer_key_6 << mutual_keys.ephemeral.medium.outer_key_6
|
||||||
@@ -242,8 +245,7 @@ def merge_message(alphabet: DarcKey, medium: DarcKey, client_keys: ClientKeys, m
|
|||||||
|
|
||||||
outer_key_1 = mutual_outer_key_4 << mutual_outer_key_6
|
outer_key_1 = mutual_outer_key_4 << mutual_outer_key_6
|
||||||
|
|
||||||
client_med_outer_key_1 = ~client_med_outer_key_1
|
outer_key_1 = ~(ncmo2_ncmo1 << outer_key_1)
|
||||||
outer_key_1 = ~(client_med_outer_key_1 << outer_key_1)
|
|
||||||
|
|
||||||
mutual_inner_key_3 = mutual_inner_key_3 < outer_key_1
|
mutual_inner_key_3 = mutual_inner_key_3 < outer_key_1
|
||||||
|
|
||||||
@@ -252,7 +254,7 @@ def merge_message(alphabet: DarcKey, medium: DarcKey, client_keys: ClientKeys, m
|
|||||||
mutual_outer_key_5 = mutual_keys.persistent.medium.outer_key_5 << mutual_keys.ephemeral.medium.outer_key_5
|
mutual_outer_key_5 = mutual_keys.persistent.medium.outer_key_5 << mutual_keys.ephemeral.medium.outer_key_5
|
||||||
mutual_inner_key = mutual_keys.persistent.medium.inner_key_4 << mutual_keys.ephemeral.medium.inner_key_2
|
mutual_inner_key = mutual_keys.persistent.medium.inner_key_4 << mutual_keys.ephemeral.medium.inner_key_2
|
||||||
|
|
||||||
mutual_outer_key_4 = client_med_outer_key_1 << mutual_outer_key_4
|
mutual_outer_key_4 = ncmo2_ncmo1 << mutual_outer_key_4
|
||||||
outer_key_2 = mutual_outer_key_5 << outer_key_1
|
outer_key_2 = mutual_outer_key_5 << outer_key_1
|
||||||
|
|
||||||
message = message << (mutual_inner_key < outer_key_2)
|
message = message << (mutual_inner_key < outer_key_2)
|
||||||
@@ -474,9 +476,7 @@ if __name__ == "__main__":
|
|||||||
mutual_keys.persistent.medium.alpha_key = mutual_keys.persistent.medium.alpha_key ^ client_keys.persistent.medium.alpha_key
|
mutual_keys.persistent.medium.alpha_key = mutual_keys.persistent.medium.alpha_key ^ client_keys.persistent.medium.alpha_key
|
||||||
|
|
||||||
(alphabet_phase1, medium_phase1) = darc_phase1(alphabet, server_keys, mutual_keys)
|
(alphabet_phase1, medium_phase1) = darc_phase1(alphabet, server_keys, mutual_keys)
|
||||||
(alphabet_phase2, medium_phase2) = darc_phase2(alphabet_phase1, medium_phase1, client_keys, mutual_keys)
|
phase3_medium = transceive_medium(medium_phase1, client_keys.persistent.medium, client_keys.ephemeral.medium, mutual_keys.persistent.medium, mutual_keys.ephemeral.medium)
|
||||||
(_, phase3_medium) = darc_phase3(alphabet_phase2, medium_phase2, client_keys, mutual_keys)
|
|
||||||
|
|
||||||
phase3_alphabet = transceive_alphabet(alphabet_phase1, client_keys.persistent.data, client_keys.ephemeral.data, mutual_keys.persistent.data, mutual_keys.ephemeral.data)
|
phase3_alphabet = transceive_alphabet(alphabet_phase1, client_keys.persistent.data, client_keys.ephemeral.data, mutual_keys.persistent.data, mutual_keys.ephemeral.data)
|
||||||
original_message = OuterKey.init_matrix(height).matrix[0]
|
original_message = OuterKey.init_matrix(height).matrix[0]
|
||||||
darc_message = merge_message(phase3_alphabet, phase3_medium, client_keys, mutual_keys, original_message)
|
darc_message = merge_message(phase3_alphabet, phase3_medium, client_keys, mutual_keys, original_message)
|
||||||
|
|||||||
Reference in New Issue
Block a user