FR 2708403 A1 19950203 FR 9407921 A 19940628 Titre: Procédé pour communications point à point dans des systèmes de communication de sécurité Domaine d'apDlication La présente invention porte généralement sur des systèmes de communication, et, en particulier, sur un procédé assurant des communications point à point dans des systèmes de communication de sécurité. Domaine technique de l'invention On sait que les systèmes de communication comprennent des émetteurs et récepteurs mobiles, comme les radios portatives ou les radios montées dans les automobiles, dénommées ci-après unités de communication, et des émetteurs et récepteurs fixes, comme les stations de base ou les contrôleurs (terminaisons fixes). Un message typique dans un tel système de communication peut commencer par une unité mobile qui convertit un signal audio en flux de données numériques adapté à la transmission sur un canal HF (haute fréquence) vers une autre unité de communication ou la terminaison fixe. Ces systèmes sont souvent utilisés par des institutions de sécurité publique, comme, par exemple, les forces de l'ordre fédérales ou locales. L'existence d'analyseurs haute fréquence dans le commerce permet à des personnes non autorisées de contrôler les informations transmises dans ce type de systèmes de communication. Afin de réduire les écoutes illicites, les systèmes de communication encryptent les communications de sorte que, sans connaître le procédé d'encryptage et en l'absence de tout décrypteur, les communications sont inintelligibles. Comme on le sait, les méthodes d'encryptage numérique utilisent un algorithme réversible pour introduire l'aspect aléatoire dans un flux de données numériques. Un algorithme qui sélectionne aléatoirement des données numériques s'appelle encrypteur, et celui qui reconstitue les données d'origine à partir des données sélectionnées aléatoirement, décrypteur. Un algorithme encrypteur/décrypteur utilise généralement des paramètres dynamiques, appelés souvent clés ou variables clés, pour spécifier uniquement la nature de l'aspect aléatoire introduit dans le flux de données numériques. De ce fait, seuls des encrypteurs et décrypteurs utilisant un algorithme et une clé identiques sont capables de reproduire des messages intelligents. Un exemple d'algorithme encrypteur/décrypteur est représenté par le Standard d'Encryptage de Données (SED). Typiquement, chaque unité de communication d'un système de communication de sécurité peut stocker n'importe o de une à vingt clés pour les utiliser dans des communication encryptées. La capacité de stockage de clés d'une unité de communication est généralement limitée par le coût des dispositifs de stockage et la technologie de protection nécessaire pour supporter en toute sécurité un ensemble de clés. Le nombre limité de clés que peut généralement mémoriser une unité de communication de sécurité empêche l'utilisation des nombreuses caractéristiques rencontrées couramment dans les systèmes de communication non encryptés. Par exemple, si deux utilisateurs d'un système de communication de sécurité désiraient entamer une communication point à point de sécurité, outre les personnes qui contrôleraient leur appel en dehors du système de communication, ils exigeraient l'utilisation exclusive, pendant une période de temps-indéfini-e- 'au-moins - -l'une-des clés de nombre limité disponibles pour toutes les unités de communication du système. Dans les très grands systèmes de sécurité contenant des centaines, voire même des milliers d'unités de communication, ladite utilisation exclusive de variables clés est, de toute évidence, inefficace. De plus, une telle communication présenterait un certain degré de confidentialité, mais ne serait pas, en général, totalement protégée, puisque d'autres unités du système pourraient contrôler la communication, en essayant chacune des clés de nombre limité jusqu'à rendre la conversation intelligible. Pour remédier à cette situation, une variable clé unique devrait être accessible à chaque unité de communication du système. Le nombre de clés uniques à ajouter nécessairement à chaque unité de communication pour tenir compte de toutes les communications point à point possibles dans un grand système, ainsi que le traitement supplémentaire indispensable pour déterminer la clé à utiliser, est prohibitif. Il existe par conséquent un besoin d'un procédé permettant la réalisation de communications point à point dans des systèmes de communication de sécurité, sans l'utilisation exclusive inefficace de variables clés ou l'ajout d'un grand nombre de variables clés uniques dans chaque unité de communication. Brève description des dessins La figure 1 illustre un système de communication selon la présente invention. La figure 2 illustre un schéma logique qui peut être incorporé dans des unités de communication pour mettre en oeuvre la présente invention. Description d'une forme de réalisation préférée La présente invention fournit, en général, un procédé de communications point à point de sécurité dans un système de communication de sécurité. Ceci s'obtient en permettant à une pluralité d'unités de communication dans le système de générer des variables clés d'encryptage uniques à partir d'un ensemble limité de variables clés d'encryptage mémorisées dans chaque unité de communication. Un opérateur d'une première unité de communication sélectionne, par exemple, au moins une unité de communication de destination pour effectuer une communication point à point. Une variable clé d'appel privé est généree par la première unité de communication, en modifiant une variable clé d'encryptage de l'ensemble limité de variables clés d'encryptage basée sur une fonction prédéterminée. L'identité de la variable clé d'encryptage et des informations appartenant à la fonction prédéterminée utilisées pour générer la clé d'appel privé sont transmises par la première unité de communication à l'unité de communication de destination, laquelle, à son tour, génère la variable clé d'appel privé en fonction de l'identité de la variable clé d'encryptage et des informations appartenant à la fonction prédéterminée. A ce stade, la première unité de communication et la ou les unités de communication de destination sont libres de s'engager dans une communication point à point de sécurité, sans que le système de sécurité ne comportent d'autres unités de communication capables d'écoute, ou sans avoir à ajouter plusieurs clés d'encryptage au système de sécurité. La présente invention peut être décrite plus en détail en référence aux figures 1 et 2. La figure 1 illustre un système de communication (100) qui peut être un système de communication partagé, un système de communication classique, ou un réseau de systèmes de communication. Indépendamment du type de système, le système de communication (100) comprend au moins une unité de diffusion (101), une pluralité d'unités de communication (102-103), et un nombre limité de ressources de communication (104-105). L'unité de communication 102 comprend, de plus, en partie, un microprocesseur (ou un réseau de microprocesseurs) (106), un dispositif à mémoire (107), et un dispositif d'entrée/sortie (108). L'unité de communication 103 comprend, de plus, en partie, un microprocesseur (ou un réseau de microprocesseurs) (109), et un dispositif à mémoire (110). Il est entendu que l'une des unités de communication ou les deux (102- 103) pourraient incorporer un dispositif d'entrée/sortie. En outre, on suppose que toutes les unités de communication fonctionnant dans le système de communication (100) comprennent un dispositif d'encryptage/décryptage, tel que décrit précédemment, non représentés pour raison de simplification. L'unité de diffusion (101) peut comporter une station de base ou un émetteur relais sous forme simple ou multiple, comme la station de base numérique Quantar fabriquée par la société Motorola. L'unité de diffusion (101) peut être configurée pour s'interfacer avec des ressources de communication multiples (104 et 105), si besoin est, pour mettre en oeuvre des caractéristiques ou des services de systèmes de communication cellulaires, partagés, ou classiques. Les ressources de communication (104-105) peuvent incorporer un canal HF, comme des paires d'ondes porteuses, des emplacements de multiplexage temporel (TDM), ou tous autres supports de transmission HF, ou une liaison physique, telle que ligne téléphonique. Les unités de communication (102-103) peuvent comprendre une radio portative, un auto- radio, un équipement de type à répartition fixe, ou un équipement à radiotélephone cellulaire, comme les radios numériques ASTRO fabriquées par la société Motorola. Les microprocesseurs (106, 109) fournissent le contrôle et le traitement des communications pour les unités de communication (102-103), et peuvent comprendre des microprocesseurs 68302, fabriqués par la société Motorola. Les dispositifs à mémoire (107, 110), qui peuvent être de type RAM (mémoire vive), ROM (mémoire morte), EEPROM (mémoire morte programmable et effaçable électriquement), ou tout autre moyen de stockage des informations numériques, mémorisent un ensemble de variables clés d'encryptage (jusqu'à 20), ainsi qu'un code d'identification unique des unités de communication (102-103). Le dispositif d'entrée/sortie (108) comprend un dispositif capable de récupérer des informations de commande d'un opérateur et/ou de fournir des informations à l'opérateur. Le dispositif d'entrée/sortie (108) peut être un clavier, un bouton, des boutons, un lecteur de cartes, un module PCMCIA (norme de l'association internationale des cartes mémoire pour ordinateurs personnels), des témoins lumineux, des DEL (diodes électroluminescentes), un affichage alphanumérique, ou une interface de réseau à d'autres ordinateurs ou microprocesseurs. Lorsqu'il lui est demandé d'établir une session de communication encryptée, telle qu'un appel de groupe encrypté, le microprocesseur (106, 109) récupère une variable clé d'encryptage en mémoire (107, 110). Ces informations sont utilisées conjointement au dispositif d'encryptage/décryptage pour encrypter/décrypter des informations normalement transmises vers / à partir d'autres unités de communication. Pour que toutes les unités de communication participant à l'appel de groupe reproduisent des informations intelligibles, elles doivent chacune utiliser la même variable clé d'encryptage. A l'opposé, si un opérateur d'une unité de communication désire s'engager dans une communication point à point, il lui faudra utiliser exclusivement une variable clé d'encryptage pendant la durée de la communication, empêchant ainsi d'autres unités de communication de se servir légitimement de cette clé. La figure 2 illustre un schéma logique qui peut être incorporé dans des unités de communication d'un système de communication de sécurité pour mettre en oeuvre la présente invention. L'expression "appel privé sécurisé" ci-après sera utilisé pour désigner une communication point à point de sécurité. A l'étape 200, un opérateur d'une première unité de communication utilise le ou les dispositifs d'entrée/sortie de l'unité pour demander un appel privé sécurisé, de manière que l'utilisateur entre un code d'identification unique d'au moins une unité de communication de destination. Ir Pour assurer la sécurité de la communication point à point, la première unité de communication détermine une variable clé d'appel privé (201). A cet effet, une fonction prédéterminée est utilisée pour modifier une clé d'encryptage, de sorte que la variable clé d'appel privé résultante soit unique et reproductible. Comme premier exemple de la fonction prédéterminé, on peut imaginer que l'on demande à l'opérateur de la première unité de communication de donner un code utilisateur unique en plus du code d'identification unique de la ou des unités de communication de destination. Le code utilisateur unique est utilisé pour modifier une variable clé d'encryptage, par l'intermédiaire d'un processus connu, exposé ci-dessous, pour créer la variable clé d'appel privé, de façon que la variable clé d'appel privé soit de longueur et de validité égale à la variable clé d'encryptage. Dans un second exemple de la fonction prédéterminée, on utilise un code d'identification unique de la première unité de communication, ou le code d'identification unique de l'unité de communication de destination, ou une combinaison des deux, pour modifier une variable clé d'encryptage, par l'intermédiaire d'un processus connu, afin de créer la variable clé d'appel privé, de telle sorte que la variable clé d'appel privé soit de longueur et de validité égale à la variable clé d'encryptage. Une variété de processus connus peuvent être utilisés dans la mise en oeuvre des fonctions prédéterminées pour modifier effectivement une variable clé d'encryptage. Par exemple, le processus connu peut transformer les deux variables clé d'encryptage et le code utilisateur unique en format binaire. Le code utilisateur unique est étendu au même nombre de positions binaires que la variable clé d'encryptage, par concaténation ou extension, simple duplication du code utilisateur unique, par exemple. Les deux valeurs binaires résultantes, de longueur égale, sont combinées dans la variable clé d'appel privé en utilisant une transformée logique, comme l'addition de modulo-2. La validité de la variable clé d'appel privé est contrôlée pour vérifier que les paramètres corrects sont satisfaits (parité, orthogonalité mutuelle par rapport à d'autres variables clé) et des modifications supplémentaires de la variable clé d'appel privé sont appliquées, si besoin est, pour satisfaire ces critères. Une variante de ce processus utilise le décalage logique à droite ou à gauche de la variable clé d'encryptage (sous forme binaire) avec addition de modulo- 2 alterné du résultat avec la variable clé d'encryptage. Le nombre de fois o cette séquence est suivie est dérivé de la valeur du code utilisateur unique. Dans un autre exemple, plus complexe, du processus connu, un circuit à registre à décalage à réaction linéaire (RDRL) est utilisé pour produire une séquence pseudo-aléatoire de longueur connue. Le code d'identification unique de l'unité ou des unités de communication de destination peut être utilisé comme point de départ indexé dans la séquence connue pour dériver une valeur binaire qui peut être ensuite combinée, par addition de modulo-2, à la variable clé d'encryptage. Une autre approche, basée sur un circuit RDRL, utilise le code d'identification unique de l'unité de communication de destination pour modifier la configuration de réaction du circuit RDRL et obtenir une séquence de sortie unique. Comme précédemment, la séquence de sortie unique est ensuite combinée à la variable clé d'encryptage pour dériver la clé d'appel privé. Pour acheminer la variable clé d'appel privé vers au moins une unité de communication de destination, l'unité de communication de départ, ou première unité de communication, peut utiliser l'approche "A" ou l'approche "B". L'approche "A" suit les étapes 202 à 204, et l'approche "B", les étapes 205 à 209. L'approche "A" est exposée en premier. A l'étape 202, la première unité de communication assemble les informations relatives à la fonction prédéterminée et les transmet, ainsi que l'identification de la variable clé d'encryptage, utilisée dans la création de la variable clé d'appel privé, à l'unité de communication de destination. Si l'on considère le premier exemple d'une fonction prédéterminée examiné ci-dessus, les informations relatives à celle-ci comprennent, sans y être toutefois limitées, l'indication qu'un code utilisateur unique a été utilisé conjointement à un processus connu, pour dériver la variable clé d'appel privé, l'identification du processus connu utilisé, et d'autres informations nécessaires au fonctionnement normal du système, comme le code d'identification unique de la première unité de communication et/ou le code d'identification unique de l'unité de communication de destination. L'identification de la variable clé d'encryptage est généralement un numéro index ou une étiquette capable d'identifier uniquement la clé utilisée de l'ensemble limité. On suppose, dans ce cas, que l'opérateur de l'unité de communication de destination connaît préalablement le code utilisateur unique employé pour dériver le variable clé d'appel privé. Alternativement, et en supposant l'utilisation du second exemple d'une fonction prédéterminée examinée ci-dessus, les informations concernant la fonction prédéterminée comprennent, sans toutefois y être limitées, l'indication que l'un des codes d'identification uniques de la première unité de communication et/ou de l'unité de communication de destination, ou les deux à la fois, a ou ont été utilisés conjointement à un processus connu pour dériver la variable clé d'appel privé, l'identification du processus connu utilisé, et d'autres informations nécessaires au fonctionnement normal du système, comme, par exemple, le code d'identification unique de la première unité de communication et/ou le code d'identification unique de l'unité de communication de destination. Lorsque l'unité de communication de destination reçoit l'identification de la variable clé d'encryptage et les informations relatives à la fonction prédéterminée, elle produit la variable clé d'appel privé (203). Si le premier exemple de la fonction prédéterminée est utilisée, l'indicateur de code utilisateur unique (inclus dans les informations relatives à la fonction prédéterminée) est détecté, et il est demandé à l'opérateur de l'unité de communication de destination d'entrer le code utilisateur unique. Pour générer la variable clé d'appel privé, l'unité de communication de destination exécute la même fonction prédéterminée (telle que figurant dans les informations relatives à la fonction prédéterminée) que la première unité de communication à l'étape 201. La variable clé résultante correspondra à la variable clé d'appel privé utilisée dans la première unité de communication. Cependant, si le second exemple de la fonction prédéterminée est utilisé, l'indication que l'un des codes d'identification uniques de la première unité de communication et/ou de l'unité de communication de destination, ou les deux à la fois, ont été utilisés pour dériver la variable clé d'appel privé, est détectée. L'unité de communication de destination exécute, de nouveau, la même fonction prédéterminée (telle que figurant dans les informations relatives à la fonction prédéterminée) que la première unité de communication à l'étape 201, pour dériver la variable clé d'appel privé. Après avoir généré la clé d'appel privé, la première unité de communication et l'unité de communication de destination peuvent s'engager dans l'appel privé de sécurité (204), sans utilisation exclusive d'une variable clé d'encryptage. Les unités de communication ne possédant pas la variable clé d'appel privé ne peuvent pas prendre part à l'appel privé de sécurité; elles peuvent toutefois utiliser l'une des clés d'encryptage de l'ensemble limité pour les communications de sécurité normales, appels de groupe, par exemple. Si l'approche "B" est suivie, le processus se poursuit à l'étape 205. On suppose qu'à chaque utilisation de l'approche "B", le second exemple de la fonction prédéterminée, exposé conjointement à l'étape 201, est utilisé pour générer la variable clé d'appel privé. A savoir que le code d'identification unique de la première unité de communication, ou le code d'identification unique de l'unité de communication de destination, ou une combinaison des deux, est utilisé(e) pour modifier la variable clé d'encryptage. A l'étape 205, la première unité de communication utilise la variable clé d'appel privé pour créer des informations encryptées (message voix ou données) qui sont ensuite transmises à la pluralité d'unités de communication. En plus des informations encryptées, la première unité de communication transmet également des informations de l'unité de communication unique qui comprennent, sans toutefois y être limitées, une identification de la variable clé d'encryptage utilisée pour dériver la clé d'appel privé, l'identification du processus connu utilisé, et des champs de données de synchronisation d'encryptage. Il est important de noter que le code d'identification unique de la première unité de communication et le code d'identification unique de l'unité de communication de destination ne sont pas transmis. L'identification de la variable clé d'encryptage est identique à celle décrite dans l'approche "A". Les champs de données de synchronisation d'encryptage permettent aux unités de communication de déterminer si le décryptage se déroule correctement. Toutes les unités de communication qui reçoivent les informations encryptées et les informations de l'unité de communication unique tentent de produire la variable clé d'appel privé (206). Comme précédemment, la pluralité d'unités de communication exécutent la même fonction prédéterminée (telle que figurant dans les informations de l'unité de communication unique) que la première unité de communication à l'étape 201, pour dériver la variable clé d'appel privé. Seule l'unité de communication de destination produira une variable qui correspondra à la variable clé d'appel privé de la première unité de communication. Comme on le sait, les champs de données de synchronisation d'encryptage permettent à chacune de la pluralité d'unités de communication de déterminer si elles décryptent correctement les informations encryptées. Si l'opération de décryptage est satisfaisant (207), comme ce serait le cas pour l'unité de communication de destination, la clé d'appel privé est utilisée à la fois dans la première unité de communication et dans l'unité de communication de destination pour lancer l'appel privé de sécurité (208). Là encore, l'utilisation exclusive d'une variable clé d'encryptage pour l'appel privé sécurisé n'est pas nécessaire, et les unités de communication de destination restantes (209) sont libres d'utiliser la totalité de l'ensemble limité de variables d'encryptage. La présente invention fournit un procédé de communications point à point (appels privés de sécurité) dans des systèmes de communication de sécurité. Ce procédé permet de s'affranchir substantiellement du coût et de la complexité nécessaires pour stocker et protéger le grand nombre de variables clé d'encryptage requises pour réaliser sélectivement des appels privés de sécurité. La présente invention propose un procédé de génération d'un grand nombre de variables clé d'appel privé par la modification d'un nombre réduit de variables clé d'encryptage totalement protégées avec une fonction prédéterminée. En offrant un nombre élevé de variables clé d'appel privé, la présente invention permet aux utilisateurs d'un système de communication de sécurité pour engager des communications de sécurité point à point sans monopoliser indûment des ressources clé d'encryptage rares. Revendications 1. Dans un système de communication de sécurité qui comprend un nombre limité de ressources de communication (104 et 105), une pluralité d'unités de communication (102 et 103), et au moins une unité de diffusion (101) qui émet et reçoit le nombre limité de ressources de communication, dans laquelle chaque unité de communication de la pluralité d'unités de communication mémorise (107 et 110) un ensemble limité de variables clé d'encryptage, procédé destiné à fournir une communication point à point dans le système de communication de sécurité, procédé caractérisé par les étapes suivantes: a) réception (200), par une première unité de communication de la pluralité d'unités de communication, d'une demande de communication point à point d'un opérateur de la première unité de communication, laquelle demande identifie au moins une unité de communication de destination; b) génération (201), par la première unité de communication, d'une variable clé d'appel privé en modifiant une variable clé d'encryptage de l'ensemble limité de variables clé d'encryptage basée sur une fonction prédéterminée; c) transmission (202), par la première unité de communication à au moins une unité de communication de destination, l'identité de la variable clé d'encryptage et des informations relatives à la fonction prédéterminée; d) génération (203), par au moins une unité de communication de destination, de la variable clé d'appel privé basée sur la variable clé d'encryptage et les informations relatives à la fonction prédéterminée; et e) communication privée (204) entre la première unité de communication et au moins une unité de communication de destination, en utilisant la variable clé d'appel privé. 2. Procédé selon la revendication 1, caractérisé en ce que l'étape (b) comprend, de plus, la génération de la variable clé d'appel privé en modifiant la variable clé d'encryptage basée sur la fonction prédéterminée, laquelle fonction prédéterminée comprend, au moins en partie, l'utilisation d'un code d'identification unique de la première unité de communication, un code d'identification unique d'au moins une unité de communication de destination, ou une combinaison du code d'identification unique de la première unité de communication et du code d'identification unique d'au moins une unité de communication de destination, pour modifier la variable clé d'encryptage. 3. Procédé selon la revendication 2, caractérisé en outre en ce que l'étape (c) comprend, de plus, la transmission de l'identité de la variable clé d'encryptage et des informations relatives à la fonction prédéterminée, lesquelles informations relatives à la fonction prédéterminée comprennent, au moins en partie, le code d'identification unique de la première unité de communication, le code d'identification unique d'au moins une unité de communication de destination, ou la combinaison du code d'identification unique de la première unité de communication et du code d'identification unique d'au moins une unité de communication de destination. 4. Procédé selon la revendication 2, caractérisé en ce que la fonction prédéterminée comprend, de plus, l'utilisation d'un code utilisateur unique pour produire la variable clé d'appel privé. 5. Procédé selon la revendication 1, caractérisé 0 en ce que l'étape (d) comprend, de plus, l'identification, par au moins une unité de communication de destination, du type de la fonction prédéterminée, de manière à générer la variable clé d'appel privé.