mahaaaham / FHE_implementation

Study and implementation of an fully homomorphic cryptosystem
1 stars 1 forks source link

Concernant le code circuits.sage #2

Closed mahaaaham closed 5 years ago

mahaaaham commented 5 years ago

Du coup, j'ai opté pour un type string plus léger et pratique ^^.

Ainsi, pour écrire la fonction :

(a,b,c,d) ---> a . (b + (c * a))

on note :

"abcd|.a+b*ca"

les variables sont donc déclarées avant le '|' et la fonction est en notation préfixe.

Note que des constantes peuvent elles aussi être définies, via le dictionnaire dict_const. Ainsi, pour écrire :

(a,c,d) ---> a . (1 + (c * a))

on note :

"acd|.a+1*ca"
où dict_const['1'] = 1

Les variables ne peuvent pas avoir un nom autre qu'une lettre.

Les fonctions sont déclaréees dans un dictionnaire dict_op, qui associe le symbole (un charactère la aussi, et éviter l'alpha num pour éviter conflit avec variables: donc * plutôt que x)

voilà !

mahaaaham commented 5 years ago

dans circuit.sage, y'a le code principal.

Dans simple_circuits.sage, y'a un example avec un dict_op (qui doit être une variable globale) et une fonction de test qui voit si ça marche...