Brevet FR2960329A1 — publié le 20111125

La présente invention a pour objet un procédé d'identification d'un circuit intégré à application spécifique connu sous le nom anglais de "Application Specific Integrated Circuit - ASIC". En comparaison des circuits intégrés standards et figés proposés par les fabricants, l'ASIC permet une personnalisation de son fonctionnement selon l'utilisation, accompagnée d'une augmentation de la densité d'intégration et de la vitesse de fonctionnement. L'ASIC est souvent un circuit intégré produit pour un seul client selon les spécifications de ce dernier. Ce type de circuit intégré « personnalisé » nécessite des frais et un temps de développement relativement élevés augmentant de ce fait le prix unitaire supporté par le client. Cependant, la contrefaçon des ASICs est possible et ces circuits intégrés sont susceptibles d'être dupliqués sans autorisation (le terme « clonage » étant souvent utilisé pour caractériser cette opération). Ces clones constituent une perte financière non négligeable au regard des dépenses engagées pour réaliser lesdits ASICs. Les ASICs contiennent souvent plusieurs sous-parties. Typiquement, l'ASIC comporte une première partie publique qui est accessible à tout acheteur et une deuxième partie privée qui n'est accessible qu'aux acheteurs ayant acquis une licence correspondante et donc une clef d'activation permettant de déverrouiller ladite seconde partie. L'objectif de l'invention est d'éliminer les inconvénients mentionnés plus haut afin de protéger les ASICs contre des reproductions non autorisées d'une part et de gérer l'activation de sous-parties desdits ASICs d'autre part. Pour cela, l'invention propose un procédé d'identification d'un ASIC basé sur la 25 cryptographie asymétrique qui permet d'authentifier l'ASIC afin d'éviter en pratique les contrefaçons. La présente invention a pour avantage de permettre la production d'une valeur d'authentification vérifiable exclusivement au moyen de paramètres privés. Aucune clef n'est stockée dans l'ASIC, assurant ainsi une protection suffisante étant donnée que la 30 valeur d'authentification dudit ASIC ne peut être ni espionnée, ni reproduite frauduleusement sans la clef privée associée. A cet effet, l'invention propose un procédé d'identification d'un circuit intégré à application spécifique par un dispositif client à travers un réseau de communication, à l'aide d'une valeur d'authentification préenregistrée dans ledit circuit intégré, dans lequel : 35 - on implémente un algorithme asymétrique à clef publique dans une unité de fabrication dudit ASIC, - on détermine dans l'unité de fabrication un nombre crypté en fonction de l'exécution de l'algorithme asymétrique (AA) auquel la valeur d'authentification est appliquée, - durant une phase d'identification, on transmet le nombre aléatoire crypté au dispositif client dans lequel est implémenté un algorithme asymétrique à clef privée auquel est appliqué ledit nombre aléatoire crypté, - on vérifie la concordance du résultat de l'application du nombre aléatoire crypté à l'algorithme asymétrique à clef privée avec la valeur d'authentification, - on active le fonctionnement dudit circuit intégré en cas de concordance positive. Avantageusement, la phase d'identification est activée une seule fois par le circuit intégré à sa première mise en service. Durant cette phase d'identification, le fonctionnement de l'ASIC est définitivement bloqué totalement ou partiellement lorsque le résultat de l'application du nombre aléatoire crypté à l'algorithme asymétrique à clef privée diffère de la valeur d'authentification. Ce blocage peut également être opéré après qu'un nombre de comparaisons infructueuses entre le résultat de l'application du nombre crypté à l'algorithme asymétrique à clef privée de la valeur d'authentification, atteint un seuil prédéfini. Ce blocage total ou partiel du fonctionnement de l'ASIC permet au fabricant de se prémunir contre les copies. L'invention sera mieux comprise à la lecture de la description qui suit et à l'examen des figures qui l'accompagnent. Celles-ci sont présentées à titre indicatif et nullement limitatif de l'invention. Les figures 1 et 3 montrent une illustration de moyens mettant en oeuvre le procédé d'identification d'ASIC, selon un mode de réalisation de l'invention. La figure 2 montre une représentation schématique d'un ASIC muni de moyens perfectionnés selon un mode de réalisation de l'invention. Dans la description, les mêmes références numériques désignent d'une figure à l'autre des éléments identiques ou fonctionnellement semblables. Le procédé selon l'invention met en oeuvre plusieurs composants matériels ou logiciels et plusieurs acteurs auxquels il sera fait référence dans la suite de la description. Dans la description, on prête des actions à des appareils ou à des programmes, cela signifie que ces actions sont exécutées par un microprocesseur de cet appareil ou de l'appareil comportant le programme, ledit microprocesseur étant alors commandé par des codes instructions enregistrés dans une mémoire de l'appareil. Ces codes instructions permettent de mettre en oeuvre les moyens de l'appareil et donc de réaliser l'action entreprise. La figure 1 montre une étape 100 préliminaire dans laquelle une autorité de certification 10 (souvent notée « CA » en anglais, pour "Certification Authority") délivre une clef publique à une unité de fabrication 11 d'ASICs. Cette clef publique est associée à une clef privée délivrée par l'autorité de certification 10 à un dispositif client 12. Ces clefs publique / privée constituent un couple de clefs de chiffrement et de déchiffrement non identiques. L'unité de fabrication 11 comporte des capacités d'interface avec un ASIC en cours de fabrication de façon à lire et écrire des données dans cet ASIC, des capacités d'exécution de logiciels et des moyens de calcul nécessaires pour procéder au calcul des signatures. A une étape 101, l'unité de fabrication 11 met à un état inactif au moins une partie 14 d'un ASIC 13 illustré à la figure 2. Cet état inactif correspond à un blocage de fonctionnement. Cette étape 101 permet ainsi au fabricant de produire en série des ASICs partiellement ou totalement inopérants. La mise à un état actif est conditionnée par une valeur d'authentification S écrite dans une mémoire 15 non volatile de l'ASIC 13. Cette valeur d'authentification S est un nombre aléatoire généré à une étape 102. Pour ce faire, l'unité de fabrication 11 comprend un générateur de nombres aléatoires implémenté matériellement dans ou en liaison avec son microprocesseur. En variante, le générateur de nombres aléatoires est inclus sous forme de logiciel dans la mémoire de l'unité de fabrication 11. A l'étape 102, le générateur de nombres aléatoires fournit un nombre aléatoire S qui est écrit et mémorisé dans la mémoire non volatile de l'ASIC comme valeur d'authentification à appliquer à un algorithme asymétrique AA. Ce nombre aléatoire S participe à l'identification et au déblocage de l'ASIC. L'application du nombre aléatoire généré S en tant que donnée à l'algorithme asymétrique AA avec la clef publique produit un nombre aléatoire crypté S'. Ce nombre aléatoire crypté S' est écrit et mémorisé dans la mémoire de l'ASIC. L'ASIC ainsi produit est distribué avec au moins une partie verrouillée. La figure 2 montre une représentation schématique de l'ASIC. L'ASIC comprend, en outre, des capacités de communication à travers un réseau 16 de données de façon à mettre en oeuvre un protocole d'échange avec le dispositif client 12, lors de la vérification de la valeur d'authentification. Le dispositif client 12 est un dispositif électronique, telle une carte à microcircuit ou une clef USB. Le dispositif client 12 comporte une mémoire incluant elle-même un espace de mémoire sécurisé prévu au stockage de la clef privée et un microprocesseur pour exécuter l'algorithme de cryptographie asymétrique. II comporte également des moyens pour communiquer avec l'ASIC à travers le réseau 16. Ce réseau 16 peut être un réseau sans fil ou filaire. La figure 3 montre une étape 200 préliminaire dans laquelle l'autorité de certification 10 délivre la clef privée au dispositif client 12. A une étape 201, l'ASIC est mis en service pour la première fois. Des codes instructions de la mémoire programme de l'ASIC activent automatiquement une phase de vérification de la valeur d'authentification S. A une étape 202, l'ASIC prélève la valeur cryptée S' de sa mémoire 15 et la transmet au dispositif client 12 comportant la clef privée. A une étape 203, le dispositif client 12 lit la clef privée afin de l'appliquer avec le nombre aléatoire crypté S' reçu à l'algorithme asymétrique AA. A une étape 204, le dispositif client 12 transmet à l'ASIC 13 le nombre aléatoire généré S" constituant le résultat de l'exécution de l'algorithme asymétrique AA. A une étape 205, l'ASIC compare la valeur généré S" à la valeur d'authentification S enregistrée dans sa mémoire. En cas de concordance, l'état inactif de la partie de l'ASIC est activé lors de l'étape 206. L'ASIC est ainsi prêt à être utilisé. Dans le cas contraire, à une étape 207, l'ASIC peut être programmé de sorte à maintenir l'état inactif de la partie inopérante de l'ASIC et/ou que son fonctionnement soit définitivement bloqué. Dans une variante, à une étape 208, il peut être envisagé que l'ASIC comptabilise les tentatives infructueuses de présentation de la valeur aléatoire S" par le dispositif client 12 et peut, après un nombre seuil de tentatives données (typiquement trois), bloquer définitivement le fonctionnement de l'ASIC et/ou maintenir l'état inactif de la partie inopérante de l'ASIC. Il peut être envisagé, dans ces cas, que ledit ASIC soit rapporté au fabricant pour une reprogrammation dans laquelle une nouvelle valeur d'authentification S est fournie 25 avec un nouveau couple de clefs publique/privée. REVENDICATIONS1. Procédé d'identification d'un circuit intégré à application spécifique (13) par un dispositif client (12) à travers un réseau de communication (16), à l'aide d'une valeur d'authentification (S) préenregistrée dans ledit circuit intégré, dans lequel : - on implémente un algorithme asymétrique (AA) à clef publique dans une unité de fabrication (11) dudit ASIC, - on détermine dans l'unité de fabrication (11) un nombre crypté (S') en fonction de l'exécution de l'algorithme asymétrique (AA) auquel la valeur d'authentification (S) est appliquée, - durant une phase d'identification, on transmet le nombre aléatoire crypté (S') au dispositif client (12) dans lequel est implémenté un algorithme asymétrique (AA) à clef privée auquel est appliqué ledit nombre aléatoire crypté (S'), - on vérifie la concordance du résultat (S") de l'application du nombre aléatoire crypté (S') à l'algorithme asymétrique (AA) à clef privée avec la valeur d'authentification (S), - on active le fonctionnement dudit circuit intégré (13) en cas de concordance positive. 2. Procédé selon la revendication précédente, dans lequel la phase d'identification est activée par le circuit intégré (13) à sa première mise en service. 3. Procédé selon l'une des revendications précédentes, dans lequel au moins une partie dudit circuit intégré (13) est à un état inactif. 4. Procédé selon l'une des revendications précédentes dans lequel, lorsque le résultat (S") de l'application du nombre aléatoire crypté (S') à l'algorithme asymétrique (AA) à clef privée diffère de la valeur d'authentification (S), alors on bloque définitivement le fonctionnement dudit circuit intégré. 5. Procédé selon l'une des revendications 1 à 3, dans lequel : - on comptabilise le nombre de comparaisons infructueuses entre le résultat (S") de l'application du nombre aléatoire crypté à l'algorithme asymétrique (AA) à clef privée de la valeur d'authentification (S), - on bloque définitivement le fonctionnement (S) du circuit intégré (13) lorsque le nombre de comparaisons atteint un seuil prédéfini. 7. Procédé selon l'une des revendications 4 ou 5, dans lequel on maintient inactive la partie du circuit intégré (13) à état inactif. 8. Procédé selon l'une des revendications précédentes, dans lequel la valeur 35 d'authentification (S) est un nombre aléatoire. 9. Procédé selon l'une des revendications précédentes, dans lequel le dispositifclient (12) est une carte à microcircuit ou une clef USB.