Brevet FR3028642A1 — publié le 20160520

Arrière-plan de l'invention L'invention se rapporte au domaine général des microcircuits, et plus particulièrement à la personnalisation de ces microcircuits. On connaît aujourd'hui des microcircuits comprenant des mémoires dans lesquelles des logiciels et des données personnelles sont 10 écrits ou placés. Généralement, on écrit dans la mémoire des microcircuits un système d'exploitation, des applications, et des données de personnalisation. Par données de personnalisation, on comprend qu'il s'agit de données liées au porteur telles que son nom, son prénom, sa date de naissance, sa photo, ou encore une clef cryptographique associée 15 au porteur. Des microcircuits existants comportent à cet effet des mémoires de type ROM et EEPROM bien connues de l'homme du métier. Dans ces microcircuits, le fabricant des microcircuits peut être amené à inscrire dans la mémoire de type ROM le système d'exploitation, tandis qu'un tiers, par 20 exemple un fabricant de carte à microcircuit, inscrira les données de personnalisation dans l'EEPROM. Les mémoires de type EEPROM ont pour inconvénient d'être lentes lors de lectures et d'écritures. Ce type de mémoire n'est donc pas adapté pour le stockage de grandes quantités de données, puisque ce stockage 25 requiert une durée trop longue. Ces mémoires ne sont pas non plus adaptées pour le stockage de systèmes d'exploitation, puisqu'elles limitent leur vitesse d'exécution. Pour pallier cet inconvénient, il a été proposé d'utiliser des mémoires Flash au sein des microcircuits. Les fabricants de microcircuits peuvent inscrire les systèmes 30 d'exploitation dans les mémoires Flash des microcircuits. Cela étant, il est préférable pour les fabricants de carte à puce d'écrire eux-mêmes le système d'exploitation dans les microcircuits à mémoire Flash, en plus des données de personnalisation. Ceci permet notamment aux fabricants de carte à puce de gérer plus facilement leurs stocks et leurs achats, par 35 exemple en mutualisant ces derniers et en réduisant le nombre de références de microcircuit à traiter. 3028642 2 On peut noter que : - les systèmes d'exploitation de microcircuits peuvent occuper de 30 kilooctets à plusieurs centaines de kilooctets de mémoire, - les applications peuvent occuper de quelques kilooctets à des dizaines de 5 kilooctets, - les données de personnalisation peuvent occuper de quelques kilooctets à des dizaines de kilooctets, et - des éléments de code optionnels peuvent occuper de quelques kilooctets à des dizaines de kilooctets. L'écriture de l'ensemble de ces données peut être faite avec des équipements utilisant des transmissions par contact ou sans contact. Cette écriture peut nécessiter une durée de l'ordre de 5 à 10 secondes pour un système d'exploitation de 160 kilooctets. Dans la suite de la demande, le terme écriture peut être compris 15 comme englobant notamment les actions de chargement et/ou de transmission des données. Ces étapes d'écriture rallongent donc la durée de la personnalisation des microcircuits chez les fabricants de carte à puce, ce qui augmente les coûts de productions. 20 L'invention vise notamment à pallier cet inconvénient. Objet et résumé de l'invention 25 La présente invention vise une solution à ce problème en proposant un procédé de personnalisation d'un microcircuit muni d'une mémoire non volatile. Selon une caractéristique générale, le procédé comprend une 30 écriture dans ladite mémoire non-volatile d'au moins une première partie d'une entité logicielle et d'une deuxième partie de la même entité logicielle, la deuxième partie ayant été compressée, et au moins une étape d'une phase de personnalisation du microcircuit postérieure à ladite étape d'écriture et dans laquelle la deuxième partie compressée reste 35 compressée. 3028642 3 Par entité logicielle, on entend un unique logiciel, dont les deux parties décompressées peuvent fonctionner à la fois seules et/ou ensemble. En d'autres termes, la première partie peut appeler des fonctions dans la deuxième partie décompressée et la deuxième partie 5 décompressée peut appeler des fonctions dans la première partie. Les deux parties sont également issues d'une même version de l'entité logicielle. Ainsi, et d'une façon générale, l'invention permet de réduire la durée de fabrication et de personnalisation des microcircuits, puisqu'au 10 moins une partie d'une entité logicielle qui est écrite est compressée, elle occupe donc moins d'espace. Il en découle une réduction du temps de transfert du code de l'entité logicielle. Même si la décompression de la deuxième partie peut prendre du temps, on peut la mettre en oeuvre à tout moment ensuite sans que cela 15 ne retarde une chaîne de fabrication dans laquelle un grand nombre de microcircuits sont traités. En réduisant la durée de chargement et d'écriture, on réduit le coût de production du microcircuit. Dans un mode particulier de mise en oeuvre, l'entité logicielle est 20 un système d'exploitation du microcircuit, la première partie de l'entité logicielle étant une portion non-compressée du système d'exploitation et la deuxième partie compressée de l'entité logicielle étant une portion compressée du système d'exploitation. Dans un mode particulier de mise en oeuvre, la portion non- 25 compressée du système d'exploitation du microcircuit est utilisée au moins lors de ladite au moins une étape d'une phase de personnalisation du microcircuit, et la portion compressée du système d'exploitation du microcircuit est destinée à être utilisée décompressée lors de l'utilisation du microcircuit, après ladite étape d'une phase de personnalisation. 30 Ainsi, on peut regrouper dans la portion à compresser des fonctions qui ne sont pas utilisées lors de la personnalisation mais uniquement lors de l'utilisation du microcircuit. L'utilisation peut être par exemple l'usage du microcircuit dans son application finale. 3028642 4 Dans un mode particulier de mise en oeuvre, la deuxième partie compressée de l'entité logicielle est destinée à être décompressée lors de la détection d'au moins un évènement. Dans un mode particulier de mise en oeuvre, on écrit, au cours de 5 ladite étape d'écriture, la deuxième partie compressée de l'entité logicielle en écrivant plusieurs sous-parties compressées de l'entité logicielle, chaque sous-partie étant destinée à être décompressée lors de la détection d'au moins un évènement. Dans un mode particulier de mise en oeuvre, la deuxième partie 10 compressée est destinée à être décompressée lors de la première utilisation du microcircuit. Ainsi, utilisé dans son application finale, le microcircuit va décompresser la deuxième partie compressée pour permettre l'utilisation de toutes les fonctions de l'entité logicielle. Dans un mode particulier de mise en oeuvre, le procédé comprend toutes les étapes d'une phase de personnalisation du microcircuit dans laquelle la deuxième partie compressée reste compressée. Dans un mode particulier de mise en oeuvre, le procédé comporte l'écriture de données de personnalisation liées à l'entité logicielle dans une mémoire du microcircuit, par exemple ladite mémoire non-volatile. En d'autres termes, on personnalise le microcircuit pour l'entité logicielle. L'invention propose également un procédé d'utilisation d'un microcircuit ayant subi au moins une étape d'une phase de personnalisation et muni d'une mémoire non-volatile. Selon une caractéristique générale de ce procédé, la mémoire non volatile comporte au moins une première partie d'une entité logicielle et une deuxième partie de la même entité logicielle, la deuxième partie ayant été compressée, et l'on décompresse la deuxième partie pour obtenir l'entité logicielle. Dans un mode particulier de mise en oeuvre, l'entité logicielle est un système d'exploitation du microcircuit, la première partie de l'entité logicielle étant une portion non-compressée du système d'exploitation et la deuxième partie compressée de l'entité logicielle étant une portion compressée du système d'exploitation. 3028642 5 Dans un mode particulier de mise en oeuvre, on utilise la portion du système d'exploitation ayant été décompressée pour le fonctionnement du microcircuit. Dans un mode particulier de mise en oeuvre, la deuxième partie 5 compressée de l'entité logicielle est décompressée lors de la détection d'au moins un évènement. Dans un mode particulier de mise en oeuvre, plusieurs sous-parties compressées de l'entité logicielle ont été écrites, chaque sous-partie étant décompressée lors de la détection d'au moins un évènement. 10 Dans un mode particulier de mise en oeuvre, la deuxième partie compressée est décompressée lors de la première utilisation du microcircuit. Dans un mode particulier de mise en oeuvre, le microcircuit a subi toutes les étapes d'une phase de personnalisation avant ladite 15 décompression. Dans un mode particulier de mise en oeuvre, une mémoire du microcircuit comporte des données de personnalisation liées à l'entité logicielle. L'invention propose également un microcircuit ayant subi au moins 20 une étape d'une phase de personnalisation et muni d'une mémoire non-volatile, caractérisé en ce que la mémoire non volatile comporte au moins une première partie d'une entité logicielle et une deuxième partie de la même entité logicielle, la deuxième partie ayant été compressée. Dans un mode particulier de réalisation, l'entité logicielle est un 25 système d'exploitation du microcircuit, la première partie de l'entité logicielle étant une portion non-compressée du système d'exploitation et la deuxième partie compressée de l'entité logicielle étant une portion compressée du système d'exploitation. Dans un mode particulier de réalisation, la portion du système 30 d'exploitation ayant été décompressée est destinée à être utilisée pour le fonctionnement du microcircuit. Dans un mode particulier de réalisation, la deuxième partie compressée de l'entité logicielle est destinée à être décompressée lors de la détection d'au moins un évènement. 35 Dans un mode particulier de réalisation, plusieurs sous-parties compressées de l'entité logicielle ont été écrites, chaque sous-partie étant 3028642 6 destinée à être décompressée lors de la détection d'au moins un évènement. Dans un mode particulier de réalisation, la deuxième partie compressée est destinée à être décompressée lors de la première 5 utilisation du microcircuit. Dans un mode particulier de réalisation, le microcircuit a subi toutes les étapes d'une phase de personnalisation. Dans un mode particulier de réalisation, une mémoire du microcircuit comporte des données de personnalisation liées à l'entité 10 logicielle. Enfin, l'invention propose un document d'identité comprenant le microcircuit tel que défini ci-avant. Le document d'identité peut être un passeport électronique. 15 Brève description des dessins 20 D'autres caractéristiques et avantages de la présente invention ressortiront de la description faite ci-dessous, en référence aux dessins annexés qui en illustrent un exemple dépourvu de tout caractère limitatif. Sur les figures : - la figure 1 représente de façon schématique un procédé de 25 personnalisation d'un microcircuit selon un mode de mise en oeuvre de l'invention, ainsi que l'évolution de la mémoire du microcircuit au cours des étapes du procédé, - la figure 2 représente de façon schématique un procédé d'utilisation d'un microcircuit selon un mode de mise en oeuvre de l'invention, 30 - la figure 3 illustre schématiquement les variations de tailles du système d'exploitation, - la figure 4 illustre schématiquement les durées d'écriture des différents éléments qui sont écrits dans une mémoire de microcircuit. 35 3028642 7 Description détaillée d'un mode de réalisation Nous allons maintenant décrire un procédé de personnalisation d'un microcircuit, conformément à un mode particulier de réalisation de 5 l'invention. Dans le mode de réalisation décrit ici, l'entité logicielle qui est écrite dans la mémoire est un système d'exploitation. Sur la figure 1, on a représenté un procédé de personnalisation d'un microcircuit MC, muni d'une mémoire non-volatile MEM du type Flash. 10 Le microcircuit MC est par exemple installé au sein d'une carte pour former une carte à microcircuit. Préalablement à la mise en oeuvre du procédé de la figure 1, un système d'exploitation a été divisé en deux portions : une portion P1 non compressée et une portion P2 compressée. La division du système 15 d'exploitation sera décrite plus en détail en se référant à la figure 3. Le procédé de la figure 1 comporte une étape E01 dans laquelle on écrit dans la mémoire non-volatile MEM les portions Pi et P2 du système d'exploitation. Après une étape E02 de phase de personnalisation, qui comporte 20 au moins une sous-étape de pré-personnalisation et une sous-étape de personnalisation, des données de personnalisation PER sont écrites dans la mémoire non-volatile MEM. Au cours de cette étape E02, la portion non-compressée P1 du système d'exploitation peut être fonctionnelle et être utilisée pour la 25 personnalisation. La portion non-compressée P1 comporte ici des fonctions relatives à l'allocation de mémoire qui sont utilisées pour la personnalisation. La phase de personnalisation comprend une pré-personnalisation et une personnalisation. La pré-personnalisation correspond à une étape 30 de configuration du microcircuit et/ou du système d'exploitation, cette étape étant mise en oeuvre pour un groupe de microcircuits, par exemple une flotte. La pré-personnalisation peut par exemple correspondre à l'activation et à la désactivation de moyens de communication (contact et/ou sans contact), de protocoles de communications, ou encore 35 d'algorithmes cryptographiques. A titre d'exemple, pour les passeports électroniques, on peut configurés des protocoles tels que BAC, BAC+AA, 3028642 8 EAC ou SAC, et pour une plateforme JavaCard, on peut configurer les protocoles Global Platform. La personnalisation comprend l'écriture d'informations différentes pour chaque microcircuit. Cela peut correspondre au chargement de clés 5 et de certificats cryptographiques, ou encore de données liées à l'utilisateur qui sera le porteur du microcircuit telles que son nom, son adresse, ou des données biométriques. On peut noter que la phase depersonnalisation permet l'écriture de données qui sont liées au système d'exploitation et qui sont destinées à 10 être utilisées par ce système d'exploitation. On obtient ainsi un microcircuit MC ayant subi toutes les étapes d'une phase de personnalisation et muni d'une mémoire non-volatile MEM, cette mémoire non volatile MEM comportant une portion non-compressée P1 du système d'exploitation, une portion compressée P2 du même 15 système d'exploitation, et des données de personnalisation PER. Sur la figure 2, on a représenté un procédé d'utilisation du microcircuit MC décrit en se référant à la figure 1. Le microcircuit MC a été personnalisé et il comporte donc des données de personnalisation PER écrites dans sa mémoire non-volatile MEM. La mémoire non-volatile MEM 20 comporte en outre une portion non-compressée du système d'exploitation Pl et une portion compressée du système d'exploitation P2. Dans une étape E03, un évènement est détecté. Cet évènement peut être la première utilisation du microcircuit MC dans son application finale, et la détection peut être réalisée par la portion non-compressée du 25 système d'exploitation Pl. A titre indicatif, on peut détecter la première fois que le microcircuit est alimenté électriquement, ou détecter une instruction de type APDU bien connue de l'homme du métier, ou détecter la première authentification du porteur du microcircuit (par exemple lors de la saisie d'un code PIN ou d'une donnée biométrique), ou encore 30 détecter la première authentification d'un terminal extérieur par le microcircuit (par exemple lors d'une authentification par un système d'inspection par un passeport à travers le protocole EAC, c'est à dire au moyen d'un terminal embarquant un logiciel permettant d'accéder aux données d'un passeport électronique). 35 On peut ensuite décompresser (étape E04) la portion P2 compressée du microcircuit. On peut noter que cette décompression est 3028642 9 liée à la détection de l'événement mise en oeuvre dans l'étape E03, et éventuellement à une condition d'authentification supplémentaire ou une condition de mise en contact du microcircuit. On peut noter que la gestion d'applications dans des formats 5 compressés peut être mise en oeuvre au sein d'un microcircuit. On obtient ainsi un microcircuit MC avec un système d'exploitation complet dans lequel les deux portions décompressées peuvent fonctionner ensemble. Sur la figure 3, on a représenté par un diagramme les variations 10 de taille du système d'exploitation. Le système d'exploitation entier SE est complet et comporte toutes les fonctions du système d'exploitation qui sont utilisés pour la personnalisation, l'utilisation, ou encore les deux. Ensuite, ce système d'exploitation SE est divisé en une portion à 15 compresser du système d'exploitation P2' et une portion non compressée P1. La portion non-compressée P1 comporte, comme indiqué ci-avant, des fonctions utiles pour la personnalisation telles que l'allocation de mémoire, et cette portion P1 comporte également des informations relatives à la portion à compresser P2. Plus précisément, la portion non-compressée P1 20 peut comporter des instructions visant à décompresser l'autre portion, des instructions pour la détection d'un évènement avant de décompresser, ou encore des informations relatives à l'emplacement dans la mémoire de l'autre portion du système d'exploitation. La division peut être mise en oeuvre en compilant le système 25 d'exploitation, en identifiant les fonctions qui peuvent être compressées, et en plaçant ces fonctions dans un fichier distinct pour obtenir deux fichiers distincts. L'ajout de ces informations dans la portion non-compressée du système d'exploitation peut augmenter la taille totale du système 30 d'exploitation, comme cela est visible sur la figure 3 sur laquelle les deux portions P1 et P2' ont une taille plus grande que le système d'exploitation SE. Après compression, on obtient la portion compressée P2, et l'ensemble formé par les deux portions P1 et P2 a une taille bien inférieure 35 à celle de la taille du système d'exploitation initial SE. La différence de taille de mémoire est notée TM. La demanderesse a réussi à ce jour à 3028642 10 compresser plusieurs dizaines de kilooctets, avec des taux de compression pouvant aller jusqu'à 80%. Sur la figure 4, on a représenté de manière schématique les durées d'écriture des différents éléments qui sont écrits dans une mémoire 5 de microcircuit, et les durées de mise en oeuvre de certaines fonctions. Sur cette figure, on a représenté le chargement d'un système d'exploitation dans une mémoire Flash par le procédé selon l'invention, dans une mémoire Flash selon la technique antérieure, et dans une mémoire d'un microcircuit dans lequel le système d'exploitation est écrit 10 dans une mémoire ROM. Dans une phase P1, mise en oeuvre chez un fabricant de carte à microcircuit, on inscrit un système d'exploitation dans les microcircuits équipés de mémoire Flash. Comme on peut le voir sur la figure, la durée Dse1 d'écriture du système d'exploitation est plus longue dans le cas de la 15 technique antérieur que la durée Dse2 d'écriture du système d'exploitation ayant une portion compressée. Dans cette même phase P1, on personnalise le microcircuit. Dans les trois situations, cela correspond à l'écriture de données de pré-personnalisation et de personnalisation pendant une durée Dper identique 20 pour chaque situation. Dans une phase P2, on utilise les microcircuits pour la première fois. Pour les deux microcircuits selon la technique antérieure, cela correspond à une utilisation d'une durée du. Pour le microcircuit obtenu par le procédé selon l'invention, une 25 étape de décompression est mise en oeuvre ayant une durée Ddec, puis une utilisation d'une durée du est mise en oeuvre de la même manière que pour les autres microcircuits. Lors de la deuxième utilisation (phase P3), les utilisations ont toutes la même durée et tous les microcircuits se comportent de la même 30 manière. REVENDICATIONS1. Procédé de personnalisation d'un microcircuit (MC) muni d'une mémoire non volatile (MEM), caractérisé en ce qu'il comprend une écriture (E01) dans ladite mémoire non-volatile d'au moins une première partie (P1) d'une entité logicielle et d'une deuxième partie (P2) de la même entité logicielle, la deuxième partie ayant été compressée, et au moins une étape d'une phase de personnalisation (E02) du microcircuit postérieure à ladite étape d'écriture et dans laquelle la deuxième partie compressée reste compressée. 2. Procédé selon la revendication 1, dans lequel l'entité logicielle est un système d'exploitation (SE) du microcircuit, la première partie de l'entité logicielle étant une portion (P1) non-compressée du système d'exploitation et la deuxième partie compressée de l'entité logicielle étant une portion (P2) compressée du système d'exploitation. 3. Procédé selon la revendication 2, dans lequel ladite portion non-compressée (P1) du système d'exploitation du microcircuit est utilisée au moins lors de ladite au moins une étape d'une phase de personnalisation (E02) du microcircuit, et la portion compressée du système d'exploitation du microcircuit est destinée à être utilisée décompressée lors de l'utilisation du microcircuit, après ladite étape d'une phase de personnalisation. 4. Procédé selon l'une quelconque des revendications 1 à 3, dans lequel la deuxième partie compressée de l'entité logicielle est destinée à être décompressée lors de la détection d'au moins un évènement. 5. Procédé selon l'une quelconque des revendications 1 à 3, dans lequel on écrit, au cours de l'étape d'écriture (E01), la deuxième partie compressée de l'entité logicielle en écrivant plusieurs sous-parties compressées de l'entité logicielle, chaque sous-partie étant destinée à être décompressée lors de la détection d'au moins un évènement. 6. Procédé selon l'une des revendications 1 à 5, dans lequel la 35 deuxième partie compressée est destinée à être décompressée lors de la première utilisation du microcircuit. 3028642 12 7. Procédé selon l'une des revendications 1 à 6, comportant l'écriture de données de personnalisation liées à l'entité logicielle dans une mémoire du microcircuit. 8. Procédé d'utilisation d'un microcircuit (MC) ayant subi au moins 5 une étape d'une phase de personnalisation et muni d'une mémoire non-volatile (MEM), caractérisé en ce que la mémoire non volatile comporte au moins une première partie (P1) d'une entité logicielle et une deuxième partie (P2) de la même entité logicielle, la deuxième partie ayant été compressée, et l'on décompresse (E04) la deuxième partie pour obtenir 10 l'entité logicielle. 9. Procédé selon la revendication 8, dans lequel l'entité logicielle est un système d'exploitation (SE) du microcircuit, la première partie de l'entité logicielle étant une portion (P1) non-compressée du système d'exploitation et la deuxième partie compressée de l'entité logicielle étant 15 une portion compressée du système d'exploitation. 10. Procédé selon la revendication 9, dans lequel on utilise la portion du système d'exploitation ayant été décompressée pour le fonctionnement du microcircuit. 11. Procédé selon l'une quelconque des revendications 8 à 10, 20 dans lequel la deuxième partie compressée (P2) de l'entité logicielle est décompressée lors de la détection d'au moins un évènement (E03). 12. Procédé selon l'une des revendications 8 à 10, dans lequel plusieurs sous-parties compressées de l'entité logicielle ont été écrites, chaque sous-partie étant décompressée lors de la détection d'au moins un 25 évènement. 13. Procédé selon l'une des revendications 8 à 12, dans lequel la deuxième partie compressée est décompressée lors de la première utilisation du microcircuit. 14. Procédé selon l'une des revendications 8 à 13, dans lequel une 30 mémoire du microcircuit comporte des données de personnalisation liées à l'entité logicielle. 15. Microcircuit (MC) ayant subi au moins une étape d'une phase de personnalisation et muni d'une mémoire non-volatile (MEM), caractérisé en ce que la mémoire non volatile comporte au moins une première partie (P1) d'une entité logicielle et une deuxième partie (P2) de la même entité logicielle, la deuxième partie ayant été compressée. 3028642 13 16. Microcircuit selon la revendication 15, dans lequel l'entité logicielle est un système d'exploitation du microcircuit, la première partie de l'entité logicielle étant une portion (P1) non-compressée du système d'exploitation et la deuxième partie compressée de l'entité logicielle étant 5 une portion (P2) compressée du système d'exploitation. 17. Microcircuit selon la revendication 16, dans lequel la portion du système d'exploitation ayant été décompressée est destinée à être utilisée pour le fonctionnement du microcircuit. 18. Microcircuit selon l'une quelconque des revendications 15 à 10 17, dans lequel la deuxième partie compressée (P2) de l'entité logicielle est destinée à être décompressée lors de la détection d'au moins un évènement. 19. Microcircuit selon l'une des revendications 15 à 17, dans lequel plusieurs sous-parties compressées de l'entité logicielle ont été écrites, 15 chaque sous-partie étant destinée à être décompressée lors de la détection d'au moins un évènement. 20. Microcircuit selon l'une des revendications 15 à 19, dans lequel la deuxième partie compressée est destinée à être décompressée lors de la première utilisation du microcircuit. 20 21. Document d'identité comprenant le microcircuit selon l'une des revendications 15 à 20.