Travaux pratiques de math´ematiques - M´ethode RSA
Snb-tp3.1 . Crible d’´
Eratosth`ene. [1- B. Ischi 08-09 ]
Compl´eter le script suivant de mani`ere `a obtenir un programme qui cherche les nombres premiers
inf´erieurs `a n`a l’aide du crible d’´
Eratosth`ene.
1n=10000;
2tableau =[1:1:?];
3tableau ( 1 ) =0;
4for l=1:?
5i f (tableau(l)>0)
6k=?;
7while (?<=?)
8tableau ( ? ) =0;
9k=k+1;
10 end
11 end
12 end
13 tableau(n100:n)
Snb-tp3.2 . Nombres premiers. [1- B. Ischi 08-09 ]
Compl´eter le script suivant de mani`ere `a obtenir un programme qui d´etermine si le nombre p
donn´e par l’utilisateur est premier. L’algorithme consiste `a tester, pour chaque nombre kcompris
entre 2et p1, si pest divisible par k.
1p=input(Tapez un nombre e n t i e r : ) ;
2k=?;
3while (mod (? ,?)>0) & (? <?)
4k=k+1;
5end
6i f (?==?)
7pr i n t f (Ce nombre e s t pr em ier . \n)
8else
9pr i n t f (Ce nombre n e s t pas p remi er . \n)
10 end
Peut-on simplement am´eliorer l’algorithme de mani`ere `a acc´el´erer le programme ?
Snb-tp3.3 . Puissances et modulo: algorithme na¨ıf. [1- B. Ischi 08-09 ]
(1) Calculer 2355 mod 23.
(2) Ex´ecuter la commande mod(23ˆ55,23) avec Octave. Le r´esultat est-il le mˆeme qu’au point 1
ci-dessus ?
(3) Compl´eter le script suivant de mani`ere `a obtenir une fonction qui calcule kemod n
exactement.
1cl ea r
2function x=pm(k,e,n)
3s=?;
4km=mod ( ? , ? ) ;
5for l=1:?
6s=mod( ? ? , ? ) ;
7end
8x=s;
9end
10 #
11 pm(55 ,1234 ,55)
(4) V´erifier le bon fonctionnement du programme en calculant 2355 mod 23 = 0.
1
Travaux pratiques de math´ematiques - M´ethode RSA (page 2/6)
Snb-tp3.4 . Puissances: algorithme na¨ıf. [1- B. Ischi 14-15 ]
(1) Calculer 12123456 mod 3, 121234567 mod 3, 1212345678 mod 3 et 12123456789 mod 3 de tˆete.
(2) Calculer 12123456 mod 3, 121234567 mod 3, 1212345678 mod 3 et 12123456789 mod 3 avec l’algo-
rithme na¨ıf en ex´ecutant les commandes mp(12,123456,3),mp(12,1234567,3), etc.
Pourquoi le temps de calcul est-il long ?
(3) Est-il possible de calculer 12(10300 )mod 3 avec l’algorithme na¨ıf ?
Snb-tp3.5 . Base 2. [1- B. Ischi 14-15 ]
Compl´eter le script Octave suivant
1cl ea r a
2function r=tobin(e)
3l=?;
4while e>?
5r(l)=mod ( ? , ? ) ;
6e=(e?) / ? ;
7l=l+?;
8end
9end
10 tobin (123)
pour cr´eer une fonction tobin qui donne l’´ecriture en base 2 d’un nombre edonn´e en base 10. Par
exemple, l’ex´ecution de la commande tobin(123) donne
octave:16> tobin(123)
ans =
1101111
car
123 = 1 ·20+ 1 ·21+ 0 ·22+ 1 ·23+ 1 ·24+ 1 ·25+ 1 ·26
Snb-tp3.6 . Algorithme rapide. [1- B. Ischi 14-15 ]
Compl´eter le script Octave suivant
1cl ea r a
2function r=tobin(e)
3l=;
4while e>?
5r(l)=mod ( ? , ? ) ;
6e=(e?) / ? ;
7l=l+?;
8end
9end
10 function s=pmsmart (k,e,n)
11 r=tobin(e) ;
12 l=length ( ? ) ;
13 s=?;
14 kn=mod ( ? , ? ) ;
15 for k=1:?
16 i f r( ? )==?
17 s=mod ( ? , ? ) ;
18 end
19 kn=mod ( ? , ? ) ;
20 end
21 end
22 pmsmart (12 ,123456789 ,3)
pour cr´eer une fonction pmsmart(k,e,n)qui calcule kemod eavec l’algorithme rapide.
Travaux pratiques de math´ematiques - M´ethode RSA (page 3/6)
Snb-tp3.7 . PGCD. [1- B. Ischi 08-09 ]
Compl´eter le script suivant de mani`ere `a obtenir une fonction qui calcule le pgcd de deux nombres
`a l’aide de l’algorithme d’Euclide.
1cl ea r
2function x=pgcd(a,b)
3c=min ( ? , ? ) ;
4while (c>?)
5s=abs (? ?) ;
6a=?;
7b=?;
8c=min ( ? , ? ) ;
9end
10 x=?;
11 end
12 #
13 pgcd (20 ,8)
Snb-tp3.8 . Algorithme d’Euclide ´etendu. [1- B. Ischi 08-09 ]
Compl´eter le script suivant de mani`ere `a obtenir une fonction qui calcule le pgcd de deux nombres
aet b`a l’aide de l’algorithme d’Euclide ´etendu et qui donne deux entiers set ttels que
pgcd(a, b) = a·s+b·t
1cl ea r
2function x=pgcd2(a,b)
3s1 =?;
4t1 =?;
5s2 =?;
6t2 =?;
7a1=max( ? , ? ) ;
8b1=min ( ? , ? ) ;
9r1=mod ( ? , ? ) ;
10 while (r1 >0)
11 q1=floor ( ? / ? ) ;
12 s=???;
13 t=???;
14 t1 =?;
15 s1 =?;
16 t2 =?;
17 s2 =?;
18 a1 =?;
19 b1 =?;
20 r1=mod ( ? , ? ) ;
21 end
22 x( 3 )=b1 ;
23 x( 1 )=s2 ;
24 x( 2 )=t2 ;
25 end
26 #
27 pgcd2 (2322 ,654)
Snb-tp3.9 . Syst`eme RSA. [1- B. Ischi 08-09 ]
Trouver une cl´e RSA, c’est-`a-dire quatre nombres p,q,eet dtels que
(1) pet qsont premiers (avec p,q < 100 et n:= p·q > 256)
(2) erelativement premier `a ϕ(n) := (p1) ·(q1)
(3) dpositif tel que d·e1(mod ϕ(n))
Travaux pratiques de math´ematiques - M´ethode RSA (page 4/6)
Les nombres net edoivent ˆetre communiqu´es `a la classe. En revanche, les nombres p,qet dne
doivent pas ˆetre divulgu´es; ils constituent la cl´e priv´ee de la m´ethode RSA.
Indications: Pour le point (2) compl´eter et ex´ecuter le script suivant
1cl ea r
2function x=pgcd(a,b)
3c=min ( ? , ? ) ;
4while (c>?)
5s=abs (? ?) ;
6a=?;
7b=?;
8c=min ( ? , ? ) ;
9end
10 x=?;
11 end
12 #
13 phi n =?;
14 max=10;
15 n0 =40;
16 n1=n0+max;
17 p=1;
18 for k=n0 :n1
19 i f (pgcd (phin ,k)==?)
20 e(p) =?;
21 p=p+1;
22 end
23 end
24 e
Pour le point (3), il faut remarquer que
d·e1 (mod ϕ(n)) d·ek·ϕ(n) = 1
Comme pgcd(e, ϕ(n)) = 1, l’algorithme ´etendu d’Euclide permet de trouver d. Si le dtrouv´e est
n´egatif, il faut prendre d0>0 tel que d0d(mod ϕ(n)).
Snb-tp3.10 . Syst`eme RSA. [1- B. Ischi 08-09 ]
(1) Compl´eter et ex´ecuter le script suivant pour envoyer un message crypt´e `a un camarade
(le texte est coup´e en blocs contenant une seule lettre chacun).
1n=?;
2e=?;
3#
4function x=pm(k,e,n)
5s=?;
6km=mod ( ? , ? ) ;
7for l=1:?
8s=mod( ? ? , ? ) ;
9end
10 x=s;
11 end
12 #
13 m=” Bonjour , comment a l l e z vous ? ;
14 M=toascii ( ? ) ;
15 l=length ( ? ) ;
16 for k=1:?
17 MESSAGE(k)=pm( ? , ? , ? ) ;
18 end
19 MESSAGE
Indication: Il faut utiliser les ´el´ements de la cl´e publique du destinataire du message.
Travaux pratiques de math´ematiques - M´ethode RSA (page 5/6)
(2) Compl´eter et ex´ecuter le script suivant pour d´ecrypter un message envoe par un cama-
rade.
1n=?;
2d=?;
3#
4function x=pm(k,e,n)
5s=?;
6km=mod ( ? , ? ) ;
7for l=1:?
8s=mod( ? ? , ? ) ;
9end
10 x=s;
11 end
12 #
13 l=length (MESSAGE) ;
14 for k=1:?
15 message (k)=pm(MESSAGE(k) , ? , ? ) ;
16 end
17 ch ar (message )
Snb-tp3.11 . Syst`eme RSA. [1- B. Ischi 08-09 ]
Envoyer un message crypt´e avec la m´ethode RSA `a un camarade en authentifiant le message par
une signature ´electronique.
Snb-tp3.12 . Syst`eme RSA. [1- B. Ischi 08-09 ]
(1) Compl´eter et ex´ecuter le script suivant pour envoyer un message crypt´e `a un camarade
en coupant le texte en blocs de deux lettres.
1b=2;
2n=?;
3e=?;
4#
5function x=pm(k,e,n)
6s=?;
7km=mod ( ? , ? ) ;
8for l=1:?
9s=mod( ? ? , ? ) ;
10 end
11 x=s;
12 end
13 #
14 m=” Bonjour , comment a l l e z vous ? ;
15 l=length (m) ;
16 i f (mod(l,2)>0)
17 m=[m, ] ;
18 end
19 #
20 MESSAGE= [ ] ;
21 M=toascii ( ? ) ;
22 l=length ( ? ) / 2 ;
23 for k=1:?
24 b=M( ? )+M(?) 256;
25 MESSAGE(k)=pm( ? , ? , ? ) ;
26 end
27 MESSAGE
Indication: Il faut utiliser les ´el´ements de la cl´e publique du destinataire du message.
(2) Compl´eter et ex´ecuter le script suivant pour d´ecrypter un message envoe par un camarade
(le texte est coup´e en blocs de deux lettres).
1 / 6 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !