31 lines
662 B
Plaintext
31 lines
662 B
Plaintext
|
Soit p et q deux nombres premiers
|
||
|
|
||
|
n = p * q
|
||
|
phi(n) = (p - 1)(q - 1)
|
||
|
choisir e tel que gcd(phi(n), e) = 1
|
||
|
|
||
|
soit un message m
|
||
|
on veut creer un message chiffre c a partir de m
|
||
|
|
||
|
c = m^e mod(n)
|
||
|
|
||
|
ed = 1 mod(phi)
|
||
|
|
||
|
m = c^d mod(n)
|
||
|
|
||
|
|
||
|
Les nombres doivent etre d'une taille arbitraire.
|
||
|
Ils seront stocker dans un tableau.
|
||
|
|
||
|
Il faut definir une structure pour decrire un grand nombre.
|
||
|
Ainsi que plusieurs operations : addition, multiplication, soustraction et modulo.
|
||
|
|
||
|
Il faut soit changer la taille des nombre quand necessaire, soit definir une taille fixe pour chacun des nombres, ce qui est plus simple.
|
||
|
|
||
|
len == length of array
|
||
|
|
||
|
s_bigint {
|
||
|
uint32_t *data;
|
||
|
size_t len;
|
||
|
}
|