Brevet FR3118506A1 — publié le 20220701

Appareil comprenant une unité de processeur comprenant des circuits pour générer, pour un premier hôte de réseau, une demande portant sur un objet d’un deuxième hôte de réseau, la demande comprenant une adresse comprenant un ID d’hôte routable du deuxième hôte de réseau et un ID d’objet au moins partiellement crypté, l’adresse identifiant de manière unique l’objet dans un domaine informatique distribué ; et un élément de mémoire pour stocker au moins une partie de l’objet. Figure pour l’abrégé : Fig. 3 CALCUL CRYPTOGRAPHIQUE COMPORTANT DES ADRESSES CRYPTOGRAPHIQUES AMÉLIORÉES La présente divulgation concerne en général le domaine des systèmes informatiques, et plus particulièrement, le calcul cryptographique. ÉTAT DE LA TECHNIQUE ANTÉRIEURE Le calcul cryptographique peut faire référence à des solutions de sécurité de systèmes informatiques qui utilisent des mécanismes cryptographiques à l’intérieur de composants de processeur pour protéger les données stockées par un système informatique. Les mécanismes cryptographiques peuvent être utilisés pour crypter les données elles-mêmes et/ou des pointeurs vers les données à l’aide de clés, de peaufinages ou d’autres mécanismes de sécurité. Le calcul cryptographique est une tendance importante dans l’industrie informatique, la base même du calcul lui-même devenant fondamentalement cryptographique. Le calcul cryptographique représente un changement radical, une refonte fondamentale de la sécurité des systèmes avec de vastes implications pour l’industrie. Afin de permettre une meilleure compréhension de la présente divulgation et de ses caractéristiques et avantages, il est fait référence à la description suivante, prise conjointement avec les figures annexées, où des chiffres de référence similaires représentent des parties similaires, dans lesquelles: La est un schéma de principe simplifié d’un exemple de dispositif informatique configuré avec une logique d’accès à la mémoire sécurisé selon au moins un mode de réalisation de la présente divulgation. La est un diagramme de flux illustrant un processus de liaison d’un pointeur codé généralisé à un cryptage de données référencées par ce pointeur selon au moins un mode de réalisation de la présente divulgation. La est un diagramme de flux illustrant un processus de décryptage de données liées à un pointeur codé généralisé selon au moins un mode de réalisation de la présente divulgation ; La représente un réseau informatique utilisant un adressage cryptographique amélioré selon au moins un mode de réalisation de la présente divulgation ; La représente des adresses cryptographiques améliorées utilisées pour référencer des objets et stockées par une machine physique selon au moins un mode de réalisation de la présente divulgation ; La représente la communication d’un objet entre des machines physiques selon au moins un mode de réalisation de la présente divulgation ; La représente un flux de génération d’une adresse cryptographique améliorée basée sur une clé partagée selon au moins un mode de réalisation de la présente divulgation ; La représente un flux de partage d’un objet selon au moins un mode de réalisation de la présente divulgation ; La représente un flux d’instructions d’accès à la mémoire qui spécifie différentes adresses linéaires pour déplacer des données vers ou depuis la mémoire selon au moins un mode de réalisation de la présente divulgation ; La représente une table comprenant des informations contextuelles et un codage de pointeur cryptographique selon au moins un mode de réalisation de la présente divulgation ; La représente divers espaces de mémoire et une table de clés cryptographiques utilisées en conjonction avec des opérations de récupération de mémoire selon au moins un mode de réalisation de la présente divulgation ; La représente un pointeur compressé pour une allocation associée à des informations contextuelles selon au moins un mode de réalisation de la présente divulgation ; La représente un pointeur compressé pour une allocation associée à des informations contextuelles comprenant un nombre magique et une longueur d’allocation selon au moins un mode de réalisation de la présente divulgation ; La représente des bits d’étiquette et des informations contextuelles stockées en association avec une allocation selon au moins un mode de réalisation de la présente divulgation ; La représente un flux de compression d’un pointeur selon au moins un mode de réalisation de la présente divulgation ; La représente un flux de décompression d’un pointeur selon au moins un mode de réalisation de la présente divulgation ; La représente un flux de stockage d’informations contextuelles en association avec une allocation en mémoire selon au moins un mode de réalisation de la présente divulgation ; La illustre un schéma de principe simplifié d’une application et de données associées à diverses XPU exécutant des aspects de l’application selon au moins un mode de réalisation ; La illustre un autre schéma de principe simplifié d’une application et de données associées à divers XPU exécutant des aspects de l’application selon au moins un mode de réalisation ; La illustre un schéma de principe simplifié d’un exemple de configuration matérielle pour assurer un cryptage de données de dispositifs d’ES selon au moins un mode de réalisation ; La illustre un diagramme de flux d’un exemple de processus de fourniture d’un calcul cryptographique à des dispositifs d’ES sur une interconnexion selon au moins un mode de réalisation ; La illustre encore un autre schéma de principe simplifié d’une application et de données associées à diverses XPU exécutant des aspects de l’application selon au moins un mode de réalisation ; La illustre un schéma de principe simplifié d’un autre exemple de configuration matérielle pour assurer un cryptage de données de dispositifs d’ES selon au moins un mode de réalisation ; La illustre un diagramme de flux d’un autre exemple de processus de fourniture d’un calcul cryptographique à des dispositifs d’ES sur une interconnexion selon au moins un mode de réalisation ; La illustre un mode de réalisation d’un système informatique comportant une architecture d’interconnexion selon au moins un mode de réalisation ; La illustre un mode de réalisation d’une architecture d’interconnexion comprenant une pile en couches selon au moins un mode de réalisation ; La illustre un schéma de principe simplifié illustrant un exemple de système utilisant une liaison CXL selon au moins un mode de réalisation ; La illustre un schéma de principe simplifié illustrant un exemple d’architecture de port utilisée pour implémenter des liaisons CXL selon au moins un mode de réalisation ; La est un schéma de principe simplifié d’un système possible pour mettre en œuvre des exemples d’instructions et une logique pour diverses opérations de calcul cryptographique selon au moins un mode de réalisation ; La est un diagramme de flux illustrant un exemple d’opération d’une instruction pour programmer une clé de calcul cryptographique, selon au moins un mode de réalisation ; La est un diagramme de flux illustrant un exemple d’opération d’une instruction pour initialiser une clé de calcul cryptographique, selon au moins un mode de réalisation ; La est un diagramme de flux illustrant un exemple d’opération d’une instruction pour sauvegarder une clé de calcul cryptographique, selon au moins un mode de réalisation ; La est un diagramme de flux illustrant un exemple d’opération d’une instruction pour restaurer une clé de calcul cryptographique, selon au moins un mode de réalisation ; La est un diagramme de flux illustrant un exemple de flux d’une application de gestion de clés d’opérations de calcul cryptographique selon au moins un mode de réalisation ; La est une illustration schématique d’un système de contrôle de sécurité d’allocation de mémoire selon un mode de réalisation ; La est une illustration schématique d’un système de contrôle de sécurité d’allocation de mémoire amélioré selon un mode de réalisation ; La est une illustration schématique d’un exemple d’allocation de mémoire selon un mode de réalisation ; La est un diagramme de flux d’un exemple de processus lié à une opération d’écriture selon un mode de réalisation ; La est un diagramme de flux d’un exemple de processus lié à une opération de lecture selon un mode de réalisation ; La est une illustration schématique d’une variante de système de contrôle de sécurité d’allocation de mémoire selon un mode de réalisation ; La est un diagramme de flux illustrant un exemple d’opération d’une instruction de renvoi d’un objet en calcul cryptographique, selon au moins un mode de réalisation ; La est un diagramme de flux illustrant un exemple d’opération d’une instruction de renvoi d’un objet en calcul cryptographique, selon au moins un mode de réalisation ; un diagramme schématique d’un format de pointeur codé illustratif selon un mode de réalisation ; La est un diagramme de flux d’un exemple de processus lié au pointeur codé de la selon un mode de réalisation ; La est un schéma de principe illustrant un exemple d’environnement de calcul cryptographique selon au moins un mode de réalisation ; La est un schéma de principe illustrant un exemple de processeur selon au moins un mode de réalisation ; La est un schéma de principe illustrant à la fois un exemple de pipeline dans l’ordre et un exemple de pipeline d’émission/exécution dans le désordre de renommage de registre selon certains modes de réalisation ; La est un schéma de principe illustrant à la fois un exemple de mode de réalisation exemplaire d’un cœur d’architecture dans l’ordre et un exemple de cœur d’architecture d’émission/d’exécution dans le désordre de renommage de registre à inclure dans un processeur selon certains modes de réalisation ; La est un schéma de principe d’un exemple d’architecture d’ordinateur selon au moins un mode de réalisation ; et La est un schéma de principe comparant l’utilisation d’un convertisseur d’instructions logicielles pour convertir des instructions binaires dans un jeu d’instructions source en des instructions binaires dans un jeu d’instructions cible selon des modes de réalisation de la présente divulgation. Appareil comprenant : une unité de processeur comprenant : des circuits pour générer, pour un premier hôte de réseau, une demande portant sur un objet d’un deuxième hôte de réseau, la demande comprenant une adresse comprenant un ID d’hôte routable du deuxième hôte de réseau et un ID d’objet au moins partiellement crypté, l’adresse identifiant de manière unique l’objet dans un domaine informatique distribué ; et un élément de mémoire pour stocker au moins une partie de l’objet. Appareil selon la revendication 1, dans lequel l’ID d’objet partiellement crypté est infalsifiable. Appareil selon l’une quelconque des revendications 1 à 2, dans lequel les circuits servent à exécuter une instruction d’accès à la mémoire ayant un opérande qui fait référence à l’adresse. Appareil selon l’une des revendications 1 à 3, dans lequel l’ID d’objet comporte des informations contextuelles pour une opération cryptographique associée à l’objet. Appareil selon l’une quelconque des revendications 1 à 4, dans lequel l’adresse comprend au moins 128 bits. Appareil selon l’une quelconque des revendications 1 à 5, dans lequel l’ID d’hôte routable est de 64 bits de long et l’ID d’objet est de 64 bits de long. Appareil selon l’une quelconque des revendications 1 à 6, dans lequel les circuits servent à utiliser l’adresse comme clé cryptographique pour décrypter l’objet. Appareil selon l’une quelconque des revendications 1 à 7, dans lequel le domaine informatique distribué comprend l’ensemble de l’Internet. Appareil selon l’une quelconque des revendications 1 à 8, dans lequel les circuits servent à générer la demande en réponse à une instruction d’appel faisant référence à l’adresse et une détermination qu’il convient de décharger l’exécution d’un objet code en fonction d’une charge actuelle d’une unité de processeur exécutant le premier hôte de réseau. Appareil selon l’une quelconque des revendications 1 à 8, dans lequel le circuit consiste à générer la demande en réponse à une détermination qu’une table de pages ne comporte pas de mappage de l’ID d’objet sur une adresse physique. Appareil selon l’une quelconque des revendications 1 à 10, comprenant en outre un tampon de recherche de clés pour associer l’ID d’hôte à une clé pour décrypter l’objet. Appareil selon la revendication 11, dans lequel les circuits servent à appeler un protocole d’autorisation pour obtenir la clé en réponse à une erreur dans le tampon de recherche de clés. Support lisible par ordinateur comprenant des instructions qui, à leur exécution par une machine, amènent la machine à : générer, par un premier hôte de réseau, une demande portant sur un objet d’un deuxième hôte de réseau, la demande comprenant une adresse comprenant un ID d’hôte routable du deuxième hôte informatique et un ID d’objet au moins partiellement crypté, l’adresse identifiant de manière unique l’objet au sein d’un domaine informatique distribué; et accéder à l’objet. Support selon la revendication 13, dans lequel l’ID d’objet partiellement crypté est infalsifiable. Support selon l’une quelconque des revendications 13 à 14, les instructions amenant la machine à exécuter, par le premier hôte de réseau, une instruction d’accès à la mémoire ayant un opérande qui fait référence à l’adresse. Support selon l’une quelconque des revendications 13 à 15, dans lequel l’ID d’objet comporte des informations contextuelles pour une opération cryptographique associée à l’objet. Support selon l’une quelconque des revendications 13 à 16, dans lequel l’adresse comprend au moins 128 bits. Support selon l’une quelconque des revendications 13 à 17, dans lequel l’ID d’hôte routable est de 64 bits de long et l’ID d’objet est de 64 bits de long. Support selon l’une quelconque des revendications 13 à 18, les instructions amenant la machine à utiliser l’adresse comme clé cryptographique pour décrypter l’objet. Support selon l’une quelconque des revendications 13 à 19, dans lequel le domaine informatique distribué comprend l’ensemble de l’Internet. Support selon l’une quelconque des revendications 13 à 20, les instructions amenant la machine à générer la demande en réponse à une instruction d’appel faisant référence à l’adresse et une détermination qu’il convient de décharger l’exécution d’un objet de code en fonction de la charge actuelle d’une unité de processeur exécutant le premier hôte de réseau. Support selon l’une quelconque des revendications 13 à 20, les instructions amenant la machine à générer la demande en réponse à une détermination qu’une table de pages ne comporte pas de mappage de l’ID d’objet sur une adresse physique. Procédé comprenant l’exécution d’une instruction d’accès à la mémoire comprenant un premier opérande faisant référence à un pointeur comprenant une première adresse linéaire, l’exécution de l’instruction d’accès à la mémoire comprenant la traduction de la première adresse linéaire en une adresse physique, l’accès aux données à l’adresse physique et la réalisation d’une opération cryptographique sur les données en fonction d’une deuxième adresse linéaire. Procédé comprenant : la réception d’un pointeur codé à partir d’un dispositif d’ES par l’intermédiaire d’une interconnexion ; le décodage du pointeur codé pour obtenir une adresse mémoire dans la mémoire ; l’accès aux données cryptées associées au dispositif d’ES à l’adresse mémoire ; le décryptage des données cryptées en fonction du pointeur codé et d’une clé associée au dispositif d’ES ; et la transmission des données décryptées vers le dispositif d’ES. Processeur comprenant : un registre pour stocker un pointeur codé vers un emplacement mémoire dans une allocation de mémoire pour une région de données, dans lequel le pointeur codé doit inclure au moins une partie d’une adresse linéaire correspondant à l’emplacement mémoire ; des circuits pour: en réponse à une demande d’accès à la mémoire pour accéder à l’emplacement mémoire, calculer une adresse médiane de l’allocation de mémoire et utiliser l’adresse médiane pour calculer une deuxième adresse mémoire pour un premier code d’authentification de message (MAC) associé à des premières données stockées à l’emplacement mémoire ; lire le premier MAC à la deuxième adresse mémoire ; lire les premières données à partir de l’emplacement mémoire correspondant à l’adresse linéaire ; déterminer que les premières données ne sont pas corrompues en fonction, en partie, du premier MAC ; et en réponse à la détermination que les premières données ne sont pas corrompues, autoriser la réalisation de la demande d’accès à la mémoire.