Brevet FR3126581A1 — publié le 20230303

Protection d’une opération cryptographique La présente description concerne un procédé cryptographique comprenant : la multiplication d’un point (P) appartenant à un ensemble mathématique ayant une structure de groupe par un scalaire (k) en faisant : - le découpage d’un scalaire (k) en une pluralité de groupes composés d’un même nombre w de chiffres, w étant supérieur ou égal à 2 ; et - l’exécution, par un circuit cryptographique et pour chaque groupe de chiffres, d’une séquence d’opérations sur le point (P), la séquence d’opérations étant identique pour chaque groupe de chiffres, au moins une des opérations exécutées pour chacun des groupes de chiffres étant une opération factice. Figure pour l'abrégé : Fig. 4 Protection d’une opération cryptographique La présente description concerne de façon générale le domaine de la cryptographie et en particulier le domaine de la cryptographie sur des courbes elliptiques ou similaire. La cryptographie sur des courbes elliptiques (ECC, Elliptic Curve Cryptography) est bien adaptée aux méthodes de cryptographie à clef publique car elle permet l’utilisation de clefs de chiffrement de taille réduite. Toutefois, une attaque par analyse de consommation (SPA, Simple Power Analysis) menée lors d’une opération cryptographique faisant intervenir la clef de chiffrement, peut permettre à une entité extérieure de déduire la valeur de la clef de chiffrement dans une méthode de cryptographie basée sur des courbes elliptiques, entre autres. Il est souhaitable de rendre la valeur de la clef de chiffrement difficilement détectable lors de l’exécution, par un dispositif électronique, d’opérations cryptographiques la faisant intervenir. Il existe un besoin d’améliorer la protection de la valeur d’une clef de chiffrement utilisée lors d’opérations cryptographiques sur courbes elliptiques. Un mode de réalisation pallie tout ou partie des inconvénients des procédés connus de protection de la valeur d’une clef de chiffrement utilisée lors d’opérations cryptographiques sur courbes elliptiques. Un mode de réalisation prévoit un procédé cryptographique comprenant : la multiplication d’un point appartenant à un ensemble mathématique ayant une structure de groupe par un scalaire en faisant : - le découpage d’un scalaire en une pluralité de groupes composés d’un même nombre w de chiffres, w étant supérieur ou égal à 2 ; et - l’exécution, par un circuit cryptographique et pour chaque groupe de chiffres, d’une séquence d’opérations sur le point, la séquence d’opérations étant identique pour chaque groupe de chiffres, au moins une des opérations exécutées pour chacun des groupes de chiffres étant une opération factice. Un mode de réalisation prévoit un circuit cryptographique pour réaliser une multiplication d’un point appartenant à un ensemble mathématique ayant une structure de groupe par un scalaire, le circuit cryptographique étant configuré pour : - découper le scalaire en une pluralité de groupes composés d’un même nombre w de chiffres, w étant supérieur ou égal à 2 ; - exécuter, pour chaque groupe de chiffres, une séquence d’opérations au point, la séquence d’opérations étant identique pour chaque groupe de chiffres, au moins une des opérations exécutées pour chacun des groupes de chiffres étant une opération factice. Selon un mode de réalisation, la séquence d’opérations consiste en : a) l’exécution, w fois, d’une première opération ; b) l’exécution d’une deuxième opération ; et c) l’exécution, (w-1) fois, de la première opération. Selon un mode de réalisation, la première opération est une opération de doublement et la deuxième opération est une opération d’addition. Selon un mode de réalisation, le circuit cryptographique est configuré pour modifier une valeur courante d’un résultat intermédiaire de la multiplication suite à chaque opération non factice et pour ne pas modifier cette valeur courante suite à chaque opération factice. Selon un mode de réalisation, pour chaque opération factice, le circuit cryptographique est configuré pour modifier une valeur courante d’un résultat intermédiaire de la multiplication en une valeur différente mais mathématiquement équivalente. Selon un mode de réalisation, le procédé ou le circuit comprend en outre comprenant en outre, avant le découpage en une pluralité de groupes de chiffres, le recodage du scalaire sous une forme non adjacente fenestrée de paramètre w. Selon un mode de réalisation, l’ensemble mathématique est une courbe elliptique ou une courbe hyperelliptique. Selon un mode de réalisation, la courbe est une courbe de Koblitz définie par un ensemble de points et ayant la forme suivante : [Math 1] où vaut 0 ou 1 et est un corps fini binaire. Selon un mode de réalisation, l’opération de doublement est un endomorphisme de Frobenius. Selon un mode de réalisation, le procédé ou le circuit comprend en outre, avant l’exécution de la séquence d’opérations sur le point, le calcul et le stockage dans une mémoire du circuit d’une pluralité de multiples dudit point. Un mode de réalisation prévoit une mémoire non transitoire stockant des instructions pour la mise en œuvre du procédé lorsque ces instructions sont exécutées par un processeur cryptographique. Un mode de réalisation prévoit un dispositif électronique comprenant un circuit cryptographique configuré pour la mise en œuvre du procédé. Ces caractéristiques et avantages, ainsi que d'autres, seront exposés en détail dans la description suivante de modes de réalisation particuliers faite à titre non limitatif en relation avec les figures jointes parmi lesquelles : la représente, de façon schématique, un exemple d’un dispositif électronique du type auquel s’appliquent les modes de réalisation décrits ; la est un graphique illustrant un exemple de consommation électrique du dispositif illustré en lors d’une opération cryptographique sans mise en œuvre d’une protection de la clef de chiffrement ; la est un tableau présentant un exemple d’insertion d’opérations cryptographiques factices ; la est un organigramme illustrant des opérations d’un procédé de mise en œuvre d’une opération cryptographique selon un mode de réalisation ; la est un organigramme illustrant des opérations d’un procédé de mise en œuvre d’une opération cryptographique selon un autre mode de réalisation ; et la représente de façon schématique un circuit de calcul selon un mode de réalisation. Procédé cryptographique comprenant : la multiplication d’un point (P), appartenant à un ensemble mathématique ayant une structure de groupe, par un scalaire (k) en faisant : - le découpage d’un scalaire (k) en une pluralité de groupes composés d’un même nombre w de chiffres, w étant supérieur ou égal à 2 ; et - l’exécution, par un circuit cryptographique (104) et pour chaque groupe de chiffres, d’une séquence d’opérations sur le point (P), la séquence d’opérations étant identique pour chaque groupe de chiffres, au moins une des opérations exécutées pour chacun des groupes de chiffres étant une opération factice. Procédé selon la revendication 1, dans lequel la séquence d’opérations consiste en : a) l’exécution, w fois, d’une première opération ; b) l’exécution d’une deuxième opération ; et c) l’exécution, (w-1) fois, de la première opération. Procédé selon la revendication 1 ou 2, dans lequel la première opération est une opération de doublement (DBL) et la deuxième opération est une opération d’addition (ADD). Procédé selon l’une quelconque des revendications 1 à 3, dans lequel le circuit cryptographique (104) est configuré pour modifier une valeur courante (Q) d’un résultat intermédiaire de la multiplication suite à chaque opération non factice et pour ne pas modifier cette valeur courante suite à chaque opération factice. Procédé selon l’une quelconque des revendications 1 à 3, dans lequel, pour chaque opération factice, le circuit cryptographique (104) est configuré pour modifier une valeur courante (Q) d’un résultat intermédiaire de la multiplication en une valeur différente mais mathématiquement équivalente. Procédé selon l’une quelconque des revendications 1 à 5, comprenant en outre, avant le découpage en une pluralité de groupes de chiffres, le recodage du scalaire (k) sous une forme non adjacente fenestrée de paramètre w (NAFw). Procédé selon l’une quelconque des revendications 1 à 6, dans lequel l’ensemble mathématique est une courbe elliptique (E) ou une courbe hyperelliptique. Procédé ou circuit selon la revendication 7, dans lequel la courbe (E) est une courbe de Koblitz définie par un ensemble de points et ayant la forme suivante : [Math 1] où vaut 0 ou 1 et est un corps fini binaire. Procédé ou circuit selon la revendication 8, dans lequel l’opération de doublement (DBL) est un endomorphisme de Frobenius. Procédé selon l’une quelconque des revendications 1 à 9, comprenant en outre, avant l’exécution de la séquence d’opérations sur le point (P), le calcul et le stockage dans une mémoire du circuit d’une pluralité de multiples dudit point (P). Mémoire non transitoire (106) stockant des instructions pour la mise en œuvre du procédé selon l’une quelconque des revendications 1 à 10 lorsque ces instructions sont exécutées par un processeur cryptographique (104). Dispositif électronique (100) comprenant un circuit cryptographique (104) configuré pour la mise en œuvre du procédé selon l’une quelconque des revendications 1 à 10. Circuit cryptographique (104) pour réaliser une multiplication d’un point (P), appartenant à un ensemble mathématique ayant une structure de groupe, par un scalaire (k), le circuit cryptographique étant configuré pour : - découper le scalaire (k) en une pluralité de groupes composés d’un même nombre w de chiffres, w étant supérieur ou égal à 2 ; - exécuter, pour chaque groupe de chiffres, une séquence d’opérations au point (P), la séquence d’opérations étant identique pour chaque groupe de chiffres, au moins une des opérations exécutées pour chacun des groupes de chiffres étant une opération factice.