Mardi 9 juin 2009 2 09 /06 /2009 12:25
On m'a récemment demandé de ressortir un vieille algorithme de cryptage RSA que je n'ai pas retrouvé. J'ai donc entrepris de réécrive ma classe RSA. Quelques jours plus tard je découvre qu'une classe RSA existe déjà au sein du package AS3crypto (dont je me sers mais j'étais passé à coté de cet classe "RSAKey"). L'extrême faiblesse de ma classe RSA venait du fait que je ne parvenais pas à effectuer des calcules d'arithmétique modulaire avec des puissances importante du type: m = cd mod n. En effet l'efficacité des clés de chiffrements du cryptage RSA repose sur la grandeur des nombres et si d doit rester petit l'intérêt du procédé disparaît.
Pour ceux qui ne connaissent pas le RSA, il ne s'agit pas du Revenu de Solidarité Active vous l'aurez compris. C'est une technique de chiffrement mis au point par Rivest Shamir Adleman. Mais le sujet n'est pas là... Il s'agit de parvenir à calculer des opérations du type cd mod n avec de grandes valeurs. Voici une implémentation d'exponentiation modulaire basée sur de l'exponentiation binaire qui donne des résultats intéressants:

// Modular Exponentiation
var st:int = getTimer();
trace( mod( 1026, 649, 1073 ) );
trace( "Time elapsed: ", getTimer() -
st );

/* Math.pow( a, b ) % c */
function mod( a:int, b:int, c:int ):int
{
    var d:Number = 1;
    var e:Number = a;
    
    while( b > 0 )
    {
        if( b % 2 == 1 ) d = ( d * e ) % c;

        e = ( e * e ) % c;
        b /= 2;
    }
    return d % c;
}


Voici une mise en pratique basique du code précédent:



Application pour le PGCD (Plus grand commun diviseur)... Je sais ça remonte à loin tout ça



Par Gilles De Truchis - Publié dans : Programmation AS3
Ecrire un commentaire - Voir les commentaires - Recommander
Retour à l'accueil

Un problème d'affichage...?

Certaines pages de ce site contiennent des animations Flash qui nécessitent la dernière version du flash player.

haut de page

Présentation

Recherche

Music Player

Calendrier

Février 2010
L M M J V S D
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
             
<< < > >>
 
Créer un blog sur over-blog.com - Contact - C.G.U. - Signaler un abus