function getPublicKey($tab = array(), $mod, $e, $block_limit) { $length_tab = count($tab); $public_key = array(); $key_inv_mod = inv_mod($e, $mod); $password_permut = array(); // if (super_croissance_check($tab)) { for ($i = 0; $i < $length_tab; $i++) { $current_operation = $tab[$i] * $e; $modulo_operation = my_modulo($current_operation, $mod); array_push($public_key, $modulo_operation); } // ordonée sans changer la valeur de la clé natsort($public_key); // on fait un foreach pour trouver les valeurs de la clé foreach ($public_key as $key => $value) { array_push($password_permut, $key); } echo "\n Alice garde precieusement le mot de passe : [ "; foreach ($password_permut as $index_pass) { echo $index_pass; } echo " ]\n"; // on sort en modifiant les valeurs de l'index sort($public_key); echo "\n Alice envoie une clé publique à Bernard : [ "; foreach ($public_key as $values_in_key) { echo $values_in_key, " "; } echo " ]\n"; echo "\n Et envoie la limite de block à Bernard : [ ", $block_limit, " ]\n"; return [$public_key, $password_permut]; // } }
function decrypt($tab = array(), $e, $mod, $mess = array(), $passKey, $bloc_limit) { $new_key = array(); $message_array = array(); // calcul de l'inverse modulaire $inverse = inv_mod($e, $mod); $new_key = passwd($passKey, $tab); $message_array = decryptMess($mess, $mod, $inverse); decryptMessToBin($new_key, $message_array, $bloc_limit); }