Brevet FR2867635A1 — publié le 20050916

La présente invention concerne un procédé de traitement de données sécurisé, basé notamment sur un algorithme cryptographique. Dans certaines applications, un procédé de traitement de données met en oeuvre un algorithme cryptographique afin de générer des données de sortie à partir de données d'entrée au moyen d'une clé secrète. La clé secrète est par exemple stockée dans une carte à microcircuit, telle qu'une carte à puce. L'algorithme cryptographique peut dans ce cas être mis en oeuvre au sein d'un microprocesseur porté par la carte à puce. On a déjà cherché à protéger ce type de procédé contre des attaques visant à déterminer la clé secrète. De telles attaques sont par exemple les attaques connues sous le vocable SPA (de l'anglais "Simple Power Analysis") ou DPA (de l'anglais: "Differential Power Analysis"), qui consistent pour l'essentiel à mesurer les courants mis en oeuvre lors de l'exécution de l'algorithme cryptographique afin d'en déduire la clé secrète. Afin de contrecarrer ce type d'attaques, il a déjà été proposé, par exemple dans la demande de brevet WO 99/48239, d'utiliser une technique dite de masquage. Selon cette technique, on génère un nombre aléatoire, à partir duquel on dérive un masque, puis on combine au cours de l'algorithme cryptographique le masque avec les données d'entrée (ou éventuellement des données intermédiaires), par exemple au moyen d'une opération logique "OU exclusif' (ou XOR). A une étape ultérieure de l'algorithme cryptographique, par exemple à la fin de celui-ci, les données obtenues sont à nouveau combinées avec un masque, ce qui permet d'obtenir la donnée de sortie telle qu'elle aurait été obtenue sans masquage. Toutefois, les données intermédiaires de l'algorithme cryptographique, et ainsi les courants mesurables, sont modifiés par le nombre aléatoire (masque) et leur observation ne permettra donc pas de déduire la clé secrète. Dans le cas d'un procédé du type DES (de l'anglais Data Encryption Standard), le masquage peut par exemple impliquer la modification de certaines étapes de calcul et certaines structures de données au moyen du nombre aléatoire, en particulier les boîtes-S ou SBOX en anglais. Lorsque l'algorithme cryptographique comprend l'exécution de plusieurs sous-algorithmes, il est possible d'utiliser plusieurs nombres aléatoires différents, par exemple un nombre aléatoire par sous-algorithme. Toutefois, dans un environnement à ressources restreintes telle qu'une carte à microcircuit, on utilise un nombre aléatoire unique pour l'ensemble de l'algorithme permettant l'obtention des données de sortie à partir des données d'entrée, afin d'accélérer le traitement des données, comme cela est mentionné dans la demande de brevet WO 99/48239. En effet, l'obtention du nombre aléatoire, et la modification des boîtes-S dans le cas du procédé DES, nécessitent un temps équivalent à l'algorithme cryptographique stricto sensu. Dans le cadre de la technique de masquage qui vient d'être exposée, d'autres solutions sont connues pour protéger l'exécution d'un algorithme cryptographique contre les attaques SPA ou DPA par l'utilisation d'un nombre aléatoire au cours de la mise en oeuvre de l'algorithme. La demande de brevet FR 2 820 577 donne un autre exemple de ce type, en proposant de masquer la dérivation de la clé secrète. Une autre famille d'attaques est constituée par les attaques dites DFA (de l'anglais: "Differential Fault Analysis"). Ces attaques DFA consistent à engendrer des fautes lors de l'exécution de l'algorithme cryptographique, par exemple en perturbant le composant électronique sur lequel il s'exécute. Une telle perturbation peut par exemple être réalisée en éclairant brièvement le composant électronique avec une source lumineuse ou en générant des pics de tension aux bornes du composant au-delà de ses spécifications. La perturbation induit alors une erreur dans les résultats de l'algorithme cryptographique, qui facilite dans certaines conditions l'obtention de la clé secrète par l'attaquant. Vu les différences de nature entre les attaques de ce type et les 5 attaques SPA ou DPA, les contre-mesures décrites ci-dessus (techniques de masquage) ne permettent pas de contrecarrer les attaques DFA. Pour répondre aux attaques DFA, on a ainsi dû proposer de nouvelles techniques de sécurisation de l'algorithme cryptographique. L'une de ces techniques consiste à exécuter une première fois l'algorithme cryptographique, puis à exécuter un second algorithme cryptographique dont le résultat permet de vérifier que le premier algorithme a été effectué sans faute. Le second algorithme cryptographique utilisé peut être identique au premier algorithme cryptographique, auquel cas on applique le second algorithme aux données d'entrée et on vérifie la bonne exécution du premier algorithme par comparaison des résultats des deux algorithmes. En variante, le second algorithme cryptographique peut être l'algorithme inverse du premier algorithme cryptographique (quand un tel algorithme inverse existe), auquel cas on applique le second algorithme aux données de sortie obtenues par le premier algorithme et on vérifie que le résultat du second algorithme cryptographique corresponde bien aux données d'entrée du premier algorithme cryptographique. On vérifie donc ici aussi que le premier algorithme s'est déroulé sans faute. Cette solution utilisée telle quelle n'est toutefois pas protégée contre un type spécifique d'attaques DFA, dans lesquelles on génère deux fois la même erreur, ou une erreur et son complémentaire. En effet, dans ce cas, les données calculées lors du premier algorithme cryptographique et celles calculées lors du second algorithme cryptographique sont modifiées par l'attaque de manière similaire. Les fautes engendrées par l'attaque ne sont alors pas détectables par la simple comparaison des données impliquées dans ces algorithmes. Afin d'obtenir une protection contre ce dernier type d'attaques, l'invention propose un procédé de traitement de données sécurisé, comportant les étapes suivantes: - exécution d'un premier algorithme cryptographique utilisant une première valeur aléatoire, impliquant dans au moins un calcul une première donnée et générant une donnée de sortie à partir d'une donnée d'entrée; - exécution d'un second algorithme cryptographique utilisant une seconde valeur aléatoire différente de la première valeur aléatoire et générant une donnée de vérification; comparaison de la donnée de vérification à la première donnée pour vérification de l'exécution correcte du premier algorithme. Ainsi, même si les deux algorithmes cryptographiques subissent chacun une faute du même type dans le but d'obtenir l'égalité forcée entre la première donnée et la donnée de vérification et ainsi d'empêcher la détection de l'attaque, les fautes auront en fait des conséquences différentes grâce à l'utilisation de deux valeurs aléatoires différentes et l'attaque sera donc détectée. Selon un premier mode de réalisation, le second algorithme est identique au premier algorithme et est appliqué à la donnée d'entrée, et ladite 20 première donnée est la donnée de sortie. Selon un second mode de réalisation, le second algorithme est l'inverse du premier algorithme et est appliqué à la donnée de sortie, et ladite première donnée est la donnée d'entrée. Ces modes de réalisation sont pratiques à mettre en oeuvre du fait 25 de l'identité (premier mode) ou de la proximité (second mode) des deux algorithmes. En variante, la première donnée est une donnée intermédiaire utilisée au cours du premier algorithme cryptographique. Le second algorithme cryptographique peut alors correspondre à une partie seulement du premier 30 algorithme cryptographique. Le premier algorithme cryptographique est par exemple un algorithme cryptographique à clé symétrique. Il peut s'agir plus précisément d'un algorithme du type DES ou du type AES. Selon ces possibilités, la dérivation de clé peut être masquée au 5 moyen de la première valeur aléatoire. De manière plus générale, le premier algorithme cryptographique peut d'ailleurs être un algorithme du type DES ou du type AES masqué au moyen de la première valeur aléatoire. Selon une possibilité de mise en oeuvre, le premier algorithme cryptographique peut donc être un algorithme du type DES masqué et à dérivation de clé masquée ou un algorithme du type AES masqué et à dérivation de clé masquée. La sécurité du procédé de traitement de données s'en trouve renforcée. Selon une autre possibilité de mise en oeuvre, le premier algorithme cryptographique est un algorithme d'authentification de téléphonie mobile. Selon un exemple d'utilisation des valeurs aléatoires, le premier algorithme cryptographique est masqué par la première valeur aléatoire et le second algorithme cryptographique est masqué par la seconde valeur aléatoire. Cette solution permet une différenciation particulièrement efficace de la première donnée et de la donnée de vérification en cas d'attaque de chacun des algorithmes cryptographiques par une faute du même type. Le procédé de traitement de données est par exemple mis en oeuvre dans une carte à microcircuit. L'invention propose ainsi un procédé de traitement de données sécurisé comprenant les étapes suivantes: - exécution d'un premier algorithme cryptographique utilisant une première valeur aléatoire; - exécution d'un second algorithme cryptographique utilisant une seconde valeur aléatoire différente de la première valeur aléatoire et générant un résultat permettant la vérification de l'exécution correcte du premier algorithme. L'invention propose également un dispositif de traitement de données comprenant des moyens pour mettre en oeuvre un premier algorithme cryptographique utilisant une première valeur aléatoire, impliquant dans au moins un calcul une première donnée et générant une donnée de sortie à partir d'une donnée d'entrée, des moyens pour mettre en oeuvre un second algorithme cryptographique utilisant une seconde valeur aléatoire différente de la première valeur aléatoire et générant une donnée de vérification et des moyens pour comparer la donnée de vérification à la première donnée pour vérification de l'exécution correcte du premier algorithme. Ce dispositif est par exemple une carte à microcircuit. L'invention propose enfin un programme d'ordinateur comprenant des instructions aptes à mettre en oeuvre le procédé évoqué auparavant, lorsque lesdites instructions sont exécutées par un microprocesseur. D'autres caractéristiques et avantages de la description apparaîtront à la lumière de la description qui suit, faite en référence aux dessins annexés, dans lesquels: - la figure la représente schématiquement un dispositif de traitement de données dans lequel est mise en oeuvre l'invention; - la figure lb représente une réalisation possible du dispositif de la 20 figure la - la figure 2 illustre un premier mode de réalisation du procédé selon l'invention; - la figure 3 illustre un second mode de réalisation possible du procédé selon l'invention. La figure la représente schématiquement un dispositif de traitement de données 40 dans lequel la présente invention est mise en oeuvre. Ce dispositif 40 comprend un microprocesseur 10, auquel est associée une mémoire 20, par exemple au moyen d'un bus 50. Le dispositif de traitement de données 40, et précisément le microprocesseur 10 qu'il incorpore, peuvent échanger des données avec des dispositifs extérieurs au moyen d'une interface de communication 30. On a schématiquement représenté sur la figure la la transmission d'une donnée d'entrée E reçue d'un dispositif extérieur (non représenté) et transmise de l'interface de communication 30 au microprocesseur 10. De manière similaire, on a représenté la transmission d'une donnée de sortie S du microprocesseur 10 vers l'interface de communication 30 à destination d'un dispositif extérieur. Bien que, pour l'illustration, les données d'entrée E et les données de sortie S figurent sur deux flèches différentes, les moyens physiques qui permettent la communication entre le microprocesseur 10 et l'interface 30 pourront être réalisés par des moyens uniques, par exemple un port de communication série ou un bus. Le microprocesseur 10 est apte à exécuter un logiciel qui permet au dispositif de traitement de données 40 d'exécuter un procédé conforme à l'invention dont des exemples seront donnés plus loin. Le logiciel est composé d'une série d'instructions de commande du microprocesseur 10 qui sont par 15 exemple stockées dans la mémoire 20. En variante, l'ensemble microprocesseur 10 - mémoire 20 peut être remplacé par un circuit à application spécifique qui comprend alors des moyens de mise en oeuvre des différentes étapes du procédé de traitement de données sécurisé. La figure lb représente une carte à microcircuit qui constitue un dispositif de traitement de données conforme à l'invention tel que représenté à la figure la. L'interface de communication 30 est dans ce cas réalisée au moyen des contacts de la carte à microcircuit. La carte à microcircuit incorpore un microprocesseur 10 et une mémoire 20 comme représenté sur la figure la. La figure 2 représente sous forme d'un organigramme les étapes d'un premier exemple de procédé de traitement de données sécurisé conforme à l'invention. Le procédé commence à l'étape E202 où le microprocesseur 10 reçoit de l'interface de communication 30 une donnée d'entrée E qui doit être 30 traitée au moyen d'un algorithme cryptographique au sein du dispositif de traitement de données 40, et ce afin d'obtenir une donnée de sortie S. On décrit ici le cas d'un algorithme cryptographique dans un cadre général; en pratique, cet algorithme cryptographique pourra permettre par exemple un encryptage, un décryptage, une signature ou une authentification des données d'entrée. Lorsque les données d'entrée E sont reçues par le microprocesseur 10 (étape E202), on passe à l'étape E204 où le microprocesseur 10 génère une première valeur aléatoire Al. On passe alors à l'étape E206 à laquelle on applique aux données d'entrée E un algorithme cryptographique FK masqué au moyen de la première valeur aléatoire Al. L'algorithme cryptographique FK est par exemple un algorithme à clé symétrique qui met en oeuvre une clé secrète K. Dans un mode de réalisation possible, il s'agit d'un algorithme du type DES. La mise en oeuvre de l'algorithme cryptographique FK à l'étape E206 est masquée avec pour masque la première valeur aléatoire Al générée à l'étape E204. A titre d'exemple, le masquage utilisé peut être un ou plusieurs masquage(s) parmi ceux décrits dans les demandes de brevet WO 99/48239 et FR 2 820 577. L'application de l'algorithme cryptographique FK aux données d'entrée E a pour résultat les données de sortie S. On peut remarquer que, pour un algorithme cryptographique F donné, le résultat (données de sortie S) ne dépend que des données d'entrée E et de la clé K utilisée et ne dépend pas du masque Al (première valeur aléatoire) utilisé. Comme vu en introduction, le masque Al permet en effet de modifier certaines données et/ou étapes intermédiaires de l'algorithme FK, afin de compliquer la détection de la clé secrète K, sans toutefois influer sur le résultat final de celui-ci. Lorsque les données de sortie S ont été obtenues à l'étape E206, on passe à l'étape E208 à laquelle le microprocesseur 10 génère une seconde valeur aléatoire A2. En variante, l'étape E208 de génération d'une seconde valeur aléatoire A2 pourrait être réalisée à un autre moment, par exemple au moment de la génération de la première valeur aléatoire Al (étape E204) . Dans tous les cas, la seconde valeur aléatoire A2 est générée de manière aléatoire indépendamment de la première valeur aléatoire Al et sera donc dans le cas le plus général différente de la première valeur aléatoire Al. On passe alors à l'étape E210, à laquelle on applique aux données d'entrée E l'algorithme cryptographique FK déjà utilisé à l'étape E206, en utilisant cette fois comme masque la seconde valeur aléatoire A2. L'algorithme cryptographique FK appliqué aux données d'entrée E et masqué par la seconde valeur aléatoire A2 donne pour résultat une donnée de vérification V. Comme on l'a vu précédemment, le résultat de l'algorithme cryptographique FK appliqué aux données d'entrée E ne dépend pas du masque (Al ou A2) utilisé. En fonctionnement normal, le résultat obtenu à l'étape E210 (donnée de vérification V) avec le masque A2 devrait donc être égal au résultat obtenu à l'étape E206 (donnée de sortie S) avec le masque Al. En fonctionnement normal, la donnée de vérification V doit donc être égale à la donnée de sortie S. C'est pourquoi on teste à l'étape E212 (qui suit l'étape E210) si la donnée de vérification V est bien égale à la donnée de sortie S. Dans l'affirmative, c'est-à-dire quand la comparaison des résultats des algorithmes cryptographiques appliqués respectivement aux étapes E206 et E210 permet de supposer que ceux-ci ont été réalisés sans fautes, on passe à l'étape E214 où on peut donc poursuivre le traitement réalisé par le microprocesseur 10, par exemple en utilisant la donnée de sortie S obtenue. En effet, on suppose dans ce cas que l'exécution de l'algorithme cryptographique qui a permis d'obtenir cette donnée de sortie S n'a pas fait l'objet d'une attaque. En revanche, si on détermine à l'étape E212 que la donnée de vérification V est différente de la donnée de sortie S, on passe à l'étape E216 où l'on conclut à l'échec de l'algorithme sécurisé d'obtention de la valeur de sortie S. En effet, si la donnée de vérification V n'est pas identique à la donnée de sortie S, on en conclut que l'exécution de l'un des algorithmes cryptographiques des étapes E206 et E210 a été perturbée, ce qui traduit en général une attaque par génération de fautes. Les conséquences de l'échec du procédé sécurisé à l'étape E216 pourront être différentes selon les applications. En général, on évitera l'utilisation et/ou la communication de la valeur de sortie S à l'extérieur de la carte à microcircuit afin d'éviter toute utilisation frauduleuse possible d'une donnée de sortie obtenue au moyen d'un algorithme cryptographique dont l'exécution a été perturbée. On remarque en outre que le procédé de traitement de données sécurisé qui vient d'être décrit est protégé contre des attaques par fautes au cours desquelles la même faute serait appliquée aux étapes E206 et E210. En effet, l'utilisation d'une première valeur aléatoire Al et d'une seconde valeur aléatoire A2, différentes l'une de l'autre dans le cas le plus général, permet d'impliquer des étapes et/ou des données différentes lors des mises en oeuvre successives de l'algorithme cryptographique FK aux étapes E206 et E210. Ainsi, une même attaque appliquée à ces deux étapes générera des résultats différents, qui seront alors détectables à l'étape E212 de comparaison des données de vérification V aux données de sortie S. Le procédé décrit ci-dessus n'est donc pas seulement protégé contre les attaques à génération de fautes, au moyen de la comparaison de deux itérations différentes de l'algorithme cryptographique FK, mais aussi contre les attaques à génération de fautes dans lesquelles deux fautes identiques sont successivement générées, grâce au masquage de chaque itération de l'algorithme cryptographique au moyen d'un masque différent. La figure 3 décrit un second exemple de réalisation d'un procédé de traitement de données sécurisé selon l'invention. Le procédé commence à l'étape E302 par la réception au moyen de l'interface de communication 30 de données d'entrée E par le microprocesseur 10. Après réception des données d'entrée E, le microprocesseur 10 génère une première valeur aléatoire Al à l'étape E304. Le microprocesseur peut alors, à l'étape E306, appliquer aux données d'entrée E un algorithme cryptographique FK à clé secrète symétrique K et masqué au moyen de la première valeur aléatoire Al. Dans l'exemple 30 décrit, l'algorithme cryptographique utilisé est du type DES dont le masquage peut être réalisé lors de la dérivation de la clé, comme décrit dans la demande de brevet FR 2 820 577. L'exécution, masquée par la première valeur aléatoire Al, de l'algorithme cryptographique FK, appliquée aux données d'entrée E, permet d'obtenir les données de sortie S qui constituent normalement le résultat souhaité du procédé de traitement de données. Toutefois, afin de vérifier que l'exécution du procédé n'a pas subi d'attaque par génération de fautes, on procède aux étapes suivantes qui permettront de vérifier l'absence de fautes lors de l'exécution de l'algorithme cryptographique à l'étape E306. Ainsi, on passe à l'étape E308 où le microprocesseur 10 génère une seconde valeur aléatoire A2. Le microprocesseur applique ensuite, à l'étape E310, un second algorithme cryptographique GK, qui est l'inverse de l'algorithme cryptographique FK, aux données de sortie S qui viennent d'être obtenues. Le second algorithme cryptographique GK est par ailleurs masqué au moyen de la seconde valeur aléatoire A2. Ce masquage est par exemple réalisé par le masquage de l'étape de dérivation de la clé de l'algorithme DES. En temps normal, et notamment si les exécutions respectives des algorithmes cryptographiques FK et GK n'ont pas subi d'attaque par génération de fautes, le résultat V de l'application du second algorithme cryptographique GK, inverse du premier algorithme cryptographique FK, aux données de sortie S est égal aux données d'entrée E. Une différence entre le résultat V du second algorithme cryptographique GK et les données d'entrée E indique donc une erreur dans l'une au moins des exécutions respectives des algorithmes cryptographiques FK et GK, et signale par conséquent un risque d'attaque par génération de fautes. On rappelle que le masquage des algorithmes cryptographiques FK et GK par des masques différents (première valeur aléatoire Al pour le premier algorithme cryptographique FK et seconde valeur aléatoire A2 pour le second algorithme cryptograhique GK) ne modifie pas le résultat de ces algorithmes cryptographiques, mais seulement toutes ou partie des données intermédiaires etlou les étapes mises en jeu dans ces algorithmes. L'étape suivante E312 consiste donc à vérifier l'égalité du résultat (ou donnée de vérification) V du second algorithme cryptographique GK à la donnée d'entrée E, afin de détecter une éventuelle attaque par génération de fautes. Si on détermine à l'étape E312 que la donnée de vérification V n'est pas égale à la donnée d'entrée E, ce qui indique un risque que l'exécution du premier algorithme cryptographique FK ait été attaquée par génération de fautes, on passe à l'étape E316 à laquelle le microprocesseur 10 considère l'échec de l'exécution correcte du premier algorithme cryptographique FK et par conséquent la non-disponibilité d'une donnée de sortie sécurisée. La conséquence de l'échec (étape E316) dépend naturellement de 10 l'application envisagée et consiste en général à ne pas utiliser la donnée de sortie S calculée à l'étape E306. Si au contraire on détermine à l'étape E312 que la donnée de vérification V obtenue par application du second algorithme cryptographique GK est bien égale à la donnée d'entrée E, le procédé mis en oeuvre par le microprocesseur 10 peut se poursuivre normalement, par exemple par l'utilisation des données de sortie S (étape E314), puisque l'on suppose alors que l'exécution des algorithmes cryptographiques s'est réalisée sans erreur et par conséquent sans attaque par génération de fautes. On remarque en outre que le procédé de traitement de données qui vient d'être décrit est sécurisé contre des attaques à génération de fautes particulièrement sophistiquées. En effet, un attaquant peut générer une faute à l'étape p de l'algorithme cryptographique FK (i.e. au round p dans le cas de l'algorithme DES) et le complémentaire de cette faute à l'étape n-p de l'algorithme cryptographique GK (n étant le nombre total d'étapes dans chacun des algorithmes) en espérant ainsi obtenir une donnée de vérification V identique à la donnée d'entrée E malgré l'erreur provoquée sur la donnée de sortie S. Toutefois, grâce à l'utilisation des deux valeurs aléatoires Al, A2 différentes, les fautes auront en fait des conséquences différentes selon l'algorithme considéré et le second algorithme ne permettra donc pas de revenir à une donnée de vérification V égale à la donnée d'entrée E. L'attaque sera ainsi détectée. L'invention n'est naturellement pas limitée aux deux modes de réalisation qui viennent d'être décrits. Notamment, la vérification de la bonne exécution d'un algorithme cryptographique par comparaison des résultats de deux algorithmes cryptographiques n'implique pas forcément les données d'entrée ou les données de sortie. En effet, on pourrait penser à comparer une donnée intermédiaire du premier algorithme cryptographique à une donnée de vérification correspondante générée par le second algorithme cryptographique. Dans le même ordre d'idée, bien que les algorithmes cryptographiques mentionnés en tant qu'exemples dans la description qui précède soient du type DES, l'invention s'applique à d'autres types d'algorithmes cryptographiques, notamment les algorithmes du type AES et les algorithmes d'authentification pour la téléphonie mobile, tels que ceux conformes à la norme GSM ou à la norme UMTS. REVENDICATIONS 1. Procédé de traitement de données sécurisé, caractérisé en ce qu'il comprend les étapes suivantes: - exécution (E206; E306) d'un premier algorithme cryptographique (FK) utilisant une première valeur aléatoire (A1) ; - exécution (E210; E310) d'un second algorithme cryptographique (FK; GK) utilisant une seconde valeur aléatoire (A2) différente de la première valeur aléatoire (Al) et générant un résultat (V) permettant la vérification de l'exécution correcte du premier algorithme (FK). 2. Procédé de traitement de données sécurisé selon la revendication 1, caractérisé en ce que, l'exécution (E206; E306) du premier algorithme cryptographique (FK) impliquant dans au moins un calcul une première donnée (S; E) et générant une donnée de sortie (S) à partir d'une donnée d'entrée (E), ledit résultat (V) étant une donnée de vérification (V), il comporte l'étape suivante: - comparaison (E212; E312) de la donnée de vérification (V) à la première donnée (S; E) pour vérification de l'exécution correcte du premier algorithme (FK). 3. Procédé de traitement de données sécurisé selon la revendication 2, caractérisé en ce que le second algorithme (GK) est identique au premier algorithme (FK) et est appliqué à la donnée d'entrée (E) et en ce que ladite première donnée est la donnée de sortie (S). 4. Procédé de traitement de données sécurisé selon la revendication 2, caractérisé en ce que le second algorithme est l'inverse du premier algorithme (FK) et est appliqué à la donnée de sortie (S) et en ce que ladite première donnée est la donnée d'entrée (E). 5. Procédé de traitement de données selon l'une des revendications 2 à 4, caractérisé en ce que le premier algorithme cryptographique (FK) est un algorithme cryptographique à clé symétrique. 6. Procédé de traitement de données selon l'une des revendications 2 à 4, caractérisé en ce que le premier algorithme cryptographique (FK) est un algorithme du type DES ou du type AES. 7. Procédé de traitement de données selon l'une des revendications 2 à 4, caractérisé en ce que le premier algorithme cryptographique (FK) est un algorithme du type DES ou du type AES à dérivation de clé masquée au moyen de la première valeur aléatoire. 8. Procédé de traitement de données selon l'une des revendications 2 à 4, caractérisé en ce que le premier algorithme cryptographique (FK) est un algorithme du type DES ou du type AES masqué au moyen de la première valeur aléatoire. 9. Procédé de traitement de données selon l'une des revendications 2 à 4, caractérisé en ce que le premier algorithme cryptographique (FK) est un algorithme du type DES masqué et à dérivation de clé masquée ou un algorithme du type AES masqué et à dérivation de clé masquée. 10. Procédé de traitement de données selon l'une des revendications 2 à 4, caractérisé en ce que le premier algorithme cryptographique (FK) est un algorithme d'authentification de téléphonie mobile. 11. Procédé de traitement de données selon l'une des revendications 2 à 4, caractérisé en ce que le premier algorithme cryptographique (FK) est masqué par la première valeur aléatoire (A1) et en ce que le second algorithme cryptographique (FK; GK) est masqué par la seconde valeur aléatoire (A2). 12. Procédé de traitement de données selon l'une quelconque des revendications 2 à 11, caractérisé en ce qu'il est mis en oeuvre dans une carte à microcircuit (40). 13. Dispositif de traitement de données comprenant: - des moyens pour mettre en oeuvre un premier algorithme cryptographique (FK) utilisant une première valeur aléatoire (Al), impliquant dans au moins un calcul une première donnée (S; E) et générant une donnée de sortie (S) à partir d'une donnée d'entrée (E) ; - des moyens pour mettre en oeuvre un second algorithme cryptographique (GK) utilisant une seconde valeur aléatoire (A2) différente de la première valeur aléatoire (Al) et générant une donnée de vérification (V) ; - des moyens pour comparer la donnée de vérification (V) à la première donnée (S; E) pour vérification de l'exécution correcte du premier algorithme (FK). 14. Dispositif de traitement de données selon la revendication 13, caractérisé en ce que le dispositif est une carte à microcircuit (40). 15. Programme d'ordinateur comprenant des instructions aptes à mettre en oeuvre le procédé selon l'une des revendications 1 à 12, lorsque lesdites instructions sont exécutées par un microprocesseur.